Changeset 443 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
- Timestamp:
- 26 May 2013, 15:41:34 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
r332 r443 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 { … … 117 130 m_pcEntropyDecoderIf->parsePredMode( pcCU, uiAbsPartIdx, uiDepth ); 118 131 132 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 119 133 #if RWTH_SDC_DLT_B0036 120 134 // if B-Slice, code SDC flag later … … 125 139 } 126 140 #endif 141 #endif 127 142 } 128 143 129 144 Void TDecEntropy::decodePartSize( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 130 145 { 146 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 131 147 #if RWTH_SDC_DLT_B0036 132 148 if( !pcCU->getSlice()->isInterB() && pcCU->isIntra(uiAbsPartIdx) && pcCU->getSDCFlag(uiAbsPartIdx) ) … … 137 153 } 138 154 #endif 155 #endif 139 156 140 157 m_pcEntropyDecoderIf->parsePartSize( pcCU, uiAbsPartIdx, uiDepth ); 141 158 159 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 142 160 #if RWTH_SDC_DLT_B0036 143 161 if( pcCU->getSlice()->isInterB() && pcCU->getSlice()->getSPS()->isDepth() && pcCU->isIntra(uiAbsPartIdx) ) … … 154 172 } 155 173 #endif 174 #endif 156 175 } 157 176 158 177 Void TDecEntropy::decodePredInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU ) 159 178 { 179 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 160 180 #if RWTH_SDC_DLT_B0036 161 181 if( pcCU->getSDCFlag(uiAbsPartIdx) ) … … 164 184 return; 165 185 } 186 #endif 166 187 #endif 167 188 … … 178 199 decodeIntraDirModeLuma( pcCU, uiAbsPartIdx + uiPartOffset*2, uiDepth+1 ); 179 200 decodeIntraDirModeLuma( pcCU, uiAbsPartIdx + uiPartOffset*3, uiDepth+1 ); 201 #if PKU_QC_DEPTH_INTRA_UNI_D0195 202 if(!pcCU->getSDCFlag(uiAbsPartIdx)) 203 #endif 180 204 decodeIntraDirModeChroma( pcCU, uiAbsPartIdx, uiDepth ); 181 205 } … … 183 207 { 184 208 decodeIntraDirModeLuma ( pcCU, uiAbsPartIdx, uiDepth ); 209 #if PKU_QC_DEPTH_INTRA_UNI_D0195 210 if(!pcCU->getSDCFlag(uiAbsPartIdx)) 211 #endif 185 212 decodeIntraDirModeChroma( pcCU, uiAbsPartIdx, uiDepth ); 186 213 } … … 189 216 { 190 217 decodePUWise( pcCU, uiAbsPartIdx, uiDepth, pcSubCU ); 218 #if QC_ARP_D0177 219 if( pcCU->getSlice()->getSPS()->getUseAdvRP() ) 220 { 221 decodeARPW( pcCU , uiAbsPartIdx , uiDepth, pcSubCU, 0 ); 222 } 223 #endif 191 224 } 192 225 } … … 301 334 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 302 335 #if MERL_VSP_C0152 336 #if LGE_VSP_INHERIT_D0092 337 Int iVSPIndexTrue[MRG_MAX_NUM_CANDS_MEM]; 338 for (Int i=0; i<MRG_MAX_NUM_CANDS_MEM; i++) 339 { 340 iVSPIndexTrue[i] = 0; 341 } 342 #else 303 343 Int iVSPIndexTrue[3] = {-1, -1, -1}; 344 #endif 345 #if MERL_VSP_NBDV_RefVId_Fix_D0166 346 Int iVSPDirTrue[3] = {-1, -1, -1}; 347 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, iVSPDirTrue, uiMergeIndex ); 348 #else 304 349 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, uiMergeIndex ); 305 350 #endif 306 351 #if HHI_MPI 307 352 if(pcCU->getTextureModeDepth( uiSubPartIdx ) == uiDepth)//MPI is used … … 311 356 for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) 312 357 { 313 Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui );358 Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui ); 314 359 pcCU->setVSPIndex( uiAbsPartIdx + ui, vspIdx); 360 #if MERL_VSP_NBDV_RefVId_Fix_D0166 361 Int vspDir = pcTextureCU->getVSPDir( uiAbsPartIdx + ui ); 362 pcCU->setVSPDir( uiAbsPartIdx + ui, vspDir); 363 #endif 315 364 } 316 365 } 317 366 else // MPI not used 318 367 #endif 368 #if MTK_D0156 369 if( !pcCU->getSlice()->getSPS()->getUseVSPCompensation() ) 370 { 371 pcCU->setVSPIndexSubParts( 0, uiSubPartIdx, uiPartIdx, uiDepth ); 372 } 373 else 374 #endif 319 375 { 320 376 Int iVSPIdx = 0; 377 #if LGE_VSP_INHERIT_D0092 378 if (iVSPIndexTrue[uiMergeIndex] == 1) 379 { 380 iVSPIdx = 1; 381 } 382 #else 321 383 Int numVspIdx; 322 384 numVspIdx = 3; … … 329 391 } 330 392 } 331 pcCU->setVSPIndexSubParts( iVSPIdx, uiSubPartIdx, uiPartIdx, uiDepth ); //Initialize the VSP, may change later in get InterMergeCandidates() 393 #endif 394 pcCU->setVSPIndexSubParts( iVSPIdx, uiSubPartIdx, uiPartIdx, uiDepth ); // Initialize 395 #if MERL_VSP_NBDV_RefVId_Fix_D0166 396 pcCU->setVSPDirSubParts( 0, uiSubPartIdx, uiPartIdx, uiDepth ); // Initialize 397 #endif 398 #if QC_BVSP_CleanUP_D0191 && !LGE_VSP_INHERIT_D0092 399 if(iVSPIdx != 0) 400 { 401 Int iIVCIdx = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC()==pcCU->getSlice()->getPOC() ? 0: pcCU->getSlice()->getNewRefIdx(REF_PIC_LIST_0); 402 cMvFieldNeighbours[ 2*uiMergeIndex].setRefIdx(iIVCIdx); 403 } 404 #endif 332 405 } 333 406 … … 479 552 { 480 553 #if H3D_IVMP 554 #if SEC_TWO_CANDIDATES_FOR_AMVP_D0122 555 const Int iNumAMVPCands = AMVP_MAX_NUM_CANDS; 556 #else 481 557 const Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( pcSubCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 ); 558 #endif 482 559 m_pcEntropyDecoderIf->parseMVPIdx( iMVPIdx, iNumAMVPCands ); 483 560 #else … … 789 866 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 790 867 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 791 868 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 792 869 decodeSDCResidualData(pcCU, uiAbsPartIdx, uiDepth); 870 #endif 793 871 return; 794 872 } … … 847 925 848 926 #if RWTH_SDC_DLT_B0036 927 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 849 928 Void TDecEntropy::decodeSDCPredMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 850 929 { … … 861 940 m_pcEntropyDecoderIf->parseSDCFlag(pcCU, uiAbsPartIdx, uiDepth ); 862 941 } 863 942 #endif 864 943 Void TDecEntropy::decodeSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 865 944 {
Note: See TracChangeset for help on using the changeset viewer.