新闻活动

浅析HEVC/H.265编码器中的熵编码

2014-12-12 12:49:23  

 

   在保证视频图像质量的前提下,HEVC通过增加一定的计算复杂度,可以实现码流在H.264/AVC的基础上降低50%。为了实现目标,HEVC采用了一些全新的编码技术,比如:基于LCU(Largest Coding Unit)和四叉树(Quad Tree)的灵活编码结构[1]、大尺寸变换单元结构的选择[3]、改进的去方块滤波技术以及HEVC的并行化改进设计等。 今天主要介绍一下HEVC/H.265编器码中的熵编码。

 
1、HEVC编码过程中的熵编码:
 
  1)HEVC的视频码流结构
 
  2)transquantbypass_flag和skip_flag编码
 
  3)prediction mode编码
 
  prediction mode包括MODE_INTRA和MODE_INTER两种模式,当slice type=I_Slice时,prediction mode=MODE_INTRA,当slice type=P_Slice/B_Slice时,prediction mode可以是MODE_INTER,也可以是MODE_INTRA,后者将采用intra的预测方式,编码预测方向信息。为了节省码字,slice type=I_Slice时预测信息不写入码流,只对P_Slice和B_Slice的prediction mode进行编码。
 
  4)partition size编码
 
  这也是和H.264仅有symmetric类型不同之处,这样考虑主要是为了照顾一些大尺寸图像的纹理分布特性。其中INTRA_MODE只有2Nx2N和NxN两种形态。
 
 
2、predition infomation编码
 
  当采用INTRA_MODE预测模式时需要编码luma/chroma intra direction,HEVC/H.265编码中采用了多达35种帧内预测模式,除了planar模式和DC模式外采用了33种基于方向的预测模式[6],精确地从更多的方向消除视频的空间冗余性,进一步提高帧内模式的编码效率。HEVC提出的planar模式能够更好得预测画面的平坦区域,对于高分辨率的大块区域可以取得较好的预测效果。split_flag, skip_flag, luma direction在HEVC熵编码中的上下文建模属于典型的运用空间相邻的同类语法元素作为依据的设计,上下文选择的依据是左侧CU和上侧CU的信息[2],但是在选择top direction时,HEVC并没有采用上面LCU的CU direction作参考,仅仅在LCU内部CU编码时会用到上面CU的direction作为参考[4],这和H.264中选择上面宏块的预测模式有所不同。当采用INTER_MODE模式进行编码时,需要编入ref_frame_idx,mvp_idx,mvd信息,因为prediction info是基于PU为单位进行编码的,所有针对不同的PU分割类型要对每一个PU块的mv信息进行编码。 当一个LCU中所有的CU数据信息编码完成之后要进行terminate标识位编码。
 
  本文结合前段时间所做的软件建模工作对HEVC的熵编码过程进行了分析,接下来的工作主要致力于编码器的硬件实现和优化设计。为了提高硬件设计的吞吐率,硬件算术编码引擎采用可处理multi-bins的多级流水线结构,diff-banks SRAM来存储上下文表格,针对不同大小TU块的残差数据编码过程,提出合理的ping-pong结构来避免扫描过程和编码过程的等待,缩短编码周期;为了更好的控制datapath处理过程,采用高效的转换状态机来处理各个语法元素的编码过程。
 
 

    Copyright © 北京世纪鼎点软件有限公司     京公网安备 11010802023509号    京ICP备05003119号