Changeset 1257 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibEncoder
- Timestamp:
- 14 Jul 2015, 02:49:33 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibEncoder
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r1254 r1257 213 213 } 214 214 } 215 WRITE_FLAG( pcPPS->getLoopFilterAcrossSlicesEnabledFlag()?1 : 0, " loop_filter_across_slices_enabled_flag");215 WRITE_FLAG( pcPPS->getLoopFilterAcrossSlicesEnabledFlag()?1 : 0, "pps_loop_filter_across_slices_enabled_flag"); 216 216 WRITE_FLAG( pcPPS->getDeblockingFilterControlPresentFlag()?1 : 0, "deblocking_filter_control_present_flag"); 217 217 if(pcPPS->getDeblockingFilterControlPresentFlag()) … … 263 263 if (pps_extension_present_flag) 264 264 { 265 #if ENC_DEC_TRACE || RExt__DECODER_DEBUG_BIT_STATISTICS 266 static const char *syntaxStrings[]={ "pps_range_extension_flag", 267 "pps_multilayer_extension_flag", 268 "pps_extension_6bits[0]", 269 "pps_extension_6bits[1]", 270 "pps_extension_6bits[2]", 271 "pps_extension_6bits[3]", 272 "pps_extension_6bits[4]", 273 "pps_extension_6bits[5]" }; 274 #endif 275 265 276 for(Int i=0; i<NUM_PPS_EXTENSION_FLAGS; i++) 266 277 { 267 WRITE_FLAG( pps_extension_flags[i]?1:0, "pps_extension_flag[]");278 WRITE_FLAG( pps_extension_flags[i]?1:0, syntaxStrings[i] ); 268 279 } 269 280 … … 278 289 if (pcPPS->getUseTransformSkip()) 279 290 { 280 WRITE_UVLC( pcPPS->getTransformSkipLog2MaxSize()-2, "log2_ transform_skip_max_size_minus2");291 WRITE_UVLC( pcPPS->getTransformSkipLog2MaxSize()-2, "log2_max_transform_skip_block_size_minus2"); 281 292 } 282 293 283 WRITE_FLAG((pcPPS->getUseCrossComponentPrediction() ? 1 : 0), "cross_component_prediction_ flag" );284 285 WRITE_FLAG(UInt(pcPPS->getChromaQpAdjTableSize() > 0), "chroma_qp_ adjustment_enabled_flag" );294 WRITE_FLAG((pcPPS->getUseCrossComponentPrediction() ? 1 : 0), "cross_component_prediction_enabled_flag" ); 295 296 WRITE_FLAG(UInt(pcPPS->getChromaQpAdjTableSize() > 0), "chroma_qp_offset_list_enabled_flag" ); 286 297 if (pcPPS->getChromaQpAdjTableSize() > 0) 287 298 { 288 WRITE_UVLC(pcPPS->getMaxCuChromaQpAdjDepth(), "diff_cu_chroma_qp_ adjustment_depth");289 WRITE_UVLC(pcPPS->getChromaQpAdjTableSize() - 1, "chroma_qp_ adjustment_table_size_minus1");299 WRITE_UVLC(pcPPS->getMaxCuChromaQpAdjDepth(), "diff_cu_chroma_qp_offset_depth"); 300 WRITE_UVLC(pcPPS->getChromaQpAdjTableSize() - 1, "chroma_qp_offset_list_len_minus1"); 290 301 /* skip zero index */ 291 302 for (Int chromaQpAdjustmentIndex = 1; chromaQpAdjustmentIndex <= pcPPS->getChromaQpAdjTableSize(); chromaQpAdjustmentIndex++) 292 303 { 293 WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CbOffset, "cb_qp_ adjustment[i]");294 WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CrOffset, "cr_qp_ adjustment[i]");304 WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CbOffset, "cb_qp_offset_list[i]"); 305 WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CrOffset, "cr_qp_offset_list[i]"); 295 306 } 296 307 } 297 308 298 WRITE_UVLC( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_LUMA), " sao_luma_bit_shift" );299 WRITE_UVLC( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_CHROMA), " sao_chroma_bit_shift" );309 WRITE_UVLC( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_LUMA), "log2_sao_offset_scale_luma" ); 310 WRITE_UVLC( pcPPS->getSaoOffsetBitShift(CHANNEL_TYPE_CHROMA), "log2_sao_offset_scale_chroma" ); 300 311 break; 301 312 #if SVC_EXTENSION … … 397 408 WRITE_CODE(pcVUI->getColourPrimaries(), 8, "colour_primaries"); 398 409 WRITE_CODE(pcVUI->getTransferCharacteristics(), 8, "transfer_characteristics"); 399 WRITE_CODE(pcVUI->getMatrixCoefficients(), 8, "matrix_coeff icients");410 WRITE_CODE(pcVUI->getMatrixCoefficients(), 8, "matrix_coeffs"); 400 411 } 401 412 } … … 432 443 WRITE_UVLC(timingInfo->getNumTicksPocDiffOneMinus1(), "vui_num_ticks_poc_diff_one_minus1"); 433 444 } 434 WRITE_FLAG(pcVUI->getHrdParametersPresentFlag(), " hrd_parameters_present_flag");445 WRITE_FLAG(pcVUI->getHrdParametersPresentFlag(), "vui_hrd_parameters_present_flag"); 435 446 if( pcVUI->getHrdParametersPresentFlag() ) 436 447 { … … 447 458 WRITE_UVLC(pcVUI->getMinSpatialSegmentationIdc(), "min_spatial_segmentation_idc"); 448 459 WRITE_UVLC(pcVUI->getMaxBytesPerPicDenom(), "max_bytes_per_pic_denom"); 449 WRITE_UVLC(pcVUI->getMaxBitsPerMinCuDenom(), "max_bits_per_min cu_denom");460 WRITE_UVLC(pcVUI->getMaxBitsPerMinCuDenom(), "max_bits_per_min_cu_denom"); 450 461 WRITE_UVLC(pcVUI->getLog2MaxMvLengthHorizontal(), "log2_max_mv_length_horizontal"); 451 462 WRITE_UVLC(pcVUI->getLog2MaxMvLengthVertical(), "log2_max_mv_length_vertical"); … … 461 472 if( hrd->getNalHrdParametersPresentFlag() || hrd->getVclHrdParametersPresentFlag() ) 462 473 { 463 WRITE_FLAG( hrd->getSubPicCpbParamsPresentFlag() ? 1 : 0, "sub_pic_ cpb_params_present_flag" );474 WRITE_FLAG( hrd->getSubPicCpbParamsPresentFlag() ? 1 : 0, "sub_pic_hrd_params_present_flag" ); 464 475 if( hrd->getSubPicCpbParamsPresentFlag() ) 465 476 { 466 477 WRITE_CODE( hrd->getTickDivisorMinus2(), 8, "tick_divisor_minus2" ); 467 WRITE_CODE( hrd->getDuCpbRemovalDelayLengthMinus1(), 5, "du_cpb_removal_delay_ length_minus1" );478 WRITE_CODE( hrd->getDuCpbRemovalDelayLengthMinus1(), 5, "du_cpb_removal_delay_increment_length_minus1" ); 468 479 WRITE_FLAG( hrd->getSubPicCpbParamsInPicTimingSEIFlag() ? 1 : 0, "sub_pic_cpb_params_in_pic_timing_sei_flag" ); 469 480 WRITE_CODE( hrd->getDpbOutputDelayDuLengthMinus1(), 5, "dpb_output_delay_du_length_minus1" ); … … 552 563 { 553 564 #endif 554 WRITE_FLAG( pcSPS->getTemporalIdNestingFlag() ? 1 : 0, 565 WRITE_FLAG( pcSPS->getTemporalIdNestingFlag() ? 1 : 0, "sps_temporal_id_nesting_flag" ); 555 566 codePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1); 556 567 #if SVC_EXTENSION … … 620 631 { 621 632 WRITE_UVLC( pcSPS->getMaxDecPicBuffering(i) - 1, "sps_max_dec_pic_buffering_minus1[i]" ); 622 WRITE_UVLC( pcSPS->getNumReorderPics(i), "sps_ num_reorder_pics[i]" );633 WRITE_UVLC( pcSPS->getNumReorderPics(i), "sps_max_num_reorder_pics[i]" ); 623 634 WRITE_UVLC( pcSPS->getMaxLatencyIncrease(i), "sps_max_latency_increase_plus1[i]" ); 624 635 if (!subLayerOrderingInfoPresentFlag) … … 632 643 assert( pcSPS->getMaxCUWidth() == pcSPS->getMaxCUHeight() ); 633 644 634 WRITE_UVLC( pcSPS->getLog2MinCodingBlockSize() - 3, "log2_min_ coding_block_size_minus3" );635 WRITE_UVLC( pcSPS->getLog2DiffMaxMinCodingBlockSize(), "log2_diff_max_min_ coding_block_size" );636 WRITE_UVLC( pcSPS->getQuadtreeTULog2MinSize() - 2, "log2_min_ transform_block_size_minus2" );637 WRITE_UVLC( pcSPS->getQuadtreeTULog2MaxSize() - pcSPS->getQuadtreeTULog2MinSize(), "log2_diff_max_min_ transform_block_size" );645 WRITE_UVLC( pcSPS->getLog2MinCodingBlockSize() - 3, "log2_min_luma_coding_block_size_minus3" ); 646 WRITE_UVLC( pcSPS->getLog2DiffMaxMinCodingBlockSize(), "log2_diff_max_min_luma_coding_block_size" ); 647 WRITE_UVLC( pcSPS->getQuadtreeTULog2MinSize() - 2, "log2_min_luma_transform_block_size_minus2" ); 648 WRITE_UVLC( pcSPS->getQuadtreeTULog2MaxSize() - pcSPS->getQuadtreeTULog2MinSize(), "log2_diff_max_min_luma_transform_block_size" ); 638 649 WRITE_UVLC( pcSPS->getQuadtreeTUMaxDepthInter() - 1, "max_transform_hierarchy_depth_inter" ); 639 650 WRITE_UVLC( pcSPS->getQuadtreeTUMaxDepthIntra() - 1, "max_transform_hierarchy_depth_intra" ); … … 692 703 if (pcSPS->getLongTermRefsPresent()) 693 704 { 694 WRITE_UVLC(pcSPS->getNumLongTermRefPicSPS(), "num_long_term_ref_pic _sps" );705 WRITE_UVLC(pcSPS->getNumLongTermRefPicSPS(), "num_long_term_ref_pics_sps" ); 695 706 for (UInt k = 0; k < pcSPS->getNumLongTermRefPicSPS(); k++) 696 707 { 697 708 WRITE_CODE( pcSPS->getLtRefPicPocLsbSps(k), pcSPS->getBitsForPOC(), "lt_ref_pic_poc_lsb_sps"); 698 WRITE_FLAG( pcSPS->getUsedByCurrPicLtSPSFlag(k), "used_by_curr_pic_lt_sps_flag ");709 WRITE_FLAG( pcSPS->getUsedByCurrPicLtSPSFlag(k), "used_by_curr_pic_lt_sps_flag[i]"); 699 710 } 700 711 } … … 738 749 if (sps_extension_present_flag) 739 750 { 751 #if ENC_DEC_TRACE || RExt__DECODER_DEBUG_BIT_STATISTICS 752 static const char *syntaxStrings[]={ "sps_range_extension_flag", 753 "sps_multilayer_extension_flag", 754 "sps_extension_6bits[0]", 755 "sps_extension_6bits[1]", 756 "sps_extension_6bits[2]", 757 "sps_extension_6bits[3]", 758 "sps_extension_6bits[4]", 759 "sps_extension_6bits[5]" }; 760 #endif 761 740 762 for(Int i=0; i<NUM_SPS_EXTENSION_FLAGS; i++) 741 763 { 742 WRITE_FLAG( sps_extension_flags[i]?1:0, "sps_extension_flag[]");764 WRITE_FLAG( sps_extension_flags[i]?1:0, syntaxStrings[i] ); 743 765 } 744 766 … … 753 775 WRITE_FLAG( (pcSPS->getUseResidualRotation() ? 1 : 0), "transform_skip_rotation_enabled_flag"); 754 776 WRITE_FLAG( (pcSPS->getUseSingleSignificanceMapContext() ? 1 : 0), "transform_skip_context_enabled_flag"); 755 WRITE_FLAG( (pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_IMPLICIT) ? 1 : 0), " residual_dpcm_implicit_enabled_flag" );756 WRITE_FLAG( (pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_EXPLICIT) ? 1 : 0), " residual_dpcm_explicit_enabled_flag" );777 WRITE_FLAG( (pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_IMPLICIT) ? 1 : 0), "implicit_rdpcm_enabled_flag" ); 778 WRITE_FLAG( (pcSPS->getUseResidualDPCM(RDPCM_SIGNAL_EXPLICIT) ? 1 : 0), "explicit_rdpcm_enabled_flag" ); 757 779 WRITE_FLAG( (pcSPS->getUseExtendedPrecision() ? 1 : 0), "extended_precision_processing_flag" ); 758 780 WRITE_FLAG( (pcSPS->getDisableIntraReferenceSmoothing() ? 1 : 0), "intra_smoothing_disabled_flag" ); 759 WRITE_FLAG( (pcSPS->getUseHighPrecisionPredictionWeighting() ? 1 : 0), "high_precision_ prediction_weighting_flag" );760 WRITE_FLAG( (pcSPS->getUseGolombRiceParameterAdaptation() ? 1 : 0), " golomb_rice_parameter_adaptation_flag" );781 WRITE_FLAG( (pcSPS->getUseHighPrecisionPredictionWeighting() ? 1 : 0), "high_precision_offsets_enabled_flag" ); 782 WRITE_FLAG( (pcSPS->getUseGolombRiceParameterAdaptation() ? 1 : 0), "persistent_rice_adaptation_enabled_flag" ); 761 783 WRITE_FLAG( (pcSPS->getAlignCABACBeforeBypass() ? 1 : 0), "cabac_bypass_alignment_enabled_flag" ); 762 784 break; … … 784 806 assert( pcVPS->getBaseLayerInternalFlag() || pcVPS->getMaxLayers() > 1 ); 785 807 #else 786 WRITE_CODE( 3, 2, "vps_reserved_three_2bits" ); 808 WRITE_FLAG( 1, "vps_base_layer_internal_flag" ); 809 WRITE_FLAG( 1, "vps_base_layer_available_flag" ); 787 810 WRITE_CODE( 0, 6, "vps_max_layers_minus1" ); 788 811 #endif … … 790 813 WRITE_FLAG( pcVPS->getTemporalNestingFlag(), "vps_temporal_id_nesting_flag" ); 791 814 assert (pcVPS->getMaxTLayers()>1||pcVPS->getTemporalNestingFlag()); 792 WRITE_CODE( 0xffff, 16, "vps_reserved_ ffff_16bits" );815 WRITE_CODE( 0xffff, 16, "vps_reserved_0xffff_16bits" ); 793 816 codePTL( pcVPS->getPTL(), true, pcVPS->getMaxTLayers() - 1 ); 794 817 const Bool subLayerOrderingInfoPresentFlag = 1; … … 797 820 { 798 821 WRITE_UVLC( pcVPS->getMaxDecPicBuffering(i) - 1, "vps_max_dec_pic_buffering_minus1[i]" ); 799 WRITE_UVLC( pcVPS->getNumReorderPics(i), "vps_ num_reorder_pics[i]" );822 WRITE_UVLC( pcVPS->getNumReorderPics(i), "vps_max_num_reorder_pics[i]" ); 800 823 WRITE_UVLC( pcVPS->getMaxLatencyIncrease(i), "vps_max_latency_increase_plus1[i]" ); 801 824 if (!subLayerOrderingInfoPresentFlag) … … 820 843 assert( pcVPS->getNumHrdParameters() <= MAX_VPS_NUM_HRD_PARAMETERS ); 821 844 assert( pcVPS->getMaxNuhReservedZeroLayerId() < MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1 ); 822 WRITE_CODE( pcVPS->getMaxNuhReservedZeroLayerId(), 6, "vps_max_ nuh_reserved_zero_layer_id" );823 WRITE_UVLC( pcVPS->getMaxOpSets() - 1, "vps_ max_op_sets_minus1" );845 WRITE_CODE( pcVPS->getMaxNuhReservedZeroLayerId(), 6, "vps_max_layer_id" ); 846 WRITE_UVLC( pcVPS->getMaxOpSets() - 1, "vps_num_layer_sets_minus1" ); 824 847 for( UInt opsIdx = 1; opsIdx <= ( pcVPS->getMaxOpSets() - 1 ); opsIdx ++ ) 825 848 { … … 851 874 { 852 875 // Only applicable for version 1 853 WRITE_UVLC( pcVPS->getHrdOpSetIdx( i ), "hrd_ op_set_idx" );876 WRITE_UVLC( pcVPS->getHrdOpSetIdx( i ), "hrd_layer_set_idx" ); 854 877 if( i > 0 ) 855 878 { … … 958 981 for (Int i = 0; i < pcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++) 959 982 { 960 assert(!!"slice_reserved_undetermined_flag[]"); 961 WRITE_FLAG(0, "slice_reserved_undetermined_flag[]"); 983 WRITE_FLAG(0, "slice_reserved_flag[]"); 962 984 } 963 985 #endif //SVC_EXTENSION … … 989 1011 Int picOrderCntLSB = (pcSlice->getPOC()-pcSlice->getLastIDR()+(1<<pcSlice->getSPS()->getBitsForPOC())) & ((1<<pcSlice->getSPS()->getBitsForPOC())-1); 990 1012 #endif 991 WRITE_CODE( picOrderCntLSB, pcSlice->getSPS()->getBitsForPOC(), " pic_order_cnt_lsb");1013 WRITE_CODE( picOrderCntLSB, pcSlice->getSPS()->getBitsForPOC(), "slice_pic_order_cnt_lsb"); 992 1014 993 1015 #if SVC_EXTENSION … … 1117 1139 if (pcSlice->getSPS()->getTMVPFlagsPresent()) 1118 1140 { 1119 WRITE_FLAG( pcSlice->getEnableTMVPFlag() ? 1 : 0, "slice_temporal_mvp_enable _flag" );1141 WRITE_FLAG( pcSlice->getEnableTMVPFlag() ? 1 : 0, "slice_temporal_mvp_enabled_flag" ); 1120 1142 } 1121 1143 } … … 1278 1300 if (numberValidComponents > COMPONENT_Cb) 1279 1301 { 1280 WRITE_SVLC( pcSlice->getSliceChromaQpDelta(COMPONENT_Cb), "slice_ qp_delta_cb" );1302 WRITE_SVLC( pcSlice->getSliceChromaQpDelta(COMPONENT_Cb), "slice_cb_qp_offset" ); 1281 1303 } 1282 1304 if (numberValidComponents > COMPONENT_Cr) 1283 1305 { 1284 WRITE_SVLC( pcSlice->getSliceChromaQpDelta(COMPONENT_Cr), "slice_ qp_delta_cr" );1306 WRITE_SVLC( pcSlice->getSliceChromaQpDelta(COMPONENT_Cr), "slice_cr_qp_offset" ); 1285 1307 } 1286 1308 assert(numberValidComponents <= COMPONENT_Cr+1); … … 1289 1311 if (pcSlice->getPPS()->getChromaQpAdjTableSize() > 0) 1290 1312 { 1291 WRITE_FLAG(pcSlice->getUseChromaQpAdj(), " slice_chroma_qp_adjustment_enabled_flag");1313 WRITE_FLAG(pcSlice->getUseChromaQpAdj(), "cu_chroma_qp_offset_enabled_flag"); 1292 1314 } 1293 1315 … … 1320 1342 if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag()) 1321 1343 { 1322 WRITE_UVLC(0,"slice_ header_extension_length");1344 WRITE_UVLC(0,"slice_segment_header_extension_length"); 1323 1345 } 1324 1346 #endif … … 1329 1351 if(profilePresentFlag) 1330 1352 { 1331 codeProfileTier(pcPTL->getGeneralPTL() ); // general_...1353 codeProfileTier(pcPTL->getGeneralPTL(), false); // general_... 1332 1354 } 1333 1355 WRITE_CODE( Int(pcPTL->getGeneralPTL()->getLevelIdc()), 8, "general_level_idc" ); … … 1351 1373 if( pcPTL->getSubLayerProfilePresentFlag(i) ) 1352 1374 { 1353 codeProfileTier(pcPTL->getSubLayerPTL(i) ); // sub_layer_...1375 codeProfileTier(pcPTL->getSubLayerPTL(i), true); // sub_layer_... 1354 1376 } 1355 1377 if( pcPTL->getSubLayerLevelPresentFlag(i) ) … … 1359 1381 } 1360 1382 } 1361 Void TEncCavlc::codeProfileTier( const ProfileTierLevel* ptl ) 1362 { 1363 WRITE_CODE( ptl->getProfileSpace(), 2 , "XXX_profile_space[]"); 1364 WRITE_FLAG( ptl->getTierFlag()==Level::HIGH, "XXX_tier_flag[]" ); 1383 1384 #if ENC_DEC_TRACE || RExt__DECODER_DEBUG_BIT_STATISTICS 1385 Void TEncCavlc::codeProfileTier( const ProfileTierLevel* ptl, const Bool bIsSubLayer ) 1386 #define PTL_TRACE_TEXT(txt) bIsSubLayer?("sub_layer_" txt) : ("general_" txt) 1387 #else 1388 Void TEncCavlc::codeProfileTier( const ProfileTierLevel* ptl, const Bool /*bIsSubLayer*/ ) 1389 #define PTL_TRACE_TEXT(txt) txt 1390 #endif 1391 { 1392 WRITE_CODE( ptl->getProfileSpace(), 2 , PTL_TRACE_TEXT("profile_space" )); 1393 WRITE_FLAG( ptl->getTierFlag()==Level::HIGH, PTL_TRACE_TEXT("tier_flag" )); 1365 1394 #if SVC_EXTENSION 1366 WRITE_CODE( (ptl->getProfileIdc() == Profile::SCALABLEMAIN || ptl->getProfileIdc() == Profile::SCALABLEMAIN10) ? 7 : Int(ptl->getProfileIdc()), 5 , "XXX_profile_idc[]");1395 WRITE_CODE( (ptl->getProfileIdc() == Profile::SCALABLEMAIN || ptl->getProfileIdc() == Profile::SCALABLEMAIN10) ? 7 : Int(ptl->getProfileIdc()), 5 , PTL_TRACE_TEXT("profile_idc") ); 1367 1396 #else 1368 WRITE_CODE( Int(ptl->getProfileIdc()), 5 , "XXX_profile_idc[]");1397 WRITE_CODE( Int(ptl->getProfileIdc()), 5 , PTL_TRACE_TEXT("profile_idc" )); 1369 1398 #endif 1370 1399 for(Int j = 0; j < 32; j++) 1371 1400 { 1372 WRITE_FLAG( ptl->getProfileCompatibilityFlag(j), "XXX_profile_compatibility_flag[][j]");1373 } 1374 1375 WRITE_FLAG(ptl->getProgressiveSourceFlag(), "general_progressive_source_flag");1376 WRITE_FLAG(ptl->getInterlacedSourceFlag(), "general_interlaced_source_flag");1377 WRITE_FLAG(ptl->getNonPackedConstraintFlag(), "general_non_packed_constraint_flag");1378 WRITE_FLAG(ptl->getFrameOnlyConstraintFlag(), "general_frame_only_constraint_flag");1401 WRITE_FLAG( ptl->getProfileCompatibilityFlag(j), PTL_TRACE_TEXT("profile_compatibility_flag[][j]" )); 1402 } 1403 1404 WRITE_FLAG(ptl->getProgressiveSourceFlag(), PTL_TRACE_TEXT("progressive_source_flag" )); 1405 WRITE_FLAG(ptl->getInterlacedSourceFlag(), PTL_TRACE_TEXT("interlaced_source_flag" )); 1406 WRITE_FLAG(ptl->getNonPackedConstraintFlag(), PTL_TRACE_TEXT("non_packed_constraint_flag" )); 1407 WRITE_FLAG(ptl->getFrameOnlyConstraintFlag(), PTL_TRACE_TEXT("frame_only_constraint_flag" )); 1379 1408 1380 1409 if (ptl->getProfileIdc() == Profile::MAINREXT || ptl->getProfileIdc() == Profile::HIGHTHROUGHPUTREXT ) 1381 1410 { 1382 1411 const UInt bitDepthConstraint=ptl->getBitDepthConstraint(); 1383 WRITE_FLAG(bitDepthConstraint<=12, "general_max_12bit_constraint_flag");1384 WRITE_FLAG(bitDepthConstraint<=10, "general_max_10bit_constraint_flag");1385 WRITE_FLAG(bitDepthConstraint<= 8, "general_max_8bit_constraint_flag");1412 WRITE_FLAG(bitDepthConstraint<=12, PTL_TRACE_TEXT("max_12bit_constraint_flag" )); 1413 WRITE_FLAG(bitDepthConstraint<=10, PTL_TRACE_TEXT("max_10bit_constraint_flag" )); 1414 WRITE_FLAG(bitDepthConstraint<= 8, PTL_TRACE_TEXT("max_8bit_constraint_flag" )); 1386 1415 const ChromaFormat chromaFmtConstraint=ptl->getChromaFormatConstraint(); 1387 WRITE_FLAG(chromaFmtConstraint==CHROMA_422||chromaFmtConstraint==CHROMA_420||chromaFmtConstraint==CHROMA_400, "general_max_422chroma_constraint_flag");1388 WRITE_FLAG(chromaFmtConstraint==CHROMA_420||chromaFmtConstraint==CHROMA_400, "general_max_420chroma_constraint_flag");1389 WRITE_FLAG(chromaFmtConstraint==CHROMA_400, "general_max_monochrome_constraint_flag");1390 WRITE_FLAG(ptl->getIntraConstraintFlag(), "general_intra_constraint_flag");1391 WRITE_FLAG(0, "general_one_picture_only_constraint_flag");1392 WRITE_FLAG(ptl->getLowerBitRateConstraintFlag(), "general_lower_bit_rate_constraint_flag");1416 WRITE_FLAG(chromaFmtConstraint==CHROMA_422||chromaFmtConstraint==CHROMA_420||chromaFmtConstraint==CHROMA_400, PTL_TRACE_TEXT("max_422chroma_constraint_flag" )); 1417 WRITE_FLAG(chromaFmtConstraint==CHROMA_420||chromaFmtConstraint==CHROMA_400, PTL_TRACE_TEXT("max_420chroma_constraint_flag" )); 1418 WRITE_FLAG(chromaFmtConstraint==CHROMA_400, PTL_TRACE_TEXT("max_monochrome_constraint_flag")); 1419 WRITE_FLAG(ptl->getIntraConstraintFlag(), PTL_TRACE_TEXT("intra_constraint_flag" )); 1420 WRITE_FLAG(0, PTL_TRACE_TEXT("one_picture_only_constraint_flag")); 1421 WRITE_FLAG(ptl->getLowerBitRateConstraintFlag(), PTL_TRACE_TEXT("lower_bit_rate_constraint_flag" )); 1393 1422 #if SVC_EXTENSION 1394 1423 WRITE_CODE(0, 32, "general_reserved_zero_34bits"); WRITE_CODE(0, 2, "general_reserved_zero_34bits"); … … 1411 1440 WRITE_CODE(0, 32, "general_reserved_zero_43bits"); WRITE_CODE(0, 11, "general_reserved_zero_43bits"); 1412 1441 } 1413 1414 if( ( ptl->getProfileIdc() >= 1 && ptl->getProfileIdc() <= 5 ) || 1415 ptl->getProfileCompatibilityFlag(1) || ptl->getProfileCompatibilityFlag(2) || 1416 ptl->getProfileCompatibilityFlag(3) || ptl->getProfileCompatibilityFlag(4) || 1417 ptl->getProfileCompatibilityFlag(5) ) 1418 { 1419 WRITE_FLAG(false, "general_inbld_flag"); 1442 #else 1443 WRITE_CODE(0 , 16, PTL_TRACE_TEXT("reserved_zero_34bits[0..15]" )); 1444 WRITE_CODE(0 , 16, PTL_TRACE_TEXT("reserved_zero_34bits[16..31]" )); 1445 WRITE_CODE(0 , 2, PTL_TRACE_TEXT("reserved_zero_34bits[32..33]" )); 1420 1446 } 1421 1447 else 1422 1448 { 1423 WRITE_FLAG(false, "general_reserved_zero_bit"); 1424 } 1425 #else 1426 WRITE_CODE(0 , 16, "XXX_reserved_zero_35bits[0..15]"); 1427 WRITE_CODE(0 , 16, "XXX_reserved_zero_35bits[16..31]"); 1428 WRITE_CODE(0 , 3, "XXX_reserved_zero_35bits[32..34]"); 1429 } 1430 else 1431 { 1432 WRITE_CODE(0x0000 , 16, "XXX_reserved_zero_44bits[0..15]"); 1433 WRITE_CODE(0x0000 , 16, "XXX_reserved_zero_44bits[16..31]"); 1434 WRITE_CODE(0x000 , 12, "XXX_reserved_zero_44bits[32..43]"); 1435 } 1436 #endif 1449 WRITE_CODE(0x0000 , 16, PTL_TRACE_TEXT("reserved_zero_43bits[0..15]" )); 1450 WRITE_CODE(0x0000 , 16, PTL_TRACE_TEXT("reserved_zero_43bits[16..31]" )); 1451 WRITE_CODE(0x000 , 12, PTL_TRACE_TEXT("reserved_zero_43bits[32..42]" )); 1452 } 1453 #endif 1454 WRITE_FLAG(false, PTL_TRACE_TEXT("inbld_flag" )); 1455 #undef PTL_TRACE_TEXT 1437 1456 } 1438 1457 … … 1657 1676 if(uiMode == 1) 1658 1677 { 1659 for ( Int iNumRef=0 ; iNumRef<iNbRef ; iNumRef++ ) 1678 for ( Int iNumRef=0 ; iNumRef<iNbRef ; iNumRef++ ) // loop over l0 and l1 syntax elements 1660 1679 { 1661 1680 RefPicList eRefPicList = ( iNumRef ? REF_PIC_LIST_1 : REF_PIC_LIST_0 ); … … 1669 1688 { 1670 1689 Int iDeltaDenom; 1671 WRITE_UVLC( wp[COMPONENT_Y].uiLog2WeightDenom, "luma_log2_weight_denom" ); // ue(v): luma_log2_weight_denom1690 WRITE_UVLC( wp[COMPONENT_Y].uiLog2WeightDenom, "luma_log2_weight_denom" ); 1672 1691 1673 1692 if( bChroma ) … … 1675 1694 assert(wp[COMPONENT_Cb].uiLog2WeightDenom == wp[COMPONENT_Cr].uiLog2WeightDenom); // check the channel-type settings are consistent across components. 1676 1695 iDeltaDenom = (wp[COMPONENT_Cb].uiLog2WeightDenom - wp[COMPONENT_Y].uiLog2WeightDenom); 1677 WRITE_SVLC( iDeltaDenom, "delta_chroma_log2_weight_denom" ); // se(v): delta_chroma_log2_weight_denom1696 WRITE_SVLC( iDeltaDenom, "delta_chroma_log2_weight_denom" ); 1678 1697 } 1679 1698 bDenomCoded = true; 1680 1699 } 1681 WRITE_FLAG( wp[COMPONENT_Y].bPresentFlag, "luma_weight_lX_flag" ); // u(1): luma_weight_lX_flag1700 WRITE_FLAG( wp[COMPONENT_Y].bPresentFlag, iNumRef==0?"luma_weight_l0_flag[i]":"luma_weight_l1_flag[i]" ); 1682 1701 uiTotalSignalledWeightFlags += wp[COMPONENT_Y].bPresentFlag; 1683 1702 } … … 1688 1707 pcSlice->getWpScaling(eRefPicList, iRefIdx, wp); 1689 1708 assert(wp[COMPONENT_Cb].bPresentFlag == wp[COMPONENT_Cr].bPresentFlag); // check the channel-type settings are consistent across components. 1690 WRITE_FLAG( wp[COMPONENT_Cb].bPresentFlag, "chroma_weight_lX_flag" ); // u(1): chroma_weight_lX_flag1709 WRITE_FLAG( wp[COMPONENT_Cb].bPresentFlag, iNumRef==0?"chroma_weight_l0_flag[i]":"chroma_weight_l1_flag[i]" ); 1691 1710 uiTotalSignalledWeightFlags += 2*wp[COMPONENT_Cb].bPresentFlag; 1692 1711 } … … 1699 1718 { 1700 1719 Int iDeltaWeight = (wp[COMPONENT_Y].iWeight - (1<<wp[COMPONENT_Y].uiLog2WeightDenom)); 1701 WRITE_SVLC( iDeltaWeight, "delta_luma_weight_lX" ); // se(v): delta_luma_weight_lX1702 WRITE_SVLC( wp[COMPONENT_Y].iOffset, "luma_offset_lX" ); // se(v): luma_offset_lX1720 WRITE_SVLC( iDeltaWeight, iNumRef==0?"delta_luma_weight_l0[i]":"delta_luma_weight_l1[i]" ); 1721 WRITE_SVLC( wp[COMPONENT_Y].iOffset, iNumRef==0?"luma_offset_l0[i]":"luma_offset_l1[i]" ); 1703 1722 } 1704 1723 … … 1711 1730 assert(wp[COMPONENT_Cb].uiLog2WeightDenom == wp[COMPONENT_Cr].uiLog2WeightDenom); 1712 1731 Int iDeltaWeight = (wp[j].iWeight - (1<<wp[COMPONENT_Cb].uiLog2WeightDenom)); 1713 WRITE_SVLC( iDeltaWeight, "delta_chroma_weight_lX" ); // se(v): delta_chroma_weight_lX1732 WRITE_SVLC( iDeltaWeight, iNumRef==0?"delta_chroma_weight_l0[i]":"delta_chroma_weight_l1[i]" ); 1714 1733 1715 1734 Int range=pcSlice->getSPS()->getUseHighPrecisionPredictionWeighting() ? (1<<g_bitDepth[CHANNEL_TYPE_CHROMA])/2 : 128; 1716 1735 Int pred = ( range - ( ( range*wp[j].iWeight)>>(wp[j].uiLog2WeightDenom) ) ); 1717 1736 Int iDeltaChroma = (wp[j].iOffset - pred); 1718 WRITE_SVLC( iDeltaChroma, "delta_chroma_offset_lX" ); // se(v): delta_chroma_offset_lX1737 WRITE_SVLC( iDeltaChroma, iNumRef==0?"delta_chroma_offset_l0[i]":"delta_chroma_offset_l1[i]" ); 1719 1738 } 1720 1739 } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.h
r1235 r1257 97 97 Void codeSliceHeader ( TComSlice* pcSlice ); 98 98 Void codePTL ( const TComPTL* pcPTL, Bool profilePresentFlag, Int maxNumSubLayersMinus1); 99 Void codeProfileTier ( const ProfileTierLevel* ptl );99 Void codeProfileTier ( const ProfileTierLevel* ptl, const Bool bIsSubLayer ); 100 100 Void codeHrdParameters ( const TComHRD *hrd, Bool commonInfPresentFlag, UInt maxNumSubLayersMinus1 ); 101 101 Void codeTilesWPPEntryPoint( TComSlice* pSlice );
Note: See TracChangeset for help on using the changeset viewer.