熵编码的基本原理:熵编码是无损压缩编码方法,它生成的马路可以经解码无失真地恢复出原数据,熵编码是简历在随机过程的统计基础上。

自信息量:设X可发出的消息符号集合为A={ai|i=1,2,...,m},并设X发出符号ai的概率为p(ai),则ai出现的自信息量为I(ai)=-log p(ai)。通常取2为底,这是信息量单位为比特。

无记忆信息源:如果各符号出现是独立的,那么X发出衣服好序列的概率等于各符号的概率之积,因而该序列出现的信息量等于相机出现的各符号的自信息量之和,这类信源称为无记忆信源。
       平均信息量:对信息员的各符号的自信息量取统计个均即为信源的平均信息量。

信息源的熵:平均信息量也叫信源的熵,符号是比特,通常也称为X的一阶熵,可以理解为信息员X发任意一个符号的平均信息量。由此可知,一阶熵是无记忆信息源,是在无失真编码时所需数码率的下界。
       结论:熵的大小与信源的概率模型有着密切的关系,各个符号出现的概率不同,信源的熵也不同,当信源中各时间是等概率分布的,熵具有极大值,信源的熵与其可能达到的最大值之间的差值反应了该信源的冗余度,信源冗余度越小,即每个符号锁携带的信息量越大,那么传送相同的信息量所需要的序列长度越短,符号位越少,因此数据压缩的一个基本途径是去除信源符号之间的相关性,尽可能地使序列成为无记忆的,即钱已付好的出现不影响以后任何一个符号出现的概率。

CAVLC的基本原理:在H264的CAVLC中,通过根据已编码句法元素的情况动态调整编码中使用的码表,取得了极高的压缩比。CAVLC用于亮度和色度残差数据的编码,残差经过变换量化后的数据表现出如下特性:4x4块数据经过预测,变换,量化后,非零系数主要集中在低频部分,而高频系数的大部分是,量化后的数据经过zig-zag扫描,直流系数附近的非零系数值较大,而高频位置上的非零系数值大部分是+1和-1,相邻的4x4块的非零系数的数目是相关的,CAVLC充分利用残差经过证书变换,量化后的数据的特性进行压缩,进一步较少数据中的冗余信息。

CAVLC的上下文模型:利用相邻已编码符号所提供的相关性,为所需要编码的符号选择合适的上下文模型。利用合适的上下文模型,就可以大大降低符号间的冗余度。CAVLC中上下文模型的选择主要体现在两个方面:1)非零系数编码所需表格的选择。2)拖尾系数后缀长度的更新

CAVLC编码的过程:
        1)编码非零系数的数目以及拖尾系数的数目
        2)编码每个拖尾系数的符号
        3)编码除了拖尾系数之外的非零系数的幅值
        4)编码最后一个非零系数前零的数目
        5)编码每个非零系数前零的个数

编码非零系数的数目以及图为系数的数目:非零系数数目范围从0到16,拖尾系数数目范围从0到3.如果±1的个数大于三个,只有随后的三个被视为拖尾系数,其余的被视为普通的非零系数。对非零系数数目和拖尾系数数目的编码是通过查表方式,共有4个变长表格和一个顶场表格可供选择。其中定长表格的码字是6个比特长,高4位表示非零系数的个数,最低两位表示拖尾系数的个数。表格的选择是根据变量当前块值来选择的,在求变量当前块值的过程中,体现了基于上下文的思想。除了色度的直流系数外,其他系数类型的当前块值根据当前块左边4x4块的非零系数数目和当前块上面4x4块的非零系数数目求得的。当输入的系数是色度的直流系数,当前块值=-1。

编码每个拖尾系数的符号:对于每个拖尾系数±1秩序指明其符号,其符号用一个比特表示0正1负。编码的顺序是按照反向扫描的顺序从高频数据开始。

编码除了拖尾系数之外的非零系数的幅值:非零系数的幅值的组成分为两个部分,前缀和后缀。levelSuffixSize和suffixLength是编码过程中需要使用的两个变量。后缀是长度为levelSuffixLength位的服务号证书。通常情况下变量levelSuffixSize的值等于变量suffixLength的值。变量suffixLength是基于上下文模式自适应更新的,suffixLength的更新与当前的suffixLength的值以及已经解码好的非零系数值level有关。

suffixLength数值的初始化以及更新过程:1)普通情况下suffixLength初始化为0,但是当块中有多余10个非零系数并且其中拖尾系数的数目少于3个,suffixLength初始化为1。2)编码在最高频率位置上的非零系数。3)如果当前已经解码好的非零系数值大于余弦定义好的阈值,suffixLength加1.

编码最后一个非零系数前零的数目:TotalZeros值得是在最后一个非零系数前零的数目,此非零系数值得是按照正想扫描的最后一个非零系数。例如:0 0 5 0 3 0 0 0 1 0 0 -1 0 0 0 0 ,最后一个非零系数是-1,TotalZeros的值等于2+3+1+2=8.因为非零系数数目是已知的,这就决定了TotalZeros可能的最大值。

编码每个非零系数前零的个数:每个非零系数前零的个数是按照范旭来进行编码的,从最高频的非零系数开始。在CAVLC中,对每个非零系数前零的个数的编码是依赖于ZerosLeft的值,ZerosLeft表示当前非零系数坐标所有0的个数,ZerosLeft的初始值等于TotalZeros,在每个非零系数前零的个数值编码后进行更新,用这种编码方法,有助于进一步压缩编码的比特数,例如:如果当前ZerosLeft值等于1就是只剩下一个零没有编码,下一个非零系数前的数目只可能是0或者1,编码只需要1个比特。

CAVLC基于上下文自适应的可变长编码相关推荐

  1. Context-Based Access Control (CBAC) 基于上下文的访问控制 理论知识

    CBAC即基于上下文的访问控制协议,通过检查防火墙的流量来发现管理TCP和UDP的会话状态信息.这些状态信息被用来在防火墙访问列表创建临时通道.通过在流量一个方向上配置ip inspect列表,放行其 ...

  2. xx是一个类型 这在给定的上下文_基于上下文的派发:挂起临时变量内存

    最近做一些蒙卡相关的东西,然后遇到有一个可能很多人都会遇到的问题: 把所有的步骤都手写成原地(in-place)操作由于需要自己来保管各种中间变量会很麻烦(增加心智负担),但是用比较正常的方式去写又由 ...

  3. WWW 2020 | 信息检索中基于上下文的文本词项权重生成

    ©PaperWeekly 原创 · 作者|金金 单位|阿里巴巴研究实习生 研究方向|推荐系统 本文由卡耐基梅隆大学发表于 WWW 2020,介绍了基于上下文的文本词项权重生成方法 HDCT.原有的搜索 ...

  4. 基于上下文的rpn_构建事物-产品评论视频中基于上下文的情感分析

    基于上下文的rpn The word "Social" has taken a whole new meaning in today's digital era. Simply g ...

  5. mlse均衡器matlab,基于LMS自适应均衡器matlab仿真.doc

    基于LMS自适应均衡器matlab仿真.doc 毕 业 设 计 (2014届) 题 目 一种基于OpenCV的摄像机标定方法 学 院 物理电气信息学院 专 业 电子信息工程 年 级 2010 学生学号 ...

  6. 自适应均衡器 matlab程序,基于lms自适应均衡器matlab仿真

    基于lms自适应均衡器matlab仿真 毕 业 设 计 (2014 届) 题 目 一种基于 OpenCV 的摄像机标定方 法学 院 物理电气信息学院 专 业 电子信息工程 年 级 2010 学生学号 ...

  7. (第一组_GNS3)基于上下文的访问控制

    E:基于上下文的访问控制 拓扑图 IP地址规划 设备名 端口 IP地址 子网掩码 网关 R1 S0/1/0 10.29.3.2 24 F0/1 10.29.2.1 24 R2 S0/1/0 10.29 ...

  8. 基于上下文的访问控制与基于区域策略的防火墙

    基于上下文的访问控制与基于区域策略的防火墙 拓扑图 地址表 Device Interface IP address R1 F 0/0 192.168.22.1 S 0/0/0 10.1.22.1 R2 ...

  9. 基于局部自适应色差阈值的彩色图像边缘检测_爱学术

    基于局部自适应色差阈值的彩色图像边缘检测_爱学术 [摘要]为了使彩色图像的边缘检测器更符合人眼对图像信息的分辨情况,防止视觉不敏感区域的边缘的过检测问题,该文提出一种自适应色差阈值的估计方法并与不同的 ...

  10. 基于上下文的业务流建模法(二)

    一.背景 上一篇文章说到了我提出了一种新的建模方法,并对建模方法的大概内容做了阐述,本次我将继续对这个建模方法做进一步的说明,并提供一个小小的案例来熟悉一下建模套路.下一篇文章将通过其他案例来展示这种 ...

最新文章

  1. shell 删除了hdfs 文件_知识干货 | 大数据全解 HDFS分布式文件系统
  2. linux tcp socket 请求队列大小参数 backlog 简介
  3. java 构造方法
  4. deepin/win10双系统deepin下其他盘带锁解决
  5. Visual C# 2008+SQL Server 2005 数据库与网络开发--9.1.1 SQL Server 2005中的XML功能
  6. Python学习笔记(二)——HelloWorld
  7. 6/100. Invert Binary Tree
  8. python单例模式继承_Python四种实现单例模式的方法
  9. 从oracle到mysql,主从到分库,一个普通项目数据库架构的变迁
  10. matlab中矩阵运算lu,matlab中矩阵lu分解
  11. win10系统与时间服务器同步超时,如何解决Win10系统时间无法同步的问题?
  12. opencv-图片识别参考代码
  13. 常见的加密方式之python实现
  14. 十八. 项目采购管理
  15. mysql架构学习——数据库结构优化笔记
  16. 手机访问WEB项目图片404
  17. 红米5无线网连接上但是没有网络连接服务器,红米路由器wifi已连接但无法访问互联网怎么办 | 192路由网...
  18. win10 metro app(应用商店中的APP)如何走代理?
  19. vue基础指令的学习
  20. mysql temporary table select_MYSQL中的CREATE TEMPORARY TABLE | 学步园

热门文章

  1. Hyperledger Fabric 实战(八):couchdb 丰富查询 selector 语法
  2. Apache Qpid Proton 0.16.0,轻量通信库
  3. AJAX初始化combox 并取值
  4. Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
  5. linux系统之IP、TCP封包格式
  6. 数据访问组件SqlHelper
  7. springboot 项目里使用spring.xml文件
  8. idea2020不显示光标所在位置的方法名
  9. Mongodb 学习
  10. Spark交互式工具spark-shell