Changeset 712 in 3DVCSoftware
- Timestamp:
- 21 Nov 2013, 13:28:24 (11 years ago)
- Location:
- branches/HTM-8.2-dev0
- Files:
-
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view+depth_AllIntra.cfg
r655 r712 145 145 VSO : 1 # use of view synthesis optimization for depth coding 146 146 DMM : 1 147 RBC : 1148 147 SDC : 1 149 148 DLT : 1 -
branches/HTM-8.2-dev0/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg
r655 r712 152 152 VSO : 1 # use of view synthesis optimization for depth coding 153 153 DMM : 1 154 RBC : 1155 154 SDC : 1 156 155 DLT : 1 -
branches/HTM-8.2-dev0/cfg/3D-HEVC/NonCTC/fco/baseCfg_3view+depth.cfg
r696 r712 227 227 IvMvPred : 1 # Inter-view motion prediction 228 228 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 229 IlluCompEnable : 1 1# Enable Illumination compensation ( 0: off, 1: on ) (v/d)229 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 230 230 ViewSynthesisPred : 1 # View synthesis prediction 231 231 DepthRefinement : 1 # Dispary refined by depth DoNBDV … … 237 237 VSO : 1 # use of view synthesis optimization for depth coding 238 238 DMM : 1 239 RBC : 1240 239 SDC : 1 241 240 DLT : 1 -
branches/HTM-8.2-dev0/cfg/3D-HEVC/NonCTC/rc/baseCfg_3view+depth_rate_control.cfg
r696 r712 239 239 IvMvPred : 1 # Inter-view motion prediction 240 240 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 241 IlluCompEnable : 1 1# Enable Illumination compensation ( 0: off, 1: on ) (v/d)241 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 242 242 ViewSynthesisPred : 1 # View synthesis prediction 243 243 DepthRefinement : 1 # Dispary refined by depth DoNBDV … … 249 249 VSO : 1 # use of view synthesis optimization for depth coding 250 250 DMM : 1 251 RBC : 1252 251 SDC : 1 253 252 DLT : 1 -
branches/HTM-8.2-dev0/cfg/3D-HEVC/baseCfg_2view+depth.cfg
r696 r712 197 197 IvMvPred : 1 1 # Inter-view motion prediction 198 198 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 199 IlluCompEnable : 1 1# Enable Illumination compensation ( 0: off, 1: on ) (v/d)199 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 200 200 ViewSynthesisPred : 1 # View synthesis prediction 201 201 DepthRefinement : 1 # Dispary refined by depth DoNBDV … … 205 205 VSO : 1 # use of view synthesis optimization for depth coding 206 206 DMM : 1 207 RBC : 1208 207 SDC : 1 209 208 DLT : 1 -
branches/HTM-8.2-dev0/cfg/3D-HEVC/baseCfg_2view.cfg
r622 r712 170 170 IvMvPred : 1 # Inter-view motion prediction 171 171 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 172 IlluCompEnable : 1 1# Enable Illumination compensation ( 0: off, 1: on ) (v/d)172 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 173 173 ViewSynthesisPred : 1 # View synthesis prediction 174 174 DepthRefinement : 1 # Dispary refined by depth DoNBDV -
branches/HTM-8.2-dev0/cfg/3D-HEVC/baseCfg_3view+depth.cfg
r696 r712 227 227 IvMvPred : 1 1 # Inter-view motion prediction 228 228 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 229 IlluCompEnable : 1 1# Enable Illumination compensation ( 0: off, 1: on ) (v/d)229 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 230 230 ViewSynthesisPred : 1 # View synthesis prediction 231 231 DepthRefinement : 1 # Dispary refined by depth DoNBDV … … 237 237 VSO : 1 # use of view synthesis optimization for depth coding 238 238 DMM : 1 239 RBC : 1240 239 SDC : 1 241 240 DLT : 1 -
branches/HTM-8.2-dev0/cfg/3D-HEVC/fullCfg.cfg
r696 r712 254 254 IvMvPred : 1 # Inter-view motion prediction 255 255 AdvMultiviewResPred : 1 # Advanced inter-view residual prediction (0:off, 1:on) 256 IlluCompEnable : 1 1# Enable Illumination compensation ( 0: off, 1: on ) (v/d)256 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 257 257 ViewSynthesisPred : 1 # View synthesis prediction 258 258 DepthRefinement : 1 # Dispary refined by depth DoNBDV … … 262 262 VSO : 1 # use of view synthesis optimization for depth coding 263 263 DMM : 1 264 RBC : 1265 264 SDC : 1 266 265 DLT : 1 -
branches/HTM-8.2-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r696 r712 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") … … 509 511 #endif 510 512 #if H_3D_IC 513 #if SEC_ONLY_TEXTURE_IC_F0151 514 ("IlluCompEnable", m_abUseIC, true, "Enable illumination compensation") 515 #else 511 516 ("IlluCompEnable", m_abUseIC, std::vector<Bool>(2, true), "Enable illumination compensation") 517 #endif 512 518 #endif 513 519 #if H_3D_INTER_SDC … … 2431 2437 #endif 2432 2438 #if H_3D_IC 2439 #if SEC_ONLY_TEXTURE_IC_F0151 2440 printf( "IlluCompEnable: %d ", m_abUseIC); 2441 #else 2433 2442 printf( "IlluCompEnable: %d %d ", m_abUseIC[0] ? 1 : 0, m_abUseIC[1] ? 1 : 0 ); 2443 #endif 2434 2444 #endif 2435 2445 #if H_3D_NBDV_REF … … 2444 2454 #if H_3D_DIM 2445 2455 printf("DMM:%d ", m_useDMM ); 2456 #if !SEC_DMM3_RBC_F0147 2446 2457 printf("RBC:%d ", m_useRBC ); 2458 #endif 2447 2459 printf("SDC:%d ", m_useSDC ); 2448 2460 printf("DLT:%d ", m_useDLT ); -
branches/HTM-8.2-dev0/source/App/TAppEncoder/TAppEncCfg.h
r696 r712 126 126 #endif 127 127 #if H_3D_IC 128 #if SEC_ONLY_TEXTURE_IC_F0151 129 Bool m_abUseIC; 130 #else 128 131 vector<Bool> m_abUseIC; ///< flag for using illumination compensation for inter-view prediction 132 #endif 129 133 #endif 130 134 #if H_3D_NBDV_REF … … 465 469 #if H_3D_DIM 466 470 Bool m_useDMM; ///< flag for using DMM 471 #if !SEC_DMM3_RBC_F0147 467 472 Bool m_useRBC; ///< flag for using RBC 473 #endif 468 474 Bool m_useSDC; ///< flag for using SDC 469 475 Bool m_useDLT; ///< flag for using DLT -
branches/HTM-8.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r696 r712 184 184 #endif 185 185 #if H_3D_IC 186 #if SEC_ONLY_TEXTURE_IC_F0151 187 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC ); 188 #else 186 189 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 ? false : m_abUseIC[isDepth ? 1 : 0] ); 190 #endif 187 191 #endif 188 192 //========== Depth intra modes ========== 189 193 #if H_3D_DIM 190 194 m_cTEncTop.setUseDMM ( isDepth ? m_useDMM : false ); 195 #if !SEC_DMM3_RBC_F0147 191 196 m_cTEncTop.setUseRBC ( isDepth ? m_useRBC : false ); 197 #endif 192 198 m_cTEncTop.setUseSDC ( isDepth ? m_useSDC : false ); 193 199 m_cTEncTop.setUseDLT ( isDepth ? m_useDLT : false ); … … 1651 1657 1652 1658 #if H_3D_DIM 1659 #if SEC_DMM3_RBC_F0147 1660 vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) ); 1661 #else 1653 1662 vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useRBC || m_useSDC || m_useDLT ) ); 1663 #endif 1654 1664 #if H_3D_DIM_DLT 1655 1665 vps.setUseDLTFlag( layer , isDepth && m_useDLT ); -
branches/HTM-8.2-dev0/source/Lib/TLibCommon/ContextTables.h
r710 r712 109 109 #define NUM_DEPTH_INTRA_MODE_CTX 8 ///< number of context models for depth intra modes 110 110 #define NUM_DDC_FLAG_CTX 2 ///< number of context models for deltaDC flag (DMM or RBC) 111 #if QC_DIM_DELTADC_UNIFY_F0132 112 #define NUM_DDC_DATA_CTX 1 ///< number of context models for deltaDC data (DMM or RBC) 113 #else 111 114 #define NUM_DDC_DATA_CTX 2 ///< number of context models for deltaDC data (DMM or RBC) 115 #endif 112 116 #if H_3D_DIM_DMM 113 117 #define NUM_DMM1_DATA_CTX 1 ///< number of context models for DMM1 data 118 #if !SEC_DMM3_RBC_F0147 114 119 #define NUM_DMM3_DATA_CTX 1 ///< number of context models for DMM3 data 120 #endif 115 121 #endif 116 122 #if H_3D_DIM_RBC … … 387 393 INIT_IC_FLAG[3][NUM_IC_FLAG_CTX] = 388 394 { 395 #if LGE_IC_CTX_F0160 396 { 154, 154, 154, }, 397 { 154, 154, 154, }, 398 { 154, 154, 154, }, 399 #else 389 400 { CNU, CNU, CNU, }, 390 401 { 197, 185, 201, }, 391 402 { 197, 185, 201, }, 403 #endif 392 404 }; 393 405 #endif … … 411 423 INIT_DDC_DATA[3][NUM_DDC_DATA_CTX] = 412 424 { 425 #if QC_DIM_DELTADC_UNIFY_F0132 426 { 154 }, 427 { 154 }, 428 { 154 }, 429 #else 413 430 { CNU, CNU }, 414 431 { CNU, CNU }, 415 432 { CNU, CNU }, 433 #endif 416 434 }; 417 435 #if H_3D_DIM_DMM … … 423 441 { CNU }, 424 442 }; 443 #if !SEC_DMM3_RBC_F0147 425 444 static const UChar 426 445 INIT_DMM3_DATA[3][NUM_DMM3_DATA_CTX] = … … 430 449 { CNU }, 431 450 }; 451 #endif 432 452 #endif 433 453 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r708 r712 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 … … 2313 2335 { 2314 2336 UInt uiCtx = 0; 2337 2338 #if LGE_IC_CTX_F0160 2339 TComDataCU* pcTempCU = NULL; 2340 UInt uiTempPartIdx = 0; 2341 2342 pcTempCU = getPULeft( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx ); 2343 uiCtx = ( pcTempCU ) ? pcTempCU->isIC( uiTempPartIdx ) : 0; 2344 2345 pcTempCU = getPUAbove( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx ); 2346 uiCtx += ( pcTempCU ) ? pcTempCU->isIC( uiTempPartIdx ) : 0; 2347 #endif 2315 2348 2316 2349 return uiCtx; … … 6647 6680 } 6648 6681 6682 #if LGE_IC_CTX_F0160 6683 Bool TComDataCU::isIC( UInt uiPartIdx ) 6684 { 6685 if ( m_pcSlice->isIntra () ) 6686 { 6687 return false; 6688 } 6689 return ( ( getSkipFlag(uiPartIdx) || getPredictionMode(uiPartIdx) == MODE_INTER) && getICFlag( uiPartIdx ) && isICFlagRequired( uiPartIdx ) ); 6690 } 6691 #endif 6692 6649 6693 // ==================================================================================================================== 6650 6694 // Protected member functions … … 8304 8348 for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmmWedgeTabIdx[dmmType][uiAbsPartIdx+ui] = tabIdx; } 8305 8349 } 8350 #if !SEC_DMM3_RBC_F0147 8306 8351 Void TComDataCU::setDmm3IntraTabIdxSubParts( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ) 8307 8352 { … … 8309 8354 for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmm3IntraTabIdx[uiAbsPartIdx+ui] = uiTIdx; } 8310 8355 } 8356 #endif 8311 8357 #endif 8312 8358 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComDataCU.h
r708 r712 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 … … 570 572 Void setDmmWedgeTabIdxSubParts ( UInt tabIdx, UInt dmmType, UInt uiAbsPartIdx, UInt uiDepth ); 571 573 574 #if !SEC_DMM3_RBC_F0147 572 575 UInt* getDmm3IntraTabIdx () { return m_dmm3IntraTabIdx; } 573 576 UInt getDmm3IntraTabIdx ( UInt uiIdx ) { return m_dmm3IntraTabIdx[uiIdx]; } 574 577 Void setDmm3IntraTabIdx ( UInt uiIdx, UInt uh ) { m_dmm3IntraTabIdx[uiIdx] = uh; } 575 578 Void setDmm3IntraTabIdxSubParts ( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth ); 579 #endif 576 580 #endif 577 581 #if H_3D_DIM_RBC … … 725 729 Bool isSkipped ( UInt uiPartIdx ); ///< SKIP (no residual) 726 730 Bool isBipredRestriction( UInt puIdx ); 731 732 #if LGE_IC_CTX_F0160 733 Bool isIC ( UInt uiPartIdx ); 734 #endif 727 735 728 736 // ------------------------------------------------------------------------------------------------------------------- -
branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r710 r712 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 { … … 475 479 assert( biSegPattern ); 476 480 Int* piMask = NULL; 481 #if QC_DIM_DELTADC_UNIFY_F0132 || HHI_DIM_PREDSAMP_FIX_F0171 482 piMask = pcCU->getPattern()->getAdiOrgBuf( iWidth, iHeight, m_piYuvExt ); // no filtering 483 #else 477 484 if( isDmmMode ) piMask = pcCU->getPattern()->getAdiOrgBuf( iWidth, iHeight, m_piYuvExt ); // no filtering for DMM 478 485 else piMask = pcCU->getPattern()->getPredictorPtr( 0, g_aucConvertToBit[ iWidth ] + 2, m_piYuvExt ); 486 #endif 479 487 assert( piMask ); 480 488 Int maskStride = 2*iWidth + 1; … … 491 499 Pel deltaDC2 = pcCU->getDimDeltaDC( dimType, 1, uiAbsPartIdx ); 492 500 #if H_3D_DIM_DMM 501 #if QC_DIM_DELTADC_UNIFY_F0132 && !SEC_DMM3_RBC_F0147 502 if( isDmmMode || isRbcMode) 503 #else 493 504 if( isDmmMode ) 505 #endif 494 506 { 495 507 #if H_3D_DIM_DLT … … 502 514 } 503 515 #endif 504 #if H_3D_DIM_RBC 516 #if H_3D_DIM_RBC && !QC_DIM_DELTADC_UNIFY_F0132 505 517 if( isRbcMode ) 506 518 { … … 2398 2410 2399 2411 #if H_3D_DIM_DMM 2412 #if !SEC_DMM3_RBC_F0147 2400 2413 UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx ) 2401 2414 { … … 2409 2422 return g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]][uiColTexIntraDir-2].at(intraTabIdx); 2410 2423 } 2424 #endif 2411 2425 2412 2426 Void TComPrediction::xPredContourFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, TComWedgelet* pcContourWedge ) -
branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComRom.cpp
r655 r712 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-dev0/source/Lib/TLibCommon/TComRom.h
r655 r712 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-dev0/source/Lib/TLibCommon/TComWedgelet.h
r655 r712 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-dev0/source/Lib/TLibCommon/TypeDef.h
r711 r712 65 65 #define H_3D ( HEVC_EXT == 2) 66 66 67 #define LGE_BUGFIX_F0158 1 //JCT3V-F0158 67 68 ///////////////////////////////////////////////////////////////////////////////////////// 68 69 /////////////////////////////////// MAJOR DEFINES /////////////////////////////////// … … 103 104 // MTK_CLIPPING_ALIGN_IC_E0168 // To support simplify bi-prediction PU with identical motion checking, JCT3V-E0168 104 105 106 #define LGE_IC_CTX_F0160 1 //JCT3V-F0160 107 #define SEC_ONLY_TEXTURE_IC_F0151 1 108 105 109 #if H_3D_NBDV 106 110 #define H_3D_NBDV_REF 1 // Depth oriented neighboring block disparity derivation … … 158 162 // LGE_SDC_REMOVE_DC_E0158 Removal of DC mode from SDC 159 163 // LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1 Removal of overlap between DMM3 and DMM1 164 #define SEC_DMM3_RBC_F0147 1 // Removal of DMM3 and RBC from DMMs 160 165 161 166 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 213 218 #if H_3D_DIM 214 219 #define H_3D_DIM_DMM 1 // Depth Modeling Modes 220 #if !SEC_DMM3_RBC_F0147 215 221 #define H_3D_DIM_RBC 1 // Region Boundary Chain mode 222 #endif 216 223 #define H_3D_DIM_SDC 1 // Simplified Depth Coding method 217 224 #define H_3D_DIM_DLT 1 // Depth Lookup Table … … 219 226 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 220 227 // LG_ZEROINTRADEPTHRESI_A0087 228 #define QC_DIM_DELTADC_UNIFY_F0132 1 // Unify delta DC coding in depth intra modes 229 #define HHI_DIM_PREDSAMP_FIX_F0171 1 230 #define LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1 //JCT3V-F0159 221 231 #endif 222 232 ///// ***** VIEW SYNTHESIS PREDICTION ********* -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r696 r712 1803 1803 } 1804 1804 #if H_3D_IC 1805 #if SEC_ONLY_TEXTURE_IC_F0151 1806 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth()) 1807 #else 1805 1808 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) ) 1809 #endif 1806 1810 { 1807 1811 UInt uiCodeTmp = 0; -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r708 r712 741 741 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 742 742 { 743 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 744 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 745 { 746 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 ] ) ); 747 } 748 else 749 { 743 750 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 751 } 752 #else 753 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 754 #endif 744 755 pRecIPred[ uiX ] = pReco[ uiX ]; 745 756 } -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r708 r712 111 111 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 112 112 113 #if SEC_ONLY_TEXTURE_IC_F0151 114 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 115 #else 113 116 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) ) 117 #endif 114 118 { 115 119 return; -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r655 r712 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 … … 408 414 } 409 415 416 #if QC_DIM_DELTADC_UNIFY_F0132 417 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt uiNumSeg ) 418 { 419 UInt absValDeltaDC = 0; 420 xReadExGolombLevel( absValDeltaDC, m_cDdcDataSCModel.get(0, 0, 0) ); 421 rValDeltaDC = (Pel)absValDeltaDC + ( uiNumSeg > 1 ? 0 : 1 ); 422 423 if( rValDeltaDC != 0 ) 424 { 425 UInt uiSign; 426 m_pcTDecBinIf->decodeBinEP( uiSign ); 427 if ( uiSign ) 428 { 429 rValDeltaDC = -rValDeltaDC; 430 } 431 } 432 } 433 #else 410 434 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt dimType ) 411 435 { … … 424 448 } 425 449 } 450 #endif 451 426 452 #if H_3D_DIM_DMM 427 453 Void TDecSbac::xParseDmm1WedgeIdx( UInt& ruiTabIdx, Int iNumBit ) … … 435 461 ruiTabIdx = uiIdx; 436 462 } 437 463 #if !SEC_DMM3_RBC_F0147 438 464 Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit ) 439 465 { … … 446 472 ruiIntraIdx = uiIdx; 447 473 } 474 #endif 448 475 #endif 449 476 #if H_3D_DIM_RBC … … 1140 1167 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 1141 1168 } break; 1169 #if !SEC_DMM3_RBC_F0147 1142 1170 case( DMM3_IDX ): 1143 1171 { … … 1146 1174 pcCU->setDmm3IntraTabIdxSubParts( uiIntraIdx, absPartIdx, depth ); 1147 1175 } break; 1176 #endif 1148 1177 case( DMM4_IDX ): break; 1149 1178 #endif … … 1157 1186 } 1158 1187 1159 #if H_3D_DIM_SDC 1188 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1160 1189 if( pcCU->getSDCFlag(absPartIdx) ) 1161 1190 { … … 1173 1202 { 1174 1203 #endif 1204 #if QC_DIM_DELTADC_UNIFY_F0132 1205 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1206 #else 1175 1207 if( dimType < DIM_NUM_TYPE ) 1208 #endif 1176 1209 { 1177 1210 UInt symbol; 1211 #if QC_DIM_DELTADC_UNIFY_F0132 1212 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1213 1214 if( pcCU->getSDCFlag( absPartIdx ) ) 1215 { 1216 assert(pcCU->getPartitionSize(absPartIdx)==SIZE_2Nx2N); 1217 pcCU->setTrIdxSubParts(0, absPartIdx, depth); 1218 pcCU->setCbfSubParts(1, 1, 1, absPartIdx, depth); 1219 } 1220 1221 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1222 1223 if( symbol ) 1224 { 1225 if( !pcCU->getSDCFlag( absPartIdx ) ) 1226 { 1227 dir += symbol; 1228 } 1229 } 1230 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1231 { 1232 Pel valDeltaDC = 0; 1233 if( symbol ) 1234 { 1235 xParseDimDeltaDC( valDeltaDC, uiNumSegments ); 1236 } 1237 1238 if( pcCU->getSDCFlag( absPartIdx ) ) 1239 { 1240 pcCU->setSDCSegmentDCOffset( valDeltaDC, segment, absPartIdx ); 1241 } 1242 else 1243 { 1244 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 1245 } 1246 } 1247 #else 1178 1248 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 1179 1249 if( symbol ) … … 1187 1257 } 1188 1258 } 1189 } 1190 #if H_3D_DIM_SDC 1259 #endif 1260 } 1261 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1191 1262 } 1192 1263 #endif … … 1218 1289 else if( puIdx == 0 ) 1219 1290 { 1291 #if SEC_DMM3_RBC_F0147 1292 while( binNum < 1 && symbol ) 1293 #else 1220 1294 while( binNum < 3 && symbol ) 1295 #endif 1221 1296 { 1222 1297 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); … … 1225 1300 binNum++; 1226 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 1227 1306 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1228 1307 else if( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1229 1308 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1230 1309 else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1310 #endif 1231 1311 } 1232 1312 else 1233 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 1234 1328 UInt maxBinNum = 0; 1235 1329 m_pcTDecBinIf->decodeBinEP(symbol); … … 1263 1357 else if ( modeCode == 3 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1264 1358 } 1359 #endif 1265 1360 } 1266 1361 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecSbac.h
r655 r712 99 99 #if H_3D_DIM 100 100 Void xReadExGolombLevel ( UInt& ruiSymbol, ContextModel& rcSCModel ); 101 #if QC_DIM_DELTADC_UNIFY_F0132 102 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt uiNumSeg ); 103 #else 101 104 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt dimType ); 105 #endif 102 106 #if H_3D_DIM_DMM 103 107 Void xParseDmm1WedgeIdx ( UInt& ruiTabIdx, Int iNumBit ); 108 #if !SEC_DMM3_RBC_F0147 104 109 Void xParseDmm3WedgeIdx ( UInt& ruiIntraIdx, Int iNumBit ); 110 #endif 105 111 #endif 106 112 #if H_3D_DIM_RBC … … 213 219 #if H_3D_DIM_DMM 214 220 ContextModel3DBuffer m_cDmm1DataSCModel; 221 #if !SEC_DMM3_RBC_F0147 215 222 ContextModel3DBuffer m_cDmm3DataSCModel; 223 #endif 216 224 #endif 217 225 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r696 r712 1396 1396 } 1397 1397 #if H_3D_IC 1398 #if SEC_ONLY_TEXTURE_IC_F0151 1399 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth()) 1400 #else 1398 1401 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) ) 1402 #endif 1399 1403 { 1400 1404 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncCfg.h
r696 r712 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; … … 983 985 Bool getUseDMM () { return m_useDMM; } 984 986 Void setUseDMM ( Bool b) { m_useDMM = b; } 987 #if !SEC_DMM3_RBC_F0147 985 988 Bool getUseRBC () { return m_useRBC; } 986 989 Void setUseRBC ( Bool b) { m_useRBC = b; } 990 #endif 987 991 Bool getUseSDC () { return m_useSDC; } 988 992 Void setUseSDC ( Bool b) { m_useSDC = b; } -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r711 r712 497 497 #endif 498 498 #if H_3D_IC 499 #if SEC_ONLY_TEXTURE_IC_F0151 500 Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ) && !rpcTempCU->getSlice()->getIsDepth(); 501 #else 499 502 Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ); 503 #endif 500 504 bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC(); 501 505 #endif -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r655 r712 160 160 Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 161 161 { 162 #if SEC_ONLY_TEXTURE_IC_F0151 163 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 164 #else 162 165 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) ) 166 #endif 163 167 { 164 168 return; -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r655 r712 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 … … 518 526 } 519 527 528 #if QC_DIM_DELTADC_UNIFY_F0132 529 Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt uiNumSeg ) 530 { 531 xWriteExGolombLevel( UInt( abs( valDeltaDC ) - ( uiNumSeg > 1 ? 0 : 1 ) ), m_cDdcDataSCModel.get(0, 0, 0) ); 532 if( valDeltaDC != 0 ) 533 { 534 UInt uiSign = valDeltaDC > 0 ? 0 : 1; 535 m_pcBinIf->encodeBinEP( uiSign ); 536 } 537 } 538 #else 520 539 Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt dimType ) 521 540 { … … 527 546 } 528 547 } 548 #endif 529 549 530 550 #if H_3D_DIM_DMM … … 537 557 } 538 558 559 #if !SEC_DMM3_RBC_F0147 539 560 Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit ) 540 561 { … … 544 565 } 545 566 } 567 #endif 546 568 #endif 547 569 #if H_3D_DIM_RBC … … 1209 1231 xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1210 1232 } break; 1233 #if !SEC_DMM3_RBC_F0147 1211 1234 case( DMM3_IDX ): 1212 1235 { 1213 1236 xCodeDmm3WedgeIdx( pcCU->getDmm3IntraTabIdx( absPartIdx ), g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1214 1237 } break; 1238 #endif 1215 1239 case( DMM4_IDX ): break; 1216 1240 #endif … … 1225 1249 } 1226 1250 1227 #if H_3D_DIM_SDC 1251 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1228 1252 if( pcCU->getSDCFlag( absPartIdx ) ) 1229 1253 { … … 1238 1262 { 1239 1263 #endif 1264 #if QC_DIM_DELTADC_UNIFY_F0132 1265 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1266 #else 1240 1267 if( dimType < DIM_NUM_TYPE ) 1241 { 1268 #endif 1269 { 1270 #if QC_DIM_DELTADC_UNIFY_F0132 1271 UInt dimDeltaDC; 1272 Pel deltaDC; 1273 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1274 if( pcCU->getSDCFlag( absPartIdx ) ) 1275 { 1276 if( uiNumSegments==1 ) 1277 { 1278 dimDeltaDC = pcCU->getSDCSegmentDCOffset(0, absPartIdx) ? 1 : 0; 1279 } 1280 else 1281 { 1282 dimDeltaDC = ( pcCU->getSDCSegmentDCOffset(0, absPartIdx) || pcCU->getSDCSegmentDCOffset(1, absPartIdx) ) ? 1 : 0; 1283 } 1284 } 1285 else 1286 { 1287 dimDeltaDC = isDimDeltaDC( dir ); 1288 } 1289 1290 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1291 1292 if( dimDeltaDC ) 1293 { 1294 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1295 { 1296 deltaDC = pcCU->getSDCFlag( absPartIdx ) ? pcCU->getSDCSegmentDCOffset(segment, absPartIdx) : pcCU->getDimDeltaDC( dimType, segment, absPartIdx ); 1297 xCodeDimDeltaDC( deltaDC, uiNumSegments ); 1298 } 1299 } 1300 #else 1242 1301 UInt dimDeltaDC = isDimDeltaDC( dir ); 1243 1302 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); … … 1249 1308 } 1250 1309 } 1251 } 1252 #if H_3D_DIM_SDC 1310 #endif 1311 } 1312 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1253 1313 } 1254 1314 #endif … … 1257 1317 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx ) 1258 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 1259 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}}; 1260 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 1261 1326 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 1262 1327 UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 ); … … 1273 1338 case DMM1_IDX: codeIdx = 3; break; 1274 1339 case DMM4_IDX: codeIdx = 4; break; 1340 #if !SEC_DMM3_RBC_F0147 1275 1341 case DMM3_IDX: codeIdx = 5; break; 1276 1342 case RBC_IDX: codeIdx = 6; break; 1343 #endif 1277 1344 default: break; 1278 1345 } … … 1289 1356 } 1290 1357 #endif 1358 #if !SEC_DMM3_RBC_F0147 1291 1359 if( puIdx==1 ) 1292 1360 { … … 1300 1368 } 1301 1369 } 1370 #endif 1302 1371 //mode coding 1303 1372 for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ ) -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncSbac.h
r655 r712 118 118 #if H_3D_DIM 119 119 Void xWriteExGolombLevel ( UInt uiSymbol, ContextModel& rcSCModel ); 120 #if QC_DIM_DELTADC_UNIFY_F0132 121 Void xCodeDimDeltaDC ( Pel valDeltaDC, UInt uiNumSeg ); 122 #else 120 123 Void xCodeDimDeltaDC ( Pel valDeltaDC, UInt dimType ); 124 #endif 121 125 #if H_3D_DIM_DMM 122 126 Void xCodeDmm1WedgeIdx ( UInt uiTabIdx, Int iNumBit ); 127 #if !SEC_DMM3_RBC_F0147 123 128 Void xCodeDmm3WedgeIdx ( UInt uiIntraIdx, Int iNumBit ); 129 #endif 124 130 #endif 125 131 #if H_3D_DIM_RBC … … 253 259 #if H_3D_DIM_DMM 254 260 ContextModel3DBuffer m_cDmm1DataSCModel; 261 #if !SEC_DMM3_RBC_F0147 255 262 ContextModel3DBuffer m_cDmm3DataSCModel; 263 #endif 256 264 #endif 257 265 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r708 r712 1126 1126 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1127 1127 { 1128 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 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 pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ); 1132 } 1133 else 1134 { 1135 pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ]; 1136 } 1137 #else 1128 1138 pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ]; 1139 #endif 1129 1140 } 1130 1141 pOrg += uiStride; … … 1190 1201 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1191 1202 { 1203 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1204 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1205 { 1206 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 else 1209 { 1210 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 1211 } 1212 #else 1192 1213 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 1214 #endif 1193 1215 pRecQt [ uiX ] = pReco[ uiX ]; 1194 1216 pRecIPred[ uiX ] = pReco[ uiX ]; … … 2876 2898 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 2877 2899 } break; 2900 #if !SEC_DMM3_RBC_F0147 2878 2901 case( DMM3_IDX ): 2879 2902 { … … 2893 2916 } 2894 2917 } break; 2918 #endif 2895 2919 case( DMM4_IDX ): 2896 2920 { … … 2928 2952 { 2929 2953 Pel deltaDC1 = 0; Pel deltaDC2 = 0; 2954 #if QC_DIM_DELTADC_UNIFY_F0132 2955 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); 2956 #else 2930 2957 xSearchRbcDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); 2958 #endif 2931 2959 pcCU->setDimDeltaDC( RBC_IDX, 0, uiPartOffset, deltaDC1 ); 2932 2960 pcCU->setDimDeltaDC( RBC_IDX, 1, uiPartOffset, deltaDC2 ); … … 2975 3003 Bool bTestZeroResi = false; 2976 3004 #if H_3D_DIM_ENC 3005 #if LGE_BUGFIX_F0158 3006 bTestZeroResi |= pcCU->getSlice()->getIsDepth() && !pcCU->getSlice()->isIRAP(); 3007 #else 2977 3008 bTestZeroResi |= pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->isIRAP(); 3009 #endif 2978 3010 #endif 2979 3011 #if H_3D_DIM_SDC … … 7324 7356 } 7325 7357 7358 #if !SEC_DMM3_RBC_F0147 7326 7359 Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ) 7327 7360 { … … 7360 7393 cPredYuv.destroy(); 7361 7394 } 7362 7395 #endif 7363 7396 #endif 7364 7397 #if H_3D_DIM_RBC -
branches/HTM-8.2-dev0/source/Lib/TLibEncoder/TEncSearch.h
r655 r712 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.