Changeset 646 in 3DVCSoftware for branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder
- Timestamp:
- 19 Oct 2013, 02:18:06 (12 years ago)
- Location:
- branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncCavlc.cpp
r622 r646 968 968 } 969 969 #endif 970 #if LGE_INTER_SDC_E0156970 #if H_3D_INTER_SDC 971 971 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" ); 972 972 #endif … … 1309 1309 } 1310 1310 #endif 1311 #if LGE_INTER_SDC_E01561311 #if H_3D_INTER_SDC 1312 1312 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" ); 1313 1313 #endif … … 2282 2282 } 2283 2283 2284 #if LGE_INTER_SDC_E01562284 #if H_3D_INTER_SDC 2285 2285 Void TEncCavlc::codeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2286 2286 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncCavlc.h
r622 r646 133 133 Void codeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 134 134 #endif 135 #if LGE_INTER_SDC_E0156135 #if H_3D_INTER_SDC 136 136 Void codeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 137 137 Void codeInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment ); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncCfg.h
r638 r646 417 417 Bool m_bUseIC; 418 418 #endif 419 #if LGE_INTER_SDC_E0156419 #if H_3D_INTER_SDC 420 420 bool m_bInterSDC; 421 421 #endif … … 528 528 Bool getUseIC () { return m_bUseIC; } 529 529 #endif 530 #if LGE_INTER_SDC_E0156530 #if H_3D_INTER_SDC 531 531 Void setInterSDCEnable ( Bool bVal ) { m_bInterSDC = bVal; } 532 532 Bool getInterSDCEnable () { return m_bInterSDC; } -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncCu.cpp
r643 r646 1653 1653 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1654 1654 #endif 1655 #if LGE_INTER_SDC_E01561655 #if H_3D_INTER_SDC 1656 1656 m_pcEntropyCoder->encodeInterSDCFlag( pcCU, uiAbsPartIdx, false ); 1657 1657 #endif … … 1948 1948 1949 1949 rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth ); 1950 #if LGE_INTER_SDC_E01561950 #if H_3D_INTER_SDC 1951 1951 TComDataCU *rpcTempCUPre = rpcTempCU; 1952 1952 #endif … … 1954 1954 xCheckDQP( rpcTempCU ); 1955 1955 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth); 1956 #if LGE_INTER_SDC_E01561956 #if H_3D_INTER_SDC 1957 1957 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual ) 1958 1958 { … … 1990 1990 if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip ) 1991 1991 { 1992 #if LGE_INTER_SDC_E01561992 #if H_3D_INTER_SDC 1993 1993 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) ) 1994 1994 { … … 1999 1999 #endif 2000 2000 bestIsSkip = rpcBestCU->getQtRootCbf(0) == 0; 2001 #if LGE_INTER_SDC_E01562001 #if H_3D_INTER_SDC 2002 2002 } 2003 2003 #endif … … 2203 2203 #endif 2204 2204 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 2205 #if LGE_INTER_SDC_E01562205 #if H_3D_INTER_SDC 2206 2206 TComDataCU *rpcTempCUPre = rpcTempCU; 2207 2207 #endif 2208 2208 xCheckDQP( rpcTempCU ); 2209 2209 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth); 2210 #if LGE_INTER_SDC_E01562210 #if H_3D_INTER_SDC 2211 2211 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() ) 2212 2212 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncEntropy.cpp
r608 r646 662 662 #endif 663 663 664 #if LGE_INTER_SDC_E0156664 #if H_3D_INTER_SDC 665 665 if( pcCU->getInterSDCFlag( uiAbsPartIdx ) ) 666 666 { … … 824 824 } 825 825 826 #if LGE_INTER_SDC_E0156826 #if H_3D_INTER_SDC 827 827 Void TEncEntropy::encodeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 828 828 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncEntropy.h
r608 r646 94 94 virtual Void codeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 95 95 #endif 96 #if LGE_INTER_SDC_E015696 #if H_3D_INTER_SDC 97 97 virtual Void codeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 98 98 virtual Void codeInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment ) = 0; … … 185 185 Void encodeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 186 186 #endif 187 #if LGE_INTER_SDC_E0156187 #if H_3D_INTER_SDC 188 188 Void encodeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 189 189 Void encodeInterSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncGOP.cpp
r637 r646 1894 1894 pcPic->destroyNonDBFilterInfo(); 1895 1895 } 1896 #if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E01701896 #if H_3D 1897 1897 pcPic->compressMotion(2); 1898 1898 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSbac.cpp
r622 r646 95 95 #if H_3D_DIM_DMM 96 96 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 97 #if !SEC_DMM2_E0146_HHIFIX98 , m_cDmm2DataSCModel ( 1, 1, NUM_DMM2_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)99 #endif100 97 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 101 98 #endif … … 108 105 #endif 109 106 #endif 110 #if LGE_INTER_SDC_E0156107 #if H_3D_INTER_SDC 111 108 , m_cInterSDCFlagSCModel ( 1, 1, NUM_INTER_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 112 109 , m_cInterSDCResidualSCModel ( 1, 1, NUM_INTER_SDC_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 177 174 #if H_3D_DIM_DMM 178 175 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 179 #if !SEC_DMM2_E0146_HHIFIX180 m_cDmm2DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );181 #endif182 176 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 183 177 #endif … … 190 184 #endif 191 185 #endif 192 #if LGE_INTER_SDC_E0156186 #if H_3D_INTER_SDC 193 187 m_cInterSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG ); 194 188 m_cInterSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 232 226 curCost += m_cCUICFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_IC_FLAG ); 233 227 #endif 234 #if LGE_INTER_SDC_E0156228 #if H_3D_INTER_SDC 235 229 curCost += m_cInterSDCFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_INTER_SDC_FLAG ); 236 230 curCost += m_cInterSDCResidualSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 268 262 #if H_3D_DIM_DMM 269 263 curCost += m_cDmm1DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM1_DATA ); 270 #if !SEC_DMM2_E0146_HHIFIX271 curCost += m_cDmm2DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM2_DATA );272 #endif273 264 curCost += m_cDmm3DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM3_DATA ); 274 265 #endif … … 340 331 #if H_3D_DIM_DMM 341 332 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 342 #if !SEC_DMM2_E0146_HHIFIX343 m_cDmm2DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );344 #endif345 333 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 346 334 #endif … … 353 341 #endif 354 342 #endif 355 #if LGE_INTER_SDC_E0156343 #if H_3D_INTER_SDC 356 344 m_cInterSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG ); 357 345 m_cInterSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 548 536 } 549 537 } 550 551 #if !SEC_DMM2_E0146_HHIFIX552 Void TEncSbac::xCodeDmm2Offset( Int iOffset )553 {554 if( DMM2_DELTAEND_MAX > 0 )555 {556 m_pcBinIf->encodeBin( (iOffset != 0) , m_cDmm2DataSCModel.get(0, 0, 0) );557 if( iOffset != 0 )558 {559 UInt uiAbsValMinus1 = abs(iOffset)-1;560 m_pcBinIf->encodeBin( (uiAbsValMinus1 & 0x01), m_cDmm2DataSCModel.get(0, 0, 0) );561 m_pcBinIf->encodeBin( (uiAbsValMinus1 & 0x02) >> 1, m_cDmm2DataSCModel.get(0, 0, 0) );562 563 UInt uiSign = (iOffset > 0) ? 0 : 1;564 m_pcBinIf->encodeBinEP( uiSign );565 }566 }567 }568 #endif569 538 570 539 Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit ) … … 1240 1209 xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1241 1210 } break; 1242 #if !SEC_DMM2_E0146_HHIFIX1243 case( DMM2_IDX ):1244 {1245 xCodeDmm2Offset( pcCU->getDmm2DeltaEnd( absPartIdx ) );1246 } break;1247 #endif1248 1211 case( DMM3_IDX ): 1249 1212 { … … 1294 1257 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx ) 1295 1258 { 1296 #if ZJU_DEPTH_INTRA_MODE_E02041297 1259 UInt codeWordTable[3][7] = {{0, 0, 0, 2, 0,6, 7},{0, 0, 2, 7, 3, 6, 2},{0, 1, 0, 0, 0, 0, 0}}; 1298 1260 UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{1, 1, 2, 3, 2, 3, 2},{1, 1, 0, 0, 0, 0, 0}}; 1299 #else1300 #if LGE_SDC_REMOVE_DC_E01581301 #if SEC_DMM2_E0146_HHIFIX1302 UInt codeWordTable[3][7] = {{0, 0, 0, 2, 0,6, 7},{0, 2, 3, 4, 5, 6, 7},{0, 1, 0, 0, 0, 0, 0}};1303 UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{2, 3, 3, 3, 3, 3, 3},{1, 1, 0, 0, 0, 0, 0}};1304 #else1305 UInt codeWordTable[3][8] = { { 0, 0, 0, 2, 0, 6, 0, 7 }, { 0, 2, 3, 4, 5, 6, 15, 14 }, { 0, 1, 0, 0, 0, 0, 0, 0 } };1306 UInt codeWordLenTable[3][8] = { { 0, 1, 0, 2, 0, 3, 0, 3 }, { 2, 3, 3, 3, 3, 3, 4, 4 }, { 1, 1, 0, 0, 0, 0, 0, 0 } };1307 #endif1308 #else1309 #if SEC_DMM2_E0146_HHIFIX1310 UInt codeWordTable[3][8] = {{0, 0, 0, 2, 0,6, 0, 7},{0, 2, 3, 4, 5, 6, 14, 15},{0, 2, 0, 0, 0, 0, 3, 0}};1311 UInt codeWordLenTable[3][8] = {{0, 1, 0, 2, 0,3, 0, 3},{2, 3, 3, 3, 3, 3, 4, 4},{1, 2, 0, 0, 0, 0, 2, 0}};1312 #else1313 UInt codeWordTable[3][9] = {{0, 0, 0, 2, 0,6, 0, 0, 7},{0, 2, 3, 4, 5, 6, 14, 31, 30},{0, 2, 0, 0, 0, 0, 3, 0, 0}};1314 UInt codeWordLenTable[3][9] = {{0, 1, 0, 2, 0,3, 0, 0, 3},{2, 3, 3, 3, 3, 3, 4, 5, 5},{1, 2, 0, 0, 0, 0, 2, 0, 0}};1315 #endif1316 #endif1317 #endif1318 1261 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 1319 1262 UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 ); … … 1332 1275 case DMM3_IDX: codeIdx = 5; break; 1333 1276 #if LGE_SDC_REMOVE_DC_E0158 1334 #if SEC_DMM2_E0146_HHIFIX1335 1277 case RBC_IDX: codeIdx = 6; break; 1336 1278 #else 1337 case DMM2_IDX: codeIdx = 6; break;1338 1279 case RBC_IDX: codeIdx = 7; break; 1339 #endif1340 #else1341 #if SEC_DMM2_E0146_HHIFIX1342 case RBC_IDX: codeIdx = 7; break;1343 #else1344 case DMM2_IDX: codeIdx = 7; break;1345 case RBC_IDX: codeIdx = 8; break;1346 #endif1347 1280 #endif 1348 1281 default: break; … … 1363 1296 } 1364 1297 #endif 1365 #if ZJU_DEPTH_INTRA_MODE_E02041366 1298 if( puIdx==1 ) 1367 1299 { … … 1375 1307 } 1376 1308 } 1377 #endif1378 1309 //mode coding 1379 1310 for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ ) … … 2304 2235 } 2305 2236 2306 #if LGE_INTER_SDC_E01562237 #if H_3D_INTER_SDC 2307 2238 Void TEncSbac::codeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2308 2239 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSbac.h
r622 r646 121 121 #if H_3D_DIM_DMM 122 122 Void xCodeDmm1WedgeIdx ( UInt uiTabIdx, Int iNumBit ); 123 #if !SEC_DMM2_E0146_HHIFIX124 Void xCodeDmm2Offset ( Int iOffset );125 #endif126 123 Void xCodeDmm3WedgeIdx ( UInt uiIntraIdx, Int iNumBit ); 127 124 #endif … … 160 157 Void codeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 161 158 #endif 162 #if LGE_INTER_SDC_E0156159 #if H_3D_INTER_SDC 163 160 Void codeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 164 161 Void codeInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment ); … … 256 253 #if H_3D_DIM_DMM 257 254 ContextModel3DBuffer m_cDmm1DataSCModel; 258 #if !SEC_DMM2_E0146_HHIFIX259 ContextModel3DBuffer m_cDmm2DataSCModel;260 #endif261 255 ContextModel3DBuffer m_cDmm3DataSCModel; 262 256 #endif … … 269 263 #endif 270 264 #endif 271 #if LGE_INTER_SDC_E0156265 #if H_3D_INTER_SDC 272 266 ContextModel3DBuffer m_cInterSDCFlagSCModel; 273 267 ContextModel3DBuffer m_cInterSDCResidualSCModel; -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSearch.cpp
r630 r646 41 41 #include "TEncSearch.h" 42 42 #include <math.h> 43 #if LGE_INTER_SDC_E015643 #if H_3D_INTER_SDC 44 44 #include <memory.h> 45 45 #endif … … 323 323 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 324 324 #endif 325 #if LGE_INTER_SDC_E0156325 #if H_3D_INTER_SDC 326 326 m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag(); 327 327 #endif … … 755 755 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 756 756 #endif 757 #if LGE_INTER_SDC_E0156757 #if H_3D_INTER_SDC 758 758 m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag(); 759 759 #endif … … 1900 1900 // get DC prediction for each segment 1901 1901 Pel apDCPredValues[2]; 1902 #if KWU_SDC_SIMPLE_DC_E01171903 1902 analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode ); 1904 #else1905 analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride );1906 #endif1907 1903 1908 1904 // get original DC for each segment 1909 1905 Pel apDCOrigValues[2]; 1910 #if KWU_SDC_SIMPLE_DC_E01171911 1906 analyzeSegmentsSDC(piOrg, uiStride, uiWidth, apDCOrigValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode, true ); 1912 #else1913 analyzeSegmentsSDC(piOrg, uiStride, uiWidth, apDCOrigValues, uiNumSegments, pbMask, uiMaskStride );1914 #endif1915 1907 1916 1908 for( UInt uiSegment = 0; uiSegment < uiNumSegments; uiSegment++ ) … … 2884 2876 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 2885 2877 } break; 2886 #if !SEC_DMM2_E0146_HHIFIX2887 case( DMM2_IDX ):2888 {2889 if( uiWidth > 4 )2890 {2891 Int dmm2DeltaEnd = 0;2892 xSearchDmm2Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx, dmm2DeltaEnd );2893 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dmmType, uiPartOffset, uiDepth + uiInitTrDepth );2894 pcCU->setDmm2DeltaEndSubParts( dmm2DeltaEnd, uiPartOffset, uiDepth + uiInitTrDepth );2895 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);2896 }2897 } break;2898 #endif2899 2878 case( DMM3_IDX ): 2900 2879 { … … 3588 3567 cDistParam.bUseIC = false; 3589 3568 #endif 3590 #if LGE_INTER_SDC_E01563569 #if H_3D_INTER_SDC 3591 3570 cDistParam.bUseSDCMRSAD = false; 3592 3571 #endif … … 4713 4692 pcPatternKey->setICFlag( bICFlag ); 4714 4693 #endif 4715 #if LGE_INTER_SDC_E01564694 #if H_3D_INTER_SDC 4716 4695 if ( pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) 4717 4696 { … … 4869 4848 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 4870 4849 #endif 4871 #if LGE_INTER_SDC_E01564850 #if H_3D_INTER_SDC 4872 4851 m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag(); 4873 4852 #endif … … 5478 5457 } 5479 5458 5480 #if LGE_INTER_SDC_E01565459 #if H_3D_INTER_SDC 5481 5460 Void TEncSearch::encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, TComYuv* pcOrg, TComYuv* pcPred, TComYuv* pcResi, TComYuv* pcRec, const UInt uiDepth ) 5482 5461 { … … 6801 6780 m_pcEntropyCoder->encodeARPW( pcCU , 0 ); 6802 6781 #endif 6803 #if LGE_INTER_SDC_E01566782 #if H_3D_INTER_SDC 6804 6783 m_pcEntropyCoder->encodeInterSDCFlag( pcCU, 0, true ); 6805 6784 #endif … … 7327 7306 return; 7328 7307 } 7329 7330 #if !SEC_DMM2_E0146_HHIFIX7331 Void TEncSearch::xSearchDmm2Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, Int& riWedgeDeltaEnd )7332 {7333 ruiTabIdx = 0;7334 riWedgeDeltaEnd = 0;7335 7336 // local pred buffer7337 TComYuv cPredYuv;7338 cPredYuv.create( uiWidth, uiHeight );7339 cPredYuv.clear();7340 7341 UInt uiPredStride = cPredYuv.getStride();7342 Pel* piPred = cPredYuv.getLumaAddr();7343 7344 7345 // regular wedge search7346 Dist uiBestDist = RDO_DIST_MAX;7347 UInt uiBestTabIdx = 0;7348 Int iBestDeltaEnd = 0;7349 7350 UInt uiIdx = 0;7351 Pel refDC1 = 0; Pel refDC2 = 0;7352 for( Int iTestDeltaEnd = -DMM2_DELTAEND_MAX; iTestDeltaEnd <= DMM2_DELTAEND_MAX; iTestDeltaEnd++ )7353 {7354 uiIdx = xPredWedgeFromIntra( pcCU, uiAbsPtIdx, uiWidth, uiHeight, iTestDeltaEnd );7355 TComWedgelet* pcWedgelet = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiIdx]);7356 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7357 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7358 7359 Dist uiActDist = RDO_DIST_MAX;7360 #if H_3D_VSO7361 if( m_pcRdCost->getUseVSO() )7362 {7363 if( m_pcRdCost->getUseEstimatedVSD() )7364 {7365 uiActDist = m_pcRdCost->getDistPartVSD( pcCU, uiAbsPtIdx, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false );7366 }7367 else7368 {7369 uiActDist = m_pcRdCost->getDistPartVSO( pcCU, uiAbsPtIdx, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false );7370 }7371 }7372 else7373 #endif7374 {7375 uiActDist = m_pcRdCost->getDistPart( g_bitDepthY, piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, TEXT_LUMA, DF_SAD );7376 }7377 7378 if( uiActDist < uiBestDist || uiBestDist == RDO_DIST_MAX )7379 {7380 uiBestDist = uiActDist;7381 uiBestTabIdx = uiIdx;7382 iBestDeltaEnd = iTestDeltaEnd;7383 }7384 else if( uiIdx == uiBestTabIdx && abs(iTestDeltaEnd) < abs(iBestDeltaEnd) )7385 {7386 iBestDeltaEnd = iTestDeltaEnd;7387 }7388 }7389 7390 ruiTabIdx = uiBestTabIdx;7391 riWedgeDeltaEnd = iBestDeltaEnd;7392 7393 cPredYuv.destroy();7394 return;7395 }7396 #endif7397 7308 7398 7309 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncSearch.h
r622 r646 213 213 TComYuv*& rpcYuvRec, 214 214 Bool bSkipRes ); 215 #if LGE_INTER_SDC_E0156215 #if H_3D_INTER_SDC 216 216 Void encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, 217 217 TComYuv* pcOrg, … … 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 !SEC_DMM2_E0146_HHIFIX355 Void xSearchDmm2Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, Int& riWedgeDeltaEnd );356 #endif357 354 #if LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 358 355 Void xSearchDmm3Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibEncoder/TEncTop.cpp
r637 r646 407 407 if( picLastCoded ) 408 408 { 409 #if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170410 409 picLastCoded->compressMotion(1); 411 #else412 picLastCoded->compressMotion();413 #endif414 410 } 415 411 #endif
Note: See TracChangeset for help on using the changeset viewer.