VTM10.0熵编码技术

Posted 神遁克里苏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VTM10.0熵编码技术相关的知识,希望对你有一定的参考价值。

CABAC编码

template <class BinProbModel>
void TBinEncoder<BinProbModel>::encodeBin( unsigned bin, unsigned ctxId )

  BinCounter::addCtx( ctxId );
  BinProbModel& rcProbModel = m_Ctx[ctxId];
  uint32_t      LPS         = rcProbModel.getLPS( m_Range );

  DTRACE( g_trace_ctx, D_CABAC, "%d" " %d " "%d" "  " "[%d:%d]" "  " "%2d(MPS=%d)"  "  " "  -  " "%d" "\\n", DTRACE_GET_COUNTER( g_trace_ctx, D_CABAC ), ctxId, m_Range, m_Range - LPS, LPS, ( unsigned int ) ( rcProbModel.state() ), bin == rcProbModel.mps(), bin );

  m_Range   -=  LPS;
  if( bin != rcProbModel.mps() )
  //如果传过来的symbol是LPS,range肯定会小于256,因此要进行归一化操作
    int numBits   = rcProbModel.getRenormBitsLPS( LPS );
    m_bitsLeft   -= numBits;//寄存器中剩余的供Low左移用的位数
    m_Low        += m_Range;//则低位要加上m_Range
    m_Low         = m_Low << numBits;//对low的左移是为了输出

以上是关于VTM10.0熵编码技术的主要内容,如果未能解决你的问题,请参考以下文章

VTM10.0帧内之CCLM技术

VTM10.0反量化反变换技术

VTM10.0反量化反变换技术

VTM10.0反量化反变换技术

VTM10.0帧内之CCLM技术

VTM10.0量化之一般量化技术