Changeset 290 in SHVCSoftware for branches/SHM-2.1-dev/source/Lib
- Timestamp:
- 18 Jun 2013, 13:57:03 (12 years ago)
- Location:
- branches/SHM-2.1-dev/source/Lib
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r289 r290 1671 1671 ::memset(m_numDirectRefLayers, 0, sizeof(m_numDirectRefLayers )); 1672 1672 ::memset(m_refLayerId, 0, sizeof(m_refLayerId )); 1673 #if M0457_PREDICTION_INDICATIONS 1674 m_directDepTypeLen = 2; 1675 ::memset(m_directDependencyType, 0, sizeof(m_directDependencyType)); 1676 #endif 1673 1677 #endif 1674 1678 #if DERIVE_LAYER_ID_LIST_VARIABLES -
branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h
r289 r290 549 549 UInt m_numDirectRefLayers[MAX_VPS_LAYER_ID_PLUS1]; 550 550 UInt m_refLayerId[MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 551 #if M0457_PREDICTION_INDICATIONS 552 UInt m_directDepTypeLen; 553 UInt m_directDependencyType[MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 554 #endif 551 555 #endif 552 556 #if VPS_PROFILE_OUTPUT_LAYERS … … 694 698 UInt getRefLayerId(Int layerId, Int refLayerIdx) { return m_refLayerId[layerId][refLayerIdx]; } 695 699 Void setRefLayerId(Int layerId, Int refLayerIdx, UInt refLayerId) { m_refLayerId[layerId][refLayerIdx] = refLayerId; } 700 701 #if M0457_PREDICTION_INDICATIONS 702 UInt getDirectDepTypeLen() { return m_directDepTypeLen; } 703 Void setDirectDepTypeLen(UInt x) { m_directDepTypeLen = x; } 704 705 UInt getDirectDependencyType(Int currLayerId, Int refLayerId) { return m_directDependencyType[currLayerId][refLayerId]; } 706 Void setDirectDependencyType(Int currLayerId, Int refLayerId, UInt x) { m_directDependencyType[currLayerId][refLayerId] = x; } 707 #endif 696 708 #endif 697 709 #if VPS_PROFILE_OUTPUT_LAYERS -
branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h
r289 r290 61 61 #define SPS_SUB_LAYER_INFO 1 ///< M0268: Do not signal sps_max_sub_layers_minus1 and sps_temporal_id_nesting_flag for nuh_layer_id greater than 0 62 62 #define VPS_SPLIT_FLAG 1 ///< M0163: Do not signal dimension_id and the last dimension_id_len_minus1, when splitting_flag is equal to 1. 63 #define M0457_PREDICTION_INDICATIONS 1 63 64 #endif 64 65 -
branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r289 r290 1143 1143 #endif 1144 1144 #endif 1145 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 1146 READ_UVLC( uiCode, "direct_dep_type_len_minus2"); vps->setDirectDepTypeLen(uiCode+2); 1147 for(i = 1; i < vps->getMaxLayers(); i++) 1148 { 1149 for(j = 0; j < i; j++) 1150 { 1151 if (vps->getDirectDependencyFlag(i, j)) 1152 { 1153 READ_CODE( vps->getDirectDepTypeLen(), uiCode, "direct_dependency_type[i][j]" ); vps->setDirectDependencyType(i, j, uiCode); 1154 } 1155 } 1156 } 1157 #endif 1145 1158 } 1146 1159 #endif -
branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r288 r290 538 538 m_apcSlicePilot->setTLayerInfo(nalu.m_temporalId); 539 539 540 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 541 setRefLayerParams(m_apcSlicePilot->getVPS()); 542 #endif 540 543 #if SVC_EXTENSION 541 544 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder[m_layerId]); … … 1316 1319 #endif 1317 1320 1321 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 1322 1323 Void TDecTop::setRefLayerParams( TComVPS* vps ) 1324 { 1325 for(UInt layer = 0; layer < m_numLayer; layer++) 1326 { 1327 TDecTop *decTop = (TDecTop *)getLayerDec(layer); 1328 decTop->setNumSamplePredRefLayers(0); 1329 decTop->setNumMotionPredRefLayers(0); 1330 decTop->setNumDirectRefLayers(0); 1331 for(Int i = 0; i < MAX_VPS_LAYER_ID_PLUS1; i++) 1332 { 1333 decTop->setSamplePredEnabledFlag(i, false); 1334 decTop->setMotionPredEnabledFlag(i, false); 1335 decTop->setSamplePredRefLayerId(i, 0); 1336 decTop->setMotionPredRefLayerId(i, 0); 1337 } 1338 for(Int j = 0; j < layer; j++) 1339 { 1340 if (vps->getDirectDependencyFlag(layer, j)) 1341 { 1342 decTop->setRefLayerId(decTop->getNumDirectRefLayers(), vps->getLayerIdInNuh(layer)); 1343 decTop->setNumDirectRefLayers(decTop->getNumDirectRefLayers() + 1); 1344 1345 Int samplePredEnabledFlag = (vps->getDirectDependencyType(layer, j) + 1) & 1; 1346 decTop->setSamplePredEnabledFlag(j, samplePredEnabledFlag == 1 ? true : false); 1347 decTop->setNumSamplePredRefLayers(decTop->getNumSamplePredRefLayers() + samplePredEnabledFlag); 1348 1349 Int motionPredEnabledFlag = ((vps->getDirectDependencyType(layer, j) + 1) & 2) >> 1; 1350 decTop->setMotionPredEnabledFlag(j, motionPredEnabledFlag == 1 ? true : false); 1351 decTop->setNumMotionPredRefLayers(decTop->getNumMotionPredRefLayers() + motionPredEnabledFlag); 1352 } 1353 } 1354 } 1355 for ( Int i = 1, mIdx = 0, sIdx = 0; i < m_numLayer; i++ ) 1356 { 1357 Int iNuhLId = vps->getLayerIdInNuh(i); 1358 TDecTop *decTop = (TDecTop *)getLayerDec(iNuhLId); 1359 for ( Int j = 0; j < i; j++ ) 1360 { 1361 if (decTop->getMotionPredEnabledFlag(j)) 1362 { 1363 decTop->setMotionPredRefLayerId(mIdx++, vps->getLayerIdInNuh(j)); 1364 } 1365 if (decTop->getSamplePredEnabledFlag(j)) 1366 { 1367 decTop->setSamplePredRefLayerId(sIdx++, vps->getLayerIdInNuh(j)); 1368 } 1369 } 1370 } 1371 } 1372 1373 #endif 1318 1374 //! \} -
branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.h
r250 r290 120 120 Int m_iBLSourceHeight; 121 121 #endif 122 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 123 Int m_numDirectRefLayers; 124 Int m_refLayerId[MAX_VPS_LAYER_ID_PLUS1]; 125 Int m_numSamplePredRefLayers; 126 Int m_samplePredRefLayerId[MAX_VPS_LAYER_ID_PLUS1]; 127 Int m_numMotionPredRefLayers; 128 Int m_motionPredRefLayerId[MAX_VPS_LAYER_ID_PLUS1]; 129 Bool m_samplePredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1]; 130 Bool m_motionPredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1]; 131 #endif 122 132 #endif 123 133 #if AVC_SYNTAX || SYNTAX_OUTPUT … … 158 168 #if VPS_EXTN_DIRECT_REF_LAYERS 159 169 TDecTop* getRefLayerDec(UInt refLayerIdc); 170 #if M0457_PREDICTION_INDICATIONS 171 Int getNumDirectRefLayers () { return m_numDirectRefLayers; } 172 Void setNumDirectRefLayers (Int num) { m_numDirectRefLayers = num; } 173 174 Int getRefLayerId (Int i) { return m_refLayerId[i]; } 175 Void setRefLayerId (Int i, Int refLayerId) { m_refLayerId[i] = refLayerId; } 176 177 Int getNumSamplePredRefLayers () { return m_numSamplePredRefLayers; } 178 Void setNumSamplePredRefLayers (Int num) { m_numSamplePredRefLayers = num; } 179 180 Int getSamplePredRefLayerId (Int i) { return m_samplePredRefLayerId[i]; } 181 Void setSamplePredRefLayerId (Int i, Int refLayerId) { m_samplePredRefLayerId[i] = refLayerId; } 182 183 Int getNumMotionPredRefLayers () { return m_numMotionPredRefLayers; } 184 Void setNumMotionPredRefLayers (Int num) { m_numMotionPredRefLayers = num; } 185 186 Int getMotionPredRefLayerId (Int i) { return m_motionPredRefLayerId[i]; } 187 Void setMotionPredRefLayerId (Int i, Int refLayerId) { m_motionPredRefLayerId[i] = refLayerId; } 188 189 Bool getSamplePredEnabledFlag (Int i) { return m_samplePredEnabledFlag[i]; } 190 Void setSamplePredEnabledFlag (Int i,Bool flag) { m_samplePredEnabledFlag[i] = flag; } 191 192 Bool getMotionPredEnabledFlag (Int i) { return m_motionPredEnabledFlag[i]; } 193 Void setMotionPredEnabledFlag (Int i,Bool flag) { m_motionPredEnabledFlag[i] = flag; } 194 195 TDecTop* getSamplePredRefLayerDec ( UInt layerId ); 196 TDecTop* getMotionPredRefLayerDec ( UInt layerId ); 197 198 Void setRefLayerParams( TComVPS* vps ); 199 #endif 160 200 #endif 161 201 #if AVC_BASE -
branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r289 r290 864 864 #endif 865 865 #endif 866 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 867 WRITE_UVLC( vps->getDirectDepTypeLen()-2, "direct_dep_type_len_minus2"); 868 for(i = 1; i < vps->getMaxLayers(); i++) 869 { 870 for(j = 0; j < i; j++) 871 { 872 if (vps->getDirectDependencyFlag(i, j)) 873 { 874 WRITE_CODE( vps->getDirectDependencyType(i, j), vps->getDirectDepTypeLen(), "direct_dependency_type[i][j]" ); 875 } 876 } 877 } 878 #endif 866 879 } 867 880 #endif -
branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCfg.h
r282 r290 148 148 Int m_numActiveRefLayers; 149 149 Int m_predLayerId[MAX_VPS_LAYER_ID_PLUS1]; 150 #if M0457_PREDICTION_INDICATIONS 151 Int m_numSamplePredRefLayers; 152 Int m_samplePredRefLayerId[MAX_VPS_LAYER_ID_PLUS1]; 153 Int m_numMotionPredRefLayers; 154 Int m_motionPredRefLayerId[MAX_VPS_LAYER_ID_PLUS1]; 155 Bool m_samplePredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1]; 156 Bool m_motionPredEnabledFlag[MAX_VPS_LAYER_ID_PLUS1]; 157 #endif 150 158 #endif 151 159 //======= Transform ============= … … 414 422 Int getPredLayerId (Int i) { return m_predLayerId[i]; } 415 423 Void setPredLayerId (Int i, Int refLayerId) { m_predLayerId[i] = refLayerId; } 424 425 #if M0457_PREDICTION_INDICATIONS 426 Int getNumSamplePredRefLayers () { return m_numSamplePredRefLayers; } 427 Void setNumSamplePredRefLayers (Int num) { m_numSamplePredRefLayers = num; } 428 429 Int getSamplePredRefLayerId (Int i) { return m_samplePredRefLayerId[i]; } 430 Void setSamplePredRefLayerId (Int i, Int refLayerId) { m_samplePredRefLayerId[i] = refLayerId; } 431 432 Int getNumMotionPredRefLayers () { return m_numMotionPredRefLayers; } 433 Void setNumMotionPredRefLayers (Int num) { m_numMotionPredRefLayers = num; } 434 435 Int getMotionPredRefLayerId (Int i) { return m_motionPredRefLayerId[i]; } 436 Void setMotionPredRefLayerId (Int i, Int refLayerId) { m_motionPredRefLayerId[i] = refLayerId; } 437 438 Bool getSamplePredEnabledFlag (Int i) { return m_samplePredEnabledFlag[i]; } 439 Void setSamplePredEnabledFlag (Int i,Bool flag) { m_samplePredEnabledFlag[i] = flag; } 440 441 Bool getMotionPredEnabledFlag (Int i) { return m_motionPredEnabledFlag[i]; } 442 Void setMotionPredEnabledFlag (Int i,Bool flag) { m_motionPredEnabledFlag[i] = flag; } 443 #endif 416 444 #endif 417 445 //======== Transform =============
Note: See TracChangeset for help on using the changeset viewer.