视频xp操作系统

xp操作系统  时间:2021-04-01  阅读:()
2006AnalogDevices,Inc.
ABlackfinOnlineLearning&DevelopmentBlackfin在线培训课程课程单元:快速开发基于Blackfin的视频应用主讲人:GlenOuellette第一章:简介第1a节:课程安排第2章:视频输入第2a节:设备驱动程序第2b节:视频输入数据流第2c节:视频捕捉举例第2d节:视频捕捉概述第3章:视频输出第3a节:视频输出数据流第3b节:视频显示举例第3c节:视频显示小结第4章:视频输入/视频输出小结第4a节:视频传输第5章:MJPEG编码应用第5a节:MJPEG编码应用第5b节:视频数据编码第6a节:USB应用第6a节:USB产品系列第6b节:USB/主机数据传输第7章:MJPEG视频编码器举例第7a节:快速开发演示第7b节:软件组件第7c节:硬件组件第7d节:运行演示应用第7e节:使用演示应用/播放视频视频播放第一章:简介第1a节:课程安排2006AnalogDevices,Inc.
大家好,我是模拟器件公司(ADI)的Blackfin应用工程师,我的名字叫GlenOuellette.
今天,我将介绍如何快速开发基于Blackfin的视频应用.
在这个课程单元,我将演示,如何利用享有全面技术支持的硬件和软件模块,快速开发能够在Blackfin处理器上运行的视频应用.
参加本课程的用户应当具备软件术语方面的基础知识,并且拥有一定的嵌入式系统开发经验.
此外,用户还应当了解系统服务程序和设备驱动程序.
本单元的课程安排如下:首先,我将演示一个视频输入过程,即,将ADV7183B视频解码器生成的视频帧,传输并保存到Blackfin处理器中.
在这个过程中,我们需要使用VisualDSP提供的ADV7183B设备驱动程序.
此外,我们还将利用ADV7179设备驱动程序,演示一个视频输出的例子.
我们将通过演示MotionJPEG编码过程,说明如何利用Blackfin处理器,压缩视频信号.
然后,我们将演示如何通过USB应用,将完成压缩的视频信号传输并保存到PC主机中.
在本课程单元的最后一个小节,我们将演示一个融合了上述所有过程的MotionJPEG编码应用.
第2章:视频输入第2a节:设备驱动程序在演示视频输入过程之前,我们先来复习一下设备驱动程序;之后,我们将利用ADV7183B设备驱动程序,完成一个简单的视频捕捉.
大家应该还记得,设备驱动程序采用的是独立于任何驱动程序和处理器的标准化API,因此,设备驱动程序之间是完全相互独立的,它完全独立运行,并且可以在不同的Blackfin处理器之间进行传送,而应用或用户对此完全不知情,也无需其做出任何更改.
应用将负责利用诸如ADI_Dev_Read和ADI_Dev_write等函数,为设备驱动程序提供缓冲区.
输入缓冲区负责接纳设备驱动程序接收到的数据,而在输出数据时,设备驱动程序则通过输出缓冲区,将数据发送至希望与之进行通信的设备.
对设备驱动程序而言,应用发挥的作用微乎其微,应用所做的只是对系统服务程序和设备驱动程序进行初始化.
然后,应用或整个系统中的所有设备驱动程序都将完全自己负责管理调用系统服务程序.
例如,ADV7183B设备驱动程序将负责管理DMA(直接内存存取)管理器、中断管理器、定时器控制器及其回调.
如需了解关于模拟器件公司(ADI)提供的设备驱动程序的更多信息,请登录ADI网站,参阅用户手册中关于系统服务程序和设备驱动程序的帮助信息.
此外,这些PDF格式的手册还详细介绍了ADIVisualDSP4.
0的各个组件.
第2b节:视频输入数据流下面,我将演示ADV7183B视频输入数据流.
通常,要将ADV7183B视频解码芯片配置为接收某种输入视频源.
在本次演示中,我们使用的DVD播放器既可支持NTSC制式,又可支持PAL制式,不过我们选择采用NTSC制式.
我们要使用BF5612006AnalogDevices,Inc.
EZ-Kit评估板,这个评估板配置的是ADV7183B视频解码器.
同样地,ADV7183B的设备驱动程序也是由VisualDSP提供的,享有ADI提供的全面支持.
一般而言,应用会将经ADV7183B解码的视频数据填充到Blackfin处理器的视频帧中.
当视频帧填满后,它会将视频数据传输至另一个外接编码芯片,以执行本地显示,或者采用某种类型的压缩算法或数据处理应用,进行处理.
此外,视频应用基本上都拥有多个缓冲区.
这样,就可以确保不会覆盖尚未处理完毕或未显示的像素和视频帧.
因此,当我们填充第一个视频帧时,设备驱动程序将在完全填满这个视频帧之后,继续填充下一个视频帧.
而当第一个视频帧填满后,处理器就可以放心地对其中的数据进行处理,完全不必担心或顾虑会被新的数据或像素盖写.
这个过程将不断地循环往复.
许多应用都具备多重缓冲区处理特性.
也就是说,这些应用为读写视频提供了多个帧,从而避免了不必要的处理或者盖写未处理的数据.
就设备驱动程序而言,通常,视频应用会采用所谓的"ChainingwithLoopback(环回链接)"技术,用过设备驱动程序的用户应该都知道这一点,也就是自动地从最后一个缓冲区,返回并链接至第一个缓冲区.
应用不控制这个过程,而由设备驱动程序自己负责向缓冲区补充数据.
因此,数据将源源不断地传输至设备驱动程序.
这就是一个典型的环回过程,填满第一个视频帧后,继续填充第二个视频帧,然后自动环回链接至第一个视频帧.
这通常也被称为"乒乓缓冲".
第2c节:视频捕捉举例下面,我将简单演示EZ-Kit评估板上的ADV7183B的程序次序.
首先,要对应用初始化系统服务程序.
对于大多数应用,最好就是重设ADV7183B.
在本例中,我已在EZ-Kit评估板上通过可编程标志完成了这个步骤.
接下来,我们要启动ADV7183B的设备驱动程序.
在这个小小的代码窗口中,显示了用于实现这个目标的程序.
我们为设备驱动程序提供了句柄;将传输方向配置为输入,因为我们要接收ADV7183B输出的视频数据并将之传输至Blackfin处理器;然后,我们还要生成一个PPI回调,以便在缓冲区满载时通知更高级的应用.
接下来的程序次序也和前面一样简单.
我们将设置两个缓冲区,以便分配给输入的视频数据.
因此,我们设置了"buffer2Ddata"和"intobuffer2Ddata"两个缓冲区.
这两个缓冲区将指向两个视频帧,在本例中,是"videoframe0(视频帧0)"和"videoframe1(视频帧1)".
我们还必须定义视频元素的宽度.
为了优化利用Blackfin处理器的带宽,我们在本例中采用了打包技术,对16位宽的数据元素进行打包.
我们还要设置帧的大小,并通知设备驱动程序将接收到多少视频信号.
由于我们采用的是NTSC制式,因此,将收到1716字节乘以525行视频信号.
然而,由于我们采用了16位宽视频元素,所以我们要将X数值或1行中的元素数量除以2.
也就是说,每行视频信号将包含858个视频元素.
然后,设置负责通知应用的回调参数,我们要生成两个回调指示器:第一个是"1",表明第一个视频帧已经填满;而另一个回调指示器则是"2",表明第二个视频帧已经填满.
2006AnalogDevices,Inc.
最后,由于我们采用了环回链接,所以还要通知第二个视频帧和缓冲区,要通过环回,链接至上一个帧.
完成这些配置后,就可以启用设备驱动程序,开始运行了.
实现这一点也很简单——打开"devcontrol(设备控制)",将数据流设置为"TRUE(真)".
设备驱动程序启动之后,我们将开始接收到诸如DVD播放器等视频源输出的视频信号,这些视频信号将通过ADV7183B,进入Blackfin处理器,开始填充视频帧0.
这些数据传输过程都是由设备驱动程序完成的.
此外,由于我们采用了环回链接,因此,当视频帧0填满时,数据流将自动转而填充视频帧1.
就这一点而言,设备驱动程序实现了自治,来回利用视频帧0和视频帧1.
第2d节:视频捕捉小结下面简要介绍按照上述程序次序,我们要进行哪些操作.
首先,我们要启动ADV7183B设备驱动程序,以接收输入数据流;我们必须为设备驱动程序配置环回链接;此外,由于我们知道所用的是什么器件,所以还要设置ADV7183B的运行模式.
我们必须提供视频帧,在本例中,我们仅使用两个数据缓冲区.
然后,启动数据流.
从现在开始,设备驱动程序将独立于应用,单独运行.
因此,当第一个视频帧已经填满,并且后面的视频帧也全部填满后,设备驱动程序将执行回调.
应用可以利用回调,开始对数据执行下一级处理.
执行回调期间,回调函数自己会为驱动程序提供一个额外的缓冲区,以便填充数据,如此等等.
第3章:视频输出第3a节:视频输出数据流在这个小节,我们将演示另外一个例子——视频输出.
与前面的视频输入例子非常相似,我们还是使用ADV7179器件和BlackfinBF561EZ-Kit评估板.
我们将在本地显示器上显示视频帧.
在本例中,我们将在一台本地连接的电视机上,显示视频编码器ADV7179输出的NTSC制式视频信号.
ADV7179位于BF561EZ-Kit评估板上,我们将利用VisualDSP提供的ADV7179设备驱动程序.
在本例中,业经处理的数据或帧数据将填充到视频帧中,设备驱动程序会将这些视频帧数据,经PPI传输至ADV7179,并由其将这些数据编码为NTSC制式的视频信号,再在本地显示器上显示.
与ADV7183B例中一样,输出应用也要使用乒乓缓冲.
原因类似——通过来回利用两个缓冲,防止新输出的视频帧数据盖写正在显示的信号.
与ADV7183B设备驱动程序一样,这里也采用了环回链接模式.
因此,设备驱动程序将自主控制缓冲区,确保数据源源不断地传输.
完成传输并显示第一个视频帧2006AnalogDevices,Inc.
后,将继而传输和显示下一个视频帧——视频帧1.
视频帧1显示完毕后,设备驱动程序将在回调过程中加载视频帧0,从而形成一个环回链接.
第3b节:视频显示举例和视频输入一样,视频输出的程序次序也相当简单.
和ADV7183B例中一样,首先,应用将初始化系统服务程序,而这只要重设ADV7179编码器就可以了.
在本例中,我已在EZ-Kit评估板上通过可编程标志完成了这个步骤.
接下来,我们要利用这个应用,启动这个设备驱动程序;我们设置了ADV7179驱动程序句柄.
然后,将传输方向配置为输出,因为我们要将数据输出至编码芯片;此外,我们还要生成一个回调,以便通知应用,视频帧0/1已经在本地电视机上显示.
和视频输入一样,要提供两个缓冲区;并且设置两个视频帧:"videoframe0(视频帧0)"和"videoframe1(视频帧1)".
在本例中,我们也采用16位宽元素宽度,以优化利用Blackfin处理器的带宽.
我们还要设置视频帧的大小,这里我们选择使用NTSC制式视频信号的标准规格:1716字节乘以525行.
然后,我们还得设置回调参数,和视频输入例子一样,视频帧0为"1";视频帧1为"2".
初始化完毕后,现在只需要将数据流设置为"TRUE(真)",ADV7179设备驱动程序就可以开始运行了.
这时,设备驱动程序将视频帧0,经PPI传输至ADV7179,在本地显示器上显示.
当视频帧0显示完毕后,将紧接着显示视频帧1;然后,应用可以选择继续向视频帧0填充经处理的数据,或者不予理睬.
当某个视频帧显示完毕后,设备驱动程序将通知应用,执行回调,来回传输和显示视频帧0和视频帧1.
第3c节:视频显示小结现在,简单总结上面介绍的程序次序.
首先,启动ADV7179设备驱动程序,以输出数据流;然后,为驱动程序设置环回链接模式和ITURBT656模式.
接着,为它提供两个用于输出的视频数据帧,并发起数据流.
自此,应用和设备驱动程序将各司其职.
当上一个满载缓冲区中的视频帧显示完毕后,设备驱动程序将生成一个回调.
然后,应用将确认回调,并自主选择向这个视频帧填充新的数据,或者不予理睬.
设备驱动程序在生成回调命令后,将开始显示环回链接中下一个缓冲区中的视频帧.
在本例中,我们只设置了两个缓冲区,因此设备驱动程序将在这两个缓冲区之间来回填充数据.
第4章:视频输入/视频输出小结第4a节:视频传输好吧,现在总结一下前面演示的内容.
首先,安装ADV7183B设备驱动程序,它负责将视频源输出的视频信号经ADV7183B,填充到Blackfin处理器的两个视频帧中.
然后,我们又演示了ADV7179设备驱动程序,它负责将Blackfin处理器中两个2006AnalogDevices,Inc.
满载的视频帧经ADV7179,在本地显示器上显示.
开始时我曾指出,这些驱动程序相互之间是独立的,不过,它们可以共享相同的视频帧缓冲区.
也就是说,在这个过程中,两个设备驱动程序利用同样的视频缓冲区,实现了一个恰如其名的简单的视频传输.
具体而言,ADV7183B设备驱动程序负责接收视频帧信号,并开始填充视频帧0.
当视频帧0填满后,ADV7179设备驱动程序就开始输出这个视频帧信号,并在本地显示器上显示.
与此同时,ADV7183B设备驱动程序将开始填充这个环回链接中的下一个视频帧.
这个过程将周而复始,通过来回利用这两个视频帧,实现一个简单的视频传输.
这里我要提示大家,视频帧通常保存在SDRAM存储器的不同存储体中,从而消除了因使用SDRAM存储器而带来的时延.
此外,Blackfin处理器的增强架构允许我们实现DMA流量控制,这将最大限度地减少此类应用中常见的方向转换,这也有助于减少因在SDRAM存储器中执行读写转换而发生的时延.
在简单了解视频传输过程之后,接下来的课程将主要讨论视频应用.
在上面演示的传输和显示过程中,Blackfin处理器中保存的视频信号往往经过了一个编解码器应用或软件的处理或压缩;可能是索贝尔边缘(SobelEdge)检测、MotionJPEG编码、或者MPEG编码.
在本例中,我将演示MotionJPEG编码.
我们将利用一个编码器,压缩这些视频帧信号,并以压缩数据格式保存.
第5章:MJPEG编码应用第5a节:MJPEG编码应用下面,介绍编码应用.
在本例中,我们将演示MotionJPEG编码过程.
ADI提供了一个MotionJPEG编码器,我们将详细介绍这个产品,并实际演示对视频帧进行MotionJPEG编码的过程.
ADI公司提供的MotionJPEGSDK和JPEGSDK是独立式编码器库和解码器库,可以在ADI公司网站的Blackfin处理器代码范例页面,下载这些源代码,但不提供库格式的实际编码器和解码器.
此外,还提供了几个完全基于ADI系统服务程序和设备驱动程序的范例.
大家可以通过下列渠道,获取关于MotionJPEG库和JPEG库的背景信息.
下图演示的是MotionJPEG数据或视频编码的基本过程.
在这个过程中,通常是将包含亮度值缓冲区和色度值缓冲区等独立缓冲区的4-2-0格式的视频帧,传输至MotionJPEG编码器,由其对这些数据或视频数据进行压缩,并保存到压缩数据缓冲区中.
一般而言,诸如7183B等器件输出的是4-2-2交织格式的YCrCb视频数据,因此,需要利用回调,初始化或实体化内存DMA,将4-2-2格式数据转换成4-2-0格式,并降低码率.
也就是说,当视频帧充满了4-2-2格式数据后,回调将启用内存DMA,并将其中的亮度值缓冲区和色度值缓冲区分离开来.
然后,MotionJPEG编码器就能轻松地对这些4-2-0格式的视频数据进行压缩,并保存为压缩视频数据.
2006AnalogDevices,Inc.
第5b节:视频数据编码要使用编解码器软件,首先要配置MotionJPEG编码器.
下表列出了一些配置选项,不同的配置选项具备不同的性能要求,可以实现不同的压缩率和图像品质因素.
这里列出了不同规格的视频,包括单帧、较小的帧和全尺寸帧,以及不同的图像品质因素.
不过,用户还必须根据该表所列数据,包括品质因素、帧的大小以及帧速率,进行相关的分析.
初始化MotionJPEG编码器完成之后,我们还要初始化或者分配一个输出数据流,以便将MPEG编码器输出的数据传输至本地缓冲区,或者经由诸如USB等应用,传输至PC的本地文件系统.
最后,我们要将这个JPEG编码器实体化,为其设置一个指向新缓冲区的指针.
总的来讲,一个典型的应用将执行下列过程.
等待4-2-0缓冲区填满,其中包含了独立的Y、Cr和Cb等值.
然后,将缓冲区指针发送至MotionJPEG编码器,并开始执行MotionJPEG编码.
也就是说,通过回调启用内存DMA,并分离这些亮度值和色度值.
之后,就可以进行MotionJPEG编码了.
接下来,既可以把压缩数据保存到本地缓冲区中,也可以经由文件IO上传至文件系统,保存到USB主机中.
这个过程将持续不断地进行.
正如视频输入和视频输出的例子所示,此类应用通常采用双重缓冲区处理.
在进行编码时,必须利用多个帧,以确保从ADV7183B输出的视频帧信号,在经内存DMA处理,进入YCrCb缓冲区后,不会覆盖同一个帧中正在被解码和保存为压缩数据格式的视频信号.
这个过程也被称为对数据进行双重缓冲区处理,可以确保不会保存或覆盖尚未完成压缩和保存的数据.
第6a节:USB应用第6a节:USB产品系列好了,MotionJPEG编码过程介绍完了,下面,我们来看看USB应用.
大家应该都很熟悉USB应用.
接下来,我首先要介绍ADI公司提供的USBEZLANExtender局域网扩展卡;然后利用USB2.
0端口,演示一个简单的从Blackfin处理器向主机传输数据的过程.
ADI公司为其提供的USBEZLANExtender局域网扩展卡提供了全面的软件和硬件支持,该扩展卡适用于多种BlackfinEZ-Kit评估板,包括今天我们使用的ADSPBF561EZ-Kit评估板.
有了这个扩展卡,Blackfin处理器能够通过速度最快的USB2.
0端口,连接至PC主机.
这里列出的是利用面向NET2272PLXUSB芯片的设备驱动程序,在各种型号的Blackfin处理器上执行基准测试的结果.
在本例中,我们将使用BF561处理器.
从基准测试结果中,你可以看出,这种处理器更适于压缩2006AnalogDevices,Inc.
视频应用.
另外,需要指出的是,在配置了USB端口的PC上,诸如Windows等操作系统常常会阻碍USB2.
0端口的运行速度,因此,在开发应用时必须意识到,其性能和基准测试指标会受Windows操作系统的影响.
第6b节:USB/主机数据传输下面,我们简单演示从Blackfin处理器向主机传输数据的过程.
比较常见的情况是,PC主机向本地主机和Blackfin处理器发送命令块,然后与之进行通信.
在这个过程中,Blackfin处理器将收到一个USB命令块,然后依照命令块的要求,执行某项函数或某个操作.
也许是通过IO与主机进行通信,向主机上传数据或者通过文件IO,从主机读取数据.
基本命令就是一个命令块,例如上一张幻灯片所示例子中,PC主机向Blackfin处理器发送的命令块,其中阐明了要求Blackfin处理器执行的函数.
如需了解关于这个结构简单的命令块的更多信息,请参阅"USBCommand.
H"文件.
这里显示的例子就是一个简单的命令块,你可以设置一条命令、需要传输多少数据以及不同的参数.
Blackfin处理器上运行的应用将根据这些设置,确定主机要求它执行什么函数.
"USBCommand.
H"文件也提供了一些默认命令,包括读内存、写内存、启用USBIO和禁用USBIO等等,这些命令将指示应用,需要执行什么函数,如读写内存,以及什么时候开始执行、什么时候结束等.
因此,当应用接收到命令块之后,就会根据命令块的内容,启动某项操作.
请看在下面这个代码窗口中的例子.
应用接收到一个命令块,根据其命令,应用将执行某个函数,包括启用USBIO、读内存或写内存.
如需关于BlackfinUSB应用的更多信息,请参阅ADI公司提供的FTP技术文档集,其中包括各种图表和局域网信息.
此外,ADI也为VisaulDSP提供了BlackfinUSB固件.
在这个VisaulDSP中,还包括C代码范例以及适用于批量传输和同步传输的完善的设备驱动程序.
我们提供了Windows主机应用,以便用户在基于Windows操作系统的PC上运行设备驱动程序,查看Blackfin处理器中的USB应用.
第7章:MJPEG视频编码器举例第7a节:快速开发演示下面,我将从头到尾综合演示一遍前面4个小节中介绍的流程.
在课程最后,我将演示如何快速开发基于Blackfin处理器的MotionJPEG视频编码器.
我们首先介绍了视频输入组件,即,ADV7183B视频解码器;然后,又演示了视频输出组件,我们采用的是ADV7179视频编码器.
接着,我们讨论了MotionJPEG编码过程,即,将视频帧信号压缩,或者利用内存DMA将其分离,再进行压缩和编码,并保存到压缩视频数据缓冲区中.
最后,我们讨论了在收到主机发出的命令2006AnalogDevices,Inc.
后,执行的USB-主机事务处理过程.
在本例中,我们通过主机向本地PC执行了内存写操作.
第7b节:软件组件下面,我将演示一个典型的视频编码器应用的软件架构.
这个软件流程非常简单明了,应用首先初始化系统服务程序;然后启动面向NET2272的设备驱动程序,在这个过程中将完成设置PLX芯片,以便接收PC主机发出的命令.
根据接收到的命令,将按照其中给定的参数,执行某种类型的函数.
该函数结束后,例如,执行MotionJPEG编码,应用将继续执行编码,直到被要求停止编码,然后返回上面,等待主机发出下一个命令.
现在,我们详细解释编码过程.
根据USB主机发出的参数或命令,即这个MotionJPEG编码命令,设置MotionJPEG参数,并打开PC主机中的远程文件.
然后,设置视频设备驱动程序,即ADV7183B和ADV7179.
配置完毕后,Blackfin处理器将收到视频信号,同时,视频信号也会传输至本地显示器并在其上显示.
在本例中,我们将在这个EZ-Kit评估板上设置一个按钮开关,用于通知应用开始执行MotionJPEG编码.
在一个典型的应用中,可以选择任何一种类型的开关,这完全由用户自己决定.
我们这里选择采用按钮开关,或者如果是安全应用,用户也可以选择由动作传感器激活开关.
上面的配置完成后,或者按下软件开关后,应用将开始对视频帧进行编码,并将这些压缩帧通过USB端口,上传至PC主机,直至我们按下开关要求其停止,或者由视频安全应用触发停止.
第7c节:硬件组件接下来,介绍这个应用所需的硬件组件.
我们已经有了BF561EZ-Kit评估板、ADI公司提供的USB应用和USBEZLANExtender局域网扩展卡,还需要基于WindowsXP操作系统的PC主机,在本例中,这台PC必须具备USB2.
0端口.
此外,要有视频源,我们采用了一台DVD播放器,一台支持NTSC制式的显示器.
PC中应当安装了VisualDSP,以便使用设备驱动程序和系统服务程序.
我们还要使用本演示提供的软件,以便用户在自己的PC上快速完成应用开发.
安装过程非常简单.
对这个zip文件执行解压缩,将软件保存到PC硬盘的一个目录下,我们称之为根目录.
在接下来的演示中,我所说的根目录就是指这个目录.
现在,将EZLAN扩展卡连接至EZ-Kit评估板,然后,将PC上的USB2.
0端口连接至USBEZLAN扩展卡上的USB2.
0端口.
此外,必须在EZLAN扩展卡和EZ-Kit评估板上设置双列直插式开关,如这张幻灯片中所示,以确保USB应用与Blackfin处理器之间的通信顺利进行.
2006AnalogDevices,Inc.
这张幻灯片显示了所有的基本硬件.
如图所示,将EZLAN扩展卡连接至EZ-Kit评估板,视频源向EZ-Kit评估板上的ADV7183B传输视频数据;然后ADV7179将该视频数据输出至本地显示器.
Blackfin处理器将执行MotionJPEG编码,然后,USBNet2272将经压缩或编码的数据上传至PC主机,并保存为AVI格式文件.
之后,我们就可以在PC主机上,利用任何媒体播放器,观看这些压缩视频了.
下面演示如何连接至EZ-Kit评估板.
在本例中,通过BF561EZ-Kit评估板上的J6插孔,向其输入DVD播放器输出的视频信号.
通过第一排中间的插孔,也可以连接至电视机.
然后,要开启DVD播放器和PC显示器,确保既有视频源,又有显示视频信号的终端.
第7d节:运行演示应用接下来,为EZ-Kit评估板接通电源,启用VisualDSP,并将本例提供的视频保存到BF561EZ-Kit评估板的闪存中;上传视频文件,将视频加载到闪存编程器中.
之后,退出VisualDSP,重设EZ-Kit评估板.
EZ-Kit评估板重设后,对WindowsXP操作系统而言,它就是一个USB设备.
Windows操作系统将检测出这个新设备,用户需要向Windows操作系统指出,该USB设备的主机驱动程序的保存位置.
这个步骤只需要做一次,因为从现在开始,Windows操作系统将保留关于这个设备的信息.
EZ-Kit评估板开始运行后,将有视频流输入EZ-Kit评估板,用户必须将其连接至本地显示器.
然后,在PC上打开一个DOS提示窗口.
这里,我打开了一个DOS窗口.
找到根目录,找到下面保存主机应用的两个子目录.
这个应用将向Blackfin发送命令,指示它执行某种类型的函数.
在这个应用中,这个命令就是执行MotionJPEG编码.
这里举出了几个简单的命令,用户可以运行这些命令,以表明设备的连接情况,及其运行模式.
例如,键入"Hostapp-a",窗口中将显示PC上连接了多少个BlackfinEZ-Kit评估板或USB设备.
现在,我键入了"Hostapp-a",这时,提示说我的PC主机上连接了一个USBEZLAN扩展卡.
另外,还要提醒大家.
这个应用在运行时,会通过USB应用,将压缩视频上传并保存到PC中.
这些视频信号将保存在根目录下的images/motionjpg文件夹中.
这些文件将以AVI格式保存,在本课程结束时,我们将演示如何观看这些压缩视频.
本应用将通过文件IO与PC主机进行通信.
主机发出一条命令,指示应用执行MotionJPEG编码,然后,经压缩的数据将通过文件IO,上传保存到PC主机中.
请遵循下面这些说明.
第7e节:使用演示应用/播放视频现在,我将演示如何使用这个应用.
不过,在此之前,我们要从捕捉视频信号开始.
在PC主机中,有一个编码器技术规格文本文件,在工作目录下,这些技术规格向MotionJPEG编码器阐明了需要执行的压缩类型、视频的大小以及品质因素.
2006AnalogDevices,Inc.
例如,352*288视频,品质因素为60;或者全尺寸帧,品质因素为70.
视频帧类型、视频大小和品质因素等设置完毕后,就可以运行编码命令,指示Blackfin处理器开始执行编码,并将压缩数据上传并保存到PC中.
要设置编码,只要键入"hostapp-me".
这个命令将使Blackfin处理器上运行的应用开始执行MotionJPEG编码.
上述配置完毕之后,就可以开始运行这个编码器了.
现在,我将演示如何运行这个编码器.
我已经对这个MotionJPEG应用配置了需要执行的编码任务,"m"代表"MotionJPEG","e"代表"编码".
现在,我只需要启动这个应用.
这里显示的是这个应用正在Blackfin处理器上运行,这是对PC主机执行一个简单的Printf语句或者文本IO的输出结果,用于通知PC主机,Blackfin处理器正在执行的函数.
我们已经完成了这个过程.
在本例中,分析结果为:帧大小是352*288,品质因素设置为最高,即100.
需要写的文件是"DisplayMotionJPEG1".
这里还显示,我们正在等待按下"SW6"开关.
对于其他应用,用户也可以将SW6开关设置为由动作传感器激活开关.
在本演示中,我们在EZ-Kit评估板上设置的SW6开关非常简单.
按下SW6,开始录制;再次按下SW6,停止录制.
好了,我现在按下SW6,开始运行.
这里显示的是,我们正在录制帧,每次10帧,每一次翻一页.
现在,录制还在进行;将这些视频帧压缩,并通过USB应用上传并保存到PC主机中.
这些视频数据将以AVI文件格式,保存在根目录下的"MotionJPEG"文件夹中.
好了,就到这里吧,关闭录制窗口.
我们以30帧每秒的帧速率捕捉了686帧视频.
只要单击"Q",就可以退出这个窗口.
现在,我们完整运行了这个编码器,并且捕捉了来自DVD视频源的视频信号,由Blackfin处理器上的MotionJPEG应用进行了编码,现已通过USB应用,保存到PC主机中.
好了,现在就来播放这段在Blackfin处理器上编码的视频吧.
演示结束播放视频这段视频是由Blackfin处理器对DVD播放器提供的视频源进行MotionJPEG编码,并通过USB应用,上传到PC中的.
只要双击这个文件,就可以打开一个WindowsMediaPlayer播放器,观看这个压缩视频文件.
你可以在ADI公司网站在线收看今天的课程.
VisualDSP或者与本课程相关的zip文件也提供了这个课程的大部分内容.
如有任何疑问,请单击下面的"askaquestion(我有疑问)"按钮.
谢谢观看!
录制结束

PQ.hosting:香港HE/乌克兰/俄罗斯/荷兰/摩尔多瓦/德国/斯洛伐克/捷克vps,2核/2GB内存/30GB NVMe空间,€3/月

PQ.hosting怎么样?PQ.hosting是一家俄罗斯商家,正规公司,主要提供KVM VPS和独立服务器,VPS数据中心有香港HE、俄罗斯莫斯科DataPro、乌克兰VOLIA、拉脱维亚、荷兰Serverius、摩尔多瓦Alexhost、德国等。部分配置有变化,同时开通Paypal付款。香港、乌克兰、德国、斯洛伐克、捷克等为NVMe硬盘。香港为HE线路,三网绕美(不太建议香港)。免费支持wi...

CloudCone(1.99美元),可以额外选择Voxility高防IP

CloudCone 商家也是比较有特点的,和我们熟悉的DO、Vultr、Linode商家均是可以随时删除机器开通的小时计费模式。这个对于有需要短租服务器的来说是比较有性价比的。但是,他们还有一个缺点就是机房比较少,不同于上面几个小时计费服务商可以有多机房可选,如果有这个多机房方案的话,应该更有特点。这次我们可以看到CloudCone闪购活动提供洛杉矶三个促销方案,低至月付1.99美元。商家也可以随...

CloudCone:KVM月付1.99美元起,洛杉矶机房,支持PayPal/支付宝

CloudCone的[2021 Flash Sale]活动仍在继续,针对独立服务器、VPS或者Hosted email,其中VPS主机基于KVM架构,最低每月1.99美元,支持7天退款到账户,可使用PayPal或者支付宝付款,先充值后下单的方式。这是一家成立于2017年的国外VPS主机商,提供独立服务器租用和VPS主机,其中VPS基于KVM架构,多个不同系列,也经常提供一些促销套餐,数据中心在洛杉...

xp操作系统为你推荐
渣渣辉商标渣渣辉传奇哪个职业好摩拜超15分钟加钱摩拜单车免费卡和5元90天能叠加吗西部妈妈网我爸妈在云南做非法集资了,钱肯定交了很多,我不恨她们。他们叫我明天去看,让我用心的看,,说是什么...javmoo.com0904-javbo.net_avop210hhb主人公叫什么,好喜欢,有知道的吗5xoy.comhttp www.05eee.comwww.baitu.com我看电影网www.5ken.com为什么百度就不上关键字呢www.se222se.com原来的www站到底222eee怎么了莫非不是不能222eee在收视com了,/?求解bbs2.99nets.com西安论坛、西安茶馆网、西安社区、西安bbs 的网址是多少?kb123.net股市里的STAQ、NET市场是什么?javlibrary.comImage Library Sell Photos Digital Photos Photo Sharing Photo Restoration Digital Photos Photo Albums
查域名 域名服务器上存放着internet主机的 骨干网 电信测速器 asp.net主机 网站保姆 轻量 圣诞节促销 蜗牛魔方 ftp教程 怎样建立邮箱 美国网站服务器 360云服务 空间登录首页 www789 英雄联盟台服官网 php服务器 谷歌台湾 cdn网站加速 腾讯数据库 更多