Ignore:
Timestamp:
8 Mar 2013, 16:13:08 (12 years ago)
Author:
mediatek-htm
Message:

Added FCO_FIX, FCO_FIX_SPS_CHANGE, and FCO_DVP_REFINE_C0132_C0170 macros to support FCO.
The new macros are default disabled in CTC.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.0-Mediatek/source/App/TAppEncoder/TAppEncTop.cpp

    r296 r303  
    429429      m_cVPS.setDependentLayer                                        ( layerId-1, layerId);
    430430#endif
     431#if FCO_FIX_SPS_CHANGE
     432      m_acTEncDepthTopList[iViewIdx]->setCamParPrecision              ( m_cCameraData.getCamParsCodedPrecision  () );
     433      m_acTEncDepthTopList[iViewIdx]->setCamParInSliceHeader          ( m_cCameraData.getVaryingCameraParameters() );
     434      m_acTEncDepthTopList[iViewIdx]->setCodedScale                   ( m_cCameraData.getCodedScale             () );
     435      m_acTEncDepthTopList[iViewIdx]->setCodedOffset                  ( m_cCameraData.getCodedOffset            () );
     436#else
    431437      m_acTEncDepthTopList[iViewIdx]->setCamParPrecision              ( 0 );
    432438      m_acTEncDepthTopList[iViewIdx]->setCamParInSliceHeader          ( false );
    433439      m_acTEncDepthTopList[iViewIdx]->setCodedScale                   ( 0 );
    434440      m_acTEncDepthTopList[iViewIdx]->setCodedOffset                  ( 0 );
     441#endif
    435442
    436443      //====== Coding Structure ========
     
    970977    {
    971978      Int  iNumEncoded = 0;
     979
    972980#if !QC_MVHEVC_B0046
    973981      UInt iNextPoc = m_acTEncTopList[0] -> getFrameId( gopId );
     
    977985      }
    978986#endif
     987
    979988
    980989#if FLEX_CODING_ORDER_M23723
     
    9941003            assert(isdigit(m_pchMVCJointCodingOrder[i]));
    9951004            iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0');
     1005#if (FCO_FIX && MERL_VSP_C0152)
     1006            Int iCurPoc = m_acTEncTopList[iViewIdx]->getFrameId(gopId);
     1007            if( iCurPoc < m_acTEncTopList[iViewIdx]->getFrameToBeEncoded() && iViewIdx!=0 )
     1008            {
     1009              TComPic* pcBaseTxtPic   = getPicFromView(  0, m_acTEncTopList[iViewIdx]->getFrameId(gopId), false ); //get base view reconstructed texture
     1010              TComPic* pcBaseDepthPic = getPicFromView(  0, m_acTEncTopList[iViewIdx]->getFrameId(gopId), true );  //get base view reconstructed depth
     1011              TEncSlice* pEncSlice = m_acTEncTopList[iViewIdx]->getSliceEncoder();
     1012              pEncSlice->setRefPicBaseTxt(pcBaseTxtPic);
     1013              pEncSlice->setRefPicBaseDepth(pcBaseDepthPic);
     1014            }
     1015            setBWVSPLUT( iViewIdx, gopId, false);           
     1016#endif
    9961017
    9971018            m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId );
     
    10081029              assert(isdigit(m_pchMVCJointCodingOrder[i]));
    10091030              iViewIdx = (Int)(m_pchMVCJointCodingOrder[i]-'0');
     1031
    10101032#if SAIT_VSO_EST_A0033
    10111033              if( m_bUseVSO && iNextPoc < m_iFrameToBeEncoded )
     
    10141036                m_acTEncDepthTopList[iViewIdx]->setDispCoeff( m_cCameraData.getDispCoeff() );
    10151037              }
     1038#endif
     1039#if (FCO_FIX && MERL_VSP_C0152)
     1040              Int iCurPocDepth = m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId);
     1041              if( iCurPocDepth < m_acTEncDepthTopList[iViewIdx]->getFrameToBeEncoded() && iViewIdx!=0 )
     1042              {
     1043                TComPic* pcBaseDepthPic = getPicFromView(  0, m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId), true );
     1044                TEncSlice* pcSlice = (TEncSlice*) m_acTEncDepthTopList[iViewIdx]->getSliceEncoder();
     1045                pcSlice->setRefPicBaseDepth(pcBaseDepthPic);
     1046              }
     1047              setBWVSPLUT( iViewIdx, gopId, true);
    10161048#endif
    10171049              m_acTEncDepthTopList[iViewIdx]->encode( depthEos[iViewIdx], pcDepthPicYuvOrg, *m_picYuvDepthRec[iViewIdx], outputAccessUnits, iNumDepthEncoded, gopId );
Note: See TracChangeset for help on using the changeset viewer.