Changeset 154 in 3DVCSoftware
- Timestamp:
- 26 Oct 2012, 21:38:14 (12 years ago)
- Location:
- branches/HTM-4.1-dev1-Sharp/source/Lib
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-4.1-dev1-Sharp/source/Lib/TLibCommon/TComDataCU.cpp
r147 r154 4807 4807 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 4808 4808 4809 Int aiDvMcpDvCand[2][7] = {{0,}, {0,}}; // dummy, 5 spatial + 1 temporal, DV-MCP ÁÖº¯ º í·°¿¡¼ »ç¿ëµÈ DV¸¦ ÀúÀå4809 Int aiDvMcpDvCand[2][7] = {{0,}, {0,}}; // dummy, 5 spatial + 1 temporal, DV-MCP ÁÖº¯ ºúÓ°¿¡¼ »ç¿EÈ DV¸¦ ÀúÀE 4810 4810 Bool abDvMcpFlag [2][7] = {{false,},{false,}}; 4811 4811 //Int aiRefPOC [2][7] = {{-1,},{-1}}; // debug … … 5216 5216 * \param pInfo 5217 5217 */ 5218 #if SHARP_INTERVIEW_DECOUPLE_B0111 5219 Void TComDataCU::fillMvpCand ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo, Int iMVPIdx) 5220 { 5221 if (!m_pcSlice->getSPS()->getViewId() || !m_pcSlice->getSPS()->getMultiviewMvPredMode()) 5222 { 5223 // HEVC 5224 fillMvpCandBase(uiPartIdx, uiPartAddr, eRefPicList, iRefIdx, pInfo); 5225 } 5226 else 5227 { 5228 if (iMVPIdx!=0) 5229 { 5230 // HEVC part 5231 fillMvpCandBase(uiPartIdx, uiPartAddr, eRefPicList, iRefIdx, pInfo); 5232 if (iRefIdx < 0) 5233 { 5234 return; 5235 } 5236 for (Int j = AMVP_MAX_NUM_CANDS - 1; j >= 0; j--) 5237 { 5238 pInfo->m_acMvCand[j+1] = pInfo->m_acMvCand[j]; 5239 } 5240 pInfo->iN++; 5241 } 5242 if (iMVPIdx<=0) 5243 { 5244 // extention part 5245 DisInfo cDisInfo; 5246 cDisInfo.iN = 0; 5247 #if LGE_DVMCP 5248 getDisMvpCand2(uiPartIdx, uiPartAddr, &cDisInfo, false, eRefPicList, iRefIdx ); 5249 #else 5250 getDisMvpCand (uiPartIdx, uiPartAddr, &cDisInfo ); 5251 #endif 5252 if(cDisInfo.iN==0) 5253 { 5254 cDisInfo.iN = 1; 5255 cDisInfo.m_acMvCand[0].setHor(0); 5256 cDisInfo.m_acMvCand[0].setVer(0); 5257 cDisInfo.m_aVIdxCan[0] = 0; 5258 } 5259 TComMv cPdmMvPred; 5260 #if QC_MULTI_DIS_CAN 5261 if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) ) 5262 #else 5263 if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) ) 5264 #endif 5265 { 5266 clipMv( cPdmMvPred ); 5267 pInfo->m_acMvCand[0] = cPdmMvPred; 5268 } 5269 else 5270 { 5271 pInfo->m_acMvCand[0].set(0,0); 5272 } 5273 } 5274 } 5275 } 5276 5277 5278 Void TComDataCU::fillMvpCandBase( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo ) 5279 #else 5218 5280 Void TComDataCU::fillMvpCand ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo ) 5281 #endif 5219 5282 { 5220 5283 PartSize eCUMode = getPartitionSize( 0 ); … … 5229 5292 } 5230 5293 5231 #if QC_MULTI_DIS_CAN 5294 #if QC_MULTI_DIS_CAN && !SHARP_INTERVIEW_DECOUPLE_B0111 5232 5295 DisInfo cDisInfo; 5233 5296 cDisInfo.iN = 0; … … 5248 5311 } 5249 5312 #endif 5250 #if HHI_INTER_VIEW_MOTION_PRED 5313 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111 5251 5314 #if ( PDM_AMVP_POS == 0 ) 5252 5315 // get inter-view mv predictor (at position 0) … … 5307 5370 } 5308 5371 5309 #if HHI_INTER_VIEW_MOTION_PRED 5372 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111 5310 5373 #if ( PDM_AMVP_POS == 1 ) 5311 5374 // get inter-view mv predictor (at position 1) … … 5359 5422 } 5360 5423 5361 #if HHI_INTER_VIEW_MOTION_PRED 5424 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111 5362 5425 #if ( PDM_AMVP_POS == 2 ) 5363 5426 // get inter-view mv predictor (at position 2) … … 5383 5446 } 5384 5447 } 5385 #if QC_MULTI_DIS_CAN5448 #if QC_MULTI_DIS_CAN && !SHARP_INTERVIEW_DECOUPLE_B0111 5386 5449 if ( getSlice()->getViewId()!=0 && pInfo->iN == 3 ) 5387 5450 { … … 5472 5535 } 5473 5536 5474 #if HHI_INTER_VIEW_MOTION_PRED 5537 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111 5475 5538 #if ( PDM_AMVP_POS == 3 ) 5476 5539 // get inter-view mv predictor (at position 3) … … 5493 5556 #endif 5494 5557 5495 #if HHI_INTER_VIEW_MOTION_PRED 5558 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111 5496 5559 const Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 ); 5497 5560 if (pInfo->iN > iNumAMVPCands) -
branches/HTM-4.1-dev1-Sharp/source/Lib/TLibCommon/TComDataCU.h
r121 r154 586 586 587 587 AMVP_MODE getAMVPMode ( UInt uiIdx ); 588 #if SHARP_INTERVIEW_DECOUPLE_B0111 589 Void fillMvpCandBase ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo ); 590 Void fillMvpCand ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo , Int iMVPIdx=-1); 591 #else 588 592 Void fillMvpCand ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo ); 593 #endif 589 594 #if PARALLEL_MERGE 590 595 Bool isDiffMER ( Int xN, Int yN, Int xP, Int yP); -
branches/HTM-4.1-dev1-Sharp/source/Lib/TLibCommon/TypeDef.h
r147 r154 79 79 80 80 #define MTK_INTERVIEW_MERGE_A0049 1 // JCT2-A0049 second part 81 81 #define SHARP_INTERVIEW_DECOUPLE_B0111 1 // JCT3V-B0111 decoupling inter-view candidate 82 82 83 #define LGE_DVMCP 1 // JCT2-A0126 83 84 #if LGE_DVMCP -
branches/HTM-4.1-dev1-Sharp/source/Lib/TLibDecoder/TDecEntropy.cpp
r100 r154 427 427 #endif 428 428 } 429 #if SHARP_INTERVIEW_DECOUPLE_B0111 430 pcSubCU->fillMvpCand(uiPartIdx, uiPartAddr, eRefList, iRefIdx, pAMVPInfo, iMVPIdx); 431 #else 429 432 pcSubCU->fillMvpCand(uiPartIdx, uiPartAddr, eRefList, iRefIdx, pAMVPInfo); 433 #endif 430 434 pcSubCU->setMVPNumSubParts(pAMVPInfo->iN, eRefList, uiPartAddr, uiPartIdx, uiDepth); 431 435 pcSubCU->setMVPIdxSubParts( iMVPIdx, eRefList, uiPartAddr, uiPartIdx, uiDepth );
Note: See TracChangeset for help on using the changeset viewer.