我们频道之前用了好几期视频|次像素渲染的实验

我们频道之前用了好几期视频 , 给大家分享了几个Apple产品在显示效果上做的比较好的地方:像是色彩管理 , 可以根据图片或者视频的配置文件 , 在正确的色彩空间下进行渲染;再比如localHDR , 可以利用OLED或者miniLED高亮度的特性 , 让图片或者视频能够尽可能还原出当时场景的亮度 。 没看过的朋友强烈建议看看之前这几期视频 。
我们频道之前用了好几期视频|次像素渲染的实验
文章图片
我们频道之前用了好几期视频|次像素渲染的实验
文章图片
但其实不知道大家有没有注意到一个问题:那就是这俩功能本质上是在干一件事 , 就是创造一个亮度和色彩都足够大的容器 , 把可以把所有内容统一转进来 , 再转换成屏幕接受的数据格式 。 对于屏幕的像素来说 , 他只接受一种数据格式 , 那就是RGB信号和当前的亮度 , 这部分是在系统中完成 , 不需要硬件的参与 , 我愿称其为操作像素的艺术 。
但我们今天要分享的主题 , 则要比这个更加底层 。 因为我们都知道 , 内容当中的每一个像素 , 到屏幕上实际需要RGB几个像素来混合显示 , 这就是屏幕的次像素或者说子像素 。
那次像素是如何被驱动进行显示的?OLED和LCD之间的区别在哪?Apple在这又有什么积累?那接下来我就来好好讲讲 。
我们频道之前用了好几期视频|次像素渲染的实验
文章图片
▍次像素渲染
先给大家做一点简单的科普 , OLED的像素并不是RGB1:1:1的 。 像主流的钻石排列 , 红蓝就各少了一半的像素 , 这时候如果显示一个白点 , 只点亮RGB三个像素可能就不够 , 还需要从旁边借像素 , 来确保颜色和形状尽可能的还原 , 这就是次像素渲染算法 。
做得好可以让你感觉不到OLED缺少红蓝像素这个先天的劣势 , 做的不好那就会出现模糊或者锯齿 , 看起来不够清晰 。 所以这个功能算是那种 , 做的越好 , 你反而越没有感知的一个功能 。
我们频道之前用了好几期视频|次像素渲染的实验
文章图片
但大家可能不知道的是 , 尽管LCD是标准的RGB排列 , 他也需要借助类似的手段来平滑曲线或者圆角 , 像Windows有ClearType和整数缩放 , Mac这边有HIDPI , 都是在解决类似的问题 。
这些功能可以由软件来自定义 , 适配不同的显示屏 , 但是移动端由于功耗限制更加严格 , 所以类似的算法必须固化在硬件中 , 这个硬件就是显示芯片 , 又叫DDIC , 他不太起眼 , 藏在显示屏的背后 , 但是一般看楼斌老板的拆解视频 , 都能找到他的身影 。
我们频道之前用了好几期视频|次像素渲染的实验
文章图片
视频在B站被热心网友指正 , 这个框里圈出来貌似不是DDIC , DDIC在图中左边的封装内(待确认)
这也是软件端能控制的最末尾 , 软件系统是不能通过命令单独点亮一个「次像素」的 , 只有DDIC才有这个功能 。 所以不管聊显示的什么内容什么算法 , 最后可能都绕不开这颗芯片 , 今天先简单介绍下 , 未来我们的视频可能还会提及他 。 科普完毕我们进入正题 。
我们频道之前用了好几期视频|次像素渲染的实验
文章图片
DDIC功能
为了这次给大家演示次像素渲染的效果 , 我还把放弃多年的html开发捡了起来 , 手写了个测试次像素渲染的网页 。 在这里也感谢Navis老师提供的创意 , 之所以用网页而不是图片 , 是因为每个设备的屏幕分辨率不一样 , 有1080P的、有2K的、还有Apple这种非标准分辨率的 。 要保证各个设备显示测试图案的大小接近 , 使用一样的字体 , 且不受图片压缩带来的影响 , 用代码画出来是最靠谱的 , 这个图虽然看着比较简陋 , 但是效果已经达到了 。