Changeset 629 in 3DVCSoftware for branches/HTM-8.2-dev0-MediaTek/source
- Timestamp:
- 23 Sep 2013, 08:46:50 (11 years ago)
- Location:
- branches/HTM-8.2-dev0-MediaTek/source
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-MediaTek/source/App/TAppEncoder/TAppEncCfg.cpp
r622 r629 1372 1372 xConfirmPara( allEqual , "Each layer shall have a different position in scalability space." ); 1373 1373 1374 #if !H_3D_FCO 1374 1375 if ( numDiff == 1 ) 1375 1376 { … … 1390 1391 #endif 1391 1392 } 1393 #endif 1392 1394 } 1393 1395 } -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp
r622 r629 3569 3569 UInt uiPartIdxCenter; 3570 3570 xDeriveCenterIdx( uiPUIdx, uiPartIdxCenter ); 3571 #if H_3D_FCO 3572 TComPic * pcTexturePic = m_pcSlice->getTexturePic(); 3573 TComDataCU *pcTextureCU = 0; 3574 if ( pcTexturePic ) 3575 pcTextureCU = pcTexturePic->getCU( getAddr() ); 3576 #else 3571 3577 TComDataCU *pcTextureCU = m_pcSlice->getTexturePic()->getCU( getAddr() ); 3578 #endif 3572 3579 3580 #if H_3D_FCO 3581 if ( pcTextureCU && pcTexturePic->getReconMark() && !pcTextureCU->isIntra( uiPartIdxCenter ) ) 3582 #else 3573 3583 if ( pcTextureCU && !pcTextureCU->isIntra( uiPartIdxCenter ) ) 3584 #endif 3574 3585 { 3575 3586 pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); … … 5562 5573 5563 5574 #if H_3D_NBDV_REF 5564 TComPic* picDepth = NULL; 5575 TComPic* picDepth = NULL; 5576 #if H_3D_FCO_VSP_DONBDV 5577 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 5578 if ( picDepth->getPicYuvRec() != NULL ) 5579 { 5580 cColMv.setZero(); 5581 } 5582 else // Go back with virtual depth 5583 { 5584 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 5585 } 5586 5587 assert(picDepth != NULL); 5588 #else 5565 5589 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 5566 5590 assert(picDepth != NULL); 5591 #endif 5567 5592 if (picDepth && bDepthRefine) 5568 5593 estimateDVFromDM(iTargetViewIdx, uiPartIdx, picDepth, uiPartAddr, &cColMv ); … … 5662 5687 pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ]; 5663 5688 #if H_3D_NBDV_REF 5689 #if H_3D_FCO_VSP_DONBDV 5690 TComPic* picDepth = NULL; 5691 5692 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 5693 if ( picDepth->getPicYuvRec() != NULL ) 5694 { 5695 cDispVec.setZero(); 5696 } 5697 else // Go back with virtual depth 5698 { 5699 picDepth = getSlice()->getIvPic( true, pDInfo->m_aVIdxCan ); 5700 } 5701 5702 assert(picDepth != NULL); 5703 #else 5664 5704 TComPic* picDepth = getSlice()->getIvPic( true, pDInfo->m_aVIdxCan ); 5665 5705 assert(picDepth!=NULL); 5706 #endif 5666 5707 5667 5708 if (picDepth && bDepthRefine) … … 5707 5748 #if H_3D_NBDV_REF 5708 5749 TComPic* picDepth = NULL; 5750 #if H_3D_FCO_VSP_DONBDV 5751 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 5752 if ( picDepth->getPicYuvRec() != NULL ) 5753 { 5754 defaultDV.setZero(); 5755 } 5756 else // Go back with virtual depth 5757 { 5758 picDepth = getSlice()->getIvPic( true, viewIndex ); 5759 } 5760 5761 assert(picDepth != NULL); 5762 #else 5709 5763 picDepth = getSlice()->getIvPic( true, viewIndex ); 5710 5764 assert(picDepth!=NULL); 5711 5765 #endif 5712 5766 if (picDepth && bDepthRefine) 5713 5767 { … … 5812 5866 TComPic* picDepth = NULL; 5813 5867 assert(getSlice()->getRefPic(eRefPicList, refId)->getPOC() == getSlice()->getPOC()); 5868 #if H_3D_FCO_VSP_DONBDV 5869 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 5870 if ( picDepth->getPicYuvRec() != NULL ) 5871 { 5872 cMvPred.setZero(); 5873 } 5874 else// Go back with virtual depth 5875 { 5876 picDepth = getSlice()->getIvPic (true, refViewIdx ); 5877 } 5878 assert(picDepth != NULL); 5879 #else 5814 5880 picDepth = getSlice()->getIvPic (true, refViewIdx ); 5815 5881 assert(picDepth != NULL); 5816 5882 #endif 5817 5883 UInt uiPartIdx = 0; //Notes from MTK: Please confirm that using 0 as partition index and partition address is correct for CU-level DoNBDV 5818 5884 UInt uiPartAddr = 0; //QC: confirmed -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibCommon/TComPic.cpp
r608 r629 118 118 memcpy(m_numReorderPics, numReorderPics, MAX_TLAYER*sizeof(Int)); 119 119 120 /* initialize the texture to depth reference status */ 121 #if H_3D_FCO 122 for (int j=0; j<2; j++) 123 { 124 for (int i=0; i<MAX_NUM_REF; i++) 125 { 126 m_aiTexToDepRef[j][i] = -1; 127 } 128 } 129 #endif 130 120 131 return; 121 132 } … … 722 733 TComSlice* pcCurrSlice = getSlice(getCurrSliceIdx()); 723 734 TComPic* pcTextPic = pcCurrSlice->getTexturePic(); 735 #if H_3D_FCO 736 if ( pcTextPic ) 737 { 738 #endif 739 724 740 TComSlice* pcTextSlice = pcTextPic->getSlice(0); // currently only support single slice 725 741 … … 743 759 744 760 } 761 #if H_3D_FCO 762 } 763 #endif 764 745 765 } 746 766 -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibCommon/TComPrediction.cpp
r622 r629 731 731 // Get depth reference 732 732 Int depthRefViewIdx = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan; 733 #if H_3D_FCO_VSP_DONBDV 734 TComPic* pRefPicBaseDepth = 0; 735 Bool bIsCurrDepthCoded = false; 736 pRefPicBaseDepth = pcCU->getSlice()->getIvPic( true, pcCU->getSlice()->getViewIndex() ); 737 if ( pRefPicBaseDepth->getPicYuvRec() != NULL ) 738 { 739 bIsCurrDepthCoded = true; 740 } 741 else 742 { 743 pRefPicBaseDepth = pcCU->getSlice()->getIvPic (true, depthRefViewIdx ); 744 } 745 #else 733 746 TComPic* pRefPicBaseDepth = pcCU->getSlice()->getIvPic (true, depthRefViewIdx ); 747 #endif 734 748 assert(pRefPicBaseDepth != NULL); 735 749 TComPicYuv* pcBaseViewDepthPicYuv = pRefPicBaseDepth->getPicYuvRec(); … … 751 765 TComMv cDv = pcCU->getDvInfo(uiPartAddr).m_acNBDV; 752 766 pcCU->clipMv(cDv); 767 768 #if H_3D_FCO_VSP_DONBDV 769 if ( bIsCurrDepthCoded ) 770 { 771 cDv.setZero(); 772 } 773 #endif 753 774 754 775 #if NTT_VSP_COMMON_E0207_E0208 -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibCommon/TypeDef.h
r622 r629 139 139 // FIX_SDC_ENC_RD_WVSO_D0163 140 140 // MTK_SAMPLE_BASED_SDC_D0110 141 141 #define H_3D_FCO 1 // Flexible coding order for 3D 142 142 143 143 … … 186 186 #define NTT_VSP_ADAPTIVE_SPLIT_E0207 1 // adaptive sub-PU partitioning in VSP, JCT3V-E0207 187 187 #endif 188 #endif 189 190 #if H_3D_FCO 191 #define H_3D_FCO_VSP_DONBDV 0 // Adaptive depth reference for flexible coding order 192 #else 193 #define H_3D_FCO_VSP_DONBDV 0 // Adaptive depth reference for flexible coding order 188 194 #endif 189 195 -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibDecoder/TDecTop.cpp
r622 r629 978 978 #if H_3D 979 979 pcSlice->setIvPicLists( m_ivPicLists ); 980 #if H_3D_IV_MERGE 980 #if H_3D_IV_MERGE 981 #if H_3D_FCO 982 //assert( !getIsDepth() ); 983 #else 981 984 assert( !getIsDepth() || ( pcSlice->getTexturePic() != 0 ) ); 985 #endif 982 986 #endif 983 987 #endif -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibEncoder/TEncGOP.cpp
r622 r629 913 913 914 914 // SAIT_VSO_EST_A0033 915 #if H_3D_FCO 916 Bool flagRec; 917 flagRec = ((m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false, pcSlice->getPOC(), true) == NULL) ? false: true); 918 pcRdCost->setVideoRecPicYuv( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false, pcSlice->getPOC(), flagRec ) ); 919 pcRdCost->setDepthPicYuv ( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), true, pcSlice->getPOC(), false ) ); 920 #else 915 921 pcRdCost->setVideoRecPicYuv( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false , pcSlice->getPOC(), true ) ); 916 922 pcRdCost->setDepthPicYuv ( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), true , pcSlice->getPOC(), false ) ); 923 #endif 917 924 918 925 // LGE_WVSO_A0119 -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibEncoder/TEncSearch.cpp
r622 r629 2866 2866 for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ ) 2867 2867 { 2868 #if H_3D_FCO 2869 TComPic* picTexture = pcCU->getSlice()->getIvPic(false, pcCU->getSlice()->getViewIndex() ); 2870 if ( !picTexture->getReconMark() && (DMM3_IDX == dmmType || DMM4_IDX == dmmType ) ) 2871 { 2872 continue; 2873 } 2874 #endif 2868 2875 UInt uiTabIdx = 0; 2869 2876 TComWedgelet* biSegmentation = NULL;
Note: See TracChangeset for help on using the changeset viewer.