基于上下文自适应的可变长编码(CAVLC)

H264学习笔记(3):CAVLC基于上下文自适应的可变长编码 熵编码的基本原理:熵编码是无损压缩编码方法,它生成的马路可以经解码无失真地恢复出原数据,熵编码是简历在随机过程的统计基础上。        自信息量:设X可发出的消息符号集合为A={ai|i=1,2,...,m},并设X发出符号ai的概率为p(ai),则ai出现的自信息量为I(ai)=-log p(ai)。通常取2为底,这是信息量单位为比特。        无记忆信息源:如果各符号出现是独立的 阅读详情




1、TotalCoeffs(非零系数的数目)、TrailingOnes(拖尾系数的数目)


非零系数的数目范围从0到16,拖尾系数数目的范围从0到3,如果±1的个数大于3,只有最后3个被视为拖尾系数,其余被视为普通的非零系数。对非零系数数目和拖尾系数数目的编码通过查表得到,共有4个变长表格和1个定长表格可供选择。

定长表格的码字是6bit,高4bit表示非零系数个数(TotalCoeffs),最低两位表示拖尾系数的个数(TrailingOnes)。

表格的选择根据变量NC(Number Current,当前快值)的值来选择,除了色度的直流系数外,其他系数类型的NC值是根据当前块左边 4*4 块的非零系数数目(NA)和当前块上面 4*4 块的非零系数数目(NB)求得的。当输入的系数是色度的直流系数时,NC = -1。求NC的过程为:X 表示与当前块同属于一个片并可用。

非零系数数目和拖尾系数数目的编码表格为:







CAVLC编码过程:


(1)4x4块数据:


(2)部分系数初始化:

数据重排序:0 0 5 32 -1 0 0 01 .......

非零系数的数目(TotalCoeffs)= 5          (5,3,2,-1,1)

拖尾系数的数目(TrailingOnes)= 2        (1,-1)

非零系数前的数目(Total_zeros)= 5        (3+2=5)

变量系数NC = 3


(3)编码过程:






CAVLC(基于上下文自适应的可变长编码) 最后一个非零系数前0的个数如下面红色表示,total_zeros为330 01 -1 -10通过Table9.7通过total_zeros和TotalCoeffs=5,查表得编码结果为111.当前得编码码流为通过Table9-7可知,最后一个非零系数前0的数目为3 ,1 1110 1100。 阅读详情

相关推荐

基于上下文自适应可变长熵编码 CAVLC 原理详细分析

基于上下文可自适应变长熵编码 CAVLC 原理详细分析

世界那么大,我想去看看~【随心更新,看世界去了😄】 1601

H264熵编码之CAVLC

一、CACLV的目的:用于残差数据的熵编码 二、CACLV的相关变量及含义: 1、TotalCoffes: 代表ZigZag扫描后序列中非0值的个数; 2、TrailingOnes: 又称做拖尾系数,代表ZigZag扫描后序列中+1,和-1的总个数,如果超过3,则为3 3、TotalZeros: 最后一个非零系数之前零的数目; 4、NC:用来决策coeff如何编码的变量;通过NC查表得到编码模型 NC的取值: 待编码数据为 色度分量的直流系数时 NC= -1 NA:表示左邻的宏块的NC值 NB:表示上邻的宏

weixin_38189964的博客 1100

三维模型转变为点云模型的好工具——CloudCompare使用小记

普通三维模型能够直观地展示物体的三维全貌,但是在一些场合需要将三维模型变为相应的点云模型进行展示,而使用激光雷达等传感器采集到的点云信息往往只能反应模型表面的情况,或是使用PCL库中的可执行文件进行转换,这两种操作较为麻烦。笔者最近就遇到了这样一个情况,找到了一个名叫CloudCompare(CC)的软件,能够支持将多种文件格式的三维模型转变为点云模型。以下将本人在使用过程中所使用到的一些操作简记下来供朋友们和将来的自己参考。 一、下载 CloudCompare是一款免费软件,其可以在CloudComp

hdlwyt的博客 2万+

codefrcces 520c 思维

C. DNA Alignmenttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya became interested in bioinformatics. He's going to write an article about si...

yjt9299的博客 1485

非线性动力学_用MatCont分析非线性动力学方程组(一)

写在前面:笔者打算写两到三篇系列文章介绍MatCont,此为第一篇《用MatCont分析非线性动力学方程组(一)》。MatCont是一个基于Matlab而开发的免费工具包,专门用来做非线性动力学模型分叉、向量场、周期性等分析,符号(连续性)运算和数值(离散性)运算均适用。该工具的开发及研究项目由比利时Ghent大学的Willy Govaerts教授、荷兰Utrecht大学的Yuri Kuznets...

weixin_39700215的博客 2765

Unable to negotiate with XXXX port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

打开ssh_config此文件,滑动到最下面,新增自己git主机地址(这里我直接默认*)执行命令 git clone git@xxxxxxxxxxxxx.git。代码仓库已经添加了ssh公钥之后,克隆代码到本地时就报了这个问题。首先是找到git安装目录(根据自己安装时选项,找到这个目录)再进入ssh目录,找到 ssh_config 配置文件。配置完成后,保存配置文件后再次去clone代码。直接复制下面这一段到文件中最底部位置即可。然后进入 etc目录,找到ssh目录。终于可以克隆下来了。

萌兔兔MMQ!! 3353

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-C. Plasticine zebra

C. Plasticine zebra http://codeforces.com/contest/1025/problem/C 题意:给你一串字符,你可以从某一处把字符串断开,并且翻转得到的两串字符串,在把他们拼接在一起,你可以进行多次这种操作,问你可以得到的最长的字符交替的序列的长度。 思路:一开始没想到怎么做,我们可以用一串字符来模拟一下,我们用数字给字符标号,我们有这样一个串(...

Ma_tx 386

软件可靠性测试与评价

本文系统介绍了软件可靠性工程的核心内容,包括可靠性概念、模型分类、测试方法和评价体系。重点解析了可靠性测试的三大步骤:定义运行剖面、设计测试用例和实施测试收集数据,并以智能安防系统为例说明具体应用。可靠性评价需结合业务场景,通过量化指标(MTBF、失效率等)和模型预测持续优化系统。文章强调可靠性需贯穿软件全生命周期,通过闭环反馈实现持续改进,为关键系统提供质量保障。

moton2017的博客 2048

CAVLC算法解析

writeSyntaxElement_NumCoeffTrailingOnes里有lentab[3][4][17] codtab[3][4][17] 编码非零系数数目 (NumCoeff)和拖尾系数数目(TrailingOnes) writeSyntaxElement_NumCoeffTrailingOnesChromaDC里有lentab[4][5] codtab[4][5] 与上面的函数...

weixin_33845477的博客 281

让 VK31 的条件维护树长出你想要的分支:用 ABAP SE43 扩展定价 Area Menu COND_AV

摘要:本文深入解析了SAP系统中价格条件维护(VK31/VK32)的菜单结构优化方法。通过分析Area Menu(COND_AV)的三层架构(菜单对象、节点、报表),提出将业务语言融入菜单设计的解决方案。重点介绍了使用SE43事务码扩展标准菜单的具体步骤:创建Enhancement ID、新增业务节点、挂接定价报表,并强调需同步验证条件表映射关系。文章还提供了常见问题排查思路,建议从岗位视角重构菜单结构,最终实现高效、精准且符合业务语义的价格维护入口体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 87

dToF直方图之美_deadtime死区时间

IMX459的死区时间可以在6ns,这个时间是什么级别,车载激光雷达激光器的光脉宽一般都在4ns以上,也就是这个时间贴近去SPAD的死区时间,这就导致了pile up会非常弱,不会有太多数量的光子计数堆积,加上某些SPAD设计,对TDC有一些更深入的考量,所以不需要去校正pile up算法。Sensor层面决定了pile up的复杂程度,如果一个dToF的SPAD一致性非常好,那么pile up校正可以简单到极致,也就是一句代码的事,比如IMX611,优秀到不需要后端去考虑校正pile up。

致力于lidar应用开发 2147

基于上下文的自适应变长编码CAVLC原理与流程

CAVLC -CAVLC概念 AVLC的全称是Context-Adaptive Varialbe-Length Coding,即基于上下文的自适应变长编码。CAVLC的本质是变长编码,它的特性主要体现在自适应能力上,CAVLC可以根据已编码句法元素的情况动态的选择编码中使用的码表,并且随时更新拖尾系数后缀的长度,从而获得极高的压缩比。H.264标准中使用CAVLC对4×4模块的亮度和色度残差数据

a514223963的专栏 5096

SAP项目中 Waterfall vs Agile 的深度对比分析背景:方法论的演进SAP项目实施方法论经历了显著的代际更替。早期以 ASAP(Accelerated SAP) 为代表,采用经典瀑

本文对比分析了SAP项目实施中瀑布模型(ASAP)与敏捷方法(SAP Activate)的核心差异。瀑布模型采用线性流程,需求固定但变更成本高;敏捷方法则通过迭代开发实现动态调整,强调最佳实践和用户持续参与。文章指出,SAP系统的复杂性使纯粹敏捷难以实施,需在标准化与定制化间取得平衡。最终建议根据项目特性选择方法论:稳定需求适用瀑布模型,变化频繁则推荐敏捷,而SAP Activate本质上是两者的结构化融合,代表未来趋势。关键在于匹配项目实际需求,而非盲目追随方法论潮流。

金牌架构师 344

H264/AVC-基于上下文自适应可变长编码CAVLC原理以及代码实现

1. 基本原理 CAVLC属于熵编码。熵编码是一种无损压缩编码方法,它生成的码流可以经解码无失真地恢复出原数据。熵编码是建立在随机过程的统计特性基础上的,因此它主要为了降低数据的统计冗余。 在 H.264 的 CAVLC(基于上下文自适应的可变长编码)相比于huffman编码,它可以通过根据已编码句法元素的情况自适应调整当前编码中使用的码表,从而取得了极高的压缩比。 下面举例说明CAVLC的基于上下文特性。 下图是色度分量DC系数解析要用到的码表,其中tzVlcIndex指的是非零DC系数个数(色度DC系数

qq_42139383的博客 3266

从 Integrated Configuration 到 Integration Flow,SAP PI/PO 老配置迁移的一次温和重构

很多还在运行 SAP PI/PO 的系统,Integration Directory 里都积累了不少 Integrated Configuration,也就是日常项目里常说的 ICO。它们可能稳定运行了多年,负责把采购订单、物料主数据、客户主数据、发票、发货通知从一个系统送到另一个系统。问题在于,ICO 这种对象很实用,却不够直观。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 95

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

CAVLC基于上下文自适应的可变长编码

熵编码的基本原理:熵编码是无损压缩编码方法,它生成的马路可以经解码无失真地恢复出原数据,熵编码是简历在随机过程的统计基础上。        自信息量:设X可发出的消息符号集合为A={ai|i=1,2,...,m},并设X发出符号ai的概率为p(ai),则ai出现的自信息量为I(ai)=-log p(ai)。通常取2为底,这是信息量单位为比特。        无记忆信息源:如果各符号出现

华的专栏 935

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CAVLC上下文自适应可变长编码

前言 量化后的系数经过Zig-Zag重新排序(Reorder)后,通过熵编码(Entropy encoding)进一步压缩。H264熵编码有两种模式,一种是CABAC,另一种便是本文讲解的CAVLC。 过程 术语 假设当前有4x4矩阵 [00−10520030001000] \begin{bmatrix} 0 &0 &-1 &am

workspace 1455

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

CAVLC编码学习笔记

参考资料 https://blog.youkuaiyun.com/a514223963/article/details/7898928 https://www.cnblogs.com/TaigaCon/p/5255018.html 定义 英文全名 Context-based Adaptive Variable Length Coding 被用于亮度和色度残差数据编码; 编码方式...

shima6172307的博客 4213

CAVLC编码过程详解——Sunrise

谨以此文献给QQ群“H.264乐园”和群里那些无私奉献的同行朋友! 也希望能对刚进入这个领域的朋友有所帮助,欢迎做过CAVLC的同行能批评指正! 编码过程: 假设有一个4*4数据块 { 0, 3, -1, 0, 0, -1, 1, 0, 1, 0,

zhou-jimmy 816

H.264熵编码分析

转:H.264熵编码分析 利用信源的随机过程统计特性进行码率压缩的编码方式称为熵编码。它是把所有的语法(句法)元素(包括控制流数据,变换量化残差系数和运动矢量数据)以一定的编码形式映射成二进制比特流。熵编码是无损压缩编码方法,它生成的码流可以经解码无失真地恢复出数据。在信息论中表示一个数据符号的理论上最佳的比特数通常是一个分数而不是整数,这个比特数用log2(1/P)表示,其中P是每个数

zp33 2341

H264 CAVLC学习笔记

H.264 CAVLC学习笔记编码过程:1) 初始值设定:2) 编码coeff_token:3) 编码所有TrailingOnes的符号:4) 编码除了拖尾系数以外非零系数幅值Levels:(1)将有符号的Level转换成无符号的levelCode;(2)计算level_prefix:(3)计算level_suffix:(4)根据suffixLength的值来确定后缀的长度;(5)...

lichtenlade的博客 1270

openh264--熵编码

依次介绍CAVLC, CAVLC g_kuiVlcCoeffToken是CoeffToken,TotalCoff,TrailingOnes的映射关系,是个标准表, 例:If(TotalCoeffs==5&&TrailingOnes==3&&0<=NC<2),可得 coeff_token=0000100; ,如下图高...

evsqiezi 526

cabac cavlc

运算量与收益比较:从可变长编码方案发展而来的基于上下文的自适应可变长编码CAVLC从算术编码发展而来的基于上下文的自适应二进制算术编码CABAC与CAVLC相比,CABAC可以节省约7%的码流,但增加了10%的计算时间 

如果路变的难走起来,那它正消失于脚下 1747

CAVLC熵编码

http://bbs.chinavideo.org/viewthread.php?tid=1033&highlight=cavlc 谨以此文献给QQ群“H.264乐园”和群里那些无私奉献的同行朋友!  也希望能对刚进入这个领域的朋友有所帮助,欢迎做过CAVLC的同行能批评指正!  编码过程:  假设有一个4*4数据块  {  0, 3, -1, 0,  0, -1, 1, 0,

feixiaku的专栏 835

【原】CAVLC的个人理解

4x4数据块经过预测、变换、量化后,非零系数主要集中在低频部分,而高频部分大部分是零。数据经过zig-zag扫描后,从左->右(低频->高频),DC系数附近的系数非常大,而高频的非零系数大部分是+1,-1(why? 应该是通过数据统计得到的。理论上推导暂时不知。) 因此可以得出量化后4x4块的特性有几个: 1)、非零系数一般较少,大部分是零,非零集中在DC附近。 2)、高频非零大...

weixin_30765577的博客 86
上一篇: 类和继承总结
下一篇: Table 9-5 -- coeff_token mapping to TotalCoeff(coeff_token) and TrailingOnes(coeff_token)
tkp2014
博客等级 码龄12年 137粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值