SENSOR Q&A

Q1: I2C地址错误

  • 请检查I2C地址配置是否和硬件一致

  • 检查I2C是否有被其它地方复用

  • 检查硬件

Q2: Sensor MCLK信号与设定不一致

  • 检查设定的MCLK参数是否有正确传入相关API

    sensor_if->MCLK(SENSOR_PAD_GROUP_SET, 1, handle->mclk)

  • 采用外部晶振提供MCLK的要与外部晶振输出的时钟频率一致

Q3: Sensor Data脚没有信号

  • 确定Sensor初始化代码是否正确写入,初始化完成后,把Sensor相关Reg的值读出来,和写入的值是否一致

  • 用示波器测量Sensor的上电时序,对比规格书,确认是否满足要求

  • DVP接口可以尝试切换 SENSOR_VSYNC_POL/SENSOR_HSYNC_POL 相位

Q4: Sensor Data脚有正常信号,PCLK正常,不出图或图像异常

  1. 用串口命令"dumpraw" Dump Sensor,用7yuv.exe查看获取的数据是否正常

  2. 如果数据异常:

    • 图像为斜线状彩条,一般是因为宽高比设置不对。

      调整res[0].nOutputWidth | res[0].nOutputHeight参数与初始化参数中的宽高一致。

    • 图像上下或两边有黑边,一般是Crop起始坐标设置不准确。

      调整res[0].crop_start_x | res[0].crop_start_y参数,直到黑边完全消失。

    • 图像颜色异常,一般是因为YUV格式不一致导致。

      调整mipi_yuv_order、bt656_yuv_order参数

      CUS_SENSOR_YUV_ORDER_YC和CUS_SENSOR_YUV_ORDER_CY

      有时候也需要调整SENSOR_BAYERID、CUS_BAYER_RG

Q5: 单AHD摄像头如何配置ISP_BYPASS?

CUS_SENSOR_CHANNEL_MODE_RAW_STORE模式可以正常工作的驱动只需要注意下面三点即可正常配置为ISP_BYPASS Mode

  • Snr_cfg.c中 sPrmCam = PRM_CAM_BAYER_SENSOR,其他都配置为NONE

  • Sensor Chanel Num 配置为0

  • Sensor Chanel Mode配置为CUS_SENSOR_CHANNEL_MODE_REALTIME_ISP_BYPASS

Q6: 某些Sensor录制视频运动画面会有马赛克问题

可以适当调整QP值。

原理是QP越大 → SIZE越小 → BLOCK EFFECT越严重。反过来讲是QP越小 → SIZE越大 → 越细致。

20,38,// I frame Min,Max QP。 22,42,// P frame Min,Max QP。 若需要SIZE变小,可以调前面那个20(I FRAME),22(P FRAME)→ 变大,但不建议超过24;反过来若SIZE想变大,可以调小,但不建议低过16。

18,40,// I MB Min,Max QP。 20,42 // P MB Min,Max QP。 后面这两条是FRAME内的QP。大部份FRAME内QP值会低(QUALITY较好)的部份是平坦区(EX:行车经过有阴影的地板)。建议先调整下面Tbl的参数,动态调整QP值。

int aDeltaQpTale_Pfrm[LUT_SIZE] = {-7,-6,-5,-4,-3,-2,-1, 0, 1,2,3,4,5,6,7};

原理是越往左的值指的是越平坦的区域QP要减少的值。越往右的代表越高频的区域QP要加的值。

可以理解为0的左边减的越多代表平坦区(像地板或天空)的QP值会减较多。0的右边正越多代表。高频区(树,分隔线)会加越多。

若要顾平坦区又要顾BIT RATE的话。左右要相等会较好。(先决条件是用户不在乎树有马赛克)

调整PMBTbl参数时注意P MB Min/Max QP要在正确范围内Max QP不能过小,Min QP不能过大。