Changeset 412 in 3DVCSoftware for branches/HTM-6.2-dev2-MERL/source/App


Ignore:
Timestamp:
16 May 2013, 16:05:31 (11 years ago)
Author:
mitsubishi-htm
Message:

-D0166 part 1, set refView selection for NBDV.

Location:
branches/HTM-6.2-dev2-MERL/source/App
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.2-dev2-MERL/source/App/TAppDecoder/TAppDecTop.cpp

    r296 r412  
    735735
    736736#if MERL_VSP_C0152
    737 Void TAppDecTop::setBWVSPLUT(TComSlice* pcSlice,  Int iCodedViewIdx,  Int iCurPoc)
     737Void TAppDecTop::setBWVSPLUT(
     738#if MERL_VSP_NBDV_RefVId_Fix_D0166
     739    Int iNeighborViewId,
     740#endif
     741    TComSlice* pcSlice,  Int iCodedViewIdx,  Int iCurPoc)
     742
    738743{
    739744  //first view does not have VSP
     
    742747  AOT( iCodedViewIdx <= 0);
    743748  //AOT( iCodedViewIdx >= m_iNumberOfViews );
     749#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    744750  Int iNeighborViewId = 0;
     751#endif
    745752  //  Int* piShiftLUT = bRenderFromLeft ? m_cCamParsCollector.getBaseViewShiftLUTI()[iCodedViewIdx][iNeighborViewId][0] : m_cCamParsCollector.getBaseViewShiftLUTI()[iNeighborViewId][iCodedViewIdx][0];
    746753  Int* piShiftLUT = m_cCamParsCollector.getBaseViewShiftLUTI()[iNeighborViewId][iCodedViewIdx][0];
     754#if MERL_VSP_NBDV_RefVId_Fix_D0166
     755  pcSlice->setBWVSPLUTParam(piShiftLUT, 2-LOG2_DISP_PREC_LUT, iNeighborViewId );
     756#else
    747757  pcSlice->setBWVSPLUTParam(piShiftLUT, 2-LOG2_DISP_PREC_LUT );
     758#endif
    748759}
    749760#endif
  • branches/HTM-6.2-dev2-MERL/source/App/TAppDecoder/TAppDecTop.h

    r296 r412  
    113113
    114114#if MERL_VSP_C0152
     115#if MERL_VSP_NBDV_RefVId_Fix_D0166
     116  Void  setBWVSPLUT( Int iNeighborViewId, TComSlice* pcSlice, Int iCodedViewIdx, Int iCurPoc );
     117#else
    115118  Void  setBWVSPLUT( TComSlice* pcSlice, Int iCodedViewIdx, Int iCurPoc   );
     119#endif
    116120#endif
    117121
  • branches/HTM-6.2-dev2-MERL/source/App/TAppEncoder/TAppEncTop.cpp

    r402 r412  
    10971097          pEncSlice->setRefPicBaseTxt(pcBaseTxtPic);
    10981098          pEncSlice->setRefPicBaseDepth(pcBaseDepthPic);
     1099#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1100          for (Int refViewId=0; refViewId < iViewIdx; refViewId++ )
     1101          {
     1102            pEncSlice->setListDepthPic(m_acTEncDepthTopList[refViewId]->getListPic(), refViewId ); // The list will store only the depth pictures
     1103            setBWVSPLUT(refViewId, iViewIdx, gopId, false);
     1104          }
     1105#endif
    10991106        }
     1107#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    11001108        setBWVSPLUT( iViewIdx, gopId, false);
     1109#endif
     1110#endif
     1111
    11011112#if MERL_VSP_C0152_BugFix_ForNoDepthCase
    11021113        }
     
    11131124#endif
    11141125
    1115 #endif
    11161126        // call encoding function for one frame
    11171127        m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId );
     
    11281138          TEncSlice* pcSlice = (TEncSlice*) m_acTEncDepthTopList[iViewIdx]->getSliceEncoder();
    11291139          pcSlice->setRefPicBaseDepth(pcBaseDepthPic);
     1140#if  MERL_VSP_NBDV_RefVId_Fix_D0166
     1141          for (Int refViewId=0; refViewId < iViewIdx; refViewId++ )
     1142          {
     1143            pcSlice->setListDepthPic(m_acTEncDepthTopList[refViewId]->getListPic(), refViewId ); // The list will store only the depth pictures
     1144            setBWVSPLUT( refViewId, iViewIdx, gopId, true);
     1145          }
     1146#endif
    11301147        }
     1148#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    11311149        setBWVSPLUT( iViewIdx, gopId, true);
     1150#endif
    11321151#endif
    11331152
     
    16461665
    16471666#if MERL_VSP_C0152
    1648 Void TAppEncTop::setBWVSPLUT(Int iCodedViewIdx, Int gopId, Bool isDepth)
     1667
     1668Void TAppEncTop::setBWVSPLUT(
     1669#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1670        Int iNeighborViewId,
     1671#endif
     1672        Int iCodedViewIdx, Int gopId, Bool isDepth)
    16491673{
    16501674  //first view does not have VSP
     
    16531677  AOT( iCodedViewIdx <= 0);
    16541678  AOT( iCodedViewIdx >= m_iNumberOfViews );
    1655 
     1679#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    16561680  Int iNeighborViewId = 0;
     1681#endif
    16571682  //setting look-up table
    16581683  Int* piShiftLUT = m_cCameraData.getBaseViewShiftLUTI()[iNeighborViewId][iCodedViewIdx][0];
     
    16611686  {
    16621687    TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncDepthTopList[iCodedViewIdx]->getSliceEncoder();
     1688#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1689    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT, iNeighborViewId );
     1690#else
    16631691    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT );
     1692#endif
    16641693  }
    16651694  else
    16661695  {
    16671696    TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncTopList[iCodedViewIdx]->getSliceEncoder();
     1697#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1698    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT, iNeighborViewId );
     1699#else
    16681700    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT );
     1701#endif
    16691702  }
    16701703
  • branches/HTM-6.2-dev2-MERL/source/App/TAppEncoder/TAppEncTop.h

    r296 r412  
    167167
    168168#if MERL_VSP_C0152
     169#if MERL_VSP_NBDV_RefVId_Fix_D0166
     170  Void setBWVSPLUT( Int refViewIdx, Int iCodedViewIdx, Int gopId, Bool isDepth);
     171#else
    169172  Void setBWVSPLUT( Int iCodedViewIdx, Int gopId, Bool isDepth);
     173#endif
    170174#endif
    171175};// END CLASS DEFINITION TAppEncTop
Note: See TracChangeset for help on using the changeset viewer.