具体实施方式
下文将参照附图更完全地对本公开进行描述,其中示出了本公开的实施例。然而,本公开可以按多种替代形式来体现,并且不应当被解释为受到本文阐述的实施例的限制。因此,尽管本公开允许各种改进和替代形式,但以示例方式在附图中示出特定实施例,并将在下文中对其进行详细描述。然而,应该理解,并不旨在将本公开局限于公开的具体形式,相反地本公开涵盖落入由权利要求限定的本公开的精神和范围内的所有修改、等同物和/或备选。
本文中所使用的术语仅仅是为了描述具体实施例的目的,而不是意在限制本公开。如本文中使用的,单数形式“一”,“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。还应理解,术语″包括″、″具有″和/或″包含″在本说明书中使用时表示存在所陈述的特征、整数、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组合。此外,当提及元素“响应于”或”连接″到另一个元素时,它可以直接响应或连接到另一个元素,或者可以存在中间元件。相反,当提及元素″直接响应于″或″直接连接″到另一元素时,不存在中间元素。如本文中所使用的,术语“和/或”包括一个或多个相关联列出的项目的任意和所有组合,并且可以简写为“/”。
应当理解,虽然术语第一、第二等可以在本文用于描述各种元件,但是这些元件不应该受这些术语的限制。这些术语仅用来将元件彼此区分。例如,在不背离本公开教导的情况下,第一元件可以被称为第二元件,并且类似地,第二元件也可以被称为第一元件。
尽管一些图包括通信路径上的箭头来指示通信的主要方向,将理解通信可以在与所指示的箭头的相反方向上发生。
关于框图和操作流程图来描述一些实施例,其中每一个框表示电路元件、模块或代码的一部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应当注意,在其他替代实现方式中,框中标注的功能可以不按照标注的次序进行。例如,连续的两个框可能在执行时实质上是同时执行的,或者部分框在某些时候会以相反的顺序执行,这将取决于所涉及到的功能。
对″一个实施例″或″实施例″的提及意味着结合实施例所描述的特定特征、结构或特性包含在本发明的至少一个实施方式中。在说明书中各处出现短语“在一个实施例中”或“根据实施例”不一定都指代相同的实施例,也不一定是与其他实施例互斥地分离的或备选的实施例。
权利要求中出现的附图标记仅仅是说明性的,并且对权利要求的范围没有限制作用。
虽然没有明确描述,但是这些实施例及其变体可以被实施为任意组合或子组合。
本公开是针对对色彩画面进行解码来描述,但是被扩展至对画面序列(视频)的解码,因为如下文所述对所述序列的每个色彩画面顺序地进行解码。具体地,分发方案的编码侧和解码侧被描述用于对画面或画面序列进行编码和解码。它在编码器侧包括将例如HDR画面映射到以与传统SDR工作流兼容的格式表示的SDR画面上。示例但不限于此,该格式可以是专用于高清电视的8位YUV格式(如由标准ITU-R Rec BT.709定义的)或专用于超高清电视的10位YUV格式(如由ITU-R Rec.2020标准所定义的)。它还包括通过使用传统SDR画面编码器来编码所获得的SDR画面。例如且不限于此,编码器可以是例如HEVC(或可按工作流程工作的任何其他编解码器)的标准8位h264/AVC主配置文件或标准10位HEVC主10配置文件。此外,分发方案包括分发所获得的编码SDR画面的比特流。
在解码器侧,取决于所寻址的用户,两种场景是可能的。
在第一场景中,从分发的比特流中获得解码后的SDR画面并将其显示在支持SDR的设备上。
在第二场景中,通过首先获得解码后的SDR画面并且通过然而应用从解码后的SDR画面到解码后的HDR画面的映射,来从分发的比特流中获得解码后的HDR画面。
有利地,由编码器执行的从HDR画面到SDR画面的映射是可逆的,使得解码器应用从SDR画面到HDR画面的逆映射。通过这样做,解码后的HDR画面相对于HDR画面的编码误差被最小化。
下文描述可逆HDR到SDR映射的实施例,并且该实施例基于使用平方根作为EOTF的三步过程。
如图1所示,编码色彩画面的方法100包括亮度动态减小(步骤110),其包括从色彩画面的色彩分量Ec(c=1,2,3)中的至少一个获得原始亮度Y的子步骤111以及用于确定待编码画面的调制值(也称为背光值)Ba的直方图分析的子步骤112。可以使用不同的方法来计算调制值,例如但不限于使用HDR亮度的平均值、中间值、最小值或最大值。可以在线性HDR亮度域YHDR,lin或者像ln(YHDR,lin)或YHDR,lin γ(其中γ<1)的非线性域中执行这些操作。
色彩画面被认为具有表示色彩画面的像素值的三个色彩分量。尽管至少部分地通过具体示例来解释本公开,但本公开不限于表示三个分量的任何色彩空间,而是扩展到任何色彩空间(例如RGB,CIELUV,XYZ,CIELab等)。作为示例,Ec在图中是指RGBHDR。在子步骤113中,通过应用取决于原始亮度Y和调制值Ba的非线性函数,减少原始亮度Y动态的动态范围,以根据原始亮度Y和调制值Ba获得亮度分量L。亮度分量L是SDR画面的亮度分量,因此它也可以被称为Y分量,更精确地称为YUV BT709或YUV BT2020标准色彩空间的YSDR分量。
在第二步骤120中,从色彩画面的色彩分量Ec中确定两个色度分量C1和C2。对于图1中给出的示例,C1和C2是指U′V′,而Ec是指RGBHDR。在子步骤121中,通过对色彩分量Ec取平方根来获得中间分量Dc(在图1的示例中,Dc是指R#B#G#)。对于图1所示的示例,这是指RGBHDR的平方根。在下一子步骤122中,通过将中间分量Dc与公共乘法因子β”相乘,来获得缩小分量Fc(对于图1所示的示例,)。因子β”(Ba,L)取决于亮度分量L和调制值Ba。在下一子步骤123中,通过将三个缩小分量Fc乘以矩阵,来获得色度分量C1和C2(图1中的U'和V'),即:
[C1;C2]=M[F1;F2;F3]
其中M是取决于色彩画面的色域的2x3矩阵。
在第三步骤130中,执行亮度分量L和色度分量C1、C2的校正以获得经校正的亮度分量L'和经校正的色度分量C′1和C′2(是指附图中的U′V′到L'U″V″)。通过色域映射获得该校正,使得经校正的分量L'、C′1、C′2的色域G1的感知色彩对应于HDR色彩画面的分量Ec的色域G2的感知色彩。
更准确地,在比色法和色彩理论中,彩度、色度和饱和度是指特定色彩的感知强度。彩度是色彩和灰度之间的差异的程度。色度是相对于在相似观看条件下看起来是白色的另一色彩的亮度的彩度。饱和度是色彩相对于其自身亮度的彩度。
一个高度丰富多彩的刺激是生动和激烈的,而不那么丰富多彩的刺激显得更加柔和、更接近灰色。在没有彩度的情况下,色彩是“中性”灰度(其任何色彩都没有彩度的画面被称为灰色)。可以根据色彩的彩度(或色度或饱和度)、明亮度(或亮度)和色调,来描述任何色彩。
色彩的色调和饱和度的定义取决于用于表示所述色彩的色彩空间。
例如,当使用CIELUV色彩空间时,饱和度suv被定义为色度相对于亮度L*的比值。
于是,由下式给出色调:
根据另一示例,当使用CIELAB色彩空间时,饱和度被定义为色度相对于亮度的比值。
于是,由下式给出色调:
这些等式是饱和度和色调的合理预测器,其与对饱和度的人类预测相一致,描述了调整在CIELAB(或CIELUV)色彩空间中的亮度同时保持角度a*/b*(或u*/v*)固定不影响色调以及对同一色彩的感知。在步骤150中,以相同的因子缩放色彩分量Ec保持了该角度,从而保持了色调。
现在考虑在CIELUV色彩空间中表示HDR色彩画面和通过组合CIELUV色彩空间的亮度分量L以及两个色度分量U(=C1)和V(=C2)形成的画面I2,其中画面I2的亮度分量L的动态范围相较于色彩画面I的亮度的动态范围被减小(步骤130)。因此,由于色彩的饱和度和色调被改变,因此人感知到不同的画面I2的色彩。该方法(步骤130)确定经校正的画面I3的色度分量C′1和C′2,使得经校正的画面I3的色彩的色调最佳地匹配HDR色彩画面的色彩的色调。
在子步骤131、132中,确定在第二步骤120中使用的公共乘法因子β”。在下一子步骤133中,根据L生成L′。
通过以下等式来根据亮度分量L和色度分量C1、C2获得经校正的分量L′、C′1、C′2:
·C’1=C1,
·C’2=C2,
·L’=L-mC’1-nC’2
其中m和n是两个实系数。在图1中,‘m’是‘a’和‘n’是‘b’。实系数取决于HDR RecBT.709和Bt.2020的色域。m和n的典型值是m≈n,在区间[0.1,0.5]内。
根据校正的变体,经校正的亮度分量L’的值总是小于亮度分量L的值:
L′=L-max(0,mC′1+nC′2)
这确保了经校正的亮度分量L′的值不超过亮度分量L的值,并因此确保不发生色彩饱和。调制值Ba被编码在比特流F以及画面L’C’1C’2中,即图1上的L'U′V′。
如图2所述,示意性地示出了从比特流中解码色彩画面的对应方法200。解码步骤210、220和230可以被认为是对相应编码步骤110、120和130进行逆操作。
在步骤230中,从比特流F获得经校正的亮度和色度分量L′、C′1、C′2(参考图2中的U′V′)。在子步骤中,通过对所述校正进行逆操作(即,通过以下等式)来获得亮度分量L:
L=L’+mC’1+nC’2
(m和n是指图2中的a和b)
根据逆校正的变体,亮度分量L的值总是大于经校正的亮度分量L’的值:
L=L'+max(0,mC′1+nC'2)
该实施例是有利的,因为它确保了亮度分量L不会超过通常被解码器用于限定亮度峰值的潜在限幅值。
在步骤210中,非线性动态扩展函数被应用于亮度L,以便生成第一分量(图2中的Y或图3中的sqrt(Y)),其中所述第一分量是范围扩展的亮度,所述非线性动态扩展函数是被应用于在对色彩画面进行编码时获得的原始亮度分量的动态范围缩小函数的逆变换,例如,YHDR=f1(LSDR),更准确地,g-1(Ba,L)。
在步骤220中,根据经校正的色度分量C′1、C′2(在该示例中为U'V′)和第一分量Y(或sqrt(Y))恢复要解码的色彩画面的至少一个色彩分量Ec(在所示示例中为RGBHDR)。在子步骤221中,执行将经校正的色度分量C′1、C′2乘以公共的乘法因子β’,以获得中间色度分量(C1rC2r,是指图2示例中所示的UrVr,且是指图3中所示的),所述中间色度分量被用在用于获得第二分量S的另一子步骤222中,并且第二分量S是指用于图2所示示例的分量注解,由确定的值S。在另一子步骤223中,根据SUrVr:[R#;G#;B#]=Mat3x3[S;Ur;Vr],恢复R#G#B#。在下一个子步骤224中将解码后的色彩画面RGBHDR的色彩分量确定为R#G#B#的平方。
换言之,该方法允许例如SDR到HDR去映射,其根据SDR亮度分量L和两个SDR色度分量UV恢复表示RGB HDR分量的R#G#B#,其中HDR亮度分量Y从L推导而来,值T被计算为U2、V2和U*V的线性组合,S被计算为Y-T的平方根,且然后将R#G#B#确定为应用于输入SDR画面的每个像素的3×3矩阵和SUV的乘积。例如,3×3矩阵是ITU-R BT709/2020中定义的RGB->YUV矩阵的逆,即,C=A-1。
所描述的解码方案允许分发经压缩的HDR画面,同时分发表示所述HDR画面的色彩分级版本的相关SDR画面。然而,因为当对HDR画面进行解码和显示时压缩损耗可能引入不准确性,使得无法一直确保解码的数值稳定性或鲁邦性,因此还进一步增强解码。
其他公开内容提供了一种从比特流解码色彩画面的方法,该方法额外增加了鲁棒性。所述方法包括:
-通过向从比特流获得的亮度分量应用非线性动态扩展函数来获得第一分量;
-通过对由第一分量确定的值与从比特流获得的两个色度分量的乘积和平方值的线性组合之差取平方根来获得第二分量;以及
-至少根据所述第二分量和所述两个色度分量获得要解码的色彩画面的至少一个色彩分量。
这允许应用非线性动态扩展函数,以便将可定制的边界至少应用于亮度分量,以例如考虑隐含在处理硬件中的限制,其中所述非线性动态扩展函数不必是在编码期间已应用的相应非线性动态缩小函数的逆函数。此外,平方根函数对由实际选择的非线性动态扩展函数生成的第一分量的依赖性允许将第二分量的计算不仅适应于引入的边界,而且还影响避免未定义的差异结果,从而实现增强的数值稳定性。
根据一个实施例,
-仅在由第一分量确定的值等于或大于所述线性组合的情况下,通过对所述值和所述线性组合之差取平方根来获得第二分量,以及
-否则,所述第二分量被设置为等于零,且两个色度分量乘以公共因子。这允许处理第二分量被确定为是非实数的情况。否则,处理这种错误情况可能依赖于所应用的硬件错误处理功能。通过将第二分量设置为0来解决该异常。然而,将虚数值替换为零相当于增加亮度。如果第二分量将被设置为0而不将公共因子应用于色度分量,则实际上会导致非常明亮的像素出现在第二分量已被设置为零的位置。
根据一个实施例,公共因子是所述第一分量(即所述分量的值)与所述线性组合的平方根之比。
在该实施例中,非线性动态扩展函数例如是已应用于在对色彩画面进行编码时获得的原始亮度分量的动态缩小函数的逆函数,且由所述第一分量确定的所述值等于所述原始亮度分量。在这种情况下,非线性动态扩展函数提供原始亮度分量作为所述第一分量,并且将第二分量确定为原始编码亮度与所述线性组合之差的平方根。
根据另一实施例,公共因子是所述线性组合的平方根的倒数。
在该实施例中,非线性动态扩展函数是已应用于当对色彩画面进行编码时获得的原始亮度分量的动态缩小函数的逆函数的平方根,且由所述第一分量确定的值等于1。此外,获得要解码的色彩画面的至少一个色彩分量包括将所述至少一个色彩分量乘以第一分量。这通过原始亮度分量的平方根引入了归一化,并由此设定了色度分量和第二分量的边界,使得可以简化硬件实现。最后,所描述的乘法消除所应用的归一化。
为了向两个色度分量应用相应缩放,根据一个实施例,获得两个色度分量的步骤包括通过取决于第一分量的因子来缩放两个色度分量中的每一个。
例如,所述缩放包括在确定线性组合之前将两个色度分量除以第一分量,即,除以同样应用于亮度的同一归一化因子。
在一个实施例中,所述因子还取决于根据原始亮度分量获得的被解码的画面的背光值。
在一个实施例中,使用查找表来确定第二分量以用于更快的处理。
根据一个实施例,至少根据所述第二分量和所述两个色度分量获得要解码的色彩画面的至少一个色彩分量包括:确定所述至少一个色彩分量作为第二分量和两个色度分量的线性组合。
即使参考以上内容进行示例性描述,以下实施例中的任何一个都可以应用于除RGB或YUV之外的其他色彩空间。
作为一个示例实施例,SDR到HDR去映射方法根据SDR亮度分量L和两个SDR色度分量UV恢复表示RGB HDR分量的R#G#B#,其中从L推导出HDR亮度分量Y,将值T计算为U2、V2和U*V的线性组合。S基本上被计算为Y-T的平方根。
i.如果T≤Y,则S=sqrt(Y-T)
ii.如果T>Y,则U和V乘以公共因子F,并将S设置为零。
然后将R#G#B#计算为3×3矩阵和SUV的乘积。该方法应用于输入SDR画面的每个像素。此外,公共因子F可以设置为Y/√T。
作为另一示例实施例,SDR到HDR去映射方法根据SDR亮度分量L和两个SDR色度分量UV恢复表示RGB HDR分量的R#G#B#,其中从L推导出HDR亮度分量的平方根√Y,将T计算为U2、V2和U*V的线性组合,且S基本上被计算为1-T的平方根。
i.如果T≤1,则S=sqrt(1-T)
ii.如果T>1,则U和V乘以公共因子F,并将S设置为零。
然后被计算为3×3矩阵和SUV的乘积。R#G#B#是与√Y的乘积,其被应用于输入SDR画面的每个像素。此外,公共因子F是1/√T。在一个实施例中,可以在最终同时乘以1/√T和F,即,代替地乘以F/√T。
所述的实施例允许解码器的具有不依赖于色彩画面的峰值亮度的中间寄存器大小的简单硬件实现
色彩画面I被认为具有表示色彩画面的像素值的三个色彩分量。本公开不限于表示三个分量的任何色彩空间,而是扩展到任何色彩空间(例如RGB,CIELUV,XYZ,CIELab等)。
参考图3,示意性地示出了根据本公开实施例的从至少一个比特流中解码色彩画面的方法300的步骤的图。所示实施例实际上是图2所示解码方法的修改,现在考虑到对于经过处理的亮度和色度分量,即,Y,Ur,Vr,S,总是存在清晰的边界。将仅详细描述实施例之间的变化。
在步骤310,非线性动态扩展函数是已应用于当对色彩画面进行编码时获得的原始亮度分量的动态缩小函数的逆函数的平方根,其将第一分量的上界缩小到√Y。引入了通过1/√Y进行归一化,随后进行修改色度重构步骤320,然后通过√Y进行重新归一化。
HDR亮度Y是分量Ec的线性组合。在下文中,作为Ec的示例,其被称为RGBHDR。
其中定义如下:
因此,取决于一些常数,Ec(即所示示例中的RGB)由Y和Dc定界,即,所示示例中的R#G#B#由√Y定界。此外,从编码器侧获得UrVr作为R#G#B#的线性组合,即
这两个变量由R#G#B#定界,因此由√Y定界。因此,回头参照图2所示的实施例,在S的定义中,
平方根下的项由Y定界,S由√Y定界。因此,解码过程的输入变量UrVr、中间变量S和输出变量R#G#B全部由√Y定界。因此,图2所示的解码方法中使用的乘数因子β’被图3所示实施例中的βY’代替,使得代替处理Ur和Vr,处理Ur/√Y和Vr/√Y。此外,还引入了将输出重新缩放√Y倍。
换言之,乘法因子β′(Ba,L)被替换(与步骤230相比,尤其在步骤330中)为βY’(Ba,L):=β’(Ba,L)/√Y以获得归一化输入
和
在输出处,解码后的通过与√Y相乘被重新缩放。
图3示出了SDR到HDR逆映射方法,其根据SDR亮度分量L和两个色度分量UV恢复表示RGB HDR分量的R#G#B#,其中根据L推导出HDR亮度分量的平方根√Y,将值于计算为U2、V2和U*V的线性组合,将第二分量S计算为差的平方根,其中是3x3矩阵和SUV的乘积,且R#G#B#是与√Y相乘,被应用于输入SDR画面的每个像素。此外,U和V除以√Y。
现参考图4,示意性地示出了根据本公开另一实施例的从至少一个比特流中解码色彩画面的方法400的步骤的图。所示实施例实际上是图3所示解码方法的修改,现在附加地考虑如果第二分量(与图3所示的相对应)导致虚数值,则正确处理所述异常情况,例如以免与相应像素相关联的显示色彩的视觉失真。将仅详细描述实施例之间的变化。步骤410和430分别与步骤310和330相同。步骤425类似于步骤223。步骤426类似于步骤224。
该映射应提供可解码的L′U′V′,从这个方面来看,S不是虚数的。然而,由于L’U’V’被压缩且解压缩,编码损耗可能引起输入三元组(L’,U’V’),使得为负且并非实数。一种解决方案在于将阈值限为1,导致但是,这样破坏了解码后的RGB的亮度界限。将虚数值替换为相当于增加Y。例如,如果得到则将Y二倍导致但在这种情况下,RGB的界限Y也同样被二倍。这样导致非常亮的像素出现在被设置为零且没有进一步处理的地方。
如步骤420所示,另外执行以下过程以便在找到解决方案时保留边界。在子步骤419,通过将解码后的U’V’乘以βY’(Ba,L)来确定
在单独的子步骤中确定第二分量在子步骤421中,仅确定即确定两个色度分量的乘积和平方值的线性组合。在下一子步骤422中,检查导致正值还是负值。
如果则是实数的,并且用该继续进行解码(子步骤423),其对应于图3所示的处理。
如果则S是虚数的,并且处理继续到子步骤424,其中变量和被重新缩放,以通过执行以下步骤来得到实数解
o设置和
o在剩下的解码过程中用代替
o设置
所描述的过程提供了合适的解,其在从几何上分析该问题时变得明显:等式
在R#G#B#空间中定义了椭球体,并且
在相同空间中定义了两个平面的交叉,即,线条。因此,所述解是椭球体和线的交点。这个交点为以下情况:
·在S是虚数的情况下为空;
·在S=0的情况下为一个点,该线与椭球体相切;
·在S>0的情况下有两个点,并且由于根据定义R#G#B#是正值,必须取正值点。
在另一子步骤425中,类似于步骤223,根据恢复
现参考图5,示意性地示出了根据本公开另一实施例的从至少一个比特流中解码色彩画面的方法500的步骤的图。所示出的实施例实际上是对图4所示的解码方法的修改。即,去除中间量R#、G#、B#值与重构后的线性亮度信号的平方根(即,√YHDR)的相乘。
将仅详细描述实施例之间的变化。步骤530与步骤430相同。
在步骤510中,将非线性动态扩展函数应用于亮度L以便生成作为扩展范围亮度的第一分量YHDR。动态扩展函数g-1是已经应用于当对色彩画面进行编码时获得的原始亮度分量的动态减小函数g的逆函数,例如,YHDR=g-1(Ba,LsDR)。因此,在这种情况下,获得亮度YHDR,而不是如同图4的实施例的步骤410获得其平方根。
步骤520是图3的步骤320或图4的步骤420的修改版本。没有进一步公开图5与图3和4的步骤相同(即,直到获得的步骤)的步骤。在该实施例中,解码后的不像在图3和4的实施例中那样乘以√Y以重新缩放。
在步骤5200中,首先对进行平方,然后将其乘以矩阵M,以获得已知CIE1931XYZ色彩空间的(xnorm,znorm)色彩分量。M是被定义为本领域已知用于将信号从RGB映射到XYZ色彩空间的M3x3矩阵的一部分的[2x3]矩阵。
在步骤5210中,应用色彩转换矩阵。更确切地说,矢量(xnorm,1,znorm)t首先乘以在步骤510获得的YHDR,然后乘以3×3矩阵N。N是本领域已知的用于将信号从XYZ映射到RGB色彩空间的3×3矩阵。因此,N是M3x3的逆矩阵。
本实施例提供若干优点。首先,亮度分量经历较少的处理(例如,没有平方根)。其次,亮度和色度分量被分别处理。因此,重构后的HDR亮度更准确,即,更接近原始亮度。第三,每个步骤最多处理三个分量。在之前的实施例中,处理四个分量(例如),因此需要更多的存储器。
图6是图5的实施例的另一表示。与结合图4公开的实施例相反,去除将中间解码R#、G#、B#值与重构线性亮度信号的平方根的相乘。
相反,在两个单独的处理通道(信道)中进行对给定像素的色度和亮度值的重构。它们的混合是在解码过程的最后一步完成的,以便提供重构HDR RGB线性信号。
在步骤600中,比特流被解码为表示SDR内容的L'U'V'分量。解码例如符合HEVC视频编码标准。
在步骤630中,L′U'V'被色彩转换成经转换的LUrVr分量。色彩转换通常采用3×3矩阵的形式,其可能在亮度上具有额外的“最大”运算符。该步骤旨在修改色彩分量同时保持SDR动态范围。该步骤例如包括步骤530和另外的步骤419的子步骤。
在步骤640中,表示SDR内容的经转换的LUrVr分量接着被转换成表示HDR内容的分量(称为逆转移处理)。该步骤包括逆转移操作,其取决于分量而有所不同。在示例性实施例中,在步骤6400中,在单独的信道中处理亮度L。因此,“Inv TF Luma”6400在线性光域下对亮度HDR信号解码:
YHDR=g-1(Ydec,Ba))
其中Ydec是由视频解码器(例如,HEVC解码器)提供的亮度值,并且g-1是在编码器侧施加到线性光HDR亮度的非线性函数的逆函数。
在步骤6410中,CIE XYZ色彩空间中的两个归一化色彩分量值(xnorm,znorm)被重构为在步骤630处获得的输入(Ur,Vr)色度值的函数。在一个示例性实施例中,该步骤包括:
·如前面结合图5所解释的那样计算T(步骤421)。
·如前面结合图5所解释的那样计算作为T的函数的S(步骤423和424)。
·通过向分量值应用YUV到RGB的3x3矩阵变换,来计算中间值(步骤425)。
·通过向平方后的色彩值应用RGB至XZ 2x3矩阵变换来计算CIE XYZ色彩空间下的结果(Xnorm,znorm)(步骤5200)。
在步骤650中,将色彩转换矩阵应用于Y和(xnorm,znorm)分量。在一个示例性实施例中,应用“色彩转换矩阵”包括以下操作:
(R,G,B)t=N.YHDR.(xnorm,1,znorm)t
其中N是3×3矩阵,YHDR是从逆亮度转移函数获得的亮度(步骤6400),(xnorm,znorm)是从“色彩转移”获得的色彩分量样本(步骤6410)。
如图7所述,在可选步骤610中,分量从420格式变换到444格式。
在可选步骤620中,通过将解码后的U和V值减去512,在0附近对UV分量移位。移位后的值被表示为UcVc。
因此,图6和图7是结合图5描述的图的高级图。因此,图6中的一些步骤可以被除了结合图5公开的过程之外的其他过程代替。
在图8所示的另一实施例中,所提出的解码方案包括诸如“交叉平面色彩增强”模块605和“动态范围自适应”模块635和636的附加单元。这些附加解码步骤被公开在以下Mpeg稿件中:Response to Call for Evidence for HDR and WCG Video Coding:Arris,Dolby and InterDigital”,Arris Inc.,Dolby Laboratories Inc.and InterDigitalCommunications,LLC,,ISO/IEC JTC1/SC29/WG11MPEG2015/M36264,2015年6月,Warsaw,Poland。
CPCE解码步骤在于色彩分量和亮度分量高通滤波处理,这使得解码画面更接近在编码器侧的原始版本。它可以放置在解码过程中的任何地方(在模块610之前或之后或甚至在模块630之后)。
信号动态范围自适应在于应用于一个或多个信号分量的乘法因子以及然后附加偏移量,以使该信号以对压缩效率更有效的方式表示。动态范围自适应也可以放置在模块610之前或之后。
结合图6、7或8提出的新解码器架构适于适合统一的通用HDR解码架构,其示出在图9中。图9描绘了通用解码模块和从HDR视频编码器接收的相关联的元数据。
在这种统一架构中,通用模块630、640和650可以实现不同的操作。根据来自元数据的信息(例如,color_conversion_typ),可以应用一个操作而不是另一个。色彩转换步骤630通常采用3×3矩阵的形式,其可能在亮度上具有额外的“最大”运算符。它通过对色彩转换类型加以指示的标志color_conversion_type进行参数化。根据第一标志值,色彩校正可以采用先前描述的色彩校正的形式(诸如,结合图5公开的步骤530和419)。在另一实施例中,色彩校正包括从IPT到LMS色彩空间的色彩空间转换,如在图10所公开的文档Responseto Call for Evidence for HDR and WCG Video Coding:Arris,Dolby andInterDigital”,Arris Inc.,Dolby Laboratories Inc.and InterDigitalCommunications,LLC,,ISO/IEC JTCl/SC29/WGll MPEG2015/M36264,2015年6月,Warsaw,Poland中所规定地。在第一种情况下,色彩转换由a、b参数和β″查找表进行参数化,可以从编码流中将其接收作为元数据。
第一分量逆转移步骤6400包括将逆非线性应用于亮度编码的信号,其中根据标志inv_transfer_type的值,所述亮度编码的信号是YUV空间的Y分量,或LMS的L分量。在YUV色彩空间的情况下,可以通过单个Ba参数的查找表来对逆转移函数参数化,其中可以从比特流中接收所述查找表以及语法元素inv_transfer_type。
第二分量和第三分量逆转移步骤6410也通过接收到的语法元素inv_transfer_type来指定。根据此语法元素的值,它可以包括在前面描述的色彩校正。根据另一标志值,它可以包括向LMS色彩空间的分量(M,S)应用逆非线性(MPEG2015/M36264,June 2015,Warsaw,Poland”)。
应用色彩转换矩阵步骤650包括将解码后的信号从用于解压缩的色彩转换到输出线性光RGB色彩空间。此外,根据专用语法元素color_conv_mat_id的值,可以采取(XYZ到RGB)或(LMS到RGB)色彩空间转换的形式。
应该注意的是,图9顶部的元数据(例如,a、b、LUTβ、Ba)取决于所应用的色彩转换、逆转移和色彩矩阵的类型。因此,在一些配置中,这些元数据不存在,因此不被使用。
以上公开的语法元素color_conversion_type、inv_transfer_type和color_conv_mat_id可以被编码在SEI消息中(SEI是“补充增强信息”的英文首字母缩写)。它们可以被定义为二进制标志。
在图1至图10中,步骤和子步骤也可以被认为是模块或功能单元,其可以与可区分的物理单元相关或可以与其无关。例如,这些模块或其中的一些模块被一起引入到单个组件或电路中,或者对软件的功能有贡献。相反,一些模块可能由分离的物理实体组成。与本公开相兼容的装置是使用纯硬件(比如,使用诸如专用集成电路ASIC(ApplicationSpecific Integrated Circuit)、现场可编程门阵列FPGA(Field-Programmable GateArray)、超大规模集成VLSI(Very Large Scale Integration)之类的专用硬件)来实现的,或者使用来自设备中所嵌入的若干集成电子组件或来自硬件组件与软件组件的混合物的组件来实现。
在图11中,椭球体和线示出在R#G#B#空间中。在图11中,椭球体由球体表示。在没有解的情况下,该线条不会与球体相交(左侧)。设置S=0相当于增大椭球体,这本身就相当于使以√Y为半径的椭球体膨胀。图11所示的所选解是将线上移到接触椭球体的点(右侧)。然后,通过构建,解R#G#B#在半径为√Y的椭球体上且保留边界。
根据其他方面,本公开涉及一种包括配置为实施上述方法的处理器在内的设备、包括程序代码指令以在计算机上执行该代码时执行上述方法的步骤的计算机程序产品、其中存储了使处理器至少执行上述方法的步骤的指令的处理器可读介质以及承载用于在计算设备上执行程序代码时执行上述方法的程序代码的指令的非瞬时存储介质。
图12示出了根据非限制性实施例的被配置为从流中解码HDR画面的接收器150的示例性架构。
接收机150包括一个或多个处理器1100,其可以包括例如CPU、GPU和/或DSP(数字信号处理器的英文首字母缩略词)以及内存1510(例如RAM、ROM和/或PROM)。接收机150包括:一个或多个通信接口1110,每个通信接口适用于显示输出信息和/或允许用户输入命令和/或数据(例如,键盘、鼠标、触摸板、网络摄像机);以及电源1120,其可以在接收机150的外部。接收机150还可以包括一个或多个网络接口(未示出)。解码器模块1140表示可以在用于执行解码功能的设备中包括的模块。附加地,解码器模块1140可以实现为接收机150的单独元件,或可以包括在处理器1100中,作为本领域技术人员熟知的硬件和软件的结合。
可以从源获得所述流。根据不同实施例,所述源可以是且不限于以下项:
-本地存储器,例如视频存储器、RAM、闪存、硬盘;
-存储器接口,例如与大容量存储器、ROM、光盘或磁性载体的接口;
-通信接口,例如有线接口(例如,总线接口、广域网接口、局域网接口)或无线接口(例如,IEEE 802.11接口或蓝牙接口);以及
-画面捕捉电路(例如,传感器,如CCD(电荷耦合器件)或CMOS(互补金属氧化物半导体))。
根据不同实施例,解码后的HDR画面可以被发送给目的地,例如,显示设备。例如,将解码后的HDR画面存储在远程或本地存储器中,诸如,视频存储器或RAM、硬盘。在变型中,将解码后的HDR画面发送到存储器接口,例如,与大容量存储器、ROM、闪存、光盘或磁性载体的接口,和/或经过通信接口(例如,到点对点链路、通信总线、点对多点链路或广播网络的接口)进行传输。
根据示例性和非限制性实施例,接收机150还包括存储器1130中所存储的计算机程序。计算机程序包括指令,当接收机150执行该指令时(具体地,由处理器1100执行),使得接收机能够执行参考图2至10所述的至少一个解码方法。根据变型,计算机程序存储在接收机150外部的非暂时性数字数据载体上(例如,本领域公知的外部存储介质(例如HDD、CD-ROM、DVD、只读和/或DVD驱动和/或DVD读/写驱动)上)。因此,接收机150包括用以读取计算机程序的机制。此外,接收机150可以通过通用串行总线(USB)端口(未示出)来访问对应的一个或多个USB型存储设备(例如“存储棒”)。
根据示例和非限制性实施例,接收机150可以是且不限于以下项:
-移动设备;
-通信设备;
-游戏设备;
-机顶盒;
-电视机;
-平板电脑(或平板计算机);
-膝上型计算机;
-显示器;以及
-解码芯片;
图13示出了根据非限制性实施例的被配置为编码流媒体中的画面的发射机100的示例性架构。
发射机100包括一个或多个处理器1000,其可以包括例如CPU、GPU和/或DSP(数字信号处理器的英文首字母缩略词)以及内存1030(例如RAM、ROM和/或PROM)。发射机100包括:一个或多个通信接口1010,每个通信接口适用于显示输出信息和/或允许用户输入命令和/或数据(例如,键盘、鼠标、触摸板、网络摄像机);以及电源1020,其可以在发射机100的外部。发射机100还可以包括一个或多个网络接口(未示出)。编码器模块1040表示可以在用于执行编码功能的设备中包括的模块。附加地,编码器模块1140可以实现为发射机100的单独元件,或可以包括在处理器1000中,作为本领域技术人员熟知的硬件和软件的结合。
可以从源获得要编码的画面。根据不同实施例,所述源可以是且不限于以下项:
-本地存储器,例如视频存储器、RAM、闪存、硬盘;
-存储器接口,例如与大容量存储器、ROM、光盘或磁性载体的接口;
-通信接口,例如有线接口(例如,总线接口、广域网接口、局域网接口)或无线接口(例如,IEEE 802.11接口或蓝牙接口);以及
-图像捕获电路(例如,诸如CCD(或电荷耦合器件)或CMOS(或互补金属氧化物半导体)之类的传感器)。
根据不同的实施例,可以向目的地发送流媒体。作为示例,将流媒体存储在远程存储器或本地存储器中,例如,视频存储器或RAM、硬盘。在变型中,将流媒体发送到存储器接口,例如,与大容量存储器、ROM、闪存、光盘或磁性载体的接口,和/或经过通信接口(例如,到点对点链路、通信总线、点对多点链路或广播网络的接口)进行传输。
根据示例性和非限制性实施例,发射机100还包括存储器1030中所存储的计算机程序。计算机程序包括指令,当发射机100执行该指令时(具体地,由处理器1000执行),使得发射机100能够执行参考图1所述的编码方法。根据变型,计算机程序存储在发射机100外部的非暂时性数字数据载体上(例如,本领域公知的外部存储介质(例如HDD、CD-ROM、DVD、只读和/或DVD驱动和/或DVD读/写驱动)上)。因此,发射机100包括用以读取计算机程序的机制。此外,发射机100可以通过通用串行总线(USB)端口(未示出)来访问对应的一个或多个USB型存储设备(例如“存储棒”)。
根据示例和非限制性实施例,发射机150可以是且不限于以下项:
-移动设备;
-通信设备;
-游戏设备;
-平板电脑(或平板计算机);
-膝上型计算机;
-静态图像相机;
-视频相机;
-编码芯片;
-静态图像服务器;以及
-视频服务器(例如,广播服务器、视频点播服务器或网络服务器);
可以例如用方法或过程、装置、软件程序、数据流或信号来实现本文所描述的实施方式。虽然仅在单一形式的实现的上下文中进行讨论(例如,仅作为方法或设备进行讨论),但是所讨论的特征的实现还可以以其他形式(如程序)来实现。设备可以以例如适当的硬件、软件和固件来实现。所述方法可以被实现于诸如处理器的设备中,所述处理器一般地是指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑器件。处理器还包括通信设备(例如计算机、蜂窝电话、便携/个人数字助理(“PDA”))以及促进终端用户之间的信息通信的其他设备。
这里所述的多种处理和特征的实现方案可以体现在多种不同设备或应用中,具体地,例如,设备或应用。这种设备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、网络服务器、机顶盒、膝上型计算机、个人电脑、蜂窝电话、PDA以及其他通信设备。应当清楚,设备可以是移动的,甚至安装在移动交通工具中。
此外,可以通过由处理器执行的指令实现所述方法,而且这些指令(和/或通过实现产生的数据值)可以存储在处理器可读介质上,诸如集成电路、软件载体或其他存储设备,例如硬盘、压缩盘(“CD”)、光盘(诸如DVD,其通常称为数字多功能盘或数字视频盘)、随机存取存储器(“RAM”)或只读存储器(“ROM”)。指令可以形成在处理器可读介质上有形体现的应用程序。指令可以位于例如硬件、固件、软件或其组合中。可以在例如操作系统、单独应用或这两者的组合中发现指令。因此,处理器可以被表征为例如配置用于执行处理的设备和包括具有用于执行处理的指令的处理器可读介质的设备(诸如,存储设备)。此外,处理器可读介质可以存储实现所产生的数据值,作为对指令的添加或替代。
本领域技术人员应清楚,实施方式可以产生被格式化为携带例如所存储的或所传输的信息的多种信号。信息可以包括例如用于执行方法的指令、或通过描述的实施方式之一所产生的数据。例如,信号可以被格式化为将用于写入或读取所述实施例的语法的规则作为数据进行携带,或将由所述实施例写入的真实语法值作为数据进行携带。这种信号可被格式化为例如电磁波(例如使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码或者使用已编码数据流对载波进行调制。信号携带的信息可以是例如模拟或数字信息。可以通过公知的多种不同的有线或无线链路来传输该信号。信号可以存储在处理器可读介质上。
已经描述了多个实现。然而,将理解,可以进行各种修改。例如,可以组合、增补、修改或去除不同实施方式的元素,以便产生其他实施方式。附加地,本领域普通技术人员将理解的是,其他结构或过程可以替代那些公开的结构或过程,并且所得到的实施方式将用至少基本相同的方式来执行至少基本相同的功能,以实现与所公开的实施方式基本相同的结果。因此,本申请还涵盖这些实现和其他实现。