高通mm-camera_setting

1.如何设置驱动中的配置

高通下lib.h 中line_length_pclk ,frame_length_lines ,vt_pixel_clk ,op_pixel_clk 相关Res 的配置.
例子:

.x_output = 800,
.y_output = 1280,
.line_length_pclk = 1125,
.frame_length_lines = 1480,
.vt_pixel_clk = 50000000,
.op_pixel_clk = 10000000,
.binning_factor = 1,
.min_fps = 7.5,
.max_fps = 30.0,
.mode = SENSOR_DEFAULT_MODE,
.offset_x = 0,
.offset_y = 0,
.scale_factor = 1.000,
.data_rate = 800000000ULL * 1,

对于上面的解析
分辨率不用说.

line_length_pclk 和 line_length_pclk  FAE 一般会提供. 但名字不一完全符合. 可能叫HTS VTS. 但是一样的. 下面给出了定义,在linux 中叫hsync 

hts=1125,vts=1480
Hsync = Dummy Pixel = HTotal = HTS = H_Size + H_Blank // 行长;    会增加曝光时间 会影响帧率(FPS)
Vsync = Dummy Line = VTotal = VTS = V_Size + V_Blank   // 帧长;    不占用曝光时间,但是会影响帧率(FPS)
uint16_t line_lenth_pclk; //每一帧每一行多少个pixels
uint16_t frame_length_lines; //每一帧多少行
vt_pixel_clk  = line_length_pclk *frame_length_lines  *fps = 1125*1480*30 = 49,950,000 即 50000000
uint32_t vt_pixel_clk;         //sensor 扫描速率(pixels per sec)
uint32_t op_pixel_clk;         //sensor实际输出速率(pixels per sec)
op_pixel_clk – 表示要设置 VFE 时钟,需要通过 MIPI 通道从摄像头获取的数据量
op_pixel_clk = (传感器总数据传输速率) / 每个像素的位数
例如,如果 MIPI DDR 时钟值(MIPI 摄像头传感器时钟通道的速度)为 300 MHz,且传感器在 4 条通道上传输数据,每个通道的数据传输速率为 600 MHz,因为差分信号要乘以2。从而,总的数据传输速率为 2400 MHz。对于每像素 10 位的 Bayer 数据,这相当于 op_pixel_clk 值为 2400/10 = 240 MHz。这些值必须按照传感器技术规范赋值
这个MIPI DDR 时钟值 可以找下平台的spec. 
data_rate  = 400Mhz* 2 .   sensor 为1lane ,所以 *1 

op_pixel_clk = data_rate / 8 = 100Mhz .   此例子sensor 为8 像素位数的sensor

平台文档可以查看到DDR 时钟值
在这里插入图片描述

2. sensor driver 配置

查看是否enable mirror/filp
查看是否enable pdaf
查看sensor 模组的配置s5k3l6_module.xml
在这里插入图片描述
基本信息都可以在模组图中找到. horizontalViewAngle和verticalViewAngle 有可能在模组图中没有,但会给出视场角(FOV)
FOV又分为HFOV(水平), VFOV( 垂直), DFOV(对角)。
HFOV: 水平FOV
VFOV: 垂直FOV
DFOV: 对角FOV
在这里插入图片描述
horizontalViewAngle和verticalViewAngle 怎么计算如下:
tan(a / 2) = w / (2 * L) (a—水平视场角)
tan(b / 2) = h / (2 * L) (b—垂直视场角)
一般只用到水平视场角,其中,a:水平视场角 w:水平图像尺寸 L: 焦距

公式推导:
tan(a / 2) = w / (2 * L)
L = w / (2 * tan(a / 2))
a / 2 = arctan(w / (2 * L))
a = 2 * arctan(w / (2 * L))
b= 2 * arctan(h / (2 * L))

已s5k3l6 为例:
焦距:3.38mm
像素:4208*3120
像素和焦距的单位要一致.

w = 4208* 1.12 / 1000 = 4.71296
h = 3120* 1.12 / 1000 = 3.4944
horizontalViewAngle = 2* arctan(4.71296/(23.38)) = 234.8835698 = 69.7671396
verticalViewAngle = 2 arctan( 3.4944/(23.38)) = 2* 27.33548588 =54.6708

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值