毕业论文-具备硬件编码及实时特效功能的高清USB摄像头硬件功能研发.docx_第1页
毕业论文-具备硬件编码及实时特效功能的高清USB摄像头硬件功能研发.docx_第2页
毕业论文-具备硬件编码及实时特效功能的高清USB摄像头硬件功能研发.docx_第3页
毕业论文-具备硬件编码及实时特效功能的高清USB摄像头硬件功能研发.docx_第4页
毕业论文-具备硬件编码及实时特效功能的高清USB摄像头硬件功能研发.docx_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京林业大学本科毕业论文(设计)具备硬件编码及实时特效功能的高清USB摄像头硬件功能研发摘要硬件编码是利用GPU进行的编码解码,GPU在计算机视觉和图像处理中具有重要的作用,主要体现在优秀的浮点数计算能力,可编程调用硬件的硬件驱动程序,CPU适合指令的调用与定点数计算,在当今计算机图像处理数据呈几何倍数增长的年代,同时兼顾指令和计算的CPU的计算能力已经捉襟见肘。GPU的发展弥补了CPU的不足,GPU适合于运算的领域主要有如下方面:运算密集度高、数据并行程度高、控制简单。Raspberry Pi是一种新兴的微型计算机,其体积有一张银行卡大小,具有片上SoC,配备标准的USB、VGA、SDFlash存储卡、网口。在主板上拥有26个可编程插针进行扩展。Raspberry Pi自身配备CSI接口的500万像素摄像头,可以进行RAW格式的视频拍摄,也可以进行JEPG格式的图片拍摄。Raspberry Pi的硬件水平决定了树莓派可以使用硬件编码进行高清视频和图片的制作。在当代,GPU作为重要的一种可编程器件,其运算能力的增强让计算机视觉的处理能力飞速提升。通过GPU进行硬件编码可以将采集到的信号通过编码的方式进行压缩并且通过无线网络传输。无线设备的出现,大大缩减了设备的复杂程度,通过无线的方式能够减少各种线材的使用,不必局限于空间的限制。指令的下达与数据的获取都可以依靠无线进行传输。将设备作为服务器,移动设备作为指令控制端,进行远距离控制设备运转,通过无线局域网进行数据交换,将处理后的数据展示出来。关键词:硬件编码,图像特效,无线网络服务器Owning hardware coding technology and photography effect HD video camera hardware functionAbstractHardware coding is a way that use GPU to code or decode. GPU has an important effect on the computer vision and image processing, because it has a great power on handling the float data which is different with CPU. The CPU is good at calling instruction and fixed point count. Today, the data of the computer image data is increasing exponentially. To deal with the calling instructions and handle the data on the same time, the CPU now confront with the problem of lacking of ability to handle the two aspects. However the development of the GPU offsets the shortcoming of the CPU, it is good at some fields like below:First, high compute density. Second, high data parallelism.Third, easy control.The raspberry Pi is considered as a kind of new mini-computer machine. Its size is equal to a visa card, which owns a SoC(system on chip).equipping with the standard USB, VGA, SD Flash storage card, and a Net export, the raspberry Pi also has 26 Programmable pins to develop its program function. The raspberry Pi has a 500 megapixels video camera which use a CSI interface to transfer data. This video camera could shoot video by RAW form, it also could shoot photo by JEPG form. The hardware degree determines that the raspberry pi could be used on hardware coding and decoding when manufacturing the High-quality video camera and photo.Today, the GPU is considered as an important programmable device, its computing power promote the rapid increasing of computer vision handle ability. The signal which is captured could be coded and compressed by the GPU. Then the data could be transfer by the wireless Internet.The appearing of the wireless device reduces the complexity on transfer data. By using wireless network card, a lot of wires will not take up the room of other devices. Whats more, the wireless device could make the computer no longer limited by the length of the wire. Calling instruction and ceasing the data could depend on the wireless transmission. The device is treated as a server, and the mobile equipment is considered as an instruction controlling device to govern the operation of the equipment, exchange the data by the WLAN and show the processing data.Keyword:Hardware coding,Photography effect,WLAN web server目录第一章:引言11.1毕业设计的背景及目的和研究意义:11.1.1研究背景11.1.2研究目的11.1.3研究特点11.1.4研究意义21.2国内外研究状况和相关领域中已有的研究成果:21.2.1国外的研究现状与研究成果:21.2.2国内的研究现状:31.3课题的研究内容:61.4论文构成概述6第二章:开发板模块配置82.1需求分析82.2硬件选择82.3系统设备组成82.4框架介绍92.4.1Raspberry Pi B型开发板102.4.2OV5647摄像头模块112.4.3 TP-LINK 11AC 双频无线 USB 网卡11第三章:无线模块143.1无线网络模块配置:143.1.1分配静态ip地址143.1.2建立无线局域网153.2无线网络配置文件编写153.3无线局域网建立测试163.4无线网络服务器开发:17第四章:摄像头与特效模块194.1配置OV5647摄像头:194.1.1连接摄像头与Raspberry Pi开发板194.1.2升级开发板中的固件与软件194.1.3激活摄像头模块194.1.4测试摄像头模块194.2 Opengl特效原理194.2.1Opengl介绍194.2.2Opengl功能194.2.3Opengl硬件实现过程204.3GPU加速原理214.3.1GPU图像处理优势214.3.2GPU加速的步骤:214.4图像特效原理:234.4.1特效原理介绍234.4.2算法介绍234.4.3脚本程序编写234.4.4脚本实现功能244.4.5测试254.4.6结论25第五章:服务器模块265.1流媒体265.1.1流媒体技术介绍265.1.2流媒体技术原理265.1.3流式传输的传输协议265.2流式传输过程265.2.1流媒体组成:265.3H.264/AVC275.4crtmpserver服务器275.4.1 crtmpserver服务器原理275.4.2Raspbian系统中安装crtmpserver275.4.3openssl安装285.4.4crtmpserver的编译与安装285.4.5测试与修改295.5FFmpeg305.5.1FFmpeg介绍305.5.2FFmpeg解码方式305.5.3安装FFmpeg335.5.4测试与修改33第六章:前端和脚本346.1视频直播系统服务器后台开发346.1.1利用apache建立视频直播服务器346.1.2选用html5作为网页开发语言346.1.3Django 框架346.1.4用户接入验证356.2前端开发35第七章:结论和展望37Fig.7.8 Hatch effect40致谢42参考文献43V第一章:引言1.1毕业设计的背景及目的和研究意义:1.1.1研究背景随着家用电子设备的增多,单反、照相机这些专业的电子器材逐渐进入日常生活中。但是这些器材体积庞大,不便于携带。拍摄后,查看内容十分不方便。对于摄影摄像从业人员来讲,先进行拍摄,然后再将数据转移到计算机中进行处理,这样的过程十分复杂,操作过程较多,实现的效果不容易传播。当今,互联网上传播的图片、视频等媒体内容构成方式为:1)进行新闻图像、视频采集。2)新闻图像视频加工处理。3)将新闻内容在互联网上进行传播。可以明显的看出来,这种传播方式速度较慢,对于当今新闻内容爆炸式增长的互联网信息传播来讲,每一条新闻都要尽可能快速到达受众群体中。因此,如果有一个设备可以将这三个步骤同时进行处理,就可以省去新闻从业人员、即时信息处理者、后期图像加工人员以及和拍摄有需求的人员的大量时间和工作。1.1.2研究目的目前的影视后期制作工序复杂,从摄像到后期合成需要大量时间进行操作,一部影视作品的制作需要大量的人力物力和金钱需求,这在一定程度上抑制了摄影效果以及技术的发展,增加了拍摄时间和制作时间。在自媒体这个新兴媒体快速发展的今天,一部影片从立意到成品,需要迅速的拍摄和制作,并且能够快速上传到网络上供人观看评价进行二次传播,因此能够进行高清影视拍摄并且同时进行特效处理而且上传的机器就变得十分重要。1.1.3研究特点研发基于Linux系统以及搭载Broadcom VideoCore IV GPU的ARM11硬件平台,使用基于GPU硬件加速的OpenGL ES库实现实时视频特效功能,并利用GPU硬件加速实现对视频信号进行H.264编码的高清USB摄像头。特点之一就是运用GPU来实现需求的功能,所有的硬件设计和软件编写,都是以GPU为核心;第二在于运用丰富多样的算法,实现各种视频特效,这是功能的创新点中最直观的一点。1.1.4研究意义1、升级了传统的USB摄像头工作模式,摄像头自身进行高清H.264硬件编码,使用摄像头期间减轻了电脑CPU的编码负担,也可有效减小视频传输时所需带宽,让用户体验更流畅、更高清的视频通讯。2、利用GPU强大的图形计算能力,使实时视频特效处理成为可能。改变了传统摄像头单一的拍摄功能,为大众日常的视频通讯带来了更丰富的体验,也为媒体行业所期待的实时视频特效处理的功能提供了一个新颖的解决方案,显著减少后期的视频制作时间,让特效制作更智能,更有效率。3、由于硬件架构的相似性,对于手机等移动设备上应用相似技术具有参考作用。1.2国内外研究状况和相关领域中已有的研究成果:1.2.1国外的研究现状与研究成果:国外对于硬件编码的能力领先于国内水平,研究主要产生于实际的生活需要,对生产生活有一定的指导作用,国外关于硬件编码的研究国外的摄像头厂商已经研制出了具备硬件编码能力的摄像头,他们的实现方式对外封闭,这很大程度上阻碍的这个领域的发展。而对于自身特效功能的摄像头更是几乎没有,现在想要实现特效功能,往往需要电脑强大的专业软件的配合,而且大多数都不是实时的,只是用于视频后期处理领域。在2006年,为了研究超低功耗的基于无线网络视频传感器的生物医学应用,研发新型无线网络摄像头,目的是捕捉大量数据并且消耗小的物理空间,降低功率。香港大学的Dept Elect & Elect Engn研发了一种新型的单芯片集成图像传感器解决方案,利用了硬件友好型的压缩图像算法。在该设备中使用0.35m的CMOS传感器和3.3V的电压,可以保持合理的峰值信噪比水平和非常低的工作功耗,此外,所提出的压缩处理器性能可以从更高的分辨率和CMOS成象技术中显著获得提升1。在2012年,为了防止在波士顿导致的经济衰退,在极端的海浪波浪的物理侵蚀事件的记录,并且记录这些短期的过程,进行动态和静态的图像观察,然后用生态学、地质学一级环境学进行极端事件的研究,研发出了一个能够长期、低成本、低维护的低功耗操作的记录设备,并且支持大范围的时间和空间记录能力。研发出一个生态系统观测平台无线摄像头,视频流被经过无线网络传送,并且在远程服务器传送存储。预计将无限期运行,一些侵蚀相关的事件已被成功捕捉2。在2012年,土耳其的Gazi大学Teknol Fak等人研究出了一种远端通过互联网控制办公室机器并且时间监控设备的解决方案3。该解决方案通过采用互联网上的无线式步进电机装置,通过了计算机辅助实现了网络摄像机的控制,用户面板已经嵌入到互联网网页中,利用html写成的web页面进行远程调控。步进电机驱动器网络已经触发并行端口上的信号,然后该信号被RF发射器的RF接收器电路传送,RF接收器上附带的解码电路可以将解码后的信息直接将信号作用在马达端,使网络摄像头的位置可以进行调整。1.2.2国内的研究现状:国内外目前的现状是将视频录制和处理分成两步进行。现有的视频处理方案是在视频录制完成之后进行特效的加工,这些图像数据以浮点数的形式存放在存储器中,由专业的视频后期处理软件将数据交给CPU进行编码、解码,从而获得预期处理效果,这是现有的软件处理方法。这种方式在处理数据上速度缓慢,浪费时间,因为CPU对于浮点数运算的能力很差,而且软件运行时占用大量的CPU和内存空间,因而增加CPU的负担,致使整个系统效率低下。传统方式的主要流程为:首先,用摄像机将需录制的视频录制到存储器中。其次,将图像数据转移到电脑上,用计算机中的视频处理软件进行后期加工,完成整体的视频效果。视频处理软件的运作方式为:将图像数据进行算法处理,然后交给CPU进行运算,运算时图像数据存储在内存中,将CPU计算后的图像数据存储到硬盘中,完成所有的数据处理。这种方法操作步骤繁琐,浪费人力物力,并且没有充分利用计算机GPU对图像的优秀处理能力。国内尚未有类似的产品出现,但是现在有公司正在研发功能相似的产品,在2010年,蒋昌茂等提出了一种88w8510芯片为核心的WIFI模组来实现性价比高、价格低廉的IP摄像头解决方案。该方案采用了eCOS系统(Embedded Configurable Operating System),制作出一个无线网桥软件,将视频数据IP包通过WIFI模块转换成无线网络帧,送到AP,经过AP解包后发送给视频监控服务器,由服务器将视频内容发送给显示终端PC,最后由受众收看视频4。在2012年,王国鹏等提出了一种选用S3C6410处理器作为平台,嵌入式系统linux作为软件平台,对采集到的实时图像进行H.264视频编码,并且通过WIFI传输数据,设计并且实现了一个无线视频传输系统。首先,对整个系统进行了总体设计,构建了软硬件工作平台。系统的硬件平台采用三星公司的S3C6410微处理器,将ARM嵌入式端作为视频监控的采集服务器终端,将采集到的图像数据传输给PC机进行显示。在S3C6410上对Bootloadei、Linux内核及根文件系统的移植并运行,则完成了嵌入式开发平台的搭建5。其次,对系统的核心功能部分即应用软件部分进行了设计和实现,包括完成WLAN无线网卡驱动的开发和移植;利用V4L提供的接口函数实现了摄像头的图像采集;设计了系统H.264图像采集和压缩的具体编程流程,并实现了基于H.264的视频压缩;采用了RTP协议作为视频数据流传输协议,并实现了视频数据在无线局域网内的实时性传输。在2010年,马资道等提出了一种嵌入式ARM-Linux平台环境下的无线视频监控系统的解决方案。以嵌入式ARM9芯片S3C2410作为系统处理核心,USB数字摄像头作为视频采集前端,在嵌入式Linux环境平台上实现无线视频监控,并通过WiFi无线网卡与无线路由器构建嵌入式无线局域网,实现视频的无线传输,最后利用SDL完成了视频的跨平台实时播放6。整个系统由图像采集模块、ARM系统、无线传输模块3部分组成,系统图像采集模块选用中星微USB摄像头,它采用301PLUS主控芯片,该芯片在自动曝光、增益、白平衡、色彩、噪点控制、动态缩放以及边缘抗锯齿算法等方面都有独到之处,可以获得清晰度很高的视频图像。本系统首先通过USB摄像头采集现场实时图像信息,利用S3C6410内部集成的多媒体编解码模块MFC对其进行H.264格式编码压缩,然后利用RTP将压缩后的图像数据通过无线局域网传输到接收端,管理人员可在接收端通过流媒体播放软件查看接收到的视频7。在2013年,李磊等提出了一种视频图像控制器方案,该方案是基于FPGA开发,采用一片sdram作为缓存,在altera fpga上采用verilog语言,通过在片内跨始终缓存处理视频图像数据来实现的“基于sdram的显示控制器”。通过纯硬件算法,实现字符图像的叠加,并对多画面叠加、版同名显示灯特效的显示进行设计。整个实际一ep2c8q208c8的视频显示系统作为硬件平台,通过ov7670摄像头实现视频数据的实时采集8。在2011年,江志俭提出了一种基于Android平台的多功能特效相机,其主要工作是设计并且实施在 Android手机操作系统平台上的完成多种摄像效果。多功能相机是指利用三维图形的OpenGL ES接口进行渲染,实现在Android平台上显示的多功能摄像机菜单界面,完成图片的渲染和照片的多种效果9。摄像头特效是指在Android平台上的摄像照片效果模式的设计,可以根据用户的需求,为用户拍摄一张具有反射效果,鱼眼效果或者水彩效果的照片。通过这两个步骤的工作,可以实现华丽的界面设计和实现,强大的用户体验的相机系统。在2006年董志国设计了手持设备上的视频图像分割与渲染。首先,实际的移动设备上所有的手持应用,阐述了研究意义和视频图像分割的方法以及现有的理论和算法,并且进行了深入的比较分析,提出改进意见。最后,基于IntelXscale嵌入式处理器,图形处理硬件来实现OpenGLES接口进行控制,并进一步实现手持移动设备上的视频图像呈现。它取得了较好的图像分割和渲染表现,有良好的前景10。关于手持式多媒体应用和移动设备的视频图像分割意义的前景,而且从理论的角度论述了视频图像分割的可能性,论述了视频图像分割的理论基础,将流行的视频图像分割算法进行了比较,并提出改进算法;首次引进的计算机图形标准的OpenGL应用程序编程接口工作,并讨论了程序实现的OpenGL ES框架和图像渲染程序设计。在2003年,马杰等提出流媒体是指在internet-intralnet中使用流式传输技术的连续时基媒体,如音频、视频等多媒体文件。从不同的角度看,流媒体数据有三种格式:压缩格式、文件格式、发布格式。其中压缩格式描述了流媒体文件中媒体数据的编码、解码方式;流媒体文件格式是指服务器端待传输的流媒体组织形式;流媒体发布文件格式是一种呈现给客户端的媒体安排方式。该文所讨论的格式指第二种:流媒体文件格式,常见的有:.rm,.asf,.mov等格式。流式传输过程可以简单描述为:流媒体服务器按照一定的实时传输协议,把连续影像和声音信息封装成一个个独立的媒体数据包,向客户端连续、实时地发送;客户端创建并且维护一个缓冲区,一边将收到的媒体数据包放入缓冲区,一边读取缓冲区内的媒体数据进行播放11。在2004年,赵进等提出RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。实时传输控制协议RTCP(RealtimeTransportControlProtocol):负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据12。在2004年,张兴明等在RTP/RTCP协议和RTSP协议基础上,提出了“生产者线程-消费者线程”的架构,用面向对象的方法和事件驱动的机制实现服务器异步工作方式,充分利用系统资源,提高了服务器的并发性和实时性,基于反馈报文的流服务器流量自调节,解决了网络拥塞是实时数据传输问题13。2007年,任严等提出一个基于FFmpeg的视频转换和发布系统,通过该系统,利用手机或者移动设备可以通过internet在线播放和下载。同时,该系统可以通过设备描述文件来指定编码、分辨率、帧速等属性,同时输出多个目标文件,自动做到对大量不同设备和用途的适配,最优化文件质量与尺寸,满足不同设备的尺寸需求,提高用户的速度体验14。在2011年,刘建敏等提出了一种FFmpeg的H.264硬件编解码实现,定义一个视频编解码器,加入到FFmpeg库中。这个视频编解码器使用S#C6410处理视频硬件编解码功能来实现H.264的视频编码和解码过程,这样使用FFmepg库的多媒体程序可以用访问FFmpeg其他编解码器一样的方法使用这个自定义的额编解码器15。1.3课题的研究内容:综合所有的国内外研究内容,本文是为了设计具备硬件编码能力的无线特效摄像头,主要的研究内容为:1)确定系统方案,硬件平台的搭建和选择,包括硬件材料的选购,安装。其硬件材料主要有:主板方案:树莓派B型主板,网络模块:TP-link网络适配器,存储模块:Sandisk 8G存储卡,摄像头模块:OV5647摄像头模块。搭建平台组建图像收集模块,通过OV5647进行图像信号的收集。2)完成无线模块的设计,包括无线模块驱动组成,设计脚本加载无线驱动模块,通过无线模块建立无线局域网(WLAN),让所有设备可以通过无线局域网进行通信传输。3)进行服务器的搭建,依靠无线模块的设计,将服务器搭建在硬件平台上,使之可以对流媒体的数据进行操作,然后将图像数据利用ffmpeg进行编码。4)编写前端浏览器接收脚本,任何在无线局域网的设备可以通过浏览器收看摄像头拍摄的图像以及视频信息。5)完成整个系统的调整和测试,对本研究进行总结和预测。1.4论文构成概述第一章:绪论,介绍基于硬件编码的无线特效摄像头的研究背景和意义,综述近年来国内外的研究状况,概述本次研究内容和论文构成。第二章:开发板模块配置,介绍了开发的前期准备工具和软硬件准备,设备器材的选择和原因,将设备进行搭建,形成基础框架,为进一步开发做准备。第三章:无线模块,安装并且搭建了无线通信模块,进行无线路由器的搭建,建立最基本的通信模型(C/S模型),进行通信测试。第四章:摄像头与特效模块,介绍了摄像头的规格与特效算法,安装配置摄像头模块,进行算法的开发,程序的编写。第五章:服务器模块,C/S模型中服务器为主要部分,这一章主要介绍了服务器端进行的安装和操作,将服务器中需要的软件及服务进行配置,使整个系统能够完全运转。第六章:前端和脚本,进行前端的编写,以及访问服务的介绍,是客户端能够访问服务器,并且在服务器中获取服务。第七章:结论和展望,对完整的系统做出总结,并且对系统的未来可能性进行展望。第二章:开发板模块配置2.1需求分析经过现有的解决方案,本文提出了一种新的基于linux系统的无线特效摄像头解决方案,该方案具有以下特点:1)硬件成本低,体积小,便于安装和拆卸2)开源的软件系统,系统的扩展性较好,可以把系统分割,使之占用很小的硬盘空间3)摄像头具有500万像素,提供高清的画质,满足后期加工需求4)基于无线的C/S模型,允许设备进行无线连接,支持html扩展2.2硬件选择在现有的操作系统中选择了基于Debian的Raspberry Pi的经过硬件优化的免费操作系统,该操作系统与树莓派开发板片上系统SoC Broadcom BCM 2835具有良好的适配性。该操作系统提供开源的基本程序和工具,使Raspberry Pi开发板可以设置和运行。同时,Raspbian提供超过一个多元适配的操作系统:它拥有超过35000软件包,这些经过预编译的软件可以很容易在Raspberry Pi开发板上安装和运行。在2012年6月,35000建立在Debian上的软件包,经过调试,使之在Raspberry Pi上达到最佳性能优化。2.3系统设备组成具备硬件编码的实时特效高清USB摄像头的硬件组成有:Raspberry Pi B型开发板、OV5647摄像头模块、Sandisk 8G存储卡、TP-link无线网络适配器、5V/1A供电充电器、亚克力设备外壳。整个实验设备安装在亚克力设备外壳上,为了保护摄像头模块,经过消除静电处理后,将OV5647经过CSI接口介入Raspberry Pi B型开发板上,插入Sandisk 8G存储卡作为系统盘和数据存储设备,在开发板的USB接口上插上TP-link无线网络适配器作为无线模块,检查完整后,由充电供电器供电启动。整个设备如图所示:图2.0.1 开发板设备基本结构Fig.2.1 Raspberry Pis basic device2.4框架介绍本研究数据流动方向为:摄像头模块采集图像,然后将图像传给树莓派开发板,开发板上GPU进行数据处理加工,调用OpenGL ES 2.0函数进行图像加工,在CPU的指令调用下将数据通过无线模块传输到服务器端,在服务器端将媒体流存储,转播到互联网,经过前段代码的实现,通过无线局域网,移动端浏览器可以收看服务器发布的视频图像。数据流动方向如图所示图 2.2 数据流通方向Fig.2.2 Data stream direction2.4.1Raspberry Pi B型开发板本文采用Raspberry Pi B型开发板,该板使用Broadcom BCM2835包括CPU、GPU、DSP和SDRSM。其中CPU为ARM1176JZF-S核心700MHz单核处理器,图形处理器采用Broadcom VideoCore IV,OpenGl ES 2.0和1080p 30帧 h.264/MPEG-4 AVC高清解码器,512MB内存,2个标准USB插口,支持USB hub扩展,HDMI视频输出接口,标准SD卡接口,RJ45接口,同时拥有26扩展GPIO接口,用于扩展插针的使用。该开发板CPU采用ARM11架构,属于低功耗高性能的开发硬件,适合于小型移动设备的开发。Raspberry Pi开发板GPU支持h.264/MPEG-4 AVC高清解码,可以再媒体流数据中进行高清图像数据编解码传输,同时拥有OpenGL ES 2.0专门针对可编程管线硬件的嵌入式设备三维图像API,并且针对该开发板进行软件优化,对图像处理有专门的底层图形驱动,这对未来图形开发带来了非常大的便利条件。h.264MPEG-4 AVC(ISO/IEC命名),是一种由ITU-T与ISO/IEC正在联合进行开发的视频编解码方案,即将成为MPEG-4标准的第10部分(ISO MPEG-4 Part 10)。关于该技术的视频编码方案,现在正式命名为ITU-T H.264或JVT/AVC草案。H.264/MPEG-4 AVC作为MPEG-4标准的扩展(MPEG-4 Part 10),充分利用了现有MPEG-4标准中的各个环节。H.264/MPEG-4 AVC就在现有MPEG-4 Advanced Simple Profile的基础之上进行发展的。H.264/MPEG-4 AVC的编解码方案流程主要包括如下5个部分:精密运动估计与帧内估计(Estimation)、变换(Transform)及逆变换、量化(Quantization)及逆量化、环路滤波器(Loop Filter)、熵编码(Entropy Coding)。2.4.2OV5647摄像头模块OV5647摄像头模块拥有五百万像素封装在1.4M的图像传感器上,首次采用OmniBSI技术结构,可以提供高清视频影像。OmniBSI技术保证了OV5647可以拍摄五百万像素质量的图像,并且可以以720p/60帧率拍摄视频影像。OV5647能够以30fps速率播放720p和1080p的高清视频。另外,在720p/60高清录像功能中可以捕捉全视野范围内的景物,利用2x2的分级方式来增加芯片的敏感度用来改善图像信号的信噪比。图像分级重采样滤波器可以让OV5647利用最小的空间达到最佳的图像质量。OV5647功耗低,支持数码录像并行端口或高速双通道MIPI接口,能提供全帧,视窗型或者10-bit图像RAW RGB格式的录像。2.4.3 TP-LINK 11AC 双频无线 USB 网卡本研究采用TL-WDN5200 11AC 双频无线 USB 网卡配置无线网络模块,该网卡支持自动检测功能,能够自动调整速率,无线传输速率:2.4G 频段最高可达 150Mbps;5G 频段最高可达 433Mbps。支持 WPA、WPA2 高级安全机制,支持 TKIP、AES、WEP 加密。利用该无线网卡,在一定范围中建立AP无线局域网,进行数据中转和传播。环境搭建:准备器材:Sandisk 8G存储卡、读卡器、安装Linux Ubuntu操作系统电脑一台、支持HDMI接口显示器一台。第一步:Raspberry Pi开发板上安装的是2013-09-25-wheezy-raspbian版系统,在树莓派官网上下载操作系统Raspbian OS镜像压缩包到硬盘上,选择合适的系统版本后,进入linux ubuntu系统,输入命令行sha1sum 2013-09-25-wheezy-raspbian.zip验证操作系统压缩包是否完整,将输出结果对照官网给出的SHA-1 Checksum比较,当所得到的结果与官网一致,则说明数据没有被更改或者损坏,否则需要重新下载数据。完成下载后需要解压缩镜像,输入命令行:unzip 2013-09-25-wheezy-raspbian.zip进行解压缩。第二步:将SD卡插入读卡器卡槽中,与电脑连接。在命令行中,执行df h命令,检查现有挂载设备,如果现有挂载设备无法检测到,更换SD卡或者读卡器重新运行df h命令检查。当代表SD卡的新设备出现后,会出现/dev/sdb1和/dev/sdb2两个分区文件夹。在烧录系统之前,为了防止系统在烧录时有其他文件读取或者写入,进而导致系统烧录其他硬盘文件,将两个分区都卸载,打开命令行执行命令:umount /dev/sdb1;umount /dev/sdb2。第三步:使用dd命令将镜像文件写入SD卡sudo dd bs=4M if=2013-09-25-wheezy-raspbian.img of=/dev/sdb,bs代表一次写入块的大小,if参数为下载镜像的路径,of参数是设备地址。打开第二个命令行,执行命令:sudo pkill -USR1 -n -x dd观察检测结果。等待烧录完成,将SD卡插入开发板,通电进行测试。测试方法:将SD卡插入开发板,通过HDMI接入显示器,接上标准键盘,然后将开发板通电,观察显示器图像。图2.3 系统启动页面Fig.2.3 System boot page第四步:第一次进入Raspbian系统,系统默认账户:Pi,默认密码:raspberry。为了进一步配置系统,打开命令行,执行命令:sudo passwd root,连续两次输入新的密码,然后启用root账户,执行命令:sudo passwd -unlock root,输入新的密码即可解锁root账户。执行命令:reboot,重启系统,令更改的命令生效。第一次使用root系统会自动弹出系统配置,如图图2.4 初次配置页面Fig.2.4 First configuration page选择Expand Filesystem进行扩展系统空间,令整张SD卡都可以作为系统硬盘使用。调整完成后,执行命令:reboot,重启系统,令配置生效,配置完成。图2.5 系统页面Fig.2.5 System page第三章:无线模块无线模块在本方案中主要起到发送接收数据,服务器连接的功能。可以通过无线模块对服务器发出控制指令,进行操控,发出WLAN信号,建立无线局域网和Web服务器,能够通过无线模块发送视频流和数据流。与WLAN单元相连接,WLAN单元通过WLAN网络与手机、PDA、笔记本无线连接,手机、PDA或笔记本能够通过普通浏览器对无线网络摄像头服务器进行访问和读写操作,直观显示当前的视频图像和测试数据。3.1无线网络模块配置:3.1.1分配静态ip地址第一步:因为开发板目前不清楚其IP地址,因此要为开发板分配一个静态地址供其进行数据传输使用,这样可以防止当路由器信息改变时,IP地址信息随之改变,会导致开发难度增大,信息传输受阻。在Raspbian系统中打开命令行,执行命令:nano /etc/network/interfaces,编辑文档如下:iface wlan0 inet staticwpa-ssidWireless_Video_SSIDwpa-pskPasswordaddress 192.168.1.2# 设定的静态IP地址netmask 255.255.255.0 # 网络掩码gateway 192.168.1.1 # 网关network 192.168.1.1 # 网络地址编辑完成后保存内容,然后关机。图3.1 系统地址配置Fig.3.1 System IP address configuration3.1.2建立无线局域网第二步:建立测试用无线局域网。所需材料:一台装有Linux Ubuntu操作系统的电脑、无线网卡。使用hostapd建立无线热点,hostapd能够使得无线网卡切换为master模式,模拟AP功能,实现soft AP,相当于无线路由器,hostapd通过修改配置文件,可以建立一个开放式的,wep,wpa或者wpa2的无线网络。检测Ubuntu操作系统是否支持hostapd的运行。打开命令行,执行指令:sudo aptitude install iw,安装无线配置工具iw。执行指令iw list,如果结果显示出现AP字样,表示无线网卡支持hostapd运行。3.2无线网络配置文件编写安装hostapd软件包。打开命令行,执行指令:sudo apt-get install hostapd。安装完成后,建立文件名为hostapd-wpa.conf的配置文件,执行指令:nano hostapd-wpa.conf。编辑以下内容:interface=wlan0driver=n180211ssid=Wireless_Video_SSIDchannel=6macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=Passwordwpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP建立完成hostapd-wpa.conf文件,在该文件目录下执行指令:hostapd hostapd-wpa.conf。建立热点完成。利用手机搜索热点,可以发现名为:Wireless_Video_SSID的热点。打开命令行,执行指令:ifconfig wlan0 add 192.168.0.1。为其设置IP地址。设置网卡桥接模式。打开命令行,执行命令:sudo nano /etc/network/interfaces编辑内容如下:auto loiface lo inet loopbackauto br0iface br0 inet staticbridge_ports eth0address 172.16.16.X #这里是你的IPnetmask 255.255.255.0network 172.16.16.0#ip地址broadcast 172.16.16.255gateway 172.16.16.G #网关地址编辑完成后保存。打开命令行,执行命令:sudo /etc/init.d/networking restart,重启网络。3.3无线局域网建立测试建立完成无线局域网后,启动开发板,进入系统界面后,打开命令行,测试是否连入无线局域网,执行命令行:ping 192.168.191.1,成功连入无线局域网。图3.2 Ping测试结果Fig.3.2 Ping test result开发板测试成功,可以进行正常工作,也不存在数据传输问题3.4无线网络服务器开发:在开发板上配置无线网络,使之成为一台服务器,可以连接并且发送给其他终端内容。打开命令行,执行指令:sudo nano /etc/network/interfaces。配置/etc/network/interfaces文件如下:auto loiface lo inet loopbackallow-hotplug eth0配置网线连接,也就是电脑直接连开发板iface eth0 inet staticaddress 192.168.100.1netmask 255.255.255.0auto wlan0配置无线网卡一,其能发出wifi热点,使电脑能连之allow-hotplug wlan0iface wlan0 inet staticaddress 192.168.42.1netmask 255.255.255.0auto wlan1配置无线网卡二,使其连接电脑连着的wifi,使它们在同一网段allow-hotplug wlan1iface wlan1 inet dhcpwpa-ssid Wireless_Video_SSID wpa-psk Password 构建服务器完成。第四章:摄像头与特效模块4.1配置OV5647摄像头:4.1.1连接摄像头与Raspberry Pi开发板除静电后,将摄像头安装到开发板接口上。4.1.2升级开发板中的固件与软件检查系统是否已经升级到最新固件,否则会产生系统与硬件不兼容。打开命令行,执行指令:sudo apt-get update;sudo apt-get upgrade。4.1.3激活摄像头模块运行开发板配置工具来激活摄像头模块,执行指令:sudo raspi-config。移动光标之菜单中的“Enable Camera”启用摄像头,并且将其设置成为Enable(启用状态),设置完成后重新启动树莓派。4.1.4测试摄像头模块检测OV5647摄像头是否可以正常工作。打开命令行,执行指令:raspistill o testphoto.jpg t 1000。指令-o指示其生成文件名为testphoto.jpg的图片文件,指令-t指示其在延迟1000ms后进行拍摄。4.2 Opengl特效原理4.2.1Opengl介绍OpenGL 是行业领域中最为广泛接纳的 2D/3D 图形 API,OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。4.2.2Opengl功能OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C+紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:1.建模:OpenGL图形库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论