CN107925778B - 像素预处理和编码 - Google Patents

像素预处理和编码 Download PDF

Info

Publication number
CN107925778B
CN107925778B CN201680045853.4A CN201680045853A CN107925778B CN 107925778 B CN107925778 B CN 107925778B CN 201680045853 A CN201680045853 A CN 201680045853A CN 107925778 B CN107925778 B CN 107925778B
Authority
CN
China
Prior art keywords
component value
processing chain
chroma component
color
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680045853.4A
Other languages
English (en)
Other versions
CN107925778A (zh
Inventor
J.施特雷姆
K.安德森
M.彼得森
J.萨米尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN107925778A publication Critical patent/CN107925778A/zh
Application granted granted Critical
Publication of CN107925778B publication Critical patent/CN107925778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Of Color Television Signals (AREA)
  • Color Television Systems (AREA)
  • Color Image Communication Systems (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

对图片中像素的预处理包括基于用于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。预处理改善了图片的视觉质量,但相对于额外处理时间是低成本的。

Description

像素预处理和编码
技术领域
提出的实施例一般涉及图片中像素的预处理和编码,并且具体而言,涉及以计算高效的方式改善像素的亮度和/或色度值的此类预处理和编码。
背景技术
高度非线性的传递函数、4:2:0二次采样和非恒定亮度排序的组合引发了在视频序列的图片中在饱和颜色中的严重伪影。非线性传递函数将线性样本转换成非线性样本,意图模仿人类视觉。
非线性传递函数的简单样本是x(1/gamma),其中gamma为2.2。另一传递函数的示例是在电影&电视工程师协会(SMPTE)规范ST 2084[1]中使用的一个传递函数。在显示前,一般使用非线性传递函数的逆,但也可能使用某一函数,该函数不是非线性传递函数的逆。在gamma示例中,xgamma能够用于回到线性示例。
一个示例是在[2]中描述的执行从RGB 4:4:4到Y'CbCr 4:2:0的转换的方式,我们将在本文档中称其为处理的“锚”方式。RGB 4:4:4是一般由摄像机用于捕捉视频和显示器用于呈现视频所使用的颜色格式。为以更小的感知伪影压缩视频,RGB 4:4:4一般在压缩前被转换到Y'CbCr 4:2:0。在此情况下,由非线性传递函数将RGB 4:4:4传递到R'G'B' 4:4:4,其随后由线性颜色变换转换到Y'CbCr 4:4:4。最后,在垂直和水平两个方向上按因子二将chroma样本Cb和Cr二次采样到四分之一分辨率,从而产生Y'CbCr 4:2:0。如在附件B中所述,处理的锚方式引发了其中在类似亮度的两个颜色之间的更改能够产生亮度大不相同的重构图片或图像的情况。
发明内容
一般目的是提供像素的预处理以防止视觉伪影。
特定目的是提供改善质量但相对于额外处理时间是成本低的此类预处理。
这些和其它目的通过如本文中公开的实施例而得以满足。
实施例的一方面涉及预处理图片中像素的方法。方法包括基于用于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
实施例的另一方面涉及用于预处理图片中像素的装置。装置配置成基于用于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
实施例的进一步方面涉及用于预处理图片中像素的装置。装置包括确定单元,确定单元用于基于用于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。装置还包括导出器,导出器用于根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
实施例还有的另一方面涉及用于对图片中像素进行编码的装置。装置包括处理器和存储器,存储器包括由处理器可执行的指令。处理器操作以基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。处理器还操作以根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。处理器进一步操作以对luma分量值、第一二次采样的chroma分量值和第二chroma分量值进行编码。
实施例的进一步方面涉及用于对图片中像素进行编码的装置。装置包括确定单元,确定单元用于基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。装置还包括导出器,导出器用于根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。装置进一步包括用于对luma分量值、第一二次采样的chroma分量值和第二chroma分量值进行编码的编码器。
实施例的另一方面涉及一种包括指令的计算机程序,指令在由处理器执行时促使处理器基于用于图片中像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
实施例的有关方面定义包括根据以上的计算机程序的载体。所述载体是电信号、光信号、电磁信号、磁信号、电信号、无线电信号、微波信号或计算机可读存储介质之一。
提出的实施例提供像素预处理和编码,其防止否则可由于与chroma二次采样组合的非线性传递函数的使用而发生的伪影。相对于处理时间,以低成本实现了在亮度和/或色度中的质量改善。
附图说明
通过参考以下描述并结合附图一起理解,可最好地理解实施例连同其进一步的目的和优点,其中:
图1是图示了根据一实施例,预处理图片中像素的方法的流程图;
图2是图示了根据一实施例,图1中示出的方法的另外可选步骤的流程图;
图3是图示了根据另一实施例,预处理图片中像素的方法的流程图;
图4是图示了根据又一实施例,预处理图片中像素的方法的流程图;
图5是图示了根据还有的另一实施例,预处理图片中像素的方法的流程图;
图6是图示了根据一另外实施例,预处理图片中像素的方法的流程图;
图7是图示了根据一实施例的默认(“锚”)处理链的步骤的流程图;
图8是图示了根据一实施例的第一辅助(“Ajusty”)处理链的步骤的流程图;
图9是图示了根据一实施例的第二辅助(“Ajustc”)处理链的步骤的流程图;
图10是图示了根据一实施例,用来形成对像素进行编码的方法的在图1中示出的方法的另外步骤的流程图;
图11图示了根据一个实施例的方法的流程图;
图12A和12B示意性地图示了在有序通过(sequential pass)中执行Ajusty处理链;
图13A图示了根据锚处理链和Ajusty处理链在导出luma分量值之间的差别;
图13B示意性地图示了用于图13A中示出的图片的maxRGB/(minRGB+s)的商;
图14是根据实施例的装置的硬件实现的示意图;
图15是根据实施例的带有处理器和存储器的装置的实现的示意图;
图16是根据一实施例的用户设备的示意图;
图17是根据实施例的带有功能模块的装置的实现的示意图;
图18示意性地图示了在多个网络装置之中实施例的分布式实现;
图19是根据一实施例,带有一个或多个基于云的网络装置的无线通信系统的示例的示意图;
图20图示了导出校正的Y'的一实施例;
图21是图示了在不同颜色区域中能够有不同线性化的图;
图22图示了对比度敏感性的Barten曲线;
图23图示了在Rec709与BT.2020色域之间的比较;
图24图示了通过在线性RGB中的二次采样获得Cb和Cr和通过使用Ajusty获得Y'的一实施例;
图25图示了创建采用对强度不变的表示的关于chroma上采样的参考的一实施例;以及
图26图示了Cb和Cr的迭代精炼的一实施例。
具体实施方式
在通篇的图中,相同的参考标号用于类似或对应的元素。
提出的实施例一般涉及图片中像素的预处理和编码,并且具体而言,涉及改善像素的亮度和/或色度值的此类预处理和编码。
传统压缩链在本文中也表示为默认处理链或锚处理链,其涉及馈送一般范围在从0到10,000 cd/m2的入射线性光的像素到逆传递函数,其产生在0与1之间的新像素值。在此之后,像素经历颜色变换,产生luma分量和两个chroma分量。随后,对所述两个chroma分量进行二次采样到诸如4:2:0或4:2:2。像素随后可经受编码或压缩。在解码或解压缩后,4:2:0或4:2:2序列被上采样到4:4:4,进行逆颜色变换,并且最后,传递函数恢复能够在监视器上输出的线性光的像素。
高度非线性的传递函数、chroma二次采样和非恒定亮度排序的组合引发了视频数据的严重伪影,特别是对于饱和颜色。麻烦来源于chroma分量是经过内插值的,而luma分量不经过内插值的事实。因此,在像素中的luma分量中能够存在锐利的移动,但chroma分量由于它们是经过内插值的,故而不能追随。对于一些颜色,特别是饱和颜色,结果是完全错误强度的像素,其作为伪影是明显可见的。
根据实施例的像素的预处理能够用于抵制或至少降低伪影的影响,由此产生更接近像素的入射“真实”颜色的颜色。
避免该问题的一种方式在附件A中描述,一种在本文中称为Ajusty方法或处理链的方法。在Ajusty处理链中,像素的luma分量值(Y')被调整,使得所得到的线性亮度Y更接近其正确值(YO)。因此,对一些亮度信息也在chroma分量Cb和Cr中携带的事实进行补偿是可能的。
Ajusty处理链改善了像素的亮度,但成本是稍微增大的处理时间。作为示例,假设使用上面提及的锚处理链,从RGB 4:4:4到Y'CbCr 4:2:0的转换花费x秒。随后,使用高效率视频编码(HEVC)参考编码器HM的压缩一般花费10x秒,从而产生了用于锚处理链的总共11x的处理时间。通过如在附件A中所述的二分法搜索,使用Ajusty处理链花费5x秒。由于使用HEVC参考编码器HM进行压缩的时间保持大致相同,因此,这意味着总时间变成15x秒。换言之,总编码复杂性升高到15/11=1.36倍,即,增大了36%。
对应地,附件C描述了在本文中称为Ajustc的方法。在Ajustc方法或处理链中,chroma分量值(Cb,Cr)的至少一个在改善像素的色度的新处理链中被导出。然而,与锚处理链相比,色度中的这个改善是以稍有增大的处理时间为代价的。
提出的实施例提供了在像素的改善质量(诸如以改善的亮度、改善的色度或改善的亮度和色度的形式)与增大的处理时间和复杂性之间的折中。相应地,提供了确定诸如锚处理链的默认处理链能够用于哪些像素和诸如Ajusty处理链、Ajustc处理链或Ajusty和Ajustc处理链二者的辅助处理链能够用于哪些像素的实施例。
具体而言,可改善图片中像素的质量的辅助处理链应优选地只被应用到将从质量的改善中受益的那些像素,即对于与默认处理链相比,辅助处理链引起明显的质量改善的那些像素。提出的实施例因此针对于以计算高效的方式改善像素的亮度和/或色度。
颜色空间、颜色域或颜色格式是颜色(其源于颜色模型的颜色分量的组合)的类型和数量。颜色模型是描述颜色能够被表示为数字的元组(即颜色分量)的方式的抽象配置。颜色分量具有几个截然不同的特征,诸如分量类型(例如色调)、以及其的单位(例如度或百分比)、或标度类型(例如线性或非线性)、以及称为颜色深度或比特深度的值的其预期数字。
通常用于图片和视频中像素的非限制性但说明性的颜色空间包括红、绿、蓝(RGB)颜色空间、luma、chroma蓝和chroma红(YCbCr,有时表示为Y'CbCr、Y'Cb'Cr'、YCBCR、Y'CBCR或Y'CB'CR'或YUV、Yuv或D'YD'CBD'CR或E'YE'CBE'CR)颜色空间以及亮度和色度(XYZ)颜色空间。
图1是图示了预处理图片中像素的方法的流程图。该方法包括在步骤S1中基于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
所述实施例的预处理方法(并且其在图1中被示出)是被应用到图片的像素(优选是包括多个图片的视频序列的像素)以输出在适用于对图片的以后处理的颜色空间和格式中的像素(或更准确地说,像素的颜色分量值)的预处理。因此,图1中的方法步骤S1优选被应用到图片中的至少一个像素,并且更优选地是应用到图片中的多个(即,至少两个)像素,诸如图片中的所有像素,这在图1中由线路L1示意性地图示。
在一特定实施例中,图1的预处理包括基于像素的输入或原始颜色分量值,确定用于像素的luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值。
在典型的情况下,以下处理涉及对视频序列的图片进行压缩或编码,以形成表示经编码的视频序列或流的经编码的像素数据的比特流。以下处理的另一示例是通过诸如高清晰多媒体接口(HDMI)、DisplayPort或Thunderbolt的接口进行图片的传递,诸如视频序列的传递。例如,在HDMI 2.0a中,按照50或60帧每秒(fps)输送4K分辨率的唯一方式是使用4:2:0或4:2:2 Y'CbCr二次采样。如果视频数据采用全chroma采样格式(4:4:4),那么在通过HDMI线缆发送视频数据前,必须应用二次采样预处理步骤。随后在不进行进一步压缩的情况下,通过接口传递4:2:0或4:2:2视频数据。
从实施例的预处理输出的特定颜色空间和格式是luma分量值和两个chroma分量值,即,Y'CbCr颜色空间。另外,对chroma分量值而不对luma分量进行二次采样,因此,来自预处理的颜色空间和格式优选是Y'CbCr 4:2:2或Y'CbCr 4:2:0。
根据实施例,至少部分基于像素的最小颜色分量值,做出有关是使用默认处理链还是辅助处理链以便导出luma分量值(Y')、第一二次采样的chroma分量值(Cb)和第二二次采样的chroma分量值(Cr)中的至少一个的决定。
这意味着像素的最小或最低颜色分量值用于确定像素的亮度和/或色度是否从通过使用辅助处理链的质量改善中受益,或者是否辅助处理链并未改善特定像素的亮度和/或色度,或者通过辅助处理链实现的任何亮度和/或色度改善相对于在使用辅助处理链时的额外处理复杂性和时间而言太小。
被评估以确定是使用默认处理链还是辅助处理链的像素的颜色分量值优选属于与亮度+色度不同的颜色空间。这意味着辅助处理链能够产生如在亮度(Y)或色度中,优选地在XYZ颜色空间中看到的改善,但使用哪个处理链的决定是在不同于亮度+色度颜色空间的颜色空间,即,优选地不同于XYZ颜色空间的颜色空间中被做出。
在一特定实施例中,对颜色分量值的评估在作为到实施例的预处理的输入的像素的颜色空间中进行。此初始颜色空间一般是RGB颜色空间。在此类情况下,基于像素的红色分量值(R)、绿色分量值(G)和蓝色分量值(B)中的最小颜色分量值,即min(R,G,B),做出是否使用默认处理链和辅助处理链的决定。
在一实施例中,图1的步骤S1包括如果最小颜色分量值小于阈值,则选择辅助处理链,以及否则选择默认处理链。因此,在一特定实施例中,如果min(R,G,B)< T,或者更普遍地说,如果对于像素的颜色分量值的最小值的某一函数,function(min(R,G,B))< T,则在步骤S1中选择辅助处理链,其中T表示阈值。
可能为不同颜色分量或信道使用不同阈值,诸如用于红色分量的TR、用于绿色分量的TG和用于蓝色分量的TB。在此类情况下,步骤S1能够包括如果R < TR或者G < TG或者B< TB,则选择辅助处理链,以及否则选择默认处理模式。此方案等效于检查是否min(w1R,w2G,w3G)< T,其中w1、w2、w3是非零权重。
作为说明性示例,阈值T能够为10,即,在步骤S1中调查是否min(R,G,B)< 10。另一说明性示例是min(R,G,B)+0.1 < 10.1。
在一实施例中,图1的步骤S1包括基于像素的最小颜色分量值和最大颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在此实施例中,基于像素的最小颜色分量值和像素的最大颜色分量值,做出是为图片中的像素使用默认还是辅助处理链的决定。因此,决定是基于这两个颜色分量值的函数,优选是function(min(R,G,B),max(R,G,B)),而被做出的。
在一特定实施例中,函数是在所述两个颜色分量值之间的商。例如,商能够是在最大颜色分量值或其加权版本与最小颜色分量值或其加权版本之间。在另一示例中,商是在最大颜色分量值或其加权版本与最小颜色分量值或其加权版本和某个常数的和之间。各种这些示例因此能够表示为i)max(R,G,B)/min(R,G,B);ii)max(w1×R,w2×G,w3×B)/min(R,G,B);iii)max(R,G,B)/(min(w1×R,w2×G,w3×B));iv)max(w1×R,w2×G,w3×B)/(min(w1×R,w2×G,w3×B));v)max(R,G,B)/(min(R,G,B)+s);vi)max(w1×R,w2×G,w3×B)/(min(R,G,B)+ s);vii)max(R,G,B)/(min(w1×R,w2×G,w3×B)+ s);viii) max(w1×R,w2×G,w3×B)/( min(w1×R,w2×G,w3×B)+s),其中w1,w2和w3是非零权重,并且s是常数。在一实施例中,常数s是非零常数,优选是用于防止除零的风险(如果(min(R,G,B)将等于0)的小的正值。例如,s能够是0.1。
与在max(.)函数中用于RGB颜色分量的非零权重相比,可能在min(.)函数中具有用于RGB颜色分量值的不同非零权重。
权重w1、w2、w3能够用于对颜色分量进行有差别地加权,诸如对颜色分量之一(例如G)比其余颜色分量进行更大的加权。在一特定实施例中,w1+w2+w3=1。在一另外但可选的实施例中,w2> w1并且w2> w3
在另一实施例中,权重w1、w2、w3设置成是用于从RGB颜色计算亮度(Y)的值,诸如等式5或6中的第二行,即,w1=0.262700,w2=0.677998,w3=0.059302或者w1=0.212639,w2=0.715169,w3=0.072192。
在另外的实施例中,权重w1、w2、w3设置成是用于从R'G'B'颜色计算chroma分量的值,诸如根据等式1、2或3中的第二或第三行。
因此,在一实施例中,步骤S1包括基于在最大颜色分量值或其加权版本与1)最小颜色分量值或其加权版本,或2)最小颜色分量值或其加权版本与某个常数的和之间的商,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在一特定实施例中,步骤S1包括如果商超过阈值,则选择辅助处理链,以及否则选择默认处理链。
例如,能够基于像素(R,G,B)的颜色分量值,计算函数值h(R,G,B),并且其中此函数值h(R,G,B)基于上面提及的商。例如,h(R,G,B)=max(R,G,B)/(min(R,G,B)+s)或者h(R,G,B)=max(w1×R,w2×G,w3×B)/(min(w1×R,w2×G,w3×B)+ s)。随后,比较函数值h(R,G,B)和阈值,并且此比较用于决定是否根据默认处理链或辅助处理链来预处理当前像素。
图2示意性地图示了此类一实施例。方法在步骤S10中开始,其包括计算函数值,优选为max/(min+s),其中max表示最大颜色分量值或其加权版本,min表示最小颜色分量值或其加权版本,并且s是常数。方法随后继续到步骤S11,其包括比较函数值和阈值。
方法继续到图1中的步骤S1,其在该实施例中包括如果函数值超过阈值,则选择辅助处理链,以及否则选择默认处理链。
在示例中,常数s等于0.1,并且阈值等于2,即,如果max(R,G,B)/(min(R,G,B)+0.1)> 2,则选择辅助处理链。
在上述实施例中,为要被预处理的当前像素(即要为其确定luma值和所述两个二次采样的chroma分量值)计算商或函数值。在备选方案中,能够事先进行计算以形成查找表(LUT)。在此类情况下,用于像素的颜色分量值被输入LUT中,并且然后输出是是否根据默认或辅助处理链进行预处理的指示。在一特定实施例中,指示是一个比特值(0二进制或1二进制)。
此实施例在图3的流程图中被图示。方法在步骤S20中开始,其包括在LUT中输入用于像素的颜色分量值,LUT配置成如果商超过阈值,则输出第一值,以及否则输出第二值。下一步骤S21包括如果从LUT输出的值等于第一值(图中由1二进制例示),则选择辅助处理链,并且如果从LUT输出的值等于第二值(图中由0二进制例示),则选择默认处理链。
在下述内容中,将参照图4到11进一步描述默认和辅助处理链的各种实施例。
在第一实施例中,根据默认处理链导出用于像素的二次采样的chroma分量值。随后,如在本文中所述进行在默认与辅助处理链之间的选择,以决定是根据默认处理链还是辅助处理链确定用于像素的luma分量值。在此实施例中,辅助处理链优选是在附件A中更详细描述的Ajusty处理链。
图4图示了根据此实施例,预处理图片中像素的方法。方法在步骤S30中开始,其包括使用默认处理链,导出第一二次采样的chroma分量值和第二二次采样的chroma分量值。方法随后继续到步骤S31,其包括基于最小颜色分量值,确定是否默认处理链用于导出luma分量值,或者是否第一辅助处理链用于导出luma分量值。
在第二实施例中,根据默认处理链导出用于像素的luma分量值。随后,如在本文中所述进行在默认与辅助处理之间的选择,以决定是根据默认处理链还是辅助处理链确定二次采样的chroma分量值。在此实施例中,辅助处理链优选是在附件C中更详细描述的Ajustc处理链。
图5图示了根据此实施例,预处理图片中像素的方法。方法在步骤S40中开始,其包括使用默认处理链导出luma分量值。方法继续到步骤S41,其包括基于最小颜色分量值,确定是否默认处理链用于导出第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否第二辅助处理链用于导出第一二次采样的chroma分量值和第二二次采样的chroma分量值。
第一和第二chroma分量值的二次采样(即采用Y'CbCr 4:2:0或4:2:2格式)暗示每个chroma分量值在解码期间,即在将二次采样的chroma分量值上采样回Y'CbCr 4:4:4格式时影响几个像素。例如,如果使用最近邻居上采样,则每个第一和第二chroma分量值用于四个相邻像素。如果使用其它类型的上采样(涉及更长过滤器),则通过上采样可影响不止四个像素,诸如在7×7像素区域中的像素。在此像素区域的中心附近的像素将受到更大得多的影响,并且在像素区域的边缘或周边附近的像素将受到更少得多的影响。
在一实施例中,在步骤S41中的确定可由此基于在包括图片中多个像素的像素区域内的至少一个像素的最小颜色分量值而被执行。像素区域被定义为图片的一部分,该图片的一部分围绕受第一二次采样的chroma分量值和第二二次采样的chroma分量值的上采样影响或作用的像素。
在一实施例中,为像素区域中的每个像素或者为像素区域中像素的子集计算相应函数值max/(min+s)。此类子集的示例包含2×1个像素,1×2个像素和2×2个像素。
在一实施例中,如果函数值中的至少一个超过阈值,则选择辅助处理链,并且否则选择默认处理链。在另一实施例中,如果用于像素区域中像素的子集中所有像素的函数值超过阈值,则选择辅助处理链,并且否则选择默认处理链。其它实施例包含如果用于像素区域中像素的子集中所有像素的函数值的平均值或用于像素区域中所有像素的函数值的平均值超过阈值,则选择辅助处理链,并且否则选择默认处理链。
在第三实施例中,如在本文中所述进行在默认与辅助处理链之间的选择,以决定是否根据默认处理链确定luma分量值和二次采样的chroma分量值,或者是否根据第一辅助处理链确定luma分量值和根据第二辅助处理链确定二次采样的chroma分量值。在此实施例中,第一辅助处理链优选是在附件A中更详细描述的Ajusty处理链,并且第二辅助处理链优选是在附件C中更详细描述的Ajustc处理链。
图6图示了根据此实施例,预处理图片中像素的方法。方法包括在步骤S50中并且基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否第一辅助处理链用于导出luma分量值,并且第二辅助处理链用于导出第一二次采样的chroma分量值和第二chroma分量值。
是否使用默认处理链或第一辅助处理链(图4)、第二辅助处理链(图5)、第一和第二辅助处理链(图6)的决定能够如在本文中前面所述那样被做出,即,基于最小颜色分量值或基于最小和最大颜色分量值被做出。
如在图4到6中公开的实施例优选被应用到图片中的多个像素,诸如图片中的所有像素,这由分别在图4、5和6中的线L2、L3和L4示意性地图示。
图7是图示了根据默认处理链,也称为锚处理链执行的方法步骤的流程图。方法从在图4到6中的步骤S31、S41或S50继续。方法包括在步骤S60中对第一颜色空间中的线性颜色应用第一传递函数(TF),以获得第一颜色空间中的非线性颜色。下一步骤S61包括对第一颜色空间中的非线性颜色应用第一颜色变换(CT),以获得第二颜色空间中的luma分量值和两个chroma分量值。随后的步骤S62包括对第二颜色空间中的两个chroma分量值进行二次采样,以获得第二颜色空间中的第一二次采样的chroma分量值和第二二次采样的chroma分量值。
在图7的锚处理链的一实施例中,诸如在附件A中传递函数的逆(等式A1)的第一传递函数被应用到像素的初始或输入ROGOBO颜色,即像素的原始颜色,以得到在RGB颜色空间中的非线性颜色R'G'B'。随后,使用诸如以下颜色变换的第一颜色变换,将此R'G'B'颜色从RGB颜色空间进行颜色变换到YCbCr颜色空间:
Figure 100002_DEST_PATH_IMAGE001
Figure 85217DEST_PATH_IMAGE002
(等式1)
Figure DEST_PATH_IMAGE003
Figure 64674DEST_PATH_IMAGE004
(等式2)
Figure DEST_PATH_IMAGE005
Figure 844411DEST_PATH_IMAGE006
(等式3)
等式1中指定的颜色变换在主要用于高清晰度电视(HDTV)的ITU-R BT.709中定义。能够使用的另一颜色变换在等式2中示出并且其在主要用于标准清晰度电视(SDTV)的ITU-R BT.601中被定义。在RGB源于BT.2020时对应的等式在等式3中呈现。
在步骤S61中在应用第一颜色变换之后所得到的像素的Y'CbCr颜色是非压缩的Y'CbCr颜色(即,在4:4:4格式中)。随后的步骤S62对所述两个chroma分量Cb和Cr进行二次采样以得到在4:2:0或4:2:2格式中的颜色,即,带有二次采样的非线性chroma分量Cb和Cr。
在步骤S62中的二次采样能够根据已知二次采样技术被执行。例如,能够使用过滤操作或最近邻居操作。在文档[5]中章节B.1.5.5 Chroma downsampling from 4:4:4 to4:2:0中公开了能够根据实施例使用的二次采样技术的示例。
默认处理链即锚处理链,能够被总结如下:
ROGOBO 4:4:4
Figure DEST_PATH_IMAGE007
(第一传递函数)
Figure 52670DEST_PATH_IMAGE007
R'G'B' 4:4:4
Figure 867042DEST_PATH_IMAGE007
(第一颜色变换)
Figure 689505DEST_PATH_IMAGE007
Y'CbCr 4:4:4
Figure 18855DEST_PATH_IMAGE008
(Cb和Cr的二次采样)
Figure 217755DEST_PATH_IMAGE007
Y'CbCr 4:2:0
图8是图示了根据第一辅助处理链,也称为Ajusty处理链执行的方法步骤的流程图。方法从在图4或6中的步骤S31或S50继续。方法包括在步骤S70中获得基于第一颜色空间中像素的线性颜色确定的在第三颜色空间中像素的原始线性亮度分量值。方法也包括基于第二颜色空间中的两个chroma分量值和第三颜色空间中的原始线性亮度分量值,导出第二颜色空间中的luma分量值。
在一实施例中,上面提及的第三颜色空间是XYZ颜色空间。相应地,第三颜色空间中像素的线性亮度分量值在此实施例中是Y分量值。
在一实施例中,获得原始线性亮度分量包括基于第一颜色空间中像素的线性颜色,确定第三颜色空间中原始线性亮度分量值。此原始线性亮度分量值优选反映像素的真实亮度,即,在任何颜色变换、传递函数的应用和二次采样前像素的原始亮度。基于第一颜色空间中像素的线性颜色,确定此原始线性亮度分量值。在一实施例中,第一颜色空间中像素的此线性颜色是像素的原始入射颜色。在一特定实施例中,此原始入射颜色在本文中是ROGOBO,并且原始线性亮度分量表示为YO
原始线性亮度因此是能够以许多不同方式被计算的目标亮度。此原始线性亮度不一定必须直接对应于在拍摄图片或记录视频的摄像机中或者在显示器的面板中传感器的实际亮度。
第三颜色空间中的原始线性亮度分量值能够被获得至预处理和编码功能性,作为原始线性亮度分量值,优选为YO值(采用预确定或预计算的形式)。这意味着基于第一颜色空间中的线性颜色的原始线性亮度分量值的确定已经发生,并且仅该确定的结果被提供至预处理和编码功能性。
在一备选实施例中,实施例的预处理包括如上所述对原始线性亮度分量值的确定或计算。具体而言,YO=g(RO,GO,BO),对于函数g(.)的示例,参见等式5或6。在等式5和6中,仅需要计算第二行以获得原始线性亮度分量值。
随后,基于第二颜色空间中的所述两个chroma分量值和第三颜色空间中的原始线性亮度分量值,在步骤S71中导出第二颜色空间中的luma分量值。因此,在一实施例中,YCbCr颜色空间中的luma分量Y'是YCbCr颜色空间中的Cb和Cr分量以及在XYZ颜色空间中的YO分量的函数,即,Y'=f(Cb,Cr,YO)。YO分量进而基于RGB颜色空间中像素的ROGOBO颜色被确定,即,YO=g(RO,GO,BO)。相应地,Y'=f(Cb,Cr,g(RO,GO,BO))。
在一实施例中,图8的步骤S71包括导出使第三颜色空间中的原始线性亮度分量值与第三颜色空间中的线性亮度分量值之间的差最小化的第二颜色空间中的luma分量值,其中第三颜色空间中的该线性亮度分量值基于第二颜色空间中的luma分量值、第二颜色空间中的第一二次采样的chroma分量值和第二颜色空间中的第二二次采样chroma分量值被确定。
因此,在此实施例中,步骤S71涉及查找使第三颜色空间(XYZ)中的原始线性亮度分量值(YO)与线性亮度分量值(Y)之间的差最小化的第二颜色空间(YCbCr)中的luma分量值(Y')。第三颜色空间(XYZ)中的此线性亮度分量值(Y)进而基于第二颜色空间(YCbCr)中的luma分量值(Y')和所述两个二次采样的chroma分量值(Cb,Cr)被获得。
因此,此实施例涉及查找使差|YO–Y|或(YO–Y)2最小化的Y'分量值,其中Y=h(Y',Cb,Cr),并且h(.)定义Y基于Y'、Cb和Cr被确定。
在一备选但有关实施例中,步骤S71涉及导出使第三颜色空间中的原始亮度分量值的函数与第三颜色空间中线性亮度分量值的函数之间的差最小化的第二颜色空间中的luma分量值。第三颜色空间中的此线性亮度分量值是基于第二颜色空间中的luma分量值、第二颜色空间中的第一二次采样的chroma分量值和第二颜色空间中的第二二次采样的chroma分量值被确定。
因此,此实施例涉及查找使差|k(YO)–k(Y)|或(k(YO)–k(Y))2最小化的Y'分量值,其中Y=h(Y',Cb,Cr)。
函数(k(.))优选是逆传递函数,诸如在附件A中所示的等式A1中的传递函数的逆。
在一实施例中,对优选是如在本文中前面所述那样,从默认或锚处理链中获得的第二颜色空间中的所述两个二次采样的chroma分量值进行上采样,以获得第二颜色空间中上采样的第一chroma分量值和第二颜色空间中上采样的第二chroma分量值。随后对第二颜色空间中的候选luma分量值、第二颜色空间中的上采样的第一chroma分量值和第二颜色空间中的上采样的第二chroma分量值应用第二颜色变换,以获得第一颜色空间中的非线性颜色。对第二颜色空间中的非线性颜色应用第二传递函数,以获得第一颜色空间中的线性颜色。最后,对第一颜色空间中的线性颜色应用第三颜色变换,以获得第三颜色空间中的线性亮度分量值。在此情况下,在步骤S71中,基于第三颜色空间中的原始线性亮度分量值与第三颜色空间中的线性亮度分量值的比较,导出luma分量值。
因此,在一实施例中,先将4:2:0或4:2:2格式中的二次采样的Cb和Cr分量值上采样到4:4:4格式。上采样能够根据已知上采样技术执行。例如,能够通过使用双线性或更长过滤器执行上采样。在文档[5]中的章节B.1.5.6 Chroma upsampling from 4:2:0 to 4:4:4(Y'CbCr域)中公开了能够根据实施例使用的上采样技术的示例。
这两个上采样的Cb和Cr分量值随后与候选Y'分量值一起被输入第二颜色变换以得到非线性R'G'B'颜色,所述第二颜色变换诸如是以下颜色变换:
Figure DEST_PATH_IMAGE009
(等式4)
Figure 886634DEST_PATH_IMAGE010
对于Rec.709颜色空间,a13=1.57480,a22=0.18732,a23=0.46812,a32=1.85560,并且对于BT.2020颜色空间,a13=1.47460,a22=0.16455,a23=0.57135,a32=1.88140。
通常,R'、G'和B'能够采用在间隔[0,1]内的值。相应地,第二颜色变换也可包括箝位或削波操作,诸如用于R'分量的
Figure DEST_PATH_IMAGE011
,其中如果x<a,则clipx,a,b)等于a,并且如果x>b,则等于b,以及否则等于x
此R'G'B'颜色随后被输入诸如在附件A中的传递函数(等式A1)的第二传递函数,以得到线性RGB颜色。随后,使用第三颜色变换(诸如在RGB源于BT.2020时在等式5中或在RGB源于BT.709时在等式6中的颜色变换)将此RGB颜色从RGB颜色空间变换到XYZ颜色空间:
Figure 693047DEST_PATH_IMAGE012
等式(5)
Figure DEST_PATH_IMAGE013
等式(6)
随后,比较从第三颜色变换输出的线性亮度分量Y值和像素的原始线性亮度分量YO值。
在一实施例中,图8的步骤S71包括选择使得在第三颜色空间中的原始线性亮度分量值与第三颜色空间中的线性亮度分量值之间的差减小的第二颜色空间中的候选luma分量值。
因此,步骤S71优选地包括选择至少导致在原始线性亮度分量值与线性亮度分量值之间的差减小的第二颜色空间中的候选luma分量值。在一特定实施例中,步骤S71包括选择使得在第三颜色空间中的原始亮度分量值与线性亮度分量值之间的差最小化的第二颜色空间中的候选luma分量值。如前面中所提及的那样,此差能够表示为|YO–Y|或(YO–Y)2
在一备选但有关的实施例中,步骤S71涉及选择使得在第三颜色空间中的原始亮度分量值的函数与第三颜色空间中的线性亮度分量值的函数之间的差减小或优选地最小的第二颜色空间中的候选luma分量值,即,选择使差|k(YO)–k(Y)|或(k(YO)–k(Y))2最小化的候选Y'分量值。
在一实施例中,测试第二颜色空间中的不同候选luma分量值。在此类情况下,步骤S71优选包括选择第二颜色空间中不同候选luma分量值中的某一候选luma分量值,该候选luma分量值导致在第三颜色空间中的原始线性亮度分量值与第三颜色空间中的线性亮度分量值之间的最小的差,或者在第三颜色空间中的原始线性亮度分量值的函数与第三颜色空间中的线性亮度分量值的函数之间的最小的差。
下面的实施例关于在第三颜色空间中的原始线性亮度分量值与第三颜色空间中的线性亮度分量值之间的差被更详细地描述。这些实施例也涵盖在第三颜色空间中的原始线性亮度分量值的函数与第三颜色空间中的线性亮度分量值的函数之间的差。如在本文中前面所提及的那样,该函数优选是传递函数的逆,诸如在附件A中的等式A1中的传递函数的逆。
在多个候选Y'分量值中最佳候选Y'分量值的选择能够根据如在本文中进一步描述的各种实施例被执行。
第一实施例涉及执行二分法搜索(binary serach)。因此,在此实施例中,方法包括执行二分法搜索以选择使得在第三颜色空间中的原始线性亮度分量值与第三颜色空间中的线性亮度分量值之间的差最小化的第二颜色空间中的候选luma分量值。
二分法搜索是能够用于查找最佳候选luma分量值的有效技术。通常,二分法搜索算法通过对第三颜色空间中的原始亮度分量值和使用对第二颜色空间中可能的候选luma分量值的排序阵列中的中间元素而获得的第三颜色空间中的线性亮度分量值进行比较来开始。如果第三颜色空间中的线性亮度分量值等于第三颜色空间中的原始亮度分量值,或者与第三颜色空间中的原始亮度分量值不同(未超过定义量),则返回中间元素的位置,并且结束搜索。如果线性亮度分量值大于原始线性亮度分量值,则搜索在阵列的下半部上继续;或者如果线性亮度分量值小于原始线性亮度分量值,则搜索在阵列的上半部上继续。此过程继续进行,从而排除一半的元素,并且比较所得到的线性亮度分量值和原始线性亮度分量值,直至在其之间的差为零,或者直至已搜索整个阵列,即,直至已排除除一个以外的所有元素。这保证只采用log2(N)步,其中N是阵列中可能的候选luma分量值的数量。例如,假设能够从[0,1023]的阵列中选择候选luma分量值。那么,N=1024,并且log2(1024)=10。
搜索间隔的选择通常涉及选择与上面使用的搜索间隔相比,具有大约一半大小的搜索间隔。例如,如果搜索间隔含有值100、101、102、103,则人们能够选择101或102作为“中间值”,产生“减半”搜索间隔[100,101](搜索间隔的真正减半)或[101,103](搜索间隔的近似减半),或“减半”搜索间隔[100,102](搜索间隔的近似减半)或[102,103](搜索间隔的真正减半)。
另一实施例是将luma分量值的选择视为优化问题,并且最小化关于Y'的误差E=(YO–Y)2或E=|YO–Y|。例如能够通过梯度下降来进行此操作:通过计算E相对于Y'的梯度,即,dE/dY',并且在梯度的相反方向上更新Y'一小量,即
Figure 447376DEST_PATH_IMAGE014
,其中
Figure 184388DEST_PATH_IMAGE015
是小的常数。
梯度下降能够是慢的,因此,更快的方式可以是使用计算或近似二阶导数
Figure 707773DEST_PATH_IMAGE016
的二阶优化算法。高斯-牛顿法(Gauss-Newton)是此类算法的示例。
另外的实施例涉及在选择luma分量值时使用LUT。此类LUT例如可包括用于Cb、Cr和YO分量值的每一个可能组合的最佳Y'分量值。例如,假设Cb和Cr分量被量化到10比特,并且YO分量也被量化到10比特。随后,LUT应包含210×210×210个不同Y'分量值。这等效于230个Y'分量值。如果每个此类Y'分量值是2个字节,则LUT将具有231字节或2Gb的大小。
使用更小的LUT也可以是可能的。例如,可能可将YO、Cb和Cr分量量化到更小的大小,比如6比特。随后,LUT将是218个Y'分量值或219个字节,这等于512 kb。
YO分量是线性的。相应地,只将其量化可能是效率低的。转而更好的是可使用YO的函数及Cb和Cr一起作为到LUT的输入,以得到最佳的Y'分量。函数优选输出YO分量的非线性表示,并且例如可以是逆传递函数(TF-1(.)),诸如在附件A中等式A1中的传递函数的逆。随后,从LUT导出最佳Y'分量值为Y'= LUT(Cb,Cr,TF-1(YO))。
导出非线性luma分量值Y'的Ajusty处理链在一实施例中涉及以下预处理步骤:
ROGOBO 4:4:4
Figure DEST_PATH_IMAGE017
(第三CT)
Figure 199934DEST_PATH_IMAGE017
XOYOZO 4:4:4
Figure 441560DEST_PATH_IMAGE017
YO 4:4:4
Figure 716683DEST_PATH_IMAGE018
Y'=Ajusty(YO 4:4:4,CbCr 4:4:4)
Y'CbCr 2:2:2
Figure 360154DEST_PATH_IMAGE017
CbCr 2:2:2
Figure 508370DEST_PATH_IMAGE017
(上采样)
Figure 237292DEST_PATH_IMAGE017
CbCr 4:4:4--/
其中YO 4:4:4是XYZ 4:4:4的亮度分量,并且CbCr 4:4:4是Y'CbCr的上采样的chroma分量。简而言之,通过使用第三颜色变换先将ROGOBO 4:4:4转换到XOYOZO 4:4:4,并且随后使用YO 4:4:4,来找到目标亮度YO 4:4:4。随后通过将Y'CbCr 2:2:2上采样到4:4:4格式,并且使用CbCr 4:4:4,我们得到CbCr 4:4:4。最后,上面描述并且在附件A中进一步示出的Ajusty处理链在YO 4:4:4和CbCr 4:4:4上被使用以查找最佳Y' 4:4:4。
图9是图示了根据第二辅助处理链,也称为Ajustc处理链执行的方法步骤的流程图。方法从在图5或6中的步骤S41或S50继续。方法包括在步骤S80中对第一颜色空间中的线性颜色进行二次采样,以获得第一颜色空间中的二次采样的线性颜色。下一步骤S81包括对第一颜色空间中的二次采样的线性颜色应用第一传递函数,以获得第一颜色空间中的二次采样的非线性颜色。方法继续到步骤S82,其包括对第一颜色空间中的二次采样的非线性颜色应用第一颜色变换,以获得第二颜色空间中的第一二次采样的chroma分量值和第二二次采样的chroma分量值。
与默认预处理形成鲜明对比的是,Ajustc处理链涉及线性颜色的二次采样,即,二次采样在线性颜色域中被执行。随后,在二次采样后进行非线性颜色的生成,即,对二次采样的线性颜色应用第一传递函数。
如图7中所示的默认处理链转而先应用传递函数到线性颜色以获得非线性颜色。随后,在二次采样后,对非线性颜色应用颜色变换。
在一实施例中,第一颜色空间是RGB颜色空间,并且线性颜色由此是在本文中表示为ROGOBO的RGB颜色。初始颜色采用未被采样或原始格式,即4:4:4格式。随后,优选在步骤S80中对此ROGOBO 4:4:4颜色进行二次采样,以得到二次采样的RGB颜色,即,RGB 2:2:2颜色。步骤S81包括对RGB 2:2:2颜色应用第一传递函数,以获得二次采样的非线性颜色R'G'B' 2:2:2。“'”用于指示红、绿和蓝颜色分量是非线性颜色分量。在一实施例中,第一传递函数是在附件A中示出的等式A1中的传递函数的逆。随后,使用第一颜色变换,将所得到的二次采样的非线性颜色R'G'B' 2:2:2从RGB颜色空间进行颜色变换到第二颜色空间。此第二颜色空间优选是YCbCr颜色空间,并且第一颜色变换优选是在等式1到3的任何等式中所规定的颜色变换。
第一颜色变换产生了Y'CbCr 2:2:2颜色。在一实施例中,在步骤S83中获得二次采样的luma分量值Y'、第一二次采样的chroma分量值Cb和第二二次采样的chroma分量值Cr,其全部在YCbCr颜色空间中。在一备选实施例中,在步骤S82中只计算二次采样的chroma分量值Cb、Cr,由此基本上忽略在等式1-3中与luma分量Y有关的第一行。在此类方案中,步骤S83包括对第一颜色空间中的二次采样的非线性颜色应用第一颜色变换,以获得第二颜色空间中的第一二次采样的非线性chroma分量值和第二二次采样的chroma分量值。
根据一实施例,在Ajustc处理链中使用以下预处理链:
ROGOBO 4:4:4
Figure DEST_PATH_IMAGE019
(RGB的二次采样)
Figure 316106DEST_PATH_IMAGE019
RGB 2:2:2
Figure 814084DEST_PATH_IMAGE019
(第一传递函数)
Figure 648047DEST_PATH_IMAGE020
R'G'B'2:2:2
Figure 598686DEST_PATH_IMAGE019
(第一颜色变换)
Figure 481191DEST_PATH_IMAGE019
Y'CbCr 2:2:2
此处,我们使用了项2:2:2来指示所有三个样本在垂直和水平两个方向(即,x维和y维)上处在一半分辨率。这样,我们未得到全分辨率luma Y'分量,因为在最后步骤中的Y'分量是在2:2:2格式中,即,在两个方向上为一半分辨率。
在一实施例中,步骤S80包括在垂直和水平两个方向上对第一颜色空间中的线性颜色进行二次采样,以获得第一颜色空间中的二次采样的线性颜色。此类方案产生了在第二颜色格式中带有全分辨率luma分量的在4:2:0格式中的Y'CbCr颜色。在另一实施例中,步骤S80包括仅在诸如水平方向或垂直方向的一个方向上对第一颜色空间中的线性颜色进行二次采样,以获得第一颜色空间中的二次采样的线性颜色。此实施例转而产生在第二颜色格式中具有全分辨率luma分量的在4:2:2格式中的Y'CbCr颜色。
在步骤S80中的二次采样能够根据已知二次采样技术被执行。例如,能够使用过滤操作或最近邻居操作。在文档[5]中的章节B.1.5.5 Chroma downsampling from 4:4:4 to4:2:0中公开了能够根据实施例使用的二次采样技术的示例。
根据实施例的像素的预处理能够在不同应用中使用,特别是在包括视频编码的不同视频应用中。
实施例因此涉及对图片中像素进行编码的方法。方法包括根据如在本文中公开的任何实施例预处理像素,以导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值。方法也包括如图10中所示在步骤S2中对luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值进行编码。
因此,像素的预处理能够用作在对图片的像素进行编码(诸如与对视频序列的图片进行编码有关)期间的另外处理。
预处理的输出,即Y'CbCr(诸如在4:2:0或4:2:2格式中),随后被输入到视频编码器,诸如H.264视频编码器、HEVC或H.265视频编码器或另一视频编码器。如由视频编码器执行的编码能够包含传统视频编码步骤,诸如在熵编码器(例如上下文自适应二进制算术编码(CABAC)编码器)中进行的诸如帧间预测、帧内预测、模式判定、残差的变换、对经变换和量化的残差的量化和编码。这些视频编码步骤在被领域中是众所周知的。
实施例的预处理的优点在于它能够应用到任何视频或图片编码过程,而无需在视频或图片编码器中执行任何调整或在对应视频或图片解码器中执行任何调整。形成明显对比的是,预处理能够被视为被应用到输入图片的另外的处理,即预处理,相反对要被编码成Y'CbCr颜色的图片中的像素的原始颜色(诸如ROGOBO颜色)的传统转换涉及对传递函数的应用、颜色变换和chroma二次采样的应用。
如在本文中前面所提及的,除视频编码外,在其它应用中也可使用对图片(诸如视频序列的图片)中像素的预处理。此类其它应用包含通过诸如HDMI、DisplayPort或Thunderbolt的接口传递视频。
为解决在本文中前面所描述的问题,提供了确定锚处理链能够用于哪些像素和Ajusty处理链能够用于哪些像素的实施例。下面提供多个不同特定实施例。为进一步改善公开,也提供了有关如何减小进行Ajusty的快速计算所需的LUT表的大小的描述。
根据第一方面,提供了如图11中所示的方法。该方法能够在编码器中或者在到编码器的预处理中被执行。在该方法中,确定了锚处理链能够用于哪些像素和Ajusty处理链能够用于哪些像素。该确定能够根据下面的任何的实施例或其组合进行。
优点是至少一些实施例提供了相比现有技术从RGB 4:4:4到Y'CbCr 4:2:0的更快转换。
另外的优点是至少一些实施例提供了相比现有技术使用更少存储器的从RGB 4:4:4到Y'CbCr 4:2:0的转换。
还有的另外优点是至少一些实施例提供了相比现有技术具有更高质量的从RGB4:4:4到Y'CbCr 4:2:0的转换。
特定实施例
在某些实施例中,提议了利用在大多数像素中,在Y'中需要的校正并不太大的事实。作为示例,如果由锚处理链(即,默认处理链,从此处开始称为Y'anchor)产生的Y'是453,其中0或64是最小可能值且940或1023是最大可能值,并且由Ajusty处理链(即,辅助处理链,从此处开始称为Y'ajusty)产生的Y'是454,则可能在实际图像中不可能看到差别。实际上,在其中Y'anchor和Y'ajusty相差不止两个步骤的像素的数量是非常小的,一般小于5%。因此,提议的解决方案是检测这些像素并且只在它们上应用Ajusty处理链。如果仅5%的像素需要校正,则转换时间可降低到(0.05*5×+0.95*×)=1.2×。总复杂性因此从11×上升到11.2×,上升到11.2/11=1.0182倍,即增大1.8 %。这比36%的增大好得多。
在第一实施例中,如果函数h(R,G,B)超过阈值,则为Ajusty处理链选择带有颜色(R,G,B)的像素。此类函数的示例是h(R,G,B)=max(R,G,B)/(min(R,G,B)+s),其中min(a,b,c)计算所述三个输入a、b、c的最小值,并且max(a,b,c)计算所述三个输入a、b、c的最大值,并且s是常数,诸如0.1。
在第二实施例中,我们根据h(R,G,B)=max(w1*R,w2*G,w3*B)/(min(w1*R,w3*G,w3*B)+s)使用另一函数h(.)。
在第三实施例中,如果函数g(Y',Cb,Cr)超过阈值,则为Ajusty处理链选择带有Y'CbCr分量(Y',Cb,Cr)的像素。此类函数的示例是g(Y',Cb,Cr)=h(RGBptoRGB(YpCbCrToRGBp(Y',Cb,Cr)),其中h(.)是上述函数,RGBptoRGB(.)使用传递函数TF(.)将颜色从R'G'B'转换到RGB,即,R'=TF(R),G'=TF(G)和B'=TF(B),并且其中YCbCrToRGBp(.)例如使用以下等式,将颜色从Y'CbCr转换到R'G'B':
Figure DEST_PATH_IMAGE021
Figure 640865DEST_PATH_IMAGE022
。 (等式7)
能够使用诸如在附件A中使用的PQ(参见等式A1)的传递函数。
在第四实施例中,采用诸如1比特LUT的LUT,并且在LUT中存储根据第一和第二实施例的计算以便快速确定是否应调用Ajusty处理链,例如,如果用于R,G,B的特定组合的LUT的值等于1,则应在像素上使用Ajusty处理链以得到Y'。
if 1比特LUT(R'10比特,G'10比特,B'10比特) == 1
在像素上使用Ajusty处理链以得到Y'
else
使用来自锚处理链的Y'
end
其中R'10比特是R'的10比特量化;R'10比特=round(1023×R'),并且上述情形对于G'10比特和B'10比特是相似的。
1比特查找表能够通过尝试R'10比特、G'10比特、B'10比特的所有可能组合而被创建,并且查看哪些组合将可能产生在Y'anchor与Y'ajusty之间的大差别。例如,表能够使用以下等式从R'G'B'计算RGB:
R=TF-1(R'10比特/1023),
G=TF-1(G'10比特/1023),
B=TF-1(B'10比特/1023),
其中TF-1是传递函数TF(.)的逆。附件A中所描述的PQ(等式A1)是传递函数的示例。在那之后,能够使用上述函数h(R,G,B)。如果h(R,G,B)大于阈值,则用于该表条目的比特被设置成1。如果它小于阈值,则用于该表条目的比特被设置成0。
由于R'10比特、G'10比特和B'10比特全部是10比特,因此,我们需要210+10+10=230个条目。然而,由于每个条目是1比特,我们只需要230/8=230-3=227字节,这等于128 MB。由于R'、G'和B'在处理链中是容易得到的,它们构成在锚处理链中被计算的第一事物,因此,使用此类1比特LUT比计算h(.)可更快且因此更合乎期望。
在第五实施例中,可将值R'10比特、G'10比特、B'10比特转而量化成比如8比特。这将LUT的大小缩小到1/2×2×2=1/8,意味着LUT只占用大约16 MB。
在第六实施例中,LUT使用R、G、B而不是R'G'B'。
在第七实施例中,LUT使用Y'、Cb、Cr而不是R'G'B'。
在第八实施例中,根据以下等式采用二维1比特查找表:
RGBmax=max(R'10比特,G'10比特,B'10比特)
RGBmin=min(R'10比特,G'10比特,B'10比特)
if(1比特2DLUT(RGBmax,RGBmin)==1)
在像素上使用Ajusty处理链以得到Y'
else
使用来自锚处理链的Y'
end
二维1比特查找表能够通过尝试R'10比特、G'10比特和B'10比特的所有可能组合而被创建,并且查看哪些组合将可能产生在Y'anchor与Y'ajusty之间的大差别。假设我们具有称为likelyBigDifference(R'10比特,G'10比特,B'10比特)的此类函数,如果颜色(R'10比特,G'10比特 B'10比特)可能产生在Y'anchor与Y'ajusty之间的大差别,则该函数返回1,并且否则,返回0。随后,能够使用如下过程创建二维1比特查找表:
对于所有条目x、y,1比特2DLUT(x,y)=0
for all R'10比特
for all G'10比特
for all B'10比特
RGBmax=max(R'10比特,G'10比特,B'10比特)
RGBmin=min(R'10比特,G'10比特,B'10比特)
if (likelyBigDifference(RGBmax,RGBmin))
1比特2DLUT(RGBmax,RGBmin)=1
end
end
end
end
此2D-lut只需要210+10个1比特条目,这意味着210+10/8字节,其等于210+10-3=217字节=128 KB。
likelyBigDifference(RGBmax,RGBmin)的示例是RGBmax/(RGBmin+s)> t,其中s是常数,诸如0.1,并且t是阈值。
在第九实施例中,第一轮处理可选择通过在本文中呈现的任何方法被标记用于Ajusty处理链的一些像素。在第二轮处理中,可选择是在第一轮中标记的像素的邻居的像素。随后,将为在第一或第二轮中选择的像素执行Ajusty处理链。
在第十实施例中,获得比通过在附件A中描述的Ajusty处理链的二分法搜索版本可能得到的Y'值更确切的Y'值。二分法搜索的工作方式是降低间隔的大小,一般是将它减半。作为开始,间隔被设置成覆盖Y'的所有可能值,例如设置成[64,940]或[0,1023]。接着,将候选Y'值选择为此间隔的中间点,例如Y'候选= floor((0+1023)/2)=511。在我们尝试此候选值时,我们将得到Y值。如果获得的Y值大于目标值YO,则Y'候选太大,并且我们能够推断大于511的所有值被排除。因此,此间隔被降低到[0,511]。选择新候选值floor((0+511)/2)=255,并且可能此次产生的Y小于目标值YO。我们随后能够推断正确的Y'一定位于间隔[255,511]中。并且因此方法继续,直至在10步后,我们具有仅一步宽的间隔。例如,假设带有小数精度的最佳Y'是347.03。随后,在10次迭代后的间隔将是[347,348]。然而,我们仍不知道347是否比348更佳。因此,在提议的解决方案的一个实施例中,尝试了两个数字347和348。假设将Y'设置成347产生Y347,并且将Y'设置成348产生Y348。我们随后能够通过计算误差e1=(YO–Y3472和 e2=(YO-Y3482,查看哪个是最佳的。如果e1 < e2,则我们使用Y'=347,否则我们使用Y'=348。这样,与只使用比如在间隔[a,b]中的最小值相比,我们能够进一步降低Y中的误差。注意,此方法确实比知道带有小数精度的最佳Y'并且将它舍入到最接近整数更佳。由于用于从Y'、Cb和Cr产生Y的等式的非线性,只进行舍入可能不是最佳的。作为示例,即使带有小数精度的最佳Y'是347.6,虽然348是最接近整数,但选择347可以是有利的。使用计算e1和e2的上述方案,在此情况下将选择347,这是正确的。
总之,假设Cb10比特是量化成10比特的Cb值,Cr10比特对于Cr是相似的,并且YO是我们想实现的正确亮度值。随后,通过下面的伪代码,能够执行上述方法:
a=0
b=1023
[a,b]=performBinarySearch(a,b,YO,Cb10比特,Cr10比特,10)
Ya=calcY(a,Cb10比特,Cr10比特)
Yb=calcY(b,Cb10比特,Cr10比特)
e1=(Ya – YO2
e2=(Yb – YO2
if(e1 < e2)
使用Y'=a
else
使用Y'=b
end
其中performBinarySearch(a,b,YO,Cb10bi,Cr10比特,N)以上述方式在N步中执行二分法搜索,并且输出最终间隔为[a,b]。在N=10次后,b将等于a+1。calcY(Y',Cb,Cr)如在附件A中Ajusty处理链中所述那样从值Y',Cb和Cr计算线性亮度Y,并且为读者的方便起见在此处被重述:
R'=Y'+1.47460×Cr
G'=Y'-0.16455×Cb-0.57135×Cr (等式7)
B'=Y'+1.88140×Cb。
R=TF(R')
G=TF(G')
B=TF(B')
Y=0.262700×R+0.677998×G+0.059302×B
在第十一实施例中,如果R、G和B颜色分量全部落在由函数集定义的某个准则内,则只计算Ajusty处理链。这些函数能够被导出,并且通过在其中R、G和B是3D绘图的轴的立方体中绘制将需要使用Ajusty处理链计算Y'所针对的样本而被图示。所述函数将因而是aR+bG+cB > d形式的平面,或穿过该立方体的非线性表面,其使将不需要使用Ajusty处理链计算的样本与剩余的样本分开。在此实施例的其它版本中,使用了其它颜色表示,例如R'G'B'或Y'CbCr。
在第十二实施例中,我们利用了如下的事实,即,用于带有色度Cb、Cr和期望的线性亮度YO的颜色的理想Y'与带有相邻色度Cb+d1、Cr+d2和相邻期望的亮度YO+d3的颜色的理想Y'可差别不大。作为示例,我们可断定在此类颜色的近邻(d1,d2,d3)中,所有理想Y'在小间隔[a0,b0]中。我们随后能够在此小间隔[a0,b0]中进行二分法搜索,而不是在大得多的间隔[0,1023]中进行二分法搜索。这样,我们能够减少二分法搜索迭代的次数。
在第十三实施例中,我们通过创建用于a0和b0的两个查找表来利用此事实。称为startLUT的第一LUT用于查找要搜索的间隔的开始,并且称为stopLUT的第二LUT用于查找要搜索的间隔的结束。作为示例,可能将Cb、Cr和Ynonlinear量化到六比特。随后,通过在量化到相同LUT位置并且在该位置存储最小间隔开始点的所有三元组(Cb,Cr和Yo)上进行迭代,能够创建startLUT:
对于所有值a、b、c,startLUT(a,b,c)=1023
对于所有值a、b、c,stopLUT(a,b,c)=0
for从0到1023的所有Cb10比特
for从0到1023的所有Cr10比特
for从0到1023的所有Ynonlinear
YO=TF-1(Ynonlinear/1023)
Cb=calcCbfromCb10比特(Cb10比特)
Cr=calcCrfromCr10比特(Cr10比特)
Y'=calcY(YO,Cb,Cr)
Y_6比特=Ynonlinear >> 4
Cb_6比特=Cb10比特 >> 4
Cr_6比特=Cr10比特 >> 4
if(Y'< startLUT(Y_6比特,Cb_6比特,Cr_6比特)
startLUT(Y_6比特,Cb_6比特,Cr_6比特)=Y'
end
if( Y'> stopLUT(Y_6比特,Cb_6比特,Cr_6比特)
stopLUT(Y_6比特,Cb_6比特,Cr_6比特)=Y'
end
end
end
end
此处,能够根据[5]中的B.1.5.7进行calcCbfromCb10比特,并且对于calcCrfromCr10比特是相似的。
在创建这两个LUT后,能够使用以下伪代码执行最佳Y'的计算:
Y_6比特=(1023 * TF(YO))>> 4
Cb_6比特=Cb10比特 >> 4
Cr_6比特=Cr10比特 >> 4
a=startLUT(Y_6比特,Cb_6比特,Cr_6比特)
b=stopLUT(Y_6比特,Cb_6比特,Cr_6比特)
[a,b]=performBinarySearch(a,b,YO,Cb10比特,Cr10比特,ceil(log(b-a)/log(2)))
Ya=calcY(a,Cb10比特,Cr10比特)
Yb=calcY(b,Cb10比特,Cr10比特)
e1=(Ya – YO2
e2=(Yb – YO2
if(e1 < e2)
使用Y'=a
else
使用Y'=b
end
我们看到,我们执行ceil(log(b-a)/log(2))次迭代,而不是为每个像素执行二分法搜索10次,其中ceil将数字舍入到邻接的更大整数。作为示例,如果在查找表中找到的间隔是[a,b] = [340,347],则b-a=347-340=7,并且因为log(7)/log(2)=2.81,ceil(log(b-a)/log(2))=3。我们因此只需要进行三次迭代而不是10次。假设在平均情况下只需要三次迭代。在该情况下,转换次数将大致为5×*(3/10)=1.5×。完全转换时间因而是锚转换时间的11.5/11=1.045倍,或多了4.5 %时间,而不是多了36 %时间。这是相当大的节省。
但是,所述两个LUT的大小并不是如此大。由于只使用6比特,因此,每个表只需要26+6+6=218个条目。由于我们需要两个此类表,并且每个条目是2字节,因此,我们需要4×218=22+18=220=1 MB的数据。这比在现有技术中需要的2 GB要少得多。
可以可能的是,使用不同于6比特的其它大小。也可能可在不同参数上使用不同量化。作为示例,可能可为Cb和Cr使用5比特,并且为Ynonlinear使用8比特。
在第十四实施例中,Ajusty处理链的估计是基于来自之前的图片的最佳Y'的知识。例如,能够从之前的图片中估计可能的Y'值的范围,并且一样地使用在当前图片中。如果选择某一端点,则能够针对在来自第一范围中的搜索的最佳Y'的位置上待定的范围之下或范围之上精炼搜索。
在第十五实施例中,Ajusty处理链的估计是基于来自一个或多个空间相邻样本的最佳Y'的知识。例如,用于一个或多个已经处理的相邻样本的最佳Y'的平均值能够用于确定本地开始范围,以执行用于当前样本的二分法搜索。随后,能够选择用于二分法搜索的开始范围[avg-2L,avg+2L+1]。如果选择某一端点,则能够针对来自第一范围中的搜索的最佳Y'的位置上待定的范围之下或范围之上精炼搜索。优选地,选择L以最小化查找用于当前样本的最佳Y'需要的迭代的平均次数。
作为示例,假设对于10比特图片,在具有位置x的当前样本的邻居具有以下最佳Y'值,Y'x-1=341和Y'x+1=353。这些最佳Y'值的平均值是avg=347。如果例如L=3,则如果最佳Y'在[340,355]内,则需要L+1=4次迭代以查找最佳Y'。如果选择339或356,则应搜索下方或上方范围以查找用于样本的最佳Y'。
在第十六实施例中,对于有限数量的样本,例如,对于在水平方向上的每隔一个样本和在垂直方向上的每隔一个样本,在第一通过中执行Ajusty处理链的估计,参见图12A。随后,基于来自从第一扫描通过的一个或几个相邻样本和从第二扫描中已确定的最佳Y'的一个或几个相邻样本的最佳Y'的知识,在第二扫描通过中针对在第一扫描通过的样本之间的剩余样本执行Ajusty处理链,参见图12B。
作为示例,如果来自第一通过的max值是Y'max,并且来自第一通过的min值是Y'min,则在第二通过中要处理的第一样本能够使用Y'max和Y'min为该样本确定用于最佳Y'的搜索的范围。如果选择某一端点,则能够在最佳Y'的位置上待决的在最佳Y'值的下方或上方精炼搜索。随后,在确定第二通过中的下一样本前,基于最佳Y',更新Y'max和Y'min。这重复进行,直至所有第二通过样本已被确定。
在第十七实施例中,Ajusty处理链仅调整在不使用Ajusty处理链时带有大于阈值的线性亮度误差的样本。阈值能够基于来自之前图片的知识。
在第十八实施例中,Ajusty处理链仅调整带有大于阈值的线性亮度误差的样本,其中阈值是基于通过忽略chroma分量的二次采样和上采样而获得的平均亮度误差。
在第十九实施例中,Ajusty处理链仅调整带有大于阈值的线性亮度误差的样本,其中阈值是基于在Ajusty处理链已被应用到之前图片后该图片的平均亮度误差。
在第二十实施例中,Ajusty处理链仅调整带有大于阈值的线性亮度的样本。如果像素太暗,则差别只是不可见,并且无需使用Ajusty处理链来改善质量。
在第二十一实施例中,使用计算高速缓存。作为示例,假设在图像中的第一像素具有值Ynonlinear10比特=200、Cb=300和Cr=400。随后使用Ajusty处理链计算正确的Y'。而且,在高速缓存中存储结果,并且例如通过在所述三个值的最后八比特上执行按位XOR,创建散列值(hash value):
HASH=(200 与 255)XOR(300 与 255)XOR(400 与 255)=116。
散列值与参数(Ynonlinear10比特=200,Cb=300和Cr=400)以及计算的Y'值一起被存储在高速缓存中。假设下一像素也具有值Ynonlinear10比特=200、Cb=300和Cr=400。首先,计算散列值:
HASH=(200 与 255)XOR(300 与 255)XOR(400 与 255)=116。
我们现在检查高速缓存以了解此散列值是否匹配任何条目。我们看到它不匹配我们刚输入的值。接着,我们通过检查所有三个参数匹配(它们确实匹配),确保这实际上是正确值。最后,我们从高速缓存获得存储的Y'值。这样,我们无需计算用于第二像素的Y'值,这节省了计算。
本领域技术人员将认识到,组合上述实施例的一个或多个是可能的,即使对于其中指明“只是带有...的样本”的情况。例如,和与通过忽略chroma分量的二次采样和上采样获得的亮度误差有关的阈值来组合地应用与线性亮度有关的一个阈值将是可能的。
还应注意到,可能并非所有像素值将根据相同规则被处理,例如,可能从进一步测试中排除在所有RGB分量中带有大值的像素。
即使上述实施例涉及主要使用Ajusty处理链计算最佳Y'的快速方式,但本领域技术人员将理解可能使用上述一些方法或方法的变化,以便以快速方式导出其它最佳像素属性,诸如来自去噪声、模糊或尖锐化的像素值,或来自其它图像过滤器或其它像素转换的输出。
能够导出的最佳像素属性的另一示例是在RGB 4:4:4到Y'CbCr 4:2:0转换中已找到最佳Y'后的最佳Cb和Cr值。附件C中描述了如何使用Ajustc处理链找到最佳Cb和Cr。为读者的方便起见,此处只简要地描述了Ajustc处理链。代替如在锚处理链中进行的如下转换:
RGB 4:4:4 --> R'G'B' 4:4:4 --> Y'CbCr 4:4:4 –Cb和Cr的二次采样--> Y'CbCr 4:2:0,
其中从4:4:4到4:2:0的二次采样在锚处理链的最后步骤中进行,Ajustc处理链使用的是:
RGB 4:4:4 –R、G和B的二次采样-> RGB 2:2:2 -> R'G'B' 2:2:2 --> Y'CbCr 2:2:2
其中二次采样转而是Ajustyc处理链的第一部分。此处,我们使用了项2:2:2来指示所有三个样本在x维和y维中均处在一半分辨率。这样,我们未得到全分辨率Y'分量,因为在最后步骤中的Y'分量是2:2:2,即,在两个方向上为一半分辨率。通过以下处理步骤,克服了此问题:
RGB 4:4:4 --> XYZ 4:4:4 --> Y 4:4:4 ------------------------------+-----> Y'=AJUSTY(Y 4:4:4,CbCr 4:4:4)
Y'CbCr 2:2:2 -> CbCr 2:2:2 –上采样--> CbCr 4:4:4---------/
简而言之,通过将RGB 4:4:4转换到XYZ 4:4:4,找到目标亮度Y 4:4:4,并且随后使用Y和在将CbCr上采样到与Y相同分辨率后来自Y'CbCr 2:2:2的chroma,通过Ajusty处理链找到最佳Y'。备选的是,锚处理链能够转而用于导出luma分量Y'。
使用例如在上述实施例中的LUT方案之一,可能能够确定不需要为某个样本使用Ajustc处理来计算Cb和Cr值。另外,如果确定不需要根据任何上述实施例为某个样本找到最佳Y',则针对该样本也不需要Ajustc处理链。
图13A描绘了其中我们已计算Y'anchor和Y'ajusty两者,并且计算了在它们之间的差的情况。灰色等于零差,而白色或黑色等于大差别。如能够看到的,只几个像素远离零。仅4.4%的像素具有在Y'anchor与Y'ajusty之间比两步更大的差。
图13B描绘其中对于每个像素,计算maxRGB=max(R,G,B)和minRGB = min (R,G,B)的图像。随后,使用在每个像素中的maxRGB/(minRGB+0.1)来创建图像。随后,通过除以最大值,在0与1之间缩放此图像。最后,将用于每个像素的值x替换成x0.25以增大可见性。如在图像中能够看到的,图13B中的白色区域,即maxRGB/(minRGB+0.1)的大值,很好地对应于其中Y'anchor不同于图13A中Y'ajusty的区域。
相应地,基于用于像素的最小颜色分量值和特别是在最大与最小颜色分量值之间的商来执行在默认与辅助处理链之间的决定,识别出将从使用辅助处理链受益的图片中的那些像素以及辅助处理链不导致超过锚处理链的任何重大明显改进的那些像素。
通常,仅在像素的颜色接近色域边界时,即颜色分量R、G或B至少之一是小的时,视觉伪影才出现。因此,如果最小值大于某个“安全”值,则可安全地避免昂贵的计算。
最大值的可选包含实际上是为了视觉感知的目的。如果我们具有极暗像素,诸如RGB=(1,0.01,0.2),则可能在该像素中具有严重的伪影,但像素将无论如何是太暗,以致我们不能看到它。像素的“可见性”(即,像素的可见程度)由亮度Y=wRR+wGG+wBB确定,该亮度又主要取决于RGB颜色分量的最大值。因此,如果最大值非常的小,则亮度值Y也将是小的。
实施例的另外方面涉及用于预处理图片中像素的装置。装置配置成基于用于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在一实施例中,装置配置成如果最小颜色分量值小于阈值,则选择辅助处理链,以及否则选择默认处理链。
在一实施例中,装置配置成基于用于像素的最小颜色分量值和最大颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在一实施例中,装置配置成基于在最大颜色分量值或其加权版本与1)最小颜色分量值或其加权版本,或2)最小颜色分量值或其加权版本与某个常数的和之间的商,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在一实施例中,装置配置成如果商超过阈值,则选择辅助处理链,以及否则选择默认处理链。
在一特定实施例中,装置配置成按照
Figure DEST_PATH_IMAGE023
计算函数值,其中max表示最大颜色分量值或其加权版本,min表示最小颜色分量值或其加权版本,并且s是常数。装置还配置成比较函数值和阈值。
在一实施例中,装置配置成在查找表中,输入用于像素的颜色分量值,该查找表配置成如果商超过阈值,则输出第一值,以及否则输出第二值。装置还配置成如果从查找表输出的值等于第一值,则选择辅助处理链。装置进一步配置成如果从查找表输出的值等于第二值,则选择辅助处理链。
在一实施例中,装置配置成使用默认处理链,导出第一二次采样的chroma分量值和第二二次采样的chroma分量值。装置配置成基于最小颜色分量值,确定是否默认处理链用于导出luma分量值,或者是否第一辅助处理链用于导出luma分量值。
在另一实施例中,装置配置成使用默认处理链,导出luma分量值。装置配置成基于最小颜色分量值,确定是否默认处理链用于导出第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否第二辅助处理链用于导出第一二次采样的chroma分量值和第二二次采样的chroma分量值。
在另外的实施例中,装置配置成基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否第一辅助处理链用于导出luma分量值,并且第二辅助处理链用于导出第一二次采样的chroma分量值和第二二次采样的chroma分量值。
在一实施例中,装置配置成根据默认处理链,对第一颜色空间中的线性颜色应用第一传递函数,以获得第一颜色空间中的非线性颜色。装置还配置成根据默认处理链,对第一颜色空间中的非线性颜色应用第一颜色变换,以获得第二颜色空间中的luma分量值和两个chroma分量值。装置进一步配置成根据默认处理链,对第二颜色空间中的所述两个chroma分量值进行二次采样,以获得第二颜色空间中的第一二次采样的chroma分量值和第二二次采样的chroma分量值。此实施例对应于根据默认处理链预处理像素。
在一实施例中,装置配置成根据第一辅助处理链,获得基于第一颜色空间中像素的线性颜色确定的在第三颜色空间中像素的原始线性亮度分量值。装置还配置成根据第一辅助处理链,基于第二颜色空间中的两个chroma分量值和第三颜色空间中的原始线性亮度分量值,导出第二颜色空间中的luma分量值。此实施例对应于根据Ajusty处理链预处理像素。
在一实施例中,装置配置成根据第二辅助处理链,对第一颜色空间中的线性颜色进行二次采样,以获得第一颜色空间中的二次采样的线性颜色。装置还配置成根据第二辅助处理链,对第一颜色空间中的二次采样的线性颜色应用第一传递函数,以获得第一颜色空间中的二次采样的非线性颜色。装置进一步配置成根据第二辅助处理链,对第一颜色空间中的二次采样的非线性颜色应用第一颜色变换,以获得第二颜色空间中的第一二次采样的chroma分量值和第二二次采样的chroma分量值。此实施例对应于根据Ajustc处理链预处理像素。
根据第二方面,提供了诸如预处理器或编码器的单元。单元配置成确定锚处理链能够用于哪些像素和Ajusty处理链能够用于哪些像素。单元配置成根据下面的任何的实施例或其组合执行该确定。
图14图示了根据实施例的装置100的特定硬件实现。在一实施例中,装置100包括配置成确定锚处理链能够用于哪些像素和辅助处理链(即,Ajusty和/或Ajustc处理链)能够用于哪些像素的确定单元101。确定单元101配置成根据任何公开的实施例或其组合做出确定。装置100也包括配置成根据Ajusty处理链导出校正的Y'和/或根据Ajustc处理链导出校正的CbCr的导出器102。装置100进一步包括配置成对图片进行编码的视频编码器103。
在一实施例中,装置100还包括配置成接收要编码的视频序列的图片的输入单元104和配置成输出编码的比特流的输出单元105。
输入单元104能够采用通用输入单元的形式,特别是在有到外部装置的有线连接的情况下。备选的是,输入单元104能够采用接收器或收发器的形式,特别是在有到外部装置的无线连接的情况下。相应地,输出单元105能够采用通用输出单元的形式,特别是在有到外部装置的有线连接的情况下。备选的是,输出单元105能够采用传送器或收发器的形式,特别是在有到外部装置的无线连接的情况下。
输入单元104优选连接到确定单元101、导出器102和视频编码器103以向其转发要编码的视频。确定单元101优选连接到导出器102和视频编码器103。视频编码器103优选连接到输出单元105以向解码器转发编码的比特流。
备选的是,本文中所描述的步骤、功能、规程、模块和/或框中的至少一些可在用于由适合的处理电路(诸如一个或多个处理器或处理单元)执行的软件(诸如计算机程序)中实现。
处理电路的示例包括但不限于一个或多个微处理器、一个或多个数字信号处理器(DSP)、一个或多个中央处理单元(CPU)、视频加速硬件、和/或任何适合的可编程逻辑电路(诸如一个或多个现场可编程门阵列(FPGA)或一个或多个可编程逻辑控制器(PLC))。
还应理解的是,再使用所提议的技术在其中被实现的任何常规装置或单元的通用处理能力可以是可能的。例如通过对现有软件的再编程或通过添加新软件组件来再使用现有软件也可以是可能的。
在一实施例中,参见图15,用于预处理图片中像素的装置110包括处理器111和包括由处理器111可执行的指令的存储器112。处理器111操作以基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在特定示例中,参见图15,装置110包括处理器111和包括由处理器111可执行的指令的存储器112。处理器111操作以根据公开的任何实施例或其组合,确定锚处理链能够用于哪些像素以及Ajusty和/或Ajustc处理链能够用于哪些像素。此外,处理器111可操作以根据Ajusty处理链导出校正的Y'、根据Ajustc处理链导出校正的CbCr、以及对图片进行编码。
在一实施例中,装置110还包括配置成接收带有要编码的图片的视频的输入单元113。在此类情况下,处理器111操作以接收来自输入单元113的要编码的视频。
在一实施例中,装置110还包括配置成输出如从处理器111接收的编码的比特流的输出单元114。
在一特定实施例中,处理器111在执行存储器112中存储的指令时操作以执行上述操作。处理器111由此互连到存储器112以能够实现正常软件执行。
实施例的另一方面涉及用于对图片中像素进行编码的装置110。装置110包括处理器111和存储器112,存储器112包括由处理器111可执行的指令。处理器111操作以基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。处理器111还操作以根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。处理器111进一步操作以对luma分量值、第一二次采样的chroma分量值和第二chroma分量值进行编码。
图15的组件被描绘为位于单个更大框内的单个框。然而,实际上,装置110可包括组成单个图示的组件的多个不同物理组件,诸如输入单元113可包括用于耦合导线以便实现有线连接的端子和用于无线连接的无线电收发器。类似地,装置110可由多个物理上分离的组件组成,这些组件可每个具有其自己相应的处理器、存储器和接口组件。在其中装置110包括多个分离的组件的某些情形中,可在几个装置之间共享一个或多个分离的组件。例如,单个存储器单元112可由多个装置110共享。
处理器111可以是微处理器、控制器、微控制器、中央处理单元、数字信号处理器、专用集成电路、现场可编程门阵列、或任何其它适合的计算装置、资源中一项或多项的组合,或者是可操作以单独或结合诸如存储器112的其它装置组件来进行提供的硬件、软件和/或编码的逻辑的组合。例如,处理器111可执行在存储器112中存储的指令。此类功能性可包含提供各种编码或解码特征和/或本文中公开的任何其它特征或益处。
存储器112可包括任何形式的易失性或非易失性计算机可读存储器,包含但不限于持久性存储器、固态存储器、远程安装的存储器、磁介质、光介质、随机存取存储器(RAM)、只读存储器(ROM)、可移除介质、或任何其它适合的本地或远程存储器组件。存储器112可存储装置110利用的任何适合指令、数据或信息(包含软件和编码的逻辑)。存储器112可用于存储处理器111进行的任何计算和/或经由I/O接口113、114接收到的任何数据。
装置110还包括输入单元113和输出单元114(I/O接口),其可在往来装置110的视频和/或数据的有线或无线通信中使用。I/O接口可包含可耦合到天线或是其一部分的无线电传送器和/或接收器。无线电可接收将被编码或解码的视频。
图16是示意框图,图示了包括处理器210、关联存储器220和通信电路230的用户设备(UE)200的示例。
在此特定示例中,本文中描述的步骤、功能、规程、模块和/或框中的至少一些在计算机程序240中实现,计算机程序240被加载到存储器220中以便由包含一个或多个处理器210的处理电路来执行。处理器210和存储器220彼此互连以能够实现正常软件执行。通信电路230也互连到处理器210和/或存储器220以能够实现视频数据和编码的视频数据的输入和/或输出。
用户设备200能够是任何装置或设备,其能够接收和处理视频数据。例如,用户设备200能够是固定或便携式计算机,诸如膝上型计算机、智能电话、平板、机顶盒等。
术语“处理器”应从一般意义上理解为能够执行程序代码或计算机程序指令以执行特定处理、确定或计算任务的任何系统或装置。
包含一个或多个处理器的处理电路因此配置成在执行计算机程序时,执行明确的处理任务,诸如本文中描述的那些任务。
处理电路不必专用于只执行上述步骤、功能、规程和/或框,而是也可执行其它任务。
实施例的另外方面涉及包括指令的计算机程序240,指令在由处理器210执行时促使处理器210基于用于图片中像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在一实施例中,计算机程序240还包括指令,指令在由处理器210执行时,促使处理器210根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。处理器210还被促使对luma分量值、第一二次采样的chroma分量值和第二chroma分量值进行编码。
在一实施例中,计算机程序240包括指令,指令在由处理器210执行时,促使处理器210确定锚处理链能够用于哪些像素和Ajusty处理链能够用于哪些像素。处理器配置成根据下面的任何实施例或其组合做出确定。
提议的技术还提供包括计算机程序240的载体250。载体250是电子信号、光信号、电磁信号、磁信号、电信号、无线电信号、微波信号或计算机可读存储介质250之一。
例如,软件或计算机程序240可实现为计算机程序产品,其通常被携带或存储在计算机可读介质240(优选为非易失性计算机可读存储介质250)上。计算机可读介质250可包含一个或多个可移除或不可移除存储器装置,其包含但不限于只读存储器(ROM)、随机存取存储器(RAM)、紧致盘(CD)、数字多功能盘(DVD)、蓝光(Blue-ray)盘、通用串行总线(USB)存储器、硬盘驱动(HDD)存储装置、闪速存储器、磁带或任何其它常规存储器装置。计算机程序240可因此被加载到由图16中的用户设备200所表示的计算机或等同处理装置的操作存储器中以便由其处理器210执行。
本文中所呈现的流程图或多个流程图可因此在由一个或多个处理器执行时被视为计算机流程图或多个流程图。对应装置可被定义为功能模块组,其中处理器执行的每个步骤对应于一功能模块。在此情况下,功能模块被实现为在处理器上运行的计算机程序。因此,装置可备选地被定义为功能模块组,其中功能模块被实现为在至少一个处理器上运行的计算机程序。
驻留在存储器中的计算机程序可因此被组织为适当的功能模块,其配置成在由处理器执行时,执行至少部分本文中描述的步骤和/或任务。图17中图示了此类功能模块的示例。
图17是带有功能模块的装置120的示意框图。在一实施例中,用于预处理图片中像素的装置120包括确定单元121,确定单元121用于基于用于像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。装置120还包括导出器122,导出器122用于根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。
在另一实施例中,装置120包括配置成确定锚处理链能够用于哪些像素和Ajusty处理链能够用于哪些像素的确定单元121。确定单元121配置成根据本文中公开的任何实施例做出确定。装置120还包括配置成导出校正的Y'的导出器122。装置120还包括用于使用校正的Y'对比特流进行编码的视频编码器123。
实施例的另一方面涉及用于对图片中像素进行编码的装置120。装置120包括确定单元121,确定单元121用于基于最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二chroma分量值,或者是否辅助处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。装置120还包括导出器122,导出器122用于根据默认处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者根据辅助处理链,导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值中的至少一个。装置120进一步包括用于对luma分量值、第一二次采样的chroma分量值和第二chroma分量值进行编码的编码器123。
实施例的另外方面涉及包括根据本文中公开的任何实施例的以及例如在图14、15和17中图示的装置的用户设备。在一实施例中,用户设备从由计算机、膝上型计算机、智能电话、平板和机顶盒组成的群组中选择。
本文中描述的任何步骤只是说明某些实施例。不要求所有实施例结合公开的所有步骤,也不要求步骤以本文中所描绘或描述的确切顺序执行。此外,一些实施例可包含本文中未图示或描述的步骤,这包含本文中公开的一个或多个步骤固有的步骤。
通过可例如由附图中图示的组件和设备执行的计算机程序产品,可执行任何适当的步骤、方法或功能。例如,图15中的存储器112可包括在其上能够存储计算机程序的计算机可读部件。计算机程序可包含指令,指令促使处理器111和诸如输入单元113、输出单元114和存储器112等任何操作耦合的实体和装置执行根据本文中描述的实施例的方法。计算机程序和/或计算机程序产品可因此提供用于执行本文中公开的任何步骤的部件。
通过一个或多个功能模块,可执行任何适当的步骤、方法或功能。每个功能模块可包括由例如处理器执行的软件、计算机程序、子例程、库、源代码或任何其它形式的可执行指令。在一些实施例中,每个功能模块可在硬件中和/或在软件中实现。例如,参见图15,一个或多个或所有功能模块可由处理器111(可能地,与存储器112进行协作)实现。处理器111和存储器112可因此布置成允许处理器111从存储器112取指令,并且执行所取的指令以允许相应功能模块执行本文中公开的任何步骤或功能。
在诸如网络节点和/或服务器的网络装置中提供诸如硬件和/或软件的计算服务正变得日益流行,其中资源作为服务通过网络被输送到远程位置。作为示例,这意味着如本文中所描述的,功能性能够被分布或重新安置到一个或多个分离的物理节点或服务器。功能性可被重新安置或分布到能够位于分离的物理节点中的一个或多个联合行动的物理和/或虚拟机,即在所谓的云中。这有时也称为云计算,其是用于能够实现对可配置计算资源(诸如网络、服务器、存储装置、应用及通用或定制服务)池的普遍存在的按需网络接入的模型。
图18是图示在一般情况下能够如何在不同网络装置300、301、302之间分布或划分功能性的示例的示意图。在此示例中,存在至少两个单独但互连的网络装置300、301,其可具有在网络装置300、301之间被划分的不同功能性,或者相同功能性的不同部分。可存在作为此类分布式实现的部分的附加网络装置302。网络装置300、301、302可以是相同无线通信系统的部分,或者网络装置中的一个或多个可以是位于无线通信系统外的所谓基于云的网络装置。
图19是图示无线通信系统的示例的示意图,所述无线通信系统包括与一个或多个基于云的网络装置300协作的接入网络1和/或核心网络2和/或操作和支持系统(OSS)3。该图还图示了根据实施例的接入网络1的网络节点4和用户设备5。
上面参照几个实施例,已主要描述了本发明概念的某些方面。然而,如本领域技术人员容易领会的,与上面公开的实施例不同的实施例同样是可能的,并且在本发明概念的范围内。类似地,虽然已讨论多个不同组合,但未公开所有可能组合。本领域技术人员将领会,其它组合存在并且在本发明概念的范围内。另外,如技术人员所理解的,本文中公开的实施例同样地也适用于其它标准和编码器或解码器系统,并且结合其它特征公开的来自特定图的任何特征可适用于任何其它图和或与不同特征组合。
附件A
本附件A包括对根据实施例能够使用以便导出第二颜色空间中的非线性luma分量值的Ajusty处理链的描述。
高度非线性的传递函数、4:2:0或4:2:2二次采样和非恒定亮度排序的组合引发了在饱和颜色中的严重伪影。附件B中描述了示例,其中在类似亮度的两个颜色之间的改变能够产生亮度大不相同的重构图像。
在数字视频信号中,样本(即像素)的每个分量由整数或浮点值表示。诸如屏幕、电视或监视器等呈现视频的显示器基于视频信号的数字值来忽略可见光。将数字值V转换成可见光Y的函数是电光传递函数(EOTF)。EOTF在传统上一直表述为称为伽玛(gamma)函数的指数函数,其中,伽玛γ是指数值。这一般为2.4(但也能够是其它值):
Figure 583413DEST_PATH_IMAGE024
使用伽玛函数对低亮度信号效果很好,但在亮度超过100尼特(cd/m2)时,伽玛函数未很好地与人类视觉系统的对比度敏感性一致。因此,定义了更非线性的传递函数,例如:
Figure DEST_PATH_IMAGE025
Figure 21348DEST_PATH_IMAGE026
(等式A1)
Figure DEST_PATH_IMAGE027
此传递函数比伽玛函数更非线性,表现为在超过从0到1的范围上其一阶导数的最大值大于伽玛函数的该最大值。
chroma二次采样一般在压缩前作为减少数据量的初始步骤进行。在4:2:2中,chroma信号在垂直方向被降低到一半分辨率。在4:2:0中,chroma信号在垂直方向和水平方向均被降低到一半分辨率。这一般通过某一过滤操作来进行,以获得良好质量的信号,但也能够使用最近邻居来进行。
为显示4:2:0或4:2:2视频,解码器执行chroma信号的上采样,这能够使用双线性过滤器或更长过滤器来进行。
然而,高度非线性传递函数、4:2:0或4:2:2二次采样和非恒定亮度排序的组合引发了视频数据的严重伪影,特别是对于饱和颜色,即接近色域边缘的颜色。
有几种回避此问题的方式。一种方式是不使用4:2:0或4:2:2二次采样,而是转而使用4:4:4。然而,那是昂贵的,因为4:2:0在压缩前将比特的数量减半,而4:2:2将比特数量减少到三分之二。另一方式是不使用高度非线性传递函数。然而,那意味着难以在暗区域中无条带的情况下表示极高峰值亮度的内容。第三种方式是使用恒定亮度,即,在转换到CIE1931 XYZ颜色空间后应用传递函数。然而,此类解决方案与广播业内的通常实践不一致,并且在一些情形下实现起来可能是困难和成本高昂的。
下面描述典型的压缩链。范围在从0到10,000的入射线性光像素(R,G,B)先被馈送到传递函数,这产生在0与1之间的新像素(R',G',B')。在此之后,像素经历颜色变换,从而产生Y'Cb'Cr'。随后,将Cb'和Cr'分量二次采样到4:2:0。
在解压缩后,再次对4:2:0序列进行上采样到4:4:4,逆颜色空间转换产生(R',G',B'),并且最后逆传递函数返还能够在监视器上输出的线性光像素(R,G,B)。
麻烦来源于Cb'和Cr'chroma分量是经过内插值的,而Y'分量不经过内插值的事实。因此,在像素中的Y'分量中能够存在锐利的移动,但Cb'和Cr'分量由于它们是经过内插值的,因此不能跟随。对于一些颜色,特别是饱和颜色,结果是完全错误强度的像素,而且其是明显可见的。
提议是在这些情况下更改Y'分量,使得从经内插值的颜色生成的元组(Y'Cb'Cr')与原始颜色不是如此不同。理想的情况是差别将很小,以致它不可被察觉。
基本上,它发散到意识到Cb'和Cr'分量是假的,并且因而也使Y'分量是假的,以致(Y'Cb'Cr')更接近真实颜色。换言之,通过在Y'中引入误差,我们能够补偿在Cb'和Cr'中已经存在的误差以更接近实际像素。通过比较Cb'–Cb和Cr–Cr与阈值(例如,通过比较你从先对chroma进行二次采样(4:2:0),然后进行上采样(到4:4:4)而得到的Cb'),能够确定Cb'和Cr'分量是假的。
根据第一方面,提供了Ajusty方法。该方法能够在编码器中或者在到编码器的预处理中被执行。在该方法中,在确定Cb'和/或Cr'分量包括误差时,导出校正的Y'分量以补偿在Cb'和/或Cr'分量中的误差。
根据第二方面,提供了诸如预处理器或编码器的单元。单元配置成确定Cb'和/或Cr'分量包括误差,并且在已确定Cb'和/或Cr'分量包括误差时,它配置成导出校正的Y'分量以补偿在Cb'和Cr'分量中的误差。
根据如下所述的不同实施例,能够导出校正的Y'分量。因此,随后对校正的Y'分量、Cb'和Cr'进行压缩,从而使得图像或视频以更高质量被感知。
通过更改Y'分量,即,导出校正的Y'分量,我们能够补偿所得到的亮度值。眼睛对亮度更改比对色度更改更加敏感得多,因此,第一规则必须总是确保亮度与原始值偏差不会太大。
如上所述,在压缩前调整非线性亮度Y',使得像素的线性亮度Y更接近其正确值。这在下面进一步被描述。
假设有一张图片,其中屏幕的左侧部分(例如像素0到96)具有值(2142,0,138),并且右侧部分(例如像素97到1920)具有值(2142,4,138)。使用常规处理链时,我们将得到表A1中的结果。
表A1 – 对于4:2:0二次采样针对“最坏”颜色的数据
Figure 504282DEST_PATH_IMAGE028
* 这指示通过对在4:2:0格式中的二次采样的颜色进行上采样而获得的值。
这里,Y值是线性亮度。也就是说,原始的Y值是在你采用原始线性光RGB(2142,4,138)并且将它转换到XYZ时你得到的值。例如,如果RGB是在BT.2020颜色空间中,则你能够使用以下等式转换到XYZ:
X =0.636958 × R + 0.144617 × G + 0.168881 × B
Y =0.262700 × R + 0.677998 × G + 0.059302 × B (等式A2)
Z =0.000000 × R + 0.028073 × G + 1.060985 × B
此Y分量是眼睛最敏感的亮度。它不应与上面提及的非线性地取决于R、G和B的Y'分量相混淆。
如在表A1中能够看到的,在使用RGB 4:2:0二次采样和上采样时,Y值对于像素97是显著错误的。注意在此示例中,没有进行压缩,只量化到10比特,并且Y值还具有85 %的相对误差。使用对眼睛能够看到多大差别进行预测的Barten模型,我们看到此误差为195个Barten步,或者比所将恰可察觉的误差大195倍。
如果我们查看表A2,我们能够看到发生了什么。
表A2 - 像素97在颜色二次采样之前和之后大不相同
Figure DEST_PATH_IMAGE029
如果我们查看Cb'分量,它具有值607,其大约处在间断前的650,即像素94,与间断后的575之间的中途,但正确值是575。麻烦的是误差不但影响像素的色度,而且影响像素的亮度,其变得太亮了。我们的想法是通过更改像素的Y'分量来补偿此情况。根据实施例,我们不让针对该像素的Y'分量为422,而是转而选择值363。在表A3中,我们显示结果。
表A3 - 像素97在颜色二次采样之前和之后类似的多
Figure 976851DEST_PATH_IMAGE030
我们现在能看到,新颜色更类似于其正确值。绿色分量已位于错误方向上,但只有1.72 cd/m2,但同时红色分量已几乎为其正确值的一半,移动1849 cd/m2,以及蓝色分量已按照类似方式更改。在表A4中,我们示出对于亮度发生的情况。
表A4 – 在校正后对于4:2:0二次采样针对“最坏”颜色的数据
Figure DEST_PATH_IMAGE031
* 这指示通过对在4:2:0格式中的二次采样的颜色进行上采样而获得的值。
如在表A4中所看到的,我们得到在亮度Y中小得多的误差。相对误差为0.2465 %,这等效于0.5602 Barten步,即不可能看到。
误差现在转而在色度中,但在给定事实是人类视觉系统对色度中的误差比在亮度中的误差更不敏感的情况下,这不是大的问题。另外,由于色度被二次采样,因此,无论如何在色度中将存在误差。此外,人们可更改Y'分量,以得到在亮度中的误差与在色度中的误差之间的良好折中。
此外,色度中的更改可能甚至是不可察觉的 - 唯一的不同在于绿色分量是0.7008 cd/m2而不是3.9750 cd/m2,但由于红色分量为2145,几乎大1000倍,因此,它极可能还被红色分量所变小。查看它的另一方式是在绿色与红色分量之间的比率变成0.7008/2145.11 = 0.000327,而不是正确的3.9750/2142.6617 = 0.001855。不清楚的是,对于人眼可能看到色调中的此轻微变动。因此,我们已将比恰可察觉的误差大200倍的在亮度中的误差交换成在色度中的误差,在色度中的误差如此小,它可能不可能被看到。
好的事情是更改的Y'值只影响单独的像素。因此,通过更改Y'分量,不牺牲其它像素。
在一实施例中,值Y'未被优化用于Cb'和Cr'的特定值。相反,Y'值经选择,使得它最小化对于Cb'和Cr'的一些不同值或对于某个范围的Cb'和Cr'值的亮度误差。这能够在其中chroma上采样方法未知的情形中进行。
一种变化是要执行特定数量的chroma上采样方法,并且随后选择使对于不同上采样方法的平均平方误差最小化的Y'值。在另一版本中,Y'值经选择,使得最小化最坏情况(即最大误差)。
另一变化是使用Cb'和Cr'的两个或更多相邻值,并且直接使用它们计算可能的Cb'和Cr'值的范围。
存在几种方式用来查找对于Y'的最佳值,我们将讨论它们中的多个方式。一种方式在图20中示出。
首先,我们需要查找要朝向其优化的值YO。如上所提及的,原始像素RO、GO、BO从RGB被变换到XYZ。这产生了XO、YO、ZO,其中我们只关注YO。实际上,我们不需要计算XO和ZO。此YO是线性光中的原始亮度,并且它正是眼睛所敏感的。在我们的测试情况中,YO等于573.5991,参见表A1。
其次,我们采用我们现有的Y'值连同一起还有Cb'和Cr'值。在上述情况下,我们将馈入(422,607,812),参见表A2。现在,我们将进行从Y'Cb'Cr'到R'G'B'的颜色变换。这通过使用以下等式进行:
R'= Y'+ 1.47460 × Cr'
G'= Y'- 0.16455 × Cb'- 0.57135 × Cr'(等式A3)
B'= Y'+ 1.88140 × Cb'.
接着,我们调用传递函数。在此情况下,我们使用PQ-EOTF,其能够使用以下Matlab码实现,例如:
function L = pq_eotf(c)
%%%
%%% c goes from 0.0 to 1.0
%%% L是以尼特为单位的输出亮度
%%%
c1 = 0.8359375;
c2 = 18.8515625;
c3 = 18.6875;
n = 0.1593017578125;
m = 78.84375;
c = max(c,0);
c = min(c,1);
L = 10000*((max(c.^(1/m)-c1, 0)./(c2 - c3*c.^(1/m))) .^ (1/n));
结果是线性光中的颜色(R,G,B)。如上所提及的,现在我们将此转换到XYZ,或者真正地,我们只需要计算Y。此Y是像素的线性亮度,并且我们想使其尽可能接近YO的正是此亮度。在我们的测试情况中,Y开始是1066.4311,参见表A1。
现在我们比较Y和YO。如果Y大于YO,则我们将我们的Y'值从422减小到某个更小值。例如,我们能够采用一步并且尝试421。随后,再次执行整个计算,生成新Y值。再次地,将此值与YO进行比较,并且如果它仍太大,则我们进一步减小Y'。最后,我们将到达363和得到的Y值,即572.1852现在小于YO,即573.5991。该过程现在停止。
在上述实施例中,采用422-363=59个迭代以到达最佳值。这可以是高成本的。
因此,实施例将进行二分法搜索以查找最佳Y'值。可选的是,先尝试最大Y'值,例如1023。可选的是,随后尝试最小Y'值,例如0。随后,尝试在中间的值,例如512。如果由Y'=512产生的Y值大于YO,则我们应在间隔[0, 512]中搜索。如果Y值小于YO,则我们应转而搜索间隔[512, 1023]。随后,我们通过计算在选择的间隔的中间中的新值来继续,并且继续直至间隔只包含单个数字,如[363, 363]或[363, 364]。这被保证只采用log2(N)步,其中,N是可能值的数量,在此情况中它是1024。因此,仅log2(1024)=10步便足够。
计算最佳值还有的另一方式是将图20视为优化问题,并且最小化相对于Y'的误差E=(Y-YO2。能够通过梯度下降来进行此操作:通过计算E相对于Y'的梯度,即,dE/dY',并且在梯度的相反方向上小量更新Y',即Y'n+1=Y'n-α× dE/dY',其中,α是小的常数。
梯度下降能够是慢的,因此,更快的方式可以是使用计算或近似二阶导数d2E/dY'2的二阶优化算法。高斯-牛顿法(Gauss-Newton)是此类算法的示例。
在另一实施例中,应用以下过程以便计算Y':
-通过XYZ到RGB转换,转换X、YO和Z以产生新值R1、G1和B1
-通过逆传递函数,转换R1、G1和B1以产生R1’、G1’和B1’。
-通过逆颜色变换,转换R1’、G1’和B1’以产生Y'
在一实施例中,校正图像或图片中所有像素的Y'值。在一备选实施例中,仅校正处于具有可见亮度误差风险的像素。这可包括靠近色域边缘的像素,但排除更靠近色域三角形的中间的像素。
查看图20中的底行,处理的第一步是
R'=Y'+1.47460×Cr'
G'=Y'-0.16455×Cb'-0.57135×Cr'(等式A3)
B'=Y'+1.88140×Cb'。
但由于Cr'和Cb'是固定的,它们被内插值而不是被发送,因此,我们能够将Y'右侧的任何内容替换为常数:
R'=Y'+c1
G'=Y'+c2
B'=Y'+c3
下一步是采用颜色分量的传递函数:
R = TF(R')
G = TF(G')
B = TF(B')
其随后变成
R=TF(Y'+c1)
G=TF(Y'+c2)
B=TF(Y'+c3)
处理的最后步骤是从RGB转到XYZ。这通过使用以下等式进行:
X=0.636958×R+0.144617×G+0.168881×B
Y=0.262700×R+0.677998×G+0.059302×B (等式A2)
Z=0.000000×R+0.028073×G+1.060985×B
这个中我们只关注Y分量,因此我们使用
Y=0.262700 × R+0.677998 × G + 0.059302 × B.
将前面的等式插入此中产生了
Y=0.262700×TF(Y'+c1)+0.677998×TF(Y'+c2)+0.059302×TF(Y'+c3),
或缩写成
Y = f(Y')
我们想要此等式的输出值Y匹配原始YO。由于Y以非线性方式在三个不同位置中取决于Y',似乎没有简单的方式倒置该函数,使得我们能够得到Y'=f-1(Y)。
然而,可能使非线性TF(x) ~ kx+m线性化。在三个不同位置中进行此操作产生了
Y ~ k1×Y'+m1+k2×Y'+m2+k3×Y'+m3
这等效于
Y ~(k1+k2+k3)×Y'+(m1+m2+m3)。
这能够被倒置成
Y'~Y'k=(YO–(m1+m2+m3))/(k1+k2+k3)。
因此,可能Y'k将产生比以前更接近YO的值Yk。该函数能够在此新点Y'k再次被线性化,产生新值Y'k+1等等。
应注意的是,对于所有这些迭代技术,查找生成最接近YO值的Y值的绝对最佳10比特值不是必需的。可能只使用几次迭代或甚至一次迭代便足够。由单个迭代产生的校正的Y值将极可能比根本不校正要好得多。
一些线性化也可事先进行。如上所提出的,最坏的问题发生在域边缘上。因此,人们能够具有用于连接红基色到绿基色的线的一个线性化,用于连接红基色到蓝基色的线的一个线性化及用于连接绿基色到蓝基色的线的一个线性化。另一方式可以是要具有将接近红基色使用的线性化,接近绿基色的另一线性化和接近蓝基色使用的第三线性化。此外,如图21中所示,可能沿域的线具有几个线性化。
因此,在不同区域中能够有不同线性化。如果颜色是在实线圆内,则我们接近绿基色,并且我们能够使用一个线性化。如果我们进一步沿线移向红基色,即,在虚线框内,则我们能够使用第二线性化。如果我们接近域的边缘,并且大致在红基色与绿基色之间的中途,即,在虚点框内,则能够使用第三线性化。如果我们甚至更接近红基色,即,在实线框内,则能够使用第四线性化。如果我们在虚点圆内,即接近红基色,则能够使用第五线性化。也能够使用三角形中其它两条线的相同划分。最后,在三角形内但不在框或圆中的区域能够被划分成一个或多个区域,每个区域具有不同线性化。
另一方式是要创建查找表(LUT)。如从上面的公式所能够看到的,如果我们具有Cb'、Cr'和想要的Y值,则可能使用上面提及的任何迭代技术,查找最佳Y'。因此,我们能够为Cb'、Cr'和Y的每个可能组合创建查找表。例如,假设Cb'和Cr'被量化到10比特。还假设我们也将Y量化到10比特。随后,我们在我们的查找表中需要210×210×210个不同值。这等效于230个值。如果每个值是两个字节,这意味着231个字节或2 Gb。这是大的但也许不是不可行的,特别是在将来。
在量化Y时需要小心。由于Y是完全线性,因此,只将其量化可能是不足的。可能转而更好的是创建Ynonlinear=TF(Y),并且转而使用Cb'、Cr'和Ynonlinear作为输入变量,为Y创建LUT。给定Cb'、Cr'和Y,我们随后将先计算Ynonlinear=TF(Y),且然后查找Y'=LUT(Cb',Cr',Ynonlinear)。
也可能可使用更小的LUT。例如,可能可将Y(或Ynonlinear)、Cb'和Cr'量化到比如6比特。随后,表大小将是2(6+6+6) = 218个值或219个字节,这等于512 kbytes。即使使用今天的硬件,这也是个合理的大小。
可能可采用最接近真正值的量化的值Cb'、Cr'和Y,并且对它们进行内插值。例如,如果Cb'的实际值大于被量化到6比特的Cb',但小于被量化到6比特+1的Cb',则以下可以是很好的近似:
Y'=(LUT(Cb'6比特,Cr'6比特,Y6比特)+(LUT(Cb'6比特+1,Cr'6比特,Y6比特))/2
在不止两个值之间的内插值也是可能的。
在一实施例中,查找表用于导出Y'的值。在一个版本中,查找表包含YO、Cb'和Cr'的每个可能值。对于10比特视频,那将产生1024×1024×1024个条目,且在一些应用中,此大小是可接受的。在另一版本中,查找表(LUT)被删减,例如,通过将YO、Cb'和Cr'的一项或更多项舍入到例如8比特。如果使用被删减的查找表,则能够通过从检索于LUT的Y'开始来查找最佳Y'的精炼步骤,扩展算法。在一版本中,仅在Cb'值和/或Cr'值使得Y'能够变得与YO大不相同时,即在初始计算的Y'给出与YO大不相同的线性Y值时才使用LUT,并且由此LUT的大小能够实质减小,因为Cb'和Cr'的许多值将不造成任何问题。
在一实施例中,YO、Cb'和Cr'的函数(例如线性组合、多项式函数、指数函数、对数函数、三角函数)被用于导出Y'。函数能够经定义,使得对于YO、Cb'和Cr'的任何值,在Y与YO之间的差低于某个阈值,或者在导出的Y'与最佳Y'之间的差低于某个阈值。
在一实施例中,为导出Y',定义了YO、Cb'和Cr'的几个不同函数。要使用哪个函数的选择基于YO、Cb'和Cr'的值。
对于本文中描述的每个实施例,情况能够是仅在Y'与YO之间的差高于用来开始的某个阈值时,才调用用于导出Y'的方法。
附件B
此附件B调查由于4:2:0二次采样造成的颜色伪影。首先,进行交叉检查的尝试,但可能由于已经固定的HDRTools中的错误(bug),不能再现最坏的值。接着,执行对由4:2:0二次采样引发的亮度中最坏相对误差的搜索。被发现的是,即使在限于4000尼特的屏幕上显示,也能够发生86 %的相对误差(195个Barten步)。即使数据被限制到Rec709并且保留在BT.2020容器中,30个Barten步的误差是可能的。对于在BT.2020容器中的P3内容,40个Barten步的误差是可能的。
1简介
已被注意到的是,使用4:2:0二次采样时,即使未进行压缩,颜色中小的更改能够引入惊人的大伪影。
1.1交叉检查差异
此调查作为M35255[3]的交叉检查开始,尝试复制在下面表B1中再印的在幻灯片13上的结果。结果来自测试图像,其中直至像素95的图像的左侧部分具有颜色(3000,0,100),并且右侧部分、像素96和前面具有颜色(3000,4,100)。
表B1 – M35255的值
Figure 903350DEST_PATH_IMAGE032
在使用与用于锚(N14548,[2])相同的规程进行交叉检查时,我们得到表B2中示出的结果。对于下采样,采用在[2]的段2.4.7中描述的滤波器(2和3个抽头),并且对于上采样,采用[2]的段2.4.8(4抽头滤波器)。
表B2 - 在尝试交叉检查时的值
Figure 828581DEST_PATH_IMAGE033
如所能看到的,这匹配确实地差,并且仅像素号94和98匹配,而未发现对于像素号95-97或99的匹配。然而,将间断移到像素97转而给出了要好得多的匹配,如表B3中所示。
表B3 - 在移动间断时的值
Figure DEST_PATH_IMAGE034
在表B3中,仅像素号96不匹配。那也是有着最奇怪值(10000,1.57,402.25)的像素,取决于你放置间断的位置,正确的答案是(3000,0,100)或(3000,4,100)。
看起来好像交叉检查中的不匹配是由于在HDRtools中已经校正的误差。如果回到版本492,我们能够产生与在M35255 [3]中相同的值。为确认HDRtools的更新版本(修订版573)是正确的,我们已在Matlab中独立实现处理链,并且我们得到与在表B3中相同的结果。我们必须移动间断以得到匹配的原因可能是由于在当前版本中已解决的在修订版492中的有错过滤。
1.2舍入问题
在实现Matlab交叉检查时,我们认识到在HDRtools中浮点型到EXR的转换缺乏舍入。尾数的23比特不是舍入到10比特,它们只是被向右移位,基本是将round( )替代为floor( )。这影响最终结果。例如,即便3008.0是更接近得多的值,但浮点型的3007.9将被转换到3006.0。为得到匹配,我们在HDRtools的当前修订版([4]的修订版587)中使Matlab代码仿真floor( )-型转换。
1.3颜色异常点
注意,即使像素96不再是极度异常点,但像素97仍离正确值差很远,正确值是(5860,2.58,199)而不是(300,4,100)。这引起了问题;4:2:0二次采样能够生成多差的异常点,并且这发生在何处
Figure DEST_PATH_IMAGE036
为回答此问题,我们先必须定义我们对“差”的解释。我们集中在亮度上,因为人类视觉系统对亮度中的更改比对色度中的更改更敏感。因此,我们将输入EXR图像和输出EXR图像均从线性光变换到XYZ,并且形成在Y中的差。为得到相对误差,我们随后除以原始的Y分量。随后,我们编写一个小程序,最大化用于在该类型的所有可能图像上的像素97的此相对误差,其中左侧部分具有一个颜色,并且右侧部分是相同颜色加长度为4的小delta,恰如在M35255 [3]中进行的一样。
运行此程序给出的答案是,具有在左侧部分中的颜色(2142,0,138)和在右侧部分中的颜色(2142,4,138)给出最大可见误差,如表B4中所示。不保证寻找“最坏”误差的优化软件找到全局最大值,因此,在色域中可存在甚至更坏的位置。
表B4 – 对于4:2:0二次采样用于“最坏”颜色的数据
Figure 115206DEST_PATH_IMAGE037
应注意的是,具有比2142更高的红色分量将生成甚至更高的相对误差。然而,我们假设高于4000的RGB值将被监视器削减到4000,因此,我们相信如果使用更高值,则实际屏上差别将开始缩小。
如在表B4中能够看到的,用于RGB 4:4:4的相对误差是0.0304%。确切地说,我们比较了该误差和Barten曲线,参见示出用于对比度敏感性的Barten曲线的图22。曲线之下的对比度不可察觉。表B5示出用于绘制图22中的曲线的值。
表B5 - 用于绘制Barten曲线的值
Figure 176703DEST_PATH_IMAGE038
如在图22中能看到的,用于相对误差的容限随着亮度的增大而减小。在100尼特,0.44 %的误差能够是恰可察觉的,而在1000尼特,0.40 %的误差能够是恰可察觉的。由于455尼特正好在这些值之间,因此,我们使用0.44 %的更高值。这给出0.069的Barten步,这意味着它是不可察觉。
另一方面,对于4:2:0二次采样,相对误差是85.92 %。这等效于超过195个Barten步,这应是明显可见的。因此,断定4:2:0二次采样能够形成明显可见伪影似乎是合理的,如在锚生成中的情况一样至少伴随带有非恒定亮度和高度非线性传递函数。
注意,最坏误差正好在色域的边界上;因为绿颜色为零,颜色(2142,0,138)是在红基色与绿基色之间的线上。这与在也指出域边缘上的颜色有问题的M35255 [3]中报告的内容一致。
1.4在输入是709数据时
表B1中呈现的数据是用于BT.2020基色。如果输入数据与Rec709基色有关,但容器是BT.2020,则将不可能到达色域边界。这是由于事实是Rec709域三角形是在BT.2020三角形内,未接触域边界(如在图23中所能看到的)。因此,假设相对误差将更小是合理的。
我们已运行优化软件以查找在转换到BT.2020后将产生最大相对误差的Rec709颜色。所得到的两个颜色是用于屏幕的左侧部分的(0,0,50)和右侧部分中的(2,3,49)。这呈现在表B6中。
表B6 - 如果输入是Rec709,并且容器格式是BT.2020,则针对4:2:0二次采样用于“最坏”颜色的数据
Figure DEST_PATH_IMAGE039
此处,我们已使用了在10尼特的Barten曲线,其等于0.54 %。对于RGB 4:4:4,我们随后得到在1.2305个Barten步恰可察觉的误差,而在RGB 4:2:0中的误差等于33个Barten步,其应是明显可见的。由于以Rec709数据开始排除了颜色到达BT.2020的域边缘的所有部分,因此,误差更小(33个Barten步对195个Barten步)也是合理的。
同样注意,优化结果是如何已发现最坏误差在蓝基色附近可用。这可能是因为蓝Rec709基色最接近BT.2020域边缘(如在图23中所能看到的)。
1.5在输入是P3数据时
相同测试能够为在BT.2020容器中包含的P3源数据执行。最坏颜色然后是(2.48,3.32,4.63)和(3.29,0,6.71),如表B7中所示。
表B7 - 如果输入是P3,并且容器格式是BT.2020,则针对4:2:0二次采样用于“最坏”颜色的数据
Figure 461053DEST_PATH_IMAGE040
我们将假设误差将在Rec709与BT.2020之间某处,并且情况也是如此,我们现在得到等效于40.38个Barten步的误差。注意,由于Barten值更改,因此,重要的是在搜索最坏值时在循环中包括它。我们已使用了用于1 cd/m2的Barten值,其等于0.85 %。
1.6 结论
此附件调查了由于4:2:0二次采样造成的在亮度中的误差。虽然我们尚不能匹配来自M35255 [3]的最坏异常点,但最坏情况误差仍是显著的,对于一般数据达到几乎200个Barten步。即使源数据受限于Rec709,并且被放置在BT.2020容器中,误差仍是显著的,超过30个Barten步,并且对于在BT.2020容器中的P3数据,超过40个Baren步。
附件C
本附件C包括对根据实施例能够使用以便导出第二颜色空间中的非线性chroma分量值的Ajustc方法的描述。
高度非线性的传递函数、4:2:0二次采样和非恒定亮度排序的组合引发了在饱和颜色中的严重伪影。示例在[3]中被描述,其中在类似亮度的两个颜色之间的改变能够产生亮度大不相同的重构图像。在此附件中,我们将处理视频的此方式称为“锚”方式,因为它用于在[2]中描述的在MPEG求证中创建锚。
避免所描述的该问题的一种方式在附件A中被描述,一种我们将称为Ajusty的方法。在Ajusty方法中,每个像素的Y'值被调整,使得所得到的线性亮度Y更接近其正确值。因此,补偿一些亮度也在chroma分量Cb'和Cr'中被携带的事实是可能的。
在此附件中,我们将使用以下术语:
RGB:线性RGB值,其中每个值与cd/m2(“光子数量”)成比例。
XYZ:线性XYZ值,其中每个值是RGB的线性组合。Y被称为“亮度”,并且不严格地说,其很好地反映了眼睛感知的“明亮度”。
pq(Y):一种非线性表示,其中非线性函数pq(Y)已被应用到线性亮度Y。不要将pq(Y)与Y'混淆。由于pq(.)类似Barten曲线pq(Y),因此,在pq(Y)中的一小步相当于在感知亮度中的一小步。
R'G'B':非线性RGB值。R'=pq(R),G'=pq(G),B'=pq(B),pq(.)是非线性函数。非线性函数的示例是PQ传递函数。
Y'Cb'Cr':一种非线性表示,其中每个值是R'、G'和B'的线性组合。Y'被称为“luma”,并且Cb'和Cr'统称为“chroma”。这是为了区分Y'和亮度,因为Y'也含有一些色度,并且Cb'和Cr'也含有一些亮度。
xy:色度的一种非线性表示,因为它已通过x=X/(X+Y+Z),y=Y/(X+Y+Z)针对“明亮度”进行归一化。无论它具有的强度是什么,单色激光器将始终在xy中具有相同坐标。这意味着xy是色度的良好量度。
u'v':色度的一种非线性表示,其是xy的非线性函数。它被认为在感知上更均匀,意味着在u'v'中的一小步将同样是可感知的,而无论我们所处在哪个色度。
pq(Y)xy:颜色的一种表示,其中pq(Y)含有所有亮度,并且xy含有所有色度。从pq(Y)中,可能提取Y,并且从Y、x和y中,可能抽取能够被变换到RGB的XYZ。
与使用锚处理链有关的问题是除得到不准确的亮度外,我们也可得到不准确的色度。这是由于是在Y'Cb'Cr'空间中对chroma样本Cb'和Cr'进行二次采样的事实。存在与此有关的问题,即,Y'Cb'Cr'空间的非线性将有利于深颜色。这不是期望的结果。这意味着用来开始的chroma样本Cb'和Cr'将不准确。
由于二次采样的第一部分是过滤,并且由于过滤是某种求平均,因此,足以看到在我们平均两个颜色时发生了什么。在R'G'B'域中比在Y'Cb'Cr'中更容易看到在我们求平均时发生了什么,因此,首先我们将证明在这两个域中的求平均结果相同。为此,先注意Y'Cb'Cr'只是R'G'B'的线性组合:
Y'=0.212600×R'+0.715200×G'+0.072200×B'
Cb'=-0.114572×R'-0.385428×G'+0.500000×B'(等式C1)
Cr'=0.500000×R'-0.454153×G'-0.045847×B'
因此,如果向量q保留在R'G'B'中的颜色;则q=(q1,q2,q3)=(R',G',B'),并且向量p保留在(Y',Cb',Cr')中的相同颜色;p=(p1,p2,p3)=(Y',Cb',Cr'),我们有
p=Mq,
其中M是上述矩阵。类似地,q=M -1p。假设我们具有在Y'Cb'Cr中我们想对其求平均的两个向量p1和p2。现在我们将示出,先转到R'G'B',然后执行求平均,并且然后在只直接对p1和p2求平均时,返回进行相同操作。通过使用q1=M -1p1和q2 = M -1p2,我们转到R'G'B'。
在R'G'B'空间中的平均值是qa=½(q1+ q2),但这等于qa=½(q1+q2)=½(M -1p1+M -1p2)=M -1 ½(p1+p2)。
通过与M相乘,完成到Y'Cb'Cr'的返回,pa=M qa=MM -1 ½(p1+p2)=½(p1+p2),但这与如果你直接在Y'Cb'Cr'中进行平均你将获得的结果是相同的。我们现在只需示出在R'G'B'中的二次采样有利于深颜色。
考虑两种RGB颜色(1000,200,0)和(10,200,0)。第一个颜色很红,并且第二个颜色很绿。然而,第一个颜色比第二个颜色更明亮得多。如果在某个距离查看,以便它们模糊成一个颜色,则净效应将是微红像素,因为½[(1000,200,0)+(10,200,0)]=(505,200,0),与绿色相比,这更多是红色。然而,在R'G'B'中,所述两个颜色得到值(0.7518,0.5791,0)和(0.2997,0.5791,0)。其平均值将是½[(0.7518,0.5791,0)+(0.2997,0.5791,0)]=(0.5258,0.5791,0),这在转换回RGB时是(119,200,0)。因此,在R'G'B'域中进行平均时的所得颜色是绿色几乎是红色的两倍。因此,深颜色(10,200,0)(其为绿色)已对平均值具有过大的影响。
为了解这在实际中看上去能够是怎么样的,考虑只是2×2个像素的小图像,其含有以下线性RGB颜色:
(3.41,0.49,0.12) (0.05,0.08,0.02)
(0.05,0.08,0.02) (0.05,0.08,0.02)
由于这是HDR图像,因此,难以在诸如本文档的低动态范围媒体中来展现它。然而,通过应用以下函数,可能进行几次LDR曝光:
LDR_red = clamp(0,255*(HDR_red*2cgam,255),
其中c从-3变化到1,gam=0.45,并且clamp(a,t,b)确保值t在[a,b]之间。这能够称为HDR图像的LDR“曝光”。
HDR像素很暗 - 最高系数是4000中的3.41,因此,最暗曝光此处是最相关的。顶部左像素是微红色的,并且周围像素看上去是黑的。仅在更明亮曝光中,可能看到暗像素实际上有点微绿。
然而,在采用锚处理链以从RGB转换成Y'Cb'Cr' 420并且再次转回时,结果HDR图像将是
(1.14,0.79,0.38) (0.12,0.06,0.01)
(0.12,0.06,0.01) (0.12,0.06,0.01)
此处的问题是顶部左像素的红色已消失,并且已被替换成灰色/白色像素。原因是在非线性Y'Cb'Cr'域中的平均有利于暗颜色,这将使所得的像素过度绿。此外,由于有三个绿像素和只有一个红像素,结果将仍是更绿。结果与原图不太相似。
相比之下,在下面能够看到此附件中提议的解决方案的结果。颜色更接近原始色,特别是在相关第一次曝光中和在重要的顶部左像素(其现在更加微红)中。注意,通常不可能在所有四个像素中得到完美的颜色,因为色度被二次采样,因此甚至所提议的Ajustc方法将不生成完美的颜色。不过,颜色保真度得以大幅改善。
(2.26,0.90,0.49) (0.20,0.02,0.00)
(0.20,0.02,0.00) (0.20,0.02,0.00)
在已经校正luma值Y'后,差不多可能获得所期望的亮度Y。然而,由于一些色度信息在luma中携带,因此,改变Y'也将影响像素的色度。这意味着虽然像素的亮度值通过Y'的校正而改善,但与锚处理链相比,其色度可能退化,采用这个来开始是相当差的。最终结果可能是极差的色度。
实施例涉及视频序列的图片的至少一个像素的视频编码和处理。处理是编码或编码步骤的一部分的预处理。
实施例提议了在处理视频序列的像素时到达二次采样的chroma样本Cb'和Cr'的新颖方式。
根据现有技术进行的锚链使用以下过程:
RGB 4:4:4
Figure DEST_PATH_IMAGE041
R'G'B' 4:4:4
Figure 686630DEST_PATH_IMAGE041
Y'Cb'Cr' 4:4:4 –Cb'和Cr'的二次采样
Figure 714628DEST_PATH_IMAGE041
Y'Cb'Cr' 4:2:0,
其中从4:4:4(即,用于所有颜色分量的全分辨率)到4:2:0(即,在垂直和水平两个方向上二次采样的chroma分量)的二次采样是在链的最后步骤中进行。
根据实施例,提议了以下过程:
RGB 4:4:4 –RGB的二次采样
Figure 896211DEST_PATH_IMAGE041
RGB 2:2:2
Figure 85884DEST_PATH_IMAGE041
R'G'B' 2:2:2
Figure 48024DEST_PATH_IMAGE041
Y'Cb'Cr' 2:2:2
其中二次采样转而是链的第一部分,并且在线性域中被执行。此处,我们使用了项2:2:2来指示所有三个样本在x维和y维中均处在一半分辨率。这样,我们未得到全分辨率Y'分量,因为在最后步骤中的Y'分量是2:2:2,即,在两个方向上为一半分辨率。通过以下处理步骤,克服了此问题:
RGB 4:4:4 --> XYZ 4:4:4 --> Y 4:4:4 --------------------------------+-----> Y'=Ajusty(Y4:4:4,Cb'Cr'4:4:4)
Y'Cb'Cr' 2:2:2 -> Cb'Cr' 2:2:2 –上采样--> Cb'Cr' 4:4:4-----/
其中Y 4:4:4是XYZ 4:4:4的亮度分量,并且Cb'Cr' 4:4:4是Y'Cb'Cr'的chroma分量。简而言之,通过先将RGB 4:4:4转换到XYZ 4:4:4,然后使用Y 4:4:4来找到目标亮度Y4:4:4。随后通过将Y'Cb'Cr' 2:2:2上采样到4:4:4,并且使用Cb'Cr' 4:4:4,我们得到Cb'Cr' 4:4:4。最后,Ajusty方法在Y 4:4:4和Cb'Cr' 4:4:4上进行使用以查找最佳Y' 4:4:4。
在一备选实施例中,可能进行以下操作以获得Y':
RGB 4:4:4 --> R'G'B' 4:4:4 --> Y'Cb'Cr' 4:4:4 --> Y' 4:4:4.
然而,这可在一般情况下产生错误的Y亮度。
一旦已经到达Y'Cb'Cr'420表示,如图24中所示,在(G)中找到Y'分量和在(D)中找到Cb'Cr'分量,便可能进一步改进它。原因是不是全分辨率的每个Cb'值将用于几个Y'值。然而,由于Y'Cb'Cr'空间的非线性性质,改变Y'分量将不但影响像素的亮度,而且影响色度。一旦一个Y'值将给出正确的色度,即,来自我们丢弃的Y'Cb'Cr' 2:2:2的Y',并且如果我们偏离此值,则色度将稍微移位。一些像素将比Y' 2:2:2值更大,并且在那些像素中,色度将以一种方式移位。一些其它像素将比Y' 2:2:2值更小,并且它们的色度将以相反的方式移位。由于涉及到非线性,这些移位不可消除。因此,以聚合色度已移位的方式相反的方式校正Cb'可以是有利的。因此,第二部分是执行此类校正。
通过在转换到Y'Cb'Cr前在线性空间中的二次采样,我们能够得到与锚过程相比,更好地反映在场景中的真正彩度的chroma样本。然而,在链中早期的二次采样意味着我们需要以某一其它方式提出Y'分量。这在给定Cb'和Cr'的条件下,通过使用Ajusty方法来使用Y'匹配给定亮度Y而被解决。
另一方面,Cb'和Cr'样本被进一步精炼以抵消在低分辨率Y'分量被替换成高分辨率Y'分量时发生的移位。这进一步改善了颜色保真度。
在还有的另一方面,在Ajusty方法后的Y'样本被向在Ajusty方法前的Y'值修改(如果这减小了在非亮度的另一度量中的误差而不造成亮度的任何视觉降级的话)。
图24-26中描述了提议的方法。输入是在线性RGB中的高分辨率图像。在这些图中,出于说明的目的,我们具有2×2个像素的图像,但实际图像当然更大得多。
下面描述的实施例能够被组合或单独使用。
第一实施例 - 查找用于Y'和Cb'Cr'的良好值
1. 第一步骤是对RGB图像(A)进行二次采样以获得(B),其中在x和y维两者中均进行二次采样。
2. 接着,通过先应用非线性传递函数TF(.)以获得R'G'B'(C),并且随后将此转换成Y'Cb'Cr'(保留Cb'Cr'(D)),我们创建Cb'Cr'系数的第一版本。现在我们具有在正确的低分辨率中的Cb'Cr'。
3. 为也得到在正确的高分辨率中的Y',我们需要用于每个像素的参考线性亮度Y。通过将全分辨率RGB输入(A)转换成XYZ,并且保留Y(E),我们得到参考线性亮度Y。
4. 我们也对Cb'Cr'(F)进行上采样。我们现在能在Y(E)和Cb'Cr'(F)上使用AJUSTY以得到Y'(G)。
5. 输出现在是Cb'Cr(D)和Y'(G)。
第二实施例 - 改善用于Y'和Cb'Cr'的值
在此实施例中,通过在对强度不变的表示中进行上采样导出的Cb'Cr'与来自第一实施例的上采样的Cb'Cr'之间的差,更新来自第一实施例的Cb'Cr'。更新的Cb'Cr'随后与线性亮度Y一起用于使用ADJUSTY导出新Y'值。所有步骤在下面示出并且也在图24-26中被指示。
第一步:
1. 为改善所述值,我们先需要创建一些参考。我们通过与(A)相同的线性RGB输入(A')开始。第一参考只是全分辨率线性亮度Y,其通过将RGB(A')转换到XYZ,并且丢弃XZ和保留Y(F')而获得。这与(E)相同。
2. 随后,我们将RGB(A')二次采样到(B'),其与(B)相同。
3. 下一步是将RGB(B')转换到XYZ,并且随后到xyz,其中丢弃z并保留xy(C')。
4. xy值随后被上采样,并且与Y(F')组合以形成Yxy(D')。
5. 每个Yxy值(D')随后被转换回XYZ,然后到RGB,然后到R'G'B',并且最后到Y'Cb'Cr'(E')。这是第二参考。
第二步:迭代。
1. 我们利用Cb'Cr'数据(H)。如果我们是在第一次迭代中,则这与(D)相同。如果我们是在第k次迭代中,则这与用于第k-1次迭代的(M)相同。我们对(H)进行上采样以得到(I)。
2. 我们得到Y'Cb'Cr'参考(J),其与(E')相同,并且丢弃Y',保留用于每个像素的Cb'和Cr'。随后,从(I)中提取Cb'和Cr',从而获得(K),其是在每个像素中的差Cb'Cr'。
3. 在(K)中的差信号随后被二次采样(L),并且随后被加到(H)中的Cb'Cr'信号,产生Cb'Cr'(M)的更新版本。
4. 我们现在只需要在正确分辨率的Y'。我们通过将Cb'Cr'(M)上采样到更高分辨率(N)来进行此操作。与Y参考(F')一起,上采样的Cb'Cr'(N)由AJUSTY用于产生Y'(O)。输出现在是Cb'Cr'(M)和Y'(O)。
应注意的是,在我们说“将RGB转换成XYZ,并且保留Y”时,经常不必转换所有三个分量,并且随后只保留一个分量。一般在这些情况下,可能只计算我们想保留的一个分量是可能的。我们已使用这种撰写方式来强调我们指的是来自XYZ的Y,而不是来自Y'Cb'Cr'的Y'。
在一备选实施例中,“查找用于Y'和Cb'Cr'的良好值”被替代成锚处理链;RGB 4:4:4 -> R'G'B' 4:4:4 -> Y'Cb'Cr' 4:4:4 ->对Y'Cb'Cr' 4:2:0进行上采样。随后,每次迭代必须通过利用Y'Cb'Cr' 4:2:0 - 对Cb'和Cr'进行上采样 ->Y'Cb'Cr' 4:4:4 -> R'G'B' 4:4:4 -> RGB 4:4:4 -> XYZ 4:4:4 -> Y 4:4:4来创建新参考Y。随后在(D')而不是(F')中使用此Y。这将不会创建良好的亮度,但在例如由于复杂性原因,您想在开始保持锚处理链完整时,这能够在某些情况下是良好的。
应清楚的是,任何目标图像能够被使用。在上述内容中,我们使用具有某个色度的目标图像,其先在RGB中被二次采样,并且随后被转换到xy,与来自未二次采样的RGB的亮度Y一起被转换到XYZ。然而,使用另一目标图像将同样是简单的。作为示例,我们可想先将图像从RGB转换到XYZ,并且随后到xy,以及随后对于此进行二次采样以得到二次采样的xy。这能够与相同亮度Y进行组合。如果您想不考虑光明度而保留色度,此特定实施例将是良好的。也能够使用其它目标图像。
自适应二次采样
在另一实施例中,在上述实施例中的二次采样由自适应过滤器组成,该自适应过滤器被优化以减小根据人类视觉在表示空间中的误差。
Cb' Cr'迭代精炼
在另一实施例中,修改Cb'和Cr'之一或两者,以得到在原始表示空间(或根据人类视觉的表示空间)中的更佳表示。修改能够通过迭代测试而被执行,以修改Cb'或Cr'值+1或-1,并且随后上采样Cb'和Cr'的修改的值和未修改的值,转换到R'G'B',应用非线性传递函数,并且转换到根据人类视觉的表示空间。如果对于类似于用于Cb'的Z和用于Cr'的X的chroma特定颜色分量表示空间(不是亮度)中的空间区域,修改的Cb'/Cr'产生更小的绝对或平方误差,则选择该修改。该空间区域与上采样过滤器的大小有关。如果双线性过滤器用于4:2:0 Cb'或Cr'精炼到4:4:4的上采样,则该区域的大小在水平上为3且在垂直上为4。如果4抽头过滤器用于上采样,则该区域的大小在水平上为7且在垂直上为8。也能够根据修改的值能够如何影响在4:4:4中3×4或7×8相邻样本中的每个或者仅仅只是包含该区域的中心部分(3×2),来对误差进行加权。
Cb'Cr'初始化
在另一实施例中,Cb'或Cr'精炼的大小被初始化成在要修改的样本周围的中心3×2区域中ajusty的平均值的大小。在类似于用于Cb'的Z和用于Cr'的X的chroma特定颜色分量表示空间(不是亮度)中的精炼前,通过利用来自误差的平均值的符号,导出Cb'或Cr'精炼的符号。因此,Cb'精炼的初始值是Cb'+符号(误差)*abs(average(调整前的Y'-调整后的Y')/N)。其中N大约为2。如果对于在类似于用于Cb'的Z的chroma特定颜色分量表示空间(不是亮度)中的空间区域,修改的Cb'产生更小的绝对或平方误差,则选择该修改。如果为Cr'应用该方法,则类似适用。在另一实施例中,Cb'或Cr'精炼的大小被初始化成在要修改的样本周围在中心3×2区域中在4:4:4中Cb'或Cr'的平均值。因此,Cb'精炼的初始值是average(在4:4:4中的Cb')。如果对于在类似于用于Cb'的Z的chroma特定颜色分量表示空间(不是亮度)中的空间区域,修改的Cb'产生更小的绝对或平方误差,则选择该修改。如果为Cr'应用该方法,则类似适用。
Y'精炼
在另一实施例中,通过Ajusty方法进行的Y'到Ymod'的调整通过朝向Y'的一个步骤来被修改(如果这减小在类似于XYZ中的Z(非亮度外的度量)的chroma特定颜色分量表示空间中的误差,同时在亮度Y中不造成任何视觉降级的话)。除了在chroma特定颜色表示空间中改善性能外,这在一些情况下还能够使编码Y'更容易。
此附件中的某些实施例描述了从RGB 4:4:4到Y'Cb'Cr' 4:2:0的转换,其中chroma分量在垂直和水平两个方向上均被二次采样。实施例的方法当然将在从RGB 4:4:4转换到例如Y'Cb'Cr' 4:2:2(其中仅在水平方向上已对chroma分量二次采样)的另一二次采样的Y'Cb'Cr'格式时同样有效。另外,也将可能仅对chroma分量之一进行二次采样。
上述实施例要理解为本发明的几个说明性示例。本领域的技术人员将理解,在不脱离本发明范围的情况下,可对实施例进行各种修改、组合和改变。具体地说,不同实施例中的不同部分解决方案能够在技术上可能的情况下被组合在其它配置中。然而,本发明的范围由随附权利要求定义。
参考文献
[1]Society of Motion Picture and Television Engineers, ST 2084:2014.High Dynamic Range Electro-Optical Transfer Function of MasteringReference Displays
[2]International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2014/N14548, July 2014,Sapporo, Japan, Luthra et al., Test sequences and anchor generation for HDRand Wide Gamut Content Distribution
[3]International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2013/M35255, October 2014,Strasbourg, France, Francois et al., About using a BT.2020 container forBT.709 content
[4]https://wg11.sc29.org/svn/repos/Explorations/XYZ/HDRTools/branches/0.9-dev
[5]International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2014/N15083, February 2015,Geneva, Switzerland, Luthra et al., Call for Evidence (CfE) for HDR and WCGVideo Coding。

Claims (34)

1.一种预处理图片中像素的方法,所述方法包括:
基于用于所述像素的最小颜色分量值,确定(S1)是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的至少一个。
2.根据权利要求1所述的方法,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括如果所述最小颜色分量值低于阈值,则选择(S1)所述辅助处理链,以及否则选择所述默认处理链。
3.根据权利要求1所述的方法,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括基于用于所述像素的所述最小颜色分量值和最大颜色分量值,确定(S1)是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否所述辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个。
4.根据权利要求3所述的方法,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括基于在所述最大颜色分量值或其加权版本与1)所述最小颜色分量值或其加权版本,或2)所述最小颜色分量值或其所述加权版本与某个常数的和之间的商,确定(S1)是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否所述辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个。
5.根据权利要求4所述的方法,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括如果所述商超过阈值,则选择(S1)所述辅助处理链,以及否则选择所述默认处理链。
6.根据权利要求5所述的方法,进一步包括:
按照
Figure DEST_PATH_IMAGE001
计算(S10)函数值,其中max表示所述最大颜色分量值或其所述加权版本,min表示所述最小颜色分量值或其所述加权版本,并且s是所述常数;以及
比较(S11)所述函数值和所述阈值。
7.根据权利要求4或5所述的方法,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括:
在查找表中输入(S20)用于所述像素的颜色分量值,所述查找表配置成如果所述商超过阈值,则输出第一值,以及否则输出第二值;
如果从所述查找表输出的值等于所述第一值,则选择(S21)所述辅助处理链;以及
如果从所述查找表输出的所述值等于所述第二值,则选择(S21)所述默认处理链。
8.根据权利要求1到6中任一项所述的方法,进一步包括:
使用所述默认处理链,导出(S30)所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括基于所述最小颜色分量值,确定(S31)是否所述默认处理链用于导出所述luma分量值,或者是否第一辅助处理链用于导出所述luma分量值。
9.根据权利要求1到6中任一项所述的方法,进一步包括:
使用所述默认处理链,导出(S40)所述luma分量值,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括基于所述最小颜色分量值,确定(S41)是否所述默认处理链用于导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否第二辅助处理链用于导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
10.根据权利要求1到6中任一项所述的方法,其中确定(S1)是使用所述默认处理链还是所述辅助处理链包括基于所述最小颜色分量值,确定(S50)是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否第一辅助处理链用于导出所述luma分量值,并且第二辅助处理链用于导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
11.根据权利要求1到6中任一项所述的方法,其中所述默认处理链包括:
对第一颜色空间中的线性颜色应用(S60)第一传递函数,以获得所述第一颜色空间中的非线性颜色;
对所述第一颜色空间中的所述非线性颜色应用(S61)第一颜色变换,以获得第二颜色空间中的所述luma分量值和两个chroma分量值;以及
对所述第二颜色空间中的所述两个chroma分量值进行二次采样(S62),以获得所述第二颜色空间中的所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
12.根据权利要求8所述的方法,其中所述第一辅助处理链包括:
获得(S70)基于第一颜色空间中所述像素的线性颜色所确定的第三颜色空间中所述像素的原始线性亮度分量值;以及
基于第二颜色空间中的两个chroma分量值和所述第三颜色空间中的所述原始线性亮度分量值,导出(S71)所述第二颜色空间中的所述luma分量值。
13.根据权利要求9所述的方法,其中所述第二辅助处理链包括:
对第一颜色空间中的线性颜色进行二次采样(S80),以获得所述第一颜色空间中的二次采样的线性颜色;
对所述第一颜色空间中的所述二次采样的线性颜色应用(S81)第一传递函数,以获得所述第一颜色空间中的二次采样的非线性颜色;以及
对所述第一颜色空间中的所述二次采样的非线性颜色应用(S82)第一颜色变换,以获得第二颜色空间中的所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
14.一种对图片中像素进行编码的方法,所述方法包括:
根据权利要求1到13中任一项来预处理(S1)所述像素,以导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值;以及
对所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值进行编码(S2)。
15.一种用于预处理图片中像素的装置(100,110),其中
所述装置(100,110)配置成基于用于所述像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的至少一个。
16.根据权利要求15所述的装置,其中所述装置(100,110)配置成如果所述最小颜色分量值低于阈值,则选择所述辅助处理链,以及否则选择所述默认处理链。
17.根据权利要求15所述的装置,其中所述装置(100,110)配置成基于用于所述像素的所述最小颜色分量值和最大颜色分量值,确定是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否所述辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个。
18.根据权利要求17所述的装置,其中所述装置(100,110)配置成基于在所述最大颜色分量值或其加权版本与1)所述最小颜色分量值或其加权版本,或2)所述最小颜色分量值或其所述加权版本与某个常数的和之间的商,确定是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否所述辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个。
19.根据权利要求18所述的装置,其中所述装置(100,110)配置成如果所述商超过阈值,则选择所述辅助处理链,以及否则选择所述默认处理链。
20.根据权利要求19所述的装置,其中
所述装置(100,110)配置成按照
Figure DEST_PATH_IMAGE002
计算函数值,其中max表示所述最大颜色分量值或其所述加权版本,min表示所述最小颜色分量值或其所述加权版本,并且s是所述常数;以及
所述装置(100,110)配置成比较所述函数值和所述阈值。
21.根据权利要求18或19所述的装置,其中
所述装置(100,110)配置成在查找表中输入用于所述像素的颜色分量值,所述查找表配置成如果所述商超过阈值,则输出第一值,以及否则输出第二值;
所述装置(100,110)配置成如果从所述查找表输出的值等于所述第一值,则选择所述辅助处理链;以及
所述装置(100,110)配置成如果从所述查找表输出的所述值等于所述第二值,则选择所述辅助处理链。
22.根据权利要求15到20中任一项所述的装置,其中
所述装置(100,110)配置成使用所述默认处理链,导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值;以及
所述装置(100,110)配置成基于所述最小颜色分量值,确定是否所述默认处理链用于导出所述luma分量值,或者是否第一辅助处理链用于导出所述luma分量值。
23.根据权利要求15到20中任一项所述的装置,其中
所述装置(100,110)配置成使用所述默认处理链,导出所述luma分量值;以及
所述装置(100,110)配置成基于所述最小颜色分量值,确定是否所述默认处理链用于导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否第二辅助处理链用于导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
24.根据权利要求15到20中任一项所述的装置,其中所述装置(100,110)配置成基于所述最小颜色分量值,确定是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否第一辅助处理链用于导出所述luma分量值,并且第二辅助处理链用于导出所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
25.根据权利要求15到20中任一项所述的装置,其中
所述装置(100,110)配置成根据所述默认处理链,对第一颜色空间中的线性颜色应用第一传递函数,以获得所述第一颜色空间中的非线性颜色;
所述装置(100,110)配置成根据所述默认处理链,对所述第一颜色空间中的所述非线性颜色应用第一颜色变换,以获得第二颜色空间中的所述luma分量值和两个chroma分量值;以及
所述装置(100,110)配置成根据所述默认处理链,对所述第二颜色空间中的所述两个chroma分量值进行二次采样,以获得所述第二颜色空间中的所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
26.根据权利要求22所述的装置,其中
所述装置(100,110)配置成根据所述第一辅助处理链,获得基于第一颜色空间中所述像素的线性颜色确定的第三颜色空间中所述像素的原始线性亮度分量值;以及
所述装置(100,110)配置成根据所述第一辅助处理链,基于第二颜色空间中的两个chroma分量值和所述第三颜色空间中的所述原始线性亮度分量值,导出所述第二颜色空间中的所述luma分量值。
27.根据权利要求23所述的装置,其中
所述装置(100,110)配置成根据所述第二辅助处理链,对第一颜色空间中的线性颜色进行二次采样,以获得所述第一颜色空间中的二次采样的线性颜色;
所述装置(100,110)配置成根据所述第二辅助处理链,对所述第一颜色空间中的所述二次采样的线性颜色应用第一传递函数,以获得所述第一颜色空间中的二次采样的非线性颜色;以及
所述装置(100,110)配置成根据所述第二辅助处理链,对所述第一颜色空间中的所述二次采样的非线性颜色应用第一颜色变换,以获得第二颜色空间中的所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值。
28.根据权利要求15到20中任一项所述的装置,进一步包括:
处理器(111);以及
存储器(112),其包括由所述处理器(111)可执行的指令,其中
所述处理器(111)操作以基于所述最小颜色分量值,确定是否所述默认处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者是否所述辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个。
29.一种用于预处理图片中像素的装置(120),所述装置(120)包括:
确定单元(121),用于基于用于所述像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的至少一个;以及
导出器(122),用于根据所述默认处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者根据所述辅助处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个。
30.一种用于对图片中像素进行编码的装置(110),所述装置(110)包括:
处理器(111);以及
存储器(112),其包括由所述处理器(111)可执行的指令,其中
所述处理器(111)操作以基于用于所述像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的至少一个;
所述处理器(111)操作以根据所述默认处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者根据所述辅助处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个;以及
所述处理器(111)操作以对所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值进行编码。
31.一种用于对图片中像素进行编码的装置(120),所述装置(120)包括:
确定单元(121),用于基于用于所述像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的至少一个;
导出器(122),用于根据所述默认处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者根据所述辅助处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个;以及
编码器(123),用于对所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值进行编码。
32.一种包括根据权利要求15到31中任一项的装置(100,110,120)的用户设备(5,200),其中所述用户设备(5,200)从由计算机、膝上型计算机、智能电话、平板及机顶盒组成的群组来进行选择。
33.一种包括指令的计算机可读介质,所述指令在由处理器(210)执行时促使所述处理器(210)基于用于图片中像素的最小颜色分量值,确定是否默认处理链用于导出luma分量值、第一二次采样的chroma分量值和第二二次采样的chroma分量值,或者是否辅助处理链用于导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的至少一个。
34.根据权利要求33所述的计算机可读介质,其中所述计算机可读介质进一步包括指令,所述指令在由所述处理器(210)执行时促使所述处理器(210)来:
根据所述默认处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值,或者根据所述辅助处理链,导出所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值中的所述至少一个;以及
对所述luma分量值、所述第一二次采样的chroma分量值和所述第二二次采样的chroma分量值进行编码。
CN201680045853.4A 2015-06-05 2016-05-02 像素预处理和编码 Active CN107925778B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562171747P 2015-06-05 2015-06-05
US62/171,747 2015-06-05
PCT/SE2016/050383 WO2016195567A1 (en) 2015-06-05 2016-05-02 Pixel pre-processing and encoding

Publications (2)

Publication Number Publication Date
CN107925778A CN107925778A (zh) 2018-04-17
CN107925778B true CN107925778B (zh) 2021-01-26

Family

ID=57441338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680045853.4A Active CN107925778B (zh) 2015-06-05 2016-05-02 像素预处理和编码

Country Status (5)

Country Link
US (1) US10674182B2 (zh)
EP (1) EP3304913A4 (zh)
CN (1) CN107925778B (zh)
BR (1) BR112017025604A2 (zh)
WO (1) WO2016195567A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10750173B2 (en) * 2016-03-07 2020-08-18 Koninklijke Philips N.V. Encoding and decoding HDR videos
EP3550842A4 (en) 2016-12-30 2020-06-10 Huawei Technologies Co., Ltd. IMAGE FILTERING METHOD, APPARATUS AND DEVICE
CN111626188B (zh) * 2020-05-26 2022-05-06 西南大学 一种室内不可控明火监测方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7064740B2 (en) 2001-11-09 2006-06-20 Sharp Laboratories Of America, Inc. Backlit display with improved dynamic range
JP5424534B2 (ja) 2007-01-31 2014-02-26 日立コンシューマエレクトロニクス株式会社 画像処理装置および画像表示装置
JP5451319B2 (ja) * 2009-10-29 2014-03-26 キヤノン株式会社 画像処理装置、画像処理方法、プログラム及び記憶媒体
TWI690211B (zh) * 2011-04-15 2020-04-01 美商杜比實驗室特許公司 高動態範圍影像的解碼方法、其處理器非暫態可讀取媒體及電腦程式產品
CN103391416A (zh) * 2012-05-08 2013-11-13 联咏科技股份有限公司 图像处理方法
US9271016B2 (en) * 2013-03-15 2016-02-23 Verimatrix, Inc. Reformatting media streams to include auxiliary data
EP2804378A1 (en) 2013-05-14 2014-11-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Chroma subsampling
US20140376611A1 (en) 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
JP2017512405A (ja) * 2014-02-21 2017-05-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. ビデオのための新たな色空間及びデコーダ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于颜色聚类和多帧融合的视频文字识别方法;易 剑, 彭宇新, 肖建国;《软件学报》;20111231;全文 *

Also Published As

Publication number Publication date
WO2016195567A1 (en) 2016-12-08
EP3304913A1 (en) 2018-04-11
CN107925778A (zh) 2018-04-17
BR112017025604A2 (pt) 2018-08-07
US20190089988A1 (en) 2019-03-21
US10674182B2 (en) 2020-06-02
EP3304913A4 (en) 2019-01-16

Similar Documents

Publication Publication Date Title
CN107210026B (zh) 像素预处理和编码
US11025927B2 (en) Pixel pre-processing and encoding
CN107852513B (zh) 对输入视频序列的像素进行编码
CN107615761B (zh) 用于像素处理和编码的方法、设备和计算机可读介质
CN109479151B (zh) 采用颜色分量的像素处理
CN107925778B (zh) 像素预处理和编码
US10602109B2 (en) Method and arrangements for HDR encoding
AU2016203467A1 (en) Method, apparatus and system for determining a luma value

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1254146

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant