FVID 视频驱动模块

FVID驱动模型是TI公司为解决GIO模型在视频设备中的缓冲区管理问题而提出的,主要应用于视频处理。它通过FVID_alloc(), FVID_exchange(), FVID_free()等函数对GIO模型进行封装,确保缓冲区的有效管理和视频数据的高效交换。FVID模型包含的mdBindDev(), mdCreateChan(), mdSubmitChan()和mdControlChan()等功能函数,使得视频数据的采集、处理和输出更为流畅。" 88854531,7989742,理解Linux中的su命令及环境变量切换,"['Linux系统', 'shell命令', '用户管理']
摘要由CSDN通过智能技术生成

TI公司为开发DSP的外设驱动程序,推出了DSP/BIOS Device Driver KitDDK,定义了标准的设备驱动模型,并提供了一系列的API接口。

外设驱动程序分为两层:

类驱动(class driver)。类驱动程序用来为应用程序提供接口。这部分程序与设备无关,主要功能包括维护设备数据缓冲区,向上提供API接口供应用层程序调用,并协调应用程序对外设操作的同步和阻塞;向下提供适配层与迷你驱动层相连,实现API接口函数到迷你驱动层程序的映射。类驱动程序与硬件无关,只要外设驱动模型选定了,类驱动程序就定下来了,不需要做多少修改。

迷你驱动(mini driver)。迷你驱动程序与设备相关,所以设计迷你驱动程序是外设驱动开发中的重点。迷你驱动程序与类驱动层的接口格式是统一的,但迷你驱动程序对底层硬件的操作是根据硬件平台的不同而变化的。迷你驱动接收类驱动层发出的IOM_Packet命令包,决定对底层硬件进行什么样的操作。

外设驱动程序模型又可以分为以下3:

①PIP/PIO模型。基于数据管道的I/O模型,每个管道都在维护自己的一个缓冲区。当数据写入缓冲区,或从缓冲区取出数据时,便会激发notifyReader()notifyWriter()函数实现数据的同步。

②SIO/DIO模型。基于数据流的I/O模型,一个数据流是单向的,要么是输入,要么是输出,而且SIO/DIO模型使用异步方式来操作I/O,对于数据的读写、处理可以同时进行。

③ GIO模型。通用的I/O模型,灵活性很强,且没有适配层,直接操作迷你驱动程序,主要用来设计新型的设备驱动模型。

 

比较PIOSIOGIO

PIO支持更底层的通信,适合设计比较简单的外设驱动程序。例如在TI公司的6X11DSK板上实现的音频采集和回放,一般都是基于PIO模型的。而SIO模型具有很好的缓冲器分配回收机制,比较适合描述视频设备, SIO提供的功能也是相当丰富的,GIO 模型设计的目的就是针对特殊硬件的新型设备,以根据实际的场合和功能使用GIO设备驱动模型。

FVID驱动模型

TI公司最初设计的GIO 模型存在缺陷的,主要在数据缓冲区管理的问题上,应用程序在取得设备驱动程序的缓冲区进行数据处理之后,无法将缓冲区返回设备驱动程序。于是TI公司在推出DM642这一款主要用于视频处理的DSP芯片的同时,GIO模型进行了改进,提出了专门针对视频设备的FVID模型。

FVID模型是建立在GIO模型之上的,FVID_alloc()FVID_exchange()FVID_free()函数对GIO模型中的GIO_submit()函数进行封装,解决了GIO模型中驱动程序不能回收缓冲区的问题。

此外FVID模型还专门设计了FVID_frame结构。此结构中包含了常用的视频信号的信息,如行数、列数、YUV结构、场频等,很适合描述视频数据帧,为视频场合设计的FVID模型主要是针对DM64X 系统设计的.

 

迷你驱动各个函数的具体实现如下:

① mdBindDev()函数。在应用程序建立设备接口(FVID_create()函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值