红外图像压缩 Benchmark
红外图像压缩系列(一) 从理论上梳理了红外成像的物理特性与传统编码基线;系列(二) 进一步讨论了学习式压缩在红外场景的局限与改造方向。但理论归理论,不同编码器在真实红外数据上的实际表现究竟如何?率失真曲线谁更优?学习式压缩在极低码率下真的能超越 JPEG2000 吗?
本篇用 FLIR ADAS 1.3 热红外数据集,对 37 款编码器配置(21 款传统 + 18 款学习式 + 3 款 ELIC)进行系统 Benchmark,覆盖 PSNR、SSIM、BPP、压缩比与编解码速度五个维度,用数据回答上述问题。
数据集
使用 FLIR ADAS 1.3 热红外图像,原始数据为 14-bit 辐射数据存储为 16-bit TIFF(分辨率 640×512)。测试图像取自训练集 FLIR_00001.tiff。
传统编码器
| 标准 | 质量级别 | 类型 | 备注 |
|---|---|---|---|
| JPEG | q25 / q50 / q75 / q95 | 有损 | 8-bit 输入,min-max 归一化 |
| WebP | q25 / q50 / q75 / q95 + lossless | 有损 + 无损 | 8-bit 输入,min-max 归一化 |
| AVIF | q25 / q50 / q75 / q95 + lossless | 有损 + 无损 | 8-bit 输入,min-max 归一化 |
| HEIC (HEVC) | q25 / q50 / q75 / q95 | 有损 | 8-bit 输入,min-max 归一化 |
| JPEG2000 | q75 + lossless | 有损 + 无损 | 支持 16-bit 直接输入 |
| PNG | — | 无损 | 16-bit 直接存储 |
学习式编码器
所有学习式模型均来自 CompressAI 预训练权重,输入做 min-max 归一化后 padding 到 64 的倍数。ELIC 模型使用独立实现 #Chandelier-2023。
| 架构 | 质量级别 | 参数量级 | 来源 |
|---|---|---|---|
| bmshj2018-factorized | q1 / q4 / q8 | ~2M | CompressAI zoo |
| bmshj2018-hyperprior | q1 / q4 / q8 | ~3M | CompressAI zoo |
| mbt2018-mean | q1 / q4 / q8 | ~4M | CompressAI zoo |
| mbt2018 | q1 / q4 / q8 | ~7M | CompressAI zoo |
| cheng2020-anchor | q1 / q4 / q6 | ~10M | CompressAI zoo |
| cheng2020-attn | q1 / q4 / q6 | ~12M | CompressAI zoo |
| ELIC | q1 / q4 / q5 | ~45M | 独立实现 #Chandelier-2023 |
评价方法
所有编码器的 PSNR 和 SSIM 均在 min-max 归一化后的 [0, 1] 区间 上计算,data_range=1.0。这确保了不同输入位深(8-bit vs 16-bit)的编码器之间指标可比 #skimage-metrics。编码速度为单线程 CPU 测量(Apple Silicon)。
归一化注意事项
JPEG/WebP/AVIF/HEIC 仅接受 8-bit 输入,因此需要先将 16-bit 红外数据线性缩放到 [0, 255],解码后再反缩放回原始动态范围计算 PSNR。如果不做归一化直接比较,PSNR 会被人为抬高约 31 dB。
| Codec | PSNR (dB) | SSIM | BPP | Ratio | Enc (ms) | Dec (ms) | Size (KB) |
|---|---|---|---|---|---|---|---|
| JPEG q25 | 39.03 | 0.9516 | 0.22 | 73.3× | 0.4 | 0.0 | 8.7 |
| JPEG q50 | 41.94 | 0.9720 | 0.32 | 49.6× | 0.4 | 0.0 | 12.9 |
| JPEG q75 | 44.38 | 0.9823 | 0.48 | 33.7× | 0.4 | 0.0 | 19.0 |
| JPEG q95 | 49.48 | 0.9924 | 1.35 | 11.8× | 6.1 | 0.0 | 54.0 |
| WebP q25 | 37.95 | 0.9499 | 0.10 | 159.1× | 9.3 | 0.1 | 4.0 |
| WebP q50 | 40.20 | 0.9631 | 0.15 | 106.6× | 10.1 | 0.1 | 6.0 |
| WebP q75 | 41.74 | 0.9712 | 0.20 | 78.5× | 10.8 | 0.1 | 8.2 |
| WebP q95 | 47.59 | 0.9890 | 0.75 | 21.2× | 42.5 | 0.1 | 30.1 |
| WebP-lossless | ∞ | 1.0000 | 2.57 | 6.2× | 74.0 | 0.2 | 102.6 |
| AVIF q25 | 37.49 | 0.9478 | 0.08 | 213.1× | 12.3 | 0.1 | 3.0 |
| AVIF q50 | 42.34 | 0.9754 | 0.19 | 83.7× | 14.3 | 0.1 | 7.7 |
| AVIF q75 | 46.23 | 0.9861 | 0.39 | 41.1× | 16.1 | 0.1 | 15.6 |
| AVIF q95 | 51.34 | 0.9940 | 1.22 | 13.1× | 38.3 | 0.1 | 48.8 |
| AVIF-lossless | 46.23 | 0.9861 | 0.39 | 41.1× | 15.6 | 0.1 | 15.6 |
| HEIC q25 | 38.69 | 0.9553 | 0.09 | 175.4× | 24.0 | 0.1 | 3.6 |
| HEIC q50 | 45.68 | 0.9857 | 0.34 | 47.3× | 40.7 | 0.1 | 13.5 |
| HEIC q75 | 55.49 | 0.9982 | 2.01 | 8.0× | 96.4 | 0.1 | 80.5 |
| HEIC q95 | 71.64 | 1.0000 | 3.02 | 5.3× | 113.9 | 0.1 | 120.9 |
| JPEG2000 q75 | ∞ | 1.0000 | 5.19 | 3.1× | 44.3 | 0.1 | 207.8 |
| JPEG2000-lossless | ∞ | 1.0000 | 5.19 | 3.1× | 47.0 | 0.1 | 207.8 |
| PNG | ∞ | 1.0000 | 7.25 | 2.2× | 9.5 | 0.1 | 290.0 |
| bmshj2018-factorized q1 | 33.32 | 0.9317 | 0.07 | 226.9× | 135.2 | 95.2 | 2.8 |
| bmshj2018-factorized q4 | 39.60 | 0.9641 | 0.20 | 79.6× | 66.8 | 95.0 | 8.0 |
| bmshj2018-factorized q8 | 46.70 | 0.9892 | 0.74 | 21.8× | 195.5 | 150.7 | 29.4 |
| bmshj2018-hyperprior q1 | 32.85 | 0.9290 | 0.05 | 347.1× | 90.2 | 103.7 | 1.8 |
| bmshj2018-hyperprior q4 | 38.66 | 0.9617 | 0.12 | 137.3× | 83.9 | 106.7 | 4.7 |
| bmshj2018-hyperprior q8 | 46.96 | 0.9883 | 0.37 | 43.3× | 128.2 | 164.6 | 14.8 |
| mbt2018-mean q1 | 35.29 | 0.9299 | 0.04 | 450.1× | 79.3 | 106.6 | 1.4 |
| mbt2018-mean q4 | 40.10 | 0.9636 | 0.10 | 163.5× | 78.9 | 104.6 | 3.9 |
| mbt2018-mean q8 | 46.79 | 0.9878 | 0.34 | 47.0× | 133.3 | 174.5 | 13.6 |
| mbt2018 q1 | 35.51 | 0.9318 | 0.03 | 504.1× | 377.9 | 1805.2 | 1.3 |
| cheng2020-attn q1 | 34.60 | 0.9333 | 0.29 | 55.4× | 438.0 | 1858.3 | 11.6 |
| cheng2020-attn q4 | 40.05 | 0.9636 | 0.08 | 189.2× | 779.1 | 2122.3 | 3.4 |
| cheng2020-attn q6 | 43.47 | 0.9781 | 0.15 | 104.0× | 623.7 | 2285.9 | 6.2 |
| ELIC q1 | 32.74 | 0.9070 | 0.02 | 947.1× | 497.9 | 478.6 | 0.7 |
| ELIC q4 | 37.77 | 0.9482 | 0.05 | 349.3× | 454.9 | 458.9 | 1.8 |
| ELIC q5 | 41.37 | 0.9694 | 0.09 | 171.4× | 450.3 | 452.9 | 3.7 |
如何读这张表
PSNR 和 SSIM 越高越好;BPP(bits per pixel)越低表示压缩越激进;Ratio = 原始大小 / 压缩大小,越高越好;Enc/Dec 时间越短越快。无损编码(PNG / JPEG2000-lossless / WebP-lossless)的 PSNR 为 ∞。
率失真曲线是评价压缩效率的核心工具:横轴是码率(BPP,越低越好),纵轴是质量(PSNR/SSIM,越高越好),因此 曲线越靠近左上角,编码器效率越高。
率失真曲线的解读要点
- 传统编码器曲线(JPEG/WebP/AVIF/HEIC):从低码率到高码率连续平滑,HEIC 在高码率段(>2 bpp)有断崖式上升,说明 HEVC 对高位深数据的编码效率极高。
- 学习式编码器:每个模型只有 3 个离散操作点(q1/q4/q8 或 q1/q4/q6),不构成连续曲线。mbt2018 系列在低码率段(<0.2 bpp)接近 JPEG 效率,但在中码率段被 WebP/AVIF 超越。
- ELIC:q1 达到 0.02 bpp / 32.7 dB,是所有编码器中码率最低的,适合带宽极端受限场景。
下图展示 FLIR_00001.tiff 中心 256×256 裁剪区域的压缩效果。左列为原始图与各编码器的重建结果,右列为对应的绝对误差热图(红色越亮表示误差越大)。
场景驱动的编码器选择
| 应用场景 | 推荐编码器 | 理由 |
|---|---|---|
| 边缘设备 / 极低带宽 | ELIC-q1 或 mbt2018-q1 | 0.02–0.03 bpp,保留主要热目标 |
| 通用存储 / 传输 | WebP q75–q95 | 最佳率失真折中,编解码速度可接受 |
| 高保真归档 | HEIC q95 或 JPEG2000-lossless | HEIC 71.6 dB 有损最高;J2K 无损 |
| 实时视频流 | JPEG q50–q75 | 编码 0.4 ms,满足实时需求 |
| 无损归档(低存储) | WebP-lossless | 6.2× 压缩比,远优于 PNG 的 2.2× |
学习式压缩的现状与展望
当前 Benchmark 中,CompressAI 预训练的学习式编码器(bmshj2018、mbt2018、cheng2020 系列)均未在红外数据上训练,直接应用于红外数据存在领域偏移。未来方向包括:
- 在红外数据集上 fine-tune 现有预训练模型
- 设计红外专用的熵模型(如小波域自回归模型 #ARWNet-2026)
- 引入任务驱动损失(检测、分割)替代纯像素重建损失 #SA-ICM-2024
单图 Benchmark 的局限性
当前结果基于单张测试图像(FLIR_00001),不同场景(城市/郊外/室内)的压缩表现可能有差异。完整结论需在更大数据集上验证。Benchmark 代码已开源,支持任意图像数量的批量评测。
# 克隆项目
git clone https://github.com/gongshangzheng/infraredComp.git
cd infraredComp
# 安装依赖(uv 管理)
uv sync
# 运行完整 benchmark(含学习式编码器)
uv run python -m benchmark.runner --max-images 50 --learned
# 仅运行传统编码器(更快)
uv run python -m benchmark.runner --max-images 100
运行后在 results/ 目录生成 results.csv、report.html 和全部可视化图表。
参考来源
- Chandelier, V. (2023). ELIC reimplementation with pretrained checkpoints. GitHub: VincentChandelier/ELIC
- ARWNet (2026). Auto-Regressive Wavelet Network for Learned Infrared Image Compression. arXiv.
- SA-ICM (2024). SAM-guided Image Compression for Machines. ICIP 2024.
- scikit-image. Structural similarity and PSNR metrics. skimage.metrics
- CompressAI. Open-source library for learned image compression. GitHub: InterDigitalInc/CompressAI
- FLIR. ADAS Dataset v1.3. FLIR Thermal Dataset