Changeset 476 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder
- Timestamp:
- 18 Jun 2013, 05:16:27 (12 years ago)
- Location:
- branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.cpp
r446 r476 717 717 718 718 #endif //HHI_VSO 719 720 #if H_3D_IV_MERGE 721 ("PredDepthMapGen", m_uiPredDepthMapGeneration, (UInt)0, "generation of prediction depth maps for motion data prediction" ) 722 ("MultiviewMvPred", m_uiMultiviewMvPredMode, (UInt)0, "usage of predicted depth maps" ) 723 #endif 719 724 #endif //H_3D 720 725 ; … … 1439 1444 xConfirmPara( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size(), "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" ); 1440 1445 xConfirmPara ( m_iCodedCamParPrecision < 0 || m_iCodedCamParPrecision > 5, "CodedCamParsPrecision must be in range of 0..5" ); 1446 #if H_3D_IV_MERGE 1447 xConfirmPara ( m_uiPredDepthMapGeneration > 2, "PredDepthMapGen must be less than or equal to 2" ); 1448 xConfirmPara ( m_uiMultiviewMvPredMode > 7, "MultiviewMvPred must be less than or equal to 7" ); 1449 xConfirmPara ( m_uiMultiviewMvPredMode > 0 && m_uiPredDepthMapGeneration == 0 , "MultiviewMvPred > 0 requires PredDepthMapGen > 0" ); 1450 #endif 1441 1451 #if H_3D_VSO 1442 1452 if( m_bUseVSO ) … … 2278 2288 printf("WVSO:%d ", m_bUseWVSO ); 2279 2289 #endif 2290 #if H_3D_IV_MERGE 2291 printf("MultiviewMvPred:%d", m_uiMultiviewMvPredMode); 2292 #endif 2280 2293 printf("\n\n"); 2281 2294 -
branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.h
r446 r476 381 381 TAppComCamPara m_cCameraData; 382 382 Int m_iCodedCamParPrecision; ///< precision for coding of camera parameters 383 #if H_3D_IV_MERGE 384 UInt m_uiMultiviewMvPredMode; 385 UInt m_uiPredDepthMapGeneration; 386 #endif 383 387 #if H_3D_VSO 384 388 Char* m_pchVSOConfig; -
branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncTop.cpp
r446 r476 128 128 m_frameRcvd .push_back(0); 129 129 m_acTEncTopList .push_back(new TEncTop); 130 #if H_3D_IV_MERGE 131 // m_acTEncDepthTopList .push_back(new TEncTop); 132 #endif 130 133 m_acTVideoIOYuvInputFileList.push_back(new TVideoIOYuv); 131 134 m_acTVideoIOYuvReconFileList.push_back(new TVideoIOYuv); 132 135 m_picYuvRec .push_back(new TComList<TComPicYuv*>) ; 133 136 #if H_3D_IV_MERGE 137 //m_acTEncDepthTopList[iViewIdx]->setFrameRate ( m_iFrameRate ); 138 //m_acTEncDepthTopList[iViewIdx]->setFrameSkip ( m_FrameSkip ); 139 //m_acTEncDepthTopList[iViewIdx]->setSourceWidth ( m_iSourceWidth ); 140 //m_acTEncDepthTopList[iViewIdx]->setSourceHeight ( m_iSourceHeight ); 141 //m_acTEncDepthTopList[iViewIdx]->setCroppingMode ( m_croppingMode ); 142 //m_acTEncDepthTopList[iViewIdx]->setCropLeft ( m_cropLeft ); 143 //m_acTEncDepthTopList[iViewIdx]->setCropRight ( m_cropRight ); 144 //m_acTEncDepthTopList[iViewIdx]->setCropTop ( m_cropTop ); 145 //m_acTEncDepthTopList[iViewIdx]->setCropBottom ( m_cropBottom ); 146 //m_acTEncDepthTopList[iViewIdx]->setFrameToBeEncoded ( m_iFrameToBeEncoded ); 147 //m_acTEncDepthTopList[iViewIdx]->setViewId ( iViewIdx ); 148 //m_acTEncDepthTopList[iViewIdx]->setIsDepth ( true ); 149 150 //m_acTEncDepthTopList[iViewIdx]->setViewOrderIdx ( m_cCameraData.getViewOrderIndex()[ iViewIdx ] ); 151 152 //m_acTEncDepthTopList[iViewIdx]->setLayerId ( layerId ); 153 154 #endif 134 155 m_ivPicLists.push_back( m_acTEncTopList[ layer ]->getListPic() ); 135 156 TEncTop& m_cTEncTop = *m_acTEncTopList[ layer ]; // It is not a member, but this name helps avoiding code duplication !!! … … 143 164 m_cTEncTop.setIsDepth ( isDepth ); 144 165 //====== Camera Parameters ========= 166 #if H_3D_IV_MERGE 167 //m_acTEncDepthTopList[iViewIdx]->setCamParPrecision ( 0 ); 168 //m_acTEncDepthTopList[iViewIdx]->setCamParInSliceHeader ( false ); 169 //m_acTEncDepthTopList[iViewIdx]->setCodedScale ( 0 ); 170 //m_acTEncDepthTopList[iViewIdx]->setCodedOffset ( 0 ); 171 #endif 145 172 m_cTEncTop.setCameraParameters ( &m_cCameraData ); 146 173 m_cTEncTop.setCamParPrecision ( isDepth ? false : m_cCameraData.getCamParsCodedPrecision () ); … … 166 193 m_cTEncTop.setDWeight ( isDepth ? m_iDWeight : 0 ); 167 194 #endif // H_3D_VSO 195 #if H_3D_IV_MERGE 196 m_cTEncTop.setMultiviewMvPredMode ( m_uiMultiviewMvPredMode ); 197 m_cTEncTop.setPredDepthMapGeneration ( m_uiPredDepthMapGeneration ); 198 #endif 168 199 #endif // H_3D 169 200 … … 189 220 190 221 //====== Coding Structure ======== 222 #if H_3D_IV_MERGE 223 //m_acTEncDepthTopList[iViewIdx]->setIntraPeriod ( m_iIntraPeriod ); 224 //m_acTEncDepthTopList[iViewIdx]->setDecodingRefreshType ( m_iDecodingRefreshType ); 225 //m_acTEncDepthTopList[iViewIdx]->setGOPSize ( m_iGOPSize ); 226 //m_acTEncDepthTopList[iViewIdx]->setGopList ( m_GOPListsMvc[iViewIdx] ); 227 //m_acTEncDepthTopList[iViewIdx]->setExtraRPSs ( m_extraRPSs[iViewIdx] ); 228 #endif 191 229 m_cTEncTop.setIntraPeriod ( m_iIntraPeriod ); 192 230 m_cTEncTop.setDecodingRefreshType ( m_iDecodingRefreshType ); … … 207 245 m_cTEncTop.setNumReorderPics ( m_numReorderPics[i], i ); 208 246 m_cTEncTop.setMaxDecPicBuffering ( m_maxDecPicBuffering[i], i ); 209 } 247 #if H_3D_IV_MERGE 248 m_acTEncDepthTopList[iViewIdx]->setNumReorderPics ( m_numReorderPics[iViewIdx][i], i ); 249 m_acTEncDepthTopList[iViewIdx]->setMaxDecPicBuffering ( m_maxDecPicBuffering[iViewIdx][i], i ); 250 #endif 251 } 252 #if H_3D_IV_MERGE 253 m_acTEncDepthTopList[iViewIdx]->setQP ( m_aiQP[1] ); 254 255 m_acTEncDepthTopList[iViewIdx]->setTemporalLayerQPOffset ( m_aiTLayerQPOffset ); 256 m_acTEncDepthTopList[iViewIdx]->setPad ( m_aiPad ); 257 258 m_acTEncDepthTopList[iViewIdx]->setMaxTempLayer ( m_maxTempLayer[iViewIdx] ); 259 260 m_acTEncDepthTopList[iViewIdx]->setDisInter4x4 ( m_bDisInter4x4); 261 262 m_acTEncDepthTopList[iViewIdx]->setUseNSQT( m_enableNSQT ); 263 m_acTEncDepthTopList[iViewIdx]->setUseAMP( m_enableAMP ); 264 #endif 210 265 #endif 211 266 for( UInt uiLoop = 0; uiLoop < MAX_TLAYER; ++uiLoop ) 212 267 { 213 268 m_cTEncTop.setLambdaModifier( uiLoop, m_adLambdaModifier[ uiLoop ] ); 269 #if H_3D_IV_MERGE 270 // m_acTEncDepthTopList[iViewIdx]->setLambdaModifier( uiLoop, m_adLambdaModifier[ uiLoop ] ); 271 #endif 214 272 } 215 273 #if H_MV … … 231 289 232 290 //====== Loop/Deblock Filter ======== 291 #if H_3D_IV_MERGE 292 //m_acTEncDepthTopList[iViewIdx]->setLoopFilterDisable ( m_abLoopFilterDisable[1] ); 293 //m_acTEncDepthTopList[iViewIdx]->setLoopFilterOffsetInAPS ( m_loopFilterOffsetInAPS ); 294 //m_acTEncDepthTopList[iViewIdx]->setLoopFilterBetaOffset ( m_loopFilterBetaOffsetDiv2 ); 295 //m_acTEncDepthTopList[iViewIdx]->setLoopFilterTcOffset ( m_loopFilterTcOffsetDiv2 ); 296 //m_acTEncDepthTopList[iViewIdx]->setDeblockingFilterControlPresent( m_DeblockingFilterControlPresent); 297 #endif 233 298 #if H_MV 234 299 m_cTEncTop.setLoopFilterDisable ( m_bLoopFilterDisable[layer]); … … 604 669 for(Int layer=0; layer<m_numberOfLayers; layer++) 605 670 { 671 #if H_3D_IV_MERGE 672 m_acTEncTopList[layer]->init(this ); 673 #else 606 674 m_acTEncTopList[layer]->init( ); 675 #endif 607 676 } 608 677 #else … … 1032 1101 } 1033 1102 #endif 1103 #if H_3D_IV_MERGE 1104 TComPic* TAppEncTop::xGetPicFromView( Int viewIdx, Int poc, Bool isDepth ) 1105 { 1106 assert( ( viewIdx >= 0 ) && ( viewIdx < m_iNumberOfViews ) ); 1107 1108 TComList<TComPic*>* apcListPic = m_acTEncTopList[(isDepth ? 1 : 0) + viewIdx * 2]->getListPic() ; 1109 1110 1111 1112 TComPic* pcPic = NULL; 1113 for(TComList<TComPic*>::iterator it=apcListPic->begin(); it!=apcListPic->end(); it++) 1114 { 1115 if( (*it)->getPOC() == poc ) 1116 { 1117 pcPic = *it ; 1118 break ; 1119 } 1120 } 1121 1122 return pcPic; 1123 }; 1124 #endif 1034 1125 //! \} -
branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncTop.h
r446 r476 48 48 #if H_3D 49 49 #include "../../Lib/TLibRenderer/TRenTop.h" 50 #if H_3D_IV_MERGE 51 #include "TLibCommon/TComDepthMapGenerator.h" 52 #endif 50 53 #endif 51 54 … … 89 92 TRenModel m_cRendererModel; 90 93 #endif 94 95 #if H_3D_IV_MERGE 96 TComVPSAccess m_cVPSAccess; 97 TComSPSAccess m_cSPSAccess; 98 TComAUPicAccess m_cAUPicAccess; 99 #endif 91 100 protected: 92 101 // initialization … … 114 123 void rateStatsAccum(const AccessUnit& au, const std::vector<UInt>& stats); 115 124 void printRateSummary(); 116 125 #if H_3D_IV_MERGE 126 TComPic* xGetPicFromView( Int viewIdx, Int iPoc, Bool isDepth ); 127 #endif 117 128 #if H_MV 118 129 Void xSetLayerIds ( TComVPS& vps ); … … 126 137 127 138 Void encode (); ///< main encoding function 139 #if H_3D_IV_MERGE 140 TComPic* getPicFromView ( Int viewIdx, Int poc, Bool isDepth ) { return xGetPicFromView( viewIdx, poc, isDepth ); } 141 #endif 128 142 #if H_MV 129 143 TEncTop* getTEncTop( UInt layer ) { return m_acTEncTopList[layer]; } ///< return pointer to encoder class for specific layer 130 144 #else 131 145 TEncTop& getTEncTop () { return m_cTEncTop; } ///< return encoder class pointer reference 146 #endif 147 148 #if H_3D_IV_MERGE 149 TComVPSAccess* getVPSAccess () { return &m_cVPSAccess; } 150 TComSPSAccess* getSPSAccess () { return &m_cSPSAccess; } 151 TComAUPicAccess* getAUPicAccess() { return &m_cAUPicAccess; } 132 152 #endif 133 153 };// END CLASS DEFINITION TAppEncTop
Note: See TracChangeset for help on using the changeset viewer.