Changeset 951 in SHVCSoftware for branches/SHM-dev/source/App/TAppEncoder
- Timestamp:
- 3 Jan 2015, 01:49:56 (10 years ago)
- Location:
- branches/SHM-dev/source/App/TAppEncoder
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r950 r951 290 290 {"main10", Profile::MAIN10}, 291 291 {"main-still-picture", Profile::MAINSTILLPICTURE}, 292 #if MULTIPLE_PTL_SUPPORT 293 {"range-extension", Profile::RANGEEXTENSION}, //This is not used in this software 294 {"range-extension-high", Profile::RANGEEXTENSIONHIGH}, //This is not used in this software 295 {"multiview-main", Profile::MULTIVIEWMAIN}, //This is not used in this software 296 {"scalable-main", Profile::SCALABLEMAIN}, 297 {"scalable-main10", Profile::SCALABLEMAIN10}, 298 #endif 292 299 }; 293 300 … … 841 848 // Profile and level 842 849 #if SVC_EXTENSION && MULTIPLE_PTL_SUPPORT 843 ("NumProfileTierLevel", m_numPTLInfo, 2, "Number of Profile, Tier and Level information")844 ("Profile%d", m_profileList, Profile::NONE, NUM_POSSIBLE_LEVEL, "Profile to be used when encoding (Incomplete)")845 ("Level%d", m_levelList, Level::NONE, NUM_POSSIBLE_LEVEL, "Level limit to be used, eg 5.1 (Incomplete)")846 ("Tier%d", m_levelTierList, Level::MAIN, NUM_POSSIBLE_LEVEL, "Tier to use for interpretation of --Level")847 848 ("ProgressiveSource%d", m_progressiveSourceFlagList, false, MAX_ VPS_LAYER_ID_PLUS1, "Indicate that source is progressive")849 ("InterlacedSource%d", m_interlacedSourceFlagList, false, MAX_ VPS_LAYER_ID_PLUS1, "Indicate that source is interlaced")850 ("NonPackedSource%d", m_nonPackedConstraintFlagList, false, MAX_ VPS_LAYER_ID_PLUS1, "Indicate that source does not contain frame packing")851 ("FrameOnly%d", m_frameOnlyConstraintFlagList, false, MAX_ VPS_LAYER_ID_PLUS1, "Indicate that the bitstream contains only frames")850 ("NumProfileTierLevel", m_numPTLInfo, 1, "Number of Profile, Tier and Level information") 851 ("Profile%d", m_profileList, Profile::NONE, MAX_NUM_LAYER_IDS + 1, "Profile to be used when encoding (Incomplete)") 852 ("Level%d", m_levelList, Level::NONE, MAX_NUM_LAYER_IDS + 1, "Level limit to be used, eg 5.1 (Incomplete)") 853 ("Tier%d", m_levelTierList, Level::MAIN, MAX_NUM_LAYER_IDS + 1, "Tier to use for interpretation of --Level") 854 ("ProfileCompatibility%d", m_profileCompatibility, Profile::NONE, MAX_NUM_LAYER_IDS + 1, "Compatible profile to be used when encoding") 855 ("ProgressiveSource%d", m_progressiveSourceFlagList, false, MAX_NUM_LAYER_IDS + 1, "Indicate that source is progressive") 856 ("InterlacedSource%d", m_interlacedSourceFlagList, false, MAX_NUM_LAYER_IDS + 1, "Indicate that source is interlaced") 857 ("NonPackedSource%d", m_nonPackedConstraintFlagList, false, MAX_NUM_LAYER_IDS + 1, "Indicate that source does not contain frame packing") 858 ("FrameOnly%d", m_frameOnlyConstraintFlagList, false, MAX_NUM_LAYER_IDS + 1, "Indicate that the bitstream contains only frames") 852 859 853 860 ("LayerPTLIndex%d", m_layerPTLIdx, 0, MAX_VPS_LAYER_ID_PLUS1, "Index of PTL for each layer") 854 ("ListOfProfileTierLevelOls%d", cfg_listOfLayerPTLOfOlss, string(""), MAX_VPS_ LAYER_ID_PLUS1, "PTL Index for each layer in each OLS except the first OLS. The PTL index for layer in the first OLS is set to 1")861 ("ListOfProfileTierLevelOls%d", cfg_listOfLayerPTLOfOlss, string(""), MAX_VPS_OUTPUT_LAYER_SETS_PLUS1, "PTL Index for each layer in each OLS except the first OLS. The PTL index for layer in the first OLS is set to 1") 855 862 #else 856 863 ("Profile", m_profile, Profile::NONE, "Profile to be used when encoding (Incomplete)") … … 1965 1972 } 1966 1973 #if MULTIPLE_PTL_SUPPORT 1967 if (olsCtr > startOlsCtr) // Non-default OLS 1968 { 1969 scanStringToArray( cfg_listOfLayerPTLOfOlss[olsCtr], m_numLayerInIdList[m_outputLayerSetIdx[olsCtr - startOlsCtr - 1]], "List of PTL for each layer in OLS", m_listOfLayerPTLofOlss[olsCtr] ); 1970 } 1971 else 1972 { 1973 scanStringToArray( cfg_listOfLayerPTLOfOlss[olsCtr], m_numLayerInIdList[olsCtr], "List of PTL for each layer in OLS", m_listOfLayerPTLofOlss[olsCtr] ); 1974 } 1974 Int olsToLsIndex = (olsCtr > startOlsCtr) ? m_outputLayerSetIdx[olsCtr - m_numLayerSets] : olsCtr; 1975 scanStringToArray( cfg_listOfLayerPTLOfOlss[olsCtr], m_numLayerInIdList[olsToLsIndex], "List of PTL for each layers in OLS", m_listOfLayerPTLofOlss[olsCtr] ); 1976 //For conformance checking 1977 //Conformance of a layer in an output operation point associated with an OLS in a bitstream to the Scalable Main profile is indicated as follows: 1978 //If OpTid of the output operation point is equal to vps_max_sub_layer_minus1, the conformance is indicated by general_profile_idc being equal to 7 or general_profile_compatibility_flag[ 7 ] being equal to 1 1979 //Conformance of a layer in an output operation point associated with an OLS in a bitstream to the Scalable Main 10 profile is indicated as follows: 1980 //If OpTid of the output operation point is equal to vps_max_sub_layer_minus1, the conformance is indicated by general_profile_idc being equal to 7 or general_profile_compatibility_flag[ 7 ] being equal to 1 1981 //The following assert may be updated / upgraded to take care of general_profile_compatibility_flag. 1982 for ( Int ii = 1; ii < m_numLayerInIdList[olsToLsIndex]; ii++) 1983 { 1984 if (m_layerSetLayerIdList[ii - 1] != 0 && m_layerSetLayerIdList[ii] != 0) //Profile / profile compatibility of enhancement layers must indicate the same profile. 1985 { 1986 assert( (m_profileList[m_listOfLayerPTLofOlss[olsCtr][ii]] == m_profileList[m_listOfLayerPTLofOlss[olsCtr][ii - 1]]) || 1987 (m_profileList[m_listOfLayerPTLofOlss[olsCtr][ii]] == m_profileCompatibility[m_listOfLayerPTLofOlss[olsCtr][ii - 1]]) || 1988 (m_profileCompatibility[m_listOfLayerPTLofOlss[olsCtr][ii]] == m_profileList[m_listOfLayerPTLofOlss[olsCtr][ii - 1]]) ); 1989 } 1990 } 1975 1991 #endif 1976 1992 } -
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h
r950 r951 123 123 Int m_numPTLInfo; 124 124 Int m_layerPTLIdx[MAX_VPS_LAYER_ID_PLUS1]; ///< scalability_mask 125 Profile::Name m_profileList[NUM_POSSIBLE_LEVEL]; 126 Level::Tier m_levelTierList[NUM_POSSIBLE_LEVEL]; 127 Level::Name m_levelList[NUM_POSSIBLE_LEVEL]; 128 Bool m_progressiveSourceFlagList[NUM_POSSIBLE_LEVEL]; 129 Bool m_interlacedSourceFlagList[NUM_POSSIBLE_LEVEL]; 130 Bool m_nonPackedConstraintFlagList[NUM_POSSIBLE_LEVEL]; 131 Bool m_frameOnlyConstraintFlagList[NUM_POSSIBLE_LEVEL]; 125 Profile::Name m_profileList[MAX_NUM_LAYER_IDS + 1]; 126 Level::Tier m_levelTierList[MAX_NUM_LAYER_IDS + 1]; 127 Level::Name m_levelList[MAX_NUM_LAYER_IDS + 1]; 128 Profile::Name m_profileCompatibility[MAX_NUM_LAYER_IDS + 1]; 129 Bool m_progressiveSourceFlagList[MAX_NUM_LAYER_IDS + 1]; 130 Bool m_interlacedSourceFlagList[MAX_NUM_LAYER_IDS + 1]; 131 Bool m_nonPackedConstraintFlagList[MAX_NUM_LAYER_IDS + 1]; 132 Bool m_frameOnlyConstraintFlagList[MAX_NUM_LAYER_IDS + 1]; 132 133 133 134 std::vector< std::vector<Int> > m_listOfLayerPTLofOlss; -
branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp
r949 r951 211 211 profileTierLevel.setTierFlag(m_levelTierList[ii]); 212 212 profileTierLevel.setProfileIdc(m_profileList[ii]); 213 profileTierLevel.setProfileCompatibilityFlag(m_profile List[ii], 1);213 profileTierLevel.setProfileCompatibilityFlag(m_profileCompatibility[ii], 1); 214 214 profileTierLevel.setProgressiveSourceFlag(m_progressiveSourceFlagList[ii]); 215 215 profileTierLevel.setInterlacedSourceFlag(m_interlacedSourceFlagList[ii]);
Note: See TracChangeset for help on using the changeset viewer.