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,其间对该编码器的装备是经过I%&&&&&%总线将指令写入内部寄存器,就能够正常采纳视频信号并把数据传给存储器做进一步的处理。
在此体系中,运用了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体系都具有Socket API,能够完成TCP传输协议,首要创立Socket并衔接服务器端,并读取来buffer的数据,在接纳到数据之后,需求经过解码将视频显现出来,经过加载动态链接库,调用视频播放器的API接口函数即可。Windows程序加载DLL的流程如图7所示,客户端作业流程如图8所示。