本文大部分内容参考《The H.264 advanced video compression standard》。
H.264协议中主要使用的是0阶哥伦布编码进行数值二值化操作,以方便后续的CAVLC和CABAC(哥伦布编码只是CABAC众多二值化方法中的一种)编码。
编码流程如下:
映射到code_num
在H.264协议中,规定了以下4中映射方式:
- ue:无符号映射
- te:截断映射
- se:有符号映射
- me:根据协议中的规定映射
ue无符号映射
直接将参数作为码字,即code_num=k,其中k是参数值,code_num是码字。
te截断映射
首先判断参数k的范围 [0,kmax] ,如果 kmax 大于1,则按照ue进行编码,否则,codeword值为k。
se有符号映射
按照如下规则进行映射:
编码:
- code_num=2|k|(k≤0)
- code_num=2|