摘 要:降低多媒体算法的复杂性和存储器需求对于存储器资源和运算能力都很有限的嵌入式设备是十分重要的。在极低码率应用时,JPEG存在严重的方块效应,JPEG2000具有极高的运算复杂性和存储器需求。分析了H.264 INTRA帧编码的运算复杂性和存储器需求,并提出了一种减小运算复杂性的有效方法。结果显示,H.264 INTRA帧编码具有极低的运算量和存储器需求,非常适合嵌入式设备的静止图像编码。
关键词:静止图像编码 H.264 JPEG2000 零块检测
嵌入式多媒体设备的静止图像编码有着广泛的应用,如照片的拍摄与传输。设备处理的图像越来越大,存储容量和传能力都相当有?因而静止图像编解码要求具有较低的运算复杂性、较少的存储器需求和极好的压缩性能。目前已经制定的静止图像压缩标准主要有JPEG和JPEG2000。JPEG标准在中高速率上压缩效果较好, 对于细节分量多的灰度图像, 当编码压缩率低于每像素0.25比特时,视觉失真大,重构图像存在严重的方块效应,不能很好地适应网络传输图像的需要
视频编码新标准H.264代表着继MPEG1/2和MPEG4后的第三代视频编码标准。H.264比以前的标准提供了更高的编码增益。H.264的INTRA帧编码算法充分利用图像中的空间相关和变换域的相关性,提供了极高的编码增益,可以用来对静止图像进行编码。在文献[1]中H.264采用JM73代码,JPEG2000 采用Jasper 1.700.5,对标准静止测试图像和视频序列进行测试。测试结果表明:与JPEG2000相比,H.264 INTRA帧具有更高的客观质量和主观质量,但译码器的运算复杂性却比JPEG2000低50%左右。在嵌入式设备上,多媒体应用的实时性不仅取决于算法的运算次数,还取决于可得到的存储器带宽。CPU的工作频率越来越高,存储器的频率却增加缓慢,很多算法的瓶颈在于数据输入输出。有效减小算法的存储器需求,减少中间结果的存储需求,可缩减片外存储器访问次数,提高应用的实时性能。下面主要讨论降低H.264 INTRA帧编码的运算复杂性和存储器需求的方法。
图1 H.264编码器的结构流程图
H.264 INTRA 16x16 prediction modes (all predicted from pixels H and V)
图2 INTRA 4×4和INTRA 16×16预测
1 减少运算复杂性
H.264 INTRA帧具有比JPEG2000更高的客观质量,这主要是由于INTRA帧采用的多种帧内预测模式较好地去掉了空间冗余。对于平滑的背景区域采用16×16大小的粗糙预测,共有4种可能的预测方向。对于快速变化的图像区域,采用4×4的块,共有9种预测模式。在预测后,对残差信号进行整型变换消除频谱相关性。高效的去方块效应滤波器改善了图像的信噪比和主观质量。图1是H.264编码器的结构流程图。从图1可以看出,在整帧图像的熵编码后,对逆整型变换后的重建数据进行去方块效应,去方块效应后的重建图像数据用作下一帧预测图像的编码,或者用于编码同时显示重建图像。编码器的作用主要是压缩原始数据产生输出码流,若不需要在本地编码器中显示重建图像(例如卫星照片的拍摄),则编码器中的整帧图像的去方块效应可以省去,节省大约30%的运算。宏块的帧内预测包含9种4×4模式和4种16×16模式如图2。INTRA 16×16 预测仅仅采用左边16个像素和上边16个像素作参考;INTRA 4×4 预测仅仅采用左边4个像素和上边9个像素作参考,因而在逆整型变换和重建(逆变换结果与预测值相加)时,仅仅需要计算16×16宏块的第16行与第16列像素、4×4块的第4行与第4列像素,没有必要计算所有的像素。对于16×16的块,减少224个重建像素的计算。对于4×4的块,减少8个重建像素的计算。整型变换、量化、逆量化、扫描以及逆变换消耗比较多的编码时间,可利用在模式选择时计算的绝对差值和(SAD),提前判断整型变换后量化系数全0块,从而省去全0块的整型变换、量化、逆量化、扫描以及逆变换这一系列操作。若SAD小于某个
在INTRA帧量化中时,
F(u,v)量化为0,即
时,所有变换系数量化为0。由于该式是量化系数全为零的充分条件,而不是必要条件。实验结果显示,使用该门限检测出零块的正确性为100%,大量的量化系数为全零块却检测不出来。为了大幅提高零块检出率,增大该门限T为3Qstep,测量miss.qcf 20帧编码的平均情况,测试结果见表1。从表1可以看出,零块检测率随着量化索引增大而增大,可能将部分非零块检测成零块,但这对信噪比影响不大。
表1 不同量化索引的零块检出率
2 缩减存储器需求
减少
采用H.264 INTRA帧对静止图像进行编码时,在编码器端不需要显示本地重建图像,可省掉去方块效应滤波器;利用模式选择时计算的绝对差值和,可提前判断量化后全零系数块,节省大量的计算。分阶段地对各个宏块的码流插入竞争阻止字节(emulation prevention byte),以保证原始字节序列载荷中不含起始码,有效减少存储器的需求。运算复杂性和存储器需求极低的H.264 INTRA编码模式,可代替JPEG2000,用于嵌入式设备的静止图像编码。
图3 相邻 4×4 INTRA编码块