- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
实验11:视频采集播放实验
一.实验目的
了解视频传输及回放的原理;
了解共享内存在视频存储中的作用;
了解视频解码模块的实现方式。
二.实验要求
掌握视频存储模块的实现方式;
掌握视频回放显示的实现方法。
编写视频解码回放的启动脚本。
三.实验设备
硬件:PC机,基于ARM9系统教学实验系统,网线,串口线,SD卡;
软件:putty软件;
环境:ubuntu系统版本12.04,内核版本kernel-for-mceb,文件系统filesys_test,内核文件uImage_zh.zh,应用层encode源码,DMAI库。
四.预备知识
概述
TI公司的基于DaVinci技术的TMS320DM365芯片,集成了一颗ARM926EJ-S内核,一个图像处理子系统(VPSS),一个H.264高清编码器协处理器HDVICP和一个MPEG-4/JPEG高清编码器协处理器MJCP,支持多格式编解码,特别适合用于图像处理。
TMS320DM365芯片上提供了一个视频处理子系统(VPSS),用于视频数据的实时采集、播放等功能。VPSS内部集成了一个视频处理前端模块(VPFE)和一个视频处理后端模块(VPBE),VPFE用来控制接入的外部图像采集设备,如图像传感器,视频解码器等。VPBE则用来控制接入的显示设备,如标清的模拟电视显示器,数字的LCD液晶显示屏等。
整个视频采集系统终端以TMS320DM365芯片作为处理器芯片,基本模块有DDR2SDRAM、NANDFLASH、网口、串口,以及负责进行信令和视频数据传输的3G模块等。视频采集部分主要由DM365的VPFE(视频处理前端),一个多路转换器和两个视频数据采集芯片:分别是豪威科技的OV5640和TI公司的TVP5151组成。摄像头硬件切换由DM365的GPIO口对多路转换器进行控制,
选择输入到VPFE的数据源,应用程序通过V4L2接口和DMAI接口获取VPFE
驱动中采集的视频数据。
视频数据的采集是系统的数据源获取部分,其过程是通过CCD/CMOS摄像头采集模拟视频信号并转化为数字信号。视频采集是一个从底层到上层的分层实现的过程。
实现的功能
摄像头采集模拟画面TVP5151或OV5640芯片将数字信号进行处理视频处理前端VPFE将读取的视频数据放入缓存区应用程序调用
摄像头采集模拟画面
TVP5151或OV5640芯片将数字信号进行处理
视频处理前端VPFE将读取的视频数据放入缓存区
应用程序调用DMAI接口获取VPFE驱动中采集的视频数据
图1 功能实现流程图
基本原理
V4L2(Video4Linux2)是LINUX内核中关于视频数据处理的驱动框架,为上层应用程序访问底层的视频设备提供了统一的接口。V4L2支持各种视频输入输出设备,当视频设备连结到LINUX主机上时,视频处理驱动程序会在内核上注册一个主设备号为81的字符设备用于标识该硬件,然后内核会利用主设备号将该视频设备的驱动程序与视频处理驱动程序建立关联,同时加载设备驱动程序的各功能函数,并为其分配次设备号,使该设备可以正常工作。V4L2架构如图
2所示,用户空间中的应用程序通过调用V4L2接口来访问内核空间中的设备驱动,用户空间与内核空间内存间的映射工作由V4L2接口来完成,设备的硬件在
最下层,通过各种数据总线与设备驱动建立联系。
图2 V4L2框架
V4L2框架中视频数据的具体采集流程如下所示:
打开内核设备驱动节点dev/video0。intfd=open(“dev/video0”,O_RDWR);
2获取内核设备的capability,查询内核驱动能实现的功能。
VIDIOC_QUERYCAP,structv4l2_capability
3设置视频输入,内核驱动支持多个设备同时采集视频数据。
VIDIOC_S_INPUT,structv4l2_input
设置视频数据的分辨率和帧格式,如D1、CIF,帧格式包括图像的长宽和像素排列等。VIDIOC_S_STD,VIDIOC_S_FMT,structv4l2_std_id,structv4l2_format
向内核驱动申请缓存,用于存放采集上来的视频数据。structv4l2_requestbuffers
利用mmap()函数将内核空间申请的缓存映射到用户空间,这样应用层程序就可
您可能关注的文档
- 《可编程逻辑器件及应用》课程实验报告 凌智城 201806061211_实验三.pdf
- 《可编程逻辑器件及应用》课程实验报告 凌智城 201806061211_实验四.pdf
- 《可编程逻辑器件及应用》课程实验报告 凌智城 201806061211_实验一.pdf
- AVL数据结构课程设计.pdf
- 定量定性:代际关系、养老保险与中国城镇养老新图景.pdf
- 定量论文:温州民营企业主慈善捐赠行为研究.pdf
- 计算机网络课程设计报告.pdf
- 可编程逻辑器件及应用.pdf
- 面向对象程序设计Description of competition exercise.pdf
- 面向对象程序设计bigNumber.pdf
文档评论(0)