分类:[科技] 标签:[Apple]、[iPadOS]、[macOS]、[硬件底层]
在 WWDC26 发布的 iPadOS 27 与 macOS Golden Gate 中,随航迎来了堪称史诗级的更新 —— 你可以通过 iPad 的触控屏,用手指完整操控随航中的 macOS。某种程度上这也印证了「Apple 即将推出触屏版 MacBook」的传闻。
若你已经加入 iPadOS 以及 macOS 的 Beta 计划,更新至 iPadOS 27 与 macOS Golden Gate 后即可直接在随航功能中体验到这一新特性。经笔者实测,当前 Beta 版本中触控的延迟几乎难以察觉,交互也足够流畅。不过由于 macOS App 大多针对的是键鼠的操作逻辑,大部分 App 尚未针对触控交互进行专门优化,目前大部分的点击与滑动操作,本质上只是由系统转译为相应的鼠标操作。
虽然在现阶段,相信你在体验一段时间后可能还是会更愿意回到传统的键鼠操作。但在高强度使用随航近两年后,笔者对它最深的印象其实只有两个字:无感。有时它的流畅甚至会让我忘记两台设备之间并没有数据线连接。
本文试着从协议、编码、硬件等技术层面入手,为你解析随航功能流畅体验背后的秘密。
什么是随航?
或许有些读者对随航还不太熟悉。简单来说,随航(Sidecar)就是通过无线或有线传输的方式,将你的 iPad 作为 Mac 的扩展显示屏。不需要复杂的 App 连接、也不需要数据线,只需打开 Mac 和 iPad 进行配对,Mac 便拥有了第二块屏幕。
你可以在 macOS 菜单栏中点击「控制中心 -> 屏幕镜像」,然后在「镜像或扩展至」一栏中选择对应的 iPad 来开启随航。Mac 会通过蓝牙查找 iPad,然后以点对点 Wi-Fi 的形式传输画面。
你也可以前往「系统设置 -> 显示器」中,在底部选择「镜像或扩展至 iPad」,然后从列表中选择一部 iPad。
连接完成后,iPad 会像普通外接显示器一样出现在 macOS 的显示器设置中,你可以调整它的位置、分辨率以及镜像或扩展方式。
除此之外,随航也针对 iPad 的特性进行了一些扩展,前文提到的「触控」特性便是其中之一。另外随航从推出之初便支持 Apple Pencil,你可以直接在 iPad 屏幕上使用 Apple Pencil 操作 Mac 应用;在兼容的应用中,压感、倾斜等笔触信息也能得到保留。从某种程度上说,开启随航的 iPad 可以当作一块带屏幕的数位板使用。
在「随航」成为官方功能之前
从功能和体验层面来说,随航可以说是相当完善,但「让 iPad 变成 Mac 副屏」其实并不是 Apple 首创的想法——事实上,在第一代 iPad 正式发售的当天这一概念便已落地,并以一款 iPad「首发 App」的形式登陆 App Store。
它叫 iDisplay,由 SHAPE Services 开发。
iDisplay 会在 Mac 中安装一套扩展驱动,创建一块系统能够识别的虚拟显示器,再通过 Wi-Fi 将画面发送到 iPad。用户可以像使用普通副屏一样排列两块屏幕,把 Mac 窗口拖到 iPad 上;甚至在遥远的 2010 年,iDisplay 就能「十分先进」地将 iPad 的触摸及键入操作反向传回 Mac。
只是这款诞生于 iPad 发售之之初的软件远远谈不上「流畅」,甚至有着堪称灾难的使用体验:无论是繁琐的前期设置、极不稳定的连接,还是动辄数秒的延迟,都表明它更像是一次对新技术的探索,而非成熟的解决方案。
所以同年,Avatron Software 推出了 Air Display。它采用了与 iDisplay 相似的思路,进行了一部分的优化,不过仍称不上「好用」,动态画面仍有不小的延迟。此后几年,围绕「iPad 作为扩展副屏」的解决方案不断涌现,但总体而言,彼时「将 iPad 作为扩展副屏」这个点子在大多数人看来还是一种新奇的功能玩法,或是应急需求,没有人真正将它视作生产力的一部分。
既然「无线」带来了那么多问题,那加上一根线不就行了?巧了,正有一群和你抱有同样想法的前 Apple 工程师。于是 Duet Display 来了。
与上述使用过 Wi-Fi 传输的产品不同,Duet Display 须使用 Lightning 或 30 Pin 数据线连接 Mac 与 iPad。得益于有线这一较为稳定的传输方式,Duet Display 打出了「Retina、60 fps、No Lag」的宣传旗号。
但需要注意的是,这里的「有线连接」有别于普通的显示器连接,它并不能直接将 iPad 扩展为一块普通的显示器 —— 因为 iPad 不能通过它直接接收 Mac 输出的视频信号,本质上,它只是将数据传输方式从无线改为有线;画面的生成与显示过程仍与先前的软件类似,需要先在 Mac 中创建一块虚拟显示器,再将画面处理后传送至 iPad。
因此 Duet 也并没有像宣传的那么美好:其 Retina 与 60 fps 模式会占用大量 CPU,部分旧款 Mac 仍会出现光标延迟、画面伪影与系统卡顿。
2019 年 6 月 3 日,Craig Federighi 在 Apple 的 WWDC 2019 上首次公布了一项名为 Sidecar 的新功能,正式将「让 iPad 变成 Mac 副屏」纳入系统功能中。
一帧画面的旅程
简单来说,一帧画面要显示在作为 Mac 副屏的 iPad 上,主要需要经过以下几个环节:
- 虚拟屏幕渲染
- 画面编码
- 数据传输
- 解码显示
前文中提到的 iDisplay、Air Display 等第三方软件,其实已经用上了「虚拟屏幕渲染」的思路。简单来说,它们会先在系统中创建一块虚拟的显示器,并像对待实体显示器一样,为其正常分配桌面空间和分辨率等。此时应用仍然按照正常方式绘制窗口,再由 macOS 中负责管理和合成屏幕画面的 WindowServer 组合成虚拟显示器上的完整画面。
相比之下,接下来的几个环节的精密协同,才是随航真正与第三方方案拉开差距的地方,也是其能够做到如此流畅的关键。
画面编码
为什么 WindowServer 合成出的画面还不能直接交给 iPad?
传统外接显示器的逻辑其实很简单,GPU 完成一帧画面的渲染与合成后,只需要按照显示器规格生成显示信号,再通过 HDMI、DisplayPort 或 Thunderbolt 等接口送往显示器即可。
但一块高分辨率屏幕每秒产生的数据量远比想象中庞大。以 2388 x 1668 分辨率的画面为例,假设每个像素使用 4 字节(RGBA)表示,那么每帧图像所占用的空间大约为 15.9 MB。如果设备的刷新率为默认的 60Hz,一秒钟产生的原始画面数据便已经接近 1 GB。
对于无线传输的随航来说,想要稳定传输如此庞大的原始画面数据显然并不现实。因此在画面离开 Mac 之前,还需要先经过一道关键步骤 —— 编码。本质上,随航所传输的其实是一条实时视频流,因此它对屏幕画面的压缩也沿用了现代视频 HEVC 编码的基本思路。
HEVC 核心原理
HEVC 是 High Efficiency Video Coding(高效率视频编码)的缩写,也就是 H.265。HEVC 的核心精髓便是「猜」,用尽可能少的原始内容,推算出接下来的视频内容,从而节省海量的空间。
- 分块 (CTU/CU):在预测开始前,HEVC 会先将画面划分为编码树单元 (CTU)。天空、墙面等颜色较为平缓的区域使用较大的编码单元;细节密集的区域则继续向下细分,根据复杂程度选择处理粒度。
- 帧内预测 (Intra Prediction):不依赖视频中其它帧,而是利用当前帧中已经得到的相邻画面信息(上方与左侧)来预测当前单元中的内容,减少重复记录的像素信息。
- 帧间预测 (Inter Prediction):会从其他已经重建的参考画面中寻找与当前编码块相似的区域。通过「运动估计」记录相似区域之间的位移方向与距离(运动矢量),解码器则利用该信息进行「运动补偿」。
- 残差 (Residual):比对预测画面与原始帧之间的差异。编码器只需记录少量的差异信息即可,从而实现极高的压缩比。
总结
随航之所以能够实现「无线胜似有线」的丝滑体验,本质上是 Apple 将定制的硬件编码单元(如 Apple Silicon 中的硬件编码器)、高效的 HEVC 实时视频压缩算法以及**系统级底层优化(WindowServer 虚拟屏渲染)**三者进行了深度整合。它避开了传输原始巨量像素的笨拙方案,通过极低延迟的编码与解码链路,在保证画质的前提下将带宽需求降到最低,最终成就了无感的跨设备扩展体验。