2.3H.261——视频图像压缩编码国际标准
H.261又称为P*64。H.261 的视频编码标准出現在 1990 年的 ITU。H.261是基于ISDN上视频会议的标准,引进了诸如动画预报和块传输等特性,这些都为生成高质图片奠定了基础,但H.261在动画信息的处理总量上有所限制。H.261 的格式有二种,分別有不同的解析度:
*QCIF:176x144
*CIF:352x288
H.261的 fps (frames persecond) 可以达到 7.5,10, 15 与 30 fps。由于 H.261 一开始是架构在 ISDN B 上面,而 ISDN B 的传输速度为 64 Kbps,所以 H.261 也被称为 Px64 (x = 1 to 30)。由于H.261对带宽的需求也很大(64kbps到2M bytes),所以主要定位在电路交换网络系统。 CIF 全名为 (Common Intermediate Format),主要是为了要支援各种不同解析度的电影而被定义出來,例如NTSC, PAL, SECAM 电视系统。而 QCIF 则是Quarter-CIF 也就是 CIF解析度的一半。
除此之外,H.261 也可以說是 MPEG-1 标准的前輩。其中P为64kb/s的取值范围,是1到30的可变参数,它最初是针对在ISDN上实现电信会议应用特别是面对面的可视电话和视频会议而设计的。实际的编码算法类似于MPEG算法,但不能与后者兼容。H.261在实时编码时比MPEG所占用的CPU运算量少得多,此算法为了优化带宽占用量,引进了在图像质量与运动幅度之间的平衡折中机制,也就是说,剧烈运动的图像比相对静止的图像质量要差。因此这种方法是属于恒定码流可变质量编码而非恒定质量可变码流编码[5]。
3 图像数据压缩算法
3.1Delphi图像数据压缩事例
下面以压缩一个屏幕拷贝为例介绍如何使用这项功能。
1、解决思路
首先利用屏幕拷贝捕捉到当前整个屏幕的图像,然后在内存中保存为 BMP文件格式。压缩时,使用 TCompressionStream对象对原始图像进行压缩并且保存为自定义的文件格式;解压缩时,使用 TDecompressionStream对象对被压缩的图像进行解压缩,还原为 BMP格式的图像文件。
2、具体实现
新建一个项目文件,在主单元的接口部分引用 Zlib.pas,在主表单上放置两个按钮 Button1、 Button2,在它们的 OnClick事件中写上相应的过程调用代码。
部分程序源代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs,StdCtrls, Zlib;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
此外 TCompressionStream对象还提供了CompressionRate属性,该属性用于描述对原始数据进行压缩后的压缩比率,而 OnProgress事件在压缩与解压缩过程中都会被触发,开发人员可以在该事件中编写用于显示进度的代码。
以上代码在 Delphi 5.0中调试运行通过。
3.2小波变换在数字图像数据压缩中的应用
傅立叶分析是把一个信号分解成各种不同频率的正弦波,因此正弦波是傅立叶变换的基函数。同样,小波分析是把一个信号分解成由原始小波经过移位和缩放后的一系列小波,因此小波是小波变换的基函数,即小波可用作表示一些函数的基函数[6]。
小波是近十几年才发展并迅速应用到图像和语音分析等众多领域的数学工具,是继110多年前建立傅立叶(Joseph Fourier)分析之后的一个重大突破。经过十几年的努力,小波理论基础已经基本建立并成为应用数学的一个新领域,引起了众多数学家和工程技术人员的极大关注,是国际上科技学术界高度关注的前沿领域。以下试图从工程和实验角度出发,较为直观地探讨小波变换在图像压缩中的应用[7]。
小波变换和重构:小波变换的基本思想是用一组小波或基函数表示一个函数或信号,例如图像信号。以哈尔(Haar)小波基函数为例,基本哈尔小波函数(Haar wavelet function)定义如下:
1, 当0≤x<1/2
Ψ(x) = -1, 当1/2≤x<1
0, 其他
设有一幅分辨率只有4个像素的一维图像,对应像素值为:[9 7 3 5]。用哈尔小波变换的过程是:计算相邻像素对的平均值(averaging,亦可称之为近似值approximation),得到一幅分辨率为原图像1/2的新图像:[8 4]。这时图像信息已部分丢失,为了能从2个像素组成的图像重构出4个像素的原图像,必须把每个像素对的第一个像素值减这个像素的平均值作为图像的细节系数(detail coefficient)保存。因此,原图像可用下面的两个平均值和两个细节系数表示:[8 4 1 -1]。可以把第一步变换得到的图像进一步变换,原图像两级变换的过程(见表3.1):
表3.1 哈尔小波变换过程
分辨率 |
平均值 |
细节系数 |
4 |
[9 7 3 5] |
|
2 |
[8 4] |
[1 -1] |
1 |
[6] |
[2] |
哈尔变换过程事实上是用求均值和差值的方法对函数或图像进行分解,对于f(x)=[9 7 3 5],可作最多2层的分解。
对于2维图像,同样可以用依次对行列进行小波变换得到2维图像的分解。这时经过一次小波变换得到是2维图像的近似值(CA)以及水平(CH)、垂直(CV)和对角(CD)细节分量值。显然,从2维图像的CA、CH、CV和CD值可以重构出原来的2维图像。
图像压缩:去掉经过小波变换得到的细节分量值对重构图像的质量影响不大。具体的做法是设置一个阈值δ,例如把≤δ的经小波变换得到的水平(CH)、垂直(CV)和对角(CD)细节分量值细节分量值置为0。
为了验证图像压缩的效果,使用数学软件工具MATLAB 6.1设计了3级非标准小波变换和重构图像程序function [ ] = report(picname),同时以分辨率256×256的真彩色照片为测试图像,通过执行程序完成了阈值δ分别为0,5,10和20的情况下利用Haar小波进行变换变换和重构过程。
以使用Haar小波,阈值等于10,真彩色图像G分量为例,小波图像变换过程(如图3.1)所示。
3/5 首页 上一页 1 2 3 4 5 下一页 尾页 |