Changeset 443 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncTop.cpp


Ignore:
Timestamp:
26 May 2013, 15:41:34 (11 years ago)
Author:
tech
Message:
  • Reintegrated branch 6.2-dev0 rev. 442.
  • Changed version number.
  • Added coding results.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppEncoder/TAppEncTop.cpp

    r332 r443  
    223223#endif
    224224#if H3D_IVRP
     225#if QC_ARP_D0177
     226    m_acTEncTopList[iViewIdx]->setUseAdvRP                     ( iViewIdx ? m_nUseAdvResPred             : 0   );
     227    m_acTEncTopList[iViewIdx]->setARPStepNum                   ( iViewIdx ? QC_ARP_WFNR                  : 1   );
     228#else
    225229    m_acTEncTopList[iViewIdx]->setMultiviewResPredMode         ( m_uiMultiviewResPredMode );
     230#endif
     231#endif
     232#if MTK_D0156
     233#if MERL_VSP_COMPENSATION_C0152
     234    m_acTEncTopList[iViewIdx]->setUseVSPCompensation           ( iViewIdx ? m_bUseVSPCompensation : 0 );
     235#endif
     236    m_acTEncTopList[iViewIdx]->setUseDVPRefine                  ( iViewIdx ? m_bUseDVPRefine : 0 );
    226237#endif
    227238
     
    303314#endif
    304315    m_acTEncTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic);
     316#if LGE_SAO_MIGRATION_D0091
     317    m_acTEncTopList[iViewIdx]->setSaoLcuBoundary (m_saoLcuBoundary);
     318    m_acTEncTopList[iViewIdx]->setSaoLcuBasedOptimization (m_saoLcuBasedOptimization);
     319#else
    305320    m_acTEncTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag);
     321#endif
    306322    m_acTEncTopList[iViewIdx]->setPCMInputBitDepthFlag  ( m_bPCMInputBitDepthFlag);
    307323    m_acTEncTopList[iViewIdx]->setPCMFilterDisableFlag  ( m_bPCMFilterDisableFlag);
     
    560576      m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegLambdaScale    ( 0.0 );
    561577#endif
    562 #if H3D_IVRP
    563       m_acTEncDepthTopList[iViewIdx]->setMultiviewResPredMode         ( 0 );
     578#if H3D_IVRP
     579#if QC_ARP_D0177
     580    m_acTEncDepthTopList[iViewIdx]->setUseAdvRP                          ( 0 );
     581    m_acTEncDepthTopList[iViewIdx]->setARPStepNum                        ( 1 );
     582#else
     583    m_acTEncDepthTopList[iViewIdx]->setMultiviewResPredMode         ( 0 );
     584#endif
     585#endif
     586#if MTK_D0156
     587
     588#if MERL_VSP_COMPENSATION_C0152
     589      m_acTEncDepthTopList[iViewIdx]->setUseVSPCompensation           ( iViewIdx ? true : false );
     590#endif
     591
     592      m_acTEncDepthTopList[iViewIdx]->setUseDVPRefine                 ( iViewIdx ? true : false );
    564593#endif
    565594
     
    605634#endif
    606635      m_acTEncDepthTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic);
     636#if LGE_SAO_MIGRATION_D0091
     637      m_acTEncDepthTopList[iViewIdx]->setSaoLcuBoundary (m_saoLcuBoundary);
     638      m_acTEncDepthTopList[iViewIdx]->setSaoLcuBasedOptimization (m_saoLcuBasedOptimization);
     639#else
    607640      m_acTEncDepthTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag);
     641#endif
    608642      m_acTEncDepthTopList[iViewIdx]->setPCMInputBitDepthFlag  ( m_bPCMInputBitDepthFlag);
    609643      m_acTEncDepthTopList[iViewIdx]->setPCMFilterDisableFlag  ( m_bPCMFilterDisableFlag);
     
    10761110#if MERL_VSP_C0152
    10771111#if MERL_VSP_C0152_BugFix_ForNoDepthCase
    1078         if(m_bUsingDepthMaps) //VSP can be used only when depth is available as input
     1112        if(m_bUsingDepthMaps) // VSP can be used only when depth is available as input
    10791113        {
    10801114#endif
     
    10871121          pEncSlice->setRefPicBaseTxt(pcBaseTxtPic);
    10881122          pEncSlice->setRefPicBaseDepth(pcBaseDepthPic);
     1123#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1124          for (Int refViewId=0; refViewId < iViewIdx; refViewId++ )
     1125          {
     1126            pEncSlice->setListDepthPic(m_acTEncDepthTopList[refViewId]->getListPic(), refViewId ); // The list will store only the depth pictures
     1127            setBWVSPLUT(refViewId, iViewIdx, gopId, false);
     1128          }
     1129#endif
    10891130        }
     1131#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    10901132        setBWVSPLUT( iViewIdx, gopId, false);
     1133#endif
     1134#endif
     1135
    10911136#if MERL_VSP_C0152_BugFix_ForNoDepthCase
    10921137        }
     
    11031148#endif
    11041149
    1105 #endif
    11061150        // call encoding function for one frame
    11071151        m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId );
     
    11181162          TEncSlice* pcSlice = (TEncSlice*) m_acTEncDepthTopList[iViewIdx]->getSliceEncoder();
    11191163          pcSlice->setRefPicBaseDepth(pcBaseDepthPic);
     1164#if  MERL_VSP_NBDV_RefVId_Fix_D0166
     1165          for (Int refViewId=0; refViewId < iViewIdx; refViewId++ )
     1166          {
     1167            pcSlice->setListDepthPic(m_acTEncDepthTopList[refViewId]->getListPic(), refViewId ); // The list will store only the depth pictures
     1168            setBWVSPLUT( refViewId, iViewIdx, gopId, true);
     1169          }
     1170#endif
    11201171        }
     1172#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    11211173        setBWVSPLUT( iViewIdx, gopId, true);
     1174#endif
    11221175#endif
    11231176
     
    16361689
    16371690#if MERL_VSP_C0152
    1638 Void TAppEncTop::setBWVSPLUT(Int iCodedViewIdx, Int gopId, Bool isDepth)
     1691
     1692Void TAppEncTop::setBWVSPLUT(
     1693#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1694        Int iNeighborViewId,
     1695#endif
     1696        Int iCodedViewIdx, Int gopId, Bool isDepth)
    16391697{
    16401698  //first view does not have VSP
     
    16431701  AOT( iCodedViewIdx <= 0);
    16441702  AOT( iCodedViewIdx >= m_iNumberOfViews );
    1645 
     1703#if !MERL_VSP_NBDV_RefVId_Fix_D0166
    16461704  Int iNeighborViewId = 0;
     1705#endif
    16471706  //setting look-up table
    16481707  Int* piShiftLUT = m_cCameraData.getBaseViewShiftLUTI()[iNeighborViewId][iCodedViewIdx][0];
     
    16511710  {
    16521711    TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncDepthTopList[iCodedViewIdx]->getSliceEncoder();
     1712#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1713    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT, iNeighborViewId );
     1714#else
    16531715    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT );
     1716#endif
    16541717  }
    16551718  else
    16561719  {
    16571720    TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncTopList[iCodedViewIdx]->getSliceEncoder();
     1721#if MERL_VSP_NBDV_RefVId_Fix_D0166
     1722    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT, iNeighborViewId );
     1723#else
    16581724    pcEncSlice->setBWVSPLUTParam(  piShiftLUT, LOG2_DISP_PREC_LUT );
     1725#endif
    16591726  }
    16601727
Note: See TracChangeset for help on using the changeset viewer.