Changeset 712 in 3DVCSoftware for branches/HTM-8.2-dev0/source/Lib/TLibCommon
- Timestamp:
- 21 Nov 2013, 13:28:24 (11 years ago)
- Location:
- branches/HTM-8.2-dev0/source/Lib/TLibCommon
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
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 *********
Note: See TracChangeset for help on using the changeset viewer.