Changeset 523 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib


Ignore:
Timestamp:
6 Jul 2013, 15:43:59 (11 years ago)
Author:
mitsubishi-htm
Message:

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

File:
1 edited

Legend:

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

    r522 r523  
    27912791    if ( pcTextureCU && !pcTextureCU->isIntra( uiPartIdxCenter ) )
    27922792    {
     2793#if H_3D_VSP_FIX
     2794      Bool bSet[2] = {false, false}; // TODO: Find a better variable name   -Dong
     2795#endif
    27932796      abCandIsInter[iCount] = true;     
    27942797      puhInterDirNeighbours[iCount] = pcTextureCU->getInterDir( uiPartIdxCenter );
     
    27962799      {
    27972800        pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
    2798        
    27992801        TComMv cMvPred = pcMvFieldNeighbours[iCount<<1].getMv();
    28002802
     
    28072809        //pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx());
    28082810#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
    28102811        pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx());
    2811 #else
     2812#if H_3D_VSP_FIX
    28122813        if ( pcTextureCU->getVSPFlag( uiPartIdxCenter ) != 0 ) // Texture coded using VSP mode
    28132814        {
     2815          bSet[0] = true;
    28142816          for ( Int i = 0; i < m_pcSlice->getNumRefIdx( REF_PIC_LIST_0 ); i++ )
    28152817          {
     
    28172819            {
    28182820              pcMvFieldNeighbours[ iCount<<1 ].setMvField(cMvPred, i);
     2821              bSet[0] = false;
    28192822              break;
    28202823            }
     
    28522855          //pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());
    28532856#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
    28552857          pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());
    2856 #else
     2858#if H_3D_VSP_FIX
    28572859          if ( pcTextureCU->getVSPFlag( uiPartIdxCenter ) != 0 ) // Texture coded using VSP mode
    28582860          {
     2861            bSet[1] = true;
    28592862            for ( Int i = 0; i < m_pcSlice->getNumRefIdx( REF_PIC_LIST_1 ); i++ )
    28602863            {
     
    28622865              {
    28632866                pcMvFieldNeighbours[ (iCount<<1)+1 ].setMvField(cMvPred, i);
     2867                bSet[1] = false;
    28642868                break;
    28652869              }
     
    28882892#endif
    28892893#if H_3D_VSP_FIX
    2890       if ( pcTextureCU->getVSPFlag( uiPartIdxCenter ) == 0 ) // MERL Question: When texture coded using nonVSP mode????????
     2894      assert( !bSet[0] || (!bSet[1] && m_pcSlice->isInterB()) );
    28912895      {
    28922896#endif
     
    29022906#if H_3D_VSP_FIX
    29032907      }
    2904 //      else
    2905 //        assert(0);  // MERL Question: Should the assert be kept???
    29062908#endif
    29072909#if !H_3D_CLEANUPS
Note: See TracChangeset for help on using the changeset viewer.