Changeset 724 in 3DVCSoftware for trunk/source/Lib/TLibEncoder


Ignore:
Timestamp:
30 Nov 2013, 12:29:49 (11 years ago)
Author:
tech
Message:

Merged HTM-8.2-dev0@723.

Location:
trunk/source/Lib/TLibEncoder
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncCavlc.cpp

    r655 r724  
    10061006#if H_3D_IV_MERGE
    10071007        WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
     1008#if MTK_SPIVMP_F0110
     1009        WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]");
     1010#endif
    10081011#endif
    10091012#if H_3D_ARP
     
    10191022      else
    10201023      {
     1024#if QC_DEPTH_IV_MRG_F0125
     1025        if(i!=1)
     1026        {
     1027          WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
     1028        }
     1029#endif
     1030#if MTK_SPIVMP_F0110
     1031        if (i!=1)
     1032        {
     1033          WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]");
     1034        }
     1035#endif
     1036#if SEC_MPI_ENABLING_MERGE_F0150
     1037        WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 ,          "mpi_flag[i]" );
     1038#endif
    10211039        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
    10221040        //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
     
    13871405    }
    13881406#if H_3D_IC
     1407#if SEC_ONLY_TEXTURE_IC_F0151
     1408    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth())
     1409#else
    13891410    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) )
     1411#endif
    13901412    {
    13911413      WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );
     
    14051427    {
    14061428#if H_3D_IV_MERGE
     1429#if SEC_MPI_ENABLING_MERGE_F0150
     1430      if(pcSlice->getIsDepth())
     1431      {
     1432        Bool bMPIFlag = pcSlice->getVPS()->getMPIFlag( pcSlice->getLayerIdInVps() ) ;
     1433        Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
     1434        WRITE_UVLC( ( ( bMPIFlag || ivMvPredFlag ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1435      }
     1436      else
     1437      {
     1438        Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
     1439        WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1440      }
     1441#else
    14071442      Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
    14081443      WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1444#endif
    14091445#else
    14101446      WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     
    14521488    WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!!
    14531489
     1490#if QC_DEPTH_IV_MRG_F0125
     1491    if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )
     1492#else
    14541493    if( pcSlice->getSPS()->hasCamParInSliceHeader() )
     1494#endif
    14551495    {
    14561496      for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ )
  • trunk/source/Lib/TLibEncoder/TEncCfg.h

    r655 r724  
    403403  UInt      m_uiARPStepNum;
    404404#endif
     405#if MTK_SPIVMP_F0110
     406  Int      m_iSubPULog2Size;
     407#endif
    405408#if H_3D_IC
    406409  Bool      m_bUseIC;
     
    412415#if H_3D_DIM
    413416  Bool      m_useDMM;
     417#if !SEC_DMM3_RBC_F0147
    414418  Bool      m_useRBC;
     419#endif
    415420  Bool      m_useSDC;
    416421  Bool      m_useDLT;
     422#endif
     423#if SEC_MPI_ENABLING_MERGE_F0150
     424  Bool      m_useMPI;
    417425#endif
    418426#if H_3D_QTLPC
     
    500508  UInt       getARPStepNum                  ()               { return m_uiARPStepNum;    }
    501509  Void       setARPStepNum                  ( UInt  u )      { m_uiARPStepNum = u;       }
     510#endif
     511#if MTK_SPIVMP_F0110
     512  Int        getSubPULog2Size                   ()                   { return m_iSubPULog2Size;}
     513  Void       setSubPULog2Size                   (Int u)              { m_iSubPULog2Size = u; }     
    502514#endif
    503515
     
    980992  Bool      getUseDMM                       ()        { return m_useDMM; }
    981993  Void      setUseDMM                       ( Bool b) { m_useDMM = b;    }
     994#if !SEC_DMM3_RBC_F0147
    982995  Bool      getUseRBC                       ()        { return m_useRBC; }
    983996  Void      setUseRBC                       ( Bool b) { m_useRBC = b;    }
     997#endif
    984998  Bool      getUseSDC                       ()        { return m_useSDC; }
    985999  Void      setUseSDC                       ( Bool b) { m_useSDC = b;    }
     
    9931007  Bool      getUsePC                        ()         { return m_bUsePC;  }
    9941008#endif
     1009#if SEC_MPI_ENABLING_MERGE_F0150
     1010  Void      setUseMPI                       ( Bool b ) { m_useMPI = b;    }
     1011  Bool      getUseMPI                       ()         { return m_useMPI; }
     1012#endif
    9951013#endif // H_3D
    9961014};
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r655 r724  
    497497#endif
    498498#if H_3D_IC
     499#if SEC_ONLY_TEXTURE_IC_F0151
     500  Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ) && !rpcTempCU->getSlice()->getIsDepth();
     501#else
    499502  Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE );
     503#endif
    500504  bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
    501505#endif
     
    567571          PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
    568572          rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
     573#if QC_DEPTH_IV_MRG_F0125
     574          if (rpcTempCU->getSlice()->getIsDepth() )
     575          {
     576            DvInfo.bDV = rpcTempCU->getDispNeighBlocks(0, 0, &DvInfo);
     577          }
     578          else
     579          {
     580#endif
    569581#if H_3D_NBDV_REF
    570582          if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps()))
     
    574586            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo);
    575587
     588#if QC_DEPTH_IV_MRG_F0125
     589          }
     590#endif
    576591          rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    577592          rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
     
    17641779#endif
    17651780
     1781#if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104
     1782  DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0);
     1783#else
    17661784  rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    17671785  rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1786#endif
    17681787
    17691788#if H_3D_VSP
     1789#if !(H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104)
    17701790  Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    17711791  memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    17721792  InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    1773   rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand );
     1793#if ETRIKHU_MERGE_REUSE_F0093
     1794  rpcTempCU->m_bAvailableFlagA1 = 0;
     1795  rpcTempCU->m_bAvailableFlagB1 = 0;
     1796  rpcTempCU->m_bAvailableFlagB0 = 0;
     1797  rpcTempCU->m_bAvailableFlagA0 = 0;
     1798  rpcTempCU->m_bAvailableFlagB2 = 0;
     1799  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1800  rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand );
     1801#else
     1802  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
     1803#endif
     1804#endif
     1805#else
     1806#if ETRIKHU_MERGE_REUSE_F0093
     1807  rpcTempCU->m_bAvailableFlagA1 = 0;
     1808  rpcTempCU->m_bAvailableFlagB1 = 0;
     1809  rpcTempCU->m_bAvailableFlagB0 = 0;
     1810  rpcTempCU->m_bAvailableFlagA0 = 0;
     1811  rpcTempCU->m_bAvailableFlagB2 = 0;
     1812  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1813  rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
    17741814#else
    17751815  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
     1816#endif
    17761817#endif
    17771818
     
    17811822  Int mergeCandBuffer[MRG_MAX_NUM_CANDS];
    17821823#endif
     1824#if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104
     1825for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui )
     1826#else
    17831827for( UInt ui = 0; ui < numValidMergeCand; ++ui )
     1828#endif
    17841829  {
    17851830    mergeCandBuffer[ui] = 0;
     
    18061851  for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- )
    18071852  {
     1853#if FIX_MISSING_MACRO_R690
     1854    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) );
     1855#else
    18081856    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS*sizeof(Int) );
     1857#endif
     1858#if LGE_SHARP_VSP_INHERIT_F0104
     1859    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
     1860    rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1861    rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
     1862#if H_3D_IC
     1863    rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
     1864#endif
     1865    rpcTempCU->getDvInfo(0) = cOrigDisInfo;
     1866    rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, 0, uhDepth );
     1867    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
     1868    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     1869    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     1870#if MTK_SPIVMP_F0110
     1871    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     1872    memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     1873    TComMvField*  pcMvFieldSP;
     1874    UChar* puhInterDirSP;
     1875    pcMvFieldSP = new TComMvField[rpcTempCU->getPic()->getPicSym()->getNumPartition()*2];
     1876    puhInterDirSP = new UChar[rpcTempCU->getPic()->getPicSym()->getNumPartition()];
     1877#endif
     1878#if ETRIKHU_MERGE_REUSE_F0093
     1879    rpcTempCU->initAvailableFlags();
     1880    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1881    rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo
     1882#if MTK_SPIVMP_F0110
     1883      , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
     1884#endif
     1885      , numValidMergeCand
     1886      );
     1887#else
     1888    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
     1889#endif
     1890#endif
    18091891#endif
    18101892  for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual )
     
    18411923          rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    18421924#endif
    1843           rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
    1844           rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1845           rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1846 
    1847 #if H_3D_ARP
     1925#if MTK_SPIVMP_F0110
     1926          rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth);
     1927          if (bSPIVMPFlag[uiMergeCand])
     1928          {
     1929            UInt uiSPAddr;
     1930            Int iWidth = rpcTempCU->getWidth(0);
     1931            Int iHeight = rpcTempCU->getHeight(0);
     1932
     1933            Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
     1934
     1935            rpcTempCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
     1936
     1937            for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++)
     1938            {
     1939              rpcTempCU->getSPAbsPartIdx(0, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr);
     1940              rpcTempCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight);
     1941              rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(rpcTempCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight);
     1942              rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(rpcTempCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight);
     1943            }
     1944          }
     1945          else
     1946          {
     1947#endif
     1948            rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
     1949            rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     1950            rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     1951#if MTK_SPIVMP_F0110
     1952          }
     1953#endif
     1954#if H_3D_ARP && !QC_MTK_INTERVIEW_ARP_F0123_F0108
    18481955          if( nARPW )
    18491956          {
     
    18601967            if( !bSignalflag[0] && !bSignalflag[1] )
    18611968            {
     1969#if LGE_SHARP_VSP_INHERIT_F0104
     1970              continue;
     1971#else
    18621972              rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
     1973#endif
    18631974            }
    18641975          }
     
    19822093  }
    19832094 }
     2095#if MTK_SPIVMP_F0110
     2096 delete pcMvFieldSP;
     2097 delete puhInterDirSP;
     2098#endif
    19842099#if H_3D_ARP
    19852100 }
     
    20512166    m_pcPredSearch->motionCompensation( rpcTempCU , m_ppcPredYuvTemp[uhDepth] );
    20522167
     2168#if !QC_MTK_INTERVIEW_ARP_F0123_F0108
    20532169    if(rpcTempCU->getPartitionSize(0)==SIZE_2Nx2N)
    20542170    {
     
    20682184      }
    20692185    }
     2186#endif
    20702187  }
    20712188  else
     
    20882205     m_ppcWeightedTempCU[uhDepth]->copyPartFrom( rpcTempCU , 0 , uhDepth );
    20892206
     2207#if !QC_MTK_INTERVIEW_ARP_F0123_F0108
    20902208     Bool bSignalflag[2] = { true, true };
    20912209     for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ )
     
    21022220       rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
    21032221     }
     2222#endif
    21042223   }
    21052224  }
  • trunk/source/Lib/TLibEncoder/TEncEntropy.cpp

    r655 r724  
    160160Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    161161{
     162#if SEC_ONLY_TEXTURE_IC_F0151
     163  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
     164#else
    162165  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) )
     166#endif
    163167  {
    164168    return;
  • trunk/source/Lib/TLibEncoder/TEncGOP.cpp

    r655 r724  
    724724#if H_3D_ARP
    725725    //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh
     726#if SHARP_ARP_REF_CHECK_F0105
     727    pcSlice->setARPStepNum(m_ivPicLists);
     728#else
    726729    pcSlice->setARPStepNum();
     730#endif
    727731    if(pcSlice->getARPStepNum() > 1)
    728732    {
  • trunk/source/Lib/TLibEncoder/TEncSbac.cpp

    r655 r724  
    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
     
    518526}
    519527
     528#if QC_DIM_DELTADC_UNIFY_F0132
     529Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt uiNumSeg )
     530{
     531  xWriteExGolombLevel( UInt( abs( valDeltaDC ) - ( uiNumSeg > 1 ? 0 : 1 ) ), m_cDdcDataSCModel.get(0, 0, 0) );
     532  if( valDeltaDC != 0 )
     533  {
     534    UInt uiSign = valDeltaDC > 0 ? 0 : 1;
     535    m_pcBinIf->encodeBinEP( uiSign );
     536  }
     537}
     538#else
    520539Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt dimType )
    521540{
     
    527546  }
    528547}
     548#endif
    529549
    530550#if H_3D_DIM_DMM
     
    537557}
    538558
     559#if !SEC_DMM3_RBC_F0147
    539560Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit )
    540561{
     
    544565  }
    545566}
     567#endif
    546568#endif
    547569#if H_3D_DIM_RBC
     
    12091231      xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12101232    } break;
     1233#if !SEC_DMM3_RBC_F0147
    12111234  case( DMM3_IDX ):
    12121235    {
    12131236      xCodeDmm3WedgeIdx( pcCU->getDmm3IntraTabIdx( absPartIdx ), g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12141237    } break;
     1238#endif
    12151239  case( DMM4_IDX ): break;
    12161240#endif
     
    12251249  }
    12261250
    1227 #if H_3D_DIM_SDC
     1251#if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132
    12281252  if( pcCU->getSDCFlag( absPartIdx ) )
    12291253  {
     
    12381262  {
    12391263#endif
     1264#if QC_DIM_DELTADC_UNIFY_F0132
     1265    if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) )
     1266#else
    12401267    if( dimType < DIM_NUM_TYPE )
    1241     {
     1268#endif
     1269    {
     1270#if QC_DIM_DELTADC_UNIFY_F0132
     1271      UInt dimDeltaDC;
     1272      Pel  deltaDC;
     1273      UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2;
     1274      if( pcCU->getSDCFlag( absPartIdx ) )
     1275    {
     1276        if( uiNumSegments==1 )
     1277        {
     1278          dimDeltaDC = pcCU->getSDCSegmentDCOffset(0, absPartIdx) ? 1 : 0;
     1279        }
     1280        else
     1281        {
     1282          dimDeltaDC = ( pcCU->getSDCSegmentDCOffset(0, absPartIdx) || pcCU->getSDCSegmentDCOffset(1, absPartIdx) ) ? 1 : 0;
     1283        }
     1284      }
     1285      else
     1286      {
     1287        dimDeltaDC = isDimDeltaDC( dir );
     1288      }
     1289
     1290      m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) );
     1291
     1292      if( dimDeltaDC )
     1293      {
     1294        for( UInt segment = 0; segment < uiNumSegments; segment++ )
     1295        {
     1296          deltaDC = pcCU->getSDCFlag( absPartIdx ) ? pcCU->getSDCSegmentDCOffset(segment, absPartIdx) : pcCU->getDimDeltaDC( dimType, segment, absPartIdx );
     1297          xCodeDimDeltaDC( deltaDC, uiNumSegments );
     1298        }
     1299      }
     1300#else
    12421301      UInt dimDeltaDC = isDimDeltaDC( dir );
    12431302      m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) );
     
    12491308        }
    12501309      }
    1251     }
    1252 #if H_3D_DIM_SDC
     1310#endif
     1311    }
     1312#if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132
    12531313  }
    12541314#endif
     
    12571317Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    12581318{
     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
    12591323    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}};
    12601324    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
    12611326  UInt dir = pcCU->getLumaIntraDir( absPartIdx );
    12621327  UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 );
     
    12731338    case DMM1_IDX: codeIdx = 3; break;
    12741339    case DMM4_IDX: codeIdx = 4; break;
     1340#if !SEC_DMM3_RBC_F0147
    12751341    case DMM3_IDX: codeIdx = 5; break;
    12761342    case  RBC_IDX: codeIdx = 6; break;
     1343#endif
    12771344    default:                    break;
    12781345    }
     
    12891356  }
    12901357#endif
     1358#if !SEC_DMM3_RBC_F0147
    12911359  if( puIdx==1 )
    12921360  {
     
    13001368      }
    13011369  }
     1370#endif
    13021371  //mode coding
    13031372  for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ )
  • trunk/source/Lib/TLibEncoder/TEncSbac.h

    r655 r724  
    118118  #if H_3D_DIM
    119119  Void  xWriteExGolombLevel  ( UInt uiSymbol, ContextModel& rcSCModel  );
     120#if QC_DIM_DELTADC_UNIFY_F0132
     121  Void  xCodeDimDeltaDC      ( Pel valDeltaDC, UInt uiNumSeg );
     122#else
    120123  Void  xCodeDimDeltaDC      ( Pel valDeltaDC, UInt dimType );
     124#endif
    121125#if H_3D_DIM_DMM
    122126  Void  xCodeDmm1WedgeIdx    ( UInt uiTabIdx, Int iNumBit );
     127#if !SEC_DMM3_RBC_F0147
    123128  Void  xCodeDmm3WedgeIdx    ( UInt uiIntraIdx, Int iNumBit );
     129#endif
    124130#endif
    125131#if H_3D_DIM_RBC
     
    253259#if H_3D_DIM_DMM
    254260  ContextModel3DBuffer m_cDmm1DataSCModel;
     261#if !SEC_DMM3_RBC_F0147
    255262  ContextModel3DBuffer m_cDmm3DataSCModel;
     263#endif
    256264#endif
    257265#if H_3D_DIM_RBC
  • trunk/source/Lib/TLibEncoder/TEncSearch.cpp

    r655 r724  
    11261126      for( UInt uiX = 0; uiX < uiWidth; uiX++ )
    11271127      {
     1128#if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
     1129          if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
     1130          {
     1131              pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] );
     1132          }
     1133          else
     1134          {
     1135              pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ];
     1136          }
     1137#else
    11281138        pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ];
     1139#endif
    11291140      }
    11301141      pOrg  += uiStride;
     
    11901201      for( UInt uiX = 0; uiX < uiWidth; uiX++ )
    11911202      {
     1203#if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
     1204          if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
     1205          {
     1206              pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
     1207          }
     1208          else
     1209          {
     1210              pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );
     1211          }
     1212#else
    11921213        pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );
     1214#endif
    11931215        pRecQt   [ uiX ] = pReco[ uiX ];
    11941216        pRecIPred[ uiX ] = pReco[ uiX ];
     
    28762898              biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    28772899            } break;
     2900#if !SEC_DMM3_RBC_F0147
    28782901          case( DMM3_IDX ):
    28792902            {
     
    28932916              }
    28942917            } break;
     2918#endif
    28952919          case( DMM4_IDX ):
    28962920            {
     
    29282952        {
    29292953          Pel deltaDC1 = 0; Pel deltaDC2 = 0;
     2954#if QC_DIM_DELTADC_UNIFY_F0132
     2955          xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 );
     2956#else
    29302957          xSearchRbcDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 );
     2958#endif
    29312959          pcCU->setDimDeltaDC( RBC_IDX, 0, uiPartOffset, deltaDC1 );
    29322960          pcCU->setDimDeltaDC( RBC_IDX, 1, uiPartOffset, deltaDC2 );
     
    29753003      Bool bTestZeroResi = false;
    29763004#if H_3D_DIM_ENC
     3005#if LGE_BUGFIX_F0158
     3006      bTestZeroResi |= pcCU->getSlice()->getIsDepth() && !pcCU->getSlice()->isIRAP();
     3007#else
    29773008      bTestZeroResi |= pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->isIRAP();
     3009#endif
    29783010#endif
    29793011#if H_3D_DIM_SDC
     
    35843616                                 , InheritedVSPDisInfo*  inheritedVSPDisInfo
    35853617#endif
     3618#if MTK_SPIVMP_F0110
     3619                                 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
     3620#endif
    35863621                                 , Int& numValidMergeCand
    35873622                                 )
     
    35993634    if ( iPUIdx == 0 )
    36003635    {
     3636#if ETRIKHU_MERGE_REUSE_F0093
     3637      pcCU->initAvailableFlags();
     3638      pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
     3639      pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
     3640#if H_3D_VSP
     3641                                        , vspFlag
     3642                                        , inheritedVSPDisInfo
     3643#endif
     3644#if MTK_SPIVMP_F0110
     3645                                        , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP
     3646#endif
     3647                                        , numValidMergeCand
     3648        );
     3649#else
    36013650      pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
    36023651#if H_3D_VSP
     
    36063655                                   , numValidMergeCand
    36073656                                   );
     3657#endif
    36083658    }
    36093659    pcCU->setPartSizeSubParts( partSize, 0, uiDepth );
     
    36113661  else
    36123662  {
     3663#if ETRIKHU_MERGE_REUSE_F0093
     3664    pcCU->initAvailableFlags();
     3665    pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
     3666    pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours
     3667#if H_3D_VSP
     3668                                      , vspFlag
     3669                                      , inheritedVSPDisInfo
     3670#endif
     3671#if MTK_SPIVMP_F0110
     3672                                      , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP
     3673#endif
     3674                                      , numValidMergeCand
     3675      );
     3676#else
    36133677    pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours
    36143678#if H_3D_VSP
     
    36183682                                 , numValidMergeCand
    36193683                                 );
     3684#endif
    36203685  }
    36213686#if H_3D_VSP
     
    36353700      PartSize ePartSize = pcCU->getPartitionSize( 0 );
    36363701
    3637       pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    3638       pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
     3702#if MTK_SPIVMP_F0110
     3703      pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ));
     3704      if (pbSPIVMPFlag[uiMergeCand])
     3705      {
     3706        UInt uiSPAddr;
     3707
     3708        Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
     3709
     3710        pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
     3711
     3712        for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++)
     3713        {
     3714          pcCU->getSPAbsPartIdx(uiAbsPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr);
     3715          pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight);
     3716          pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight);
     3717        }
     3718      }
     3719      else
     3720      {
     3721#endif
     3722        pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
     3723        pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
     3724#if MTK_SPIVMP_F0110
     3725      }
     3726#endif
    36393727
    36403728#if H_3D_VSP
     
    43134401      DisInfo OriginalDvInfo = pcCU->getDvInfo(uiAbsPartIdx);
    43144402#endif
    4315 
     4403#if MTK_SPIVMP_F0110
     4404      Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     4405      memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     4406      TComMvField*  pcMvFieldSP;
     4407      UChar* puhInterDirSP;
     4408      pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2];
     4409      puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()];
     4410#endif
    43164411      xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours
    43174412#if H_3D_VSP
     
    43194414                      , inheritedVSPDisInfo
    43204415#endif
     4416#if MTK_SPIVMP_F0110
     4417                      , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
     4418#endif
    43214419                      , numValidMergeCand
    43224420                      );
     
    43304428        pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    43314429#endif
    4332         pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    4333         {
    4334           pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx );
    4335           pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx );
    4336         }
     4430#if MTK_SPIVMP_F0110
     4431        pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 
     4432        if (bSPIVMPFlag[uiMRGIndex]!=0)
     4433        {
     4434          UInt uiSPAddr;
     4435
     4436          Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
     4437
     4438          pcCU->getSPPara(iRoiWidth, iRoiHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
     4439
     4440          for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++)
     4441          {
     4442            pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr);
     4443            pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight);
     4444            pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight);
     4445            pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight);
     4446          }
     4447
     4448          if ( pcCU->getInterDir(uiPartAddr) == 3 && pcCU->isBipredRestriction(iPartIdx) )
     4449          {
     4450            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMv( TComMv(0,0), ePartSize, uiPartAddr, 0, iPartIdx);
     4451            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllRefIdx( -1, ePartSize, uiPartAddr, 0, iPartIdx);
     4452            pcCU->setInterDirSubParts( 1, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ));
     4453          }
     4454
     4455        }
     4456        else
     4457        {
     4458#endif
     4459          pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4460          {
     4461            pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx );
     4462            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx );
     4463          }
     4464#if MTK_SPIVMP_F0110
     4465        }
     4466#endif
    43374467
    43384468        pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvd    ( cMvZero,            ePartSize, uiPartAddr, 0, iPartIdx );
     
    43464476      else
    43474477      {
     4478#if MTK_SPIVMP_F0110       
     4479        pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4480#endif
    43484481        // set ME result
    43494482        pcCU->setMergeFlagSubParts( false,        uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     
    43584491        }
    43594492      }
     4493#if MTK_SPIVMP_F0110
     4494      delete pcMvFieldSP;
     4495      delete puhInterDirSP;
     4496#endif
    43604497    }
    43614498
     
    52705407      dZeroCost = dCost + 1;
    52715408    }
     5409#if MTK_SPIVMP_F0110
     5410    if ( dZeroCost < dCost || pcCU->getQtRootCbf(0)==0)
     5411#else
    52725412    if ( dZeroCost < dCost )
     5413#endif
    52735414    {
    52745415      dCost        = dZeroCost;
     
    73007441}
    73017442
     7443#if !SEC_DMM3_RBC_F0147
    73027444Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir )
    73037445{
     
    73367478  cPredYuv.destroy();
    73377479}
    7338 
     7480#endif
    73397481#endif
    73407482#if H_3D_DIM_RBC
  • trunk/source/Lib/TLibEncoder/TEncSearch.h

    r655 r724  
    351351  Void xSearchDmmDeltaDCs         ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 );
    352352  Void xSearchDmm1Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx );
     353#if !SEC_DMM3_RBC_F0147
    353354  Void xSearchDmm3Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir );
     355#endif
    354356#endif
    355357#if H_3D_DIM_RBC
     
    425427                                  , InheritedVSPDisInfo*  inheritedVSPDisInfo
    426428#endif
     429#if MTK_SPIVMP_F0110
     430                                  , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
     431#endif
    427432                                  , Int& numValidMergeCand
    428433                                   );
  • trunk/source/Lib/TLibEncoder/TEncSlice.cpp

    r655 r724  
    556556  rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() );
    557557#if H_3D_IV_MERGE
     558#if SEC_MPI_ENABLING_MERGE_F0150
     559  if(rpcSlice->getIsDepth())
     560  {
     561    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( ( rpcSlice->getVPS()->getMPIFlag( rpcSlice->getLayerIdInVps() ) || rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ) ? 1 : 0 ) );
     562  }
     563  else
     564  {
     565    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
     566  }
     567#else
    558568   rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
     569#endif
    559570#else
    560571  rpcSlice->setMaxNumMergeCand        ( m_pcCfg->getMaxNumMergeCand()        );
  • trunk/source/Lib/TLibEncoder/TEncTop.cpp

    r655 r724  
    835835  }
    836836#if H_3D
     837#if !QC_DEPTH_IV_MRG_F0125
    837838  if ( !m_isDepth )
     839#endif
    838840  {
    839841    m_cSPS.initCamParaSPS           ( m_viewIndex, m_uiCamParPrecision, m_bCamParInSliceHeader, m_aaiCodedScale, m_aaiCodedOffset );
Note: See TracChangeset for help on using the changeset viewer.