展讯FOV配置

最近展讯项目测试verfier fov fail,测试的值78.52,但是显示的是74.52,修改fov驱动.于是咨询驱动同事,了解了解决方法.记录如下.

  1. 找到对应驱动文件
    vendor/sprd/modules/libcamera/sensor/sensor_drv/classic/Samsung/s5k4e6sub/sensor_s5k4e6_mipi_raw.h

其中有这个结构

static SENSOR_STATIC_INFO_T s_gc5025_static_info[VENDOR_NUM] = {
    {.module_id = MODULE_SUNNY,
     .static_info = {
        .f_num = 200,
        .focal_length = 354,
        .max_fps = 30,
        .max_adgain = 8,
        .ois_supported = 0,
        .pdaf_supported = 0,
        .exp_valid_frame_num = 1,
        .clamp_level = 64,
        .adgain_valid_frame_num = 1,
        .fov_info = {{2.90304f, 2.17728f}, 2.2697f}} // 2.3686
    }
    /*If there are multiple modules,please add here*/
};

其中fov_info就是我们应该修改的地方

1.camera硬件信息和测试角度

Effective Pixel 2592(H) * 1944(V)
Pixel size 1.34um * 1.34um

上面.fov_info = {{X, Y},Z}}这个结构,x表示宽度,y表示高度,z表示到屏幕距离,如下图所示.degre表示测试出来的角度,比如我测试的角度是78.52

fov夹角模型

像素 2592(H) 1944(V)
1像素大小 1.34um 1.34um

所以有如下公式:
x = 像素宽度* 横向像素 = 1.34 * 2592 / 1000 = 3.4786f
y =像素高度* 纵向像素 = 1.34 * 1944 / 1000 = 2.6050f
夹角正切公式:
在这里插入图片描述
tan(0.5 * degree) = 0.5 X / Z
Z = 0.5* X / tan(0.5 * degree) = 3.4786f * 0.5 / 0.817 = 2.1288
故:
.fov_info = {{3.4786f, 2.605f}, 2.1288f}}

其中X,是不变的,Z值是根据测试角度求出来的,可以看到degree越大.Z越小.可以根据这个微调.

发布了67 篇原创文章 · 获赞 42 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/w1764662543/article/details/89928383
FOV