当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引言     随着网络和多媒体技术的发展,视觉通信的重要性和需求急剧增加,如桌面视频会议、移动终端、基于因特网的视音频通信等。随之而来的是视频压缩技术的迅速发展和视频压缩标准的不断推出。国际运动图像编

引言

随着网络和多媒体技术的发展,视觉通信的重要性和需求急剧增加,如桌面视频会议、移动终端、基于因特网的视音频通信等。随之而来的是视频压缩技术的迅速发展和视频压缩标准的不断推出。国际运动图像编码专家组(MPEG)先后推出了MPEG-1、MPEG-2和MPEG-4.MPEG-4是由国际运动图像专家组于1998年11月制定的。它是一个面向多媒体应用的压缩标准,其应用覆盖范围远大于MPEG-1和MPEG-2等标准。从移动可视电话到专业视频编辑,既支持自然图像,也支持计算机合成图像。最重要的是它支持交互功能。这是由于MPEG-4采用了与其它标准不同的、基于对象的图像描述方式。目前,国内有关MPEG-4应用技术的研究及开发的工作正在悄然兴起。笔者在研究了MPEG-4视频标准之后,充分利用TMS320C6201的硬件资源和软件优化,实时实现了嵌入式MPEG-4视频解码器。


1 MPEG-4视频码流及主要算法
MPEG-4采用了基于对象的压缩编码技术。在编码前,首先要对视频序列进行分析,从原理图像中分割出各个视频对象,然后南分别对每个视频对象单独编码。每个对象都有自己的形状信息(shape)、运动信息(motion)、纹理信息(texture)。对视频对象的编码就是对这3种信息进行编码。MPEG-4通过运动预测和运行补偿来去除连续帧之间的时间冗余。运动预测与运动补偿的精度可以为整像素、半像素或1/4像素,另外还增了重叠运动补偿方式。与形状相关算法有:基于邻近信息的算术编码、水平和垂直填补、扩张填补等。与纹理编码相关的算法有:离散余弦变换(DCT)、量化、DCT系数的DC/AC差分预测、Zig-Zag扫描、游程编码、霍夫曼变长编码等。 笔者实现的是MPEG-4的SVP(Simple Visual Profile)视频解码。视频序列全部为矩形,所以不存在任意形状编码。视频序列按照视频对象层VOL(Video Object Layer)、视频对象平台VOP(Video Object Plane)、宏块MB(Macro Block)视顺序编成一串码流。1个VOL中包含多个VOP,1个VOP中包含多个MB。MB是码流中的基本单位。MB又分为帧内MB(intraMB)、帧间MB(imterMB)。帧间4VMB(inter4VMB)等几种。在I-VOP中,所有的宏块都是intraMB。P-VOP中宏块有多种可能,可以是intraMB、interMB或inter4VMB。P-VOP中的interMB或inter4VMB的码流描述如下: MB码流=MB形状+MB头信息+MV+DCT纹理信息(Y1+Y2+Y3+Y4+U+V) 由于是矩形帧,所以无形状编码MB shape部分。 MB头信息中主要包括4个参数:not_coded(本MB是否编码的标志位)、mcbpc(色度块U和V是否编码的标志位)、cbpy(亮度块Y1~Y4是否编码的标志位)、dquant(本MB中DCT系数量化步长的增量值)。



MV为运动矢量,实际写入码流的是运动矢量误差值(ΔMV),这是因为编码中MV采用差分编码。如果MB是一个interMB,则表示本MB只有1个运动矢量,所以在码流中只传1个ΔMV;如果MB是一个inter4VMB,则表示本MB有4个运行矢量,即每个子块(block)有1个运动矢量,所以在码流中需传送4个ΔMV,即mvd1、mvd2、mvd3和mvd4。 最后是一连串经过量化、Zig-Zag扫描、游程编码和霍夫曼变长编码的DCT系数,按照Y1、Y2、Y3、Y4、U和V的先后顺序编码。
2 TMS320C6201 DSP及EVM板介绍
2.1 TMS320C6201 DSP
TMS320C6201是美国TI公司的C6000系列新一代数字信号处理器中的第1个产品,于1997年3月发布。它是一个32bit的定点DSP芯片。该芯片具有8个相互独立的功能单元,可以工作在200MHz的CPU时钟频率,全速运行时可达到1600 MIPS。其主要特性包括: *芯片内核采用VelociTI TM先进的超长指令字(VLIW)结构,具有高度的并行性和快速的运行能力,每个时钟周期最多可同时执行8条32位指令,并且所有的指令都可以有条件执行; *具有丰富的指令系统且可对字节操作,支持16位的乘法运算; *有4个彼此独立的快速的DMA通道,可以进行多种形式的数据传输。 *片内数据存储区和程序存储区各64KB,并支持多种数据宽度8位/16位/32位;32位的外部存储器接口,提供与片外SDRAM、SDSRAM和SRAM的直接接口。 TMS320C6201的以上特点,能满足视频图像处理的实时性要求。例如:TMS320C6201 DSP计算1块8%26;#215;8 IDCT(逆变散余弦变换)仅用(168+62)个时钟周期,为1.15μs。
2.2 EVM板
TMS320C6201 EVM板是一块带有PCI接口的插卡,除了可以插在计算机主板的PCI插槽上使用外,还可以外配电源作为独立的模块工作,并通过XDS510仿真器进行调试。该板上配有1片TMS320C6201 DSP,最高工作在160MHz。 EVM板上提供的片外存储器包括1组64Kbit%26;#215;32(256KB)、133MHz的SBSRAM,配置成CE0;2组4MB、100MHz的SDRAM,分别配置成CE2和CE3;另外还可以通过板上的外部存储器接口(EMIF)扩展存储空间,这些扩展存储器配置成CEI。


3 用TMS320C6201实现MPEG-4 SVP解码
3.1 MPEG-4视频解码原理
MPEG-4的一个VOP的解码过程如图1所示,解码器用这一过程从编码位流中恢复视频对象。不难看出,解码器主要由形状解码器、运动解码器和纹理解码器3部分组成。
3.2 程序流程
整个程序采用模块化设计,以优化C语言编程为主。限于篇幅,仅列出主程序流程(如图2所示)和MB解码流程(如图3所示)。 主程序在初始化后,首先从码流中解出VOL和VOP的头,然后根据这些头信息以宏块为单位进行解码。MB解码单独做成函数,也是首先解出头信息,据此判断出宏块类型:帧内MB、帧间MB或帧间4VMB。帧内MB解码是以1块为单位作纹理解码,解出的纹理值在block[6][64]中,最后存入解码后宏块行缓存区内;2种帧间MB解码相同部分都是先解出运动矢量MV,根据MV进行运动补偿得到预测值存入解码后宏块行缓存区,再以块为单位进行纹理解码,解出残差值存入block[6][64]中,最后将block[6][64]加入到解码后宏块门缓存区中得到最后结果。不同的是,在解码MV时intraMB解出1个MV;而inter4VMB解出4个MV。因此,运动补偿时,一个按宏块做,一个按块做。另外还有一种情况,就是P-VOP中的MB没有被编码(not_coded=1),码流中没有此宏块的数据,应该MV=0、DCT系数全为0处理,即从前一帧同样位置处找到参考块作为当前宏块的结果。
3.3 存储器分配
MPEG-4 SVP解码器是在EVM板上编程实现的。由于TMS320C6201 DSP片内数据存储空量只有64KB,而图像处理的数据量非常大,因此,合理有效地分析存储空间是解码设计中的关键问题。内部64KB存储空间内开辟了一些空间用于暂存解码中常用的一些信息,具体设置如表1所列。 表1 内部数据存储器空间分配 全局变量所占空间/B 变长解码(VLD)表 4906 Zig-Zag扫 192 VOL、VOP和MB的头信息 108 DC/AC预测和MB模式 5560 MV预测 9504 量化步长 396 解码输出缓存区(1个宏块行) 8448 输入的压缩码流缓存区 10K 合 计 38.3K 输入的压缩码流和解码后的视频输出都存储在片外。输入的压缩码流在程序开始前由PC机传输到EVM板的外部存储器中保存,解码时分批将数据通过DMA方式复制到片内。片内设置1个压缩码流缓存区。解码后的视频序列存放在外部存储器中,在内部缓存1个宏块行,每解完1个宏块行后,就用DMA传输到外部存储器中。
3.4 程序优化
(1)软件开发流程及开发工具 整个程序的编写和调试按照C6000软件开发流程进行,流程分为:产生C代码、优化C代码和编写线性汇编程序3个阶段。使用的开发工具是TI的集成开发环境CCS(Code Composer Studio)。在CCS下,可以对软件进行编辑、编译、调试、代码性能测试(profile)等所有工作。
(2)程序优化措施 为使程序优化,采取如下措施: ①为编写出优化的C程序,在编程时尽量按照C6000环境下支持的优化C的方法进行编程,这样有助于C编译器产生高效的汇编代码。 ②使用TI提供的库函数,大大提高了编程效率。 ③使用DMA传数,提高了CPU的效率。 在解码程序中用DMA方式实现了下列数据的传输: *码流输入——码流从片外存储器传输到片内; *解码后的结果输出——解码完一宏块行后,将结果从片内传输到片外保存; *顶部和低部的填充; *运动补偿时,将在片外找到的参考块传输到片内。
(3)采用线性汇编对某些程序段做进一步优化。 为了提高代码性能,对影响应用程序的代码可以用线性汇编重新编写。 3.5 MPEG-4 SVP解码器的特性及测试结果 按照上述思路所实现的MPEG-4 SVP视频解码器完全符合MPEG-4的SVP规范,其特点如表2所列。输入图像分辨率可为QCIF或CIF,输入比特率为64Kbps、128Kbps和384Kbps,输出图像格式为4:2:0YUV,最大解码速率为30帧/s。 表2 MPEG-4 SVP视频解码器特性表 压缩标准 MPEG-4SVP 输入图像分辨率 QCIF(176%26;#215;144),CIF(352%26;#215;288) 像素精度 8bit/pixel 扫描格式逐行扫描 输入比特率/Kbps 64,128,384 最大解码帧率最高30帧/s 输出图像格式 4:2:0 YUV 在解码软件是在EVM板上调试通过的,解码时间可在CCS环境下测得。对于不同的图像解码所用的时间是有差异的。笔者对多种情况的码流进行了测试,在1秒内都能解出25~30帧,甚至更多帧从而实现了实时解码。
结束语
笔者在研究了MPEG-4的视频编解码算法之后,成功地在TMS320C6201 EVM板上编程实现子MPEG-4 SVP的实时解码,为最终设计出独立的MPEG-4解码器打下了基础。此解码器可以嵌入到某些移动终端中,用于解码VPEG-4码流,如PDA、机顶盒和住宅网关等;还可以与相应的编码器配套用于远程监控中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭