主题
重采样与缩放质量:像素怎么被搬来搬去
"缩放"看起来是个小功能,但它是画面最常被改动的一步: 分辨率不匹配、视频窗口化、游戏内部渲染、显卡输出与显示器处理,都会缩放。 这一页讲清它为什么会损失、怎么判断损失在哪儿、以及该怎么做。
📌 本页在"处理层"上的位置:本页负责缩放环节(像素怎么被搬来搬去)。 处理链的顺序与其它环节见 图像处理与画质引擎; 清晰度口径见 清晰度与抗锯齿。
本页按三段式走:先看三种缩放为何难度不同(概念)→ 再按该出什么分辨率与受控对比实验落地(会用)→ 最后看锐度与振铃、混叠与多级缩放等数学取舍。
一、概念:三种缩放,难度完全不同
| 情况 | 例子 | 质量倾向 |
|---|---|---|
| 整数倍放大 | 把画面像素整齐放大 | 最容易做好(对齐干净) |
| 整数倍缩小 | 按整数倍下采样 | 较容易,但仍需做滤波 |
| 非整数倍 | 任意比例,如 1.5× | 最容易出问题(相位不齐、锐度损失) |
⚠️ "点对点"最清晰的原因:它根本不做缩放 —— 一个源像素对应一个屏像素。 所以在判清晰度时,"是否点对点"必须先确认(见 子像素结构与文字渲染)。
二、概念:算法族与取舍
| 算法 | 特点 | 适用 |
|---|---|---|
| 最近邻 | 直接取样,速度快、边缘硬 | 像素画、需要"不模糊"的场合;一般画面会出现锯齿 |
| 双线性 | 取周围若干点加权平均 | 快,但整体偏软 |
| 双三次类 | 更多点加权,带一定锐度补偿 | 常见的质量/速度折衷 |
| 窗口化 sinc 类(如 Lanczos 类) | 保留高频细节更多 | 静态图像质量优先,代价是可能出现振铃 |
✅ 取舍的本质是:锐度 ↔ 振铃 / 锯齿 / 速度。没有"全都最好"的算法, 只有"更适合当前内容"的算法。
三、会用(一):该出什么分辨率(决策表)
| 场景 | 建议 | 理由 |
|---|---|---|
| 桌面 / 办公 / 浏览器 | 面板原生分辨率,需要更大字就调系统缩放 | 桌面内容最吃"点对点" |
| 视频观看 | 交给播放器按内容分辨率缩放,避免二次缩放 | 视频本身不是原生分辨率 |
| 游戏 | 优先原生;性能不足时用整数倍渲染比例或游戏内整数缩放 | 非整数渲染比例会同时损失锐度与稳定性 |
| 笔记本外接 | 尽量让外接屏跑原生,缩放交给系统 | 合成器缩放质量通常优于显示器内部缩放 |
| 超宽内容 | 接受黑边(保比例)优于拉伸(变形) | 拉伸会同时破坏几何与锐度 |
| 像素画 / 复古内容 | 最近邻 + 整数倍 | 需要"硬边"而不是平滑 |
⚠️ 一条通用原则:链路里只让一个环节做缩放, 而且优先让"算法可控、参数可查"的那一环做(通常是显卡/系统侧)。
四、会用(二):一次缩放质量的对比实验
① 固定其余变量:亮度、色温、锐化关、模式固定、无中间设备
② 建立基准:分辨率设原生(点对点),记录观感
③ 只改缩放位置:显卡侧缩放 ↔ 显示器内部缩放,其余不变
④ 只改比例:整数倍(如 2×)与典型非整数倍(如 1.5×)对比
⑤ 用四类图案分别看:
□ 单像素细线 / 细网格 → 看是否变细、断裂、摩尔纹
□ 文字(多字号) → 看发虚、彩边
□ 平滑渐变 → 看是否出现台阶或色带
□ 高频纹理(织物、草地)→ 看是否出现摩尔纹或"糊成一片"
⑥ 记录条件与结论:源分辨率、屏分辨率、缩放位置、比例、锐化状态⚠️ 不要开着锐化判缩放质量 —— 锐化会掩盖发软,也会制造白边,两个变量要分开测。
✅ 判据怎么落:把"点对点与否、缩放位置、锐化状态"写进条件, 模板见 判据与验收; 不同缩放设置下的数据不可直接比较,见 测量标准索引。
五、概念:缩放发生在哪个空间上(容易忽略)
重采样本质是加权平均 —— 因此应在线性光下进行,否则暗部与亮部会被系统性压暗或提亮, 表现为边缘发灰、细线变淡。见 线性光与伽马。
六、原理(一):为什么"缩小"与"放大"的难点相反
放大(上采样):源像素少 → 需要"造"出中间像素
→ 造得太平滑 → 发软;造得太激进 → 振铃
缩小(下采样):源像素多 → 需要把高频"滤掉再取样"
→ 不滤 → 高频折叠成低频 → 混叠(摩尔纹)
→ 滤太狠 → 真正的细节也被抹掉,整体发软✅ 一句话:上采样怕"造得不真",下采样怕"没滤干净" —— 两者对滤波器的要求方向不同,所以同一个算法在两边的表现可能差别很大。
七、原理(二):为什么"锐度"与"振铃"必然互相牵制
要保留更多高频细节 → 滤波器的通带要尽量宽、过渡带要尽量陡
但"通带陡峭"在数学上等价于时间/空间上的波纹(过冲与回摆)
→ 于是锐边附近出现亮暗过冲 —— 这就是振铃⚠️ 这是数学上的固有取舍,不是"实现不好" —— 所以看到振铃时,问题往往不是"这家算法差",而是参数选得太激进; 反之,画面发软也不一定是算法差,可能是为了压住振铃而保守设置。
八、原理(三):为什么会出摩尔纹
内容里存在细密的周期图案(纹理、栅格)
采样网格与图案周期接近时,产生"差频" → 出现原始内容里没有的粗大条纹
→ 这属于**混叠**的一种表现形式,与面板本身的缺陷无关处置:先确认是不是缩放/采样造成的(换分辨率、换缩放位置是否消失), 再谈面板(见 清晰度与抗锯齿)。
九、原理(四):为什么文字对缩放最敏感
文字 = 高频细节 + 高对比边沿 + 子像素渲染假设
三者都被缩放同时破坏:
高频细节 → 被滤波抹掉或振铃
高对比边沿 → 相位不齐时最先显脏
子像素假设 → 非整数倍缩放会破坏排列对齐(见 [子像素与文字渲染](subpixel-and-text-rendering.md))十、原理(五):为什么"多级缩放"一定更差
每次重采样都包含一次滤波(甚至两次:缩放 + 重建)
滤波只会减少信息,不会增加信息
→ 多一级 = 多一次损失;且不同级的滤波特性不同,损失会累积
(此外还有中间结果的舍入/量化误差)推论:判"发虚"要按链路逐段定位,因为损失可能已经在上一级发生过。
| 现象 | 更可能的原因 |
|---|---|
| 文字发虚、细线变细 | 显示器内部非点对点缩放 |
| 只在某些分辨率下糊 | 播放器或显卡在做非整数倍缩放 |
| 边缘有白边或彩边 | 锐化补偿过度或子像素渲染不匹配 |
| 有摩尔纹 | 采样与像素栅格共振(区别于面板本身的细节) |
十一、缩放类结论的"判据接口"
□ 源分辨率与屏分辨率(是否点对点)
□ 缩放位置(播放器 / 显卡 / 显示器内部)与比例(是否整数倍)
□ 缩放算法与设置(若可查)
□ 锐化与增强项状态(必须关闭后再判)
□ 处理空间(是否在线性光下做,见 [线性光与伽马](linear-light-and-gamma.md))
□ 图案类型(细线 / 文字 / 渐变 / 高频纹理)
□ 观察条件(距离、是否微距)十二、常见误区
| 误区 | 事实 |
|---|---|
| 分辨率越高越清楚 | 非点对点时会因缩放而变糊 |
| 缩放算法只影响游戏 | 视频、文字、窗口化全都受影响 |
| 模糊一定是面板问题 | 先确认缩放与点对点状态 |
| 锐化能解决发虚 | 锐化改变的是主观对比,不能恢复信息 |
| 看到振铃就是算法差 | 也可能是参数过激;锐度与振铃本就互相牵制 |
| 多级缩放"抵消"损失 | 每级都只减不增,损失会累积 |
| 摩尔纹是面板缺陷 | 先排除采样与缩放造成的混叠 |
📋 判据接口:本页属器件与材料类,其专属字段表见本页相应小节; 类型字段集(单一来源)见 判据字段集 · 器件与材料类(共 6 项)。
关键概念速查
通用术语见 统一速查(由统计生成,只在一处维护)。
| 术语 | 含义 |
|---|---|
| 重采样 | 改变像素数量与位置的过程,本质是加权平均 |
| 点对点 | 源像素与屏像素一一对应,不做缩放 |
| 振铃 | 高质量滤波器在锐边附近产生的过冲 |
| 相位不齐 | 非整数倍缩放时网格错开导致的模糊与锯齿 |
| 混叠 | 高频被折叠成低频,产生原始内容里没有的图案 |
| 上采样 / 下采样 | 放大与缩小,对滤波器的要求方向相反 |
相关文档
- 清晰度与抗锯齿 / 子像素结构与文字渲染
- 线性光与伽马 —— 重采样应在哪个空间做
- MTF / SFR 与光学成像质量 —— 用空间频率描述"糊"
- 采样与显示时序 / 图像处理与画质引擎
- 判据与验收 / 作用层总图
数据来源:本页内容整理自公开标准规范、厂商公开资料与行业通用实践,仅供参考;具体以官方规范原文与厂商官方资料为准。