0. 写在前面
记录ss928文档视频输入相关。
1. MPP媒体处理软件V5.0记录
视频输入VI模块实现功能:通过MIPI Rx等接口接收视频数据,VI 将接收到的数据存入到指定的内存区域,在此过程中,VI可以接收到原始视频数据进行处理,实现视频数据采集。
视频输入设备支持若干种时序输入,负责时序进行解析;
视频输入物理PIPE绑定在设备后端,负责设备解析后的数据再处理;
视频输入虚拟PIPE不绑定设备,负责其他模块或用户发送过来的数据处理;
视频物理通道负责将最终处理后的数据输出到DDR,在真正将数据输出到DDR之前,可以实现裁剪等功能;
PIPE可以设置成多种工作模式:
- 第0个PIPE可以有四种模式:
- VI在线VPSS离线
- VI在线VPSS在线
- VI离线VPSS离线
- VI离线VPSS在线
- 其他PIPE可以有两种模式:
- 当第0个PIPE为VI离线VPSS在线时,绑定其他PIPE只能设置VI离线VPSS在线;
- 当第0个PIPE设置成其他模式时,绑定的其他PIPE只能为VI离线VPSS离线。
- PIPE在不同工作模式下可以进行切换,此时VI需要重建,情况如下:
- VI在线模式不能切VI离线模式;
- VI离线模式不能切VI在线模式。
视频输入PIPE
VI的PIPE包含了ISP相关处理功能,主要对图像数据进行流水线处理,输出YUV图像格式给通道。
视频物理通道
SS928V100 VI只有一个物理通道,支持8个扩展通道。
扩展通道是物理通道的扩展,扩展通道具备缩放、裁剪功能,它通过绑定物理通道,将物理通道输出作为自己的输入,然后输出用户设置的目标图像。
ss_mpi_vpss_get_chn_frame:
用户从通道中获取一帧处理完成的图像;
td_s32 ss_mpi_vpss_get_chn_frame(ot_vpss_grp grp, ot_vpss_chn chn, ot_video_frame_info
*frame_info, td_s32 milli_sec)
注意:
- 该接口适用于VPSS所有通道,包括物理通道与扩展通道;
- 只有在USER模式下,并且队列深度不为0,才能获取到图像;
- 调用该接口获取图像,不会对后端板顶的模块有影响。如后端绑定VO显示,可以显示过程中获取图像,VO仍正常显示,不会受到影响;
- milli_sec为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回,如果milli_sec为0时,表示非阻塞模式,如果大于0时,表示超时等待模式,参数的单位是毫秒,超时间,在此时间内如果没有获取到图像,则超时返回;
- 解码回放场景下,由于不允许出现丢帧,VPSS只要有一个通道不处理图像(通道已使能),则整个VPSS不处理新图像,例如使能通道0和通道1,两者都不绑定后端,通道图像队列长度都设为2,此时从通道0中最多获取出2帧已缓存的图像,因为通道1缓存2帧后未处理新图像,所以VPSS不会再处理新图像;
- 开启通道低延时时,不支持获取通道图像;
- 在线模式时,中断模式设置为OT_FRAME_INTERRUPT_EARLY时,从物理通道获取到的图像可能是VPSS硬件未处理完毕的图像;
- 如果开启了通道低延时,获取的帧不是完整帧,需要设合理的低延时行号以保证读取的图像不出现异常。
ss_mpi_vpss_set_chn_crop:
物理通道先做缩放后做裁剪;扩展通道先做裁剪后做缩放;
如果裁剪区域超出图像范围,丢弃超出部分图像,优先保证裁剪坐标与所设置的参数相同;
分块处理时,通道0不支持裁剪;
设置通道裁剪前必须先设置通道属性;
通道AUTO模式与通道裁剪功能互斥;
通道开启任意角度旋转、LDC、展宽、鱼眼时不支持通道裁剪。