资源描述
本科学生毕业设计
基于Simulink的视频处理
院系名称: 电气与信息工程学院
黑 龙 江 工 程 学 院
二○一三年六月
黑龙江工程学院本科生毕业设计
The Graduation Design for Bachelor's Degree
Based on Simulink of Video Processing
Heilongjiang Institute of Technology
2013-06·Harbin
2
黑龙江工程学院本科生毕业设计
I
黑龙江工程学院本科生毕业设计
摘 要
本课题结合通信领域和计算机领域技术,对多媒体通信的数字视频压缩技术进行研究,介绍了如何通过Matlab中的Simulink系统仿真软件进行视频处理。多媒体信息经数字化会产生大量的数据,因此研究更加高效的多媒体数据压缩编码方法,这对多媒体信息的存储和传输具有极其重要的意义
视频是连续的静态图像,基于Simulink的视频处理,其本质就是对每帧图像进行处理,因此基于Simulink的视频处理和图像处理相似,通过构建视频输入模块、处理模块、输出模块完成Simulink模型的建立。进行视频处理的重点为视频压缩,它是通过离散余弦变换和运动补偿方法来进行的,并通过计算连续图像帧之间的运动向量来减少冗余信息,随后将每帧图像划分为矩阵,并对子矩阵进行离散余弦变换,最后通过量化技术完成视频压缩。
关键词:Simulink;视频压缩;视频解压缩;视频处理
I
ABSTRACT
This subject combined the current technology of communication and computer, the study of digital video compression technology of multimedia communication, decribes how to use Matlab Simulink simulation software for video processing. Digital multimedia information that generate large amounts of data, therefore study more efficient coding of multimedia data compression method, research on the storage and transmission of multimedia information is of vital importance.
Video is a continuous still image, video processing based on Simulink, the essence which is to process each image frame. By constructing a video input module, management module, the output modules to complete establishment of a Simulink model. Foceses on Video Compression for video processing, which is conducted by DCT and motion compensation method, and evaluates motion vectors between image frames in arrow to reduce redundant information, then divides the image into each frame matrices, and discrete-consine transform pair matrix, last accomplished through technologies of video compression.
Key words: Simulink;Video compression; Video decompression; Video processing
II
目 录
摘要 I
Abstract II
第1章 引言 1
1.1 概述 1
1.2 视频压缩国内外研究现状 1
1.2.1 视频压缩发展现状 1
1.2.2 视频压缩标准简介 2
1.3 本设计的主要研究内容 4
第2章 视频处理 5
2.1 视频压缩的基本途径 5
2.1.1 采用亮度(Y)、色度(C)取样方式 5
2.1.2 将整幅图像分割为小区域进行分割处理 6
2.1.3 采用帧间和帧内数据压缩技术 6
2.1.4 帧内数据压缩技术 7
2.1.5 帧间数据压缩技术 8
2.2 视频处理过程 8
2.2.1 视频压缩 8
2.2.2 视频解压缩 11
2.3 本章小结 12
第3章 Simulink视频与图像处理模块 13
3.1 Matlab简介 13
3.2 Matlab/Simulink简介 13
3.3 Simulink中视频与图像处理模块 14
3.3.1 输入源(Sources)模块库 15
3.3.2 转换(Conversions)模块库 16
3.3.3 工具(Utilities)模块库 20
3.3.4 接收器(Sinks)模块库 23
3.4 本章小结 25
第4章 基于Simulink的视频处理实现 26
4.1 基于Simulink的视频处理总体方案 26
4.2 视频输入模块 27
4.3 视频压缩模块 29
4.4 视频解压缩模块 32
4.5 视频压缩比率计算模块 33
4.6 视频输出模块 35
4.7 本章小结 36
结束语 37
参考文献 38
致谢 39
黑龙江工程学院本科生毕业设计
第1章 引 言
1.1 概述
众所周知,视觉是包括人类在内的许多高等生物获取外界信息最重要最直观的方式。通过视觉,人和动物感知外界物体的大小、明暗、颜色、动作,获得对机体生存具有重要意义的各种信息。对人类来说,至少有80%的外界信息经由视觉获得。视觉可以说是人类最重要的感官。那么在信息时代中,作为传递视觉信息的主要载体之一,视频技术就显得尤为重要了[1]。本课题结合当前通信领域和计算机领域技术,对多媒体通信的数字视频压缩技术进行了研究,介绍如何通过Matlab中的Simulink系统仿真软件进行视频处理。在Matlab的工作中,Simulink为用户提供了用方框图进行建模的图形窗口,实现了可视化的建模,具有直观、方便、灵活的特点。它同时也提供了一个交互式的图形化环境和可定制模块库,可对各种时变系统,例如通信、控制、信处理、视频处理和图像处理系统等进行设计、仿真、执行和测试[1]。
视频是连续的静态图像,基于Simulink的视频处理,其本质就是对每帧图像进行处理,因此基于Simulink的视频处理和图像处理相似,通过构建视频输入模块、处理模块、输出模块完成Simulink模型的建立。视频压缩,是通过离散余弦变换和运动补偿方法来进行视频压缩处理的,并通过计算连续图像帧之间的运动向量来减少冗余信息,随后将每帧图像划分为矩阵,并对子矩阵进行离散余弦变换,最后通过量化技术完成视频的压缩,而视频的解压过程则通过视频压缩的逆过程完成原始视频的恢复[2]。
以Simulink为基础的视频和图像处理模块集在MatlabR14中开始出现,并随着Matlab新版本的推出而不断完善,该模块集提供了视频和图像处理多项成熟技术的应用模块,为航空航天、国防、影视通讯、工业自动化、交通管理、医学图像处理、地理测绘等诸多领域提供直观方便的图像处理手段,如这几年逐渐引起人们重视的模糊算法、神经网络与遗传算法、小波分析、数学形态学等理论都先后被应用于视频处理领域,为该领域中的研究注入了新的活力,有效的解决了原有理论的一部分缺陷,改善了视频处理效果,更重要的是为有关视频处理问题的最终解决开拓了新的思路。随着基础理论研究的深化,这一趋势是必将会继续下去[2]。
1.2 视频压缩国内外研究现状
1.2.1 视频压缩发展现状
数字视频压缩的主要挑战在于原始视频包含有大量数据。例如,标准清晰度的NTSC视频的数字化一般是每秒30帧速率,采用4:2:2YCrCb,其要求超过165Mbps的数据速率,保存90分钟的视频需要110GB空间,或者说超过保准DVD-R存储容量的25倍,即使是视频流应用中最常用的低分辨率视频也需要超过36.5Mbps的持续传输能力,显然数字视频的存储或传输需要采用压缩技术[3]。
在国外,由于MPEG-2技术已经比较成熟,所以国外纷纷投入大量的精力在H.264的研究上。虽然H.264压缩效率很高,但高压缩率带来的问题是压缩算法的较高复杂度,H.264的解码比传统的MPEG-2复杂2到3倍。国外的众多技术精英对H.264技术进行了大量的研究并形成了多种H.264编解码方案,目前主要有基于专用芯片的结构。
在国内,数字电视的推广以及IPTV等新媒体的不断涌现使得人们对视频传输带宽的要求逐渐提高。MPEG-2等第一代音视频编解码技术虽然目前仍是主流,但由于技术水平及收费等原因发展空间日渐减小;MPEG-4的专利许可政策较为苛刻,推广前景不被看好。H.264编码标准很可能会取代MPEG-2称为主要的数字视频信源编码标准,而我国具有自主知识产权的AVS标准也正在得到推广。国内很多企业也对H.264、AVS等新兴的音视频编码标准技术的产品进行了投入,形成了各自的技术。我国数字电视采用的仍是MPEG-2编解码技术,而且国外规模较大的公司对市场的垄断导致目前国内相应的基于H.264技术的解码芯片的研究较多,但产品较少。
视频压缩是所有令人振奋的、新型视频产品的重要动力。压缩——解压(编解码)算法可以实现数字视频的存储与传输,典型的编解码器要么采用行业标准,如MPEG2、MPEG4、H264/AVC与AVS,要么采用专有算法,如On2、Real Video、Nancy与Windows Media Video等。编解码技术在过去的十年中不断改进,最新的编解码技术(H.264/AVC与VC-1)代表着第三代视频压缩技术[4]。
1.2.2 视频压缩标准简介
1、MJPEG
MJPEG 是指 Motion JPEG,即动态JPEG,按照25帧/秒速度使用JPEG 算法压缩视频信号,完成动态视频的压缩。是由JPEG专家组制订的,其图像格式是对每一帧进行压缩,通常可达到6:1的压缩率,但这个比率相对来说仍然不足。就像每一帧都是独立的图像一样。MJPEG图象流的单元就是一帧一帧的JPEG画片。因为每帧都可任意存取,所以MJPEG常被用于视频编辑系统。动态JPEG能产生高质量、全屏、全运动的视频,但是,它需要依赖附加的硬件。而且,由于MJPEG不是一个标准化的格式,各厂家都有自己版本的MJPEG,双方的文件无法互相识别。 MJPEG的优点是画质还比较清晰,缺点是压缩率低,占用带宽很大。一般单路占用带宽2M左右[5]。
2、H.263
H.263 视频编码标准是专为中高质量运动图像压缩所设计的低码率图像压缩标准。H.263 采用运动视频编码中常见的编码方法,将编码过程分为帧内编码和帧间编码两个部分。埃帧内用改进的DCT 变换并量化,在帧间采用1/2像素运动矢量预测补偿技术,使运动补偿更加精确,量化后适用改进的变长编码表(VLC)地量化数据进行熵编码,得到最终的编码系数。 H.263标准压缩率较高,CIF格式全实时模式下单路占用带宽一般在几百左右,具体占用带宽视画面运动量多少而不同。缺点是画质相对差一些,占用带宽随画面运动的复杂度而大幅变化[6]。
3、MPEG-1
该标准制定于1992年,为工业级标准而设计,可适用于不同带宽的设备,如CD-ROM,Video-CD。它用于传输1.5Mbps数据传输率的数字存储媒体运动图像及其伴音的编码,经过MPEG-1标准压缩后,视频数据压缩率为1/100~1/200,影视图像的分辩率为360×240×30(NTSC制)或360×288×25(PAL制),它的质量要比家用录像系统(VHS-Video Home System)的质量略高。音频压缩率为1/6.5,声音接近于CD-DA的质量。MPEG-1允许超过70分钟的高质量的视频和音频存储在一张CD-ROM盘上。VCD采用的就是MPEG-1的标准,该标准是一个面向家庭电视质量级的视频、音频压缩标准。MPEG-1的编码速率最高可达4-5Mbits/sec,但随着速率的提高,其解码后的图象质量有所降低[7]。
4、MPEG-2
该标准制定于1994年,设计目标是高级工业标准的图象质量以及更高的传输率,主要针对高清晰度电视的需要,传输速率在3-10Mbits/sec间,与MPEG-1兼容,适用于1.5~60Mbps甚至更高的编码范围。分辩率为720×480×30或720×576×25。影视图像的质量是广播级的质量,声音也是接近于CD-DA的质量。MPEG-2是家用视频制式(VHS)录像带分辩率的两倍。MPEG-2的音频编码可提供左右中及两个环绕声道,以及一个加重低音声道,和多达7个伴音声道(DVD可有8种语言配音的原因)。由于MPEG-2在设计时的巧妙处理,使得大多数MPEG-2解码器也可播放MPEG-1格式的数据,如VCD。除了做为DVD的指定标准外,MPEG-2还可用于为广播,有线电视网,电缆网络以及多级多点的直播提供广播级的数字视频。MPEG-2的另一特点是,其可提供一个较广的范围改变压缩比,以适应不同画面质量,存储容量,以及带宽的要求。对于最终用户来说,由于现存电视机分辨率限制,MPEG-2所带来的高清晰度画面质量(如DVD画面)在电视上效果并不明显,反道是其音频特性(如加重低音,多伴音声道等)更引人注目。
5、MPEG-4
MPEG-4是超低码率运动图像和语言的压缩标准,它不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准主要应用于视像电话,视像电子邮件和电子新闻等,其传输速率要求较低,在4800-64Kbits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图象质量。MPEG-4的特点是其更适于交互AV服务以及远程监控[7]。
1.3 本设计的主要研究内容
视频的信息含量较大,所以在传输视频信息之前必须对视频进行处理。在视频处理中最重要的环节为视频压缩与解压缩两个环节,通过对视频进行压缩,才能更高效低进行传输,压缩后的视频接收后并不能立即播放,这时就需要对视频进行解压,视频的解压缩可以看成是视频压缩的逆过程。当今,对视频进行处理的方式有很多,其中最为高效的还是利用系统仿真软件进行仿真。Simulink为Matlab中的系统仿真软件, Simulink中的视频与图像处理模块库中包含许多与进行视频处理有关的功能模块,通过搭建完成视频输入模块、视频压缩模块、视频解压缩模块和视频输出模块即可对视频进行实时、精准和高效的处理。
各章节主要内容如下:
第1章简单介绍了本课题的主要研究内容为基于Simulink的视频处理,简单叙述了视频处理国内外的发展趋势以及视频压缩的标准。
第2章主要介绍了视频压缩处理的主要原理及基本方法。视频的数据量极大,必须对其数据总量压缩,才能方便存储、传输及研究。压缩视频数据的基本途径有采用亮度(Y)、色度(C)取样方式、将整幅图像分割为小区域进行分割处理和采用帧间和帧内数据压缩技术等。重点介绍了如何进行视频的压缩与解压缩处理,本节主要介绍了如何通过硬件电路的设计来实现视频压缩与解压缩,其中视频解压缩可看成是视频压缩的逆处理过程。
第3章介绍了Matlab/Simulink中的视频与图像处理模块中的各个功能模块功能及如何对其进行参数设置,重点介绍了与与视频压缩与解压缩有关的各功能模块。
第4章结合以上两章所掌握的知识点,利用Simulink中的视频与图像处理模块来完成视频处理模块的搭建,video-processing模型分为视频输入模块、视频压缩模块、视频解压模块、视频输出模块。该模型实现了视频压缩与解压、视频与解压视频存储、帧速率统计、压缩率统计等功能。
第2章 视频处理
未经过任何处理的视频信息包含的数据量非常庞大,这必然造成需要用很大的磁盘空间来存储这些数据信息。一幅没有经过任何压缩处理的电视画面包含有442368个像素,这一幅画面转换成数字视频后,每个像素须用3个字节来表示RGB值,所以每帧数字化视频图像需要存储的信息量为1327104字节,1秒钟数字化PAL制视频所需的存储空间约为33.2MB/秒,1张容量为650兆的光盘所能存储的数字视频为20秒。此外,音频也要占用大量的磁盘空间。所以说如果不对视频进行压缩,所占用的存储空间之大是不可想象的,浪费如此大的磁盘空间也是极其没有必要的[8]。
传输介质中的数据传输速度低于活动视频所需的存取速度,将造成大量数据的丢失,同时影响接收端的质量,有时会出现跳帧现象。以PAL制为例,以25帧/秒的速率数字视频信号的播放,数据传输速率需要达到216Mb/s,但是现今的传输技术水平远远达不到要求,现今光纤传输达到100Mbps,但想要以正常的速度传输、播放未经压缩的视频信号是不可能的,因此视频压缩就显得极为重要。
2.1 视频压缩的基本途径
视频压缩编码标准主要包括两个部分,一个是由国际电信联盟所制定的H.26x系列标准,另一个是由国际标准化组织和MPEG组织所制定的MPEG.x系列标准。这些编码标准是为了应对不同领域中对数字视频压缩的不同要求而制定的。
H.264 视频压缩标准由ITU-T/ISO 于2003年3月正式公布,同以往标准相比较而言它具有非常优越的性能,因此受到了普遍的认可。通过每项性能指标的对比可以发现,在相同的视频质量前提下将H.264与H.263或MPEG-4进行对比发现H.264的数码率降低了接近一半的倍数;或者说在码率相同的条件下,信噪比提高很大。正是因为H.264体现出的良好性能使得它在国际上受到了广泛地认可和重视。视频的数据量非常大,所以必须对其数据总量进行很大程度的压缩,才能够使其存储在直径12cm的光盘上。在实际应用中,可以通过下列途径来对视频数据的总量进行压缩[9]。
2.1.1 采用亮度(Y)、色度(C)取样方式
实际应用中彩色电视技术并没有传输、处理蓝、绿、红三种基色信号,而是传输、处理亮度信号(Y)和色度信号(C)。此种处理方法利于实现黑白电视和彩色电视的相互兼容,也同样有利于限制彩色电视信号的频带宽度。在数字图像处理技术中,采用传输、处理亮度信号(Y)和色度信号(C)的方法。由于人眼对亮度信息极为敏感而对彩色信息不太敏感,因此对Y信号用较高清晰度传送,而对C信号以较低清晰度进行传送。实际运用中作法是这样的:对每个亮度(Y)像素都进行传送而将色度(C)分解为U、V两个色差信号(或写为Cb、Cr、B-Y、R-Y),分别进行传送;对亮度(Y)实行逐点取样,而对色度(C)则取样较少。即对应于4个亮度取样点,但对色度信号取样1个点,即对U、V像素的取样较低,各取1个取样点,这种取样格式称为YUV411格式。
2.1.2 将整幅图像分割为小区域进行分割处理
在对图像进行数据处理时,应对每帧图像进行分割处理。首先将图像横向切成若干条,每一条称为一片,再将每一片纵向切成若干块,称宏块。宏块是图像压缩的基本单位。每个宏块的彩色图像可用1个亮度信号Y和两个色差信号Cb、Cr(即U、V)来表示;或者每个宏块分为三层,一层亮度(Y),两层色度(各为Cb、Cr),统称为一个宏块。
因为人眼对亮度、色度的主观敏感程度不同,通常把亮度宏块在平均分成4块,每一小块称为区块或像块(如示意图2.1所示)。每一个区块可以进一步进行分割,称为像素或像点。对数字图像来说,每一个像素作为一个取样点,有一个与之对应的取样值。可以看出,图像分割越细,像素数越多,取样点越多,图像的清晰度越高;反之,图像清晰度越低。实际上,对图像进行压缩处理,就是对图像区块的数据、像素的数据进行压缩处理。
5
8×8
6
8×8
1
8×8
2
8×8
3
8×8
4
8×8
图2.1 图像分割方式示意图
2.1.3 采用帧间和帧内数据压缩技术
实时电视每秒钟传送25-30帧画面,这使得画面变化具有连续感,电视图像是由各帧画面差非常小的一系列画面所组成的。各帧画面的微小变化主要是表现在画面主体部分。图像是用亮度和色度信息来描述的,在各相邻帧图像中,若分别比较同一相对位置的亮度、色度信号,通常它们之间的差别很小。经统计发现,在各个像素当中只有10%以下像素点的亮度差值变化超过2%,而色度差值变化在0.1%以下。由于在各帧图像中具有大量的重复内容,这些重复内容的数据属于冗余信息。可以通过采用减少时域冗余信息的方法,来减少图像传输的数码率[10]。
经研究发现,在同一帧画面内也存在冗余信息。对图像主体部分和眼睛最敏感的部分,应当准确、详细地进行处理,需要对每个像素点进行精细的传输;但对于图像非主体部分和眼睛不敏感的部分,就可以进行粗略处理,即进行信息数据的压缩处理。可以根据一帧图像内容具体的分布情况,对不同位置采用不同的数据量来进行传送,从而减少传送图像的数据量,使得图像数据得到压缩。此种压缩数据的方法,是在同一帧图像的不同空间部位进行数据压缩,称为空间域冗余压缩。
2.1.4 帧内数据压缩技术
对整幅图像进行分割处理,经分割得最小操作单元。下面按8×8=64个像素组成的区块来计论。每一个像素值都可以按一定规律取样,例如可对亮度各个像素的亮度值取样,若每个像素按8bit量化,则每个区块的总数据量为8bit×64(像素点),即512bit。可见,对全画面各像素量化处理后数据量十分庞大,需要进行数据压缩。通常,经过离散余弦变换,Z字型扫描,可变长度编码等处理过程,可将数据总量进行大量压缩[11]。
1、离散余弦变换(DCT)编码
离散余弦变换简称为DCT,经常用于数据处理。DCT是多种数字变换方法之中的一种,是把空间域图像变换到频率域进行分析的方法。由于DCT的变换核构成的基向量与图像内容无关,而且变换核是可以分离的,既二维DCT可以用两次一维DCT来完成,使得数学运算难度得到很大的简化,再配以已经发现的其它快速算法,使得DCT编码得到了广泛的应用。将DCT应用于图像数据压缩,可以减少代表图像亮度(或色度)层次的数码信息,达到数据压缩的目的。利用DCT不仅可以将图像编码,还可以在编码变换过程中发现图像细节的位置,以便于删去或略去对视觉不敏感的部分,而更加突出视觉的敏感部分,通过选择主要数据来传输、重视图像。
利用DCT压缩图像数据,是根据图像信号在频率域的统计特性。在空间域看来,图像内容千差万别;但在频率域上,经过对大量图像的分析发现,图像经过DCT变换后,其频率系数的主要成分集中在比较小的范围内,并且主要位于低频部分。利用DCT变换揭示出此种规律后,可以再采取一些措施把频谱中能量较小的部分舍弃,尽量保留传输频谱中主要的频率分量,就能够达到图像数据压缩目的[12]。
2、DCT系数的再量化处理
经过上述DCT处理的频率数据可以进行再处理,进一步对数据进行压缩。人眼对各种频率的敏感程度不同,通过统计可以得出灵敏度数值。因此可以对每种频率分量设定不同的折算值,将前面所述的经转换得到的DCT系数再次进行折算,以便进一步突出对视觉效果影响较大的成分,而消弱对视觉效果影响较小的成分。
经量化处理后,量化值大的系数所得商值较小,即数据压缩比较大,原图像相应部分的忽略内容较多;量化值小的系数所得商数值较大,也就是数据压缩比较小,原图像相应部分不予忽略或极小忽略。因此经过量化处理后的DCT系数矩阵,就会出现许多的零值。一般左上角位置数据的商是非0,右下角位置的数据的商很小,可简写为0。在系数矩阵上出现了许多0值,则大大减少了数据量。
3、可变长度编码
经过量化处理的系数矩阵出现许多0值,若进行Z字形扫描时,后面的系数将出现连续0的状况。虽然数据传输总量已经明显减少,但码位并未减少,仍为64个系数位。为进一步对数据总量进行压缩,可以采用可变长度编码。
通常,采用两种方法进行可变长度编码。第一种为根据数据出现的频率,分配以不同长度的码字来代替。即对于频繁出现的数据,分配以较短的码字,那些不经常出现的数据,则分配以较长的码字,这样处理后可减少传输的总码率。第二种方法为对于静止画面,采用离散余弦变换、Z字形扫描、量化处理和可变长度编码等方法,可使图像数据量大大压缩。在数据进行解码时,需要先经过可变长度解码,恢复为数据的固定长度;再对系数进行反量化,恢复为原来的DCT频率系数;再经过反向离散余弦变换,恢复为图像的空间坐标数值,即原来图像的数据[11-12]。
2.1.5 帧间数据压缩技术
对活动图像来讲,相邻帧的图像具有很强的相关性。在保存和记录动态图像时,不需要将每一帧图像的全部信息都记录和保存下来,可以将前面第一帧图像全部数据都记录下来,把它看成是静态图像,可用静态图像数据压缩方法来处理。而后面诸帧图像,可以只记录与前面帧图像有差别的信息。在重放时,利用前面帧图像的数据和后面帧的差异数据,就可以恢复出后面帧的图像。
2.2 视频处理过程
2.2.1 视频压缩
视频信号的含有信息量很大,这对网络传输所需的带宽要求很高,因此对视频信息进行压缩处理非常必要。能否在视频信号传送前先对其进行编码,随后再进行传送,通过此种方法达到节省传送带宽和存储空间的目的,这样就提出了一个很重要的问题—视频压缩。
视频质量有两个标准:主观质量、客观质量;主观质量是指从人的视觉上进行评定的;客观质量则是通用信噪比(S/N)表示。在评定一个视频的好坏时要综合考虑主观质量和客观质量,两者缺一不可。很多情况下,这两个要求会有冲突,最佳的质量往往是在这两者之间求一个最佳的平衡,才能达到最好的效果。
视频内容压缩的方式之一是使用一种编码语法,如JPEG简单地压缩每幅图片(图2.2为MPEG-1图像压缩编码器方框图)。最常见的“基线”JPEG方案是将图像分解成大小相等的块。这些块由一个离散余弦变换(DCT )进行转化,然后DCT系数进行量化并使用可变长编码传输。因为该图片的编码没有涉及编码视频序列中的其他图片,所以将把这种方式作为帧内编码的编码方案。事实上,这种单独帧内编码作为一个视频编码方法共同使用在今天的生产质量编辑系统,这种方法要求快速访问视频内容的任何帧[12]。然而,改进压缩的性能可以通过利用视频内容里存在的大量时间冗余来达到。通常情况下,所描绘的场景基本上只是重复前后的图片而没有任何显着的变化。显而易见的是,在更有效地表示视频这点上,只编码视频内容的变化比反复编码每帧图片要好很多。
一个通过只编码视频场景的变化来提高视频压缩的方法被称为有条件补( CR ),它是第一个数字视频编码标准H.120 里唯一的减少时间冗余的方法。CR编码包括两个过程:发送信号指明图片的哪些区域可以被重复;发送新的编码信息取代产生变化的区域。CR允许为每个区域选择跳过模式和内部模式两种模式之一作为代表。然而,CR编码有一个重要的的缺点,即无法改善一个近似。通常,前一帧图片的某个区域的内容可以是一个新的图片很好的近似,只需要一个小的改动就能成为一个很好的参照。但CR编码只允许确切的重复或完全替代每一个画面区域。添加的第三种“预测模式” 可以发送一种精炼帧间差分近似,使得压缩性能得到进一步的改善。
通过加入运动补偿预测,帧差细化的概念也迈出了一步。大多数视频内容的变化通常是由于相对的成像平面所描绘的场景中对象的移动而产生的,即使是少量运动也可能会导致图片区域中的像素值差异很大,尤其是接近一个物体的边缘的区域。通常情况下,用空间位置的几个像素取代前画面的某个区域,这就使得发送帧差分近似信息的数量显着减少。使用这种空间位移形成一个近似位置的方法被称为运动补偿,使用编码器搜索最好的空间位移近似的方法被称为运动估计。因为相邻帧画面相同或基本相同,将这种画面群的第1幅画面作为I画面,将它送入编码器。编码器首先将它分为许多片、宏块、区块等,将各区块分割为8×8=64点阵列,再进行Z字形描述和DCT变换,将64个亮度(或色度)取样数值变换为64个DCT系数,再对64个系数值分别进行相应的量化,经量化处理后再进行可变长度编码处理,即得到了代表一个区块数据的最短的数码。至此,完成了该画面群第1帧的第1列图像中第1宏块的编码。依次类推,可得到第1帧画面的全部压缩数据编码。原为二维空间的一帧图像信息已经转变为一维空间的串行数据,这些数据被全部存储起来,成为继续进行数据处理的基础。
完成第1帧图像压缩编码后,接着输入第2帧图像。编码器按照相同的方法步骤对第2帧进行压缩编码,即得到第2帧数据。编码器不再将第2帧数据进行完整的存储和传送,而是将它与第1帧数据进行比较运算。若运算中发现,两帧间数据差别很小,说明两帧图像差别不大,仅将其差值存入存储器,而舍掉其大部分重复数据。按照此方法再进行第3、第4帧编码,并进行比较运算,直到找到某一帧,差别较大且超过规定值时,再将此帧数据中与第1帧的差别(包括位移矢量和差值)部分存储起来,并将此帧数据排在第1帧(I帧)后面传送出去,该帧就是P画面。当传送I、P画面后,再传送3、4帧的差别数据,这些画面都是B画面。它们之间的差别不大,是处于I、P之间的画面。按照此程序和方法,可再选出许多组P和B画面。通常,每隔13~15帧后,再设置一个I画面,作为后续画面的参考基准。如遇到较新的场景,将出现一幅不相同的新画面,这幅新出现的画面也作为I画面。
图2.2 MPEG-1图像压缩编码器方框图。
代表亮度Y和色度分量Cb、Cr的二进制数码化信号,首先进入帧改组器,将画面分割为片、宏块、区块。区块经过比较运算电路再进入DCT电路、量化器、VLC电路,取得已压缩数据。再将数据送到多路混合器和传输缓冲器。传输缓冲器用于暂存压缩数据,并按照控制指令的先后按时序输出数据。
该缓冲器通过调整器与量化器相连接。调整器可用来检测缓冲器的缓冲区的数据暂存程度,并根据暂存数据量自动调整量化步长。在编码器内设置有反馈通路,它主要包括反量化器(Q-1)、离散余弦逆变换(IDCT)、相加器以及IPB画面帧存储器等。反馈回路用于预测图像产生,进行画面分类处理(计算、区分并处理IPB画面),主要用于帧间数据压缩编码处理。
2.2.2 视频解压缩
视频解压缩就是将压缩后的文件或数据流,没有损失的或者最大限度的还原成原始图像。其解压缩过程基本上是其对应压缩过程的逆运算。视频解压缩的方法一般包括熵解码,反量化,反变换,插值,重建,滤波,参考帧插入等。视频解压缩电路简称为解压电路或解码电路。图2.3是MPEG-1视频解压缩电路方框图,其电路结构比编码器稍简单一些。
图2.3 MPEG-1视频解压缩电路方框图
来自电路的压缩编码信号送到输入缓冲器,然后进入去混合电路,将图像的编码模式标志,运动向量(位移矢量)和图像数据分离开,分别送往帧存储器和解压缩主通道电路。主通道要处理I、P、B帧数据,这些数据已经按照图像编码系列的规定,以数据封包头标指出,这些数据分别暂存在缓冲存储器的存储区内,根据数据量大小暂存在容量不同的存储器区中。在微处理器控制下,先将I画面数据按序取出,送到可变长度码解调器,按照ROM存放的可变长度码对照表,逐一将编码时压缩的码位恢复为压缩前的DCT量化值,再将各区块分为64个数据的量化值逐位乘以反量化参数,这些参数位于ROM中存放的64位视觉心理模式量化表的相对位置,重新恢复为DCT频率系数,完成反量化过程。 经过反量化的数据,再送入IDCT(离散余弦逆变换)电路。这是另一次逆变换,也是通过查表法,将反量化值所代表的各频率余弦分量的幅值进行逆变换,重新恢复为DCT变换前的图像(Y、Cb、Cr)取样数据,从而取得代表图像压缩前的区块信息。4个区块的信息组成一个宏区块,若干个宏区块组成片,再由若干片组成完整画面的总数据,这就是I帧画面。这些繁重的相加工作都需要在加法器中进行。
恢复出来的I帧画面数据存入帧存储器。I画面与后续输入的P画面数据相加,可恢复出P画面,P画面也存入帧存储器。然后根据运动矢量和运动后图像差值(即B画面数据),与I、P画面存储数据在加法器中相加,并受编码模式信号的控制,以便决定I、P图像的成分为多少,从而恢复出不同前后的B帧画面。经过上述处理所得I、P、B各种画面数据都需要存入缓冲存储器,还要根据编码模式的指示及输出制式的帧频要求,按照I、B、B、P、B、B、P、B、B…B、I、B、B、P、B…的正常顺序进行重新编排,按照一定的速度从帧重排电路输出。输出的解压缩数据送到D/A转换器,转变为R、G、B三基色模拟信号。
视频编码器可将三基色信号编码为NTSC/PAL制彩色电视信号,并加入同步、消隐、色同步和彩色副载波信号等,以视频模拟全电视信号形式输出。这种输出形式的信号需要输送到电视接收机的AV输入端口。但是,有些老式电视机没有设置AV输入端口,为了适应这种现象,输出的视频全电视信号需要再一次进行高频调制,利用调制器以某个特定频道的RF调幅形式输出电视信号[13]。
2.3 本章小结
本章主要介绍了视频压缩的基本途径,包括采用亮度(Y)、色度(C)取样方式,将整幅图像分割为小区域进行分割处理和采用帧间和帧内数据压缩。同时阐述了视频压缩与视频解压缩的一些基础理论知识,详细介绍了视频压缩与解压缩的电路模型结构及基本原理。
第3章 Simulink视频与图像处理模块
3.1 Matlab简介
Matlab为矩阵实验室的简称。它除具备卓越的数值计算能力之外,还提供了极具专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。当前流行的Matlab 5.3/Simulink 3.0拥有多达数百个内部函数的主包和三十几种工具包。工具包又可分为功能性工具包和学科工具包。功能工具包用来扩充Matlab的符号计算能力,可视化建模仿真,文字处理及实时控制等功能。学科工具包为专业性较强的工具包:控制工具包,信号处理工具包,通信工具包等都属于此类。
Matlab在数学类科技应用软件中在数值计算方面能力首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等功能,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域[17]。Matlab有着强大的功能,可以
展开阅读全文