HM编码器代码阅读(25)——和熵编码有关的一些类

熵编码中各个类的介绍:

     TEncEntropyIf是熵编码算法的虚基类——它封装了熵编码算法的细节,TEncSbac和TEncCavlc都是它的子类,这个类定义了一些纯虚的接口。具体的实现根据使用的算法的不同而不同,例如TEncSbac使用了CABAC熵编码算法、TEncCavlc使用了cavlc熵编码算法。

     TEncEntropy是熵编码器类,TEncEntropy的对象就表示一个熵编码器,它实际包装了对TEncEntropyIf的访问;TEncEntropy有一个TEncEntropyIf指针,这个指针指向了具体实现熵编码算法的对象,根据不同的情况可以是TEncSbac或者TEncCavlc。

     TEncBinIf是进行二进制化的虚基类,它封装了二进制化算法的细节,定义了纯虚的接口,TEncBinCABAC是他的子类(TEncBinCABAC被TEncSbac所使用)。可以根据算法的不同进行不同的实现(因为二进制化算法也可以有很多种)。
     TComBitIf是处理比特的虚基类,主要封装了比特写入,比特数统计等功能。TComBitCounter(比特计数器)和TComOutputBitstream(输出比特流)是它的子类

由于TEncSbac使用地比较多,现在看一下TEncSbac的实现:

你可能感兴趣的:(C++,编码,h.265,HEVC)