Changeset 969 in 3DVCSoftware


Ignore:
Timestamp:
5 Jul 2014, 09:34:43 (10 years ago)
Author:
tech
Message:

Cleanup part 3.

Location:
branches/HTM-11.1-dev0/source
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp

    r964 r969  
    523523#if H_3D_IC
    524524  ("IlluCompEnable",           m_abUseIC, true, "Enable illumination compensation")
    525 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    526525  ("IlluCompLowLatencyEnc",    m_bUseLowLatencyICEnc, false, "Enable low-latency illumination compensation encoding")
    527 #endif
    528526#endif
    529527#if H_3D_INTER_SDC
     
    25152513#if H_3D_IC
    25162514  printf( "IlluCompEnable:%d ", m_abUseIC);
    2517 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    25182515  printf ("IlluCompLowLatencyEnc:%d ",  m_bUseLowLatencyICEnc);
    2519 #endif
    25202516#endif
    25212517#if H_3D_NBDV_REF
  • branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncCfg.h

    r964 r969  
    140140#if H_3D_IC
    141141  Bool   m_abUseIC;
    142 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    143   Bool  m_bUseLowLatencyICEnc;
    144 #endif
     142  Bool   m_bUseLowLatencyICEnc;
    145143#endif
    146144#if H_3D_NBDV_REF
  • branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp

    r964 r969  
    193193    m_cTEncTop.setDWeight                      ( isDepth ? m_iDWeight             : 0     );
    194194#endif // H_3D_VSO
    195 #if H_3D_ARP && !QC_IV_PRED_CONSTRAINT_H0137
    196     //====== Advanced Inter-view Residual Prediction =========
    197     m_cTEncTop.setUseAdvRP                     ( ( isDepth || 0==layerIdInVps ) ? 0 : m_uiUseAdvResPred );
    198     m_cTEncTop.setARPStepNum                   ( ( isDepth || 0==layerIdInVps ) ? 1 : H_3D_ARP_WFNR     );
    199 #endif
    200195#if H_3D_SPIVMP
    201196    m_cTEncTop.setSubPULog2Size                 (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size   );
     
    204199#if H_3D_IC
    205200    m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC );
    206 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    207201    m_cTEncTop.setUseICLowLatencyEnc           ( m_bUseLowLatencyICEnc );
    208 #endif
    209202#endif
    210203  //========== Depth intra modes ==========
     
    18691862
    18701863#if H_3D_ARP
    1871 #if QC_IV_PRED_CONSTRAINT_H0137
    18721864    vps.setUseAdvRP        ( layer, ( isDepth || isLayerZero || !vps.getNumDirectRefLayers(layer) ) ? 0 : m_uiUseAdvResPred );
    18731865    vps.setARPStepNum      ( layer, ( isDepth || isLayerZero || !vps.getNumDirectRefLayers(layer) ) ? 1 : H_3D_ARP_WFNR     );
    1874 #else
    1875     vps.setUseAdvRP        ( layer, ( isDepth || isLayerZero ) ? 0 : m_uiUseAdvResPred );
    1876     vps.setARPStepNum      ( layer, ( isDepth || isLayerZero ) ? 1 : H_3D_ARP_WFNR     );
    1877 #endif 
    18781866#endif 
    18791867#if H_3D_SPIVMP
     
    18931881
    18941882#if H_3D_IV_MERGE
    1895 #if QC_IV_PRED_CONSTRAINT_H0137
    18961883    if( !vps.getNumDirectRefLayers(layer) )
    18971884    {
     
    19001887    else
    19011888    {
    1902 #endif
    1903     if( isDepth )
    1904     {
    1905       vps.setIvMvPredFlag         ( layer, (layer != 1) && m_ivMvPredFlag[1] );
    1906     }
    1907     else
    1908     {
    1909       vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] );
    1910     }
    1911 #if QC_IV_PRED_CONSTRAINT_H0137
    1912     }
    1913 #endif
     1889      if( isDepth )
     1890      {
     1891        vps.setIvMvPredFlag         ( layer, (layer != 1) && m_ivMvPredFlag[1] );
     1892      }
     1893      else
     1894      {
     1895        vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] );
     1896      }
     1897    }
    19141898#endif
    19151899#if H_3D_NBDV_REF
     
    19171901#endif
    19181902#if H_3D_VSP
    1919 #if QC_IV_PRED_CONSTRAINT_H0137
    19201903    vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && vps.getNumDirectRefLayers(layer) && m_viewSynthesisPredFlag );         
    1921 #else
    1922     vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && m_viewSynthesisPredFlag );         
    1923 #endif
    19241904#endif
    19251905#if H_3D_DBBP
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r968 r969  
    43774377  if ( ivMvPredFlag && cDisInfo.m_aVIdxCan!=-1)
    43784378  {
    4379 #if SEC_ADAPT_DISABLE_IVMP
    43804379    getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP, bICFlag );
    4381 #else
    4382     getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP );
    4383 #endif
    43844380  } 
    43854381
     
    67096705, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
    67106706#endif
    6711 #if SEC_ADAPT_DISABLE_IVMP
    67126707, Bool bICFlag
    6713 #endif
    67146708)
    67156709{
     
    67536747#endif
    67546748
    6755 #if SEC_ADAPT_DISABLE_IVMP
    67566749  if(!bICFlag)
    67576750  {
    6758 #endif
    67596751
    67606752#if H_3D_SPIVMP
    6761   ////////////////////////////////
    6762   //////////sub-PU IvMC///////////
    6763   ////////////////////////////////
    6764   if(!m_pcSlice->getIsDepth())
    6765   {
    6766     if (!getDBBPFlag(0))
    6767     {
    6768       Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
    6769       getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
    6770 
    6771       for (Int i=0; i<iNumSP; i++)
    6772       {
    6773         puhInterDirSP[i] = 0;
    6774         pcMvFieldSP[2*i].getMv().set(0, 0);
    6775         pcMvFieldSP[2*i+1].getMv().set(0,0);
    6776         pcMvFieldSP[2*i].setRefIdx(-1);
    6777         pcMvFieldSP[2*i+1].setRefIdx(-1);
    6778       }
     6753    ////////////////////////////////
     6754    //////////sub-PU IvMC///////////
     6755    ////////////////////////////////
     6756    if(!m_pcSlice->getIsDepth())
     6757    {
     6758      if (!getDBBPFlag(0))
     6759      {
     6760        Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
     6761        getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
     6762
     6763        for (Int i=0; i<iNumSP; i++)
     6764        {
     6765          puhInterDirSP[i] = 0;
     6766          pcMvFieldSP[2*i].getMv().set(0, 0);
     6767          pcMvFieldSP[2*i+1].getMv().set(0,0);
     6768          pcMvFieldSP[2*i].setRefIdx(-1);
     6769          pcMvFieldSP[2*i+1].setRefIdx(-1);
     6770        }
     6771
     6772        Int         iBaseCUAddr;
     6773        Int         iBaseAbsPartIdx;
     6774        TComDataCU* pcBaseCU;
     6775        Int iPartition = 0;
     6776
     6777        Int iDelX = iSPWidth/2;
     6778        Int iDelY = iSPHeight/2;
     6779
     6780        Int         iCenterPosX = iCurrPosX + ( ( iWidth /  iSPWidth ) >> 1 )  * iSPWidth + ( iSPWidth >> 1 );
     6781        Int         iCenterPosY = iCurrPosY + ( ( iHeight /  iSPHeight ) >> 1 )  * iSPHeight + (iSPHeight >> 1);
     6782        Int         iRefCenterCUAddr, iRefCenterAbsPartIdx;
     6783
     6784        if(iWidth == iSPWidth && iHeight == iSPHeight)
     6785        {
     6786          iCenterPosX = iCurrPosX + (iWidth >> 1);
     6787          iCenterPosY = iCurrPosY + (iHeight >> 1);
     6788        }
     6789
     6790        Int iRefCenterPosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) );
     6791        Int iRefCenterPosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) );
     6792
     6793        pcBaseRec->getCUAddrAndPartIdx( iRefCenterPosX , iRefCenterPosY , iRefCenterCUAddr, iRefCenterAbsPartIdx );
     6794        TComDataCU* pcDefaultCU    = pcBasePic->getCU( iRefCenterCUAddr );
     6795        if(!( pcDefaultCU->getPredictionMode( iRefCenterAbsPartIdx ) == MODE_INTRA ))
     6796        {
     6797          for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ )       
     6798          {
     6799            RefPicList  eCurrRefPicList = RefPicList( uiCurrRefListId );
     6800            Bool stopLoop = false;
     6801            for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop)
     6802            {
     6803              RefPicList eDefaultRefPicList = (iLoop ==1)? RefPicList( 1 -  uiCurrRefListId ) : RefPicList( uiCurrRefListId );
     6804              TComMvField cDefaultMvField;
     6805              pcDefaultCU->getMvField( pcDefaultCU, iRefCenterAbsPartIdx, eDefaultRefPicList, cDefaultMvField );
     6806              Int         iDefaultRefIdx     = cDefaultMvField.getRefIdx();
     6807              if (iDefaultRefIdx >= 0)
     6808              {
     6809                Int iDefaultRefPOC = pcDefaultCU->getSlice()->getRefPOC(eDefaultRefPicList, iDefaultRefIdx);
     6810                if (iDefaultRefPOC != pcSlice->getPOC())   
     6811                {
     6812                  for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++)
     6813                  {
     6814                    if (iDefaultRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))
     6815                    {
     6816                      abPdmAvailable[ uiCurrRefListId ] = true;
     6817                      TComMv cMv(cDefaultMvField.getHor(), cDefaultMvField.getVer());
     6818#if H_3D_NBDV
     6819#if H_3D_IV_MERGE
     6820                      if( !bIsDepth )
     6821                      {
     6822#endif
     6823                        cMv.setIDVFlag   (true);
     6824                        cMv.setIDVHor    (cDv.getHor());                 
     6825                        cMv.setIDVVer    (cDv.getVer()); 
     6826                        cMv.setIDVVId    (iViewIndex);
     6827#if H_3D_IV_MERGE
     6828                      }
     6829#endif
     6830#endif
     6831#if !(NTT_BUG_FIX_TK54)
     6832                      clipMv( cMv );
     6833#endif
     6834                      paiPdmRefIdx  [ uiCurrRefListId ] = iPdmRefIdx;
     6835                      pacPdmMv      [ uiCurrRefListId ] = cMv;
     6836                      stopLoop = true;
     6837                      break;
     6838                    }
     6839                  }
     6840                }
     6841              }
     6842            }
     6843          }
     6844        }
     6845        availableMcDc[0] = ( abPdmAvailable[0]? 1 : 0) + (abPdmAvailable[1]? 2 : 0);
     6846
     6847        if(availableMcDc[0])
     6848        {
     6849
     6850          Int         iBasePosX, iBasePosY;
     6851          for (Int i=iCurrPosY; i < iCurrPosY + iHeight; i += iSPHeight)
     6852          {
     6853            for (Int j = iCurrPosX; j < iCurrPosX + iWidth; j += iSPWidth)
     6854            {
     6855              iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, j + iDelX + ( (cDv.getHor() + 2 ) >> 2 ));
     6856              iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, i + iDelY + ( (cDv.getVer() + 2 ) >> 2 ));
     6857
     6858              pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY, iBaseCUAddr, iBaseAbsPartIdx );
     6859              pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
     6860              if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA ))
     6861              {
     6862                for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ )
     6863                {
     6864                  RefPicList  eCurrRefPicList = RefPicList( uiCurrRefListId );
     6865                  Bool bLoop_stop = false;
     6866                  for(Int iLoop = 0; iLoop < 2 && !bLoop_stop; ++iLoop)
     6867                  {
     6868                    RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 -  uiCurrRefListId ) : RefPicList( uiCurrRefListId );
     6869                    TComMvField cBaseMvField;
     6870                    pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
     6871                    Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
     6872                    if (iBaseRefIdx >= 0)
     6873                    {
     6874                      Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx);
     6875                      if (iBaseRefPOC != pcSlice->getPOC())   
     6876                      {
     6877                        for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++)
     6878                        {
     6879                          if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))
     6880                          {
     6881                            abPdmAvailable[ uiCurrRefListId ] = true;
     6882                            TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
     6883
     6884                            if( !bIsDepth )
     6885                            {
     6886                              cMv.setIDVFlag   (true);
     6887                              cMv.setIDVHor    (cDv.getHor());                 
     6888                              cMv.setIDVVer    (cDv.getVer()); 
     6889                              cMv.setIDVVId    (iViewIndex);
     6890                            }
     6891
     6892#if !(NTT_BUG_FIX_TK54)
     6893                            clipMv( cMv );
     6894#endif
     6895                            bLoop_stop = true;
     6896
     6897                            pcMvFieldSP[2*iPartition + uiCurrRefListId].setMvField(cMv, iPdmRefIdx);
     6898                            break;
     6899                          }
     6900                        }
     6901                      }
     6902                    }
     6903                  }
     6904                }
     6905              }
     6906
     6907              puhInterDirSP[iPartition] = (pcMvFieldSP[2*iPartition].getRefIdx()!=-1 ? 1: 0) + (pcMvFieldSP[2*iPartition+1].getRefIdx()!=-1 ? 2: 0);
     6908              if (puhInterDirSP[iPartition] == 0)
     6909              {
     6910                puhInterDirSP[iPartition] = availableMcDc[0];
     6911                pcMvFieldSP[2*iPartition].setMvField(pacPdmMv[0], paiPdmRefIdx[0]);
     6912                pcMvFieldSP[2*iPartition + 1].setMvField(pacPdmMv[1], paiPdmRefIdx[1]);
     6913
     6914              }
     6915              if (iSPHeight + iSPWidth == 12)
     6916              {
     6917                if (puhInterDirSP[iPartition] == 3)
     6918                {
     6919                  puhInterDirSP[iPartition] = 1;
     6920                  pcMvFieldSP[2*iPartition + 1].setMvField(TComMv(0,0), -1);
     6921                }
     6922              }
     6923              iPartition ++;
     6924            }
     6925          }
     6926        }
     6927      }
     6928
     6929      iCurrPosX  += ( iWidth  >> 1 );
     6930      iCurrPosY  += ( iHeight >> 1 );
     6931    }
     6932#endif
     6933
     6934    ////////////////////////////////
     6935    /////// IvMC + IvMCShift ///////
     6936    ////////////////////////////////
     6937
     6938#if H_3D_SPIVMP
     6939    if(m_pcSlice->getIsDepth())
     6940    {
     6941      iCurrPosX  += ( iWidth  >> 1 );
     6942      iCurrPosY  += ( iHeight >> 1 );
     6943    }
     6944    for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)
     6945#else
     6946    for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++)
     6947#endif
     6948    {
     6949      // iLoopCan == 0 --> IvMC
     6950      // iLoopCan == 1 --> IvMCShift
    67796951
    67806952      Int         iBaseCUAddr;
    67816953      Int         iBaseAbsPartIdx;
    6782       TComDataCU* pcBaseCU;
    6783       Int iPartition = 0;
    6784 
    6785       Int iDelX = iSPWidth/2;
    6786       Int iDelY = iSPHeight/2;
    6787 
    6788       Int         iCenterPosX = iCurrPosX + ( ( iWidth /  iSPWidth ) >> 1 )  * iSPWidth + ( iSPWidth >> 1 );
    6789       Int         iCenterPosY = iCurrPosY + ( ( iHeight /  iSPHeight ) >> 1 )  * iSPHeight + (iSPHeight >> 1);
    6790       Int         iRefCenterCUAddr, iRefCenterAbsPartIdx;
    6791 
    6792       if(iWidth == iSPWidth && iHeight == iSPHeight)
    6793       {
    6794         iCenterPosX = iCurrPosX + (iWidth >> 1);
    6795         iCenterPosY = iCurrPosY + (iHeight >> 1);
    6796       }
    6797 
    6798       Int iRefCenterPosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) );
    6799       Int iRefCenterPosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) );
    6800 
    6801       pcBaseRec->getCUAddrAndPartIdx( iRefCenterPosX , iRefCenterPosY , iRefCenterCUAddr, iRefCenterAbsPartIdx );
    6802       TComDataCU* pcDefaultCU    = pcBasePic->getCU( iRefCenterCUAddr );
    6803       if(!( pcDefaultCU->getPredictionMode( iRefCenterAbsPartIdx ) == MODE_INTRA ))
    6804       {
     6954
     6955      Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 );
     6956      Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 );
     6957
     6958      Int         iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) );
     6959      Int         iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) );
     6960      pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );
     6961
     6962      TComDataCU* pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
     6963      if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA ))
     6964      {
     6965        // Loop reference picture list of current slice (X in spec).
    68056966        for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ )       
    68066967        {
    68076968          RefPicList  eCurrRefPicList = RefPicList( uiCurrRefListId );
     6969
    68086970          Bool stopLoop = false;
     6971          // Loop reference picture list of candidate slice (Y in spec)
    68096972          for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop)
    68106973          {
    6811             RefPicList eDefaultRefPicList = (iLoop ==1)? RefPicList( 1 -  uiCurrRefListId ) : RefPicList( uiCurrRefListId );
    6812             TComMvField cDefaultMvField;
    6813             pcDefaultCU->getMvField( pcDefaultCU, iRefCenterAbsPartIdx, eDefaultRefPicList, cDefaultMvField );
    6814             Int         iDefaultRefIdx     = cDefaultMvField.getRefIdx();
    6815             if (iDefaultRefIdx >= 0)
     6974            RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 -  uiCurrRefListId ) : RefPicList( uiCurrRefListId );
     6975            TComMvField cBaseMvField;
     6976            pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
     6977            Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
     6978            if (iBaseRefIdx >= 0)
    68166979            {
    6817               Int iDefaultRefPOC = pcDefaultCU->getSlice()->getRefPOC(eDefaultRefPicList, iDefaultRefIdx);
    6818               if (iDefaultRefPOC != pcSlice->getPOC())   
     6980              Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx);
     6981              if (iBaseRefPOC != pcSlice->getPOC())   
    68196982              {
    68206983                for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++)
    68216984                {
    6822                   if (iDefaultRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))
     6985                  if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))
    68236986                  {
    6824                     abPdmAvailable[ uiCurrRefListId ] = true;
    6825                     TComMv cMv(cDefaultMvField.getHor(), cDefaultMvField.getVer());
     6987                    abPdmAvailable[ (uiCurrRefListId + (iLoopCan<<2)) ] = true;
     6988                    TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
    68266989#if H_3D_NBDV
    68276990#if H_3D_IV_MERGE
     
    68407003                    clipMv( cMv );
    68417004#endif
    6842                     paiPdmRefIdx  [ uiCurrRefListId ] = iPdmRefIdx;
    6843                     pacPdmMv      [ uiCurrRefListId ] = cMv;
     7005                    paiPdmRefIdx  [ (uiCurrRefListId + (iLoopCan<<2)) ] = iPdmRefIdx;
     7006                    pacPdmMv      [ (uiCurrRefListId + (iLoopCan<<2)) ] = cMv;
    68447007                    stopLoop = true;
    68457008                    break;
     
    68517014        }
    68527015      }
    6853       availableMcDc[0] = ( abPdmAvailable[0]? 1 : 0) + (abPdmAvailable[1]? 2 : 0);
    6854 
    6855       if(availableMcDc[0])
    6856       {
    6857 
    6858         Int         iBasePosX, iBasePosY;
    6859         for (Int i=iCurrPosY; i < iCurrPosY + iHeight; i += iSPHeight)
    6860         {
    6861           for (Int j = iCurrPosX; j < iCurrPosX + iWidth; j += iSPWidth)
    6862           {
    6863             iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, j + iDelX + ( (cDv.getHor() + 2 ) >> 2 ));
    6864             iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, i + iDelY + ( (cDv.getVer() + 2 ) >> 2 ));
    6865 
    6866             pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY, iBaseCUAddr, iBaseAbsPartIdx );
    6867             pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
    6868             if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA ))
    6869             {
    6870               for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ )
    6871               {
    6872                 RefPicList  eCurrRefPicList = RefPicList( uiCurrRefListId );
    6873                 Bool bLoop_stop = false;
    6874                 for(Int iLoop = 0; iLoop < 2 && !bLoop_stop; ++iLoop)
    6875                 {
    6876                   RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 -  uiCurrRefListId ) : RefPicList( uiCurrRefListId );
    6877                   TComMvField cBaseMvField;
    6878                   pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
    6879                   Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
    6880                   if (iBaseRefIdx >= 0)
    6881                   {
    6882                     Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx);
    6883                     if (iBaseRefPOC != pcSlice->getPOC())   
    6884                     {
    6885                       for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++)
    6886                       {
    6887                         if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))
    6888                         {
    6889                           abPdmAvailable[ uiCurrRefListId ] = true;
    6890                           TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
    6891 
    6892                           if( !bIsDepth )
    6893                           {
    6894                             cMv.setIDVFlag   (true);
    6895                             cMv.setIDVHor    (cDv.getHor());                 
    6896                             cMv.setIDVVer    (cDv.getVer()); 
    6897                             cMv.setIDVVId    (iViewIndex);
    6898                           }
    6899                          
    6900 #if !(NTT_BUG_FIX_TK54)
    6901                           clipMv( cMv );
    6902 #endif
    6903                           bLoop_stop = true;
    6904 
    6905                           pcMvFieldSP[2*iPartition + uiCurrRefListId].setMvField(cMv, iPdmRefIdx);
    6906                           break;
    6907                         }
    6908                       }
    6909                     }
    6910                   }
    6911                 }
    6912               }
    6913             }
    6914 
    6915             puhInterDirSP[iPartition] = (pcMvFieldSP[2*iPartition].getRefIdx()!=-1 ? 1: 0) + (pcMvFieldSP[2*iPartition+1].getRefIdx()!=-1 ? 2: 0);
    6916             if (puhInterDirSP[iPartition] == 0)
    6917             {
    6918               puhInterDirSP[iPartition] = availableMcDc[0];
    6919               pcMvFieldSP[2*iPartition].setMvField(pacPdmMv[0], paiPdmRefIdx[0]);
    6920               pcMvFieldSP[2*iPartition + 1].setMvField(pacPdmMv[1], paiPdmRefIdx[1]);
    6921 
    6922             }
    6923             if (iSPHeight + iSPWidth == 12)
    6924             {
    6925               if (puhInterDirSP[iPartition] == 3)
    6926               {
    6927                 puhInterDirSP[iPartition] = 1;
    6928                 pcMvFieldSP[2*iPartition + 1].setMvField(TComMv(0,0), -1);
    6929               }
    6930             }
    6931             iPartition ++;
    6932           }
    6933         }
    6934       }
    6935     }
    6936 
    6937     iCurrPosX  += ( iWidth  >> 1 );
    6938     iCurrPosY  += ( iHeight >> 1 );
    6939   }
    6940 #endif
    6941 
    6942   ////////////////////////////////
    6943   /////// IvMC + IvMCShift ///////
    6944   ////////////////////////////////
    6945 
    6946 #if H_3D_SPIVMP
    6947   if(m_pcSlice->getIsDepth())
    6948   {
    6949     iCurrPosX  += ( iWidth  >> 1 );
    6950     iCurrPosY  += ( iHeight >> 1 );
    6951   }
    6952   for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)
    6953 #else
    6954   for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++)
    6955 #endif
    6956   {
    6957     // iLoopCan == 0 --> IvMC
    6958     // iLoopCan == 1 --> IvMCShift
    6959 
    6960     Int         iBaseCUAddr;
    6961     Int         iBaseAbsPartIdx;
    6962 
    6963     Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 );
    6964     Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 );
    6965 
    6966     Int         iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) );
    6967     Int         iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) );
    6968     pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );
    6969 
    6970     TComDataCU* pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
    6971     if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA ))
    6972     {
    6973       // Loop reference picture list of current slice (X in spec).
    6974       for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ )       
    6975       {
    6976         RefPicList  eCurrRefPicList = RefPicList( uiCurrRefListId );
    6977 
    6978         Bool stopLoop = false;
    6979         // Loop reference picture list of candidate slice (Y in spec)
    6980         for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop)
    6981         {
    6982           RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 -  uiCurrRefListId ) : RefPicList( uiCurrRefListId );
    6983           TComMvField cBaseMvField;
    6984           pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
    6985           Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
    6986           if (iBaseRefIdx >= 0)
    6987           {
    6988             Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx);
    6989             if (iBaseRefPOC != pcSlice->getPOC())   
    6990             {
    6991               for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++)
    6992               {
    6993                 if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx))
    6994                 {
    6995                   abPdmAvailable[ (uiCurrRefListId + (iLoopCan<<2)) ] = true;
    6996                   TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
    6997 #if H_3D_NBDV
    6998 #if H_3D_IV_MERGE
    6999                   if( !bIsDepth )
    7000                   {
    7001 #endif
    7002                     cMv.setIDVFlag   (true);
    7003                     cMv.setIDVHor    (cDv.getHor());                 
    7004                     cMv.setIDVVer    (cDv.getVer()); 
    7005                     cMv.setIDVVId    (iViewIndex);
    7006 #if H_3D_IV_MERGE
    7007                   }
    7008 #endif
    7009 #endif
    7010 #if !(NTT_BUG_FIX_TK54)
    7011                   clipMv( cMv );
    7012 #endif
    7013                   paiPdmRefIdx  [ (uiCurrRefListId + (iLoopCan<<2)) ] = iPdmRefIdx;
    7014                   pacPdmMv      [ (uiCurrRefListId + (iLoopCan<<2)) ] = cMv;
    7015                   stopLoop = true;
    7016                   break;
    7017                 }
    7018               }
    7019             }
    7020           }
    7021         }
    7022       }
    7023     }
    7024   }
     7016    }
    70257017#if H_3D_SPIVMP
    70267018#if H_3D_FIX_DBBP_IVMP
    7027   for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)
     7019    for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)
    70287020#else
    7029   for(Int iLoopCan = ( 1 - m_pcSlice->getIsDepth() ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)
     7021    for(Int iLoopCan = ( 1 - m_pcSlice->getIsDepth() ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++)
    70307022#endif
    70317023#else
    7032   for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++)
    7033 #endif
    7034   {
    7035     availableMcDc[(iLoopCan << 1)] = ( abPdmAvailable[(iLoopCan<<2)] ? 1 : 0 ) + ( abPdmAvailable[1 + (iLoopCan<<2)] ? 2 : 0);
    7036   }
    7037 
    7038 #if SEC_ADAPT_DISABLE_IVMP
    7039   }
    7040 #endif
     7024    for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++)
     7025#endif
     7026    {
     7027      availableMcDc[(iLoopCan << 1)] = ( abPdmAvailable[(iLoopCan<<2)] ? 1 : 0 ) + ( abPdmAvailable[1 + (iLoopCan<<2)] ? 2 : 0);
     7028    }
     7029
     7030  }
    70417031
    70427032  ////////////////////////////////
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComDataCU.h

    r968 r969  
    508508#if H_3D_SPIVMP
    509509    , TComMvField* pcMFieldSP, UChar* puhInterDirSP
    510 #endif
    511 #if SEC_ADAPT_DISABLE_IVMP
     510#endif   
    512511    , Bool bICFlag
    513 #endif
    514512    );   
    515513#endif
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComRom.cpp

    r964 r969  
    360360Char  g_aucConvertToBit  [ MAX_CU_SIZE+1 ];
    361361
    362 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
     362#if H_3D_IC
    363363UInt g_aICEnableCANDIDATE[10] = { 0, };
    364364UInt g_aICEnableNUM[ 10 ] = { 0, };
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComRom.h

    r964 r969  
    189189extern       Char   g_aucConvertToBit  [ MAX_CU_SIZE+1 ];   // from width to log2(width)-2
    190190
    191 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
     191#if H_3D_IC
    192192extern UInt g_aICEnableCANDIDATE[10];
    193193extern UInt g_aICEnableNUM[ 10 ]; //10 layers
    194 extern Int g_lastlayer;
     194extern Int  g_lastlayer;
    195195#endif
    196196
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r964 r969  
    35413541#endif
    35423542#if H_3D_IC
    3543 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    35443543Void TComSlice::xSetApplyIC(Bool bUseLowLatencyICEnc)
    3545 #else
    3546 Void TComSlice::xSetApplyIC()
    3547 #endif
    3548 {
    3549 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
     3544{
    35503545  if(bUseLowLatencyICEnc)
    35513546  {
     
    35923587        Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]);
    35933588
    3594         if( ratio > MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086)
     3589        if( ratio > IC_LOW_LATENCY_ENCODING_THRESHOLD)
    35953590{
    35963591          m_bApplyIC=true;
     
    36083603  else
    36093604  {
    3610 #endif
    36113605  Int iMaxPelValue = ( 1 << g_bitDepthY );
    36123606  Int *aiRefOrgHist;
     
    36823676  aiCurrHist = NULL;
    36833677  aiRefOrgHist = NULL;
    3684 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    36853678  }//if(bUseLowLatencyICEnc)
    3686 #endif
    36873679}
    36883680#endif
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComSlice.h

    r964 r969  
    24662466  Bool      getApplyIC()                                        { return m_bApplyIC; }
    24672467  Void      xSetApplyIC();
    2468 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    24692468  Void      xSetApplyIC(Bool bUseLowLatencyICEnc);
    2470 #endif
    24712469  Void      setIcSkipParseFlag( Bool b )                        { m_icSkipParseFlag = b; }
    24722470  Bool      getIcSkipParseFlag()                                { return m_icSkipParseFlag; }
  • branches/HTM-11.1-dev0/source/Lib/TLibCommon/TypeDef.h

    r968 r969  
    289289#define IC_CONST_SHIFT                    5
    290290#define IC_SHIFT_DIFF                     12
     291#define IC_LOW_LATENCY_ENCODING_THRESHOLD 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086
    291292#endif
    292293
     
    319320#define MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085 1   // Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085
    320321#define MTK_LOW_LATENCY_IC_ENCODING_H0086   1 // Low-latency IC encoding in JCT3V-H0086
    321 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    322 #define MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086    0.1 // Threshold for low-latency IC encoding in JCT3V-H0086
    323 #endif
    324 #define SEC_ADAPT_DISABLE_IVMP            1   // Disalbing IVMP merge candidates when IC is enabled, JCT3V-H0070
    325 
    326 #define MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113     1 // Use only one context for CABAC of delta_dc_flag as in JCTVC-H0084, JCTVC-H0100 and JCTVC-H0113
    327 #define MTK_SDC_FLAG_FIX_H0095            1   // Remove conditional check of PCM flag based on SDC flag, JCTVC-H0095
    328 #define MTK_DMM_SIMP_CODE_H0092           1   // Remove CABAC context for DMM1 mode coding
    329 
    330 #define QC_IV_PRED_CONSTRAINT_H0137       1   // Constraint on inter-view (motion) prediction tools
    331 #define ETRIKHU_CLEANUP_H0083             1   // cleaned-up source code for constructing merging candidate list
    332322#endif
    333323
  • branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r967 r969  
    19361936#if H_3D_IV_MERGE
    19371937        READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    1938 #if QC_IV_PRED_CONSTRAINT_H0137
    19391938        if( !pcVPS->getNumDirectRefLayers(i) )
    19401939        {
    19411940          assert( !uiCode );         
    19421941        }
    1943 #endif
    19441942#if H_3D_SPIVMP
    19451943        READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]");     pcVPS->setSubPULog2Size(i, uiCode+3);
     
    19481946#if H_3D_ARP
    19491947        READ_FLAG( uiCode, "iv_res_pred_flag[i]"  );       pcVPS->setUseAdvRP  ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 );
    1950 #if QC_IV_PRED_CONSTRAINT_H0137
    19511948        if( !pcVPS->getNumDirectRefLayers(i) )
    19521949        {
    19531950          assert( !uiCode );         
    19541951        }
    1955 #endif
    19561952#endif
    19571953#if H_3D_NBDV_REF
     
    19601956#if H_3D_VSP
    19611957        READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false );
    1962 #if QC_IV_PRED_CONSTRAINT_H0137
    19631958        if( !pcVPS->getNumDirectRefLayers(i) )
    19641959        {
    19651960          assert( !uiCode );         
    19661961        }
    1967 #endif
    19681962#endif
    19691963#if H_3D_DBBP
     
    19771971        {
    19781972          READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    1979 #if QC_IV_PRED_CONSTRAINT_H0137
    19801973          if( !pcVPS->getNumDirectRefLayers(i) )
    19811974          {
    19821975            assert( !uiCode );         
    19831976          }
    1984 #endif
    19851977        }
    19861978#endif
  • branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r968 r969  
    201201    return;
    202202  }
    203 #if !MTK_SDC_FLAG_FIX_H0095
    204 #if H_3D_DIM_SDC
    205   if( pcCU->getSDCFlag(uiAbsPartIdx) )
    206   {
    207     return;
    208   }
    209 #endif
    210 #endif
    211203 
    212204  m_pcEntropyDecoderIf->parseIPCMInfo( pcCU, uiAbsPartIdx, uiDepth );
  • branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecSbac.cpp

    r968 r969  
    8787, m_cDdcDataSCModel           ( 1,             1,               NUM_DDC_DATA_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    8888, m_cAngleFlagSCModel         ( 1,             1,               NUM_ANGLE_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
    89 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    90 , m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    91 #endif
    9289#if H_3D_DIM_SDC
    9390, m_cSDCResidualFlagSCModel     ( 1,             1,             SDC_NUM_RESIDUAL_FLAG_CTX     , m_contextModels + m_numContextModels, m_numContextModels)
     
    171168  m_cDdcDataSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_DDC_DATA );
    172169  m_cAngleFlagSCModel.initBuffer         ( sliceType, qp, (UChar*)INIT_ANGLE_FLAG );
    173 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    174   m_cDmm1DataSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_DMM1_DATA );
    175 #endif
    176170#if H_3D_DIM_SDC
    177171  m_cSDCResidualFlagSCModel.initBuffer    ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
     
    241235  m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
    242236  m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
    243 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    244   m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
    245 #endif
    246237#if H_3D_DIM_SDC
    247238  m_cSDCResidualFlagSCModel.initBuffer    ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
     
    422413  for( Int i = 0; i < iNumBit; i++ )
    423414  {
    424 #if MTK_DMM_SIMP_CODE_H0092
    425       m_pcTDecBinIf->decodeBinEP( uiSymbol );
    426 #else
    427     m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm1DataSCModel.get(0, 0, 0) );
    428 #endif
     415    m_pcTDecBinIf->decodeBinEP( uiSymbol );
    429416    uiIdx += uiSymbol << i;
    430417  }
     
    20732060    UInt dir     = pcCU->getLumaIntraDir( absPartIdx );
    20742061    uiNumSegments = isDimMode( dir ) ? 2 : 1;
    2075 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113
    20762062    m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    2077 #else
    2078     m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) );
    2079 #endif
    20802063    if( pcCU->getSDCFlag( absPartIdx ) )
    20812064    {
  • branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecSbac.h

    r964 r969  
    218218  ContextModel3DBuffer m_cDdcDataSCModel;
    219219  ContextModel3DBuffer m_cAngleFlagSCModel;
    220 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    221   ContextModel3DBuffer m_cDmm1DataSCModel;
    222 #endif
    223220#if H_3D_DIM_SDC 
    224221  ContextModel3DBuffer m_cSDCResidualFlagSCModel;
  • branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncCfg.h

    r964 r969  
    403403#if H_3D_IC
    404404  Bool      m_bUseIC;
    405 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    406405  Bool      m_bUseICLowLatencyEnc;
    407 #endif
    408406#endif
    409407#if H_3D_INTER_SDC
     
    516514  Void       setUseIC                       ( Bool bVal )    { m_bUseIC = bVal; }
    517515  Bool       getUseIC                       ()               { return m_bUseIC; }
    518 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    519516  Void       setUseICLowLatencyEnc          ( Bool bVal )    { m_bUseICLowLatencyEnc = bVal; }
    520517  Bool       getUseICLowLatencyEnc          ()               { return m_bUseICLowLatencyEnc; }
    521 #endif
    522518#endif
    523519#if H_3D_INTER_SDC
  • branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp

    r967 r969  
    157157
    158158  if( !pcCU->getSlice()->getApplyIC() )
     159  {
    159160    return;
    160 
    161   if( bRD )
    162   {
    163     uiAbsPartIdx = 0;
    164   }
    165 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
     161  }
     162
     163  if( bRD )
     164  {
     165    uiAbsPartIdx = 0;
     166  }
    166167  else
    167168  {
     
    172173    }
    173174  }
    174 #endif
    175175  if( pcCU->isICFlagRequired( uiAbsPartIdx ) )
     176  {
    176177    m_pcEntropyCoderIf->codeICFlag( pcCU, uiAbsPartIdx );
     178  }
    177179}
    178180#endif
     
    282284    return;
    283285  }
    284 #if !MTK_SDC_FLAG_FIX_H0095
    285 #if H_3D_DIM_SDC
    286   if( pcCU->getSDCFlag(uiAbsPartIdx) )
    287   {
    288     return;
    289   }
    290 #endif
    291 #endif
    292286 
    293287  if( bRD )
  • branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncSbac.cpp

    r967 r969  
    9393, m_cDdcDataSCModel           ( 1,             1,               NUM_DDC_DATA_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    9494, m_cAngleFlagSCModel         ( 1,             1,               NUM_ANGLE_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
    95 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    96 , m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    97 #endif
    9895#if H_3D_DIM_SDC
    9996, m_cSDCResidualFlagSCModel   ( 1,             1,               SDC_NUM_RESIDUAL_FLAG_CTX     , m_contextModels + m_numContextModels, m_numContextModels)
     
    169166  m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
    170167  m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
    171 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    172   m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
    173 #endif
    174168#if H_3D_DIM_SDC
    175169  m_cSDCResidualFlagSCModel.initBuffer   ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
     
    255249      curCost += m_cDdcDataSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_DDC_DATA );
    256250      curCost += m_cAngleFlagSCModel.calcCost         ( curSliceType, qp, (UChar*)INIT_ANGLE_FLAG ); 
    257 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    258       curCost += m_cDmm1DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );
    259 #endif
    260251    }
    261252#endif
     
    319310  m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
    320311  m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
    321 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    322   m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
    323 #endif
    324312#if H_3D_DIM_SDC
    325313  m_cSDCResidualFlagSCModel.initBuffer   ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
     
    520508  for ( Int i = 0; i < iNumBit; i++ )
    521509  {
    522 #if MTK_DMM_SIMP_CODE_H0092
    523       m_pcBinIf->encodeBinEP( ( uiTabIdx >> i ) & 1 );
    524 #else
    525     m_pcBinIf->encodeBin( ( uiTabIdx >> i ) & 1, m_cDmm1DataSCModel.get(0, 0, 0) );
    526 #endif
     510    m_pcBinIf->encodeBinEP( ( uiTabIdx >> i ) & 1 );
    527511  }
    528512}
     
    23172301      dimDeltaDC = isDimDeltaDC( dir );
    23182302    }
    2319 #if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113
    23202303    m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    2321 #else
    2322     m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) );
    2323 #endif
    23242304  }
    23252305  else //all-zero inter SDC is not allowed
  • branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncSbac.h

    r950 r969  
    258258  ContextModel3DBuffer m_cDdcDataSCModel;
    259259  ContextModel3DBuffer m_cAngleFlagSCModel;
    260 #if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
    261   ContextModel3DBuffer m_cDmm1DataSCModel;
    262 #endif
    263260#if H_3D_DIM_SDC 
    264261  ContextModel3DBuffer m_cSDCResidualFlagSCModel;
  • branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncSlice.cpp

    r964 r969  
    930930     )
    931931  {
    932 #if MTK_LOW_LATENCY_IC_ENCODING_H0086
    933932    pcSlice ->xSetApplyIC(pcEncTop->getUseICLowLatencyEnc());
    934 #else
    935     pcSlice ->xSetApplyIC();
    936 #endif
    937933    if ( pcSlice->getApplyIC() )
    938934    {
Note: See TracChangeset for help on using the changeset viewer.