Skip to content
← 全部新闻

· 作者:OpenIPC 团队

一个引导程序适配所有芯片,以及可调色的画面

所有 U-Boot 已合并到基于主线的一个仓库中;摄像机现在可以拍摄带逐帧元数据和时间码的 log 素材;我们发现的 Chrome HDR 回归问题已被 Google 修复。

所有引导程序合并到一个仓库

U-Boot 过去每种 SoC 各有一棵独立的源码树,同一个修复要在每棵树里各做一遍。我们把它们全部放进了一个仓库:每个系列一个分支,基于主线 U-Boot 的一个 fork,这样上游的修复和功能就能到达我们这里,而不是留在上游。HiSilicon 和 Goke 分支目前覆盖 38 种 SoC,每一种都在 CI 中构建。

一台拍摄供调色素材的摄像机

普通摄像机直接输出的成片画面事后其实无法真正修复:过曝的天空回不来,也无法与另一台摄像机的素材匹配。所以剪辑视频的人想要的是来自摄像机的原始帧,而不是好看的画面,之后再在电脑上把它调好。

打开 isp.cinema,摄像机就开始输出这样的画面。它做到两件别人替它做不了的事。画面中的每一个码值都通过一个公开的公式映射回场景光照,每次拍摄都是同一个公式——这样剪辑师就知道自己看到的是什么。而且摄像机会记录每一帧是怎么拍出来的:逐帧的曝光、增益、白平衡和色彩矩阵,每个片段一个 sidecar 文件,还有 SMPTE 时间码和 RAW 参考静帧。

配套提供转换到 ACES 的变换——色彩在剪辑工具之间传递的通用语言:一个输入变换、一个 OCIO 色彩空间和一个 LUT 生成器。没有针对单台摄像机做拟合,所以它们对任何传感器都成立。 Hi3516EV200、EV300、CV500 以及 Goke V200、V300。

HDR 视频,以及顺带修复的一个 Chrome 缺陷

一个设置,isp.hdr,电视和浏览器就会把画面显示为 HDR:阳光照射的墙面、一盏灯、一扇窗比普通白色更亮,而阴影和中间调保持原位。芯片和传感器支持 WDR 的地方,把它一并打开——捕获额外动态范围的正是它。

构建这个功能时发现了 Google Chrome 的一个缺陷,Google 已经修复了它。从 145 版本起,macOS 上的 Chrome 在某些帧尺寸下不再把 HDR 视频显示为 HDR。它把画面交给系统的视频层,并精确比较帧的矩形;经过一次分数归一化后,数值不总是逐位还原,比较失败,视频就失去了 HDR 余量,播放成普通画面。受影响的高度包括 1936、1944 和 1952 行——所以像 IMX335 这类传感器常见的 500 万像素 2592x1944 帧也在其中。我们查明了原因并报告给了 Chromium,他们的工程师修复了它。在修复版 Chrome 普及之前,开启 HDR 的 majestic 会把码流限制在浏览器能正确处理的尺寸上。

没有神经网络加速器的检测

不是每台摄像机都有 NPU,所以我们让人形检测器能在摄像机自己的 CPU 上运行。网络很小:66.7 千个参数,320x192 输入,整数运算。摄像机不在整帧上运行它——它裁出运动周围的区域,只把这个区域交给它。我们随模型发布了三个现成的工作点,并为每一个测好了阈值:误报更少、居中、或捕获更多。 模型在 cpu-models 中。

转动摄像机,以及选择它跟随什么

现在通过画面来操控云台摄像机,无需按键。看到画面边缘有什么,拖动图像,摄像机就跟随你的手指。双击一个点,它就居中到那里。控制盘是一个摇杆:推离中心多远就是速度多快,所以单独的速度滑块没有了。当画面翻转或竖放时,箭头也随之转向,"上"指的是屏幕上的上,而不是摄像机上的上。

你还可以告诉摄像机跟随什么:一个人、一只猫或狗,或者一辆车。过去它会追逐任何移动的东西,会被摇摆的树枝引走。白光灯也基于同一逻辑工作——它在摄像机看到了什么时点亮,而不是画面里有任何运动就点亮。

白天和夜晚可以按太阳或按时钟切换,而不仅按光线。运动检测也不再对摄像机自己的补光灯做出反应。

人数统计

在画面上画线和区域,摄像机就会统计:每条线每个方向各有多少人穿过,此刻区域里有多少人,今天按小时、过去一周或一个月按天,以及人们停留了多久。摄像机没有统计的小时显示为未统计,绝不显示为零。

402 种图像传感器的目录

/cameras/sensors 把它们并排放在一起:分辨率与传感器用途的网格、滤光片、可排序的表格和对比。每种传感器都有一个页面,包含其规格、发布日期、孪生型号和后继型号、图表上的相邻型号,以及目录中报告使用它的板卡。板卡的传感器现在会链接到它的页面。

两款新 SoC

Hi3536DV100 是一款 NVR 芯片,Cortex-A7:内核及其模块从 SDK 源码构建,闭源的 MPP 模块从厂商的 .ko 文件重新链接。

另一款是 Goke GK7206V100,他们以 XMedia Lotus 之名推出的当前一代:两个 Cortex-A7 核心、一个 RISC-V 伴核,以及运行神经网络的厂商 SVP 模块——其用户空间我们从源码重新构建了。该系列有六种裸片,封装内集成内存,内核 5.10.130。镜像在 CI 中构建,不过还没有板卡运行过它,其中两个修订版的引导程序已经在新 U-Boot 仓库里。

两者都在 openhisilicon 中。

其他

  • Xiongmai 的大清理。 XM510 重新支持 RTSP,/mjpeg 真正发送帧而不只是一个头部,快照在第二路码流关闭时也能工作,重启既不丢视频也不会被报告为崩溃。XM530 上,主码流会根据小于 1080p 的传感器自行调整尺寸。而且不用在桌上放一台摄像机就能拆解固件:模拟器有一个 xm510 机型,能通过摄像机自己的引导程序启动我们的 xm510_lite 发布版,也能启动完整的闪存转储。XM530 和 XM550 机型已写好,等待评审。
  • Lite 和 Ultimate 无需烙铁即可互换:16 MB 布局上通过 sysupgrade,8 MB 布局上通过 ipctool。
  • 板卡目录 新增了 Longse 和 Herospeed、Novatek NT98533、NT98560 和 NT98561、Hi3536C/D/E 以及 Goke GK7206V1。搜索默认搜索所有字段,图库支持滑动、缩放,并可用 Back 关闭。
  • 崩溃报告 现在会附带启动失败的日志,所以重启循环能显示出它栽在了哪里。
  • Wi-Fi 二维码生成器:标准二维码,在页面上实时生成并校验。