视频模块

2024-05-22

视频模块(精选八篇)

视频模块 篇1

关键词:大田,视频采集,嵌入式系统,农业信息化

0 引言

随着全球科学的飞速发展,计算机技术被普遍运用到社会的各个领域。结合农业科学、地球科学、信息科学等许多学科技术的数字农业,本质是对农作物相应生长环境的因素、病虫害情况、自身生长发育、土壤水肥情况变化进行观测记录,对农作物生长进行模型化表达;通过模拟来获得农作物更加准确的动态信息及更加准确地进行预警;再根据实时监测做出更科学、更适宜农作物生长的决策,使农业资源得到更合理、更科学的利用,从而降低农业的生产成本,生态环境也就得到很好的改善[1,2]。当今的农业生产只有坚持走数字农业的道路,才能把生态、社会和经济等方面的综合效益达到最高,也才能够使农业实现可持续发展[3]。

目前,最新视频监控系统主要用到的微处理器有ARM、FPG、SOPC等,大多数采用ARM作为主控芯片。Linux操作系统内核能够进行灵活的裁剪,工作的效率高、稳定性好,在移植方面的性能也非常强大;并且Linux的源代码是开源的,TCP/IP网络协议栈也十分完整;同时,蓝牙、红外线、局域网(WLAN)、GPRS、3G、ZigBee等无线技术[4,5]的飞速发展,为减少铺设电缆等投入、降低成本创造了条件。

1 设计原理及内容

1. 1 设计原理

为实现嵌入式田间图像视频采集,主控芯片选择使用比较广泛的S3C2440芯片,摄像头采用芯片为中星微ZC301的USB摄像头,把采集到的植物视频信息传输到主控芯片中。主控芯片包括把采集的视频信息显示到LED触摸屏上,还要把采集到的信息传输到PC机中。大田视频采集模块总体结构如图1所示。

软件方面包括USB摄像头的驱动程序、视频采集程序、LED实时显示程序网络传输程序的设计、调试、烧写等操作。

1. 2 主要研究的内容

1) 对ARM嵌入式Linux的内核,Bootloader、YAFFS根文件系统的制作和移植,即完成软件平台的搭建;

2) 中星微ZC301的USB摄像头驱动程序的设计;

3) 模块的视频采集程序的设计;

4) 设计驱动LED,来显示采集到视频信息的程序;

5) 设计TCP网络传输程序 ,把视频信息发送出去;

6) 把采集到的视频图像显示到PC虚拟机上。

2 总体设计

2. 1 平台设计

2. 1. 1 Boot Loader 制作和移植

首先按下任意键,使ARM9的程序运行停止在如图2所示的在DNW软件上出现主选择菜单界面;接着选择下载到flash,即选择‘1’,使用USB下载;在DNW软件上出现有关闪存的各个存储区间的情况。在上一步完成的基础上,再选择FLb. bin要烧写到NAND闪存中的位置,即选择‘0’,烧写到NAND闪存中的boot的位置;然后在DNW软件界面下执行配置选项中的操作执行指令,来进行下载地址、COM口和波特率设置;在DNW软件上点击USB Port选项中的传输操作,找到要烧写FLb. bin的位置,选中FLb. bin文件;文件传输完成后即完成了BootLoader的移植。

图2 菜单选项

2. 1. 2 系统内核剪裁、制作和移植

Linux内核的移植和引导加载程序的烧写过程几乎是相同的,添加内核的映像文件和BootLoader的移植都是相同的。也就是说,内核是下载到NAND闪存的kernel位置;内核移植时会出现移植进度条;移植完成后出现的和BootLoader的移植出现的提示一样。到此,Linux内核的移植就完成了。Linux内核配置对话框如图3所示。

2. 1. 3 FAFFS 根文件系统的创建和烧写过程

1) 使用目录创造命令创造根文件系统的目录,并创建在usr目录下的bin、dev、etc等目录,把根文件系统的框架搭建起来;

2) 创造根文件系统的设备文件,进入到dev目录下使用创造命令来完成;

3) 安装etc,进入到etc目录下进行解压etc. tar.gz;

4) 进入到内核目录下使用模块编译命令来编制内核模块;

5) 使用模块安装命令对模块进行安装;

6) 使用配置命令对其进行配置,编译命令进行编译,安装命令进行安装;

7) 进入到根文件目录下使用ln - s命令来进行链接,重新再编译内核;

8) 将编译生成的内核映像文件通过USB传输到开发板的根文件系统中。

图3 Linux 内核配置对话框

2. 2 软件设计

2. 2. 1 摄像头驱动程序设计

实现USB设备的即插即用功能的函数是摄像头探测函数,函数名称是sp_probe。该驱动程序中的数据传输模块使用takelet来实现对数据的同步快速传递,此函数对图像数据进行解码使用的是spcode. c程序。数据传输模块函数的具体名称是sp5_init_isoc,并且在sp5_open函数中挂有该函数的入口点。打开设备是同步传输数据开始的标志,这里实现数据传输的函数是sp_m_data,它把数据传送给驱动程序,驱动程序对数据的访问使用的是轮询法。Linux中的USB器件通过系统的USB层来操作下层硬件,流程图如图4所示。

2. 2. 2 模块视频采集程序

本系统的视频采集程序是基于V4L开发的,主要实现图像采集设备的初始化、读取和关闭等,基本操作流程如图5所示。

3 大田视频采集模块的安装与调试

3. 1 大田视频采集模块安装

执行该命令要在该软件文件所在的目录下,将视频采集模块和PC虚拟机连接起来。这样在PC虚拟机上就会显示出视频图像,如图6所示。

图5 大田视频采集模块视频采集流程

图6 视频采集模块创建连接端口命令

3. 2 大田视频采集模块现场调试

在齐齐哈尔嫩江大桥以北的农田里,对种植的土豆进行试验。模块调试如图7所示。

图7 模块调试一触摸屏

LED和虚拟机显示图像不清晰,是因为帧的大小等参数设置得小,修改后图像较原来清晰些;触屏和虚拟机图像显示不连贯是因为其显示程序中延时设置太大,以及内核需要优化小点。大田视频采集模块的对农作物视频采集稳定,触屏的视频图像显示非常清晰,且以非常高的质量把采集到的视频图像传输到了PC机上(见图8),在其上显示的视频图像清晰连贯,能对农作物进行非常有效的实时监测;操作人员能够从其中迅速获得农作物的自身生长发育情况和是否有病虫害等信息,而且大田的农作物视频信息采集受阳光的影响也很小。本次试验非常成功。

4 结论

本文将嵌入式技术和USB摄像头组合在一起,用于农业的生产视频监控中。本着成本低、体型小、功率消耗小和实用的目的,采用USB摄像头和嵌入式系统来构建大田视频采集模块。实验结果证明,系统采集、上传及显示效果良好,达到了提高农作物产量、降低成本的目的。

参考文献

[1]李权国,康玲,黄云.襄阳市数字农业发展战略研究[J].湖北农业科学,2011,50(5):1078-1080.

[2]曹宏鑫,赵锁劳,葛道宽,等.农业模型与数字农业发展探讨[J].江苏农业学报,2012,28(5):1181-1188.

[3]丘永萍.发展数字农业推进农业信息化[J].农村金融研究,2011(9):24-28.

[4]Jong-Han Lee,Ji-Eun Jung,Nam-Gyu Kim.Industrial Pipe-Rack Health Monitoring System Based on ReliableSecure Wireless Sensor Network[J].International Journal of Distributed Sensor Networks,2012(11):1-7.

视频模块 篇2

摘 要:近几年来,以MOOC为代表的新型在线开放课程在世界范围内迅速兴起,给教育教学改革带来了新的机遇和挑战。在线开放课程的教学内容已经实现了视频化,但辅导答疑部分依然沿用传统在线聊天的形式,以文字和图片作为载体交换意见和看法,难以给学习者带来良好的学习体验。为了克服这一不足,文章基于Flash Media Server和Flash技术构建了视频答疑模块,并对模块的整体架构与核心功能的实现进行了详细的分析和阐述。

关键词:在线开放课程;视频答疑;Flash Media Server;Flash

随着信息技术的飞速发展,课程的形态也在不断地寻求自身的变革与超越,实现了由传统课程向网络课程、视频公开课程与在线开放课程的更迭。在此过程中,最显著的特征无疑是视频所占的比重在逐渐提升。特别是近几年来,以MOOC为代表的新型在线开放课程和学习的平台在世界范围内迅速兴起,给教育教学改革带来了新的机遇和挑战。一般来说,MOOC主要由3个部分构成:一是课程讲座视频;二是课程测试;三是辅导答疑。当前,对于前2个构成部分的关注较多,如微课程视频制作中的注意引导设计[1],MOOC视频制作平民化方法[2],视频中内嵌的自动化测试[3]等。而对于辅导答疑部分,依然沿用传统在线聊天的形式,以文字和图片作为载体交换意见和看法,难以给学习者带来良好的学习体验。为了克服这一不足,本文提出了一种可行的方案,即用Flash的绘图功能完成辅导答疑模块的界面设计,用Flash ActionScript脚本语言结合Flash Media Server实现辅导答疑模块的文字答疑、音视频答疑等功能。总体设计

本模块由Server端(asc文件)和Client端(swf文件)构成,Server端和Client端的数据通过Real-Time Message Protocol(RTMP)进行实时传输,Web Server通过http服务把内容提供给Client端。模块的整体思路如图1所示。

使用Flash软件创建视频会议系统的客户端组件,生成的swf文件提供了该模块的用户界面,其中也包含了与Flash Media Server连接和控制的as脚本。服务器端则需要相关的应用程序目录,其中包含了运行客户端所需要的asc脚本,提供多个客户端之间逻辑控制和数据交换。如图2所示。

客户端程序需要发布到合适的位置以保证程序的正常运行,这里结合了Web Server。服务器端程序(包含asc、flv等文件)需要放置到正确的应用程序目录下面。具体的位置如图3所示。详细设计与功能实现

该模块主要有用户登录、音视频答疑、文字答疑等几个功能,篇幅所限只将音视频答疑功能的详细设计描述如下。

2.1 建立连接

视频聊天模块的实现,首先在客户端建立客户对象的连接。建立连接的关键代码如下:

conn = new NetConnection();

_root.conn.connect(“rtmp:// 服务器的IP地址/_ definst_”,_root.my_name);

NetConnection是建立链接的类,使用它可以在本地驱动器或HTTP地址上播放FLV文件流,conn是这个类的对象。Connect是NetConnection的方法,可以通过它从HTTP地址或本地文件系统回放视频(FLV)文件的本地连接。

_root.conn.connect(“rtmp://服务器的IP地址/_ definst_”,_root.my_name);这条语句实现的是请求建立连接功能,其中rtmp(the Real-time Messaging Protocol)协议是实时消息传送协议。它是客户端和服务器端的传输协议,专门为高效传输音视频数据而设计的 TCP/IP 协议,使用RTMP 协议传输的数据是未经加密的,包括用户名和密码等认证信息。服务器端应用程序文件在_definst_下,_root.my_ name是传递到服务器端的参数,作为onConnect函数的参数。

在服务器端用onConnect方法来判定是否允许客户端建立链接。代码如下:

当服务器第一次载入应用程序实例时调用application.onAppStart以建立共享对象,该方法在应用程序实例的生命周期中仅仅调用1次。Application.onConnect方法根据客户端发出的验证信息(参数)执行验证。当客户端调用NetConnection.connect()方法时,服务端通过调用application.onConnect来判断是否建立链接。音视频流的获取与发布

视频模块 篇3

关键词 3G/WiFi;无线通信;音视频传输;移动终端;电路设计

中图分类号 TP 文献标识码 A 文章编号 1673-9671-(2010)121-0028-03

随着现代技术的飞速发展和人们对现代技术产品依赖欲望的日益增加,目前广泛使用的有线通信技术和手段已难以满足具有丰富想象力的现代人的需求。移动通信在人们生活中的快速普及的同时,也推动着新技术的研发和推出,特别是无线WiFi技术的广泛应用和3G时代的到来,为移动音视频数据传输提供了新的、有效的途径。为满足日益增长的社会需求,充分利用现有无线信道的传输带宽,高清晰图像数据的无线传输技术更是目前研究重点。本文是根据作者在构建电力系统无线音视频应急指挥系统过程自主研发的“基于3G/WiFi模式下通用音视频数据传输模块子系统”整理正文的。

1 系统的开发平台及系统组成

1)系统开发平台。整个模块(系统)是基于SOC硬件平台进行开发,采用基于实时嵌入式LINUX,利用并优化H.264图像压缩算法,将音视频模拟电子信号通过ADC芯片转成数字信号,送入SOC,由SOC进行采集、压缩之后,再通过网络将压缩过的码流传到PC端。PC端软件主要是基于Microsoft操作系统,主程序采用C++语言编写,通过网络接收到音视频码流后,将其解压缩还原显示,从而达到网络实时监看目的。其硬件架构如图1所示。

2)系统组成。本系统的核心芯片Cypher7108是美国Micronas公司于2005年推出的一款高度集成了音/视频流媒体编码的SOC芯片,可实现实时MPEG-4,MPEG-2,H.264视频编码。Cypher 7108提供了丰富的主机接口,包括HPI,USB 2.0和PCI接121,最高可支持30帧/秒,分辨率达full.Dl(720x480)的全运动图像。

硬件由音视频SOC编码器、网络接口、音视频模拟输入接口、视频数字输入接口、USB接口、SD卡接口等构成。

2 功能模块设计

1)音视频数据采集。前端的图像采集模块由光学镜头和CCD构成(如图2),在一般情况下,选用焦距为16mm镜头即可,参数为480TVL,感光度为0.1Lux,其输入模拟视频信号送至SAA7115,进行模数转换,得到数字信号送往7108A内的专用压缩编码模块中进行压缩编码,最终经3G/Ethernet网络接口输出。音频信号的处理方法亦是如此。为了保证音视频信号的同步传输,需由MIPS控制模块分别在音视频信号中加入时间戳,在客户端的电脑缓冲区内,利用时间戳对两种数据进行重组,然后再由播放器解码播放。整个数据处理过程均由7108内含的MIPS32模块控制。

图2 语音图像采集

Cypher7108提供的一款高度集成了音/视频流媒体编码的SOC芯片,可实现实时MPEG-4,MPEG-2,MPEG-1,H.264视频编码,此外,它还具有一个可编程的音频编码组件,可提供杜比数字(AC.3)和MPEG-1/2第一层和第二层格式的音频编码。

2)3G/WiFi双模设计。对于运营商来说,在3G时代他们希望可以从根本上改变传统的电信业务以语音为主的特征,代之以融合语音、数据、图像等多种内容的传输业务。事实上,从目前已经开展3G业务的国家看,3G数据业务发展并未取得人们预想的结果,WLAN(无线局域网)和3G的相互整合也被提上议事日程,人们希望通过两者的共存互补来弥补3G在数据业务上的某些缺陷。

相比3G,WiFi能提供高带宽,但却是在有限的覆盖区域内(建筑物内以及户外的短距离),很难做到广域的覆盖。与此相比,3G网络支持跨广域网络的移动性,但是数据吞吐速率明显低于WiFi。3G和WiFi在终端中的互补关系,已经有厂商将它们在3G终端中做了双模设计。从硬件架构上区分,3G和WiFi双模终端的实现,可以有多种模式,如图3所示。用户可根据需要选择3G网络还是WiFi网络进行音视频传输。

图3 3G和WiFi双模终端实现方案

3)USB接口设计。USB 2.0标准定义了两种连接器,如表1所示。Series-A为上位机端的,Series-B为下位机端的。由于Series-B的连接器对于像手机一样的便携式设备来说太大,USB 2.0增加了一个可选接口连接器叫做Mini-B,习惯性称之为Mini-USB。它的插座尺寸只有Series-B的一半大小,可以在任何应用中替代Series-B。可以说每一条USB线缆都一定有Series-A连接器,但不是都需要Series-B或Mini-B。

USB定义的速度标准分为3种。高速模式(High speed)为480Mbit/s,全速模式(Fun Speed)为12Mbit/s,而低速模式(Low Speed)为1.5Mbit/s。每一个USB兼容的设备都支持低速和全速模式。高速模式是在USB2.0版本加入的,需要USB 2.0兼容的硬件支持。设计3种速度级别的原因在于低速外设往往代表较低的成本,许多对数据率要求不高的外设设计为低速度模式可以相应地降低成本。

在外设端,每个USB设备必须支持低速或全速模式中的一种,上位机端通过检测两根信号线上电平来判断外接的是一个支持低速还是全速模式的外设。如图4所示,在上位机端的两根信号线D+和D-上分别都下拉了一个15kΩ的电阻到地。作为新接入的外设端设备则应该在D+或D-线上上拉一个1.5kΩ的电阻到3.3V电源,分别代表全速设备或低速设备。当这个设备插入时,由于设备的上拉(1.5kΩ)强过上位主机端的下拉(15kΩ),其中的这个线被外设拉高了,高过主机端的判断门限,这样就能分辨出接入的是什么速度的设备。

4)SDRAM接口电路设计。SDRAM具有容量大,存取速度快,成本低的特点,因而广泛应用到微处理系统中。SDRAM主要用来存放执行代码和变量,是系统启动之后主要进行存取操作的存储器。

目前常用的SDRAM为8位/16位的数据宽度,可根据系统需求,构建16位/32位的SDRAM存储器系统。本系统中,由于会产生大量的视频中间数据,选用了两片MT46V32M16TG-6T芯片构建32位的SDRAM存储器系统。每片MT46V32M16TG-6T的存储容量为32MB×16位(64M字节),工作电压为2.5V,存取速度为6ns,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度。两片芯片并联构建的32位存储器系统也充分发挥了32位MIPS核的数据处理能力。SDRAM模块硬件连接如下图5所示。

5)Flash接口电路设计。Flash存储器是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区进行在系统编程(ISP)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。常用的Flash为8位或16位的数据宽度,编程电压为单3.3V。主要生产厂商为ATMEL,AMD,HYUNDAI,SST等,他们生产的同型器件一般具有相同的电气特性和封装形式。

图4 USB速度模式设计

图5 SDRAM引脚连接图

图6 FLASH芯片引脚连接图

本硬件平台使用AMD公司的Am29LV320D FLASH芯片。Am29LV320D是32Mbits的FLASH存储器,有2M*16bits和4M*8bits两种模式。字模式时数据引脚为DQ0~DQ15,字节模式时数据引脚为DQ0~DQ7。该器件在标准的3.0V Vcc供电的情况下可以进行在系统编程,也可以使用标准的EPROM编程器编程。FLASH模块硬件连接如下图6所示。

6)以太网接口设计。以太网接口是网络摄像机上必不可少的接口模块,不但用于网络数据传输,而且在开发调试过程中,也起着至关重要的作用。以太网接口控制器主要包括MAC和PHY两部分,其中MAC层控制器作为逻辑控制比较容易集成在处理器内部。ARM本身就含有MAC层控制器,因此只要再外接一物理层芯片即可。RTL8201BL是台湾Realtek公司生产的一种网络物理层芯片,它自动检测,支持Lo/lOOMbps网络传输,全双工方式通信,符合IEEE802.3协议。它包括物理译码子层、物理介质连接子层、双绞线物理介质相关子层、10Base-Tx译码/解码、双绞线介质连接单元。支持PECL(正极射极耦合逻辑)电平接口的100Base-TX光纤发送器。适应低电压、低功耗要求。

图7 以太网电路接口图

RTL8201BL和MAC控制器的连接是通过MII(Media Independent Interface,媒体独立接口)实现的。其中MAC负责完成数据帧的封装、解封、发送和接收功能。物理层PHY的结构随着传输速率的不同而有一定差异。对于lOBaseT等网络,从以太网PHY芯片输出的就是传输所需的差分信号。但是,还需要一个网络隔离变压器组成的结构。网络隔离变压器可起到抑制共模干扰、隔离线路以及阻抗匹配等作用。以太网电路接口及隔离电路如图7和图8。

3 模块性能特点

基于3G/WiFi模式下的通用音视频数据传输模块是应急指挥系统中无线移动音视频终端的核心模块。该模块已成功低应用于奥里奥克公司研发生产的支架式、手持式、头盔式等不同种类的无线移动终端产品中(www.orioc.com.cn)。模块在系统软件的支持下实现完整的视频信号采集、数据压缩、数据格式组帧及无线网络数据传输。每个模块具有一路音频输入、一路音频输出、一路视频输入、一路高速有线网络接口和3G/WiFi无线网络数据收发等功能。

系统平台采用Linux操作系统,最大限度地利用现有软件、硬件资源,支持3G/WiFi相结合的传输方式,丰富了系统的应用领域。系统在中心站的支持下,可实现多达16个终端组成的集团式移动蜂窝通信,传输距离可延伸到所有3G信号覆盖的区域。系统延时在秒级之内,成功地解决了移动公网无线音视频应用系统中语音和视频的同步问题,为高清晰语音图像无线移动传输应用的普及提供了有效的手段。

参考文献

[1]燕杨.基于H.264/AVC无线视频传输的研究[J].吉林工程技术师范学院学报.2008,11:79-81.

[2]郭梯云.邬国扬,李建东.移动通信.西安电子科技大学出版社,2000.

[3]旁海生,朱诗兵.超宽带及其关键技术.电信技术,2005,4:59-61.

[4]刘增基,鲍民权,邱智亮.交换原理与技术[M].人民邮电出版社,北京,2007.

[5]李建东,杨家玮.个人通信.北京:人民邮电出版社,l998.

视频模块 篇4

随着便携式多媒体终端需求量迅速增加,在视频解码等方面对芯片低功耗的要求也越来越高。因此,只有将模拟视频信号转换成为符合ITU-R BT.656标准的数字信号,才可方便地利用FPGA或者DSP甚至PC机来进行信号处理。本模块就是利用TI公司的超低功耗TVP5150芯片对视频信号A/D解码,由单片机通过I2C总线控制,预留地址数据等接口,作为模块验证以及后续数字信号处理之用。

1 模块硬件构成

1.1 系统基本构成

系统总体构成框图如图1所示。

TVP5150是超低功耗、支持NTSC/PAL/SECAM等格式的高性能视频解码器,在正常工作时,它的功耗仅115 mW,并且具有超小封装(32脚的TQFP),因此非常适用于便携、批量大、高质量和高性能的视频产品。它可以接收2路复合视频信号(CVBS)或1路S-Video信号。通过单片机I2C总线设置内部寄存器,可以输出8位4∶2∶2的ITU-R BT.656信号(同步信号内嵌),以及8位4∶2∶2的ITU-R BT.601信号(同步信号分离,单独引脚输出)。

单片机选用TI公司的MSP430F2013,超低功耗,有2 kB+256 B Flash存储器和128 B RAM,14脚超小封装(TSSOP)。其功耗是一般单片机的1/5,特别适合于手持设备,在1.8 V~3.6 V电压、1 MHz的时钟条件下,耗电电流在0.1 μA~400 μA之间(因工作模式不同而不同)。单片机通过MAX3232与串口连接,由PC机通过串口对单片机在线编程,方便对单片机程序及时修改。由PC设置并且随时调整TVP5150的内部寄存器,控制其工作状态,输出信号等。单片机预留控制口,以增加本模块的可扩展性。

74HC16245总线控制器用来提高本模块输出信号的负载驱动能力,它是可选部分,视需要可将信号直通以降低模块功耗。如果有多个模块组合工作,由单片机对74HC16245使能控制,协调各模块信号输出。

验证模块主要由SAA7121视频编码芯片构成,可将8位4∶2∶2的ITU-R BT.656或者 ITU-R BT.601输入信号编码成CVBS信号或S-Video信号输出。如果TVP5150解码模块工作正常,利用此验证模块可以得到模拟视频信号,接入显示设备可得到输入图像。

1.2 系统硬件设计

TVP5150芯片应用原理图如图2所示。芯片采用14.318 18 MHz晶振,数字和模拟输入电压为1.8 V,IO口电压为3.3 V;信号输入有CH1和CH2两路,并且都进行阻抗匹配设计,防止对输入信号的反射;YOUT[0∶7]输出8路YCbCr信号,消隐信号可选择单独引脚HSYNC和VSYNC输出,或者内嵌于这8路信号中。PCLK/SCLK脚时钟信号可输出13.5 MHz和27 MHz两种频率。

2 模块程序构成

本模块主要由PC机与单片机串口通信程序和单片机与TVP5150的I2C控制程序两部分软件组成。

2.1 PC机与单片机串口通信程序

PC机与单片机通信协议见表1。

注:带引号部分为传输数据头,供单片机识别处理;Addr为地址;Data为数据。

本程序在dephi7.0开发环境下完成设计,配置文件为txt格式,能读取和保存配置文件,在配置表格中能对配置文件进行简单处理,能选取配置文件中的寄存器信息通过串口发送给单片机,并且能读取单片机发送来的寄存器信息。

程序分为前台的界面处理与后台数据和功能处理两层。前台只负责界面的设置与动作,对表格中一切数据的处理都在后台。通过SPcomm串口通信控件进行串口通信操作。定义Sendlist和Revlist两个类,将所有允许发送项存入Sendlist,然后通过串口发送,而接收到的单片机发送来的数据存入Revlist。然后,将Sendlist和Revlist两者进行对比。如果相同,则存储,并在表格中显示;否则,报错处理。每发送一个寄存器项有一定的延时用于单片机处理。软件有超时设置,如果发送5 s后无法接收到单片机回复数据,则判断为超时出错。

本程序流程如图3所示。

2.2 单片机程序

单片机程序完成串口通信和I2C总线控制两个功能。

图4为I2C时序图。I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。I2C总线在传送数据过程中有以下3种类型信号:

a) 开始信号(Start)。SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

b) 结束信号(Stop)。SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。

c) 应答信号(AcK)。接收数据的IC在接收到8 bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

I2C总线在传送数据时,必须保证在SCL高电平时SDA上数据稳定,否则就判断为开始或结束信号[3]。

单片机内程序按照通信协议与PC机进行数据传输,然后识别数据头,按协议分别处理,经由I2C总线,对TVP5150内部寄存器进行读写操作。单片机通信收发主程序由C语言编写,通过串口中断接收PC机数据,判断接收的是数据头还是有效数据。当接收数据头R时,回发PC机r,然后将后面的1个字节地址,由I2C总线操作读出TVP5150该地址寄存器中的数据,并通过串口回发给PC机。如果帧头是W,回发PC机w,并且缓存它后面2个字节的数据,第1个字节为TVP5150寄存器地址,第2个为写入该寄存器的数据。通过I2C总线完成此写操作,并读出写入数据后寄存器中数据,通过串口回发给PC机,以备PC机端软件校验。

3 主要视频信号

3.1 输出信号

模块将模拟视频信号解码成符合ITU-R BT.656标准的数字视频信号,输出8位Y∶Cb∶Cr=4∶2∶2的数字信号。同步信号内嵌于数据流中串行输出,也可以单独引脚与数据流并行输出。

图5所示为完整一帧数据,分奇偶两场,23~311行是偶数场数据,366~624行是奇数场数据,其余为场控制信号或者无效数据[6]。FID为奇偶场指示信号,在场同步信号(VSYNC)下降沿跳变。VBLK为场消隐信号,高电平有效,可以通过设置TVP5150寄存器来改变其长短,控制有效图像数据输出,因为在VBLK信号低电平期间对应输出视频有效数据。

每一行的数据结构如图6所示。每行开始的288字节为行控制信号,开始的4字节为EAV(有效视频结束)信号,紧接着280个固定填充数据,最后4个字节是SAV(有效视频起始)信号。SAV信号和EAV信号有3字节的前导:FF、FF、00;最后1字节XY表示该行位于整个数据帧的位置以及如何区分SAV、EAV信号[6]。

XY各位的含义如图7所示。图中最高位是固定数据1,F=0表示偶数场,F=1表示奇数场;V=0表示该行为有效视频数据,V=1表示该行没有有效视频数据;H=0表示为SAV信号,H=1表示为EAV信号;P3~P0为保护信号,由F、V、H信号计算生成[6]。

3.2 AVID截取

AVID信号是TVP5150产生的专有信号,是有效视频数据指示信号,AVID低电平时输出数据无效,高电平有效。这样就提供了一种控制TVP5150输出视频数据带宽的方法。通过寄存器设置,控制AVID的开始和结束时机,同时对VBLK信号起始时机进行控制,那么就能从一帧图像中截取某些部分输出,如图8所示。

4 结束语

本模块的调试结合了SAA7121视频编码模块。由视频信号发生器输出模拟视频信号经过本模块解码,转换为数字视频信号,再由SAA7121模块转换成模拟视频信号接入显示设备,如果模块运行正常,就可以看到显示设备上对应的输入画面。第1步将RGB各单色视频信号输入,通过示波器观察输出视频及各同步信号,时序正常后,经SAA7121模块接入显示设备。得到正确图像后,模块由DVD机输入CVBS信号,显示设备得到正常影像则调试基本完成。调试的主要工作在于TVP5150的内部寄存器正确设置及其改变对输出各信号的影响。如果开启74HC16245,那么本实验模块总功耗在200 mW左右;关闭则功耗可控制在130 mW左右。可见,本视频解码模块的功耗参数非常低,如果优化单片机程序,还可进一步降低功耗。本模块将模拟复合视频信号解码成符合ITU-R BT.656标准的数字视频信号输出,方便利用FPGA、DSP等进行数字视频图像去隔行,分辨率转换甚至MPEG编码等处理。

参考文献

[1]REC.ITU-R BT.601-5.Digtal TV Systems[S].1995.

[2]CCIR 656.Interface for digital component video signals in 525line and 625 line television system[S].1990.

[3]广州周立功单片机发展有限公司.I2C总线规范[S].

[4]徐爱钧,彭秀华.单片机高级语言C51 Windows环境编程与应用[M].北京:电子工业出版社,2001.

[5]吕伟臣.精通Delphi 7.0[M].北京:科学出版社,2003.

视频模块 篇5

在B/S架构的基础上, 搭建并验证了基于织梦内容管理系统 (Dede CMS) 的视频点播模块, 并对以Dede CMS为基础开发的视频模块与流媒体服务、FTP服务配置的视频点播形式各方面进行对比。Dede CMS是国内专业的PHP网站内容管理系统, 有利于加强各类信息和资源的分配、整合和传递, 使团队合作更有效更便捷。

1 以 Dede CMS 为基础配置视频模块

借助强大的Dede CMS系统, 配置完成视频点播功能, 以播放本地网站视频。该功能可播放flv、swf、wav等格式的多媒体文件, 具体的配置方法如下:

( 1) 备份网站 文件 , 包括 includehelperschannelunit.helper.php以及 managertemplets下的video_add.htm和video_edit.htm两个文件。若有必要, 也可进行全站备份。

(2) 文件替换 , 将新视频模型插件中的文件分别替换织梦内容管理系统网站下的各文件。主要为manager、include、plus和templets下的对应文件。

(3) 在后台“核心” - “频道模型” - “内容频道管理”中导入已添加的视频模型。

(4) 在后台“网站栏目管理”中增加顶级栏目“在线视频”。

(5) 将待点播的视频文件上传至网站视频文件夹中。

(6) 在相应的栏目中添加新文章 , 设置跳转标签 , 链接到之前上传的视频文件所在路径即可。

2 借助微软 Windows Media Services (WMS) 流媒体服务配置视频点播功能

Windows Media Services采用MMS协议进行消息接收、视频传输, 主要支持的视频文件格式有: asf、wmv、mpg、wma和avi等。尽管该服务是Windows Server 2003系统自带组件,但并未默认安装。首先在Windows Server 2003服务器上安装Windows Media Services组件 , 并允许建立新的连接。然后 ,将整理好的视频文件上传至流媒体服务器对应目录下。在IE8浏览器上 输入mms://168.1.11.160/ yuange.wmv回车 , 这时Windows Media Player将播放该视频文件。

3 使用 FTP 服务来完成视频点播功能

使用Windows Server 2003自带的IIS组件来架设FTP服务器。首先, 需要在具有静态IP地址的服务器上安装FTP服务器组件。因为默认情况下在Windows Server 2003的系统上并没有安装FTP服务器。然后需要在默认FTP站点属性中进行一些设置来配置FTP服务器。在“FTP站点”选项卡中设置服务器IP地址为168.1.11.160, 端口号为21。在“安全账户”选项卡中, 设置FTP服务器允许匿名登录。在“主目录”选项卡中设置本地路径为 “d:ftproot”, 用户可以在FTP站点中进行“读取”和“记录访问”。 设置完成后, 在IE8浏览器上输入ftp://168.1.11.160, 这样就可以观看FTP站点下的视频文件。当然,在网络安全方面, 也可以通过限制FTP访问的IP地址、给匿名访问者加密码等方式来限制访问用户, 保护视频内容的安全。

4 3 种方式的对比

如表1所示。

5 结语

伴随数码设备的普及和互联网技术深入发展, 企事业单位在视频教学、思想传播、活动回顾等方面有了更迫切和实际的需求。单纯采用FTP服务、配置Windows Media Services等方式, 由于展现形式单一和文件和服务流程管理困难等原因, 无法满足单位用户的所有相关需求。在结合本单位内部网站的系统平台基础之上, 采用配置应用Dede CMS系统视频插件的方式, 将视频点播服务作为单位内部网站的一项服务推出, 用户在实时点播并观看视频的同时, 亦可在Web页面浏览单位新闻等内容。同时, 可利用织梦内容管理系统自身强大的用户管理、栏目管理等功能, 便捷地实现视频安全管理、访问权限控制、视频资料维护等工作。

摘要:对视频点播方法进行研究和探讨,将DedeCMS为基础的视频模块与流媒体服务、FTP服务的视频点播形式进行对比。

视频模块 篇6

AVS(Audio Video Coding Standard) 标准是《信息技术先进音视频编码》系列标准的简称,是由中国自主提出的第一个音视频编码标准。该标准面向中国的信息产业需求,服务于高分辨率数字广播、高密度激光数字存储媒体、无线宽带多媒体通讯、互联网宽带流媒体等重大信息产业应用。目前音视频产业可以选择的信源编码标准有4个:MPEG-2,MPEG-4,MPEG-4 AVC,AVS。前3个标准是由MPEG专家组完成的,第四个是我国自主制定的。从主要技术指标——编码效率比较:MPEG-4是MPEG-2的1.4倍,AVS和AVC相当,都是MPEG-2两倍以上。

由于AVS采用的是上下文自适应2D-VLC,且编码块系数过程中进行多码表切换,故AVS有很高的压缩效率,这使得其算法的复杂度也高。如果采用软件解AVS的码流将很难满足实时视频解码的要求,为此需要采用硬件实现。用硬件实现视频解码器一般有2种基本的实现结构:DSP 型和ASIC 型的结构。DSP 型结构基于可编程DSP核,它可以通过适当的编程,实现不同标准的解码,其缺点是程序复杂,增加了I/O、总线以及DSP 核和专用模块的冲突。而ASIC 结构中每个功能块均采用专用的VLSI结构,通过系统控制器控制各部分的运行,ASIC结构能有效地提高时钟频率、减小芯片面积。因而为了获得更高的性能,这里采用ASIC结构来实现。

变字长解码是压缩系统广泛采用的技术。它实际上是Huffman 编码的逆过程,其主要思想是通过对数据出现几率的统计,使平均码长最小化。小的码字指向出现几率大的数据,长的码字指向出现几率小的数据。AVS之所以能够有较高的压缩效率是因为AVS所用的变字长编码相比以前的变字长编码方法有许多改进和独特的特征,它的语法元素和残差系数是由定长码和指数哥伦布编码( Exp-Golomb) 构成的,其中指数哥伦布编码和语法元素之间存在多种映射关系。AVS 还引入了起始码和插入码的概念,起始码用来标识比特流语法结构的开始,插入码是为了防止在比特流中出现伪起始码而插入的“2’b10”两个比特,所以在进行VLD解码之前首先要做的工作是去掉起始码和插入码。

2 变长解码器的设计

2.1 总体结构设计

整个AVS视频解码芯片是采用流水作业的,而VLD解码模块是视频解码的第一级流水处理,视频解码器通过主控制器启动整个VLD解码模块开始解码工作;整个VLD所要执行的操作有:

(1) 查找起始码,并去除填充位;

(2) 解定长码,即解码帧内预测模式、宏块类型、参考索引和运动向量等和Exp-Golomb编码;

(3) 读取残差系数等,并将解码后的残差系数存入RAM中。

VLD的系统结构如图1 所示,VLD负责解析出输入码流中的所有语法元素,并做处理;它先从外部获得压缩的码流数据,码流从片外RAM读取送入到FIFO中缓存,以减少请求内存的次数,为了提高数据的处理效率,这里外部数据的输入位宽和FIFO的输出数据位宽均设定为32位;FIFO Interface模块用于桶型移位和检测起始码及伪起始码并剔除位插入,然后将码流送入到VLC Decoder模块供其解码;宏块层以上的语法元素或保存在VLC Decoder模块内部或端口传出,宏块层以下的语法元素则要传送给其他模块做相应的处理,而block内的游程编码数据则送入片内RAM中存储供下一级读取。

2.2 检测起始码及插入位

VLD中序列头部的定长解码包括起始码检测、伪起始码检测及其插入码剔除、定长解码3个部分。步骤如下:

(1) 从FIFO中输入到FIFO Interface的数据寄存在2个32位的寄存器中RegA和RegB中;

(2) RegA和RegB中总共有8个字节(如图2所示),其中第2,3,4三个字节用来检测插入码,而从第0,1,2三个字节中检测起始码。如果检测发现这3个字节24位为“0000 0000 0000 0000 0000 0010”即是起始码,那么第3个字节是起始码类型。如果检测到是插入码则表明第2个字节中的“10”是需要剔除掉的插入位,此时输出第2个字节的前6位,否则输出整个字节。

2.3 定长变长码解码

AVS的变长码不同于MPEG-2,也不同于H.264。AVS采用的是上下文自适应2D-VLC的指数哥伦布编码,这使得在同等条件下AVS码率能达到现行MPEG-2标准的一半,而且在降低解码复杂度后却能达到与H.264几乎相同的效率。

(1) K阶指数哥伦布码。

指数哥伦布码由3部分组成分别是:码流中非0比特位前0的个数(leadingZeroBits)、一个1位和非0比特位开始leadingZeroBits+k位码流数据,表1为k阶指数哥伦布编码表;码字的编码方式为:

codenum=2n+k-2k+readbits(n),n=leadingZeroBitsAVS中k的阶数取值范围为0~3。

AVS中定义了4种描述符来表示指数哥伦布编码的语法元素,分别是u(e),s(e),m(e),c(e),其中:描述符ue(v)表示语法元素的值等于CodeNum;se(v)根据表2 中给出的有符号指数哥伦布码的映射关系求语法元素的值;me(v)根据标准中规定的映射关系求语法元素的值;ce(v)用于表示指数哥伦布码与残差系数(2D-VLD) 的映射关系,ce(v)描述的语法元素采用0 阶、1 阶、2 阶或3 阶指数哥伦布编码进行解析,对应还有19个码表供查找;

(2) 块系数解码。

AVS 对块的残差系数采用内容自适应的变字长编码,其特点是每次解码时都要根据上次解码的结果切换码表,其解析流程如图3所示,首先选取哥伦布编码的阶数,因为不同的编码方式采用的哥伦布编码的阶数不一样;其次是从码流中解析出codenum值;然后通过codenmu的值解析并查表得出(level,run),再将其存入RAM中供下一级模块使用。

(3) VLD解码的主要结构和行为。

VLD最主要的结构模块为桶型移位器(FIFO)和变长字解码控制单元(VLC Decoder),其内部结构如图4所示;控制单元根据标志依次解析各个语法层的码字。桶型移位器从外部缓存中读入码流,输出并行解码的码流。对于定长码采用直通数据的连接。对于变长码的码字,在变长字解码部件内部通过查找对应的码表(19个码表存放于ROM中),1个时钟周期内直接解析出码字,同时返回消耗的码字长度,使桶形移位器为下一个码字的解码做好准备。选通器在控制信号选取相应的码字输出,该结构不仅功能上完全满足变长解码的要求,而且在基于复杂码表分割的技术下,关键路径也比较短,硬件规模也不大。

3 逻辑仿真与综合

将提出的VLD解码器结构设计用Verilog HDL描述,在ModelSim上通过了综合前仿真。通过testbench直接将测试码流数据输入硬件描述语言仿真模型,然后将输出数据与AVS标准参考软件(C版本)产生的输出对比,以实现仿真功能。

解析残差数据是VLD最主要的任务,在VLD解析残差的过程中,当Codenum小于59时,解析1对level和run需要5个周期。当Codenum大于等于59时,解析1对level和run需要8个周期。

整个电路使用Altera 的Quartus Ⅱ5.0 综合工具综合,slice 总数为4 011 个;用Synopsys 的Design Compiler 在0.18 μm CMOS单元库下综合,面积大约1.6万门。变字长解码器模块是AVS解码器的一部分,综合后与其他部分集成,通过了 FPGA 验证,用 Nios 的 Stratix ⅡEP2S60型 FPGA,其最高频率能达到84 MHz,可以实现AVS 标准清晰度视频的实时解码。用CMOS 综合最高频率166 MHz,可以实现高清晰度视频的实时解码。

4 结 语

提出一种适用于AVS视频解码标准的变字长解码的硬件实现方法,通过合理的码字分割并采用ROM 存放码表,设计了一个流水线的专用VLSI 变字长解码结构;采用Verilog 语言实现,并通过FPGA验证,每个时钟周期处理1个码字,提高了电路速度,减小了芯片面积。

参考文献

[1]姚栋,虞露.H.264指数哥伦布码解码部件的硬件设计和实现[J].电视技术,2004(11):14-16,23.

[2]叶波,俞颖,秦东,等.适用于MPEG2 MP@ML标准的视频解码器设计[J].半导体技术,2000,25(3):23-26.

[3]Choi S B,Lee M H.High Speed Pattern Matching for a FastHuff man Decoder[J].IEEE Trans.Consumer Electron,1995,41(1):97-103.

[4]Fukuzawa Y,Hasegawa K,Hanaki H,et al.A ProgrammableVLC Core Architecture for Video Compression DSP[J].SignalProcessing Systems,1997.SIPS 97-Design and Implementation,1997:469-478.

[5]王海涛,邓彬.基于FPGA的PCI局部总线控制器的Veril-og实现[J].现代电子技术,2006,29(5):31-32,36.

视频模块 篇7

关键词:数字信号处理器,嵌入式,视频处理,TMS320DM6446,硬件设计

0 引 言

嵌入式视频处理系统是当前图像研究的热点。嵌入式视频监控系统被广泛地应用于银行、宾馆、商场、机场等领域的安全监控报警等。相对于传统的模拟视频监控系统而言,嵌入式数字视频系统在图像质量方面有了很大的提高。新一代DSP(数字信号处理器)产品的出现为大批量图像数据的处理奠定了坚实的基础。TMS320DM6446(以下简称DM6446)是TI公司推出的高集成度的数字视频处理器,可以实现完整D1格式的H.264视频编解码功能。在操作系统和DM6446相关库函数的支持下进行嵌入式视频处理系统研究的条件已经成熟。

本文在参考达芬奇开发板的基础上有效地利用32位高端微处理器(ARM+DSP)的处理能力,提出了嵌入式视频处理系统完整的设计方案,完成了一个基于DM6446视频处理模块的硬件设计。

1 TMS320DM6446概述

TI公司针对高端视频多媒体系统的需求设计推出了DMSoC(数字媒体片上系统)系列双核处理器,其中的DM6446采用了TI公司的DaVinci技术,该芯片为361脚BGA封装。该芯片包括一个ARM子系统、一个DSP子系统和一个VPSS(视频处理子系统),同时还带有一个VICP(图像协处理器)和各种丰富的外设。

ARM采用ARM926EJ-S内核,主频高达297 MHz;DSP采用C64+内核,主频高达594 MHz;VPSS包括一个视频前段和视频后端,支持图像的缩放、自动对焦/曝光/白平衡、CFA插值、OSD数据混合等一系列图像处理功能;外设包括DDR2控制器、ATA硬盘控制器、USB2.0接口和VLYNQ接口等。ARM和DSP软件代码兼容并且全部采用固定的小端模式。

2 视频处理模块总体设计

该视频处理模块可以看做一个视频处理的最小系统,总体结构主要由以下3部分组成[1]:

a) 视频前端设计。模块在工作时,前端摄像头采集的监控数据通过同轴电缆传输至系统的视频解码芯片。视频解码芯片将解码后的视频数据输入至DM6446的视频端口。

b) 网络传输设计。DM6446内部集成EMAC(以太网媒体访问控制器),外接以太网物理层传输器后可以为用户提供以太网接口,用于网络数据传输。

c) 视频后端设计。DM644内部集成了视频编码器及DAC(数模转换器),在DSP内部完成对视频数据的相关运算处理后, 系统使用复合视频接口或者S-video接口作为显示输出,同时用户的操作界面也通过该接口输出,实现了对视频信息的监控功能。

根据系统设计的实际要求,我们对它的外设做一些精简,在满足设计需求的同时节约一定的成本。具体的视频处理模块硬件构成如图1所示。

主要包括:DM6446为主处理器;2路PAL/NTSC的标准模拟视频输入(CVBS);1路PAL/NTSC标准模拟视频输出(CVBS),支持VGA输出;扩展256 MB DDR2 SDRAM;扩展64 MB NAND Flash存储器;2路UART接口,分别支持RS-232和RS-485标准;10 M/100 M标准以太网接口;USB2.0接口;JTAG接口;电源接口。

整个视频处理系统主要有以下几个模块构成:电源管理模块、存储模块、CPLD模块、视频输入模块、视频输出模块、通信及接口模块。

整个系统的工作流程大致为:在系统完成上电或者复位后,从Flash存储器加载程序,完成对芯片的初始化和对外围硬件的初始配置,然后通过视频前端图像采集设备(CCD/CMOS)采集实时图像,采集的模拟视频信号经过视频解码芯片(TVP5150)转换为数字视频信号传入DM6446的视频通道(VFPE),经过VPSS的处理实现对信号的编码压缩,或者存入DDR2 SDRAM,或者通过外部显示设备输出。

3 具体硬件设计

3.1 电源模块

DM6446有独特的电源配置,有3种电源管理模式:正常模式、低功耗模式和备用电源模式。备用电源模式是3种模式中功耗最低的,DSP核和视频协处理器系统都不运行,除了通用I/O、UART和PWM运行外,其他的外设都不运行。而在低功耗模式下,仅仅运行一些ARM的基本功能,DSP和视频协处理器系统都不运行,除了通用I/O、UART、PWM、SPI和定时器运行外,其他的外设都不运行。在正常模式下,除了所有的模块和外设都可以运行外,两个时钟也正常运行。

电源分为+5 V、+3.3 V、+1.8 V以及+1.2 V,系统的主电源为+5 V,其余电压均由+5 V电源供给。其中+1.2 V是供给DM6446内核电压,+1.8 V是为DM6446的I/O以及DDR2内存供电,+3.3 V是给大部分的外设供电。选择TI公司生产的专供FPGA和DSP芯片供电的TPS75003给DM6446提供+1.2 V的内核电压和+3.3 V的外设供电电压,选择TPS62040提供+1.8 V电压输出[3]。

TPS75003 工作温度-40 ℃~+85 ℃,采用QFN封装,供电稳定且能耗低。电源模块原理见图2。

为了保证DM6446在电源未达到要求的电平时,不会产生不受控制的状态,同时确保电路的所有器件的上电同步复位,需要在设计中采用电源监测电路。本设计采用TI公司生产的TPS3808电源监测芯片,它的固定复位信号时间最长达1 s,能满足系统中所有芯片的复位要求,同时还具有手动复位端。该电路能够确保在系统的加电过程中,内核电压、I/O口电压以及外设电压达到要求的电平之前,处理器始终处于复位状态,复位信号的输出顺序为内核复位信号→+3.3 V电压复位信号→+1.8 V电压复位信号。电源监测电路原理图如图3所示。

3.2 存储模块

在DM6446中有与几种形式的外部存储器接口:异步EMIFA(NOR Flash、SRAM)、NARD Flash等。DDR2存储控制器用于DDR2 SDRAM连接。

a) DDR2存储器:是整个系统的缓存中心,系统运行代码、图像数据搬移等都要使用DDR2。本系统采用2片16位的MT47H64M16BT并联,存储空间达到256 MB,DDR2总线利用内部PLL(锁相环)主频高达166 MHz双边情况下可达325 MHz,通过其刷新DaVinci芯片自动实现,选型的主要原则是该芯片与不同厂商生产地、不同容量的DDR2芯片都能实现引脚与引脚间的完全兼容。

b) NAND Flash:主要优点是可集成度高、价格便宜等,本系统在片选CS2映射中有64 MB的NAND Flash,主要用于系统的引导,其中存储嵌入式Linux操作系统内核和内核引导程序U-Boot bootloader[5]。

3.3 CPLD模块

CPLD(复杂可编程逻辑器件)模块主要用于系统中组合逻辑的设计。如果对逻辑设计采用专用芯片设计,成本将大大提高,且占用的面积也将变大。选用CPLD设计增加了设计的灵活性,降低了今后PCB(印制电路板)设计的面积,同时也增强了系统的保密性。

系统采用了Altera公司的EMP240GT100芯片,主要功能包括内核电平与I/O电平转换,时钟分频以及其他逻辑功能的实现。

3.4 视频输入模块

本系统在视频输入端选用了专业视频解码芯片TVP5150,这是一款高性能视频解码器,可将NTSC、PAL视频信号转换为数字色差信号(YUV422),同时支持两个复合视频或者一个S端子输入。

从模拟视频输入口输入的模拟信号在TVP5150内部经过钳位,抗混叠滤波、A/D转换、YUV分离电路之后,最后再转换成BT.656视频数据流,输入到压缩核心单元DM6446中。

本系统使用了2片TVP5150,每片使用了1路复合信号,原理图如图4所示。

3.5 视频输出模块

DM6446的VPBE内置视频编码器,视频信号经过FPGA(现场可编程门阵列)芯片,连到VPBE,接收来自DSP的BT.656视频流信号,显示于监视器上。

系统视频输出部分采用了DM6446片内的4路10位DAC输出,用其中的3路DAC实现了VGA输出,另外一路DAC实现了CVBS输出。当系统配置为VGA输出接口时,还使用了HSYNC和VSYNC场同步信号。具体的原理图如图5所示。

视频模块硬件设计中的滤波非常重要,在本系统中,使用了电感和电容组成的滤波网络,能够很好地降低噪声的感染。为了避免数字电源和模拟电源之间的相互干扰,系统采用了磁珠隔离数字电源和模拟电源。

3.6 通信及接口模块

系统中保留了必要的外设通信接口模块有UART(通用异步串口),一个配置成RS-232,用于系统启动时控制台使用,另一个配置成RS-485,用于工业应用如云台控制等。设计中采用MAX3221单通道RS-232协议收发器,使得异步串口电平符合RS-232电平标准。系统扩展的RS-485接口通过SN65HVD485ED半双工RS-485收发器连接。

网络接口是TMS6446的另一重要组成部分,随着嵌入式系统的发展,对于网络功能的需求也越来越大。DM6446集成了EMAC和物理层设备的MDIO(管理数据输入输出)模块。本次设计中采用BCM5221作为10/100Base-TX以太网收发器,BCM5221的MII接口与DM6446的MII接口对接。该接口内部集成了隔离变压器,所以不再单独使用隔离变压器芯片。

USB是一种快速双向同步传输的串行接口,具有传输速度快、价格便宜、使用方便和支持热插拔等诸多优点。DM6446片上集成了USB控制器,同时支持主机和外设模式,它可以通过ARM端控制存储映射寄存器进行操作。

3.7 ARM与DSP的通信及资源共享

由于DM6446是双核架构,因此存在两个核之间的通信问题。DM6446系统中,ARM主要负责系统整体控制功能,而DSP主要专注于大批量的数据传输和视频数据处理等工作。ARM和DSP都可以访问EDMA,ARM可以访问DSP的内存空间,包括L1P、L1D和L2,DSP可以访问ARM内存,ARM和DSP都可以访问DDR2和异步外部存储器接口AEMIF,ARM和DSP可互相触发中断。它们之间资源的共享见图6。

4 结束语

本文使用了先进的Davinci技术,有效地利用了DM6446设计了一个最小的嵌入式视频处理系统,硬件结构清晰,在确保系统有可升级空间的前提下满足了一个视频处理系统的主体功能需求。本设计具有一般数字视频处理系统的优势,同时由于采用了嵌入式硬件体系的设计,集成度变得更高。

参考文献

[1]秦云川.基于DM6446的视频监控开发平台的设计与实现[D].长沙:湖南大学,2008.

[2]骆张强.基于Davinci的技术的智能家庭监控系统的设计与实现[D].成都:电子科技大学,2005.

[3]赵燕丽,刘志猛.基于DM642的视频监控系统硬件设计[J].单片机与嵌入式系统应用,2007(5):39-41.

[4]SEED-DaVinci EVM User′s Guide[EB/OL].http://www.seeddsp.com.Rev.A2006.12.

视频模块 篇8

帧内预测是视频编解码中重要的一部分,其主要功能是降低图像的空间冗余。本文根据H.264/AVC帧内预测的特点并结合对其算法的分析,提出了一种帧内预测硬件电路结构,有效地减少了硬件电路面积,提高了解码的性能。

1 H.264帧内预测算法介绍

H.264视频解码器中,对于I和SI宏块类型采用帧内预测来解码。帧内预测模块的输入是当前宏块相邻左边块和上边块环路滤波前的像素值及参考预测模式,输出是当前宏块的预测值。预测值与反变换反量化得到的残差值重构,得到宏块的像素值。完成后,当前宏块的部分像素值和预测模式要进行存储,为后面宏块解码提供参考值。

H.264中亮度预测分两类,一类是针对图像中含有大量细节的部分采用4×4块的预测模式(有9种预测模式);另一类是对图像中比较平缓的区域采用16×16块的预测模式(有4种预测模式)。色度预测是8×8块的预测模式,有4种预测模式,这4种预测模式与亮度16×16的预测模式相似,也有竖直、水平、DC和平面模式。所有的预测模式都是根据左边块和上边块的参考值,计算当前宏块的预测值。

2 硬件实现

根据帧内预测算法,硬件结构划分为predmode模块、plane模块、prediction模块、reconstruct模块、left_pixels模块、predmode_ram、prediction_ram、sample和prediction_output模块。如图1所示,其中left_pixels、prediction_ram、predmode_ram、sample和prediction_output模块都是存储单元,分别存储的是当前宏块左边块的参考值、当前宏块上边块参考值、当前宏块上边块的参考预测模式、提取的参考像素值和当前宏块预测值输出;predmode模块预测计算出当前块的预测模式;plane模块是对plane预测模式的预处理;prediction模块是帧内预测的核心计算单元,4个PE单元并行运算,一个时钟周期解码出一个4×4的一列4个预测值;reconstruct模块的功能是实现重构。

2.1 predmode模块设计

Intra_16×16和Intra_Chroma的预测模式可通过语法元素解析直接获得,所以本模块的主要任务是解析Intra_4×4的预测模式。

本模式预测器的输入是当前4×4亮度块的luma_4×4BlkIdx(块索引)、解析的语法元素和当前宏块的信息。输出是当前宏块的16个子块的预测模式mb_predmode。predmode_ram中存储的是当前宏块上边一行4×4块的预测模式,如图2阴影部分所示。左边块的预测模式存储在predmode模块内。对于高清图像(分辨率为1 920×1 080)来说,predmode_ram需要的存储空间为1 080 bit。

如图3所示,E是当前块,A是左边块,B是上边块,D是左上边块,C是右上边块。pred-mode模块的结构如图4所示,图中predmode_B模块的作用是获得当前宏块E的上边块B的预测模式,预测当前宏块E的子块0、1、4、5,需要从predmode_ram中读取上边块的参考预测模式,其他子块的上边块参考预测模式是当前块已解码子块的预测模式。predmode_A模块的作用是获得当前宏块E的左边块A的预测模式,预测当前块E的子块0、2、8、10时,左边块预测模式从reg_A里读取。当宏块E的16个子块预测完成时,把5、7、13、15子块的预测模式存储到reg_A中,为下个宏块模式预测提供左边块参考值。

2.2 prediction模块设计

prediction模块是整个帧内预测的核心计算模块。prediction模块的功能是根据获得的参考像素,在不同预测模式下采用不同的预测公式计算当前块的预测值。帧内预测共有17种预测模式,通常若对每种预测模式都设计预测器,当求解一个预算值时,其他16个模式处于空闲,这就造成了很大的资源浪费。通过分析各个模式所对应的运算法则,可以发现这些运算法则的共同特点是:(1)计算每个位置预测值最多需要4个参考样本像素;(2)计算公式都可由加法和移位操作完成计算。根据各个预测模式的相似点,把17种预测模式集合到一个运算单元中,可大大节约硬件资源。

图5给出了PE的设计,该PE的特点是:(1)Horizontal或Vertical预测模式中在获得参考值x0后,在bypass控制下不需要经过运算单元直接获得预测值;(2)DC模式,该模式的预测值是一个平均值。对于Intra_4×4_DC模式,用2个PE单元(PE0和PE1)在1个时钟周期就可解得预测值。Intra_16x16_DC模式需要4个时钟周期,假设左边和上边的参考像素值分别命名为L0~L15和U0~U15,前3个时钟周期,PE0的输入分别为(L0,L1,L2,L3)、((L0+L1+L2+L3),U0,U1,U2)、((L0+L1+L2+L3+U0+U1+U2),U3,0,0),输出存储在PE_reg中作为下个时钟周期的输入,PE1、FE2、PE3的输入类同,最后一个时钟周期把PE0、PE1、PE2、PE3作为PE0的输入求出DC模式的预测值;(3)其他预测模式,如(A+2B+C+2)>>2和plane预处理单元的输出都能经过此运算单元完成预测值的计算。

为了提高解码速度,满足视频解码实时性的要求,采用4个运算单元PE0、PE1、PE2和PE3同时运行,4个运算单元4个时钟周期可以解码出一个4×4块,提高了解码速度。

2.3 plane模块设计

2.3.1 简化plane预测模式

Intra_16×16_Plane模式和色度块Intra_chroma_Plane模式是帧内预测中最复杂的预算模式,为了满足系统实时处理的要求,可提前预算plane模式需要的一些参数。本文以Intra_16×16_Plane为例介绍如何简化plane模式,Intra_chroma_Plane方法类同。

在plane模式运算中要用到乘法,为了节约硬件资源,采用移位来实现乘法,其中参数a、b、c的计算公式为:

在H和V已知的情况下,a、b、c均可求得。当设A=a+b×(-7)+c×(-7)+16,预测值为:

上述公式,首先求得A后,pred(0,1)、pred(0,2)、pred(0,3)的值是在A的基础上加上c、2c、3c,然后再进行移位和clip。pred(1,0)、pred(2,0)、pred(3,0)的值只是在A的基础上加上b、2b、3b,然后再进行移位和clip。所以提前求得A、b、c,预算值是在A的基础上加上b或者c的倍数,本方法可大大优化plane模式。

2.3.2 plane模式硬件设计

plane模式的关键是求得参数H和V,其硬件设计如图6所示。以V为例介绍本电路。

其中设:

举例说明本运算单元如何计算出参数H:

当a=a11、b=a12、c=a3、d=a3、sum=0、mux1=0、IS6=0、IS7=0、shift1=0、shift2=1时,就可以求得A1+A3。a=a21、b=a22、c=a51、d=a52、sum=0、mux1=0、IS6=0、IS7=0、shift1=1、shift2=2时,就可以求得A2+A5,并依照这个运算单元可求出A4+A6和A8+A7。

本电路4个时钟周期就可以求得H或V,所以共需要8个时钟周期求H和V。本方法与通常方法相比,只计算一次A、b、c的值,其他位置的预测值只需要在A的基础上加上b或者c的倍数,降低了复杂度。

3 实验结果

本设计使用Verilog HDL完成硬件代码的编写,并用Altera公司的Quartus II 8.0进行代码的仿真和综合。图7为核心单元prediction模块的仿真结果,PE0_out、PE1_out、PE2_out、PE3_out9为4个并行单元的输出。采用Altera公司的Cyclone II进行本设计FPGA验证,本设计占用的逻辑资源数量较少,节约了硬件资源。

本文根据H.264帧内预测的特点,提出了一种并行处理的硬件实现方法。该方法能够提高帧内预测的处理速度,节约了硬件资源,满足了高清视频的解码要求。

参考文献

[1]ISO/IEC14496-10.draft ITU-T recommendation and final international standard of joint video specification(ITU-T Rec.H.264/AVC)[S].2003.

[2]SAHIN E,HAMZAOGLU I.An efficient intra prediction hardware architecture for H.264Video Decoding[M].IEEE,2009.

[3]Wang Xi.A parallel intra prediction architecture for H.264 video decoding[M].IEEE,2007.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【视频模块】相关文章:

在线开放课程中视频答疑模块的设计与实现05-07

学生模块05-02

模块开展05-26

提升模块05-29

建设模块06-04

数学模块06-07

高效模块06-10

新闻模块06-13

专业模块06-13

模块式06-16

上一篇:预警系统煤炭经济下一篇:建设发展电气工程