使用混合查找表方案对高动态范围视频的预处理的制作方法

文档序号:28816731发布日期:2022-02-09 06:26阅读:487来源:国知局
使用混合查找表方案对高动态范围视频的预处理的制作方法
使用混合查找表方案对高动态范围视频的预处理
1.相关申请的交叉引用
2.本技术要求2019年6月28日提交的美国临时申请第62/868,549号和2019年9月26日提交的美国非临时申请第16/584,139号的权益。美国临时申请第62/868,549号和美国非临时申请第16/584,139号的公开内容通过该引用以其整体并入。
3.概述
4.根据本公开的第一方面,提供了一种方法,包括:接收输入数据,该输入数据将要使用非线性函数来处理以生成输出数据;并将输入数据与查找表的多个索引进行比较。这些索引指定了近似于非线性函数的多个分段线性部分的输入端点。对于每个索引,查找表还包括:对应于该索引的分段线性部分的斜率;和对应于该索引的分段线性部分的轴截距。该方法还包括:基于输入数据与多个索引的比较,选择索引中的指定与输入数据相关联的分段线性部分的索引;以及使用对应于所选索引的斜率和轴截距,计算对应于输入数据的输出数据。
5.在一些实施例中,计算输出数据可以包括:将输入数据乘以对应于所选索引的斜率以产生乘积;以及将对应于所选索引的轴截距与该乘积相加以生成输出数据。每个索引可以指定对应于该索引的分段线性部分的输入端点的下端点。多个索引的数值之间的间隔可以是恒定的,或者至少部分基于由非线性函数描述的曲线,多个索引的数值之间的间隔可以是可变的。轴截距可以与输出数据相关联。输入数据可以包括亮度/色度格式的视频数据,非线性函数可以包括亮度/色度格式的视频数据的归一化。输入数据可以包括原色格式的视频数据,并且非线性函数可以包括电光转换函数(eotf),该转换函数生成指定原色格式的视频数据的光学表示的数字数据。输入数据可以包括指定原色格式的高动态范围(hdr)视频数据的光学表示的数字数据,并且非线性函数可以包括动态范围映射函数,该映射函数将hdr视频数据的光学表示的数字数据映射到原色格式的标准动态范围(sdr)视频数据的光学表示的数字数据。动态范围映射函数还可以包括从hdr视频数据的hdr色域到sdr视频数据的sdr色域的映射。输入数据可以包括原色格式的高动态范围(hdr)视频数据,并且非线性函数可以包括以下各项的组合:电光转换函数(eotf),其生成指定原色格式的hdr视频数据的光学表示的数字数据;以及动态范围映射函数,其将指定hdr视频数据的光学表示的数字数据映射到原色格式的标准动态范围(sdr)视频数据的光学表示的数字数据。输入数据可以包括原色格式的标准动态范围(sdr)视频数据的光学表示的数字数据,且非线性函数可以包括逆电光转换函数(eotf),该逆电光转换函数(eotf)从原色格式的sdr视频数据的光学表示的数字数据生成原色格式的sdr视频数据。输入数据可以包括亮度/色度格式的归一化标准动态范围(sdr)视频数据,且非线性函数可以包括量化函数,该量化函数将亮度/色度格式的归一化sdr视频数据量化为亮度/色度格式的量化sdr视频数据。
6.根据本公开的第二方面,提供了一种分段线性函数电路,包括:包括多个索引的查找表,其中索引指定近似于非线性函数的分段线性部分的端点。对于每个索引,查找表还包括:对应于该索引的分段线性部分的斜率;和对应于该索引的分段线性部分的轴截距。该电路还包括数字比较器电路,该数字比较器电路响应于输入数据,选择索引中的指定与输入
数据相关联的分段线性部分的索引;以及计算电路,该计算电路使用对应于所选索引的斜率和轴截距,计算对应于输入数据的输出数据。
7.在一些实施例中,输入数据可以包括定点值;并且输出数据可以包括浮点值。输入数据和输出数据可以各自包括浮点值。输入数据可以包括浮点值;并且输出数据可以包括定点值。
8.根据本公开的第三方面,提供了一种视频预处理系统,包括:多个电路,其执行多个操作以将高动态范围(hdr)视频数据转换为标准动态范围(sdr)视频数据。所述多个电路中的至少一个包括分段线性函数电路,该函数电路包括:查找表,该查找表包括多个索引,其中所述索引指定近似于用于操作之一的非线性函数的分段线性部分的端点。对于每个索引,查找表还包括:对应于该索引的分段线性部分的斜率;和对应于该索引的分段线性部分的轴截距。分段线性函数电路还包括数字比较器电路,该数字比较器电路响应于输入数据,选择索引中的指定与输入数据相关联的分段线性部分的索引;以及计算电路,该计算电路使用对应于所选索引的斜率和轴截距,计算对应于输入数据的输出数据。
9.在一些实施例中,非线性函数可以包括将hdr视频数据映射到sdr视频数据的动态范围映射函数。动态范围映射函数可以基于hdr视频数据随时间修改。
10.附图简述
11.附图示出了许多示例性的实施例,并且是说明书的一部分。与以下描述一起,这些附图展示并解释了本公开的各种原理。
12.图1是示例性视频传输系统的框图,其中可以采用视频预处理系统的各种实施例。
13.图2是可用于图1的视频传输系统的示例性视频预处理系统的框图。
14.图3是非线性函数的示例性分段线性近似的曲线图。
15.图4是采用分段线性近似的示例性混合查找表(hlut)功能块的框图,该功能块可以用在图2的视频预处理系统的各种操作中。
16.图5是操作混合查找表功能块(例如图4的混合查找表功能块)的示例性方法的流程图。
17.图6是示例性视频预处理系统的框图,其中一个或更多个功能块采用混合查找表功能块。
18.图7是示例性视频数据归一化器的框图,该归一化器采用多个混合查找表功能块以及视频格式转换器,其可以用在图6的视频预处理系统中。
19.图8是可以在图6的预处理系统中采用的示例性电光转换函数(eotf)、逆eotf和动态范围映射器的框图,其中这些功能中的一个或更多个可以采用混合查找表功能块。
20.图9是与图8的操作相对应的操作的框图,其结合了eotf和动态范围映射器。
21.图10是可以在图6的视频预处理系统中采用的示例性视频数据量化器以及视频格式转换器的框图。
22.在全部附图中,相同的附图标记和描述指示相似的但不一定相同的元素。虽然本文描述的示例性实施例易于进行多种修改和替代形式,但是特定的实施例已经通过附图中的示例被示出,并且将在本文被详细地描述。然而,本文描述的示例性实施例不意图限于所公开的特定形式。相反,本公开覆盖了落入所附权利要求的范围内的所有修改、等同物和替代物。
23.示例性实施例的详细描述
24.随着高动态范围(hdr)视频(例如,超高清(uhd))文件和流变得更加普遍,在各种设备(例如,电视、智能电话、平板电脑等)上观看这种视频的能力变得更加理想,所述各种设备包括不能显示hdr视频的设备。为了实现这一目标,可以在对视频的其他处理(例如,对所得的sdr视频进行压缩、通过通信网络或系统传输sdr视频等)之前,将hdr视频到标准动态范围(sdr)视频(例如,高清晰度(hd)视频)的转换作为预处理阶段来执行。通常,hdr视频的特征可以是提供比sdr视频更亮的白色和更深的黑色、以及更大的色深(例如,hdr视频至少为10位色深,而sdr视频为8位色深)。因此,在许多示例中,hdr视频和sdr视频在动态范围(例如,可以显示的暗到亮的范围)、色域(例如,可能的不同颜色表示的范围)和电光转换函数(eotf)(例如,将电信号输入与所得的光信号输出相关联的转换函数)方面可能显著不同。因此,用于生成sdr视频的hdr视频的预处理可能是计算密集型的。itu-r(国际电信联盟

无线电通信部门)bt.2020-2建议书中提供了hdr视频的动态范围和色域的特定示例,而itu-r bt.709-6建议书中提供了sdr视频的动态范围和色域的示例。此外,在itu-r bt.2020-2建议书中特别描述的hdr视频的eotf在itu-r bt.2100-2建议书中被定义,而在itu-r bt.709-6建议书中讨论的sdr视频的eotf在itu-r bt.1886建议书中被提供。
25.本公开总体上涉及通过使用混合查找表(hlut)功能块的分段线性近似来采用非线性函数的系统和方法。在一些实施例中,例如在本文描述的那些实施例中,这些系统和方法可以在hdr视频的预处理中采用,例如将hdr视频转换成sdr视频。如下文将更详细解释的,在本公开的实施例中,预处理可以包括动态范围映射(例如,色调映射)、色域转换、eotf计算、逆eotf计算和/或颜色空间转换(例如,在亮度(luminance)-色度(chrominance)(亮度-色度(luma-chroma))颜色模型(例如,亮度/蓝差色度/红差色度(y’cbcr)模型)和原色模型(例如,红-绿-蓝(rgb)颜色模型)之间)。虽然这种计算可能涉及大量浮点运算,但是在一些实施例中,在hdr预处理中,这种计算可以被定点计算代替或近似。在一些示例中,可以采用一个或更多个查找表(lut)来通过分段线性近似快速执行计算。此外,在本文讨论的至少一些实施例中,使用一个或更多个hlut功能块来执行分段线性近似可以显著减小存储lut的存储器的大小,以及可能降低数据访问的数量和预处理阶段的总功耗。
26.参考图1-10,以下将提供对hdr视频的视频预处理的系统和方法的详细描述,其包括基于混合lut(hlut)方案的操作的使用。结合图1给出了其中可以使用示例性视频预处理系统的各种实施例的示例性视频传输系统的描述。结合图2更详细地讨论这种视频预处理系统的例子。结合图3,描述了非线性函数的分段线性近似的使用。结合图4讨论了采用分段线性近似的示例性hlut功能块的描述,并结合图5提供了操作示例性hlut功能块的方法。结合图6简要讨论了采用一个或更多个hlut功能块的另一个示例性视频预处理系统,并结合图7-10解释在图6的视频预处理系统内采用一个或更多个hlut功能块的各种实施例的细节。
27.在下面讨论的各种实施例中,关于各种预处理阶段操作(例如,y’cbcr归一化、eotf近似、逆eotf近似、y’cbcr量化、动态范围映射等)的示例性系统和方法的细节与将hdr视频(例如,由itu-r(国际电信联盟-无线电通信部门)bt.2020-2建议书定义,与超高清电视(uhdtv)相关联)转换为sdr(例如,由itu-r bt.709-6建议书定义,与高清电视(hdtv)相关联)相关联。然而,下面描述的各个方面还可以应用于本文中没有具体讨论的其他hdr和
sdr格式。此外,虽然本文中描述的详细的hlut功能块实施例是专门针对视频预处理而采用的,但是与视频预处理无关的许多其他类型的操作环境可以采用hlut功能块的各种实施例。
28.此外,虽然下文中讨论的各种示例被描述为全部或部分由硬件逻辑(例如,以硬件加速器的形式,例如用于各种非线性定点和/或浮点运算)来执行,但是在其他实施例中,下面描述的各种方法和系统可以全部或部分由执行软件指令的硬件处理器来执行,该软件指令可以被组织成存储在一个或更多个存储设备中或计算机可读介质上的一个或更多个模块。此外,这样的操作可以在服务器或其他云可访问设备、台式或笔记本计算机、平板计算机、智能手机、专用集成电路(asic)等中执行。
29.根据本文描述的一般原理,来自本文描述的任何实施例的特征可以彼此结合使用。当结合附图和权利要求阅读下面的详细描述时,这些实施例和其他实施例、特征和优点将被更充分地理解。
30.图1是示例性视频传输系统100的流程图,该传输系统100用于将y’cbcr hdr视频数据120作为压缩的y’cbcr sdr视频数据140传输或以其它方式传送到sdr视频显示设备108(例如,智能手机、平板计算机、或其他不能正确显示压缩的或其他方式的y’cbcr hdr视频数据120的传统设备)。如图1所示,视频传输系统100可以包括hdr视频数据源102(例如,hdr视频服务器、hdr摄像机等),hdr视频数据源102向视频预处理系统104提供y’cbcr hdr视频数据120,视频预处理系统104将y’cbcr hdr视频数据120预处理或转换为y’cbcr sdr视频数据130。在一些示例中,sdr视频压缩系统106可以将输入的y’cbcr sdr视频数据130压缩为生成的压缩的y’cbcr sdr视频数据140。在一些实施例中,压缩的y’cbcr sdr视频数据140然后可以被传输(例如,经由有线和/或无线通信网络)到一个或更多个sdr视频显示设备108。此外,在一些示例中,hdr视频数据源102、视频预处理系统104或sdr视频压缩系统106中的两个或更多个可以彼此远离,并且因此可以通过通信网络进行通信。此外,在一些实施例中,虽然视频数据可以从hdr视频数据源102流传送到sdr视频显示设备108,但是视频传输系统100的各种组件可以形成数据管道,使得视频的不同部分可以由视频传输系统100的不同组件同时处理。
31.图2是可用于视频传输系统(例如,图1的视频传输系统100)的示例性视频预处理系统104的框图。如图所示,视频预处理系统104可以将y’cbcr hdr视频数据120转换成y’cbcr sdr视频数据130,以便于在仅能够显示sdr视频数据的设备上正确呈现最初以hdr格式提供的视频数据。如图2所示,视频预处理系统104可以按照执行的顺序(例如,作为视频数据流管道中的阶段)包括y’cbcr归一化器202、y’cbcr到rgb转换器204、hdr eotf 206、动态范围映射器208(例如,用于从高动态范围格式到标准动态范围格式的映射)、sdr逆eotf 210、rgb到y’cbcr转换器212和y’cbcr量化器214。在一些实施例中,视频预处理系统104的组件202-214中的每一个都体现在逻辑硬件中,以便于提高处理速度,尽管在一些示例中,组件202-214中的一个或更多个可以体现为由一个或更多个硬件处理器执行的多个软件指令。组件202-214中的每一个的功能在下文进行描述。
32.在一些实施例中,为了与许多视频压缩编码器兼容,视频数据通常以y’cbcr格式提供。然而,从hdr视频到sdr视频的转换过程通常以rgb格式进行,因为hdr视频和sdr视频之间的动态范围的差异还可能伴随着色域的差异,因为与sdr视频相比,hdr视频拥有视觉
上呈现给用户的颜色的显著更大的范围。此外,eotf以及因此的逆eotf在hdr视频和sdr视频之间通常也不同。因此,在至少一些示例中,动态范围转换可以在光学域中以原色(例如,rgb)格式执行,其导致图2中描绘的一系列功能块或组件202-214。
33.在一些实施例中,y’cbcr归一化器202可以归一化输入的y’cbcr hdr视频数据120,以准备y’cbcr hdr视频数据120,以用于由y’cbcr到rgb转换器204将y’cbcr hdr视频数据120转换成rgb格式,该转换器204可以期望每个y’(亮度)输入数据的值在0到1(包括0和1)的范围内,并且每个cb和cr(色度)输入数据的值在-0.5到0.5(包括-0.5和0.5)的范围内。更具体地,每个y’cbcr hdr视频数据120可以是某个预定位数(例如,8、10、12、14、16等)的数字值,而每个相应的归一化y’cbcr hdr视频数据的输出可以是浮点数。
34.在一些示例中,y’cbcr到rgb转换器204可以将由y’cbcr归一化器202生成的归一化的y’cbcr hdr视频数据转换成rgb hdr视频数据。更具体地,每个rgb hdr视频数据的每个颜色值(红、绿和蓝)可以是0到1(包括0和1)范围内的浮点值。此外,在至少一些实施例中,每个rgb hdr视频数据的每个颜色值可以是每个相应的归一化y’cbcr hdr视频数据的y’值、cb值和cr值的线性组合。
35.然后,可以在hdr eotf 206处接收rgb hdr视频数据,该hdr eotf 206可以将rgb hdr视频数据转换成rgb hdr数字数据,该数字数据指示呈现给用户的rgb hdr视频数据的光学表示。在一些示例中,rgb hdr视频数据以及从中导出rgb hdr视频数据的y’cbcr hdr视频数据120和归一化的y’cbcr hdr视频数据本质上可以是非线性的(例如,由于伽马(gamma)编码以更有效地表示光强水平),而hdr eotf 206生成的光学表示的所得到的rgb hdr数字数据可以是线性的(例如,由于hdr eotf 206中的伽马(gamma)解码以更准确地表示要呈现给用户的视频数据的光强)。此外,在至少一些实施例中,由hdr eotf 206生成的rgb hdr数字数据可以是浮点数据(例如,在0到1的范围内)。
36.在一些示例中,动态范围映射器208然后可以执行hdr到sdr格式转换,以使hdr视频数据与非hdr显示设备兼容。此外,在一些实施例中,动态范围映射器208还可以执行色域转换(例如,当使用的hdr视频格式的色域比使用的sdr视频格式的色域更宽时)。如同图2中的至少一些前述功能块,动态范围映射器208的输入hdr数据和输出sdr数据都可以表示为浮点值(例如,在0到1的范围内)。此外,动态范围映射器208可以生成sdr视频数据,该sdr视频数据是最终将被提供给显示设备的sdr视频数据的光学表示的数字数据。
37.在动态范围映射器208之后,视频预处理系统104的剩余阶段(例如,sdr逆eotf 210、rgb到y’cbcr转换器212和y’cbcr量化器214)基本上反转了早先在hdr域中应用的sdr数据格式的视频数据转换(例如,通过y’cbcr归一化器202、y’cbcr到rgb转换器204和hdr eotf 206)。例如,sdr逆eotf 210接收来自动态范围映射器208的rgb sdr数字数据光输出,并应用sdr专用逆(reverse)eotf来生成电域rgb sdr视频数据输出。在一些实施例中,rgb逆eotf还可以对输入数据应用非线性伽马函数,以生成伽马编码的rgb sdr视频数据。
38.此后,在一些实施例中,rgb到y’cbcr转换器212可以将输入的rgb sdr视频数据转换成对应的归一化y’cbcr sdr视频数据(例如,作为浮点值)。然后,该归一化的sdr视频数据可以被转发到y’cbcr量化器214进行量化(例如,从浮点值到定点整数值)。在这一点上,在传输到sdr视频显示设备(例如,图1的sdr视频显示设备108)之前,得到的y’cbcr sdr视频数据130可以是以用于数据压缩的适当形式(例如,以基于mpeg的格式,例如由图1的sdr
视频压缩系统106压缩)。
39.在一些实施例中,如上所述,视频预处理系统104的一个或更多个阶段或组件202-214可以采用其中采用的一个或更多个函数(例如,非线性函数)的分段线性近似(将每个输入x与相应的输出y相关联)。图3是由短划线指示的非线性函数f(x)的示例性分段线性近似300的曲线图,该短划线将每个输入x与相应的输出y相关联。在一些实施例中,非线性函数f(x)可以由一系列分段线性函数部分来近似。如图3所示,在其端点连接的六个分段线性部分fl0(x)、fl1(x)、fl2(x)、fl3(x)、fl4(x)和fl5(x)(或者更一般地,flm(x))形成非线性函数f(x)的分段线性近似300。然而,在其他实施例中,基于分段线性近似300相对于非线性函数f(x)所需的精度水平,可以采用更多或更少的分段线性部分。如图3所示,每个分段线性部分具有对应的一对端点(例如,fl0(x)的端点(x0,y0)和(x1,y1),fl1(x)的端点(x1,y1)和(x2,y2)等)。此外,如图3所示,端点的输入x值和/或输出y值之间的间隔可能由于一个或更多个因素而从一个分段线性部分flm(x)变化到另一个,以便限制分段线性近似300相对于非线性函数f(x)的误差量、由非线性函数f(x)描述的曲线形状等。然而,在其他示例中,分段线性部分的端点的x值或y值之间的间隔可以是恒定的。
40.在一些实施例中,每个分段线性部分flm(x)可以被定义为对于xm到x
m+1
的输入域的线形flm(x)=amx+bm(例如,对于x0到x1的输入域,fl0(x)=a0x+b0;对于x1到x2的输入域,fl1(x)=a1x+b1;以此类推),其中am是flm(x)的斜率,bm是flm(x)的y轴截距。因此,非线性函数f(x)的分段线性近似300可以是分段线性部分flm(x)的和。
41.图4是采用分段线性近似(例如,图3的分段线性近似300)的示例性混合查找表(hlut)功能块400的框图,该功能块可用于图2的视频预处理系统200的各种操作中。如图4所示,hlut功能块400可以包括查找表402、比较器410、乘法器420和加法器430。在一些实施例中,查找表402、比较器410、乘法器420和加法器430中的每一个都可以在逻辑硬件中,(例如在专用集成电路(asic)中)实现。然而,在一些示例中,还可以采用查找表402、比较器410、乘法器420和加法器430中的一个或更多个的软件实现。
42.在一些示例中,查找表402的每个条目m可以对应于特定的分段线性部分flm(x),并且可以包括索引xm、相应的斜率am和y轴截距bm。因此,查找表402的条目数量可以等于非线性函数f(x)所采用的分段线性部分的数量,在图3的分段线性近似300的情况下,分段线性部分的数量是6,但是在其他示例中,分段线性部分的数量可以是2或更大的任意整数。
43.给定hlut功能块400的输入值x
in
,比较器410可以将输入值x
in
与一个或更多个索引xm进行比较,以确定将哪个斜率am和y轴截距bm应用于输入值x
in
,从而产生相应的输出值y
out
。例如,对于从x0到x1(包括x0和x1)的输入值x
in
,比较器410可以采用与索引x0相关联的斜率a0和y轴截距b0来计算输出值y
out
。对于从x1到x2(包括x1和x2)的输入值x
in
,比较器410可以改为采用与索引x1相关联的斜率a1和y轴截距b1来计算输出值y
out
。比较器410还可以以类似的方式采用索引x2到x5,使得适当的分段线性部分flm(x)的斜率am和y轴截距bm被应用于每个输入值x
in
,以产生输出值y
out
的可接受的近似值。在一些示例中,比较器410可以并行将输入值x
in
与每个索引xm进行比较,以选择与之对应的索引xm。在其他实施例中,比较器410可以对每个索引xm执行串行搜索、二分搜索或某种其他搜索算法。
44.此后,乘法器420可以将输入值x
in
乘以与所选索引xm相关联的斜率am,并且加法器430可以将来自乘法器420的得到的乘积与和所选索引xm相关联的y轴截距bm相加。在一些实
施例中,乘法器420的输入(例如,输入值x
in
和斜率am)和/或加法器430的输入(例如,y轴截距bm和来自乘法器420的乘积)可以是两个定点值、两个浮点值、或一个定点值和一个浮点值,并且加法器430可以为输出值y
out
产生定点或浮点结果。此外,乘法器420和加法器430可以各自提供被认为适合于hlut功能块400的精度或精确度水平(反映在乘法器420和加法器430内被采用以执行乘法运算和加法运算的位数中)。在一些实施例中,乘法器420和加法器430结合查找表402的使用可被视为可能需要额外的处理时间,这超出了采用明显更大的查找表(以及更复杂和更慢的索引比较器)的严格查找表布置的处理时间,该严格查找表布置没有相关联的乘法器或加法器。然而,如在hlut功能块400内使用的,使用较小的查找表402可能涉及的较小的占用空间和功率需求可能表示总体上更期望的解决方案(尤其是在完全基于数字逻辑硬件的实现内),因为其可能导致较小的总体电路占用空间和功耗。
45.图5是操作诸如图4的hlut功能块400的混合查找表功能块的示例性方法500的流程图。在一个示例中,图5所示的方法500的每个步骤可以表示其结构包括多个子步骤和/或由多个子步骤表示的算法。此外,虽然在至少一些实施例中,方法500可以完全使用数字逻辑硬件来执行,但是在至少一个硬件处理器上执行的软件指令可以在其他示例中执行方法500的一个或更多个步骤的一个或更多个部分。
46.在步骤510,可以接收输入数据(例如,输入值x
in
),该输入数据将要使用非线性函数(例如,非线性函数f(x))来处理以生成输出数据(例如,输出值x
out
)。在步骤520,可以将输入数据与查找表(例如,查找表402)的多个索引(例如,索引xm)进行比较(例如,使用比较器410),其中索引指定近似于非线性函数的多个分段线性部分(例如,分段线性部分flm(x))的端点。在步骤530,指定与输入数据相关联的分段线性部分的对应索引可以被选择(例如,使用比较器410)。在步骤540,使用与查找表中的索引相关联的斜率(例如,斜率am)和轴截距(例如,y轴截距bm),可以计算对应于输入数据的输出数据(例如,通过乘法器420和加法器430)。
47.图6是示例性视频预处理系统600的框图,其中一个或更多个功能块采用混合查找表功能块(例如,图4的hlut功能块400)。与图2的视频预处理系统104的情况相同,视频预处理系统604接收并处理y’cbcr hdr视频数据120,以生成y’cbcr sdr视频数据130。此外,在一些实施例中,视频预处理系统604采用多个组件,这些组件提供与视频预处理系统104的组件202-214相同或相似的功能,如上所述。更具体地,在一些示例中,视频预处理系统604的几个组件中的一个或更多个(例如,hlut y’cbcr归一化器602、hlut hdr eotf 606、hlut动态范围映射器608、hlut sdr逆eotf 610和/或hlut y’cbcr量化器614)可以采用一个或更多个hlut功能块400来执行它们相应的功能。在下面更详细描述的一些实施例中,y’cbcr到rgb转换器204和rgb到y’cbcr转换器212可以不采用hlut功能块400,因为这种转换可以采用y’(亮度)、cb(蓝差色度)和cr(红差色度)输入数据的严格线性组合来生成相关联的r(红)、g(绿)和b(蓝)输出数据中的每一个,或者采用r、g和b输入数据的线性组合来创建相应的y’、cb和cr输出数据中的每一个,尤其是因为对于此类功能的优化硬件逻辑块可用于实现。然而,在其他示例中,在这种转换中可以采用一个或更多个hlut功能块。
48.图7是采用多个hlut功能块的示例性hlut y’cbcr归一化器602以及y’cbcr到rgb转换器204的框图,其可以用在视频预处理系统604中。在一些实施例中,hlut y’cbcr归一化器602可以包括用于y’cbcr hdr视频数据120的每个单独亮度/色度分量(例如,每帧视频
数据的逐个像素)的hlut功能块400,以归一化来自其原始定点正整数形式的该特定分量。例如,hlut y’cbcr归一化器602可以包括:hlut y’归一化器702,以用于将y’hdr数据722归一化为归一化的y’hdr数据732(例如,0到1范围内的浮点数);hlut cb归一化器704,以用于将cb hdr数据724归一化为归一化的cb hdr数据734(例如,-0.5到0.5范围内的浮点数);以及hlut cr归一化器706,以用于将cr hdr数据726归一化为归一化的cr hdr数据736(例如,-0.5到0.5范围内的浮点数)。在一些实施例中,hlut y’归一化器702、hlut cb归一化器704和hlut cr归一化器706中的每一个可以根据以下函数中的每一个的分段线性近似来归一化输入的视频数据,其中n分别是定点y’hdr数据722、cb hdr数据724和cr hdr数据726的位数(例如,n=8、10、12等),并且“《《”是逐位逻辑左移操作:
[0049][0050][0051][0052]
在一些示例中,虽然上面呈现的用于生成归一化的y’hdr数据732(y’normalized
)、归一化的cb hdr数据734(cb
normalized
)和归一化的cr hdr数据736(cr
normalized
)的公式本质上可以是基本线性的,但是定点整数到浮点小数的归一化可以给归一化函数引入非线性特性。此外,在其他示例中,对y’hdr数据722、cb hdr数据724和cr hdr数据726的归一化可以包括除了上面所示的那些函数之外的本质上非线性的函数。
[0053]
在一些示例中,归一化的y’hdr数据732、归一化的cb hdr数据734和归一化的cr hdr数据736然后可以作为输入数据(例如,浮点输入)被提供给y’cbcr到rbg转换器204,该转换器204可以将该数据用作一组线性组合的输入,以生成r hdr数据742、g hdr数据744和b hdr数据746中的每一个,这些数据中的每一个也可以表示为浮点数。在一些实施例中,rhdr数据742、g hdr数据744和b hdr数据746(在下面被指定为r、g和b)可以各自根据以下矩阵形式的线性函数生成,尽管其他函数也是可能的:
[0054]
图8是可在视频预处理系统604中采用的hlut hdr eotf 606、hlut动态范围映射器608和hlut sdr逆eotf 610的示例性版本的框图。如图所示,hlut hdr eotf 606可以包括用于来自y’cbcr到rgb转换器204的每个输入数据的单独的hlut:用于r hdr数据742的hlut hdr reotf 802,以生成r hdr光学数据832;用于g hdr数据744的hlut hdr g eotf 804,以生成g hdr光学数据834;以及用于b hdr数据746的hlut hdr b eotf 806,以生成b hdr光学数据836,上述光学数据中的每一个都是hdr视频数据的光学表示的数字数据,如可以通过显示设备呈现的。在一些实施例中,eotf802、804和806中的每一个的输入和输出都是浮点值。此外,在一些示例中,用于eotf802、804和806中的每一个的非线性函数可以从itu-r bt.2100-2建议书中获得,其可以采用对伽马解码的使用来生成反映将由显示设备
呈现的光学信号的数字数据。在一些情况下,可以采用其中定义的特定eotf,感知量化(pq)eotf,导致用于hlut hdr r eotf 802、hlut hdr g eotf 804和hlut hdr b eotf 806中的每一个的非线性函数如下,其中e是输出数据(例如,r hdr光学数据832、g hdr光学数据834或b hdr光学数据836),e’是输入数据(例如,r hdr数据742、g hdr数据744或b hdr数据746),max为最大函数,m1=0.1593017578125,m2=78.84375,c1=0.8359375,c2=18.8515625,并且c3=18.6875:
[0055][0056]
在这样的实施例中,如上所述,可以假设e’是伽马编码的,而e可以是伽马解码的,尽管伽马编码和/或解码可能不涉及其他eotf示例。在其他实施例中,另一个hdr eotf(例如混合对数伽马(hlg)eotf)也在itu-r bt.2100-2建议书中指定,可以用于hlut hdr r eotf 802、hlut hdr g eotf 804和hlut hdr b eotf 806中的每一个。
[0057]
由hlut hdr eotf 606生成的数字数据(例如,r hdr光学数据832、g hdr光学数据834和b hdr光学数据836)可以被提供给hlut动态范围映射器608,以用于从hdr视频到sdr视频的动态范围映射以及可能的色域转换,如由表示r sdr光学数据842、g sdr光学数据844和b sdr光学数据846的数字值所表示的。如图8所示,hlut动态范围映射器608可以为sdr输出的每种颜色采用单独的基于hlut的映射器(例如,hlut r动态范围映射器812、hlut g动态范围映射器814和hlut b动态范围映射器),其中每个映射器812、814和816可以接收所有输入hdr光学数据(例如,r hdr光学数据832、g hdr光学数据834和b hdr光学数据836)来以sdr视频格式生成其相应的原色(红、绿、或蓝)。在一些示例中,hlut动态范围映射器608确保在sdr光学数据中表示的所得到的动态范围和/或色域与特定显示设备兼容,从而可能确保该设备上视频数据的所得到的颜色对比度、亮度、色调和颜色表示基本正确。
[0058]
在一些实施例中,在每个hlut功能块(例如,hlut r动态范围映射器812、hlut g动态范围映射器814和hlut b动态范围映射器)中采用的映射函数可以是静态的或不变的,而不管正在接收的hdr数据(例如,r hdr光学数据832、g hdr光学数据834和b hdr光学数据836)的性质如何。在这样的示例中,映射函数可以表示最坏的情况,其中假设hdr光学数据中表示的动态范围和/或色域的全部范围是可能的。然而,在其他实施例中,当r hdr光学数据832、g hdr光学数据834和b hdr光学数据836表示hdr视频数据或其某一部分(其不占据hdr相关动态范围和/或色域的全部范围)时,hlut动态范围映射器608中表示的映射公式可以被改变,以限制可能会原本(otherwise)发生的动态范围和/或色域减少的量。在一些示例中,映射函数可以基于在该视频剪辑或节目期间hdr视频的动态范围和/或色域的先验知识,对于每个视频剪辑或节目改变或更新一次。在其他示例中,映射函数可以基于hdr视频的动态范围和/或色域的一些知识,对于每帧或节目或剪辑的一些其他子集中的每一个改变或更新一次。在另外的其他实施例中,映射函数可以随着时间周期性地更新,并且对于hdr视频的每帧的多个区域(region)或区域(area)中的每一个可以不同。在这些实施例的每一个中,映射函数可以至少部分地基于hdr视频的最大动态范围和/或色域(例如,如itu-r bt.2020-2建议书中所指定的)以及sdr视频的最大动态范围和/或色域(例如,如itu-r bt 709-6建议书中所指定的)。
[0059]
进一步关于图8,由hlut动态范围映射器608生成的r sdr光学数据842、g sdr光学数据844和b sdr光学数据846的值可以被呈现给hlut sdr逆eotf 610,其可以采用该数据来基于为rgb格式指定的逆eotf生成rgb格式的sdr视频数据。更具体地,对于每个原色,hlut sdr逆eotf 610可以包括单独的逆eotf(例如,从r sdr光学数据842生成r sdr数据852的hlut sdr r逆eotf 822、从g sdr光学数据844生成g sdr数据854的hlut sdr g逆eotf 824、以及从b sdr光学数据846生成b sdr数据856的hlut sdr b逆eotf 826)。在一些实施例中,在用于sdr数据的hlut sdr r逆eotf 822、hlut sdr g逆eotf 824和hlut sdr b逆eotf 826中采用的函数可以包括伽马编码,并且可以是标准化的eotf(例如,如itu-r bt.1886建议书中所指定的)。例如,对于每个输入(例如,r sdr光学数据842、g sdr光学数据844和b sdr光学数据846),对应的hlut逆eotf可以根据以下非线性函数为对应的伽马编码电信号输出(例如,r sdr数据852、g sdr数据854和bsdr数据856)生成数字值,其中e是光学数据输入,e’是伽马编码电数据输出:
[0060]e′
=(e)1/
2.4
[0061]
此外,在至少一些实施例中,图8中描绘的每个输入和/或输出值可以采取从0到1的浮点值的形式。
[0062]
图9是与图8的功能块相对应的功能块的框图,其中hlut hdr eotf606和hlut动态范围映射器608的功能被组合成hlut组合hdr eotf和动态范围映射器907。在一些示例中,hlut组合hdr eotf和动态范围映射器907可以包括用于每种原色(例如,红、绿和蓝)的单独的hlut功能块,例如hlut组合hdr r eotf和r动态范围映射器902、hlut组合hdr g eotf和g动态范围映射器904以及hlut组合hdr b eotf和b动态范围映射器906,它们中的每一个可以接收所有的r hdr数据742、g hdr数据744、和b hdr数据746,然后生成其对应的以原色格式表示光学的光的数字数据(例如,r sdr光学数据842、g sdr光学数据844和b sdr光学数据846)。此外,在一些实施例中,hlut组合功能块902、904和906中的每一个可以采用以上针对图8的hlut hdr eotf 606和hlut动态范围映射器608描述的非线性函数的组合。
[0063]
图10是可以在图6的视频预处理系统600中采用的示例性视频数据量化器(例如,hlut y’cbcr量化器614)以及视频格式转换器(例如,rgb到y’cbcr转换器212)的框图。在一些示例中,rgb到y’cbcr转换器212可以从hlut sdr逆eotf 610接收r sdr数据852、g sdr数据854和b sdr数据856(在下面用r、g和b来指代),并将每组原色值(例如,红、绿和蓝)转换成相应的归一化的亮度/色度值(例如,归一化的y’sdr数据1022、归一化的cb sdr数据1024和归一化的cr sdr数据1026)。在一些示例中,rgb到y’cbcr转换器212的输入和输出都是浮点值。此外,在一些实施例中,每个归一化的亮度/色度值可以是所有原色输入的线性组合。在一些示例中,可以根据以下线性函数生成归一化的y’sdr数据1022(例如,在0到1的范围内的y’normalized
)、归一化的cb sdr数据1024(在-0.5到0.5的范围内的cb
normalized
)和归一化的cr sdr数据1026(在-0.5到0.5的范围内的cr
normalized
),尽管其他函数也是可能的:
[0064][0065]
此后,hlut y’cbcr量化器614可以接收来自rgb到y’cbcr转换器212的输出(例如,作为归一化的浮点值)并将其转换成量化的n位定点正整数值(例如,其中n=8、10、12、14、
16等)。更具体地,如图10所示,hlut y’cbcr量化器614可以包括用于每个归一化的输入分量(例如,归一化的y’sdr数据1022、归一化的cb sdr数据1024和归一化的cr sdr数据1026)的单独的hlut功能块(例如,分别是hlut y’量化器1012、hlut cb量化器1014和hlut cr量化器1016),其生成相应的量化数据值(例如,y’sdr数据1032、cb sdr数据1034、和cr sdr数据1036),上述量化数据值可以一起构成y’cbcr sdr视频数据130。在一些实施例中,hlut y’cbcr量化器614内的每个hlut量化器(例如,hlut y’量化器1012、hlut cb量化器1014和hlut cr量化器1016)可以对其对应的亮度/色度分量执行非线性函数的分段线性近似,如下所示,其中n分别是定点y’sdr数据1032、cb sdr数据1034和cr sdr数据1036的位数(例如,n=8、10、12等),且“round”是舍入运算:
[0066]y′
=round((1<<(n-8))*(219*y

normalized
+16))
[0067]
cb=round((1<<(n-8))*(224*cb
normalized
+128))
[0068]
cr=round((1<<(n-8))*(224*cr
normalized
+128))
[0069]
在一些实施例中,y’cbcr sdr视频数据130,其动态范围和/或色域可以从原始的y’cbcr hdr视频数据120适当调整,然后可以被压缩(例如,通过sdr视频压缩系统106)以产生压缩的y’cbcr sdr视频数据140,以用于最终传输到sdr视频显示设备108并在其上显示。
[0070]
鉴于以上结合图1-10描述的各种实施例,基本上与较新的hdr视频数据不兼容的传统sdr视频数据显示设备可以显示源自已经预处理的hdr视频数据的视频节目和剪辑(包括用于sdr兼容性的动态范围和/或色域的受控(并且可能定制)的映射),以生成可以消除在没有这种映射的情况下令人不快的视觉伪像的sdr视频数据。此外,在一些示例中,在这样的预处理器中实现非线性函数的一个或更多个功能块可以采用混合lut电路布置,该布置可以比其他基于lut的架构减少总体占用空间和/或功耗。此外,如上所述,这种hlut架构可以用于视频处理环境之外的其他电路和软件应用。
[0071]
示例实施例
[0072]
示例1:一种用于预处理视频数据的方法可以包括(1)接收要使用非线性函数处理的输入数据,以生成输出数据,(2)将输入数据与查找表的多个索引进行比较,其中索引指定近似于非线性函数的多个分段线性部分的输入端点,并且其中查找表还包括,对于每个索引(a)对应于该索引的分段线性部分的斜率,以及(b)对应于该索引的分段线性部分的轴截距,(3)基于输入数据与多个索引的比较,选择索引中的指定与输入数据相关联的分段线性部分的索引,以及(4)使用对应于所选索引的斜率和轴截距,计算对应于输入数据的输出数据。
[0073]
示例2:根据示例1所述的方法,其中计算输出数据还可以包括(1)将输入数据乘以对应于所选索引的斜率以产生乘积,以及(2)将对应于所选索引的轴截距与乘积相加以生成输出数据。
[0074]
示例3:根据示例1或示例2所述的方法,其中每个索引可以指定对应于该索引的分段线性部分的输入端点的下端点。
[0075]
示例4:根据示例1或示例2所述的方法,其中多个索引的数值之间的间隔可以是恒定的。
[0076]
示例5:根据示例1或示例2所述的方法,其中多个索引的数值之间的间隔可以至少部分地基于由非线性函数描述的曲线是可变的。
[0077]
示例6:根据示例1或示例2所述的方法,其中轴截距可以与输出数据相关联。
[0078]
示例7:根据示例1或示例2所述的方法,其中(1)输入数据可以包括亮度/色度格式的视频数据,以及(2)非线性函数可以包括亮度/色度格式的视频数据的归一化。
[0079]
示例8:根据示例1或示例2所述的方法,其中(1)输入数据可以包括原色格式的视频数据,以及(2)非线性函数可以包括电光转换函数(eotf),其生成指定原色格式的视频数据的光学表示的数字数据。
[0080]
示例9:根据示例1或示例2所述的方法,其中(1)输入数据可以包括数字数据,该数字数据指定原色格式的高动态范围(hdr)视频数据的光学表示,以及(2)非线性函数可以包括动态范围映射函数,该映射函数将hdr视频数据的光学表示的数字数据映射到原色格式的标准动态范围(sdr)视频数据的光学表示的数字数据。
[0081]
示例10:根据示例9所述的方法,其中动态范围映射函数还包括从hdr视频数据的hdr色域到sdr视频数据的sdr色域的映射。
[0082]
示例11:根据示例1或示例2所述的方法,其中(1)输入数据可以包括原色格式的高动态范围(hdr)视频数据,以及(2)非线性函数可以包括以下项的组合:(a)生成数字数据的电光转换函数(eotf),该数字数据指定原色格式的hdr视频数据的光学表示;以及(b)动态范围映射函数,其将指定hdr视频数据的光学表示的数字数据映射到原色格式的标准动态范围(sdr)视频数据的光学表示的数字数据。
[0083]
示例12:根据示例1或示例2所述的方法,其中(1)输入数据可以包括原色格式的标准动态范围(sdr)视频数据的光学表示的数字数据,以及(2)非线性函数可以包括逆电光转换函数(eotf),其从原色格式的sdr视频数据的光学表示的数字数据生成原色格式的sdr视频数据。
[0084]
示例13:根据示例1或示例2所述的方法,其中(1)输入数据可以包括亮度/色度格式的归一化的标准动态范围(sdr)视频数据,以及(2)非线性函数可以包括量化函数,该量化函数将亮度/色度格式的归一化的sdr视频数据量化为亮度/色度格式的量化的sdr视频数据。
[0085]
示例14:一种分段线性函数电路可以包括:(1)包括多个索引的查找表,其中索引指定近似于非线性函数的分段线性部分的端点,并且其中对于每个索引,查找表还包括:(a)对应于该索引的分段线性部分的斜率,和(b)对应于该索引的分段线性部分的轴截距,(2)数字比较器电路,其响应于输入数据,选择索引中的指定与输入数据相关联的分段线性部分的索引,以及(3)计算电路,其使用对应于所选索引的斜率和轴截距来计算对应于输入数据的输出数据。
[0086]
示例15:根据示例14所述的分段线性函数电路,其中(1)输入数据可以包括定点值,以及(2)输出数据可以包括浮点值。
[0087]
示例16:根据示例14所述的分段线性函数电路,其中输入数据和输出数据可以各自包括浮点值。
[0088]
示例17:根据示例14所述的分段线性函数电路,其中(1)输入数据可以包括浮点值,以及(2)输出数据可以包括定点值。
[0089]
示例18:一种视频预处理系统可以包括多个电路,这些电路执行多个操作以将高动态范围(hdr)视频数据转换成标准动态范围(sdr)视频数据,其中多个电路中的至少一个
电路包括分段线性函数电路,该分段线性函数电路包括(1)包括多个索引的查找表,其中索引指定近似于用于操作之一的非线性函数的分段线性部分的端点,并且其中查找表还包括,对于每个索引,(a)对应于该索引的分段线性部分的斜率,和(b)对应于该索引的分段线性部分的轴截距,(2)数字比较器电路,其响应于输入数据,选择索引中的指定与输入数据相关联的分段线性部分的索引,以及(3)计算电路,其使用对应于所选索引的斜率和轴截距来计算对应于输入数据的输出数据。
[0090]
示例19:根据示例18所述的视频预处理系统,其中非线性函数可以包括将hdr视频数据映射到sdr视频数据的动态范围映射函数。
[0091]
示例20:根据示例19所述的视频预处理系统,其中动态范围映射函数基于hdr视频数据随时间修改。
[0092]
在一些示例中,术语“存储器设备”通常指能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器设备可以存储、加载和/或维护本文描述的一个或更多个模块。存储器设备的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓存、这些部件中的一个或更多个的变形或组合、或者任何其他合适的储存存储器。
[0093]
在一些示例中,术语“物理处理器”通常指能够解译(interpret)和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器可以访问和/或修改存储在上述存储器设备中的一个或更多个模块。物理处理器的示例包括但不限于微处理器、微控制器、中央处理单元(cpu)、实现软核处理器的现场可编程门阵列(fpga)、专用集成电路(asic)、这些部件中的一个或更多个的部分、这些部件中的一个或更多个的变形或组合、或任何其他合适的物理处理器。
[0094]
本文中描述和/或示出的任何模块可以表示单个模块或应用的部分。此外,在某些实施例中,这些模块中的一个或更多个可以表示一个或更多个软件应用或程序,其当由计算设备执行时可以使计算设备执行一个或更多个任务。例如,本文描述和/或示出的一个或更多个模块可以表示被存储和配置为在本文描述和/或示出的一个或更多个计算设备或系统上运行的模块。这些模块中的一个或更多个还可以表示被配置为执行一个或更多个任务的一个或更多个专用计算机的全部或部分。此外,本文描述的一个或更多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换成另一种形式。附加地或替代地,本文所述的一个或更多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换成另一种形式。
[0095]
在一些实施例中,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质(诸如,载波)以及非暂时性类型介质,诸如,磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(cd)、数字视频盘(dvd)和blu-ray盘)、电子存储介质(例如,固态驱动器和闪存介质)以及其他分发系统。
[0096]
本文描述和/或图示的工艺参数和步骤的顺序仅通过示例的方式给出,并且可以根据需要变化。例如,虽然本文图示和/或描述的步骤可以以特定的顺序被示出或讨论,但
是这些步骤不一定需要以所图示或讨论的顺序来执行。本文描述和/或图示的多种示例性方法还可以省略本文描述或图示的一个或更多个步骤,或者可以包括除了那些公开的步骤之外的另外的步骤。
[0097]
已经提供了前面的描述,以使本领域的其他技术人员能够最好地利用本文公开的示例性实施例的各个方面。该示例性描述不意图是穷举性的或者不意图限于所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,许多修改和变化是可能的。本文公开的实施例应当在所有方面被认为是说明性的而不是限制性的。在确定本公开的范围时,应当参考所附权利要求及其等同物。
[0098]
除非另有说明,否则说明书和权利要求书中使用的术语“连接到”和“耦合到”(及其派生词)应被解释为允许直接和间接(即,通过其他元件或组件)连接。此外,说明书和权利要求书中使用的术语“一个(a)”或“一个(an)”应被解释为意指“......中的至少一个”。最后,为了便于使用,说明书和权利要求书中使用的术语“包括(including)”和“具有”(及其派生词)可与词语“包括(comprising)”互换并与该词语“包括(comprising)”具有相同的含义。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1