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/TLibEncoder/TEncSbac.cpp

    r820 r826  
    691691  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);
    692692
     693#if MTK_TEX_DEP_PAR_G0055
     694  Bool depthDependent = false;
     695  UInt uiTexturePart = eSize;
     696#endif
    693697  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() )
    694698  {
     
    696700    UInt uiCUIdx            = (pcCU->getZorderIdxInCU() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCU();
    697701    assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth);
     702#if !MTK_TEX_DEP_PAR_G0055
    698703    if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) != SIZE_NxN)
     704#else
     705    if(pcTextureCU->getDepth(uiCUIdx) == uiDepth )
     706    {
     707      depthDependent = true;
     708      uiTexturePart = pcTextureCU->getPartitionSize( uiCUIdx );
     709    }
     710    if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) == SIZE_2Nx2N)
     711#endif
    699712    {
    700713      assert( eSize == SIZE_2Nx2N );
     
    718731  DTRACE_CU("part_mode", eSize )
    719732#endif       
     733#if MTK_TEX_DEP_PAR_G0055
     734    if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N)
     735    {
     736#endif
    720737  switch(eSize)
    721738  {
     
    784801    }
    785802  }
     803#if MTK_TEX_DEP_PAR_G0055
     804    }
     805    else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD)
     806    {
     807      //assert(eSize!=SIZE_NxN);
     808      //assert(eSize!=SIZE_Nx2N);
     809      //assert(eSize==SIZE_2Nx2N || eSize==SIZE_2NxN || eSize==SIZE_2NxnU || eSize==SIZE_2NxnD);
     810      switch(eSize)
     811      {
     812      case SIZE_2Nx2N:
     813        {
     814          m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     815          break;
     816        }
     817      case SIZE_2NxN:
     818        {
     819          m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     820          if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) )
     821          {     
     822            m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) );
     823          }
     824          break;
     825        }
     826      case SIZE_2NxnU:
     827      case SIZE_2NxnD:
     828        {
     829          m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     830          m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) );
     831          m_pcBinIf->encodeBinEP((eSize == SIZE_2NxnU? 0: 1));
     832          break;
     833        }
     834      default:
     835        {
     836          assert(0);
     837        }
     838      }
     839    }
     840    else if(uiTexturePart == SIZE_Nx2N|| uiTexturePart==SIZE_nLx2N || uiTexturePart==SIZE_nRx2N)
     841    {
     842      //assert(eSize!=SIZE_NxN);
     843      //assert(eSize!=SIZE_2NxN);
     844      //assert(eSize==SIZE_2Nx2N ||eSize==SIZE_Nx2N || eSize==SIZE_nLx2N || eSize==SIZE_nRx2N);
     845      switch(eSize)
     846      {
     847      case SIZE_2Nx2N:
     848        {
     849          m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     850          break;
     851        }
     852      case SIZE_Nx2N:
     853        {
     854          m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     855          if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) )
     856          {     
     857            m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) );
     858          }
     859          break;
     860        }
     861      case SIZE_nLx2N:
     862      case SIZE_nRx2N:
     863        {
     864          m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     865          m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) );
     866          m_pcBinIf->encodeBinEP((eSize == SIZE_nLx2N? 0: 1));
     867          break;
     868        }
     869      default:
     870        {
     871          assert(0);
     872        }
     873      }
     874    }
     875    else
     876    {
     877      printf("uiTexturePart=%d",uiTexturePart);
     878      assert(0);
     879    }
     880#endif
    786881}
    787882
     
    9181013  if( nBinNum > 1 )
    9191014  {
     1015#if MTK_ARP_FLAG_CABAC_SIMP_G0061
     1016     m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 2 ) );
     1017#else
    9201018     m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 3 ) );
     1019#endif
    9211020  }
    9221021#if H_MV_ENC_DEC_TRAC
     
    9361035  // get context function is here
    9371036  UInt uiSymbol = pcCU->getICFlag( uiAbsPartIdx ) ? 1 : 0;
     1037#if MTK_IC_FLAG_CABAC_SIMP_G0061
     1038  m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) );
     1039#else
    9381040  UInt uiCtxIC  = pcCU->getCtxICFlag( uiAbsPartIdx ) ;
    9391041  m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) );
     1042#endif
    9401043#if !H_MV_ENC_DEC_TRAC
    9411044  DTRACE_CABAC_VL( g_nSymbolCounter++ );
Note: See TracChangeset for help on using the changeset viewer.