Changeset 826 in 3DVCSoftware for branches/HTM-9.3-dev0/source/Lib/TLibEncoder


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

Merged 9.3-dev2-MediaTek@812.

Location:
branches/HTM-9.3-dev0/source/Lib/TLibEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r821 r826  
    563563          bTryNx2N  = false;
    564564          bTry2NxN  = false;
     565#if MTK_TEX_DEP_PAR_G0055
     566          if( pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize(uiCUIdx) != SIZE_2Nx2N)
     567          {
     568            if(pcTextureCU->getPartitionSize(uiCUIdx)==SIZE_2NxN || pcTextureCU->getPartitionSize(uiCUIdx)==SIZE_2NxnU|| pcTextureCU->getPartitionSize(uiCUIdx)==SIZE_2NxnD)
     569              bTry2NxN  = true;
     570            else
     571              bTryNx2N  = true;
     572          }
     573#endif
    565574        }
    566575      }
     
    16111620#endif
    16121621    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx );
     1622#if !SEC_IC_ARP_SIG_G0072
    16131623#if H_3D_IC
    16141624    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    16151625#endif
     1626#endif
    16161627#if H_3D_ARP
    16171628    m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     1629#endif
     1630#if SEC_IC_ARP_SIG_G0072
     1631#if H_3D_IC
     1632    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1633#endif
    16181634#endif
    16191635    finishCU(pcCU,uiAbsPartIdx,uiDepth);
     
    16381654  // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    16391655  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
     1656#if !SEC_IC_ARP_SIG_G0072
    16401657#if H_3D_IC
    16411658  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    16421659#endif
     1660#endif
    16431661#if H_3D_ARP
    16441662  m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     1663#endif
     1664#if SEC_IC_ARP_SIG_G0072
     1665#if H_3D_IC
     1666  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1667#endif
    16451668#endif
    16461669#if H_3D_INTER_SDC
     
    18721895#if H_3D_ARP
    18731896  Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1;
     1897#if SEC_IC_ARP_SIG_G0072
     1898  if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag )
     1899#else
    18741900  if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV )
     1901#endif
    18751902  {
    18761903    nARPWMax = 0;
     
    21772204  Int nARPWMax    = rpcTempCU->getSlice()->getARPStepNum() - 1;
    21782205
     2206#if SEC_IC_ARP_SIG_G0072
     2207  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) )
     2208#else
    21792209  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV  )
     2210#endif
    21802211  {
    21812212    nARPWMax = 0;
  • branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp

    r820 r826  
    160160Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    161161{
     162#if SEC_IC_ARP_SIG_G0072
     163  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
     164#else
    162165  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
     166#endif
    163167  {
    164168    return;
  • 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++ );
  • branches/HTM-9.3-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r820 r826  
    54565456    m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true);
    54575457    m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, true );
     5458#if !SEC_IC_ARP_SIG_G0072
    54585459#if H_3D_IC
    54595460    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    54605461#endif
     5462#endif
    54615463#if H_3D_ARP
    54625464    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
     5465#endif
     5466#if SEC_IC_ARP_SIG_G0072
     5467#if H_3D_IC
     5468    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     5469#endif
    54635470#endif
    54645471    uiBits = m_pcEntropyCoder->getNumberOfWrittenBits();
     
    70367043    m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true);
    70377044    m_pcEntropyCoder->encodeMergeIndex(pcCU, 0, true);
     7045#if !SEC_IC_ARP_SIG_G0072
    70387046#if H_3D_IC
    70397047    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    70407048#endif
     7049#endif
    70417050#if H_3D_ARP
    70427051    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
     7052#endif
     7053#if SEC_IC_ARP_SIG_G0072
     7054#if H_3D_IC
     7055    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     7056#endif
    70437057#endif
    70447058    ruiBits += m_pcEntropyCoder->getNumberOfWrittenBits();
     
    70557069    m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
    70567070    m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );
     7071#if !SEC_IC_ARP_SIG_G0072
    70577072#if H_3D_IC
    70587073    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    70597074#endif
     7075#endif
    70607076#if H_3D_ARP
    70617077    m_pcEntropyCoder->encodeARPW( pcCU , 0 );
     7078#endif
     7079#if SEC_IC_ARP_SIG_G0072
     7080#if H_3D_IC
     7081    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     7082#endif
    70627083#endif
    70637084#if H_3D_INTER_SDC
Note: See TracChangeset for help on using the changeset viewer.