MV100视频输入服务器 视频输入模块
模块划分
在MV100视频输入服务器中,视频输入(VI)模块通过多种接口接收视频数据,并将这些数据存入指定的内存区域,该模块可以对接收到的原始视频图像数据进行处理,实现视频数据的采集。
模块名称 | 描述 |
输入设备 (DEV) | 所有VI设备相互独立,支持时序解析。 |
输入PIPE | 包括物理PIPE和虚拟PIPE,虚拟PIPE只包含ISP_BE。 |
物理通道 (PHY_CHN) | 每个PIPE包含两个物理通道,如CH0和CH1,支持多种分辨率。 |
扩展通道 (EXT_CHN) | 扩展通道是物理通道的扩展,具备缩放、裁剪、鱼眼矫正等功能。 |
模块功能
1、视频输入设备:所有VI设备都是相互独立的,支持时序解析。
2、视频输入PIPE:VI的PIPE包含了ISP的相关处理功能,主要是对图像数据进行流水线处理,输出YUV图像格式给通道。
3、视频物理通道:每个PIPE包含两个物理通道,例如CH0具有裁剪、压缩等功能,CH1具有缩小的功能,支持8个扩展通道,Hi3519AV100的物理通道支持的典型分辨率包括3840×2160@60fps、1080p@240fps等。
4、视频扩展通道:扩展通道是物理通道的扩展,具备缩放、裁剪、鱼眼矫正功能,通过绑定物理通道,将物理通道输出作为自己的输入,然后输出用户设置的目标图像。
5、MIPI和DEV的绑定关系:Hi3519AV100/Hi3519AV100/Hi3516DV300等设备的Dev与MIPI绑定关系是固定的,不能动态修改绑定关系,每个PIPE都可以与任意Dev绑定,但不能动态修改绑定关系,在WDR模式下,需要多个物理PIPE绑定一个Dev。
API功能
视频输入(VI)模块实现了启用视频输入设备、创建视频输入PIPE、配置视频输入通道、绑定Dev与MIPI设备、绑定PIPE与Dev等功能,具体API功能如下:
1、CVI_VI_SetDevAttr:设置设备属性。
2、CVI_VI_GetDevAttr:获取设备属性。
3、CVI_VI_SetDevAttrEx:扩展设置设备属性。
4、CVI_VI_GetDevAttrEx:扩展获取设备属性。
5、CVI_VI_EnableDev:启用设备。
6、CVI_VI_DisableDev:禁用设备。
7、CVI_VI_SetDevBindPipe:设置设备绑定的管道。
8、CVI_VI_GetDevBindPipe:获取设备绑定的管道。
9、CVI_VI_SetDevTimingAttr:设置设备时序属性。
10、CVI_VI_GetDevTimingAttr:获取设备时序属性。
11、CVI_VI_CreatePipe:创建管道。
12、CVI_VI_DestroyPipe:销毁管道。
13、CVI_VI_SetPipeAttr:设置管道属性。
14、CVI_VI_GetPipeAttr:获取管道属性。
15、CVI_VI_StartPipe:启动管道。
16、CVI_VI_StopPipe:停止管道。
17、CVI_VI_SetPipeCrop:设置管道裁剪。
18、CVI_VI_GetPipeCrop:获取管道裁剪。
19、CVI_VI_SetPipeDumpAttr:设置管道转储属性。
20、CVI_VI_GetPipeDumpAttr:获取管道转储属性。
21、CVI_VI_SetPipeFrameSource:设置管道帧源。
22、CVI_VI_GetPipeFrameSource:获取管道帧源。
23、CVI_VI_GetPipeFrame:获取管道帧。
24、CVI_VI_ReleasePipeFrame:释放管道帧。
25、CVI_VI_SendPipeRaw:发送原始数据。
26、CVI_VI_QueryPipeStatus:查询管道状态。
27、CVI_VI_GetPipeFd:获取管道文件描述符。
28、CVI_VI_CloseFd:关闭文件描述符。
29、CVI_VI_AttachVbPool:附加VB池。
30、CVI_VI_DetachVbPool:分离VB池。
31、CVI_VI_SetChnAttr:设置通道属性。
32、CVI_VI_GetChnAttr:获取通道属性。
33、CVI_VI_EnableChn:启用通道。
34、CVI_VI_DisableChn:禁用通道。
35、CVI_VI_SetChnCrop:设置通道裁剪。
36、CVI_VI_GetChnCrop:获取通道裁剪。
37、CVI_VI_GetChnFrame:获取通道帧。
38、CVI_VI_ReleaseChnFrame:释放通道帧。
39、CVI_VI_SetChnRotation:设置通道旋转。
40、CVI_VI_GetChnRotation:获取通道旋转。
41、CVI_VI_SetChnLDCAttr:设置通道LDC属性。
42、CVI_VI_GetChnLDCAttr:获取通道LDC属性。
43、CVI_VI_RegChnFlipMirrorCallBack:注册通道翻转回调。
44、CVI_VI_UnRegChnFlipMirrorCallBack:注销通道翻转回调。
45、CVI_VI_SetChnFlipMirror:设置通道翻转镜像。
46、CVI_VI_GetChnFlipMirror:获取通道翻转镜像。
47、CVI_VI_Suspend:暂停。
48、CVI_VI_Resume:恢复。
49、CVI_VI_SetDevNum:设置设备数量。
50、CVI_VI_GetDevNum:获取设备数量。
51、CVI_VI_EnablePatt:启用模式。
52、CVI_VI_StartSmoothRawDump:开始平滑原始转储。
53、CVI_VI_StopSmoothRawDump:停止平滑原始转储。
54、CVI_VI_GetSmoothRawDump:获取平滑原始转储。
55、CVI_VI_PutSmoothRawDump:放置平滑原始转储。
56、CVI_VI_GetRgbMapLeBuf:获取RGB映射LE缓冲区。
57、CVI_VI_GetRgbMapSeBuf:获取RGB映射SE缓冲区。
58、CVI_VI_DumpHwRegisterToFile:转储硬件寄存器到文件。
59、CVI_VI_QueryChnStatus:查询通道状态。
60、CVI_VI_GetChnFd:获取通道文件描述符。
61、CVI_VI_SetChnAlign:设置通道对齐。
62、CVI_VI_GetChnAlign:获取通道对齐。
63、CVI_VI_RegPmCallBack:注册PM回调。
64、CVI_VI_UnRegPmCallBack:注销PM回调。
65、CVI_VI_SetTuningDis:设置调谐器禁用。
常见问题解答 (FAQs)
问题1:如何初始化和配置视频输入设备?
答案:要初始化和配置视频输入设备,可以使用以下步骤:调用SAMPLE_COMM_VI_Start()
函数来启动视频输入设备和VPSS(视频处理子系统),使用SAMPLE_COMM_SYS_GetPicSize()
函数获取图像大小,并使用SAMPLE_COMM_VPSS_Start()
函数启动VPSS,使用SAMPLE_COMM_VI_BindVpss()
函数将视频输入设备的数据绑定到VPSS,根据具体的视频输入场景,依次初始化各个视频输入设备。
问题2:如何查看视频输入模块的状态?
答案:可以通过读取/proc/umap/vi
文件来查看视频输入模块的状态,这个文件中会显示已配置的视频输入设备和通道,以及接收到的数据帧数。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1212511.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复