Ignore:
Timestamp:
24 Jan 2014, 02:36:31 (11 years ago)
Author:
mediatek-htm
Message:

Integration of DDD (JCT3V-G0063)

Location:
branches/HTM-9.3-dev1-MediaTek/source/Lib/TLibEncoder
Files:
3 edited

Legend:

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

    r787 r795  
    18811881
    18821882#endif
     1883
     1884#if MTK_DDD_G0063
     1885    Int iDDDCand = rpcTempCU->getUseDDDCandIdx();
     1886    UChar ucDDDepth = rpcTempCU->getDDTmpDepth();
     1887    rpcTempCU->setUseDDD( false, 0, uhDepth );
     1888#endif
     1889
    18831890  for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual )
    18841891  {
     
    19141921          rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    19151922#endif
     1923
     1924#if MTK_DDD_G0063
     1925          if( rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewIndex() != 0 && iDDDCand == uiMergeCand )
     1926          {
     1927              rpcTempCU->setUseDDD( true, 0, 0, uhDepth );
     1928              rpcTempCU->setDDDepthSubParts( ucDDDepth, 0, 0, uhDepth );
     1929          }
     1930          else
     1931          {
     1932              rpcTempCU->setUseDDD( false, 0, 0, uhDepth );
     1933          }
     1934#endif
     1935
    19161936#if H_3D_SPIVMP
    19171937          rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth);
     
    21222142  rpcTempCU->setCUTransquantBypassSubParts  ( m_pcEncCfg->getCUTransquantBypassFlagValue(),      0, uhDepth );
    21232143 
     2144#if MTK_DDD_G0063
     2145  rpcTempCU->setUseDDD( false, 0, uhDepth );
     2146#endif
     2147
    21242148#if H_3D_ARP
    21252149  rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
  • branches/HTM-9.3-dev1-MediaTek/source/Lib/TLibEncoder/TEncSearch.cpp

    r773 r795  
    36753675#endif
    36763676
     3677#if MTK_DDD_G0063
     3678      if( uiMergeCand == pcCU->getUseDDDCandIdx() )
     3679      {
     3680          pcCU->setUseDDD( true, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3681          pcCU->setDDDepthSubParts( pcCU->getDDTmpDepth(), uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3682      }
     3683      else
     3684      {
     3685          pcCU->setUseDDD( false, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3686      }
     3687#endif
     3688
    36773689      xGetInterPredictionError( pcCU, pcYuvOrg, iPUIdx, uiCostCand, m_pcEncCfg->getUseHADME() );
    36783690      uiBitsCand = uiMergeCand + 1;
     
    43724384        pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    43734385#endif
     4386
     4387#if MTK_DDD_G0063
     4388        if( uiMRGIndex == pcCU->getUseDDDCandIdx() )
     4389        {
     4390            assert( vspFlag[uiMRGIndex]     == 0 );
     4391            assert( bSPIVMPFlag[uiMRGIndex] == 0 );
     4392            pcCU->setUseDDD( true, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4393            pcCU->setDDDepthSubParts( pcCU->getDDTmpDepth(), uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4394        }
     4395        else
     4396        {
     4397            pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4398        }
     4399#endif
     4400
    43744401#if H_3D_SPIVMP
    43754402        pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 
     
    44224449#if H_3D_SPIVMP       
    44234450        pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4451#endif
     4452
     4453#if MTK_DDD_G0063
     4454        pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    44244455#endif
    44254456        // set ME result
  • branches/HTM-9.3-dev1-MediaTek/source/Lib/TLibEncoder/TEncSlice.h

    r655 r795  
    107107  UInt                    m_uiSliceIdx;
    108108  std::vector<TEncSbac*> CTXMem;
     109
     110#if MTK_DDD_G0063
     111  Int          m_iDDDScale;
     112  Int          m_iDDDOffset;
     113  UInt         m_uiDDDPrecision;
     114#endif
    109115public:
    110116  TEncSlice();
     
    147153  Void      setCtxMem( TEncSbac* sb, Int b )   { CTXMem[b] = sb; }
    148154
     155#if MTK_DDD_G0063
     156  Void setDDDPar( Int iScale, Int iOffset, UInt uiPrecision ){ m_iDDDScale = iScale; m_iDDDOffset = iOffset; m_uiDDDPrecision = uiPrecision; }
     157#endif
     158
    149159private:
    150160  Double  xGetQPValueAccordingToLambda ( Double lambda );
Note: See TracChangeset for help on using the changeset viewer.