接标清相机时XVR与不同ADchip的搭配
1. 概述¶
不同AD chip在处理标清信号时候做法稍有不同,主要是width有差异,这样导致VIF需要根据前端送信号的实际情况做不同配置。这里整理3款AD芯片接收标清信号的情况如下,以接入960x480 NTSC相机信号为例。
1.1. NVP6168C¶
VIF:

在2Multiplex mode并且双沿采样情况下,NVP6168C是将Width按照原本信号width*4的大小输出,传的数据都是基于148.5M 时钟做的,对width进行了倍数据。VIF需要开bEnH2T1PMode,并且注意FieldType需要设置为E_MI_SYS_FIELDTYPE_BOTH(上图的Capsel设置3)。
bEnH2T1PMode和FieldType均通过接口MI_VIF_SetDevAttr(u32DevId, &stVifDevAttr)设置,参数stVifDevAttr参考类型定义:
typedef struct MI_VIF_DevAttr_s { MI_SYS_PixelFormat_e eInputPixel; MI_SYS_WindowRect_t stInputRect; MI_SYS_FieldType_e eField; MI_BOOL bEnH2T1PMode; } MI_VIF_DevAttr_t;
此外size相关的参数设置需要通过MI_VIF_SetDevAttr和MI_VIF_SetOutputPortAttr接口设置。
ISP:

这里ISP做了crop裁剪,作为参考。
1.2. XS9931¶
VIF:

在1Multiplex mode并且单边上升沿采样情况下,XS9931是将Width还是按照960原始大小送给VIF。VIF不用开bEnH2T1PMode,注意FieldType需要设置为E_MI_SYS_FIELDTYPE_BOTH(上图的Capsel设置3)。VIF硬件收到的Height是240,设置E_MI_SYS_FIELDTYPE_BOTH会将2场合成1张画面。
ISP:

1.3. TP9930¶
VIF:

在1Multiplex mode并且单边上升沿采样情况下,Techpoint9930做法和其他不一样,是将Width按照1980送。VIF需要开bEnH2T1PMode,注意config.ini相关size要设置990x480;FieldType需要设置为E_MI_SYS_FIELDTYPE_BOTH(上图的Capsel设置3)。
ISP:

DVR demo code的修改参考:

此外config.ini需要配套修改:
VifDev = 0 vifOutPortId =0 vifPortCropX=0 vifPortCropY=0 vifPortCropW=990 vifPortCropH=480 vifPortW=990 vifPortH=480 vifpixel=14 HDR = 0 RunMode = 1Multi Field = 3 H2T1P = 1
ini的修改是为了使MI_VIF_SetOutputPortAttr接口参数匹配,否则会出现err。
MI_VIF_SetOutputPortAttr接口可以参考MI VIF API文档说明;当与前面描述的不同AD chip搭配使用接收标清信号时,这个接口的参数都需要调整。

2. 补充(960x576 PAL标清相机信号)¶
960x576 PAL标清相机信号和NTSC标清的主要差异就是Height不一样。
NVP6168C:

XS9931:

TP9930类同。