Changeset 516 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib
- Timestamp:
- 17 Dec 2013, 10:27:32 (11 years ago)
- Location:
- branches/SHM-4.1-dev/source/Lib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r507 r516 946 946 numRpsCurrTempList += getNumILRRefIdx(); 947 947 #endif 948 948 } 949 949 #endif 950 950 … … 2144 2144 } 2145 2145 #endif 2146 #if VPS_DPB_SIZE_TABLE 2147 ::memset( m_subLayerFlagInfoPresentFlag, 0, sizeof(m_subLayerFlagInfoPresentFlag ) ); 2148 ::memset( m_subLayerDpbInfoPresentFlag, 0, sizeof(m_subLayerDpbInfoPresentFlag ) ); 2149 ::memset( m_maxVpsDecPicBufferingMinus1, 0, sizeof(m_maxVpsDecPicBufferingMinus1 ) ); 2150 ::memset( m_maxVpsNumReorderPics, 0, sizeof(m_maxVpsNumReorderPics ) ); 2151 ::memset( m_maxVpsLatencyIncreasePlus1, 0, sizeof(m_maxVpsLatencyIncreasePlus1 ) ); 2152 ::memset( m_numSubDpbs , 0, sizeof(m_numSubDpbs) ); 2153 #endif 2146 2154 } 2147 2155 #else … … 2193 2201 } 2194 2202 setNumLayersInIdList(i, n); 2203 } 2204 } 2205 #endif 2206 #if VPS_DPB_SIZE_TABLE 2207 Void TComVPS::deriveNumberOfSubDpbs() 2208 { 2209 // Derive number of sub-DPBs 2210 // For output layer set 0 2211 setNumSubDpbs(0, 1); 2212 // For other output layer sets 2213 for( Int i = 1; i < getNumOutputLayerSets(); i++) 2214 { 2215 setNumSubDpbs( i, getNumLayersInIdList( getOutputLayerSetIdx(i)) ); 2195 2216 } 2196 2217 } -
branches/SHM-4.1-dev/source/Lib/TLibCommon/TComSlice.h
r514 r516 642 642 Bool m_recursiveRefLayerFlag[MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS]; // flag to indicate if j-th layer is a direct or indirect reference layer of i-th layer 643 643 #endif 644 #if VPS_DPB_SIZE_TABLE 645 Bool m_subLayerFlagInfoPresentFlag [MAX_VPS_OP_LAYER_SETS_PLUS1]; 646 Bool m_subLayerDpbInfoPresentFlag [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS]; 647 Int m_maxVpsDecPicBufferingMinus1 [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS][MAX_TLAYER]; 648 Int m_maxVpsNumReorderPics [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS]; 649 Int m_maxVpsLatencyIncreasePlus1 [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS]; 650 Int m_numSubDpbs [MAX_VPS_OP_LAYER_SETS_PLUS1]; 651 #endif 644 652 #endif //SVC_EXTENSION 645 653 public: … … 707 715 Void deriveLayerIdListVariables(); 708 716 #endif 709 717 #if VPS_DPB_SIZE_TABLE 718 Void deriveNumberOfSubDpbs(); 719 #endif 710 720 #if IL_SL_SIGNALLING_N0371 711 721 Bool checkLayerDependency(UInt i, UInt j); … … 928 938 Bool getPhaseAlignFlag() { return m_phaseAlignFlag; } 929 939 Void setPhaseAlignFlag(Bool x) { m_phaseAlignFlag = x; } 940 #endif 941 #if VPS_DPB_SIZE_TABLE 942 Bool getSubLayerFlagInfoPresentFlag(Int i) {return m_subLayerFlagInfoPresentFlag[i]; } 943 Void setSubLayerFlagInfoPresentFlag(Int i, Bool x) {m_subLayerFlagInfoPresentFlag[i] = x; } 944 945 Bool getSubLayerDpbInfoPresentFlag(Int i, Int j) {return m_subLayerDpbInfoPresentFlag[i][j]; } 946 Void setSubLayerDpbInfoPresentFlag(Int i, Int j, Bool x) {m_subLayerDpbInfoPresentFlag[i][j] = x; } 947 948 Int getMaxVpsDecPicBufferingMinus1(Int i, Int k, Int j) { return m_maxVpsDecPicBufferingMinus1[i][k][j]; } 949 Void setMaxVpsDecPicBufferingMinus1(Int i, Int k, Int j, Int x) { m_maxVpsDecPicBufferingMinus1[i][k][j] = x; } 950 951 Int getMaxVpsNumReorderPics(Int i, Int j) { return m_maxVpsNumReorderPics[i][j]; } 952 Void setMaxVpsNumReorderPics(Int i, Int j, Int x) { m_maxVpsNumReorderPics[i][j] = x; } 953 954 Int getMaxVpsLatencyIncreasePlus1(Int i, Int j) { return m_maxVpsLatencyIncreasePlus1[i][j]; } 955 Void setMaxVpsLatencyIncreasePlus1(Int i, Int j, Int x) { m_maxVpsLatencyIncreasePlus1[i][j] = x; } 956 957 Int getNumSubDpbs(Int i) { return m_numSubDpbs[i]; } 958 Void setNumSubDpbs(Int i, Int x) { m_numSubDpbs[i] = x; } 930 959 #endif 931 960 #endif //SVC_EXTENSION -
branches/SHM-4.1-dev/source/Lib/TLibCommon/TypeDef.h
r515 r516 188 188 #define O0153_ALT_OUTPUT_LAYER_FLAG 1 ///< JCTVC-O0153: alt output layer flag 189 189 190 #define VPS_DPB_SIZE_TABLE 1 ///< JCTVC-O0217: DPB operations: signaling DPB-related parameters 190 191 #else 191 192 #define SYNTAX_OUTPUT 0 … … 206 207 #define MAX_VPS_NUM_SCALABILITY_TYPES 16 207 208 #endif 209 #define MAX_VPS_OP_LAYER_SETS_PLUS1 3 208 210 #if VPS_RENAME 209 211 #define MAX_VPS_LAYER_SETS_PLUS1 1024 -
branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r515 r516 1259 1259 else 1260 1260 { 1261 #if VPS_DPB_SIZE_TABLE 1262 vps->setOutputLayerSetIdx( i, i ); 1263 #endif 1261 1264 // i <= (vps->getNumLayerSets() - 1) 1262 1265 // Assign OutputLayerFlag depending on default_one_target_output_layer_flag … … 1372 1375 #endif 1373 1376 1377 #if VPS_DPB_SIZE_TABLE 1378 vps->deriveNumberOfSubDpbs(); 1379 for(i = 1; i < vps->getNumOutputLayerSets(); i++) 1380 { 1381 READ_FLAG( uiCode, "sub_layer_flag_info_present_flag[i]"); vps->setSubLayerFlagInfoPresentFlag( i, uiCode ? true : false ); 1382 for(j = 0; j < vps->getMaxTLayers(); j++) 1383 { 1384 if( j > 0 && vps->getSubLayerFlagInfoPresentFlag(i) ) 1385 { 1386 READ_FLAG( uiCode, "sub_layer_dpb_info_present_flag[i]"); vps->setSubLayerDpbInfoPresentFlag( i, j, uiCode ? true : false); 1387 } 1388 else 1389 { 1390 if( j == 0 ) // Always signal for the first sub-layer 1391 { 1392 vps->setSubLayerDpbInfoPresentFlag( i, j, true ); 1393 } 1394 else // if (j != 0) && !vps->getSubLayerFlagInfoPresentFlag(i) 1395 { 1396 vps->setSubLayerDpbInfoPresentFlag( i, j, false ); 1397 } 1398 } 1399 if( vps->getSubLayerDpbInfoPresentFlag(i, j) ) // If sub-layer DPB information is present 1400 { 1401 for(Int k = 0; k < vps->getNumSubDpbs(i); k++) 1402 { 1403 READ_UVLC( uiCode, "max_vps_dec_pic_buffering_minus1[i][k][j]" ); vps->setMaxVpsDecPicBufferingMinus1( i, k, j, uiCode ); 1404 } 1405 READ_UVLC( uiCode, "max_vps_num_reorder_pics[i][j]" ); vps->setMaxVpsNumReorderPics( i, j, uiCode); 1406 READ_UVLC( uiCode, "max_vps_latency_increase_plus1[i][j]" ); vps->setMaxVpsLatencyIncreasePlus1( i, j, uiCode); 1407 } 1408 } 1409 } 1410 #endif 1374 1411 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 1375 1412 READ_UVLC( uiCode, "direct_dep_type_len_minus2"); vps->setDirectDepTypeLen(uiCode+2); -
branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r515 r516 1079 1079 WRITE_FLAG(vps->getCrossLayerIrapAlignFlag(), "cross_layer_irap_aligned_flag"); 1080 1080 #endif 1081 #if VPS_DPB_SIZE_TABLE 1082 for(i = 1; i < vps->getNumOutputLayerSets(); i++) 1083 { 1084 WRITE_FLAG( vps->getSubLayerFlagInfoPresentFlag( i ), "sub_layer_flag_info_present_flag[i]"); 1085 for(j = 0; j < vps->getMaxTLayers(); j++) 1086 { 1087 if( j > 0 && vps->getSubLayerFlagInfoPresentFlag(i) ) 1088 { 1089 WRITE_FLAG( vps->getSubLayerDpbInfoPresentFlag( i, j), "sub_layer_dpb_info_present_flag[i]"); 1090 } 1091 if( vps->getSubLayerDpbInfoPresentFlag(i, j) ) 1092 { 1093 for(Int k = 0; k < vps->getNumSubDpbs(i); k++) 1094 { 1095 WRITE_UVLC( vps->getMaxVpsDecPicBufferingMinus1( i, k, j), "max_vps_dec_pic_buffering_minus1[i][k][j]" ); 1096 } 1097 WRITE_UVLC( vps->getMaxVpsNumReorderPics( i, j), "max_vps_num_reorder_pics[i][j]" ); 1098 WRITE_UVLC( vps->getMaxVpsLatencyIncreasePlus1( i, j), "max_vps_latency_increase_plus1[i][j]" ); 1099 } 1100 } 1101 } 1102 #endif 1081 1103 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 1082 1104 WRITE_UVLC( vps->getDirectDepTypeLen()-2, "direct_dep_type_len_minus2");
Note: See TracChangeset for help on using the changeset viewer.