Ignore:
Timestamp:
4 Jul 2013, 21:00:23 (11 years ago)
Author:
tech
Message:

Integrated following changes:

  • H_MV_FIX1071, fix of encoder side reference list construction on IRAP pictures, same as in HM11.
  • H_3D_VSO_FIX_BORDRE_EXTENSION, fixed uninitialized borders for org-yuvs in VSO
  • H_MV_ENC_DEC_TRAC, added cu/pu level trace ( only enabled when ENC_DEC_TRACE is enabled)
File:
1 edited

Legend:

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

    r504 r521  
    439439
    440440  xWriteUnaryMaxSymbol(iSymbol, m_cMVPIdxSCModel.get(0), 1, iNum-1);
     441#if H_MV_ENC_DEC_TRAC
     442#if ENC_DEC_TRACE
     443  if ( eRefList == REF_PIC_LIST_0 )
     444  {
     445    DTRACE_PU("mvp_l0_flag", iSymbol)
     446  }
     447  else
     448  {
     449    DTRACE_PU("mvp_l1_flag", iSymbol)
     450  }
     451#endif
     452#endif
    441453}
    442454
     
    449461    {
    450462      m_pcBinIf->encodeBin( eSize == SIZE_2Nx2N? 1 : 0, m_cCUPartSizeSCModel.get( 0, 0, 0 ) );
     463#if H_MV_ENC_DEC_TRAC
     464      DTRACE_CU("part_mode", eSize == SIZE_2Nx2N? 1 : 0)
     465#endif       
    451466    }
    452467    return;
    453468  }
    454469 
     470#if H_MV_ENC_DEC_TRAC         
     471  DTRACE_CU("part_mode", eSize )
     472#endif       
    455473  switch(eSize)
    456474  {
     
    531549  Int iPredMode = pcCU->getPredictionMode( uiAbsPartIdx );
    532550  m_pcBinIf->encodeBin( iPredMode == MODE_INTER ? 0 : 1, m_cCUPredModeSCModel.get( 0, 0, 0 ) );
     551#if H_MV_ENC_DEC_TRAC
     552  DTRACE_CU("pred_mode_flag", iPredMode == MODE_INTER ? 0 : 1);
     553#endif
    533554}
    534555
     
    537558  UInt uiSymbol = pcCU->getCUTransquantBypass(uiAbsPartIdx);
    538559  m_pcBinIf->encodeBin( uiSymbol, m_CUTransquantBypassFlagSCModel.get( 0, 0, 0 ) );
     560#if H_MV_ENC_DEC_TRAC
     561  DTRACE_CU("cu_transquant_bypass_flag", uiSymbol);
     562#endif
    539563}
    540564
     
    550574  UInt uiCtxSkip = pcCU->getCtxSkipFlag( uiAbsPartIdx ) ;
    551575  m_pcBinIf->encodeBin( uiSymbol, m_cCUSkipFlagSCModel.get( 0, 0, uiCtxSkip ) );
     576#if !H_MV_ENC_DEC_TRAC
    552577  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    553578  DTRACE_CABAC_T( "\tSkipFlag" );
     
    557582  DTRACE_CABAC_V( uiSymbol );
    558583  DTRACE_CABAC_T( "\n");
     584#else
     585  DTRACE_CU("cu_skip_flag", uiSymbol);
     586#endif
    559587}
    560588
     
    569597  m_pcBinIf->encodeBin( uiSymbol, *m_cCUMergeFlagExtSCModel.get( 0 ) );
    570598
     599#if H_MV_ENC_DEC_TRAC
     600  DTRACE_PU("merge_flag", uiSymbol);
     601#else
    571602  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    572603  DTRACE_CABAC_T( "\tMergeFlag: " );
     
    577608  DTRACE_CABAC_V( uiAbsPartIdx );
    578609  DTRACE_CABAC_T( "\n" );
     610#endif
    579611}
    580612
     
    606638      }
    607639    }
    608   }
     640#if H_MV_ENC_DEC_TRAC
     641    DTRACE_PU("merge_idx", uiUnaryIdx);
     642#endif
     643  }
     644#if !H_MV_ENC_DEC_TRAC
    609645  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    610646  DTRACE_CABAC_T( "\tparseMergeIndex()" );
     
    612648  DTRACE_CABAC_V( pcCU->getMergeIndex( uiAbsPartIdx ) );
    613649  DTRACE_CABAC_T( "\n" );
     650#endif
    614651}
    615652
     
    628665     m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 3 ) );
    629666  }
     667#if H_MV_ENC_DEC_TRAC
     668  DTRACE_CU("iv_res_pred_weight_idx", iW);
     669#endif
    630670}
    631671#endif
     
    643683  UInt uiCtxIC  = pcCU->getCtxICFlag( uiAbsPartIdx ) ;
    644684  m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) );
     685#if !H_MV_ENC_DEC_TRAC
    645686  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    646687  DTRACE_CABAC_T( "\tICFlag" );
     
    650691  DTRACE_CABAC_V( uiSymbol );
    651692  DTRACE_CABAC_T( "\n");
     693#else
     694  DTRACE_CU("ic_flag", uiSymbol );
     695#endif
    652696}
    653697#endif
     
    664708  assert( uiCtx < 3 );
    665709  m_pcBinIf->encodeBin( uiCurrSplitFlag, m_cCUSplitFlagSCModel.get( 0, 0, uiCtx ) );
     710#if !H_MV_ENC_DEC_TRAC
    666711  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    667712  DTRACE_CABAC_T( "\tSplitFlag\n" )
     713#else
     714  DTRACE_CU("split_cu_flag", uiCurrSplitFlag );
     715#endif
    668716  return;
    669717}
     
    672720{
    673721  m_pcBinIf->encodeBin( uiSymbol, m_cCUTransSubdivFlagSCModel.get( 0, 0, uiCtx ) );
     722#if !H_MV_ENC_DEC_TRAC
    674723  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    675724  DTRACE_CABAC_T( "\tparseTransformSubdivFlag()" )
     
    679728  DTRACE_CABAC_V( uiCtx )
    680729  DTRACE_CABAC_T( "\n" )
     730#endif
    681731}
    682732
     
    701751    }
    702752    m_pcBinIf->encodeBin((predIdx[j] != -1)? 1 : 0, m_cCUIntraPredSCModel.get( 0, 0, 0 ) );
     753#if H_MV_ENC_DEC_TRAC
     754    DTRACE_CU("prev_intra_luma_pred_flag", (predIdx[j] != -1)? 1 : 0);
     755#endif
    703756  } 
    704757  for (j=0;j<partNum;j++)
     
    711764        m_pcBinIf->encodeBinEP( predIdx[j]-1 );
    712765      }
     766#if H_MV_ENC_DEC_TRAC
     767      DTRACE_CU("mpm_idx", predIdx[j] );
     768#endif
    713769    }
    714770    else
     
    731787      }
    732788      m_pcBinIf->encodeBinsEP( dir[j], 5 );
     789#if H_MV_ENC_DEC_TRAC
     790      DTRACE_CU("rem_intra_luma_pred_mode", dir[j] );
     791#endif
    733792    }
    734793  }
     
    743802  {
    744803    m_pcBinIf->encodeBin( 0, m_cCUChromaPredSCModel.get( 0, 0, 0 ) );
     804#if H_MV_ENC_DEC_TRAC
     805    DTRACE_CU("intra_chroma_pred_mode", 0 );
     806#endif
    745807  }
    746808  else
     
    760822
    761823    m_pcBinIf->encodeBinsEP( uiIntraDirChroma, 2 );
     824#if H_MV_ENC_DEC_TRAC
     825    DTRACE_CU("intra_chroma_pred_mode", uiIntraDirChroma );
     826#endif
     827
    762828  }
    763829  return;
     
    777843    m_pcBinIf->encodeBin( uiInterDir, *( pCtx + 4 ) );
    778844  }
     845#if H_MV_ENC_DEC_TRAC
     846  DTRACE_PU("inter_pred_idc", uiInterDir );
     847#endif
     848
    779849  return;
    780850}
     
    809879      }
    810880    }
     881#if H_MV_ENC_DEC_TRAC
     882#if ENC_DEC_TRACE
     883    iRefFrame = pcCU->getCUMvField( eRefList )->getRefIdx( uiAbsPartIdx );
     884    if ( eRefList == REF_PIC_LIST_0 )
     885    {
     886      DTRACE_PU("ref_idx_l0", iRefFrame)
     887    }
     888    else
     889    {
     890      DTRACE_PU("ref_idx_l1", iRefFrame)
     891    }
     892#endif
     893#endif
    811894  }
    812895  return;
     
    896979  UInt uiCtx = pcCU->getCtxQtCbf( eType, uiTrDepth );
    897980  m_pcBinIf->encodeBin( uiCbf , m_cCUQtCbfSCModel.get( 0, eType ? TEXT_CHROMA : eType, uiCtx ) );
     981#if !H_MV_ENC_DEC_TRAC
    898982  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    899983  DTRACE_CABAC_T( "\tparseQtCbf()" )
     
    907991  DTRACE_CABAC_V( uiAbsPartIdx )
    908992  DTRACE_CABAC_T( "\n" )
     993#endif
    909994}
    910995
     
    9221007  UInt useTransformSkip = pcCU->getTransformSkip( uiAbsPartIdx,eTType);
    9231008  m_pcBinIf->encodeBin( useTransformSkip, m_cTransformSkipSCModel.get( 0, eTType? TEXT_CHROMA: TEXT_LUMA, 0 ) );
     1009#if !H_MV_ENC_DEC_TRAC
    9241010  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    9251011  DTRACE_CABAC_T("\tparseTransformSkip()");
     
    9331019  DTRACE_CABAC_V( uiAbsPartIdx )
    9341020  DTRACE_CABAC_T( "\n" )
     1021#endif
    9351022}
    9361023
     
    9471034
    9481035  m_pcBinIf->encodeBinTrm (uiIPCM);
    949 
     1036#if H_MV_ENC_DEC_TRAC         
     1037  DTRACE_CU("pcm_flag", uiIPCM)
     1038#endif
    9501039  if (writePCMSampleFlag)
    9511040  {
     
    10171106  UInt uiCtx = 0;
    10181107  m_pcBinIf->encodeBin( uiCbf , m_cCUQtRootCbfSCModel.get( 0, 0, uiCtx ) );
     1108#if !H_MV_ENC_DEC_TRAC
    10191109  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    10201110  DTRACE_CABAC_T( "\tparseQtRootCbf()" )
     
    10261116  DTRACE_CABAC_V( uiAbsPartIdx )
    10271117  DTRACE_CABAC_T( "\n" )
     1118#else
     1119  DTRACE_CU( "rqt_root_cbf", uiCbf )
     1120#endif
    10281121}
    10291122
     
    11161209Void TEncSbac::codeCoeffNxN( TComDataCU* pcCU, TCoeff* pcCoef, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt uiDepth, TextType eTType )
    11171210{
     1211#if !H_MV_ENC_DEC_TRAC
    11181212  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    11191213  DTRACE_CABAC_T( "\tparseCoeffNxN()\teType=" )
     
    11401234  DTRACE_CABAC_V(  pcCU->getPredictionMode( uiAbsPartIdx ) )
    11411235  DTRACE_CABAC_T( "\n" )
    1142 
     1236#endif
    11431237  if( uiWidth > m_pcSlice->getSPS()->getMaxTrSize() )
    11441238  {
Note: See TracChangeset for help on using the changeset viewer.