Changeset 647 in 3DVCSoftware
- Timestamp:
- 19 Oct 2013, 17:30:33 (11 years ago)
- Location:
- branches/HTM-8.2-dev0-Cleanup/source
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncCfg.cpp
r646 r647 1392 1392 xConfirmPara( allEqual , "Each layer shall have a different position in scalability space." ); 1393 1393 1394 #if !H_3D_FCO _E01631394 #if !H_3D_FCO 1395 1395 if ( numDiff == 1 ) 1396 1396 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComDataCU.cpp
r646 r647 2656 2656 // check prediction mode 2657 2657 UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 2658 #if LGE_SDC_REMOVE_DC_E01582659 2658 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) ) 2660 #else2661 if( uiLumaPredMode == DC_IDX || uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) )2662 #endif2663 2659 return true; 2664 2660 … … 3536 3532 UInt uiPartIdxCenter; 3537 3533 xDeriveCenterIdx( uiPUIdx, uiPartIdxCenter ); 3538 #if H_3D_FCO _E01633534 #if H_3D_FCO 3539 3535 TComPic * pcTexturePic = m_pcSlice->getTexturePic(); 3540 3536 TComDataCU *pcTextureCU = 0; … … 3545 3541 #endif 3546 3542 3547 #if H_3D_FCO _E01633543 #if H_3D_FCO 3548 3544 if ( pcTextureCU && pcTexturePic->getReconMark() && !pcTextureCU->isIntra( uiPartIdxCenter ) ) 3549 3545 #else … … 5487 5483 xDeriveCenterIdx(uiPartIdx, uiPartIdxCenter ); 5488 5484 5489 ///*** Derive bottom right neighbour position ***5490 #if !SEC_SIMPLIFIED_NBDV_E01425491 Int iLCUIdxRBNb = -1;5492 Int iPartIdxRBNb = -1;5493 xDeriveRightBottomNbIdx(iLCUIdxRBNb, iPartIdxRBNb );5494 #endif5495 5496 5485 ///*** Search temporal candidate pictures for disparity vector *** 5497 5486 const Int iNumCandPics = getPic()->getNumDdvCandPics(); … … 5511 5500 } 5512 5501 5513 #if !SEC_SIMPLIFIED_NBDV_E0142 5514 // Check BR and Center 5515 for(Int curPosition = 0; curPosition < 2; curPosition++) 5516 { 5517 #endif 5518 Bool bCheck = false; 5519 #if !SEC_SIMPLIFIED_NBDV_E0142 5520 if ( curPosition == 0 && iLCUIdxRBNb >= 0 ) 5521 #if MTK_NBDV_TN_FIX_E0172 5522 bCheck = xGetColDisMV( curCandPic, eCurRefPicList, curCandPicRefIdx, iLCUIdxRBNb, iPartIdxRBNb, cColMv, iTargetViewIdx, iTStartViewIdx); 5502 Bool bCheck = xGetColDisMV( curCandPic, eCurRefPicList, curCandPicRefIdx, uiLCUIdx, uiPartIdxCenter, cColMv, iTargetViewIdx, iTStartViewIdx ); 5503 5504 if( bCheck ) 5505 { 5506 clipMv(cColMv); 5507 pDInfo->m_acNBDV = cColMv; 5508 pDInfo->m_aVIdxCan = iTargetViewIdx; 5509 5510 #if H_3D_NBDV_REF 5511 TComPic* picDepth = NULL; 5512 #if H_3D_FCO_VSP_DONBDV_E0163 5513 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 5514 if ( picDepth->getPicYuvRec() != NULL ) 5515 { 5516 cColMv.setZero(); 5517 } 5518 else // Go back with virtual depth 5519 { 5520 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 5521 } 5522 5523 assert(picDepth != NULL); 5523 5524 #else 5524 bCheck = xGetColDisMV( eCurRefPicList, curCandPicRefIdx, iLCUIdxRBNb, iPartIdxRBNb, cColMv, iTargetViewIdx, iTStartViewIdx); 5525 #endif 5526 5527 if (curPosition == 1 ) 5528 #endif 5529 #if MTK_NBDV_TN_FIX_E0172 5530 bCheck = xGetColDisMV( curCandPic, eCurRefPicList, curCandPicRefIdx, uiLCUIdx, uiPartIdxCenter, cColMv, iTargetViewIdx, iTStartViewIdx ); 5531 #else 5532 bCheck = xGetColDisMV( eCurRefPicList, curCandPicRefIdx, uiLCUIdx, uiPartIdxCenter, cColMv, iTargetViewIdx, iTStartViewIdx ); 5533 #endif 5534 5535 if( bCheck ) 5536 { 5537 clipMv(cColMv); 5538 pDInfo->m_acNBDV = cColMv; 5539 pDInfo->m_aVIdxCan = iTargetViewIdx; 5540 5541 #if H_3D_NBDV_REF 5542 TComPic* picDepth = NULL; 5543 #if H_3D_FCO_VSP_DONBDV_E0163 5544 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 5545 if ( picDepth->getPicYuvRec() != NULL ) 5546 { 5547 cColMv.setZero(); 5548 } 5549 else // Go back with virtual depth 5550 { 5551 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 5552 } 5553 5554 assert(picDepth != NULL); 5555 #else 5556 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 5557 assert(picDepth != NULL); 5558 #endif 5559 if (picDepth && bDepthRefine) 5560 estimateDVFromDM(iTargetViewIdx, uiPartIdx, picDepth, uiPartAddr, &cColMv ); 5561 5562 pDInfo->m_acDoNBDV = cColMv; 5525 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 5526 assert(picDepth != NULL); 5527 #endif 5528 if (picDepth && bDepthRefine) 5529 estimateDVFromDM(iTargetViewIdx, uiPartIdx, picDepth, uiPartAddr, &cColMv ); 5530 5531 pDInfo->m_acDoNBDV = cColMv; 5563 5532 #endif //H_3D_NBDV_REF 5564 return true; 5565 } 5566 #if !SEC_SIMPLIFIED_NBDV_E0142 5567 } 5568 #endif 5533 return true; 5534 } 5569 5535 } 5570 5536 } … … 5579 5545 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_LEFT 5580 5546 #if H_3D_NBDV_REF 5581 , bDepthRefine5547 , bDepthRefine 5582 5548 #endif 5583 5549 ) ) … … 5591 5557 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_ABOVE 5592 5558 #if H_3D_NBDV_REF 5593 , bDepthRefine5594 #endif 5595 ) )5559 , bDepthRefine 5560 #endif 5561 ) ) 5596 5562 return true; 5597 5563 } 5598 5599 #if !SEC_SIMPLIFIED_NBDV_E01425600 //// ******* Get disparity from above right block ******* /////5601 pcTmpCU = getPUAboveRight(uiIdx, uiPartIdxRT, true);5602 if(pcTmpCU != NULL )5603 {5604 bCheckMcpDv = ( ( getAddr() - pcTmpCU->getAddr() ) == 0);5605 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_ABOVERIGHT5606 #if H_3D_NBDV_REF5607 , bDepthRefine5608 #endif5609 ) )5610 return true;5611 }5612 5613 //// ******* Get disparity from below left block ******* /////5614 pcTmpCU = getPUBelowLeft(uiIdx, uiPartIdxLB, true);5615 if( pcTmpCU != NULL )5616 {5617 bCheckMcpDv = true;5618 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_LEFTBELOW5619 #if H_3D_NBDV_REF5620 , bDepthRefine5621 #endif5622 ) )5623 return true;5624 }5625 5626 //// ******* Get disparity from above left block ******* /////5627 pcTmpCU = getPUAboveLeft(uiIdx, (m_uiAbsIdxInLCU + uiPartAddr), true);5628 assert(uiPartIdxLT == (m_uiAbsIdxInLCU + uiPartAddr));5629 5630 if( pcTmpCU != NULL )5631 {5632 bCheckMcpDv = (( getAddr() - pcTmpCU->getAddr() ) <= 1);5633 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_ABOVELEFT5634 #if H_3D_NBDV_REF5635 , bDepthRefine5636 #endif5637 ) )5638 return true;5639 }5640 #endif5641 5564 5642 5565 //// ******* Search MCP blocks ******* ///// … … 5747 5670 Int iPictureHeight = pcBaseViewDepthPicYuv->getHeight(); 5748 5671 5749 #if NTT_DoNBDV_VECTOR_CLIP_E01415750 5672 Int depthStartPosX = Clip3(0, iPictureWidth - 1, iBlkX + ((mv->getHor()+2)>>2)); 5751 5673 Int depthStartPosY = Clip3(0, iPictureHeight - 1, iBlkY + ((mv->getVer()+2)>>2)); 5752 5674 Int depthEndPosX = Clip3(0, iPictureWidth - 1, iBlkX + iBlkWidth - 1 + ((mv->getHor()+2)>>2)); 5753 5675 Int depthEndPosY = Clip3(0, iPictureHeight - 1, iBlkY + iBlkHeight - 1 + ((mv->getVer()+2)>>2)); 5754 #else5755 Int depthStartPosX = Clip3(0, iPictureWidth - iBlkWidth, iBlkX + ((mv->getHor()+2)>>2));5756 Int depthStartPosY = Clip3(0, iPictureHeight- iBlkHeight, iBlkY + ((mv->getVer()+2)>>2));5757 Int depthEndPosX = Clip3(0, iPictureWidth - 1, iBlkX + iBlkWidth - 1 + ((mv->getHor()+2)>>2));5758 Int depthEndPosY = Clip3(0, iPictureHeight - 1, iBlkY + iBlkHeight - 1 + ((mv->getVer()+2)>>2));5759 #endif5760 5676 5761 5677 Pel* depthTL = pcBaseViewDepthPicYuv->getLumaAddr(); … … 5848 5764 assert( uiMvpDvPos < IDV_CANDS ); 5849 5765 paIDVInfo->m_acMvCand[iList][ uiMvpDvPos ] = TComMv( cMvPred.getIDVHor(), cMvPred.getIDVVer() ); 5850 //Notes from QC: DvMCP is implemented in a way that doesn E½t carry the reference view identifier as NBDV. It only works for CTC and needs to be fixed to be aligned with other part of the NBDV design.5766 //Notes from QC: DvMCP is implemented in a way that doesnot carry the reference view identifier as NBDV. It only works for CTC and needs to be fixed to be aligned with other part of the NBDV design. 5851 5767 paIDVInfo->m_aVIdxCan[iList][ uiMvpDvPos ] = cMvPred.getIDVVId(); 5852 5768 paIDVInfo->m_bAvailab[iList][ uiMvpDvPos ] = true; … … 5920 5836 } 5921 5837 #endif 5922 #if MTK_NBDV_TN_FIX_E0172 5838 5923 5839 Bool TComDataCU::xGetColDisMV( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv , Int & iTargetViewIdx, Int & iStartViewIdx ) 5924 #else5925 Bool TComDataCU::xGetColDisMV( RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv , Int & iTargetViewIdx, Int & iStartViewIdx )5926 #endif5927 5840 { 5928 5841 … … 5940 5853 if(pColCU->getSlice()->isInterB()) 5941 5854 { 5942 5855 eColRefPicList = RefPicList(ilist); 5943 5856 } 5944 5857 … … 5958 5871 else 5959 5872 { 5960 #if MTK_NBDV_TN_FIX_E01725961 5873 if(getPic()->isTempIVRefValid(currCandPic, ilist, iColRefIdx)) 5962 5874 { 5963 #endif 5964 rcMv = pColCU->getCUMvField(eColRefPicList)->getMv(uiPartUnitIdx); 5965 rcMv.setIDVFlag(0); 5966 iTargetViewIdx = iColRefViewIdx ; 5967 iStartViewIdx = iColViewIdx ; 5968 return true; 5969 #if MTK_NBDV_TN_FIX_E0172 5970 } 5971 #endif 5875 rcMv = pColCU->getCUMvField(eColRefPicList)->getMv(uiPartUnitIdx); 5876 rcMv.setIDVFlag(0); 5877 iTargetViewIdx = iColRefViewIdx ; 5878 iStartViewIdx = iColViewIdx ; 5879 return true; 5880 } 5972 5881 } 5973 5882 } … … 5976 5885 } 5977 5886 #endif 5978 #if MTK_FAST_TEXTURE_ENCODING_E01735887 #if H_3D_FAST_TEXTURE_ENCODIN 5979 5888 Void 5980 5889 TComDataCU::getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD) -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComDataCU.h
r646 r647 486 486 #endif 487 487 ); 488 #if MTK_NBDV_TN_FIX_E0172489 488 Bool xGetColDisMV ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); 490 #else491 Bool xGetColDisMV ( RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx );492 #endif493 489 Bool getDisMvpCandNBDV ( DisInfo* pDInfo 494 490 #if H_3D_NBDV_REF … … 502 498 #endif //H_3D_NBDV_REF 503 499 #endif 504 #if MTK_FAST_TEXTURE_ENCODING_E0173500 #if H_3D_FAST_TEXTURE_ENCODIN 505 501 Void getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD); 506 502 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComPic.cpp
r646 r647 119 119 120 120 /* initialize the texture to depth reference status */ 121 #if H_3D_FCO _E0163121 #if H_3D_FCO 122 122 for (int j=0; j<2; j++) 123 123 { … … 672 672 return numDdvCandPics; 673 673 } 674 #endif 675 #if MTK_NBDV_TN_FIX_E0172 674 676 675 Void TComPic::checkTemporalIVRef() 677 676 { … … 727 726 return m_abTIVRINCurrRL[currCandPic][iColRefDir][iColRefIdx]; 728 727 } 729 #endif 730 #if MTK_TEXTURE_MRGCAND_BUGFIX_E0182 728 731 729 Void TComPic::checkTextureRef( ) 732 730 { 733 731 TComSlice* pcCurrSlice = getSlice(getCurrSliceIdx()); 734 732 TComPic* pcTextPic = pcCurrSlice->getTexturePic(); 735 #if H_3D_FCO _E0163733 #if H_3D_FCO 736 734 if ( pcTextPic ) 737 735 { … … 759 757 760 758 } 761 #if H_3D_FCO _E0163759 #if H_3D_FCO 762 760 } 763 761 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComPic.h
r646 r647 104 104 RefPicList m_eRapRefList; 105 105 Int m_iNumDdvCandPics; 106 #endif107 #if MTK_NBDV_TN_FIX_E0172108 106 Bool m_abTIVRINCurrRL [2][2][MAX_NUM_REF]; //whether an inter-view reference picture with the same view index of the inter-view reference picture of temporal reference picture of current picture exists in current reference picture lists 109 #endif110 #if MTK_TEXTURE_MRGCAND_BUGFIX_E0182111 107 Int m_aiTexToDepRef [2][MAX_NUM_REF]; 112 108 #endif … … 224 220 UInt getRapRefIdx() {return m_uiRapRefIdx; } 225 221 RefPicList getRapRefList() {return m_eRapRefList; } 226 #endif 227 #if MTK_NBDV_TN_FIX_E0172 228 Void checkTemporalIVRef(); 229 Bool isTempIVRefValid(Int currCandPic, Int iTempRefDir, Int iTempRefIdx); 230 #endif 231 #if MTK_TEXTURE_MRGCAND_BUGFIX_E0182 232 Void checkTextureRef( ); 233 Int isTextRefValid(Int iTextRefDir, Int iTextRefIdx); 222 Void checkTemporalIVRef(); 223 Bool isTempIVRefValid(Int currCandPic, Int iTempRefDir, Int iTempRefIdx); 224 Void checkTextureRef( ); 225 Int isTextRefValid(Int iTextRefDir, Int iTextRefIdx); 234 226 #endif 235 227 /** transfer ownership of seis to this picture */ -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComPrediction.cpp
r646 r647 1976 1976 Int uiColTexIntraDir = pcColTexCU->isIntra( uiTexPartIdx ) ? pcColTexCU->getLumaIntraDir( uiTexPartIdx ) : 255; 1977 1977 1978 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX1979 1978 assert( uiColTexIntraDir > DC_IDX && uiColTexIntraDir < 35 ); 1980 1979 return g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]][uiColTexIntraDir-2].at(intraTabIdx); 1981 #else1982 if( uiColTexIntraDir > DC_IDX && uiColTexIntraDir < 35 ) { return g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]][uiColTexIntraDir-2].at(intraTabIdx); }1983 else { return g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])].at(intraTabIdx).getPatternIdx(); }1984 #endif1985 1980 } 1986 1981 -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComRdCost.cpp
r646 r647 484 484 } 485 485 486 #if SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX486 #if H_3D_FAST_DEPTH_INTRA 487 487 488 488 UInt TComRdCost::calcVAR (Pel* pi0, Int stride, Int width, Int height, Int cuDepth) -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComRdCost.h
r646 r647 235 235 UInt calcHAD(Int bitDepth, Pel* pi0, Int iStride0, Pel* pi1, Int iStride1, Int iWidth, Int iHeight ); 236 236 237 #if SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX237 #if H_3D_FAST_DEPTH_INTRA 238 238 UInt calcVAR(Pel* pi0, Int stride, Int width, Int height, Int cuDepth); 239 239 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComRom.cpp
r622 r647 347 347 { //2x2 4x4 8x8 16x16 32x32 64x64 348 348 0, 7, 10, 11, 11, 13 }; 349 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 349 350 350 const UChar g_dmm3IntraTabIdxBits[6] = 351 351 { //2x2 4x4 8x8 16x16 32x32 64x64 352 352 0, 4, 7, 8, 8, 0 }; 353 #else354 const UChar g_dmm3IntraTabIdxBits[6] =355 { //2x2 4x4 8x8 16x16 32x32 64x64356 0, 6, 9, 9, 9, 0 };357 #endif358 353 359 354 extern std::vector< std::vector<TComWedgelet> > g_dmmWedgeLists; … … 614 609 std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3; 615 610 616 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX617 611 Void initWedgeLists( Bool initNodeList ) 618 #else619 Void initWedgeLists( Bool initRefinements )620 #endif621 612 { 622 613 if( !g_dmmWedgeLists.empty() ) return; … … 631 622 g_dmmWedgeRefLists.push_back( acWedgeRefList ); 632 623 633 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX634 624 if( initNodeList ) 635 625 { 636 #endif 637 // create WedgeNodeList 638 std::vector<TComWedgeNode> acWedgeNodeList; 639 for( UInt uiPos = 0; uiPos < acWedgeList.size(); uiPos++ ) 640 { 641 if( acWedgeList[uiPos].getIsCoarse() ) 642 { 643 TComWedgeNode cWedgeNode; 644 cWedgeNode.setPatternIdx( uiPos ); 645 646 #if !LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 647 if( initRefinements ) 626 // create WedgeNodeList 627 std::vector<TComWedgeNode> acWedgeNodeList; 628 for( UInt uiPos = 0; uiPos < acWedgeList.size(); uiPos++ ) 629 { 630 if( acWedgeList[uiPos].getIsCoarse() ) 648 631 { 649 #endif 632 TComWedgeNode cWedgeNode; 633 cWedgeNode.setPatternIdx( uiPos ); 634 650 635 UInt uiRefPos = 0; 651 636 for( Int iOffS = -1; iOffS <= 1; iOffS++ ) … … 674 659 { 675 660 if( iSx == (Int)acWedgeRefList[k].getStartX() && 676 677 678 661 iSy == (Int)acWedgeRefList[k].getStartY() && 662 iEx == (Int)acWedgeRefList[k].getEndX() && 663 iEy == (Int)acWedgeRefList[k].getEndY() ) 679 664 { 680 665 if( acWedgeRefList[k].getRefIdx() != cWedgeNode.getPatternIdx() ) … … 694 679 } 695 680 } 696 #if !LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 681 acWedgeNodeList.push_back( cWedgeNode ); 697 682 } 698 #endif 699 acWedgeNodeList.push_back( cWedgeNode ); 700 } 701 } 702 g_dmmWedgeNodeLists.push_back( acWedgeNodeList ); 703 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 704 } 705 #endif 706 } 707 return; 683 } 684 g_dmmWedgeNodeLists.push_back( acWedgeNodeList ); 685 } 686 } 708 687 } 709 688 -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TComRom.h
r622 r647 174 174 extern std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3; 175 175 176 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX177 176 Void initWedgeLists( Bool initNodeList = false ); 178 #else179 Void initWedgeLists( Bool initRefinements = false );180 #endif181 177 Void createWedgeList( UInt uiWidth, UInt uiHeight, std::vector<TComWedgelet> &racWedgeList, std::vector<TComWedgeRef> &racWedgeRefList, WedgeResolution eWedgeRes ); 182 178 Void addWedgeletToList( TComWedgelet cWedgelet, std::vector<TComWedgelet> &racWedgeList, std::vector<TComWedgeRef> &racWedgeRefList ); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibCommon/TypeDef.h
r646 r647 92 92 // QC_CU_NBDV_D0181 93 93 // SEC_DEFAULT_DV_D0112 94 // MTK_DVMCP_FIX_E0172 1 // fix the mismatch between software and WD for DV derivation from DVMCP blocks, issue 2 in JCT3V-E0172 94 // MTK_DVMCP_FIX_E0172 fix the mismatch between software and WD for DV derivation from DVMCP blocks, issue 2 in JCT3V-E0172 95 // SEC_SIMPLIFIED_NBDV_E0142 Simplified NBDV, JCT3V-E0142 and JCT3V-E0190 96 // MTK_NBDV_TN_FIX_E0172 fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172 97 // MTK_TEXTURE_MRGCAND_BUGFIX_E0182 Bug fix for TEXTURE MERGING CANDIDATE , JCT3V-E0182 95 98 #define H_3D_ARP 1 // Advanced residual prediction (ARP), JCT3V-D0177 96 99 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 … … 106 109 // MERL_C0152: Basic VSP 107 110 // NBDV_DEFAULT_VIEWIDX_BUGFIX Bug fix for invalid default view index for NBDV 111 // NTT_DoNBDV_VECTOR_CLIP_E0141 disparity vector clipping in DoNBDV, JCT3V-E0141 and JCT3V-E0209 112 108 113 #endif 109 114 … … 149 154 // KWU_SDC_SIMPLE_DC_E0117 Simplified DC calculation for SDC 150 155 // SCU_HS_DMM4_REMOVE_DIV_E0242 DMM4 Division Removal 156 // LGE_SDC_REMOVE_DC_E0158 Removal of DC mode from SDC 157 // LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1 Removal of overlap between DMM3 and DMM1 158 151 159 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding 152 160 // LGE_INTER_SDC_E0156 Enable inter SDC for depth coding 153 #define H_3D_FCO _E01630 // Flexible coding order for 3D161 #define H_3D_FCO 0 // Flexible coding order for 3D 154 162 155 163 … … 157 165 // OTHERS 158 166 // MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170 // Progressive MV Compression, JCT3V-E0170 159 160 #define H_3D_REN_MAX_DEV_OUT 0 // Output maximal possible shift deviation 161 162 ///////////////////////////////////////////////////////////////////////////////////////// 163 /////////////////////////////////// HTM-8.0 INTEGRATIONS ////////////////////////////// 164 ///////////////////////////////////////////////////////////////////////////////////////// 165 166 #define MTK_FAST_TEXTURE_ENCODING_E0173 1 // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173 167 168 169 #if H_3D_NBDV 170 #define MTK_RVS_BUGFIX_E0172 1 // Bug fix for issues caused by reference view selection, JCT3V-E0172 171 #define MTK_TEXTURE_MRGCAND_BUGFIX_E0182 1 // Bug fix for TEXTURE MERGING CANDIDATE , JCT3V-E0182 172 173 #if MTK_RVS_BUGFIX_E0172 174 #define MTK_DIVMC_FIX_E0172 1 // fix the issue of derivation of disparity inter-view merge candidate, issue 5 in JCT3V-E0172 175 #define MTK_NBDV_TN_FIX_E0172 1 // fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172 176 #endif // MTK_RVS_BUGFIX_E0172 177 178 #if H_3D_NBDV_REF 179 #define NTT_DoNBDV_VECTOR_CLIP_E0141 1 // disparity vector clipping in DoNBDV, JCT3V-E0141 and JCT3V-E0209 180 #define SEC_SIMPLIFIED_NBDV_E0142 1 // Simplified NBDV, JCT3V-E0142 and JCT3V-E0190 181 #endif 182 #endif // H_3D_NBDV 183 167 #define H_3D_REN_MAX_DEV_OUT 0 // Output maximal possible shift deviation 168 #define H_3D_FAST_TEXTURE_ENCODING 1 // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173 169 // MTK_FAST_TEXTURE_ENCODING_E0173 184 170 #if H_3D_DIM 185 #define SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX 1 // Fast DMM and RBC Mode Selection 186 #endif 187 188 #if H_3D_FCO_E0163 189 #define H_3D_FCO_VSP_DONBDV_E0163 1 // Adaptive depth reference for flexible coding order 190 #else 191 #define H_3D_FCO_VSP_DONBDV_E0163 0 // Adaptive depth reference for flexible coding order 192 #endif 171 #define H_3D_FAST_DEPTH_INTRA 1 // Fast DMM and RBC Mode Selection 172 // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX 173 #endif 174 193 175 #endif // H_3D 194 176 195 177 196 ///////////////////////////////////////////////////////////////////////////////////////// 197 /////////////////////////////////// HTM-8.1 INTEGRATIONS ////////////////////////////// 198 ///////////////////////////////////////////////////////////////////////////////////////// 199 200 // Please put HTM-8.1 Integration defines here, when possible 178 // Rate Control 179 #define KWU_FIX_URQ 1 180 #define KWU_RC_VIEWRC_E0227 0 ///< JCT3V-E0227, view-wise target bitrate allocation 181 #define KWU_RC_MADPRED_E0227 0 ///< JCT3V-E0227, inter-view MAD prediction 201 182 202 183 203 184 /// FIXES 204 185 #if H_MV 205 #define H_MV_FIX_LID_PIC_HASH_SEI_T40 1 // Fix wrong layer_id in decoded picture hash SEI 206 #define H_MV5 1 // Update to MV-HEVC 5 HLS 186 #define H_MV5 1 // Update to MV-HEVC 5 HLS 207 187 #endif 208 188 ///////////////////////////////////////////////////////////////////////////////////////// … … 217 197 #define H_3D_VSO_RM_ASSERTIONS 0 // Output VSO assertions 218 198 #define H_3D_VSO_SYNTH_DIST_OUT 0 // Output of synthesized view distortion instead of depth distortion in encoder output 219 220 199 #define H_3D_VSO_FIX 0 // This fix should be enabled after verification 221 222 #endif 223 //// ****** Neighbouring block-based Disparity Vector *********200 #endif 201 202 //// ****** neighbouring block-based disparity vector ********* 224 203 #if H_3D_NBDV 225 #if SEC_SIMPLIFIED_NBDV_E0142226 204 #define DVFROM_LEFT 0 227 205 #define DVFROM_ABOVE 1 228 206 #define IDV_CANDS 2 229 #else230 #define DVFROM_LEFTBELOW 0231 #define DVFROM_LEFT 1232 #define DVFROM_ABOVERIGHT 2233 #define DVFROM_ABOVE 3234 #define DVFROM_ABOVELEFT 4235 #define IDV_CANDS 5236 #endif237 207 #endif 238 208 … … 241 211 #define H_3D_ARP_WFNR 3 242 212 #endif 213 243 214 ///// ***** DEPTH INTRA MODES ********* 244 215 #if H_3D_DIM … … 250 221 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 251 222 // LG_ZEROINTRADEPTHRESI_A0087 252 #if H_3D_DIM_SDC 253 #define LGE_SDC_REMOVE_DC_E0158 1 // Removal of DC mode from SDC 254 #endif 255 #if H_3D_DIM_DMM 256 #define LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1 // Removal of overlap between DMM3 and DMM1 257 #endif 258 #endif 259 223 #endif 260 224 ///// ***** VIEW SYNTHESIS PREDICTION ********* 261 225 #if H_3D_VSP … … 270 234 271 235 ///// ***** ILLUMATION COMPENSATION ********* 272 273 274 236 #if H_3D_IC 275 #define IC_REG_COST_SHIFT 7 276 #define IC_CONST_SHIFT 5 277 #define IC_SHIFT_DIFF 12 237 #define IC_REG_COST_SHIFT 7 238 #define IC_CONST_SHIFT 5 239 #define IC_SHIFT_DIFF 12 240 #endif 241 242 ///// ***** FCO ********* 243 #if H_3D_FCO 244 #define H_3D_FCO_VSP_DONBDV_E0163 1 // Adaptive depth reference for flexible coding order 245 #else 246 #define H_3D_FCO_VSP_DONBDV_E0163 0 // Adaptive depth reference for flexible coding order 278 247 #endif 279 248 … … 302 271 #define M0036_RC_IMPROVEMENT 1 ///< JCTVC-M0036, improvement for R-lambda model based rate control 303 272 #define TICKET_1090_FIX 1 304 #define KWU_FIX_URQ 1305 273 306 274 #if KWU_FIX_URQ 307 308 275 #if RATE_CONTROL_LAMBDA_DOMAIN 309 276 #define RC_FIX 1 /// suggested fix for M0036 310 277 #define RATE_CONTROL_INTRA 1 ///< JCTVC-M0257, rate control for intra 311 278 #endif 312 313 #else 314 279 #else 315 280 #define RC_FIX 1 /// suggested fix for M0036 316 281 #define RATE_CONTROL_INTRA 1 ///< JCTVC-M0257, rate control for intra 317 318 #endif 319 320 #define KWU_RC_VIEWRC_E0227 0 ///< JCT3V-E0227, view-wise target bitrate allocation 321 #define KWU_RC_MADPRED_E0227 0 ///< JCT3V-E0227, inter-view MAD prediction 282 #endif 283 322 284 323 285 #define MAX_CPB_CNT 32 ///< Upper bound of (cpb_cnt_minus1 + 1) -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecGop.cpp
r646 r647 158 158 rpcPic->setNumDdvCandPics(rpcPic->getDisCandRefPictures(iColPoc)); 159 159 } 160 #endif 161 #if MTK_NBDV_TN_FIX_E0172 160 162 161 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth() && !pcSlice->isIntra()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 163 162 { 164 163 rpcPic->checkTemporalIVRef(); 165 164 } 166 #endif 167 #if MTK_TEXTURE_MRGCAND_BUGFIX_E0182 165 168 166 if(pcSlice->getIsDepth()) 169 167 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecSbac.cpp
r646 r647 1207 1207 if( puIdx == 2 ) 1208 1208 { 1209 #if !LGE_SDC_REMOVE_DC_E01581210 while( binNum < 2 && symbol )1211 #endif1212 1209 { 1213 1210 ctxDepthMode = puIdx*3 + binNum; … … 1217 1214 } 1218 1215 if( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1219 #if LGE_SDC_REMOVE_DC_E01581220 1216 else if( modeCode == 1 ) { dir = 0; sdcFlag = 0;} 1221 #else1222 else if( modeCode == 2 ) { dir = 0; sdcFlag = 0;}1223 else if( modeCode == 3 ) { dir = DC_IDX; sdcFlag = 1;}1224 #endif1225 1217 } 1226 1218 else if( puIdx == 0 ) -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecTop.cpp
r630 r647 979 979 pcSlice->setIvPicLists( m_ivPicLists ); 980 980 #if H_3D_IV_MERGE 981 #if H_3D_FCO _E0163981 #if H_3D_FCO 982 982 //assert( !getIsDepth() ); 983 983 #else -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncCu.cpp
r646 r647 517 517 if(!bSliceEnd && !bSliceStart && bInsidePicture ) 518 518 { 519 #if MTK_FAST_TEXTURE_ENCODING_E0173519 #if H_3D_FAST_TEXTURE_ENCODIN 520 520 Bool bIVFMerge = false; 521 521 Int iIVFMaxD = 0; … … 588 588 } 589 589 } 590 #if MTK_FAST_TEXTURE_ENCODING_E0173590 #if H_3D_FAST_TEXTURE_ENCODIN 591 591 if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth()) 592 592 { … … 612 612 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 613 613 #endif 614 #if MTK_FAST_TEXTURE_ENCODING_E0173614 #if H_3D_FAST_TEXTURE_ENCODIN 615 615 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD ); rpcTempCU->initEstData( uiDepth, iQP );//by Competition for inter_2Nx2N 616 616 #else … … 626 626 #endif 627 627 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, &earlyDetectionSkipMode );//by Merge for inter_2Nx2N 628 #if MTK_FAST_TEXTURE_ENCODING_E0173628 #if H_3D_FAST_TEXTURE_ENCODIN 629 629 bFMD = bIVFMerge && rpcBestCU->isSkipped(0); 630 630 #endif … … 652 652 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 653 653 #endif 654 #if MTK_FAST_TEXTURE_ENCODING_E0173654 #if H_3D_FAST_TEXTURE_ENCODIN 655 655 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD ); rpcTempCU->initEstData( uiDepth, iQP ); 656 656 #else … … 760 760 ) 761 761 { 762 #if MTK_FAST_TEXTURE_ENCODING_E0173762 #if H_3D_FAST_TEXTURE_ENCODIN 763 763 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFMD ); 764 764 #else … … 780 780 ) 781 781 { 782 #if MTK_FAST_TEXTURE_ENCODING_E0173782 #if H_3D_FAST_TEXTURE_ENCODIN 783 783 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFMD ); 784 784 #else … … 800 800 ) 801 801 { 802 #if MTK_FAST_TEXTURE_ENCODING_E0173802 #if H_3D_FAST_TEXTURE_ENCODIN 803 803 xCheckRDCostInter ( rpcBestCU, rpcTempCU, SIZE_2NxN, bFMD ); 804 804 #else … … 839 839 ) 840 840 { 841 #if MTK_FAST_TEXTURE_ENCODING_E0173841 #if H_3D_FAST_TEXTURE_ENCODIN 842 842 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFMD ); 843 843 #else … … 859 859 ) 860 860 { 861 #if MTK_FAST_TEXTURE_ENCODING_E0173861 #if H_3D_FAST_TEXTURE_ENCODIN 862 862 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFMD ); 863 863 #else … … 883 883 ) 884 884 { 885 #if MTK_FAST_TEXTURE_ENCODING_E0173885 #if H_3D_FAST_TEXTURE_ENCODIN 886 886 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFMD, true ); 887 887 #else … … 903 903 ) 904 904 { 905 #if MTK_FAST_TEXTURE_ENCODING_E0173905 #if H_3D_FAST_TEXTURE_ENCODIN 906 906 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFMD, true ); 907 907 #else … … 929 929 ) 930 930 { 931 #if MTK_FAST_TEXTURE_ENCODING_E0173931 #if H_3D_FAST_TEXTURE_ENCODIN 932 932 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFMD ); 933 933 #else … … 949 949 ) 950 950 { 951 #if MTK_FAST_TEXTURE_ENCODING_E0173951 #if H_3D_FAST_TEXTURE_ENCODIN 952 952 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFMD ); 953 953 #else … … 969 969 ) 970 970 { 971 #if MTK_FAST_TEXTURE_ENCODING_E0173971 #if H_3D_FAST_TEXTURE_ENCODIN 972 972 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFMD, true ); 973 973 #else … … 989 989 ) 990 990 { 991 #if MTK_FAST_TEXTURE_ENCODING_E0173991 #if H_3D_FAST_TEXTURE_ENCODIN 992 992 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFMD, true ); 993 993 #else … … 1040 1040 #endif 1041 1041 } 1042 #if MTK_FAST_TEXTURE_ENCODING_E01731042 #if H_3D_FAST_TEXTURE_ENCODIN 1043 1043 if(!bFMD) 1044 1044 { … … 1122 1122 } 1123 1123 } 1124 #if MTK_FAST_TEXTURE_ENCODING_E01731124 #if H_3D_FAST_TEXTURE_ENCODIN 1125 1125 } 1126 1126 #endif … … 1167 1167 bSubBranch = true; 1168 1168 } 1169 #if MTK_FAST_TEXTURE_ENCODING_E01731169 #if H_3D_FAST_TEXTURE_ENCODIN 1170 1170 if(rpcBestCU->getSlice()->getViewIndex() && !rpcBestCU->getSlice()->getIsDepth() && (uiDepth >=iIVFMaxD) && rpcBestCU->isSkipped(0)) 1171 1171 { … … 2044 2044 2045 2045 #if AMP_MRG 2046 #if MTK_FAST_TEXTURE_ENCODING_E01732046 #if H_3D_FAST_TEXTURE_ENCODIN 2047 2047 Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFMD, Bool bUseMRG) 2048 2048 #else … … 2053 2053 #endif 2054 2054 { 2055 #if MTK_FAST_TEXTURE_ENCODING_E01732055 #if H_3D_FAST_TEXTURE_ENCODIN 2056 2056 if(!(bFMD && (ePartSize == SIZE_2Nx2N))) //have motion estimation or merge check 2057 2057 { … … 2130 2130 #if AMP_MRG 2131 2131 rpcTempCU->setMergeAMP (true); 2132 #if MTK_FAST_TEXTURE_ENCODING_E01732132 #if H_3D_FAST_TEXTURE_ENCODIN 2133 2133 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bFMD, false, bUseMRG ); 2134 2134 #else … … 2245 2245 } 2246 2246 #endif 2247 #if MTK_FAST_TEXTURE_ENCODING_E01732247 #if H_3D_FAST_TEXTURE_ENCODIN 2248 2248 } 2249 2249 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncCu.h
r639 r647 160 160 161 161 #if AMP_MRG 162 #if MTK_FAST_TEXTURE_ENCODING_E0173162 #if H_3D_FAST_TEXTURE_ENCODIN 163 163 Void xCheckRDCostInter ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFMD, Bool bUseMRG = false ) ; 164 164 #else -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncGOP.cpp
r646 r647 917 917 918 918 // SAIT_VSO_EST_A0033 919 #if H_3D_FCO _E0163919 #if H_3D_FCO 920 920 Bool flagRec; 921 921 flagRec = ((m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false, pcSlice->getPOC(), true) == NULL) ? false: true); … … 1187 1187 pcPic->setNumDdvCandPics(pcPic->getDisCandRefPictures(iColPoc)); 1188 1188 } 1189 #endif 1189 1190 #if H_3D 1190 1191 pcSlice->setDepthToDisparityLUTs(); 1191 1192 1192 1193 #endif 1193 #endif 1194 #if MTK_NBDV_TN_FIX_E01721194 1195 #if H_3D_NBDV 1195 1196 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth() && !pcSlice->isIntra()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 1196 1197 { 1197 1198 pcPic->checkTemporalIVRef(); 1198 1199 } 1199 #endif 1200 #if MTK_TEXTURE_MRGCAND_BUGFIX_E0182 1200 1201 1201 if(pcSlice->getIsDepth()) 1202 1202 { … … 1930 1930 digestStr = digestToString(sei_recon_picture_digest.digest, 4); 1931 1931 } 1932 #if H_MV _FIX_LID_PIC_HASH_SEI_T401932 #if H_MV 1933 1933 OutputNALUnit nalu(NAL_UNIT_SUFFIX_SEI, pcSlice->getTLayer(), getLayerId() ); 1934 1934 #else -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSbac.cpp
r646 r647 1274 1274 case DMM4_IDX: codeIdx = 4; break; 1275 1275 case DMM3_IDX: codeIdx = 5; break; 1276 #if LGE_SDC_REMOVE_DC_E01581277 1276 case RBC_IDX: codeIdx = 6; break; 1278 #else1279 case RBC_IDX: codeIdx = 7; break;1280 #endif1281 1277 default: break; 1282 1278 } … … 1289 1285 { 1290 1286 case PLANAR_IDX: codeIdx = 0; break; 1291 #if !LGE_SDC_REMOVE_DC_E01581292 case DC_IDX: codeIdx = 6; break;1293 #endif1294 1287 default: codeIdx = 2; break; 1295 1288 } -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSearch.cpp
r646 r647 2843 2843 { 2844 2844 2845 #if SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX2845 #if H_3D_FAST_DEPTH_INTRA 2846 2846 Int threshold = max(((pcCU->getQP(0))>>3)-1,3); 2847 2847 Int varThreshold = (Int)( threshold * threshold - 8 ); … … 2851 2851 #if H_3D_DIM_DMM 2852 2852 if( m_pcEncCfg->getUseDMM() 2853 #if SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX2853 #if H_3D_FAST_DEPTH_INTRA 2854 2854 && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold) 2855 2855 #endif … … 2858 2858 for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ ) 2859 2859 { 2860 #if H_3D_FCO _E01632860 #if H_3D_FCO 2861 2861 TComPic* picTexture = pcCU->getSlice()->getIvPic(false, pcCU->getSlice()->getViewIndex() ); 2862 2862 if ( !picTexture->getReconMark() && (DMM3_IDX == dmmType || DMM4_IDX == dmmType ) ) … … 2878 2878 case( DMM3_IDX ): 2879 2879 { 2880 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 2880 2881 2881 TComPic* pcPicTex = pcCU->getSlice()->getTexturePic(); 2882 2882 TComDataCU* pcColTexCU = pcPicTex->getCU( pcCU->getAddr() ); … … 2886 2886 if( uiColTexIntraDir > DC_IDX && uiColTexIntraDir < 35 ) 2887 2887 { 2888 #endif 2889 UInt uiIntraTabIdx = 0; 2890 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 2888 UInt uiIntraTabIdx = 0; 2891 2889 xSearchDmm3Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx, uiIntraTabIdx, uiColTexIntraDir ); 2892 #else2893 xSearchDmm3Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx, uiIntraTabIdx );2894 #endif2895 2890 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dmmType, uiPartOffset, uiDepth + uiInitTrDepth ); 2896 2891 pcCU->setDmm3IntraTabIdxSubParts( uiIntraTabIdx, uiPartOffset, uiDepth + uiInitTrDepth ); 2897 2892 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 2898 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX2899 2893 } 2900 #endif2901 2894 } break; 2902 2895 case( DMM4_IDX ): … … 2927 2920 #if H_3D_DIM_RBC 2928 2921 if( m_pcEncCfg->getUseRBC() 2929 #if SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX2922 #if H_3D_FAST_DEPTH_INTRA 2930 2923 && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold) 2931 2924 #endif … … 3710 3703 */ 3711 3704 #if AMP_MRG 3712 #if MTK_FAST_TEXTURE_ENCODING_E01733705 #if H_3D_FAST_TEXTURE_ENCODIN 3713 3706 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bFMD, Bool bUseRes, Bool bUseMRG ) 3714 3707 #else … … 3822 3815 #if AMP_MRG 3823 3816 Bool bTestNormalMC = true; 3824 #if MTK_FAST_TEXTURE_ENCODING_E01733817 #if H_3D_FAST_TEXTURE_ENCODIN 3825 3818 if (bFMD||( bUseMRG && pcCU->getWidth( 0 ) > 8 && iNumPart == 2 )) 3826 3819 #else … … 7307 7300 } 7308 7301 7309 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX7310 7302 Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ) 7311 7303 { … … 7344 7336 cPredYuv.destroy(); 7345 7337 } 7346 #else 7347 Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx ) 7348 { 7349 ruiTabIdx = 0; 7350 ruiIntraTabIdx = 0; 7351 7352 // local pred buffer 7353 TComYuv cPredYuv; 7354 cPredYuv.create( uiWidth, uiHeight ); 7355 cPredYuv.clear(); 7356 Pel* piPred = cPredYuv.getLumaAddr(); 7357 UInt uiPredStride = cPredYuv.getStride(); 7358 7359 // wedge search 7360 UInt uiBestDist = MAX_UINT; 7361 WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])]; 7362 Pel refDC1 = 0; Pel refDC2 = 0; 7363 7364 TComPic* pcPicTex = pcCU->getSlice()->getTexturePic(); 7365 assert( pcPicTex != NULL ); 7366 TComDataCU* pcColTexCU = pcPicTex->getCU(pcCU->getAddr()); 7367 UInt uiTexPartIdx = pcCU->getZorderIdxInCU() + uiAbsPtIdx; 7368 Int uiColTexIntraDir = pcColTexCU->isIntra( uiTexPartIdx ) ? pcColTexCU->getLumaIntraDir( uiTexPartIdx ) : 255; 7369 7370 std::vector< std::vector<UInt> > pauiWdgLstSz = g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]]; 7371 if( uiColTexIntraDir > DC_IDX && uiColTexIntraDir < 35 ) 7372 { 7373 std::vector<UInt>* pauiWdgLst = &pauiWdgLstSz[uiColTexIntraDir-2]; 7374 for( UInt uiIdxW = 0; uiIdxW < pauiWdgLst->size(); uiIdxW++ ) 7375 { 7376 UInt uiIdx = pauiWdgLst->at(uiIdxW); 7377 TComWedgelet* pcWedgelet = &(pacWedgeList->at(uiIdx)); 7378 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 ); 7379 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 ); 7380 7381 UInt uiActDist = m_pcRdCost->getDistPart( g_bitDepthY, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, TEXT_LUMA, DF_SAD ); 7382 if( uiActDist < uiBestDist || uiBestDist == MAX_UINT ) 7383 { 7384 uiBestDist = uiActDist; 7385 ruiTabIdx = uiIdx; 7386 ruiIntraTabIdx = uiIdxW; 7387 } 7388 } 7389 } 7390 else 7391 { 7392 WedgeNodeList* pacWedgeNodeList = &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])]; 7393 UInt uiBestNodeDist = MAX_UINT; 7394 UInt uiBestNodeId = 0; 7395 for( UInt uiNodeId = 0; uiNodeId < pacWedgeNodeList->size(); uiNodeId++ ) 7396 { 7397 TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx())); 7398 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 ); 7399 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 ); 7400 7401 UInt uiActDist = m_pcRdCost->getDistPart( g_bitDepthY, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, TEXT_LUMA, DF_SAD ); 7402 if( uiActDist < uiBestNodeDist || uiBestNodeDist == MAX_UINT ) 7403 { 7404 uiBestNodeDist = uiActDist; 7405 uiBestNodeId = uiNodeId; 7406 ruiIntraTabIdx = uiNodeId; 7407 } 7408 } 7409 ruiTabIdx = pacWedgeNodeList->at(uiBestNodeId).getPatternIdx(); 7410 } 7411 7412 cPredYuv.destroy(); 7413 } 7414 #endif 7338 7415 7339 #endif 7416 7340 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSearch.h
r646 r647 196 196 TComYuv*& rpcResiYuv, 197 197 TComYuv*& rpcRecoYuv, 198 #if MTK_FAST_TEXTURE_ENCODING_E0173198 #if H_3D_FAST_TEXTURE_ENCODIN 199 199 Bool bFMD, 200 200 #endif … … 352 352 Void xSearchDmmDeltaDCs ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 ); 353 353 Void xSearchDmm1Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx ); 354 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX355 354 Void xSearchDmm3Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ); 356 #else357 Void xSearchDmm3Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx );358 #endif359 355 #endif 360 356 #if H_3D_DIM_RBC
Note: See TracChangeset for help on using the changeset viewer.