Ignore:
Timestamp:
15 Nov 2013, 03:34:41 (11 years ago)
Author:
samsung-htm
Message:

Integration of F0147: DMM simplification and signalling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSbac.cpp

    r667 r697  
    9595#if H_3D_DIM_DMM
    9696, m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     97#if !SEC_DMM3_RBC_F0147
    9798, m_cDmm3DataSCModel          ( 1,             1,               NUM_DMM3_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     99#endif
    98100#endif
    99101#if H_3D_DIM_RBC
     
    174176#if H_3D_DIM_DMM
    175177  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     178#if !SEC_DMM3_RBC_F0147
    176179  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
     180#endif
    177181#endif
    178182#if H_3D_DIM_RBC
     
    262266#if H_3D_DIM_DMM
    263267      curCost += m_cDmm1DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );
     268#if !SEC_DMM3_RBC_F0147
    264269      curCost += m_cDmm3DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM3_DATA );
     270#endif
    265271#endif
    266272#if H_3D_DIM_RBC
     
    331337#if H_3D_DIM_DMM
    332338  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     339#if !SEC_DMM3_RBC_F0147
    333340  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
     341#endif
    334342#endif
    335343#if H_3D_DIM_RBC
     
    549557}
    550558
     559#if !SEC_DMM3_RBC_F0147
    551560Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit )
    552561{
     
    556565  }
    557566}
     567#endif
    558568#endif
    559569#if H_3D_DIM_RBC
     
    12211231      xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12221232    } break;
     1233#if !SEC_DMM3_RBC_F0147
    12231234  case( DMM3_IDX ):
    12241235    {
    12251236      xCodeDmm3WedgeIdx( pcCU->getDmm3IntraTabIdx( absPartIdx ), g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12261237    } break;
     1238#endif
    12271239  case( DMM4_IDX ): break;
    12281240#endif
     
    13051317Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    13061318{
     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
    13071323    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}};
    13081324    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
    13091326  UInt dir = pcCU->getLumaIntraDir( absPartIdx );
    13101327  UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 );
     
    13211338    case DMM1_IDX: codeIdx = 3; break;
    13221339    case DMM4_IDX: codeIdx = 4; break;
     1340#if !SEC_DMM3_RBC_F0147
    13231341    case DMM3_IDX: codeIdx = 5; break;
    13241342    case  RBC_IDX: codeIdx = 6; break;
     1343#endif
    13251344    default:                    break;
    13261345    }
     
    13371356  }
    13381357#endif
     1358#if !SEC_DMM3_RBC_F0147
    13391359  if( puIdx==1 )
    13401360  {
     
    13481368      }
    13491369  }
     1370#endif
    13501371  //mode coding
    13511372  for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ )
Note: See TracChangeset for help on using the changeset viewer.