只靠抖动是不够的
在 E Ink Spectra™ 6(E6)上,每个像素点只能显示黑、白、红、黄、蓝、绿中的一种,这意味着必须依赖抖动算法才能呈现更丰富的色彩。
算法取舍的例子
一个有趣的小问题:纯绿色到底该怎么呈现?
- 方案 A:直接用 E6 的纯绿(偏暗的墨绿色)代表纯绿。
- 方案 B:用绿 + 黄的组合去代表纯绿。
常被讨论的算法有 Floyd-Steinberg、Stucki、JJN 等算法,哪一种更好常成为争议焦点;也有人会在 demo 工程里调整基础色值,试图让画面“更饱和”。

然而,从 CIE-1931 色域图来看,这两类做法都有明显短板:前者容易出现杂色,画面不够干净;后者则层次断裂、对比度高却丢失细节。
为什么需要 Gamut Mapping
因为E6能显示的色彩是非常有限的,无论你使用什么算法,如何给6个基础色分配色值,最终能呈现的效果是被屏幕的物理特性所决定的。因此,将完整的色彩提前映射到能够显示的范围内,再进行抖动处理,是一种效果可控的方案。
E Ink 在展会上也曾提到类似操作,使用元太官方工具的马蹄图渲染效果也优于前面所述的简单操作。但需要注意,官方工具的色彩并未真实还原屏幕色值。我们将其映射到屏幕真实效果后观看的。
在完成图像识别与增强后,ISFR 的核心步骤之一是 Gamut Mapping。我们深入研究了 E6 的显示色域,将 sRGB 映射到 E6 离散的色域范围内。 ISFR 的目标是追求更好的画面效果与色调一致性,而不是只看参数均匀性或纯色对位。世界上没有完美的 Gamut Mapping 算法,尤其是 E6 的色域有限且离散,不同设计思路会带来截然不同的观感。
算法取舍的例子
一个有趣的小问题:纯绿色到底该怎么呈现?
- 方案 A:直接用 E6 的纯绿(偏暗的墨绿色)代表纯绿。
- 方案 B:用绿 + 黄的组合去代表纯绿。
ISFR 选择了方案 B,以获得更好的层次与过渡效果。
因为具备精准的色域控制,我们也会提供准确的调色板模式给艺术家使用。
色彩目标的思考
在色差、色度、亮度之间,究竟哪一个才是最应该保证的目标?答案没有唯一正确。E6 的离散色域决定了必须在干净度、层次、饱和度之间做取舍,而 Gamut Mapping 的设计,就是帮助我们在这些取舍中找到最适合场景的平衡点。