Changeset 669 in 3DVCSoftware


Ignore:
Timestamp:
4 Nov 2013, 17:39:44 (11 years ago)
Author:
zhang
Message:

JCT3V-F0125

Location:
branches/HTM-8.2-dev2-Qualcomm
Files:
2 added
17 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev2-Qualcomm/cfg/3D-HEVC/baseCfg_2view+depth.cfg

    r622 r669  
    195195
    196196#========== multiview coding tools ==========
    197 IvMvPred                            : 1                # Inter-view motion prediction
     197IvMvPred                            : 1 1              # Inter-view motion prediction
    198198AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    199199IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on )   (v/d)
  • branches/HTM-8.2-dev2-Qualcomm/cfg/3D-HEVC/baseCfg_3view+depth.cfg

    r622 r669  
    225225
    226226#========== multiview coding tools ==========
    227 IvMvPred                            : 1                # Inter-view motion prediction
     227IvMvPred                            : 1 1              # Inter-view motion prediction
    228228AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    229229IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
  • branches/HTM-8.2-dev2-Qualcomm/source/App/TAppEncoder/TAppEncCfg.cpp

    r655 r669  
    750750#endif
    751751#if H_3D_IV_MERGE
     752#if QC_DEPTH_IV_MRG_F0125 
     753  ("IvMvPred",                        m_ivMvPredFlag            , std::vector<Bool>(2, true)            , "inter view motion prediction " )
     754#else
    752755  ("IvMvPred",                        m_ivMvPredFlag,           true            , "inter view motion prediction " ) 
     756#endif
    753757#endif
    754758#if H_3D_NBDV_REF
     
    24142418#endif
    24152419#if H_3D_IV_MERGE
     2420#if QC_DEPTH_IV_MRG_F0125
     2421  printf("IvMvPred:%d %d", m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1] ? 1 : 0);
     2422#else
    24162423  printf("IvMvPred:%d ", m_ivMvPredFlag );
     2424#endif
    24172425#endif
    24182426#if H_3D_ARP
  • branches/HTM-8.2-dev2-Qualcomm/source/App/TAppEncoder/TAppEncCfg.h

    r655 r669  
    115115
    116116#if H_3D_IV_MERGE
     117#if QC_DEPTH_IV_MRG_F0125
     118  vector<Bool>           m_ivMvPredFlag;                      ///< Interview motion vector prediction
     119#else
    117120  Bool                   m_ivMvPredFlag;                      ///< Interview motion vector prediction
     121#endif
    118122#endif
    119123#if H_3D_ARP                                                  /// < flag and number of weighting factors in ARP
  • branches/HTM-8.2-dev2-Qualcomm/source/App/TAppEncoder/TAppEncTop.cpp

    r655 r669  
    149149    //====== Camera Parameters =========
    150150    m_cTEncTop.setCameraParameters             ( &m_cCameraData );     
     151#if QC_DEPTH_IV_MRG_F0125
     152    m_cTEncTop.setCamParPrecision              ( m_cCameraData.getCamParsCodedPrecision  () );
     153    m_cTEncTop.setCamParInSliceHeader          ( m_cCameraData.getVaryingCameraParameters() );
     154    m_cTEncTop.setCodedScale                   ( m_cCameraData.getCodedScale             () );
     155    m_cTEncTop.setCodedOffset                  ( m_cCameraData.getCodedOffset            () );
     156#else
    151157    m_cTEncTop.setCamParPrecision              ( isDepth ? false : m_cCameraData.getCamParsCodedPrecision  () );
    152158    m_cTEncTop.setCamParInSliceHeader          ( isDepth ? 0     : m_cCameraData.getVaryingCameraParameters() );
    153159    m_cTEncTop.setCodedScale                   ( isDepth ? 0     : m_cCameraData.getCodedScale             () );
    154160    m_cTEncTop.setCodedOffset                  ( isDepth ? 0     : m_cCameraData.getCodedOffset            () );
     161#endif
    155162#if H_3D_VSO
    156163    //====== VSO =========
     
    16521659
    16531660#if H_3D_IV_MERGE
     1661#if QC_DEPTH_IV_MRG_F0125
     1662    if( isDepth )
     1663    {
     1664      vps.setIvMvPredFlag         ( layer, (layer != 1) && m_ivMvPredFlag[1] );
     1665    }
     1666    else
     1667    {
     1668      vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] );
     1669    }
     1670#else
    16541671    vps.setIvMvPredFlag         ( layer, !isLayerZero && !isDepth && m_ivMvPredFlag );
     1672#endif
    16551673#endif
    16561674#if H_3D_NBDV_REF
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp

    r655 r669  
    35223522  deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT );
    35233523  deriveLeftBottomIdxGeneral  ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB );
     3524#if QC_DEPTH_IV_MRG_F0125
     3525  Bool bIsDepth = getSlice()->getIsDepth();
     3526  Bool bDepthIPMCAvai = false;
     3527#endif
    35243528#if H_3D_IV_MERGE
    35253529 
     
    36213625  if ( ivMvPredFlag )
    36223626  {
    3623     getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir );
     3627    getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir
     3628#if QC_DEPTH_IV_MRG_F0125
     3629    , bIsDepth
     3630#endif
     3631    );
    36243632  } 
    36253633 
     
    36423650    }
    36433651
     3652#if QC_DEPTH_IV_MRG_F0125
     3653    if ( bIsDepth )
     3654    {
     3655      Bool bRemoveSpa = false;
     3656      Int iCnloop = iCount-1;
     3657      for(; iCnloop >= 0; iCnloop --)
     3658      {
     3659        if(puhInterDirNeighbours[iCount] == puhInterDirNeighbours[iCnloop] && pcMvFieldNeighbours[iCnloop<<1]==pcMvFieldNeighbours[(iCount<<1)] && pcMvFieldNeighbours[(iCnloop<<1)+1]==pcMvFieldNeighbours[(iCount<<1)+1])
     3660        {
     3661          bRemoveSpa                      = true;
     3662          abCandIsInter        [ iCount ] = false;
     3663
     3664          puhInterDirNeighbours[iCount]   = 0;
     3665          pcMvFieldNeighbours[iCount<<1].setMvField( cZeroMv, NOT_VALID );
     3666          pcMvFieldNeighbours[(iCount<<1)+1].setMvField( cZeroMv, NOT_VALID );
     3667          break;
     3668        }
     3669      }
     3670      if(!bRemoveSpa)
     3671      {
     3672        bDepthIPMCAvai = true;
     3673      }
     3674    }
     3675    if ( bDepthIPMCAvai || !bIsDepth )
     3676    {
     3677#endif
    36443678    if ( mrgCandIdx == iCount )
    36453679    {
     
    36473681    }
    36483682    iCount ++;
     3683#if QC_DEPTH_IV_MRG_F0125
     3684    }
     3685#endif
    36493686  }
    36503687
     
    36823719#if H_3D_IV_MERGE
    36833720    Bool bRemoveSpa = false; //pruning to inter-view candidates
     3721#if QC_DEPTH_IV_MRG_F0125
     3722    Int  iCnloop = bDepthIPMCAvai ? (iCount-2): (iCount-1);
     3723#else
    36843724    Int  iCnloop    = iCount - 1;
     3725#endif
    36853726    for(; iCnloop >= 0; iCnloop --)
    36863727    {
     
    37583799#if H_3D_IV_MERGE
    37593800    Bool bRemoveSpa = false; //pruning to inter-view candidates
     3801#if QC_DEPTH_IV_MRG_F0125
     3802    Int iCnloop;
     3803    if( bIsDepth )
     3804      iCnloop = (bLeftAvai && bDepthIPMCAvai) ? (iCount-3) : ((bLeftAvai || bDepthIPMCAvai)  ? (iCount-2): (iCount-1));
     3805    else
     3806      iCnloop = bLeftAvai? (iCount-2): (iCount-1);
     3807#else
    37603808    Int  iCnloop    = bLeftAvai? (iCount-2): (iCount-1);
     3809#endif
    37613810    for(; iCnloop >= 0; iCnloop --)
    37623811    {
     
    54115460  riPosX = g_auiRasterToPelX[g_auiZscanToRaster[uiAbsPartIndex]] + getCUPelX();
    54125461  riPosY = g_auiRasterToPelY[g_auiZscanToRaster[uiAbsPartIndex]] + getCUPelY(); 
     5462}
     5463#endif
     5464#if QC_DEPTH_IV_MRG_F0125
     5465Bool TComDataCU::getDispNeighBlocks (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)
     5466{
     5467  Pel pDepPos[3] = {0, 0, 0};
     5468  assert(getPartitionSize( uiPartAddr ) == SIZE_2Nx2N);
     5469  Bool bDepAvail = false;
     5470  Pel *pDepth  = this->getPic()->getPicYuvRec()->getLumaAddr();
     5471  Int iDepStride =  this->getPic()->getPicYuvRec()->getStride();
     5472  TComMv cMv;
     5473
     5474  Int xP, yP, nPSW, nPSH;
     5475  this->getPartPosition(uiPartIdx, xP, yP, nPSW, nPSH);
     5476
     5477  if(xP != 0 && yP != 0)
     5478  {
     5479    pDepPos[0] = pDepth[ (yP-1) * iDepStride + (xP-1) ];
     5480    bDepAvail = true;
     5481  }
     5482
     5483  if(xP != 0)
     5484  {
     5485    pDepPos[1] = pDepth[ (yP+nPSH-1) * iDepStride + (xP-1) ];
     5486    bDepAvail = true;
     5487  }
     5488
     5489  if(yP != 0)
     5490  {
     5491    pDepPos[2] = pDepth[ (yP-1) * iDepStride + (xP+nPSW-1) ];
     5492    bDepAvail = true;
     5493  }
     5494
     5495  if (bDepAvail)
     5496  {
     5497    Pel pAvgDepth = (xP != 0 && yP != 0) ? ((5*pDepPos[0] + 5*pDepPos[1] + 6*pDepPos[2] + 8)>>4) : (xP == 0) ? pDepPos[2] : pDepPos[1];
     5498    Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ pAvgDepth ];
     5499    cMv.setHor(iDisp);
     5500    cMv.setVer(0);
     5501    pDisp->m_acNBDV = cMv;
     5502    pDisp->m_aVIdxCan = 0;
     5503    return true;
     5504  }
     5505  else
     5506  { 
     5507    cMv.setZero();
     5508    pDisp->m_acNBDV = cMv;
     5509    pDisp->m_aVIdxCan = 0;
     5510    return false;
     5511  }
    54135512}
    54145513#endif
     
    59446043#if H_3D_IV_MERGE
    59456044Bool
    5946 TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc )
     6045TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc
     6046#if QC_DEPTH_IV_MRG_F0125
     6047, Bool bIsDepth           
     6048#endif
     6049)
    59476050{
    59486051  TComSlice*    pcSlice = getSlice (); 
     
    59506053 
    59516054  //--- get base CU/PU and check prediction mode ---
     6055#if QC_DEPTH_IV_MRG_F0125
     6056  TComPic*    pcBasePic   = pcSlice->getIvPic( bIsDepth, iViewIndex );
     6057#else
    59526058  TComPic*    pcBasePic   = pcSlice->getIvPic( false, iViewIndex );
     6059#endif
    59536060  TComPicYuv* pcBaseRec   = pcBasePic->getPicYuvRec   ();
    59546061
     
    59616068  pcBaseRec->getTopLeftSamplePos( getAddr(), getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );
    59626069
     6070#if QC_DEPTH_IV_MRG_F0125
     6071  iCurrPosX  += ( iWidth  >> 1 );
     6072  iCurrPosY  += ( iHeight >> 1 );
     6073#else
    59636074  iCurrPosX  += ( ( iWidth  - 1 ) >> 1 );
    59646075  iCurrPosY  += ( ( iHeight - 1 ) >> 1 );
     6076#endif
    59656077
    59666078  Bool depthRefineFlag = false;
     
    60266138                  TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
    60276139#if H_3D_NBDV
    6028                   cMv.setIDVFlag   (true);
    6029                   cMv.setIDVHor    (cDv.getHor());                 
    6030                   cMv.setIDVVer    (cDv.getVer()); 
    6031                   cMv.setIDVVId    (iViewIndex);
     6140#if QC_DEPTH_IV_MRG_F0125
     6141                  if( !bIsDepth )
     6142                  {
     6143#endif
     6144                    cMv.setIDVFlag   (true);
     6145                    cMv.setIDVHor    (cDv.getHor());                 
     6146                    cMv.setIDVVer    (cDv.getVer()); 
     6147                    cMv.setIDVVId    (iViewIndex);
     6148#if QC_DEPTH_IV_MRG_F0125
     6149                  }
     6150#endif
    60326151#endif
    60336152                  clipMv( cMv );
     
    60716190#endif
    60726191          cMv.setHor( cMv.getHor() + ioffsetDV );
     6192#if QC_DEPTH_IV_MRG_F0125
     6193          if( bIsDepth )
     6194            cMv.setHor((cMv.getHor()+2)>>2);
     6195#endif
    60736196          cMv.setVer( 0 );
    60746197          clipMv( cMv );
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.h

    r655 r669  
    493493   );
    494494   
     495#if QC_DEPTH_IV_MRG_F0125
     496  Bool          getDispNeighBlocks  ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);
     497  Bool          getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm );
     498#endif
     499
    495500#if H_3D_NBDV_REF
    496501  Pel           getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT );
     
    502507#endif
    503508#if H_3D_IV_MERGE
    504   Bool          getInterViewMergeCands          ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc );   
     509  Bool          getInterViewMergeCands          ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc
     510#if QC_DEPTH_IV_MRG_F0125
     511    , Bool bIsDepth           
     512#endif
     513    );   
    505514#endif
    506515#if H_3D_ARP
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibCommon/TComSlice.cpp

    r655 r669  
    29682968#endif
    29692969
     2970#if QC_DEPTH_IV_MRG_F0125
     2971  setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() );
     2972#endif
     2973
    29702974  if( !setupLUT )
    29712975    return;
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibCommon/TComSlice.h

    r655 r669  
    13381338  UInt getCamParPrecision    ()  { return m_uiCamParPrecision; }
    13391339  Bool hasCamParInSliceHeader()  { return m_bCamParInSliceHeader; }
     1340#if QC_DEPTH_IV_MRG_F0125
     1341  Void setHasCamParInSliceHeader( Bool b )  { m_bCamParInSliceHeader = b; }
     1342#endif
    13401343  Int* getCodedScale         ()  { return m_aaiCodedScale [0]; }
    13411344  Int* getCodedOffset        ()  { return m_aaiCodedOffset[0]; }
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibCommon/TypeDef.h

    r655 r669  
    207207#if H_3D_ARP
    208208#define H_3D_ARP_WFNR                     3
     209#endif
     210
     211///// ***** Inter-view motion merge candidate *********
     212#if H_3D_IV_MERGE
     213#define QC_DEPTH_IV_MRG_F0125             1   // JCT3V-F0125: Depth oriented Inter-view MV candidate
    209214#endif
    210215
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r655 r669  
    12651265      else
    12661266      {
    1267 
     1267#if QC_DEPTH_IV_MRG_F0125 && H_3D_IV_MERGE
     1268        if(i!=1)
     1269        {
     1270          READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
     1271        }
     1272#endif
    12681273        READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
    12691274        //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false );
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp

    r655 r669  
    135135Void TDecCu::decompressCU( TComDataCU* pcCU )
    136136{
     137#if !QC_DEPTH_IV_MRG_F0125
    137138  xDecompressCU( pcCU, 0,  0 );
     139#endif
    138140}
    139141
     
    313315      m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth)  );
    314316      m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
     317#if QC_DEPTH_IV_MRG_F0125
     318      if( pcCU->getSlice()->getIsDepth())
     319      {
     320        DvInfo.bDV = m_ppcCU[uiDepth]->getDispNeighBlocks(0, 0, &DvInfo);
     321      }
     322      else
     323      {
     324#endif
    315325#if H_3D_NBDV_REF
    316326      if(pcCU->getSlice()->getVPS()->getDepthRefinementFlag( pcCU->getSlice()->getLayerIdInVps() ))  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
     
    323333        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
    324334      }
    325 
     335#if QC_DEPTH_IV_MRG_F0125
     336      }
     337#endif
    326338#if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC   
    327339      if ( g_decTraceDispDer )
     
    430442#endif
    431443    xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
     444#if QC_DEPTH_IV_MRG_F0125
     445    xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
     446#endif
    432447    return;
    433448  }
     
    443458    {
    444459      xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
     460#if QC_DEPTH_IV_MRG_F0125
     461      xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
     462#endif
    445463      return;
    446464    }
     
    466484  setdQPFlag( bCodeDQP );
    467485  xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
     486#if QC_DEPTH_IV_MRG_F0125
     487  xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
     488#endif
    468489}
    469490
     
    481502{
    482503  TComPic* pcPic = pcCU->getPic();
    483  
     504#if !QC_DEPTH_IV_MRG_F0125 
    484505  Bool bBoundary = false;
    485506  UInt uiLPelX   = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ];
     
    516537    return;
    517538  }
    518  
     539#endif 
    519540  // Residual reconstruction
    520541  m_ppcYuvResi[uiDepth]->clear();
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.cpp

    r655 r669  
    282282}
    283283
     284#if QC_DEPTH_IV_MRG_F0125
     285Void
     286CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice )
     287{
     288  UInt uiViewIndex = pcSlice->getViewIndex();
     289
     290  pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset );
     291
     292  if( m_bCamParsVaryOverTime )
     293  {
     294    pcSlice->setCamparaSlice( m_aaiCodedScale, m_aaiCodedOffset );
     295  }
     296}
     297#endif
     298
    284299Bool
    285300CamParsCollector::xIsComplete()
     
    10531068  }
    10541069
     1070#if QC_DEPTH_IV_MRG_F0125
     1071  if( pcSlice->getIsDepth() && m_pcCamParsCollector )
     1072  {
     1073    m_pcCamParsCollector->copyCamParamForSlice( pcSlice );
     1074  }
     1075#endif
     1076
    10551077  //  Decode a picture
    10561078  m_cGopDecoder.decompressSlice(nalu.m_Bitstream, pcPic);
     
    10601082    m_pcCamParsCollector->setSlice( pcSlice );
    10611083  }
     1084#if QC_DEPTH_IV_MRG_F0125
     1085  if( pcSlice->getIsDepth() )
     1086  {
     1087    pcSlice->getSPS()->setHasCamParInSliceHeader( false );
     1088  }
     1089#endif
    10621090#endif
    10631091  m_bFirstSliceInPicture = false;
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.h

    r655 r669  
    7777  Bool  isInitialized() const     { return m_bInitialized; }
    7878  Int**** getBaseViewShiftLUTI()  { return m_aiBaseViewShiftLUT;   }
     79
     80#if QC_DEPTH_IV_MRG_F0125
     81  Void  copyCamParamForSlice( TComSlice* pcSlice );
     82#endif
    7983
    8084private:
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibEncoder/TEncCavlc.cpp

    r655 r669  
    10191019      else
    10201020      {
     1021#if QC_DEPTH_IV_MRG_F0125
     1022        if(i!=1)
     1023        {
     1024          WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
     1025        }
     1026#endif
    10211027        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
    10221028        //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
     
    14521458    WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!!
    14531459
     1460#if QC_DEPTH_IV_MRG_F0125
     1461    if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )
     1462#else
    14541463    if( pcSlice->getSPS()->hasCamParInSliceHeader() )
     1464#endif
    14551465    {
    14561466      for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ )
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibEncoder/TEncCu.cpp

    r655 r669  
    567567          PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
    568568          rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
     569#if QC_DEPTH_IV_MRG_F0125
     570          if (rpcTempCU->getSlice()->getIsDepth() )
     571          {
     572            DvInfo.bDV = rpcTempCU->getDispNeighBlocks(0, 0, &DvInfo);
     573          }
     574          else
     575          {
     576#endif
    569577#if H_3D_NBDV_REF
    570578          if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps()))
     
    574582            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo);
    575583
     584#if QC_DEPTH_IV_MRG_F0125
     585          }
     586#endif
    576587          rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    577588          rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
  • branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibEncoder/TEncTop.cpp

    r655 r669  
    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.