在过去一年中,Facebook 和 Instagram 的视频基础架构团队发现上传到我们应用程序的 HDR 内容数量大幅增加,每天都有数百万 HDR 视频上传。因此,我们一直在努力为我们的应用程序系列提供真正的 HDR 视频支持,从 Reels 开始。 如今,人们可以将手机相机胶卷中的 HDR 视频上传到 Reels,并以全 HDR 格式播放视频。为了实现这一目标,我们需要克服一些技术挑战,以确保在人们每天用来与我们的服务进行交互的各种新旧设备上顺利过渡到 HDR 视频。
举例来说,彩色电视的出现改变了游戏规则,观众可以观看全彩节目,这与过去的黑白广播体验大相径庭,因此我们可以更好地理解 HDR 的发展历程。这标志着在使视频更接近现实方面的一个进步,为未来的进步(如高清内容)奠定了基础,从而不断提高观众的体验标准。
现在,随着 HDR 视频的过渡,我们迎来了下一代视频的曙光。与 SDR 视频不同,HDR 视频的亮度和色彩范围更广,因此白色更亮,黑色更暗,可见色彩的潜在数量也更多,图像更加生动逼真。随着 HDR 摄像机和显示器的日益普及,尤其是在移动设备上的普及,更多的用户可以体验到它的优势。
挑战:支持 HDR 的设备各不相同
随着 HDR 摄像机和显示器的推广,出现了大量具有不同功能的设备,这使得实施端到端 HDR 视频创建和传输变得极具挑战性。这比简单地为支持的设备创建和上传 HDR 视频要复杂得多。从产品角度来看,我们需要确保在整个媒体管道中正确保存 HDR,以便从创建者的设备到服务器端视频处理/存储,最终到观看端交付和回放,全程提供优质的用户体验。
拥有各种功能的设备所面临的主要挑战之一是确保不同设备之间的兼容性。HDR 视频标准对创建和消费都有特定的硬件要求,但并非所有设备都支持这些新标准。这意味着有些消费者可能无法观看 HDR 内容。更糟糕的是,他们可能会看到色彩不正确的降级版视频,导致观看体验大打折扣。
HDR 视频还面临着不同 HDR 格式的挑战,如 HLG 和 PQ,其中任何一种格式都可能包含 HDR10+ 或杜比视界动态元数据。不同的设备制造商可能会选择实施自己的标准,每种标准在支持的亮度和色域范围方面都有独特的能力。不同的传感器也会产生不同的色彩。这些区别都会产生我们需要考虑的额外特性,以确保给定视频在所有设备上都能一致、正确地显示。例如,如果视频采用 HDR10 编码,并在配备 8 位显示屏的设备上播放,在某些情况下,视频的效果可能会比 SDR 视频更差,色彩会变得模糊或不自然。如果我们不解决这个问题,创作者就很难准确地展示他们的作品并保证观众的观看体验。
挑战:精确的色调映射
由于并非所有设备都支持 HDR 显示,我们需要通过提供 HDR 视频的 SDR 表示来实现向后兼容性。色调映射是缩减图像或视频的动态范围和色彩空间,同时保留图像原貌的过程。不恰当的色调映射可能会导致颜色偏移,看起来不自然,例如树木看起来是蓝色的。色调映射的视频可能太亮或太暗。在专业工作室,手动色调映射或调色包括调整参数,直到效果看起来令人满意。然而,我们需要的是一种无需人工审核就能在数十亿视频上自动运行的解决方案,其色调映射 SDR 编码与原始 HDR 视频非常相似。
先进的色调映射算法可用于保持质量并最大限度地减少任何人工痕迹。客观的阶调映射视觉质量指标仍然是业界的一个未决研究课题,但根据我们的内部测试,我们能够调整流行的 Hable 阶调映射运算符,使其产生的结果能够合理地反映创作者的原始意图。
客户端的色调映射
当创作者刚开始上传 HDR 视频内容时,我们的媒体管道还不能处理 10 位色彩。因此,HDR 视频的色彩曝光过度,造成了令人不满的体验。iOS 设备是首批默认启用 HDR 的设备,因此我们开始看到用户上传 HDR 视频。为了缓解这一问题,我们在上传之前通过客户端色调映射,将所有包含 HDR 内容的作品在设备上转换为 SDR。
我们使用苹果公司的原生色调映射 API 快速发布了修复方案,在上传到我们的服务器之前,将 HDR 视频映射到 SDR 色彩空间。这样一来,所有上传的视频都能保证在所有设备上看起来效果良好,即使这些视频来自能捕捉 HDR 视频的较新手机。
Android 的情况则有些不同。由于设备种类更加多样化,HDR 在早期阶段缺乏标准化,我们无法依靠操作系统级别的色调映射来保持一致的外观。一些设备使用 PQ 传输功能创建 HDR 视频,而另一些设备则使用 HLG。这些不同的标准导致了不同的色彩表现,因此,在将所有 Android HDR 上传到精确的 SDR 表现中时,没有一个放之四海而皆准的色调映射解决方案。
对于 Android,我们需要实施更深入的解决方案。安卓 HDR 卷轴的早期体验导致使用较新设备的用户感到色彩模糊。因此,我们构建了自定义色调映射着色器,将 PQ 和 HLG HDR 精确转换为 SDR。首先,我们在解码帧时提取了视频元数据,以确定使用了哪种传输函数(如 PQ 或 HLG)。接下来,一旦我们获得 YUV 色彩空间中的每个帧,我们就可以应用适当的转换矩阵将其转换为目标 SDR 色彩空间(BT.709)。一旦我们获得了 SDR 呈现,创作流程的其余部分,包括创意特效、AR 滤镜和复杂的媒体合成,都能正常运行。
有了客户端色调映射,我们已经缓解了色彩冲淡的问题,但我们仍然无法为那些拥有 HDR 内容的创作者提供真正的 HDR 体验。
服务器上的色调映射
通过客户端色调映射,我们能够减轻在仅支持 SDR 的媒体管道中处理 HDR 视频所带来的视觉质量下降。这解决了我们观察到的问题,但我们的最终目标仍然是释放配备 HDR 显示器的新型设备的功能,并为其提供完整的 HDR 体验。这意味着在为可能不支持 HDR 的旧设备提供令人满意的用户体验的同时,还需要构建强大的端到端 HDR 支持。
作为创建过程的一部分,我们已经将所有上传的视频转码为不同的分辨率和比特率,以便通过自适应比特率流(ABR)为所有设备和网络条件提供流畅的播放体验。但是,对于 HDR 视频,这可能会变得更加复杂,因为它们要求每个像素的每个色彩分量有 10 位,而且通常使用 HEVC、VP9 或 AV1 等较新的编解码器进行编码。这些特性增加了解码的复杂性,因此需要更高性能的设备来支持流畅的解码和播放。如果我们向所有设备(包括那些没有足够支持的设备)提供 HDR 内容,就会导致性能下降,因为更高的必要比特率会造成带宽浪费,从而导致缓冲增加、更频繁的播放停滞和电池寿命缩短。
因此,为了打造适合所有用户的体验,我们需要有办法向无法利用 HDR 优势的设备提供 SDR 编码。为了应对在不同设备生态系统中传输 HDR 视频的挑战,我们在服务器端处理过程中内置了色调映射。
通过服务器端色调映射,我们可以将内容上传到我们的服务器,并保留原始 HDR 色彩信息,同时生成 HDR 和 SDR 表示,以便传输。 同时进行 HDR 和 SDR 编码使我们对 HDR 视频的计算量增加了一倍。利用我们的 Meta 可扩展视频处理器进行 HDR 处理,我们能够在不增加能源需求的情况下处理这种负载。
如果设备不支持 HDR,则只能提供 SDR 表示来进行播放。此外,HDR 视频的色调映射 SDR 变体适用于混合场景,如 Instagram Explore 页面或 Facebook Feed,在这些场景中,所有缩略图和预览的亮度一致,用户体验最佳。
挑战:亮度管理
在我们的应用程序中,当在围绕 SDR 视频设计的用户界面中引入 HDR 亮度和色彩时,我们还面临着如何保持应用程序体验一致性的挑战。在我们的测试中,这往往会导致体验不一致或不满意。
如上所述,HDR 不仅扩大了色彩范围,还通过更高的亮度水平扩大了对比度。这就提出了一个问题:如何让已经很亮的显示屏变得更亮,以充分满足 HDR 所需的动态范围,同时还能确保 SDR 内容保持正确和相对的显示效果。在 iOS 设备上,默认的系统行为非常有趣。显示屏最亮的范围将留给 HDR 内容,而 SDR 内容实际上会变得更暗。
在混合场景中显示 HDR 和 SDR 时亮度不一致。第三行最左边的视频是 HDR 视频,比其他视频亮很多。
在单个视频占据整个屏幕的应用中,发生的情况可能并不明显。但是,在 Instagram 这样的应用中,视频与其他视频同时显示,这种效果可能会让人相当不满,这就要求我们为最佳用户体验定义新的标准。
其中一个例子是 “探索 “选项卡,它将照片和视频混合显示在一个网格中。如果我们只是在此设置中启用 HDR,HDR 视频就会吸引额外的注意力,导致体验不平衡。在这种情况下,我们将使用与创建视频时相同的客户端色调映射,对视频进行即时色调映射。
另一种情况是 Reels,在这种情况下,我们一次显示一个全屏视频,并在其上叠加显示作者、标题、评论和其他元数据的用户界面。这些界面元素都是 SDR,因此当它们与 HDR 内容同时显示时,也会出现同样的调光行为。这导致我们在早期实验中发现,当白色文本与 HDR 视频一起呈现时,会出现灰色的问题。我们希望确保叠加文本始终以真正的白色呈现,因为灰色会变暗,在某些情况下完全难以辨认,这就造成了可用性方面的问题。
由于我们的目标是实际播放 HDR 视频,因此简单地将色调映射回 SDR 并不是理想的选择。相反,我们从另一个角度来解决这个问题,在 HDR 视频中使用 HDR 渲染叠加效果。为此,我们对叠加颜色应用亮度乘数,扩展到光谱的 HDR 部分,从而以相同的亮度水平呈现。
致谢
这项工作是 Meta 整个视频基础设施和 Instagram 媒体平台团队通力合作的成果。作者在此特别感谢以下人员: Anthony Dito、Rex Jin、Ioannis Katsavounidis、Ryan Lei、Wen Li、Richard Liu、Denise Noyes、Ryan Peterman、David Ronca、Bhumi Sabarwal、Moisés Ferrer Serra、Ravi Shah、Zafar Shahid、Haixia Shi、Nidhi Singh 和 Kyle Yoon。
作者:Adarsh Solanki, Cosmin Stejerean, Chris Ellsworth
译自:https://engineering.fb.com/2023/07/17/video-engineering/hdr-video-reels-meta/
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/41628.html