Changeset 522 in 3DVCSoftware


Ignore:
Timestamp:
5 Jul 2013, 23:54:00 (11 years ago)
Author:
mitsubishi-htm
Message:

-intermediate version. fixing issues between VSP and interview motion prediction.

Location:
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp

    r519 r522  
    26742674        iRefListIdY = 1 - iRefListIdX;
    26752675        pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i );
     2676#if H_3D_NBDV
     2677        pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].getMv().setIDVFlag (false);
     2678#endif
    26762679      }
    26772680    }
     
    26932696          predFlag[iRefListIdY] = 1;
    26942697          pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i );
     2698#if H_3D_NBDV
     2699          pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].getMv().setIDVFlag (false);
     2700#endif
    26952701        }
    26962702      }
     
    28012807        //pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx());
    28022808#if H_3D_CLEANUPS //Notes from QC: for BVSP coded blocks, the reference index shall not be equal to -1 due to the adoption of JCT3V-D0191
     2809#if !H_3D_VSP_FIX
    28032810        pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx());
     2811#else
     2812        if ( pcTextureCU->getVSPFlag( uiPartIdxCenter ) != 0 ) // Texture coded using VSP mode
     2813        {
     2814          for ( Int i = 0; i < m_pcSlice->getNumRefIdx( REF_PIC_LIST_0 ); i++ )
     2815          {
     2816            if (m_pcSlice->getRefPOC( REF_PIC_LIST_0, i ) == m_pcSlice->getPOC())
     2817            {
     2818              pcMvFieldNeighbours[ iCount<<1 ].setMvField(cMvPred, i);
     2819              break;
     2820            }
     2821          }
     2822        }
     2823#endif
    28042824#else
    28052825        if (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0)
     
    28312851#endif
    28322852          //pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());
    2833 #if H_3D_CLEANUPS
     2853#if H_3D_CLEANUPS //Notes from QC: for BVSP coded blocks, the reference index shall not be equal to -1 due to the adoption of JCT3V-D0191
     2854#if !H_3D_VSP_FIX
    28342855          pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());
     2856#else
     2857          if ( pcTextureCU->getVSPFlag( uiPartIdxCenter ) != 0 ) // Texture coded using VSP mode
     2858          {
     2859            for ( Int i = 0; i < m_pcSlice->getNumRefIdx( REF_PIC_LIST_1 ); i++ )
     2860            {
     2861              if (m_pcSlice->getRefPOC( REF_PIC_LIST_1, i ) == m_pcSlice->getPOC())
     2862              {
     2863                pcMvFieldNeighbours[ (iCount<<1)+1 ].setMvField(cMvPred, i);
     2864                break;
     2865              }
     2866            }
     2867          }
     2868#endif
    28352869#else
    28362870          if (pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0)
     
    28532887      {
    28542888#endif
     2889#if H_3D_VSP_FIX
     2890      if ( pcTextureCU->getVSPFlag( uiPartIdxCenter ) == 0 ) // MERL Question: When texture coded using nonVSP mode????????
     2891      {
     2892#endif
    28552893#if H_3D_NBDV
    28562894        pcMvFieldNeighbours[iCount<<1    ].getMv().setIDVFlag (false);
     
    28622900        }
    28632901        iCount ++;
     2902#if H_3D_VSP_FIX
     2903      }
     2904//      else
     2905//        assert(0);  // MERL Question: Should the assert be kept???
     2906#endif
    28642907#if !H_3D_CLEANUPS
    28652908      }
     
    48994942        Int refViewIdx  = pcTmpCU->getSlice()->getRefPic(eRefPicList, refId)->getViewIndex();
    49004943        if (refViewIdx != m_pcSlice->getViewIndex())
    4901         {         
     4944        {
    49024945          clipMv(cMvPred);
    49034946          pNbDvInfo->m_acNBDV = cMvPred;
     
    49194962          return true;
    49204963        }
     4964#if 0 // H_3D_VSP  // MERL: To be confirmed
     4965        else if ( bSearchForMvpDv && (cMvPred.getIDVFlag() || pcTmpCU->getVSPFlag( uiIdx )) && bTmpIsSkipped )
     4966#else
    49214967        else if ( bSearchForMvpDv && cMvPred.getIDVFlag() && bTmpIsSkipped )
     4968#endif
    49224969        {
    49234970          assert( uiMvpDvPos < IDV_CANDS );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TypeDef.h

    r521 r522  
    120120#define H_3D_VSP_CONSTRAINED              0
    121121#endif
     122#define H_3D_VSP_FIX                      1   // Temporary, to be removed soon
    122123#endif
    123124
Note: See TracChangeset for help on using the changeset viewer.