hdr成像中的盲局部整形
1.相关申请的交叉引用
2.本技术要求均于2020年4月3日提交的美国临时申请号63/004,609和欧洲专利申请号20167908.1的优先权,这两个申请中的每一个都通过引用方式以其全文并入本文。
技术领域
3.本公开总体上涉及图像。更特别地,本发明的实施例涉及使用局部整形(reshaping)函数来提高从标准动态范围(sdr)图像重建的高动态范围(hdr)图像的编解码效率和图像质量。
背景技术:4.如本文所使用的,术语“动态范围(dr)”可以涉及人类视觉系统(hvs)感知图像中的强度(例如,光亮度(luminance)、亮度(luma))范围的能力,所述强度范围例如是从最暗的灰色(黑色)到最亮的白色(高光)。从这个意义上说,dr与“参考场景的(scene-referred)”强度有关。dr还可以涉及显示设备充分或近似渲染特定阔度(breadth)的强度范围的能力。从这个意义上说,dr与“参考显示的(display-referred)”强度有关。除非在本文的描述中的任何一点明确指定特定的意义具有特定的意思,否则应该推断为所述术语可以在任一意义上例如可互换地使用。
5.如本文所使用的,术语“高动态范围(hdr)”涉及跨越人类视觉系统(hvs)的14到15个数量级的dr阔度。实际上,相对于hdr,人类可以同时感知强度范围广泛阔度的dr可能会被稍微截短。如本文所使用的,术语“视觉动态范围(vdr)或增强动态范围(edr)”可以单独地或可互换地与这种dr相关:所述dr可在场景或图像内由包括眼运动的人类视觉系统(hvs)感知,允许场景或图像上的一些光适性变化。如本文所使用的,vdr可以涉及跨越5到6个数量级的dr。因此,虽然相对于真实场景参考的hdr,可能稍微窄一些,但vdr或edr可以代表宽dr阔度并且也可以被称为hdr。
6.实际中,图像包括一个或多个颜色分量(例如,亮度y以及色度cb和cr),其中,每个颜色分量由每像素n位的精度表示(例如,n=8)。例如,使用伽马光亮度编解码,其中n≤8的图像(例如,彩色24位jpeg图像)被认为是标准动态范围的图像,而其中n≥10的图像可以被认为是增强动态范围的图像。hdr图像还可以使用高精度(例如,16位)浮点格式来存储和分布,如由工业光魔公司(industrial light and magic)开发的openexr文档格式。
7.多数消费类桌面显示器目前支持200到300cd/m2或尼特的光亮度。大多数消费类hdtv的范围从300到500尼特,其中,新型号达到1000尼特(cd/m2)。因此,这样的传统显示器代表了与hdr相关的较低动态范围(ldr),也被称为标准动态范围(sdr)。随着hdr内容的可用性由于捕获设备(例如,相机)和hdr显示器(例如,杜比实验室的prm-4200专业参考监视器)二者的发展而增加,hdr内容可以被颜色分级并被显示在支持更高动态范围(例如,从1,000尼特到5,000尼特或更高)的hdr显示器上。
8.如本文所使用的,术语“前向整形(forward reshaping)”表示数字图像从其原始
位深度和原始码字分布或表示(例如,伽马、pq、hlg等)到相同或不同位深度和不同码字分布或表示的图像的样本到样本映射或码字到码字映射的过程。整形允许以固定的比特率改善可压缩性或改善图像质量。例如,非限制性地,可以将整形应用于10位或12位pq编解码的hdr视频,以提高10位视频编解码架构中的编解码效率。在接收器中,在对接收到的信号进行解压缩(可能会或可能不会进行整形)之后,接收器可以应用“逆向(或后向)整形函数”以将信号恢复为其原始码字分布和/或实现更高的动态范围。
9.在传统整形技术中,单个全局前向整形函数可以被应用于输入hdr图像中的所有像素,以生成要压缩并传输到解码器的经整形的sdr图像。接下来,与前向整形函数相关的信息(例如,后向整形函数的参数表示)可以作为元数据与经整形的sdr图像一起发送给解码器,以帮助解码器重建输入hdr图像。如发明人在此所理解的,期望有用于图像整形以减少hdr编解码中的编解码伪像并提高对应的经整形sdr图像的质量的改进技术。
10.如本文所使用的,术语“局部整形”表示编码器可以使用整形函数族,并且可以根据局部空间信息、使用从整形函数族中选择的不同整形函数对输入图像中的每个像素进行编码。
11.如本文所使用的,术语“盲局部整形”是指一种方法,其中不向解码器发送关于如何在编码器中为每个输入hdr图像像素选择单独的前向整形函数的信息,因此要求解码器从经编码的sdr数据中自主地重建该信息。
12.在本节中描述的方法是可以追寻的方法,但不一定是先前已经设想到或追寻的方法。因此,除非另有指明,否则不应该认为本节中所描述的任何方法仅凭其纳入本节就可被视为现有技术。类似地,除非另有表示,否则关于一种或多种方法所认定的问题不应该基于本节而认为在任何现有技术中被认定。
附图说明
13.在附图中以举例而非限制的方式来图示本发明的实施例,并且其中类似的附图标记指代类似的元件,并且在附图中:
14.图1a描绘了根据现有技术的使用全局整形函数的用于hdr数据的示例单层编码器;
15.图1b描绘了根据现有技术的与图1a的编码器相对应的示例hdr解码器;
16.图2a描绘了根据本发明的实施例的使用局部前向整形的用于hdr数据的示例单层编码器;
17.图2b描绘了根据本发明的实施例的与图2a的编码器相对应的示例hdr解码器;
18.图3a描绘了根据本发明的第一实施例的盲局部后向整形的示例迭代过程;
19.图3b描绘了根据本发明的第二实施例的盲局部后向整形的示例迭代过程;
20.图4a描绘了全局前向整形函数的示例曲线图;
21.图4b描绘了与图4a的全局前向整形函数相对应的模板前向整形函数的示例曲线图;
22.图4c描绘了与图4b的模板前向整形函数相对应的模板后向整形函数的示例曲线图;
23.图4d描绘了与图4b的模板前向整形函数相对应的一组局部前向整形函数的示例
曲线图;
24.图4e描绘了与图4c的模板后向整形函数相对应的一组局部后向整形函数的示例曲线图;以及
25.图5描绘了根据本发明的实施例的基于全局前向整形函数来生成局部前向整形函数族和局部后向整形函数族的示例过程。
具体实施方式
26.本文描述了用于对hdr图像和视频内容进行编解码的盲局部整形的方法。在以下说明中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。然而,明显的是,可以在没有这些具体细节的情况下实践本发明。在其他情形中,为了避免不必要的遮蔽、模糊或混淆本发明,没有详尽地描述众所周知的结构和设备。
技术实现要素:27.本文所描述的示例实施例涉及用于对hdr图像进行编解码的盲局部整形。在实施例中,在编码器中,给定输入hdr图像,编码器使用前向整形函数族和前向映射索引(fmi)阵列,其中,所述fmi阵列指示要对每个输入hdr像素使用哪个前向整形函数,以对输入hdr图像进行整形并生成经整形的sdr图像。在解码器中,给定所接收的经整形的sdr图像和后向整形函数族,解码器应用迭代技术来生成后向映射索引(bmi)阵列,其中,所述bmi阵列指示要对每个sdr像素使用哪个后向整形函数以生成最接近输入hdr图像的重构hdr图像。
28.在实施例中,在包括一个或多个处理器的装置中,解码器接收第一动态范围中的输入经整形图像(156),所述解码器初始化(305)后向映射索引(bmi)阵列,其中,所述bmi阵列的每个元素都指示局部后向整形函数在一组两个或更多个局部后向整形函数中的索引,其中,局部后向整形函数将来自第一动态范围的像素值映射到第二动态范围中的像素值,并且执行一次或多次迭代以生成第二动态范围中的输出重建图像,其中,迭代包括:
29.通过根据bmi阵列将一组局部后向整形函数应用于输入经整形图像来生成(310)第二动态范围中的第一重建图像;
30.基于第一重建图像和前向映射索引(fmi)生成函数来生成(315)第一fmi阵列,其中,所述fmi阵列的每个元素指示局部前向整形函数在一组两个或更多个局部前向整形函数中的索引,其中,局部前向整形函数将来自第二动态范围的像素值映射到第一动态范围中的像素值;
31.根据第一误差度量来测量bmi阵列与第一fmi阵列之间的差值以生成映射索引误差;
32.基于映射索引误差来生成(325)更新的bmi阵列;
33.通过根据更新的bmi阵列将一组局部后向整形函数应用于输入经整形图像来生成(330)第二动态范围中的第二重建图像;
34.基于第二重建图像和fmi生成函数来生成(335)更新的fmi阵列;
35.通过根据更新的fmi阵列将一组局部前向整形函数应用于第二重建图像来生成(340)第一动态范围中的估计经整形图像;
36.根据第二误差度量来测量估计经整形图像与输入经整形图像之间的差值以生成
经整形图像误差;以及
37.测试所述经整形图像误差和所述映射索引误差的组合是否满足收敛标准:
38.如果满足所述收敛标准,则终止所述迭代并输出所述第二重建图像作为所述输出重建图像;
39.否则:
40.基于更新的bmi阵列的元素和经整形图像误差来替换(360)bmi阵列的元素;以及
41.执行另一次迭代。
42.在第二实施例中,在包括一个或多个处理器的装置中,处理器执行以下操作:访问全局前向整形函数;
43.为全局前向整形函数生成属性值,其中,所述属性值包括以下中的一者或多者:第二动态范围中函数的非平坦区(x范围)、x范围的中点、以及第二动态范围中暗色和高光的平坦区;
44.基于全局前向整形函数、属性值和x范围比例因子来生成模板前向整形函数;
45.通过计算模板前向整形函数的反函数来生成模板后向整形函数;以及,对于与第二动态范围中的目标光亮度值相关的局部前向整形函数,通过将模板前向整形函数移位x轴移位值来生成局部前向整形函数,其中,x轴移位值被确定为使得:对于目标光亮度值,使用局部前向整形函数和模板前向整形函数的对应平均经整形输出值大致相等。
46.示例hdr编解码系统
47.如a.kheradmand等人的美国专利序列号10,032,262“block-based content-adaptive reshaping for high dynamic range images[用于高动态范围图像的基于块的内容自适应整形]”(被称为’262专利)所描述的,所述美国专利的全部内容通过援引以其全文并入本文,图1a和图1b图示了使用图像整形的示例单层后向兼容编解码器框架。更具体地,图1a图示了示例编码器侧编解码器架构,该架构可以用上游视频编码器中的一个或多个计算处理器来实施。图1b图示了示例解码器侧编解码器架构,该架构也可以用一个或多个下游视频解码器中的一个或多个计算处理器来实施。
[0048]
在该框架下,给定参考hdr内容(120),对应的sdr内容(134)(也称为基本层(bl)或经整形的内容)由实施编码器侧编解码器架构的上游编码设备在编码视频信号(144)的单个层中编码并传输。sdr内容由实施解码器侧编解码器架构的下游解码设备在视频信号的单个层中接收并解码。后向整形元数据(152)也和sdr内容一起在视频信号中被编码并传输,使得hdr显示设备可以基于sdr内容和后向整形元数据来重建hdr内容。不失一般性,在一些实施例中,如在非后向兼容的系统中,sdr内容本身可能不可观看,而是必须结合将生成可观看的sdr或hdr内容的后向整形函数来观看。在支持后向兼容性的其他实施例中,传统sdr解码器仍然可以回放所接收到的sdr内容而无需采用后向整形函数。
[0049]
如图1a所图示的,给定hdr图像(120)和目标动态范围,在步骤130中生成前向整形函数(132)之后;给定前向整形函数,将前向整形映射步骤(132)应用于hdr图像(120)以生成整形的sdr基本层(134)。压缩块(142)(例如,根据任何已知的视频编解码算法,如avc、hevc、av1等实施的编码器)将sdr图像(134)压缩/编码到视频信号的单层(144)中。另外,后向整形函数生成器(150)可以生成后向整形函数,所述后向整形函数可以作为元数据152传输到解码器。在一些实施例中,元数据(152)可以表示前向整形函数(130),因此,其将由解
码器来生成后向整形函数(未示出)。
[0050]
表示/指定最佳后向整形函数的后向整形元数据的示例可以包括但不一定仅限于以下各项中任何一项:逆色调映射函数、逆亮度映射函数、逆色度映射函数、查找表(lut)、多项式、逆显示管理系数/参数等。在各种实施例中,亮度后向整形函数和色度后向整形函数可以联合地或单独地得到/优化,可以使用各种技术得到,例如但不限于如
‘
262专利所描述的。
[0051]
由后向整形函数生成器(150)基于sdr图像(134)和目标hdr图像(120)生成的后向整形元数据(152)可以作为视频信号144的一部分被复用,例如,作为补充增强信息(sei)消息传递。
[0052]
在一些实施例中,后向整形元数据(152)作为整体图像元数据的一部分被承载在视频信号中,所述整体图像元数据与视频信号中的其中sdr图像被编码的单个层分开地被承载在视频信号中。例如,后向整形元数据(152)可以被编码在编码比特流中的分量流中,所述分量流可以与或可以不与其中sdr图像(134)被编码的(经编码比特流的)单个层分开。
[0053]
因此,可以在编码器侧生成或预生成后向整形元数据(152),以利用在编码器侧可获得的强大的计算资源和离线编码流程(包括但不限于内容自适应多轮次、超前操作、逆亮度映射、逆色度映射、基于cdf的直方图近似和/或传递等)。
[0054]
图1a的编码器侧架构可以用于避免将目标hdr图像(120)直接编码为视频信号中的经编码/压缩hdr图像;相反,视频信号中的后向整形元数据(152)可以用于使下游解码设备能够将(在视频信号中进行编码的)sdr图像(134)后向整形为与参考hdr图像(120)相同或接近/最佳近似的重建图像。
[0055]
在一些实施例中,如图1b所图示的,在编解码器框架的解码器侧接收单个层(144)中用sdr图像编码的视频信号和作为整体图像元数据的一部分的后向整形元数据(152)作为输入。解压缩块(154)将视频信号的单个层(144)中的经压缩视频数据解压缩/解码成解码的sdr图像(156)。解压缩154通常对应于压缩142的逆过程。解码的sdr图像(156)可以与sdr图像(134)相同,但是在压缩块(142)和解压缩块(154)中经受了量化误差,这些误差已经针对sdr显示设备进行了优化。在后向兼容的系统中,解码的sdr图像(156)可以在输出sdr视频信号中输出(例如,通过hdmi接口、通过视频链路等)以在sdr显示设备上呈现。
[0056]
可选地、替代地或另外地,在同一或另一个实施例中,后向整形块158从输入视频信号中提取后向(或前向)整形元数据(152),基于整形元数据(152)构建后向整形函数,并基于最佳后向整形函数对解码的sdr图像(156)执行后向整形操作,以生成后向整形图像(160)(或重建的hdr图像)。在一些实施例中,经后向整形的图像表示与参考hdr图像(120)相同或接近/最佳近似的生产质量或接近生产质量的hdr图像。经后向整形的图像(160)可以以输出hdr视频信号的形式输出(例如,通过hdmi接口、通过视频链路等)以呈现在hdr显示设备上。
[0057]
在一些实施例中,作为在hdr显示设备上呈现经后向整形的图像(160)的hdr图像呈现操作的一部分,可以对经后向整形的图像(160)执行特定于hdr显示设备的显示管理操作。
[0058]
盲局部整形
[0059]
基于图1a和图1b所描绘的系统的实施例可以被认为是使用“全局整形”,因为同一
前向整形函数被用于重新映射帧中的所有像素。图2a描绘了“局部整形”的实施例的示例,其中,编码器可以应用多个前向整形函数,其中,每个函数根据局部图像特性进行选择。
[0060]
与图1a相比,如图2a所描绘的,现在有新的前向映射索引(fmi)表205,其指示对于参考hdr图像(120)中的每个像素应该使用有限的一组这样的函数中的哪一个前向整形函数。给定前向映射表205,前向整形(215)像以前一样执行,除了整形器引擎(215)使用多于一个前向整形函数,如单元(210)所提供的,因此支持局部整形。为了提供与无法支持局部整形sdr图像的解码器的后向兼容性,在实施例中,如图1a所示,可选单元150还可以生成全局后向整形函数或与全局前向整形函数相关的其他元数据,其可以作为元数据(152)与经编码的经整形sdr图像(144)一起传输。注意,fmi阵列(205)不需要被传输到解码器。如稍后将解释的,在示例实施例中,解码器(例如,如图2b所描绘的)可以应用局部逆向或后向整形以使用迭代解码过程来生成输入hdr图像的重建版本(160)。允许解码器在没有来自编码器的任何元数据的情况下执行局部后向整形的这种类型的整形可以被称为“盲”整形。
[0061]
标记法
[0062]
给定输入参考hdr(120)序列,使其位深度表示为bv。使对应的经整形sdr序列(134)的位深度表示为bs。使v
t,i
表示输入参考hdr信号中第t帧的第i个像素。在实施例中,可以将第t帧中的所有p个像素收集在一起作为表示为v
t
的阵列。
[0063]
使s
t,i
表示参考sdr信号的第t帧中的第i个像素。可以将第t帧中的所有p个像素收集在一起作为矢量s
t
。在实施例中,不失一般性地,为了便于讨论,像素值(v
t,i
和s
t,i
)没有被归一化(例如,在[0,1]中)并且在本文档中被假设为其原始位深度范围(例如,对于每个颜色平面在中)。虽然本文所呈现的方法可能针对单个颜色平面(比如亮度y)进行讨论,但是这些方法适用于输入信号中所有可用的颜色平面,而不论其颜色空间(例如,rgb、ycbcr等)如何。
[0064]
将前向整形函数族表示为{f
《l》
()|l=0,...,l-1},并且将后向整形函数族表示为{b
《l》
()|l=0,...,l-1},其中,l表示每个族中函数的数量。在实施例中,这两个族在与由于位深度差值和非均匀区间而导致的量化误差相关的合理近似内是可逆的,因此:
[0065][0066]
表示为
[0067]mt
=g(v
t
)
ꢀꢀꢀ
(2)
[0068]
生成前向映射索引(fmi)(205)的过程,其中,m
t
中的元素被表示为m
t,i
,其中,m
t,i
在0与l-1之间并且指示要用于第i个像素的前向整形函数。
[0069]
如之前提及的,因为m
t
没有被传送给解码器,所以解码器可以使用迭代过程来估计m
t
和具有估计的后向映射索引n
t,i
的对应表(n
t
)(240)的元素。出于标记的目的,在第k次迭代时,将前向路径中的整形函数选择索引表示为并且将后向路径中的整形函数选择索引表示为其中,和具有0与l-1之间的值。注意,由于估计精确度和收敛标准的原因,这两个选择可能不相同。此外,在解码器中,将第i个像素的所选前向整形函数表
示为并且将所选后向整形函数表示为局部前向整形
[0070]
如图2a所描绘的,在编码器中,给定m
t
,在框215中,经整形的sdr信号(134)被生成为
[0071][0072]
作为示例,在实施例中,非限制性地,等式(2)中用于生成m
t
的映射函数g()可以被表示为
[0073]
g()=g2(g1())。
ꢀꢀꢀ
(4)
[0074]
例如,第一运算符g1()可以是高斯模糊运算符,所述运算符当应用于输入hdr图像时生成模糊的像素值
[0075][0076]
其中权重被定义为:
[0077][0078]
其中,x和y表示加权像素距过滤器中心的距离,2w+1表示过滤器的宽度和高度(例如,w=12),并且σ表示模糊的标准偏差(例如,对于1080p内容,σ=50)。
[0079]
作为示例,在实施例中,第二运算符g2()是均匀量化器,其将0至l-1个值中的一个值分配给模糊滤波器的输出。
[0080][0081]
其中,u表示量化区间,并且z=clip3(x,a,b)表示削波函数,其中,
[0082][0083]
对于l个均匀区间,具有个hdr码字,
[0084][0085]
在一些实施例中,均匀量化器可以由非均匀量化器或一些其他映射函数代替。在一些实施例中,等式(4)不适用于可能围绕帧的活动区的任何信箱区。相反,当检测到信箱区时,可以将单个常数值(例如,m
t,i
=c,对应于第c个前向整形函数)应用于信箱区中的所有像素。在实施例中,代替使用模糊滤波器,可以使用低通滤波器。
[0086]
局部后向整形
[0087]
局部后向整形的目标是生成尽可能接近原始参考hdr图像(120)的重建的hdr图像(160)。在重建过程中,例如,如图2b所描述的,需要估计前向函数选择(225)和后向函数选择(240),每一个都与对应的索引和相关联,其中,k表示迭代估计过程中的第k次
迭代。
[0088]
收敛条件之一是两个函数选择需要大致相等,即然而,满足该收敛条件并不一定意味着重建的hdr图像将接近原始hdr图像,因为对于i的所有值,任何平凡的常数值(如)都可以轻易满足这样的要求但无法预测正确的hdr信号。在实施例中,假定经整形的sdr信号(156)是已知的,另一个收敛条件是检查使用重建的hdr图像(160)生成的经整形的sdr图像(表示为sdr
(k)
)(232)是否足够接近原始输入sdr图像(156)。因此,如果满足这两个收敛条件,则估计的hdr图像应该接近原始hdr图像。
[0089]
在实施例中,估计过程可以被公式化为优化问题,以最小化a)两个整形函数选择索引之间的差值以及b)输入经整形的sdr与估计的经整形的sdr
(k)
之间的差值的(加权)和。为了实现这一目标,提出了一种迭代算法。在每次迭代中,对两种收敛条件下的估计差值进行测试,并且如果失败,则对和的值进行适当调整。该迭代过程的步骤参考图2b和图3a中更详细的示例过程流程进行讨论。
[0090]
步骤1(305):初始化
[0091]
1.k=0;
[0092]
2.初始化(例如,初始化为常数c=l/2)用于选择局部后向整形函数(b
《l》
())的后向映射索引(bmi)阵列(240)。
[0093]
步骤2(310):执行局部后向整形(220)
[0094]
对于输入经整形的sdr信号(156)中的每个像素找到对应的整形函数索引并应用对应的后向整形函数以生成重建的hdr信号
[0095][0096]
在第k次迭代时重建的hdr图像可以表示为矢量v
t(k)
。
[0097]
步骤3(315):基于重建的hdr图像生成估计的前向映射索引(fmi)阵列(225)。g()函数可以与编码器所使用的函数相同。
[0098][0099]
步骤4(325):基于当前估计的fmi与bmi阵列之间的差值来更新bmi阵列(240)。
[0100]
1.首先计算现有估计fmi与bmi阵列之间的差值
[0101][0102]
并计算整个帧的平均差值
[0103][0104]
2.接下来,根据平均差值来更新bmi阵列
[0105][0106]
在实施例中,h()是舍入(rounding)函数和/或削波(clipping)函数,并且α1控制收敛速度(例如,α1=1)。
[0107]
步骤5(330):给定更新的bmi值阵列(240),再次执行局部后向整形(220)。对于每个输入经整形的sdr像素,找到更新的后向整形函数索引并应用局部后向整形(220)以获得重建的hdr信号的更新(第二)版本
[0108][0109]
第k次迭代时重建图像的更新(第二)版本可以表示为
[0110]
步骤6(335):基于更新的hdr重建信号来估计第二fmi阵列(225)
[0111][0112]
步骤7(340):基于估计的hdr重建信号来执行局部前向整形(230)以获得对经整形的sdr图像sdr
(k)
的估计。
[0113]
对于每个像素从中找到前向整形函数索引并应用(230)对应的前向整形函数以生成经整形的sdr信号的估计版本(232)。
[0114][0115]
步骤8(345):计算输入sdr经整形图像与估计的sdr经整形图像之间的差值
[0116][0117][0118]
注意,在步骤4和该步骤中,可以用均方误差度量或本领域已知的其他误差度量(如信噪比(snr)或峰值snr)来代替l1误差。这种度量在计算上更加密集,但是可以提高收敛速度。
[0119]
步骤9(350):确定收敛并更新bmi阵列
[0120]
1.计算整体误差
[0121][0122]
其中,w1+w2=1是用于对这两种类型的误差进行加权的加权因子。例如,如果两个误差被认为同等重要,则w1=w2=0.5。
[0123]
2.如果整体误差小于阈值δ(例如,对于未归一化的10位数据δ=0.5),则解码器已经收敛。当前的bmi阵列被认为是最终阵列,并且在输出步骤355中,步骤5(330)的输出(等式(14))被认为是最终重建的hdr输出。
[0124]
3.如果则意味着可能无法找到更好的解决方案。先前的bmi阵列被认为是最终阵列,并且在输出步骤355中,先前生成的信号被认为是最终重建的hdr输出。
[0125]
4.否则(步骤360)(并且),基于经整形的sdr差值来更新(235)bmi阵列并返回到步骤2(310),即:
[0126][0127]
返回到步骤2(310),
[0128]
其中,α2是用于管理收敛的另一个变量(例如,α2=1)。
[0129]
与图2a相比,可以注意到,在每次迭代中,该过程包括fmi阵列的两次单独更新:a)在步骤3(315)中和b)在步骤6(335)中。第一次更新fmi阵列时,基于当前bmi与fmi值之间的误差来更新bmi阵列(步骤325)。第二次更新fmi阵列时,在步骤8(345)中计算经整形的sdr误差之前,解码器使用第二fmi阵列来生成更准确的经整形的sdr的估计。实验结果表明,这样的过程迭代得更快。
[0130]
在另一个实施例中,可以消除这个重复步骤以降低复杂性,但是总的来说,收敛可能较慢。该方案在图3b中描绘,其中,图3a中的步骤5(330)和步骤6(335)现在被去除。这意味着用于计算经整形的sdr的差值的先前步骤8(345)现在将被步骤345b代替,后者还计算bmi-fmi误差:
[0131][0132]
其中,(340b)、sdr
(k)
由以下给出:
[0133][0134]
另外,基于当前bmi与fmi差值之间的误差来更新bmi阵列(325)被吸收到步骤360b
中,因为如果存在收敛,则不需要更新bmi阵列。因此,在步骤360b中
[0135][0136]
返回到步骤2(310),
[0137]
其中,误差度量可以使用等式(20)来计算。
[0138]
现在,如果存在收敛(例如,步骤355b),则当前的bmi阵列被认为是最终阵列,并且步骤2(310)的输出(等式(9))被认为是最终重建的hdr输出(160)。
[0139]
构造局部整形函数
[0140]
到目前为止描述的方法适用于任何类型的可逆整形函数。本节将讨论局部整形函数及其属性的一些具体示例。
[0141]
基于全局整形函数的局部整形函数
[0142]
将全局前向整形函数和全局后向整形函数分别表示为f()和b()。理想地,在量化误差f()=b-1
()的范围内。在实施例中,局部整形函数的选择可以取决于亮度像素的属性(例如,基于相邻像素计算的亮度像素的值或某个值,比如平均值、标准偏差等)。
[0143]
在实施例中,对于一组局部整形函数,以下属性可能是期望的:
[0144]
·
使用局部整形来局部增加经整形的sdr图像的清晰度和对比度。这可以通过增加每个局部前向整形函数的斜率同时在x轴上压缩全局前向整形函数来实现;即,通过在hdrx轴上减小全局整形函数的非平坦区的宽(范围)同时在sdr y轴上保持相同的范围来实现。将该x轴压缩比表示为α,其中0<α<1。
[0145]
·
保持全局明亮度(brightness)恒定。如果给定hdr码字,每个局部整形函数产生接近由全局整形函数提供的值的经整形的sdr值,则可以实现这一点。
[0146]
给定局部前向整形函数,可以通过反转局部前向整形函数来构建局部后向整形函数。如之前所讨论的,需要构造l个前向局部整形函数和l个后向局部整形函数。
[0147]
对于上述第一个属性,如果对于所有l个前向/后向整形函数x轴压缩比是固定的,则可以构建模板前向函数f
t
()和模板后向整形函数b
t
(),以用作基础函数。接下来,可以将模板前向整形函数跨x轴移位,以生成期望的一组局部前向整形函数。接下来描述这些步骤。
[0148]
步骤1.识别全局整形函数的属性
[0149]
第一步是识别全局前向整形函数f()的属性,如其输入和输出范围(例如,其最小和最大输入和输出码字)、其在非平坦范围中的中间值等。非限制性地,图4a中示出了将16位hdr数据(4,000尼特,pq)映射到10位sdr数据(100尼特,伽马)的全局前向整形函数的示例。如图4a所描绘的,由于被认为是有对效输入和输出值的限制,典型的全局整形函数具有在暗区和亮区中有两个平坦区的s型特性。为了构建模板前向整形函数,可以排除那些平坦区并且只考虑(缩放)斜率>0的区域。作为示例,为了识别非平坦区的起点和终点,可以应
用表1中的伪码,其中,v表示与我们的计算(例如,对于浮点运算,δ=0.0001)的数值准确度相关的非常小的大于零的阈值。
[0150]
表1:在全局整形函数中搜索平坦段
[0151][0152]
然后,可以如下计算整个有效输入hdr范围:
[0153]
vr=v
h-v
l
。
ꢀꢀꢀ
(23)
[0154]
有效输入hdr范围的中点可以计算为
[0155][0156]
步骤2.生成模板前向整形函数
[0157]
给定x轴压缩比α,hdr信号的新缩放范围为
[0158][0159]
由于上限运算符,α的值可以更新为
[0160][0161]
然后,模板前向整形函数f
t
()可以如表2所描绘进行构造。
[0162]
表2:基于全局整形函数生成模板函数的示例
[0163][0164]
图4b描绘了基于图4a的全局前向整形函数使用α=0.8生成的模板前向整形函数的示例。
[0165]
步骤3.生成模板后向整形函数
[0166]
模板后向整形函数b
t
()可以通过反转模板前向整形函数来重建。表3中描绘了示例过程。给定图4b中的模板前向整形函数,图4c呈现了对应的模板后向整形函数。
[0167]
表3:从模板前向整形函数生成模板后向整形函数的示例过程
[0168]
[0169][0170]
步骤4:生成局部前向整形函数族
[0171]
给定模板前向整形函数和模板后向整形函数,可以如下构建整个局部整形函数族。构建每个局部整形函数的移位版本
[0172]
考虑构建l个局部前向整形函数f
《l》
()和b
《l》
()。当m
t,i
=l时,则使用第l个前向整形函数对第i个hdr像素进行整形。在实施例中,第一个可以将输入码字范围划分成l个均匀区间并找到每个区间的中心。
[0173][0174]
给定保持全局明亮度的目标,在实施例中,一种解决方案包括在区间中心处强制原始全局整形函数和局部整形函数的缩放移位版本具有相同的映射值。注意,局部前向整形函数的水平移位将导致对应的局部后向整形函数的竖直移位。换句话说,可以使用该属性来确定第l个局部整形函数从模板函数的“移位”,而无需重新计算所述函数。这在表4中进行描绘,其中,主要思想是基于模板函数生成第l个局部整形函数,将模板前向整形函数移位,使得其在第l个bin中心处与全局整形函数相交。换句话说,在第l个bin中心处,第l个局部整形函数和全局整形函数映射到相同的值。因此,为了生成第l个局部前向整形函数和局部后向整形函数:
[0175]
表4:通过将模板前向整形函数移位以匹配其明亮度来生成局部整形函数的示例
[0176][0177][0178]
对于那些具有无效标志的局部函数(例如,因为其起点或终点在有效范围之外),可以通过从最近的局部整形函数进行插值或者通过复制其最近的局部整形函数来生成局部函数。表5中描绘了该过程的示例,但不限于此。
[0179]
表5:在找不到有效函数时从其相邻函数对局部整形函数进行插值的示例
[0180][0181]
作为示例,图4d描绘了l=1,024个局部前向整形函数中的四个,对于α=0.8,以及原始全局前向整形函数。α的值较小会导致更陡的斜率和更大的移位。斜率越陡,对比度就越高。除非调整亮度和色度两者,否则较大的移位可能会扭曲图像的颜色,例如,颜色可能看起来褪色。图4e描绘了对应的1,024个局部后向整形函数中的八个。
[0182]
变型和注释
[0183]
所提出的局部整形函数的基于缩放和移位的推导中的一个潜在问题是局部区域中的硬亮/暗削波。随着斜率变高,高光部和暗部变得更早饱和。为了避免过早饱和问题,可以应用以下替代解决方案。
[0184]
a)在每个局部整形函数中应用不同的缩放和移位
[0185]
在这样的实施例中,例如,可以避免在高光部和暗部进行缩放从而避免削波。为了使光亮度域中的过渡平滑,可以从暗色调到中间色调逐渐将比例因子从1改变到目标值(比如0.8),在中间色调保持恒定值,并且在高光部时逐渐增加到1。通过这种方法,可以延迟过早饱和问题。另一方面,这也意味着在这种方法中对比度将会降低。
[0186]
b)局部整形函数和全局整形函数的融合
[0187]
在该实施例中,可以应用局部整形函数和全局整形函数的加权线性组合来移除饱和部分。加权因子可以是光亮度的函数。当局部整形函数处于暗部或高光部时,权重将趋于全局函数;当局部函数处于中间色调时,权重将趋于局部函数。
[0188]
将全局函数和局部函数的加权因子表示为和其中,
[0189][0190]
最终融合的局部整形函数可以表示为
[0191][0192]
例如,在实施例中,对于l=0到l=1,023:
[0193][0194]
对于l=0至1,023。
[0195]
c)使用局部整形作为锐化运算符
[0196]
如发明人所理解的,当全局整形函数是简单的一对一映射时,则使用之前讨论的算法构造的一组局部前向整形函数可以用作锐化运算符。因此,在实施例中,可以使用用于sdr到sdr映射的一组局部整形函数,其中最终目标是提高所传输的sdr图像的感知清晰度。
[0197]
d)后向兼容性
[0198]
局部整形不需要任何附加的元数据,但是可能需要对局部前向和后向整形函数的预定义了解,或者至少需要例如由元数据152定义的全局前向整形函数和/或全局后向整形函数的特性,使得局部整形函数可以被局部重建。不能应用局部后向整形的传统解码器仍然可以应用全局整形(例如,如图1b所示),即使传入的sdr信号是用局部整形器编码的。
[0199]
图5描绘了基于全局整形函数来生成局部整形函数族的过程的示例概述。如图5所描绘的,给定全局前向整形函数(502),步骤505找到其属性(例如,平坦区、范围和中点)。给定x轴缩放参数α和所收集的全局前向整形函数的属性,在步骤510中:a)生成模板前向函数,以及b)在生成前向函数之后,生成对应的模板后向整形函数。最后,给定期望数量的函数(l)和优化约束(比如保持全局明亮度),步骤515基于模板前向和后向整形函数来生成局部前向和后向整形函数族。
[0200]
示例计算机系统实施方式
[0201]
本发明的实施例可以利用计算机系统、以电子电路和部件来配置的系统、集成电路(ic)设备(如微控制器、现场可编程门阵列(fpga)或另一个可配置或可编程逻辑装置(pld)、离散时间或数字信号处理器(dsp)、专用ic(asic))和/或包括这样的系统、设备或部件中的一个或多个的装置来实施。计算机和/或ic可以执行、控制或实行与盲局部整形相关的指令,如本文所描述的那些指令。计算机和/或ic可以计算与本文描述的盲局部整形相关的各种参数或值中的任何参数或值。图像和视频动态范围扩展实施例可以以硬件、软件、固件及其各种组合来实施。
[0202]
本发明的某些实施方式包括执行软件指令的计算机处理器,所述软件指令使处理器执行本发明的方法。例如,显示器、编码器、机顶盒、转码器等中的一个或多个处理器可以通过执行处理器可访问的程序存储器中的软件指令来实施用于如上所述的盲局部整形的方法。还可以以程序产品的形式提供本发明。程序产品可以包括承载一组计算机可读信号的任何非暂态且有形介质,所述一组计算机可读信号包括指令,所述指令当由数据处理器执行时使数据处理器执行本发明的方法。根据本发明的程序产品可以采用各种非暂态且有形形式中的任何一种。程序产品可以包括例如物理介质,如包括软盘、硬盘驱动器的磁性数据存储介质、包括cd rom、dvd的光学数据存储介质、包括rom、闪速存储器ram的电子数据存储介质等。程序产品上的计算机可读信号可以可选地被压缩或加密。
[0203]
在上面提到部件(例如,软件模块、处理器、组件、设备、电路等)的情况下,除非另有指明,否则对所述部件的引用(包括对“装置”的引用)都应该被解释为包括执行所描述部
件的功能的任何部件为所述部件的等同物(例如,功能上等同的),包括在结构上不等同于执行在本发明的所图示示例实施例中的功能的所公开结构的部件。
[0204]
等同物、扩展、替代方案和杂项
[0205]
因此,描述了涉及hdr图像的盲局部整形的示例实施例。在前述说明书中,已经参考可以根据实施方式而变化的许多具体细节描述了本发明的实施例。因此,指明本发明以及申请人的发明意图的唯一且排他性指示是根据本技术以具体形式发布的权利要求组,其中,这种权利要求发布包括任何后续修正。本文中针对这种权利要求中包含的术语明确阐述的任何定义应该支配如在权利要求中使用的这种术语的含义。因此,权利要求中未明确引用的限制、要素、特性、特征、优点或属性不应该以任何方式限制这种权利要求的范围。因此,应当从说明性而非限制性意义上看待本说明书和附图。