Skip to content

白皮书 · ISP 与传感器 · 驱动、模式与画质

数据手册承诺的传感器,以它承诺的帧率运行。

一台摄像头就是一颗传感器、一条图像流水线,以及一个必须与两者都合拍的驱动。我们把传感器移植到新芯片上,找回厂商驱动从未开放的模式,并调校流水线,让画面靠测量而不是猜测。

把传感器和板子发给我们 合作是怎样进行的

21 fps 从同一颗芯片上坏掉的 6 fps 提升而来——一颗 500 万像素传感器,宽动态范围保持开启
16.7 ms 移植一个模式就去掉的传感器侧延迟
200 fps 一颗 4K 传感器在裁剪窗口内的帧率,裁剪与像素合并可在运行时设置

由我们在量产摄像头硬件上实测;前后对比的录像在电话会议上展示。

数据手册有六种模式。你的驱动只有一种。

你因为数据手册的承诺选了这颗传感器——宽动态范围、六十帧、4K 窗口——拿到的却是一个只跑一种模式、一种帧率的驱动,寄存器表是从参考板上抄来的。想改任何东西都要给厂商开工单,而厂商的回答就是你已经有的那个模式。

调校更糟。流水线报出来的统计量来自一个你看不到的阶段,于是你写的曝光环路永远收敛不了,也没人能说清为什么。你需要的是真正读过流水线数据流的人——读过一家厂商八代芯片,也读过四家厂商。

在那个平台上,曝光是一个上限,不是一段时间。明白了这一点,调校就说得通了。

我们带来什么

四件事,每一件都在硬件上实测。

厂商没有交付的模式

六十帧、像素合并、裁剪出的高速窗口。我们从数据手册推导时序,并在接口上验证,让你需要的模式在你的板子上真实存在。

找回来的帧率

移植后跑得慢,原因在初始化序列或流水线,而不在传感器。我们逐个寄存器跟踪厂商固件,重建整条路径,直到帧率与芯片的能力相符。

能收敛的调校

我们知道哪个统计量在哪里测——去雾之前还是之后,在原始域还是彩色域——所以你的环路闭合在它能作用的数据上。交付为一份带前后对比采集的报告。

一个驱动,多块板子

一份哪些传感器是哪些的换标版本的谱系,加上一份把八代平台归并为五个驱动层级的移植指南,第二次移植只花第一次的零头。

真实摄像头上的结果

帧率

一颗带宽动态范围的 500 万像素传感器在一台消费级摄像头上只跑出坏掉的 6 fps。跟踪厂商的初始化序列并重写流水线后达到 21——比厂商自己的闭源版本只少几帧,而且动态范围保持开启。录像就是证明。

延迟

按数据手册时序移植一个 1080p60 模式,去掉了整整一帧的传感器侧延迟,并把线上编码帧率提高了 47%。同样的方法让一颗 4K 传感器获得了运行时裁剪与像素合并,最高 200 fps。每个模式都在接口上验证,而不是在日志里。

画质

对两台摄像头的去雾调校让其中一台的可测细节翻倍、雾霾减少五分之四——每一项代价都逐条列出,两个厂商旋钮被证明毫无作用。顺带发现了文档没写的一点:曝光统计取自去雾之前,因此软件色调环路无法在其上闭合。

平台

HiSilicon 与 GokeSigmaStarIngenicRockchip160 多个传感器驱动

覆盖十个芯片家族的 160 多个传感器驱动,固件出货在数百种传感器与 SoC 的组合上。你的组合若存在,我们多半已经启动过;若不存在,动手之前我们就知道移植的代价。

合作是怎样进行的

01

流水线评估

固定价格,十个工作日。你提供传感器与 SoC——或一台样机——现有的驱动或固件,以及你需要的模式或画面。你得到现状的实测帧率与延迟、这颗芯片能达到的模式、差距的原因,以及带固定报价的移植方案。

02

项目

移植或重写驱动,在接口上验证时序,对照前后采集调校,并交付寄存器表和每个值背后的理由。

03

维护

驱动落入你的代码树,或者你愿意共同维护的话落入 OpenIPC,并附上供下一颗传感器参考的谱系笔记。

发来传感器和板子。十天后你就知道它真正能跑多少帧。

一封四行的邮件:传感器与 SoC、你需要的模式或画面、你现有的东西、数量与时间表。回复你的是带着方案的工程师,不是销售话术。

写信至 business@openipc.org 在群里提问

商业支持、OEM 授权与其他服务见商务页面