Changeset 614 in SHVCSoftware
- Timestamp:
- 12 Feb 2014, 04:01:42 (11 years ago)
- Location:
- branches/SHM-5.1-dev/source/Lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-5.1-dev/source/Lib/TLibCommon/TypeDef.h
r613 r614 229 229 #endif 230 230 #define SPS_DPB_PARAMS 1 ///< JCTVC-P0155 signaling & inferrence for sps dpb parameters for nuh_layer_id > 0 231 231 #define DPB_PARAMS_MAXTLAYERS 1 ///< JCTVC-P0156 DPB parameters up to maximum temporal sub-layers in the layer set 232 #define NUM_OL_FLAGS 1 ///< JCTVC-P0156 output_layer_flag[ i ][ j ] is signalled for j equal to 0 to NumLayersInIdList[ lsIdx ] inclusive 232 233 #define NO_CLRAS_OUTPUT_FLAG 1 233 234 #define O0149_CROSS_LAYER_BLA_FLAG 1 ///< JCTVC-O0149: signal cross_layer_bla_flag in slice header -
branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r613 r614 1254 1254 { 1255 1255 Int lsIdx = vps->getOutputLayerSetIdx(i); 1256 #if NUM_OL_FLAGS 1257 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) ; j++) 1258 #else 1256 1259 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++) 1260 #endif 1257 1261 { 1258 1262 READ_FLAG( uiCode, "output_layer_flag[i][j]"); vps->setOutputLayerFlag(i, j, uiCode); … … 1325 1329 READ_CODE( numBits, uiCode, "output_layer_set_idx_minus1"); vps->setOutputLayerSetIdx( i, uiCode + 1); 1326 1330 Int lsIdx = vps->getOutputLayerSetIdx(i); 1331 #if NUM_OL_FLAGS 1332 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) ; j++) 1333 #else 1327 1334 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++) 1335 #endif 1328 1336 { 1329 1337 READ_FLAG( uiCode, "output_layer_flag[i][j]"); vps->setOutputLayerFlag(i, j, uiCode); … … 1631 1639 { 1632 1640 UInt uiCode; 1641 #if DPB_PARAMS_MAXTLAYERS 1642 Int * MaxSubLayersInLayerSetMinus1 = new Int[vps->getNumOutputLayerSets()]; 1643 for(Int i = 1; i < vps->getNumOutputLayerSets(); i++) 1644 { 1645 UInt maxSLMinus1 = 0; 1646 #if CHANGE_NUMSUBDPB_IDX 1647 Int optLsIdx = vps->getOutputLayerSetIdx( i ); 1648 #else 1649 Int optLsIdx = i; 1650 #endif 1651 for(Int k = 0; k < vps->getNumLayersInIdList(optLsIdx); k++ ) { 1652 Int lId = vps->getLayerSetLayerIdList(optLsIdx, k); 1653 maxSLMinus1 = max(maxSLMinus1, vps->getMaxTSLayersMinus1(vps->getLayerIdInVps(lId))); 1654 } 1655 MaxSubLayersInLayerSetMinus1[ i ] = maxSLMinus1; 1656 } 1657 #endif 1658 1633 1659 #if !RESOLUTION_BASED_DPB 1634 1660 vps->deriveNumberOfSubDpbs(); … … 1640 1666 #endif 1641 1667 READ_FLAG( uiCode, "sub_layer_flag_info_present_flag[i]"); vps->setSubLayerFlagInfoPresentFlag( i, uiCode ? true : false ); 1642 for(Int j = 0; j < vps->getMaxTLayers(); j++) 1668 #if DPB_PARAMS_MAXTLAYERS 1669 for(Int j = 0; j <= MaxSubLayersInLayerSetMinus1[ i ]; j++) 1670 #else 1671 for(Int j = 0; j <= vps->getMaxTLayers(); j++) 1672 #endif 1643 1673 { 1644 1674 if( j > 0 && vps->getSubLayerFlagInfoPresentFlag(i) ) -
branches/SHM-5.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r613 r614 1003 1003 #endif 1004 1004 Int lsIdx = vps->getOutputLayerSetIdx(i); 1005 #if NUM_OL_FLAGS 1006 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) ; j++) 1007 #else 1005 1008 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++) 1009 #endif 1006 1010 { 1007 1011 WRITE_FLAG( vps->getOutputLayerFlag(i,j), "output_layer_flag[i][j]"); … … 1245 1249 Void TEncCavlc::codeVpsDpbSizeTable(TComVPS *vps) 1246 1250 { 1251 #if DPB_PARAMS_MAXTLAYERS 1252 Int * MaxSubLayersInLayerSetMinus1 = new Int[vps->getNumOutputLayerSets()]; 1253 for(Int i = 1; i < vps->getNumOutputLayerSets(); i++) 1254 { 1255 UInt maxSLMinus1 = 0; 1256 #if CHANGE_NUMSUBDPB_IDX 1257 Int optLsIdx = vps->getOutputLayerSetIdx( i ); 1258 #else 1259 Int optLsIdx = i; 1260 #endif 1261 for(Int k = 0; k < vps->getNumLayersInIdList(optLsIdx); k++ ) { 1262 Int lId = vps->getLayerSetLayerIdList(optLsIdx, k); 1263 maxSLMinus1 = max(maxSLMinus1, vps->getMaxTSLayersMinus1(vps->getLayerIdInVps(lId))); 1264 } 1265 MaxSubLayersInLayerSetMinus1[ i ] = maxSLMinus1; 1266 } 1267 #endif 1268 1247 1269 for(Int i = 1; i < vps->getNumOutputLayerSets(); i++) 1248 1270 { … … 1250 1272 Int layerSetIdxForOutputLayerSet = vps->getOutputLayerSetIdx( i ); 1251 1273 #endif 1252 WRITE_FLAG( vps->getSubLayerFlagInfoPresentFlag( i ), "sub_layer_flag_info_present_flag[i]"); 1274 WRITE_FLAG( vps->getSubLayerFlagInfoPresentFlag( i ), "sub_layer_flag_info_present_flag[i]"); 1275 #if DPB_PARAMS_MAXTLAYERS 1276 for(Int j = 0; j <= MaxSubLayersInLayerSetMinus1[ i ]; j++) 1277 #else 1253 1278 for(Int j = 0; j < vps->getMaxTLayers(); j++) 1279 #endif 1254 1280 { 1255 1281 if( j > 0 && vps->getSubLayerFlagInfoPresentFlag(i) )
Note: See TracChangeset for help on using the changeset viewer.