具体实施方式
下文将参考附图更充分地对本公开进行描述,附图中示出了本公开的实施例。然而,本公开可以按多种备选形式来体现,并且不应当被解释为限于本文阐述的实施例。因此,尽管本公开容易有各种改型和备选形式,但仅通过示例在附图中示出了特定实施例,并将在本文中对所述特定实施例进行详细描述。然而,应该理解,并不旨在将本公开限制于所公开的特定形式,相反地,本公开旨在涵盖落入由权利要求限定的本公开的精神和范围内的所有变型、等同物和/或备选方案。
本文中所使用的术语仅仅是为了描述特定实施例的目的,而不是意在限制本公开。如本文中使用的,单数形式“一”,“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。还应理解,术语“包括”、“具有”和/或“包含”在本说明书中使用时,表示存在所陈述的特征、整数、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合。此外,当提及元件“响应于”或“连接”到另一个元件时,它可以直接响应或连接到另一个元件,或者可以存在中间元件。相反,当提及元件“直接响应于”或“直接连接”到另一元件时,不存在中间元件。如本文中所使用的,术语“和/或”包括一个或多个相关联列出的项目的任意和所有组合,并且可以简写为“/”。
应当理解,尽管术语“第一”、“第二”等可以在本文中用于描述各种元件,但是这些元件不应该受这些术语的限制。这些术语仅用来将元件彼此区分。例如,在不脱离本公开教导的情况下,第一元件可以被称为第二元件,并且类似地,第二元件也可以被称为第一元件。
尽管一些图包括通信路径上的箭头以指示通信的主要方向,但是应当理解,通信可以在与所示出的箭头的相反方向上发生。
针对其中每个块表示电路元件、模块或如下代码的一部分的框图和操作流程图来描述一些实施例,所述代码的一部分包括用于实现指定逻辑功能的一个或多个可执行指令。还应当注意,在其它备选实现中,块中标注的功能可以不按照标注的顺序发生。例如,事实上,根据所涉及到的功能,连续示出的两个块可以实质上同时执行,或者块有时可以以相反的顺序执行。
本文中对“示例”、“一个实施例”或“实施例”的引用意味着:结合实施例或示例所描述的特定特征、结构或特性可以包括在本公开的至少一个实现中。说明书中各处出现的短语“在一个实施例中”、“根据实施例”、“在一个示例中”或“根据示例”不一定全部指代相同的实施例或示例,并且单独的或备选的实施例或示例也不一定与其它实施例或示例相互排斥。
权利要求中出现的附图标记仅仅是说明性的,并且对权利要求的范围没有限制作用。
尽管没有明确描述,但是本实施例及其变例可以以任何组合或子组合的形式来使用。
本原理被描述用于编码/解码图像,但扩展到了图像序列(视频)的编码/解码,因为如下所述,序列的每个图像被顺序地编码/解码。
图2示出了根据本原理的用于对HDR图像IHDR和SDR图像ISDR1两者进行编码的方法的步骤的图。
如上所述,HDR图像IHDR是所捕获的图像(或视频)根据第一等级的色彩分级版本,并且第一SDR图像ISDR1是所述所捕获的图像(或视频)根据第二等级的色彩分级版本。对这种编码方法的约束是:SDR图像ISDR1的色彩等级应该在解码器或具有与SDR图像ISDR1的可视内容非常接近的可视内容的至少一个SDR图像上渲染,以便保持艺术家意图。
在步骤210中,模块TM通过对HDR图像IHDR进行色调映射来获得第二SDR图像ISDR2。
术语“色调映射”是指将HDR图像IHDR的动态范围减小为目标动态范围的任意方法。图8a至图8d、图9、图10a至图10d中给出了色调映射方法的示例,但是本公开不限于特定的色调映射方法。
在步骤220中,模块SDR1到SDR3从第一SDR图像ISDR1获得第三SDR图像ISDR3。
在步骤230中,模块CM获得允许将第二SDR图像ISDR2的色彩映射到第三SDR图像ISDR3的色彩的色彩映射函数CMF,以便使得第二SDR图像ISDR2与第三SDR图像ISDR3之间的差异最小化。
例如,通过使得将通过从SDR图像ISDR2的像素中减去第三SDR图像ISDR3的像素值而计算出的均方差最小化,来获得色彩映射函数。标准HEVC用色彩重映射信息SEI消息(附录D.2.32)给出了色彩映射函数的示例。本公开不限于特定的色彩映射函数,而是可以扩展到任意种类的映射函数。
在步骤240中,编码器ENC1将表示色彩映射函数CMF的信息INF编码到比特流F1中。
根据该方法的实施例,信息INF是允许从色彩映射函数列表中获取色彩映射函数CMF的索引。
根据该方法的实施例,信息INF表示色彩映射函数CMF的参数。
在步骤250中,模块SDR1到SDR4从第一SDR图像ISDR1获得第四SDR图像ISDR4。
在步骤260中,编码器ENC2将第四SDR图像ISDR4编码到比特流F2中。
图3示出了根据本原理的示例的用于对HDR图像IHDR和SDR图像ISDR1进行解码的方法的步骤的图。
在步骤310中,解码器DEC2通过对比特流F2进行解码来获得解码的SDR图像(称为解码的第四SDR图像ISDR4)。
在步骤320中,模块SDR4到SDR1从解码的第四SDR图像ISDR4获得解码的第一SDR图像ISDR1。
在步骤220中,模块SDR1到SDR3从解码的第一SDR图像ISDR1获得解码的第三SDR图像ISDR3。
在步骤330中,解码器DEC1通过至少部分对比特流F1进行解码来获得表示色彩映射函数CMF的信息INF。
根据变例,信息INF表示色彩映射函数CMF的逆。
在步骤340中,模块AP-1通过将对解码的第三SDR图像ISDR3的色彩应用色彩映射函数CMF的逆CMF-1来获得解码的第二SDR图像ISDR2。
在步骤350中,模块ITM通过对解码的第二SDR图像ISDR2应用逆色调映射来获得解码的HDR图像IHDR。
逆色调映射是在图2中的步骤210中所使用的色调映射的逆。
图4示出了如关于图2所描述的用于对HDR图像IHDR和第一SDR图像ISDR1两者进行编码的方法的示例的步骤的图。
对模块SDR1到SDR3以及SDR1到SDR4进行配置,以使得SDR图像ISDR3和ISDR4等于SDR图像ISDR1。
换句话说,这些模块没有实施任何方法。
在步骤230中,然后获得色彩映射函数CMF,以允许将第二SDR图像ISDR2的色彩映射到第一SDR图像ISDR1的色彩,并且在步骤260中,第一SDR图像ISDR1直接被编码器ENC2编码。
根据本原理的这个示例,因此通过对比特流F2进行解码,由调色师进行色彩分级的第一SDR图像ISDR1直接可用。因此,当解码的第一SDR图像ISDR1被显示时,保留了艺术家意图。
图5示出了根据图4的变例的用于对HDR图像IHDR和SDR图像ISDR1两者进行编码的方法的步骤的图。
对模块SDR1到SDR4进行配置,以使得第四SDR图像ISDR4是第一SDR图像ISDR1。因此,通过对比特流F2进行解码,由调色师进行色彩分级的第一SDR图像ISDR1直接可用。因此,当解码的第一图像ISDR1被显示时,保留了艺术家意图。
模块SDR1到SDR3被配置为:通过使用编码器ENC2对第一SDR图像ISDR1进行编码,并且通过根据解码器DEC2对编码的第一SDR图像ISDR1进行解码来获得第三SDR图像ISDR3(步骤310)。
在步骤230中,然后获得色彩映射函数CMF,以允许将SDR图像ISDR2的色彩映射到编码的第一SDR图像ISDR1的解码版本的色彩。
根据编码的第一SDR图像ISDR1的解码版本而不是根据第一SDR图像ISDR1来确定色彩映射函数CMF,导致了(在解码侧获得)解码的第二SDR图像ISDR2,其内容更接近于在编码侧使用的第二SDR图像ISDR2的内容。然后,从解码的第二SDR图像ISDR2以及在编码侧根据所述解码的第二SDR图像ISDR2确定的色彩映射函数而获得的解码的HDR图像具有更接近于原始HDR图像的视觉内容的视觉内容,从而改善了图4的HDR编码/解码方案的性能。
图6示出了如关于图2所描述的用于对HDR图像IHDR和第一SDR图像ISDR1两者进行编码的方法的示例的步骤的图。
对模块SDR1到SDR3进行配置,以使得SDR图像ISDR3是SDR图像ISDR1。
在步骤230中,然后获得色彩映射函数CMF,以允许将第二SDR图像ISDR2的色彩映射到第一SDR图像ISDR1的色彩。
模块SDRI到SDR4包括模块AP(步骤610),以通过对第二SDR图像ISDR2的色彩应用(根据SDR图像ISDR1获得的)色彩映射函数CMF来获得第四SDR图像ISDR4。
因此,第四SDR图像ISDR4的内容接近于第一SDR图像ISDR1的内容,因为色彩映射函数CMF被确定为使得第四SDR图像ISDR4和第一SDR图像ISDR1之间的差异最小化。
图7示出了根据图6的变例的用于对HDR图像IHDR和SDR图像ISDR1两者进行编码的方法的步骤的图。
模块SDR1到SDR3被配置为:通过使用编码器ENC2对第一SDR图像ISDR1进行编码(步骤260),并且通过根据解码器DEC2对编码的第一SDR图像ISDR1进行解码来获得第三SDR图像ISDR3(步骤310)。
根据编码的第一SDR图像ISDR1的解码版本而不是根据第一SDR图像ISDR1来确定色彩映射函数CMF,导致了(在解码侧获得)解码的第二SDR图像ISDR2,其内容更接近于在编码侧使用的第二SDR图像ISDR2的内容。然后,从解码的第二SDR图像ISDR2以及在编码侧根据所述解码的第二SDR图像ISDR2确定的色彩映射函数而获得的解码的HDR图像具有更接近于原始HDR图像的视觉内容的视觉内容,从而改善了图6的HDR编码/解码方案的性能。
根据本原理的示例,在步骤210中,模块TM对HDR图像IHDR应用色调映射算子,以便将HDR图像IHDR的亮度的动态范围减小到目标动态范围。
本发明不限于任意特定的色调映射算子。唯一的条件是色调映射算子应该是可逆的。
例如,可以使用由Reinhard(Reinhard,E.,Stark,M.,Shirley,P.,和Ferwerda,J.,“Photographic tone reproduction for digital images(针对数字图像的逼真的色调再现)”,ACM Transactions on Graphics 21(2002年7月))定义的色调映射算子,或者由Boitard等人(Boitard,R.,Bouatouch,K.,Cozot,R.,Thoreau,D.,&Gruson,A.(2012).Temporal coherency for video tone mapping(视频色调映射的时间一致性).InA.M.J.van Eijk,C.C Davis,S.M.Hammel,&A.K.Majumdar(Eds.),Proc.SPIE 8499,Applications of Digital Image Processing(数字图像处理的应用)(p.84990D-84990D-10))定义的色调映射算子。
图8a至图8d示出了根据本原理的示例的步骤210的子步骤的图。
如图8a所示,模块TM包括模块BAM,模块BAM被配置为从HDR图像IHDR获得背光图像Ba(步骤2101)。
根据图8b所示的步骤2101的实施例,模块BAM包括从HDR图像IHDR的亮度分量L获得背光图像Ba的模块BI。
当HDR图像IHDR属于RGB色彩空间时,例如在709色域中通过由下式给出的线性组合获得亮度分量L:
L=0.2127.R+0.7152.G+0.0722.B
根据实施例,背光图像Ba被确定为由下式给出的形状函数ψi的加权线性组合:
Ba=∑i aiψi (1)
其中,ai是加权系数。
因此,根据亮度分量L来确定背光图像Ba在于:寻找最佳的加权系数(并且如果事先不知道最佳的加权系统的话,还可以寻找最佳的形状函数),以便使得背光图像Ba适合亮度分量L。
存在用于寻找加权系数ai的多种公知的方法。例如,可以使用最小均方差法来使背光图像Ba与亮度分量L之间的均方差最小化。
可以注意到,形状函数可以是显示器背光(例如由LED制成,然后每个形状函数与一个LED的响应相对应)的真实物理响应,或者可以是纯数学构造以便最好地适合亮度分量。
根据如图8c所示的本实施例的变例,模块BAM还包括模块BM,模块BM利用由模块HL的方法所获得的HDR图像IHDR的平均亮度值Lmean来调制背光图像Ba(由方程式(1)给出)。
根据示例,模块HL被配置为计算整个亮度分量L上的平均亮度值Lmean。
根据示例,模块HL被配置为通过下式来计算平均亮度值Lmean:
其中,β是小于1的系数,并且E(X)是亮度分量L的数学期望值(平均值)。
该最后的示例是有利的,因为在HDR图像IHDR属于一系列图像时,该示例避免了平均亮度值Lmean受到具有极高值的几个像素的影响,这种影响通常导致非常令人讨厌的时间平均亮度不稳定性。
本发明不限于用于计算平均亮度值Lmean的特定实施例。
根据图8d所示的变例,模块N通过背光图像Ba(由方程式(1)给出)的平均值E(Ba)来归一化背光图像Ba,使得得到HDR图像的背光图像Bagray(具有等于1的中等灰度)(或者,如果HDR图像属于一系列图像组或一组图像,则得到所有HDR图像的背光图像):
然后,模块BM被配置为通过使用以下关系式,利用HDR图像IHDR的平均亮度值Lmean来调制背光图像Bagray:
Bamod≈cstmod·Lmean·Bagray (2)
其中,cstmod是调制系数,并且α是小于1的另一个调制系数(通常为1/3)。例如,通过最小均方来获得背光图像的cstmod≈1.7。
实际上,通过线性,用于调制背光图像的所有操作都对背光系数ai应用用于将系数ai变换成新的系数的校正因子,从而得到:
本公开不限于用于从HDR图像IHDR获得背光图像Ba的任何方式。
在步骤2102中,在图8a中,通过逐像素地将HDR图像IHDR除以背光图像Ba来获得第二SDR图像ISDR2。
在步骤2103中,编码器ENC3将背光图像Ba编码到比特流F3中。
将HDR图像IHDR除以背光图像Ba减小了HDR图像的动态范围。因此,可以将结合图8a至图8d所描述的方法认为是HDR图像IHDR的色调映射。
图9示出了根据本原理的示例的用于对HDR图像和SDR图像两者进行解码的方法的步骤的图。
当先前已经通过关于图8a至图8d所描述的方法对HDR图像和SDR图像进行了编码时,该示例允许得到HDR图像和SDR图像两者。
在步骤350中,模块ITM包括解码器DEC3,解码器DEC3通过对比特流F3进行解码来获得解码的背光图像Ba(步骤3501)。在步骤3502中,通过将第二SDR图像ISDR2乘以解码的背光图像Ba来获得解码的HDR图像IHDR。
与第二SDR图像ISDR2相比,将第二SDR图像ISDR2乘以解码的背光图像Ba增加了所得到的HDR图像的动态范围,即,这种乘法操作可以被认为是逆色调映射。
图10a至图10c示出了根据本原理的示例的步骤210的子步骤的图。
在该示例中,HDR图像IHDR被认为具有其中表示了HDR图像IHDR的像素值的三个色彩分量Ec(c=1、2或3)。
本公开不限于表示了三个分量Ec的任何色彩空间,而是扩展至诸如RGB、CIELUV、XYZ、CIELab之类的任何色彩空间。
基本上,亮度分量L和两个色度分量C1和C2是根据HDR图像IHDR的三个色彩分量Ec来确定的。亮度分量和色度分量形成了SDR色彩图像,SDR色彩图像的像素值被表示在色彩空间(L,C1,C2)中。所述SDR色彩图像可由传统SDR显示器观看,即具有足够的视觉质量以便由传统SDR显示器观看。
在步骤100a中,模块IC通过线性组合三个分量Ec来获得表示HDR图像IHDR的亮度的分量Y:
其中,A1是3×3矩阵A的第一行,所述3×3矩阵A定义了从(E1,E2,E3)色彩空间到色彩空间(Y,C1,C2)的色彩空间变换。
在步骤130a中,模块BMM从分量Y获得模块值Bm。
根据步骤130a的示例,调制值Bm是分量Y的像素值的平均值、中值、最小值或最大值。可以在线性HDR亮度域Ylin或者在像ln(Y)或Yγ(其中,γ<1)的非线性域中执行这些操作。
在步骤110a中,模块FM通过对分量Y应用非线性函数f来获得亮度分量L:
L=f(Bm,Y) (3)
对分量Y应用非线性函数f减小了分量Y的动态范围。换句话说,与分量Y的动态相比,亮度分量L的动态减小。
基本上,分量Y的动态范围被减小,以便通过使用10比特来表示分量L的亮度值。
根据实施例,在应用非线性函数f之前,将分量Y除以调制值Bm:
L=f(Y/Bm) (4)
根据实施例,非线性函数f是伽马函数。
其中,根据方程式(3)或方程式(4)的实施例,Y1等于Y或者Y/Ba,B是常数值,γ是参数(严格小于1的实数值)。
根据示例,非线性函数f是S-Log函数。
L=a.ln(Y1+b)+c
其中,a、b和c是被确定为使得f(0)和f(1)是不变量的SLog曲线的参数(实数值),并且当通过小于1的伽马曲线延长时,SLog曲线的导数连续为1。因此,a、b和c是参数γ的函数。表1中示出了典型值。
Γ |
a |
B |
c |
1/2.0 |
0.6275 |
0.2550 |
0.8575 |
1/2.4 |
0.4742 |
0.1382 |
0.9386 |
1/2.8 |
0.3861 |
0.0811 |
0.9699 |
表1
在有利的实施例中,接近1/2.5的γ值在HDR压缩性能以及所获得的SDR亮度的良好的可观看性方面是有效的。因此,这3个参数可以有利地采用下面的值:a=0.44955114,b=0.12123691,c=0.94855684。
根据示例,根据分量Y的像素值,非线性函数f是伽马校正或SLog校正。
对亮度分量Y应用伽马校正提升了暗区域,但是不能降低足够的高光以避免明亮像素的燃烧。
然后,根据实施例,模块FM根据亮度分量Y的像素值来应用伽马校正或SLog校正。信息数据Inf可以指示是应用伽马校正还是Slog校正。
例如,当分量Y的像素值小于阈值(等于1)时,应用伽马校正,否则应用SLog校正。
根据示例,当所述方法用于对属于一系列图像的若干个HDR图像进行编码时,为每个HDR图像、图像组(GOP)或HDR图像的一部分(例如但不限于,HEVC中定义的切片或转换单元)确定调制值Bm。
根据实施例,将值Bm和/或非线性函数f的参数(例如,a、b、c或者γ)和/或信息数据Inf存储在本地或者远程存储器和/或添加到比特流F3中。
在步骤120a中,从HDR图像IHDR获得至少一个色彩分量EC(c=1,2,3)。色彩分量Ec可以直接从本地或远程存储器获得,或者通过对HDR图像IHDR应用色彩变换来获得。
在步骤140a中,通过以取决于亮度分量L的因子r(L)对每个色彩分量Ec进行缩放来获得中间色彩分量E’c(c=1、2或3):
其中,r(L(i))是由模块RM确定(步骤150a)的因子(实数值),其取决于分量L的像素i的值,E′c(i)是中间色彩分量E’c的像素i的值,并且Ec(i)是色彩分量Ec的像素i的值。
以因子进行缩放意味着乘以所述因子或者除以所述因子的逆。
以取决于亮度分量L的因子r(L)对每一个色彩分量E’c进行缩放保持了色彩图像IHDR的色彩的色调。
根据步骤150a的示例,因子r(L)是亮度分量L与分量Y的比:
其中,Y(i)是分量Y的像素i的值。实际上,分量Y的像素的值Y(i)明确地取决于亮度分量L的像素的值L(i),使得可以将该比写作仅是L(i)的函数。
该示例是有利的,因为以还取决于分量Y的因子r(L)对每一个色彩分量Ec进行缩放保持了HDR图像IHDR的色彩的色调,并且由此改进了解码的色彩图像的视觉质量。
更确切地,在比色法和色彩理论中,彩度、色度和饱和度是指特定色彩的感知强度。彩度是色彩和灰色之间的差异程度。色度是相对于在相似观看条件下看起来是白色的另一色彩的亮度的彩度。饱和度是相对于色彩自身亮度的色彩的彩度。
色彩丰富的刺激是耀眼的和强烈的,而不那么色彩丰富的刺激显得更加柔和,接近灰色。在根本没有色度的情况下,色彩是“中性”的灰色(任何色彩中均无彩度的图像称为灰度图)。任何色彩都可以根据其彩度(或色度或饱和度)、光亮度(或亮度)和色调来描述。
色彩的色调和饱和度的定义取决于用于表示所述色彩的色彩空间。
例如,当使用CIELUV色彩空间时,饱和度suv被定义为色度与亮度L*之间的比。
然后,色调由下式给出:
根据另一示例,当使用CIELAB色彩空间时,饱和度被定义为色度与亮度的比:
然后,色调由下式给出:
这些方程式是与人对饱和度的感知一致的饱和度和色调的合理预测因子,并且证明了在保持角度a*/b*(或u*/v*)不变的同时调整CIELAB(或CIELUV)色彩空间中的亮度会影响色调,从而影响对相同色彩的感知。在步骤140a中,以相同的因子对色彩分量Ec进行缩放保持该角度,即色调。
现在让我们考虑:在CIELUV色彩空间中表示的HDR图像IHDR以及通过将亮度分量L(与HDR图像IHDR的亮度的动态范围相比,亮度分量L的动态范围减小了(步骤110a))与CIELUV色彩空间的两个色度分量U(=C1)和V(=C2)组合在一起而形成的第二SDR图像ISDR2。因此,人不同地感知第二SDR图像ISDR2的色彩,因为色彩的饱和度和色调改变了。相对于图10a所描述的方法确定了第二SDR图像ISDR2的色度分量C1和C2,以便使得第二SDR图像ISDR2的色彩的色调最佳地匹配HDR图像IHDR的色彩的色调。
根据步骤150a的示例,因子r(L)由下式给出:
该最后一个实施例是有利的,因为该实施例防止了对于非常暗的像素来说所述因子降为零,即无论像素值是多少都允许该比是可逆的。
在步骤160a中,从所述至少一个中间色彩分量E’c中获得两个色度分量C1、C2。
根据图10b所示的步骤160a的实施例,通过对每个中间色彩分量(E’c)应用(步骤161b)OETF来获得至少一个中间分量Dc(c=1、2或3):
例如,OETF由ITU-R推荐标准BT.709或BT.2020定义,并且如下所述:
该实施例允许根据特定的OETF减小动态范围,但导致了如稍后所述的复杂的解码处理。
根据图10c所示的该示例的变例,通过平方根来近似OETF,即通过对每个中间色彩分量(E’c)取平方根(步骤161c)来获得至少一个中间分量Dc(c=1、2或3):
这种变例是有利的,因为它提供了由ITU-R推荐标准BT.709或BT.2020定义的OETF的良好近似,并且导致了低复杂度的解码器。
根据另一变例,通过立方根来近似OETF,即通过对每个中间色彩分量(E’c)取立方根来获得至少一个中间分量Dc(c=1、2或3):
这个变例是有利的,因为它提供了由ITU-R推荐标准BT.709或BT.2020定义的OETF的良好近似,但是它导致了在某种程度上比在通过平方根近似OETF时获得的解码器更复杂的解码器。
在步骤162b中,模块LC1通过线性组合三个中间分量Dc来获得两个色度分量C1和C2:
其中,A2和A3是3×3矩阵A的第二行和第三行。
在如图10a所示的步骤170a中,模块COM通过将亮度分量L和色度分量C1和C2组合在一起来获得第二SDR图像ISDR2。
图11a至图11d示出了根据本原理的示例的用于从至少一个比特流中解码HDR图像和SDR图像的方法的步骤的图。
在步骤111a中,模块DECOMB从第二SDR图像ISDR2获得亮度分量L和两个色度分量C1、C2。
在步骤113a中,模块IFM通过对亮度分量L应用非线性函数f1来获得第一分量Y,使得与亮度分量L的动态相比,第一分量Y的动态增加:
Y=f-1(Ba,L) (5)
非线性函数f1是非线性函数f的逆(步骤110a)。
因此,根据函数f的示例来定义函数f1的示例。
根据示例,值Bm和/或非线性函数f1的参数(例如,a、b、c或γ)和/或信息数据Inf是从本地或远程存储器(例如,查找表)获得的和/或从比特流F3获得的,如图11a所示。
根据实施例,在已经应用了非线性函数f1之后,将亮度分量L与调制值Bm相乘:
Y=Bm*f-1(L) (6)
根据示例,非线性函数f1是伽马函数的逆。
然后,分量Y由下式给出:
其中,根据方程式(5)和(6)的实施例,Y1等于Y或Y/Bm,B是一个常数值,γ是参数(严格小于1的实数值)。
根据实施例,非线性函数f1是S-Log函数的逆。然后,分量Y1由下式给出:
根据实施例,根据分量Y的像素值,非线性函数f是伽马校正或SLog校正的逆。这由信息数据Inf来表示。
在步骤112a中,模块ILC从第一分量Y、两个色度分量C1、C2以及从取决于亮度分量L的因子r(L)获得至少一个色彩分量Ec。然后,通过将所述至少一个色彩分量Ec组合在一起来获得解码的HDR图像IHDR。
因子r(L)可以从本地或远程存储器(例如查找表)获得或者从比特流获得。
当对每个中间色彩分量E’c应用通用OETF(图10b中的步骤161b)时,中间分量Dc与分量Y、两个色度分量C1、C2以及因子r(L)相关:
以及
其中,EOTF(电光转换函数)是在步骤161b中所应用的OETF的逆。
方程式(7b)提供了
其中,OETF(Ec)=Dc,θi是取决于矩阵A的常数,并且Li也是取决于矩阵A的线性函数。那么,方程式(7a)变成:
r(L)*Y=A11EOTF(D1)+A12EOTF(D2)+A13EOTF(D3) (9)
且:
r(L)*Y=A11EOTF(D1)+A12EOTF(θ2D1+L2(C1,C2))+
A13EOTF(θ3D1+L3(C1,c2) (10)
方程式(10)是只与D1有关的隐式方程式。取决于EOTF的表达式,可以或多或少简单地解出方程式(10)。一旦解出,获得D1,然后通过方程式(8)根据D1推导出D2、D3。然后,通过对三个获得的中间分量Dc应用EOTF,获得中间色彩分量E’c,即E’c=EOTF(Dc)。
在这种一般情况下,即当对每个中间色彩分量E’c应用通用EOTF(不具有任何特定属性)时,方程式(10)不存在解析解。例如,当OETF是ITU-R BT.709/2020OETF时,可以通过使用所谓的牛顿方法或任何其它数值方法来数值地求解方程式(10)以找到正则函数的根。然而,这导致了高度复杂的解码器。
在这种一般情况下,根据如图11b所示的步骤112a的第一示例,在步骤1121a中,模块ILEC如上所述地从第一分量Y、两个色度分量C1、C2以及因子r(L)获得三个中间色彩分量E′c。在步骤1122a中,通过以因子r(L)对每一个中间色彩分量E’c进行缩放来获得三个色彩分量Ec:
Ec(i)=E′c(i)/r(L(i))
其中,r(L(i))是由步骤150a给出的取决于分量L(步骤111a的输出)的像素i的值的因子,E′c(i)是中间色彩分量E’c的像素i的值,Ec(i)是色彩分量Ec的像素i的值。
实际上,步骤1121a在步骤1122a之前的这种顺序是解码方法的步骤161b之后为步骤162b(图10b)的顺序的逆。
根据该第一示例的变例,OEFT是平方根函数,于是EOTF是平方函数。
根据该第一示例的另一变例,OEFT是立方根函数,于是EOTF是立方函数。
当在步骤161b中使用的OETF满足换算条件时,即
OETF(x×y)=OETF(x)×OETF(y),
分量Y和色彩分量Ec通过下式相关:
其中,Fc是等于OETF(Ec)的分量,并且
使得换算条件提供了下式:
方程式(11)提供了
其中,θi是取决于矩阵A的常数,并且Li是也取决于矩阵A的线性函数。
那么,方程式(11)变成:
Y=A11EOTF(F1)+A12EOTF(F2)+A13EOTF(F3) (13)
且:
Y=A11EOTF(F1)+A12EOTF(θ2F1+L2(c′1,c′2))+
A13EOTF(θ3F1+L3(c′1,c′2) (14)
当OETF满足换算条件时,根据如图11c所示的步骤112a的第二示例,在步骤1121c中,通过以因子OEFT(r(L(i)))(其中OETF是图10b中的步骤161b中所使用的函数)缩放两个色度分量C1和C2,来获得两个中间分量C’1和C′2:
其中,r(L(i))是由步骤150a给出的取决于分量L(步骤111a的输出)的像素i的值的因子,C′1(i)、C′2(i)分别是分量C’1和C’2的像素i的值,并且C1(i)、C2(i)分别是分量C1和C2的像素i的值。
在步骤1122c中,如上所述,模块ILEC从第一分量Y和两个中间色度分量C’1、C’2获得三个色彩分量Ec。
根据该第二示例的变例,OEFT是平方根函数,于是EOTF是平方函数。然后,在步骤1122c中,通过以因子缩放两个色度分量C1和C2,来获得两个中间分量C’1和C’2:
方程式(11)变成:
以及
使得所述换算提供:
方程式(14)变成:
以及
方程式(17)是可以解析求解的二阶方程式。该解析求解导致如图11d所示的步骤1122c的特定实施例。该实施例是有利的,因为其允许实现EOPTF(OETF的逆)的解析表达式,并且因此允许HDR图像的解码分量的表达式。此外,EOTF则是解码侧的低复杂度处理的平方函数。
在步骤11221c,模块SM通过将两个中间色度分量C′1、C′2和第一分量Y组合在一起,来获得第二分量S:
其中,k0、k1和k2是参数值,并且表示分量C′c(c=1或2)的平方。
在步骤11222c中,模块LC2通过将中间色度分量C’1、C’2和第二分量S线性地组合在一起来获得三个求解分量Fc:
其中,C是被定义为矩阵A的逆的3×3矩阵。
在步骤11223c中,通过对每个中间色彩分量(Dc)取平方来获得三个色彩分量Ec:
矩阵A确定了HDR图像IHDR将从色彩空间(E1,E2,E3)(要被编码的HDR图像的像素值被表示在该空间中)编码到色彩空间(Y,C1,C2)的变换。
这样的矩阵取决于要被编码的HDR图像IHDR的色域。
例如,当在由ITU-R Rec.801定义的BT709色域中表示要被编码的HDR图像时,矩阵A由下式给出:
并且,矩阵C由下式给出:
根据该第二实施例的变例,OETF是立方根函数,于是EOTF是立方函数。然后,在图11c的步骤1121c中,于是可以通过以因子缩放两个色度分量C1和C2,来获得两个中间分量C’1和C’2:
于是,EOTF是立方函数,因此导致关于F1的方程式(17)是更复杂的三阶方程式,所述三阶方程式可以通过所谓的Cardano方法解析地求解。
针对四阶方程式也存在非常复杂的解析求解(Ferrari方法),但是如Abel-Ruffini理论所陈述的,针对大于或等于五阶的任何阶次的方程式而言,则不再存在解析求解。
解码器DEC1(相对应地,DEC2和DEC3)被配置为对已经由编码器ENC1(相对应地,ENC2和ENC3)编码的数据进行解码。编码器ENC1和/或ENC2和/或ENC3(以及解码器DEC1和/或DEC2和/或DEC3)可以是基于块的处理。
编码器ENC1和/或ENC2和/或ENC3(以及解码器DEC1和/或DEC2和/或DEC3)不限于特定的编码器(解码器)。
根据实施例,编码器ENC1被配置为将信息INF编码在SEI消息(比如,如HEVC标准(附件D.2.32)中所定义的色彩重映射信息SEI消息)中。
根据实施例,编码器ENC3被配置为:将背光图像Ba编码为辅助图像,或者通过使用如HEVC标准中所描述的帧封装(附件D.2.16)来对背光图像Ba进行编码,或者将加权系数和可能的形状函数编码在SEI消息(HEVC标准,附件D1)中。
根据实施例,解码器DEC3被配置为:解码的背光图像Ba从辅助图像或如HEVC标准中所描述的编码在比特流F1中的封装帧中获得,或者从比特流F1中的SEI消息中获得的加权系数和可能的形状函数获得。
编码器ENC1和/或ENC2(以及解码器DEC1和/或DEC2)不限于特定的编码器,其可以是例如具有像JPEG、JPEG2000、MPEG2、HEVC推荐标准或H264/AVC推荐标准一样的损耗的图像/视频编码器(“Advanced video coding for generic audiovisual Services”,SERIESH:AUDIOVISUAL AND MULTIMEDIA SYSTEMS,Recommendation ITU-T H.264,Telecommunication Standardization Sector of ITU,(February 2014)(“通用视听业务的高级视频编码”,H系列:视听和多媒体系统,推荐标准ITU-T H.264,国际电联电信标准化部门,(2014年2月))。
可以将比特流F1、F2、F3复用在一起,以形成单个比特流。
在图1至图11d中,模块是可以与可区分的物理单元相关或者不相关的功能单元。例如,这些模块或其中的一些模块可以被一起引入到单个组件或电路中,或者贡献于软件的功能。相反,一些模块可以由分离的物理实体组成。与本公开相兼容的装置是使用纯硬件(比如,使用诸如《Application Specific Integrated Circuit》、《Field-ProgrammableGate Array》、《Very Large Scale Integration》中分别记载的ASIC或FPGA或VLSI之类的专用硬件)来实现的,或者使用来自设备中所嵌入的若干集成电子组件或来自硬件组件与软件组件的混合物的组件来实现。
图12示出了设备1200的示例性架构,所述设备1200可以被配置为实现关于图1至图11d所描述的方法。
设备1200包括通过数据和地址总线1201连接在一起的以下元件:
-微处理器1202(或CPU),其例如是DSP(或数字信号处理器);
-ROM(或只读存储器)1203;
-RAM(或随机存取存储器)1204;
-I/O接口1205,用于从应用接收要发送的数据;以及
-电池1206。
根据示例,电池1206位于设备外部。在所提及的每个存储器中,说明书中使用的词语“寄存器”可以对应于小容量的区域(一些比特)或非常大的区域(例如整个程序或大量的接收或解码的数据)。ROM 1203至少包括程序和参数。ROM 1203可以存储用于执行根据本原理的技术的算法和指令。当接通时,CPU 1202将程序上传到RAM中并执行对应的指令。
RAM 1204包括:在寄存器中的由CPU 1202执行的并在接通设备1200之后被上传的程序、在寄存器中的输入数据、在寄存器中的处于方法的不同状态的中间数据、以及在寄存器中的用于执行所述方法的其它变量。
可以例如用方法或处理、装置、软件程序、数据流或信号来实现本文所描述的实现。尽管仅在单一形式的实现的上下文中进行讨论(例如,仅作为方法或设备进行讨论),但是所讨论的特征的实现还可以以其它形式(例如程序)来实现。装置可以以例如适当的硬件、软件和固件来实现。所述方法可以以诸如处理器的装置来实现,所述处理器一般指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑器件。处理器还包括通信设备(例如,计算机、蜂窝电话、便携/个人数字助理(“PDA”)等)以及促进终端用户之间的信息通信的其它设备。
根据编码或编码器的示例,从源获得HDR或SDR图像。例如,源属于包括以下各项的集合:
-本地存储器(1203或1204),例如视频存储器或RAM(或随机存取存储器)、闪存、ROM(或只读存储器)、硬盘;
-存储接口(1205),例如与大容量存储器、RAM、闪存、ROM、光盘或磁性支撑体的接口;
-通信接口(1205),例如有线接口(例如,总线接口、广域网接口、局域网接口)或无线接口(例如,IEEE 802.11接口或接口);以及
-图像捕获电路(例如,传感器,如CCD(或电荷耦合器件)或CMOS(或互补金属氧化物半导体))。
根据解码或解码器的示例,将解码的SDR或HDR图像发送到目的地;具体地,目的地属于包括以下各项的集合:
-本地存储器(1203或1204),例如视频存储器或RAM、闪存、硬盘;
-存储接口(1205),例如与大容量存储器、RAM、闪存、ROM、光盘或磁性支撑体的接口;
-通信接口(1205),例如有线接口(例如,总线接口(例如,USB(或通用串行总线))、广域网接口、局域网接口、HDMI(高清多媒体接口)接口))或无线接口(例如,IEEE 802.11接口、或 接口);以及
-显示器。
根据编码或编码器的示例,将比特流F1、F2和/或F3发送至目的地。作为示例,将比特流F1、F2和F3之一或两个比特流存储在本地或远程存储器(例如,视频存储器(1204)或RAM(1204)、硬盘(1203))中。在变例中,将一个或两个比特流发送到存储接口(1205)(例如,与大容量存储器、闪存、ROM、光盘或磁性支撑体的接口),和/或通过通信接口(1205)(例如,到点对点链路、通信总线、点对多点链路或广播网络的接口)进行发送。
根据解码或解码器的示例,从源获得比特流F1、F2和/或F3。示例性地,从本地存储器(例如,视频存储器(1204)、RAM(1204)、ROM(1203)、闪存(1203)或硬盘(1203))读取比特流。在变例中,从存储接口(1205)(例如,与大容量存储器、RAM、ROM、闪存、光盘或磁性支撑体的接口)接收比特流,和/或从通信接口(1205)(例如,到点对点链路、总线、点对多点链路或广播网络的接口)接收比特流。
根据示例,被配置为实现关于图2、图4至图8d、图10a至图10c中的一个所描述的编码方法的设备1200属于包括以下各项的集合:
-移动设备;
-通信设备;
-游戏设备;
-平板电脑(或平板计算机);
-膝上型电脑;
-静止图像相机;
-视频相机;
-编码芯片;
-静止图像服务器;以及
-视频服务器(例如,广播服务器、视频点播服务器或web服务器)。
根据示例,被配置为实现关于图3、图9、图11a至图11d中的一个所描述的解码方法的设备1200属于包括以下各项的集合:
-移动设备;
-通信设备;
-游戏设备;
-机顶盒;
-电视机;
-平板电脑(或平板计算机);
-膝上型电脑;
-显示器以及
-解码芯片。
根据图13所示的实施例,在通过通信网络NET的两个远程设备A和B之间的发送情境中,设备A包括与(1)中所述的存储器RAM和ROM相关的处理器,并且设备B包括与(2)中所述的存储器RAM和ROM相关的处理器,其中,(1)所述存储器RAM和ROM被配置为实现如关于图2、图4至图8d、图10a至图10c中的一个所描述的用于对图像进行编码的方法,(2)所述存储器RAM和ROM被配置为实现如关于图3、图9、图11a至图11d中的一个所描述的用于解码的方法。
根据一个示例,网络是适于将来自设备A的静止图片或视频图像广播到包括设备B的解码设备的广播网络。
本文中所述的各种处理和特征的实现可以体现在多种不同设备或应用中。这种设备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型电脑、个人计算机、蜂窝电话、PDA以及用于处理图像或视频的任意其它设备或其它通信设备。应当清楚,设备可以是可移动的,甚至安装在移动交通工具中。
附加地,所述方法可以通过由处理器执行的指令来实现,并且可以将这些指令(和/或由实现产生的数据值)存储在计算机可读存储介质中。计算机可读存储介质可以采用计算机可读程序产品的形式,所述计算机可读程序产品体现在一个或多个计算机可读介质中,并且具有体现在其上的可由计算机执行的计算机可读程序代码。如本文使用的计算机可读存储介质被认为是非暂时性存储介质,所述非暂时性存储介质具有用于在其中存储信息的固有能力以及用于从中获取信息的固有能力。计算机可读存储介质可以是例如但不限于:电、磁、光、电磁、红外或半导体系统、装置或设备或前述项的任何合适组合。应当认识到,以下内容尽管提供了可以应用本发明原理的计算机可读存储介质的更特定的示例,但如本领域普通技术人员容易认识到的,所述示例仅是说明性而非穷尽地列出为:便携式计算机磁盘;硬盘;只读存储器(ROM);可擦除可编程只读存储器(EPROM或闪存);便携式紧凑盘只读存储器(CD-ROM);光存储设备;磁存储设备;或前述项的任何合适组合。
指令可以形成有形地体现在处理器可读介质上的应用程序。
指令可以在例如硬件、固件、软件或其组合中。可以在例如操作系统、单独应用或这两者的组合中发现指令。因此,处理器可以被表征为例如配置用于执行处理的设备和包括具有用于执行处理的指令的处理器可读介质的设备(诸如,存储设备)。此外,除了指令之外或者代替指令,处理器可读介质可以存储由实施方式产生的数据值。
本领域技术人员应清楚,实施方式可以产生被格式化为携带例如所存储的或所发送的信息的多种信号。信息可以包括例如用于执行方法的指令、或通过描述的实施方式之一所产生的数据。例如,信号可以被格式化为将用于写入或读取所描述的实施例的语法的规则作为数据进行携带,或将由所描述的实施例写入的真实语法值作为数据进行携带。这种信号可被格式化为例如电磁波(例如使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码或者使用已编码数据流对载波进行调制。信号携带的信息可以是例如模拟或数字信息。可以通过公知的多种不同的有线或无线链路来发送该信号。信号可以存储在处理器可读介质上。
已经描述了多个实现。然而,将理解,可以进行各种修改。例如,可以组合、增补、修改或去除不同实施方式中的元件,以产生其它实现。附加地,本领域普通技术人员将理解的是,其它结构或过程可以替代那些公开的结构或过程,并且所得到的实施方式将用至少基本相同的方式来执行至少基本相同的功能,以实现与所公开的实施方式至少基本相同的结果。因此,本申请还涵盖这些实施方式和其它实施方式。