JPEG_ENC
概述
JPEGE 是 G32S10 的 JPEG 硬件编码器,将 Y(灰度)、YUYV、NV12 或 Bayer 图像编码为 baseline JPEG(SOF0),用于图像压缩与 MJPEG 出流。可由软件直接启动,也可与 MSCALER 联动完成缩放后编码。
性能概览
软件启动、JPEG 方案频率 333.333 MHz 时,1920×1440 的 NV12、YUYV、灰度图像分别达到 34.8、40.2、77.9 fps。超规格生成图样测试中,最高已测尺寸为 3840×2160,对应帧率为 12.8、14.7、28.7 fps;3840×2160 为超出 1920×1440 规格验证范围的探索结果。
软件启动编码性能
1920×1080 的 NV12、YUYV 和灰度图像分别达到 45.6、53.0、101.4 fps;在已测的 640×480 灰度配置下达到 447.2 fps。以下数据采用 JPEG 方案频率 333.333 MHz,关闭 MSCALER / ISP 联动及 restart marker,源图从 PSRAM 读取。
每个配置预热 3 帧,再连续编码 30 帧。软件单帧耗时包含驱动配置、cache 维护、中断和等待;硬件工作耗时由编码时钟周期数与模块频率换算。补齐拷贝不计入计时,表中为该轮统计值,未提供单帧最大耗时。
| 输入格式 | 分辨率 | 帧率(fps) | 软件单帧耗时(ms) | 硬件工作耗时(ms) |
|---|---|---|---|---|
| NV12 | 1920×1440 | 34.8 | 28.6 | 24.1 |
| NV12 | 1920×1080 | 45.6 | 21.8 | 18.2 |
| NV12 | 1280×960 | 75.4 | 13.2 | 10.7 |
| NV12 | 1280×720 | 98.3 | 10.1 | 8.0 |
| NV12 | 640×480 | 249.6 | 4.0 | 2.6 |
| YUYV | 1920×1440 | 40.2 | 24.8 | 19.0 |
| YUYV | 1920×1080 | 53.0 | 18.8 | 14.2 |
| YUYV | 1280×960 | 86.6 | 11.5 | 8.4 |
| YUYV | 1280×720 | 112.5 | 8.8 | 6.3 |
| YUYV | 640×480 | 280.1 | 3.5 | 2.1 |
| Y(灰度) | 1920×1440 | 77.9 | 12.8 | 9.5 |
| Y(灰度) | 1920×1080 | 101.4 | 9.8 | 7.1 |
| Y(灰度) | 1280×960 | 160.9 | 6.2 | 4.2 |
| Y(灰度) | 1280×720 | 204.6 | 4.8 | 3.1 |
| Y(灰度) | 640×480 | 447.2 | 2.2 | 1.0 |
MSCALER 联动性能
源图固定为 1920×1440,经 MSCALER 缩放后由 JPEGE 自动启动编码。QP 为 60,MSCALER 输出经 DDR line buffer 供 JPEGE 按行读取;1920×1440 输出的 NV12、YUYV、灰度图像分别达到 19.8、19.4、36.8 fps。这些结果包含缩放与编码通路,不能作为单独编码器的帧率。
每个配置预热 3 帧,再计时 20 帧。以下为方案频率轮,启动信息中 MSCALER 与 JPEGE 的方案值均为 200 MHz;实际时钟未取得独立确认。各配置 line buffer 均为 32 行,占用如下。
| 目标分辨率 | NV12 帧率(fps) | NV12 缓冲(KiB) | YUYV 帧率(fps) | YUYV 缓冲(KiB) | Y 灰度 帧率(fps) | Y 灰度 缓冲(KiB) |
|---|---|---|---|---|---|---|
| 1920×1440 | 19.8 | 60 | 19.4 | 120 | 36.8 | 60 |
| 1920×1080 | 24.1 | 60 | 23.3 | 120 | 39.2 | 60 |
| 1280×960 | 34.0 | 40 | 31.9 | 80 | 42.9 | 40 |
| 1280×720 | 36.4 | 40 | 36.7 | 80 | 44.6 | 40 |
| 640×480 | 44.2 | 20 | 41.6 | 40 | 48.0 | 20 |
超规格尺寸实测
使用固件生成图样,最高已测 3840×2160,超出 1920×1440 规格验证范围;本组未提供时钟、量化参数及画质验证结果。
各配置预热 3 帧后连续编码 30 帧,补齐拷贝不计入计时。耗时定义与软件启动编码性能一致。
| 输入格式 | 分辨率 | 帧率(fps) | 软件单帧耗时(ms) | 硬件工作耗时(ms) |
|---|---|---|---|---|
| NV12 | 3840×2160 | 12.8 | 77.7 | 64.7 |
| NV12 | 3072×1728 | 19.8 | 50.4 | 41.4 |
| NV12 | 2560×1920 | 21.3 | 46.8 | 38.4 |
| NV12 | 2560×1440 | 28.0 | 35.6 | 28.8 |
| NV12 | 2048×1536 | 32.5 | 30.7 | 24.6 |
| YUYV | 3840×2160 | 14.7 | 67.6 | 50.9 |
| YUYV | 3072×1728 | 22.7 | 44.0 | 32.6 |
| YUYV | 2560×1920 | 24.4 | 40.9 | 30.2 |
| YUYV | 2560×1440 | 32.0 | 31.1 | 22.7 |
| YUYV | 2048×1536 | 37.1 | 26.9 | 19.4 |
| Y | 3840×2160 | 28.7 | 34.7 | 25.4 |
| Y | 3072×1728 | 43.5 | 22.9 | 16.3 |
| Y | 2560×1920 | 46.6 | 21.4 | 15.1 |
| Y | 2560×1440 | 60.3 | 16.5 | 11.4 |
| Y | 2048×1536 | 69.3 | 14.4 | 9.7 |
已验证的配置与控制能力
| 能力 | 已验证配置与结果 |
|---|---|
| 输入排布与尺寸 | 软件直编覆盖 Y、YUYV、NV12 及 RGGB / BGGR / GBRG / GRBG 四种 Bayer 色序,共 66 个配置通过。Bayer 的 1920×1440 四个配置缺少素材,未取得结果;Bayer 的 JPEG 输出高度按硬件约定为源高度的一半。 |
| 自动启动与 restart marker | MSCALER 1:1 联动覆盖 3 种常规格式、10 个尺寸,共 30 个配置通过;DRI 间隔、RSTn 个数及轮转与配置一致。 |
| 量化表 | 硬件表 T1 / T2 × QP 10 / 30 / 60,以及软件表 T1 / T2,覆盖 Y / NV12 / YUYV 与 3 个尺寸,共 72 个配置通过。软件表模式不使用 QP。 |
| 逐帧切换 | 同一会话内硬件 QP 10→90(步长 10)及软件量化表组高→中→低→中→高切换,共 14 步通过,下一帧起始生效。 |
| 复位恢复 | 保留或清除配置的软件复位、随机复位周期、运行中软件复位、CPM 安全停止与模块复位,5 种配置均可恢复合法 JPEG 输出;清除配置及运行中复位后需重新初始化。 |
常规格式的直编与量化配置验证包含同一输入连续 10 帧的字节一致性及 SOF0 几何、采样因子和 EOI 检查;未提供 PSNR、主观画质评分或误差统计。
测试条件与使用边界
芯片为 G32S10,测试平台为 S103 SK SLT 与 S107 SK SLT 真片;S103 使用固件生成图样与 UVC 输出,S107 使用 SD 素材。性能数据未逐项标注所属板卡与芯片修订版。
主频及 PSRAM 工作频率未列出;普通软件直编测试未列出量化参数。帧率与图像内容、量化配置及存储访问条件有关。
输入 MCU 网格:Y 为 8×8,YUYV 为 16×8,NV12 与 Bayer 为 16×16;已测非 MCU 整数倍尺寸通过补齐处理,普通格式 JPEG 仍声明请求尺寸。
JPEG 编码器与解码器共用 JPEG CGU 分频器;上述测试为单通路结果,未验证编解码并发吞吐。
文档入口:查看 JPEG_ENC 用户手册 · 查看 JPEG_ENC SDK 文档。