编码位流
前面重建l
一类是含有DC系数和AC系数,如图3所示(这里用4x4的块举例,D代表DC系数,A表示AC系数)。对于不同的IDCT进行不同的处理:对于第一类情况,全零块,跳过反变换;对于第二类情况,只进行反DC变换,通常除以8,即移的VOP
——1f—一
编码位流(纹理
解变长解码卜_叫逆扫
]巴竺出
voP重建I
视频流
复用
图1MPEC,4SVP的解码过程
预处理及后续处理时调用,剩余1个是帧解码的实现函数。图2为帧解码主程序流程图。
解码过程的计算主要集中在如下几个模块:IDCT、运动补偿MC、逆量化、逆扫
描、逆预测以及变长解码
VLD。表l给出了优化前解
码过程的特征信息。从表l
中可以看出,上述运算模块在解码过程中占有很大比例。对以上各模块进行优化的效果将直接反映在解码器的实时效率上。
图2帧解码主程序流程图
表1优化前解码过程的特征信息
单元名称
占用时问比率/%
II)CT
40
反向扫描,量化,预测24
数据分析,可变长解码
14运动补偿
22
2解码器优化
2.1效率更高的IDCT变换
通常,MPEG一4编码过程中有8x8块在DCT变换后AC系数大都接近于零,经过量化后直接变成了零。同时
根据帧间预测的相关性:在运动不是非常剧烈的情况
下,量化后大部分DCT相关性是零。表2显示了在快速运动和慢速运动序列下所有全零块的百分比。
表2
64
kb/s的全零块百分比
序列Fast
motion
Slow
monton
(QCIF)Foreman
Mother—daugher
全零块/%
24.8
47.0
对于快速运动序列,大约25%的DCT块是全零;对
于慢速运动序列,全零块的百分比大约47%14I。这样,可以把DCT块分为不同的三类:一类是全零块(DC系数和AC系数都是零),一类是只含有DC系数(AC系数是零),
38
欢迎网上投稿www.chinaaet.tom
万
方数据3位即可;对于非零AC系数块,按照快速的IDCT处理。这样就可以针对不同的情况采用不
同的处理办法,提高了解码效率。
OO00D00OD
O000AA0000O^0O00
O
O
0
O
0
A
0
’图3
DC和AC系数的分类
2.2效率更高的运动补偿2.2.1运动补偿的扩边
MPEG一4在进行运动补偿时,使用运动向量在参考
图像中寻找预测块。如果运动向量变化比较快,则运动向量很可能指向参考图像以外。MPEG一4标准框架中,采用了很多分支判断语句来处理运动向量指向参考图像以外的情况。一方面IF语句的判断会降低程序的效率,造成解码过程速度的下降;另一方面如果运动向量没有指向参考图像以外,IF判断就显得多余。为了提高
解码效率,可以采用参考帧扩边的方式来解决。将参考图像的边界扩大部分全部置零,这样就可以减少很多判断语句,提高解码效率。在实际中,运动向量的有效范围很大,但当运动向量使计算一个预测块所需的像素完全处于参考图像以外时,则不论运动向量的水平分量或者
垂直分量延伸多远,所得到的预测块都是相同的。而运
动补偿既可以基于块(8x8)的,也可以基于宏块(16×16)的,因此将扩展的字节数取为16就可以了。同时将运动向量的两个分量分别裁剪到不超过参考图像左边和上边的边界8B以及下边和右边的边界2B。扩展后的参
考图像见图4。
全零块全零块
16B
霉
全零块全零块
全零块
16B
参考图像
i6B
全零块
全零块
16B
零
全零块
图4扩展后的参考图像
2.2.2双线性插值的改进
MEPG一4解码算法中,运动补偿是以宏块为单位进行
的。最初的做法基于参考图像采用双线性插值,见图5。
对这一做法进行如下改进:对宏块的运动补偿是根
据获得运动矢量进行不同的判断,而不是固定采用双线
性插值的算法。运动补偿根据从解码数据中获得的水平
运动矢量MV_X和垂直运动矢量MV_Y进行,即根据
《电子技术应用》2009年第3期
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于ARM7的MPEG-4视频解码器的优化(2)在线全文阅读。
相关推荐: