Changeset 898 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibEncoder
- Timestamp:
- 6 Oct 2014, 12:50:55 (11 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibEncoder
- Files:
-
- 2 edited
-
TEncCavlc.cpp (modified) (17 diffs)
-
TEncTop.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r894 r898 225 225 } 226 226 227 #if !R0042_PROFILE_INDICATION 227 228 #if SCALINGLIST_INFERRING 228 229 if( pcPPS->getLayerId() > 0 ) … … 241 242 { 242 243 #endif 244 #endif 243 245 244 246 WRITE_FLAG( pcPPS->getScalingListPresentFlag() ? 1 : 0, "pps_scaling_list_data_present_flag" ); … … 247 249 codeScalingList( m_pcSlice->getScalingList() ); 248 250 } 249 251 #if !R0042_PROFILE_INDICATION 250 252 #if SCALINGLIST_INFERRING 251 253 } 254 #endif 252 255 #endif 253 256 … … 256 259 WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag"); 257 260 #if P0166_MODIFIED_PPS_EXTENSION 261 #if !R0042_PROFILE_INDICATION 258 262 WRITE_FLAG( pcPPS->getExtensionFlag() ? 1 : 0, "pps_extension_flag" ); 263 #else 264 WRITE_FLAG( pcPPS->getExtensionFlag() ? 1 : 0, "pps_extension_present_flag" ); 265 #endif 259 266 260 267 if( pcPPS->getExtensionFlag() ) 261 268 { 269 #if !R0042_PROFILE_INDICATION 262 270 #if !POC_RESET_IDC 263 271 UInt ppsExtensionTypeFlag[8] = { 0, 1, 0, 0, 0, 0, 0, 0 }; … … 335 343 #endif 336 344 } 345 #else 346 WRITE_FLAG( 0, "pps_range_extension_flag" ); 347 WRITE_FLAG( 1, "pps_multilayer_extension_flag" ); 348 WRITE_CODE( 0, 6, "pps_extension_6bits" ); 349 350 WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag() ? 1 : 0, "poc_reset_info_present_flag" ); 351 #if SCALINGLIST_INFERRING 352 WRITE_FLAG( pcPPS->getInferScalingListFlag() ? 1 : 0, "pps_infer_scaling_list_flag" ); 353 if( pcPPS->getInferScalingListFlag() ) 354 { 355 // The value of pps_scaling_list_ref_layer_id shall be in the range of 0 to 62, inclusive 356 assert( pcPPS->getScalingListRefLayerId() <= 62 ); 357 WRITE_UVLC( pcPPS->getScalingListRefLayerId(), "pps_scaling_list_ref_layer_id" ); 358 } 359 #endif 360 361 #if REF_REGION_OFFSET 362 WRITE_UVLC( pcPPS->getNumScaledRefLayerOffsets(), "num_ref_loc_offsets" ); 363 for(Int i = 0; i < pcPPS->getNumScaledRefLayerOffsets(); i++) 364 { 365 WRITE_CODE( pcPPS->getScaledRefLayerId(i), 6, "ref_loc_offset_layer_id" ); 366 WRITE_FLAG( pcPPS->getScaledRefLayerOffsetPresentFlag(i) ? 1 : 0, "scaled_ref_layer_offset_prsent_flag" ); 367 if (pcPPS->getScaledRefLayerOffsetPresentFlag(i)) 368 { 369 Window scaledWindow = pcPPS->getScaledRefLayerWindow(i); 370 WRITE_SVLC( scaledWindow.getWindowLeftOffset() >> 1, "scaled_ref_layer_left_offset" ); 371 WRITE_SVLC( scaledWindow.getWindowTopOffset() >> 1, "scaled_ref_layer_top_offset" ); 372 WRITE_SVLC( scaledWindow.getWindowRightOffset() >> 1, "scaled_ref_layer_right_offset" ); 373 WRITE_SVLC( scaledWindow.getWindowBottomOffset() >> 1, "scaled_ref_layer_bottom_offset" ); 374 } 375 WRITE_FLAG( pcPPS->getRefRegionOffsetPresentFlag(i) ? 1 : 0, "ref_region_offset_prsent_flag" ); 376 if (pcPPS->getRefRegionOffsetPresentFlag(i)) 377 { 378 Window refWindow = pcPPS->getRefLayerWindow(i); 379 WRITE_SVLC( refWindow.getWindowLeftOffset() >> 1, "ref_region_left_offset" ); 380 WRITE_SVLC( refWindow.getWindowTopOffset() >> 1, "ref_region_top_offset" ); 381 WRITE_SVLC( refWindow.getWindowRightOffset() >> 1, "ref_region_right_offset" ); 382 WRITE_SVLC( refWindow.getWindowBottomOffset() >> 1, "ref_region_bottom_offset" ); 383 } 384 #if R0209_GENERIC_PHASE 385 WRITE_FLAG( pcPPS->getResamplePhaseSetPresentFlag(i) ? 1 : 0, "resample_phase_set_present_flag" ); 386 if (pcPPS->getResamplePhaseSetPresentFlag(i)) 387 { 388 WRITE_UVLC( pcPPS->getPhaseHorLuma(i), "phase_hor_luma" ); 389 WRITE_UVLC( pcPPS->getPhaseVerLuma(i), "phase_ver_luma" ); 390 WRITE_UVLC( pcPPS->getPhaseHorChroma(i) + 8, "phase_hor_chroma_plus8" ); 391 WRITE_UVLC( pcPPS->getPhaseVerChroma(i) + 8, "phase_ver_chroma_plus8" ); 392 } 393 #endif 394 } 395 #else 396 #if MOVE_SCALED_OFFSET_TO_PPS 397 WRITE_UVLC( pcPPS->getNumScaledRefLayerOffsets(), "num_scaled_ref_layer_offsets" ); 398 for(Int i = 0; i < pcPPS->getNumScaledRefLayerOffsets(); i++) 399 { 400 Window scaledWindow = pcPPS->getScaledRefLayerWindow(i); 401 #if O0098_SCALED_REF_LAYER_ID 402 WRITE_CODE( pcPPS->getScaledRefLayerId(i), 6, "scaled_ref_layer_id" ); 403 #endif 404 WRITE_SVLC( scaledWindow.getWindowLeftOffset() >> 1, "scaled_ref_layer_left_offset" ); 405 WRITE_SVLC( scaledWindow.getWindowTopOffset() >> 1, "scaled_ref_layer_top_offset" ); 406 WRITE_SVLC( scaledWindow.getWindowRightOffset() >> 1, "scaled_ref_layer_right_offset" ); 407 WRITE_SVLC( scaledWindow.getWindowBottomOffset() >> 1, "scaled_ref_layer_bottom_offset" ); 408 } 409 #endif 410 #endif 411 #if Q0048_CGS_3D_ASYMLUT 412 UInt uiPos = getNumberOfWrittenBits(); 413 WRITE_FLAG( pcPPS->getCGSFlag() , "colour_mapping_enabled_flag" ); 414 if( pcPPS->getCGSFlag() ) 415 { 416 assert( pc3DAsymLUT != NULL ); 417 xCode3DAsymLUT( pc3DAsymLUT ); 418 } 419 pc3DAsymLUT->setPPSBit( getNumberOfWrittenBits() - uiPos ); 420 #endif 421 #endif 337 422 } 338 423 #else … … 502 587 Void TEncCavlc::codeSPS( TComSPS* pcSPS ) 503 588 { 589 #if R0042_PROFILE_INDICATION 590 bool bMultiLayerExtSpsFlag = (pcSPS->getNumDirectRefLayers() != 0 ) ; 591 #endif 504 592 #if ENC_DEC_TRACE 505 593 xTraceSPSHeader (pcSPS); … … 511 599 #endif 512 600 WRITE_CODE( pcSPS->getMaxTLayers() - 1, 3, "sps_max_sub_layers_minus1" ); 601 #if SVC_EXTENSION 602 } 603 #if R0042_PROFILE_INDICATION 604 else 605 { 606 WRITE_CODE(bMultiLayerExtSpsFlag? 7:(pcSPS->getMaxTLayers() - 1) , 3, "sps_ext_or_max_sub_layers_minus1" ); 607 } 608 #endif 609 #endif 610 611 #if SVC_EXTENSION 612 #if !R0042_PROFILE_INDICATION 613 if(pcSPS->getLayerId() == 0) 614 #else 615 if(!bMultiLayerExtSpsFlag) 616 #endif 617 { 618 #endif 513 619 WRITE_FLAG( pcSPS->getTemporalIdNestingFlag() ? 1 : 0, "sps_temporal_id_nesting_flag" ); 514 620 #if SVC_EXTENSION … … 516 622 #endif 517 623 #ifdef SPS_PTL_FIX 624 #if !R0042_PROFILE_INDICATION 518 625 if (pcSPS->getLayerId() == 0) 626 #else 627 if(!bMultiLayerExtSpsFlag) 628 #endif 519 629 { 520 630 codePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1); … … 525 635 WRITE_UVLC( pcSPS->getSPSId (), "sps_seq_parameter_set_id" ); 526 636 #if REPN_FORMAT_IN_VPS 637 #if !R0042_PROFILE_INDICATION 527 638 if( pcSPS->getLayerId() > 0 ) 639 #else 640 if(bMultiLayerExtSpsFlag) 641 #endif 528 642 { 529 643 WRITE_FLAG( pcSPS->getUpdateRepFormatFlag(), "update_rep_format_flag" ); 530 644 } 645 #if R0042_PROFILE_INDICATION 646 if( bMultiLayerExtSpsFlag && pcSPS->getUpdateRepFormatFlag()) 647 { 648 WRITE_CODE( pcSPS->getUpdateRepFormatIndex(), 8, "sps_rep_format_idx"); 649 } 650 #endif 651 652 #if R0042_PROFILE_INDICATION 653 if(!bMultiLayerExtSpsFlag) 654 { 655 #endif 656 #if !R0042_PROFILE_INDICATION 531 657 #if O0096_REP_FORMAT_INDEX 532 658 if( pcSPS->getLayerId() == 0 ) 533 659 #else 534 660 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 661 #endif 535 662 #endif 536 663 { … … 548 675 #if REPN_FORMAT_IN_VPS 549 676 } 677 #if !R0042_PROFILE_INDICATION 550 678 #if O0096_REP_FORMAT_INDEX 551 679 else if (pcSPS->getUpdateRepFormatFlag()) … … 555 683 #endif 556 684 #endif 685 #endif 557 686 558 687 #if R0156_CONF_WINDOW_IN_REP_FORMAT 559 688 #if REPN_FORMAT_IN_VPS 689 #if !R0042_PROFILE_INDICATION 560 690 #if O0096_REP_FORMAT_INDEX 561 691 if( pcSPS->getLayerId() == 0 ) … … 563 693 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 564 694 #endif 695 #endif 565 696 { 566 697 #endif … … 590 721 591 722 #if REPN_FORMAT_IN_VPS 723 #if !R0042_PROFILE_INDICATION 592 724 #if O0096_REP_FORMAT_INDEX 593 725 if( pcSPS->getLayerId() == 0 ) 594 726 #else 595 727 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 596 #endif 728 #endif 729 #endif 597 730 { 598 731 assert( pcSPS->getBitDepthY() >= 8 ); … … 604 737 } 605 738 #endif 739 #if R0042_PROFILE_INDICATION 740 } 741 #endif 742 606 743 WRITE_UVLC( pcSPS->getBitsForPOC()-4, "log2_max_pic_order_cnt_lsb_minus4" ); 607 744 608 745 #if SPS_DPB_PARAMS 746 #if !R0042_PROFILE_INDICATION 609 747 if( pcSPS->getLayerId() == 0 ) 748 #else 749 if(!bMultiLayerExtSpsFlag) 750 #endif 610 751 { 611 752 #endif … … 637 778 { 638 779 #if SCALINGLIST_INFERRING 780 #if !R0042_PROFILE_INDICATION 639 781 if( pcSPS->getLayerId() > 0 ) 782 #else 783 if( bMultiLayerExtSpsFlag) 784 #endif 640 785 { 641 786 WRITE_FLAG( pcSPS->getInferScalingListFlag() ? 1 : 0, "sps_infer_scaling_list_flag" ); … … 706 851 707 852 #if SVC_EXTENSION 853 #if !R0042_PROFILE_INDICATION 708 854 WRITE_FLAG( pcSPS->getExtensionFlag() ? 1 : 0, "sps_extension_flag" ); 855 #else 856 WRITE_FLAG( pcSPS->getExtensionFlag() ? 1 : 0, "sps_extension_present_flag" ); 857 #endif 709 858 710 859 if( pcSPS->getExtensionFlag() ) 711 860 { 861 #if !R0042_PROFILE_INDICATION 712 862 #if O0142_CONDITIONAL_SPS_EXTENSION 713 863 UInt spsExtensionTypeFlag[8] = { 0, 1, 0, 0, 0, 0, 0, 0 }; … … 723 873 codeSPSExtension( pcSPS ); 724 874 WRITE_FLAG( 0, "sps_extension2_flag" ); 875 #endif 876 #else 877 WRITE_FLAG( 0, "sps_range_extension_flag" ); 878 WRITE_FLAG( 1, "sps_multilayer_extension_flag" ); 879 WRITE_CODE( 0, 6, "sps_extension_6bits" ); 880 codeSPSExtension( pcSPS ); //it is sps_multilayer_extension 725 881 #endif 726 882 } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncTop.cpp
r894 r898 985 985 #if SVC_EXTENSION 986 986 m_cSPS.setExtensionFlag( m_layerId > 0 ? true : false ); 987 987 #if R0042_PROFILE_INDICATION 988 m_cSPS.setNumDirectRefLayers(m_numAddLayerSets); 989 #endif 988 990 #if Q0078_ADD_LAYER_SETS 989 991 if( !m_numDirectRefLayers && m_numAddLayerSets )
Note: See TracChangeset for help on using the changeset viewer.