Changeset 71 in 3DVCSoftware for branches/HTM-3.0-Vidyo/source/Lib
- Timestamp:
- 5 Jun 2012, 04:47:14 (13 years ago)
- Location:
- branches/HTM-3.0-Vidyo/source/Lib
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-3.0-Vidyo/source/Lib/TLibCommon/TComDepthMapGenerator.cpp
r56 r71 122 122 } 123 123 124 #if VIDYO_VPS_INTEGRATION 125 Void 126 TComDepthMapGenerator::init( TComPrediction* pcPrediction, TComVPSAccess* pcVPSAccess, TComSPSAccess* pcSPSAccess, TComAUPicAccess* pcAUPicAccess ) 127 #else 124 128 Void 125 129 TComDepthMapGenerator::init( TComPrediction* pcPrediction, TComSPSAccess* pcSPSAccess, TComAUPicAccess* pcAUPicAccess ) 130 #endif 126 131 { 127 132 AOF( pcPrediction ); … … 130 135 uninit(); 131 136 m_pcPrediction = pcPrediction; 137 #if VIDYO_VPS_INTEGRATION 138 m_pcVPSAccess = pcVPSAccess; 139 #endif 132 140 m_pcSPSAccess = pcSPSAccess; 133 141 m_pcAUPicAccess = pcAUPicAccess; … … 157 165 158 166 // update SPS list and AU pic list and set depth map generator in SPS 167 #if VIDYO_VPS_INTEGRATION 168 m_pcVPSAccess ->addVPS( pcPic->getVPS() ); 169 #endif 159 170 m_pcSPSAccess ->addSPS( pcPic->getSPS() ); 160 171 m_pcAUPicAccess->addPic( pcPic ); -
branches/HTM-3.0-Vidyo/source/Lib/TLibCommon/TComDepthMapGenerator.h
r56 r71 50 50 51 51 #if DEPTH_MAP_GENERATION 52 52 #if VIDYO_VPS_INTEGRATION 53 class TComVPSAccess // would be better to have a real VPS buffer 54 { 55 public: 56 TComVPSAccess () { clear(); } 57 ~TComVPSAccess() {} 58 59 Void clear () { ::memset( m_aacVPS, 0x00, sizeof( m_aacVPS ) ); m_uiActiceVPSId = 0;} 60 Void addVPS ( TComVPS* pcVPS ) { m_aacVPS[ pcVPS->getVPSId() ] = pcVPS; } 61 TComVPS* getVPS ( UInt uiVPSId ) { return m_aacVPS[ uiVPSId ]; } 62 TComVPS* getActiveVPS ( ) { return m_aacVPS[ m_uiActiceVPSId ]; } 63 Void setActiveVPSId ( UInt activeVPSId ) { m_uiActiceVPSId = activeVPSId; } 64 private: 65 TComVPS* m_aacVPS[ MAX_NUM_VPS ]; 66 UInt m_uiActiceVPSId; 67 }; 68 #endif 53 69 54 70 class TComSPSAccess // would be better to have a real SPS buffer … … 113 129 Void destroy (); 114 130 131 #if VIDYO_VPS_INTEGRATION 132 Void init( TComPrediction* pcPrediction, TComVPSAccess* pcVPSAccess, TComSPSAccess* pcSPSAccess, TComAUPicAccess* pcAUPicAccess ); 133 #endif 115 134 Void init ( TComPrediction* pcPrediction, TComSPSAccess* pcSPSAccess, TComAUPicAccess* pcAUPicAccess ); 116 135 Void uninit (); … … 136 155 137 156 TComPrediction* getPrediction () { return m_pcPrediction; } 157 #if VIDYO_VPS_INTEGRATION 158 TComVPSAccess* getVPSAccess () { return m_pcVPSAccess; } 159 #endif 138 160 TComSPSAccess* getSPSAccess () { return m_pcSPSAccess; } 139 161 TComAUPicAccess* getAUPicAccess() { return m_pcAUPicAccess; } … … 198 220 Bool m_bDecoder; 199 221 TComPrediction* m_pcPrediction; 222 #if VIDYO_VPS_INTEGRATION 223 TComVPSAccess* m_pcVPSAccess; 224 #endif 200 225 TComSPSAccess* m_pcSPSAccess; 201 226 TComAUPicAccess* m_pcAUPicAccess; -
branches/HTM-3.0-Vidyo/source/Lib/TLibCommon/TComPic.h
r56 r71 120 120 TComSlice* getSlice(Int i) { return m_apcPicSym->getSlice(i); } 121 121 TComSlice* getCurrSlice() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx); } 122 #if VIDYO_VPS_INTEGRATION 123 TComVPS* getVPS() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx)->getVPS(); } 124 #endif 122 125 TComSPS* getSPS() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx)->getSPS(); } 123 126 Int getPOC() { return m_apcPicSym->getSlice(m_uiCurrSliceIdx)->getPOC(); } -
branches/HTM-3.0-Vidyo/source/Lib/TLibDecoder/TDecCAVLC.cpp
r70 r71 1349 1349 READ_FLAG( uiCode, "temporal_id_nesting_flag" ); pcVPS->setTemporalNestingFlag( uiCode ? true:false ); 1350 1350 READ_UVLC( uiCode, "video_parameter_set_id" ); pcVPS->setVPSId( uiCode ); 1351 for(UInt i =0; i <= pcVPS->getMaxTLayers()-1; i++)1351 for(UInt i = 0; i <= pcVPS->getMaxTLayers()-1; i++) 1352 1352 { 1353 1353 READ_UVLC( uiCode, "max_dec_pic_buffering[i]" ); pcVPS->setMaxDecPicBuffering( uiCode, i ); … … 1362 1362 READ_UVLC( uiCode, "extension_type" ); pcVPS->setExtensionType( uiCode ); 1363 1363 1364 if( pcVPS->getExtensionType() == 0)1365 READ_SVLC( iCode, "view_order_idx[0]" ); pcVPS->setViewOrderIdx( iCode, 0 );1366 1367 for(UInt i =0; i <= pcVPS->getMaxLayers()-1; i++)1364 pcVPS->setViewOrderIdx( 0, 0 ); 1365 pcVPS->setViewId( 0, 0 ); 1366 pcVPS->setDepthFlag( 0, 0 ); 1367 for(UInt i = 1; i <= pcVPS->getMaxLayers()-1; i++) 1368 1368 { 1369 1369 READ_FLAG( uiCode, "dependent_flag[i]" ); pcVPS->setDependentFlag( uiCode ? true:false, i); -
branches/HTM-3.0-Vidyo/source/Lib/TLibDecoder/TDecTop.cpp
r70 r71 319 319 m_tAppDecTop = pcTAppDecTop; 320 320 #if DEPTH_MAP_GENERATION 321 #if VIDYO_VPS_INTEGRATION 322 m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getVPSAccess(), m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() ); 323 #else 321 324 m_cDepthMapGenerator.init( &m_cPrediction, m_tAppDecTop->getSPSAccess(), m_tAppDecTop->getAUPicAccess() ); 325 #endif 322 326 #endif 323 327 #if HHI_INTER_VIEW_RESIDUAL_PRED … … 574 578 TComVPS *vps = m_parameterSetManagerDecoder.getVPS(sps->getVPSId()); 575 579 assert (vps != 0); 580 if( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA ) 581 // VPS can only be activated on IDR or CRA... 582 getTAppDecTop()->getVPSAccess()->setActiveVPSId( sps->getVPSId() ); 576 583 #endif 577 584 m_apcSlicePilot->setPPS(pps); … … 1082 1089 m_cEntropyDecoder.decodeVPS( vps ); 1083 1090 m_parameterSetManagerDecoder.storePrefetchedVPS(vps); 1084 1091 getTAppDecTop()->getVPSAccess()->addVPS( vps ); 1085 1092 } 1086 1093 #endif -
branches/HTM-3.0-Vidyo/source/Lib/TLibEncoder/TEncCavlc.cpp
r70 r71 395 395 WRITE_UVLC( pcVPS->getExtensionType(), "extension_type" ); 396 396 397 if( pcVPS->getExtensionType() == 0) 398 WRITE_SVLC( pcVPS->getViewOrderIdx(0), "view_order_idx[0]" ); 399 400 for(UInt i=0; i <= pcVPS->getMaxLayers()-1; i++) 397 for(UInt i=1; i <= pcVPS->getMaxLayers()-1; i++) 401 398 { 402 399 WRITE_FLAG( pcVPS->getDependentFlag(i), "dependent_flag[i]" ); -
branches/HTM-3.0-Vidyo/source/Lib/TLibEncoder/TEncGOP.cpp
r70 r71 246 246 247 247 std::vector<TComAPS>& vAPS = m_pcEncTop->getAPS(); 248 #if VIDYO_VPS_INTEGRATION 249 m_pcSliceEncoder->initEncSlice ( pcPic, iPOCLast, uiPOCCurr, iNumPicRcvd, iGOPid, pcSlice, m_pcEncTop->getEncTop()->getVPS(), m_pcEncTop->getSPS(), m_pcEncTop->getPPS() ); 250 #else 248 251 m_pcSliceEncoder->initEncSlice ( pcPic, iPOCLast, uiPOCCurr, iNumPicRcvd, iGOPid, pcSlice, m_pcEncTop->getSPS(), m_pcEncTop->getPPS() ); 252 #endif 249 253 pcSlice->setLastIDR(m_iLastIDR); 250 254 pcSlice->setSliceIdx(0); -
branches/HTM-3.0-Vidyo/source/Lib/TLibEncoder/TEncSlice.cpp
r56 r71 161 161 \param pPPS PPS associated with the slice 162 162 */ 163 #if VIDYO_VPS_INTEGRATION 164 Void TEncSlice::initEncSlice( TComPic* pcPic, Int iPOCLast, UInt uiPOCCurr, Int iNumPicRcvd, Int iGOPid, TComSlice*& rpcSlice, TComVPS * pVPS, TComSPS* pSPS, TComPPS *pPPS ) 165 #else 163 166 Void TEncSlice::initEncSlice( TComPic* pcPic, Int iPOCLast, UInt uiPOCCurr, Int iNumPicRcvd, Int iGOPid, TComSlice*& rpcSlice, TComSPS* pSPS, TComPPS *pPPS ) 167 #endif 164 168 { 165 169 Double dQP; … … 167 171 168 172 rpcSlice = pcPic->getSlice(0); 173 #if VIDYO_VPS_INTEGRATION 174 rpcSlice->setVPS( pVPS ); 175 #endif 169 176 rpcSlice->setSPS( pSPS ); 170 177 rpcSlice->setPPS( pPPS ); -
branches/HTM-3.0-Vidyo/source/Lib/TLibEncoder/TEncSlice.h
r56 r71 110 110 111 111 /// preparation of slice encoding (reference marking, QP and lambda) 112 #if VIDYO_VPS_INTEGRATION 113 Void initEncSlice ( TComPic* pcPic, Int iPOCLast, UInt uiPOCCurr, Int iNumPicRcvd, Int iGOPid, TComSlice*& rpcSlice, TComVPS* pVPS, TComSPS* pSPS, TComPPS *pPPS ); 114 #else 112 115 Void initEncSlice ( TComPic* pcPic, Int iPOCLast, UInt uiPOCCurr, Int iNumPicRcvd, Int iGOPid, TComSlice*& rpcSlice, TComSPS* pSPS, TComPPS *pPPS ); 113 116 #endif 114 117 // compress and encode slice 115 118 Void precompressSlice ( TComPic*& rpcPic ); ///< precompress slice for multi-loop opt. -
branches/HTM-3.0-Vidyo/source/Lib/TLibEncoder/TEncTop.cpp
r56 r71 348 348 349 349 #if DEPTH_MAP_GENERATION 350 m_cDepthMapGenerator.init( (TComPrediction*)this->getPredSearch(), m_pcTAppEncTop->getSPSAccess(), m_pcTAppEncTop->getAUPicAccess() ); 350 #if VIDYO_VPS_INTEGRATION 351 m_cDepthMapGenerator.init( (TComPrediction*)this->getPredSearch(), m_pcTAppEncTop->getVPSAccess(), m_pcTAppEncTop->getSPSAccess(), m_pcTAppEncTop->getAUPicAccess() ); 352 #else 353 m_cDepthMapGenerator.init( (TComPrediction*)this->getPredSearch(), m_pcTAppEncTop->getVPSAccess(), m_pcTAppEncTop->getSPSAccess(), m_pcTAppEncTop->getAUPicAccess() ); 354 #endif 351 355 #endif 352 356 #if HHI_INTER_VIEW_RESIDUAL_PRED
Note: See TracChangeset for help on using the changeset viewer.