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