接标清相机时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类同。