Changeset 766 in 3DVCSoftware for branches/HTM-9.2-dev0/source/App/TAppDecoder
- Timestamp:
- 12 Jan 2014, 03:29:17 (11 years ago)
- Location:
- branches/HTM-9.2-dev0/source/App/TAppDecoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecCfg.cpp
r738 r766 85 85 ("OutputBitDepthC,d", m_outputBitDepthC, 0, "bit depth of YUV output chroma component (default: use 0 for native depth)") 86 86 #if H_MV 87 #if H_MV_6_HRD_O0217_1388 87 ("TargetOptLayerSetIdx,x", m_targetOptLayerSetIdx, -1, "Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded. 89 #else90 ("MaxLayerId,-ls", m_maxLayerId, MAX_NUM_LAYER_IDS-1, "Maximum LayerId to be decoded.")91 #endif92 88 #endif 93 89 ("MaxTemporalLayer,t", m_iMaxTemporalLayer, -1, "Maximum Temporal Layer to be decoded. -1 to decode all layers") … … 128 124 if ( !cfg_TargetDecLayerIdSetFile.empty() ) 129 125 { 130 #if H_MV_6_HRD_O0217_13131 126 m_targetDecLayerIdSetFileEmpty = false; 132 #endif133 127 FILE* targetDecLayerIdSetFile = fopen ( cfg_TargetDecLayerIdSetFile.c_str(), "r" ); 134 128 if ( targetDecLayerIdSetFile ) … … 174 168 } 175 169 #if H_MV 176 #if H_MV_6_HRD_O0217_13177 170 m_targetDecLayerIdSet.push_back( 0 ); // Only base layer at startup 178 #else179 else180 {181 for ( Int curLayerId = 0; curLayerId <= m_maxLayerId; curLayerId++ )182 {183 m_targetDecLayerIdSet.push_back( curLayerId );184 }185 }186 #endif187 171 #endif 188 172 -
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecCfg.h
r738 r766 59 59 Char* m_pchBitstreamFile; ///< input bitstream file name 60 60 #if H_MV 61 #if H_MV_6_HRD_O0217_1362 61 Int m_targetOptLayerSetIdx; ///< target output layer set index 63 #endif64 62 Int m_maxLayerId; ///< maximum nuh_layer_id decoded 65 63 std::vector<Char*> m_pchReconFiles; ///< array of output reconstruction file name create from output reconstruction file name … … 77 75 78 76 std::vector<Int> m_targetDecLayerIdSet; ///< set of LayerIds to be included in the sub-bitstream extraction process. 79 #if H_MV_6_HRD_O0217_1380 77 Bool m_targetDecLayerIdSetFileEmpty; ///< indication if target layers are given by file 81 #endif82 78 Int m_respectDefDispWindow; ///< Only output content inside the default display window 83 79 … … 89 85 : m_pchBitstreamFile(NULL) 90 86 #if H_MV 91 #if !H_MV_6_HRD_O0217_1392 , m_maxLayerId(0)93 #endif94 87 #endif 95 88 , m_pchReconFile(NULL) … … 99 92 , m_iMaxTemporalLayer(-1) 100 93 , m_decodedPictureHashSEIEnabled(0) 101 #if H_MV_6_HRD_O0217_13102 94 , m_targetDecLayerIdSetFileEmpty(true) 103 #endif104 95 , m_respectDefDispWindow(0) 105 96 {} -
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecTop.cpp
r738 r766 61 61 { 62 62 #if H_MV 63 #if H_MV_LAYER_WISE_STARTUP64 63 for (Int i = 0; i < MAX_NUM_LAYER_IDS; i++) 65 64 { … … 67 66 m_layerInitilizedFlags[i] = false; 68 67 } 69 #else70 for (Int i = 0; i < MAX_NUM_LAYER_IDS; i++) m_layerIdToDecIdx[i] = -1;71 #endif72 68 #endif 73 69 #if H_3D … … 192 188 Bool newSliceDiffPoc = false; 193 189 Bool newSliceDiffLayer = false; 194 #if H_MV_FIX_SKIP_PICTURES195 190 Bool sliceSkippedFlag = false; 196 #endif197 191 #if H_3D 198 192 Bool allLayersDecoded = false; … … 212 206 read(nalu, nalUnit); 213 207 #if H_MV 214 #if !H_MV_6_HRD_O0217_13215 Int decIdx = xGetDecoderIdx( nalu.m_layerId , true );216 #endif217 #if H_MV_6_LAYER_ID_32218 208 if( (m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) || !isNaluWithinTargetDecLayerIdSet(&nalu) || nalu.m_layerId > MAX_NUM_LAYER_IDS-1 ) 219 #else220 if( (m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) || !isNaluWithinTargetDecLayerIdSet(&nalu) )221 #endif222 209 { 223 210 bNewPicture = false; 224 #if H_MV_6_LAYER_ID_32225 211 if ( !bitstreamFile ) 226 212 { 227 213 decIdxLastPic = decIdxCurrPic; 228 214 } 229 #endif230 215 } 231 216 else 232 217 { 233 #if H_MV_6_HRD_O0217_13234 218 Int decIdx = xGetDecoderIdx( nalu.m_layerId , true ); 235 #endif236 219 newSliceDiffLayer = nalu.isSlice() && ( nalu.m_layerId != layerIdCurrPic ) && !firstSlice; 237 #if H_MV_FIX_SKIP_PICTURES238 220 newSliceDiffPoc = m_tDecTop[decIdx]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[decIdx], newSliceDiffLayer, sliceSkippedFlag ); 239 #else240 newSliceDiffPoc = m_tDecTop[decIdx]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[decIdx], newSliceDiffLayer );241 #endif242 221 // decode function only returns true when all of the following conditions are true 243 222 // - poc in particular layer changes … … 245 224 // - nalu.isSlice() == true 246 225 247 #if H_MV_6_HRD_O0217_13248 226 // Update TargetDecLayerIdList only when not specified by layer id file, specification by file might actually out of conformance. 249 227 if (nalu.m_nalUnitType == NAL_UNIT_VPS && m_targetDecLayerIdSetFileEmpty ) … … 258 236 m_targetDecLayerIdSet = vps->getTargetDecLayerIdList( m_targetOptLayerSetIdx ); 259 237 } 260 #endif261 #if H_MV_FIX_SKIP_PICTURES262 238 bNewPicture = ( newSliceDiffLayer || newSliceDiffPoc ) && !sliceSkippedFlag; 263 239 if ( nalu.isSlice() && firstSlice && !sliceSkippedFlag ) 264 #else265 bNewPicture = newSliceDiffLayer || newSliceDiffPoc;266 267 if ( nalu.isSlice() && firstSlice )268 #endif269 240 { 270 241 layerIdCurrPic = nalu.m_layerId; … … 881 852 Int decIdx = -1; 882 853 883 #if H_MV_6_LAYER_ID_32884 854 if ( layerId > MAX_NUM_LAYER_IDS-1 ) 885 855 { 886 856 return decIdx; 887 857 } 888 #endif889 858 890 859 if ( m_layerIdToDecIdx[ layerId ] != -1 ) … … 906 875 m_tDecTop[ decIdx ]->setDecodedPictureHashSEIEnabled(m_decodedPictureHashSEIEnabled); 907 876 m_tDecTop[ decIdx ]->setIvPicLists( &m_ivPicLists ); 908 #if H_MV_LAYER_WISE_STARTUP909 877 m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags ); 910 #endif911 878 912 879 #if H_3D -
branches/HTM-9.2-dev0/source/App/TAppDecoder/TAppDecTop.h
r738 r766 67 67 Int m_numDecoders; ///< number of decoder instances 68 68 TComPicLists m_ivPicLists; ///< picture buffers of decoder instances 69 #if H_MV_LAYER_WISE_STARTUP70 69 Bool m_layerInitilizedFlags[ MAX_NUM_LAYER_IDS ]; ///< for layerwise startup 71 #endif72 70 73 71 #else
Note: See TracChangeset for help on using the changeset viewer.