基于DSP的H264数字视频服务器设计
0 引言
随着科技的日新月异,视频监控应用得到了飞速发展。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。近年来,随着互联网的大范围普及以及计算机网络和图像处理、信息传输技术的发展,视频监控技术也有了长足的发展。视频监控已经渗透到教育、政府、娱乐场合、医院、酒店、运动场馆、城市治安等多种领域。目前安防监控的要求对于设备提出了较高的要求:比如对于传输的实时性,画面的质量的要求。本文实现一个基于DSP的H264视频监控服务器的(DVS)设计,它具有较高的压缩比,低误码率以及较低的失真对视频进行编码,由TCP/IP协议实现了视频的网络输出,可以达到视频传输的实时性。
1 系统设计
如图1所示,本系统采用TI的DM6467处理器,DSP架构的硬件平台系列,具有强大的计算能力,在低功耗的前提下可达到1.2GHz,以及包含了H26x的编解码库,可以满足对视频算法的需求,此外,此平台支持多种外设,诸如PCI、LAN、以及各种视屏输入,广泛应用于视频会议、监控系统、机顶设备。因此,此平台可以用来设计H264的视频服务器。
视频服务器的系统构架主要包括视频采集模块、视屏编码模块以及网络传输模块。
在系统上电之后,加载程序编译成功的.out文件,初始化DSP/BIOS系统,以及视频编码库。视频采集处理过程如下:摄像机的PAL视频通过AD转为数字信号,并且通过内部算法转为YUV(4:2:2),然后通过接口EMIF把数据传递至存储器EEPROM中,然后DSP采用视频编码库中的H264算法对数据进行压缩,通过TCP协议将压缩后的视频信号通过以太网LAN传输出去,从而构成了视频服务器,而客户端只需要按照TCP协议接收数据并解码,就可以实时显示图像。
1.1 视频采集模块
图3为视频采集模块的原理图,CVBS为视频输入,可以将模拟视频信号转换为YUV分量,输出为ITU—R BT.656,其中对该编码器的配置是通过IIC总线将指令写入内部寄存器,就可以正常采取视频信号并把数据传给存储器做进一步的处理。
在此系统中,使用了ROM对视频信号做缓存以及编码处理(图4),芯片通过CS、OE来控制芯片并对其做读取操作。它和DSP的连接示意图如图4所示。
1.2 H264算法
H264具有压缩率高以及失真率低的优点,其实现过程如下:1)把当前的图像划分成若干个子模块,以子模块作为编码的基本单元;2)通过当前帧减去预测值经过变换、量化、重排、熵编码,从而加强了压缩率;3)采用了时域运动补偿的方法,从而减少了冗余以及增强信道传输的容错性。
DM64xx芯片本身具有H264编码库,在开发的时候只需加载h264enc.lib并调用函数int h264.enc即可,参数声明如下:
Unsigned char*pic原始图像首地址
Unsigned char*ostream编码后输出数据流缓冲地址
int channel对应的编码通道号,不重叠的正整数
int *frametype帧类型
1.3 TCP协议以及IEEE802.3以太网
控制传输协议(TCP)是一种可靠的、基于字节流的传输层通信协议。高可靠性是通过发送数据前先建立连接,结束数据传输时关闭连接,在数据传输过程中进行超时重发、流量控制和数据确认,对乱序数据进行重排校验等机制来实现的。利用协议网络通信,通信进程间相互作用的主要模式是服务器,客户机模式通信的具体编程由套接字来实现,套接字是网络程序设计接口,分为流式套接字和用户数据报,流式套接字提供一种面向连接的、可靠的双向数据传输服务,实现数据无差错无重复的发送,流式套接字内设流量控制,被传输的数据看做是无记录边界的字节流在协议族中,使用TCP协议实现字节流的传输,当要发送大批量数据或者对数据传输有较高的要求时,使用流套接字。
在本设计中,如图5所示,首先创建Socket,绑定IP地址和端口值,协议设置为IPv4同时设定掩码值,设定最大字节数目,然后创建连接请求,若连接成功则从缓存区读取若干字节发送出去,否则的话将阻塞在该进程中。此外为了保证视频的流畅性,在网络情况不好的情况下进行丢帧处理,同时在缓存区设置标志位,当缓存区的数据全部被套接字处理之后,该标志位设置为有效,从而清理缓存区,从而加载新的视频数据做进一步处理。
该处理器外设的以太网结构如图6所示。在DSP处理器和EMAC控制器之间用设备总线相连,EMAC控制器可以使用DSP内存,并且控制中断和复位,及内存使用的优先级。另外EMAC单元还可以提供网络和处理器内核的接口,支持1 0、100Mpbs数据传输。MDIO可以查询和控制以太网PHY,它可以配置以太网的参数,从而达到纠错的目的,同时又可以获取数据传输结果。
2 客户端的实现
客户端无论是Windows或者Linux系统都具有So
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 如何监控和保护Linux下进程安全 (07-12)
- 基于MPEG-4的嵌入式多媒体监控系统中压缩/解压卡的设计与实现(10-15)
- 基于TMS320DM355的四路视频多媒体监控器(06-13)
- Blackfin助您无线IP视频监控的应用(06-24)
- 基于嵌入式Linux的远程监控系统的设计(11-25)