Changeset 467 in SHVCSoftware for branches/SHM-4.0-dev/source/Lib/TLibDecoder
- Timestamp:
- 14 Nov 2013, 00:54:41 (11 years ago)
- Location:
- branches/SHM-4.0-dev/source/Lib/TLibDecoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r466 r467 450 450 { 451 451 READ_FLAG( uiCode, "tiles_fixed_structure_flag"); pcVUI->setTilesFixedStructureFlag(uiCode); 452 #if M0464_TILE_BOUNDARY_ALIGNED_FLAG453 if ( pcSPS->getLayerId() > 0 )454 {455 READ_FLAG( uiCode, "tile_boundaries_aligned_flag" ); pcVUI->setTileBoundariesAlignedFlag( uiCode == 1 );456 }457 #endif458 452 READ_FLAG( uiCode, "motion_vectors_over_pic_boundaries_flag"); pcVUI->setMotionVectorsOverPicBoundariesFlag(uiCode); 459 453 READ_FLAG( uiCode, "restricted_ref_pic_lists_flag"); pcVUI->setRestrictedRefPicListsFlag(uiCode); … … 542 536 } 543 537 544 #if S PS_SUB_LAYER_INFO538 #if SVC_EXTENSION 545 539 Void TDecCavlc::parseSPS(TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager) 546 540 #else … … 554 548 UInt uiCode; 555 549 READ_CODE( 4, uiCode, "sps_video_parameter_set_id"); pcSPS->setVPSId ( uiCode ); 556 #if S PS_SUB_LAYER_INFO550 #if SVC_EXTENSION 557 551 if(pcSPS->getLayerId() == 0) 558 552 { … … 562 556 563 557 READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" ); pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false ); 564 #if S PS_SUB_LAYER_INFO558 #if SVC_EXTENSION 565 559 } 566 560 else … … 569 563 pcSPS->setTemporalIdNestingFlag( parameterSetManager->getPrefetchedVPS(pcSPS->getVPSId())->getTemporalNestingFlag() ); 570 564 } 571 #endif572 565 #if IL_SL_SIGNALLING_N0371 573 566 pcSPS->setVPS( parameterSetManager->getPrefetchedVPS(pcSPS->getVPSId()) ); 574 567 pcSPS->setSPS( pcSPS->getLayerId(), pcSPS ); 575 568 #endif 569 #endif 576 570 if ( pcSPS->getMaxTLayers() == 1 ) 577 571 { 578 572 // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0 579 #if S PS_SUB_LAYER_INFO573 #if SVC_EXTENSION 580 574 assert( pcSPS->getTemporalIdNestingFlag() == true ); 581 575 #else … … 841 835 assert( uiCode == 0 ); 842 836 #endif 843 #if SCALED_REF_LAYER_OFFSETS844 837 if( pcSPS->getLayerId() > 0 ) 845 838 { … … 855 848 } 856 849 } 857 #endif858 850 #if M0463_VUI_EXT_ILP_REF 859 851 //// sps_extension_vui_parameters( ) … … 1000 992 } 1001 993 994 #if SVC_EXTENSION 1002 995 #if VPS_EXTNS 1003 996 Void TDecCavlc::parseVPSExtension(TComVPS *vps) … … 1018 1011 vps->setNumScalabilityTypes(numScalabilityTypes); 1019 1012 1020 #if VPS_SPLIT_FLAG1021 1013 for(j = 0; j < numScalabilityTypes - vps->getSplittingFlag(); j++) 1022 #else1023 for(j = 0; j < numScalabilityTypes; j++)1024 #endif1025 1014 { 1026 1015 READ_CODE( 3, uiCode, "dimension_id_len_minus1[j]" ); vps->setDimensionIdLen(j, uiCode + 1); 1027 1016 } 1028 #if VPS_SPLIT_FLAG 1017 1029 1018 if(vps->getSplittingFlag()) 1030 1019 { … … 1038 1027 numBits = 6; 1039 1028 } 1040 #else1041 if(vps->getSplittingFlag())1042 {1043 UInt numBits = 0;1044 for(j = 0; j < numScalabilityTypes; j++)1045 {1046 numBits += vps->getDimensionIdLen(j);1047 }1048 assert( numBits <= 6 );1049 }1050 #endif1051 1029 1052 1030 READ_FLAG( uiCode, "vps_nuh_layer_id_present_flag" ); vps->setNuhLayerIdPresentFlag(uiCode ? true : false); … … 1066 1044 vps->setLayerIdInVps(vps->getLayerIdInNuh(i), i); 1067 1045 1068 #if VPS_SPLIT_FLAG 1069 if(!vps->getSplittingFlag()) 1070 #endif 1046 if( !vps->getSplittingFlag() ) 1047 { 1071 1048 for(j = 0; j < numScalabilityTypes; j++) 1072 1049 { … … 1074 1051 assert( uiCode <= vps->getMaxLayerId() ); 1075 1052 } 1053 } 1076 1054 } 1077 1055 #endif … … 1088 1066 } 1089 1067 #endif 1090 #if VPS_MOVE_DIR_DEPENDENCY_FLAG1091 1068 #if VPS_EXTN_DIRECT_REF_LAYERS 1092 1069 // For layer 0 … … 1108 1085 } 1109 1086 #endif 1110 #endif1111 1087 #if JCTVC_M0203_INTERLAYER_PRED_IDC 1112 1088 #if N0120_MAX_TID_REF_PRESENT_FLAG … … 1144 1120 #if VPS_EXTN_PROFILE_INFO 1145 1121 // Profile-tier-level signalling 1146 #if VPS_PROFILE_OUTPUT_LAYERS1147 1122 READ_CODE( 10, uiCode, "vps_number_layer_sets_minus1" ); assert( uiCode == (vps->getNumLayerSets() - 1) ); 1148 1123 READ_CODE( 6, uiCode, "vps_num_profile_tier_level_minus1"); vps->setNumProfileTierLevel( uiCode + 1 ); 1149 1124 vps->getPTLForExtnPtr()->resize(vps->getNumProfileTierLevel()); 1150 1125 for(Int idx = 1; idx <= vps->getNumProfileTierLevel() - 1; idx++) 1151 #else1152 vps->getPTLForExtnPtr()->resize(vps->getNumLayerSets());1153 for(Int idx = 1; idx <= vps->getNumLayerSets() - 1; idx++)1154 #endif1155 1126 { 1156 1127 READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); vps->setProfilePresentFlag(idx, uiCode ? true : false); 1157 1128 if( !vps->getProfilePresentFlag(idx) ) 1158 1129 { 1159 #if VPS_PROFILE_OUTPUT_LAYERS1160 1130 READ_CODE( 6, uiCode, "profile_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1); 1161 #else1162 READ_UVLC( uiCode, "vps_profile_layer_set_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1);1163 #endif1164 1131 assert( vps->getProfileLayerSetRef(idx) < idx ); 1132 1165 1133 // Copy profile information as indicated 1166 1134 vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) ); … … 1170 1138 #endif 1171 1139 1172 #if VPS_PROFILE_OUTPUT_LAYERS1173 1140 READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); vps->setMoreOutputLayerSetsThanDefaultFlag( uiCode ? true : false ); 1174 1141 Int numOutputLayerSets = 0; … … 1231 1198 READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" ); vps->setProfileLevelTierIdx(i, uiCode); 1232 1199 } 1233 #else 1234 #if VPS_EXTN_OP_LAYER_SETS 1235 // Target output layer signalling 1236 READ_UVLC( uiCode, "vps_num_output_layer_sets"); vps->setNumOutputLayerSets(uiCode); 1237 for(i = 0; i < vps->getNumOutputLayerSets(); i++) 1238 { 1239 #if VPS_OUTPUT_LAYER_SET_IDX 1240 READ_UVLC( uiCode, "vps_output_layer_set_idx_minus1[i]"); vps->setOutputLayerSetIdx(i, uiCode + 1); 1241 #else 1242 READ_UVLC( uiCode, "vps_output_layer_set_idx[i]"); vps->setOutputLayerSetIdx(i, uiCode); 1243 #endif 1244 Int lsIdx = vps->getOutputLayerSetIdx(i); 1245 for(j = 0; j <= vps->getMaxLayerId(); j++) 1246 { 1247 if(vps->getLayerIdIncludedFlag(lsIdx, j)) 1248 { 1249 READ_FLAG( uiCode, "vps_output_layer_flag[lsIdx][j]"); vps->setOutputLayerFlag(lsIdx, j, uiCode); 1250 } 1251 } 1252 } 1253 #endif 1254 #endif 1200 1255 1201 #if REPN_FORMAT_IN_VPS 1256 1202 READ_FLAG( uiCode, "rep_format_idx_present_flag"); … … 1314 1260 #endif 1315 1261 1316 #if !VPS_MOVE_DIR_DEPENDENCY_FLAG1317 #if VPS_EXTN_DIRECT_REF_LAYERS1318 // For layer 01319 vps->setNumDirectRefLayers(0, 0);1320 // For other layers1321 for( Int layerCtr = 1; layerCtr <= vps->getMaxLayers() - 1; layerCtr++)1322 {1323 UInt numDirectRefLayers = 0;1324 for( Int refLayerCtr = 0; refLayerCtr < layerCtr; refLayerCtr++)1325 {1326 READ_FLAG(uiCode, "direct_dependency_flag[i][j]" ); vps->setDirectDependencyFlag(layerCtr, refLayerCtr, uiCode? true : false);1327 if(uiCode)1328 {1329 vps->setRefLayerId(layerCtr, numDirectRefLayers, refLayerCtr);1330 numDirectRefLayers++;1331 }1332 }1333 vps->setNumDirectRefLayers(layerCtr, numDirectRefLayers);1334 }1335 #endif1336 #endif1337 1262 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 1338 1263 READ_UVLC( uiCode, "direct_dep_type_len_minus2"); vps->setDirectDepTypeLen(uiCode+2); … … 1483 1408 } 1484 1409 #endif 1410 #endif //SVC_EXTENSION 1411 1485 1412 Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager) 1486 1413 { … … 1555 1482 if(!rpcSlice->getDependentSliceSegmentFlag()) 1556 1483 { 1484 #if SVC_EXTENSION 1557 1485 #if POC_RESET_FLAG 1558 1486 Int iBits = 0; … … 1572 1500 } 1573 1501 #else 1574 #if SH_DISCARDABLE_FLAG1575 1502 if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits()>0) 1576 1503 { … … 1581 1508 READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored 1582 1509 } 1583 #else 1510 #endif 1511 #else //SVC_EXTENSION 1584 1512 for (Int i = 0; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 1585 1513 { 1586 1514 READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored 1587 1515 } 1588 #endif 1589 #endif 1516 #endif //SVC_EXTENSION 1590 1517 1591 1518 READ_UVLC ( uiCode, "slice_type" ); rpcSlice->setSliceType((SliceType)uiCode); -
branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecCAVLC.h
r466 r467 72 72 Void parseQtRootCbf ( UInt uiAbsPartIdx, UInt& uiQtRootCbf ); 73 73 Void parseVPS ( TComVPS* pcVPS ); 74 #if SPS_EXTENSION 74 75 #if VPS_EXTNS 75 76 Void parseVPSExtension ( TComVPS* pcVPS ); … … 82 83 Void parseRepFormat ( RepFormat *repFormat ); 83 84 #endif 84 #if SPS_SUB_LAYER_INFO85 85 Void parseSPS ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager ); 86 #else 86 Void parseSPSExtension ( TComSPS* pcSPS ); 87 #else //SVC_EXTENSION 87 88 Void parseSPS ( TComSPS* pcSPS ); 88 #endif 89 #if SPS_EXTENSION 90 Void parseSPSExtension ( TComSPS* pcSPS ); 91 #endif 89 #endif //SVC_EXTENSION 92 90 Void parsePPS ( TComPPS* pcPPS); 93 91 Void parseVUI ( TComVUI* pcVUI, TComSPS* pcSPS ); -
branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecEntropy.h
r466 r467 66 66 67 67 virtual Void parseVPS ( TComVPS* pcVPS ) = 0; 68 #if S PS_SUB_LAYER_INFO68 #if SVC_EXTENSION 69 69 virtual Void parseSPS ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager ) = 0; 70 70 #else … … 134 134 Void resetEntropy ( TComSlice* p) { m_pcEntropyDecoderIf->resetEntropy(p); } 135 135 Void decodeVPS ( TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parseVPS(pcVPS); } 136 #if S PS_SUB_LAYER_INFO136 #if SVC_EXTENSION 137 137 Void decodeSPS ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager ) { m_pcEntropyDecoderIf->parseSPS(pcSPS, parameterSetManager); } 138 138 #else -
branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecSbac.h
r466 r467 76 76 Void setBitstream ( TComInputBitstream* p ) { m_pcBitstream = p; m_pcTDecBinIf->init( p ); } 77 77 Void parseVPS ( TComVPS* /*pcVPS*/ ) {} 78 #if S PS_SUB_LAYER_INFO78 #if SVC_EXTENSION 79 79 Void parseSPS ( TComSPS* /*pcSPS*/, ParameterSetManagerDecoder * /*parameterSetManager*/ ) {} 80 80 #else
Note: See TracChangeset for help on using the changeset viewer.