佛山建站软件广东三网合一网站建设报价
web/
2025/10/4 19:36:35/
文章来源:
佛山建站软件,广东三网合一网站建设报价,wordpress 文章透明,网站怎么做公司0 引言 近年来#xff0c;随着信息技术飞速发展和互联网的日益普及#xff0c;尤其是以视频为信息主要来源的多媒体领域越来越受到人们的关注。H#xff0e;264是ITU-T的视频编码专家组(VCEG)和ISO#xff0f;IEC的活动图像编码专家组(MPEG)的联合视频组(Joint Video Te…0 引言 近年来随着信息技术飞速发展和互联网的日益普及尤其是以视频为信息主要来源的多媒体领域越来越受到人们的关注。H264是ITU-T的视频编码专家组(VCEG)和ISOIEC的活动图像编码专家组(MPEG)的联合视频组(Joint Video TearnJVT)开发的一个新的数字视频编码标准它既是ITU-T的H264又是ISOIEC的MPEG-4的一部分。H264和以前的标准一样也是DPCM加变换编码的混合编码模式。H264标准可分为三档基本档次(其简单版本应用面广)主要档次(采用了多项提高图像质量和增加压缩比的技术措施可用于SDTV、HDTV和DVD等)扩展档次(可用于各种网络的视频流传输)。 H264AVC的编解码框架的基本结构与早期的编码标准(H263、MPEG4等)相似都是由运动估计、变换、量化、熵编码、环路去块效应滤波器等功能单元组成的。H264视频编码框架的主要变化包括引入了环内去块效应滤波器去块效应处理后的宏块被保存在内存中用于对后续宏块的预侧采用了多参考帧运动估计需要在内存中保留多个参考视频帧引入了帧内预测机制可以通过同一帧内的宏块进行预测采用了新的整型变换方式取代了以前的离散余弦变换(DCT)H264与以前视频标准在运动估计的模式上也有了较大的变化H264支持7种模式的可变块运动估计。此外在熵编码中还引入了上下文自适应的变长编码(CAVLC)和二进制算术编码(CABAC)。 在熵编码方面H264使用了CABAC和CAVLC两种不同的编码方式。CABAC熵编码是一种基于区间划分的算术编码方式。这种编码方式的效率很高接近信息熵值但算法相对复杂编解码速度较慢。CAVLC是一种可变长编码它根据已编码语法元素的情况动态调整编码中使用的码表在编码过程中有些语法元素是组合编码的当对这些元素进行查找时就会耗费很长的时间。因此对CAVLC的优化显得格外重要。
1 原码表查找算法 原码表的存储结构为二维表结构。存储的内容为码字二维坐标分别代表解码后的两个语法元素。对于二维表结构。若通过坐标查找内容是很容易的而通过内容查找坐标就需要对整个表进行遍历。JM中的码表查找算法就是通过遍历整个码表实现的步骤如下 (1)取码表的中的一个码字 (2)根据码字长度从码流中取出相应长度的bit (3)比较此码字和bit串若相同则查找成功否则若码表中还有码字回步骤(1)否则查找失败。
2 算法的优化分析21 基于前缀零分组子表搜索算法 基于上下文自适应的变长编码的解码算法需要不断的读取码流判断直到在码表中找到该码字如此反复直至解码整个块。由此可见该过程的时间空间复杂度都是相当高的。由于变长码为霍夫曼前缀码所以可以根据码表的特性按照码字长度将原来的一个码表按照码字长度对原码表进行分割以Coeff_token码表为例原码表如表1所示表中NC-1。 在参考模型中搜索码表算法过程如下 (1)从最短码长开始读出该长度二进制数据流对应的码字 (2)遍历码表如找到该码字进行步骤(4)否则进入(3) (3)码字长度加1重定位指针位置重复步骤(2) (4)读取该码字对应值更新指针位置。 从上面过程中不难发现码字长度的不确定性使得在读取字节流时只能一次次的试探导致了效率的下降。如果可以将变长码的读取采取固定的策略一次读取固定的长度之后再做判断再读取一定长度这样将判断的次数也固定从理论上可以降低不断搜索和重定位指针带来的时间和空间复杂性。利用可以利用码表中码字前缀零数目的不同将表1拆分为两个子表如表2表3所示NC为-1。 改进后的码表搜索算法如下 (1)读取最大码字长度的二进制流 (2)根据不同的前缀零位数、右移位、判零以确定码字所在子表 (3)直接根据码值读取对应值更新指针位置。 新的搜索过程不但避免了不确定性而且无需遍历码表这样可以在一定程度上提高变长解码的效率。 按照改进的算法步骤解码时首先从字节流中读取8位码字由于前缀零个数分为大于3和小于3的两种情形所以右移5位若为零则查找表2否则查找表 1根据码值直接解码出±1个数非零系数数目。此外在设计代码时还可利用二叉搜索树的特性设计搜索过程提高解码效率.
22 二叉树一子表混合法 拆分成子表后建立的数组中存在冗余现象。如当0≤N2且Pre-Zeros6时一共有13个码字。为了保留原先的查表方式以TC和 Tls为矩阵下标的特点必须要用4×7矩阵多余位置零。由于实际搜索的对象是矩阵怎么确定Pre-Zeros值以保证在分块数一定的情况下使用的矩阵较小成为提高搜索效率的关键。从表中可以看到对不同的N值对应的列子表之间的Pre-zeros的分界点选取了不同的阈值。按照表2中的分块方法矩阵的平均大小为4×65。相比JM中使用一个4×17矩阵搜索效率理论上可以提高(17-65)651615倍(假设每张子表的使用概率相同)。以0≤N2的一张VLC表为例共分成4张子表。从查找一个码字的比较次数来看。 可知子表法查找比较次数的理论最小值为此时要求ns2。如果在第一个步骤(确定子表)中改为采用二分法则这种情况下就可以对以上码表中前缀连零再细化将相同连零个数的码字放在一起增加子表数而减少子表中的码字结点数可以进一步提高查找效率。 从以上分析可见二叉树的查找效率是最高的。因此可以将二叉树应用到子表法中对每一张子表分别建树。对于二叉树来说查找时间与树的深度有关。观察子表中的码字发现它们都有不同长度的连零作为前缀如果直接建树将导致树的不平衡并增加了树的深度。为了解决这个问题可以考虑在同一张子表中为每个码字去除相同个数的连零前缀然后建立二叉树。在解码时先忽略这些连零个数再进行树的查找。在最理想情况下这种查找方法的一次查找的平均比较次数为 对第一张VLC表采用二叉树一子表法的最大比较次数 几种算法的对比与复杂度分析如表4所示。 空间复杂度也是需要考虑的问题。JM参考实现中为Tls和TC的联合码表建立了2个3×4×17的三维数组共需要408 B的存储空间。二叉树法经过统计一棵树共有124个结点其中叶结点62个其余62个结点为根结点或枝结点。建3棵二叉树所需要的空间为 (62×462×2)×31 116 B。子表法将码表分成12张子表每张子表用2个二维数组表示而数组的平均大小为4×65则共要4×65×12×2624 B。
3 结 语 H264是现在视频编解码领域研究的热点也是未来发展的方向它将代替MPEG2成为主流的信源压缩标准。H264应用领域非常广泛。将H264的编解码速度尽可能的提高可以使其在更多的领域中应用如数字电视消费电子类产品网络通信可视电话等现在热门领域。在此专门对于CAVLC码表查找给出了改进方案通过这三种改进方案避免了对整个码表的查找对码表的查找在效率上有了很大提高。具有明显的实用意义.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86953.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!