熵编码
熵编码:
是指按信息熵原理进行的无损编码方式,无损熵编码也是有损视频编码中的一个关键模块,它处于视频压缩系统的最末端。熵编码把一列系用来表示视频序列的元素符号转变为一个用来传输或存储的压缩码流,输入的符号可能包括量化的变换系数、运动矢量信息、预测模式信息等。熵编码去除统计冗余。
消息:
把客观物质运动和主观思维的活动状态表达出来就产生了消息。
信息:
消息包含信息,是信息的载体。信息是事物运动状态或存在方式的不确定性的描述。
信息的度量:
信息的多少称为信息量;信息量与不确定性消除的程度有关,消除的不确定性程度高,信息量就大。因此它与事件发生的概率相关,是一个关于事件发生概率的函数。定义如下:
自信息:
上式中I(xi)称为信源符号xi的自信息,表征该符号出现的不确定性,自信息是信源发出某一符号所含有的信息量,信源发出的符号不同,含有的信息量不同,所有自信息不能度量整个信源的信息量。
信息熵:
自信息的数学期望为信源的信息熵,如下式。信息熵H(X)从平均意义上度量信源的总体期信息,可以理解为信源X每输出一个符号所提供的平均信息量。任何概率分布都是[0, 1],因此熵的取值总是非负数。
联合熵:
在实际通信中,信源通常输出的是符号序列,符号键具有一定的相关性,可以用联合熵来表征信源输出一个序列所提供的平均信息量。
变长编码:
对信源输出的消息(一个信源符号或固定数目的多个信源符号)采用不同长度的码字表示,这种编码方式称为变长编码。变长码必须是唯一可译码,才能实现无失真编码。
哈夫曼码:
是一种最佳变长码,但存在解码器的计算复杂度高。
指数哥伦布码:
具有规则结构的变长码来规避哈夫曼码的不足。下表给出了零阶、一阶、二阶、和三阶指数哥伦布码的结构。
算术编码:
与变长码不同,算术编码的本质是为整个序列分配一个码字,而不是给每个输入流的每个字符分别指定码字,因此平均意义上可以为单个字符分配码长小于1 的码字,所以算术编码可以给出接近最优的编码结果。
零阶指数哥伦布编码
CABAC
变换系数熵编码
参考
JVET输出文档:
https://www.itu.int/wftp3/av-arch/jvet-site/
书籍:
新一代通用视频编码H266/VVC:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]
备注
本系列博客主要是对《新一代通用视频编码H266/VVC:原理、标准与实现》
的学习笔记。