发展Wayland色彩管理和高动态范围

2020-11-22 03:30:10

Wayland(协议和体系结构)在色彩管理方面仍然缺乏适当的考虑。 Wayland还缺乏对高动态范围(HDR)图像的支持,这种技术在电影和广播行业已经存在了一段时间(例如Netflix HDR UI)。

尽管有完善的工具和工作流程可用于在X11上进行色彩管理,但即使X11也未获得对HDR的支持。有计划(Alex Goins,DeepColor Visuals),但是据我所知,没有真正实现的计划。目前,在Linux中的HDR监视器上观看HDR内容的唯一方法是直接使用DRM KMS API,换句话说,不使用任何窗口系统,这意味着不使用任何桌面环境。 Kodi是极少数可以完全做到这一点的应用程序之一。

Wayland的色彩管理已经被很多人讨论了很多年。对我来说,从一开始就很明显,Wayland上的色彩管理架构必须与X11根本不同。我以为显示服务器必须是颜色管理堆栈的一部分,而不是不受信任的未知实体,必须由相互竞争的应用程序绕过并覆盖该实体,以争夺谁来配置显示。这种观点引起了极大的争议,花了很长时间才阐明我的观点,但是多年来,一些色彩管理专家开始接受新的想法,其他人也加入了该观点。但是,这些新想法是否真的比旧想法更好,还有待观察。我认为让一切都变得更好的承诺实在太大了,以至于无法尝试。

这些年来,讨论开始了数次,但是讨论总是枯竭,没有任何实质性进展。色彩管理是一个广泛,深刻而又困难的主题,直到最近才将所需的技能,知识,兴趣和可用时间融合在一起。人们确实写了协议扩展草案,但是我要说的是,直到塞巴斯蒂安·威克(Sebastian Wick)开始在他们之上构建之后,事情才开始向前发展。但是,即使是出于一个简单的原因,一个人也不能单枪匹马地做出如此巨大的努力,即必须至少有一位审阅者才能将任何内容合并到上游。我很幸运,自2020年夏季以来,我一直能够从事Wayland色彩管理和HDR方面的工作,以改善ChromeOS,让我每天都支持塞巴斯蒂安的工作。 Vitaly Prosyak也于今年加入了这项工作,研究如何将两个看似不同的ICC和HDR世界融合在一起,以及如何实现音色映射。

我还必须指出Harish Krupo的过去所做的努力,他提交了一个重大的Weston合并请求,但是不幸的是,当时Weston上游的审阅者不多。在此之前,VilleSyrjälä进行了实验。目前,所有这些都已被正在进行的工作所取代。

目前,围绕该主题的活跃人士是我(Collabora),Vitaly Prosyak(AMD)和Naveen Kumar(Intel)。塞巴斯蒂安·威克(Sebastian Wick)(未婚)仍然在附近。我们每个人都不是色彩管理或HDR专家,所以我们都在学习。

颜色管理协议的基础是用于描述输出和内容颜色空间的ICC配置文件。目标是针对ICCv4,也允许ICCv2,因为这些众所周知并且得到了很好的支持。将来任何时候都可以添加iccMAX支持或其他功能。

由于色彩管理完全是关于色彩空间和色域的,而高动态范围(HDR)也很重要是关于色彩空间和色域以及扩展的亮度范围,因此Sebastian和我认为Wayland色彩管理扩展应该从一开始就兼顾两者。据我所知,将传统色彩管理和HDR结合起来是一个相当新的事物,而且我不确定我们是否有很多现有技术可作为基础,因此这也是一个有趣的研究过程。分别有很多关于HDR和色彩管理的现有技术,但是它们往往具有根本的差异,因此两者的结合并不明显。

为了帮助我们保持专注并向社区说明我们对Wayland颜色管理和HDR支持的实际意图,我在color.rst(草稿)中撰写了“ Wayland颜色管理和HDR设计目标”部分。我非常建议您阅读它,以便您了解我们(或至少我)想要的目标。

Elle Stone在他们的文章中解释了色彩管理在X11上应该如何工作。由于我想避免重复在Wayland-Devel邮件列表上使用的大量电子邮件线程,因此我在color.rst(草稿)中或多或少地写了“ Color Pipeline Overview”部分作为对她文章的回应,试图解释一下Wayland与X11有什么不同。我认为,在任何人对我们对Wayland协议扩展所做的努力发表任何评论之前,了解这一部分至关重要。

HDR带来了更多的理由将色彩空间转换放入显示服务器,而不仅仅是所有应用程序都应进行颜色管理(如果不是显式的然后是隐式的)。大多数桌面应用程序(实际上,现在几乎所有)都在使用标准动态范围(SDR)。 SDR是一个模糊概念,涉及所有传统的非HDR图像内容。因此,您的桌面通常为100%SDR。您可以在SDR模式下运行新的HDR监视器,这意味着它看起来就像任何没有花哨的旧监视器。如果您想观看HDR视频怎么办?显示器在SDR模式下不会显示HDR。如果仅将监视器切换为HDR模式,则所有过高亮度的SDR应用程序都会使您蒙蔽。切换显示器模式也可能导致闪烁并花费一些时间。那将是非常糟糕的用户体验,对吗?

一种解决方案是始终将显示器运行在HDR模式下,并使窗口系统合成器将所有SDR应用程序窗口适当地转换为HDR亮度,以使它们在HDR模式下仍能正常显示。总会有一些应用程序根本不支持HDR,因此合成器实际上是唯一的转换方法。

对于协议,我们目前正在探索相对亮度的使用。原因是人们在各种观看环境中(例如在标准办公室照明下)观看显示器。环境和个人喜好会影响所需的显示器亮度。监视器本身的功能也可能完全不同。 HDR上的大多数现有技术使用绝对亮度,但是绝对亮度具有以下问题:它假定特定的观看环境,通常是暗室,类似于电影院。如果显示服务器以绝对的亮度显示电影,那么它在大多数情况下将太暗而看不见。我们将看到,在协议级别使用相对亮度是否是一个好主意。

Wayland颜色管理和HDR协议扩展提议被称为wayland / wayland-protocols!14(MR14)。因为这是一个运行时间很长的合并请求(将新协议放入Wayland协议的门槛很高),并且有人在处理它,所以我们开始使用sub-merge-requests来修改提案。您可以在Sebastian的fork中找到子MR。如果您有更改要提出,那就是如何做。

显然,使用子MR还可以将审阅讨论分为多个地方,但是在这种情况下,我认为这是一件好事,因为Gitlab中的讨论线程已经很大。

即使在活跃的团队中,也有几个尚未解决的大小问题。我认为在提出更广泛的社区评论之前,我们应该有一些初步的答案。也没有固定的时间表,所以不要屏住呼吸。这项工作可能需要几个月的时间才能制定出完整的临时协议,并且可能需要数年才能在您最喜欢的Wayland桌面环境中提供这些功能。

如果您是色彩管理或HDR显示器和内容方面的专家,或者是有兴趣为该项目做出贡献的开发人员,我们将热忱欢迎您加入该开发。

你好 这确实是个好消息,很高兴听到,出于个人原因,我不得不放弃了这个消息,但是很高兴听到你们大家都选择了这个消息。对我来说,这就是阻止我转投Wayland的原因。我曾希望今年能够在某个地方再次捐款,但遗憾的是尚未能够捐款。 问候 欧文

>对于协议,我们目前正在探索相对亮度的使用。 这样会不会导致可能会基于笔记本电脑/手机传感器做出反应的设置?还是相对于其他方面?

嗨,欧文,我们随时欢迎您回来! 嗨,A,我还没有考虑过,但是,如果传感器通常控制显示亮度,我想为什么不呢?协议文档中有一个有关“ EDR”的草稿,应该可以更好地了解我们目前正在考虑的相对亮度。

请在此方框中打勾,以确认您已阅读并接受我们的隐私声明中有关收集/存储和使用您的个人数据的条款:*