1 系统介绍
随着网络多媒体应用的推广,独立机型的嵌入式多媒体通信终端系统由于其成本低、性能好等优点已成为当前研究的热点. 具有网络通信功能的嵌入式视频编码器的研究便成为设计多媒体通信终端系统中的核心内容.嵌入式网络视频编码器的工作原理是将模拟视频信号数字化后按照国际标准压缩编码和网络协议处理后发送到网络,客户端可以从网络接收视频数据,解码后实时回放. 嵌入式视频编码器是一个高性能处理器和操作系统捆绑较为紧密、功能专一、设计专门的独立设备,不像插卡系统那样受通用计算机系统中其他软件硬件的影响,性能上更稳定可靠且易于实现系统的模块化设计,便于安装、管理和维护.
TM1300是一款高性能的多媒体处理器,可采用pSOS 嵌入式实时操作系统,并提供了功能较为完善的在线调试工具. 设计人员可以通过在线调试工具在pSOS 平台上开发TriMedia 的各种资源和调试各种应用程序,从而最终实现整个系统.本文提出了一种适用于IP 网络的基于TM1300 的嵌入式视频编码器,并详细讨论了整个系统的软硬件设计. 我们将该编码器应用于监控系统中,实现了实时的视频传输并取得了良好的图像质量. 网络视频编码器实现的主要功能有:视频信号的A/D转换,H.263 视频压缩编码、H.323网络协议处理 、摄像头控制和透明数据传输等.
2 硬件设计
2. 1 TM1300介绍
视频编码器的核心TM1300是Philips公司推出的针对多媒体应用的一款高性能DSP ,它能够进行高质量的视频和音频处理. TriMedia提供的强大的编译器和软件开发环境使开发人员无需使用汇编语言,而是利用C或C++语言来编写应用程序.
TM1300的核心是32 位的处理器,能够进行32 位的线性寻址,寻址能力可达到4GB. TM1300核心处理器采用VLIW 结构,可以在每一时钟周期内同时执行5条指令. TM1300 支持16KB 的高速数据缓存和32KB 的高速指令缓存,并且高速数据缓存是双向的. TM1300还集成了PCI 总线接口,既可以作为PC环境下的从CPU ,也可以用于嵌入式系统作为主CPU. TM1300 有别于一般的通用DSP,它有专门的视频接口、音频接口以及图像协处理器单元和可变长解码器单元等专门单元.图像协处理器主要用于图像的滤波或缩放,提高处理的速度; 可变长解码器则可以协助内核完成Huffman 解码.
2. 2 硬件总体结构
网络视频编码器的硬件总体结构如图1 所示.编码器将来自摄像头的模拟视频信号经AD转换芯片SAA7111A 转换成YUV 格式的数字视频信号,由TM1300 (1) 按H.263 协议压缩成多种速率的图像数据码流,然后通过PCI 总线传递给负责协议处理的TM1300 (2) ,视频压缩数据在这里封装之后最后通过PCI 总线传给以太网接口控制器RTL8139C(L) 为核心的以太网接口单元,由其送到IP 网上. 外围扩展模块以W77E58 单片机为核心,通过两个串口分别控制摄像头和收发透明数据. CPLD 主要完成地址译码、PCI 总线仲裁等功能. 开发的应用程序经编译连接,写入FLASH 中.编码器上电复位后通过EEPROM 中的自举程序将FLASH 中的程序搬移到SDRAM 中,系统开始运行. 根据以上功能可以将网络视频编码器的硬件设计分为以下四个功能单元: (1) 视频编码单元;(2) 协议处理单元; (3) 网络接口单元; (4) 外围扩展单元.
2. 3 视频编码单元
视频编码单元以TM1300 (1) 为核心,外围器件包括EEPROM , 16M SDRAM , 视频AD芯片SAA7111A ,双口RAM 和16MB FLASH. 其中,SAA7111A 是Philips的增强型视频输入处理器( EVIP) , 输入的模拟视频信号可以是CVBS(PAL ,NTSC 等) 和S-Video ( Y/C) ,A/ D 转换后输出符合CCIR-656 的YUV4∶2∶2 数字视频信号.视频输入原理图如图2 所示,SAA7111A 的YUV数字视频输出端口和TM1300 的视频输入端口(VI) 相连接, SAA7111A 的工作方式由TM1300通过I2C 总线进行配置.
SDRAM 是同步动态RAM ,它提供Burst 访问方式,用于存取应用程序,原始的数字视频数据以及处理的中间数据. TM1300 (1) 外接的SDRAM采用2 片(12rank 接口方式) ,每片容量为4 ×1M ×16bit ,总容量为16MB.
在上电复位后, TM1300 (1) 通过I2C 总线从EEPROM 中读取启动信息,配置时钟分频寄存器和SDRAM 寄存器,然后将EEPROM 中的自举程序搬移到自DRAM-BASE 开始的SDRAM 中并开始执行自举程序,自举程序将FLASH 中的相应的应用程序搬移到TM1300 ( 1) 和TM1300 ( 2) 的SDRAM 后,便各自开始正常工作了.
2. 4 协议处理单元
协议处理单元以TM1300 ( 2) 为核心, 扩展EEPROM 和16M SDRAM ,其电路与视频编码单元相应的内存接口和启动电路设计类似.TM1300(2) 的工作模式为从模式,在上电复位后,通过I2C 总线从串行EEPROM 中读取启动信息,配置时钟分频寄存器和SDRAM 寄存器. 然后等待由TM1300 (1) 完成系统启动的剩余工作,包括MMIO 空间、DRAM 空间的配置等, 等待TM1300(1) 将FLASH 中的相应的应用程序搬移到TM1300 (2) 的SDRAM 中, TM1300 (2) 便可以开始正常工作了.
2. 5 网络接口单元
网络接口单元原理图如图3 所示, 以REALTEK的RTL8139C(L)以太网控制器为核心,经以太网变压器ST6118T 和RJ 45 插座,通过双绞线连接到局域网. RTL8139C(L) 接口和PCI2.1规范完全兼容,可以很方便的挂在TriMedia 的PCI 总线上. 以太网接口把视频编码及协议处理后的数据按以太网的数据格式打包传送到以太网,同时自动监测接收端的数据变化,把接收到的数据拆包,传送到TM1300 (2) .
2. 6 外围扩展单元
外围扩展单元原理图如图4 所示, 以WINBOND公司的具有两个串口的单片机W77E58 为核心, 扩展IDT7130 双口RAM ,MAX232 和MAX485. W77E58 通过串口0 根据RS-485 接口标准实现对摄像头及云台的控制,通过串口1 传送RS-232 透明数据 . W77E58 和TM1300 (1) 之间通过自定简单协议对双口RAM进行存取,从而相互传递控制信息和数据. 外围扩展单元的功能是通过对W77E58 编程来实现的,为了提高程序运行的可靠性,在我们的单片机程序开发中还使用了看门狗定时器.
3 软件结构
3. 1 编码器软件体系结构TSSA
TSSA( TriMedia Software St ream Arc2hitecture) 是由应用层模块(Application) 与若干功能模块(Component ) 组成的建立在数据包交换上的一种流结构. 沿用了COM 技术中软组件对象(Software Component) 交互的思想,提出了对多媒体数据流进行处理的一种组件对象模型 . 其中应用层模块负责系统的初始化,采用软件流体系结构可以大大简化多媒体应用开发. TSSA 体系分为以下几层(见表1) :
各个功能模块的创建、启动、关闭以及状态的改变,接收某个功能模块的响应. 每个功能模块由OL层、操作系统抽象层、AL 层、设备库层组成. 功能模块之间、功能模块与应用层模块之间通过数据包交换数据,数据包在消息队列中传递,消息队列将各个功能模块、功能模块与应用层模块连接起来.
3. 2 编码器软件组成结构
编码器软件组成结构如图5 示(不包括单片机编程部分) . 主控模块相当于TSSA 中的应用层模块,负责创建、运行视频编码模块、协议处理模块和信道接口模块,并通过响应队列与命令队列在各功能模块之间转发控制与状态消息. 视频编码模块实现遵循H.263 协议的视频压缩编码 ;协议处理模块实现H.323 协议栈 ;信道接口模块实现将数据报封装成MAC 帧送上具体的物理信道. 各个功能模块之间通过双向消息队列交换数据.
主控模块和各个功能模块在pSOS 操作系统中都作为任务(task) 独立运行,它们之间任务状态的变化完全靠对资源的获取是否能够满足(通过调用pSOS 系统内核) 来实现.pSOS 根据任务的优先级来动态地切换各个任务,以保证系统的实时性. 为提高主控模块对状态消息的响应灵敏度,我们将主控模块的优先级设计比功能模块高.视频编码模块作为编码器的核心部分占用了系统的绝大部分资源从而决定了编码器的性能.针对多媒体通信系统的实时性要求,我们在编码软件模块的实现过程中采用了多种优化策略. 除了对编码程序代码进行结构和局部优化,视频压缩中选取快速运动估计算法等方法外, 特别针对TM1300 的CPU 体系结构,将循环展开进行并行处理,充分利用TM1300 提供的多媒体指令和编译优化等其它策略. 实践表明在使用上述优化策略后编码器的图像编码帧率提高了一倍以上.
4 结束语
基于TM1300 芯片的嵌入式网络视频编码器具有成本低,可靠性好的优点,并且由于在设计和实现过程中充分利用TriMedia 专门针对多媒体信息处理设计的硬件结构和TSSA 软件体系,因此同时获得了良好的性能. 嵌入式编码器遵循ITU-T H.263 协议,可以与兼容H.323 协议的终端实现互联互通,实现了实时的视频传输,获得了清晰流畅的运动图像. 码率可以从64kbps~1920kbps 选择来调节帧率和获得不同级别的图像质量. 在64kbps 带宽下,解码后的QCIF 和CIF图像的帧率可达到15fps以上. 通过适当提高码率,QCIF和CIF 图像的帧率均可达到25fps.