Ignore:
Timestamp:
5 Feb 2014, 18:55:49 (10 years ago)
Author:
tech
Message:

Merged 9.3-dev2-MediaTek@812.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev0/source/Lib/TLibDecoder/TDecSbac.cpp

    r820 r826  
    793793  Bool rapPic     = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    794794
     795#if MTK_TEX_DEP_PAR_G0055
     796  Bool depthDependent = false;
     797  UInt uiTexturePart = uiMode;
     798#endif
    795799  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
    796800  {
    797801    TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr());
    798802    assert(pcTextureCU->getDepth(uiAbsPartIdx) >= uiDepth);
     803#if !MTK_TEX_DEP_PAR_G0055
    799804    if (pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth && pcTextureCU->getPartitionSize( uiAbsPartIdx ) != SIZE_NxN)
     805#else
     806    if(pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth )
     807    {
     808      depthDependent = true;
     809      uiTexturePart = pcTextureCU->getPartitionSize( uiAbsPartIdx );
     810    }
     811    if (pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth && pcTextureCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N)
     812#endif
    800813    {
    801814      bParsePartSize = false;
     
    842855    if(bParsePartSize)
    843856    {
     857#endif
     858#if MTK_TEX_DEP_PAR_G0055
     859      if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N)
     860      {
    844861#endif
    845862      UInt uiMaxNumBits = 2;
     
    879896        }
    880897      }
     898#if MTK_TEX_DEP_PAR_G0055
     899      }
     900      else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD)
     901      {
     902        UInt uiMaxNumBits = 1;
     903        if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) )
     904        {
     905          uiMaxNumBits ++;
     906        }
     907        for ( UInt ui = 0; ui < uiMaxNumBits; ui++ )
     908        {
     909          m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) );
     910          if ( uiSymbol )
     911          {
     912            break;
     913          }
     914          uiMode++;
     915        }
     916        eMode = (PartSize) uiMode;
     917        if(uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==1 )
     918        {
     919          eMode = SIZE_2NxN;
     920        }
     921        else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth )==0  && uiSymbol==0)
     922        {
     923          eMode = SIZE_2NxN;
     924        }
     925        else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==0)
     926        {
     927          m_pcTDecBinIf->decodeBinEP(uiSymbol);
     928          eMode = (uiSymbol == 0? SIZE_2NxnU : SIZE_2NxnD);
     929        }
     930      }
     931      else if(uiTexturePart == SIZE_Nx2N|| uiTexturePart==SIZE_nLx2N || uiTexturePart==SIZE_nRx2N)
     932      {
     933        UInt uiMaxNumBits = 1;
     934        if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) )
     935        {
     936          uiMaxNumBits ++;
     937        }
     938        for ( UInt ui = 0; ui < uiMaxNumBits; ui++ )
     939        {
     940          m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) );
     941          if ( uiSymbol )
     942          {
     943            break;
     944          }
     945          uiMode++;
     946        }
     947        eMode = (PartSize) uiMode;
     948        if(uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==1 )
     949        {
     950          eMode = SIZE_Nx2N;
     951        }
     952        else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth )==0  && uiSymbol==0)
     953        {
     954          eMode = SIZE_Nx2N;
     955        }
     956        else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) && uiSymbol==0)
     957        {
     958          m_pcTDecBinIf->decodeBinEP(uiSymbol);
     959          eMode = (uiSymbol == 0? SIZE_nLx2N : SIZE_nRx2N);
     960        }
     961      }
     962      else
     963        assert(0);
     964#endif
    881965#if H_MV_ENC_DEC_TRAC         
    882966      DTRACE_CU("part_mode", eMode )
     
    20672151  if( 1 == uiW )   
    20682152  {
     2153#if MTK_ARP_FLAG_CABAC_SIMP_G0061
     2154    m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 2 ) );
     2155#else
    20692156    m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 3 ) );
     2157#endif
    20702158    uiW += ( 1 == uiCode ? 1 : 0 );
    20712159  }
     
    20872175{
    20882176  UInt uiSymbol = 0;
     2177#if MTK_IC_FLAG_CABAC_SIMP_G0061
     2178  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) );
     2179#else
    20892180  UInt uiCtxIC = pcCU->getCtxICFlag( uiAbsPartIdx );
    20902181  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) );
     2182#endif
    20912183#if !H_MV_ENC_DEC_TRAC
    20922184  DTRACE_CABAC_VL( g_nSymbolCounter++ );
Note: See TracChangeset for help on using the changeset viewer.