Changeset 373 in 3DVCSoftware for branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder
- Timestamp:
- 5 May 2013, 05:25:40 (12 years ago)
- Location:
- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.cpp
r332 r373 1493 1493 #endif 1494 1494 #if H3D_IVRP 1495 pcSPS->setMultiviewResPredMode ( 0 ); 1496 #endif 1495 #if QC_ARP_D0177 1496 pcSPS->setUseAdvRP ( 0 ); 1497 pcSPS->setARPStepNum( 1 ); 1498 #else 1499 pcSPS->setMultiviewResPredMode ( 0 ); 1500 #endif 1501 #endif 1502 1497 1503 } 1498 1504 else … … 1544 1550 #endif 1545 1551 #if H3D_IVRP 1552 #if QC_ARP_D0177 1553 pcSPS->setUseAdvRP ( 0 ); 1554 pcSPS->setARPStepNum( 1 ); 1555 #else 1546 1556 pcSPS->setMultiviewResPredMode ( 0 ); 1547 1557 #endif 1558 #endif 1559 1548 1560 } 1549 1561 else … … 1573 1585 UInt uiMultiviewMvPredMode = 0; 1574 1586 #endif 1575 #if H3D_IVRP 1587 #if H3D_IVRP & !QC_ARP_D0177 1576 1588 UInt uiMultiviewResPredMode = 0; 1577 1589 #endif … … 1588 1600 READ_UVLC( uiMultiviewMvPredMode, "multi_view_mv_pred_mode" ); 1589 1601 #endif 1590 #if H3D_IVRP 1602 #if H3D_IVRP & !QC_ARP_D0177 1591 1603 READ_FLAG( uiMultiviewResPredMode, "multi_view_residual_pred_mode" ); 1592 1604 #endif … … 1599 1611 #endif 1600 1612 #if H3D_IVRP 1613 #if QC_ARP_D0177 1614 READ_FLAG( uiCode , "advanced_residual_pred_flag" ); pcSPS->setUseAdvRP( uiCode ); 1615 if( pcSPS->getUseAdvRP() ) 1616 pcSPS->setARPStepNum( QC_ARP_WFNR ); 1617 else 1618 pcSPS->setARPStepNum( 1 ); 1619 #else 1601 1620 pcSPS->setMultiviewResPredMode ( uiMultiviewResPredMode ); 1602 1621 #endif 1622 #endif 1623 1603 1624 } 1604 1625 } … … 2424 2445 } 2425 2446 #endif 2426 2447 #if QC_ARP_D0177 2448 Void TDecCavlc::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2449 { 2450 assert( false ); 2451 } 2452 #endif 2427 2453 #if RWTH_SDC_DLT_B0036 2428 2454 Void TDecCavlc::parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.h
r332 r373 144 144 Void parseResPredFlag ( TComDataCU* pcCU, Bool& rbResPredFlag, UInt uiAbsPartIdx, UInt uiDepth ); 145 145 #endif 146 #if QC_ARP_D0177 147 Void parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx,UInt uiDepth ); 148 #endif 146 149 Void parseSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 147 150 Void parsePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp
r351 r373 54 54 m_ppcYuvResi = NULL; 55 55 m_ppcYuvReco = NULL; 56 #if H3D_IVRP 56 #if H3D_IVRP & !QC_ARP_D0177 57 57 m_ppcYuvResPred = NULL; 58 58 #endif … … 82 82 m_ppcYuvResi = new TComYuv*[m_uiMaxDepth-1]; 83 83 m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1]; 84 #if H3D_IVRP 84 #if H3D_IVRP & !QC_ARP_D0177 85 85 m_ppcYuvResPred = new TComYuv* [m_uiMaxDepth-1]; 86 86 #endif … … 96 96 m_ppcYuvResi[ui] = new TComYuv; m_ppcYuvResi[ui]->create( uiWidth, uiHeight ); 97 97 m_ppcYuvReco[ui] = new TComYuv; m_ppcYuvReco[ui]->create( uiWidth, uiHeight ); 98 #if H3D_IVRP 98 #if H3D_IVRP & !QC_ARP_D0177 99 99 m_ppcYuvResPred[ui] = new TComYuv; m_ppcYuvResPred[ui]->create( uiWidth, uiHeight ); 100 100 #endif … … 120 120 m_ppcYuvResi[ui]->destroy(); delete m_ppcYuvResi[ui]; m_ppcYuvResi[ui] = NULL; 121 121 m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL; 122 #if H3D_IVRP 122 #if H3D_IVRP & !QC_ARP_D0177 123 123 m_ppcYuvResPred[ui]->destroy(); delete m_ppcYuvResPred[ui]; m_ppcYuvResPred[ui] = NULL; 124 124 #endif … … 128 128 delete [] m_ppcYuvResi; m_ppcYuvResi = NULL; 129 129 delete [] m_ppcYuvReco; m_ppcYuvReco = NULL; 130 #if H3D_IVRP 130 #if H3D_IVRP & !QC_ARP_D0177 131 131 delete [] m_ppcYuvResPred; m_ppcYuvResPred = NULL; 132 132 #endif … … 317 317 if(!pcCU->getSlice()->isIntra()) 318 318 { 319 #if QC_ARP_D0177 320 if(( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() || pcCU->getSlice()->getSPS()->getUseAdvRP()) && pcCU->getSlice()->getViewId()) 321 #else 319 322 if(( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() || pcCU->getSlice()->getSPS()->getMultiviewResPredMode()) && pcCU->getSlice()->getViewId()) 323 #endif 320 324 { 321 325 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true ); … … 443 447 } 444 448 #endif 449 #if QC_ARP_D0177 450 if( pcCU->getSlice()->getSPS()->getUseAdvRP() ) 451 { 452 pcCU->setResPredAvailSubParts ( false, uiAbsPartIdx, 0, uiDepth ); 453 pcCU->setResPredFlagSubParts ( false, uiAbsPartIdx, 0, uiDepth ); 454 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth, m_ppcCU[uiDepth], 0 ); 455 } 456 #endif 445 457 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 446 458 return; … … 494 506 } 495 507 #endif 496 508 #if QC_ARP_D0177 509 if (pcCU->getSlice()->getSPS()->getUseAdvRP() && pcCU->isIntra( uiAbsPartIdx ) ) 510 { 511 pcCU->setResPredAvailSubParts ( 0, uiAbsPartIdx, 0, uiDepth ); 512 pcCU->setResPredFlagSubParts ( 0, uiAbsPartIdx, 0, uiDepth ); 513 } 514 #endif 497 515 #if HHI_MPI 498 516 if( pcCU->getTextureModeDepth( uiAbsPartIdx ) == uiDepth ) … … 704 722 m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] ); 705 723 #endif 706 #if H3D_IVRP 724 #if H3D_IVRP & !QC_ARP_D0177 707 725 if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0)) 708 726 { -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.h
r296 r373 61 61 TComYuv** m_ppcYuvResi; ///< array of residual buffer 62 62 TComYuv** m_ppcYuvReco; ///< array of prediction & reconstruction buffer 63 #if H3D_IVRP 63 #if H3D_IVRP & !QC_ARP_D0177 64 64 TComYuv** m_ppcYuvResPred; ///< residual prediction buffer 65 65 #endif -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecEntropy.cpp
r332 r373 108 108 } 109 109 110 #if QC_ARP_D0177 111 Void TDecEntropy::decodeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU, UInt uiPUIdx ) 112 { 113 if( pcCU->getSlice()->getViewId() == 0 || pcCU->getSlice()->getIsDepth() == true || !pcCU->getSlice()->getARPStepNum() ) 114 return; 115 assert( !pcCU->isIntra( uiAbsPartIdx ) ); 116 Bool bResPredAvailable = !pcCU->getSlice()->getARPStepNum() ? false: ((pcCU->getPartitionSize(uiAbsPartIdx)==SIZE_2Nx2N || pcCU->isSkipped(uiAbsPartIdx)) ? true: false); 117 if(!bResPredAvailable) 118 pcCU->setARPWSubParts( 0 , uiAbsPartIdx, uiDepth ); 119 else 120 m_pcEntropyDecoderIf->parseARPW( pcCU , uiAbsPartIdx , uiDepth ); 121 } 122 #endif 110 123 Void TDecEntropy::decodeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 111 124 { … … 189 202 { 190 203 decodePUWise( pcCU, uiAbsPartIdx, uiDepth, pcSubCU ); 204 #if QC_ARP_D0177 205 if( pcCU->getSlice()->getSPS()->getUseAdvRP() ) 206 { 207 decodeARPW( pcCU , uiAbsPartIdx , uiDepth, pcSubCU, 0 ); 208 } 209 #endif 191 210 } 192 211 } -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecEntropy.h
r332 r373 106 106 virtual Void parseResPredFlag ( TComDataCU* pcCU, Bool& rbResPredFlag, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 107 107 #endif 108 #if QC_ARP_D0177 109 virtual Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 110 #endif 108 111 virtual Void parsePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 109 112 virtual Void parsePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; … … 198 201 Void decodeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 199 202 Void decodeMergeIndex ( TComDataCU* pcSubCU, UInt uiPartIdx, UInt uiPartAddr, PartSize eCUMode, UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, UInt uiDepth ); 203 #if QC_ARP_D0177 204 Void decodeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU, UInt uiPUIdx ); 205 #endif 200 206 Void decodePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 201 207 Void decodePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecGop.cpp
r296 r373 93 93 ,TComDepthMapGenerator* pcDepthMapGenerator 94 94 #endif 95 #if H3D_IVRP 95 #if H3D_IVRP & !QC_ARP_D0177 96 96 ,TComResidualGenerator* pcResidualGenerator 97 97 #endif … … 109 109 m_pcDepthMapGenerator = pcDepthMapGenerator; 110 110 #endif 111 #if H3D_IVRP 111 #if H3D_IVRP & !QC_ARP_D0177 112 112 m_pcResidualGenerator = pcResidualGenerator; 113 113 #endif … … 298 298 m_pcDepthMapGenerator->predictDepthMap ( rpcPic ); 299 299 #endif 300 #if H3D_IVRP 300 #if H3D_IVRP & !QC_ARP_D0177 301 301 m_pcResidualGenerator->initViewComponent( rpcPic ); 302 302 #endif … … 331 331 else 332 332 { 333 #if H3D_IVRP 333 #if H3D_IVRP & !QC_ARP_D0177 334 334 // set residual picture 335 335 m_pcResidualGenerator->setRecResidualPic( rpcPic ); -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecGop.h
r296 r373 90 90 TComDepthMapGenerator* m_pcDepthMapGenerator; 91 91 #endif 92 #if H3D_IVRP 92 #if H3D_IVRP & !QC_ARP_D0177 93 93 TComResidualGenerator* m_pcResidualGenerator; 94 94 #endif … … 118 118 ,TComDepthMapGenerator* pcDepthMapGenerator 119 119 #endif 120 #if H3D_IVRP 120 #if H3D_IVRP & !QC_ARP_D0177 121 121 ,TComResidualGenerator* pcResidualGenerator 122 122 #endif -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecSbac.cpp
r332 r373 64 64 #if H3D_IVRP 65 65 , m_cResPredFlagSCModel ( 1, 1, NUM_RES_PRED_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 66 #endif 67 #if QC_ARP_D0177 68 , m_cCUPUARPW ( 1, 1, NUM_ARPW_CTX , m_contextModels + m_numContextModels, m_numContextModels) 66 69 #endif 67 70 , m_cCUPartSizeSCModel ( 1, 1, NUM_PART_SIZE_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 162 165 m_cResPredFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_RES_PRED_FLAG ); 163 166 #endif 167 #if QC_ARP_D0177 168 m_cCUPUARPW.initBuffer ( sliceType, qp, (UChar*)INIT_ARPW ); 169 #endif 164 170 m_cCUAlfCtrlFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_ALF_CTRL_FLAG ); 165 171 m_cCUPartSizeSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_PART_SIZE ); … … 248 254 #if H3D_IVRP 249 255 m_cResPredFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_RES_PRED_FLAG ); 256 #endif 257 #if QC_ARP_D0177 258 m_cCUPUARPW.initBuffer ( eSliceType, iQp, (UChar*)INIT_ARPW ); 250 259 #endif 251 260 m_cCUAlfCtrlFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ALF_CTRL_FLAG ); … … 2235 2244 } 2236 2245 #endif 2237 2246 #if QC_ARP_D0177 2247 Void TDecSbac::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2248 { 2249 UInt nMaxW = pcCU->getSlice()->getARPStepNum() - 1; 2250 assert (nMaxW >= 0); 2251 UInt nW = 0; 2252 if( nMaxW > 0 ) 2253 { 2254 UInt nOffset = pcCU->getCTXARPWFlag(uiAbsPartIdx); 2255 assert( 0 <= nOffset && nOffset <= 2 ); 2256 UInt uiCode = 0; 2257 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPW.get( 0, 0, 0 + nOffset ) ); 2258 nW = uiCode; 2259 if( nW == 1 ) 2260 { 2261 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPW.get( 0, 0, 3 ) ); 2262 nW += ( uiCode == 1 ); 2263 } 2264 } 2265 pcCU->setARPWSubParts( ( UChar )( nW ) , uiAbsPartIdx, uiDepth ); 2266 } 2267 #endif 2238 2268 #if LGE_EDGE_INTRA_A0070 2239 2269 Void TDecSbac::xParseEdgeIntraInfo( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecSbac.h
r332 r373 176 176 Void parseResPredFlag ( TComDataCU* pcCU, Bool& rbResPredFlag, UInt uiAbsPartIdx, UInt uiDepth ); 177 177 #endif 178 #if QC_ARP_D0177 179 Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 180 #endif 178 181 Void parsePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 179 182 Void parsePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); … … 218 221 #if H3D_IVRP 219 222 ContextModel3DBuffer m_cResPredFlagSCModel; 223 #endif 224 #if QC_ARP_D0177 225 ContextModel3DBuffer m_cCUPUARPW; 220 226 #endif 221 227 ContextModel3DBuffer m_cCUPartSizeSCModel; -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.cpp
r332 r373 403 403 m_cDepthMapGenerator.destroy(); 404 404 #endif 405 #if H3D_IVRP 405 #if H3D_IVRP & !QC_ARP_D0177 406 406 m_cResidualGenerator.destroy(); 407 407 #endif … … 420 420 , &m_cDepthMapGenerator 421 421 #endif 422 #if H3D_IVRP 422 #if H3D_IVRP & !QC_ARP_D0177 423 423 , &m_cResidualGenerator 424 424 #endif … … 434 434 #endif 435 435 #endif 436 #if H3D_IVRP 436 #if H3D_IVRP & !QC_ARP_D0177 437 437 m_cResidualGenerator.init( &m_cTrQuant, &m_cDepthMapGenerator ); 438 438 #endif … … 860 860 } 861 861 #endif 862 #if H3D_IVRP 862 #if H3D_IVRP & !QC_ARP_D0177 863 863 m_cResidualGenerator.create( true, m_apcSlicePilot->getSPS()->getPicWidthInLumaSamples(), m_apcSlicePilot->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUDepth, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiBitDepth + g_uiBitIncrement ); 864 864 #endif … … 1083 1083 std::vector<TComPic*> apcInterViewRefPics = m_tAppDecTop->getInterViewRefPics( m_viewId, pcSlice->getPOC(), m_isDepth, pcSlice->getSPS() ); 1084 1084 pcSlice->setRefPicListMvc( m_cListPic, apcInterViewRefPics ); 1085 1085 #if QC_ARP_D0177 1086 //pcSlice->setBaseViewRefPicList( m_tAppDecTop->getTDecTop( 0 , false )->getListPic() ); 1087 pcSlice->setARPStepNum(); 1088 if(pcSlice->getARPStepNum() > 1) 1089 { 1090 for(Int iViewIdx = 0; iViewIdx < pcSlice->getViewId(); iViewIdx ++ ) 1091 pcSlice->setBaseViewRefPicList( m_tAppDecTop->getTDecTop( iViewIdx, false )->getListPic(), iViewIdx ); 1092 } 1093 #endif 1086 1094 // For generalized B 1087 1095 // note: maybe not existed case (always L0 is copied to L1 if L1 is empty) -
branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.h
r296 r373 213 213 TComDepthMapGenerator m_cDepthMapGenerator; 214 214 #endif 215 #if H3D_IVRP 215 #if H3D_IVRP & !QC_ARP_D0177 216 216 TComResidualGenerator m_cResidualGenerator; 217 217 #endif
Note: See TracChangeset for help on using the changeset viewer.