Changeset 194 in 3DVCSoftware for branches/HTM-5.0-Qualcomm/source/App
- Timestamp:
- 26 Nov 2012, 18:35:20 (12 years ago)
- Location:
- branches/HTM-5.0-Qualcomm/source/App
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.0-Qualcomm/source/App/TAppDecoder/TAppDecTop.cpp
r189 r194 82 82 Void TAppDecTop::decode() 83 83 { 84 #if VIDYO_VPS_INTEGRATION 84 #if VIDYO_VPS_INTEGRATION|MVHEVC 85 85 increaseNumberOfViews( 0, 0, 0 ); 86 86 #else … … 145 145 { 146 146 read(nalu, nalUnit); 147 #if MVHEVC 148 viewDepthId = nalu.m_layerId; 149 Int depth = 0; 150 Int viewId = viewDepthId; 151 #else 147 152 #if VIDYO_VPS_INTEGRATION 148 153 Int viewId = 0; … … 162 167 viewDepthId = viewId * 2 + depth; // coding order T0D0T1D1T2D2 163 168 #endif 164 169 #endif 165 170 newPicture[viewDepthId] = false; 166 171 if( viewDepthId >= m_tDecTop.size() ) 167 172 { 168 #if VIDYO_VPS_INTEGRATION 173 #if VIDYO_VPS_INTEGRATION|MVHEVC 169 174 increaseNumberOfViews( viewDepthId, viewId, depth ); 170 175 #else … … 195 200 if( !(m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) ) 196 201 { 202 #if MVHEVC 203 if(viewDepthId && m_tDecTop[viewDepthId]->m_bFirstNal== false) 204 { 205 m_tDecTop[viewDepthId]->m_bFirstNal = true; 206 ParameterSetManagerDecoder* pDecV0 = m_tDecTop[0]->xGetParaSetDec(); 207 m_tDecTop[viewDepthId]->xCopyVPS(pDecV0->getPrefetchedVPS(0)); 208 m_tDecTop[viewDepthId]->xCopySPS(pDecV0->getPrefetchedSPS(0)); 209 m_tDecTop[viewDepthId]->xCopyPPS(pDecV0->getPrefetchedPPS(0)); 210 } 211 #endif 197 212 newPicture[viewDepthId] = m_tDecTop[viewDepthId]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[viewDepthId]); 198 213 if (newPicture[viewDepthId]) … … 218 233 if( pcListPic[viewDepthId] ) 219 234 { 235 #if QC_REM_IDV 236 Int iviewId = m_tDecTop[viewDepthId]->getViewId(); 237 if( newPicture[viewDepthId] && (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR || ((nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR && iviewId) && m_tDecTop[viewDepthId]->getNalUnitTypeBaseView() == NAL_UNIT_CODED_SLICE_IDR)) ) 238 #else 220 239 if( newPicture[viewDepthId] && (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR || (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDV && m_tDecTop[viewDepthId]->getNalUnitTypeBaseView() == NAL_UNIT_CODED_SLICE_IDR)) ) 240 #endif 221 241 { 222 242 xFlushOutput( pcListPic[viewDepthId], viewDepthId ); … … 275 295 m_tDecTop[viewDepthIdx]->destroy() ; 276 296 } 297 #if MVHEVC 298 if(viewDepthIdx) 299 { 300 //Call clear function to remove the record, which has been freed during viewDepthIdx = 0 case. 301 m_tDecTop[viewDepthIdx]->xGetParaSetDec()->clearSPS(); 302 m_tDecTop[viewDepthIdx]->xGetParaSetDec()->clearVPS(); 303 m_tDecTop[viewDepthIdx]->xGetParaSetDec()->clearPPS(); 304 } 305 #endif 277 306 delete m_tDecTop[viewDepthIdx] ; 278 307 m_tDecTop[viewDepthIdx] = NULL ; … … 416 445 m_pocLastDisplay[viewDepthId] = -MAX_INT; 417 446 } 418 #if VIDYO_VPS_INTEGRATION 447 #if VIDYO_VPS_INTEGRATION|MVHEVC 419 448 Void TAppDecTop::increaseNumberOfViews ( UInt layerId, UInt viewId, UInt isDepth ) 420 449 #else … … 422 451 #endif 423 452 { 424 #if VIDYO_VPS_INTEGRATION 453 #if VIDYO_VPS_INTEGRATION|MVHEVC 425 454 Int newNumberOfViewDepth = layerId + 1; 426 455 #endif … … 429 458 m_outputBitDepth = g_uiBitDepth + g_uiBitIncrement; 430 459 } 431 #if !VIDYO_VPS_INTEGRATION 460 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 432 461 Int viewId = (newNumberOfViewDepth-1)>>1; // coding order T0D0T1D1T2D2 433 462 Bool isDepth = ((newNumberOfViewDepth % 2) == 0); // coding order T0D0T1D1T2D2 … … 442 471 m_tVideoIOYuvReconFile.push_back(new TVideoIOYuv); 443 472 Char buffer[4]; 444 #if VIDYO_VPS_INTEGRATION 473 #if VIDYO_VPS_INTEGRATION|MVHEVC 445 474 sprintf(buffer,"_%i", viewId ); 446 475 #else … … 448 477 #endif 449 478 Char* nextFilename = NULL; 450 #if VIDYO_VPS_INTEGRATION 479 #if VIDYO_VPS_INTEGRATION|MVHEVC 451 480 if( isDepth) 452 481 #else … … 463 492 xAppendToFileNameEnd( m_pchReconFile, buffer, nextFilename); 464 493 } 465 #if !VIDYO_VPS_INTEGRATION 494 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 466 495 if( isDepth || ( !isDepth && (m_tVideoIOYuvReconFile.size() % 2) == 1 ) ) 467 496 #endif … … 480 509 { 481 510 m_tDecTop.push_back(new TDecTop); 482 #if !VIDYO_VPS_INTEGRATION 511 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 483 512 if( isDepth || ( !isDepth && (m_tVideoIOYuvReconFile.size() % 2) == 1 ) ) 484 513 { … … 490 519 m_tDecTop.back()->setPictureDigestEnabled(m_pictureDigestEnabled); 491 520 m_tDecTop.back()->setCamParsCollector( &m_cCamParsCollector ); 492 #if !VIDYO_VPS_INTEGRATION 521 #if !VIDYO_VPS_INTEGRATION&!MVHEVC 493 522 } 494 523 #endif -
branches/HTM-5.0-Qualcomm/source/App/TAppDecoder/TAppDecTop.h
r100 r194 74 74 CamParsCollector m_cCamParsCollector; 75 75 #if DEPTH_MAP_GENERATION 76 #if VIDYO_VPS_INTEGRATION 76 #if VIDYO_VPS_INTEGRATION|MVHEVC 77 77 TComVPSAccess m_cVPSAccess; 78 78 #endif … … 88 88 Void destroy (); ///< destroy internal members 89 89 Void decode (); ///< main decoding function 90 #if VIDYO_VPS_INTEGRATION 90 #if VIDYO_VPS_INTEGRATION|MVHEVC 91 91 Void increaseNumberOfViews (UInt layerId, UInt viewId, UInt isDepth); 92 92 #else -
branches/HTM-5.0-Qualcomm/source/App/TAppEncoder/TAppEncCfg.cpp
r189 r194 329 329 /* Camera Paremetes */ 330 330 ("CameraParameterFile,cpf", m_pchCameraParameterFile, (Char *) 0, "Camera Parameter File Name") 331 #if MVHEVC 332 ("BaseViewCameraNumbers" , m_aiVId, std::vector<Int>(1, MAX_VIEW_NUM), "Numbers of base views") 333 #endif 331 334 ("BaseViewCameraNumbers" , m_pchBaseViewCameraNumbers, (Char *) 0, "Numbers of base views") 332 335 … … 786 789 } 787 790 #else 791 #if !MVHEVC 788 792 m_cCameraData .init ( (UInt)m_iNumberOfViews, 789 793 m_uiInputBitDepth, … … 797 801 LOG2_DISP_PREC_LUT ); 798 802 #endif 803 #endif 799 804 800 805 801 806 // check validity of input parameters 802 807 xCheckParameter(); 808 #if !MVHEVC 803 809 m_cCameraData.check( false, true ); 804 810 #endif 805 811 // print-out parameters 806 812 xPrintParameter(); -
branches/HTM-5.0-Qualcomm/source/App/TAppEncoder/TAppEncCfg.h
r189 r194 109 109 std::vector<Double> m_adQP; ///< QP value of key-picture (floating point) [0] video, [1] depth 110 110 std::vector<Int> m_aiQP; ///< QP value of key-picture (integer) [0] video, [1] depth 111 #if MVHEVC 112 std::vector<Int> m_aiVId; ///< view id 113 #endif 111 114 Int m_aiTLayerQPOffset[MAX_TLAYER]; ///< QP offset corresponding to temporal layer depth 112 115 char* m_pchdQPFile; ///< QP offset for each slice (initialized from external file) … … 285 288 Char* m_pchCameraParameterFile; ///< camera parameter file 286 289 Char* m_pchBaseViewCameraNumbers; 290 #if !MVHEVC 287 291 TAppComCamPara m_cCameraData; 288 292 #endif 289 293 Int m_iCodedCamParPrecision; ///< precision for coding of camera parameters 290 294 -
branches/HTM-5.0-Qualcomm/source/App/TAppEncoder/TAppEncTop.cpp
r189 r194 67 67 Void TAppEncTop::xInitLibCfg() 68 68 { 69 #if VIDYO_VPS_INTEGRATION 69 #if VIDYO_VPS_INTEGRATION|MVHEVC 70 #if !MVHEVC 70 71 UInt layerId = 0; 72 #endif 71 73 // TODO: fix the assumption here that the temporal structures are all equal across all layers??? 72 74 m_cVPS.setMaxTLayers( m_maxTempLayer[0] ); 75 #if MVHEVC 76 m_cVPS.setMaxLayers( m_iNumberOfViews ); 77 #else 73 78 m_cVPS.setMaxLayers( m_iNumberOfViews * (m_bUsingDepthMaps ? 2:1) ); 79 #endif 74 80 for(Int i = 0; i < MAX_TLAYER; i++) 75 81 { … … 101 107 m_acTEncTopList[iViewIdx]->setViewId ( iViewIdx ); 102 108 m_acTEncTopList[iViewIdx]->setIsDepth ( false ); 109 #if MVHEVC 110 m_acTEncTopList[iViewIdx]->setLayerId ( iViewIdx ); 111 m_cVPS.setViewId ( m_aiVId[ iViewIdx ], iViewIdx ); 112 #else 103 113 m_acTEncTopList[iViewIdx]->setViewOrderIdx ( m_cCameraData.getViewOrderIndex()[ iViewIdx ] ); 104 114 #if VIDYO_VPS_INTEGRATION … … 117 127 m_acTEncTopList[iViewIdx]->setCodedScale ( m_cCameraData.getCodedScale () ); 118 128 m_acTEncTopList[iViewIdx]->setCodedOffset ( m_cCameraData.getCodedOffset () ); 129 #endif 119 130 120 131 //====== Coding Structure ======== … … 406 417 m_acTEncDepthTopList[iViewIdx]->setViewId ( iViewIdx ); 407 418 m_acTEncDepthTopList[iViewIdx]->setIsDepth ( true ); 419 #if MVHEVC 420 m_acTEncDepthTopList[iViewIdx]->setLayerId ( iViewIdx ); 421 #else 408 422 m_acTEncDepthTopList[iViewIdx]->setViewOrderIdx ( m_cCameraData.getViewOrderIndex()[ iViewIdx ] ); 423 #endif 409 424 #if VIDYO_VPS_INTEGRATION 410 425 layerId = iViewIdx * 2 + 1; … … 821 836 { 822 837 m_acTEncTopList[iViewIdx]->init( this ); 838 #if MVHEVC 839 //set setNumDirectRefLayer 840 Int iNumDirectRef = m_acTEncTopList[iViewIdx]->getSPS()->getNumberOfUsableInterViewRefs(); 841 m_acTEncTopList[iViewIdx]->getEncTop()->getVPS()->setNumDirectRefLayer(iNumDirectRef, iViewIdx); 842 for(Int iNumIvRef = 0; iNumIvRef < iNumDirectRef; iNumIvRef ++) 843 { 844 Int iLayerId = m_acTEncTopList[iViewIdx]->getSPS()->getUsableInterViewRef(iNumIvRef); 845 m_acTEncTopList[iViewIdx]->getEncTop()->getVPS()->setDirectRefLayerId( iLayerId + iViewIdx, iViewIdx, iNumIvRef); 846 } 847 #endif 823 848 } 824 849 for(Int iViewIdx=0; iViewIdx<m_iNumberOfViews; iViewIdx++) … … 862 887 TComPicYuv* pcPicYuvOrg = new TComPicYuv; 863 888 TComPicYuv* pcDepthPicYuvOrg = new TComPicYuv; 889 #if !MVHEVC 864 890 TComPicYuv* pcPdmDepthOrg = new TComPicYuv; 891 #endif 865 892 TComPicYuv* pcPicYuvRec = NULL; 866 893 TComPicYuv* pcDepthPicYuvRec = NULL; … … 963 990 { 964 991 Int iNumEncoded = 0; 992 #if !MVHEVC 965 993 UInt iNextPoc = m_acTEncTopList[0] -> getFrameId( gopId ); 966 994 if ( iNextPoc < m_iFrameToBeEncoded ) … … 968 996 m_cCameraData.update( iNextPoc ); 969 997 } 998 #endif 970 999 for(Int iViewIdx=0; iViewIdx < m_iNumberOfViews; iViewIdx++ ) 971 1000 { … … 1022 1051 delete pcDepthPicYuvOrg; 1023 1052 pcDepthPicYuvOrg = NULL; 1024 1053 1054 #if !MVHEVC 1055 #if BUG_FIX_HTM 1056 if ( pcPdmDepthOrg != NULL && m_uiMultiviewMvRegMode ) 1057 #else 1025 1058 if ( pcPdmDepthOrg != NULL ) 1059 #endif 1026 1060 { 1027 1061 pcPdmDepthOrg->destroy(); … … 1029 1063 pcPdmDepthOrg = NULL; 1030 1064 }; 1031 1065 #endif 1032 1066 1033 1067 for(Int iViewIdx=0; iViewIdx < m_iNumberOfViews; iViewIdx++ ) … … 1233 1267 case NAL_UNIT_CODED_SLICE: 1234 1268 #if H0566_TLA 1269 #if !QC_REM_IDV 1235 1270 case NAL_UNIT_CODED_SLICE_IDV: 1271 #endif 1236 1272 case NAL_UNIT_CODED_SLICE_TLA: 1237 1273 case NAL_UNIT_CODED_SLICE_CRA: -
branches/HTM-5.0-Qualcomm/source/App/TAppEncoder/TAppEncTop.h
r189 r194 87 87 #endif 88 88 89 #if VIDYO_VPS_INTEGRATION 89 #if VIDYO_VPS_INTEGRATION|MVHEVC 90 90 TComVPS m_cVPS; 91 91 #endif … … 139 139 #endif 140 140 141 #if MVHEVC 142 TComVPS* getVPS() { return &m_cVPS; } 143 #endif 141 144 #if VIDYO_VPS_INTEGRATION 142 145 TComVPS* getVPS() { return &m_cVPS; } -
branches/HTM-5.0-Qualcomm/source/App/TAppRenderer/RendererMain.cpp
r100 r194 43 43 int main(int argc, char* argv[]) 44 44 { 45 #if !MVHEVC 45 46 TAppRendererTop cTAppRendererTop; 46 47 … … 78 79 79 80 return 0; 81 #endif 80 82 } 81 83 -
branches/HTM-5.0-Qualcomm/source/App/TAppRenderer/TAppRendererCfg.cpp
r189 r194 59 59 // Constructor / destructor / initialization / destroy 60 60 // ==================================================================================================================== 61 61 #if !MVHEVC 62 62 TAppRendererCfg::TAppRendererCfg() 63 63 { … … 516 516 g_uiIBDI_MAX = ((1<<(g_uiBitDepth+g_uiBitIncrement))-1); 517 517 } 518 #endif -
branches/HTM-5.0-Qualcomm/source/App/TAppRenderer/TAppRendererCfg.h
r100 r194 50 50 #include <string> 51 51 #include <vector> 52 52 #if !MVHEVC 53 53 // ==================================================================================================================== 54 54 // Class definition … … 134 134 135 135 136 136 #endif 137 137 #endif // __TAppRENDERERCFG__ 138 138 -
branches/HTM-5.0-Qualcomm/source/App/TAppRenderer/TAppRendererTop.cpp
r189 r194 45 45 // Constructor / destructor / initialization / destroy 46 46 // ==================================================================================================================== 47 47 #if !MVHEVC 48 48 TAppRendererTop::TAppRendererTop() 49 49 { … … 1034 1034 1035 1035 } 1036 #endif -
branches/HTM-5.0-Qualcomm/source/App/TAppRenderer/TAppRendererTop.h
r100 r194 50 50 #include "../../Lib/TLibRenderer/TRenModel.h" 51 51 52 52 #if !MVHEVC 53 53 // ==================================================================================================================== 54 54 // Class definition … … 87 87 };// END CLASS DEFINITION TAppRendererTop 88 88 89 #endif // __TAppRendererTOP__89 #endif 90 90 91 #endif
Note: See TracChangeset for help on using the changeset viewer.