HDR算法是在显示器中还是显卡中完成的？
目前流行的HDR视频标准有 Perceptual Quantizer / Dolby Vision / Hybrid Log Gamma 等， 本质上都是一组全新定义的转换函数，配合全新定义的色彩空间（如 BT. 2020）、分辨率（如 4K、8K）、位深（10 / 12 / 14 bits）等，使视频能够记录、显示器能够重现更多的色彩、动态范围等。 现行的 BT. 709 已经很旧了，使用这个标准能够记录、重现的范围有限，而且现在的显示器能够重现的范围已经超过了其定义的范围，因此诞生了新的标准。 所以，问题的回答： 1、是的，不仅需要显示器支持输入，计算机软件（播放器、游戏等）支持处理、硬件（显卡）支持输出，视频文件 / 信号本身也必须是 HDR 编码的。 2、没有区别，大部分 JPG 使用 sRGB / Adobe RGB 等色彩空间，8 bit 编码，其记录的范围有限，而相机的 RAW 文件记录了更多范围，将范围广的 RAW 转换为范围窄的 JPG 时，需要进行 tone mapping，这就是静态摄影中常说的 HDR 色调了。也许不久之后就会有使用 HDR 视频标准的 HDR 图像格式出现，使图片能够记录更多的动态范围，在支持 HDR 视频标准的显示器上有更好的效果。此时如果有差别则是显示器本身性能的差别，而更好的动态范围是 HDR 显示器的基本，从这个角度来说 HDR 显示器可能也能更好地显示 SDR 图片 / 视频。 3、此 RGB 非彼 RGB，HDR 视频中使用的 RGB 是经过新定义的转换函数得到的，和 HDR metadata 一同经过 HDMI 传输，显示器也会使用新定义的转换函数将其转换为信号显示出图像。如果将其当作普通的图像来解码，会得到错误的结果， 可以用一张截图配合 Photoshop 说明一下： 图 1 来自「你的名字。」 4KHDR 蓝光盘，这也是最常见的错误解码 HDR 视频的效果。为什么是灰灰的？因为它采用了 HDR PQ 编码，拥有专门的转换函数，而如果将其当作普通的视频，会将视频流中的 YUV 数值使用 BT. 709 的相关定义转换为 sRGB，然后输出到显示器，使用 Gamma 2.2 转换。 图 2 根据 PQ 空间的转换函数将其色调映射到了 sRGB 空间，峰值亮度为 100 nits，也就是 BT. 709 中定义的范围，而原本 HDR 视频中记录的高光信息被滚降（roll off）到了有限的范围内，也就是说截图 2 已经转换到 SDR 了。 图 3 同样映射为 sRGB，只是这次不使用 roll off，而是直接抛弃（hard clip）原视频中 100 nits 以上的数据，也就是说我们看到了 HDR 视频的一小部分信息，其全貌需要软硬件支持的情况下解码原视频才能看到。 （其实上面这个过程和我们调相机 RAW ，最后输出 JPG 的操作是一个道理） 补充一下，因为 HDR 显示器 / 电视其实还不怎么普及，有的中低端产品或提供名为 HDR 的技术，实则为输入 SDR 视频实时调整画面，这样补偿的信息并不是真实的。HDR 视频来自于摄像机拍摄的范围更广的源文件和后期调整，使用新标准才能让最终用户尽可能看到原貌或导演的意图。为了让屏幕在物理上有更高的动态范围，出现了自发光（OLED / QLED）分区调光（local dimming）甚至像素调光（已上市：EIZO CG3145）等技术。 最后提供一个小玩意，供大家参考，对于开始压制 UHDBD 的朋友可能也有点用： 我用 Desmos 画了一些图，里面包含了 BT. 2100 定义的 PQ 相关的 EOTF / OOTF / OETF，BT. 2390 提出的一个 EETF（用来将 Reference PQ EOTF 映射到实际显示器的范围）等。 打开后默认显示的红色曲线是 Reference PQ EOTF 0~10000 nits ， 绿色曲线是将红色曲线 mapping 到 0.005~1000 nits 的 EOTF ，这个范围可以通过 EETF 文件夹中的两个变量调整。 两个小三角分别是 BT. 709 和 BT. 2020 色彩空间 in CIE xyY， 可以拖动第一个文件夹 Parameters: Linear RGB Signals 中的变量来查看相应色彩空间里的位置、转换后的 BT. 2020 non-constant luminance Y'Cb'Cr' 数值以及 10 bit TV Range 编码后的整数值等。这些值都在标有 Values 的文件夹里。 也可以自己使用里面写好的函数来进行相关的计算，例如： OETF: E_{NonLnPQOE}\left(700\right)=0.713011756546 表示 700 nits 在非线性 PQ 空间中的值。 Reference PQ EOTF，横轴为非线性 RGB 数值，纵轴为亮度值。由此也能看出为什么错误解码 HDR 视频会很灰，因为通常 HDR 视频中的绝大部分信息都在 600 nits 以下，对应的 RGB 数值小于 0.7 （或 179/255）将这个数值直接当作 sRGB 解码，自然就灰了。