目录
[模式 A:2×2 网格子采样(最常用)](#模式 A:2×2 网格子采样(最常用))
[模式 B:行 2:1 子采样(行方向降采样)](#模式 B:行 2:1 子采样(行方向降采样))
[模式 C:4:1 固定子采样(WDR 常用)](#模式 C:4:1 固定子采样(WDR 常用))
[Step 1:块输入](#Step 1:块输入)
[Step 2:生成子采样基图](#Step 2:生成子采样基图)
[Step 3:基图压缩(可选)](#Step 3:基图压缩(可选))
[Step 4:基图上采样插值(生成预测图)](#Step 4:基图上采样插值(生成预测图))
[Step 5:残差计算](#Step 5:残差计算)
[Step 6:残差轻量化压缩](#Step 6:残差轻量化压缩)
[Step 7:写入 DDR](#Step 7:写入 DDR)
[Step 1:坐标 → 块定位](#Step 1:坐标 → 块定位)
[Step 2:读取块头 + 基图 + 残差](#Step 2:读取块头 + 基图 + 残差)
[Step 3:基图上采样 → 预测值 Pred (x,y)](#Step 3:基图上采样 → 预测值 Pred (x,y))
[Step 4:恢复原始像素](#Step 4:恢复原始像素)
[Step 5:送给 ISP/3DNR/WDR](#Step 5:送给 ISP/3DNR/WDR)
[1. 块独立](#1. 块独立)
[2. 硬件极简单](#2. 硬件极简单)
[5. 带宽可预算](#5. 带宽可预算)
[3. 固定延迟](#3. 固定延迟)
[4. 无块效应](#4. 无块效应)
[5. 带宽可预算](#5. 带宽可预算)
[6. 近无损](#6. 近无损)
[1. WDR 多曝光帧压缩(海思 / 安霸 / 联咏 大量使用)](#1. WDR 多曝光帧压缩(海思 / 安霸 / 联咏 大量使用))
[2. 电子防抖参考帧](#2. 电子防抖参考帧)
[3. Y 通道轻量缓存压缩](#3. Y 通道轻量缓存压缩)
[4. RAW 域预压缩(Bayer 帧)](#4. RAW 域预压缩(Bayer 帧))
[九、与自适应位宽 ABD 的区别](#九、与自适应位宽 ABD 的区别)
「子采样残差压缩(Subsampled Residual Compression)」的完整、可工程落地、可用于芯片设计 的原理说明。它属于帧缓存专用轻量压缩(FBC) ,不是通用视频编码,核心特点:块独立、支持随机访问、硬件极简单、延迟固定、无跨块依赖。
一、总体思想
用低分辨率子采样图做 "粗预测",原图与预测图的残差能量大幅降低,再用更低位宽存储残差,从而实现压缩。
预测越准 → 残差越小 → 残差可用更少 bit 存储 → 压缩比越高。
它是WDR 多帧、防抖参考帧、Y 缓存、RAW 域缓存里最常用的轻量压缩之一。
二、核心结构
子采样残差压缩由三部分固定构成:
- 子采样基图生成(低分辨率预测层)
- 预测重建(上采样插值)
- 残差计算 + 轻量残差压缩
存储格式固定为:基图(低分辨率) + 残差(高位图)
读取时:像素 = 插值基图 + 残差
三、标准子采样模式(工业量产常用)
ISP 里不会用复杂采样,只使用以下三种硬件最简模式:
模式 A:2×2 网格子采样(最常用)
- 每 2×2 像素保留 1 个作为基图像素
- 基图尺寸 = 原图 1/4
- 硬件最简单:直接抽取,无需滤波
plaintext
P00 P01 P02 P03
P10 P11 P12 P13 → 基图取 P00, P02, P20, P22
P20 P21 P22 P23
模式 B:行 2:1 子采样(行方向降采样)
- 每行保留 1/2 像素
- 适合行流水线 ISP
模式 C:4:1 固定子采样(WDR 常用)
不使用熵编码(无 CABAC/CAVLC),保证随机访问。
Step 7:写入 DDR
存储格式:
plaintext
[块头][基图压缩数据][残差压缩数据]
块头通常 8~16bit:
五、解压流程(支持随机访问)
任何 (x,y) 都能单独读取,不需要解码整帧:
Step 1:坐标 → 块定位
tile_x = x / 16
tile_y = y / 16
- 用于长 / 短曝光帧残差压缩
- 基图 = 短曝光帧下采样
四、完整压缩流程(逐步骤工程化)
以 16×16 块、2×2 子采样为例:
Step 1:块输入
读取 16×16 图像块(Y 或 RAW)。
Step 2:生成子采样基图
对 16×16 块做 2×2 抽取 ,得到 8×8 基图。
plaintext
base(x/2, y/2) = img(x, y)
不做滤波、不做平滑,纯抽取,保证硬件最小。
Step 3:基图压缩(可选)
基图本身可以再做一次轻量压缩:
- 固定位宽(6/8bit)
- 或简单自适应位宽基图压缩率通常 1.2~1.5×。
Step 4:基图上采样插值(生成预测图)
将 8×8 基图恢复为 16×16 预测图 Pred。
工业级只使用两种硬件最简插值:
(1)最近邻插值(最常用)
plaintext
Pred(x,y) = base(x//2, y//2)
纯路由选择,0 逻辑、0 延迟。
(2)简单双线性(高阶一点)
plaintext
Pred = (P0 + P1 + P2 + P3) / 4
仅加法 + 移位,无乘法。
Step 5:残差计算
plaintext
Res(x,y) = Orig(x,y) − Pred(x,y)
因为 Pred 是 "粗预测",残差动态范围大幅缩小 ,通常从 0~255 → 0~15 或 0~31。
Step 6:残差轻量化压缩
残差已经很小,因此使用极轻量压缩:
-
常用策略(工业标准):
-
固定 4bit 存储(最常见)
-
或固定 6bit
-
或简单 2/4/8bit 三档自适应位宽
-
子采样模式
-
基图位宽
-
残差位宽
-
bypass 标志
Step 2:读取块头 + 基图 + 残差
Step 3:基图上采样 → 预测值 Pred (x,y)
Step 4:恢复原始像素
plaintext
Orig(x,y) = Pred(x,y) + Res(x,y)
Step 5:送给 ISP/3DNR/WDR
完全块独立,无跨块依赖,随机访问零开销。
六、关键特性(工业级必须满足)
1. 块独立
任何块压缩 / 解压不依赖其他块,支持随机读写。
2. 硬件极简单
只有:抽取器、插值器、加法器、移位器 无树形运算、无复杂统计 面积 < 1.5k GE
因为预测是低分辨率平滑基图,残差连续,不会出现强块效应。
5. 带宽可预算
3. 固定延迟
压缩:3~4 拍解压:2~3 拍流水线可无缝插入 ISP。
4. 无块效应
5. 带宽可预算
残差固定位宽 → 块最大长度固定 → DDR 带宽可精确预算。
6. 近无损
残差足够保存细节,误差 ≤ 1 LSB。
七、压缩比范围(量产真实值)
Y 通道:1.5 ~ 2.2× WDR 多帧:1.6 ~ 2.5×
比 ABD 低,但面积小 40%~60%。
2. 电子防抖参考帧
3. Y 通道轻量缓存压缩
4. RAW 域预压缩(Bayer 帧)
-
-
RAW 域:1.4 ~ 2.0×
-
比 ABD 低,但面积小 40%~60%。
八、典型应用场景(真正工业在用)
1. WDR 多曝光帧压缩(海思 / 安霸 / 联咏 大量使用)
-
长曝光帧作为主帧
-
短曝光帧做子采样基图
-
残差用 4~6bit 存储大幅减少 WDR 多帧 DDR 占用。
-
- 参考帧用子采样基图 + 残差
- 支持随机读取偏移区域
- 不压缩 UV
- Y 使用 2×2 子采样残差
- 内存节省~50%
- 在 ISP 前端压缩 RAW
- 降低 DPC/DEMOSAIC 带宽压力
九、与自适应位宽 ABD 的区别
| 项目 | 子采样残差压缩 | 自适应位宽 ABD |
|---|---|---|
| 预测方式 | 子采样插值 | DPCM 空间预测 |
| 硬件面积 | 极小 | 中等 |
| 延迟 | 更低 | 中等 |
| 压缩比 | 1.5~2.2× | 2.0~3.5× |
| 随机访问 | 支持 | 支持 |
| 适用场景 | WDR、防抖、低成本 | 高端 3DNR、ADAS |
| 复杂度 | 低 | 中高 |