HDR定义
HDR 就是「高动态范围」的缩写,英文全称是「High-dynamic-range」,它属于一种显示技术,对应的显示技术就是 SDR(标准动态范围 Standard-dynamic-range),所谓的动态范围,在图像领域就是指亮度的明暗差别。动态范围越大,图像上同时记录的亮部细节和暗部细节就越丰富。HDR 可以表达出比 SDR 动态范围更宽的亮度。
HDR种类
HDR10
最基础的标准莫过于 HDR10 了,这是所有厂商 HDR 的基础,它是由消费者技术协会2015年8月27日宣布的开放标准,不需要支付任何版权费。这个标准要求必须使用宽色域 Rec.2020 色彩空间,10bit 色深,以及 SMPTE ST 2084(PQ)图像传输功能,但它的数据元全部是静态的,简单来说就是每一帧所输出的 HDR 图像效果是一样的。目前所有支持 4K HDR 的设备都必须达到这个标准,例如 LG、三星、夏普、索尼和 Vizio 等电视制造商,微软的 Xbox One 系列游戏主机、索尼的 PlayStation 4 游戏主机以及苹果的 Apple TV 4K 等。当然,4K UHD 蓝光、4K UHD 流媒体都必须支持这个最基础的标准。
杜比视界(Dolby Vision) HDR
杜比视界 HDR 是由杜比实验室提出并定制的 HDR 当前最高级标准,与 HDR10 不同的是,它不是开放的标准,需要使用它必须交付一定的版权费用(据悉是每年每台设备3美元)。杜比视界要求必须使用宽色域 Rec.2020 色彩空间, SMPTE ST 2084(PQ)图像传输功能,与 HDR10 不同的是,它采用 12bit 色深,并且支持动态数据元结构,杜比视界允许 10000 尼特的最大亮度(目前在设备中最高只达到 4000 尼特)。下载4K HDR10 的演示视频和4K HDR10的电影在Hao4K(https://www.hao4k.com/)网站中都有,另外买野货网站种也有速度与激情4K HDR10资源(http://www.maiyehuo.com)
当前支持杜比视界 HDR 的电视包括 LG、索尼、TCL、Visio 等厂商的部分产品,支持输出杜比视界 HDR 显示器以及投影仪暂时还没出现。4K UHD 蓝光机中,支持杜比视界 HDR 的有 LG、索尼、OPPO、飞利浦、松下等厂商的部分产品。
HDR10+
HDR10+,也称为 HDR10 Plus,于2017年4月20日由三星和亚马逊 Video 共同公布,由于杜比视界 HDR 极高的版权费用,三星等厂商不愿意支付,所以与松下、亚马逊和20世纪福斯创建了 HDR10 + 联盟,以推广HDR10 +标准。HDR10+ 通过添加动态元数据来更新 HDR10,动态元数据可用于在逐个场景或逐帧的基础上更精确地调整 HDR 的亮度级别,和杜比视界 HDR 类似,不过色深依旧是 10bit。
HDR10+ 视频于2017年12月13日开始由亚马逊视频提供,2018年1月5日,华纳兄弟宣布支持 HDR10 + 标准并加入 HDR10+ 联盟。2018年1月6日,松下宣布推出支持 HDR10 + 的 4K UHD 蓝光播放器。
HDR10+是一个开源标准,厂商仍然有较高的定制自由,更重要的是不需要支付授权费
HLG(Hybrid Log-Gamma)
HLG 是由 BBC 和 NHK 联合开发的 HDR 标准,它与标准动态范围(SDR)显示兼容,但它需要 10bit 色深。HLG 定义了非线性电光传递函数(EOTF),其中信号值的下半部分使用伽马曲线,信号值的上半部分使用对数曲线。HLG 标准免版税,与 SDR 显示兼容。HLG 由 HDMI 2.0b、HEVC、VP9 和 H.264 / MPEG-4 AVC 提供支持。HLG 主要应用于广播以及部分流媒体,如 BBC iPlayer、DirecTV、Freeview Play 和 YouTube。
HDR Pro
凡是有用到这个 LOGO 的,就是 LG 给出的对于 HDR10 的推广 LOGO 来的,早在2016年的时候,LG 在推广自己的产品比如 LG 43UH6500 这类早期 4K HDR 电视的时候,都会带上这个标志,但实际上它本质还是 HDR10。当然,现在新款的 HDR 电视已经不会再出现这个 LOGO 了。
4K HDR
这个 LOGO 是索尼的,泛指它们家的 4K HDR 产品线,凡是标注了这个 LOGO 的,全线产品都支持 HDR10 ,或者部分产品支持杜比视界 HDR,例如 Bravia A1E 和 A8F。
DisplayHDR
2017年,VESA (美国视讯电子标准协会)推出 DisplayPort 1.4 规范,导入最新的 Alt Mode USB-C 与 HBR3 的规范,让显示器能透过 USB-C 的接口来传输高分辨率的视频画面,以利新一代手机娱乐、专业视讯与电竞应用。
2018年,VESA 再度推出 DisplayPort 1.4a 版本,除针对手机平台推出 VDC-M 压缩标准、DP8K 信号线认证标准之外,其中引人注目的,就是针对显示器产业,制定出 DisplayHDR 的新标准,该标准明确制定出 HDR 400、600、1000 等入门、中阶、高阶的 HDR 显示器的效能分级标准,搭配 VESA 协会将于近期展开各种符合 HDR 的产品认证计划,将加速产业推出相关的认证产品。
由于 UHD 联盟推出的 UltraHD Premium 标准需要缴纳很高的权利金,在显示器领域,甚至是笔记本电脑领域里,还是比较困难的。对此,VESA 推出的 DisplayHDR 标准很好的解决了这个问题。这次 VESA 针对 HDR 的统一认证标准,推出了 HDR400、HDR600 与 HDR1000,就是要让电脑产业也有相对应的标准可供遵循。除了原先的最高规 HDR1000 效能标准(相当于UHD Premium)之外,还制定出 HDR600 与 HDR400 这两种中端与入门效能标准,只要符合该标准的产品,就可打上认证标章,会员是不需要缴交权利金的
HDR600的标准:
-
Peak luminance of 600 cd/m– double that of typical displays
- Full-screen flash requirement renders realistic effects in gaming and movies
- Real-time contrast ratios with local dimming – yields impressive highlights and deep blacks
- Visible increase in color gamut compared to already improved DisplayHDR 400
- Requires 10-bit image processing
日常生活的hdr坑
电视支持hdr的意思是芯片支持解码hdr10,实际的显示效果根本达不到标准。
显示器比较多支持的是DisplayHDR的标准,大部分都是HDR 400,亮度400。
最近几年,小米,三星,一加等厂商手机都开始追求 HDR10+这种看上去高大上的认证了。
ffmpeg中的HDR
hdr_dynamic_metadata
2018-12-21 - 2744d6b364 - lavu 56.25.100 - hdr_dynamic_metadata.h
Add AV_FRAME_DATA_DYNAMIC_HDR_PLUS enum value, av_dynamic_hdr_plus_alloc(),
av_dynamic_hdr_plus_create_side_data() functions, and related structs.
HDR Dynamic Metadata SMPTE2094-40 (HDR10+)
FFmpeg 4.2的版本中添加了HDR PLUS的数据结构,但是并没有搜索到那里有使用。
ffmpeg支持的HDR
{"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"},
SMPTE:电影电视工程师协会
2084――母带制作参考显示器高动态范围电光传递函数
2084代表PQ曲线(电光转换函数),即颜色映射函数,杜比视界和HDR10、HDR10+都采用2084曲线,如果没有元数据2086,那就是所谓的PQ10格式。
ST 2086――支持高亮度和广色域图像的母带制作显示器彩色量,2086代表HDR10,即静态MetaDta,包括最大最小亮度、三基色坐标、最大内容亮度MaxCLL、最大平均内容亮度MaxFALL。
这两个对于HDR10+来说都是缺一不可的。
HLG就是arib-std-b67
google官网有一篇文件vp9的hdr编码介绍的比较详细
https://developers.google.com...
目前的版本看来ffmpeg只支持hdr10和HLG,因为增加了hdr_dynamic_metadata,应该会很快支持hdr10 +。
看样子最近应该会解决官网的bug 7037
https://trac.ffmpeg.org/ticke...
ffmpeg destroys HDR metadata when encoding