Changeset 280 in 3DVCSoftware for branches/HTM-5.1-dev0/source/Lib/TLibDecoder


Ignore:
Timestamp:
14 Feb 2013, 23:41:41 (12 years ago)
Author:
tech
Message:

Integration of branch dev 2.

Location:
branches/HTM-5.1-dev0/source/Lib/TLibDecoder
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r210 r280  
    14581458      }
    14591459    }
     1460#if INTER_VIEW_VECTOR_SCALING_C0115
     1461    READ_FLAG( uiCode,  "inter_view_vector_scaling_flag" );    pcVPS->setIVScalingFlag( uiCode ? true:false);
     1462#endif
    14601463  }
    14611464 
     
    14681471#endif
    14691472#endif
    1470 #if HHI_MPI
     1473#if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068
    14711474Void TDecCavlc::parseSPS(TComSPS* pcSPS, Bool bIsDepth)
    14721475#else
     
    18921895
    18931896#if LCU_SYNTAX_ALF
     1897#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     1898Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet, bool isDepth)
     1899#else
    18941900Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet)
     1901#endif
    18951902#else
    18961903Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl)
     
    24952502  #elif HHI_MPI
    24962503  const int iExtraMergeCandidates = sps->getUseMVI() ? 1 : 0;
     2504  #elif MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     2505  const int iExtraMergeCandidates = (  (isDepth || sps->getMultiviewMvPredMode()) ) ? 1 : 0;   
    24972506  #else
    24982507  const int iExtraMergeCandidates = sps->getMultiviewMvPredMode() ? 1 : 0;
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.h

    r210 r280  
    118118  Void  parseVPS            ( TComVPS* pcVPS );
    119119#endif
    120 #if HHI_MPI
     120#if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068
    121121  Void  parseSPS            ( TComSPS* pcSPS, Bool bIsDepth );
    122122#else
     
    131131  Void  parseAPS            ( TComAPS* pAPS );
    132132#if LCU_SYNTAX_ALF
     133#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     134  Void  parseSliceHeader    ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet, bool isDepth);
     135#else
    133136  Void  parseSliceHeader    ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet);
     137#endif
    134138#else
    135139  Void  parseSliceHeader    ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl );
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecCu.cpp

    r275 r280  
    424424    }
    425425#endif
    426 #if HHI_INTER_VIEW_RESIDUAL_PRED
     426#if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138
    427427    m_pcEntropyDecoder->decodeResPredFlag( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth], 0 );
    428428#endif
     
    476476#endif
    477477
    478 #if HHI_INTER_VIEW_RESIDUAL_PRED
     478#if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138
    479479  if( !pcCU->isIntra( uiAbsPartIdx ) )
    480480  {
     
    692692  m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] );
    693693#endif
     694#if MTK_MDIVRP_C0138
     695  if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0))
     696  {
     697    m_pcPrediction->residualPrediction(pcCU, m_ppcYuvReco[uiDepth], m_ppcYuvResPred[uiDepth]);
     698  }
     699#endif
     700
    694701#if HHI_MPI
    695702  if( pcCU->getTextureModeDepth( 0 ) != -1 )
     
    697704#endif
    698705
    699 #if HHI_INTER_VIEW_RESIDUAL_PRED
     706#if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138
    700707  if( pcCU->getResPredFlag( 0 ) )
    701708  {
     
    728735  {
    729736#if HHI_INTER_VIEW_RESIDUAL_PRED
     737#if MTK_MDIVRP_C0138
     738    if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0))
     739#else
    730740    if( pcCU->getResPredFlag( 0 ) )
     741#endif
    731742    {
    732743      m_ppcYuvReco[uiDepth]->clip( pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );
     
    10791090  // reconstruct residual based on mask + DC residuals
    10801091  Pel apDCResiValues[2];
    1081   //Pel apDCRecoValues[2];
     1092  Pel apDCRecoValues[2];
    10821093  for( UInt ui = 0; ui < uiNumSegments; ui++ )
    10831094  {
     
    10861097    Pel   pRecoValue  = GetIdx2DepthValue( pPredIdx + pResiIdx );
    10871098   
    1088     //apDCRecoValues[ui]  = pRecoValue;
     1099    apDCRecoValues[ui]  = pRecoValue;
    10891100    apDCResiValues[ui]  = pRecoValue - apDCPredValues[ui];
    10901101  }
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r231 r280  
    100100}
    101101
    102 #if HHI_INTER_VIEW_RESIDUAL_PRED
     102#if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138
    103103Void
    104104TDecEntropy::decodeResPredFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU, UInt uiPUIdx )
     
    341341      pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, uiMergeIndex );
    342342
     343#if HHI_MPI
    343344      if(pcCU->getTextureModeDepth( uiSubPartIdx ) == uiDepth)//MPI is used
    344345      {
     
    352353      }
    353354      else // MPI not used
     355#endif
    354356      {
    355357        Int iVSPIdx = 0;
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecEntropy.h

    r210 r280  
    7474  virtual Void  parseVPS                  ( TComVPS* pcVPS )                       = 0;
    7575#endif
    76 #if HHI_MPI
     76#if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068
    7777  virtual Void  parseSPS                  ( TComSPS* pcSPS, Bool bIsDepth )                       = 0;
    7878#else
     
    8888
    8989#if LCU_SYNTAX_ALF
     90#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     91  virtual Void parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet, bool isDepth)       = 0;
     92#else
    9093  virtual Void parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet)       = 0;
     94#endif
    9195#else
    9296  virtual Void parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl )                                = 0;
     
    179183#endif
    180184 
    181 #if HHI_MPI
     185#if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068
    182186  Void    decodeSPS                   ( TComSPS* pcSPS, Bool bIsDepth ) { m_pcEntropyDecoderIf->parseSPS(pcSPS, bIsDepth); }
    183187#else
     
    193197
    194198#if LCU_SYNTAX_ALF
     199#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     200  Void    decodeSliceHeader           ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet, bool isDepth)  { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager, alfCUCtrl, alfParamSet, isDepth);         }
     201#else
    195202  Void    decodeSliceHeader           ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet)  { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager, alfCUCtrl, alfParamSet);         }
     203#endif
    196204#else
    197205  Void    decodeSliceHeader           ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl )  { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager, alfCUCtrl);         }
     
    210218  Void decodeMergeFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx );
    211219  Void decodeMergeIndex        ( TComDataCU* pcSubCU, UInt uiPartIdx, UInt uiPartAddr, PartSize eCUMode, UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, UInt uiDepth );
    212 #if HHI_INTER_VIEW_RESIDUAL_PRED
     220#if HHI_INTER_VIEW_RESIDUAL_PRED && !MTK_MDIVRP_C0138
    213221  Void decodeResPredFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU, UInt uiPUIdx );
    214222#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecSbac.h

    r210 r280  
    9090  Void  parseVPS                  ( TComVPS* pcVPS )  {}
    9191#endif
    92 #if HHI_MPI
     92#if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068
    9393  Void  parseSPS                  ( TComSPS* pcSPS, Bool bIsDepth ) {}
    9494#else
     
    104104
    105105#if LCU_SYNTAX_ALF
     106#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     107  Void  parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet, bool isDepth) {}
     108#else
    106109  Void  parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet) {}
     110#endif
    107111#else
    108112  Void  parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl ) {}
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecTop.cpp

    r231 r280  
    353353  m_iMaxRefPicNum = 0;
    354354  m_uiValidPS = 0;
    355 #if SONY_COLPIC_AVAILABILITY
    356   m_iViewOrderIdx = 0;
    357 #endif
    358355#if ENC_DEC_TRACE
    359356  if(!g_hTrace) g_hTrace = fopen( "TraceDec.txt", "wb" );
     
    788785  }
    789786
    790 #if SONY_COLPIC_AVAILABILITY
    791   m_apcSlicePilot->setViewOrderIdx( m_apcSlicePilot->getSPS()->getViewOrderIdx());
    792 #endif
    793 
    794787#if NAL_REF_FLAG
    795788  m_apcSlicePilot->setReferenced(nalu.m_nalRefFlag);
     
    801794  // ALF CU parameters should be part of the slice header -> needs to be fixed
    802795#if LCU_SYNTAX_ALF
     796#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     797  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_cGopDecoder.getAlfCuCtrlParam(), m_cGopDecoder.getAlfParamSet(),m_apcSlicePilot->getVPS()->getDepthFlag(nalu.m_layerId));
     798#else
    803799  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_cGopDecoder.getAlfCuCtrlParam(), m_cGopDecoder.getAlfParamSet());
     800#endif
    804801#else
    805802  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_cGopDecoder.getAlfCuCtrlParam() );
     
    865862    xGetNewPicBuffer (m_apcSlicePilot, pcPic);
    866863
    867 #if SONY_COLPIC_AVAILABILITY
    868     pcPic->setViewOrderIdx( m_apcSlicePilot->getSPS()->getViewOrderIdx() );
    869 #endif
    870 
     864#if INTER_VIEW_VECTOR_SCALING_C0115
     865    pcPic->setViewOrderIdx( m_apcSlicePilot->getVPS()->getViewOrderIdx(nalu.m_layerId) );    // will be changed to view_id
     866#endif
    871867    /* transfer any SEI messages that have been received to the picture */
    872868    pcPic->setSEIs(m_SEIs);
     
    10931089#endif
    10941090
    1095 #if SONY_COLPIC_AVAILABILITY
     1091#if INTER_VIEW_VECTOR_SCALING_C0115
    10961092#if VIDYO_VPS_INTEGRATION
    1097     pcSlice->setViewOrderIdx( pcSlice->getVPS()->getViewOrderIdx(nalu.m_layerId) );
     1093    pcSlice->setViewOrderIdx( pcSlice->getVPS()->getViewOrderIdx(nalu.m_layerId) );        // will be changed to view_id
    10981094#else
    10991095    pcSlice->setViewOrderIdx( pcPic->getViewOrderIdx() );
    11001096#endif
     1097#endif
     1098
     1099#if INTER_VIEW_VECTOR_SCALING_C0115
     1100    pcSlice->setIVScalingFlag( pcSlice->getVPS()->getIVScalingFlag());
    11011101#endif
    11021102
     
    12691269  sps->setRPSList(rps);
    12701270#endif
    1271 #if HHI_MPI
     1271#if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068
    12721272  m_cEntropyDecoder.decodeSPS( sps, m_isDepth );
    12731273#else
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecTop.h

    r231 r280  
    196196  SEImessages *m_SEIs; ///< "all" SEI messages.  If not NULL, we own the object.
    197197
    198 #if SONY_COLPIC_AVAILABILITY
    199   Int                     m_iViewOrderIdx;
    200 #endif
    201 
    202198  // functional classes
    203199  TComPrediction          m_cPrediction;
     
    264260  Void setIsDepth( Bool isDepth ) { m_isDepth = isDepth; }
    265261
    266 #if SONY_COLPIC_AVAILABILITY
    267   Void setViewOrderIdx(Int i)     { m_iViewOrderIdx = i ;}
    268   Int  getViewOrderIdx()          { return m_iViewOrderIdx ; }
    269 #endif
    270 
    271262#if DEPTH_MAP_GENERATION
    272263  TComDepthMapGenerator*  getDepthMapGenerator  () { return &m_cDepthMapGenerator; }
Note: See TracChangeset for help on using the changeset viewer.