对HDR视频进行编码和解码的制作方法

文档序号:15577063发布日期:2018-09-29 05:43阅读:564来源:国知局

本发明涉及用于分别对时间上连续的高动态范围图像的集合(本文被称为hdr视频)进行编码和解码的方法和装置。



背景技术:

直到几年前,所有视频都是根据所谓的低动态范围(ldr)原理(也称为标准动态范围(sdr))编码的。这意味着,无论捕获到的场景是什么,代码的最大值(通常8位亮度y’=255;或者用于模拟显示器驱动的100%电压)应当通过标准化定义对应于具有根据标准协议为100nit的峰值亮度pb(即它能够渲染的最亮的白色)的显示器(即,被渲染在其上)。如果人们购买了稍暗或更亮的实际显示器,则假设观看者的视觉系统将调整,使得图像将仍然看起来合适,并且甚至与参考100nit显示器上相同,而不是例如令人不快地太亮(假如有例如恐怖电影中的夜景,则其应当具有暗的外观)。

当然,对于实际的节目制作来说,这通常意味着保持对场景照明设置的严格控制,因为即使在完美地均匀的照明中,各种对象的漫反射百分比已经能够给出100:1的对比度。这样的sdr显示器的黑色在良好的情况下通常为0.1nit,在最差的情况下为1nit甚至几nit,所以sdr显示器的动态范围(最亮的白色除以最暗的可视黑色)最好是1000:1,或者更差,这很好地对应于这样的均匀照明场景,并且使所有需要的具有大约2.0的伽马或者编码反伽马0.5.rec.709的像素灰度值或亮度值被渲染的8位编码是通常使用的sdr视频编码。通常,相机也具有同时捕获非常亮的区域和相当暗的区域的问题,即在窗户或车窗外看到的场景通常会被剪成白色(给定红色、绿色和蓝色加性颜色分量r=g=b=最大值,对应于它们的平方根编码值r’=g’=b’=255)。注意,如果在此应用中动态范围仅以峰值亮度(即最亮渲染亮度或可渲染的亮度)被首先指定,则我们假设最低亮度值实际上为零(而实际上它可能取决于观看条件,诸如显示器前板或影院屏幕光反射,例如0.1nit),并且那些进一步的细节与具体解释无关。还要注意,有几种方法来定义动态范围,并且在下面的解释中通常使用的最自然的方法是显示器渲染的亮度动态范围,即最亮颜色对比最暗颜色的亮度。

还要注意,在hdr研究期间已经变得更清楚并且在这里提到以确保每个人都能理解的内容是,代码系统本身不具有动态范围,除非将参考显示器与它相关联,也就是说,例如r’=g’=b’=y’=255应当与100nit或备选地1000nit的pb等相对应。特别地,与通常预先假设的内容相反,用于像素的颜色分量的位数(如它们的亮度)不是动态范围的良好指示器,因为例如10位编码系统可以编码hdr视频或sdr视频,其根据编码类型而确定,特别是与编码相关联的参考显示器的电光转换函数eotf,即定义亮度代码[0,1023]与像素的对应亮度之间的关系,因为它们需要被渲染在显示器上。

在本文中,假设当提到hdr图像或视频时,其具有针对最高亮度代码的对应峰值亮度或最大亮度(或者在rgb编码(例如而不是ycbcr编码)的情况下等效地具有最高r’、g’、b’值),其高于100nit的sdr值,通常至少高4倍,即,要使hdr图像看起来最佳的要渲染的最大显示亮度可以是例如1000nit、5000nit或10000nit(注意,这不应当与将在下面详细说明的表面复杂的概念相混淆,即人们能够将这种hdr图像或视频编码为sdr图像或视频,在这种情况下图像可渲染在100nit显示器上,但重要的是,还包含当具有编码用于恢复hdr图像的颜色变换的对应的相关联的元数据时用于创建具有例如1000nit的pb的hdr图像的所有信息!)。

因此,高动态范围图像的高动态范围编码能够利用要被渲染的例如高达1000nit的亮度对图像进行编码,以便能够显示渲染高质量的hdr,例如与周围渲染场景相比的明亮爆炸,或闪闪发光的金属表面等。

实际上,世界上有很多场景能够具有很高的动态范围(例如,室内捕获的对象暗至1nit,同时透过窗户看到外面阳光照射的对象,亮度在10000nit之上,给出10000:1的动态范围,其比1000:1的dr大10倍,甚至比100:1的动态范围大100倍,并且例如在某些典型情况下(例如白天观看),电视观看可能具有小于30:1的dr)。因为显示器变得更好(比100nit亮几倍的pb,目前出现1000nit,并且设想数千nitpb),目标是能够漂亮地渲染这些图像,并且尽管由于如不同观看条件之类的因素而与原始图像不完全相同,但至少很自然,或者至少是令人愉悦的。并且这需要sdr视频编码时代所缺少的东西:良好的实际hdr视频编码技术。

读者还应当理解,因为观看者通常在不同情况下观看内容(例如,晚上坐在光线昏暗的客厅,或者在暗的家中或电影院里,而不是实际站在被捕获的明亮非洲景观中),所以场景中的亮度与最终在电视(或其他显示器)上渲染的亮度之间没有同一性。这能够尤其通过让人类颜色分级器手动决定(即相关联的参考显示器上的)可用编码dr上的最佳颜色来处理,例如通过规定场景中的太阳应当在图像中以5000nit(而不是其实际值10亿nit)渲染。备选地,自动算法可以进行从例如原始相机捕获到本文中(通常)称为(主)hdr分级的内容的这样的转换。这意味着人们能够在5000nitpbhdr显示器上的可用的位置处渲染此主分级。

然而,与此同时,未来几年将有一大群人拥有100nitpb的传统sdr显示器,或者不能做出5000nit白色的某些显示器,例如因为它是便携式的,而且这些人也需要能够看hdr电影。因此,需要有一些机制将5000nithdr转换为同一场景的100nitsdr外观图像。

图1示出了未来的hdr系统(例如,连接到1000nitpb显示器)可能需要能够即通过为图像中的所有对象/像素渲染合适的亮度来正确处理的许多可能的hdr场景的几个说明性示例。例如,imscn1是来自西方电影的阳光户外图像,而imscn2是夜间图像。使hdr图像渲染与其仅在几年前结束的ldr时代如何不同之处在于,ldr具有如此有限的动态范围(大约pb=100nit,且黑色水平为+-0.1到1nit),大多数情况下,只能示出对象的反射率(其将落在针对好的白色的90%与针对好的黑色的1%之间)。所以人们必须示出独立于其照明的对象,并且不能同时如实地示出可能发生的场景的所有有时高度对比的照明。实际上,这意味着高亮度的阳光场景必须以与阴暗的雨天场景大致相同的显示亮度(0-100nit)被渲染。并且即使夜间场景不能被渲染得太暗,或者观看者不能很好地鉴别图像中最暗的部分,这些夜间亮度也会再次跨度0与100nit的范围被渲染。因此人们不得不按照惯例将夜晚场景涂成蓝色,使得观看者将明白他不是在看白天场景。当然,在现实生活中,人类视觉也会适应可用的光量,但不会适应那么多(现实生活中的大多数人认识到它在变暗)。因此,人们想要使用能够在其中进行艺术设计的所有壮观的局部照明效果来渲染图像,以获得更加逼真的渲染图像,至少在有可用的hdr显示器时。

因此,在图1的左侧轴上是对象亮度,因为人们想要在针对5000nitpb显示器的5000nitpb主hdr分级中看到它们。如果人们想要传达的不仅仅是幻觉,而是牛仔处于明亮阳光照射的环境中的真实感觉,则必须将那些像素亮度指定并渲染得足够明亮(尽管也不太明亮),大约例如500nit。对于夜晚场景,人们在大多数情况下想要暗亮度,但是摩托车上的主要角色应当是可以很好识别的,即不太暗(例如大约5nit),并且同时能够有相当高亮度的像素,例如路灯,例如在5000nit显示器上大约3000nit,或在任何hdr显示器上的峰值亮度附近(例如1000nit)。第三示例imscn3示出了目前在hdr显示器上也可能出现的内容:能够同时渲染非常亮和非常暗的像素。我们看到一个具有小开口的暗的洞穴,通过其我们可以看到阳光的外面。对于这个场景,人们可能想要使如树的阳光照射的对象比在想要渲染明亮阳光的风景的印象的场景中稍微不那么明亮,例如大约400nit,这应当与洞穴内部本质上暗的特征更协调。颜色分级器可能想要最佳地协调所有对象的亮度,使得没有任何东西看起来不适当的暗或亮并且对比度良好,例如,站在这个洞穴中暗处的人可以在主hdr分级图像中被编码在大约0.05nit(假设hdr渲染不仅能够渲染明亮的高光,而且还有暗区域)。

能够理解的是,将针对所有这些非常不同类型的hdr场景的所有对象亮度映射到图1右侧示出的小得多的sdr或ldr动态范围(dr_1)中可用的最佳亮度可能并不总是微不足道的任务,这就是为什么优选地可能需要用于确定颜色变换的人类颜色分级器(其至少包括当在亮度代码上等效地执行时的亮度变换)。然而,人们总是能够选择使用自动确定的变换,例如基于分析图像内容的颜色属性(例如其亮度直方图),并且例如对于较简单的hdr视频类型或人类分级不太优选的应用(例如,如在实时内容产生中),这可能是优选选择(在本专利中,假设没有限制,分级也可以包括在开始捕获之前快速设置(例如用于整个产生的)几个颜色变换函数参数)。

申请人已经设计了一种编码系统,其不仅能够处理针对该领域典型的单个种类的显示器的仅单个标准化hdr视频的通信(编码)(其中每个终端观看者具有例如1000nitpb显示器),而且其能够同时通信并且处理具有针对具有该领域中的各种其他峰值亮度的各种可能的其他显示器类型的最佳外观的视频,特别是用于100nitpbsdr显示器的sdr图像。

在例如10位传统mpeg或类似的视频编码技术中仅编码hdr图像的集合(即具有正确的外观)(即用于渲染在例如1000nithdr监视器上的图像对象亮度)并不困难。人们只需要为具有相当大的动态范围的新类型的图像建立最佳oetf(光电转换函数),即在与白色相对较暗区域相比的许多地方不示出条带的图像,然后计算针对所有像素/对象亮度的亮度代码。

然而,申请人设计了一种将hdr图像作为ldr图像进行通信的系统,即实际上是ldr(或sdr,即指100nitpb参考显示器,并且通常在这样的参考显示器上进行最佳颜色分级)图像被通信,然后能够立即被用于在传统100nitpbsdr显示器上渲染正确外观的sdr外观。此外,定义合适的可逆颜色变换函数的集合f_ct,如图2所示。这些函数可以由人类颜色分级器定义,以获得与hdr主图像mast_hdr相对应的合理外观的sdr图像(im_ldr),同时确保通过使用反函数if_ct,能够以足够的准确度重建原始主hdr(mast_hdr)图像作为重建的hdr图像(im_rhdr),或者,可以在内容创建侧使用自动分析算法来确定适当的这样的颜色变换函数f_ct。注意,不是依靠接收侧来将函数f_ct反转为if_ct,而是还能够发送用于根据接收到的和解码的sdr图像im_rldr来计算im_rhdr的已经需要的函数。因此颜色变换函数实际上做的是将hdr图像(mast_hdr)中的像素的亮度改变为ldr亮度,即如图1所示的最佳亮度压缩以适配100nitpbldr动态范围dr_1中的所有亮度。申请人发明了一种方法,该方法能够保持颜色的色度恒定,高效地改变仅仅它们的亮度,如下面将要阐明的。

如图2所示的典型编码链如下地工作。一些图像源201,其可以例如是给出最佳分级图像的分级计算机,或者给出hdr输出图像的相机,递送要被颜色变换和编码的主hdr图像mast_hdr。颜色变换器202应用所确定的颜色变换,例如凹弯曲函数,为了简化阐述,我们假设其是伽马函数,具有系数gam=1/k,并且k是大于2.0的数。当然,可以采用更复杂的亮度映射函数,只要它们是充分可逆的,即im_rhdr图像具有可忽略的或可接受的条带。通过应用包括至少亮度变换函数的这些颜色变换函数f_ct,得到输出图像im_ldr。该图像或图像的集合利用传统ldr图像编码器进行编码,该编码器可能在某种程度上被修改,例如,可能已经优化了针对预测差异的dct变换的量化表以更好地适于具有hdr特性的图像(尽管颜色变换通常已经使得im_ldr的统计看起来更像是典型的ldr图像而不是典型的hdr图像,但是所述hdr图像通常具有相对较多的具有相对较暗亮度的像素,因为该范围的上部分可能通常包含小灯等)。例如,可以像hevc(h265)一样使用mpeg型编码器,产生编码的sdr图像im_cod。视频编码器203然后假装它获得正常的sdr图像,尽管它还获得允许重建主hdr图像的函数f_ct,即有效地使其成为sdr和hdr外观两者的双重共编码,以及它们对应的图像的集合(分别为im_rldr、im_rhdr)。可以有几种方式来传送包括函数f_ct的所有信息的这种元数据,例如它们可以作为sei信息被传送。然后,传输格式器204根据某个标准(例如卫星或线缆或因特网传输,例如根据atsc3.0,即执行对数据的分组、信道编码等)应用所有必要的变换来对数据进行格式化以传过某个传输介质205。在任何消费者或专业侧,可以被包含在各种物理装置(例如,机顶盒、电视或计算机)中的接收器206通过应用非格式化和信道解码来撤销信道编码。然后视频解码器207应用例如hevc解码,以产生解码的ldr图像im_rldr。然后,颜色变换器208被布置为将sdr图像变换为任何非ldr动态范围的图像。例如,可以通过应用在编码侧使用的颜色变换f_ct的反颜色变换if_ct来重建5000nit原始主图像im_rhdr,以从mast_hdr得到im_ldr。可以包括显示调谐单元209,其将sdr图像im_rldr变换为不同的动态范围,例如,在显示器210是3000nitpb显示器的情况下被最佳分级的im3000nit,或1500nit或1000nitpb图像等。

图3示出了从wo2014056679获取的如何设计这种保持色度的亮度重计算。当在标准化为针对sdr和hdr图像两者的1.0最大相对亮度的色域中看时,能够理解该处理(即假设sdr和hdr具有相同的例如rec.2020原色,它们具有完全相同的帐篷状色域;如wo2014056679的图1中所示)。如果想要驱动任何显示器以使例如牛仔在驱动图像中具有对应于显示器的峰值亮度的10%亮度的亮度代码,则显示器的pb越高,牛仔将渲染得越亮。这可能是不期望的,因为我们可能想要在所有显示器上以(近似)相同的亮度渲染牛仔,例如60nit。当然,显示器的pb越高,他的相对亮度(或对应的10位亮度代码)应当越低,以获得相同的最终渲染亮度。也就是说,可以将这种期望表示为例如从针对sdr图像的亮度代码800到例如针对hdr图像的亮度代码100的降级映射(取决于定义所使用的代码的eotf的确切形状),或者,在亮度中,将60%sdr亮度映射到例如针对4000nithdr显示器或其对应的最佳分级图像的1/40th。本文中的降级意味着将像素的亮度代码(或其对应的渲染亮度)从较高峰值亮度的表示(即用于在较高pb显示器(例如1000nitpb)上渲染)改变为用于在较低pb显示器(例如100nitsdr显示器)上渲染的较低pb图像中的相同场景的图像的亮度,并且升级是用于将较低pb图像变换为较高pb图像的相反颜色变换,并且不应当将其与空间尺度升高和尺度降低相混淆,空间尺度升高和尺度降低分别是添加新像素和丢弃一些像素或这些像素的一些颜色分量。可以通过图3的设备以将自动尺度调整到针对某个色度(x,y)可用(可渲染)的最大亮度lmax(x,y)的方式对任何颜色进行该操作,其中(rgb)三元组对应于显示器或编码代码色域中的该色度。实际上,能够证明这对应于应用类似的亮度映射,其在(即,具有无特定色调的颜色的)消色差轴上将sdr图像中的颜色的输入亮度l获取为最佳hdr分级图像的所需相对输出亮度l*。在没有深入细节的情况下,与本教导相关的是,对应的颜色变换能够通过乘法器311实现为在(优选线性的)rgb分量上的每个分量上的乘法变换,其具有大于或小于1.0的常数g,其对应于所选的亮度变换函数l_out=tm(l_in)的任何形状,其也能够被公式化表示为像素的输入红色、绿色和蓝色值的最大值的函数变换。因此,对于每种输入颜色(r,g,b),当亮度映射器307获得某个sdr亮度到hdr_亮度映射函数(例如参数指定的loggamma函数或sigmoid,或被接收为lut的多线性曲线)时,计算适当的g值以应用将im_rldr转换为im_rhdr的期望颜色变换(或以适当的尺度调整方式变换为任何其他分级图像,如im3000nit)。示例性实施例电路的部件是:305:最大值计算器,输出正被处理的像素颜色的r、g和b值的最大值(最大rgb);301:亮度转换器,根据系统当前工作的某种颜色定义标准(例如,rec.2020)计算颜色的亮度;302:除法器,产生lmax(x,y)作为l/max(r,g,b);307亮度映射器实际上作为映射器在最大rgb上工作,产生m*=tm(maxrgb),其中tm是定义f_ct的亮度变换部分的某个函数;308:乘法器,产生l*=(m*)xlmax(x,y),以及310增益确定单元,在该实施例中实际上是除法器,计算g=l*/l,即输出hdr相对亮度除以输入sdr相对亮度l;以及311是乘法器,其被布置为将三个颜色分量r、g、b乘以相同的g因子。

该电路可能适合于某些颜色编码。然而,理想情况下人们喜欢使用典型的sdr编码,因为它们通常被使用。从hevc解码器207出来的im_ldr通常将采用非线性y’cbcr编码(其中我们能够假设非线性近似为平方根,即忽略非恒定亮度问题:近似地,y’=sqrt(l))。对于这样的新颖的sdr传送的hdr视频编码(或者如上所述,实际上是包括至少sdr和主hdr外观的分级的集合)的更多问题在于如下事实:在一些情况下可以对cb和cr系数进行空间子采样,例如采用4:2:0编码。这在sdr中并不是真正的问题,不仅因为任何颜色错误在100nit渲染时都不会显得很大,而且因为在上面解释的技术中,我们有用于重建im_rhdr(或显示器调谐的im3000nit)的颜色变换,其在sdr视频编码范式中是不存在的。如果具有错误的rgb值(因为在解码侧每个像素不再具有完全分辨率正确的rgb值),则这会导致在tm函数的错误地方处读取,或者换句话说,在图3的解码器中获得错误的g因子。即有时可能会有严重错误地增强或调暗sdr颜色的风险,例如在对象的边界处,从而给出可能可见的伪影,并且不重分准确的im_rhdr重建。



技术实现要素:

对主hdr图像的更近似的无伪影重建能够通过同意对解码器和对应的编码器进行一些修改并且特别是通过具有一种视频解码器(220)来获得,所述视频解码器(220)被布置为从编码的输入图像中解码并输出时间上连续的高动态范围图像(im_rhdr)的集合,所述编码的输入图像是编码的低动态范围图像(im_cod)的集合,所述编码的低动态范围图像是以其中像素颜色由亮度值(y’4l)和色度值(c’b0l,c’r0l)表示的格式的,所述色度值(c’b0l,c’r0l)与所述亮度值(y’4l)相比在空间上被子采样,所述视频解码器包括:

-视频解码器(207),其被布置为将所述编码的低动态范围图像解码为未编码的低动态范围图像(im_rldr);

-第一空间尺度升高器(501)和第二空间尺度升高器(502),其被布置为将所述低动态范围图像(im_rldr)的色度值尺度升高到所述亮度值的分辨率;

-颜色转换器(503),其被布置为针对所述低动态范围图像(im_rldr)的每个像素将所述亮度值和色度值转换为包括三个非线性r’g’b’颜色值的非线性r’g’b’表示(r’4,g’4,b’4);

-最大值计算单元(504),其被布置为针对每个像素输出所述三个非线性r’g’b’颜色值的最大值(m);

-亮度映射单元(505),其被布置为接收亮度映射函数(tm),所述亮度映射函数(tm)定义正被处理的所述低动态范围输入图像(im_rldr)中的一幅的亮度与要被获得的对应的高动态范围输出图像(im_rhdr)的亮度之间的关系,并且所述亮度映射单元被布置为针对每个像素将所述亮度映射函数应用于所述最大值(m),从而得到输出最大值(m*);

-增益因子计算器(506),其被布置为针对每个像素通过将所述输出最大值(m*)除以所述最大值(m)来获得增益值(g);

-第一空间尺度降低器(507)和第二空间尺度降低器(508),其被布置为将所述增益值在空间上尺度降低到所述低动态范围图像的所述色度值的分辨率;以及

-乘法器(509、510、511),其被布置为针对每个像素将正被处理的所述低动态范围输入图像(im_rldr)的所述亮度值和色度值(c’b0l,c’r0l)与所确定的相应增益值(g)相乘,针对所述色度值的相应增益值是尺度降低的增益值。

未编码的图像通常将是已知的格式,即y’cbcr,其中y’是能够根据非线性r’、g’、b’系数计算出的亮度,在不失一般性的情况下,我们假设其是线性rgb系数的平方根。这是因为这样的格式是在基于dct的视频压缩器中通常使用的格式,即类似于像hevc那样的mpeg类型视频编码。确切的方程式取决于所使用的颜色定义,即特别是其原色。我们假设有利的rec.2020用于阐明,在这种情况下,关系是:y’=0.2627r’+0.6780g’+0.0593b’(这一般将是y’=ar’+bg’+cb’,例如当使用p3rgb颜色系统或rec.709等时a、b、c具有其他值);

cb=(b’-y’)/1.8814

cr=(r’-y’)/1.4746

我们将仅阐明4:2:0空间子采样或尺度降低的示例,其中cbcr分量在水平方向和垂直方向上具有亮度y’的分辨率的一半,即色度分量图像是它们在4:4:4完全分辨率编码中将具有的大小的1/2*1/2,本领域技术人员能够理解如何处理其他子采样情况,例如4:2:2等。

问题在于,在解码/接收侧,输入图像(其最终必须变成完全质量的,即,在hdr显示器需要被提供有图像的情况下完全的4:4:4分辨率hdr图像),而尺度升高将与ldr一样,当需要hdr图像时这不是微不足道的,因为在图像中编码的内容与比色变换之间的相互作用,并且因为基本上并非所有进行颜色相关的颜色变换所需的信息都存在于接收侧。

然而,如果巧妙地设计编码解码技术方案,则能够获得稳定且高质量的解决方案。

所需要的是,尺度升高器优选地进行高质量的尺度升高,但更重要的是,在建立和执行颜色变换以转换到另一动态范围图像之前在该地方处的尺度升高在编码器中与在解码器使用时相同。这确保函数颜色变换为mast_hdr生成im_ldr,并且反变换能够是相同的(尽管是反向的),即mast_hdr能够被接近地重建为im_rhdr。它将得到要被应用的2d增益图像中的正确增益值,而不是在一些情形中在某些空间位置处可能得到不正确的增益值。

适当的亮度尺度调整能够在线性红色、绿色和蓝色系数的任何幂函数上发生,例如,平方根,或具有相同幂的两个这样的分量的加法或减法组合,但是,为了允许保持在色域内的属性,对颜色在色域中所处位置(即,例如安全地在中途,或接近3d色域的顶部,即针对该色度的最大可实现亮度)的评估在该技术中通过在三个非线性红色、绿色和蓝色分量中的最大的一个上进行操作(通常优选用oetf或代码分配幂值0.5定义为纯幂,即r’=幂(r,0.5),并且对于其他颜色分量相同,在r和r’两者的完全范围标准化[0.0,1.0]表示中)来完成。代替0.5,例如也能够使用1/(2.4)或其他值。然后能够将颜色变换公式化为乘法策略,其具有我们称为增益因子的因子,由此技术读者应当理解,如果增益因子小于1.0,例如为0.3,则我们实际上在标准化色域中使相对亮度变暗。另一部分在于,解码器现在为每个输入的y’4l、c’b0l、c’r0l三元组(在其进入时)建立正确的增益。因此,每次有亮度时,它将乘以其对应的适当的增益值,并且每次色度可用时,它也将乘以正确的增益值。这对应于具有针对每个场景的正确的子采样增益值图像,这意味着sdr到hdr变换实际上能够以任何格式被直接应用于子采样输入ldr图像im_rldr上。稍后,尺度升高将在相同的hdr表示中发生,并且没有再次出现特别的问题,例如,可以完成到用smptest2084反eotf定义的4:4:4r”g”b”表示的转换。

对编码的低动态范围图像的解码可以提供以其中像素颜色由亮度值和色度值表示的格式的未编码的低动态范围图像,所述色度值与所述亮度值相比在空间上被子采样。像素颜色可以具体地由一个亮度值和两个色度值表示。亮度值的分辨率通常与低动态范围图像的像素分辨率相同。色度值的分辨率低于低动态范围图像的分辨率,因此通常低于低动态范围图像的像素分辨率。对于低动态范围图像的多个亮度值/像素,色度值通常可以是共同的。

高动态范围图像可以类似地是以其中像素颜色由亮度值和色度值表示的格式的。

可以针对(未编码的)低动态范围图像的每个像素确定最大值m、输出最大值m*和增益值,并且可以将(未编码的)低动态范围图像的每个像素乘以对应的增益值。低动态范围图像可以具体地指代未编码的低动态范围图像。针对给定亮度或色度值的相应的增益值可以是根据由增益因子计算器确定的值针对该值的位置确定的增益值。对于针对像素的亮度值,相应的增益值通常是针对该像素确定的增益值。对于色度值(具有比像素分辨率低的分辨率),相应的增益可以是针对由第一空间尺度降低器或第二空间尺度降低器确定的色度值的位置的增益。

本发明人的一个重要洞察是,使色度系数的尺度升高被协调为与在视频编码器中使用的尺度升高相同,所述视频编码器将高动态范围图像编码为编码的低动态范围图像的集合。这考虑在这样的动态范围转换技术中首次出现的特定问题。

具有如下视频解码器可以是有利的,在所述视频编码器中第一空间尺度升高器(501)和第二空间尺度升高器(502)是可编程的以应用至少两种不同的尺度升高算法,并且被布置为接收要使用的尺度升高算法(intstr1)以用于对当前输入的编码的低动态范围图像(im_cod)的集合进行解码。具有不同的尺度升高(和尺度降低)算法可能有几个原因,例如,取决于是否由于某种原因而决定将子采样色度值与高分辨率亮度样本共同安置(co-sited),或者在没有亮度存在的中间的新位置处等,以及在垂直方向和水平方向上分别使用哪个子采样;其可能都是不同的等。通常这对于每个视频应当是相同的,但是它可能会改变,例如,当电视切换到另一频道时。然后有利的是,特定的尺度升高算法(并且优选地还有在不固定的情况下使用的针对增益值的尺度降低算法)能够被强制为与在编码器处使用的算法完全相同的算法,因为正如所述的那样,需要其用于准确的动态范围转换。编码器实际上不需要将算法作为代码传送,但通常它将在尺度重新调整策略类型指示符intstr1中指示使用哪种类型的内插,例如,色度的中间缺失值从它们的邻居复制,或者等同于来自它们的邻居等的加权组合等,然后作为元数据(例如,sei信息)被传送的intstr1=2能够例如通常被所有解码器解释为分别对紧挨着的左右cr和cb值进行加权,每个权重为1/2。原则上,两个尺度升高或尺度降低算法对于两个色度可以是不同的,但是通常两个色度分量被类似地定义,即它们的尺度升高或尺度降低算法将是相同的,并且可以仅需要一个intstr1。在较简单的情况下,在与亮度样本共同安置的共同安置色度系数的情况下,尺度降低可以简单地是丢弃,即,假如在一个像素位置处存在亮度和两个色度两者,则它们三个全部都乘以相同的增益值,但是假如只有亮度可用,则将此亮度乘以适用于该位置并且针对该位置计算的增益值,但不对色度值相乘,因为它们不存在。但是一般来说,可以存在包含于尺度降低算法中的针对增益因子的内插策略,因此也能够存在这样的实施例,其中针对亮度的增益值实际上与针对色度的增益值稍微不同,尽管通常两个色度将具有相同的增益值。还可以在处理电路的该部分中包含饱和度调节策略,但我们将在阐明我们的基本新构思需要的内容之外考虑这个。

在视频解码器(220)包括颜色转换器(512)时可以是进一步有利的,所述颜色转换器(512)被布置为将输出的高动态范围图像(im_rhdr)的集合从用0.5(或1/(2.4))的反伽马定义的y’cbcr表示转换为高动态范围rgb颜色表示。例如,利用正确地最佳分级的高动态范围rgb颜色分量驱动已经连接的显示器可以是有利的。该显示器可以接受在例如hdr10或建立局部颜色贡献(如它们能够用例如lcd阀或oled子像素等来实现)所需的加性原色rgb颜色信道的任何基于hdr-oetf的(例如10或12位)表示中定义的像素颜色。这并不意图限制视频解码器可以驻存在其中的任何中间装置,和/或连接的显示器可以进行各种进一步的颜色转换、颜色优化等,并且在一些实施例中,解码器可以例如直接驻存在电视或移动设备中,而不需要如下的中间装置:机顶盒、蓝光播放器、计算机、用于提供hdr电影投影仪的专业电影hdr视频接收器、视频监控系统中的图像预分析系统、视频电信或远程呈现系统、具有hdr输出的医学系统等。

作为示例,视频解码器(220)可以输出用rgb像素颜色表示的高动态范围图像的红色、绿色和蓝色分量(r”,g”,b”)作为最终输出,所述rgb像素颜色由在smpte2084中定义的光电转换函数(oetf)定义。

有利地,具有一种视频解码的方法,其被布置为从编码的输入图像中解码并输出时间上连续的高动态范围图像(im_rhdr)的集合,所述编码的输入图像是编码的低动态范围图像(im_cod)的集合,所述编码的低动态范围图像是以其中像素颜色由亮度值(y’4l)和色度值(c’b0l,c’r0l)表示的格式的,所述色度值(c’b0l,c’r0l)与所述亮度值(y’4l)相比在空间上被子采样,所述方法包括:

-将所述编码的低动态范围图像解码为未编码的低动态范围图像(im_rldr);

-将所述低动态范围图像(im_rldr)的所述色度值尺度升高到所述亮度值的分辨率;

-针对所述低动态范围图像(im_rldr)的每个像素将所述亮度值和色度值转换为包括三个非线性r’g’b’颜色值的非线性r’g’b’表示(r’4,g’4,b’4);

-针对每个像素计算所述三个非线性r’g’b’颜色值的最大值(m);

-接收亮度映射函数(tm),所述亮度映射函数(tm)定义正被处理的所述低动态范围输入图像(im_rldr)中的一幅的亮度与要被获得的对应的高动态范围输出图像(im_rhdr)的亮度之间的关系,并且针对每个像素将所述亮度映射函数应用于所述最大值(m),从而得到输出最大值(m*);

-针对每个像素通过将所述输出最大值(m*)除以所述最大值(m)来计算增益值(g);

-将所述增益值在空间上尺度降低到所述低动态范围图像的所述色度系数值的分辨率;并且

-针对每个像素将正被处理的所述未编码的低动态范围输入图像(im_rldr)的所述亮度值和色度值(c’b0l,c’r0l)与所确定的相应增益值(g)相乘,针对所述色度值的相应增益值是尺度降低的增益值。有利地,具有根据权利要求5所述的视频解码的方法,其中,所述尺度升高是可编程的并且能够应用至少两种不同的尺度升高算法,并且应用接收到的要使用的尺度升高算法(intstr1)以用于对当前输入的编码的低动态范围图像(im_cod)的集合进行解码。

在视频创建侧具有一种视频编码器(221),其被布置为将时间上连续的高动态范围图像(mast_hdr)的集合编码为编码的图像,所述编码的图像是编码的低动态范围图像(im_cod)的集合,所述编码的低动态范围图像是以其中像素颜色由亮度值(y’4l)和色度值(c’b0l,c’r0l)表示的格式的,所述色度值(c’b0l,c’r0l)与所述亮度值(y’4l)相比在空间上被子采样,所述视频编码器包括:

-空间尺度降低器(405),其被布置为将所述高动态范围图像(mast_hdr)中的一幅的色度值(c’b4,c’b4)子采样为所述高动态范围图像(mast_hdr)中的所述一幅的所述像素颜色的子采样色度值(c’b0,c’r0);

-第一空间尺度升高器(406)和第二空间尺度升高器(407),其被布置为将所述子采样色度值(c’b0,c’r0)尺度升高到所述高动态范围图像(mast_hdr)中的所述一幅的所述亮度值(y’4)的分辨率;

-颜色转换器(408),其被布置为针对所述高动态范围图像(mast_hdr)中的所述一幅的每个像素将所述高动态范围图像(mast_hdr)中的所述一幅的像素颜色的所述亮度值和尺度升高的色度值转换为包括三个非线性r’g’b’颜色值的非线性r’g’b’表示(r’4,g’4,b’4);

-最大值计算单元(409),其被布置为针对每个像素输出所述三个非线性r’g’b’颜色值的最大值(m);

-亮度映射单元(410),其被布置为接收亮度映射函数(tm),所述亮度映射函数(tm)定义要被编码为编码的低动态范围图像(im_cod)的所述低动态范围输入图像(im_ldr)中的对应一幅的亮度与正被编码的所述高动态范围输出图像(mast_hdr)的亮度之间的关系,并且所述亮度映射单元被布置为针对每个像素将所述亮度映射函数应用于所述最大值(m),从而得到输出最大值(m*);

-增益因子计算器(411),其被布置为针对每个像素通过将所述输出最大值(m*)除以所述最大值(m)来获得增益值(g);

-第一空间尺度降低器(412)和第二空间尺度降低器(413),其被布置为将所计算的增益值在空间上尺度降低到所述高动态范围图像(mast_hdr)中的所述一幅的所述像素颜色的所述子采样色度值(c’b0,c’r0)的分辨率;以及

-乘法器(414、415、416),其被布置为针对每个像素将所述亮度值和子采样色度值(c’b0,c’r0)与所确定的相应增益值(g)相乘,针对所述子采样色度值的所述相应增益值是尺度降低的增益值。

高动态范围图像可以是以其中像素颜色由亮度值和色度值表示的格式的。像素颜色可以具体地由一个亮度值和两个色度值表示,即像素颜色可以由一个亮度信道和两个色度信道表示。(在子采样之前)针对高动态范围图像的亮度值和色度值的分辨率通常与高动态范围图像的像素分辨率相同。在子采样/尺度降低之后高动态范围图像的色度值的分辨率低于高动态范围图像的像素分辨率,并且因此通常低于高动态范围图像的像素分辨率。对于低动态范围图像的多个亮度值/像素,子采样色度值通常可以是共同的。

可以针对高动态范围图像的每个像素确定最大值m、输出最大值m*和增益值,并且可以将高动态范围图像的每个像素乘以对应的增益值(将认识到,对于多个像素共同的子采样色度值,可以仅执行一次乘法,即单个共同乘法可以实现对色度值和针对多个像素的增益值的乘法)。针对给定亮度或色度值的相应的增益值可以是根据由增益因子计算器确定的值针对该值的位置确定的增益值。对于像素的亮度值,相应的增益值通常是针对该像素确定的增益值。对于色度值(具有比像素分辨率低的分辨率),相应的增益可以是针对由第一空间尺度降低器或第二空间尺度降低器确定的色度值的位置的增益。

具有如下视频编码器可以是有利的,其中,第一空间尺度升高器和第二空间尺度升高器被确定为应用固定的尺度升高算法,所述固定的尺度升高算法被预先同意要由所有解码器使用以被供应有所述编码的低动态范围图像(im_cod)的集合。

有利地,第一空间尺度升高器(406)和第二空间尺度升高器(407)被确定为应用固定的尺度升高算法,该固定的尺度升高算法被预先同意要由所有解码器使用以被供应有所述编码的低动态范围图像(im_cod)的集合。

有利地,具有一种视频编码的方法,其被布置为将时间上连续的高动态范围图像(mast_hdr)的集合编码为编码的图像,所述编码的图像是编码的低动态范围图像(im_cod)的集合,所述编码的低动态范围图像是以其中像素颜色由亮度值(y’4l)和色度值(c’b0l,c’r0l)表示的格式的,所述色度值与所述亮度值(y’4l)相比在空间上被子采样,所述方法包括:

-将正被编码的所述高动态范围图像(mast_hdr)中的一幅的色度值(c’b4,c’b4)在空间上子采样为所述高动态范围图像(mast_hdr)中的所述一幅的所述像素颜色的子采样色度值(c’b0,c’r0);

-将所述子采样色度值(c’b0,c’r0)尺度升高到所述高动态范围图像(mast_hdr)中的所述一幅的所述亮度值(y’4)的分辨率;

-针对所述高动态范围图像(mast_hdr)中的所述一幅的每个像素将所述高动态范围图像(mast_hdr)中的所述一幅的像素颜色的所述亮度值和尺度升高的色度值转换为包括三个非线性r’g’b’颜色值的非线性r’g’b’表示(r’4,g’4,b’4);

-针对每个像素计算所述三个非线性r’g’b’颜色值的最大值(m);

-接收亮度映射函数(tm),所述亮度映射函数(tm)定义要被编码为编码的低动态范围图像(im_cod)的所述低动态范围输入图像(im_ldr)中的对应一幅的亮度与正被编码的所述高动态范围输出图像(mast_hdr)的亮度之间的关系,并且针对每个像素将所述亮度映射函数应用于所述最大值(m),从而得到输出最大值(m*);

-针对每个像素通过将所述输出最大值(m*)除以所述最大值(m)来计算增益值(g);

-将所计算的增益值在空间上尺度降低到所述高动态范围图像(mast_hdr)中的所述一幅的所述像素颜色的所述子采样色度值(c’b0、c’r0)的分辨率;并且

-将所述亮度值和子采样色度值(c’b0,c’r0)与所确定的相应增益值(g)相乘,所述色度值的所述相应增益值是尺度降低的增益值。

当前的新技术构思可以以各种形式体现,例如连接系统,可以通过通用网络或专用网络传送的远程位置上的部分服务,一种包括代码的计算机程序产品,所述代码当在处理器上运行时使所述处理器能够执行以上方法权利要求中的一项的所有方法步骤,包括唯一地指定必须在编码器和解码器两者处使用的尺度升高算法的编码intstr1以及在适用时还有等同于针对增益值的尺度降低算法的编码intstr1*的任何视频信号编码,等等。

附图说明

参考下文描述的实施方式和实施例,并且参考附图,根据本发明的方法和装置的这些和其他方面将是显而易见的并得到阐述,附图仅用作例示更一般概念的非限制性具体说明,并且其中虚线用于指示元件是任选的,非虚线部件不一定是必需的。虚线也能够用于指示被解释为必需的但隐藏在对象的内部的那些元件或者用于无形的东西,诸如对对象/区域的选择(以及它们如何被示出在显示器上)。

在附图中:

图1示意性地图示了当最佳地将高动态范围图像映射到对应的最佳颜色分级的类似外观(与在给定第一动态范围dr_1和第二动态范围dr_2的差异的情况下期望的和可行的那样类似)时发生的多种典型颜色变换,其在可逆性的情况下也将对应于hdr场景的ldr图像到该场景的hdr图像的映射;

图2示意性地图示了申请人最近开发的编码高动态范围图像的技术,所述高动态范围图像即为能够具有通常至少400nit或更高亮度的图像,所述技术实际上将(一幅或多幅)hdr图像作为ldr图像加上编码颜色变换函数的元数据传送,所述颜色变换函数至少包括针对像素颜色的适当确定的亮度变换,以由解码器用于将接收到的(一幅或多幅)ldr图像转换为(一幅或多幅)hdr图像,所述(一幅或多幅)hdr图像是在图像创建侧创建的(一幅或多幅)原始主hdr图像的忠实重建;

图3示意性地图示了申请人的第一版本技术,其能够用于实现色域内颜色(即色度)保持亮度变换以用于改变图像对象或像素的亮度以使它们更符合在与输入图像的动态范围不同并且特别是大于输入图像的动态范围的动态范围的图像中所需要的亮度,这特别适用于特定类型的情况;

图4示意性地示出了用于计算视频解码器的动态范围变换的新发明的比色核心部分(400);

图5示意性地示出了用于计算对应于编码器的主hdr图像的低动态范围图像的动态范围变换的新发明的比色核心部分(500),其适合于与如hevc的已安装的传统视频压缩技术以及基于其的进一步的视频通信技术或未来类似的视频压缩技术一起进行操作;并且

图6示意性地示出了用于将子采样色度上采样到亮度的分辨率的两个可能的算法。

具体实施方式

图4示出了如何构建新编码器的典型示例性实施例。假设根据smptest2084oetf以r”g”b”颜色表示定义主hdr图像。三个颜色分量变换单元(401、402、403)应用函数,所述函数在平方根(在此说明中,或备选地例如由1/(2.4)幂定义)oetf表示中重新定义这些值(即,能够将其解释为首先将r”g”b”值变换为线性颜色分量rgb,然后变换为平方根版本r’g’b’,但这能够通过应用一个函数来完成)。颜色变换器404将其变换成y’cbcr格式。这是hevc编码器通常所期望的,但读者应当理解这仍然是奇怪的图像,因为其是强制在ldr颜色表示框架中的hdr图像,但这并不重要,因为其余的颜色处理单元将适当地进行处理。然后,像素颜色的这种y’cbcr表示在空间子尺度调整器405中被子采样为例如4:2:0,即丢弃75%色度值,产生hdr主图像的子采样图像表示:y’4、c’b0、c’r0。

因此,像素颜色遵循以非线性格式表示的空间子尺度调整器405,该非线性格式包括一个亮度值以及通常两个空间子采样色度值。

然后在确定用于实现期望变换的合适增益的动态范围变换路径中,需要再次对该信号进行上采样,以获得针对动态范围变换的正确分辨率(记住,亮度是原始的完全分辨率)。然而,重要的是,这是以与解码器将应用其一致且完全相同的方式完成的。无论高分辨率y’cbcr值的“实际”值是什么,都不是那么重要,因为重要的是,编码器和解码器进行相同的动态范围变换,使得在任何解码器/接收器侧它都是完全可逆的(至少达到一些错误,如来自字长到条带,以及dct错误等)。这允许以高精度重建原始主hdr图像,同时具有该hdr编码技术的所有益处,例如尤其是良好的ldr图像质量(特别是没有颜色去饱和,如典型的非色度保持动态范围改变颜色处理所发生的那样),保持在可实现的色域内,这将再次避免由于削波导致的颜色错误等。

实际上,所描述的方法的特定优点在于它允许基于相同的值(假设理想的编码/解码)在编码器和解码器两者中执行处理(尺度升高)。因此,可以避免与编码器中的下采样和编码器中的上采样相关联的劣化,并且能够在两个单元中实现完全相同的处理。

然后,通过颜色转换器408将正确协调地上采样ycbcr颜色转换为非线性r’g’b’颜色。因此,ycbcr表示被转换为非线性的rgb格式。

随后,最大值计算单元将这三个颜色分量中的最大的一个确定为原始颜色或输入颜色的最大值m。

单独地,已经确定了亮度映射或变换函数tm(),其是将表示场景的hdr图像的对象或像素亮度变换为ldr图像亮度的良好或合理方式。即,这通常是为每个可能的输入亮度[0.0,1.0]定义输出亮度的函数。也可能涉及局部亮度变换,即如果在为天空的上部区域中给出例如0.45的相同亮度,则在针对图像的较低地面部分中的像素发生0.45亮度时,它将具有不同的输出亮度,但是对于这个说明,我们将仅假设全局亮度映射。在也可以被包括在总函数集合(f_ct)中的动态范围变换的颜色转换中还由于各种原因有诸如饱和度变化之类的一个或多个色度颜色变换(例如,图像中的一幅可以是在不同的颜色空间中,例如hdr图像在rec.2020中并且ldr图像在rec.709rgb原色中,或者可以另外增加在ldr图像中与在hdr图像中相比需要变暗的颜色的饱和度,以增加它们的鲜明度),但为了简化本文新构思的说明,我们将假设颜色变换f_ct仅由单个亮度变换函数组成。在这个函数实际上可以类似地定义在亮度域中的情况下,我们将不失一般性地假设它是指定(即[0.0,1.0]中)每个hdr相对亮度应当如何映射到其对应的相对ldr亮度的函数,并且为了避免进一步的复杂化,我们假设浮点数,因为针对每个表示的位的量也可以在稍后阶段被确定,例如当格式化y’4l、cb’0l和cr’0l以进入hevc编码器时。例如,假如涉及人类颜色分级器,则他可以通过使用颜色分级软件来指定亮度变换函数tm()的期望形状,并且这可以是例如三部分曲线,所述三部分曲线为hdr图像中的亮颜色、中间颜色和暗颜色保留特定子范围,然后将这些子范围隐含地定义在曲线的形状中,或者,他还可以在输入亮度的小子区域中进一步微调该形状,所述区域需要更多或者反之更少对比度等。如果编码器被连接到直接视频电源,例如在现实生活广播中,可以已经在先前以粗略的方式建立了良好的亮度映射,这对整个节目来说是足够好的,例如,即使当相机在场景的较亮部分与较暗部分之间移动或转向较亮的子区域等时。这个简单的函数也可以(部分地)由人来确定,或者甚至自动确定,例如,基于许多捕获的典型图像中的亮度的统计数据等。亮度变换函数tm()已经如何被建立的细节对于说明本发明或其一些实施例并不重要,因为只需有一个就足够。

(在域[0.0,1.0]与[0.0,1.0]之间的)该亮度变换函数tm()现在由亮度映射单元401应用于最大值m,其根据定义也落在[0.0,1.0]内,产生对应的输出最大颜色分量,输出最大值m*。

该信息传达了像素颜色例如已经相对变亮,但现在以最大颜色分量表示。最终(即在所有三个颜色分量上)进行作为单个乘法的颜色变换的所需增益值被计算为g=m*/m,并且这在增益因子计算器411中被确定。

第二个问题是这些增益值现在再次未处于如下分辨率(以及可能甚至空间位置)处,在这些分辨率中在它们传入时需要将它们乘以y’4、c’b0和c’r0颜色分量,即必须发生一些或多或少困难的尺度降低,但是再次以在编码器和解码器两者中一致的方式,否则可能仍然存在转换错误,导致不正确的hdr像素颜色伪影(当然,如果仅使用用于该尺度降低的单个方法,则编码器和解码器将根据定义与该方面保持一致,因此在一些实施例中,关于所使用的尺度降低算法的同步信息intstr1*不需要被传送到任何接收器,但是无论如何都应当始终保证所要服务的全部解码器与特别使用的编码器一致,其生成要解码的hdr视频)。

因此,尺度降低器412和413处理所确定的增益值以执行对增益值的适当尺度降低。具体地,可以将增益值确定为在亮度值的分辨率处计算的增益值的2维集合,并且这可以由尺度降低器412和413尺度降低到色度值的分辨率。因此,有效地,能够将完全分辨率“增益图像”尺度降低到色度值的分辨率(在特定示例中尺度降低四倍)。

所得到的增益可以被应用于乘法器414、415、415,其将来自空间子尺度调整器405的亮度和下采样色度值相乘。因此,为相应的乘法器414、415和416确定适当的增益值,所述乘法器在颜色分量进入时将它们相乘,最终实现对ldr图像的所需动态范围变换。

然后,可以在已经处于适当格式(即ycbcr,并且具有子采样色度分量)的图像表示中利用可能的一些传统的基于dct的视频压缩策略对所得到的ldr图像进行编码。这产生了目前是真实ldr图像的y’4l、cb’0l和c’r0l、亮度和蓝色、红色色度(实际上是传统的sdr图像;以基于rec.709oetf的格式定义,或者其良好的近似是基于平方根非线性rgb的格式),但是对应于hdr图像的ldr图像,因为它不仅是可直接观看的ldr图像(即,当在100nitsdr电视上观看时给出当前hdr场景的良好视觉质量,例如在恐怖电影中黑暗部分不太暗,这在sdr显示器上显示hdr图像时不会发生,因为黑暗中的所有动作都会映射到几乎不可分辨的黑色)。而且,哪个ldr图像(在任何接收侧解压缩的im_rldr)能够利用包含所需的颜色变换函数(至少一个亮度转换函数)的共同接收到的元数据(sei(f_ct))颜色变换为原始创建的hdr图像mast_hdr的接近高质量重建hdr图像im_rhdr。

可能的尺度升高算法的两个示例如图6所示。圆圈给出像素位置(以最高分辨率格式,我们称之为4:4:4),其中除了当然亮度值之外还存在两个色度值(即无论是在解码器中还是在准备动态范围变换的编码器中),即在某些像素位置处不会有可用的色度,而是仅有亮度(正方形)。图6a说明了一种算法,其中通过复制来自相邻邻居的值来确定它们不可获得的像素位置的所需色度,所述邻居用箭头表示。图6b给出了备选算法,其中缺失值被确定为相邻值的平均值,例如,cb(0,1)=0.5cb(0,0)+0.5cb(0,2)等,其中(0,0)等是图像中的某个位置的像素位置坐标(x,y)。

图5示出了用于在解码器中建立亮度动态范围变换的对应颜色变换部分(亮度动态范围转换目前是从接收到的低动态范围图像im_cod(解压缩成im_rldr)到需要的高动态范围图像,例如在连接3000nit显示器的情况下,5000nit主原始,或其3000nit等效自动重分级,这也能够通过使用分级函数中的信息来实现,所述信息编码不同的动态范围图像理想地应当看起来如何)。

具体地,从图4的电路生成的sdr信号可以被编码在例如hevc编码器并被发送到接收器/解码器。这可以包括hevc解码器,其递送具有由亮度值和空间子采样色度值表示的像素颜色的像素,并且具体地,其提供y’4l、c’b0l、c’r0l(ldr或实际上是sdr)颜色值/分量。色度值由尺度升高器501和502在空间上进行尺度升高,尺度升高器501和502如所述的采用与编码器已经用于建立动态范围尺度降低的算法完全相同的算法。

假如在特定技术部署中没有单个算法可能性(例如,相反地,用于基于专有互联网的系统的一些解码器可能仅适用于一个固定编码器,仅具有一个固定尺度升高算法的实施例),可以对尺度升高器进行编程(例如,在某个cpu单元的控制下)以采用对应于针对该视频的接收到的intstr1算法类型指示的算法(例如类型#3是算法nr.3;或者技术人员理解如何能够以各种方式传达它)。换句话说,可以根据与图像一起接收的数据来确定由尺度升高器501和502采用的精确尺度升高算法,使得其能够与编码器中使用的尺度升高算法相同。

然后,尺度升高的完全分辨率ycbcr颜色在它们传入时由颜色转换器503逐像素地转换为非线性r’g’b’颜色,然后最大值m由最大值计算单元505计算。然后,亮度映射/函数tm()由映射单元505应用于最大亮度。如技术读者将理解的,这当然是编码器的到sdr的尺度降低的函数的反函数或反函数的集合,并且如果函数被体现在lut中,则轴的交换就足够。在该亮度变换策略由亮度映射tm定义的情况下,增益计算单元506确定对应于该输入颜色的适当增益值,特别是其亮度。根据需要,通过下采样器507和508正确地对这些增益值进行下采样,在一些实施例中,根据应当使用哪种算法的接收到的指示intstr1*将这些增益值编程到不同算法。然后乘法器509、510和511利用适当的增益值计算最终颜色变换(g针对亮度并且gs针对色度,尽管在一些实施例中这些将具有相同的值),这有效地确定针对接收到的ldr图像的hdr像素颜色,其是在编码侧的尺度降低的逆。

因此,解码器的方法可以近似地对应于编码器的方法,但是亮度变换tm()是不同的,并且在许多情况下,这些是彼此的逆。

最后,尽管通常hdr像素颜色在本实施例中可以通过在ycbcr颜色表示中来计算,但是可以再次存在用于颜色变换为任何特定所需要的颜色表示的任何颜色变换器512,例如,用于(例如,通过hdmi连接等)将图像传送到任何连接的显示器520。如上所述,颜色变换f_ct,特别是亮度变换tm以某种方式来自内容创建侧,例如,cpu可以从与编码的ldr图像相关联的元数据中读取它们,例如,共同存储于光盘或其他存储器上,通过网络共同通信等。

所描述的系统可以具体地提供用于有效地生成并传送可以有效地表示hdr和sdr图像两者的信号的方法。该方法可以包括用于在hdr和sdr信号之间进行调整的颜色保持方法。此外,动态范围变换可以基于包括亮度值和(至少)两个空间子采样色度值的非线性表示被直接应用于像素颜色。因此,与例如wo2014056679的方法相反,当前方法不依赖于以完全分辨率由线性rgb值的像素颜色对图像的表示。

该方法可以允许更好的质量和/或更有效的处理。例如,mpeg编码器通常对非线性颜色子采样信号进行操作,例如,y’c’bc’r4:2:0。传统上,这需要从该格式转换为完全分辨率线性rgb值。然而,这种转换是复杂的并且具有高计算负担。它也往往不是最理想的并且会引入图像质量下降。例如,色度分量的子采样可能导致在解码器侧生成的rgb值与在编码器侧使用的rgb值不同,尤其是在视频信号的边缘附近(其中mpeg编码器也倾向于产生稍大的压缩误差,因此放大了差异)。这种差异可能导致重建的hdr信号中的可见差异(伪影)。

然而,在当前的方法中,能够在信号路径中避免这种转换,并且动态范围适配能够被直接应用于亮度/色度值,并且特别是被直接应用于y’c’bc’r4:2:0。此外,在增益确定路径中应用的转换能够基于存在于编码器中的相同值,并且能够使用与解码器中使用的算法完全相同的算法。因此,能够实现改善的质量。

实际上已经发现,通常作为mpeg或jpeg压缩的预处理步骤应用的色度子采样能够导致编码器侧处理和解码器侧处理之间的不匹配,并且该不匹配能够导致重建的hdr视频信号中的可见伪影。在所描述的系统中能够避免或减轻这些问题,其中hdr到sdr转换和颜色表示转换被集成到相同的函数中。这种集成还使得能够更容易地将在解码器侧进行的sdr到hdr转换标准化(通过做出解码规范的转换部分)。

该方法基于以下洞察:通过集成函数并改变执行各种函数的顺序,可以将通常被应用于线性rgb域中的特定功能中的一些移植到非线性子采样亮度/色度域。它还反映了以下洞察:动态范围转换能够以这种方式被应用于子采样色度信号,并且这样做能够消除/减少编码器和解码器侧之间的不匹配(因为在编码器和解码器侧两者处都可获得相同的子采样色度数据(忽略由mpeg压缩本身引起的差异,即压缩误差))。

因此,传统上,编码器方法将要求hdr信号处于线性完全分辨率rgb格式,其中hdr到sdr转换首先被应用于此。这将生成rgbsdr信号,然后将其转换为ycbcrsdr信号(具有色度尺度降低)。因此,在rgb域中以完全分辨率执行hdr到sdr转换,然后这跟着是单独的操作,其中将得到的rgbsdr信号转换为用于编码的ycbcrsdr信号。

类似地,补充操作传统上将在解码器中执行。实际上,接收到的解码图像将是色度下采样的ycbcrsdr图像,其首先被转换为完全尺度rgbsdr信号,跟着是随后的独立sdr到hdr转换。因此,类似地在解码器中,首先将接收到的色度下采样的ycbcrsdr信号转换为完全尺度rgbsdr信号。直到那时才能执行sdr到hdr转换,因此动态范围转换完全在完全分辨率rgb域中执行。

目前的方法基本上是不同的。实际上,在当前方法中,sdr/hdr转换在非线性尺度降低的亮度色度域中被执行,而不是在完全尺度和线性rgb域中被执行。实际上,确定增益值,然后将增益值直接应用于亮度/色度值。

例如,在图5中,接收到的ycbcr值被直接馈送到乘法器509、510、511,在那里它们乘以增益值以产生动态范围调节的ycbcr输出图像。此外,作为sdr到hdr转换的一部分在这种方法中执行尺度升高和到rgb格式的转换,但是这仅在增益确定路径中被执行,并且在信号路径中的任何地方都不执行这样的功能以生成hdr图像(但是当然,在示例中随后通过框512在hdr域中执行ycbcr到rgb)。

因此,在当前示例性方法中,颜色表示转换、分辨率改变和动态范围转换的过程被紧密地集成在单个过程中,而不是单独且独立的顺序过程。此外,动态范围转换在亮度和色度域中被执行而不是在rgb域中被执行。此外,动态范围转换在尺度降低的域中被执行,并且实际上通常针对亮度值和色度值以不同的分辨率被执行。

本文中公开的算法分量可以(全部或部分地)实际上被实现为硬件(例如,程序特定ic的部分)或者在特殊数字信号处理器或通用处理器等上运行的软件。

从我们的介绍中技术人员应当可以理解哪些部件可以是任选的改进并且能够与其他部件组合实现,以及方法的(任选的)步骤如何对应于装置的各个单元,反之亦然。本申请中的“装置”一词以其最广泛的意义使用,即一组单元允许实现特定目标,因此能够例如是ic(的小电路部分)、或专用设备(例如带显示器的设备)、或网络系统的一部分等。“布置”也旨在以最广泛的意义使用,因此它可以尤其包括单个装置、装置的一部分、协作设备(的部分)的集合等。

计算机程序产品表示应当被理解为包括在将命令输入到处理器中的一系列加载步骤(其可包括中间转换步骤,例如翻译成中间语言,以及最终处理器语言)之后使得通用或专用处理器能够执行本发明的特征功能中的任何的命令集合的任何物理实现。特别地,计算机程序产品可以被实现为载体(例如,磁盘或磁带)上的数据、存在于存储器中的数据、经由网络连接(有线或无线)传输的数据、或纸上的程序代码。除了程序代码之外,程序所需的特征数据也可以被体现为计算机程序产品。

操作该方法所需的步骤中的一些可以已经存在于处理器的功能中而不是在计算机程序产品中描述,例如数据输入和输出步骤。

应注意,上述实施例说明而非限制本发明。在技术人员能够容易地实现所呈现的示例到权利要求的其他区域的映射的情况下,我们为了简洁而未深入提及所有这些选项。除了在权利要求中组合的本发明的元件的组合之外,元件的其他组合也是可能的。能够在单个专用元件中实现元件的任何组合。

权利要求中括号内的任何参考标记不旨在用于限制权利要求。“包括”一词不排除权利要求中未列出的元件或方面的存在。元件前面的词语“一个”或“一个”不排除存在多个这样的元件。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1