Ignore:
Timestamp:
18 Jun 2013, 05:16:27 (11 years ago)
Author:
mediatek-htm
Message:

Integration of 3D-HEVC merge related coding tools:
Inter-view motion merge candidate
HHI_INTER_VIEW_MOTION_PRED
SAIT_IMPROV_MOTION_PRED_M24829, improved inter-view motion vector prediction
QC_MRG_CANS_B0048 , JCT3V-B0048, B0086, B0069
OL_DISMV_POS_B0069 , different pos for disparity MV candidate, B0069
MTK_INTERVIEW_MERGE_A0049 , second part
QC_AMVP_MRG_UNIFY_IVCAN_C0051
TEXTURE MERGING CANDIDATE , JCT3V-C0137

Notes: Two configurations are added:
PredDepthMapGen : 1
MultiviewMvPred : 7

From: yiwen.chen@… (MediaTek)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncCavlc.cpp

    r446 r476  
    581581  WRITE_FLAG( 0, "sps_extension_flag" );
    582582#endif
     583
     584#if H_3D_IV_MERGE
     585  if( pcSPS->getViewIndex() || pcSPS->isDepth() )
     586  {
     587    WRITE_FLAG( 0, "base_view_flag" );
     588    if( pcSPS->isDepth() )
     589    {
     590      WRITE_FLAG( 1, "depth_flag" );
     591      WRITE_UVLC( pcSPS->getViewIndex(), "view_idx" );
     592    }
     593    else
     594    {
     595      WRITE_FLAG( 0, "depth_flag" );
     596      WRITE_UVLC( pcSPS->getViewIndex() - 1, "view_idx_minus1" );
     597      WRITE_UVLC( pcSPS->getPredDepthMapGeneration(), "Pdm_generation" );
     598      if( pcSPS->getPredDepthMapGeneration() )
     599      {
     600        WRITE_UVLC( pcSPS->getMultiviewMvPredMode(), "multi_view_mv_pred_mode" );
     601      }
     602    }
     603  }
     604  else
     605  {
     606    WRITE_FLAG( 1, "base_view_flag" );   
     607  }
     608#endif
    583609}
    584610
     
    10711097      xCodePredWeightTable( pcSlice );
    10721098    }
     1099#if H_3D_IV_MERGE
     1100    assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS_MEM);
     1101#else
    10731102    assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS);
     1103#endif
    10741104    if (!pcSlice->isIntra())
    10751105    {
     1106#if H_3D_IV_MERGE
     1107      WRITE_UVLC(((pcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE) == PDM_USE_FOR_MERGE? MRG_MAX_NUM_CANDS_MEM: MRG_MAX_NUM_CANDS) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1108#else
    10761109      WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1110#endif
    10771111    }
    10781112    Int iCode = pcSlice->getSliceQp() - ( pcSlice->getPPS()->getPicInitQPMinus26() + 26 );
Note: See TracChangeset for help on using the changeset viewer.