Changeset 1100 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder
- Timestamp:
- 6 Jul 2015, 20:20:51 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibDecoder
- Files:
-
- 3 edited
-
TDecCAVLC.cpp (modified) (4 diffs)
-
TDecTop.cpp (modified) (4 diffs)
-
TDecTop.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1095 r1100 3424 3424 #endif 3425 3425 #endif 3426 #if RESOLUTION_BASED_DPB3427 vps->assignSubDpbIndices();3428 #endif3429 3426 READ_FLAG(uiCode, "max_one_active_ref_layer_flag" ); 3430 3427 vps->setMaxOneActiveRefLayerFlag(uiCode); … … 3785 3782 #endif 3786 3783 3787 #if !RESOLUTION_BASED_DPB3788 3784 vps->deriveNumberOfSubDpbs(); 3789 #endif 3785 3790 3786 for(Int i = 1; i < vps->getNumOutputLayerSets(); i++) 3791 3787 { … … 3843 3839 } 3844 3840 READ_UVLC( uiCode, "max_vps_num_reorder_pics[i][j]" ); vps->setMaxVpsNumReorderPics( i, j, uiCode); 3845 #if RESOLUTION_BASED_DPB 3846 if( vps->getNumSubDpbs(layerSetIdxForOutputLayerSet) != vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ) ) 3847 { 3848 for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++) 3849 { 3850 READ_UVLC( uiCode, "max_vps_layer_dec_pic_buff_minus1[i][k][j]" ); vps->setMaxVpsLayerDecPicBuffMinus1( i, k, j, uiCode); 3851 } 3852 } 3853 else // vps->getNumSubDpbs(layerSetIdxForOutputLayerSet) == vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ) 3854 { 3855 for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++) 3856 { 3857 vps->setMaxVpsLayerDecPicBuffMinus1( i, k, j, vps->getMaxVpsDecPicBufferingMinus1( i, k, j)); 3858 } 3859 } 3860 #endif 3841 3861 3842 READ_UVLC( uiCode, "max_vps_latency_increase_plus1[i][j]" ); vps->setMaxVpsLatencyIncreasePlus1( i, j, uiCode); 3862 3843 } … … 3885 3866 if( !vps->getSubLayerDpbInfoPresentFlag(i, j) ) // If sub-layer DPB information is NOT present 3886 3867 { 3887 #if RESOLUTION_BASED_DPB3888 for(Int k = 0; k < vps->getNumSubDpbs(layerSetIdxForOutputLayerSet); k++)3889 #else3890 3868 for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++) 3891 #endif3892 3869 { 3893 3870 vps->setMaxVpsDecPicBufferingMinus1( i, k, j, vps->getMaxVpsDecPicBufferingMinus1( i, k, j - 1 ) ); 3894 3871 } 3895 3872 vps->setMaxVpsNumReorderPics( i, j, vps->getMaxVpsNumReorderPics( i, j - 1) ); 3896 #if RESOLUTION_BASED_DPB3897 for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++)3898 {3899 vps->setMaxVpsLayerDecPicBuffMinus1( i, k, j, vps->getMaxVpsLayerDecPicBuffMinus1( i, k, j - 1));3900 }3901 #endif3902 3873 vps->setMaxVpsLatencyIncreasePlus1( i, j, vps->getMaxVpsLatencyIncreasePlus1( i, j - 1 ) ); 3903 3874 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r1093 r1100 116 116 m_firstPicInLayerDecodedFlag = false; 117 117 #endif 118 #if RESOLUTION_BASED_DPB119 m_subDpbIdx = -1;120 #endif121 118 #if POC_RESET_IDC_DECODER 122 119 m_parseIdc = -1; … … 280 277 else 281 278 { 282 #if RESOLUTION_BASED_DPB283 Int layerSetIdxForOutputLayerSet = pcSlice->getVPS()->getOutputLayerSetIdx( getCommonDecoderParams()->getTargetOutputLayerSetIdx() );284 Int layerIdx = pcSlice->getVPS()->findLayerIdxInLayerSet( layerSetIdxForOutputLayerSet, pcSlice->getLayerId() ); assert( layerIdx != -1 );285 m_iMaxRefPicNum = pcSlice->getVPS()->getMaxVpsLayerDecPicBuffMinus1( getCommonDecoderParams()->getTargetOutputLayerSetIdx(), layerIdx, pcSlice->getTLayer() ) + 1; // m_uiMaxDecPicBuffering has the space for the picture currently being decoded286 #else287 279 m_iMaxRefPicNum = pcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1( m_commonDecoderParams->getTargetOutputLayerSetIdx(), pcSlice->getVPS()->getLayerIdcForOls( pcSlice->getVPS()->getOutputLayerSetIdx( m_commonDecoderParams->getTargetOutputLayerSetIdx()), pcSlice->getLayerId() ), pcSlice->getTLayer() ) + 1; // m_uiMaxDecPicBuffering has the space for the picture currently being decoded 288 #endif289 280 } 290 281 #else … … 759 750 checkValueOfTargetOutputLayerSetIdx( m_apcSlicePilot->getVPS()); 760 751 #endif 761 #endif762 #if RESOLUTION_BASED_DPB763 // Following assignment should go wherever a new VPS is activated764 assignSubDpbs(m_apcSlicePilot->getVPS());765 752 #endif 766 753 m_apcSlicePilot->initSlice( nalu.m_layerId ); … … 2836 2823 } 2837 2824 #endif 2838 #if RESOLUTION_BASED_DPB 2839 Void TDecTop::assignSubDpbs(TComVPS *vps) 2840 { 2841 if( m_subDpbIdx == -1 ) // Sub-DPB index is not already assigned 2842 { 2843 Int lsIdx = vps->getOutputLayerSetIdx( getCommonDecoderParams()->getTargetOutputLayerSetIdx() ); 2844 2845 Int layerIdx = vps->findLayerIdxInLayerSet( lsIdx, getLayerId() ); 2846 assert( layerIdx != -1 ); // Current layer should be found in the layer set. 2847 2848 // Copy from the active VPS based on the layer ID. 2849 m_subDpbIdx = vps->getSubDpbAssigned( lsIdx, layerIdx ); 2850 } 2851 } 2852 #endif 2825 2853 2826 #if POC_RESET_IDC_DECODER 2854 2827 Void TDecTop::markAllPicsAsNoCurrAu(TComVPS *vps) -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.h
r1093 r1100 168 168 Int m_prevPicOrderCnt; 169 169 #endif 170 #if RESOLUTION_BASED_DPB171 Int m_subDpbIdx; // Index to the sub-DPB that the layer belongs to.172 // When new VPS is activated, this should be re-initialized to -1173 #endif174 170 #if CONFORMANCE_BITSTREAM_MODE 175 171 Bool m_confModeFlag; … … 293 289 ParameterSetManagerDecoder* getParameterSetManager() { return &m_parameterSetManagerDecoder; } 294 290 #endif 295 #if RESOLUTION_BASED_DPB296 Void setSubDpbIdx(Int idx) { m_subDpbIdx = idx; }297 Int getSubDpbIdx() { return m_subDpbIdx; }298 Void assignSubDpbs(TComVPS *vps);299 #endif300 291 #if CONFORMANCE_BITSTREAM_MODE 301 292 std::vector<TComPic>* getConfListPic() {return &m_confListPic; }
Note: See TracChangeset for help on using the changeset viewer.