Ignore:
Timestamp:
7 Feb 2013, 06:16:08 (12 years ago)
Author:
sony
Message:

JCT2-C0116 Inter-view vector scaling for AMVP
The macro is INTER_VIEW_VECTOR_SCALING_C0116.

Location:
branches/HTM-5.1-dev2-Sony/source/Lib/TLibCommon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev2-Sony/source/Lib/TLibCommon/TComDataCU.cpp

    r262 r263  
    66936693  Int iNeibPOC = iCurrPOC;
    66946694  Int iNeibRefPOC;
    6695 
     6695#if INTER_VIEW_VECTOR_SCALING_C0116
     6696  Int iCurrViewId = m_pcSlice->getViewOrderIdx(); // will be changed to view_id
     6697  Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, iRefIdx)->getViewOrderIdx(); // will be changed to view_id
     6698  Int iNeibViewId = iCurrViewId;
     6699  Int iNeibRefViewId;
     6700#endif
    66966701#if QC_IV_AS_LT_B0046
    66976702  Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getIsLongTerm();
     
    67016706  {
    67026707    iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) );
     6708#if INTER_VIEW_VECTOR_SCALING_C0116
     6709    iNeibRefViewId = pcTmpCU->getSlice()->getRefPic(eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getViewOrderIdx(); // will be changed to view_id
     6710#endif
    67036711#if QC_IV_AS_LT_B0046
    67046712    bIsNeibRefLongTerm = m_pcSlice->getRefPic( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getIsLongTerm() ;
     6713#if INTER_VIEW_VECTOR_SCALING_C0116
     6714    if ( (bIsCurrRefLongTerm == bIsNeibRefLongTerm) && ((iNeibRefPOC == iCurrRefPOC) && (iNeibRefViewId == iCurrRefViewId)))
     6715#else
    67056716    if ( (bIsCurrRefLongTerm == bIsNeibRefLongTerm) && (iNeibRefPOC == iCurrRefPOC) )
     6717#endif
    67066718#else
    67076719    if( pcTmpCU->getSlice()->getRefViewId( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) ) != m_pcSlice->getRefViewId( eRefPicList, iRefIdx ) )
     
    67246736  {
    67256737    iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) );
     6738#if INTER_VIEW_VECTOR_SCALING_C0116
     6739    iNeibRefViewId = pcTmpCU->getSlice()->getRefPic(eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx))->getViewOrderIdx(); // will be changed to view_id
     6740#endif
    67266741    TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList)->getMv(uiIdx);
    67276742    TComMv rcMv;
     
    67366751    }
    67376752#endif
     6753#if INTER_VIEW_VECTOR_SCALING_C0116
     6754    Int iScale = 4096;
     6755    if((iCurrRefPOC != iNeibRefPOC)  )    // inter & inter
     6756        iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC );
     6757    else if(m_pcSlice->getIVScalingFlag())    // inter-view & inter-view
     6758        iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iNeibViewId, iNeibRefViewId );
     6759#else
    67386760    Int iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC );
     6761#endif
    67396762    if ( iScale == 4096 )
    67406763    {
     
    67586781  {
    67596782    iNeibRefPOC = pcTmpCU->getSlice()->getRefPOC( eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx) );
     6783#if INTER_VIEW_VECTOR_SCALING_C0116
     6784    iNeibRefViewId = pcTmpCU->getSlice()->getRefPic(eRefPicList2nd, pcTmpCU->getCUMvField(eRefPicList2nd)->getRefIdx(uiIdx))->getViewOrderIdx(); // will be changed to view_id
     6785#endif
    67606786    TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx);
    67616787    TComMv rcMv;
     
    67706796    }
    67716797#endif
     6798#if INTER_VIEW_VECTOR_SCALING_C0116
     6799    Int iScale = 4096;
     6800    if((iCurrRefPOC != iNeibRefPOC))    // inter & inter
     6801        iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC );
     6802    else if(m_pcSlice->getIVScalingFlag())    // inter-view & inter-view
     6803        iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iNeibViewId, iNeibRefViewId );
     6804#else
    67726805    Int iScale = xGetDistScaleFactor( iCurrPOC, iCurrRefPOC, iNeibPOC, iNeibRefPOC );
     6806#endif
    67736807    if ( iScale == 4096 )
    67746808    {
  • branches/HTM-5.1-dev2-Sony/source/Lib/TLibCommon/TypeDef.h

    r262 r263  
    149149#define LG_ZEROINTRADEPTHRESI_A0087       1   // JCT2-A0087
    150150#define INTER_VIEW_VECTOR_SCALING_C0115   1   // JCT2-C0115 Inter-view vector scaling for TMVP & flag
     151#define INTER_VIEW_VECTOR_SCALING_C0116   1   // JCT2-C0116 Inter-view vector scaling for AMVP
    151152#define HHI_FULL_PEL_DEPTH_MAP_MV_ACC     1   // full-pel mv accuracy for depth maps
    152153#define VIDYO_VPS_INTEGRATION             1
Note: See TracChangeset for help on using the changeset viewer.