Changeset 251 in 3DVCSoftware for branches/HTM-5.1-dev1-LG/source/Lib
- Timestamp:
- 4 Feb 2013, 01:35:46 (12 years ago)
- Location:
- branches/HTM-5.1-dev1-LG/source/Lib
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/ContextTables.h
r225 r251 153 153 #define NUM_DMM_FLAG_CTX 1 ///< number of context models for DMM flag 154 154 #define NUM_DMM_MODE_CTX 1 ///< number of context models for DMM mode 155 #if LGE_DMM3_SIMP_C0044 156 #define NUM_DMM_DATA_CTX 4 ///< number of context models for DMM data 157 #else 155 158 #define NUM_DMM_DATA_CTX 3 ///< number of context models for DMM data 159 #endif 156 160 #endif 157 161 … … 1304 1308 INIT_DMM_DATA[3][NUM_DMM_DATA_CTX] = 1305 1309 { 1310 #if LGE_DMM3_SIMP_C0044 1311 { 1312 CNU, CNU, CNU, CNU 1313 }, 1314 { 1315 CNU, CNU, CNU, CNU 1316 }, 1317 { 1318 CNU, CNU, CNU, CNU 1319 } 1320 #else 1306 1321 { 1307 1322 CNU, CNU, CNU … … 1313 1328 CNU, CNU, CNU 1314 1329 } 1330 #endif 1315 1331 }; 1316 1332 -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComDataCU.cpp
r210 r251 135 135 #if HHI_DMM_PRED_TEX 136 136 m_puiWedgePredTexTabIdx = NULL; 137 #if LGE_DMM3_SIMP_C0044 138 m_puiWedgePredTexIntraTabIdx = NULL; 139 #endif 137 140 m_piWedgePredTexDeltaDC1 = NULL; 138 141 m_piWedgePredTexDeltaDC2 = NULL; … … 283 286 #if HHI_DMM_PRED_TEX 284 287 m_puiWedgePredTexTabIdx = (UInt*)xMalloc(UInt, uiNumPartition); 288 #if LGE_DMM3_SIMP_C0044 289 m_puiWedgePredTexIntraTabIdx = (UInt*)xMalloc(UInt, uiNumPartition); 290 #endif 285 291 m_piWedgePredTexDeltaDC1 = (Int* )xMalloc(Int, uiNumPartition); 286 292 m_piWedgePredTexDeltaDC2 = (Int* )xMalloc(Int, uiNumPartition); … … 408 414 #if HHI_DMM_PRED_TEX 409 415 if ( m_puiWedgePredTexTabIdx ) { xFree(m_puiWedgePredTexTabIdx ); m_puiWedgePredTexTabIdx = NULL; } 416 #if LGE_DMM3_SIMP_C0044 417 if ( m_puiWedgePredTexIntraTabIdx ) { xFree(m_puiWedgePredTexIntraTabIdx); m_puiWedgePredTexIntraTabIdx = NULL; } 418 #endif 410 419 if ( m_piWedgePredTexDeltaDC1 ) { xFree(m_piWedgePredTexDeltaDC1 ); m_piWedgePredTexDeltaDC1 = NULL; } 411 420 if ( m_piWedgePredTexDeltaDC2 ) { xFree(m_piWedgePredTexDeltaDC2 ); m_piWedgePredTexDeltaDC2 = NULL; } … … 618 627 #if HHI_DMM_PRED_TEX 619 628 memset( m_puiWedgePredTexTabIdx + firstElement, 0, sizeof( UInt ) * numElements ); 629 #if LGE_DMM3_SIMP_C0044 630 memset( m_puiWedgePredTexIntraTabIdx + firstElement, 0, sizeof( UInt ) * numElements ); 631 #endif 620 632 memset( m_piWedgePredTexDeltaDC1 + firstElement, 0, sizeof( Int ) * numElements ); 621 633 memset( m_piWedgePredTexDeltaDC2 + firstElement, 0, sizeof( Int ) * numElements ); … … 803 815 #if HHI_DMM_PRED_TEX 804 816 m_puiWedgePredTexTabIdx [ui] = 0; 817 #if LGE_DMM3_SIMP_C0044 818 m_puiWedgePredTexIntraTabIdx [ui] = 0; 819 #endif 805 820 m_piWedgePredTexDeltaDC1 [ui] = 0; 806 821 m_piWedgePredTexDeltaDC2 [ui] = 0; … … 921 936 #if HHI_DMM_PRED_TEX 922 937 memset( m_puiWedgePredTexTabIdx, 0, sizeof( UInt ) * m_uiNumPartition ); 938 #if LGE_DMM3_SIMP_C0044 939 memset( m_puiWedgePredTexIntraTabIdx, 0, sizeof( UInt ) * m_uiNumPartition ); 940 #endif 923 941 memset( m_piWedgePredTexDeltaDC1, 0, sizeof( Int ) * m_uiNumPartition ); 924 942 memset( m_piWedgePredTexDeltaDC2, 0, sizeof( Int ) * m_uiNumPartition ); … … 992 1010 #if HHI_DMM_PRED_TEX 993 1011 m_puiWedgePredTexTabIdx [ui]=pcCU->getWedgePredTexTabIdx (uiPartOffset+ui); 1012 #if LGE_DMM3_SIMP_C0044 1013 m_puiWedgePredTexIntraTabIdx [ui]=pcCU->getWedgePredTexIntraTabIdx (uiPartOffset+ui); 1014 #endif 994 1015 m_piWedgePredTexDeltaDC1 [ui]=pcCU->getWedgePredTexDeltaDC1 (uiPartOffset+ui); 995 1016 m_piWedgePredTexDeltaDC2 [ui]=pcCU->getWedgePredTexDeltaDC2 (uiPartOffset+ui); … … 1193 1214 #if HHI_DMM_PRED_TEX 1194 1215 m_puiWedgePredTexTabIdx = pcCU->getWedgePredTexTabIdx() + uiPart; 1216 #if LGE_DMM3_SIMP_C0044 1217 m_puiWedgePredTexIntraTabIdx = pcCU->getWedgePredTexIntraTabIdx() + uiPart; 1218 #endif 1195 1219 m_piWedgePredTexDeltaDC1 = pcCU->getWedgePredTexDeltaDC1() + uiPart; 1196 1220 m_piWedgePredTexDeltaDC2 = pcCU->getWedgePredTexDeltaDC2() + uiPart; … … 1375 1399 #if HHI_DMM_PRED_TEX 1376 1400 memcpy( m_puiWedgePredTexTabIdx + uiOffset, pcCU->getWedgePredTexTabIdx(), sizeof( UInt ) * uiNumPartition ); 1401 #if LGE_DMM3_SIMP_C0044 1402 memcpy( m_puiWedgePredTexIntraTabIdx + uiOffset, pcCU->getWedgePredTexIntraTabIdx(), sizeof( UInt ) * uiNumPartition ); 1403 #endif 1377 1404 memcpy( m_piWedgePredTexDeltaDC1 + uiOffset, pcCU->getWedgePredTexDeltaDC1(), sizeof( Int ) * uiNumPartition ); 1378 1405 memcpy( m_piWedgePredTexDeltaDC2 + uiOffset, pcCU->getWedgePredTexDeltaDC2(), sizeof( Int ) * uiNumPartition ); … … 1501 1528 #if HHI_DMM_PRED_TEX 1502 1529 memcpy( rpcCU->getWedgePredTexTabIdx() + m_uiAbsIdxInLCU, m_puiWedgePredTexTabIdx, sizeof( UInt ) * m_uiNumPartition ); 1530 #if LGE_DMM3_SIMP_C0044 1531 memcpy( rpcCU->getWedgePredTexIntraTabIdx() + m_uiAbsIdxInLCU, m_puiWedgePredTexIntraTabIdx, sizeof( UInt ) * m_uiNumPartition ); 1532 #endif 1503 1533 memcpy( rpcCU->getWedgePredTexDeltaDC1() + m_uiAbsIdxInLCU, m_piWedgePredTexDeltaDC1, sizeof( Int ) * m_uiNumPartition ); 1504 1534 memcpy( rpcCU->getWedgePredTexDeltaDC2() + m_uiAbsIdxInLCU, m_piWedgePredTexDeltaDC2, sizeof( Int ) * m_uiNumPartition ); … … 1628 1658 #if HHI_DMM_PRED_TEX 1629 1659 memcpy( rpcCU->getWedgePredTexTabIdx() + uiPartOffset, m_puiWedgePredTexTabIdx, sizeof( UInt ) * uiQNumPart ); 1660 #if LGE_DMM3_SIMP_C0044 1661 memcpy( rpcCU->getWedgePredTexIntraTabIdx() + uiPartOffset, m_puiWedgePredTexIntraTabIdx, sizeof( UInt ) * uiQNumPart ); 1662 #endif 1630 1663 memcpy( rpcCU->getWedgePredTexDeltaDC1() + uiPartOffset, m_piWedgePredTexDeltaDC1, sizeof( Int ) * uiQNumPart ); 1631 1664 memcpy( rpcCU->getWedgePredTexDeltaDC2() + uiPartOffset, m_piWedgePredTexDeltaDC2, sizeof( Int ) * uiQNumPart ); … … 7786 7819 } 7787 7820 7821 #if LGE_DMM3_SIMP_C0044 7822 Void TComDataCU::setWedgePredTexIntraTabIdxSubParts( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ) 7823 { 7824 UInt uiCurrPartNumb = m_pcPic->getNumPartInCU() >> (uiDepth << 1); 7825 7826 for ( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) 7827 { 7828 m_puiWedgePredTexIntraTabIdx[uiAbsPartIdx+ui] = uiTIdx; 7829 } 7830 } 7831 #endif 7832 7788 7833 Void TComDataCU::setWedgePredTexDeltaDC1SubParts( Int iDC1, UInt uiAbsPartIdx, UInt uiDepth ) 7789 7834 { -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComDataCU.h
r189 r251 262 262 #if HHI_DMM_PRED_TEX 263 263 UInt* m_puiWedgePredTexTabIdx; 264 #if LGE_DMM3_SIMP_C0044 265 UInt* m_puiWedgePredTexIntraTabIdx; 266 #endif 264 267 Int* m_piWedgePredTexDeltaDC1; 265 268 Int* m_piWedgePredTexDeltaDC2; … … 796 799 Void setWedgePredTexTabIdx ( UInt uiIdx, UInt uh ) { m_puiWedgePredTexTabIdx[uiIdx] = uh; } 797 800 Void setWedgePredTexTabIdxSubParts ( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ); 801 #if LGE_DMM3_SIMP_C0044 802 UInt* getWedgePredTexIntraTabIdx () { return m_puiWedgePredTexIntraTabIdx; } 803 UInt getWedgePredTexIntraTabIdx ( UInt uiIdx ) { return m_puiWedgePredTexIntraTabIdx[uiIdx]; } 804 Void setWedgePredTexIntraTabIdx ( UInt uiIdx, UInt uh ) { m_puiWedgePredTexIntraTabIdx[uiIdx] = uh; } 805 Void setWedgePredTexIntraTabIdxSubParts ( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ); 806 #endif 798 807 Int* getWedgePredTexDeltaDC1 () { return m_piWedgePredTexDeltaDC1; } 799 808 Int getWedgePredTexDeltaDC1 ( UInt uiIdx ) { return m_piWedgePredTexDeltaDC1[uiIdx]; } -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComPrediction.cpp
r242 r251 2136 2136 } 2137 2137 2138 #if LGE_DMM3_SIMP_C0044 2139 /** 2140 - fetch best Wedgelet pattern at decoder 2141 */ 2142 UInt TComPrediction::getBestWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt IntraTabIdx) 2143 { 2144 assert( uiWidth >= DMM_WEDGEMODEL_MIN_SIZE && uiWidth <= DMM_WEDGEMODEL_MAX_SIZE ); 2145 2146 UInt uiBestTabIdx = 0; 2147 TComPic* pcPicTex = pcCU->getSlice()->getTexturePic(); 2148 TComDataCU* pcColTexCU = pcPicTex->getCU(pcCU->getAddr()); 2149 UInt uiTexPartIdx = pcCU->getZorderIdxInCU() + uiAbsPartIdx; 2150 Int uiColTexIntraDir = pcColTexCU->isIntra( uiTexPartIdx ) ? pcColTexCU->getLumaIntraDir( uiTexPartIdx ) : 255; 2151 2152 std::vector< std::vector<UInt> > pauiWdgLstSz = g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]]; 2153 2154 if( uiColTexIntraDir > DC_IDX && uiColTexIntraDir < 35 ) 2155 { 2156 std::vector<UInt>* pauiWdgLst = &pauiWdgLstSz[uiColTexIntraDir-2]; 2157 uiBestTabIdx = pauiWdgLst->at(IntraTabIdx); 2158 } 2159 else 2160 { 2161 WedgeNodeList* pacWedgeNodeList = &g_aacWedgeNodeLists[(g_aucConvertToBit[uiWidth])]; 2162 uiBestTabIdx = pacWedgeNodeList->at(IntraTabIdx).getPatternIdx(); 2163 } 2164 2165 return uiBestTabIdx; 2166 } 2167 #endif 2168 2169 #if LGE_DMM3_SIMP_C0044 2170 /** 2171 - calculate best Wedgelet pattern at encoder 2172 */ 2173 UInt TComPrediction::getBestWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Pel* piOrigi, UInt uiStride, UInt & ruiIntraTabIdx) 2174 #else 2138 2175 UInt TComPrediction::getBestWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight ) 2176 #endif 2139 2177 { 2140 2178 assert( uiWidth >= DMM_WEDGEMODEL_MIN_SIZE && uiWidth <= DMM_WEDGEMODEL_MAX_SIZE ); … … 2164 2202 Int iDC2 = 0; 2165 2203 WedgeList* pacWedgeList = &g_aacWedgeLists[(g_aucConvertToBit[uiWidth])]; 2166 2204 #if LGE_DMM3_SIMP_C0044 2205 ruiIntraTabIdx = 0; 2206 #endif 2167 2207 #if HHIQC_DMMFASTSEARCH_B0039 2168 2208 TComPic* pcPicTex = pcCU->getSlice()->getTexturePic(); … … 2178 2218 { 2179 2219 UInt uiIdx = pauiWdgLst->at(uiIdxW); 2220 #if LGE_DMM3_SIMP_C0044 2221 calcWedgeDCs ( &(pacWedgeList->at(uiIdx)), piOrigi, uiWidth, iDC1, iDC2 ); 2222 #else 2180 2223 calcWedgeDCs ( &(pacWedgeList->at(uiIdx)), piRefBlkY, uiWidth, iDC1, iDC2 ); 2224 #endif 2181 2225 assignWedgeDCs2Pred( &(pacWedgeList->at(uiIdx)), piPred, uiPredStride, iDC1, iDC2 ); 2182 2226 2227 #if LGE_DMM3_SIMP_C0044 2228 UInt uiActDist = cWedgeDist.getDistPart( piPred, uiPredStride, piOrigi, uiStride, uiWidth, uiHeight, WedgeDist_SAD ); 2229 #else 2183 2230 UInt uiActDist = cWedgeDist.getDistPart( piPred, uiPredStride, piRefBlkY, uiWidth, uiWidth, uiHeight, WedgeDist_SAD ); 2231 #endif 2184 2232 2185 2233 if( uiActDist < uiBestDist || uiBestDist == MAX_UINT ) … … 2187 2235 uiBestDist = uiActDist; 2188 2236 uiBestTabIdx = uiIdx; 2237 #if LGE_DMM3_SIMP_C0044 2238 ruiIntraTabIdx = uiIdxW; 2239 #endif 2189 2240 } 2190 2241 } … … 2197 2248 for( UInt uiNodeId = 0; uiNodeId < pacWedgeNodeList->size(); uiNodeId++ ) 2198 2249 { 2250 #if LGE_DMM3_SIMP_C0044 2251 calcWedgeDCs ( &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx())), piOrigi, uiWidth, iDC1, iDC2 ); 2252 #else 2199 2253 calcWedgeDCs ( &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx())), piRefBlkY, uiWidth, iDC1, iDC2 ); 2254 #endif 2200 2255 assignWedgeDCs2Pred( &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx())), piPred, uiPredStride, iDC1, iDC2 ); 2201 2256 2257 #if LGE_DMM3_SIMP_C0044 2258 UInt uiActDist = cWedgeDist.getDistPart( piPred, uiPredStride, piOrigi, uiStride, uiWidth, uiHeight, WedgeDist_SAD ); 2259 #else 2202 2260 UInt uiActDist = cWedgeDist.getDistPart( piPred, uiPredStride, piRefBlkY, uiWidth, uiWidth, uiHeight, WedgeDist_SAD ); 2261 #endif 2203 2262 2204 2263 if( uiActDist < uiBestNodeDist || uiBestNodeDist == MAX_UINT ) … … 2206 2265 uiBestNodeDist = uiActDist; 2207 2266 uiBestNodeId = uiNodeId; 2208 } 2209 } 2210 2267 #if LGE_DMM3_SIMP_C0044 2268 ruiIntraTabIdx = uiNodeId; 2269 #endif 2270 } 2271 } 2272 #if LGE_DMM3_SIMP_C0044 2273 uiBestTabIdx = pacWedgeNodeList->at(uiBestNodeId).getPatternIdx(); 2274 #else 2211 2275 // refinement 2212 2276 uiBestDist = uiBestNodeDist; … … 2228 2292 } 2229 2293 } 2294 #endif 2230 2295 } 2231 2296 #else … … 2282 2347 { 2283 2348 // decoder: get and store wedge pattern in CU 2349 // decoder: get and store wedge pattern in CU 2350 #if LGE_DMM3_SIMP_C0044 2351 UInt uiIntraTabIdx = pcCU->getWedgePredTexIntraTabIdx ( uiAbsPartIdx ); 2352 uiTextureWedgeTabIdx = getBestWedgeFromTex( pcCU, uiAbsPartIdx, (UInt)iWidth, (UInt)iHeight, uiIntraTabIdx ); 2353 #else 2284 2354 uiTextureWedgeTabIdx = getBestWedgeFromTex( pcCU, uiAbsPartIdx, (UInt)iWidth, (UInt)iHeight ); 2355 #endif 2285 2356 2286 2357 UInt uiDepth = (pcCU->getDepth(0)) + (pcCU->getPartitionSize(0) == SIZE_2Nx2N ? 0 : 1); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComPrediction.h
r210 r251 176 176 #if HHI_DMM_PRED_TEX 177 177 Void getBestContourFromTex ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, TComWedgelet* pcContourWedge ); 178 #if LGE_DMM3_SIMP_C0044 179 UInt getBestWedgeFromTex ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Pel * piOrgi, UInt uiStride, UInt &ruiIntraTabIdx);//encoder 180 UInt getBestWedgeFromTex ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt IntraTabIdx);//decoder 181 #else 178 182 UInt getBestWedgeFromTex ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight ); 183 #endif 179 184 Void copyTextureLumaBlock ( TComDataCU* pcCU, UInt uiAbsPartIdx, Pel* piDestBlockY, UInt uiWidth, UInt uiHeight ); 180 185 #endif -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComRom.cpp
r189 r251 587 587 }; 588 588 589 #if LGE_DMM3_SIMP_C0044 590 const UChar g_aucWedgeTexPredBitsListIdx[7] = 591 { 592 0, // 2x2 593 6, // 4x4 594 9, // 8x8 595 9, // 16x16 596 9, // 32x32 597 0, // 64x64 598 0 // 128x128 599 }; 600 #endif 601 589 602 const UChar g_aucIntraSizeIdxToWedgeSize[7] = 590 603 { -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComRom.h
r189 r251 188 188 extern const WedgeResolution g_aeWedgeResolutionList[5]; 189 189 extern const UChar g_aucWedgeFullBitsListIdx[7]; 190 #if LGE_DMM3_SIMP_C0044 191 extern const UChar g_aucWedgeTexPredBitsListIdx[7]; 192 #endif 190 193 extern const UChar g_aucIntraSizeIdxToWedgeSize[7]; 191 194 -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TypeDef.h
r242 r251 82 82 #define HHIQC_DMMFASTSEARCH_B0039 1 // JCT3V-B0039: fast Wedgelet search for DMM modes 1 and 3 83 83 #define HHI_DMM_DELTADC_Q1_C0034 1 // JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values 84 84 #if HHIQC_DMMFASTSEARCH_B0039 && HHI_DMM_PRED_TEX 85 #define LGE_DMM3_SIMP_C0044 1 86 #endif 85 87 86 88 ///// ***** INTERVIEW MOTION VECTOR PREDICTION ********* -
branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecSbac.cpp
r229 r251 980 980 #if HHI_DMM_PRED_TEX 981 981 if( intraPredMode == DMM_WEDGE_PREDTEX_D_IDX ) { xParseWedgePredTexDeltaInfo ( pcCU, uiAbsPartIdx, uiDepth ); } 982 #if LGE_DMM3_SIMP_C0044 983 if( intraPredMode == DMM_WEDGE_PREDTEX_IDX ) { xParseWedgePredTexInfo ( pcCU, uiAbsPartIdx, uiDepth ); } 984 #endif 982 985 if( intraPredMode == DMM_CONTOUR_PREDTEX_D_IDX ) { xParseContourPredTexDeltaInfo( pcCU, uiAbsPartIdx, uiDepth ); } 983 986 #endif … … 2422 2425 #endif 2423 2426 #if HHI_DMM_PRED_TEX 2427 #if LGE_DMM3_SIMP_C0044 2428 Void TDecSbac::xParseWedgePredTexInfo( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2429 { 2430 Int iIntraIdx = pcCU->getIntraSizeIdx(uiAbsPartIdx); 2431 Int iBits = g_aucWedgeTexPredBitsListIdx[iIntraIdx]; 2432 2433 UInt uiSymbol, uiTabIdx = 0; 2434 for ( Int i = 0; i < iBits; i++ ) 2435 { 2436 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmmDataSCModel.get(0, 0, 3) ); 2437 uiTabIdx += ( uiSymbol && i == 0 ) ? 1 : 0; 2438 uiTabIdx += ( uiSymbol && i == 1 ) ? 2 : 0; 2439 uiTabIdx += ( uiSymbol && i == 2 ) ? 4 : 0; 2440 uiTabIdx += ( uiSymbol && i == 3 ) ? 8 : 0; 2441 uiTabIdx += ( uiSymbol && i == 4 ) ? 16 : 0; 2442 uiTabIdx += ( uiSymbol && i == 5 ) ? 32 : 0; 2443 uiTabIdx += ( uiSymbol && i == 6 ) ? 64 : 0; 2444 uiTabIdx += ( uiSymbol && i == 7 ) ? 128 : 0; 2445 uiTabIdx += ( uiSymbol && i == 8 ) ? 256 : 0; 2446 uiTabIdx += ( uiSymbol && i == 9 ) ? 512 : 0; 2447 uiTabIdx += ( uiSymbol && i == 10 ) ? 1024 : 0; 2448 } 2449 2450 pcCU->setWedgePredTexIntraTabIdxSubParts( uiTabIdx, uiAbsPartIdx, uiDepth ); 2451 } 2452 #endif 2453 2424 2454 Void TDecSbac::xParseWedgePredTexDeltaInfo( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2425 2455 { 2456 #if LGE_DMM3_SIMP_C0044 2457 xParseWedgePredTexInfo( pcCU, uiAbsPartIdx, uiDepth ); 2458 #endif 2426 2459 UInt uiDC1, uiDC2; 2427 2460 xReadExGolombLevel( uiDC1, m_cDmmDataSCModel.get(0, 0, 1) ); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecSbac.h
r210 r251 148 148 #endif 149 149 #if HHI_DMM_PRED_TEX 150 #if LGE_DMM3_SIMP_C0044 151 Void xParseWedgePredTexInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 152 #endif 150 153 Void xParseWedgePredTexDeltaInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 151 154 Void xParseContourPredTexDeltaInfo( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncSbac.cpp
r229 r251 1096 1096 1097 1097 if( uiDir == DMM_WEDGE_PREDTEX_D_IDX ) { xCodeWedgePredTexDeltaInfo ( pcCU, uiAbsPartIdx ); } 1098 #if LGE_DMM3_SIMP_C0044 1099 if( uiDir == DMM_WEDGE_PREDTEX_IDX ) { xCodeWedgePredTexInfo ( pcCU, uiAbsPartIdx ); } 1100 #endif 1098 1101 if( uiDir == DMM_CONTOUR_PREDTEX_D_IDX ) { xCodeContourPredTexDeltaInfo( pcCU, uiAbsPartIdx ); } 1099 1102 #endif … … 2671 2674 #endif 2672 2675 #if HHI_DMM_PRED_TEX 2676 #if LGE_DMM3_SIMP_C0044 2677 Void TEncSbac::xCodeWedgePredTexInfo( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2678 { 2679 Int iIntraIdx = pcCU->getIntraSizeIdx(uiAbsPartIdx); 2680 Int iBits = g_aucWedgeTexPredBitsListIdx[iIntraIdx]; 2681 2682 UInt uiTabIdx = pcCU->getWedgePredTexIntraTabIdx( uiAbsPartIdx ); 2683 2684 for ( Int i = 0; i < iBits; i++ ) 2685 { 2686 m_pcBinIf->encodeBin( ( uiTabIdx >> i ) & 1, m_cDmmDataSCModel.get(0, 0, 3) ); 2687 } 2688 } 2689 #endif 2690 2673 2691 Void TEncSbac::xCodeWedgePredTexDeltaInfo( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2674 2692 { 2693 #if LGE_DMM3_SIMP_C0044 2694 xCodeWedgePredTexInfo( pcCU, uiAbsPartIdx ); 2695 #endif 2675 2696 Int iDeltaDC1 = pcCU->getWedgePredTexDeltaDC1( uiAbsPartIdx ); 2676 2697 Int iDeltaDC2 = pcCU->getWedgePredTexDeltaDC2( uiAbsPartIdx ); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncSbac.h
r210 r251 178 178 #endif 179 179 #if HHI_DMM_PRED_TEX 180 #if LGE_DMM3_SIMP_C0044 181 Void xCodeWedgePredTexInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 182 #endif 180 183 Void xCodeWedgePredTexDeltaInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 181 184 Void xCodeContourPredTexDeltaInfo( TComDataCU* pcCU, UInt uiAbsPartIdx ); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncSearch.cpp
r242 r251 2252 2252 Int iTexDeltaDC1 = 0; 2253 2253 Int iTexDeltaDC2 = 0; 2254 #if LGE_DMM3_SIMP_C0044 2255 UInt uiTexIntraIdx = 0; 2256 findWedgeTexMinDist( pcCU, uiPartOffset, piOrg, piPred, uiStride, uiWidth, uiHeight, uiTexTabIdx, iTexDeltaDC1, iTexDeltaDC2, bAboveAvail, bLeftAvail, uiTexIntraIdx); 2257 pcCU->setWedgePredTexIntraTabIdxSubParts( uiTexIntraIdx, uiPartOffset, uiDepth + uiInitTrDepth ); 2258 #else 2254 2259 findWedgeTexMinDist( pcCU, uiPartOffset, piOrg, piPred, uiStride, uiWidth, uiHeight, uiTexTabIdx, iTexDeltaDC1, iTexDeltaDC2, bAboveAvail, bLeftAvail ); 2260 #endif 2255 2261 pcCU->setWedgePredTexTabIdxSubParts ( uiTexTabIdx, uiPartOffset, uiDepth + uiInitTrDepth ); 2256 2262 pcCU->setWedgePredTexDeltaDC1SubParts( iTexDeltaDC1, uiPartOffset, uiDepth + uiInitTrDepth ); … … 7161 7167 Int& riDeltaDC2, 7162 7168 Bool bAboveAvail, 7163 Bool bLeftAvail ) 7169 Bool bLeftAvail 7170 #if LGE_DMM3_SIMP_C0044 7171 ,UInt& ruiIntraTabIdx 7172 #endif 7173 ) 7164 7174 { 7165 7175 assert( uiWidth >= DMM_WEDGEMODEL_MIN_SIZE && uiWidth <= DMM_WEDGEMODEL_MAX_SIZE ); 7166 7176 WedgeList* pacWedgeList = &g_aacWedgeLists[(g_aucConvertToBit[uiWidth])]; 7167 7177 7178 #if LGE_DMM3_SIMP_C0044 7179 ruiTabIdx = getBestWedgeFromTex( pcCU, uiAbsPtIdx, uiWidth, uiHeight, piOrig, uiStride, ruiIntraTabIdx ); 7180 #else 7168 7181 ruiTabIdx = getBestWedgeFromTex( pcCU, uiAbsPtIdx, uiWidth, uiHeight ); 7182 #endif 7169 7183 7170 7184 TComWedgelet* pcBestWedgelet = &(pacWedgeList->at(ruiTabIdx)); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncSearch.h
r210 r251 435 435 Int& riDeltaDC2, 436 436 Bool bAboveAvail, 437 Bool bLeftAvail ); 437 Bool bLeftAvail 438 #if LGE_DMM3_SIMP_C0044 439 ,UInt& ruiIntraTabIdx 440 #endif 441 ); 438 442 Void findContourPredTex ( TComDataCU* pcCU, 439 443 UInt uiAbsPtIdx,
Note: See TracChangeset for help on using the changeset viewer.