也许是印度的步调员铁子们知谈咱快过年了, “挑升” 在 iOS 18.2 的系统更新上,新增了一个挺喜庆的 bug。
事情是这样的,有些网友的 iPhone 更新到了 iOS 18.2,在相册里稽察图片、截图,然后稽察截图、再截图,套娃几次,图片神情就会越来越红。
我愿称之为果粉的春节截止。。。辱弄归辱弄,托尼其实挺深嗜这个 bug 到底是因为啥?
网上有种说法是这样的, iPhone 在相册里稽察图顷然,用的是 sRGB 色域,而在系统截图的时间,图片则保存成 P3 色域模式。问题是 P3 的色调描摹限制比 sRGB 大,是以 sRGB 透露的红色跟 P3 透露的红色是不通常的。
就比如说, sRGB 色域下的纯红记号为(255 , 0 , 0),括号中的(R , G , B)值,等于神情在色调空间中的位置坐标。如若将它正确映射到到 P3 色域的话,纯红应该被记号为(234 , 51 , 35)。
目下来看, iPhone 在神情的映射上不知谈出了啥过错,总之等于没对应上。疏导截图就格外于在俩不一致的色域限制之间反复横跳,连接叠加这个 bug ,就导致神情偏差越来越大,像片终末就 “ 红温 ” 了。。。
天然这仅仅网友的一个说法,不外托尼也浅近测试了一下。
我先是找到了一张原始色域为 sRGB 的图片,然后发现,假如在全屏自大的景色下截图,就不会变红。可是如若带一丝系统 UI ( 比如景色栏和后台界面啥的 ),就会截图成 P3 色域,再截图就会越来越红,能够率等于系统界面的 P3 色域映射出了问题。
全屏景色下截图,依旧为 sRGB 色域;涌现系统 UI 景色下截图,就保存成了 P3 色域
畴昔王人没啥问题,目下短暂有这个 bug ,很难不让东谈主联念念到苹果前一阵儿书记的系统新功能——
是这样回事儿,苹果在 WWDC24 全球开发者大会上,推出了新 HDR 圭臬—— Adaptive HDR ( 自符合高动态限制 )。这个新圭臬,不光相册、信息、快速稽察和预览相沿 HDR ,以致连截图和录屏的文献也要相沿 HDR 的渲染和自大。。。
于是苹果的截图就用上了色域更广、色调更多的 P3 色域,但目下看来代码没调好。按照预想的剧情,苹果本是念念秀一把自家高圭臬的,可是履行情况,却是整出了新 bug。
不外,具体原因到底是不是这样一趟事,可能还得等苹果官方的论断,不外刷到此次 iOS 18 出 bug 的新闻之后,托尼脑袋里立马就念念到了当年安卓的一档子事。
略微上了点岁数的差友们可能还有印象,在阿谁贴吧、论坛斗图盛行的年代,许多心情包每多保存、上传一次,画面就会变糊一丝,到终末,以致神情还会诡外乡变绿, “ 电子包浆 ” 等于这样来的。
为啥图片会变糊?名义上的原因民众王人知谈,无非是用户在上传像顷然莫得承袭原图,再加上平台为了从简存储空间和收罗带宽,对图片进行了压缩处理。
但履行上,即使是压缩,最多也等于了了度变差,也不应该变绿。是以内容上,照旧当年的安卓在进行调度的时间,压缩算法捅出了大篓子。
具体来说,大部分自大拓荒,比如咱手里的手机、自大屏啥的,王人是基于 RGB 色调模式责任的。但在图像和视频存储传输的经由中,有一种更狂放的、更省策画量的色调模式,叫作念 YUV。对这部分感意思意思的差友,不错自行搜索一下,托尼这里就不啰嗦了。
总之~在通俗情况下,由 RGB 转向 YUV 色调模式的算法如故很老练了。就算数据调度经由中有点儿画质逝世,也不至于出啥幺蛾子。
可是安卓这边压缩图片的接口,准确的说是一个叫作念 Skia 的图像库,为了优化开动速率,念念了个偷懒决策:
圭臬的 JPEG 图像在作念色调空间调度的时间,会用至少 16 比特精度( 也等于 2^16 种不同的亮度或色度级别 ),但 Skia 裁减到了 8 比特。
仅展示位深的对比成果
是的,等于获胜裁减运算精度,纯偷懒。。。这就导致神情偏差会越来越大。
再加上安卓为了加速运算经由,在算法方面也出了一些问题。一般来说,绝大无数的 RGB 值经过复杂的公式,调度到 YUV 值时,王人会出现极少,可是安卓承袭了获胜断念极少点后头的部分取整。。。夺目是获胜断念,这个操作获胜让用惯了 “ 四舍五入 ” 的托尼喷出一口老血。
于是终末形成的终结等于:亮度值 Y 连接变小,图片连接变暗,色度值 UV 也变小了,神情就连接向绿色偏移。
再经过斗图传播时图片的连接保存、上传,色调空间变换算法反复压缩,图片就越来越绿。这个 bug 直到 2016 年 4 月中旬( Android 7 )才被诞生,留住的梗也流传于今。
慑服通过安卓这个编码诞妄调度的例子,民众如故看出来了,策画机上的色调自大是一个相等复杂的经由,尤其是目下还有好多种常用的不同色域。
比如圭臬的 sRGB ,还有厂商们真贵的色域更广的 P3,或者当你看 HDR 视频的时间,要切换的 BT2020 色域等等。。。
自大这门作业变得越来越复杂,不光苹果和安卓在色调空间这件事上翻过车,履行上,微软到目下也还有问题呢。。。
比如咱们每天王人在用的 Windows 电脑和 Chrome 浏览器,就有一个如故持续存在了两年,王人莫得得到诞生的 bug:在使用 HDR 自大器的时间,画面时时会映射出一种 “ 煞白 ” 的诞妄自大成果( 图左 ),就导致托尼固然买了相沿 HDR 的自大器,但日常使用照旧要关闭 HDR 选项。。。
如故熟练掌捏通过截屏的方式踏实复现该 bug
讲到这里,可能有一部分小伙伴会有疑问,不是一直王人夸苹果的色调不停决策作念得好?那这些问题苹果也有么?
其实不错在屏幕自大性能的测试网站 wide-gamut 上,通过经典的广色域测试页面考据一下( 网站聚合塞在阅读原文里了,可一键直达 )。如若用的是安卓手机或者其他拓荒,可能只须将图片保存到系统相册,武艺看见图片中暗色的 “W” ,而在浏览器里是看不到的。。。用 iPhone 就所有莫得这个问题。
网站里的图片长这个样子,但不是底下这张压缩过的哦
固然安卓手机,或者其他拓荒作念到了广色域自大,可是没所有买通第三方,许多时间就只可无语地自高自大,在系统相册里 “ 独好意思 ” 。。。但在苹果阵营,就不需要别离拓荒、界面和 APP ,用户能得到基本一致的自大成果。
况兼直到今天,绝大无数安卓手机和 Windows 电脑,在稽察 sRGB 以外的色调空间内容时,要么需要商榷复杂的建树文献,要么需要装配专科软件。。。不错说基本没啥色调不停可言。
终末回到 iPhone 截图变红的问题,把柄目下赢得到的信息,托尼基本慑服,等于引入截图 HDR 导致的。但愿苹果能尽快诞生这个 bug,毕竟,苹果如故是通盘各家系统里,在色调不停、 HDR 等等方面走得最远的厂商了。。。