Changeset 730 in 3DVCSoftware for branches/HTM-9.0-dev0/source/Lib/TLibCommon/TComSlice.h
- Timestamp:
- 9 Dec 2013, 17:16:03 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.0-dev0/source/Lib/TLibCommon/TComSlice.h
r724 r730 36 36 */ 37 37 38 38 39 #ifndef __TCOMSLICE__ 39 40 #define __TCOMSLICE__ … … 62 63 // ==================================================================================================================== 63 64 65 #if H_MV_6_HRD_O0164_15 66 class TComVPS; 67 #endif 64 68 /// Reference Picture Set class 65 69 class TComReferencePictureSet … … 403 407 404 408 #if H_MV 409 410 #if H_MV_6_PS_O0118_33 411 class TComVideoSignalInfo 412 { 413 private: 414 Int m_videoVpsFormat; 415 Bool m_videoFullRangeVpsFlag; 416 Int m_colourPrimariesVps; 417 Int m_transferCharacteristicsVps; 418 Int m_matrixCoeffsVps; 419 public: 420 Void setVideoVpsFormat( Int val ) { m_videoVpsFormat = val; } 421 Int getVideoVpsFormat( ) { return m_videoVpsFormat; } 422 423 Void setVideoFullRangeVpsFlag( Bool flag ) { m_videoFullRangeVpsFlag = flag; } 424 Bool getVideoFullRangeVpsFlag( ) { return m_videoFullRangeVpsFlag; } 425 426 Void setColourPrimariesVps( Int val ) { m_colourPrimariesVps = val; } 427 Int getColourPrimariesVps( ) { return m_colourPrimariesVps; } 428 429 Void setTransferCharacteristicsVps( Int val ) { m_transferCharacteristicsVps = val; } 430 Int getTransferCharacteristicsVps( ) { return m_transferCharacteristicsVps; } 431 432 Void setMatrixCoeffsVps( Int val ) { m_matrixCoeffsVps = val; } 433 Int getMatrixCoeffsVps( ) { return m_matrixCoeffsVps; } 434 }; 435 #endif 436 #if H_MV_6_HRD_O0164_15 437 class TComVpsVuiBspHrdParameters 438 { 439 private: 440 Int m_vpsNumBspHrdParametersMinus1; 441 Bool m_bspCprmsPresentFlag[MAX_NUM_BSP_HRD_PARAMETERS]; 442 Int m_numBitstreamPartitions[MAX_VPS_OP_SETS_PLUS1]; 443 Bool m_layerInBspFlag[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_LAYERS]; 444 Int m_numBspSchedCombinations[MAX_VPS_OP_SETS_PLUS1]; 445 Int m_bspCombHrdIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION]; 446 Int m_bspCombSchedIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION]; 447 TComHRD* m_hrdParameters[MAX_NUM_BSP_HRD_PARAMETERS]; 448 public: 449 450 Void setVpsNumBspHrdParametersMinus1( Int val ) { m_vpsNumBspHrdParametersMinus1 = val; } 451 Int getVpsNumBspHrdParametersMinus1( ) { return m_vpsNumBspHrdParametersMinus1; } 452 453 Void setBspCprmsPresentFlag( Int i, Bool flag ) { m_bspCprmsPresentFlag[i] = flag; } 454 Bool getBspCprmsPresentFlag( Int i ) { return m_bspCprmsPresentFlag[i]; } 455 456 Void setNumBitstreamPartitions( Int h, Int val ) { m_numBitstreamPartitions[h] = val; } 457 Int getNumBitstreamPartitions( Int h ) { return m_numBitstreamPartitions[h]; } 458 459 Void setLayerInBspFlag( Int h, Int i, Int j, Bool flag ) { m_layerInBspFlag[h][i][j] = flag; } 460 Bool getLayerInBspFlag( Int h, Int i, Int j ) { return m_layerInBspFlag[h][i][j]; } 461 Void checkLayerInBspFlag ( TComVPS* vps, Int h ); 462 463 Void setNumBspSchedCombinations( Int h, Int val ) { m_numBspSchedCombinations[h] = val; } 464 Int getNumBspSchedCombinations( Int h ) { return m_numBspSchedCombinations[h]; } 465 466 Void setBspCombHrdIdx( Int h, Int i, Int j, Int val ) { m_bspCombHrdIdx[h][i][j] = val; } 467 Int getBspCombHrdIdx( Int h, Int i, Int j ) { return m_bspCombHrdIdx[h][i][j]; } 468 469 Void setBspCombSchedIdx( Int h, Int i, Int j, Int val ) { m_bspCombSchedIdx[h][i][j] = val; } 470 Int getBspCombSchedIdx( Int h, Int i, Int j ) { return m_bspCombSchedIdx[h][i][j]; } 471 472 Void setHrdParametermeters( Int k, TComHRD* val ) { m_hrdParameters[k] = val; }; 473 TComHRD* getHrdParametermeters( Int k ) { return m_hrdParameters[k]; }; 474 }; 475 476 #endif 405 477 class TComVPSVUI 406 { 478 { 407 479 private: 480 #if H_MV_6_PS_O0223_29 481 Bool m_crossLayerPicTypeAlignedFlag; 482 Bool m_crossLayerIrapAlignedFlag; 483 #endif 408 484 Bool m_bitRatePresentVpsFlag; 409 485 Bool m_picRatePresentVpsFlag; … … 413 489 Int m_maxBitRate [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER]; 414 490 Int m_constantPicRateIdc [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER]; 415 Int m_avgPicRate [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER]; 491 Int m_avgPicRate [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER]; 492 #if H_MV_6_O0226_37 493 Bool m_tilesNotInUseFlag; 494 Bool m_tilesInUseFlag [MAX_NUM_LAYERS]; 495 Bool m_loopFilterNotAcrossTilesFlag[MAX_NUM_LAYERS]; 496 #endif 416 497 Bool m_tileBoundariesAlignedFlag [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 498 #if H_MV_6_O0226_37 499 Bool m_wppNotInUseFlag; 500 Bool m_wppInUseFlag [MAX_NUM_LAYERS]; 501 #endif 417 502 Bool m_ilpRestrictedRefLayersFlag; 418 503 Int m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 419 504 Bool m_ctuBasedOffsetEnabledFlag [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 420 505 Int m_minHorizontalCtuOffsetPlus1 [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 506 #if H_MV_6_PS_O0118_33 507 Bool m_videoSignalInfoIdxPresentFlag; 508 Int m_vpsNumVideoSignalInfoMinus1; 509 TComVideoSignalInfo* m_videoSignalInfo[MAX_NUM_VIDEO_SIGNAL_INFO]; 510 Int m_vpsVideoSignalInfoIdx [MAX_NUM_VIDEO_SIGNAL_INFO]; 511 #endif 512 #if H_MV_6_HRD_O0164_15 513 Bool m_vpsVuiBspHrdPresentFlag; 514 TComVpsVuiBspHrdParameters* m_vpsVuiBspHrdParameters; 515 #endif 421 516 422 517 public: 423 TComVPSVUI();; 518 TComVPSVUI(); 519 ~TComVPSVUI(); 520 #if H_MV_6_PS_O0223_29 521 Void setCrossLayerPicTypeAlignedFlag( Bool flag ) { m_crossLayerPicTypeAlignedFlag = flag; } 522 Bool getCrossLayerPicTypeAlignedFlag( ) { return m_crossLayerPicTypeAlignedFlag; } 523 524 Void setCrossLayerIrapAlignedFlag( Bool flag ) { m_crossLayerIrapAlignedFlag = flag; } 525 Bool getCrossLayerIrapAlignedFlag( ) { return m_crossLayerIrapAlignedFlag; } 526 #endif 424 527 425 528 Void setBitRatePresentVpsFlag( Bool flag ) { m_bitRatePresentVpsFlag = flag; } … … 447 550 Int getAvgPicRate( Int i, Int j ) { return m_avgPicRate[i][j]; } 448 551 552 #if H_MV_6_O0226_37 553 Void setTilesNotInUseFlag( Bool flag ) { m_tilesNotInUseFlag = flag; } 554 Bool getTilesNotInUseFlag( ) { return m_tilesNotInUseFlag; } 555 556 Void setTilesInUseFlag( Int i, Bool flag ) { m_tilesInUseFlag[i] = flag; } 557 Bool getTilesInUseFlag( Int i ) { return m_tilesInUseFlag[i]; } 558 559 Void setLoopFilterNotAcrossTilesFlag( Int i, Int val ) { m_loopFilterNotAcrossTilesFlag[i] = val; } 560 Bool getLoopFilterNotAcrossTilesFlag( Int i ) { return m_loopFilterNotAcrossTilesFlag[i]; } 561 #endif 562 449 563 Void setTileBoundariesAlignedFlag( Int i, Int j, Bool flag ) { m_tileBoundariesAlignedFlag[i][j] = flag; } 450 564 Bool getTileBoundariesAlignedFlag( Int i, Int j ) { return m_tileBoundariesAlignedFlag[i][j]; } 451 565 566 #if H_MV_6_O0226_37 567 Void setWppNotInUseFlag( Bool flag ) { m_wppNotInUseFlag = flag; } 568 Bool getWppNotInUseFlag( ) { return m_wppNotInUseFlag; } 569 570 Void setWppInUseFlag( Int i, Bool flag ) { m_wppInUseFlag[i] = flag; } 571 Bool getWppInUseFlag( Int i ) { return m_wppInUseFlag[i]; } 572 #endif 573 452 574 Void setIlpRestrictedRefLayersFlag( Bool flag ) { m_ilpRestrictedRefLayersFlag = flag; } 453 575 Bool getIlpRestrictedRefLayersFlag( ) { return m_ilpRestrictedRefLayersFlag; } … … 462 584 Int getMinHorizontalCtuOffsetPlus1( Int i, Int j ) { return m_minHorizontalCtuOffsetPlus1[i][j]; } 463 585 586 #if H_MV_6_PS_O0118_33 587 Void setVideoSignalInfoIdxPresentFlag( Bool flag ) { m_videoSignalInfoIdxPresentFlag = flag; } 588 Bool getVideoSignalInfoIdxPresentFlag( ) { return m_videoSignalInfoIdxPresentFlag; } 589 590 Void setVideoSignalInfo( Int i, TComVideoSignalInfo* val ) { m_videoSignalInfo[i] = val; } 591 TComVideoSignalInfo* getVideoSignalInfo( Int i ) { return m_videoSignalInfo[i]; } 592 593 Void setVpsNumVideoSignalInfoMinus1( Int val ) { m_vpsNumVideoSignalInfoMinus1 = val; } 594 Int getVpsNumVideoSignalInfoMinus1( ) { return m_vpsNumVideoSignalInfoMinus1; } 595 596 Void setVpsVideoSignalInfoIdx( Int i, Int val ) { m_vpsVideoSignalInfoIdx[i] = val; } 597 Int getVpsVideoSignalInfoIdx( Int i ) { return m_vpsVideoSignalInfoIdx[i]; } 598 #endif 599 600 #if H_MV_6_HRD_O0164_15 601 Void setVpsVuiBspHrdPresentFlag( Bool flag ) { m_vpsVuiBspHrdPresentFlag = flag; } 602 Bool getVpsVuiBspHrdPresentFlag( ) { return m_vpsVuiBspHrdPresentFlag; } 603 604 Void setVpsVuiBspHrdParameters( TComVpsVuiBspHrdParameters* val) { m_vpsVuiBspHrdParameters = val; } 605 TComVpsVuiBspHrdParameters* getVpsVuiBspHrdParameters( ) { return m_vpsVuiBspHrdParameters; } 606 #endif 464 607 }; 608 465 609 466 610 class TComRepFormat 467 611 { 468 612 private: 613 #if H_MV_6_PS_REP_FORM_18_19_20 614 Bool m_chromaAndBitDepthVpsPresentFlag; 615 #endif 469 616 Int m_chromaFormatVpsIdc; 470 617 Bool m_separateColourPlaneVpsFlag; … … 477 624 TComRepFormat() { }; 478 625 626 #if H_MV_6_PS_REP_FORM_18_19_20 627 Void setChromaAndBitDepthVpsPresentFlag( Bool flag ) { m_chromaAndBitDepthVpsPresentFlag = flag; } 628 Bool getChromaAndBitDepthVpsPresentFlag( ) { return m_chromaAndBitDepthVpsPresentFlag; } 629 Void checkChromaAndBitDepthVpsPresentFlag( Int i ) { assert( i != 0 || m_chromaAndBitDepthVpsPresentFlag ); } // The value of chroma_and_bit_depth_vps_present_flag of the first rep_format( ) syntax structure in the VPS shall be equal to 1. 630 Void inferChromaAndBitDepth( TComRepFormat* prevRepFormat, Bool encoderFlag ); 631 #endif 632 479 633 Void setChromaFormatVpsIdc( Int val ) { m_chromaFormatVpsIdc = val; } 480 634 Int getChromaFormatVpsIdc( ) { return m_chromaFormatVpsIdc; } … … 494 648 Void setBitDepthVpsChromaMinus8( Int val ) { m_bitDepthVpsChromaMinus8 = val; } 495 649 Int getBitDepthVpsChromaMinus8( ) { return m_bitDepthVpsChromaMinus8; } 650 }; 651 #endif 652 653 #if H_MV_6_HRD_O0217_13 654 class TComDpbSize 655 { 656 private: 657 Bool m_subLayerFlagInfoPresentFlag[MAX_VPS_OUTPUTLAYER_SETS]; 658 Bool m_subLayerDpbInfoPresentFlag [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER]; 659 Int m_maxVpsDecPicBufferingMinus1[MAX_VPS_OUTPUTLAYER_SETS][MAX_NUM_LAYER_IDS][MAX_TLAYER];; 660 Int m_maxVpsNumReorderPics [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER]; 661 Int m_maxVpsLatencyIncreasePlus1 [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER]; 662 663 public: 664 TComDpbSize( ) 665 { 666 for (Int i = 0; i < MAX_VPS_OUTPUTLAYER_SETS; i++ ) 667 { 668 m_subLayerFlagInfoPresentFlag[i] = false; 669 670 for (Int j = 0; j < MAX_TLAYER; j++ ) 671 { 672 m_subLayerDpbInfoPresentFlag [i][j] = ( j == 0) ; 673 m_maxVpsNumReorderPics [i][j] = 0; 674 m_maxVpsLatencyIncreasePlus1 [i][j] = 0; 675 676 for (Int k = 0; k < MAX_NUM_LAYER_IDS; k++ ) 677 { 678 m_maxVpsDecPicBufferingMinus1[i][k][j] = 0; 679 } 680 } 681 } 682 } 683 684 Void setSubLayerFlagInfoPresentFlag( Int i, Bool flag ) { m_subLayerFlagInfoPresentFlag[i] = flag; } 685 Bool getSubLayerFlagInfoPresentFlag( Int i ) { return m_subLayerFlagInfoPresentFlag[i]; } 686 687 Void setSubLayerDpbInfoPresentFlag( Int i, Int j, Bool flag ) { m_subLayerDpbInfoPresentFlag[i][j] = flag; } 688 Bool getSubLayerDpbInfoPresentFlag( Int i, Int j ) { return m_subLayerDpbInfoPresentFlag[i][j]; } 689 690 Void setMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j, Int val ) { m_maxVpsDecPicBufferingMinus1[i][k][j] = val; } 691 Int getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { return m_maxVpsDecPicBufferingMinus1[i][k][j]; } 692 693 Void setMaxVpsNumReorderPics( Int i, Int j, Int val ) { m_maxVpsNumReorderPics[i][j] = val; } 694 Int getMaxVpsNumReorderPics( Int i, Int j ) { return m_maxVpsNumReorderPics[i][j]; } 695 696 Void setMaxVpsLatencyIncreasePlus1( Int i, Int j, Int val ) { m_maxVpsLatencyIncreasePlus1[i][j] = val; } 697 Int getMaxVpsLatencyIncreasePlus1( Int i, Int j ) { return m_maxVpsLatencyIncreasePlus1[i][j]; } 496 698 }; 497 699 #endif … … 547 749 Int m_layerIdInNuh [MAX_NUM_LAYER_IDS]; 548 750 Int m_dimensionId [MAX_NUM_LAYER_IDS][MAX_NUM_SCALABILITY_TYPES]; 751 752 #if H_MV_6_PS_O0109_22 753 Int m_viewIdLen; 754 #else 549 755 Int m_viewIdLenMinus1; 756 #endif 550 757 Int m_viewIdVal [MAX_NUM_LAYERS]; 551 758 Bool m_directDependencyFlag [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS]; 759 #if H_MV_6_ILDSD_O0120_26 760 Bool m_vpsSubLayersMaxMinus1PresentFlag; 761 Int m_subLayersVpsMaxMinus1 [MAX_NUM_LAYERS]; 762 #endif 552 763 Bool m_maxTidRefPresentFlag; 764 #if H_MV_6_ILDDS_O0225_30 765 Int m_maxTidIlRefPicsPlus1 [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 766 #else 553 767 Int m_maxTidIlRefPicPlus1 [MAX_NUM_LAYERS]; 768 #endif 554 769 Bool m_allRefLayersActiveFlag; 555 770 Int m_vpsNumberLayerSetsMinus1; … … 559 774 Bool m_moreOutputLayerSetsThanDefaultFlag; 560 775 Int m_numAddOutputLayerSetsMinus1; 776 #if H_MV_6_PS_0109_25 777 Int m_defaultOneTargetOutputLayerIdc; 778 #else 561 779 Bool m_defaultOneTargetOutputLayerFlag; 780 #endif 562 781 Int m_outputLayerSetIdxMinus1 [MAX_VPS_OUTPUTLAYER_SETS]; 563 782 Bool m_outputLayerFlag [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1]; 564 783 Int m_profileLevelTierIdx [MAX_VPS_OUTPUTLAYER_SETS ]; 784 #if H_MV_6_GEN_0153_28 785 Bool m_altOutputLayerFlag; 786 #endif 565 787 Bool m_repFormatIdxPresentFlag; 566 788 Int m_vpsNumRepFormatsMinus1; 567 789 Int m_vpsRepFormatIdx [MAX_NUM_LAYERS]; 568 790 TComRepFormat* m_repFormat [MAX_NUM_LAYERS]; 569 Bool m_maxOneActiveRefLayerFlag; 791 Bool m_maxOneActiveRefLayerFlag; 792 #if H_MV_6_MISC_O0062_31 793 Bool m_pocLsbNotPresentFlag [MAX_NUM_LAYERS]; 794 #endif 795 796 #if H_MV_6_HRD_O0217_13 797 TComDpbSize* m_dpbSize; 798 #endif 799 #if !H_MV_6_PS_O0223_29 570 800 Bool m_crossLayerIrapAlignedFlag; 801 #endif 571 802 Int m_directDepTypeLenMinus2; 803 #if H_MV_6_PS_O0096_21 804 Bool m_defaultDirectDependencyFlag; 805 Int m_defaultDirectDependencyType; 806 #endif 572 807 Bool m_vpsVuiPresentFlag; 573 808 TComVPSVUI* m_vpsVUI; … … 588 823 Int m_motionPredRefLayerId [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 589 824 Int m_viewIndex [MAX_NUM_LAYERS ]; 825 826 #if H_MV_6_HRD_O0217_13 827 std::vector< std::vector< Int> > m_targetDecLayerIdLists; //[TargetOptLayerSetIdx][i] 828 std::vector< std::vector< Int> > m_targetOptLayerIdLists; 829 std::vector< std::vector< Int> > m_layerSetLayerIdList; 830 #endif 831 832 590 833 Int xGetDimBitOffset( Int j ); 591 834 592 835 // VPS EXTENSION 2 SYNTAX ELEMENTS 593 836 #if H_3D_ARP … … 649 892 UInt getMaxTLayers () { return m_uiMaxTLayers; } 650 893 Void setMaxTLayers (UInt t) { m_uiMaxTLayers = t; } 651 894 #if H_MV_6_HRD_O0164_15 895 UInt getMaxSubLayersMinus1() { return m_uiMaxTLayers - 1; } // For consistency with draft spec 896 #endif 652 897 #if H_MV 653 898 UInt getMaxLayersMinus1() { return m_uiMaxLayersMinus1; }; … … 724 969 Int getDimensionId( Int layerIdInVps, Int scalIdx ) { return m_dimensionId[layerIdInVps][scalIdx]; } 725 970 971 #if H_MV_6_PS_O0109_22 972 Void setViewIdLen( Int val ) { m_viewIdLen = val; } 973 Int getViewIdLen( ) { return m_viewIdLen; } 974 #else 726 975 Void setViewIdLenMinus1( Int val ) { m_viewIdLenMinus1 = val; } 727 976 Int getViewIdLenMinus1( ) { return m_viewIdLenMinus1; } 977 #endif 728 978 729 979 Void setViewIdVal( Int viewOrderIndex, Int val ) { m_viewIdVal[viewOrderIndex] = val; } … … 731 981 Void setDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Bool val ) { m_directDependencyFlag[depLayeridInVps][refLayeridInVps] = val; } 732 982 Bool getDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps ) { return m_directDependencyFlag[depLayeridInVps][refLayeridInVps]; } 733 983 #if H_MV_6_ILDSD_O0120_26 984 Void setVpsSubLayersMaxMinus1PresentFlag( Bool flag ) { m_vpsSubLayersMaxMinus1PresentFlag = flag; } 985 Bool getVpsSubLayersMaxMinus1PresentFlag( ) { return m_vpsSubLayersMaxMinus1PresentFlag; } 986 Void setSubLayersVpsMaxMinus1( Int i, Int val ) { m_subLayersVpsMaxMinus1[i] = val; } 987 Int getSubLayersVpsMaxMinus1( Int i ) { return m_subLayersVpsMaxMinus1[i]; } 988 Void checkSubLayersVpsMaxMinus1( Int i ) { assert( m_subLayersVpsMaxMinus1[i] >= 0 && m_subLayersVpsMaxMinus1[i] <= m_uiMaxTLayers - 1 ); } 989 #endif 734 990 Void setMaxTidRefPresentFlag( Bool flag ) { m_maxTidRefPresentFlag = flag; } 735 991 Bool getMaxTidRefPresentFlag( ) { return m_maxTidRefPresentFlag; } 992 #if H_MV_6_ILDDS_O0225_30 993 Void setMaxTidIlRefPicsPlus1( Int i, Int j, Int val ) { m_maxTidIlRefPicsPlus1[i][j] = val; } 994 Int getMaxTidIlRefPicsPlus1( Int i, Int j ) { return m_maxTidIlRefPicsPlus1[i][j]; } 995 #else 736 996 Void setMaxTidIlRefPicPlus1( Int layerIdInVps, Int val ) { m_maxTidIlRefPicPlus1[ layerIdInVps ] = val; } 737 997 Int getMaxTidIlRefPicPlus1( Int layerIdInVps ) { return m_maxTidIlRefPicPlus1[ layerIdInVps ]; } 998 #endif 738 999 Void setAllRefLayersActiveFlag( Bool flag ) { m_allRefLayersActiveFlag = flag; } 739 1000 Bool getAllRefLayersActiveFlag( ) { return m_allRefLayersActiveFlag; } … … 749 1010 Void setProfileRefMinus1( Int profileTierLevelIdx, Int val ) { m_profileRefMinus1[ profileTierLevelIdx ] = val; } 750 1011 Int getProfileRefMinus1( Int profileTierLevelIdx ) { return m_profileRefMinus1[ profileTierLevelIdx ]; } 751 1012 #if H_MV_6_PS_O0109_23 1013 Void checkProfileRefMinus1( Int i ) { assert( getProfileRefMinus1( i ) + 1 <= i ); }; // The value of profile_ref_minus1[ i ] + 1 shall be less than or equal to i. 1014 #endif 752 1015 Void setMoreOutputLayerSetsThanDefaultFlag( Bool flag ) { m_moreOutputLayerSetsThanDefaultFlag = flag; } 753 1016 Bool getMoreOutputLayerSetsThanDefaultFlag() { return m_moreOutputLayerSetsThanDefaultFlag; } … … 755 1018 Void setNumAddOutputLayerSetsMinus1( Int val ) { m_numAddOutputLayerSetsMinus1 = val; } 756 1019 Int getNumAddOutputLayerSetsMinus1( ) { return m_numAddOutputLayerSetsMinus1; } 757 1020 1021 #if H_MV_6_PS_0109_25 1022 Void setDefaultOneTargetOutputLayerIdc( Int val ) { m_defaultOneTargetOutputLayerIdc = val; } 1023 Int getDefaultOneTargetOutputLayerIdc( ) { return m_defaultOneTargetOutputLayerIdc; } 1024 Void checkDefaultOneTargetOutputLayerIdc( ) { assert( m_defaultOneTargetOutputLayerIdc >= 0 && m_defaultOneTargetOutputLayerIdc <= 1 ); } 1025 #else 758 1026 Void setDefaultOneTargetOutputLayerFlag( Bool flag ) { m_defaultOneTargetOutputLayerFlag = flag; } 759 1027 Bool getDefaultOneTargetOutputLayerFlag( ) { return m_defaultOneTargetOutputLayerFlag; } 1028 #endif 760 1029 761 1030 Void setOutputLayerSetIdxMinus1( Int outLayerSetIdx, Int val ) { m_outputLayerSetIdxMinus1[ outLayerSetIdx ] = val; } … … 764 1033 Void setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag ) { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; } 765 1034 Bool getOutputLayerFlag( Int outLayerSetIdx, Int i ) { return m_outputLayerFlag[ outLayerSetIdx ][ i ]; } 1035 #if H_MV_6_HRD_O0217_13 1036 Bool inferOutputLayerFlag( Int layerSetIdx, Int i ) { return ( getDefaultOneTargetOutputLayerIdc( ) == 0 || ( ( getDefaultOneTargetOutputLayerIdc( ) == 1 ) && ( i == m_layerSetLayerIdList[layerSetIdx].size() - 1 ) )); } 1037 #endif 766 1038 767 1039 Void setProfileLevelTierIdx( Int outLayerSetIdx, Int val ) { m_profileLevelTierIdx[ outLayerSetIdx = val ]; } 768 1040 Int getProfileLevelTierIdx( Int outLayerSetIdx ) { return m_profileLevelTierIdx[ outLayerSetIdx ]; } 769 1041 #if H_MV_6_GEN_0153_28 1042 Void setAltOutputLayerFlag( Bool flag ) { m_altOutputLayerFlag = flag; } 1043 Bool getAltOutputLayerFlag( ) { return m_altOutputLayerFlag; } 1044 #endif 770 1045 Void setRepFormatIdxPresentFlag( Bool flag ) { m_repFormatIdxPresentFlag = flag; } 771 1046 Bool getRepFormatIdxPresentFlag( ) { return m_repFormatIdxPresentFlag; } … … 781 1056 Void setMaxOneActiveRefLayerFlag( Bool flag) { m_maxOneActiveRefLayerFlag = flag; } 782 1057 Bool getMaxOneActiveRefLayerFlag( ) { return m_maxOneActiveRefLayerFlag; } 1058 1059 #if H_MV_6_HRD_O0217_13 1060 Void setDpbSize( TComDpbSize* val ) { assert( m_dpbSize != 0 ); m_dpbSize = val; } 1061 TComDpbSize* getDpbSize( ) { return m_dpbSize;} 1062 #endif 1063 1064 #if H_MV_6_MISC_O0062_31 1065 Void setPocLsbNotPresentFlag( Int i, Bool flag ) { m_pocLsbNotPresentFlag[i] = flag; } 1066 Bool getPocLsbNotPresentFlag( Int i ) { return m_pocLsbNotPresentFlag[i]; } 1067 #endif 1068 #if !H_MV_6_PS_O0223_29 783 1069 Void setCrossLayerIrapAlignedFlag( Bool flag ) { m_crossLayerIrapAlignedFlag = flag; } 784 1070 Bool getCrossLayerIrapAlignedFlag( ) { return m_crossLayerIrapAlignedFlag; } 1071 #endif 785 1072 Void setDirectDepTypeLenMinus2( Int val) { m_directDepTypeLenMinus2 = val; } 786 1073 Int getDirectDepTypeLenMinus2( ) { return m_directDepTypeLenMinus2; } 787 1074 1075 #if H_MV_6_PS_O0096_21 1076 Void setDefaultDirectDependencyFlag( Bool flag ) { m_defaultDirectDependencyFlag = flag; } 1077 Bool getDefaultDirectDependencyFlag( ) { return m_defaultDirectDependencyFlag; } 1078 1079 Void setDefaultDirectDependencyType( Int val ) { m_defaultDirectDependencyType = val; } 1080 Int getDefaultDirectDependencyType( ) { return m_defaultDirectDependencyType; } 1081 #endif 788 1082 Void setDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps, Int val) { m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ] = val; } 789 1083 Int getDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps) { return m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ]; } … … 793 1087 TComVPSVUI* getVPSVUI( ) { return m_vpsVUI; } 794 1088 // VPS EXTENSION SEMANTICS VARIABLES 1089 795 1090 Void setLayerIdInVps( Int layerIdInNuh, Int val ) { m_layerIdInVps[layerIdInNuh] = val; } 796 1091 Int getLayerIdInVps( Int layerIdInNuh ) { assert( m_layerIdInVps[layerIdInNuh] >= 0 ); return m_layerIdInVps[layerIdInNuh]; } 797 1092 798 1093 Int getScalabilityId ( Int layerIdInVps, ScalabilityType scalType ); 1094 #if H_MV_6_FIX_GET_VIEW_ID 1095 Int getViewId ( Int layerIdInNuh ) { return m_viewIdVal[ getViewIndex( layerIdInNuh )]; } 1096 #else 799 1097 Int getViewId ( Int layerIdInNuh ) { return m_viewIdVal[ getViewIndex( getLayerIdInVps( layerIdInNuh) )]; } 1098 #endif 800 1099 Void setRefLayers(); 801 1100 … … 808 1107 Int scalTypeToScalIdx ( ScalabilityType scalType ); 809 1108 810 Int getProfileLevelTierIdxLen() { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); }; 811 812 Int getNumLayersInIdList ( Int lsIdx );; 1109 Int getProfileLevelTierIdxLen() { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); }; 1110 1111 Int getNumLayersInIdList ( Int lsIdx ); 1112 1113 #if H_MV_6_HRD_O0217_13 1114 Int getNumOutputLayerSets() ; 1115 Int getNumSubDpbs( Int i ) { return getNumLayersInIdList( i ); }; 1116 Bool isOutputLayer( Int outLayerSetIdx, Int layerIdInNuh ); 1117 #if H_MV_6_HRD_O0217_13 1118 Void deriveLayerSetLayerIdList(); 1119 Void deriveTargetLayerIdLists(); 1120 std::vector<Int> getTargetDecLayerIdList( Int targetOptLayerSetIdx ) { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; }; 1121 std::vector<Int> getTargetOptLayerIdList( Int targetOptLayerSetIdx ) { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; }; 1122 #endif 1123 #endif 1124 813 1125 814 1126 // inference … … 1096 1408 TimingInfo* getTimingInfo() { return &m_timingInfo; } 1097 1409 1410 #if H_MV_6_PS_O0118_33 1411 Void inferVideoSignalInfo( TComVPS* vps, Int layerIdCurr ) 1412 { 1413 if ( layerIdCurr == 0 || !vps->getVpsVuiPresentFlag() ) 1414 { 1415 return; 1416 } 1417 1418 TComVPSVUI* vpsVUI = vps->getVPSVUI(); 1419 assert( vpsVUI != NULL ); 1420 1421 TComVideoSignalInfo* videoSignalInfo = vpsVUI->getVideoSignalInfo( vpsVUI->getVpsVideoSignalInfoIdx( vps->getLayerIdInVps( layerIdCurr ) ) ); 1422 assert( videoSignalInfo != NULL ); 1423 1424 setVideoFormat ( videoSignalInfo->getVideoVpsFormat () ); 1425 setVideoFullRangeFlag ( videoSignalInfo->getVideoFullRangeVpsFlag () ); 1426 setColourPrimaries ( videoSignalInfo->getColourPrimariesVps () ); 1427 setTransferCharacteristics( videoSignalInfo->getTransferCharacteristicsVps() ); 1428 setMatrixCoefficients ( videoSignalInfo->getMatrixCoeffsVps () ); 1429 } 1430 #endif 1098 1431 }; 1099 1432 … … 1181 1514 TComVPS* m_pcVPS; 1182 1515 // SPS 1516 #if H_MV_6_PSEM_O0142_3 1517 Bool m_spsExtensionFlag; 1518 Bool m_spsExtensionTypeFlag[PS_EX_T_MAX_NUM]; 1519 #endif 1183 1520 Bool m_spsInferScalingListFlag; 1184 1521 Int m_spsScalingListRefLayerId; 1185 1522 Bool m_updateRepFormatFlag; 1523 #if H_MV_6_PS_REP_FORM_18_19_20 1524 Int m_spsRepFormatIdx; 1525 #endif 1186 1526 // SPS Extension 1187 1527 Bool m_interViewMvVertConstraintFlag; 1528 #if H_MV_6_SHVC_O0098_36 1529 Int m_numScaledRefLayerOffsets; 1530 Int m_scaledRefLayerId [MAX_NUM_SCALED_REF_LAYERS]; 1531 Int m_scaledRefLayerLeftOffset [MAX_NUM_LAYERS]; 1532 Int m_scaledRefLayerTopOffset [MAX_NUM_LAYERS]; 1533 Int m_scaledRefLayerRightOffset [MAX_NUM_LAYERS]; 1534 Int m_scaledRefLayerBottomOffset[MAX_NUM_LAYERS]; 1535 #endif 1188 1536 #endif 1189 1537 #if H_3D … … 1322 1670 TComPTL* getPTL() { return &m_pcPTL; } 1323 1671 #if H_MV 1672 #if H_MV_6_PSEM_O0142_3 1673 Void setSpsExtensionFlag( Bool flag ) { m_spsExtensionFlag = flag; } 1674 Bool getSpsExtensionFlag( ) { return m_spsExtensionFlag; } 1675 1676 Void setSpsExtensionTypeFlag( Int i, Bool flag ) { m_spsExtensionTypeFlag[i] = flag; } 1677 Bool getSpsExtensionTypeFlag( Int i ) { return m_spsExtensionTypeFlag[i]; } 1678 #endif 1324 1679 Void setVPS ( TComVPS* pcVPS ) { m_pcVPS = pcVPS; } 1325 1680 TComVPS* getVPS () { return m_pcVPS; } … … 1333 1688 Void setUpdateRepFormatFlag( Bool flag ) { m_updateRepFormatFlag = flag; } 1334 1689 Bool getUpdateRepFormatFlag( ) { return m_updateRepFormatFlag; } 1690 #if H_MV_6_PS_REP_FORM_18_19_20 1691 Void setSpsRepFormatIdx( Int val ) { m_spsRepFormatIdx = val; } 1692 Int getSpsRepFormatIdx( ) { return m_spsRepFormatIdx; } 1693 #endif 1335 1694 // SPS Extension 1336 1695 Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; } 1337 1696 Bool getInterViewMvVertConstraintFlag() { return m_interViewMvVertConstraintFlag;} 1697 1698 #if H_MV_6_SHVC_O0098_36 1699 Void setNumScaledRefLayerOffsets( Int val ) { m_numScaledRefLayerOffsets = val; } 1700 Int getNumScaledRefLayerOffsets( ) { return m_numScaledRefLayerOffsets; } 1701 1702 Void setScaledRefLayerId( Int i, Int val ) { m_scaledRefLayerId[i] = val; } 1703 Int getScaledRefLayerId( Int i ) { return m_scaledRefLayerId[i]; } 1704 1705 Void setScaledRefLayerLeftOffset( Int j, Int val ) { m_scaledRefLayerLeftOffset[j] = val; } 1706 Int getScaledRefLayerLeftOffset( Int j ) { return m_scaledRefLayerLeftOffset[j]; } 1707 1708 Void setScaledRefLayerTopOffset( Int j, Int val ) { m_scaledRefLayerTopOffset[j] = val; } 1709 Int getScaledRefLayerTopOffset( Int j ) { return m_scaledRefLayerTopOffset[j]; } 1710 1711 Void setScaledRefLayerRightOffset( Int j, Int val ) { m_scaledRefLayerRightOffset[j] = val; } 1712 Int getScaledRefLayerRightOffset( Int j ) { return m_scaledRefLayerRightOffset[j]; } 1713 1714 Void setScaledRefLayerBottomOffset( Int j, Int val ) { m_scaledRefLayerBottomOffset[j] = val; } 1715 Int getScaledRefLayerBottomOffset( Int j ) { return m_scaledRefLayerBottomOffset[j]; } 1716 #endif 1338 1717 // Inference 1339 1718 Void inferRepFormat( TComVPS* vps, Int layerIdCurr ); 1340 1341 1719 Void inferScalingList( TComSPS* spsSrc ); 1342 1720 #endif … … 1736 2114 // Additional slice header syntax elements 1737 2115 Bool m_pocResetFlag; 2116 #if H_MV_6_RALS_O0149_11 2117 Bool m_crossLayerBlaFlag; 2118 #endif 1738 2119 Bool m_discardableFlag; 1739 2120 Bool m_interLayerPredEnabledFlag; … … 2073 2454 // Additional slice header syntax elements 2074 2455 2456 #if H_MV_6_RALS_O0149_11 2457 Void setCrossLayerBlaFlag( Bool flag ) { m_crossLayerBlaFlag = flag; } 2458 Bool getCrossLayerBlaFlag( ) { return m_crossLayerBlaFlag; } 2459 Void checkCrossLayerBlaFlag ( ) 2460 { 2461 // cross_layer_bla_flag shall be equal to 0 for pictures with nal_unit_type not equal to IDR_W_RADL or IDR_N_LP or with nuh_layer_id not equal to 0. 2462 if ( getLayerId() != 0 || getNalUnitType() != NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP ) 2463 { 2464 assert( m_crossLayerBlaFlag == 0 ); 2465 } 2466 } 2467 #endif 2468 2075 2469 Void setPocResetFlag( Bool flag ) { m_pocResetFlag = flag; } 2076 2470 Bool getPocResetFlag( ) { return m_pocResetFlag; } 2077 2471 2078 Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; }2079 Bool getDiscardableFlag( ) { return m_discardableFlag; }2080 2081 Void setInterLayerPredEnabledFlag( Bool flag ) { m_interLayerPredEnabledFlag = flag; }2082 Bool getInterLayerPredEnabledFlag( ) { return m_interLayerPredEnabledFlag; }2083 2084 Void setNumInterLayerRefPicsMinus1( Int val ) { m_numInterLayerRefPicsMinus1 = val; }2085 Int getNumInterLayerRefPicsMinus1( ) { return m_numInterLayerRefPicsMinus1; }2086 2087 Void setInterLayerPredLayerIdc( Int i, Int val ) { m_interLayerPredLayerIdc[i] = val; }2088 Int getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; }2472 Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; } 2473 Bool getDiscardableFlag( ) { return m_discardableFlag; } 2474 2475 Void setInterLayerPredEnabledFlag( Bool flag ) { m_interLayerPredEnabledFlag = flag; } 2476 Bool getInterLayerPredEnabledFlag( ) { return m_interLayerPredEnabledFlag; } 2477 2478 Void setNumInterLayerRefPicsMinus1( Int val ) { m_numInterLayerRefPicsMinus1 = val; } 2479 Int getNumInterLayerRefPicsMinus1( ) { return m_numInterLayerRefPicsMinus1; } 2480 2481 Void setInterLayerPredLayerIdc( Int i, Int val ) { m_interLayerPredLayerIdc[i] = val; } 2482 Int getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; } 2089 2483 2090 2484 // Additional variables derived in slice header semantics 2091 2485 Int getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2092 2486 Int getInterLayerPredLayerIdcLen ( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2487 2488 #if H_MV_6_ILDDS_ILREFPICS_27_34 2489 Int getRefLayerPicFlag( Int i ); 2490 Int getRefLayerPicIdc ( Int j ); 2491 Int getNumRefLayerPics( ); 2492 #endif 2093 2493 2094 2494 Int getNumActiveRefLayerPics( );
Note: See TracChangeset for help on using the changeset viewer.