嵌入式MPEG—4解码系统的设计与实现
扫描二维码
随时随地手机看文章
摘要:介绍了一种嵌入式高图像质量的mpec—4视频流解码系统。该系统以嵌入式linux作为操作系统,采用硬解码方式,把ide接口设备或网络端口输入的mpec—4视频码流(es、ps和ts)转换成pal/ntsc制式的电视信号输出。重点讨论了系统控制和mpeg—4解码部分的设计。 关键词:嵌入式系统 mpeg—4 mips随着通信和网络技术的飞速发展,多媒体及其视频流应用越来越广泛,同时用户也对视频传输速率和图像质量有更高的要求,mpeg-4标准适时地解决了多媒体压缩存储和传输的问题。但是目前多数播放器都是在pc机上运行,应用范围受到很大限制。研究和开发一种嵌入式的mpeg-4解码系统终端具有重要的现实意义和实用价值。mpeg-4标准是由国际运动图像专家组于2000年10月公布的一种面向多媒体应用的视频压缩标准。它采用了基于对象的压缩编码技术,在编码前首先对视频序列进行分析,从原始图像中分割出各个视频对象,然后再分别对每个视频对象的形状信息、运动信息、纹理信息单独编码,并通过比mpeg-2更优的运动预测和运动补偿来去除连续帧之间的时间冗余。其核心是基于内容的尺度可变性(content-based scalability),可以对图像中各个对象分配优先级,对比较重要的对象用高的空间和时间分辩率表示,对不甚重要的对象(如监控系统的背景)以较低的分辩率表示,甚至不显示。因此它具有自适应调配资源能力,可以实现高质量低速率的图像通信和视频传输。
图1
mpeg-4以其高质量、低传输速率等优点已经被广泛应用到网络多媒体、视频会议和多媒体监控等图像传输系统中。目前国内外大部分成熟的mpeg-4应用均为基于pc层面的客户端和服务器模式,应用在嵌入式系统上的并不多,且多数嵌入式mpeg-4解码系统大多使用商业的嵌入式操作系统,如windows ce、vxworks等,成本高、灵活性差。如以嵌入式linux作为操作系统不仅开发方便,且可以节约成本,并可以根据实际情况进行裁减,占用资源少、灵活性强,网络性能好,适用范围更广。下面详细地介绍此嵌入式mpeg-4解码系统的设计原理、硬件和软件组成。1 系统设计原理系统设计包括硬件和软件。硬件主要分控制系统、mpeg-4解码系统、输入数据源三部分。数据源可以是ide接口设备(如硬盘)或网络端口。控制系统对系统各部分进行监测和控制、完成数据流的传输等。如图1所示,它主要由主控芯片、flash和sram组成。主控芯片通过pci总线控制系统其他模块,是控制系统的核心;flash里固化嵌入式linux操作系统,存放应用软件和备份数据;sdram作为内存供系统运行使用。mpeg-4硬件解码系统采用硬解码方式,负责将输入的mpeg-4数据流解码成普通的电视信号,其核心是解码芯片。为解决数据流不稳定的问题,解码芯片通常使用sdram进行数据缓冲才可以保证正常解码过程,解码芯片的输出数字音频、视频数据还要经数模转换器(dac)转换成模拟电视图像信号和声音信号。解码芯片通过i2c总线发送指令配置音、视频数模转换器。整个系统框图如图1所示。
图2
软件主要包括嵌入式linux移植、解码驱动和应用程序编写。嵌入式linux移植到由主控芯片flash控制器控制的flash里,操作系统程序文件分成五个主要部分:bootloader、kernel、ramdisk、usr和boot_param,分别放在flash内的五个模块中。根据不同模块的具体功能采用不同的文件方式:bootloader、kernel、ramdisk和boot param,开发好后不需要动态改变,且容量小,使用节省空间的romfs只读文件系统,usr模块内容较多并需要进行读写操作,要使用支持动态擦写保存的jffs文件系统。2 系统硬件设计系统的硬件设计主要分三部分:数据源接口设计、控制系统设计和解码系统设计。数据流先要从数据源经数据源接口送至pci总线,此系统数据源接口为pci总线上的pci/ide桥芯片和网络控制芯片。这部分采用通用的电路,本文不做详细介绍。2.1 控制系统设计控制系统调配系统资源、控制系统各个部分以及数据流的传输。主控芯片采用东芝公司的tmpr4925xb-200。它是一款64位mips,内部集成了nand flash控制器(flashc)、32位pci总线控制器(pcic)、4通道dma控制器、4通道sdram控制器(sdramc)、外部总线