嵌入式系统视频图像压缩技术的研究
2010-10-10曾霞霞张小进
曾霞霞,张小进
(闽江学院计算机科学系,福州 350108)
嵌入式系统视频图像压缩技术的研究
曾霞霞,张小进
(闽江学院计算机科学系,福州 350108)
针对嵌入式系统视频图像应用的特点,应用灰度化与DCT变换技术,实现了基于嵌入式系统的消除帧内冗余彩色视频图像的压缩。
嵌入式系统;视频;图像压缩;DCT
随着现代多媒体技术的飞速发展,音频、视频信息的处理水平不断提高,使嵌入式系统的多媒体化成为现实,另外,嵌入式硬件性能的提升与嵌入式操作系统功能的不断丰富,为嵌入式系统多媒体化提供了可靠的技术保障,并已广泛应用于嵌入式系统,尤其是视频监控领域。视频监控中所采集到的信息基本上是以视频流方式存在,而对于大多数的视频监控用户来说,他所关注的不是视频流中具体的图像,而是图像所包含的内容信息,因此图像信息的编码成为了视频图像处理的核心问题。然而图像信息具有数据量庞大不便存储和传输等缺点,因此,必须采用合适的方法对采集到的图像信息进行压缩处理。在PAX27X的ARM平台上,结合了视频流存储特点与DCT变换在信息压缩领域的运用技术,可以将监控摄像采集到的视频信息压缩成便于传输的更小文件,这就是本文研究的主要内容。
1 图像压缩的原理
从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述,这个本质的东西就是信息量(即不确定因素)[1]。对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩。在相同的通信容量下,如果图像数据被压缩后再传输,就可以传输更多的图像信息。
图像编码方法可分为两代[2]:第一代是基于数据统计,去掉的是数据冗余,称为低层压缩编码方法;第二代是基于内容,去掉的是内容冗余,其中基于对象方法称为中层压缩编码方法,其中基于语义的方法称为高层压缩编码方法。基于内容压缩编码方法代表新一代的压缩方法,最早是由瑞典的Forchheimer提出的,随后日本的 Harashima等人也展示了不少研究成果。
对于嵌入式系统视频图像的压缩,视频的色彩可以舍弃,压缩比、压缩效果是考虑的重点。笔者为了达到压缩比与压缩效果的平衡设计了两层次的压缩方案。第一层次压缩:基于不同的视频格式采用不同的灰度化方法以达到减少占用空间的目的,这样处理后去除了视频图像的彩色信息;第二层次压缩:在灰度化的基础上利用DCT变换,将变换后的系数进行量化编码,以实现二次压缩,这样处理后消除了大部分的帧内冗余,从而以较小空间存储,实现保留视频基本信息并达到压缩的目的。
2 图像知识及DCT原理
2.1 彩色图像
彩色图像的数据包括亮度和颜色信息。常见的是RGB三色模型和YUV彩色模型,利用RGB可以混合出任意颜色,每个像素包含RGB三基色,每个基色用1个字节表示,即每个像素点用三个字节表示,就是人们常说的24位真彩色[3]。YUV表示法的重要性是它的亮度信号(Y)和色度信号(U,V)是相互独立的,也就是Y信号分量构成的黑白灰度图与用U,V信号构成的另外两幅单色图是相互独立的。
YUV转RGB的关系表达式[3]:
RGB转 YUV的关系表达式[3]:
2.2 灰度图像
灰度图像是数字图像的最基本形式,可以由黑白照片数字化得到,或是对彩色图像进行处理得到。灰度图像只表达图像的亮度信息而没有颜色信息,因此,灰度图像的每个像素点上只包含一个量化的灰度级(灰度值),灰度值用1个字节表示,表示的整数范围是0~255,灰度级数是256级,而人眼对灰度的分辨率能力通常在20~60级。灰度与彩色的RGB对应关系:灰度值(H)ΖRGB(H,H,H)。
2.3 DCT原理
视频图像每一帧中的相邻像素都会存在相关性,即当你读取视频图像信息时会看到相邻的像素数据值差不多,上下浮动并不大,同一帧讯源图像中相邻像素之间的幅度值相近,同一行上的相邻像素之间幅值相近,相邻行之间同样位置上的像素幅值相近。这就是所谓的图像的空间冗余度。
DCT(DCT2Discrete Cosine Transform)即离散余弦变换,实际上是一种离散傅里叶变换的特例[2],是指将一组数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却不容易辨认出来。DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上角反映原图像低频部分数据,右下角反映原图像高频部分数据。而图像的能量通常集中在低频部分,可以降低视频信号的空间冗余度。
二维DCT变换的公式定义为
3 视频图像压缩的实现
3.1 视频图像压缩分析
视频压缩处理的视频格式是 YUV与RGB格式的数据流。选择的理由是摄像头采集的视频数据未经处理都是YUV或者RGB格式,现在主流的AV I,M PEG,RM,RM -VB,FLV,WMV等视频格式都是经过压缩过的,处理起来比较复杂,而且在这个基础上进行深层次压缩很难实现。对于视频监控往往我们关心的是视频内容而不是视频的细节信息,直接用原有的 YUV,RGB格式没有复杂的头部信息,处理起来更加简便[4]。
视频图像压缩分两步骤进行。首先进行灰度化处理,去除视频图像的彩色信息以达到减少占用空间的目的;其次在灰度化的基础上利用DCT变换,将变换后的系数进行量化编码,这样处理后消除了大部分的帧内冗余以达到压缩的目的。视频图像压缩的基本流程如图1所示。
3.2 彩色视频图像灰度化
彩色视频图像灰度化处理主要实现灰度值的提取。视频流灰度值的提取完全是依赖于视频流自身的特性来实现的。对于彩色视频流无论是RGB24还是YUV,其帧与帧之间的R,G,B值或Y,U,V值都是相互叠加存储的,有的甚至是像素点与像素点之间的信息值叠加,要提取视频图像的内容(即Y值)要从视频流的原格式着手。比如RGB24,它是按照(B,G,R)顺序存储的,再根据公式 Y=0.299R+ 0.587G+0.114B求得 Y值,而 YUV格式会更简单,只要舍弃UV色度信息即可[5]。
提取灰度值的基本步骤为:打开输入、输出视频文件→视频类型判断→读取视频信息每帧获取(依据宽高、视频格式)→YUV(或RGB)提取(或转换)Y值→处理后的图像按帧存储→关闭输入、输出视频文件。
3.3 DCT压缩视频图像
(1)DCT变换。DCT是一种实数域变换,其变换核为余弦函数,计算速度快。DCT除了具有一般的正交变换性质外,它的变换矩阵的基向量能很好地描述图像信号的相关特征。因此,图像信号的变换中DCT变换被认为是一种准最佳变换。DCT变换在图像压缩中有很多应用,它是JPEG, M PEG等数据压缩标准的重要数学基础。在JPEG压缩算法中,先将输入图像划分为8×8或16×16的图像块,对每个图像块作DCT变换,然后舍弃高频的系数,并对余下的系数进行量化以进一步减少数据量,最后使用无失真编码来完成压缩任务[6]。
以下列4×4的矩阵数据为例进行分析。
将该矩阵与变换矩阵W相乘,可以得到新的矩阵C。
通过对上面的公式进行DCT变换后,每个 n×n的像素块的能量都往左上角集中了,如果需要进行有损压缩,则可以将变换后产生的矩阵进行量化,量化的越厉害则能够获得最大的压缩比,当然这一切都是用图像质量的损失来换取的。
(2)量化与Z型编码。图像数据转换为频率系数后,还得接受一项量化程序才能进入编码阶段。量化阶段,对于单色图像只需要一个8×8矩阵数据来处理亮度频率系数,用DCT变换后的频率系数除以量化矩阵,取得与商最近的整数值,即完成量化。但是将double行转换成整型是近似值,也就损失了一些数据内容。量化是控制视频图像压缩比的关键,这部分除去了一些高频量,损失了很高的细节。量化处理的数据都是线性存放的,ZigZag编码(即Z型编码)是将量化后的二维数据转换成一维的,按图2的顺序整理成顺序数字。
图2 矩阵Z型扫描顺序图
(3)DCT压缩视频图像的实现。压缩比在原来灰度化的前提下再进行DCT转换量化编码压缩。采用8×8矩阵分块,将矩阵进行DCT变换得到频率系数,将所得的频率系数除以量化表得到量化数据。如图2顺序利用Z字型扫描保留量化后矩阵左上角的信息位,并且在块之间加入块结束标记EOB。
关键程序设计如下:
其中dct8x8()函数即DCT变换的设计:输入参数是8× 8矩阵的 double型数组,输出是经 dct变换后的 8×8的double数组,直接依据公式的转换代码速度会比较慢。依据公式对应的转换代码为:tmp+=source[j][k]3 cos((-3 k+ 1)3 n 3 pi/(-3 N))3 cos((-3 j+1)3m 3 pi/(-3 N))。因为每次都要计算cos很耗时间,现改为查表法,这在一定程度上可以节约很多时间。
4 实现效果及存在问题的分析
以丢失彩色区的信息达到的压缩比并不高,压缩比值在2∶3~1∶4之间,而且压缩后的视频大小受到原视频格式的限制,视频图像的宽和高不仅决定了原视频的大小,也决定了压缩后的视频大小,压缩方法伸缩性、灵活性都很小。经DCT变换压缩的视频,压缩比可以到1∶10,但是效果与仅灰度化处理差不多,对于获知视频的具体内容没有影响。压缩效果如图3所示。
图3 图像压缩效果图
经过实践,在嵌入式系统中视频图像压缩可以实现,也可得到预期的效果,但还存在不足之处:
(1)可压缩的视频格式有限,仅做了 YUV与RGB;
(2)视频图像块分割标志是EOB=127,可能会与原存储信息冲突,为了解决冲突,对于值数据为127的数据置为126,这一定程度上又造成了一部分图像信息的丢失;
(3)该技术是对视频的有损压缩,对视频清晰度要求比较严格的场合不适用。
5 结语
嵌入式技术、网络与通信的融合以及3G时代的来临,正改变着现代人的生活方式,尤其是随着嵌入式系统的多媒体化不断推进,人们相互之间的通信将趋向于便携式的流媒体化,因此,嵌入式系统视频图像压缩技术的研究很有意义。由于笔者水平有限,在构思和实现的效果上仍然不够完善,还有很多方面需要改进,比如,不同压缩方法之间的优劣性分析、16×16矩阵数据在图像压缩中应用研究等等,会在以后的研究与设计中进一步深化。
[1] 傅祖芸.信息论——基础理论与应用[M].2版.北京:电子工业出版社,2007:10-15.
[2] 任高星,梁俊明,姜晖.基于嵌入式系统的图像采集与压缩[J].电子测试,2009(3):50-53.
[3] 张岩.基于分形的图像压缩算法研究[J].西安文理学院学报:自然科学版,2009(7),56-59.
[4] 谢凤英,赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社,2003:80152.
[5] 李旭东.基于分块DCT和量化的图像盲水印算法[J].计算机工程,2006(11):139-144.
[6] 钱华明,刘英明,张振旅.基于S3C2410嵌入式无线视频监控系统的设计[J].计算机测量与控制,2009(6): 1132-1334.
(责任编校:夏玉玲)
The Research of Embedded System Video Image Compression Technology
ZENG Xia-xia,ZHANG Xiao-jin
(Department of Computer Science,Minjiang University,Fuzhou 350108,China)
According to the characteristics of the application of em bedded system video image,the graying and DCT convertering technology is used to compress the color video compression and eliminate redundant frame based on the embedded system.
embedded system;video;image compression;DCT
TP391.41
A
1672-349X(2010)06-0056-04
2010-08-01
闽江学院科技育苗基金项目(YKY08007)
曾霞霞(1981-),女,讲师,硕士,主要从事W EB数据集成的研究。