Changeset 874 in SHVCSoftware
- Timestamp:
- 28 Aug 2014, 00:57:07 (10 years ago)
- Location:
- branches/SHM-dev
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/cfg/layers.cfg
r861 r874 1 1 NumLayers : 2 2 AvcBase: 02 NonHEVCBase : 0 3 3 ScalabilityMask1 : 0 # Multiview 4 4 ScalabilityMask2 : 1 # Scalable -
branches/SHM-dev/cfg/layers_avcbase.cfg
r713 r874 1 1 NumLayers : 2 2 AvcBase: 12 NonHEVCBase : 1 3 3 ScalabilityMask1 : 0 # Multiview 4 4 ScalabilityMask2 : 1 # Scalable … … 38 38 InitialQP1 : 0 # Rate control: initial QP for layer 1 39 39 RCForceIntraQP1 : 0 # Rate control: force intra QP to be equal to initial QP for layer 1 40 41 42 NumLayerSets : 2 # Include default layer set, value of 0 not allowed 43 NumLayerInIdList1 : 2 # 0-th layer set is default, need not specify LayerSetLayerIdList0 or NumLayerInIdList0 44 LayerSetLayerIdList1 : 0 1 45 46 NumAddLayerSets : 0 47 NumOutputLayerSets : 2 # Include defualt OLS, value of 0 not allowed 48 DefaultTargetOutputLayerIdc : 1 49 NumLayersInOutputLayerSet : 1 # The number of layers in the 0-th OLS should not be specified, 50 # ListOfOutputLayers0 need not be specified 51 ListOfOutputLayers1 : 1 -
branches/SHM-dev/source/App/TAppDecoder/TAppDecTop.cpp
r856 r874 1200 1200 1201 1201 // pcPic is statically created for the external (AVC) base layer, no need to delete it 1202 #if VPS_AVC_BL_FLAG_REMOVAL 1203 if( !m_acTDecTop[layerIdx].getParameterSetManager()->getActiveVPS()->getNonHEVCBaseLayerFlag() || layerIdx ) 1204 #else 1202 1205 if( !m_acTDecTop[layerIdx].getParameterSetManager()->getActiveVPS()->getAvcBaseLayerFlag() || layerIdx ) 1206 #endif 1203 1207 { 1204 1208 delete pcPic; -
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r868 r874 67 67 : m_pBitstreamFile() 68 68 #if AVC_BASE 69 #if VPS_AVC_BL_FLAG_REMOVAL 70 , m_nonHEVCBaseLayerFlag(0) 71 #else 69 72 , m_avcBaseLayerFlag(0) 73 #endif 70 74 #endif 71 75 , m_maxTidRefPresentFlag(1) … … 743 747 #endif 744 748 #if AVC_BASE 749 #if VPS_AVC_BL_FLAG_REMOVAL 750 ("NonHEVCBase,-nonhevc", m_nonHEVCBaseLayerFlag, 0, "BL is available but not internal") 751 #else 745 752 ("AvcBase,-avc", m_avcBaseLayerFlag, 0, "avc_base_layer_flag") 753 #endif 746 754 ("InputBLFile,-ibl", cfg_BLInputFile, string(""), "Base layer rec YUV input file name") 747 755 #endif … … 1216 1224 #if SVC_EXTENSION 1217 1225 #if AVC_BASE 1226 #if VPS_AVC_BL_FLAG_REMOVAL 1227 if( m_nonHEVCBaseLayerFlag ) 1228 #else 1218 1229 if( m_avcBaseLayerFlag ) 1230 #endif 1219 1231 { 1220 1232 *cfg_InputFile[0] = cfg_BLInputFile; … … 2574 2586 2575 2587 // it can be updated after AVC BL support will be added to the WD 2588 #if VPS_AVC_BL_FLAG_REMOVAL 2589 if( m_nonHEVCBaseLayerFlag ) 2590 #else 2576 2591 if( m_avcBaseLayerFlag ) 2592 #endif 2577 2593 { 2578 2594 m_crossLayerIrapAlignFlag = false; … … 3561 3577 printf("Scalable : %d\n", m_scalabilityMask[SCALABILITY_ID] ); 3562 3578 #if AVC_BASE 3579 #if VPS_AVC_BL_FLAG_REMOVAL 3580 printf("Base layer : %s\n", m_nonHEVCBaseLayerFlag ? "Non-HEVC" : "HEVC"); 3581 #else 3563 3582 printf("Base layer : %s\n", m_avcBaseLayerFlag ? "AVC" : "HEVC"); 3583 #endif 3564 3584 #endif 3565 3585 #if AUXILIARY_PICTURES -
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h
r868 r874 69 69 Int m_framesToBeEncoded; ///< number of encoded frames 70 70 #if AVC_BASE 71 #if VPS_AVC_BL_FLAG_REMOVAL 72 Int m_nonHEVCBaseLayerFlag; ///< non HEVC BL 73 #else 71 74 Int m_avcBaseLayerFlag; ///< avc_baselayer_flag 75 #endif 72 76 #endif 73 77 Bool m_maxTidRefPresentFlag; -
branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp
r872 r874 234 234 #if REF_IDX_MFM 235 235 #if AVC_BASE 236 #if VPS_AVC_BL_FLAG_REMOVAL 237 m_acTEncTop[layer].setMFMEnabledFlag(layer == 0 ? false : ( m_nonHEVCBaseLayerFlag ? false : true ) && m_acLayerCfg[layer].getNumMotionPredRefLayers()); 238 #else 236 239 m_acTEncTop[layer].setMFMEnabledFlag(layer == 0 ? false : ( m_avcBaseLayerFlag ? false : true ) && m_acLayerCfg[layer].getNumMotionPredRefLayers()); 240 #endif 237 241 #else 238 242 m_acTEncTop[layer].setMFMEnabledFlag(layer == 0 ? false : ( m_acLayerCfg[layer].getNumMotionPredRefLayers() > 0 ) ); … … 1239 1243 UInt i = 0, dimIdLen = 0; 1240 1244 #if AVC_BASE 1245 #if VPS_AVC_BL_FLAG_REMOVAL 1246 vps->setNonHEVCBaseLayerFlag( m_nonHEVCBaseLayerFlag ); 1247 if ( m_nonHEVCBaseLayerFlag ) 1248 { 1249 vps->setBaseLayerInternalFlag (false); 1250 } 1251 #else 1241 1252 vps->setAvcBaseLayerFlag(m_avcBaseLayerFlag); 1253 #endif 1242 1254 #else 1243 1255 vps->setAvcBaseLayerFlag(false); -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r873 r874 2131 2131 if ( layerId == 0 || sps->getV1CompatibleSPSFlag() == 1 ) 2132 2132 { 2133 #if VPS_AVC_BL_FLAG_REMOVAL 2134 if( layerId == 0 && vps->getNonHEVCBaseLayerFlag() ) 2135 #else 2133 2136 if( layerId == 0 && vps->getAvcBaseLayerFlag() ) 2137 #endif 2134 2138 #else 2135 2139 if ( layerId == 0 ) … … 2170 2174 if ( layerId == 0 || sps->getV1CompatibleSPSFlag() == 1 ) 2171 2175 { 2176 #if VPS_AVC_BL_FLAG_REMOVAL 2177 if( layerId == 0 && vps->getNonHEVCBaseLayerFlag() ) 2178 #else 2172 2179 if( layerId == 0 && vps->getAvcBaseLayerFlag() ) 2180 #endif 2173 2181 #else 2174 2182 if ( layerId == 0 ) … … 2218 2226 if ( layerId == 0 || sps->getV1CompatibleSPSFlag() == 1 ) 2219 2227 { 2228 #if VPS_AVC_BL_FLAG_REMOVAL 2229 if( layerId == 0 && vps->getNonHEVCBaseLayerFlag() ) 2230 #else 2220 2231 if( layerId == 0 && vps->getAvcBaseLayerFlag() ) 2232 #endif 2221 2233 #else 2222 2234 if ( layerId == 0 ) … … 2327 2339 if ( layerId == 0 || sps->getV1CompatibleSPSFlag() == 1 ) 2328 2340 { 2341 #if VPS_AVC_BL_FLAG_REMOVAL 2342 if( layerId == 0 && vps->getNonHEVCBaseLayerFlag() ) 2343 #else 2329 2344 if( layerId == 0 && vps->getAvcBaseLayerFlag() ) 2345 #endif 2330 2346 #else 2331 2347 if ( layerId == 0 ) … … 2455 2471 } 2456 2472 #if VPS_EXTN_MASK_AND_DIM_INFO 2473 #if VPS_AVC_BL_FLAG_REMOVAL 2474 m_nonHEVCBaseLayerFlag = false; 2475 #else 2457 2476 m_avcBaseLayerFlag = false; 2477 #endif 2458 2478 m_splittingFlag = false; 2459 2479 ::memset(m_scalabilityMask, 0, sizeof(m_scalabilityMask)); -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h
r873 r874 599 599 // ------------------------------------------ 600 600 #if VPS_EXTN_MASK_AND_DIM_INFO 601 #if VPS_AVC_BL_FLAG_REMOVAL 602 Bool m_nonHEVCBaseLayerFlag; 603 #else 601 604 Bool m_avcBaseLayerFlag; // For now, always set to true. 605 #endif 602 606 Bool m_splittingFlag; 603 607 Bool m_scalabilityMask[MAX_VPS_NUM_SCALABILITY_TYPES]; … … 965 969 Void setNumLayerSets(UInt v) { m_numLayerSets = v; } 966 970 #if VPS_EXTN_MASK_AND_DIM_INFO 971 #if VPS_AVC_BL_FLAG_REMOVAL 972 Bool getNonHEVCBaseLayerFlag() { return m_nonHEVCBaseLayerFlag; } 973 Void setNonHEVCBaseLayerFlag(Bool x) { m_nonHEVCBaseLayerFlag = x; } 974 #else 967 975 Bool getAvcBaseLayerFlag() { return m_avcBaseLayerFlag; } 968 976 Void setAvcBaseLayerFlag(Bool x) { m_avcBaseLayerFlag = x; } 977 #endif 969 978 970 979 Bool getSplittingFlag() { return m_splittingFlag; } -
branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h
r873 r874 44 44 #define MAX_LAYERS 8 ///< max number of layers the codec is supposed to handle 45 45 46 #define VPS_AVC_BL_FLAG_REMOVAL 1 ///< remove avc_base_layer_flag and direct the function its offer to vps_base_layer_internal_flag and vps_base_layer_available_flag 46 47 #define VPS_RESERVED_FLAGS 1 ///< vps_base_layer_internal_flag and vps_base_layer_available_flag 47 48 #define VPS_VUI_VST_PARAMS 1 ///< JCTVC-R0227: Related to signalling of VST parameters of the base layer. -
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r872 r874 1002 1002 READ_FLAG( uiCode, "vps_base_layer_internal_flag"); pcVPS->setBaseLayerInternalFlag( uiCode ? true : false ); 1003 1003 READ_FLAG( uiCode, "vps_base_layer_available_flag"); pcVPS->setBaseLayerAvailableFlag( uiCode ? true : false ); 1004 #if VPS_AVC_BL_FLAG_REMOVAL 1005 pcVPS->setNonHEVCBaseLayerFlag( (pcVPS->getBaseLayerAvailableFlag() && !pcVPS->getBaseLayerInternalFlag()) ? true : false); 1006 #endif 1004 1007 #else 1005 1008 READ_CODE( 2, uiCode, "vps_reserved_three_2bits" ); assert(uiCode == 3); … … 1178 1181 UInt numScalabilityTypes = 0, i = 0, j = 0; 1179 1182 1183 #if !VPS_AVC_BL_FLAG_REMOVAL 1180 1184 READ_FLAG( uiCode, "avc_base_layer_flag" ); vps->setAvcBaseLayerFlag(uiCode ? true : false); 1185 #endif 1181 1186 1182 1187 #if !P0307_REMOVE_VPS_VUI_OFFSET -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r873 r874 347 347 #else 348 348 m_iMaxRefPicNum = pcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1( getCommonDecoderParams()->getTargetOutputLayerSetIdx(), pcSlice->getLayerId(), pcSlice->getTLayer() ) + 1; // m_uiMaxDecPicBuffering has the space for the picture currently being decoded 349 //TODO: HENDRY -- Do the checking here. 349 350 #endif 350 351 } … … 742 743 743 744 // When avc_base_layer_flag is equal to 1, it is a requirement of bitstream conformance that the value of sps_scaling_list_ref_layer_id shall be greater than 0 745 #if VPS_AVC_BL_FLAG_REMOVAL 746 if( activeVPS->getNonHEVCBaseLayerFlag() ) 747 #else 744 748 if( activeVPS->getAvcBaseLayerFlag() ) 749 #endif 745 750 { 746 751 assert( refLayerId > 0 ); … … 771 776 772 777 // When avc_base_layer_flag is equal to 1, it is a requirement of bitstream conformance that the value of sps_scaling_list_ref_layer_id shall be greater than 0 778 #if VPS_AVC_BL_FLAG_REMOVAL 779 if( activeVPS->getNonHEVCBaseLayerFlag() ) 780 #else 773 781 if( activeVPS->getAvcBaseLayerFlag() ) 782 #endif 774 783 { 775 784 assert( refLayerId > 0 ); … … 797 806 798 807 #if AVC_BASE 808 #if VPS_AVC_BL_FLAG_REMOVAL 809 if( activeVPS->getNonHEVCBaseLayerFlag() ) 810 #else 799 811 if( activeVPS->getAvcBaseLayerFlag() ) 812 #endif 800 813 { 801 814 TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin()); … … 1059 1072 m_isNoOutputPriorPics = false; 1060 1073 } 1074 1075 //TODO: HENDRY -- Probably do the checking for max number of positive and negative pics here 1076 1061 1077 1062 1078 //For inference of PicOutputFlag … … 1580 1596 { 1581 1597 #if AVC_BASE 1598 #if VPS_AVC_BL_FLAG_REMOVAL 1599 if( m_layerId == 1 && m_parameterSetManagerDecoder.getPrefetchedVPS(0)->getNonHEVCBaseLayerFlag() ) 1600 #else 1582 1601 if( m_layerId == 1 && m_parameterSetManagerDecoder.getPrefetchedVPS(0)->getAvcBaseLayerFlag() ) 1602 #endif 1583 1603 { 1584 1604 TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin()); … … 1941 1961 UInt refLayerId = pcSlice->getVPS()->getRefLayerId(m_layerId, refLayerIdc); 1942 1962 #if AVC_BASE 1963 #if VPS_AVC_BL_FLAG_REMOVAL 1964 if( refLayerId == 0 && m_parameterSetManagerDecoder.getActiveVPS()->getNonHEVCBaseLayerFlag() ) 1965 #else 1943 1966 if( refLayerId == 0 && m_parameterSetManagerDecoder.getActiveVPS()->getAvcBaseLayerFlag() ) 1967 #endif 1944 1968 { 1945 1969 TComPic* pic = *m_ppcTDecTop[0]->getListPic()->begin(); … … 2116 2140 UInt refLayerIdc = pcSlice->getInterLayerPredLayerIdc(i); 2117 2141 #if AVC_BASE 2142 #if VPS_AVC_BL_FLAG_REMOVAL 2143 if( pcSlice->getVPS()->getRefLayerId( m_layerId, refLayerIdc ) == 0 && m_parameterSetManagerDecoder.getActiveVPS()->getNonHEVCBaseLayerFlag() ) 2144 #else 2118 2145 if( pcSlice->getVPS()->getRefLayerId( m_layerId, refLayerIdc ) == 0 && m_parameterSetManagerDecoder.getActiveVPS()->getAvcBaseLayerFlag() ) 2146 #endif 2119 2147 { 2120 2148 pcSlice->setBaseColPic ( refLayerIdc, *m_ppcTDecTop[0]->getListPic()->begin() ); … … 2437 2465 #endif 2438 2466 #if AVC_BASE 2467 #if VPS_AVC_BL_FLAG_REMOVAL 2468 if( m_parameterSetManagerDecoder.getPrefetchedVPS(0)->getNonHEVCBaseLayerFlag() ) 2469 #else 2439 2470 if( m_parameterSetManagerDecoder.getPrefetchedVPS(0)->getAvcBaseLayerFlag() ) 2471 #endif 2440 2472 { 2441 2473 if( !m_ppcTDecTop[0]->getBLReconFile()->good() ) -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r872 r874 931 931 #if VPS_EXTN_MASK_AND_DIM_INFO 932 932 UInt i = 0, j = 0; 933 933 #if !VPS_AVC_BL_FLAG_REMOVAL 934 934 WRITE_FLAG( vps->getAvcBaseLayerFlag(), "avc_base_layer_flag" ); 935 #endif 935 936 #if !P0307_REMOVE_VPS_VUI_OFFSET 936 937 #if O0109_MOVE_VPS_VUI_FLAG -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r873 r874 993 993 // inferring of the scaling list can be moved to the config file 994 994 UInt refLayerId = 0; 995 #if VPS_AVC_BL_FLAG_REMOVAL 996 if( m_layerId > 0 && !m_pcEncTop->getVPS()->getNonHEVCBaseLayerFlag() && m_pcEncTop->getVPS()->getRecursiveRefLayerFlag( m_layerId, refLayerId ) ) 997 #else 995 998 if( m_layerId > 0 && !m_pcEncTop->getVPS()->getAvcBaseLayerFlag() && m_pcEncTop->getVPS()->getRecursiveRefLayerFlag( m_layerId, refLayerId ) ) 999 #endif 996 1000 { 997 1001 m_pcEncTop->getSPS()->setInferScalingListFlag( true ); … … 1023 1027 // inferring of the scaling list can be moved to the config file 1024 1028 UInt refLayerId = 0; 1029 #if VPS_AVC_BL_FLAG_REMOVAL 1030 if( m_layerId > 0 && !m_pcEncTop->getVPS()->getNonHEVCBaseLayerFlag() && m_pcEncTop->getVPS()->getRecursiveRefLayerFlag( m_layerId, refLayerId ) ) 1031 #else 1025 1032 if( m_layerId > 0 && !m_pcEncTop->getVPS()->getAvcBaseLayerFlag() && m_pcEncTop->getVPS()->getRecursiveRefLayerFlag( m_layerId, refLayerId ) ) 1033 #endif 1026 1034 { 1027 1035 m_pcEncTop->getSPS()->setInferScalingListFlag( true ); … … 2110 2118 startCUAddrSliceSegmentIdx++; 2111 2119 #if AVC_BASE 2120 #if VPS_AVC_BL_FLAG_REMOVAL 2121 if( m_layerId == 0 && m_pcEncTop->getVPS()->getNonHEVCBaseLayerFlag() ) 2122 #else 2112 2123 if( m_layerId == 0 && m_pcEncTop->getVPS()->getAvcBaseLayerFlag() ) 2124 #endif 2113 2125 { 2114 2126 pcPic->getPicYuvOrg()->copyToPic( pcPic->getPicYuvRec() ); … … 2223 2235 OutputNALUnit nalu( NAL_UNIT_VPS, 0, 0 ); // The value of nuh_layer_id of VPS NAL unit shall be equal to 0. 2224 2236 #if AVC_BASE 2237 #if VPS_AVC_BL_FLAG_REMOVAL 2238 if( ( m_layerId == 1 && m_pcEncTop->getVPS()->getNonHEVCBaseLayerFlag() ) || ( m_layerId == 0 && !m_pcEncTop->getVPS()->getNonHEVCBaseLayerFlag() ) ) 2239 #else 2225 2240 if( ( m_layerId == 1 && m_pcEncTop->getVPS()->getAvcBaseLayerFlag() ) || ( m_layerId == 0 && !m_pcEncTop->getVPS()->getAvcBaseLayerFlag() ) ) 2241 #endif 2226 2242 #else 2227 2243 if( m_layerId == 0 )
Note: See TracChangeset for help on using the changeset viewer.