之前已经介绍了基于HDR10和HLG的HDR视频的相关参数,但是由于本身这类视频在市场上属于少数,或者由于设备的不支持都没有正确的观看,更不要提杜比视界这种更高端的玩家了。不过随着iPhone12的推出,由于其支持HLG格式的杜比视界HDR视频拍摄,杜比视界的片源大大增加。这就有点蒙圈了,不是说杜比视界是在PQ转换曲线的基础上使用动态元数据么,HLG是没有元数据的HDR。接下来主要是围绕这些疑问来一步步了解杜比视界(DOLBY VISION, DV)的技术标准。
首先可以通过这里来了解一下杜比视界的具体流程和概念。
单、双层杜比视界
DV主要包括三个部分,BL、EL和RPU三个部分。
其中,BL是基础层,普通的播放器只能读到这一层,读不到其他层,因此普通的设备无法激活其真正的视觉效果。通常的格式为:YUV420 10BIT HDR10。以4K视频为例,使用mediainfo读取杜比视界的片源后,BL相关信息为:
Video #1ID : 1Format: HEVCFormat/Info: High Efficiency Video CodingFormat profile : Main 10@L5.1@HighHDR format : SMPTE ST 2086, HDR10 compatibleCodec ID : hev1Codec ID/Info : High Efficiency Video CodingDuration : 30 s 83 msBit rate : 29.0 Mb/sWidth: 3 840 pixelsHeight: 2 160 pixelsDisplay aspect ratio : 16:9Frame rate mode: ConstantFrame rate : 24.000 FPSColor space: YUVChroma subsampling : 4:2:0 (Type 2)Bit depth : 10 bitsBits/(Pixel*Frame) : 0.146Stream size: 104 MiB (65%)Default : NoEncoded date : UTC -01-20 03:13:20Tagged date: UTC -01-20 03:13:20Color range: LimitedColor primaries: BT.Transfer characteristics : PQMatrix coefficients : BT. non-constantMastering display color primaries : BT.Mastering display luminance : min: 0.0001 cd/m2, max: 1000 cd/m2Maximum Content Light Level : 891 cd/m2Maximum Frame-Average Light Level : 428 cd/m2Codec configuration box : hvcC
RPU:杜比视界中必须要有的一个部分,通常里面包含着各类的“指导”数据,用于明确告知电视,如何转换颜色空间,HDR的动态映射(tone mapping)等等。用比喻的说法PRU是一个视频处理条例,明确写着BL层的视频应该如何渲染和显示,这就是我们之前提到的动态元数据。
EL:简单的理解这是一个扩展层。一个标准的杜比视界,会把YUV420 10BIT 的BL层视频,合成YUV422 12BIT 视频。这个EL层就是扩展数据,用于扩展BL的视频有效信息。 让最终成品有更多的色阶,更多的颜色。该视频轨道的长宽为1920X1080
ID : 2Format: HEVCFormat/Info: High Efficiency Video CodingFormat profile : Main 10@L5.1@HighHDR format : Dolby Vision, Version 1.0, dvhe.07.06, EL+RPU / SMPTE ST 2086, HDR10 compatibleCodec ID : dvheCodec ID/Info : High Efficiency Video Coding with Dolby VisionDuration : 30 s 708 msBit rate : 15.6 Mb/sWidth: 1 920 pixelsHeight: 1 080 pixelsDisplay aspect ratio : 16:9Frame rate mode: ConstantFrame rate : 24.000 FPSColor space: YUVChroma subsampling : 4:2:0 (Type 2)Bit depth : 10 bitsBits/(Pixel*Frame) : 0.313Stream size: 56.9 MiB (35%)Default : NoEncoded date : UTC -01-20 03:13:20Tagged date: UTC -01-20 03:13:20Color range: LimitedColor primaries: BT.Transfer characteristics : PQMatrix coefficients : BT. non-constantMastering display color primaries : Display P3Mastering display luminance : min: 0.0001 cd/m2, max: 1000 cd/m2Codec configuration box : hvcC+dvcC
单层杜比视界:就是 BL+RPU的组合,也称为 MEL - 迷你杜比视界层。这种杜比视界只有“指导”数据,大部分的内容是HDR的动态映射(tone mapping)的metadata。杜比公司通常用profile5或者profile8来封装进mp4/ts这些文件,通常用在网络流媒体,电视,影音盒子。
双层杜比视界:就是完整的BL+EL+RPU的组合,也称为 FEL - 完整杜比视界层。它是商业上唯一使用的12bit 视频源商品。杜比公司通常用profile7来封装进mp4/ts这些文件。profile7 通常授权给了光碟与碟机,要播放profile7的光碟,就需要有profile7授权的碟机才能播放。引用这里,部分文字添加了自己的理解。关于配置文件的选项,可以参考Dolby Vision levels。一个简单的表格为:
拿到一个双层杜比视界的片源,可以了解到,里面是有两个视频轨道,也就是上面介绍的BL和EL。使用VLC可以选择单独的播放这两个轨道。没有办法播放合成以后的(没有拿到授权)。
单层:
单层杜比视界可以说是杜比公司为了应对竞争对手或者说是降低技术标准来推广产品而推出的一种减配版的杜比视界。通过这里的介绍,由于双层的杜比视界太依赖与人工后期以及为了对抗三星的HDR10+,推出的迷你杜比视界层MEL,就是去除了色深扩展数据,因此只有10bit。
杜比视界和HDR10的对比可以通过该文件进行对比。
有该图发现,杜比世界是可以使用CtCp或ITP格式的,是用于高动态范围(HDR)和宽色域(WCG)图像的视频和数字摄影系统。
单层杜比视界和双层杜比视界的区别:杜比视界层通常包含里两个XML表格,一个是明暗度修改文件,用于纪录亮度和灰度修改信息,一个是色深拓展文件,用于把10bit色彩拓展成对应的12bit色彩(YUV420表示的话,只有色度,所以4k视频,EL部分是1080p的?)。流媒体文件,由于授权限制,杜比视界层里只包含明暗度拓展文件,色深拓展文件是没有的。用通俗的话来说,就是对于HDR10的版本,流媒体的杜比视界版本只拓展了明暗度,没有拓展色彩位数(有的流媒体杜比视界也对色彩进行了修改,但本质上色彩还是10bit的,并没有拓展到12bit)。由于杜比视界需要超高的亮度支持,目前峰值亮度超过1000尼特的电视不到20%,超过2000尼特的电视只有个位数,所以大部分电视,观看流媒体杜比视界时会产生“暗的地方暗下去了,亮的地方没亮上来”的效果,导致画面偏暗,整体观感甚至不如HDR10版本。
另外,通过该论坛中杜比视界电影制作的流程:电影的制作流程一般是:拍摄→剪辑→特效录入→画面调校→配音合成→制作母盘→制作原始拷贝和原始光碟→放映或发行光碟。制作杜比视界属于画面调校的一部分。举个栗子,一部两小时的电影,时长7200秒,按照常规一秒钟30帧画面(图片)来计算,大约一共有22万张图片。制作杜比视界就是把这22万张图片,逐张进行分析,以像素为单位,把明暗度修改信息和色彩拓展信息储存在XML文件中,再封装成一个独立的文件,通常称之为叫“杜比视界层”。
留存疑问:
双层杜比视界:应该是上面介绍的添加EL层,但是内部具体工作流程是什么样?即是不是将主画面层和杜比视界层进行叠加用来显示,这里还没有碰到专业人士解答。
单层杜比世界:同样对于单层的。这个RPU层(元数据),的工作原理是怎么样的?按照之前的理解,元数据相当与一种色调映射算法。按照上面单双层对比区别,流媒体文件都是单层的,他只记录的明暗和灰度修改信息,这里只能是PRU来记录。这个PRU文件是写在哪里的?是授权的播放器,还是流媒体文件?这是一个疑问。
与此对应的静态元数据的HDR10的作用在什么时候体现?目前了解到的是,只有微软的默认播放器对元数据进行了支持,但我也没有验证。因此,其他设备观看,估计HDR10就直接变成了没有元数据的PQ10了吧
由于杜比需要授权以及测试在不同的设备上显示效果的差异需要较为昂贵的代价,也只能通过官方的一些文档说明来了解了.内容分发,制作
元数据
杜比视界的元数据可以作为专用网络抽象层 (NAL) 单元、标准化和/或专用 SEI消息或适用于特定视频编解码器的基本流的其他传输方法来承载。
iPhone手机的杜比视界
iPhone12可以拍杜比视界的视频,导出拍摄的视频并使用mediainfo查看其HDR format以及其他和HDR相关的属性:
Dolby Vision, Version 1.0, dvhe.08.04, BL+RPUColor primaries : BT.Transfer characteristics: HLGMatrix coefficients : BT. non-constantCodec configuration box : hvcC+dvvC
在‘dvhe.08.04’字符串中,‘dvhe’指杜比视界高性能压缩视频(Dolby Vision High Efficiency)。根据白皮书《Dolby Vision Profiles and Levels Version 1.3.3》的信息,‘08’指 profile 配置信息标识8,‘04’指 分辨率1920 x 1080 @ 30fps。
Profile 8 的编码为‘10-bit HEVC’,信号兼容性为‘1, 2, or 4’,既 HDR、SDR 及一种‘在特定的广播和移动设备’上工作和‘为了某些特定设备优化’的标准。一般为1的是HDR10,2为SDR,4为HLG曲线的HDR(引用自杜比在 年 9 月 16 日发布的公开资料。)
‘BL+RPU’指‘base layer + reference picture unit’。我们猜测, iPhone 拍摄的 HDR 视频可能在 HLG 曲线之外,为回放设备提供了正确解析 SDR 和 HDR 色彩的参考信息(RPU),将 HLG 曲线记录的色彩进行再次解析——既是 Jon McCormack 所说的‘两套元数据’,实际上在 iPhone 12 录制的视频里,存在三套元数据。我们暂时无法知晓各自对应的用途。
HLG的转换曲线。这和过去处理的‘杜比视界’素材——它们都采用了记录绝对亮度值的 PQ 曲线——好像不太一样。这是因为苹果公司和杜比公司进行和合作,制定了一个全新的8.4 版本的标准。HLG 曲线是为了更好的兼容性。杜比视界常见的流媒体版本用的是Profile5,ICTCP色彩编码+PQ曲线,然而大多数系统不能识别ICTCP的色彩编码,所以苹果用了Ycbcr,和现在大多数视频一样;而且其他杜比视界的版本都基于PQ(感知量化曲线、转换函数)。尝试用目前已有的DV转制工具都无法正确识别,强制转为HLG会有很多无法识别的数据丢弃,这事看来只能等苹果自己出手了。
ffmpeg编码
如果单纯的使用和普通视频转码相似的转码命令,这将导致这些动态元数据的丢失,找到了相关文章,记录一下