HDR视频技术之十:MPEG 及 VCEG 的 HDR 编码优化

与传统标准动态范围( SDR)视频相比,高动态范围( HDR)视频由于比特深度的增加提供了更加丰富的亮区细节和暗区细节。最新的显示技术通过清晰地再现 HDR 视频内容使得为用户提供身临其境的观看体验成为可能。面对目前日益增长的 HDR 视频消费需求,研究现有的压缩工具或引入新的技术来高效压缩 HDR 视频变得十分迫切。本文将介绍有关MPEG 及 VCEG 针对 HDR 视频压缩的一些工作。

1 背景

传统电视和 显示器 上显示的 视频信 号为标准 动态范 围视频, 设计的 亮度 范围为0.01cd/m2 到 100cd/m2,对比度为 10000: 1。 而在现实世界中,亮度范围要大得多, 例如阳光照射的云层具有 100000 cd/m2 的亮度,而夜空的亮度仅为 0.0001 cd/m2。 近年来,显示器的亮度峰值持续在增加,市面上已经出现了亮度峰值可以达到 1000cd/m2 的电视机产品,而一些专业的监视器则可以达到 10000cd/m2,这些显示器大多基于 LCD 技术以及 LED 背光,使得亮度峰值能够达到较高的水平。 OLED 显示器也可以达到一个很高的亮度级别,但峰值略低于 LCD & LED 技术,不过 OLED 的优点是其暗度可以达到 0.0005cd/m2。

超高清电视( UHDTV)的关键目标之一是增强用户观看视频时的体验, 也就是所谓的“沉浸感”和“真实感”。仅仅依靠提高分辨率不足以完全达到这一目的,也无法创建、捕捉和显示比今天的电视机具有更高峰值亮度和更大对比度的视频内容。高动态范围( HDR)视频的目的是提高每个像素还原视频真实场景内容的能力,特别是,最亮像素的亮度增加,同时最暗像素可以变得更暗。另外, 呈现更强的真实感需要提供更加丰富的色彩, 因此必须使用具有较大色域范围的颜色空间(宽色域 WCG) 来表示更加饱满的色彩。因此, 高动态范围( HDR)与宽色域( WCG)相结合,可以使视频看起来更加清晰、逼真,与传统的标准动态范围视频相比, 能够有效改善用户的视频观看体验。

与 SDR 视频相比,可以从以下几个方面了解 HDR 视频的效果:

  1. 即使分辨率没有改变,图像也可能看起来更加清晰。人眼将清晰度视为分辨率和对比度的组合。因此,当对比度增加时, 人眼感知的清晰度也会增加。因此, HD 和 4K 视频都可以通过高动态范围( HDR) 增强视觉效果。
  2. 明亮的物体看起来会更加逼真。许多物体包含明亮区域,即使很小, 也可能会影响观看效果,因为它们比周围环境更亮。 HDR 视频会以较高的保真度地表现明亮区域的细节,增加水面、玻璃表面、 金属表面等物体的真实感。
  3. 阴影区域中的细节可能会增加。在 SDR 视频中, 较暗区域看起来是均匀和平坦的,而在 HDR 视频相同场景下可以清楚地看到阴影中的细节。
  4. HDR 和 WCG 的组合还会产生更加饱满的色彩。对于诸如天空之类的明亮物体, HDR和 WGC 允许出现明亮且同时饱满的颜色。

2 HDR 发展历程

2.1 ITU-R for SDR and HDR

在 ITU-R 的建议书中描述了用于表示 SDR 和 HDR 视频格式的基本技术规范。 其中 BT.709“ Parameter values for the HDTV standards for production and international programme exchange”包括了如何将 8 比特线性的 RGB 图像信号转换为非线性的 R’G’B’信号,这个转换通常称为光电转换函数( opto-electronic transfer function, OETF)。 BT.709 还包含了 CIE1931 色度坐标的定义, 以及从 R’G’B’向 Y’CbCr 颜色空间转换方法的介绍。实际上,相比于色度的变化,人眼对于亮度的变化更为敏感,因此通过这种转换之后就可以降低色度分量的空间采样率。但应该注意的是,亮度分量并不直接对应于实际的亮度信息,一部分亮度信息包含在色度分量中,这就会导致在对色度分量进行下采样时也会对亮度信息产生影响,这种现象称为色度泄漏( chroma leakage),这对 HDR 视频的影响会比 SDR 视频更严重,下文会讨论关于色度泄漏的解决方法。 BT.1886 “ Reference electro-optical transfer function for flat panel display used inHDTV studio production”中介绍了从非线性 R’G’B’信号向线性 RGB 信号转换的操作方法,该转换操作在视频内容显示前进行,称为电光转换函数( electro-optical transfer function, EOTF)。这里提出的电光转换方程 EOTF 与 BT.709 标准中的光电转换方程 OETF 并不是互逆的关系,此 EOTF 和逆 OETF 转换函数的差异可以用一个光电光学转换函数( opto-optical transferfunction)或系统参数 gamma 来表示,该 gamma 参数能够使得图像看起来更加自然真切。BT.2035 “ A reference viewing environment for evaluation of HDTV programme material orcompleted programmes”中给出了视频观看环境的参考设置,其中规定了 亮度范围为0.01cd/m2 到 100cd/m2。

BT.2020“ Parameter values for ultra-high definition television systems for production andinternational programme exchange”中引入了 4K( 3840x2160)分辨率和宽色域( WCG)的概念。宽色域意味着其基色范围相对于传统视频更广,因而可以显示出更加饱满的颜色,例如深蓝、品红、荧光绿等。但需要注意的是,没有 HDR 的 WCG 其效果是很有限的,同样地,不引入 WCG 的 HDR 视频也是没有太大意义的, 因此 HDR 和 WCG 可以很自然地结合起来用于改善每个像素点的重建效果,呈现出更为生动的视频内容。 此外, 如前文所述, HDR 和WCG 产生的效果几乎完全独立于空间分辨率,因此可以灵活应用在 4K 分辨率及 1080p 分辨率视频中。 与此同时, BT.2020 包括了与 BT.709 相同的非恒定亮度颜色空间转换,还包括可以直接应用在 RGB 信号上的恒定亮度转换。在恒定亮度下, OETF 在使用前要先进行颜色空间转换, 但这种方法没有非恒定亮度那样应用广泛。

BT.2100“ Image parameter values for high dynamic range television for use in production andinternational programme exchange” 中介绍了两种不同的 HDR 转换函数: HLG( Hybrid LogGamma)和 PQ( perceptual quantization)。 HLG 的光电转换函数 OETF 与 ARIB STD-B67 中的OETF 是相同的,并且对支持 WCG( BT.2020)的 SDR 显示器有一定的兼容性,但需要注意的是 HLG 本身不兼容只支持 BT.709 色域的显示器。 PQ 电光转换函数 EOTF 与 SMPTE ST.2084 中的 EOTF 相同,并具有与人类视觉系统中分布比较一致的亮度级。 SMPTE ST.2084 于 2013 年发布,近年来被广泛应用于工业界,并被多个不同的标准组织采纳。 MPEG 和 JCT-VC 相关的工作已经将 PQ 电光转换函数 EOTF 作为研究和测试的基准。此外, BT.2100 中的颜色基色与颜色空间转换和 BT.2020 中给出的一致。
在这里插入图片描述
图 10-1 PQ(左)和 HLG(右)转换曲线

2.2 MPEG 和 VCEG 关于 HDR 的工作

MPEG 在 2013 年开始研究 HDR 视频压缩时进行了多项探索性的研究测试, 主要思路是将 HDR 视频压缩和处理过程的各部分分开来研究, 例如在此期间研究了不同的电光转换函数,并对不同的颜色格式转换和采样方法进行了测试和评估,与此同时还研究了一些主观视频质量测试方法和客观视频质量评价指标。可以预计的是,传统的基于像素误差的评价指标如 PSNR 在高精度 HDR 视频的评价中无法提供太多有价值的参考信息。目前已提出了一些专门针对 HDR 视频的质量指标,例如 wPSNR、 tPSNR-Y、 deltaE100、 PSNR-L100 等,但仍然没有一个主客观评估结果较为一致的评价指标。

2015 年初, MPEG 决定发布针对 HDR 和 WCG 视频压缩技术标准的 CfE[1],目的是为了确定当前是否存在能够改善 HDR 视频压缩性能的新技术。 CfE 中给出了一个参考配置作为对比基准 Anchor 1.0,其中大部分技术方案与 HDR10( 在下一节介绍) 完全兼容。 Anchor 1.0 使用 PQ 电光转换函数、 Y’CbCr 颜色空间、 HEVC Main10 压缩配置,基于未修改的 HEVC 参考软件 HM 进行编码,并使用 HDR Tools 软件包[2]来实现必要的预处理和后处理转换步骤。 HDRTools 本身是开源免费的,其在 MPEG 和 VCEG 进行的多种评估测试中都有所应用。

CfE 提出后,收到了来自 Apple、 Arris、 BBC、 Dolby、 Ericsson、 FastVDO、 InterDigital、MovieLabs、 NGCodec、 Philips、 Qualcomm、 Technicolor、 University of Warwick/goHDR 等总共9 种不同的技术提案,所有提案的编码结果在两个独立的实验室分别进行了主观评测,得到的结果与 Anchor 1.0 进行了对比。主观评测结果显示,在很多序列上部分提案的结果相比Anchor 1.0 有明显的提升[3]。

与此同时, CfE 中的一些序列测试结果表明,可以通过 chroma QP offset [4](第 3 节介绍) 将少量比特从亮度分量转移到色度分量,从而可以减少色度失真。此外也发现在 Anchor1.0 中分配给图像暗区的比特过多, 而分配给亮区的比特太少[5],为此引入了亮度调整( LumaAdjustment,第 3 节介绍)方法。 最后综合多种新的改进技术形成了另一个基准, Anchor 3.2。相对于 Anchor 1.0, Anchor 3.2 在各个方面都有很大程度的改善。 与 Anchor 1.0 中的方法相比,同等视觉质量条件下 Anchor 3.2 可以实现大约平均 27%的比特率降低(使用 MOS BDRate 计算)。 不过应该注意的是, Anchor 3.2 中的改变都发生在 HEVC 编码端, 而在解码端没有作任何改变,也就是说 Anchor 3.2 与 HDR10 完全兼容。 Anchor 3.2 与 Anchor 1.0 的编码结果对比如图 2 所示。
在这里插入图片描述
图 10-2 Anchor 1.0(左)和 Anchor 3.2(右)在相同码率下的压缩效果

在 2016 年 2 月的 MPEG 会议上,对已有工作进行了分析后得出结论:暂时没有找到一套明确的技术方案能够依此建立针对 HDR 视频的新的 HEVC 规范,因此研究重点转向了技术报告。 MPEG 和 VCEG 随后的研究工作明确了与 HDR 视频转换和压缩相关的技术特性,并形成了一份记录这些特性的技术报告,用来指导 HDR 视频的处理过程,即对支持 PQ 转换函数、 4:2:0 Y’CbCr 并使用 HEVC Main10 Profile 的 HDR 编码方案, 也就是 Anchor 3.2 中所包含的编码 HDR 视频的方案提供技术参考。 该技术报告从 2015 年就开始着手准备了,第一个正式的版本在 2016 年 2 月发布,随后被确定为 MPEG-H 的一个新的部分,也就是 MPEG-H Part14。 该技术报告的第一版为“ Conversion and coding practices for HDR/WCG video” [6],后来标题变得更加具体, 即为 “ Conversion and Coding Practices for HDR/WCG Y’CbCr 4:2:0 Videowith PQ Transfer Characteristics” [7]。

这份技术报告所描述的 HDR 视频处理流程如图 3 所示,其中包括 BT.2020 中所规定的线性 RGB 图像信号向 10 比特、窄范围、 PQ 转换函数、 4:2:0 采样率、非恒定亮度 Y’CbCr 图像信号进行转换时所必需的预处理步骤,具体包括 EOTF 的应用、颜色空间转换、量化和色度下采样等转换操作。 相应地, 该报告还介绍了在 HDR 视频解码之后执行的后处理转换步骤,这些步骤用于将视频信号转换回线性的 RGB 表示,从而能够在显示器上显示。 此外, 中间编码部分的介绍并不是对视频编码的完整描述,只是突出说明了针对 HDR 视频压缩的两种有效的方法:基于平均亮度水平的 QP 自适应选择和基于内容色域的色度 QP 偏移,这两种方法将在本文第三部分详细介绍。
在这里插入图片描述
图 10-3 HDR 视频处理流程[7]

2.3 基于 HEVC 的 HDR 方案

HEVC 具有较高的压缩效率,支持 10 比特精度、 HDR 转换函数和 WCG,是 HDR/WCG 视频数据的理想载体。 [8]中给出了将 HEVC 编码器及其 Main10 配置文件用于消费者 HDR/WCG应用的可行性。该报告记录了使用 HEVC Main10 配置文件和 BT.2100 PQ 转换函数在不同比特率下编码 HDR 后所进行的一些主观测试结果。该报告的结论是, HEVC Main 10 配置文件确实能够以行业常见的比特率高质量地编码 HDR/WCG 视频,而无需对 HEVC 标准进行任何进一步的修改。 [7]中具体给出了关于如何使用 HEVC 和 PQ 函数转换 HDR 视频以进行高效压缩,而[9]中给出了一些使用 HEVC 和 HLG 函数进行 HDR 视频编码的指导性方案。

HEVC 编码器、 10 比特精度、 BT.2100 色彩基色和 PQ 转换函数的组合通常称为 PQ10,同样, HEVC 编码器、 10 比特精度、 BT.2100 色彩基色和 HLG 转换函数通常称为 HLG10。 PQ10和 HLG10 编码 HDR 的方案目前已被许多标准化机构采用和部署,其中包括:

  • ETSI / DVB
    2017 年 2 月发布的技术规范 2.3.1 版本中, UHD 第 2 阶段部署采用 HEVC 编码,包括使用 PQ10 或 HLG10 方案。

  • BD ROM
    BDA( Blu-ray Disc Association)是最早支持 HDR 视频的行业组织之一, 编码方案中采用了多个不同的 HDR 关键技术,其中主要使用的是 HDR10。 HDR10 技术涵盖: PQ 转换函数、BT.2020 色域、 非恒定亮度 Y’CbCr 颜色空间、 4:2:0 采样格式、 采用 HEVC Main10 编码配置。在实际应用时, HDR10 中还包括一些常用的元数据,比如 Mastering Display Colour Information及 Content Light Level Information 等。2015 年 7 月发布的用于蓝光光盘的技术规范( 3.0 版本)支持 HEVC Main 10 Profile Level5.1,最高码率 100 Mbps,分辨率为 HD 或 4K,帧率 24-60fps, 兼容 PQ10 方案。

  • Ultra HD Forum
    2017 年 4 月 1 日发布的技术规范“ UHD Phase A 内容参数”指定使用 HEVC Main10 编码配置,并采用 PQ10 或 HLG10 中的颜色表示方案。

  • 3GPP
    基于感知量化器 PQ 并遵循 ITU-R BT.2100 颜色格式的 HDR 方案被添加到了 3GPP TS 26.116 电视视频配置集中, 具体包括 HEVC Main10 编码方案,转换函数、 颜色基色和相关元数据的规定,以及与 PSS(分组交换流)和 MBMS(多媒体广播和多播服务)的集成。

  • ATSC 3.0
    使用 PQ10 或 HLG10 方案编码 HDR 视频。 除了标准化机构采用 PQ10 和 HLG10 之外,还有许多商业机构直接使用 HEVC 标准进行HDR/WCG 编码、传输和播放,其中包括行业领先的流媒体服务商、主流的手机和电视制造商。 目前基本上市场上所有销售的具有 HDR 功能的电视机都内置了 10 比特 HEVC 解码器。

3 HDR 视频编码端的关键技术

3.1 Luma adjustment

之前已经提到,在 Y’CbCr 表示中,一些亮度信息携带在色度分量中,当色度分量进行下采样时,可能出现色度泄漏。对于 HDR 视频,由于 PQ 电光转换函数 EOTF 具有高度非线性特性以及相邻像素之间的亮度可能显著不同,这种影响可能非常大。图 4 给出了色度泄漏的示例,并在之后介绍了如何使用亮度调整方法解决此问题。应当注意,该例子使用了 BT.709容器中所有可用的色度代码值,并在 BT.709 显示器上分级显示。这是因为在 MPEG 中暂时没有可用的具有完整 BT.2020 色域的测试材料,但是对于 BT.2020 容器中的测试材料预期也会具有类似的效果。因此,图 4 中的示例经过了色调映射,以便能够在 SDR 显示器中呈现。
在这里插入图片描述
图 10-4 色度泄漏示例( a.原图( 4:4:4) b.色度下采样图( 4:2:0) c. Luma adjustment)

如图 5 所示,亮度调整方法[10]增加了色度上采样环节,使得 Cb 和 Cr 信息参与到亮度分量的调整中来,以确保解码后在对色度进行上采样时保留有价值的亮度信息,如图 6 所示。
在这里插入图片描述
图 10-5 编码预处理过程亮度调整方法示意图
在这里插入图片描述
图 10-6 解码后处理过程示意图

在后处理阶段,根据亮度调整值Yadjust ′ 和经过上采样反量化得到的Cb ̃和Cr ̃经过一系列转换可以得到重建值{R̃, G̃, B̃},确保RGB ̃能够接近最初的RGB是优化的目标。 RGB ̃和RGB之间的差异可以表示如下:
D = D i f f ( R G B , R G B ~ ) (1) D=Diff(RGB,\tilde{RGB})\tag{1} D=Diff(RGB,RGB~)(1)
一般采用基于权重的误差和来表示 D,权重 wR, wG, wB 可以设定为各分量对亮度的贡献比例。
D = ( W R ∗ ( R ~ − R ) + W G ∗ ( G ~ − G ) + W B ∗ ( B ~ − B ) ) 2 (2) D=(W_R\ast(\tilde{R}-R)+W_G\ast(\tilde{G}-G)+W_B\ast(\tilde{B}-B))^2\tag{2} D=(WR(R~R)+WG(G~G)+WB(B~B))2(2)
根据 R 和R′之间的 EOTF 转换关系,上式等价于:
D = ( W R ∗ ( E O T F ( R ′ ~ ) − E O T F ( R ′ ) ) + W G ∗ ( E O T F ( G ′ ~ ) − E O T F ( G ′ ) ) + W B ∗ ( E O T F ( B ′ ~ ) − E O T F ( B ′ ) ) ) 2 (3) D=(W_R\ast(EOTF(\tilde{R^\prime})-EOTF(R^\prime))+W_G\ast(EOTF(\tilde{G^\prime})-EOTF(G^\prime))+W_B\ast(EOTF(\tilde{B^\prime})-EOTF(B^\prime)))^2\tag{3} D=(WR(EOTF(R~)EOTF(R))+WG(EOTF(G~)EOTF(G))+WB(EOTF(B~)EOTF(B)))2(3)
其中, EOTF(𝑥)为 PQ EOTF。为了得到可以收敛的结果,对EOTF(𝑥)进行泰勒级数展开:
E O T F ( x i + △ ) ≈ E O T F ( x i ) + E O T F ′ ( x i ) ∗ △ x (4) EOTF(x_i+\triangle)\approx EOTF(x_i)+EOTF^\prime(x_i)\ast \triangle_x\tag{4} EOTF(xi+)EOTF(xi)+EOTF(xi)x(4)
EOTF′(𝑥𝑖)是EOTF(𝑥)关于 x 在 xi 处的一阶导数。将(4)式带入(3)式可得:
D = ( W R ∗ E O T F ′ ( R ′ ) ∗ △ R + W G ∗ E O T F ′ ( G ′ ) ∗ △ G + W B ∗ E O T F ′ ( B ′ ) ∗ △ B ) 2 (5) D=(W_R\ast EOTF^\prime(R^\prime)\ast \triangle_R+W_G\ast EOTF^\prime(G^\prime)\ast \triangle_G+W_B\ast EOTF^\prime(B^\prime)\ast \triangle_B)^2\tag{5} D=(WREOTF(R)R+WGEOTF(G)G+WBEOTF(B)B)2(5)
由于 RGB与 YCb ̃Cr ̃之间可以进行如下转换:
[ R ′ G ′ B ′ ] = A [ Y ′ C b C r ] = W − 1 [ Y ′ C b C r ] = 1 d e t ( W ) a d j ( W ) [ Y ′ C b C r ] = [ Y ′ C b C r ] [ a R Y a R C b a R C r a G Y a G C b a G C r a B Y a B C b a B C r ] (6) \begin{bmatrix}R^\prime\\G^\prime\\B^\prime\\ \end{bmatrix}= A\begin{bmatrix}Y^\prime\\Cb\\Cr\\ \end{bmatrix}= W^{-1}\begin{bmatrix}Y^\prime\\Cb\\Cr\\ \end{bmatrix}= \frac{1}{det(W)}adj(W)\begin{bmatrix}Y^\prime\\Cb\\Cr\\ \end{bmatrix}= \begin{bmatrix}Y^\prime\\Cb\\Cr\\ \end{bmatrix} \begin{bmatrix}a_{RY} & a_{RCb} & a_{RCr}\\a_{GY} & a_{GCb} & a_{GCr}\\a_{BY} & a_{BCb} & a_{BCr}\\ \end{bmatrix}\tag{6} RGB =A YCbCr =W1 YCbCr =det(W)1adj(W) YCbCr = YCbCr aRYaGYaBYaRCbaGCbaBCbaRCraGCraBCr (6)
将上式代入(5)式替换掉变化量, D 可表示为如下所示,记为(7)式。
( W R ∗ E O T F ′ ( R ′ ) ∗ ( a R Y ∗ Y a d j u s t ′ + a R C b ∗ C b ~ + a R C r ∗ C r ~ − ( a R Y ∗ Y ′ + a R C b ∗ C b + a R C r ∗ C r ) + W G ∗ E O T F ′ ( G ′ ) ∗ ( a G Y ∗ Y a d j u s t ′ + a G C b ∗ C b ~ + a G C r ∗ C r ~ − ( a G Y ∗ Y ′ + a G C b ∗ C b + a G C r ∗ C r ) + W B ∗ E O T F ′ ( B ′ ) ∗ ( a B Y ∗ Y a d j u s t ′ + a B C b ∗ C b ~ + a B C r ∗ C r ~ − ( a B Y ∗ Y ′ + a B C b ∗ C b + a B C r ∗ C r ) ) 2 (7) (W_R\ast EOTF^\prime(R^\prime)\ast(a_{RY}\ast Y^\prime_{adjust}+a_{RCb}\ast\tilde{Cb}+a_{RCr}\ast \tilde{Cr}-(a_{RY}\ast Y^\prime+a_{RCb}\ast Cb+a_{RCr}\ast Cr)+\\ W_G\ast EOTF^\prime(G^\prime)\ast(a_{GY}\ast Y^\prime_{adjust}+a_{GCb}\ast\tilde{Cb}+a_{GCr}\ast \tilde{Cr}-(a_{GY}\ast Y^\prime+a_{GCb}\ast Cb+a_{GCr}\ast Cr)+\\ W_B\ast EOTF^\prime(B^\prime)\ast(a_{BY}\ast Y^\prime_{adjust}+a_{BCb}\ast\tilde{Cb}+a_{BCr}\ast \tilde{Cr}-(a_{BY}\ast Y^\prime+a_{BCb}\ast Cb+a_{BCr}\ast Cr))^2\tag{7} (WREOTF(R)(aRYYadjust+aRCbCb~+aRCrCr~(aRYY+aRCbCb+aRCrCr)+WGEOTF(G)(aGYYadjust+aGCbCb~+aGCrCr~(aGYY+aGCbCb+aGCrCr)+WBEOTF(B)(aBYYadjust+aBCbCb~+aBCrCr~(aBYY+aBCbCb+aBCrCr))2(7)
经过矩阵 A 的系数替换之后,可简化为:
D = ( W R ∗ E O T F ′ ( R ′ ) ∗ ( Y a d j u s t ′ − e R ) + W G ∗ E O T F ′ ( G ′ ) ∗ ( Y a d j u s t ′ − e G ) + W B ∗ E O T F ′ ( B ′ ) ∗ ( Y a d j u s t ′ − e B ) ) 2 (8) D=(W_R\ast EOTF^{\prime(R^\prime)}\ast(Y^\prime_{adjust}-e_R)+W_G\ast EOTF^{\prime(G^\prime)}\ast(Y^\prime_{adjust}-e_G)+W_B\ast EOTF^{\prime(B^\prime)}\ast(Y^\prime_{adjust}-e_B))^2\tag{8} D=(WREOTF(R)(YadjusteR)+WGEOTF(G)(YadjusteG)+WBEOTF(B)(YadjusteB))2(8)
其中部分系数如下所示:
e R = Y ′ − ( C r ~ − C r ) ∗ a R C r ′ (9) e_R=Y^\prime-(\tilde{Cr}-Cr)\ast a_{RCr^\prime}\tag{9} eR=Y(Cr~Cr)aRCr(9)

e G = Y ′ − ( C b ~ − C b ) ∗ a G C b − ( C r ~ − C r ) ∗ a G C r ′ (10) e_G=Y^\prime-(\tilde{Cb}-Cb)\ast a_{GCb}-(\tilde{Cr}-Cr)\ast a_{GCr^\prime}\tag{10} eG=Y(Cb~Cb)aGCb(Cr~Cr)aGCr(10)

e B = Y ′ − ( C b ~ − C b ) ∗ a B C b ′ (11) e_B=Y^\prime-(\tilde{Cb}-Cb)\ast a_{BCb^\prime}\tag{11} eB=Y(Cb~Cb)aBCb(11)

为了得到(8)式的局部最优解,对其关于Yadjust ′ 求导并令 D 为 0 可得:
Y a d j u s t ′ = W R ∗ E O T F ′ ( R ′ ) ∗ e R + W G ∗ E O T F ′ ( G ′ ) ∗ e G + W B ∗ E O T F ′ ( B ′ ) ∗ e B W R ∗ E O T F ′ ( R ′ ) + W G ∗ E O T F ′ ( G ′ ) + W B ∗ E O T F ′ ( B ′ ) (12) Y^\prime_{adjust}=\frac {W_R\ast EOTF^\prime(R^\prime)\ast e_R+W_G\ast EOTF^\prime(G^\prime)\ast e_G+W_B\ast EOTF^\prime(B^\prime)\ast e_B} {W_R\ast EOTF^\prime(R^\prime)+W_G\ast EOTF^\prime(G^\prime)+W_B\ast EOTF^\prime(B^\prime)}\tag{12} Yadjust=WREOTF(R)+WGEOTF(G)+WBEOTF(B)WREOTF(R)eR+WGEOTF(G)eG+WBEOTF(B)eB(12)
计算(12)式即可求导调整后的亮度值Yadjust ′ 。

3.2 QP selection based on average luma

对于 SDR 数据,使用的是 BT.709 中的幂律转换函数,而 HDR/WCG 数据则一般使用在SMPTE ST 2084 和 BT.2100 中定义的 PQ 转换函数,因此经过处理后数据特性会有很大差别,可以使用 BT.709 转换函数和 BT.2100 PQ 转换函数处理相同的 SDR 数据来观察这一差异。对于 10 比特的数据,如果源数据的亮度峰值为 100cd/m2 并使用 BT.709 转换函数,亮度分量分布在 64-940,而如果使用 BT.2100 PQ 转换函数,亮度分量分布在 64-590,可以看到两者范围差异较大。如果使用 PQ 时在 code level 为 509( 100cd/m2)附近出现一些扰动( +/- 1),等价于使用 BT.709 在 code level 为 940( 100cd/m2)出现+/- 4 的扰动。与此同时,使用 PQ时在 code level 为 80( 0.01cd/m2)附近出现一些扰动( +/- 1),等价于使用 BT.709 在 codelevel 为 80( 0.01cd/m2)出现+/- 1 的扰动。因此,可以推断如果编码器在亮区和暗区附近使用相同的方式处理 1 个 code level 的误差,那么相对 BT.709 使用 PQ 时将会在亮区( 100cd/m2)产生 4 倍左右的误差。也就是说,从 BT.709 切换到 PQ 将会导致许多比特从亮区重新分配到暗区。因此,原先针对 BT.709 在亮区和暗区取得较好平衡的编码器,如果不做修改而直接使用 PQ,则分配给亮区的比特过少,暗区的比特过多,所以亮区就会出现失真,对于 HDR/WCG数据会表现得更加明显。一种常见的做法是基于局部块的平均亮度值自适应地调整块的 QP。

许多编码器都采用了自适应 QP 选择的方法。在 HEVC 中,可以单独为每个编码单元设置 QP,以便使得比特分配与人类视觉系统特性保持一致。通常,对于平坦区域(低方差)使用较低的 QP 并且对于纹理密集的区域(高方差)使用较高的 QP。此外在其他一些系统中,还可能会考虑亮度、边缘、运动等特性。但这些方法都是针对 SDR 内容特性的。对于使用 PQ 电光转换函数的 HDR 视频,需要考虑上述转换函数带来的数据特性上的改变。具体地, 通过对具有较低平均亮度值的块(暗区域)使用较高的 QP,而对具有较高平均亮度值的块(亮区域)使用较低的 QP,可以有效改善图像的主观质量。下面给出一个基于平均亮度进行自适应量化的示例。
Q P P Q = Q P 709 + d Q P ( i n t L ) (13) QP_{PQ}=QP_{709}+dQP(int_L)\tag{13} QPPQ=QP709+dQP(intL)(13)
intL 表示局部 64x64 CTU 编码块的平均亮度值 Laverage, intL= Round(Laverage)。 dQP 与 int的对应关系通过如下查找表和图 7 给出。

表 1 dQP 与 intL 之间的对应关系

luma intL rangedQP
intL < 3013
301 ≤ intL < 3672
367 ≤ intL < 4341
434 ≤ intL < 5010
501 ≤ intL < 567-1
567 ≤ intL < 634-2
634 ≤ intL < 701-3
701 ≤ intL < 767-4
767 ≤ intL < 834-5
intL ≥ 834-6

在这里插入图片描述
图 10-7 dQP 与 intL 之间的对应关系

3.3 Chroma QP offset based on content colour gamut

针对使用 BT.709 色域和光电转换函数的 SDR 内容,现有的编码器配置已经可以在亮度和色度之间取得较好的平衡。对于 HDR 视频,与 SDR 视频相比, PQ EOTF 和 BT.2020 色彩基色的组合会使得 Cb 和 Cr 的取值更加紧密地聚集在零附近。因此,使用同样的编码配置编码HDR 视频可能不会获得与 SDR 类似的性能。 具体在编码 HDR 视频时, 过于集中的色度分量在量化过程中会出现丢失,此时比特分配会从色度分量向亮度分量偏移。如果没有为色度分量分配足够多的比特,就会产生色度失真,例如,白色区域中会出现青色和品红色,如图 2左图所示,窗户和伞内区域发散出了多种颜色。

HEVC 中的 Chroma QP offset,调节着亮度 QP 与色度 QP 之间的平衡关系。通过对 Cb 和Cr 单独设置色度 QP 偏移,可以确保在亮度使用较高的 QP 值时,色度 QP 仍然维持在一个正常的水平,使得在量化期间不会发生较为严重的色度信息丢失。例如,在失真较为严重的低码率情况,对 Chroma QP offset 取一个较大的负值能够有效减少色度失真,在码率增加到某个点时,色度分量的质量可能已经足够好了,所以在高码率情况下可以采取较小的偏移值,甚至设为 0。 另外, 如果在编码过程中已知视频内容没有应用全色域(通过分析视频或视频附带的元数据可知),则可以进一步优化色度 QP 偏移以提供更好的编码结果。

以下给出了设置 chroma QP offset 的一个例子。假定已知 HDR 捕捉和显示设备的颜色基色, chroma QP offset 可以基于亮度 QP 值和基色因子ccbccr采用下式给出的模型进行计算:
Q P o f f s e t C b = C l i p 3 ( − 12 , 0 , R o u n d ( C c b ∗ ( k ∗ Q P + 1 ) ) ) (14) QPoffsetCb=Clip3(-12,0,Round(C_{cb}\ast(k\ast QP+1)))\tag{14} QPoffsetCb=Clip3(12,0,Round(Ccb(kQP+1)))(14)

Q P o f f s e t C r = C l i p 3 ( − 12 , 0 , R o u n d ( C c r ∗ ( k ∗ Q P + 1 ) ) ) (15) QPoffsetCr=Clip3(-12,0,Round(C_{cr}\ast(k\ast QP+1)))\tag{15} QPoffsetCr=Clip3(12,0,Round(Ccr(kQP+1)))(15)

如果 HDR 捕捉和显示设备的颜色基色相同,则 ccb = 1, ccr = 1。如果捕捉设备采用 P3D65基色,显示设备采用 BT.2020,则 ccb = 1.04, ccr = 1.39。如果捕捉设备采用 BT.709,显示设备采用 BT.2020,则 ccb = 1.14, ccr = 1.78。最后, k = -0.46, l = 0.26。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/493579.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web实验三

web实验三 三四个小时左右吧&#xff0c;做成功了学到新东西了&#xff0c;还是挺有趣的&#xff0c;好玩。还有些功能没做完&#xff0c;暂时这样了&#xff0c;要交了。 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…

VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)

网址连接&#xff1a;http://118.25.110.213:5200/#/login 账号/密码&#xff1a;renxiaoyong 1、VUE3部署本地。 1.1本地安装部署node.js 1.2安装vue脚手架 npm install -g vue/cli # 或者 yarn global add vue/cli1.3创建本地项目 vue create my-vue-project1.4安装依赖和插…

C++ 智能指针(高频面试题)

本篇文章来介绍一下C高频面试题 智能指针。 1.智能指针高频问题&#xff1a; 接下来我会为大家一 一解读&#xff1a; 2.智能指针的由来&#xff1a; 在实际开发中 遇到的困境&#xff1a; 3.智能指针的核心是采用RAII思想来自动化管理指针指向的动态资源的释放&#xff08;…

Leetcode Hot 100 【二叉树】104. 二叉树的最大深度

104. 二叉树的最大深度 已解答 简单 相关标签 相关企业 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3…

Connecting to Oracle 11g Database in Python

# encoding: utf-8 # 版权所有 2024 涂聚文有限公司 # 许可信息查看&#xff1a;言語成了邀功盡責的功臣&#xff0c;還需要行爲每日來值班嗎 # 描述&#xff1a;python -m pip install oracledb # python -m pip install cx_Oracle --upgrade # pip install cx_Oracle # Autho…

UE5喷涂功能

许多FPS/TPS 游戏都有喷涂、涂鸦功能 其实原理很简单&#xff0c;就是利用了延迟贴花实现的 我们从网上随便找一张图 创建一个材质&#xff0c;材质域选择延迟贴花 混合模式选择半透明&#xff0c;自发光强度可以看感觉调整 材质做好之后编译保存&#xff0c;新建一个Actor…

PCL点云库入门——PCL库中点云数据拓扑关系之K-D树(KDtree)

1、点云的拓扑邻域 在三维空间数据处理的领域中&#xff0c;点云的邻域概念显得尤为关键&#xff0c;它不仅链接了点云数据之间的拓扑结构&#xff0c;而且在构建点云间的拓扑关系时起到了桥梁的作用。这种关系的建立&#xff0c;使得我们能够以一种高效、迅速的方式管理庞大的…

【bodgeito】攻防实战记录

也许有一天我们再相逢&#xff0c;睁开眼睛看清楚&#xff0c;我才是英雄。 进入网站整体浏览网页 点击页面评分进入关卡 一般搭建之后这里都是红色的&#xff0c;黄色是代表接近&#xff0c;绿色代表过关 首先来到搜索处本着见框就插的原则 构造payload输入 <script>…

【1.排序】

排序 笔记记录 1.排序的基本概念1.1 排序的定义 2. 插入排序2.1 直接插入排序2.2 折半插入排序2.3 希尔排序 3. 交换排序3.1 冒泡排序3.2 快速排序 4. 选择排序4.1 简单选择排序4.2 堆排序 5. 归并排序、基数排序和计数排序5.1 归并排序4.2 基数排序4.3 计数排序 6. 各种内部排…

杂七杂八的网络安全知识

一、信息安全概述 1.信息与信息安全 信息与信息技术 信息奠基人&#xff1a;香农&#xff1a;信息是用来消除随机不确定性的东西 信息的定义&#xff1a;信息是有意义的数据&#xff0c;是一种要适当保护的资产。数据经过加工处理之后&#xff0c;就成为信息。而信息需要经…

Loki 微服务模式组件介绍

目录 一、简介 二、架构图 三、组件介绍 Distributor&#xff08;分发器&#xff09; Ingester&#xff08;存储器&#xff09; Querier&#xff08;查询器&#xff09; Query Frontend&#xff08;查询前端&#xff09; Index Gateway&#xff08;索引网关&#xff09…

基于LabVIEW的USRP信道测量开发

随着无线通信技术的不断发展&#xff0c;基于软件无线电的设备&#xff08;如USRP&#xff09;在信道测量、无线通信测试等领域扮演着重要角色。通过LabVIEW与USRP的结合&#xff0c;开发者可以实现信号生成、接收及信道估计等功能。尽管LabVIEW提供了丰富的信号处理工具和图形…

STM32-笔记5-按键点灯(中断方法)

1、复制03-流水灯项目&#xff0c;重命名06-按键点灯&#xff08;中断法&#xff09; 在\Drivers\BSP目录下创建一个文件夹exti&#xff0c;在该文件夹下&#xff0c;创建两个文件exti.c和exti.h文件&#xff0c;并且把这两个文件加载到项目中&#xff0c;打开项目工程文件 加载…

windwos defender实现白名单效果(除了指定应用或端口其它一律禁止)禁止服务器上网

一、应用场景说明 当我们的一台windows服务器中毒&#xff0c;变成别人肉鸡&#xff0c;不断向外请示非法网站或攻击其它服务器。 要彻底清除相关木马或病毒往往需要的时间比较长&#xff0c;比较有效的方法是禁止服务器主动向外发包除了网站端口和远程程序除外。 其实这就是一…

【AI学习】Huggingface复刻Test-time Compute Scaling技术

OpenAI ChatGPT o1 背后的关键技术Test-time Compute Scaling&#xff0c;Huggingface实现并开源了&#xff01; Hugging Face 团队发布了一篇关于“开源模型中的推理阶段计算扩展”&#xff08;Test-time Compute Scaling&#xff09; 的研究文章。Hugging Face 团队通过复现…

Word图片嵌入格式不正确的解决办法

问题描述: 如图, 粘贴到word的图片只显示底部一部分 解决方法: 第一步 先将图片嵌入文本行中 第二步 再将图片设置为正文格式 然后就出来了

【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap

re:Invent 是全球云计算领域的顶级盛会&#xff0c;每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂&#xff0c;分享最新的技术成果和创新实践&#xff0c;深圳 UG 作为亚马逊云科技技术社区的重要组成部分&#xff0c;将借助 re:Invent 的东风&#xff0c;举办此…

Intel-ECI之Codesys PLC + Ethercat 远端IO + Codesys IDE编程

目录 一、 准备工作 二、安装Codesys 软件 PLC 三、 使用Codesys IDE 编程测试 CODESYS* 是领先的独立于制造商的 IEC 61131-3 自动化软件&#xff0c;适用于工程控制系统。它用于 Intel Edge Controls for Industrial&#xff08;Intel ECI 或 ECI&#xff09;&#xff0c;…

渗透测试-前端加密分析之RSA加密登录(密钥来源服务器)

本文是高级前端加解密与验签实战的第6篇文章&#xff0c;本系列文章实验靶场为Yakit里自带的Vulinbox靶场&#xff0c;本文讲述的是绕过RSA加密来爆破登录。 分析 这里的代码跟上文的类似&#xff0c;但是加密的公钥是通过请求服务端获取的 http://127.0.0.1:8787/crypto/js/…

【Leecode】Leecode刷题之路第87天之扰乱字符串

题目出处 87-扰乱字符串-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 87-扰乱字符串-官方解法 方法1&#xff1a;动态规划 思路&#xff1a; 代码示例&#xff1a;&#xff08;Java&…