Changeset 494 in SHVCSoftware for trunk/source/Lib/TLibDecoder
- Timestamp:
- 16 Nov 2013, 22:09:25 (11 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/SHM-4.0-dev (added) merged: 444-493
- Property svn:mergeinfo changed
-
trunk/source
- Property svn:mergeinfo changed
/branches/SHM-4.0-dev/source (added) merged: 445-471,473-479,481-486,488-493
- Property svn:mergeinfo changed
-
trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
r442 r494 187 187 assert(uiCode <= 63); 188 188 pcPPS->setPPSId (uiCode); 189 189 190 190 READ_UVLC( uiCode, "pps_seq_parameter_set_id"); 191 191 assert(uiCode <= 15); 192 192 pcPPS->setSPSId (uiCode); 193 193 194 194 READ_FLAG( uiCode, "dependent_slice_segments_enabled_flag" ); pcPPS->setDependentSliceSegmentsEnabledFlag ( uiCode == 1 ); 195 195 READ_FLAG( uiCode, "output_flag_present_flag" ); pcPPS->setOutputFlagPresentFlag( uiCode==1 ); … … 293 293 294 294 #if IL_SL_SIGNALLING_N0371 295 pcPPS->setPPS( pcPPS->getLayerId(), pcPPS ); 295 pcPPS->setPPS( pcPPS->getLayerId(), pcPPS ); 296 296 #endif 297 297 … … 301 301 pcPPS->getScalingList()->setLayerId( pcPPS->getLayerId() ); 302 302 303 if( pcPPS->getLayerId() > 0 ) 303 if( pcPPS->getLayerId() > 0 ) 304 304 { 305 305 READ_FLAG( uiCode, "pps_pred_scaling_list_flag" ); pcPPS->setPredScalingListFlag( uiCode ? true : false ); 306 306 pcPPS->getScalingList()->setPredScalingListFlag( pcPPS->getPredScalingListFlag() ); 307 307 308 308 if( pcPPS->getPredScalingListFlag() ) 309 309 { … … 319 319 } 320 320 321 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 321 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 322 322 // pps_infer_scaling_list_flag in the PPS is equal to 1, pps_infer_scaling_list_flag shall be equal to 0 for the PPS that is active for the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id 323 323 assert( pcPPS->getPPS( pcPPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false ); 324 324 325 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 325 // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 326 326 // the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB 327 327 assert( pcPPS->getSPS()->getVPS()->getScalingListLayerDependency( pcPPS->getLayerId(), pcPPS->getScalingListRefLayerId() ) == true ); … … 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 { … … 560 554 READ_CODE( 3, uiCode, "sps_max_sub_layers_minus1" ); pcSPS->setMaxTLayers ( uiCode+1 ); 561 555 assert(uiCode <= 6); 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 … … 598 592 if( pcSPS->getLayerId() > 0 ) 599 593 { 600 READ_FLAG( uiCode, "update_rep_format_flag" ); 594 READ_FLAG( uiCode, "update_rep_format_flag" ); 601 595 pcSPS->setUpdateRepFormatFlag( uiCode ? true : false ); 602 596 } … … 605 599 pcSPS->setUpdateRepFormatFlag( true ); 606 600 } 607 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 608 { 609 #endif 601 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 602 { 603 #endif 604 #if AUXILIARY_PICTURES 605 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( ChromaFormat(uiCode) ); 606 #else 610 607 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( uiCode ); 608 #endif 611 609 assert(uiCode <= 3); 612 610 // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream … … 639 637 } 640 638 #if REPN_FORMAT_IN_VPS 641 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 639 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 642 640 { 643 641 #endif … … 659 657 UInt subLayerOrderingInfoPresentFlag; 660 658 READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag"); 661 659 662 660 for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++) 663 661 { … … 728 726 } 729 727 730 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 728 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 731 729 // sps_infer_scaling_list_flag in the SPS is equal to 1, sps_infer_scaling_list_flag shall be equal to 0 for the SPS that is active for the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id 732 730 assert( pcSPS->getSPS( pcSPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false ); 733 731 734 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 732 // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 735 733 // the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB 736 734 assert( pcSPS->getVPS()->getScalingListLayerDependency( pcSPS->getLayerId(), pcSPS->getScalingListRefLayerId() ) == true ); … … 841 839 assert( uiCode == 0 ); 842 840 #endif 843 #if SCALED_REF_LAYER_OFFSETS844 841 if( pcSPS->getLayerId() > 0 ) 845 842 { 846 Int iCode; 843 Int iCode; 847 844 READ_UVLC( uiCode, "num_scaled_ref_layer_offsets" ); pcSPS->setNumScaledRefLayerOffsets(uiCode); 848 845 for(Int i = 0; i < pcSPS->getNumScaledRefLayerOffsets(); i++) … … 855 852 } 856 853 } 857 #endif858 854 #if M0463_VUI_EXT_ILP_REF 859 855 //// sps_extension_vui_parameters( ) 860 856 if( pcSPS->getVuiParameters()->getBitstreamRestrictionFlag() ) 861 { 862 READ_UVLC( uiCode, "num_ilp_restricted_ref_layers" ); pcSPS->setNumIlpRestrictedRefLayers( uiCode ); 863 for( Int i = 0; i < pcSPS->getNumIlpRestrictedRefLayers( ); i++ ) 864 { 865 READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcSPS->setMinSpatialSegmentOffsetPlus1( i, uiCode ); 866 if( pcSPS->getMinSpatialSegmentOffsetPlus1( i ) > 0 ) 867 { 868 READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[ i ]"); pcSPS->setCtuBasedOffsetEnabledFlag(i, uiCode == 1 ); 869 if( pcSPS->getCtuBasedOffsetEnabledFlag( i ) ) 870 { 871 READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[ i ]"); pcSPS->setMinHorizontalCtuOffsetPlus1( i, uiCode ); 872 } 873 } 874 } 875 } 857 { 858 READ_UVLC( uiCode, "num_ilp_restricted_ref_layers" ); pcSPS->setNumIlpRestrictedRefLayers( uiCode ); 859 for( Int i = 0; i < pcSPS->getNumIlpRestrictedRefLayers( ); i++ ) 860 { 861 READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcSPS->setMinSpatialSegmentOffsetPlus1( i, uiCode ); 862 if( pcSPS->getMinSpatialSegmentOffsetPlus1( i ) > 0 ) 863 { 864 READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[ i ]"); pcSPS->setCtuBasedOffsetEnabledFlag(i, uiCode == 1 ); 865 if( pcSPS->getCtuBasedOffsetEnabledFlag( i ) ) 866 { 867 READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[ i ]"); pcSPS->setMinHorizontalCtuOffsetPlus1( i, uiCode ); 868 } 869 } 870 } 871 } 876 872 //// sps_extension_vui_parameters( ) END 877 873 #endif … … 1000 996 } 1001 997 998 #if SVC_EXTENSION 1002 999 #if VPS_EXTNS 1003 1000 Void TDecCavlc::parseVPSExtension(TComVPS *vps) … … 1018 1015 vps->setNumScalabilityTypes(numScalabilityTypes); 1019 1016 1020 #if VPS_SPLIT_FLAG1021 1017 for(j = 0; j < numScalabilityTypes - vps->getSplittingFlag(); j++) 1022 #else1023 for(j = 0; j < numScalabilityTypes; j++)1024 #endif1025 1018 { 1026 1019 READ_CODE( 3, uiCode, "dimension_id_len_minus1[j]" ); vps->setDimensionIdLen(j, uiCode + 1); 1027 1020 } 1028 #if VPS_SPLIT_FLAG 1021 1029 1022 if(vps->getSplittingFlag()) 1030 1023 { … … 1038 1031 numBits = 6; 1039 1032 } 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 1033 1052 1034 READ_FLAG( uiCode, "vps_nuh_layer_id_present_flag" ); vps->setNuhLayerIdPresentFlag(uiCode ? true : false); … … 1066 1048 vps->setLayerIdInVps(vps->getLayerIdInNuh(i), i); 1067 1049 1068 #if VPS_SPLIT_FLAG 1069 if(!vps->getSplittingFlag()) 1070 #endif 1050 if( !vps->getSplittingFlag() ) 1051 { 1071 1052 for(j = 0; j < numScalabilityTypes; j++) 1072 1053 { 1073 1054 READ_CODE( vps->getDimensionIdLen(j), uiCode, "dimension_id[i][j]" ); vps->setDimensionId(i, j, uiCode); 1055 #if !AUXILIARY_PICTURES 1074 1056 assert( uiCode <= vps->getMaxLayerId() ); 1075 } 1076 } 1077 #endif 1078 #if VIEW_ID_RELATED_SIGNALING 1079 // if ( pcVPS->getNumViews() > 1 ) 1080 // However, this is a bug in the text since, view_id_len_minus1 is needed to parse view_id_val. 1057 #endif 1058 } 1059 } 1060 } 1061 #endif 1062 #if VIEW_ID_RELATED_SIGNALING 1063 // if ( pcVPS->getNumViews() > 1 ) 1064 // However, this is a bug in the text since, view_id_len_minus1 is needed to parse view_id_val. 1081 1065 { 1082 1066 READ_CODE( 4, uiCode, "view_id_len_minus1" ); vps->setViewIdLenMinus1( uiCode ); … … 1088 1072 } 1089 1073 #endif 1090 #if VPS_MOVE_DIR_DEPENDENCY_FLAG1091 1074 #if VPS_EXTN_DIRECT_REF_LAYERS 1092 1075 // For layer 0 … … 1108 1091 } 1109 1092 #endif 1110 #endif1111 1093 #if JCTVC_M0203_INTERLAYER_PRED_IDC 1112 1094 #if N0120_MAX_TID_REF_PRESENT_FLAG … … 1116 1098 for(i = 0; i < vps->getMaxLayers() - 1; i++) 1117 1099 { 1100 #if O0225_MAX_TID_FOR_REF_LAYERS 1101 for( j = i+1; j <= vps->getMaxLayers() - 1; j++) 1102 { 1103 if(vps->getDirectDependencyFlag(j, i)) 1104 { 1105 READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i][j]" ); vps->setMaxTidIlRefPicsPlus1(i, j, uiCode); 1106 assert( uiCode <= vps->getMaxTLayers()); 1107 } 1108 } 1109 #else 1118 1110 READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i]" ); vps->setMaxTidIlRefPicsPlus1(i, uiCode); 1119 1111 #if N0120_MAX_TID_REF_CFG 1120 1112 assert( uiCode <= vps->getMaxTLayers()); 1121 #else 1113 #else 1122 1114 assert( uiCode <= vps->getMaxTLayers()+ 1 ); 1115 #endif 1123 1116 #endif 1124 1117 } 1125 1118 } 1126 else 1119 else 1127 1120 { 1128 1121 for(i = 0; i < vps->getMaxLayers() - 1; i++) 1129 1122 { 1123 #if O0225_MAX_TID_FOR_REF_LAYERS 1124 for( j = i+1; j <= vps->getMaxLayers() - 1; j++) 1125 { 1126 vps->setMaxTidIlRefPicsPlus1(i, j, 7); 1127 } 1128 #else 1130 1129 vps->setMaxTidIlRefPicsPlus1(i, 7); 1130 #endif 1131 1131 } 1132 1132 } … … 1134 1134 for(i = 0; i < vps->getMaxLayers() - 1; i++) 1135 1135 { 1136 #if O0225_MAX_TID_FOR_REF_LAYERS 1137 for( j = i+1; j <= vps->getMaxLayers() - 1; j++) 1138 { 1139 if(vps->getDirectDependencyFlag(j, i)) 1140 { 1141 READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i][j]" ); vps->setMaxTidIlRefPicsPlus1(i, j, uiCode); 1142 assert( uiCode <= vps->getMaxTLayers() ); 1143 } 1144 } 1145 #else 1136 1146 READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i]" ); vps->setMaxTidIlRefPicsPlus1(i, uiCode); 1137 1147 assert( uiCode <= vps->getMaxTLayers() ); 1148 #endif 1138 1149 } 1139 1150 #endif … … 1144 1155 #if VPS_EXTN_PROFILE_INFO 1145 1156 // Profile-tier-level signalling 1146 #if VPS_PROFILE_OUTPUT_LAYERS1147 1157 READ_CODE( 10, uiCode, "vps_number_layer_sets_minus1" ); assert( uiCode == (vps->getNumLayerSets() - 1) ); 1148 1158 READ_CODE( 6, uiCode, "vps_num_profile_tier_level_minus1"); vps->setNumProfileTierLevel( uiCode + 1 ); 1149 1159 vps->getPTLForExtnPtr()->resize(vps->getNumProfileTierLevel()); 1150 1160 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 1161 { 1156 1162 READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); vps->setProfilePresentFlag(idx, uiCode ? true : false); 1157 1163 if( !vps->getProfilePresentFlag(idx) ) 1158 1164 { 1159 #if VPS_PROFILE_OUTPUT_LAYERS1160 1165 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 1166 assert( vps->getProfileLayerSetRef(idx) < idx ); 1167 1165 1168 // Copy profile information as indicated 1166 1169 vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) ); … … 1170 1173 #endif 1171 1174 1172 #if VPS_PROFILE_OUTPUT_LAYERS1173 1175 READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); vps->setMoreOutputLayerSetsThanDefaultFlag( uiCode ? true : false ); 1174 1176 Int numOutputLayerSets = 0; … … 1231 1233 READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" ); vps->setProfileLevelTierIdx(i, uiCode); 1232 1234 } 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 1235 1255 1236 #if REPN_FORMAT_IN_VPS 1256 READ_FLAG( uiCode, "rep_format_idx_present_flag"); 1237 READ_FLAG( uiCode, "rep_format_idx_present_flag"); 1257 1238 vps->setRepFormatIdxPresentFlag( uiCode ? true : false ); 1258 1239 … … 1273 1254 parseRepFormat( vps->getVpsRepFormat(i) ); 1274 1255 } 1275 1256 1276 1257 // Default assignment for layer 0 1277 1258 vps->setVpsRepFormatIdx( 0, 0 ); … … 1305 1286 vps->setMaxOneActiveRefLayerFlag(uiCode); 1306 1287 #endif 1307 1308 #if N0147_IRAP_ALIGN_FLAG 1288 #if O0062_POC_LSB_NOT_PRESENT_FLAG 1289 for(i = 1; i< vps->getMaxLayers(); i++) 1290 { 1291 if( vps->getNumDirectRefLayers( vps->getLayerIdInNuh(i) ) == 0 ) 1292 { 1293 READ_FLAG(uiCode, "poc_lsb_not_present_flag[i]"); 1294 vps->setPocLsbNotPresentFlag(i, uiCode); 1295 } 1296 } 1297 #endif 1298 #if O0215_PHASE_ALIGNMENT 1299 READ_FLAG( uiCode, "cross_layer_phase_alignment_flag"); vps->setPhaseAlignFlag( uiCode == 1 ? true : false ); 1300 #endif 1301 1302 #if N0147_IRAP_ALIGN_FLAG && !IRAP_ALIGN_FLAG_IN_VPS_VUI 1309 1303 READ_FLAG(uiCode, "cross_layer_irap_aligned_flag" ); 1310 1304 vps->setCrossLayerIrapAlignFlag(uiCode); 1311 #endif 1312 1313 #if !VPS_MOVE_DIR_DEPENDENCY_FLAG 1314 #if VPS_EXTN_DIRECT_REF_LAYERS 1315 // For layer 0 1316 vps->setNumDirectRefLayers(0, 0); 1317 // For other layers 1318 for( Int layerCtr = 1; layerCtr <= vps->getMaxLayers() - 1; layerCtr++) 1319 { 1320 UInt numDirectRefLayers = 0; 1321 for( Int refLayerCtr = 0; refLayerCtr < layerCtr; refLayerCtr++) 1322 { 1323 READ_FLAG(uiCode, "direct_dependency_flag[i][j]" ); vps->setDirectDependencyFlag(layerCtr, refLayerCtr, uiCode? true : false); 1324 if(uiCode) 1325 { 1326 vps->setRefLayerId(layerCtr, numDirectRefLayers, refLayerCtr); 1327 numDirectRefLayers++; 1328 } 1329 } 1330 vps->setNumDirectRefLayers(layerCtr, numDirectRefLayers); 1331 } 1332 #endif 1333 #endif 1305 #endif 1306 1334 1307 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 1335 1308 READ_UVLC( uiCode, "direct_dep_type_len_minus2"); vps->setDirectDepTypeLen(uiCode+2); … … 1351 1324 { 1352 1325 for(j = 0; j < i; j++) 1353 { 1326 { 1354 1327 vps->setScalingListLayerDependency( i, j, vps->checkLayerDependency( i,j ) ); 1355 1328 } … … 1370 1343 } 1371 1344 parseVPSVUI(vps); 1372 #endif 1345 #endif 1373 1346 } 1374 1347 } … … 1378 1351 { 1379 1352 UInt uiCode; 1353 #if AUXILIARY_PICTURES 1354 READ_CODE( 2, uiCode, "chroma_format_idc" ); repFormat->setChromaFormatVpsIdc( ChromaFormat(uiCode) ); 1355 #else 1380 1356 READ_CODE( 2, uiCode, "chroma_format_idc" ); repFormat->setChromaFormatVpsIdc( uiCode ); 1357 #endif 1381 1358 1382 1359 if( repFormat->getChromaFormatVpsIdc() == 3 ) … … 1387 1364 READ_CODE ( 16, uiCode, "pic_width_in_luma_samples" ); repFormat->setPicWidthVpsInLumaSamples ( uiCode ); 1388 1365 READ_CODE ( 16, uiCode, "pic_height_in_luma_samples" ); repFormat->setPicHeightVpsInLumaSamples( uiCode ); 1389 1366 1390 1367 READ_CODE( 4, uiCode, "bit_depth_luma_minus8" ); repFormat->setBitDepthVpsLuma ( uiCode + 8 ); 1391 1368 READ_CODE( 4, uiCode, "bit_depth_chroma_minus8" ); repFormat->setBitDepthVpsChroma( uiCode + 8 ); … … 1398 1375 UInt i,j; 1399 1376 UInt uiCode; 1377 #if IRAP_ALIGN_FLAG_IN_VPS_VUI 1378 READ_FLAG(uiCode, "cross_layer_irap_aligned_flag" ); 1379 vps->setCrossLayerIrapAlignFlag(uiCode); 1380 #endif 1400 1381 #if VPS_VUI_BITRATE_PICRATE 1401 1382 READ_FLAG( uiCode, "bit_rate_present_vps_flag" ); vps->setBitRatePresentVpsFlag( uiCode ? true : false ); … … 1453 1434 for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++) 1454 1435 { 1455 READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1)); 1456 } 1457 } 1458 #endif 1436 READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1)); 1437 } 1438 } 1439 #endif 1459 1440 #if N0160_VUI_EXT_ILP_REF 1460 READ_FLAG( uiCode, "num_ilp_restricted_ref_layers" ); vps->setNumIlpRestrictedRefLayers( uiCode == 1 ); 1441 READ_FLAG( uiCode, "num_ilp_restricted_ref_layers" ); vps->setNumIlpRestrictedRefLayers( uiCode == 1 ); 1461 1442 if( vps->getNumIlpRestrictedRefLayers()) 1462 1443 { … … 1465 1446 for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++) 1466 1447 { 1467 READ_UVLC( uiCode, "min_spatial_segment_offset_plus1[i][j]" ); vps->setMinSpatialSegmentOffsetPlus1( i, j, uiCode ); 1468 if( vps->getMinSpatialSegmentOffsetPlus1(i,j ) > 0 ) 1469 { 1470 READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[i][j]"); vps->setCtuBasedOffsetEnabledFlag(i, j, uiCode == 1 ); 1471 if(vps->getCtuBasedOffsetEnabledFlag(i,j)) 1448 READ_UVLC( uiCode, "min_spatial_segment_offset_plus1[i][j]" ); vps->setMinSpatialSegmentOffsetPlus1( i, j, uiCode ); 1449 if( vps->getMinSpatialSegmentOffsetPlus1(i,j ) > 0 ) 1450 { 1451 READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[i][j]"); vps->setCtuBasedOffsetEnabledFlag(i, j, uiCode == 1 ); 1452 if(vps->getCtuBasedOffsetEnabledFlag(i,j)) 1472 1453 { 1473 READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[i][j]"); vps->setMinHorizontalCtuOffsetPlus1( i,j, uiCode ); 1454 READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[i][j]"); vps->setMinHorizontalCtuOffsetPlus1( i,j, uiCode ); 1474 1455 } 1475 } 1476 } 1477 } 1478 } 1479 #endif 1480 } 1481 #endif 1456 } 1457 } 1458 } 1459 } 1460 #endif 1461 } 1462 #endif 1463 #endif //SVC_EXTENSION 1464 1482 1465 Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager) 1483 1466 { … … 1552 1535 if(!rpcSlice->getDependentSliceSegmentFlag()) 1553 1536 { 1537 #if SVC_EXTENSION 1554 1538 #if POC_RESET_FLAG 1555 Int iBits = 0; 1539 Int iBits = 0; 1556 1540 if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits) 1557 1541 { … … 1569 1553 } 1570 1554 #else 1571 #if SH_DISCARDABLE_FLAG1572 1555 if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits()>0) 1573 1556 { … … 1578 1561 READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored 1579 1562 } 1580 #else 1563 #endif 1564 #else //SVC_EXTENSION 1581 1565 for (Int i = 0; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 1582 1566 { 1583 1567 READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored 1584 1568 } 1585 #endif 1586 #endif 1569 #endif //SVC_EXTENSION 1587 1570 1588 1571 READ_UVLC ( uiCode, "slice_type" ); rpcSlice->setSliceType((SliceType)uiCode); … … 1611 1594 } 1612 1595 #if N0065_LAYER_POC_ALIGNMENT 1596 #if SHM_FIX7 1597 Int iPOClsb = 0; 1598 #endif 1599 #if O0062_POC_LSB_NOT_PRESENT_FLAG 1600 if( ( rpcSlice->getLayerId() > 0 && !rpcSlice->getVPS()->getPocLsbNotPresentFlag( rpcSlice->getVPS()->getLayerIdInVps(rpcSlice->getLayerId())) ) || !rpcSlice->getIdrPicFlag()) 1601 #else 1613 1602 if( rpcSlice->getLayerId() > 0 || !rpcSlice->getIdrPicFlag() ) 1603 #endif 1614 1604 #else 1615 1605 else … … 1617 1607 { 1618 1608 READ_CODE(sps->getBitsForPOC(), uiCode, "pic_order_cnt_lsb"); 1609 #if SHM_FIX7 1610 iPOClsb = uiCode; 1611 #else 1619 1612 Int iPOClsb = uiCode; 1613 #endif 1620 1614 Int iPrevPOC = rpcSlice->getPrevTid0POC(); 1621 1615 Int iMaxPOClsb = 1<< sps->getBitsForPOC(); … … 1645 1639 1646 1640 #if N0065_LAYER_POC_ALIGNMENT 1641 #if SHM_FIX7 1642 } 1643 #endif 1647 1644 if( !rpcSlice->getIdrPicFlag() ) 1648 1645 { … … 1737 1734 Int pocLTCurr = rpcSlice->getPOC() - deltaPocMSBCycleLT * maxPicOrderCntLSB 1738 1735 - iPOClsb + pocLsbLt; 1736 1739 1737 rps->setPOC (j, pocLTCurr); 1740 1738 rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLTCurr); … … 1746 1744 rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLsbLt); 1747 1745 rps->setCheckLTMSBPresent(j,false); 1748 1746 1749 1747 // reset deltaPocMSBCycleLT for first LTRP from slice header if MSB not present 1750 1748 if( j == offset+(numOfLtrp-numLtrpInSPS)-1 ) … … 1779 1777 rpcSlice->setEnableTMVPFlag(false); 1780 1778 } 1781 #if N0065_LAYER_POC_ALIGNMENT 1779 #if N0065_LAYER_POC_ALIGNMENT && !SHM_FIX7 1782 1780 } 1783 1781 #endif … … 1788 1786 rpcSlice->setActiveNumILRRefIdx(0); 1789 1787 #if ILP_SSH_SIG 1788 #if ILP_SSH_SIG_FIX 1789 if((sps->getLayerId() > 0) && !(rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag()) && (rpcSlice->getNumILRRefIdx() > 0) ) 1790 #else 1790 1791 if((sps->getLayerId() > 0) && rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() && (rpcSlice->getNumILRRefIdx() > 0) ) 1792 #endif 1791 1793 #else 1792 1794 if((sps->getLayerId() > 0) && (rpcSlice->getNumILRRefIdx() > 0) ) … … 1841 1843 } 1842 1844 #if ILP_SSH_SIG 1845 #if ILP_SSH_SIG_FIX 1846 else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == true ) 1847 #else 1843 1848 else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == false ) 1849 #endif 1844 1850 { 1845 1851 rpcSlice->setInterLayerPredEnabledFlag(true); … … 1870 1876 { 1871 1877 READ_FLAG(uiCode, "slice_sao_luma_flag"); rpcSlice->setSaoEnabledFlag((Bool)uiCode); 1878 #if AUXILIARY_PICTURES 1879 ChromaFormat format; 1880 #if REPN_FORMAT_IN_VPS 1881 if( ( sps->getLayerId() == 0 ) || sps->getUpdateRepFormatFlag() ) 1882 { 1883 format = sps->getChromaFormatIdc(); 1884 } 1885 else 1886 { 1887 format = rpcSlice->getVPS()->getVpsRepFormat( rpcSlice->getVPS()->getVpsRepFormatIdx(sps->getLayerId()) )->getChromaFormatVpsIdc(); 1888 } 1889 #else 1890 format = sps->getChromaFormatIdc(); 1891 #endif 1892 if (format != CHROMA_400) 1893 { 1894 #endif 1872 1895 READ_FLAG(uiCode, "slice_sao_chroma_flag"); rpcSlice->setSaoEnabledFlagChroma((Bool)uiCode); 1896 #if AUXILIARY_PICTURES 1897 } 1898 else 1899 { 1900 rpcSlice->setSaoEnabledFlagChroma(false); 1901 } 1902 #endif 1873 1903 } 1874 1904 … … 2069 2099 2070 2100 #if REPN_FORMAT_IN_VPS 2101 #if O0194_DIFFERENT_BITDEPTH_EL_BL 2102 g_bitDepthYLayer[rpcSlice->getLayerId()] = rpcSlice->getBitDepthY(); 2103 g_bitDepthCLayer[rpcSlice->getLayerId()] = rpcSlice->getBitDepthC(); 2104 #endif 2071 2105 assert( rpcSlice->getSliceQp() >= -rpcSlice->getQpBDOffsetY() ); 2072 2106 #else … … 2179 2213 { 2180 2214 Int endOfSliceHeaderLocation = m_pcBitstream->getByteLocation(); 2181 2215 2182 2216 // Adjust endOfSliceHeaderLocation to account for emulation prevention bytes in the slice segment header 2183 2217 for ( UInt curByteIdx = 0; curByteIdx<m_pcBitstream->numEmulationPreventionBytesRead(); curByteIdx++ ) … … 2465 2499 SliceType eSliceType = pcSlice->getSliceType(); 2466 2500 Int iNbRef = (eSliceType == B_SLICE ) ? (2) : (1); 2501 #if SVC_EXTENSION 2502 UInt uiLog2WeightDenomLuma = 0, uiLog2WeightDenomChroma = 0; 2503 #else 2467 2504 UInt uiLog2WeightDenomLuma, uiLog2WeightDenomChroma; 2505 #endif 2468 2506 UInt uiTotalSignalledWeightFlags = 0; 2469 2507 2470 2508 Int iDeltaDenom; 2509 #if AUXILIARY_PICTURES 2510 if (pcSlice->getChromaFormatIdc() == CHROMA_400) 2511 { 2512 bChroma = false; 2513 } 2514 #endif 2471 2515 // decode delta_luma_log2_weight_denom : 2472 2516 READ_UVLC( uiLog2WeightDenomLuma, "luma_log2_weight_denom" ); // ue(v): luma_log2_weight_denom … … 2488 2532 2489 2533 wp[0].uiLog2WeightDenom = uiLog2WeightDenomLuma; 2534 #if AUXILIARY_PICTURES 2535 if (!bChroma) 2536 { 2537 wp[1].uiLog2WeightDenom = 0; 2538 wp[2].uiLog2WeightDenom = 0; 2539 } 2540 else 2541 { 2542 #endif 2490 2543 wp[1].uiLog2WeightDenom = uiLog2WeightDenomChroma; 2491 2544 wp[2].uiLog2WeightDenom = uiLog2WeightDenomChroma; 2545 #if AUXILIARY_PICTURES 2546 } 2547 #endif 2492 2548 2493 2549 UInt uiCode; … … 2585 2641 #if IL_SL_SIGNALLING_N0371 2586 2642 if ( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() ) 2587 { 2643 { 2588 2644 READ_FLAG( code, "scaling_list_pred_mode_flag"); 2589 2645 scalingListPredModeFlag = (code) ? true : false; -
trunk/source/Lib/TLibDecoder/TDecCAVLC.h
r442 r494 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 ); -
trunk/source/Lib/TLibDecoder/TDecCu.cpp
r442 r494 616 616 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr(); 617 617 } 618 #if O0194_DIFFERENT_BITDEPTH_EL_BL 619 // Bug-fix 620 #if REPN_FORMAT_IN_VPS 621 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), eText, pcCU->getSlice()->getQpBDOffsetC(), curChromaQpOffset ); 622 #else 618 623 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 624 #endif 625 #else 626 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 627 #endif 619 628 620 629 Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)eText]; … … 768 777 // Cb and Cr 769 778 Int curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb(); 779 #if O0194_DIFFERENT_BITDEPTH_EL_BL 780 // Bug-fix 781 #if REPN_FORMAT_IN_VPS 782 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getQpBDOffsetC(), curChromaQpOffset ); 783 #else 770 784 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 785 #endif 786 #else 787 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 788 #endif 771 789 772 790 uiWidth >>= 1; … … 776 794 777 795 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr(); 796 #if O0194_DIFFERENT_BITDEPTH_EL_BL 797 // Bug-fix 798 #if REPN_FORMAT_IN_VPS 799 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getQpBDOffsetC(), curChromaQpOffset ); 800 #else 778 801 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 802 #endif 803 #else 804 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 805 #endif 779 806 780 807 piCoeff = pcCU->getCoeffCr(); pResi = m_ppcYuvResi[uiDepth]->getCrAddr(); -
trunk/source/Lib/TLibDecoder/TDecEntropy.h
r345 r494 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 -
trunk/source/Lib/TLibDecoder/TDecSbac.cpp
r442 r494 356 356 uiHeight = pcCU->getHeight(uiAbsPartIdx)/2; 357 357 uiSampleBits = pcCU->getSlice()->getSPS()->getPCMBitDepthChroma(); 358 #if AUXILIARY_PICTURES 359 ChromaFormat format = pcCU->getSlice()->getChromaFormatIdc(); 360 UInt uiGrayVal = 1 << (uiSampleBits - 1); 361 #endif 358 362 359 363 for(uiY = 0; uiY < uiHeight; uiY++) … … 362 366 { 363 367 UInt uiSample; 368 #if AUXILIARY_PICTURES 369 if (format == CHROMA_400) 370 uiSample = uiGrayVal; 371 else 372 #endif 364 373 m_pcTDecBinIf->xReadPCMCode(uiSampleBits, uiSample); 365 374 piPCMSample[uiX] = uiSample; … … 378 387 { 379 388 UInt uiSample; 389 #if AUXILIARY_PICTURES 390 if (format == CHROMA_400) 391 uiSample = uiGrayVal; 392 else 393 #endif 380 394 m_pcTDecBinIf->xReadPCMCode(uiSampleBits, uiSample); 381 395 piPCMSample[uiX] = uiSample; … … 665 679 UInt uiSymbol; 666 680 681 #if AUXILIARY_PICTURES 682 if ( pcCU->getSlice()->getChromaFormatIdc() == CHROMA_400 ) 683 { 684 uiSymbol = DC_IDX; 685 } 686 else 687 { 688 #endif 667 689 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUChromaPredSCModel.get( 0, 0, 0 ) ); 668 690 … … 681 703 } 682 704 } 705 #if AUXILIARY_PICTURES 706 } 707 #endif 683 708 pcCU->setChromIntraDirSubParts( uiSymbol, uiAbsPartIdx, uiDepth ); 684 709 return; … … 885 910 UInt uiSymbol; 886 911 const UInt uiCtx = pcCU->getCtxQtCbf( eType, uiTrDepth ); 912 #if AUXILIARY_PICTURES 913 if (pcCU->getSlice()->getChromaFormatIdc() == CHROMA_400 && (eType == TEXT_CHROMA_U || eType == TEXT_CHROMA_V)) 914 { 915 uiSymbol = 0; 916 } 917 else 918 { 919 #endif 887 920 m_pcTDecBinIf->decodeBin( uiSymbol , m_cCUQtCbfSCModel.get( 0, eType ? TEXT_CHROMA: eType, uiCtx ) ); 921 #if AUXILIARY_PICTURES 922 } 923 #endif 888 924 889 925 DTRACE_CABAC_VL( g_nSymbolCounter++ ) -
trunk/source/Lib/TLibDecoder/TDecSbac.h
r345 r494 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 -
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r442 r494 179 179 180 180 m_cIlpPic[j] = new TComPic; 181 #if AUXILIARY_PICTURES 182 #if REPN_FORMAT_IN_VPS 183 #if SVC_UPSAMPLING 184 m_cIlpPic[j]->create(picWidth, picHeight, slice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, pcSPS, true); 185 #else 186 m_cIlpPic[j]->create(picWidth, picHeight, slice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true); 187 #endif 188 #else 189 #if SVC_UPSAMPLING 190 m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), pcSPS->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, pcSPS, true); 191 #else 192 m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), pcSPS->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true); 193 #endif 194 #endif 195 #else 181 196 #if REPN_FORMAT_IN_VPS 182 197 #if SVC_UPSAMPLING … … 190 205 #else 191 206 m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true); 207 #endif 192 208 #endif 193 209 #endif … … 196 212 m_cIlpPic[j]->getPicSym()->getCU(i)->initCU(m_cIlpPic[j], i); 197 213 } 198 }199 }200 }201 }202 203 204 205 Void TDecTop::setILRPic(TComPic *pcPic)206 {207 for( Int i = 0; i < pcPic->getSlice(0)->getActiveNumILRRefIdx(); i++ )208 {209 Int refLayerIdc = pcPic->getSlice(0)->getInterLayerPredLayerIdc(i);210 211 if(m_cIlpPic[refLayerIdc])212 {213 m_cIlpPic[refLayerIdc]->copyUpsampledPictureYuv(pcPic->getFullPelBaseRec(refLayerIdc), m_cIlpPic[refLayerIdc]->getPicYuvRec());214 m_cIlpPic[refLayerIdc]->getSlice(0)->setPOC(pcPic->getPOC());215 m_cIlpPic[refLayerIdc]->setLayerId(pcPic->getSlice(0)->getBaseColPic(refLayerIdc)->getLayerId()); //set reference layerId216 m_cIlpPic[refLayerIdc]->getPicYuvRec()->setBorderExtension(false);217 m_cIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder();218 for (Int j=0; j<m_cIlpPic[refLayerIdc]->getPicSym()->getNumberOfCUsInFrame(); j++) // set reference CU layerId219 {220 m_cIlpPic[refLayerIdc]->getPicSym()->getCU(j)->setLayerId(m_cIlpPic[refLayerIdc]->getLayerId());221 214 } 222 215 } … … 310 303 #endif 311 304 } 312 #if MAX_ONE_RESAMPLING_DIRECT_LAYERS313 #if SCALABILITY_MASK_E0104314 if(pcSlice->getVPS()->getScalabilityMask(2))315 #else316 if(pcSlice->getVPS()->getScalabilityMask(1))317 #endif318 {319 pcSlice->setPic(rpcPic);320 }321 #endif322 305 } 323 306 } 324 307 #endif 325 308 309 #if AUXILIARY_PICTURES 310 #if REPN_FORMAT_IN_VPS 311 #if SVC_UPSAMPLING 312 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 313 conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true); 314 #else 315 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 316 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 317 #endif 318 #else 319 #if SVC_UPSAMPLING 320 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 321 conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true); 322 #else 323 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 324 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 325 #endif 326 #endif 327 #else 326 328 #if REPN_FORMAT_IN_VPS 327 329 #if SVC_UPSAMPLING … … 341 343 #endif 342 344 #endif 345 #endif 343 346 344 347 rpcPic->getPicSym()->allocSaoParam(&m_cSAO); … … 381 384 rpcPic->destroy(); 382 385 386 #if AUXILIARY_PICTURES 387 #if REPN_FORMAT_IN_VPS 388 #if SVC_UPSAMPLING 389 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 390 conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true); 391 392 #else 393 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 394 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 395 #endif 396 #else 397 #if SVC_UPSAMPLING 398 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 399 conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true); 400 401 #else 402 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 403 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 404 #endif 405 #endif 406 #else 383 407 #if REPN_FORMAT_IN_VPS 384 408 #if SVC_UPSAMPLING … … 398 422 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 399 423 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 424 #endif 400 425 #endif 401 426 #endif … … 473 498 474 499 Int remainingInterLayerReferencesFlag = 0; 500 #if O0225_MAX_TID_FOR_REF_LAYERS 501 for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ ) 502 { 503 Int jLidx = pcSlice->getVPS()->getLayerIdInVps(targetDecLayerIdList[j]); 504 if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(latestDecLayerId,jLidx) - 1 ) 505 { 506 #else 475 507 if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(latestDecLayerId) - 1 ) 476 508 { 477 509 for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ ) 478 510 { 511 #endif 479 512 for ( Int k = 0; k < m_ppcTDecTop[targetDecLayerIdList[j]]->getNumDirectRefLayers(); k++ ) 480 513 { … … 684 717 685 718 #if SVC_EXTENSION 719 m_apcSlicePilot->setSliceIdx( m_uiSliceIdx ); // it should be removed if HM will reflect it in above 686 720 #if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS 687 721 setRefLayerParams(m_apcSlicePilot->getVPS()); … … 754 788 // actual decoding starts here 755 789 xActivateParameterSets(); 756 #if 0 // N0147_IRAP_ALIGN_FLAG Disabled for now! 790 #if !O0223_O0139_IRAP_ALIGN_NO_CONTRAINTS 791 //Note setting O0223_O0139_IRAP_ALIGN_NO_CONTRAINTS to 0 may cause decoder to crash. 757 792 //When cross_layer_irap_aligned_flag is equal to 0, num_extra_slice_header_bits >=1 758 793 if(!m_apcSlicePilot->getVPS()->getCrossLayerIrapAlignFlag() ) … … 1098 1133 pcPic->setLayerId(nalu.m_layerId); 1099 1134 pcSlice->setLayerId(nalu.m_layerId); 1135 pcSlice->setPic(pcPic); 1100 1136 #endif 1101 1137 … … 1113 1149 #endif 1114 1150 1115 #if SVC_EXTENSION 1116 if(m_layerId > 0) 1151 #if SVC_EXTENSION 1152 // Create upsampling reference layer pictures for all possible dependent layers and do it only once for the first slice. 1153 // Other slices might choose which reference pictures to be used for inter-layer prediction 1154 if( m_layerId > 0 && m_uiSliceIdx == 0 ) 1155 { 1156 for( i = 0; i < pcSlice->getNumILRRefIdx(); i++ ) 1157 { 1158 UInt refLayerIdc = i; 1159 #if AVC_BASE 1160 if( pcSlice->getVPS()->getRefLayerId( m_layerId, refLayerIdc ) == 0 && m_parameterSetManagerDecoder[0].getActiveVPS()->getAvcBaseLayerFlag() ) 1161 { 1162 pcSlice->setBaseColPic ( refLayerIdc, *m_ppcTDecTop[0]->getListPic()->begin() ); 1163 #if AVC_SYNTAX 1164 TComPic* pBLPic = pcSlice->getBaseColPic(refLayerIdc); 1165 if( pcSlice->getPOC() == 0 ) 1166 { 1167 // initialize partition order. 1168 UInt* piTmp = &g_auiZscanToRaster[0]; 1169 initZscanToRaster( pBLPic->getPicSym()->getMaxDepth() + 1, 1, 0, piTmp ); 1170 initRasterToZscan( pBLPic->getPicSym()->getMaxCUWidth(), pBLPic->getPicSym()->getMaxCUHeight(), pBLPic->getPicSym()->getMaxDepth() + 1 ); 1171 } 1172 pBLPic->getSlice( 0 )->initBaseLayerRPL( pcSlice ); 1173 pBLPic->readBLSyntax( m_ppcTDecTop[0]->getBLSyntaxFile(), SYNTAX_BYTES ); 1174 #endif 1175 } 1176 else 1177 { 1178 #if VPS_EXTN_DIRECT_REF_LAYERS 1179 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1180 #else 1181 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 ); 1182 #endif 1183 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1184 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); 1185 } 1186 #else 1187 #if VPS_EXTN_DIRECT_REF_LAYERS 1188 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc ); 1189 #else 1190 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 ); 1191 #endif 1192 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 1193 pcSlice->setBaseColPic ( *cListPic, refLayerIdc ); 1194 #endif 1195 1196 const Window &scalEL = pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc); 1197 1198 Int widthBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getWidth(); 1199 Int heightBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getHeight(); 1200 1201 Int widthEL = pcPic->getPicYuvRec()->getWidth() - scalEL.getWindowLeftOffset() - scalEL.getWindowRightOffset(); 1202 Int heightEL = pcPic->getPicYuvRec()->getHeight() - scalEL.getWindowTopOffset() - scalEL.getWindowBottomOffset(); 1203 1204 g_mvScalingFactor[refLayerIdc][0] = widthEL == widthBL ? 4096 : Clip3(-4096, 4095, ((widthEL << 8) + (widthBL >> 1)) / widthBL); 1205 g_mvScalingFactor[refLayerIdc][1] = heightEL == heightBL ? 4096 : Clip3(-4096, 4095, ((heightEL << 8) + (heightBL >> 1)) / heightBL); 1206 1207 g_posScalingFactor[refLayerIdc][0] = ((widthBL << 16) + (widthEL >> 1)) / widthEL; 1208 g_posScalingFactor[refLayerIdc][1] = ((heightBL << 16) + (heightEL >> 1)) / heightEL; 1209 1210 #if SVC_UPSAMPLING 1211 if( pcPic->isSpatialEnhLayer(refLayerIdc) ) 1212 { 1213 #if O0215_PHASE_ALIGNMENT 1214 #if O0194_JOINT_US_BITSHIFT 1215 m_cPrediction.upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc), pcSlice->getVPS()->getPhaseAlignFlag() ); 1216 #else 1217 m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc), pcSlice->getVPS()->getPhaseAlignFlag() ); 1218 #endif 1219 #else 1220 #if O0194_JOINT_US_BITSHIFT 1221 m_cPrediction.upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc) ); 1222 #else 1223 m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc) ); 1224 #endif 1225 #endif 1226 } 1227 else 1228 { 1229 pcPic->setFullPelBaseRec( refLayerIdc, pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec() ); 1230 } 1231 pcSlice->setFullPelBaseRec ( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc) ); 1232 #endif 1233 } 1234 } 1235 1236 if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() ) 1117 1237 { 1118 1238 for( i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ ) … … 1156 1276 #endif 1157 1277 1158 #if SCALED_REF_LAYER_OFFSETS1159 const Window &scalEL = pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc);1160 1161 Int widthBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getWidth();1162 Int heightBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getHeight();1163 1164 Int widthEL = pcPic->getPicYuvRec()->getWidth() - scalEL.getWindowLeftOffset() - scalEL.getWindowRightOffset();1165 Int heightEL = pcPic->getPicYuvRec()->getHeight() - scalEL.getWindowTopOffset() - scalEL.getWindowBottomOffset();1166 #else1167 const Window &confBL = pcSlice->getBaseColPic()->getPicYuvRec()->getConformanceWindow();1168 const Window &confEL = pcPic->getPicYuvRec()->getConformanceWindow();1169 1170 Int widthBL = pcSlice->getBaseColPic()->getPicYuvRec()->getWidth () - confBL.getWindowLeftOffset() - confBL.getWindowRightOffset();1171 Int heightBL = pcSlice->getBaseColPic()->getPicYuvRec()->getHeight() - confBL.getWindowTopOffset() - confBL.getWindowBottomOffset();1172 1173 Int widthEL = pcPic->getPicYuvRec()->getWidth() - confEL.getWindowLeftOffset() - confEL.getWindowRightOffset();1174 Int heightEL = pcPic->getPicYuvRec()->getHeight() - confEL.getWindowTopOffset() - confEL.getWindowBottomOffset();1175 #endif1176 g_mvScalingFactor[refLayerIdc][0] = widthEL == widthBL ? 4096 : Clip3(-4096, 4095, ((widthEL << 8) + (widthBL >> 1)) / widthBL);1177 g_mvScalingFactor[refLayerIdc][1] = heightEL == heightBL ? 4096 : Clip3(-4096, 4095, ((heightEL << 8) + (heightBL >> 1)) / heightBL);1178 1179 g_posScalingFactor[refLayerIdc][0] = ((widthBL << 16) + (widthEL >> 1)) / widthEL;1180 g_posScalingFactor[refLayerIdc][1] = ((heightBL << 16) + (heightEL >> 1)) / heightEL;1181 1182 #if SVC_UPSAMPLING1183 if( pcPic->isSpatialEnhLayer(refLayerIdc) )1184 {1185 #if SCALED_REF_LAYER_OFFSETS1186 m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc) );1187 #else1188 m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec() );1189 #endif1190 }1191 else1192 {1193 pcPic->setFullPelBaseRec( refLayerIdc, pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec() );1194 }1195 1278 pcSlice->setFullPelBaseRec ( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc) ); 1196 #endif 1197 } 1198 } 1199 1200 if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() ) 1201 { 1202 setILRPic(pcPic); 1279 } 1280 1281 pcSlice->setILRPic( m_cIlpPic ); 1282 1203 1283 #if REF_IDX_MFM 1204 1284 #if M0457_COL_PICTURE_SIGNALING … … 1221 1301 } 1222 1302 #endif 1223 #endif 1224 1225 #endif //SVC_EXTENSION 1226 1303 #if MFM_ENCCONSTRAINT 1304 if( pcSlice->getMFMEnabledFlag() ) 1305 { 1306 Int refLayerId = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() )->getLayerId(); 1307 if( refLayerId != pcSlice->getLayerId() ) 1308 { 1309 TComPic* pColBasePic = pcSlice->getBaseColPic( *m_ppcTDecTop[refLayerId]->getListPic() ); 1310 assert( pColBasePic->checkSameRefInfo() == true ); 1311 } 1312 } 1313 #endif 1314 #endif 1315 1227 1316 #if N0147_IRAP_ALIGN_FLAG 1228 1317 if( m_layerId > 0 && pcSlice->getVPS()->getCrossLayerIrapAlignFlag()) … … 1239 1328 } 1240 1329 #endif 1330 #endif //SVC_EXTENSION 1241 1331 1242 1332 // For generalized B … … 1347 1437 #if SVC_EXTENSION 1348 1438 sps->setLayerId(m_layerId); 1349 #endif1350 1351 #if SPS_SUB_LAYER_INFO1352 1439 m_cEntropyDecoder.decodeSPS( sps, &m_parameterSetManagerDecoder[0] ); 1353 #else1354 m_cEntropyDecoder.decodeSPS( sps );1355 #endif1356 #if SVC_EXTENSION1357 1440 m_parameterSetManagerDecoder[m_layerId].storePrefetchedSPS(sps); 1358 #else1359 m_parameterSetManagerDecoder.storePrefetchedSPS(sps);1360 #endif1361 #if SVC_EXTENSION1362 1441 #if !REPN_FORMAT_IN_VPS // ILRP can only be initialized at activation 1363 1442 if(m_numLayer>0) … … 1366 1445 } 1367 1446 #endif 1368 #endif 1447 #else //SVC_EXTENSION 1448 m_cEntropyDecoder.decodeSPS( sps ); 1449 m_parameterSetManagerDecoder.storePrefetchedSPS(sps); 1450 #endif //SVC_EXTENSION 1369 1451 } 1370 1452 … … 1519 1601 Window &conformanceWindow = sps->getConformanceWindow(); 1520 1602 Window defaultDisplayWindow = sps->getVuiParametersPresentFlag() ? sps->getVuiParameters()->getDefaultDisplayWindow() : Window(); 1603 #if AUXILIARY_PICTURES 1521 1604 #if SVC_UPSAMPLING 1522 1605 #if AVC_SYNTAX 1523 1606 pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), conformanceWindow, defaultDisplayWindow, numReorderPics, sps, true); 1607 #else 1608 pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), conformanceWindow, defaultDisplayWindow, numReorderPics, NULL, true); 1609 #endif 1610 #else 1611 pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), onformanceWindow, defaultDisplayWindow, numReorderPics, true); 1612 #endif 1613 #else 1614 #if SVC_UPSAMPLING 1615 #if AVC_SYNTAX 1524 1616 pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), conformanceWindow, defaultDisplayWindow, numReorderPics, sps, true); 1525 1617 #else … … 1528 1620 #else 1529 1621 pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), onformanceWindow, defaultDisplayWindow, numReorderPics, true); 1622 #endif 1623 #endif 1624 1625 #if O0194_DIFFERENT_BITDEPTH_EL_BL 1626 // set AVC BL bit depth, can be an input parameter from the command line 1627 g_bitDepthYLayer[0] = 8; 1628 g_bitDepthCLayer[0] = 8; 1530 1629 #endif 1531 1630 } -
trunk/source/Lib/TLibDecoder/TDecTop.h
r442 r494 213 213 Void xInitILRP(TComSPS *pcSPS); 214 214 #endif 215 Void setILRPic(TComPic *pcPic);216 215 #endif 217 216 #if AVC_SYNTAX || SYNTAX_OUTPUT
Note: See TracChangeset for help on using the changeset viewer.