一、通俗定义(先分清核心区别,结合你相机 / YUV 链路场景)
先统一术语:
采样:从连续信号 / 高密度离散网格里,挑选像素形成新分辨率图像
插值:利用相邻像素估算不存在的像素值(只有上采样一定会用到插值)
1. 下采样(Downsampling / 降采样)
图像尺寸变小 → 像素总数减少输入高分辨率图 → 输出低分辨率图 两种实现路线:
抽取式降采样(直接抽取,无插值)每隔 N 个像素拿一个,直接丢弃其余像素,不计算、不估算👉 YUV444 → YUV420 的 UV 通道就是典型:隔行隔列抽取,纯抽取,没有插值运算
滤波 + 抽取(先平滑再抽取)先做低通滤波(模糊),再抽像素。 目的:抑制混叠失真(摩尔纹、锯齿、色彩畸变)
重点区分:单纯抽取 ≠ 插值!只有需要估算像素才叫插值。
下采样,通常不需要插值算法!!!
2. 上采样(Upsampling / 升采样)
图像尺寸变大 →像素总数增多低分辨率图 → 高分辨率图 原图缺少像素,必须依靠插值算法估算出新像素的值👉 NV12 转 RGB 时 UV 通道放大就是标准上采样。
直观例子(2 倍缩放)
- 下采样 2 倍:宽高 ÷2,4 个像素变成 1 个
- 上采样 2 倍:宽高 ×2,1 个像素扩展覆盖 4 个位置
二、主流算法分类 + 原理 + 使用场景(嵌入式 ISP、RGA、NPU 通用)
(一)下采样常用算法
1. 最近邻抽取(Nearest Neighbor Downsample)
逻辑:网格对齐,直接取距离最近的像素,丢弃其他
公式理解:逢 2 取 1,不做任何加权计算
✅ 优点:速度极快、硬件最简单
❌ 缺点:容易产生混叠、锯齿、色彩断层
📍场景:简易 ISP 色度抽取、临时预览,不推荐用于图像识别链路
2. 双线性下采样(Bilinear Downsample)
先对邻域像素加权平均滤波,再抽取像素
本质:局部平滑后降分辨率
✅ 优点:抑制混叠,画质均衡
📍场景:绝大多数摄像头 ISP、RGA 硬件缩放默认方案
3. 双三次下采样(Bicubic Downsample)
更大 3×3/4×4 邻域多项式加权平滑
✅ 画质更好
❌ 算力更高
📍场景:PC 图像处理,边缘硬件较少原生支持
4. 高斯金字塔下采样(OpenCV 经典)
先高斯模糊(低通滤波)再抽取 理论最优抑制混叠,常用于图像金字塔特征提取
关键工程结论: YUV444→YUV420 标准色度降采样:行业标准是 4:2:0 Chroma Subsample,多数 ISP 使用最近邻抽取,无滤波→ 所以我们之前说:色度下采样不算插值!
(二)上采样常用算法(一定会用到插值)
1. 最近邻插值 Nearest Neighbor
规则:新像素直接复制离它最近的原始像素 特点:
- 运算最简单,硬件电路最容易实现
- 色块明显、锯齿严重
📍典型用途:早期简易 ISP UV 上采样、极低功耗场景
2. 双线性插值 Bilinear Interpolation(边缘平台最普遍!)
原理: 先水平方向线性加权,再垂直方向线性加权;使用2×2 邻域 4 个原始像素加权算出新像素。
✅ 均衡:速度、画质折中
📍绝大多数 NV12 转 RGB 时 UV 色度上采样默认算法(RK、海思、地平线 DVPP/AIPP)
3. 双三次插值 Bicubic Interpolation
使用 4×4 邻域 16 个像素,三次多项式加权
✅ 图像边缘更平滑,减少模糊
❌ 计算量显著上升
📍软件图像处理;多数嵌入式硬件 NPU/ISP 不原生硬件加速
4. Lanczos 插值
更大邻域、sinc 函数加权,画质最高
❌ 算力巨大,几乎不用在实时边缘相机链路
5. 深度学习上采样(超分辨率 SR)
ESPCN、Real-ESRGAN 等,属于 AI 超分,不属于传统硬件 ISP 范畴。
三、结合之前的链路:落地场景一一对应
链路:Bayer RAW → ISP → YUV420 (NV12) → 转 RGB 送入 CNN
Demosaic(拜耳重建):本质属于上采样插值RAW 每个位置只有 R/G/B 单一颜色,插值补齐另外两个通道。
YUV444 → YUV420:UV 通道下采样(抽取,无插值)
NV12 → RGB:UV 通道上采样(双线性插值为主)
完整链路复盘: Demosaic【上采样插值①】→ UV 下采样(抽取,无插值)→ UV 上采样插值② → 也就是我们前面结论:标准流水线 2 次插值
四、一张表快速对比
表格
| 类型 | 操作 | 是否需要插值 | 核心代价 | 典型场景 |
|---|---|---|---|---|
| 下采样 - 直接抽取 | 图像缩小 | ❌ 不需要插值 | 易混叠摩尔纹 | YUV 色度抽取 |
| 下采样 - 滤波抽取 | 图像缩小 | 滤波加权运算≠插值 | 算力中等 | 图像缩放 Resize |
| 上采样 - 最近邻 | 图像放大 | ✅插值 | 锯齿明显 | 极简硬件 |
| 上采样 - 双线性 | 图像放大 | ✅插值 | 均衡 | ISP 色度上采样 |
| 上采样 - 双三次 | 图像放大 | ✅插值 | 算力高 | 软件图像处理 |
五、高频误区纠正
❌ “下采样就是插值” ✅ 错。单纯像素抽取式下采样,没有任何插值运算;只有放大图像的上采样才必须插值。
❌ “插值 = 双线性” ✅ 插值是大类名称,最近邻、双线性、双三次都属于插值算法。
❌ YUV420 的 UV 压缩使用插值实现 ✅ 恰恰相反:是抽取丢弃像素;还原的时候(上采样)才使用插值估算丢失色彩。