Changeset 697 in 3DVCSoftware for branches/HTM-8.2-dev3-Samsung/source
- Timestamp:
- 15 Nov 2013, 03:34:41 (11 years ago)
- Location:
- branches/HTM-8.2-dev3-Samsung/source
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev3-Samsung/source/App/TAppEncoder/TAppEncCfg.cpp
r655 r697 378 378 #if H_3D_DIM 379 379 ("DMM", m_useDMM, true, "Depth intra model modes") 380 #if !SEC_DMM3_RBC_F0147 380 381 ("RBC", m_useRBC, true, "Region boundary chain mode") 382 #endif 381 383 ("SDC", m_useSDC, true, "Simplified depth coding") 382 384 ("DLT", m_useDLT, true, "Depth lookup table") … … 2433 2435 #if H_3D_DIM 2434 2436 printf("DMM:%d ", m_useDMM ); 2437 #if !SEC_DMM3_RBC_F0147 2435 2438 printf("RBC:%d ", m_useRBC ); 2439 #endif 2436 2440 printf("SDC:%d ", m_useSDC ); 2437 2441 printf("DLT:%d ", m_useDLT ); -
branches/HTM-8.2-dev3-Samsung/source/App/TAppEncoder/TAppEncCfg.h
r655 r697 461 461 #if H_3D_DIM 462 462 Bool m_useDMM; ///< flag for using DMM 463 #if !SEC_DMM3_RBC_F0147 463 464 Bool m_useRBC; ///< flag for using RBC 465 #endif 464 466 Bool m_useSDC; ///< flag for using SDC 465 467 Bool m_useDLT; ///< flag for using DLT -
branches/HTM-8.2-dev3-Samsung/source/App/TAppEncoder/TAppEncTop.cpp
r655 r697 182 182 #if H_3D_DIM 183 183 m_cTEncTop.setUseDMM ( isDepth ? m_useDMM : false ); 184 #if !SEC_DMM3_RBC_F0147 184 185 m_cTEncTop.setUseRBC ( isDepth ? m_useRBC : false ); 186 #endif 185 187 m_cTEncTop.setUseSDC ( isDepth ? m_useSDC : false ); 186 188 m_cTEncTop.setUseDLT ( isDepth ? m_useDLT : false ); … … 1641 1643 1642 1644 #if H_3D_DIM 1645 #if SEC_DMM3_RBC_F0147 1646 vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) ); 1647 #else 1643 1648 vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useRBC || m_useSDC || m_useDLT ) ); 1649 #endif 1644 1650 #if H_3D_DIM_DLT 1645 1651 vps.setUseDLTFlag( layer , isDepth && m_useDLT ); -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/ContextTables.h
r673 r697 116 116 #if H_3D_DIM_DMM 117 117 #define NUM_DMM1_DATA_CTX 1 ///< number of context models for DMM1 data 118 #if !SEC_DMM3_RBC_F0147 118 119 #define NUM_DMM3_DATA_CTX 1 ///< number of context models for DMM3 data 120 #endif 119 121 #endif 120 122 #if H_3D_DIM_RBC … … 433 435 { CNU }, 434 436 }; 437 #if !SEC_DMM3_RBC_F0147 435 438 static const UChar 436 439 INIT_DMM3_DATA[3][NUM_DMM3_DATA_CTX] = … … 440 443 { CNU }, 441 444 }; 445 #endif 442 446 #endif 443 447 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComDataCU.cpp
r673 r697 120 120 m_dmmWedgeTabIdx[i] = NULL; 121 121 } 122 #if !SEC_DMM3_RBC_F0147 122 123 m_dmm3IntraTabIdx = NULL; 124 #endif 123 125 #endif 124 126 #if H_3D_DIM_RBC … … 271 273 m_dmmWedgeTabIdx[i] = (UInt*)xMalloc(UInt, uiNumPartition); 272 274 } 275 #if !SEC_DMM3_RBC_F0147 273 276 m_dmm3IntraTabIdx = (UInt*)xMalloc(UInt, uiNumPartition); 277 #endif 274 278 #endif 275 279 #if H_3D_DIM_RBC … … 404 408 if ( m_dmmWedgeTabIdx[i] ) { xFree( m_dmmWedgeTabIdx[i] ); m_dmmWedgeTabIdx[i] = NULL; } 405 409 } 410 #if !SEC_DMM3_RBC_F0147 406 411 if ( m_dmm3IntraTabIdx ) { xFree( m_dmm3IntraTabIdx ); m_dmm3IntraTabIdx = NULL; } 412 #endif 407 413 #endif 408 414 #if H_3D_DIM_RBC … … 622 628 memset( m_dmmWedgeTabIdx[i] + firstElement, 0, numElements * sizeof( *m_dmmWedgeTabIdx[i] ) ); 623 629 } 630 #if !SEC_DMM3_RBC_F0147 624 631 memset( m_dmm3IntraTabIdx + firstElement, 0, numElements * sizeof( *m_dmm3IntraTabIdx ) ); 632 #endif 625 633 #endif 626 634 #if H_3D_DIM_RBC … … 799 807 m_dmmWedgeTabIdx[i] [ui] = 0; 800 808 } 809 #if !SEC_DMM3_RBC_F0147 801 810 m_dmm3IntraTabIdx [ui] = 0; 811 #endif 802 812 #endif 803 813 #if H_3D_DIM_SDC … … 910 920 memset( m_dmmWedgeTabIdx[i], 0, sizeof(UInt) * m_uiNumPartition ); 911 921 } 922 #if !SEC_DMM3_RBC_F0147 912 923 memset( m_dmm3IntraTabIdx, 0, sizeof(UInt) * m_uiNumPartition ); 924 #endif 913 925 #endif 914 926 #if H_3D_DIM_RBC … … 992 1004 m_dmmWedgeTabIdx[i] [ui] = pcCU->m_dmmWedgeTabIdx[i] [uiPartOffset+ui]; 993 1005 } 1006 #if !SEC_DMM3_RBC_F0147 994 1007 m_dmm3IntraTabIdx [ui] = pcCU->m_dmm3IntraTabIdx[uiPartOffset+ui]; 1008 #endif 995 1009 #endif 996 1010 #if H_3D_DIM_SDC … … 1146 1160 m_dmmWedgeTabIdx[i] = pcCU->getDmmWedgeTabIdx( i ) + uiPart; 1147 1161 } 1162 #if !SEC_DMM3_RBC_F0147 1148 1163 m_dmm3IntraTabIdx = pcCU->getDmm3IntraTabIdx() + uiPart; 1164 #endif 1149 1165 #endif 1150 1166 #if H_3D_DIM_RBC … … 1342 1358 memcpy( m_dmmWedgeTabIdx[i] + uiOffset, pcCU->getDmmWedgeTabIdx( i ), sizeof(UInt) * uiNumPartition ); 1343 1359 } 1360 #if !SEC_DMM3_RBC_F0147 1344 1361 memcpy( m_dmm3IntraTabIdx + uiOffset, pcCU->getDmm3IntraTabIdx(), sizeof(UInt) * uiNumPartition ); 1362 #endif 1345 1363 #endif 1346 1364 #if H_3D_DIM_RBC … … 1469 1487 memcpy( rpcCU->getDmmWedgeTabIdx( i ) + m_uiAbsIdxInLCU, m_dmmWedgeTabIdx[i], sizeof(UInt) * m_uiNumPartition ); 1470 1488 } 1489 #if !SEC_DMM3_RBC_F0147 1471 1490 memcpy( rpcCU->getDmm3IntraTabIdx() + m_uiAbsIdxInLCU, m_dmm3IntraTabIdx, sizeof(UInt) * m_uiNumPartition ); 1491 #endif 1472 1492 #endif 1473 1493 #if H_3D_DIM_RBC … … 1582 1602 memcpy( rpcCU->getDmmWedgeTabIdx( i ) + uiPartOffset, m_dmmWedgeTabIdx[i], sizeof(UInt) * uiQNumPart ); 1583 1603 } 1604 #if !SEC_DMM3_RBC_F0147 1584 1605 memcpy( rpcCU->getDmm3IntraTabIdx() + uiPartOffset, m_dmm3IntraTabIdx, sizeof(UInt) * uiQNumPart ); 1606 #endif 1585 1607 #endif 1586 1608 #if H_3D_DIM_RBC … … 6176 6198 for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmmWedgeTabIdx[dmmType][uiAbsPartIdx+ui] = tabIdx; } 6177 6199 } 6200 #if !SEC_DMM3_RBC_F0147 6178 6201 Void TComDataCU::setDmm3IntraTabIdxSubParts( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ) 6179 6202 { … … 6181 6204 for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmm3IntraTabIdx[uiAbsPartIdx+ui] = uiTIdx; } 6182 6205 } 6206 #endif 6183 6207 #endif 6184 6208 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComDataCU.h
r673 r697 208 208 #if H_3D_DIM_DMM 209 209 UInt* m_dmmWedgeTabIdx[DMM_NUM_TYPE]; 210 #if !SEC_DMM3_RBC_F0147 210 211 UInt* m_dmm3IntraTabIdx; 212 #endif 211 213 #endif 212 214 #if H_3D_DIM_RBC … … 538 540 Void setDmmWedgeTabIdxSubParts ( UInt tabIdx, UInt dmmType, UInt uiAbsPartIdx, UInt uiDepth ); 539 541 542 #if !SEC_DMM3_RBC_F0147 540 543 UInt* getDmm3IntraTabIdx () { return m_dmm3IntraTabIdx; } 541 544 UInt getDmm3IntraTabIdx ( UInt uiIdx ) { return m_dmm3IntraTabIdx[uiIdx]; } 542 545 Void setDmm3IntraTabIdx ( UInt uiIdx, UInt uh ) { m_dmm3IntraTabIdx[uiIdx] = uh; } 543 546 Void setDmm3IntraTabIdxSubParts ( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ); 547 #endif 544 548 #endif 545 549 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComPrediction.cpp
r667 r697 425 425 Bool dimDeltaDC = isDimDeltaDC( uiIntraMode ); 426 426 Bool isDmmMode = (dimType < DMM_NUM_TYPE); 427 #if !SEC_DMM3_RBC_F0147 427 428 Bool isRbcMode = (dimType == RBC_IDX); 429 #endif 428 430 429 431 Bool* biSegPattern = NULL; … … 441 443 dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]); 442 444 } break; 445 #if !SEC_DMM3_RBC_F0147 443 446 case( DMM3_IDX ): 444 447 { … … 452 455 dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ uiTabIdx ]); 453 456 } break; 457 #endif 454 458 case( DMM4_IDX ): 455 459 { … … 495 499 Pel deltaDC2 = pcCU->getDimDeltaDC( dimType, 1, uiAbsPartIdx ); 496 500 #if H_3D_DIM_DMM 497 #if QC_DIM_DELTADC_UNIFY_F0132 501 #if QC_DIM_DELTADC_UNIFY_F0132 && !SEC_DMM3_RBC_F0147 498 502 if( isDmmMode || isRbcMode) 499 503 #else … … 1976 1980 1977 1981 #if H_3D_DIM_DMM 1982 #if !SEC_DMM3_RBC_F0147 1978 1983 UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx ) 1979 1984 { … … 1987 1992 return g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]][uiColTexIntraDir-2].at(intraTabIdx); 1988 1993 } 1994 #endif 1989 1995 1990 1996 Void TComPrediction::xPredContourFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, TComWedgelet* pcContourWedge ) -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComRom.cpp
r655 r697 604 604 std::vector< std::vector<TComWedgeRef> > g_dmmWedgeRefLists; 605 605 std::vector< std::vector<TComWedgeNode> > g_dmmWedgeNodeLists; 606 #if !SEC_DMM3_RBC_F0147 606 607 std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3; 608 #endif 607 609 608 610 Void initWedgeLists( Bool initNodeList ) … … 723 725 } 724 726 727 #if !SEC_DMM3_RBC_F0147 725 728 UInt uiThrSz = DMM3_SIMPLIFY_TR; 726 729 std::vector< std::vector<UInt> > auiWdgListSz; … … 739 742 } 740 743 g_aauiWdgLstM3.push_back(auiWdgListSz); 744 #endif 741 745 } 742 746 -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComRom.h
r655 r697 172 172 extern std::vector< std::vector<TComWedgeRef> > g_dmmWedgeRefLists; 173 173 extern std::vector< std::vector<TComWedgeNode> > g_dmmWedgeNodeLists; 174 #if !SEC_DMM3_RBC_F0147 174 175 extern std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3; 176 #endif 175 177 176 178 Void initWedgeLists( Bool initNodeList = false ); -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComWedgelet.h
r655 r697 50 50 enum DIM_IDX 51 51 { 52 #if SEC_DMM3_RBC_F0147 53 DMM1_IDX = 0, 54 DMM4_IDX = 1, 55 #else 52 56 DMM1_IDX = 0, 53 57 DMM3_IDX = 1, 54 58 DMM4_IDX = 2, 55 59 RBC_IDX = 3 60 #endif 56 61 }; 57 62 63 #if SEC_DMM3_RBC_F0147 64 #define DMM_NUM_TYPE 2 65 #define DIM_NUM_TYPE (DMM_NUM_TYPE) 66 #else 58 67 #define DMM_NUM_TYPE 3 59 68 #define RBC_NUM_TYPE 1 60 69 #define DIM_NUM_TYPE (DMM_NUM_TYPE+RBC_NUM_TYPE) 70 #endif 61 71 #define DIM_NO_IDX MAX_UINT 62 72 … … 75 85 #define DMM_NO_WEDGEINDEX MAX_UINT 76 86 #define DMM_NUM_WEDGE_REFINES 8 87 #if !SEC_DMM3_RBC_F0147 77 88 #define DMM3_SIMPLIFY_TR 1 89 #endif 78 90 79 91 enum WedgeResolution -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TypeDef.h
r689 r697 39 39 #define _TYPEDEF__ 40 40 41 42 41 43 //! \ingroup TLibCommon 42 44 //! \{ … … 159 161 // LGE_SDC_REMOVE_DC_E0158 Removal of DC mode from SDC 160 162 // LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1 Removal of overlap between DMM3 and DMM1 163 #define SEC_DMM3_RBC_F0147 1 // Removal of DMM3 and RBC from DMMs 161 164 162 165 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 215 218 #if H_3D_DIM 216 219 #define H_3D_DIM_DMM 1 // Depth Modeling Modes 220 #if !SEC_DMM3_RBC_F0147 217 221 #define H_3D_DIM_RBC 1 // Region Boundary Chain mode 222 #endif 218 223 #define H_3D_DIM_SDC 1 // Simplified Depth Coding method 219 224 #define H_3D_DIM_DLT 1 // Depth Lookup Table -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibDecoder/TDecCu.cpp
r687 r697 695 695 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 696 696 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 697 {698 697 pReco [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 699 }700 698 else 701 {702 699 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 703 }704 700 #else 705 701 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibDecoder/TDecSbac.cpp
r667 r697 89 89 #if H_3D_DIM_DMM 90 90 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 91 #if !SEC_DMM3_RBC_F0147 91 92 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 93 #endif 92 94 #endif 93 95 #if H_3D_DIM_RBC … … 176 178 #if H_3D_DIM_DMM 177 179 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA ); 180 #if !SEC_DMM3_RBC_F0147 178 181 m_cDmm3DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM3_DATA ); 182 #endif 179 183 #endif 180 184 #if H_3D_DIM_RBC … … 249 253 #if H_3D_DIM_DMM 250 254 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 255 #if !SEC_DMM3_RBC_F0147 251 256 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 257 #endif 252 258 #endif 253 259 #if H_3D_DIM_RBC … … 455 461 ruiTabIdx = uiIdx; 456 462 } 457 463 #if !SEC_DMM3_RBC_F0147 458 464 Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit ) 459 465 { … … 466 472 ruiIntraIdx = uiIdx; 467 473 } 474 #endif 468 475 #endif 469 476 #if H_3D_DIM_RBC … … 1160 1167 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 1161 1168 } break; 1169 #if !SEC_DMM3_RBC_F0147 1162 1170 case( DMM3_IDX ): 1163 1171 { … … 1166 1174 pcCU->setDmm3IntraTabIdxSubParts( uiIntraIdx, absPartIdx, depth ); 1167 1175 } break; 1176 #endif 1168 1177 case( DMM4_IDX ): break; 1169 1178 #endif … … 1280 1289 else if( puIdx == 0 ) 1281 1290 { 1291 #if SEC_DMM3_RBC_F0147 1292 while( binNum < 1 && symbol ) 1293 #else 1282 1294 while( binNum < 3 && symbol ) 1295 #endif 1283 1296 { 1284 1297 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); … … 1287 1300 binNum++; 1288 1301 } 1302 #if SEC_DMM3_RBC_F0147 1303 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1304 else if( modeCode == 1 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1305 #else 1289 1306 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1290 1307 else if( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1291 1308 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1292 1309 else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1310 #endif 1293 1311 } 1294 1312 else 1295 1313 { 1314 #if SEC_DMM3_RBC_F0147 1315 while( binNum < 4 && symbol ) 1316 { 1317 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); 1318 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1319 modeCode = (modeCode<<1) + symbol; 1320 binNum++; 1321 } 1322 if ( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1323 else if ( modeCode == 2 ) { dir = 5; sdcFlag = 0;} 1324 else if ( modeCode == 6 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1325 else if ( modeCode == 14 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1326 else if ( modeCode == 15 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1327 #else 1296 1328 UInt maxBinNum = 0; 1297 1329 m_pcTDecBinIf->decodeBinEP(symbol); … … 1325 1357 else if ( modeCode == 3 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1326 1358 } 1359 #endif 1327 1360 } 1328 1361 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibDecoder/TDecSbac.h
r667 r697 106 106 #if H_3D_DIM_DMM 107 107 Void xParseDmm1WedgeIdx ( UInt& ruiTabIdx, Int iNumBit ); 108 #if !SEC_DMM3_RBC_F0147 108 109 Void xParseDmm3WedgeIdx ( UInt& ruiIntraIdx, Int iNumBit ); 110 #endif 109 111 #endif 110 112 #if H_3D_DIM_RBC … … 217 219 #if H_3D_DIM_DMM 218 220 ContextModel3DBuffer m_cDmm1DataSCModel; 221 #if !SEC_DMM3_RBC_F0147 219 222 ContextModel3DBuffer m_cDmm3DataSCModel; 223 #endif 220 224 #endif 221 225 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncCfg.h
r655 r697 412 412 #if H_3D_DIM 413 413 Bool m_useDMM; 414 #if !SEC_DMM3_RBC_F0147 414 415 Bool m_useRBC; 416 #endif 415 417 Bool m_useSDC; 416 418 Bool m_useDLT; … … 980 982 Bool getUseDMM () { return m_useDMM; } 981 983 Void setUseDMM ( Bool b) { m_useDMM = b; } 984 #if !SEC_DMM3_RBC_F0147 982 985 Bool getUseRBC () { return m_useRBC; } 983 986 Void setUseRBC ( Bool b) { m_useRBC = b; } 987 #endif 984 988 Bool getUseSDC () { return m_useSDC; } 985 989 Void setUseSDC ( Bool b) { m_useSDC = b; } -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSbac.cpp
r667 r697 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_DMM3_RBC_F0147 97 98 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 99 #endif 98 100 #endif 99 101 #if H_3D_DIM_RBC … … 174 176 #if H_3D_DIM_DMM 175 177 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 178 #if !SEC_DMM3_RBC_F0147 176 179 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 180 #endif 177 181 #endif 178 182 #if H_3D_DIM_RBC … … 262 266 #if H_3D_DIM_DMM 263 267 curCost += m_cDmm1DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM1_DATA ); 268 #if !SEC_DMM3_RBC_F0147 264 269 curCost += m_cDmm3DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM3_DATA ); 270 #endif 265 271 #endif 266 272 #if H_3D_DIM_RBC … … 331 337 #if H_3D_DIM_DMM 332 338 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 339 #if !SEC_DMM3_RBC_F0147 333 340 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 341 #endif 334 342 #endif 335 343 #if H_3D_DIM_RBC … … 549 557 } 550 558 559 #if !SEC_DMM3_RBC_F0147 551 560 Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit ) 552 561 { … … 556 565 } 557 566 } 567 #endif 558 568 #endif 559 569 #if H_3D_DIM_RBC … … 1221 1231 xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1222 1232 } break; 1233 #if !SEC_DMM3_RBC_F0147 1223 1234 case( DMM3_IDX ): 1224 1235 { 1225 1236 xCodeDmm3WedgeIdx( pcCU->getDmm3IntraTabIdx( absPartIdx ), g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1226 1237 } break; 1238 #endif 1227 1239 case( DMM4_IDX ): break; 1228 1240 #endif … … 1305 1317 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx ) 1306 1318 { 1319 #if SEC_DMM3_RBC_F0147 1320 UInt codeWordTable[3][7] = {{0, 0, 0, 1, 0, 0, 0},{0, 2, 6, 14, 15, 0, 0},{0, 1, 0, 0, 0, 0, 0}}; 1321 UInt codeWordLenTable[3][7] = {{0, 1, 0, 1, 0, 0, 0},{1, 2, 3, 4, 4, 0, 0},{1, 1, 0, 0, 0, 0, 0}}; 1322 #else 1307 1323 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}}; 1308 1324 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}}; 1325 #endif 1309 1326 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 1310 1327 UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 ); … … 1321 1338 case DMM1_IDX: codeIdx = 3; break; 1322 1339 case DMM4_IDX: codeIdx = 4; break; 1340 #if !SEC_DMM3_RBC_F0147 1323 1341 case DMM3_IDX: codeIdx = 5; break; 1324 1342 case RBC_IDX: codeIdx = 6; break; 1343 #endif 1325 1344 default: break; 1326 1345 } … … 1337 1356 } 1338 1357 #endif 1358 #if !SEC_DMM3_RBC_F0147 1339 1359 if( puIdx==1 ) 1340 1360 { … … 1348 1368 } 1349 1369 } 1370 #endif 1350 1371 //mode coding 1351 1372 for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ ) -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSbac.h
r667 r697 125 125 #if H_3D_DIM_DMM 126 126 Void xCodeDmm1WedgeIdx ( UInt uiTabIdx, Int iNumBit ); 127 #if !SEC_DMM3_RBC_F0147 127 128 Void xCodeDmm3WedgeIdx ( UInt uiIntraIdx, Int iNumBit ); 129 #endif 128 130 #endif 129 131 #if H_3D_DIM_RBC … … 257 259 #if H_3D_DIM_DMM 258 260 ContextModel3DBuffer m_cDmm1DataSCModel; 261 #if !SEC_DMM3_RBC_F0147 259 262 ContextModel3DBuffer m_cDmm3DataSCModel; 263 #endif 260 264 #endif 261 265 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSearch.cpp
r687 r697 1128 1128 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1129 1129 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1130 {1131 1130 pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ); 1132 }1133 1131 else 1134 {1135 1132 pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ]; 1136 }1137 1133 #else 1138 1134 pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ]; … … 1203 1199 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1204 1200 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1205 {1206 1201 pReco [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 1207 }1208 1202 else 1209 {1210 1203 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 1211 }1212 1204 #else 1213 1205 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); … … 2898 2890 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 2899 2891 } break; 2892 #if !SEC_DMM3_RBC_F0147 2900 2893 case( DMM3_IDX ): 2901 2894 { … … 2915 2908 } 2916 2909 } break; 2910 #endif 2917 2911 case( DMM4_IDX ): 2918 2912 { … … 7330 7324 } 7331 7325 7326 #if !SEC_DMM3_RBC_F0147 7332 7327 Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ) 7333 7328 { … … 7366 7361 cPredYuv.destroy(); 7367 7362 } 7368 7363 #endif 7369 7364 #endif 7370 7365 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSearch.h
r655 r697 351 351 Void xSearchDmmDeltaDCs ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 ); 352 352 Void xSearchDmm1Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx ); 353 #if !SEC_DMM3_RBC_F0147 353 354 Void xSearchDmm3Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ); 355 #endif 354 356 #endif 355 357 #if H_3D_DIM_RBC
Note: See TracChangeset for help on using the changeset viewer.