Changeset 1222 in 3DVCSoftware for branches/HTM-14.1-update-dev4-RWTH/source
- Timestamp:
- 21 May 2015, 15:43:58 (10 years ago)
- Location:
- branches/HTM-14.1-update-dev4-RWTH/source/Lib
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/ContextTables.h
r1200 r1222 188 188 #define NUM_SDC_FLAG_CTX 1 ///< number of context 189 189 #endif 190 #if H_3D_DBBP190 #if NH_3D_DBBP 191 191 #define DBBP_NUM_FLAG_CTX 1 192 192 #endif … … 629 629 #endif 630 630 631 #if H_3D_DBBP631 #if NH_3D_DBBP 632 632 static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] = 633 633 { -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComDataCU.cpp
r1217 r1222 142 142 #if H_3D_INTER_SDC 143 143 #endif 144 #if H_3D_DBBP144 #if NH_3D_DBBP 145 145 m_pbDBBPFlag = NULL; 146 146 #endif … … 273 273 #endif 274 274 #endif 275 #if H_3D_DBBP275 #if NH_3D_DBBP 276 276 m_pbDBBPFlag = (Bool* )xMalloc(Bool, uiNumPartition); 277 277 #endif … … 493 493 #endif 494 494 #endif 495 #if H_3D_DBBP495 #if NH_3D_DBBP 496 496 if ( m_pbDBBPFlag ) { xFree(m_pbDBBPFlag); m_pbDBBPFlag = NULL; } 497 497 #endif … … 632 632 m_pbSDCFlag[ui] = pcFrom->m_pbSDCFlag[ui]; 633 633 #endif 634 #if H_3D_DBBP635 m_pbDBBPFlag[ui] = pcFrom->m_pbDBBPFlag[ui];634 #if NH_3D_DBBP 635 memset( m_pbDBBPFlag , false, m_uiNumPartition * sizeof( *m_pbDBBPFlag )); 636 636 #endif 637 637 #if H_3D … … 678 678 m_apDmmPredictor[0] = 0; 679 679 m_apDmmPredictor[1] = 0; 680 #endif681 #if H_3D_DBBP682 memset( m_pbDBBPFlag + firstElement, false, numElements * sizeof( *m_pbDBBPFlag ) );683 680 #endif 684 681 … … 840 837 m_apDmmPredictor[1] = 0; 841 838 #endif 842 #if H_3D_DBBP839 #if NH_3D_DBBP 843 840 m_pbDBBPFlag[ui] = false; 844 841 #endif … … 949 946 m_apDmmPredictor[1] = 0; 950 947 #endif 951 #if H_3D_DBBP952 memset( m_pbDBBPFlag, 0, iSizeInBool);948 #if NH_3D_DBBP 949 memset( m_pbDBBPFlag, 0, sizeof(Bool) * m_uiNumPartition ); 953 950 #endif 954 951 … … 1007 1004 #endif 1008 1005 #endif 1009 #if H_3D_DBBP1006 #if NH_3D_DBBP 1010 1007 m_pbDBBPFlag[ui]=pcCU->m_pbDBBPFlag[uiPartOffset+ui]; 1011 1008 #endif … … 1130 1127 #endif 1131 1128 #endif 1132 #if H_3D_DBBP1129 #if NH_3D_DBBP 1133 1130 m_pbDBBPFlag = pcCU->getDBBPFlag() + uiPart; 1134 1131 #endif … … 1251 1248 m_puhARPW = pcCU->getARPW() + uiAbsPartIdx; 1252 1249 #endif 1253 #if H_3D_DBBP1250 #if NH_3D_DBBP 1254 1251 m_pbDBBPFlag = pcCU->getDBBPFlag() + uiAbsPartIdx; 1255 1252 #endif … … 1337 1334 #endif 1338 1335 #endif 1339 #if H_3D_DBBP1336 #if NH_3D_DBBP 1340 1337 memcpy( m_pbDBBPFlag + uiOffset, pcCU->getDBBPFlag(), iSizeInBool ); 1341 1338 #endif … … 1465 1462 #endif 1466 1463 #endif 1467 #if H_3D_DBBP1468 memcpy( rpcCU->getDBBPFlag() + m_uiAbsIdxInLCU, m_pbDBBPFlag, iSizeInBool );1464 #if NH_3D_DBBP 1465 memcpy( pCtu->getDBBPFlag() + m_absZIdxInCtu, m_pbDBBPFlag, iSizeInBool ); 1469 1466 #endif 1470 1467 … … 1539 1536 memcpy( rpcCU->getSDCSegmentDCOffset(1) + uiPartOffset, m_apSegmentDCOffset[1], sizeof( Pel ) * uiQNumPart); 1540 1537 #endif 1541 #endif1542 #if H_3D_DBBP1543 memcpy( rpcCU->getDBBPFlag() + uiPartOffset, m_pbDBBPFlag, iSizeInBool );1544 1538 #endif 1545 1539 #if H_3D_ARP … … 2112 2106 } 2113 2107 #endif 2114 #if H_3D_DBBP2108 #if NH_3D_DBBP 2115 2109 Pel* TComDataCU::getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride) 2116 2110 { 2111 const TComSPS* sps = getSlice()->getSPS(); 2112 UInt uiMaxCUWidth = sps->getMaxCUWidth(); 2113 UInt uiMaxCUHeight = sps->getMaxCUHeight(); 2114 2117 2115 // get coded and reconstructed depth view 2118 2116 TComPicYuv* depthPicYuv = NULL; … … 2150 2148 depthPicYuv = baseDepthPic->getPicYuvRec(); 2151 2149 depthPicYuv->extendPicBorder(); 2152 uiDepthStride = depthPicYuv->getStride( );2150 uiDepthStride = depthPicYuv->getStride(COMPONENT_Y); 2153 2151 2154 Int iBlkX = ( get Addr() % baseDepthPic->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ getZorderIdxInCU()+uiAbsPartIdx ] ];2155 Int iBlkY = ( get Addr() / baseDepthPic->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ getZorderIdxInCU()+uiAbsPartIdx ] ];2152 Int iBlkX = ( getCtuRsAddr() % baseDepthPic->getFrameWidthInCtus() ) * uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ getZorderIdxInCtu()+uiAbsPartIdx ] ]; 2153 Int iBlkY = ( getCtuRsAddr() / baseDepthPic->getFrameWidthInCtus() ) * uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ getZorderIdxInCtu()+uiAbsPartIdx ] ]; 2156 2154 2157 Int iPictureWidth = depthPicYuv->getWidth( );2158 Int iPictureHeight = depthPicYuv->getHeight( );2155 Int iPictureWidth = depthPicYuv->getWidth(COMPONENT_Y); 2156 Int iPictureHeight = depthPicYuv->getHeight(COMPONENT_Y); 2159 2157 2160 2158 … … 2173 2171 Int depthPosY = Clip3(0, iPictureHeight - 1, iBlkY + ((cDv.getVer()+2)>>2)); 2174 2172 2175 pDepthPels = depthPicYuv->get LumaAddr() + depthPosX + depthPosY * uiDepthStride;2173 pDepthPels = depthPicYuv->getAddr(COMPONENT_Y) + depthPosX + depthPosY * uiDepthStride; 2176 2174 } 2177 2175 #endif … … 2185 2183 #endif 2186 2184 2187 #if H_3D_DBBP2185 #if NH_3D_DBBP 2188 2186 Void TComDataCU::setDBBPFlagSubParts ( Bool bDBBPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2189 2187 { … … 3705 3703 Bool bARPFlag = getARPW(uiAbsPartIdx) > 0; 3706 3704 #endif 3707 #if H_3D_DBBP3705 #if NH_3D_DBBP 3708 3706 Bool bDBBPFlag = getDBBPFlag(uiAbsPartIdx); 3709 3707 assert(bDBBPFlag == getDBBPFlag(0)); … … 3743 3741 && !bARPFlag 3744 3742 #endif 3745 #if H_3D_DBBP3743 #if NH_3D_DBBP 3746 3744 && !bDBBPFlag 3747 3745 #endif … … 4055 4053 spiMvpFlag = true; 4056 4054 } 4057 #if H_3D_DBBP4055 #if NH_3D_DBBP 4058 4056 spiMvpFlag &= !bDBBPFlag; 4059 4057 #endif … … 4194 4192 (nPSW + nPSH > 12) && 4195 4193 #endif 4196 #if H_3D_DBBP4194 #if NH_3D_DBBP 4197 4195 !bDBBPFlag && 4198 4196 #endif … … 5126 5124 UInt partAddr; 5127 5125 5128 #if H_3D_DBBP5126 #if NH_3D_DBBP 5129 5127 if( getDBBPFlag(0) ) 5130 5128 { -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComDataCU.h
r1217 r1222 65 65 static const UInt NUM_MOST_PROBABLE_MODES=3; 66 66 67 #if H_3D_DBBP67 #if NH_3D_DBBP 68 68 typedef struct _DBBPTmpData 69 69 { … … 193 193 #endif 194 194 #endif 195 #if H_3D_DBBP195 #if NH_3D_DBBP 196 196 Bool* m_pbDBBPFlag; ///< array of DBBP flags 197 197 DbbpTmpData m_sDBBPTmpData; … … 329 329 Void setCUTransquantBypassSubParts( Bool flag, UInt uiAbsPartIdx, UInt uiDepth ); 330 330 331 #if H_3D_DBBP331 #if NH_3D_DBBP 332 332 Pel* getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride); 333 333 #endif … … 353 353 Void setPredModeSubParts ( PredMode eMode, UInt uiAbsPartIdx, UInt uiDepth ); 354 354 355 #if H_3D_DBBP355 #if NH_3D_DBBP 356 356 Bool* getDBBPFlag () { return m_pbDBBPFlag; } 357 357 Bool getDBBPFlag ( UInt uiIdx ) { return m_pbDBBPFlag[uiIdx]; } -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComPrediction.cpp
r1210 r1222 747 747 #endif 748 748 749 #if H_3D_DBBP749 #if NH_3D_DBBP 750 750 PartSize TComPrediction::getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU) 751 751 { 752 const TComSPS* sps = pcCU->getSlice()->getSPS(); 753 UInt uiMaxCUWidth = sps->getMaxCUWidth(); 754 UInt uiMaxCUHeight = sps->getMaxCUHeight(); 755 752 756 // find virtual partitioning for this CU based on depth block 753 757 // segmentation of texture block --> mask IDs … … 757 761 Int iSumDepth = 0; 758 762 Int iSubSample = 4; 759 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth( );760 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight( );763 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(COMPONENT_Y); 764 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(COMPONENT_Y); 761 765 TComMv cDv = pcCU->getSlice()->getDepthRefinementFlag( ) ? pcCU->getDvInfo(0).m_acDoNBDV : pcCU->getDvInfo(0).m_acNBDV; 762 766 if( pcCU->getSlice()->getDepthRefinementFlag( ) ) … … 764 768 cDv.setVer(0); 765 769 } 766 Int iBlkX = ( pcCU->get Addr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getHor()+2)>>2);767 Int iBlkY = ( pcCU->get Addr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getVer()+2)>>2);770 Int iBlkX = ( pcCU->getCtuRsAddr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getHor()+2)>>2); 771 Int iBlkY = ( pcCU->getCtuRsAddr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getVer()+2)>>2); 768 772 769 773 UInt t=0; … … 852 856 } 853 857 854 PartSize matchedPartSize = SIZE_NONE;858 PartSize matchedPartSize = NUMBER_OF_PART_SIZES; 855 859 856 860 Int iMaxMatchSum = 0; … … 867 871 } 868 872 869 AOF( matchedPartSize != SIZE_NONE);873 AOF( matchedPartSize != NUMBER_OF_PART_SIZES ); 870 874 871 875 return matchedPartSize; … … 874 878 Bool TComPrediction::getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU) 875 879 { 880 const TComSPS* sps = pcCU->getSlice()->getSPS(); 881 UInt uiMaxCUWidth = sps->getMaxCUWidth(); 882 UInt uiMaxCUHeight = sps->getMaxCUHeight(); 883 876 884 // segmentation of texture block --> mask IDs 877 885 Pel* pDepthBlockStart = pDepthPels; … … 885 893 iSumDepth = pDepthPels[ 0 ]; 886 894 887 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth( );888 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight( );895 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(COMPONENT_Y); 896 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(COMPONENT_Y); 889 897 TComMv cDv = pcCU->getSlice()->getDepthRefinementFlag( ) ? pcCU->getDvInfo(0).m_acDoNBDV : pcCU->getDvInfo(0).m_acNBDV; 890 898 if( pcCU->getSlice()->getDepthRefinementFlag( ) ) … … 892 900 cDv.setVer(0); 893 901 } 894 Int iBlkX = ( pcCU->get Addr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getHor()+2)>>2);895 Int iBlkY = ( pcCU->get Addr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getVer()+2)>>2);902 Int iBlkX = ( pcCU->getCtuRsAddr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getHor()+2)>>2); 903 Int iBlkY = ( pcCU->getCtuRsAddr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getVer()+2)>>2); 896 904 if (iBlkX>(Int)(iPictureWidth - uiWidth)) 897 905 { … … 1008 1016 } 1009 1017 1010 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize )1011 { 1012 Pel* piSrc[2] = {pInYuv[0]->get LumaAddr(uiPartAddr), pInYuv[1]->getLumaAddr(uiPartAddr)};1013 UInt uiSrcStride = pInYuv[0]->getStride( );1014 Pel* piDst = pOutYuv->get LumaAddr(uiPartAddr);1015 UInt uiDstStride = pOutYuv->getStride( );1018 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize, Int bitDepthY ) 1019 { 1020 Pel* piSrc[2] = {pInYuv[0]->getAddr(COMPONENT_Y, uiPartAddr), pInYuv[1]->getAddr(COMPONENT_Y, uiPartAddr)}; 1021 UInt uiSrcStride = pInYuv[0]->getStride(COMPONENT_Y); 1022 Pel* piDst = pOutYuv->getAddr(COMPONENT_Y, uiPartAddr); 1023 UInt uiDstStride = pOutYuv->getStride(COMPONENT_Y); 1016 1024 1017 1025 UInt uiMaskStride= MAX_CU_SIZE; … … 1052 1060 right = (x==uiWidth-1) ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x+1]; 1053 1061 1054 piDst[x] = (l!=r) ? Clip Y( Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 )) : tmpTar[y*uiWidth+x];1062 piDst[x] = (l!=r) ? ClipBD( Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 ), bitDepthY) : tmpTar[y*uiWidth+x]; 1055 1063 } 1056 1064 piDst += uiDstStride; … … 1070 1078 bottom = (y==uiHeight-1) ? tmpTar[y*uiWidth+x] : tmpTar[(y+1)*uiWidth+x]; 1071 1079 1072 piDst[x] = (t!=b) ? Clip Y( Pel(( top + (tmpTar[y*uiWidth+x] << 1) + bottom ) >> 2 )) : tmpTar[y*uiWidth+x];1080 piDst[x] = (t!=b) ? ClipBD( Pel(( top + (tmpTar[y*uiWidth+x] << 1) + bottom ) >> 2 ), bitDepthY) : tmpTar[y*uiWidth+x]; 1073 1081 } 1074 1082 piDst += uiDstStride; … … 1083 1091 1084 1092 // now combine chroma 1085 Pel* piSrcU[2] = { pInYuv[0]->get CbAddr(uiPartAddr), pInYuv[1]->getCbAddr(uiPartAddr) };1086 Pel* piSrcV[2] = { pInYuv[0]->get CrAddr(uiPartAddr), pInYuv[1]->getCrAddr(uiPartAddr) };1087 UInt uiSrcStrideC = pInYuv[0]->get CStride();1088 Pel* piDstU = pOutYuv->get CbAddr(uiPartAddr);1089 Pel* piDstV = pOutYuv->get CrAddr(uiPartAddr);1090 UInt uiDstStrideC = pOutYuv->get CStride();1093 Pel* piSrcU[2] = { pInYuv[0]->getAddr(COMPONENT_Cb, uiPartAddr), pInYuv[1]->getAddr(COMPONENT_Cb, uiPartAddr) }; 1094 Pel* piSrcV[2] = { pInYuv[0]->getAddr(COMPONENT_Cr, uiPartAddr), pInYuv[1]->getAddr(COMPONENT_Cr, uiPartAddr) }; 1095 UInt uiSrcStrideC = pInYuv[0]->getStride(COMPONENT_Cb); 1096 Pel* piDstU = pOutYuv->getAddr(COMPONENT_Cb, uiPartAddr); 1097 Pel* piDstV = pOutYuv->getAddr(COMPONENT_Cr, uiPartAddr); 1098 UInt uiDstStrideC = pOutYuv->getStride(COMPONENT_Cb); 1091 1099 UInt uiWidthC = uiWidth >> 1; 1092 1100 UInt uiHeightC = uiHeight >> 1; … … 1134 1142 if (l!=r) 1135 1143 { 1136 filSrcU = Clip C( Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 ));1137 filSrcV = Clip C( Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 ));1144 filSrcU = ClipBD( Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 ), bitDepthY); 1145 filSrcV = ClipBD( Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 ), bitDepthY); 1138 1146 } 1139 1147 else … … 1167 1175 if (t!=b) 1168 1176 { 1169 filSrcU = Clip C( Pel(( topU + (tmpTarU[y*uiWidthC+x] << 1) + bottomU ) >> 2 ));1170 filSrcV = Clip C( Pel(( topV + (tmpTarV[y*uiWidthC+x] << 1) + bottomV ) >> 2 ));1177 filSrcU = ClipBD( Pel(( topU + (tmpTarU[y*uiWidthC+x] << 1) + bottomU ) >> 2 ), bitDepthY); 1178 filSrcV = ClipBD( Pel(( topV + (tmpTarV[y*uiWidthC+x] << 1) + bottomV ) >> 2 ), bitDepthY); 1171 1179 } 1172 1180 else -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComPrediction.h
r1200 r1222 187 187 #endif 188 188 189 #if H_3D_DBBP189 #if NH_3D_DBBP 190 190 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU); 191 191 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU); 192 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize );192 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize, Int bitDepthY ); 193 193 #endif 194 194 -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComRdCost.cpp
r1200 r1222 311 311 m_bUseEstimatedVSD = false; 312 312 #endif 313 #if H_3D_DBBP313 #if NH_3D_DBBP 314 314 m_bUseMask = false; 315 315 #endif … … 340 340 rcDistParam.DistFunc = m_afpDistortFunc[eDFunc + g_aucConvertToBit[ rcDistParam.iCols ] + 1 ]; 341 341 342 #if H_3D_DBBP342 #if NH_3D_DBBP 343 343 if( m_bUseMask ) 344 344 { … … 397 397 } 398 398 399 #if H_3D_DBBP399 #if NH_3D_DBBP 400 400 if( m_bUseMask ) 401 401 { … … 446 446 } 447 447 448 #if H_3D_DBBP448 #if NH_3D_DBBP 449 449 if( m_bUseMask ) 450 450 { … … 468 468 rcDP.bitDepth = bitDepth; 469 469 rcDP.DistFunc = m_afpDistortFunc[ ( bHadamard ? DF_HADS : DF_SADS ) + g_aucConvertToBit[ iWidth ] + 1 ]; 470 #if H_3D_DBBP470 #if NH_3D_DBBP 471 471 if( m_bUseMask ) 472 472 { … … 649 649 // ==================================================================================================================== 650 650 651 #if H_3D_DBBP651 #if NH_3D_DBBP 652 652 // -------------------------------------------------------------------------------------------------------------------- 653 653 // Masked distortion functions -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComRdCost.h
r1200 r1222 167 167 #endif 168 168 Int m_iCostScale; 169 #if H_3D_DBBP169 #if NH_3D_DBBP 170 170 Bool m_bUseMask; 171 171 #endif … … 206 206 Void setDistParam( DistParam& rcDP, Int bitDepth, Pel* p1, Int iStride1, Pel* p2, Int iStride2, Int iWidth, Int iHeight, Bool bHadamard = false ); 207 207 208 #if H_3D_DBBP208 #if NH_3D_DBBP 209 209 Void setUseMask(Bool b) { m_bUseMask = b; } 210 210 #endif … … 302 302 static Distortion xCalcHADs4x4 ( Pel *piOrg, Pel *piCurr, Int iStrideOrg, Int iStrideCur, Int iStep ); 303 303 static Distortion xCalcHADs8x8 ( Pel *piOrg, Pel *piCurr, Int iStrideOrg, Int iStrideCur, Int iStep ); 304 #if H_3D_DBBP304 #if NH_3D_DBBP 305 305 static UInt xGetMaskedSSE ( DistParam* pcDtParam ); 306 306 static UInt xGetMaskedSAD ( DistParam* pcDtParam ); -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TypeDef.h
r1217 r1222 71 71 #define NH_3D_NBDV 1 72 72 #define NH_3D_NBDV_REF 1 73 74 #define NH_3D_DBBP 1 73 75 #endif 74 76 … … 328 330 #endif 329 331 ///// ***** DEPTH BASED BLOCK PARTITIONING ********* 330 #if H_3D_DBBP332 #if NH_3D_DBBP 331 333 #define DBBP_INVALID_SHORT (-4) 332 334 #define DBBP_PACK_MODE SIZE_2NxN -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1200 r1222 3400 3400 3401 3401 #endif 3402 #if H_3D_DBBP3402 #if NH_3D_DBBP 3403 3403 Void TDecCavlc::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 3404 3404 { -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCAVLC.h
r1200 r1222 127 127 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 128 128 #endif 129 #if H_3D_DBBP129 #if NH_3D_DBBP 130 130 Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 131 131 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCu.cpp
r1217 r1222 52 52 m_ppcYuvReco = NULL; 53 53 m_ppcCU = NULL; 54 #if H_3D_DBBP54 #if NH_3D_DBBP 55 55 m_ppcYuvRecoDBBP = NULL; 56 56 #endif … … 81 81 m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1]; 82 82 m_ppcCU = new TComDataCU*[m_uiMaxDepth-1]; 83 #if H_3D_DBBP83 #if NH_3D_DBBP 84 84 m_ppcYuvRecoDBBP = new TComYuv*[m_uiMaxDepth-1]; 85 85 #endif … … 95 95 m_ppcYuvReco[ui] = new TComYuv; m_ppcYuvReco[ui]->create( uiWidth, uiHeight, chromaFormatIDC ); 96 96 m_ppcCU [ui] = new TComDataCU; m_ppcCU [ui]->create( chromaFormatIDC, uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) ); 97 #if H_3D_DBBP98 m_ppcYuvRecoDBBP[ui] = new TComYuv; m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight );97 #if NH_3D_DBBP 98 m_ppcYuvRecoDBBP[ui] = new TComYuv; m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight, chromaFormatIDC ); 99 99 #endif 100 100 } … … 119 119 m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL; 120 120 m_ppcCU [ui]->destroy(); delete m_ppcCU [ui]; m_ppcCU [ui] = NULL; 121 #if H_3D_DBBP121 #if NH_3D_DBBP 122 122 m_ppcYuvRecoDBBP[ui]->destroy(); delete m_ppcYuvRecoDBBP[ui]; m_ppcYuvRecoDBBP[ui] = NULL; 123 123 #endif … … 127 127 delete [] m_ppcYuvReco; m_ppcYuvReco = NULL; 128 128 delete [] m_ppcCU ; m_ppcCU = NULL; 129 #if H_3D_DBBP129 #if NH_3D_DBBP 130 130 delete [] m_ppcYuvRecoDBBP; m_ppcYuvRecoDBBP = NULL; 131 131 #endif … … 616 616 { 617 617 case MODE_INTER: 618 #if H_3D_DBBP618 #if NH_3D_DBBP 619 619 if( m_ppcCU[uiDepth]->getDBBPFlag(0) ) 620 620 { … … 636 636 } 637 637 #endif 638 #if H_3D_DBBP638 #if NH_3D_DBBP 639 639 } 640 640 #endif … … 844 844 #endif 845 845 846 #if H_3D_DBBP846 #if NH_3D_DBBP 847 847 Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 848 848 { … … 850 850 AOF(!pcCU->getSlice()->isIntra()); 851 851 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 852 853 Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 852 854 853 855 // get collocated depth block … … 870 872 871 873 // first, extract the two sets of motion parameters 872 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMax CUDepth() - uiDepth ) << 1 ) ) >> 4;874 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 873 875 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 874 876 { … … 883 885 } 884 886 887 #if H_3D 885 888 AOF( pcCU->getARPW(uiPartAddr) == 0 ); 886 889 AOF( pcCU->getICFlag(uiPartAddr) == false ); 887 890 AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false ); 888 891 AOF( pcCU->getVSPFlag(uiPartAddr) == 0 ); 892 #endif 889 893 } 890 894 … … 926 930 927 931 // reconstruct final prediction signal by combining both segments 928 m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize );932 m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize, bitDepthY); 929 933 930 934 // inter recon 931 xDecodeInterTexture( pcCU, 0,uiDepth );935 xDecodeInterTexture( pcCU, uiDepth ); 932 936 933 937 // clip for only non-zero cbp case 934 if ( ( pcCU->getCbf( 0, TEXT_LUMA ) ) || ( pcCU->getCbf( 0, TEXT_CHROMA_U ) ) || ( pcCU->getCbf(0, TEXT_CHROMA_V) ) )935 { 936 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );938 if ( ( pcCU->getCbf( 0, COMPONENT_Y ) ) || ( pcCU->getCbf( 0, COMPONENT_Cb ) ) || ( pcCU->getCbf(0, COMPONENT_Cr ) ) ) 939 { 940 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() ); 937 941 } 938 942 else -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCu.h
r1200 r1222 62 62 TComDataCU** m_ppcCU; ///< CU data array 63 63 64 #if H_3D_DBBP64 #if NH_3D_DBBP 65 65 TComYuv** m_ppcYuvRecoDBBP; 66 66 #endif … … 102 102 Void xReconInter ( TComDataCU* pcCU, UInt uiDepth ); 103 103 104 #if H_3D_DBBP104 #if NH_3D_DBBP 105 105 Void xReconInterDBBP ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 106 106 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp
r1200 r1222 181 181 { 182 182 decodePUWise( pcCU, uiAbsPartIdx, uiDepth, pcSubCU ); 183 184 decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 183 185 } 184 186 } … … 292 294 293 295 ////// Parse CUs extension syntax 294 decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth );295 296 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 296 297 … … 308 309 { 309 310 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 310 #if H_3D_DBBP311 #if NH_3D_DBBP 311 312 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false ) 312 313 #else … … 395 396 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 396 397 #if H_3D_VSP 397 #if H_3D_DBBP398 #if NH_3D_DBBP 398 399 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) ) 399 400 #else … … 1060 1061 } 1061 1062 #endif 1062 #if H_3D_DBBP1063 #if NH_3D_DBBP 1063 1064 Void TDecEntropy::decodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 1064 1065 { -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecEntropy.h
r1200 r1222 95 95 virtual Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 96 96 #endif 97 #if H_3D_DBBP97 #if NH_3D_DBBP 98 98 virtual Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 99 99 #endif … … 183 183 Void decodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 184 184 #endif 185 #if H_3D_DBBP185 #if NH_3D_DBBP 186 186 Void decodeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 187 187 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp
r1200 r1222 119 119 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 120 120 #endif 121 #if H_3D_DBBP121 #if NH_3D_DBBP 122 122 , m_cDBBPFlagSCModel ( 1, 1, DBBP_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 123 123 #endif … … 210 210 m_cSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_FLAG ); 211 211 #endif 212 #if H_3D_DBBP212 #if NH_3D_DBBP 213 213 m_cDBBPFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DBBP_FLAG ); 214 214 #endif … … 259 259 #if H_3D_DIM_SDC 260 260 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 261 #endif262 #if H_3D_DBBP263 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );264 261 #endif 265 262 … … 2541 2538 #endif 2542 2539 2543 #if H_3D_DBBP2540 #if NH_3D_DBBP 2544 2541 Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2545 2542 { … … 2553 2550 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2554 2551 AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N ); 2555 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMax CUDepth() - uiDepth ) << 1 ) ) >> 4;2552 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 2556 2553 pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth); 2557 2554 pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth); -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecSbac.h
r1200 r1222 121 121 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 122 122 #endif 123 #if H_3D_DBBP123 #if NH_3D_DBBP 124 124 Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 125 125 #endif … … 240 240 ContextModel3DBuffer m_cSDCFlagSCModel; 241 241 #endif 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 ContextModel3DBuffer m_cDBBPFlagSCModel; 244 244 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCavlc.cpp
r1200 r1222 2901 2901 #endif 2902 2902 2903 #if H_3D_DBBP2903 #if NH_3D_DBBP 2904 2904 Void TEncCavlc::codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2905 2905 { -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCavlc.h
r1200 r1222 136 136 Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 137 137 #endif 138 #if H_3D_DBBP138 #if NH_3D_DBBP 139 139 Void codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 140 140 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCu.cpp
r1217 r1222 79 79 m_ppcRecoYuvTemp = new TComYuv*[m_uhTotalDepth-1]; 80 80 m_ppcOrigYuv = new TComYuv*[m_uhTotalDepth-1]; 81 #if H_3D_DBBP81 #if NH_3D_DBBP 82 82 m_ppcOrigYuvDBBP = new TComYuv*[m_uhTotalDepth-1]; 83 83 #endif … … 105 105 106 106 m_ppcOrigYuv [i] = new TComYuv; m_ppcOrigYuv [i]->create(uiWidth, uiHeight, chromaFormat); 107 #if H_3D_DBBP108 m_ppcOrigYuvDBBP[i] = new TComYuv; m_ppcOrigYuvDBBP[i]->create(uiWidth, uiHeight );107 #if NH_3D_DBBP 108 m_ppcOrigYuvDBBP[i] = new TComYuv; m_ppcOrigYuvDBBP[i]->create(uiWidth, uiHeight, chromaFormat); 109 109 #endif 110 110 … … 180 180 m_ppcOrigYuv[i]->destroy(); delete m_ppcOrigYuv[i]; m_ppcOrigYuv[i] = NULL; 181 181 } 182 #if H_3D_DBBP182 #if NH_3D_DBBP 183 183 if(m_ppcOrigYuvDBBP[i]) 184 184 { … … 240 240 m_ppcOrigYuv = NULL; 241 241 } 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 if(m_ppcOrigYuvDBBP) 244 244 { … … 693 693 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 694 694 #endif 695 #if H_3D_DBBP695 #if NH_3D_DBBP 696 696 if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 697 697 { … … 1611 1611 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1612 1612 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1613 #if H_3D1613 #if NH_3D_DBBP 1614 1614 m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx ); 1615 1615 #endif … … 2384 2384 } 2385 2385 2386 #if H_3D_DBBP2386 #if NH_3D_DBBP 2387 2387 Void TEncCu::xInvalidateOriginalSegments( TComYuv* pOrigYuv, TComYuv* pOrigYuvTemp, Bool* pMask, UInt uiValidSegment ) 2388 2388 { 2389 UInt uiWidth = pOrigYuv->getWidth ( 2390 UInt uiHeight = pOrigYuv->getHeight( 2391 Pel* piSrc = pOrigYuv->get LumaAddr();2392 UInt uiSrcStride = pOrigYuv->getStride( );2393 Pel* piDst = pOrigYuvTemp->get LumaAddr();2394 UInt uiDstStride = pOrigYuvTemp->getStride( );2389 UInt uiWidth = pOrigYuv->getWidth (COMPONENT_Y); 2390 UInt uiHeight = pOrigYuv->getHeight(COMPONENT_Y); 2391 Pel* piSrc = pOrigYuv->getAddr(COMPONENT_Y); 2392 UInt uiSrcStride = pOrigYuv->getStride(COMPONENT_Y); 2393 Pel* piDst = pOrigYuvTemp->getAddr(COMPONENT_Y); 2394 UInt uiDstStride = pOrigYuvTemp->getStride(COMPONENT_Y); 2395 2395 2396 2396 UInt uiMaskStride= MAX_CU_SIZE; … … 2417 2417 2418 2418 // now invalidate chroma 2419 Pel* piSrcU = pOrigYuv->get CbAddr();2420 Pel* piSrcV = pOrigYuv->get CrAddr();2421 UInt uiSrcStrideC = pOrigYuv->get CStride();2422 Pel* piDstU = pOrigYuvTemp->get CbAddr();2423 Pel* piDstV = pOrigYuvTemp->get CrAddr();2424 UInt uiDstStrideC = pOrigYuvTemp->get CStride();2419 Pel* piSrcU = pOrigYuv->getAddr(COMPONENT_Cb); 2420 Pel* piSrcV = pOrigYuv->getAddr(COMPONENT_Cr); 2421 UInt uiSrcStrideC = pOrigYuv->getStride(COMPONENT_Cb); 2422 Pel* piDstU = pOrigYuvTemp->getAddr(COMPONENT_Cb); 2423 Pel* piDstV = pOrigYuvTemp->getAddr(COMPONENT_Cr); 2424 UInt uiDstStrideC = pOrigYuvTemp->getStride(COMPONENT_Cb); 2425 2425 pMask = pMaskStart; 2426 2426 … … 2443 2443 } 2444 2444 } 2445 2445 #endif 2446 2447 #if H_3D_DIS 2446 2448 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2447 2449 { … … 2517 2519 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2518 2520 } 2519 2521 #endif 2522 2523 #if NH_3D_DBBP 2520 2524 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) 2521 2525 { … … 2539 2543 AOF( uiWidth == uiHeight ); 2540 2544 2541 #if H_3D_DBBP2545 #if NH_3D_DBBP 2542 2546 // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode 2543 2547 if(uiWidth <= 8) … … 2591 2595 rpcTempCU->getDBBPTmpData()->eVirtualPartSize = eVirtualPartSize; 2592 2596 rpcTempCU->getDBBPTmpData()->uiVirtualPartIndex = uiSegment; 2593 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, false, bUseMRG ); 2597 2598 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, bUseMRG ); 2594 2599 m_pcRdCost->setUseMask(false); 2595 2600 … … 2599 2604 pDBBPTmpData->abMergeFlag[uiSegment] = rpcTempCU->getMergeFlag(0); 2600 2605 pDBBPTmpData->auhMergeIndex[uiSegment] = rpcTempCU->getMergeIndex(0); 2601 2606 2607 #if NH_3D_VSP 2602 2608 AOF( rpcTempCU->getSPIVMPFlag(0) == false ); 2603 2609 AOF( rpcTempCU->getVSPFlag(0) == 0 ); 2610 #endif 2604 2611 2605 2612 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 2620 2627 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2621 2628 2622 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMax CUDepth() - uhDepth ) << 1 ) ) >> 4;2629 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uhDepth ) << 1 ) ) >> 4; 2623 2630 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 2624 2631 { … … 2646 2653 2647 2654 // reconstruct final prediction signal by combining both segments 2648 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize); 2655 Int bitDepthY = rpcTempCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 2656 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize, bitDepthY); 2649 2657 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 2650 2658 -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCu.h
r1200 r1222 82 82 TComYuv** m_ppcOrigYuv; ///< Original Yuv for each depth 83 83 84 #if H_3D_DBBP84 #if NH_3D_DBBP 85 85 TComYuv** m_ppcOrigYuvDBBP; 86 86 #endif … … 155 155 Void xCheckRDCostInter ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 156 156 #endif 157 #if H_3D_DBBP157 #if NH_3D_DBBP 158 158 Void xInvalidateOriginalSegments( TComYuv* pOrigYuv, TComYuv* pOrigYuvTemp, Bool* pMask, UInt uiValidSegment ); 159 159 Void xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false ); -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncEntropy.cpp
r1200 r1222 870 870 871 871 #endif 872 #if H_3D_DBBP872 #if NH_3D_DBBP 873 873 Void TEncEntropy::encodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 874 874 { 875 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && 875 if( bRD ) 876 { 877 uiAbsPartIdx = 0; 878 } 879 880 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && 876 881 ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || 877 882 pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && … … 879 884 pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 880 885 { 881 if( bRD )882 {883 uiAbsPartIdx = 0;884 }885 886 m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx ); 886 887 } -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncEntropy.h
r1200 r1222 94 94 virtual Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 95 95 #endif 96 #if H_3D_DBBP96 #if NH_3D_DBBP 97 97 virtual Void codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 98 98 #endif … … 183 183 Void encodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 184 184 #endif 185 #if H_3D_DBBP185 #if NH_3D_DBBP 186 186 Void encodeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 187 187 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp
r1200 r1222 114 114 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 115 115 #endif 116 #if H_3D_DBBP116 #if NH_3D_DBBP 117 117 , m_cDBBPFlagSCModel ( 1, 1, DBBP_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 118 118 #endif … … 194 194 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 195 195 #endif 196 #if H_3D_DBBP196 #if NH_3D_DBBP 197 197 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG ); 198 198 #endif … … 244 244 curCost += m_cSDCFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SDC_FLAG ); 245 245 #endif 246 #if H_3D_DBBP246 #if NH_3D_DBBP 247 247 curCost += m_cDBBPFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DBBP_FLAG ); 248 248 #endif … … 321 321 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 322 322 #endif 323 #if H_3D_DBBP324 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );325 #endif326 323 327 324 … … 2650 2647 #endif 2651 2648 2652 #if H_3D_DBBP2649 #if NH_3D_DBBP 2653 2650 Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2654 2651 { -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncSbac.h
r1200 r1222 150 150 Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 151 151 #endif 152 #if H_3D_DBBP152 #if NH_3D_DBBP 153 153 Void codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 154 154 #endif … … 262 262 ContextModel3DBuffer m_cSDCFlagSCModel; 263 263 #endif 264 #if H_3D_DBBP264 #if NH_3D_DBBP 265 265 ContextModel3DBuffer m_cDBBPFlagSCModel; 266 266 #endif -
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp
r1200 r1222 3884 3884 UInt uiDepth = pcCU->getDepth( uiAbsPartIdx ); 3885 3885 3886 #if H_3D_DBBP3886 #if NH_3D_DBBP 3887 3887 DbbpTmpData* pDBBPTmpData = pcCU->getDBBPTmpData(); 3888 3888 if( pcCU->getDBBPFlag(0) ) … … 3891 3891 AOF( iPUIdx == 0 ); 3892 3892 AOF( pcCU->getPartitionSize(0) == SIZE_2Nx2N ); 3893 AOF( pDBBPTmpData->eVirtualPartSize != SIZE_NONE);3893 AOF( pDBBPTmpData->eVirtualPartSize != NUMBER_OF_PART_SIZES ); 3894 3894 3895 3895 // temporary change of partition size for candidate derivation … … 3916 3916 3917 3917 PartSize partSize = pcCU->getPartitionSize( 0 ); 3918 #if H_3D_DBBP3918 #if NH_3D_DBBP 3919 3919 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && partSize != SIZE_2Nx2N && pcCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(0) == false ) 3920 3920 #else … … 3978 3978 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 3979 3979 3980 #if H_3D_DBBP3980 #if NH_3D_DBBP 3981 3981 if( pcCU->getDBBPFlag(0) ) 3982 3982 { … … 4025 4025 #endif 4026 4026 #if H_3D_VSP 4027 #if H_3D_DBBP4027 #if NH_3D_DBBP 4028 4028 if ( vspFlag[uiMergeCand] && !pcCU->getDBBPFlag(0) ) 4029 4029 #else … … 4550 4550 } // end if bTestNormalMC 4551 4551 #endif 4552 #if H_3D_DBBP4552 #if NH_3D_DBBP 4553 4553 // test merge mode for DBBP (2Nx2N) 4554 4554 if ( pcCU->getPartitionSize( uiPartAddr ) != SIZE_2Nx2N || pcCU->getDBBPFlag(0) ) … … 4649 4649 #endif 4650 4650 #if H_3D_VSP 4651 #if H_3D_DBBP4651 #if NH_3D_DBBP 4652 4652 if ( vspFlag[uiMRGIndex] && !pcCU->getDBBPFlag(uiPartAddr) ) 4653 4653 #else … … 4747 4747 { 4748 4748 4749 #if H_3D_DBBP4749 #if NH_3D_DBBP 4750 4750 DbbpTmpData* pDBBPTmpData = pcCU->getDBBPTmpData(); 4751 4751 if( pcCU->getDBBPFlag(0) ) … … 4754 4754 AOF( uiPartIdx == 0 ); 4755 4755 AOF( pcCU->getPartitionSize(0) == SIZE_2Nx2N ); 4756 AOF( pDBBPTmpData->eVirtualPartSize != SIZE_NONE);4756 AOF( pDBBPTmpData->eVirtualPartSize != NUMBER_OF_PART_SIZES ); 4757 4757 AOF( iRoiWidth == iRoiHeight ); 4758 4758 … … 4779 4779 4780 4780 pcCU->fillMvpCand( uiPartIdx, uiPartAddr, eRefPicList, iRefIdx, pcAMVPInfo ); 4781 #if H_3D_DBBP4781 #if NH_3D_DBBP 4782 4782 if( pcCU->getDBBPFlag(0) ) 4783 4783 { … … 7130 7130 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7131 7131 #endif 7132 #if H_3D7132 #if NH_3D_DBBP 7133 7133 m_pcEntropyCoder->encodeDBBPFlag( pcCU, 0, true ); 7134 7134 #endif
Note: See TracChangeset for help on using the changeset viewer.