CABAC与CAVLC有什么区别?

待完善

7.3.12 用 CAVLC 方式编码的残差数据的语义 coeff_token   指明了非零系数的个数,拖尾系数的个数。

trailing_ones_sign_flag 拖尾系数的符号 - 如果trailing_ones_sign_flag = 0, 相应的拖尾系数是+1。 - 否则,trailing_ones_sign_flag =1,相应的拖尾系数是-1。 -  level_prefix and level_suffix 非零系数值的前和后。

total_zeros  系数中 0 的总个数。 run_before 在非零系数之前连续零的个数。

7.3.13 用 CABAC 方式编码的残差数据的语义 coded_block_flag 指出当前块是否包含非零系数。 如果 coded_block_flag= 0, 这个块不包含非零系数。 如果 coded_block_flag = 1,这个块包含非零系数。

significant_coeff_flag[ i ] 指出在位置为 i 处的变换系数是否为零。 如果 significant_coeff_flag[ i ] = 0, 在位置为 i 处的变换系数为零。 否则,significant_coeff_flag[ i ] =1, 在位置为 i 处的变换系数不为零。

last_significant_coeff_flag[ i ] 表示当前位置 i 处的变换系数是否为块中后一个非零系数。 如果 last_significant_coeff_flag[ i ] =1, 这个块中随后的系数都为零。 否则, 这个块中随后的系数中还有其它的非零系数.

coeff_abs_level_minus1[ i ]系数的绝对值减 1。 coeff_sign_flag[ i ] 系数的符号位。 - coeff_sign_flag = 0, 正数。 - coeff_sign_flag=1, 负数。

时间: 2024-10-13 15:17:10

CABAC与CAVLC有什么区别?的相关文章

H.264解码过程剖析-4

x264开源工程实现H.264的视频编码,但没有提供对应的解码器.ffmpeg开源多媒体编解码集合汇集了市面上几乎所有媒体格式的编解码的源代码.其中的H264.c就是一个能正常解码x264编码码流的独立的源文件,其使用步骤也与上述的编码或解码CODEC应用案例基本相同.这一节通过自顶向下的方式,讲述H264.c如何实现H.264视频解码过程. H264.c源文件有几千行,代码量庞大,很不便于浏览.分析和移植.同时该文件还依赖其他源文件,组织结构较复杂,实现平台由于不是基于Windows的VC++

C语言的面向对象设计 —— 对 X264/FFMPEG 架构探讨

1.为什么要用C语言 直到今天,C语言虽然不是使用人数最多的语言了,但是C没有老去,在很多的核心系统代码里,依然跑的是设计精美的C,绝大多数的嵌入式开发核心库软件是C开发的,多数标准算法是基于标准C设计的.C语言以其简洁,灵活和性能优越,依然在核心软件设计师心目中有不可动摇的地位. 2.为什么要面向对象 面向过程往往被认为是一种严格的自顶向下,逐步细分的设计方式,按部就班的大规模设计分解成小的具体实现.而面向对象是基于对象模型对问题域进行描述,更加接近于人们对客观世界的认识过程.在一般的软件工程

视频通讯 视频技术H.264与AVS的比较

视频编码技术在过去几年最重要的发展之一是由ITU和ISO/IEC的联合视频小组 (JVT)开发了H.264/MPEG-4 AVC[8]标准.在发展过程中,业界为这种新标准取了许多不同的名称.ITU在1997年开始利用重要的新编码工具处理H.26L(长期),结果令人鼓舞,于是ISO决定联手ITU组建JVT并采用一个通用的标准.因此,大家有时会听到有人将这项标准称为JVT,尽管它并非正式名称.ITU在2003年5月批准了新的H.264标准.ISO在2003年10 月以MPEG-4 Part 10.高

算术编码的原理与分析

转自:http://kulasuki115.blogcn.com/diary,201492702.shtml 前言 人类已进入信息时代,信息时代的重要特征是信息的数字化,人们越来越依靠计算机获取和利用信息,这就需要对信息的表示.存储.传输和处理等关键技术进行研究.我们要把数值.文字.语言.声音.图像.图形.视频和动画等多种媒体转化成计算机所能处理的数字信息,但数字化后的视频和音频等媒体信息的数据量是非常大的.因此,数字化信息的数据量很大,这样大的数据量,无疑给存储器的存储容量.通信干线的信道传输

H.264官方软件JM源代码简单分析-解码器ldecod

前一阵子看了一下H.264官方参考软件JM的源代码,在这里总结一下它的结构.JM编解码H.264的速度相对于FFmpeg来说是非常慢的,但是它的代码写得清晰易懂,更适合做学术方面的研究.JM包含了视频解码器ldecod和视频编码器lencod.本文记录视频解码器ldecod的结构. 函数调用关系图 JM中的H.264视频解码器ldecod的函数调用关系图如下所示.   单击查看更清晰的大图 下面解释一下图中关键标记的含义. 函数背景色函数在图中以方框的形式表现出来.不同的背景色标志了该函数不同的

FFmpeg的H.264解码器源代码简单分析:概述

本文简单记录FFmpeg中libavcodec的H.264解码器(H.264 Decoder)的源代码.这个H.264解码器十分重要,可以说FFmpeg项目今天可以几乎"垄断"视音频编解码技术,很大一部分贡献就来自于这个H.264解码器.这个H.264解码器一方面功能强大,性能稳定:另一方面源代码也比较复杂,难以深入研究.本文打算梳理一下这个H.264解码器的源代码结构,以方便以后深入学习H.264使用.PS:这部分代码挺复杂的,还有不少地方还比较模糊,还需要慢慢学习...... 函数

x264源代码简单分析:概述

最近正在研究H.264和HEVC的编码方式,因此分析了一下最常见的H.264编码器--x264的源代码.本文简单梳理一下它的结构.X264的源代码量比较大而且涉及到很多的算法,目前还有很多不懂的地方,因此也不能保证分析的完全正确.目前打算先把已经理解的部分整理出来以作备忘. 函数调用关系图 X264的函数调用关系图如下所示. 单击查看更清晰的大图 下面解释一下图中关键标记的含义. 函数背景色 函数在图中以方框的形式表现出来.不同的背景色标志了该函数不同的作用: 白色背景的函数:不加区分的普通内部

码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别

GOP/ 码流 /码率 / 比特率 / 帧速率 / 分辨率 GOP(Group of picture) 关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧.增加关键帧个数可改善质量,但是同时增加带宽和网络负载. 需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了.另一方面,在一个GOP中,P.B帧是由I帧预测得到的,当I帧的图像质量比较差时,

H.264学习笔记5——熵编码之CAVLC

H.264中,4x4的像素块经过变换和量化之后,低频信号集中在左上角,大量高频信号集中在右下角.左边的低频信号相对数值较大,而右下角的大量高频信号都被量化成0.1和-1:变换量化后的残差信息有一定的统计特性和规律. CAVLC(Context-based Adaptive Variable-Length Code):基于上下文的可变长度编码,是H.264中进行4x4像素块进行熵编码的方法,基本(baseline)档次中只能使用CAVLC,只有主要档次和扩展档次才能使用CABAC(见笔记:熵编码之