文章详情 您在阅读帖子内容并对帖子进行投票之后,可发表回复。

实测并解读哔哩哔哩的HDR视频格式及回顾HDR视频技术发展历史

分享到: 分享到QQ  分享到Twitter
作者:kideny    访问次数:98    投票总数:0   
创建时间:2021-02-13 04:35:24   

从2021年2月7号开始,在B站上传各种有关Xbox的游戏视频。早就听说B站开始支持HDR了,我也按耐不住上传了几个Xbox的HDR游戏视频。实机测试出来的结果,比较出乎意料之外。本文为技术研究贴,如果是错误,请一定联系指正。

 

HDR视频上传到B站以后被转码的格式

 

用PotPlayer播放器查看上传到B站以后被转码的视频,如上图所示,这个格式有点奇葩。HDR format 那一栏显示信息为:SMPTE ST 2086,HDR10 compatible。

 

首先要强调的一点是:B站的这个HDR视频格式,不是我们常见的HDR10格式

 

从图上我们可以很清晰的看到,这个格式并不是我们熟知的HDR10格式,它只是一种所谓兼容HDR10的HDR格式。它采用了SMPTE ST 2086,并没有显示SMPTE ST 2084的有关信息。

它没有采用PQ电光转换函数保留原HDR的亮度信息,使用了ST2086保留了原HDR视频的丰富色彩信息,同时提供了HDR10的兼容性。如果要解释B站的这个格式是什么东西,首先先来看看维基百科的解释,然后再要回顾HDR视频技术的历史。

 

维基百科对于AHDR格式的解释英文版

 

Technicolor Advanced HDR

A HDR format which aims to be backwards compatible with SDR.As of 19 December 2020 there is no content in this format.

SL-HDR1 (Single-Layer HDR system Part 1) is a HDR standard that was jointly developed by STMicroelectronicsPhilips International B.V., and Technicolor R&D France. It was standardised as ETSI TS 103 433 in August 2016.SL-HDR1 provides direct backwards compatibility by using static (SMPTE ST 2086) and dynamic metadata (using SMPTE ST 2094-20 Philips and 2094-30 Technicolor formats) to reconstruct a HDR signal from a SDR video stream that can be delivered using SDR distribution networks and services already in place. SL-HDR1 allows for HDR rendering on HDR devices and SDR rendering on SDR devices using a single layer video stream. The HDR reconstruction metadata can be added either to HEVC or AVC using a supplemental enhancement information (SEI) message.

 

维基百科对于AHDR格式的解释中文版

 

彩色高级HDR

一种旨在与SDR向后兼容的HDR格式。截至2020年12月19日,没有此格式的内容。

SL-HDR1单层HDR系统第1部分)是由STMicroelectronicsPhilips International BVTechnicolor R&D France联合开发的HDR标准。它在2016年8月被标准化为ETSI TS103433 。 SL-HDR1通过使用静态(SMPTE ST 2086)和动态元数据(使用SMPTE ST 2094-20 Philips和2094-30 Technicolor格式)提供直接向后兼容性。 )从SDR视频流中重建HDR信号,可以使用已经存在的SDR分发网络和服务来传递该HDR信号。SL-HDR1允许使用单层视频流在HDR设备上进行HDR渲染,并在SDR设备上进行SDR渲染。可以使用补充增强信息(SEI)消息将HDR重建元数据添加到HEVCAVC

 

HDR视频格式技术发展的历史以及名词解释

 

2014年:美国杜比公司首先向IEEE提交了SMPTE ST 2084标准,这个标准定义了杜比公司专门为HDR技术开发的至关重要对行业影响深远的PQ电光转换函数,其允许的亮度级别高达10,000cd / m 2。说简单一点,这个PQ电光转换函数,就是把亮度这个光信息转化到计算机HDR视频里的亮度信息。维基百科的专业解释是,电光传递函数EOTF)是传递函数具有图片或视频信号作为输入并将其转换成显示器的线性光输出,这是在显示设备中完成的。杜比公司提交的ST2084标准,直接导致了后世各种HDR视频格式的诞生,可以说杜比公司就是HDR视频的始祖。当然,我们也不能忘记在1997年,就提交HDR论文的大学教授们。

IEEE官方网站的ST 2084链接:https://ieeexplore.ieee.org/document/7291452。

IEEE官方网站对ST 2084的描述是:该标准规定了EOTF,该EOTF表征了主要用于掌握非广播内容的高动态范围参考显示器。该标准还规定了从EOTF派生的Inverse-EOTF。

 

2014年:IEEE还发布了SMPTE ST 2086标准,这个标准定义了HDR视频的静态元数据,目前并没有查到ST 2086的提交者是谁。

IEEE官方网站的ST 2086链接:https://ieeexplore.ieee.org/document/7291707

IEEE官方网站对ST 2086的描述是:该标准指定了元数据项,以指定用于掌握视频内容的显示器的颜色量(原色,白点和亮度范围)。元数据被指定为一组独立于任何特定数字表示形式的值。—本标准适用于三色附加显示系统,例如RGB显示器。—本标准未规定捕获元数据参数的度量方法和过程以及对母版制作环境的任何描述。此外,该标准未完全指定在色量不同于母版显示色量的显示器上保留创意意图所需的所有信息。例如,该标准未指定原版显示器的电光传递函数(EOTF),因为它不影响色度。—该标准仅定义了原版显示色彩量元数据项。允许存储,包装,传输和最终使用此元数据的系统特定解决方案,但是这些解决方案的规范不在本标准范围之内。

 

ST 2086标准定义的静态元数据包括以下内容

对于色彩量有限的消费者显示器(即不提供标准所要求的峰值亮度/对比度和色域),SMPTE定义了元数据,用于描述场景显示在母带显示器上。SMPTE ST 2086“掌握支持高亮度和宽色域图像的显示色量元数据”描述了静态数据,例如MaxFALL(最大帧平均亮度)和MaxCLL(最大内容亮度)。

与杜比公司提交的ST 2084有明显不同,ST 2086使用了平均亮度以及最大亮度这样的固定值。

 

2015年:美国消费者技术协会于2015年8月27号发布了HDR10 Media Profile(通常称为HDR10),并使用了广色域Rec.2020颜色空间,10位的位深度以及SMPTE ST 2084(PQ)传递函数–后来的组合也在ITU-R BT.2100中进行了标准化。

它还使用SMPTE ST 2086“母版显示色彩量”静态元数据发送母版显示的色彩校准数据,例如MaxFALL(最大帧平均光度)和MaxCLL(最大内容光度)静态值,这些值被编码为SEI消息,视频流。HDR10是受许多公司支持的开放标准,其中包括显示器和电视制造商,例如Dell,LG,三星,Sharp,VU,Sony和Vizio 以及Sony Interactive Entertainment,Microsoft和Apple分别在其PlayStation 4,Xbox One 视频游戏机和Apple TV平台上支持HDR10 。这是HDR格式中使用最广泛的一种。

HDR10基于静态HDR。在静态HDR中,将“动态范围”的元数据提供给显示器,并且该设置对于整个视频/电影保持不变。HDR10具有用于整个视频/内容的诸如MaxFALL和MaxCLL之类的单个元数据。这意味着视频无法针对特定场景进行特定设置。

需要注意的是:HDR10格式,同时使用了ST 2084和ST 2086,既有PQ光电传递函数又有静态元数据。

 

2015年:BBC于2015年5月15日宣布,他们已开始与NHK合作制定一项HDR联合提案,该提案将提交给国际电信联盟(ITU)。2015年6月9日,针对高效视频编码(HEVC)的JCT-VC提议了免版权税的HLG,并将其添加到2015年6月的屏幕内容编码扩展草案中。

当年晚些时候,索尼在SMPTE 2015会议上将HLG视频显示在经过修改的HDR显示器上。 Colorfront宣布其Transkoder 2016软件将支持使用HLG的HDR输出。LG宣布其2015年的4K OLED电视将支持HLG和Perceptual Quantizer(PQ)的HDR 。Blackmagic Design发布了DaVinci Resolve的更新,其中增加了对HLG的支持。

天空PerfecTV!宣布将使用HLG将4K UHDTV HDR节目传输给日本的卫星用户。Harmonic Inc.和NASA宣布了Atlas V发射的HDR捕获,第二天使用HLG在NASA电视上播放了该发射。

HLG的HDR格式,没有使用杜比公司提交的PQ光电转换函数,而是使用一种名为HLG的传递函数。

 

2016年:杜比公司最先向IEEE提交了,ST 2094-10标准,这也是未来杜比视界HDR格式的核心标准。

IEEE官方网站的ST 2094-10链接:https://ieeexplore.ieee.org/document/7513370

IEEE官方网站对ST 2094-10的描述是:该标准为应用程序1指定了与内容有关的颜色量转换元数据项,应用程序1是由核心组件文档SMPTE ST 2094-1定义的广义颜色量转换的专用模型。此色量转换基于参数定义的色调映射曲线,其形状既由图像基本特征(从输入图像基本通过算法计算)确定,也由手动设置的调整确定。支持该应用程序的元数据集是母版制作过程的一部分。调整参数决定为创造性调整。

 

2016年:飞利浦公司向IEEE提交了,ST 2094-20标准。

IEEE官方网站的ST 2094-20链接:https://ieeexplore.ieee.org/document/7523881

IEEE官方网站对ST 2094-20的描述是:该标准为应用程序2指定了与内容有关的色量转换元数据集,这是核心组件文档SMPTE ST 2094-1定义的色量转换的专用模型。色彩体积变换基于色调映射曲线和亮度依赖的饱和增益曲线,该色调映射曲线在感知均匀域中对图像数据进行操作。色调映射曲线和饱和增益曲线均由一组参数完全表征。

 

2016年:汤姆森在美国的子公司Technicolor USA向IEEE提交了ST 2094-30标准,这个标准定义了HDR视频的动态元数据。

IEEE官方网站的ST 2094-30链接:https://ieeexplore.ieee.org/document/7523878

IEEE官方网站对ST 2094-30的描述是:该标准为色量转换应用程序#3(基于参考的色量重映射)指定了动态元数据。它是SMPTE ST 2094-1“用于色量转换的动态元数据–核心组件”标准中定义的广义色量转换模型的依赖于内容的转换元数据条目和处理模块的专业化。

 

2016年:三星也提交了自己定义的HDR动态元数据标准,IEEE编号为,ST 2094-40。

三星和亚马逊在HDR10的基础上,添加了三星自己的HDR元数据标准ST 2094-40,就搞了一个HDR10+标准,HDR10+格式就是这么来的。

 

2016年:随着标准的完善,意法半导体,飞利浦公司和汤姆森在美国的子公司Technicolor USA,三家公司在当年联合搞了一个新的HDR的标准,就是所谓的AHDR标准。

这个AHDR标准,有什么意义呢?它不是杜比公司的技术,你不用操心像杜比公司付钱。但是它实现了一种兼容SDR显示设备的动态HDR视频技术,最为神奇的是对于互联网公司来说,你不用改造当前的SDR视频处理流程,直接就能上SDR显示器兼容的HDR格式了。。对于想省带宽费和储存费的在线视频服务商来说,AHDR格式真的太好了。

 

B站的HDR格式就是HLG,绝不是HDR10

 

说句实话,我在查阅了大量的资料后,有一点凌乱。首先我们可以排除一点,B站的HDR格式,肯定不是杜比技术的HDR10也不是杜比视界,也不是HDR10+。网上一堆文章说B站的HDR格式是HDR10,这绝对是错误的。

B站的HDR格式兼容HDR10,并不等于HDR格式就是HDR10。剩下的HDR格式,只有HLG和AHDR了。ffmpeg目前支持两种格式,一个是基于ST 2084的HDR10,另外一个没有ST 2084的HLG。代码分别为:

 

{"smpte2084",    "SMPTE 2084",       0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_TRC_SMPTE2084 },    INT_MIN, INT_MAX, V|E|D, "color_trc_type"},

{"arib-std-b67", "ARIB STD-B67",     0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_TRC_ARIB_STD_B67 }, INT_MIN, INT_MAX, V|E|D, "color_trc_type"},

 

ffmpeg的傻逼网站 https://ffmpeg.org/,又查不到支持AHDR的内容。所以,B站的HDR格式应该为像SDR显示器提供了良好兼容性的HLG格式。

但是,这里又有一个BUG。那就是HLG格式,不需要HDR的静态元数据,B站的HDR格式为啥包括了ST 2086的数据。而AHDR格式,则包括了ST 2086,而且似乎也能提供对于SDR显示器的兼容性。

 

在ffmpeg的官方网站查不到任何信息的我依然不死心,所以我去github查找了ffmpeg的官方源代码。我没有在源代码里找到任何跟AHDR有关的代码,然后我搜索HLG和ST 2086倒是找到一堆。

原因找到了,在2016年提交的一个PR中,https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/d91718107c33960ad295950d7419e6dba292d723

虽然HLG不需要静态元数据,但是为了添加对HEVC格式的支持,ffmpeg在压制HEVE格式的HDR视频时,还是添加了符合ST 2086标准静态元数据。这个事情跟ST 2084和HLG,几乎就没关系。。。

 

B站使用的HLG格式的优缺点

 

这种格式的一大优点就是兼容SDR显示设备,不需要改造现有的SDR视频工作流程,节省带宽和磁盘。

缺点也很明显,HLG不像HDR10那样得到几乎每一台显示设备的支持,对于HLG不支持的显示设备,就无法展示HDR的内容。你比如说:安卓手机自枭龙845,才支持HLG。

买电视机和显示器,也需要看一下支持不支持HLG,千万别买错了。

 

HEVC支持HLG,但是特别TMD的坑爹

 

HEVC,也就是大家熟知的H.265视频编码格式。虽然HEVC支持HLG,但是由于HEVC格式比较早定义,而HDR的各种视频格式出现的比较晚,所以HEVC对于HLG格式的支持很垃圾。

维基百科对此的描述是:HEVC支持HLG ,其公式在数学上等效于ARIB STD-B67,但标称范围为0到1,而不是0到12。

不知道B站包括国内一些其他宣部支持HDR,但是采用了HLG视频格式,HDR视频画面灰暗,亮度不够的视频网站,是不是与此有关。由于HEVC对于HLG的支持不好,造成的画质下降。

 

现在上传HDR视频到B站是否有意义?

 

我们搞清楚了B站的HDR视频格式为HLG,很多人心里都会想上传HDR视频到B站有意义嘛,我认为其实非常有意义。主要有以下几个方面:

第一:支持HLG HDR格式的显示设备越来越多,电视机好像支持的比较多,安卓手机自枭龙845开始支持,显示器就需要多努力了。

第二:HDR视频转化为SDR视频后,依然能够提升普通SDR视频的亮度和色彩。关于这一点可以查看我录制的HDR视频的4K版本在B站的画质,https://space.bilibili.com/439348049/video

所以,我建议大家赶快把HDR视频录起来吧,让你的视频在B站画质更好,赢得更多观众。

 

在B站看HDR视频的小技巧

 

虽然B站的HDR视频,受到一些国外标准的限制,但是PC观众在看B站HDR视频的时候,有一个小技巧可以提升HDR视频的光看体验。

那就是手动提升显示设备的亮度,目前已知电脑显示器是可以通过驱动调整亮度,使得B站的HDR视频画质提升的。手机的亮度,也可以往上调。

B站的HDR格式的缺点是亮度不足,通过物理提升显示设备的亮度,就可以获得很好的效果。

 

我的总结

 

谷歌貌似是同时支持HDR10和HLG的,财大气粗牛逼,小B站还需要继续加油。哔哩哔哩的HDR,这已经是国内做的最好的了。爱奇艺和腾讯都不行,优酷现在也拉跨了,全国UP主就指望B站了。

帖子投票

名称 是否有价值