谢锡海, 张亚囡
(西安邮电大学 通信与信息工程学院,陕西 西安 710121)
基于MPEG—2的图像压缩系统设计*
谢锡海, 张亚囡
(西安邮电大学 通信与信息工程学院,陕西 西安 710121)
针对未压缩的视频图像信号的高传输码率,占用存储空间大进行了研究,提出了一种基于MPEG—2的图像压缩编码系统,实现数字图像的无线传输,并输出传输流。通过视频解码芯片SAA7114H和编码芯片SAA6752H构成压缩模块,分析原始视频图像,经D1格式采集压缩后,分别以不同的速率传输时,视频图像质量变化,表明压缩倍数越高,图像质量越差;由SAA6752芯片引脚采集数据,将采集到的视频流数据转换为十六进制,分析数据结构及排列规律符合传输流特性。该设计方法不仅能保证良好的图像质量,提高视频图像压缩率,且能正确提取传输流。
视频采集; 压缩编码; 解码; 传输流
随着通信数字技术的快速发展,促使有线数字电视不断推广与普及,特别是对数字图像处理技术的应用已成为当今研究的热点。由于视频图像数据量较大,在传输中这样高的数据传输率和存储所需的巨大容量成为发展数字视频通信的障碍[1]。根据不同时期和不同的应用,MPEG(moving pictures experts group)出台了一系列压缩编码标准,其中,基于MPEG—2的视频图像压缩标准规范,能用来支持高的图像分辨率,且对高速实时活动图像予以支持,而在数字电视网络中广泛使用的是MPEG—2编码的传输流(TS)码流[2]。
本文设计了一种基于单片机的视频采集和压缩编码的系统,该系统采用飞利浦公司视频解码芯片SAA7114采集模拟视频信号,经视频编码芯片SAA6752压缩编码,通过对芯片引脚配置,采集数据流并获得TS流。
1.1 MPEG—2系统
广播级的数字图像适合在MPEG—2系统中编码与传输,MPEG—2还提供了多路节目的复用方式。另外,MPEG—2在ATM信元的适配上也能够进行兼容[3]。MPEG—2标准规范主要由系统层、视频层和音频层三部分组成。其中系统层是描述不同的比特流(视频、音频、数据)如何各路复用和同步,以适应于存储和传送[4]。MPEG—2系统包括两种编码方式TS和节目流(PS),两种编码方式的区别在于TS的包长度固定,而PS包的长度是可变的。如果出现某一PS包的同步信息丢失,接收机就不能确定下一包的同步位置,造成失步和严重的信息丢失。而对于采用固定长度的TS,当某一TS包的同步信息传输错误时,接收机通过在固定位置测试其它包的同步信息,来恢复当前包信息,有更强的抗干扰能力。MPEG—2系统结构如图1所示。
图1 MPEG—2系统图Fig 1 MPEG—2 system diagram
传送流由2层构成:系统层和压缩层。系统层分为两个子层,一个用于多路复用宽操作(传送流分组层),一个用于特定数据流操作(打包基本流,PES分组层)[5]。
1.2 MPEG—2视频压缩算法原理
同MPEG—1相比MPEG—2图像编码做了进一步的改善。由于图像信号的隔行扫描的性质,MPEG—2提供了两种模式,分别为“按帧编码”与“按场编码”,它们对运动补偿和DCT做了进一步的扩展,从而显著提高了压缩编码的效率。MPEG—2基本编解码模型如图2所示,图中虚线上半部分实现视频编码功能,虚线下半部分实现视频解码功能。
图2 MPEG—2编解码模型图Fig 2 MPEG—2 encoding and decoding model
基于运动补偿的DCT是MPEG—2使用的有损压缩编码技术。编码部分的预处理包括插入和过滤,并将图像分割成宏块。帧间编码,运动估计对宏块的运动进行估测和补偿来减少视频图像的时间冗余;帧内编码,宏块依次经过DCT 、量化和变长编码后输出压缩的视频数据并放入缓存中;用运动预测建立当前图像和已传图像的预测器,两者差值进行DCT,并对DCT系数进行量化和变长编码;逆量化和IDCT的目的是为完成参考帧的重现。解码器对变长编码进行解码、逆量化和逆DCT重构帧内编码图像,后处理插入并过滤结果图像以便显示[6]。在MPGE压缩编码中,帧内压缩采用8×8的图像块[7],将64个数据作为一个单元,按照顺序的先后进入编码器,在一些实用的方法被成功的实现之后,选用了一个8×8块来作为MPEG帧内之间的图像压缩规范。
2.1 系统硬件总体设计
系统由以下几部分组成:
1)视频输入部分:视频输入端有两路模拟输入口,一路称之为CVBS信号,亮度和色度信号一同传输;另外一路为Y/C信号,色度信号和亮度信号分开传输[8]。用Philips公司的SAA7114[9]实现A/D转换的功能。
2)MPEG—2编码部分:由SAA6752HS和64M SDRAM组成。在SAA6752HS中存在着多个数据处理的模块,且每一个处理器与控制模块是彼此独立的,因此,模块与模块之间的数据信息大部分是经过FIFO存储器或者是外部SDRAM的传送来完成的。芯片SAA6752HS能够形成打包的基本流,且这种基本流能根据不同的应用而划分为不同的格式。
3)控制部分:Atmega16是压缩编码系统的控制核心,主要用到单片机的两线串行接口TWI,只需两根线,分别是时钟SCL和数据SDA ,连接SAA7114和SAA6752的SCL及SDA管脚。
SAA7114主要是用来捕捉和缩放视频图像,通过向VGA控制器的图像端口提供数字视频流,经VGA的帧缓冲器显示,或者用于捕获系统内存[9]。
SAA7114的输入在这里所采用的是CVBS(自动增益)fromAI24及Y(自动增益)from AI12 +C(增益与Y的增益相适应)from AI22。
SAA7114的输出过程:原始图像的数据先通过A/D变换,再进行解码所得到的数字视频信息从SAA7114的I端口输出,当对SAA7114的寄存器A[93H[4:0]]及寄存器B[C3H[4:0]]的参数进行不同的配置时,它可以提供不同的数据输出格式。扩展端口能把其它电路的数据流传送到图像端口。
EMPRESS SAA6752芯片可产生打包的ES流,可以根据不同的应用对码流进行设定,一种是对应于 DVD格式的 PES 流,其码率可变的;另一种是对应于 TS 的 PES 流,其码率是恒定的[10]。
2.2 主要芯片连接
SAA7114和SAA6752HS作为I2C从设备与Atmega16相连,见图3所示。
图3 SAA7114与SAA6752接口Fig 3 SAA7114 and SAA6752 interface
在具体设计环境下,输入信号是PAL制的。对于PAL制,场频是50 Hz。采样频率fs=625×25×N=15 625×N=13.5 MHz,N=864。其中,N为每一扫描行上的采样数目。
SAA6752的VCLKI与ICLK管脚连接为系统提供27 MHz的时钟信号。PAL制式扫描后的图像帧率为25 fps,一帧分2场,对所有的制式来说每一行有效样本数均为720个。本文中采用4︰2︰2的彩色图像的采样格式,在这种格式下,Y信号采样频率13.5 MHZ,而Cb与Cr则采用 6.75 MHz的采样频率。信号输出是从图像输出端口I端连续8 bit模式输出,带有时序参考码字(ICODE=1),视频信号的数据格式为4︰2︰2格式。
2.3 系统软件控制
本文实现了以飞利浦芯片SAA7114和SAA6752为核心的视频编解码子系统。摄像头采集视频图像,软件开发环境程序是Visual C++6.0,通过SAA7114数字化后得到符合ITU601规范的数字信息,再由SAA6752对其进行编码处理,得到TS码流。对SAA7114和SAA6752内部参数配置是通过微处理器ATmega16进行控制[9]。总流程图如图4所示。
图4 总程序流程图Fig 4 Flow chart of total program
系统采用的芯片大都是表面贴装元器件,外部主要是电阻器、电容器、电感器、晶振。通常情况下,能够通过示波器显示的波形来判断设计系统是否正常工作,另外对IDQ,I—PORT,IGPH,IGPV,ICLK等引脚利用逻辑分析仪观察详细的输出数据流[11]。
原始视频图像占内存为108 M,图5所示为摄像机采集原始视频图像截取的图片;图6(a)是在以D1格式采集压缩后并以2 M的速率进行传输的视频上截取的图像;图6(b)是以D1格式采集压缩后并以3 M的速率进行传输的视频上截取的图像。图6(a)与图5相比,视频压缩倍数为54,图6(b)与图5 相比较,压缩倍数为36。图6(a)和图6(b)对比可知,以3 M码率进行视频传输的图像质量要高于2 M码率的视频图像,由此可知,压缩倍数越高,图像质量越差。
图5 原始视频图像Fig 5 Original video image
图6 2M和3M码率截取图像Fig 6 2M and 3M code rate captured image
通过对SAA6752的CLKOUT和PDO0引脚观察TS的时钟及波形,数据输出接口选用并行8主/从输出接口,时钟信号为6.75 MHz,如图7。
8路输出数据构成一个字节,将生成的TS流波形数据转成二进制视频文件存储,通过Flex HEX软件打开经压缩采集后的视频文件,显示传输流数据信息。
图7 截取视频的TS数据Fig 7 TS data of captured video
从图中数据看出,相邻47开头数据段之间有187个数据,且连续3个包的开头字节均为47,可得采集的数据流为所需的传输流。
TS流的基本单位为TS包,一个TS包以固定同步字节0x47开头,用于检测码流是否同步。一个包的长度一般情况下固定为188字节,有些情况是204字节,204字节的格式仅仅是在188字节的后面加上16字节的循环冗余校验码(CRC)数据,其他格式一样,多用于高清节目中。若包长不够188字节,则用0xFF来填充。TS包是由包头、自适应区和负载组成,包头包含了PID(包的ID值,决定TS包中传输的数据类型)、是否存在调整字段、是否存在负载等重要信息。调整字段会包含系统时间信息(PCR),而有效负载可为PES包或节目详细信息(PSI)[12]。TS的包头具有同步、包识别、检错和加密功能。
在保证图像质量的前提下,利用基于MPEG—2的压缩编码方法对视频图像进行压缩,压缩倍数可达到54。结果表明:压缩率越高,图像质量越差。该过程的核心是对SAA7114H和SAA6752H飞利浦芯片参数的设置,实现以D1格式进行采集压缩视频图像,并能正确获取TS,不但省去视频编码的软件研发过程,且保证了视频图像的压缩效果,达到预期研究目的。视频由图像组成,在一些情况下,需要采集某段时间的一幅静止图像或某一帧代表该段视频信息存储,进一步减小存储空间,因此,可在此基础上为后续研究分析TS结构并进行帧图像提取作为下一步的研究内容。
[1] 韦 宁.基于MPEG—2的图像压缩编码及解码的硬件实现[D].哈尔滨:哈尔滨工程大学,2005.
[2] 李 叶.基于TS流的数字电视播出系统的研究与实现[D].长沙:中南大学,2014.
[3] 阴亚芳.基于MPEG—2 的高清晰会议电视系统终端设备[J].西安邮电学院学报,2004,9(1):44-47.
[4] 李虎成.MPEG—2 TS在试飞遥测中的应用[C]∥2011年航空试验测试技术峰会暨学术交流会,西安:航空工业测控技术发展中心、中国航空学会测试技术专业委员会、《测控技术》杂志社,2011:161-164.
[5] 钟玉琢,王 琪,赵 黎,等.MPEG—2运动图像编码国际标准及MPEG的新进展[M].北京:清华大学出版社,2002.
[6] Gibson Jerry D,Berger Toby.Digital compression for multimedia principles standards[M].李煜辉,朱山风,段上为,等,译.北京:电子工业出版社,2000:237-238.
[7] 李宥谋.MPEG的编码技术[J].西安邮电学院学报,1996,1(3):34-38.
[8] Philips Semiconductors Inc.2000.SAA7114-H Date Sheet[S].
[9] 孙会军,侯志伟.信号压缩编码系统设计[J].黑龙江科技信息,2011,3(9):88.
[10] 陈 静.基于单片视频压缩芯片的MPEG—2编码器设计与实现[D].南京:南京理工大学,2010.
[11] 杨建祥.数字视频图像质量的测量方法[J].数码影像时代,2011(8):50-51.
[12] 罗 影,康红娟,杨先伟.一种可伸缩的传输流收录方法[J].通信技术,2015,48(4):485-488.
张亚囡,通讯作者,E—mai: zhangyananxy@163.com。
Design of image compression system based on MPEG—2*
XIE Xi-hai, ZHANGYa-nan
(School of Communication and Information Engineering,Xi’an University of Posts and Telecommunications,Xi’an 710121,China)
Aiming at problem of large storage space occupied by high transmission code rate of uncompressed video image signal,a video compression coding system based on MPEG-2 is proposed,realize wireless transmission of digital images, and output transport stream.By video decoder chip SAA7114H and encoding chip SAA6752H constitute compression module,analyze original video image,video is captured and compressed by D1 format,respectively,video image quality changes while being transmitting,at different transmission rates,indicating that the higher the compression ratio is,the worse the image quality is;collect data by pins of SAA6752 chip,the captured video stream data is converted to hexadecimal,analyze data structure and arrangement law with the transport stream characteristics.The design method can not only ensure good image quality,increase video compression ratios,but also can extract transport stream correctly.
video capture; compression coding; decoding; transport stream
2015—11—17
陕西省科技攻关资助项目(2014K05—20)
10.13873/J.1000—9787(2016)10—0089—04
TN 919.8
A
1000—9787(2016)10—0089—04
谢锡海(1967-),男,陕西汉中人,教授,硕士研究生导师,主要从事信号与信息处理方向的研究。