下载

5下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 基于DM6446音视频采集与播放

基于DM6446音视频采集与播放.doc

基于DM6446音视频采集与播放

feihong
2011-04-14 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《基于DM6446音视频采集与播放doc》,可适用于IT/计算机领域

中国科技论文在线中文稿件模板基于DM的音视频采集与播放赵连讯黄孝建*赵连讯SchoolofInformationandCommunicationEngineering,BeijingUniversityofPostsandTelecommunications,BeijingSchoolofInformationandCommunicationEngineering,BeijingUniversityofPostsandTelecommunications,Beijing北京邮电大学信息与通信工程学院北京北京邮电大学信息与通信工程学院北京北京邮电大学信息与通信工程学院北京北京邮电大学信息与通信工程学院北京SETbkPostcode""*MERGEFORMATSETbkMobile""*MERGEFORMATSETbkTelphone""*MERGEFORMATSETbkAddress"北京市海淀区西土城路号北京邮电大学信息与通信工程学院教二楼"*MERGEFORMAT北京市海淀区西土城路号北京邮电大学信息与通信工程学院教二楼SETbkEmail"zhaolianxuncomzhaolianxuncom"*MERGEFORMATzhaolianxuncomzhaolianxuncomSETbkIntroduction"赵连讯()男硕士多媒体通信"*MERGEFORMAT赵连讯()男硕士多媒体通信SETbkAuthorCHN"赵连讯黄孝建"*MERGEFORMAT赵连讯黄孝建SETbkAuthorEN"ZHAOLianxunHUANGXiaojian"*MERGEFORMATZHAOLianxunHUANGXiaojianSETbkFund""*MERGEFORMATSETversion""*MERGEFORMAT*|*专著*|*张启贵张胜张刚最新DSP技术*||赵连讯|ZHAOLianxun|北京邮电大学信息与通信工程学院北京|SchoolofInformationandCommunicationEngineering,BeijingUniversityofPostsandTelecommunications,Beijing|赵连讯()男硕士多媒体通信|北京市海淀区西土城路号北京邮电大学信息与通信工程学院教二楼||zhaolianxuncom||<CR>||黄孝建|HUANGXiaojian|北京邮电大学信息与通信工程学院北京|SchoolofInformationandCommunicationEngineering,BeijingUniversityofPostsandTelecommunications,Beijing||||zhaolianxuncom||基于DM的音视频采集与播放|CaptureandPlaybackofaudioandvideobasedonDMplatform|基于DM的音视频采集与播放|CaptureandPlaybackofaudioandvideobasedonDMplatform|(北京邮电大学信息与通信工程学院北京)摘要:文章探讨了基于DM平台的音视频采集与播放的解决方案。在MontavistaLinux操作系统之上深入研究音视频驱动的配置方法重点分析视频数据从捕获到显示的复制过程。实验结果表明完成了音视频的实时采集和播放。关键词:DM音视频驱动采集与播放中图分类号:TNCaptureandPlaybackofaudioandvideobasedonDMplatformZHAOLianxun,HUANGXiaojian(SchoolofInformationandCommunicationEngineering,BeijingUniversityofPostsandTelecommunications,Beijing)Abstract:Inthispaper,onesolutiontoproblemoftheaudioandvideocaptureandplaybackrealtimeontheplatformofDMisdiscussedOnMontavistaLinuxoperationsystem,amethodtoconfiguredriversforaudioandvideoisresearchedandthecopyingprocessofaudioandvideodatafromcapturetoplaybackisanalyzedindetailTheresultofexperimentdemonstratethataudioandvideorealtimecaptureandplaybackiscompletedKeywords:DMdriverofaudioandvideocaptureandplayback​ 引言达芬奇技术是由达芬奇处理器、达芬奇软件、达芬奇开发工具和达芬奇技术支持系统等组件优化而成。TMSDM(以下简称DM)是美国德州仪器公司(TI)在年月提出的基于达芬奇技术的高集成度芯片芯片处理器为ARMDSP双核架构并附带一个视频处理子系统(VPSS),非常适合图像视频方面的应用。在DM开发平台软件方面TI专门为音视频编解码(codec)多媒体应用精心设计了系统框架提供了丰富的系统程序接口、应用程序接口API以及视频、图像、话音和音频千余种流媒体算法组件。它们与操作系统、中间件构成了一个应用系统的大部分内容应用系统开发团队只需要将他们封装成运行包就能得到高可用性和高可靠性的产品。达芬奇框架完成了产品研发的大部分工作剩余的内容划分成应用系统设计和算法组件设计两类。对于应用系统设计而言学习并掌握音视频的采集和播放流程不仅有利于深入理解整个开发平台的结构也是在DM上做开发必须掌握的内容之一。本实验正是略去了DM中的视频处理模块的内容基于MontavistaLinux操作系统通过配置Linux音频驱动OSS(OpenSoundSystem),视频采集驱动VL(VideoForLinuxTwo),显示驱动Fbdev(FrameBufferDevice),完成音视频的采集和播放。实验采用标准的驱动配置方法对于其他平台的代码移植具有借鉴意义。​ 实验平台总体介绍DM内部功能模块主要包括ARM子系统、DSP子系统、视频处理子系统(VPSS)和系统控制模块另外还有电源管理、外部存储接口、外围控制模块和交换中心资源等部件。内部功能模块如图所示。ARM子系统采用ARMvTEJ(bit)指令集的ARMEJS内核CPU,是采用管道化流水线的bitRISC处理器工作频率高达MHz。DSP子系统、图像处理DSP子系统CPU采用TMSC(简称CX)DSP内核最高工作频率达到MHZ并使用超长指令字(VLIW)结构性能极高。视频处理子系统(VPSS)包括两个主要的接口分别是用于视频捕获的视频前端(VPFE)输入接口和用于图像显示的视频后端(VPBE)输出接口。视频处理子系统由主要用于视频输入及前端处理的视频前端模块和主要用于后端显示与处理的视频后端模块组成。本实验主要在ARM平台上完成音视频采集工作重点讲解ARM子系统的功能。ARM子系统主要负责DM系统的整体配置和模块控制功能。DSP子系统、图像处理子系统和大部分外围模块以及外部存储器都由ARM控制。在本实验中ARM访问的外设如表所示。表ARM可以访问的外设TabPeripheralsARMaccessed外设ARM视频处理子系统VPSS√以太网控制模块EMACMDIO√串行口IC,SPI,UART√音频串行端口ASP√共享存储器DDR,EMIF√图TMSDM功能结构框图FigDMFunctionalBlockDiagram​ 音频采集与播放模块话音采集、播放模块是嵌入式系统的必备组件该模块完成音频信号的采集和播放等功能。在DM开发板上该模块主要有TI生产的低功耗立体声编解码芯片TLVAIC组成。该芯片有多个输入端口和多个可编程输出端口。AIC输入端有数控立体声麦克风前置放大、自动增益控制和对多路输入混音处理等强大的功能。输出端有路普通输出和路差分输出同时DAC和ADC支持KHZKHZ的多种频率采样。AIC与DSP的音频端口直接相连工作模式是全双工通信。​ 视频采集与播放模块视频采集播放模块是DM视频系统的重要组成模块之一。本系统的视频编解码芯片采用TI公司生产的TVP芯片。TVP芯片属于高质量编解码芯片能够把所有的常用的基带模拟视频格式转换成数字视频格式。它支持RGB和YPbPr信号的AD转换支持NTSCPAL和SECAM复合视频的解码和AD转换支持将S端子信号转换成YCbCr信号。TVP的AD转换采样率在采样宽度为bit的时候可以达到MSPSTVP芯片拥有个视频输入引脚所以支持多种图像格式的单独或者组合输入。视频数据通过TVP视频编解码芯片转换成bitYUV::格式然后送至视频前端(VPFE)处理。在本系统中由于芯片视频输入只支持bit输入所以选择TVP高位视频输出端连接。视频前端处理包括预览引擎、直方图模块、图像缩放模块和自动聚焦、曝光、白平衡等模块处理。处理完的数据送到视频后端处理或者送到DSP做进一步处理也可以存入硬盘。视频后端(VPFE)主要包括OSD(OnScreenDisplay)模块和视频编码模块(VENC)。视频数据经过视频编码模块处理之后可以有模拟和数字等多种显示格式。本系统中显示器使用数字视频显示器所以使用VPBE的数字视频输出功能。数字视频输出支持bitRGB格式、bitBT以及具有独立的水平和垂直同步能力的CCITT输出。本实验采用bit的BT视频格式输出。VPSS内部详细结构如图所示。音视频采集与播放的硬件连接如图所示。图视频处理子系统框图FigVPSSBlockDiagram图音视频采集与播放硬件连接图Figaudiocaptureandplaybackhardwareconnectiondiagram图​ 音频采集播放软件实现LinuxOSS声音系统驱动由声音设备devdsp和混频器devmixer两部分组成其中混频器可以用来支持多个输入。本实验采用线性输入方式输入音频数据。声音设备devdsp完成音频的采集和播放功能。devdsp属于简单字符设备在Linux系统中字符设备是当作流来按照先进先出的顺序来读写的。简单驱动的使用格式和文件操作相同无偏移域。采集声音和从一个文件读出数据类似输出声音和向一个文件写数据格式相同不同的仅仅是把文件句柄换成声音设备句柄。音频采集播放总体结构如图所示:图音频采集播放驱动连接FigDiversforaudiocaptureandplayback​ 软件流程​ 初始化混频器包括:Open打开混频器设置音频采集源为SOUNDMASKLINE,关闭混频器​ 初始化声音设备devdsp:打开设备devdsp设置声音采样格式DM支持立体声bit小端数据格式即AFMTSLE。设置双声道采集与播放采样率为HZ。​ 设置输入音频数据块的大小。为了使输入与输出之间的时间间隔不会太大设置采集声音帧大小是ms一帧数据大小为:frameblksize=***=。并向音频驱动申请数据块对应的ioctl命令是SNDCTLDSPGETBLKSIZE。​ 在用户空间申请frameblksize大小的数据空间。使用read函数从音频驱动中读入音频数据到内存缓冲区然后将音频数据从缓冲区写入到音频输出驱动这样就可以在开发板上听到声音了。当退出程序时用close关闭声音设备。​ 视频采集播放软件实现视频采集使用视频捕获驱动VL视频显示采用显示驱动FBdev。VL是一个用在很多Linux系统中的标准视频驱动使用devvideo节点作为视频输入主要设备节点是。Linux操作系统一般把系统使用的内存划分成用户空间和内核空间分别由应用程序管理和操作系统管理。应用程序可以直接访问内存的地址而内核空间存放的是供内核访问的代码和数据用户不能直接访问。vl捕获的视频数据最初是存放在内核空间的这意味着用户不能直接访问该段内存必须通过某些手段来转换地址。共有三种视频采集方式:使用read、write方式内存映射方式和用户指针模式。read、write方式在用户空间和内核空间不断拷贝数据占用了大量用户内存空间效率不高。内存映射方式:把设备里的内存映射到应用程序中的内存控件直接处理设备内存这是一种有效的方式。本实验正是使用内存映射mmap这种方式。用户指针模式:内存片段由应用程序自己分配。这点需要在vlrequestbuffers里将memory字段设置成VLMEMORYUSERPTR。内存映射函数mmap能够扩展应用程序进程存储区使其包括驱动程序缓存返回指向应用程序存储空间某位置的指针。映射完毕数据空间之后应用程序将没有视频数据的队列放入VL驱动空间入队队列当完成一帧视频数据的采集之后驱动程序会自动将装满视频数据的队列放入VL驱动空间输出队列。如果输出队列无缓冲可用那么Select函数阻塞与VIDIOCDQBUFioctl相关的文件描述符以便线程执行等待。当驱动写满一个新的缓冲并把缓冲加到输出队列后会释放应用程序进程。Select函数阻塞等待捕获缓冲区一旦可用便执行DQBUF。视频入队和出队的过程如图:图VL驱动使用mmap入队和出队FigenqueueanddequeuebetweenVLdriversandapplicationspaceFBdev是Linux系统使用的一个标准的视频输出驱动。它可以将一个显示设备的帧缓存映射到用户空间。设备节点主要号码是设备节点次要号码是x按照devfbx惯例命名。视频端口后端可以用两个视频窗口构成画中画支持两个OSD窗口或者一个OSD窗口加上一个属性窗口。devfb是OSD窗口devfb作为OSD属性窗口。OSD窗口是视频窗口的前景。视频窗口使用devfb访问视频窗口使用devfb访问。OSD窗口的透明度即通过OSD看到视频窗口的程度由OSD窗口的属性窗口来设置。对于属性窗口每一个像素的透明度由一个半元组(bit)的值来表示其值的范围为(全透明)到(不透明)。属性窗口大小设置要正确否则会出现显示视频图像不全的现象具体在节介绍。FBdev没有视频缓冲队列即用于直接访问显示设备的帧缓冲利用FBIOPANDISPLAY来切换虚拟帧缓冲空间中的两个或者多个缓冲用FBIOWAITFORVSYNC来阻塞进程直到当前帧缓冲扫描完毕然后切换。本实验中采用两个缓冲进行视频帧数据切换。​ 视频采集初始化流程①打开视频设备open(“devvideo”,ORDWR,)使用阻塞的方式打开视频采集设备。这样设置的好处是应用程序在没有获得视频数据之前如果驱动没有获得视频数据驱动将不会使用DQBUF将视频数据返回给应用程序空间使用会一直等待直到获得视频数据。打开视频设备之后使用ioctl函数配置视频设备的属性。不同的配置内容只需要修改函数中第二个请求参数进行配置。本实验采用PAL制式摄像头视频输入格式为VLSTDPAL。②设置当前视频捕获格式视频数据格式为UYVY,复合场视频VLFIELDINTERLACED设置像素宽度高度设置为D像素格式每行的字节数和一幅图像的字节数使用VIDIOCSFMT命令配置。③配置驱动请求缓冲区的数目向缓冲区请求分配内存。使用的命令VIDIOCREQBUFS。​ 使用mmap函数将视频数据驱动空间地址扩展到用户空间使用命令VIDIOCQBUF依次将请求到的个缓冲区放到VL入队队列。​ 使用命令VIDIOCSTREAMON开始视频采集。​ 视频显示初始化流程​ 打开FBdev显示设备devfb。​ 使用命令FBIOGETVSCREENINFO获得视频窗口可变信息使用命令FBIOGETFSCREENINFO获得视频窗口固定信息把视频窗口可变信息宽度和高度设置成为D格式大小的数据空间。在固定窗口信息中可以获得窗口线宽linelength在可变窗口信息中可以获得虚拟帧高度yresvirtual映射的视频空间大小为这两者的乘积。​ Mmap映射两帧视频数据空间到用户空间。​ OSD窗口初始化过程​ 打开OSD显示设备devfb打开属性设备devfb。​ 获得OSD窗口可变窗口信息并且设置OSD窗口宽度和高度为D格式大小。注意窗口像素值为bit。​ 使用mmap函数映射窗口大小和视频显示中的类似在映射属性窗口大小的时候要保证视频数据能够全屏显示本实验中映射大小为一帧视频数据大小最后将窗口初始化为黑色属性窗口初始化为全透明。​ 视频输出流程​ 视频输出部分是一个循环结构。在没有收到用户端关闭程序指令之前循环执行。首先Select函数阻塞捕获过程。当输出队列满的时候Select函数自动停止阻塞过程。​ 使用VIDIOCDQBUF将装满视频数据的队列输出到用户空间缓冲区​ 复制这一帧视频帧数据到输出视频缓冲空间此处的复制并不是直接复制实验之前曾经直接复制视频数据LCD屏幕只有斜线输出摄像头输入内容有变化时LCD输出斜线也有变化说明摄像头输入的内容在变化也在显示只是显示的配置不正确。具体在注意中讲解。​ 使用WAITFORVSYNC来阻塞进程直到当前缓冲扫描完毕​ 切换两个显示帧缓冲区​ 使用VIDIOCQBUF将使用过的视频缓冲区返回到驱动空间的空队列中。LCD显示结果如图所示。图视频输出显示FigLCDdisplay​ 注意的几点​ 本实验采用PAL制式摄像头。所以视频采集配置成为PAL制式代码为std=VLSTDPALioctl(captureFd,VIDIOCSSTD,std)​ DM输出视频像素格式支持YUV本实验采用视频数据采集进来直接输出的方法。因此为了支持视频数据的直接输出视频采集需要按照输出需要的视频格式进行配置。视频像素格式设置为VLPIXFMTUYVY每一个像素分配bit数据。函数ioctl(captureFd,VIDIOCSFMT,fmt)设置像素格式。像素的宽和高都要是的倍数。​ VIDIOCDQBUF从VL驱动中获得视频数据并保存在VLbuffer类型的buffer中。因为设置了视频数据场格式是VLFIELDINTERLACED在节提到两场视频数据合并成一帧数据连续保存在buffer中所以应当连续从buffer中获得视频数据。在视频显示端映射的缓冲区大小是linelength*yresvirtual,在节提到。但是视频数据只在FBdev的可视区域显示显示的数据宽度和高度由一帧图像宽度和高度以及每个像素占有的字节数决定。所以直接从buffer中向输出缓冲复制数据而不管数据存放格式LCD输出总是斜线杂乱的图像这也是存放视频数据格式不正确的原因造成的。​ 结论文章给出了在DM上采集和播放音视频的驱动配置过程。完成相关配置后可以在开发板听到从电脑里采集进来的声音并且在数字彩色电视上可以清楚看到OSD图像和实时的视频图像。本实验为以后在DM开发平台上的音视频相关开发研究工作打下了基础。参考文献(References)张启贵张胜张刚最新DSP技术"达芬奇"系统、框架和组件M北京:国防工业出版社彭启琮达芬奇技术:数字图像视频信号处理新平台M北京:电子工业出版社王磊冯立杰DM的音频编解码及播放实现J中国新技术新产品():王磊白桦DM的视频编解码及播放实现J黑龙江科技信息():李静安康EDMA在视频采集和显示系统中的运用J实验室科学():刘振华冯立杰TVP与DM的接口设计J中国信通信:宋磊方向忠达芬奇技术的视频应用分析J电视技术():王艳艳郅晨张俊业基于TMSDM的数字视频输出显示技术的设计与实现J计算机工程与设计():叶志龙基于TMSDM的嵌入式视频系统设计D太原:太原理工大学MichaelHSchimek,BillDirks,HansVerkuilVideoforLinuxTwoAPISpecificationRevisionS,张彦龙基于DM的立体图像显示系统和视频捕捉系统的设计与实现D天津:天津大学AlexBuelFramebufferHOWTOversionZhttp:newinfosysueducnSnowwaftp=

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/9

VIP

意见
反馈

免费
邮箱