记Macbook Pro M4 14-inch的一个显示问题排查修复过程
事情起因
6月29日在使用电脑的过程中,发现MacBook Pro的屏幕边缘莫名其妙出现的了彩色的暗影条纹,呈回字形,屏幕右侧和下侧较为明显。
在发现这个状况后,我下意识的认为这是一个硬件问题。我还清楚的记得我特意截了一张图,是没有这个显示的。于是我当天下午就预约好了天才吧去检测。
到了天才吧,工作人员按照检测流程跑了一遍,这个时候其实就发现了一点问题,那就是在执行屏幕坏点检查时,当屏幕颜色切换为白色时,这个条纹色块显示就变得很不明显了。不过工作人员也不太清楚原因,于是就说可以换屏幕,不过他们要订货。
等到第三天,订货到了之后,我就将电脑送了过去。第二天下午,苹果店打电话跟我说,屏幕已经换好了,于是我第三天就去取我的电脑。
等到了苹果店,我打开电脑验货时,发现屏幕上的阴影条纹还在。旁边的天才吧工作人员也很纳闷,于是换了个技术人员来,那位技术人员给我看了下他们维修时留的截图,可以发现确实屏幕上是没有阴影条纹的。因此他认为排除了硬件故障,只能是软件问题了。再备份好之后,直接在当场重制了系统,再开机之后,发现确实阴影条纹消失了。
到了这个时候,我认为可能是OS系统出的问题,于是回家之后就开始了重装软件,重新装了BetterDisplay,关闭了GPU Githering,这样眼睛会舒服点。
第二天打开屏幕,当我打开Chrome Google搜索首页时,阴影条纹又出现了!我这个时候就意识到,不应该是系统的问题,一定是某个软件的问题,而此时控制显示的软件我只装了BetterDisplay,于是我打开GPU Githering,条纹消失了。
后来经过我的测试,只有在开启均一性校验(Uniformity Correction),并关闭GPU Dithering的时候才会出现条纹。我理解这应该不是Bug,应该是显示特性的问题。于是提了一个Issue:https://github.com/waydabber/BetterDisplay/issues/4480
去AI问了下Uniformity Correction和GPU Dithering
Uniformity Correction 是什么?
Uniformity 指的是显示器屏幕在不同位置显示相同颜色和亮度时,是否能保持一致。实际上,绝大部分显示器由于面板制造、公差、背光分布等因素,屏幕的边缘和中央、四角等区域往往会出现亮度或者色彩的轻微不一致(比如某些地方发暗、发色、泛黄等现象)。
Uniformity Correction(均匀性校正)就是通过检测出屏幕各区域的差异,然后有针对性地调整每个区域的亮度和色彩,使整个屏幕的显示更趋于一致。
BetterDisplay 中 Uniformity Correction 的作用
提升观感一致性:让你用肉眼看起来整个显示器的亮度和色温分布更均匀,减少所谓的“阴阳屏”、“漏光感”等问题。
提高专业工作的精度:对于需要进行专业图像编辑、色彩校准的用户(如摄影、印刷、设计等工作),更高的屏幕均匀性非常有价值。
延长显示器寿命体验:部分修正因老化、用于多年的显示器出现的暗角、色偏等现象。
工作原理
BetterDisplay 的 uniformity correction 通常有两种做法:
手动校正:用户通过工具采集屏幕不同区域的数据,然后软件根据数据,计算出补偿曲线,为每个区域动态调整亮度或色彩数值。
自动校正:部分高端显示器内置有硬件级“均匀性补偿”,BetterDisplay 可通过 DDC/CI 或自有算法和接口调用和控制。
在纯软件方案里,BetterDisplay 可能通过“覆盖层”或 ICC 曲线修正每个区域的色彩和亮度,虽然受限于色彩通道数和驱动能力,但依然能明显改善部分机型的肉眼可见不均匀问题。
GPU Dithering 是什么?
Dithering(抖动)是一种数字图像处理技术,用于在色彩或灰度级数不足时,通过有规律地在像素间分布不同颜色的点,来模拟出更多的中间色调或更平滑的色彩过渡。
GPU Dithering指的是由显卡(GPU)在输出画面时自动进行的抖动处理,主要针对下面几种情况:
显示器色深较低(比如6bit、8bit面板,不能原生显示全部色彩)
输出位宽不足(比如系统或驱动只输出8bit,而显示器支持10bit)
需要避免显示画面中出现“色带效应”(color banding), 比如在渐变、暗部阴影里出现一条条严重的界线
GPU通过抖动算法(常见如FRC、Random Dither、Ordered Dither),在颜色之间插值过渡,让画面看起来更加平滑细腻,即使色深有限也不会很明显地看到断层。
小反思
折腾了这一圈之后,我意识到,还是我的老毛病让我多白费了不少功夫。当我看到显示出现问题的时候,几乎没怎么想过就是直接预约了天才吧。如果多坐一会儿,试试调整下跟显示相关的设置,或许就能解决了。工作时也出现过这种想当然的情况,以后要改正。