FVID驱动模型[转]

FVID驱动模型是TI公司为解决GIO模型中数据缓冲区管理问题而提出的,尤其针对视频设备。它通过FVID_alloc(), FVID_exchange(), FVID_free()等函数对GIO模型进行封装,解决了缓冲区回收问题。FVID模型包含FVID_frame结构,用于描述视频数据帧,适用于DM64X系统。文章详细介绍了FVID模型的迷你驱动函数,包括mdBindDev(), mdCreateChan(), mdSubmitChan(), 和mdControlChan()的用途和实现。" 77203720,7092790,Win10环境下TensorFlow加载MNIST数据的Unicode错误解决方案,"['python', 'tensorflow', 'win10', 'error', 'mnist']
摘要由CSDN通过智能技术生成

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()函数)时被调用以实施设备邦定,完成对外部设备的初始化。而与其对应的是mdUBindDev()函数,使用mdUBindDev()函数会使设备处于无效状态,不能再使用。

② mdCreateChan()函数。使用此函数为应用程序和驱动程序建立通信通道,同时为每个通道申请缓冲区。在TI公司发布的FVID模型中,为每个通道都分配了3个缓冲区,轮流与外部设备交换数据,每个缓冲区对应1帧视频数据。与mdCreateChan()对应的是md_DeleteChan()函数,用于删除设备通道,释放缓冲区资源。

③ mdSubmitChan()函数。负责管理缓冲区,分别接受应用程序发出的FVID_ALLOC()、FVID_EXCHANGE()、FVID_FREE()三个命令并进行处理。其中FVID_ALLOC命令获取驱动程序中的缓存区,应用程序从三个缓冲区中取出最新的一帧视频数据,对其中的数据做处理,而只剩下的缓冲区用来接受外部设备输入的数据。FVID_EXCHANGE()将使用完的缓存区与驱动程序的最新数据缓存区交换,应用程序处理完1帧数据,将这1帧数据返回驱动程序,再读入新的1帧数据进行处理。FVID_FREE()将使用完的缓存区重新返回给驱动程序,应用程序将处理完的数据帧返回驱动程序,而不再向驱动程序申请新的数据帧。

④ mdControlChan()函数。用来操作外部视频设备,完成对视频数据的采集和输出。应用程序通过FVID_Control()函数将命令传递给GIO_Control()函数,然后再GIO_Control()传递给mdControlChan()函数,最后将命令分发到指定的设备。

FVID 函数:

1.FVID_create()作用:是分配并初始化FVID通道对象;

语法:fvidChan = FVID_create (name, mode, *status, optArgs, *attrs);

参数定义:

String name            /* ha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值