Ignore:
Timestamp:
26 Jan 2013, 19:36:53 (12 years ago)
Author:
mitsubishi-htm
Message:

-Integration of JCT3V-C0152 & JCT3V-C0131
-This check-in enable C0131 only

Location:
branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncCu.cpp

    r189 r231  
    18901890
    18911891  rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    1892   rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
    1893 
     1892#if MERL_VSP_C0152
     1893  Int iVSPIndexTrue[3] = {-1, -1, -1};
     1894  rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue );
     1895#else
     1896  rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1897#endif
    18941898#if FAST_DECISION_FOR_MRG_RD_COST
    18951899  Bool bestIsSkip = false;
     
    19331937          rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to LCU level
    19341938          rpcTempCU->setMergeIndexSubParts( uiMergeCand, 0, 0, uhDepth ); // interprets depth relative to LCU level
     1939#if MERL_VSP_C0152
     1940          {
     1941            Int iVSPIdx = 0;
     1942            Int numVSPIdx;
     1943            numVSPIdx = 3;
     1944            for (Int i = 0; i < numVSPIdx; i++)
     1945            {
     1946              if (iVSPIndexTrue[i] == uiMergeCand)
     1947                {
     1948                  iVSPIdx = i+1;
     1949                  break;
     1950                }
     1951            }
     1952            rpcTempCU->setVSPIndexSubParts( iVSPIdx, 0, 0, uhDepth );
     1953          }
     1954#endif
    19351955          rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
    19361956          rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     
    19521972#endif
    19531973        {
     1974#if MERL_VSP_C0152
     1975            m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth],  rpcTempCU->getZorderIdxInCU() );
     1976#else
    19541977            m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     1978#endif
    19551979            // save pred adress
    19561980            pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth];
     
    19621986            if( bestIsSkip)
    19631987            {
     1988#if MERL_VSP_C0152
     1989              m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() );
     1990#else
    19641991              m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     1992#endif
    19651993              // save pred adress
    19661994              pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth];
     
    20652093 
    20662094  rpcTempCU->setPartSizeSubParts  ( ePartSize,  0, uhDepth );
     2095
    20672096#if HHI_INTER_VIEW_RESIDUAL_PRED
    20682097  rpcTempCU->setResPredAvailSubParts( bResPrdAvail, 0, 0, uhDepth );
     
    20842113  #if HHI_INTERVIEW_SKIP
    20852114#if LG_RESTRICTEDRESPRED_M24766
    2086   m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG  );
     2115  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG);
    20872116#else
    20882117  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG  );
     
    27872816      assert( rpcTempCU->getInterDir( ui ) != 0 );
    27882817      assert( rpcTempCU->getPredictionMode( ui ) != MODE_NONE );
    2789     }
     2818#if MERL_VSP_C0152
     2819      Int vspIdx = pcTextureCU->getVSPIndex( rpcTempCU->getZorderIdxInCU() + ui);
     2820      rpcTempCU->setVSPIndex( ui , vspIdx);
     2821#endif
     2822    }
     2823
    27902824    rpcTempCU->setPredModeSubParts( bSkipResidual ? MODE_SKIP : MODE_INTER, 0, uhDepth );
     2825#if MERL_VSP_C0152
     2826    m_pcPredSearch->motionCompensationBWVSP( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU()  );
     2827#else
    27912828    m_pcPredSearch->motionCompensation( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
    2792 
     2829#endif
    27932830    // get Original YUV data from picture
    27942831    m_ppcOrigYuv[uhDepth]->copyFromPicYuv( rpcBestCU->getPic()->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() );
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncCu.h

    r56 r231  
    8181  TComYuv**               m_ppcResPredTmp;  ///< Temporary residual prediction for each depth
    8282#endif
    83  
     83
    8484  //  Data : encoder control
    8585  Bool                    m_bEncodeDQP;
     
    121121  /// destroy internal buffers
    122122  Void  destroy             ();
    123  
     123
    124124  /// CU analysis function
    125125  Void  compressCU          ( TComDataCU*&  rpcCU );
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncEntropy.cpp

    r210 r231  
    13471347    uiAbsPartIdx = 0;
    13481348  }
    1349  
     1349
    13501350#if RWTH_SDC_DLT_B0036
    13511351  if( pcCU->getSDCFlag(uiAbsPartIdx) )
     
    13551355  }
    13561356#endif
    1357  
     1357
    13581358  PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx );
    13591359 
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncGOP.cpp

    r210 r231  
    254254      pcSlice->setSliceIdx(0);
    255255      pcSlice->setViewId( m_pcEncTop->getViewId() );
    256       pcSlice->setIsDepth( m_pcEncTop->getIsDepth() ); 
     256      pcSlice->setIsDepth( m_pcEncTop->getIsDepth() );
    257257
    258258      m_pcEncTop->getSPS()->setDisInter4x4(m_pcEncTop->getDisInter4x4());
     
    340340      pcSlice->setNumRefIdx( REF_PIC_LIST_1, min( m_pcCfg->getGOPEntry( (getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_IDV) ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) );
    341341#else
    342 
    343     Bool bNalRAP = ((getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_CRA) || (getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_IDR)) && (pcSlice->getSPS()->getViewId())  ? 1: 0;
    344     pcSlice->setNumRefIdx( REF_PIC_LIST_0, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) );
    345     pcSlice->setNumRefIdx( REF_PIC_LIST_1, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) );
    346 #endif
    347     TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification();
    348     refPicListModification->setRefPicListModificationFlagL0( false );
     342      Bool bNalRAP = ((getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_CRA) || (getNalUnitType(uiPOCCurr) == NAL_UNIT_CODED_SLICE_IDR)) && (pcSlice->getSPS()->getViewId())  ? 1: 0;
     343      pcSlice->setNumRefIdx( REF_PIC_LIST_0, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) );
     344      pcSlice->setNumRefIdx( REF_PIC_LIST_1, min( m_pcCfg->getGOPEntry( bNalRAP ? MAX_GOP : iGOPid ).m_numRefPicsActive, (pcSlice->getRPS()->getNumberOfPictures() + pcSlice->getSPS()->getNumberOfUsableInterViewRefs()) ) );
     345#endif
     346     
     347      TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification();
     348      refPicListModification->setRefPicListModificationFlagL0( false );
    349349#if !H0137_0138_LIST_MODIFICATION
    350350      refPicListModification->setNumberOfRefPicListModificationsL0(0);
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSbac.cpp

    r210 r231  
    12771277      xWriteUnaryMaxSymbol( iRefFrame - 1, pCtx + 1, 1, pcCU->getSlice()->getNumRefIdx( REF_PIC_LIST_C )-2 );
    12781278    }
     1279#if MERL_VSP_C0152
     1280    else if (iRefFrame < 0) // NOT_VALID
     1281    {
     1282      assert(0);
     1283    }
     1284#endif
    12791285  }
    12801286  else
     
    12881294      xWriteUnaryMaxSymbol( iRefFrame - 1, pCtx + 1, 1, pcCU->getSlice()->getNumRefIdx( eRefList )-2 );
    12891295    }
     1296#if MERL_VSP_C0152
     1297    else if (iRefFrame < 0) // NOT_VALID
     1298    {
     1299      assert(0);
     1300    }
     1301#endif
    12901302  }
    12911303  return;
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSearch.cpp

    r210 r231  
    696696UInt TEncSearch::xPatternRefinement( TComPattern* pcPatternKey,
    697697                                    TComMv baseRefMv,
    698                                     Int iFrac, TComMv& rcMvFrac )
     698                                    Int iFrac, TComMv& rcMvFrac
     699                                   )
    699700{
    700701  UInt  uiDist;
     
    16881689  // reconstruct residual based on mask + DC residuals
    16891690  Pel apDCResiValues[2];
    1690   Pel apDCRecoValues[2];
     1691  //Pel apDCRecoValues[2];
    16911692  for( UInt uiSegment = 0; uiSegment < uiNumSegments; uiSegment++ )
    16921693  {
     
    16951696    Pel   pRecoValue  = GetIdx2DepthValue( pPredIdx + pResiIdx );
    16961697   
    1697     apDCRecoValues[uiSegment]  = pRecoValue;
     1698    //apDCRecoValues[uiSegment]  = pRecoValue;
    16981699    apDCResiValues[uiSegment]  = pRecoValue - apDCPredValues[uiSegment];
    16991700  }
     
    28972898Void TEncSearch::xGetInterPredictionError( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPartIdx, UInt& ruiErr, Bool bHadamard )
    28982899{
     2900#if !MERL_VSP_C0152
    28992901  motionCompensation( pcCU, &m_tmpYuvPred, REF_PIC_LIST_X, iPartIdx );
    2900 
     2902#endif
    29012903  UInt uiAbsPartIdx = 0;
    29022904  Int iWidth = 0;
    29032905  Int iHeight = 0;
    29042906  pcCU->getPartIndexAndSize( iPartIdx, uiAbsPartIdx, iWidth, iHeight );
    2905 
     2907#if MERL_VSP_C0152
     2908  motionCompensationBWVSP( pcCU, &m_tmpYuvPred,  pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx );
     2909#endif
    29062910  DistParam cDistParam;
    29072911
     
    29432947#else
    29442948#if LG_RESTRICTEDRESPRED_M24766
     2949#if MERL_VSP_C0152
     2950Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, Int* iVSPIndexTrue )
     2951#else
    29452952Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost )
     2953#endif
    29462954#else
    29472955Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost )
     
    29882996  }
    29892997#else
     2998#if MERL_VSP_C0152
     2999  pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue );
     3000#else
    29903001  pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, uiDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
    29913002#endif
     3003#endif
     3004
    29923005
    29933006#if HHI_INTER_VIEW_MOTION_PRED
     
    30093022      pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    30103023      pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
     3024#if MERL_VSP_C0152
     3025      {
     3026        Int iVSPIdx = 0;
     3027        Int numVSPIdx;
     3028        numVSPIdx = 3;
     3029        for (Int i = 0; i < numVSPIdx; i++)
     3030        {
     3031          if (iVSPIndexTrue[i] == uiMergeCand)
     3032            {
     3033              iVSPIdx = i+1;
     3034              break;
     3035            }
     3036        }
     3037        pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3038      }
     3039#endif
    30113040#if LG_RESTRICTEDRESPRED_M24766
    30123041      Int iAddResiShift;
     
    30813110Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* rpcResiPredYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG )
    30823111#else
    3083 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG )
     3112Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG)
    30843113#endif
    30853114#else
     
    31853214    for (Int iNumRef=0; iNumRef < MAX_NUM_REF; iNumRef++) uiCostTempL0[iNumRef] = MAX_UINT;
    31863215    UInt          uiBitsTempL0[MAX_NUM_REF];
     3216
    31873217#if LG_RESTRICTEDRESPRED_M24766
    31883218    Int iPUResiPredShift[4] = {0, 0, 0, 0};
     
    31913221   
    31923222    pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight );
    3193    
     3223#if MERL_VSP_C0152
     3224    //reset the VSP flag to be 0
     3225    pcCU->setVSPIndexSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) );
     3226#endif
    31943227#if AMP_MRG
    31953228    Bool bTestNormalMC = true;
     
    32063239      Bool bLastResiFlag = false;
    32073240#endif
     3241
    32083242    //  Uni-directional prediction
    32093243    for ( Int iRefList = 0; iRefList < iNumPredDir; iRefList++ )
     
    35453579            xCheckBestMVP(pcCU, eRefPicList, cMvTemp[iRefList][iRefIdxTemp], cMvPredBi[iRefList][iRefIdxTemp], aaiMvpIdxBi[iRefList][iRefIdxTemp], uiBitsTemp, uiCostTemp);
    35463580          }
    3547          
     3581
    35483582          if ( uiCostTemp < uiCostBi )
    35493583          {
     
    37933827      TComMvField cMRGMvField[2];
    37943828      UInt uiMRGIndex = 0;
    3795 
     3829#if MERL_VSP_C0152
     3830      Int iVSPIndexTrue[3] = {-1, -1, -1};
     3831#endif
    37963832      UInt uiMEInterDir = 0;
    37973833      TComMvField cMEMvField[2];
     
    38443880#else
    38453881#if LG_RESTRICTEDRESPRED_M24766
     3882#if MERL_VSP_C0152
     3883      xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost,  iVSPIndexTrue );
     3884#else
    38463885      xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost );
     3886#endif
    38473887#else
    38483888      xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost );
     
    38543894        pcCU->setMergeFlagSubParts ( true,          uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    38553895        pcCU->setMergeIndexSubParts( uiMRGIndex,    uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     3896#if MERL_VSP_C0152
     3897        {
     3898          Int iVSPIdx = 0;
     3899          Int numVSPIdx;
     3900          numVSPIdx = 3;
     3901          for (Int i = 0; i < numVSPIdx; i++)
     3902          {
     3903            if (iVSPIndexTrue[i] == uiMRGIndex)
     3904              {
     3905                iVSPIdx = i+1;
     3906                break;
     3907              }
     3908          }
     3909          pcCU->setVSPIndexSubParts( iVSPIdx, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     3910        }
     3911#endif
    38563912        pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    38573913        {
     
    38733929        pcCU->setMergeFlagSubParts( false,        uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    38743930        pcCU->setInterDirSubParts ( uiMEInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     3931#if MERL_VSP_C0152
     3932        pcCU->setVSPIndexSubParts ( 0 ,           uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     3933#endif
    38753934        {
    38763935          pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMEMvField[0], ePartSize, uiPartAddr, 0, iPartIdx );
     
    38813940
    38823941    //  MC
     3942#if MERL_VSP_C0152
     3943    motionCompensationBWVSP ( pcCU, rpcPredYuv, pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx);
     3944#else
    38833945    motionCompensation ( pcCU, rpcPredYuv, REF_PIC_LIST_X, iPartIdx );
    3884    
     3946#endif
    38853947  } //  end of for ( Int iPartIdx = 0; iPartIdx < iNumPart; iPartIdx++ )
    38863948
     
    43384400  m_pcRdCost->setMultiviewReg( 0 );
    43394401#endif
     4402
    43404403  setWpScalingDistParam( pcCU, iRefIdxPred, eRefPicList );
    43414404  //  Do integer search
     
    43514414 
    43524415  m_pcRdCost->getMotionCost( 1, 0 );
     4416
    43534417#if HHI_FULL_PEL_DEPTH_MAP_MV_ACC
    43544418  if( ! pcCU->getSlice()->getIsDepth() )
     
    43784442    ruiCost += m_pcRdCost->getCost( uiMvBits );
    43794443#endif
    4380  
     4444
    43814445  ruiBits      += uiMvBits;
    43824446  ruiCost       = (UInt)( floor( fWeight * ( (Double)ruiCost - (Double)m_pcRdCost->getCost( uiMvBits ) ) ) + (Double)m_pcRdCost->getCost( ruiBits ) );
     
    47234787  rcMvQter = *pcMvInt;   rcMvQter <<= 1;    // for mv-cost
    47244788  rcMvQter += rcMvHalf;  rcMvQter <<= 1;
    4725   ruiCost = xPatternRefinement( pcPatternKey, baseRefMv, 1, rcMvQter );
     4789  ruiCost = xPatternRefinement( pcPatternKey, baseRefMv, 1, rcMvQter);
    47264790}
    47274791
     
    47584822#endif
    47594823  //  No residual coding : SKIP mode
    4760   if ( ePredMode == MODE_SKIP && bSkipRes )
     4824  if ( (ePredMode == MODE_SKIP && bSkipRes) )
    47614825  {
    47624826    rpcYuvResi->clear();
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSearch.h

    r210 r231  
    152152  UInt  xPatternRefinement( TComPattern* pcPatternKey,
    153153                           TComMv baseRefMv,
    154                            Int iFrac, TComMv& rcMvFrac );
     154                           Int iFrac, TComMv& rcMvFrac);
    155155 
    156156  typedef struct
     
    513513                                    Int& numValidMergeCand
    514514#endif
     515#if MERL_VSP_C0152
     516                                  , Int* iVSPIndexTrue
     517#endif
    515518                                   );
    516519  // -------------------------------------------------------------------------------------------------------------------
     
    579582                                    TComMv&       rcMvQter,
    580583                                    UInt&         ruiCost
    581                                    ,Bool biPred
    582                                    );
     584                                   ,Bool biPred);
    583585 
    584586  Void xExtDIFUpSamplingH( TComPattern* pcPattern, Bool biPred  );
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSlice.cpp

    r210 r231  
    811811      m_pcBufferLowLatSbacCoders[ui].load(m_pppcRDSbacCoder[0][CI_CURR_BEST]);  //init. state
    812812  }
     813
     814#if MERL_VSP_C0152
     815  // Send Depth/Texture pointers to slice level
     816  pcSlice->setBWVSPLUTParam(m_aiShiftLUT, m_iShiftPrec);
     817  pcSlice->setRefPicBaseTxt(m_pPicBaseTxt);
     818  pcSlice->setRefPicBaseDepth(m_pPicBaseDepth);
     819#endif
     820
    813821  UInt uiWidthInLCUs  = rpcPic->getPicSym()->getFrameWidthInCU();
    814822  //UInt uiHeightInLCUs = rpcPic->getPicSym()->getFrameHeightInCU();
     
    11381146
    11391147  UInt uiEncCUOrder;
     1148
    11401149  uiCUAddr = rpcPic->getPicSym()->getCUOrderMap( uiStartCUAddr /rpcPic->getNumPartInCU());  /*for tiles, uiStartCUAddr is NOT the real raster scan address, it is actually
    11411150                                                                                              an encoding order index, so we need to convert the index (uiStartCUAddr)
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSlice.h

    r210 r231  
    101101 
    102102  UInt                    m_uiSliceIdx;
     103
     104#if MERL_VSP_C0152
     105  // Data temporarily stored, will be sent to TComSlice level where the data will be actually used
     106  TComPic* m_pPicBaseTxt;
     107  TComPic* m_pPicBaseDepth;
     108  Int*     m_aiShiftLUT;
     109  Int      m_iShiftPrec;
     110#endif
     111
    103112public:
    104113  TEncSlice();
     
    128137  UInt    getSliceIdx()         { return m_uiSliceIdx;                    }
    129138  Void    setSliceIdx(UInt i)   { m_uiSliceIdx = i;                       }
     139
     140#if MERL_VSP_C0152
     141   Void     setBWVSPLUTParam    ( Int *pShiftLUT, Int iLoG2LUTPrec ) { m_aiShiftLUT = pShiftLUT; m_iShiftPrec = 2-iLoG2LUTPrec; }
     142   Void     setRefPicBaseTxt    ( TComPic*pPicTxt   ) { m_pPicBaseTxt = pPicTxt;    }
     143   Void     setRefPicBaseDepth  ( TComPic*pPicDepth ) { m_pPicBaseDepth = pPicDepth;}
     144   Void     getBWVSPLUTParam    ( Int*& pShiftLUT, Int& iShiftPrec ) { pShiftLUT = m_aiShiftLUT; iShiftPrec = m_iShiftPrec; }
     145   TComPic* getRefPicBaseTxt    () { return m_pPicBaseTxt;   }
     146   TComPic* getRefPicBaseDepth  () { return m_pPicBaseDepth; }
     147#endif
    130148};
    131149
Note: See TracChangeset for help on using the changeset viewer.