Changeset 454 in SHVCSoftware for branches/SHM-4.0-dev/source/Lib
- Timestamp:
- 8 Nov 2013, 07:59:51 (11 years ago)
- Location:
- branches/SHM-4.0-dev/source/Lib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.cpp
r453 r454 114 114 , m_bPocResetFlag ( false ) 115 115 #endif 116 , m_bDiscardableFlag ( false )117 116 #if REF_IDX_MFM 118 117 , m_bMFMEnabledFlag ( false ) 119 118 #endif 119 , m_bDiscardableFlag ( false ) 120 120 #endif //SVC_EXTENSION 121 121 { … … 1910 1910 // Video parameter set (VPS) 1911 1911 // ------------------------------------------------------------------------------------------------ 1912 #if SVC_EXTENSION 1912 1913 TComVPS::TComVPS() 1913 1914 : m_VPSId ( 0) … … 1929 1930 , m_numOutputLayerSets (0) 1930 1931 #endif 1931 #if VPS_PROFILE_OUTPUT_LAYERS1932 1932 , m_numProfileTierLevel (0) 1933 1933 , m_moreOutputLayerSetsThanDefaultFlag (false) 1934 1934 , m_numAddOutputLayerSets (0) 1935 1935 , m_defaultOneTargetOutputLayerFlag (false) 1936 #endif1937 1936 #if VPS_VUI_BITRATE_PICRATE 1938 1937 , m_bitRatePresentVpsFlag (false) … … 1988 1987 ::memset(m_numLayerInIdList, 0, sizeof(m_numLayerInIdList )); 1989 1988 #endif 1990 #if VPS_PROFILE_OUTPUT_LAYERS1991 1989 ::memset(m_profileLevelTierIdx, 0, sizeof(m_profileLevelTierIdx)); 1992 #endif1993 1990 #if JCTVC_M0458_INTERLAYER_RPS_SIG 1994 1991 m_maxOneActiveRefLayerFlag = true; … … 2030 2027 #endif 2031 2028 } 2029 #else 2030 TComVPS::TComVPS() 2031 : m_VPSId ( 0) 2032 , m_uiMaxTLayers ( 1) 2033 , m_uiMaxLayers ( 1) 2034 , m_bTemporalIdNestingFlag (false) 2035 , m_numHrdParameters ( 0) 2036 , m_maxNuhReservedZeroLayerId ( 0) 2037 , m_hrdParameters (NULL) 2038 , m_hrdOpSetIdx (NULL) 2039 , m_cprmsPresentFlag (NULL) 2040 { 2041 for( Int i = 0; i < MAX_TLAYER; i++) 2042 { 2043 m_numReorderPics[i] = 0; 2044 m_uiMaxDecPicBuffering[i] = 1; 2045 m_uiMaxLatencyIncrease[i] = 0; 2046 } 2047 } 2048 #endif //SVC_EXTENSION 2032 2049 2033 2050 TComVPS::~TComVPS() -
branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.h
r453 r454 484 484 UInt* m_hrdOpSetIdx; 485 485 Bool* m_cprmsPresentFlag; 486 #if !SVC_EXTENSION 487 UInt m_numOpSets; 488 Bool m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1]; 489 #endif 490 TComPTL m_pcPTL; 491 TimingInfo m_timingInfo; 492 493 #if SVC_EXTENSION 494 #if DERIVE_LAYER_ID_LIST_VARIABLES 495 Int m_layerSetLayerIdList[MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 496 Int m_numLayerInIdList[MAX_VPS_LAYER_SETS_PLUS1]; 497 #endif 498 #if IL_SL_SIGNALLING_N0371 499 Bool m_scalingListLayerDependency[MAX_LAYERS][MAX_LAYERS]; // layer dependency for scaling list 500 #endif 501 #if VPS_EXTN_OFFSET 502 UInt m_extensionOffset; 503 #endif 486 504 #if VPS_RENAME 487 505 UInt m_maxLayerId; 488 506 UInt m_numLayerSets; 489 507 Bool m_layerIdIncludedFlag[MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 490 #else 491 UInt m_numOpSets; 492 Bool m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1]; 493 #endif 494 #if DERIVE_LAYER_ID_LIST_VARIABLES 495 Int m_layerSetLayerIdList[MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 496 Int m_numLayerInIdList[MAX_VPS_LAYER_SETS_PLUS1]; 497 #endif 498 #if IL_SL_SIGNALLING_N0371 499 Bool m_scalingListLayerDependency[MAX_LAYERS][MAX_LAYERS]; // layer dependency for scaling list 500 #endif 501 #if VPS_EXTN_OFFSET 502 UInt m_extensionOffset; 503 #endif 504 TComPTL m_pcPTL; 505 TimingInfo m_timingInfo; 508 #endif 506 509 507 510 // ------------------------------------------ … … 546 549 #endif 547 550 #endif 548 #if VPS_PROFILE_OUTPUT_LAYERS549 551 UInt m_numProfileTierLevel; 550 552 Bool m_moreOutputLayerSetsThanDefaultFlag; … … 552 554 Bool m_defaultOneTargetOutputLayerFlag; 553 555 Int m_profileLevelTierIdx[64]; 554 #endif555 556 #if JCTVC_M0458_INTERLAYER_RPS_SIG 556 557 Bool m_maxOneActiveRefLayerFlag; … … 597 598 Int m_viewIdVal [MAX_LAYERS]; 598 599 #endif 600 #endif //SVC_EXTENSION 599 601 public: 600 602 TComVPS(); … … 637 639 UInt getNumHrdParameters() { return m_numHrdParameters; } 638 640 Void setNumHrdParameters(UInt v) { m_numHrdParameters = v; } 639 640 #if VPS_RENAME 641 UInt getMaxLayerId() { return m_maxLayerId; } 642 Void setMaxLayerId(UInt v) { m_maxLayerId = v; } 643 644 UInt getNumLayerSets() { return m_numLayerSets; } 645 Void setNumLayerSets(UInt v) { m_numLayerSets = v; } 646 #else 641 642 #if !SVC_EXTENSION 647 643 UInt getMaxNuhReservedZeroLayerId() { return m_maxNuhReservedZeroLayerId; } 648 644 Void setMaxNuhReservedZeroLayerId(UInt v) { m_maxNuhReservedZeroLayerId = v; } … … 653 649 Bool getLayerIdIncludedFlag(UInt opsIdx, UInt id) { return m_layerIdIncludedFlag[opsIdx][id]; } 654 650 Void setLayerIdIncludedFlag(Bool v, UInt opsIdx, UInt id) { m_layerIdIncludedFlag[opsIdx][id] = v; } 651 652 TComPTL* getPTL() { return &m_pcPTL; } 653 TimingInfo* getTimingInfo() { return &m_timingInfo; } 654 655 #if SVC_EXTENSION 655 656 #if DERIVE_LAYER_ID_LIST_VARIABLES 656 657 Int getLayerSetLayerIdList(Int set, Int layerId) { return m_layerSetLayerIdList[set][layerId]; } … … 669 670 #endif 670 671 671 TComPTL* getPTL() { return &m_pcPTL; } 672 TimingInfo* getTimingInfo() { return &m_timingInfo; } 672 #if VPS_RENAME 673 UInt getMaxLayerId() { return m_maxLayerId; } 674 Void setMaxLayerId(UInt v) { m_maxLayerId = v; } 675 676 UInt getNumLayerSets() { return m_numLayerSets; } 677 Void setNumLayerSets(UInt v) { m_numLayerSets = v; } 678 #endif 673 679 #if VPS_EXTN_MASK_AND_DIM_INFO 674 680 Bool getAvcBaseLayerFlag() { return m_avcBaseLayerFlag; } … … 743 749 #endif 744 750 #endif 745 #if VPS_PROFILE_OUTPUT_LAYERS746 751 UInt getNumProfileTierLevel() { return m_numProfileTierLevel; } 747 752 Void setNumProfileTierLevel(Int x) { m_numProfileTierLevel = x; } … … 758 763 Int getProfileLevelTierIdx(Int i) { return m_profileLevelTierIdx[i]; } 759 764 Void setProfileLevelTierIdx(Int i, Int x) { m_profileLevelTierIdx[i] = x ; } 760 #endif761 765 #if JCTVC_M0458_INTERLAYER_RPS_SIG 762 766 Bool getMaxOneActiveRefLayerFlag() { return m_maxOneActiveRefLayerFlag; } … … 847 851 Void setExtensionOffset( UInt offset ) { m_extensionOffset = offset; } 848 852 #endif 853 #endif //SVC_EXTENSION 849 854 }; 850 855 -
branches/SHM-4.0-dev/source/Lib/TLibCommon/TypeDef.h
r453 r454 77 77 #define VPS_OUTPUT_LAYER_SET_IDX 1 ///< JCTVC-M0268: Signal output_layer_set_idx[i] as output_layer_set_idx_minus1[i] 78 78 #define VPS_MOVE_DIR_DEPENDENCY_FLAG 1 ///< JCTVC-M0268: Move the syntax element direct_dependency_flag to follow the syntax element dimension_id 79 #define VPS_PROFILE_OUTPUT_LAYERS 1 ///< JCTVC-M0268: Signal profile information and output layer information as in Sec. 3 of M0268v280 79 #define M0457_PREDICTION_INDICATIONS 1 81 80 #define M0040_ADAPTIVE_RESOLUTION_CHANGE 1 -
branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r453 r454 992 992 } 993 993 994 #if SVC_EXTENSION 994 995 #if VPS_EXTNS 995 996 Void TDecCavlc::parseVPSExtension(TComVPS *vps) … … 1121 1122 #if VPS_EXTN_PROFILE_INFO 1122 1123 // Profile-tier-level signalling 1123 #if VPS_PROFILE_OUTPUT_LAYERS1124 1124 READ_CODE( 10, uiCode, "vps_number_layer_sets_minus1" ); assert( uiCode == (vps->getNumLayerSets() - 1) ); 1125 1125 READ_CODE( 6, uiCode, "vps_num_profile_tier_level_minus1"); vps->setNumProfileTierLevel( uiCode + 1 ); 1126 1126 vps->getPTLForExtnPtr()->resize(vps->getNumProfileTierLevel()); 1127 1127 for(Int idx = 1; idx <= vps->getNumProfileTierLevel() - 1; idx++) 1128 #else1129 vps->getPTLForExtnPtr()->resize(vps->getNumLayerSets());1130 for(Int idx = 1; idx <= vps->getNumLayerSets() - 1; idx++)1131 #endif1132 1128 { 1133 1129 READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); vps->setProfilePresentFlag(idx, uiCode ? true : false); 1134 1130 if( !vps->getProfilePresentFlag(idx) ) 1135 1131 { 1136 #if VPS_PROFILE_OUTPUT_LAYERS1137 1132 READ_CODE( 6, uiCode, "profile_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1); 1138 #else1139 READ_UVLC( uiCode, "vps_profile_layer_set_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1);1140 #endif1141 1133 assert( vps->getProfileLayerSetRef(idx) < idx ); 1134 1142 1135 // Copy profile information as indicated 1143 1136 vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) ); … … 1147 1140 #endif 1148 1141 1149 #if VPS_PROFILE_OUTPUT_LAYERS1150 1142 READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); vps->setMoreOutputLayerSetsThanDefaultFlag( uiCode ? true : false ); 1151 1143 Int numOutputLayerSets = 0; … … 1208 1200 READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" ); vps->setProfileLevelTierIdx(i, uiCode); 1209 1201 } 1210 #else 1211 #if VPS_EXTN_OP_LAYER_SETS 1212 // Target output layer signalling 1213 READ_UVLC( uiCode, "vps_num_output_layer_sets"); vps->setNumOutputLayerSets(uiCode); 1214 for(i = 0; i < vps->getNumOutputLayerSets(); i++) 1215 { 1216 #if VPS_OUTPUT_LAYER_SET_IDX 1217 READ_UVLC( uiCode, "vps_output_layer_set_idx_minus1[i]"); vps->setOutputLayerSetIdx(i, uiCode + 1); 1218 #else 1219 READ_UVLC( uiCode, "vps_output_layer_set_idx[i]"); vps->setOutputLayerSetIdx(i, uiCode); 1220 #endif 1221 Int lsIdx = vps->getOutputLayerSetIdx(i); 1222 for(j = 0; j <= vps->getMaxLayerId(); j++) 1223 { 1224 if(vps->getLayerIdIncludedFlag(lsIdx, j)) 1225 { 1226 READ_FLAG( uiCode, "vps_output_layer_flag[lsIdx][j]"); vps->setOutputLayerFlag(lsIdx, j, uiCode); 1227 } 1228 } 1229 } 1230 #endif 1231 #endif 1202 1232 1203 #if REPN_FORMAT_IN_VPS 1233 1204 READ_FLAG( uiCode, "rep_format_idx_present_flag"); … … 1456 1427 #endif 1457 1428 } 1458 #endif 1429 #endif 1430 #endif //SVC_EXTENSION 1431 1459 1432 Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager) 1460 1433 { -
branches/SHM-4.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r453 r454 812 812 } 813 813 814 #if SVC_EXTENSION 814 815 #if VPS_EXTNS 815 816 Void TEncCavlc::codeVPSExtension (TComVPS *vps) … … 907 908 #if VPS_EXTN_PROFILE_INFO 908 909 // Profile-tier-level signalling 909 #if VPS_PROFILE_OUTPUT_LAYERS910 910 WRITE_CODE( vps->getNumLayerSets() - 1 , 10, "vps_number_layer_sets_minus1" ); 911 911 WRITE_CODE( vps->getNumProfileTierLevel() - 1, 6, "vps_num_profile_tier_level_minus1"); 912 912 for(Int idx = 1; idx <= vps->getNumProfileTierLevel() - 1; idx++) 913 #else914 for(Int idx = 1; idx <= vps->getNumLayerSets() - 1; idx++)915 #endif916 913 { 917 914 WRITE_FLAG( vps->getProfilePresentFlag(idx), "vps_profile_present_flag[i]" ); 918 915 if( !vps->getProfilePresentFlag(idx) ) 919 916 { 920 #if VPS_PROFILE_OUTPUT_LAYERS921 917 WRITE_CODE( vps->getProfileLayerSetRef(idx) - 1, 6, "profile_ref_minus1[i]" ); 922 #else923 WRITE_UVLC( vps->getProfileLayerSetRef(idx) - 1, "vps_profile_layer_set_ref_minus1[i]" );924 #endif925 918 } 926 919 codePTL( vps->getPTLForExtn(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 ); … … 928 921 #endif 929 922 930 #if VPS_PROFILE_OUTPUT_LAYERS931 923 Int numOutputLayerSets = vps->getNumOutputLayerSets() ; 932 924 WRITE_FLAG( (numOutputLayerSets > vps->getNumLayerSets()), "more_output_layer_sets_than_default_flag" ); … … 963 955 WRITE_CODE( vps->getProfileLevelTierIdx(i), numBits, "profile_level_tier_idx[i]" ); 964 956 } 965 #else 966 #if VPS_EXTN_OP_LAYER_SETS 967 // Target output layer signalling 968 WRITE_UVLC( vps->getNumOutputLayerSets(), "vps_num_output_layer_sets"); 969 for(i = 0; i < vps->getNumOutputLayerSets(); i++) 970 { 971 #if VPS_OUTPUT_LAYER_SET_IDX 972 assert(vps->getOutputLayerSetIdx(i) > 0); 973 WRITE_UVLC( vps->getOutputLayerSetIdx(i) - 1, "vps_output_layer_set_idx_minus1[i]"); 974 #else 975 WRITE_UVLC( vps->getOutputLayerSetIdx(i), "vps_output_layer_set_idx[i]"); 976 #endif 977 Int lsIdx = vps->getOutputLayerSetIdx(i); 978 for(j = 0; j <= vps->getMaxLayerId(); j++) 979 { 980 if(vps->getLayerIdIncludedFlag(lsIdx, j)) 981 { 982 WRITE_FLAG( vps->getOutputLayerFlag(lsIdx, j), "vps_output_layer_flag[lsIdx][j]"); 983 } 984 } 985 } 986 #endif 987 #endif 988 957 989 958 #if REPN_FORMAT_IN_VPS 990 959 WRITE_FLAG( vps->getRepFormatIdxPresentFlag(), "rep_format_idx_present_flag"); … … 1162 1131 } 1163 1132 #endif 1133 #endif //SVC_EXTENSION 1164 1134 1165 1135 Void TEncCavlc::codeSliceHeader ( TComSlice* pcSlice )
Note: See TracChangeset for help on using the changeset viewer.