Press "Enter" to skip to content

Huahua's Tech Road

再谈苹果XDR显示器与HDR之殇

我之前有一篇文章聊过苹果的MBP的XDR显示器,以及为什么“正确”调色过的SDR在它上面效果如此之好,以至于连HDR都黯然失色。Why SDR looks so good on Apple’s XDR display that even shadows HDR?

其实很简单:苹果的XDR显示器把普通的SDR内容HDR化了,高光部分没动,只是把暗部压暗了很多,接近5档!

一谈HDR,很多人上来就吹什么动态元数据什么的。抛开色彩不谈,HDR的字面意思就是高动态范围,就是指内容最终在显示设备上呈现时最亮的地方和最暗的地方的比值,能超过一个数值(比如10档/1024)就可以称为HDR了,物理学就是这么简单。

XDR显示器在呈现Rec. 709 (Gamma 2.22)的内容时,IRE 50%~100%时和标准曲线基本吻合。但在50%以下的部分,对比度会慢慢增加,低于10%之后,黑化愈发明显。播放有损压缩视频时,暗部色块和断层基本不可见,显示效果大幅提升,正所谓一黑遮百丑。谁叫人家能黑的下去呢!标准的Rec. 709曲线在最大亮度500nit时,1% IRE的亮度为1.11nit,动态范围8.8档。但在XDR显示器上,实测100% IRE 450nit, 1% IRE 0.04 nit,动态范围13.5档,这还不算HDR吗?

Rec. 709在普通LCD显示器和XDR显示器上的暗部区别巨大(相机直拍)

后记

XDR的MBP发布已经近4年了,现在最新的iPhone/iPad以及安卓阵营在SDR最大亮度上早已超过了它,达到1000nit或以上,至少14档的显示动态范围使得SDR被HDR化有过之无不及。最高2000nit的激发亮度使得HDR的高光也就比SDR多1档,食之无味弃之可惜,普及遥遥无期~此时JPEG说我真的还能再活500年!

中年大叔的赛博保温杯:开源掌机的尴尬与自洽

地铁玻璃倒映着我和身旁穿JK制服的姑娘,她耳机里流淌着抖音神曲,我膝盖上躺着台RG35XXH。当《魂斗罗》的BGM突然炸响时,她瞥见我布满茧子的拇指在AB键上翻飞,像看恐龙般瞪大了美甲精致的眼睛。

三十年前,我在百货大楼隔着玻璃抚摸GameBoy时,绝对想不到四十岁生日礼物会是台能模拟三万款游戏的开源掌机。中年男人的油腻保温杯里泡枸杞,我的电子保温杯里炖着整个游戏编年史。妻子总说我在客厅搓手柄的样子像返祖,可当马里奥跃过旗杆的瞬间,后颈分明掠过1995年新华书店门口的穿堂风。

开源掌机像台时光切片机,把FC红白卡带的塑料味、PS1光驱的嗡鸣、GBA像素的颗粒感,统统封印在系统的玻璃棺材里。社区论坛里,年轻极客们讨论超频和魔改系统,而我沉迷给《塞尔达传说:缩小帽》打金手指——就像给褪色的青春描眉画眼。

深夜加班后,我蹲在车库给开源掌机刷Linux固件。楼上的钢琴声与焊接声此起彼伏,邻居孩子练习车尔尼599,我试图复活二十年前的电子宠物。当拓麻歌子像素蛋在开源系统里破壳时,忽然觉得我们这代人就像游戏ROM,被时代反复转码却始终保留着某种顽固的比特基因。

如今Switch在年轻人手里漂移,手游在打工人屏幕上996,我的开源掌机永远停在标题画面。那些通关存档不再重要,重要的是每次按下电源键时,总能在3.5英寸的微光里打捞出那个攥着五毛钱硬币,在游戏厅门口徘徊的瘦小男孩。

全文由 DeepSeek R1生成,花花稍作修改并配图。

花花酱 LeetCode 3517. Smallest Palindromic Rearrangement I

这题考查的是排序吧… 还有rbegin的使用。

普通排序:时间 O(nlogn) / 空间 O(1)

前半部分顺序排序,后半部分逆序排序。

计数排序:时间:O(n),空间:O(n) -> O(1)

首尾一起写

花花酱 LeetCode 3508. Implement Router

算是比较复杂的题目了,主要考察数据结构的选择和应用。

Note that queries for addPacket will be made in increasing order of timestamp.
把题目简化了不少,注意timestamp可能会想同,非严格单调递增。

forwardPacket 的 FIFO,需要deque或者list
getCount 特定key的范围查询,hashmap + vector / deque
addPacket 需要用hashtable 去重。还要remove最旧的packet,最后的选择落到的deque上。

deque两头可以添加/删除,还能random access做二分搜索,真是居家旅行必备之数据结构。

时间复杂度:addPacket: O(1),forwardPacket:O(1),getCount:O(logN) N为dst的packet数量。
空间复杂度:O(M)