目录12.2 周期性抖动算法抖动点阵成像规律12.2.1 聚簇型有序抖动12.2.2 分散网点型有序抖动12.2 周期性抖动算法有序抖动滤波器是周期性抖动算法当中十分重要的一类。此处 “有序” 与前文的 “随机” 相对应该类算法的核心思路是采用一个有限、确定、局部化的阈值函数削弱量化误差之间的相关性。下文将展开详细阐述。一幅数字图像可定义为平面上的点阵网格。取的一个子网格其中均为正整数。子网格上的每一个 “像素” 称为抖动单元即单个抖动单元由原网格内一块的像素区块构成则被称作抖动网格。图 12.5 中的阴影区域即为一个的抖动单元示例。为每一个抖动单元定义阈值函数单元内部的二电平量化便可便捷实现对于单元内任意像素点若则像素亮度量化输出为 1反之则量化为 0。 在离散域中对阈值函数做离散采样便可得到阶的阈值矩阵也就是抖动矩阵。图 12.6 从一维视角依次展示了(a) 量化函数(b) 量化函数的离散形式(c) 抖动单元内原始图像像素值(d) 经过量化后的单元输出图像。上述基础框架可衍生出多种实现变体阈值函数可逐抖动单元更换也可通过定制阈值函数分别生成聚簇型抖动或分散型抖动效果。抖动点阵成像规律由抖动算法原理不难看出抖动处理存在空间分辨率‑灰度分辨率的固有权衡像素被划分成若干独立抖动单元依靠单元内部位图图案的平均亮度便可渲染出更多中间灰度层级。对于一个的抖动单元单元内可放置个黑色像素对应个亮度等级再加上单元无黑点的全白状态单个抖动单元最多能够复现个灰度层级。注上述统计并未考虑同一灰度下黑点的多种排布方案点阵的最终排布形态完全由阈值函数决定。输入一幅亮度从 0 至连续渐变的恒定灰度图像便可直观观测各个灰度层级对应的网点图案形态。以如下抖动矩阵为例即可生成图 12.7 所示的 10 种不同点阵图案。12.2.1 聚簇型有序抖动聚簇抖动旨在通过数字手段复刻传统模拟照相半色调成像工艺。传统模拟半色调流程为利用专用相机将原图与网线屏叠加曝光记录在高反差胶片之上。原图发出的光线先经过网线屏网格调制再投射至胶片。网线屏上每一处微小开孔等效于一枚透镜将图像局部区域的光线汇聚最终在胶片上形成一个网点。网点尺寸由采样区域亮度决定高亮区域生成小网点暗区域生成大网点且暗区网点往往会与周边网点发生重叠。最终网点网格的几何形态受网线屏参数、曝光时长等多重因素共同影响。数字聚簇有序抖动通过对阈值函数进行设计令黑点自动聚集以此复现光学半色调的成像效果。 考虑抖动单元内一幅亮度恒定的图像。图 12.8 (a)(b) 通过绘制阈值函数曲线与恒定亮度值 k演示量化执行过程。选取形态平滑规整的阈值函数 t其水平集逆像将在抖动单元内部生成一条闭合曲线。设计阈值函数使曲线成为不自交的闭合环线效果如图 12.8 (c)。量化规则十分清晰环线内部所有像素量化为 1环线外部像素量化为 0其离散实现结果见图 12.8 (d)。由此可见黑点聚簇的外形轮廓完全由阈值函数的等值线形状控制。对于亮度均匀的灰度图像抖动生成的网点图案将在量化图像上周期性重复而针对灰度动态变化的普通图像阈值函数沿抖动网格周期性平铺每个抖动单元内部黑白区域的占比则跟随原图像素亮度实时调整。最终输出一批尺寸各异的像素簇成像效果与传统光学半色调印刷高度近似。图 12.9 (a) 给出一组用于实现聚簇抖动的有序抖动矩阵。该矩阵对应的阈值函数形态与图 12.8 (b) 保持一致。矩阵内的数值代表阈值的排序编号并非绝对亮度值。由于矩阵包含个阈值可划分出 37 个独立亮度区间各阈值对应的归一化亮度可理解为。算法执行前需将原图亮度归一化至区间。图 12.9 (b) 中灰度像素代表阈值大于 50%白色像素代表阈值小于 50%。若输入一幅亮度恒等于 50% 的图像经过该抖动矩阵二值量化后输出图像即为图 12.9 (b) 周期性拼接而成若恒定灰度图像亮度高于 50%图 (b) 的白色区域将收缩亮度低于 50%白色区域则向外扩张。 图 12.10 展示了采用该有序抖动矩阵对测试图像执行 1 比特量化后的成像结果。对角线网点排布视觉感知研究表明人眼对于周期性图案引入的图像伪影敏感度会随图案旋转角度发生变化当周期主轴与水平方向呈夹角时人眼对伪影的感知程度最低。可利用该视觉特性进一步优化聚簇抖动算法的成像质量。优化思路为定制阈值函数驱使黑点簇沿 45° 对角线方向对齐排布。菱形单元法是最简便的实现方案将正方形抖动单元四等分取四条边中点连接构造出单元内接正方形见图 12.11 (a)以此设计阈值函数当输入亮度为 50% 时量化后生成图 12.11 (b) 所示的黑白对角线点阵。图 12.12 (a) 给出一组具体的抖动矩阵实例。该抖动单元共计 32 个像素可区分 33 个量化灰度等级。图 12.12 (b) 中灰色像素代表阈值大于 50%白色像素代表阈值小于 50%。 图 12.13 为使用该抖动矩阵处理图 12.1 测试图像后的效果此时周期性网点呈现显著的 45° 对角线走向。工程实践要点前文已经说明有序抖动算法以牺牲空间分辨率为代价换取更高的灰度分辨率可渲染的亮度层级总数。抖动后图像的有效空间分辨率不再等同于显示设备的物理分辨率而是由抖动网格分辨率决定抖动网格分辨率才是决定图像观感质量的核心指标。当然设备物理分辨率同样具备重要意义它为单个抖动单元所能容纳的最大像素数量划定了上限。类比传统模拟半色调工艺抖动网格通常称作网线屏抖动单元的排布密度称为网线密度更精确的名称为网线分辨率计量单位为线 / 英寸 (lpi)。用好有序抖动的关键之一就是合理选定网线密度。网线密度越高抖动图像成像质量越好150 lpi 的网线屏即便近距离观察人眼也几乎无法分辨独立的抖动单元本书配图 12.1 即采用 150 lpi 网线频率印刷120 lpi 网线密度依旧能够输出优质效果。与之相对图 12.13 网线密度约 35 lpi图 12.10 网线密度约 30 lpi成像效果差距明显可参照图 12.14 进行对比。高网线密度对设备分辨率提出更高要求设备分辨率必须等于网线密度乘以抖动单元阶数。以图 12.1 为例150 lpi 网线密度远低于本书照排机的物理分辨率。这意味着抖动单元尺寸较大矩阵元素数量多能够表现丰富的灰度层次同时设备分辨率足够富余人眼无法察觉抖动单元网格。设备分辨率 ÷ 网线密度 抖动单元阶数可区分灰度层级数约等于抖动单元阶数的平方。如前文所述修改阈值函数的形状即可改变其等值线轮廓进而调整抖动图像黑点簇的几何形态。利用这一特性可生成各类特殊的半色调视觉效果示例如图 12.15。12.2.2 分散网点型有序抖动分散网点有序抖动优先适用于能够精准控制像素落点的图像输出设备例如视频显示器。与聚簇抖动一致该算法的核心同样在于抖动矩阵的选型。聚簇抖动致力于复刻传统照相工艺生成的网点网格分散网点抖动则对抖动矩阵内部的量化阈值进行排布优化使抖动生成纹理的频率分布尽可能匹配原图纹理。尤其是在恒定灰度区域输出抖动纹理应当最大限度抑制低频分量实现手段是将所有量化阈值尽可能均匀地散布在抖动矩阵当中。分散网点有序抖动在学术文献中亦被称作拜耳抖动 (Bayer 抖动)。B. Bayer 最早推导出一系列多阶抖动矩阵这类矩阵可实现量化阈值分布的最大化均匀性。拜耳抖动矩阵基于该矩阵生成的亮度分布效果见图 12.16。当区域亮度为 50% 时最终输出纹理为棋盘格图案由图 12.16 (c) 周期性平铺得到。拜耳抖动矩阵不难观察到矩阵内每 4 个一组的阈值区间1‑4、5‑8、9‑12、13‑16排布方式均与 2×2 拜耳矩阵当中 1‑4 四个阈值的分布完全一致。该特征来源于任意阶拜耳矩阵生成算法的递归特性。拜耳抖动的生成算法以及更多技术细节可查阅本章 12.5 节所列参考文献。图 12.17 展示了 4 阶拜耳抖动作用于图 12.1 测试图像后的成像效果。前文已提及分散网点抖动并不适合像素位置、尺寸难以精准控制的输出设备。其原因在于网点尺寸的微小偏差便会大幅改变单个抖动单元内的平均亮度。而聚簇抖动受该问题的影响较小黑点本身就会聚集成团网点尺寸的偏差只会改动簇的边缘轮廓。 反之当设备可精准管控像素位置与尺寸时分散网点抖动更具优势图像人眼感知上的等效分辨率会高于抖动网格本身的物理分辨率。综上分散网点抖动算法尤以拜耳抖动为代表被大量应用于帧缓存位深不足可同时寻址的色彩分辨率比特数有限的显示器用于图像抖动补偿。在设备分辨率给定的前提下从视觉效果角度对比拜耳抖动性能远优于 12.1.1 节介绍的随机调制抖动且二者计算开销基本持平。因此随机调制抖动现已极少落地于工程实践其价值更多停留在历史参考与学术研究层面。