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)
Location:
branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/SyntaxElementParser.cpp

    r324 r521  
    4949{
    5050  xReadCode (length, rValue);
     51#if H_MV_ENC_DEC_TRAC
     52  if ( g_disableHLSTrace )
     53  {
     54    return;
     55  }
     56#endif
    5157  fprintf( g_hTrace, "%8lld  ", g_nSymbolCounter++ );
    5258  if (length < 10)
     
    6470{
    6571  xReadUvlc (rValue);
     72#if H_MV_ENC_DEC_TRAC
     73  if ( g_disableHLSTrace )
     74  {
     75    return;
     76  }
     77#endif
    6678  fprintf( g_hTrace, "%8lld  ", g_nSymbolCounter++ );
    6779  fprintf( g_hTrace, "%-50s ue(v) : %d\n", pSymbolName, rValue );
     
    7284{
    7385  xReadSvlc(rValue);
     86#if H_MV_ENC_DEC_TRAC
     87  if ( g_disableHLSTrace )
     88  {
     89    return;
     90  }
     91#endif
    7492  fprintf( g_hTrace, "%8lld  ", g_nSymbolCounter++ );
    7593  fprintf( g_hTrace, "%-50s se(v) : %d\n", pSymbolName, rValue );
     
    8098{
    8199  xReadFlag(rValue);
     100#if H_MV_ENC_DEC_TRAC
     101  if ( g_disableHLSTrace )
     102  {
     103    return;
     104  }
     105#endif
    82106  fprintf( g_hTrace, "%8lld  ", g_nSymbolCounter++ );
    83107  fprintf( g_hTrace, "%-50s u(1)  : %d\n", pSymbolName, rValue );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecBinCoderCABAC.cpp

    r324 r521  
    3737
    3838#include "TDecBinCoderCABAC.h"
     39#include "../TLibCommon/TComRom.h"
    3940
    4041//! \ingroup TLibDecoder
     
    260261  UInt uiBit = 0;
    261262  m_pcTComBitstream->read( iNum, uiBit );
     263#if H_MV_ENC_DEC_TRAC         
     264  DTRACE_CU("Number of pcm_alignment_zero_bit", iNum)
     265#endif
    262266}
    263267
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r504 r521  
    4747Void  xTraceSPSHeader (TComSPS *pSPS)
    4848{
     49#if H_MV_ENC_DEC_TRAC
     50  if ( g_disableHLSTrace )
     51  {
     52    return;
     53  }
     54  // To avoid mismatches
     55  fprintf( g_hTrace, "=========== Sequence Parameter Set ===========\n" );
     56#else
    4957  fprintf( g_hTrace, "=========== Sequence Parameter Set ID: %d ===========\n", pSPS->getSPSId() );
     58#endif
    5059}
    5160
    5261Void  xTracePPSHeader (TComPPS *pPPS)
    5362{
     63#if H_MV_ENC_DEC_TRAC
     64  if ( g_disableHLSTrace )
     65  {
     66    return;
     67  }
     68  fprintf( g_hTrace, "=========== Picture Parameter Set ===========\n" );
     69#else
    5470  fprintf( g_hTrace, "=========== Picture Parameter Set ID: %d ===========\n", pPPS->getPPSId() );
     71#endif
    5572}
    5673
    5774Void  xTraceSliceHeader (TComSlice *pSlice)
    5875{
     76#if H_MV_ENC_DEC_TRAC
     77  if ( g_disableHLSTrace )
     78  {
     79    return;
     80  }
     81#endif
    5982  fprintf( g_hTrace, "=========== Slice ===========\n");
    6083}
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCu.cpp

    r510 r521  
    204204  UInt uiTPelY   = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ];
    205205  UInt uiBPelY   = uiTPelY + (g_uiMaxCUHeight>>uiDepth) - 1;
    206  
     206#if H_MV_ENC_DEC_TRAC
     207  DTRACE_CU_S("=========== coding_quadtree ===========\n")
     208  DTRACE_CU("x0", uiLPelX)
     209  DTRACE_CU("x1", uiTPelY)
     210  DTRACE_CU("log2CbSize", g_uiMaxCUWidth>>uiDepth)
     211  DTRACE_CU("cqtDepth"  , uiDepth)
     212#endif
    207213  TComSlice * pcSlice = pcCU->getPic()->getSlice(pcCU->getPic()->getCurrSliceIdx());
    208214  Bool bStartInCU = pcCU->getSCUAddr()+uiAbsPartIdx+uiCurNumParts>pcSlice->getSliceSegmentCurStartCUAddr()&&pcCU->getSCUAddr()+uiAbsPartIdx<pcSlice->getSliceSegmentCurStartCUAddr();
     
    264270  }
    265271 
     272#if H_MV_ENC_DEC_TRAC
     273  DTRACE_CU_S("=========== coding_unit ===========\n")
     274#endif
     275
    266276  if( (g_uiMaxCUWidth>>uiDepth) >= pcCU->getSlice()->getPPS()->getMinCuDQPSize() && pcCU->getSlice()->getPPS()->getUseDQP())
    267277  {
     
    330340  if( pcCU->isSkipped(uiAbsPartIdx) )
    331341  {
     342#if H_MV_ENC_DEC_TRAC
     343    DTRACE_PU_S("=========== prediction_unit ===========\n")
     344    DTRACE_PU("x0", uiLPelX)
     345    DTRACE_PU("x1", uiTPelY)
     346#endif
    332347    m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 );
    333348    m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecEntropy.cpp

    r510 r521  
    215215  for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset )
    216216  {
     217#if H_MV_ENC_DEC_TRAC
     218    DTRACE_PU_S("=========== prediction_unit ===========\n")
     219    // ToDo:
     220    //DTRACE_PU("x0", uiLPelX)
     221    //DTRACE_PU("x1", uiTPelY)
     222#endif
    217223    decodeMergeFlag( pcCU, uiSubPartIdx, uiDepth, uiPartIdx );
    218224    if ( pcCU->getMergeFlag( uiSubPartIdx ) )
     
    364370  {
    365371    m_pcEntropyDecoderIf->parseMVPIdx( iMVPIdx );
     372#if H_MV_ENC_DEC_TRAC
     373#if ENC_DEC_TRACE
     374    if ( eRefList == REF_PIC_LIST_0 )
     375    {
     376      DTRACE_PU("mvp_l0_flag", iMVPIdx)
     377    }
     378    else
     379    {
     380      DTRACE_PU("mvp_l1_flag", iMVPIdx)
     381    }
     382#endif
     383#endif
    366384  }
    367385  pcSubCU->fillMvpCand(uiPartIdx, uiPartAddr, eRefList, iRefIdx, pAMVPInfo);
     
    484502    pcCU->setTrIdxSubParts( uiTrDepth, uiAbsPartIdx, uiDepth );
    485503   
     504#if !H_MV_ENC_DEC_TRAC
    486505    {
    487506      DTRACE_CABAC_VL( g_nSymbolCounter++ );
     
    494513      DTRACE_CABAC_T( "\n" );
    495514    }
     515#endif
    496516   
    497517    pcCU->setCbfSubParts ( 0, TEXT_LUMA, uiAbsPartIdx, uiDepth );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecSbac.cpp

    r504 r521  
    331331    m_pcTDecBinIf->decodeBinTrm(uiSymbol);
    332332
     333#if H_MV_ENC_DEC_TRAC
     334      DTRACE_CU("pcm_flag", uiSymbol)
     335#endif
    333336    if (uiSymbol)
    334337    {
     
    412415  UInt uiSymbol;
    413416  m_pcTDecBinIf->decodeBin( uiSymbol, m_CUTransquantBypassFlagSCModel.get( 0, 0, 0 ) );
     417#if H_MV_ENC_DEC_TRAC
     418  DTRACE_CU("cu_transquant_bypass_flag", uiSymbol);
     419#endif
    414420  pcCU->setCUTransquantBypassSubParts(uiSymbol ? true : false, uiAbsPartIdx, uiDepth);
    415421}
     
    431437  UInt uiCtxSkip = pcCU->getCtxSkipFlag( uiAbsPartIdx );
    432438  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUSkipFlagSCModel.get( 0, 0, uiCtxSkip ) );
     439#if !H_MV_ENC_DEC_TRAC
    433440  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    434441  DTRACE_CABAC_T( "\tSkipFlag" );
     
    438445  DTRACE_CABAC_V( uiSymbol );
    439446  DTRACE_CABAC_T( "\n");
     447#endif
    440448 
    441449  if( uiSymbol )
     
    447455    pcCU->setMergeFlagSubParts( true , uiAbsPartIdx, 0, uiDepth );
    448456  }
     457#if H_MV_ENC_DEC_TRAC
     458  DTRACE_CU("cu_skip_flag", uiSymbol);
     459#endif
    449460}
    450461
     
    460471  UInt uiSymbol;
    461472  m_pcTDecBinIf->decodeBin( uiSymbol, *m_cCUMergeFlagExtSCModel.get( 0 ) );
     473#if H_MV_ENC_DEC_TRAC
     474  DTRACE_PU("merge_flag", uiSymbol)
     475#endif
    462476  pcCU->setMergeFlagSubParts( uiSymbol ? true : false, uiAbsPartIdx, uiPUIdx, uiDepth );
    463477
     478#if !H_MV_ENC_DEC_TRAC
    464479  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    465480  DTRACE_CABAC_T( "\tMergeFlag: " );
     
    470485  DTRACE_CABAC_V( uiAbsPartIdx );
    471486  DTRACE_CABAC_T( "\n" );
     487#endif
    472488}
    473489
     
    494510      }
    495511    }
     512#if H_MV_ENC_DEC_TRAC
     513    DTRACE_PU("merge_idx", uiUnaryIdx)
     514#endif
    496515  }
    497516  ruiMergeIndex = uiUnaryIdx;
    498517
     518#if !H_MV_ENC_DEC_TRAC
    499519  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    500520  DTRACE_CABAC_T( "\tparseMergeIndex()" )
     
    502522  DTRACE_CABAC_V( ruiMergeIndex )
    503523  DTRACE_CABAC_T( "\n" )
     524#endif
    504525}
    505526
     
    521542  UInt uiSymbol;
    522543  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUSplitFlagSCModel.get( 0, 0, pcCU->getCtxSplitFlag( uiAbsPartIdx, uiDepth ) ) );
     544#if H_MV_ENC_DEC_TRAC
     545  DTRACE_CU("split_cu_flag", uiSymbol);
     546#else
    523547  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    524548  DTRACE_CABAC_T( "\tSplitFlag\n" )
     549#endif
    525550  pcCU->setDepthSubParts( uiDepth + uiSymbol, uiAbsPartIdx );
    526551 
     
    545570    {
    546571      m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     572#if H_MV_ENC_DEC_TRAC         
     573      DTRACE_CU("part_mode", uiSymbol)
     574#endif       
    547575    }
    548576    eMode = uiSymbol ? SIZE_2Nx2N : SIZE_NxN;
     
    598626      }
    599627    }
     628#if H_MV_ENC_DEC_TRAC         
     629    DTRACE_CU("part_mode", eMode )
     630#endif       
    600631  }
    601632  pcCU->setPartSizeSubParts( eMode, uiAbsPartIdx, uiDepth );
     
    621652  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPredModeSCModel.get( 0, 0, 0 ) );
    622653  iPredMode += uiSymbol;
     654#if H_MV_ENC_DEC_TRAC         
     655  DTRACE_CU("pred_mode_flag", uiSymbol)
     656#endif       
    623657  pcCU->setPredModeSubParts( (PredMode)iPredMode, uiAbsPartIdx, uiDepth );
    624658}
     
    639673    m_pcTDecBinIf->decodeBin( symbol, m_cCUIntraPredSCModel.get( 0, 0, 0) );
    640674    mpmPred[j] = symbol;
     675#if H_MV_ENC_DEC_TRAC         
     676    DTRACE_CU("prev_intra_luma_pred_flag", symbol)
     677#endif
    641678  }
    642679  for (j=0;j<partNum;j++)
     
    652689        symbol++;
    653690      }
     691#if H_MV_ENC_DEC_TRAC         
     692      DTRACE_CU("mpm_idx", symbol)
     693#endif
    654694      intraPredMode = preds[symbol];
    655695    }
     
    659699      m_pcTDecBinIf->decodeBinsEP( symbol, 5 );
    660700      intraPredMode = symbol;
    661        
     701#if H_MV_ENC_DEC_TRAC         
     702      DTRACE_CU("rem_intra_luma_pred_mode", symbol)
     703#endif       
    662704      //postponed sorting of MPMs (only in remaining branch)
    663705      if (preds[0] > preds[1])
     
    690732  if( uiSymbol == 0 )
    691733  {
     734#if H_MV_ENC_DEC_TRAC         
     735    DTRACE_CU("intra_chroma_pred_mode", uiSymbol )
     736#endif       
    692737    uiSymbol = DM_CHROMA_IDX;
    693738  }
     
    697742      UInt uiIPredMode;
    698743      m_pcTDecBinIf->decodeBinsEP( uiIPredMode, 2 );
     744#if H_MV_ENC_DEC_TRAC         
     745      DTRACE_CU("intra_chroma_pred_mode", uiIPredMode )
     746#endif       
    699747      UInt uiAllowedChromaDir[ NUM_CHROMA_MODE ];
    700748      pcCU->getAllowedChromaDir( uiAbsPartIdx, uiAllowedChromaDir );
     
    729777  uiSymbol++;
    730778  ruiInterDir = uiSymbol;
     779#if H_MV_ENC_DEC_TRAC
     780    DTRACE_PU("inter_pred_idc", ruiInterDir - 1 )   
     781#endif
     782
    731783  return;
    732784}
     
    764816  }
    765817
     818#if H_MV_ENC_DEC_TRAC
     819#if ENC_DEC_TRACE
     820  if ( eRefList == REF_PIC_LIST_0 )
     821  {
     822    DTRACE_PU("ref_idx_l0", uiSymbol)
     823  }
     824  else
     825  {
     826    DTRACE_PU("ref_idx_l1", uiSymbol)
     827  }
     828#endif
     829#endif
    766830  return;
    767831}
     
    835899{
    836900  m_pcTDecBinIf->decodeBin( ruiSubdivFlag, m_cCUTransSubdivFlagSCModel.get( 0, 0, uiLog2TransformBlockSize ) );
     901#if !H_MV_ENC_DEC_TRAC
    837902  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    838903  DTRACE_CABAC_T( "\tparseTransformSubdivFlag()" )
     
    842907  DTRACE_CABAC_V( uiLog2TransformBlockSize )
    843908  DTRACE_CABAC_T( "\n" )
     909#endif
    844910}
    845911
     
    849915  const UInt uiCtx = 0;
    850916  m_pcTDecBinIf->decodeBin( uiSymbol , m_cCUQtRootCbfSCModel.get( 0, 0, uiCtx ) );
     917#if !H_MV_ENC_DEC_TRAC
    851918  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    852919  DTRACE_CABAC_T( "\tparseQtRootCbf()" )
     
    858925  DTRACE_CABAC_V( uiAbsPartIdx )
    859926  DTRACE_CABAC_T( "\n" )
     927#else
     928  DTRACE_CU( "rqt_root_cbf", uiSymbol )
     929#endif
    860930 
    861931  uiQtRootCbf = uiSymbol;
     
    904974  const UInt uiCtx = pcCU->getCtxQtCbf( eType, uiTrDepth );
    905975  m_pcTDecBinIf->decodeBin( uiSymbol , m_cCUQtCbfSCModel.get( 0, eType ? TEXT_CHROMA: eType, uiCtx ) );
    906  
     976#if !H_MV_ENC_DEC_TRAC 
    907977  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    908978  DTRACE_CABAC_T( "\tparseQtCbf()" )
     
    916986  DTRACE_CABAC_V( uiAbsPartIdx )
    917987  DTRACE_CABAC_T( "\n" )
     988#endif
    918989 
    919990  pcCU->setCbfSubParts( uiSymbol << uiTrDepth, eType, uiAbsPartIdx, uiDepth );
     
    9411012    }
    9421013  }
     1014#if !H_MV_ENC_DEC_TRAC
    9431015  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    9441016  DTRACE_CABAC_T("\tparseTransformSkip()");
     
    9521024  DTRACE_CABAC_V( uiAbsPartIdx )
    9531025  DTRACE_CABAC_T( "\n" )
     1026#endif
    9541027
    9551028  pcCU->setTransformSkipSubParts( useTransformSkip, eTType, uiAbsPartIdx, uiDepth);
     
    10271100Void TDecSbac::parseCoeffNxN( TComDataCU* pcCU, TCoeff* pcCoef, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt uiDepth, TextType eTType )
    10281101{
     1102#if !H_MV_ENC_DEC_TRAC
    10291103  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    10301104  DTRACE_CABAC_T( "\tparseCoeffNxN()\teType=" )
     
    10511125  DTRACE_CABAC_V(  pcCU->getPredictionMode( uiAbsPartIdx ) )
    10521126  DTRACE_CABAC_T( "\n" )
     1127#endif
    10531128 
    10541129  if( uiWidth > pcCU->getSlice()->getSPS()->getMaxTrSize() )
     
    15881663    uiW += ( 1 == uiCode ? 1 : 0 );
    15891664  }
     1665#if H_MV_ENC_DEC_TRAC
     1666  DTRACE_CU("iv_res_pred_weight_idx", uiW )
     1667#endif
    15901668  pcCU->setARPWSubParts( ( UChar )( uiW ) , uiAbsPartIdx, uiDepth ); 
    15911669}
     
    16041682  UInt uiCtxIC = pcCU->getCtxICFlag( uiAbsPartIdx );
    16051683  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) );
     1684#if !H_MV_ENC_DEC_TRAC
    16061685  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    16071686  DTRACE_CABAC_T( "\tICFlag" );
     
    16111690  DTRACE_CABAC_V( uiSymbol );
    16121691  DTRACE_CABAC_T( "\n");
     1692#else
     1693  DTRACE_CU("ic_flag", uiSymbol)
     1694#endif
    16131695 
    16141696  pcCU->setICFlagSubParts( uiSymbol ? true : false , uiAbsPartIdx, 0, uiDepth );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecSlice.cpp

    r324 r521  
    123123  DTRACE_CABAC_T( "\tPOC: " );
    124124  DTRACE_CABAC_V( rpcPic->getPOC() );
     125#if H_MV_ENC_DEC_TRAC
     126  DTRACE_CABAC_T( " Layer: " );
     127  DTRACE_CABAC_V( rpcPic->getLayerId() );
     128#endif
    125129  DTRACE_CABAC_T( "\n" );
    126130
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp

    r504 r521  
    718718    return false;
    719719  }
     720#if ENC_DEC_TRACE
     721#if H_MV_ENC_DEC_TRAC
     722  // parse remainder of SH
     723   g_disableHLSTrace = false;
     724#endif
     725#endif
    720726#endif
    721727  // actual decoding starts here
Note: See TracChangeset for help on using the changeset viewer.