Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC

简称Cabac,H264中的一种熵编码方式:基于上下文的自适应二进制算术编码

首先需要了解什么是算数编码(大部分是我在网上摘录的)

算术编码是一种常用的变字长编码,它是利用信源概率分布特性、能够趋近熵极限的编码方法。它与 Huffman 一样,也是对出现概率大的符号赋予短码,对概率小的符号赋予长码。但它的编码过程与 Huffman 编码却不相同,而且在信源概率分布比较均匀的情况下其编码效率高于 Huffman 编码。它和 Huffman 编码最大的区别在于它不是使用整数码。Huffman 码是用整数长度的码字来编码的最佳方法,而算法编码是一种并不局限于整数长度码字的最佳编码方法。算术编码是把各符号出现的概率表示在单位概率 [0,1] 区间之中,区间的宽度代表概率值的大小。符号出现的概率越大对应于区间愈宽,可用较短码字表示;符号出现概率越小对应于区间愈窄,需要较长码字表示。 举例如下:

符号序列的第一个符号 S3 用指向第 3 个子区间的指针来代表,可以用这个区间内的任意一个小数来表示这个指针,这里约定这个区间的左端点代表这个指针,因此得到第一个码字.011。

后续的编码将在前面编码指向的子区间内进行,将 [.011, .111] 区间再按概率大小划分为 4 份,第二个符号 S3 指向 .1001 (S3  区间的左端),输出码字变为 .1001。

然后,S3 对应的子区间又被划分为 4 份,开始对第三个符号 S2 进行编码,…….

两个参量:编码点(指针所指处)C 和区间宽度 A。

初始状态

编码点(指针所指处)C = 0

区间宽度 A = 1.0

新编码点 C = 原编码点 C + 原区间 A×Pi

新区间 A = 原区间 A×pi

序列 S3S3S2S4 …… 的编码过程:

第1个符号 (S3):  C = 0 + 1×.011 = .011

A = 1×.1 = .1

第2个符号 (S3):  C = .011 + .1×.011 = .1001

A = .1×.1 = .01

第3个符号 (S2):  C = .1001 + .01×.001 = .10011

A = .01×.01 = .0001

第4个符号 (S4):  C = .10011 + .0001×.111 = .1010011  (输出的码字)

A = .0001×.001 = .0000001

解码过程

算法解码采取与编码过程相反的步骤

把接收到的码字串指向其对应的子区间,得到此子区间对应的符号,即为解码后的符号。

即从码字串中减去已解码符号的子区间的左端点的数值(累积概率),

并将差值除以该子区间的宽度(概率值),得到新的码字串。

上述例子

当收到字码串 (.1010011) 时,其指向子区间 [.011, .111],对应于 S3,因此,得到第 1 个符号为 S3。

新码字串:(.1010011 - .011) ÷ (.1) = 0.100011 ,新码字串仍然指向子区间 [.011, .111],因此,第 2 个符号仍为  S3。

其它符号依次类推

二进制算术编码


二进制算术编码的输入的字符只有两种,如果信源字符集内包含有多个字符,则先将这些字符经过一系列的二进判决(这里有很多种判决方法,哥伦布方法等),变成二进制字符串。

这两个符号构成的序列的编码与算术编码基本原理相同,仍是不断划分概率子区间的递归过程。

在两个输入字符中,出现概率较大的为 MPS (More Probable Symbol),MPS 的概率为 Pe;出现概率较小的为 LPS (Less Probable Symbol),LPS 的概率为 Qe,Pe=1-Qe。

编码初始化子区间为 [0,1],MPS与 LPS 分配如图所示:

编码时,设置两个专用寄存器(C,A)

C 寄存器的值为编码点(指针所指处),初时化为0

A 寄存器的值为子区间的宽度 (该宽度恰好是已输入符号串的概率),初时化为1

随着被编码数据源输入,C 和 A 的内容按以下编码规则修正:

当低概率符号 LPS 到来时:

C=C ,  A=AQe

当高概率符号MPS到来时:

C=C + AQe ,  A=Ape = A(1-Qe)

(这两种情况也可以反过来,在我们用到的程序中就是大概率采用第一种更新方式,小概率使用了第二种更新方式)

h264—CABAC算法原理简介1相关推荐

  1. AVS-CABAC算法原理简介2

    CABAC是H264的一种熵编码方案,相比如H264的另外一种熵编码方案CAVLC而言,在可接受的视频质量(30dB到38dB之间)内变化时,前者可节约平均9%到14%的码流.CABAC有以下几个特性 ...

  2. 支持向量机算法原理简介

    1,支持向量机概念简介 分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向量机本身便是一种监督式学习的方法,它广泛的应用于统计分类以及回归分析中 ...

  3. 逻辑回归算法原理简介

    1,逻辑回归简介 逻辑回归完成分类任务,是经典的二分类算法(也可以解决多分类问题),机器学习算法一般选择先逻辑回归(优先选择)再用复杂的,逻辑回归的决策边界可以是非线性的(高阶).可以通过参数对结果进 ...

  4. PBFT 算法原理简介

    什么是 PBFT? Practical Byzantine Fault Tolerance ,实用拜占庭容错. 什么是 BFT? Byzantine Fault Tolerance ,拜占庭将军问题. ...

  5. RSA算法原理简介,非对称加密,公开密钥算法(易懂篇)

    RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解.我们经 ...

  6. 深度学习算法 | LSTM算法原理简介及Tutorial

    北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程  重温深度学习 阅读全文 > 正文共4880个字 17张图,预计阅读时间:13分钟. 1.背景 LSTM(Long Short ...

  7. GNSS/INS松组合算法原理简介

    文章目录 卡尔曼滤波简介 概念 内容 方法 卡尔曼滤波器的初始化 系统状态 微分方程 离散化 GNSS 位置观测方程 状态转移矩阵 系统噪声方差阵 系统噪声驱动阵 本篇博文的矩阵展开都是根据状态向量为 ...

  8. 线性回归算法原理简介

    1,线性回归概念 回归和分类的区别:简单地说,回归就是通过数据预测出一个目标值(实际值),分类就是通过数据预测出一个类别(二分类,多分类). 比如:银行贷款实例 (1)数据:每个个人(样本)的工资和年 ...

  9. 银行家算法原理及代码实现

    银行家算法原理 简介 银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法.它 ...

最新文章

  1. 你的4nm安卓旗舰芯片来了!骁龙8 Gen 1:支持8K HDR,功耗降30%,雷军:小米12首发...
  2. 漫谈设计模式--3分钟理解桥接模式:笔和画的关系
  3. 对我影响最大的三个老师
  4. .pro.user文件
  5. as3 与 java_每天学一点Flash(48) As3.0 与 java 通信(1)
  6. PL/SQL编程的简单学习
  7. import pyart时报错 ValueError: numpy.ndarray has the wrong size, try recompiling.
  8. mac XCode 快捷键
  9. Redis之各版本特性
  10. HouseMD v0.2.1 发布,比Btrace更实用运行时诊断工具
  11. 【Java后台开发规范】--- Null值处理
  12. 淘宝客APP双端原生源码 开源原生态可运营可二次开发+含全套开发文档
  13. 360急速浏览器有道词典屏幕取词问题
  14. Java计算机毕业设计电竞教育公司源码+系统+数据库+lw文档
  15. mouse_event() 控制鼠标操作
  16. springBoot 修行之路1
  17. imagebutton图片缩放
  18. 最新Spring Boot实战项目(权限后台管理系统)详解
  19. 广义表的长度,深度及复制广义表的算法
  20. Layui 数据表格合计

热门文章

  1. 你的电脑卡吗?90%的人靠这5招给电脑提速!
  2. 虚拟机安装win2000(附key)
  3. 【制作电子杂志软件】云展网教程 | 管理、修改电子杂志设置
  4. 负数转无符号运算 (-1对256取模)
  5. 如何提高自己的英语口语?来自笔友的分析,值得一看
  6. [渝粤教育] 广东-国家-开放大学 21秋期末考试应急管理10413k2
  7. 算法设计与分析: 5-14 独立钻石跳棋问题
  8. 计算机实战项目 毕业设计 课程设计之 论文+辩论PPT+源码等]精品微信小程序springboot居家养老服务+后台管理前后分离
  9. 惠普暗夜精灵2怎么打开后盖_惠普光影精灵3后盖拆解图 | 手游网游页游攻略大全...
  10. 智慧安监系统为城市安全监管提供保障