基于局部对比度的图像调整的制作方法

文档序号:30950697发布日期:2022-07-30 07:25阅读:67来源:国知局
基于局部对比度的图像调整的制作方法

1.本公开涉及用于基于局部对比度的色调映射的方法、处理器和计算机可读存储介质。


背景技术:

[0002][0003]
色调映射是一种图像处理技术,用于将一个(输入)图像的颜色映射到另一(输出)图像的颜色。
[0004]
色调映射有时用于满足图像处理介质的不同动态范围。例如,相机的光敏像素可以在某个动态范围内生成一组强度。其他类型的图像处理介质诸如显示器或打印机等可以具有不同的动态范围。可以使用色调映射来转换这些不同动态范围之间的图像强度,使得其适当使用。一种常见的色调映射算法通过将低输入强度范围和高输入强度范围分别映射到相对窄的输出强度范围同时将中间输入强度范围映射到相对宽的输出强度范围来压缩低输入强度范围和高输入强度范围。动态范围的一些示例包括高动态范围“hdr”、标准动态范围“sdr”和低动态范围“ldr”。
[0005]
可以附加地或另选地使用色调映射来提供特定的视觉效果。例如,可以通过调节特别是皮肤色调的颜色来提供更美观的图像。
[0006]
图像可以用多种颜色模型进行编码。一种常见的颜色模型是rgb颜色模型,其根据红色、绿色和蓝色通道中的每一者的强度来限定图像中的每个像素。另一种常见的颜色模型是yuv颜色模型,其根据图像的亮度y和两个色度分量u(对于蓝色投影)和v(对于红色投影)来限定该图像中的每个像素。luma表示亮度或强度。颜色模型yuv、ycbcr和ypbpr也根据亮度和色度分量表示像素,并且也通常用于对彩色图像进行编码。
[0007]
通常,色调映射可能因此涉及调节图像中像素或子像素的强度和/或色度,以产生改进的输出。


技术实现要素:

[0008]
根据本公开的第一方面,提供了一种用于生成用于由处理器处理的混合强度数据的方法,该方法包括以下步骤:基于图像数据生成局部对比度映射,该局部对比度映射包括多个对比度值;通过将α掩膜值关联到每个对比度值来生成α掩膜;使用第一强度计算方法生成第一强度数据并且使用第二强度计算方法生成第二强度数据;通过基于这些α掩膜值相对于该第一强度数据和该第二强度数据中的至少一者进行混合来生成该混合强度数据;以及将该混合强度数据输出到处理器。
[0009]
根据本公开的第二方面,提供了一种用于生成用于由另一处理器处理的混合强度数据的处理器,该处理器包括:输入模块,该输入模块用于获得图像数据;对比度图像生成模块,该对比度图像生成模块用于基于图像数据生成局部对比度映射,该局部对比度映射包括多个对比度值;α掩膜生成模块,该α掩膜生成模块用于通过将α掩膜值关联到每个对比
度值来生成α掩膜;强度数据生成模块,该强度数据生成模块用于使用第一强度计算方法生成第一强度数据并且使用第二强度计算方法生成第二强度数据;混合强度数据计算模块,该混合强度数据计算模块用于通过基于α掩膜值相对于第一强度数据和第二强度数据中的至少一者进行混合来生成混合强度数据;和输出模块,该输出模块用于将该混合强度数据输出到该另一处理器。
[0010]
根据本公开的第三方面,提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括存储在其上的一组计算机可读指令,这些指令当由至少一个处理器执行时使该至少一个处理器生成混合强度数据以用于由另一处理器处理,这些指令包括:基于图像数据生成局部对比度映射,该局部对比度映射包括多个对比度值;通过将α掩膜值关联到每个对比度值来生成α掩膜;使用第一强度计算方法生成第一强度数据并且使用第二强度计算方法生成第二强度数据;通过基于这些α掩膜值相对于该第一强度数据和该第二强度数据中的至少一者进行混合来生成该混合强度数据;以及将该混合强度数据输出到该另一处理器。
附图说明
[0011]
通过以下参照附图给出的仅以举例的方式给出的优选实施方案的描述,其他特征和优点将变得显而易见,其中类似的附图标记用于表示类似的特征。
[0012]
图1是根据示例的用于生成混合强度数据的方法的流程图;
[0013]
图2是根据示例的范围过滤器和图像数据的表示;
[0014]
图3是根据示例的局部对比度映射的表示;
[0015]
图4是根据示例的α掩膜图的示意图;
[0016]
图5是根据示例的生成用于输出的混合强度数据的示意图;
[0017]
图6是根据示例的用于生成混合强度数据的处理器的示意图;并且
[0018]
图7是根据示例的系统的示意图。
具体实施方式
[0019]
根据示例的方法和装置的细节将从以下参考附图的描述中变得显而易见。在本说明书中,出于解释的目的,阐述了某些示例的许多具体细节。本说明书中对“示例”或类似语言的引用意指结合该示例描述的特征、结构或特性包括在至少该一个示例中,但不一定包括在其他示例中。还应当注意,示意性地描述了某些示例,其中省略了某些特征并且/或者必须简化了某些特征,以便于解释和理解示例所基于的概念。
[0020]
色调映射在消费媒体、计算机视觉和机器学习等不同领域有多种用途,并且为若干系统诸如图像处理、汽车应用和数字媒体的主要功能。色调映射通常涉及强度数据计算方法的具体实施,这些强度数据计算方法可以用于使用rgb颜色模型或其他适当的颜色模型,诸如raw或yuv来创建图像的灰度表示。这通常用于根据人类视觉系统通知图像的感知亮度,同时还提供降维,从而降低计算复杂度。
[0021]
如前所述,强度计算算法都具有其相应的优点和缺点。例如,使用方法诸如maxrgb创建强度数据,将每个像素替换为其颜色通道的最大值,保持对每个像素的峰值的了解。这可以允许强度计算算法对源图像应用修改,并且对峰值的了解可以减轻不想要的影响,诸
如色移、剪裁或伪影。其他强度数据计算方法,诸如luma强度计算方法,将每个像素值替换为其相应颜色通道的加权平均值(也称为亮度)。这不太容易受到噪声尖峰的影响,并且客观上更准确地描述了人类视觉系统。应当理解,当生成强度数据时,可以使用其他强度数据计算方法。
[0022]
考虑到每种方法以及用于产生强度数据的其他方法都有其不同的优点和缺点,因此希望对图像数据的不同部分使用不同的方法以获得最佳的整体强度数据输出。动态选择使用哪种方法可以改善强度数据输出的整体质量,并且可以通过使用局部对比度值来辨别哪种方法最适合来实现。
[0023]
图1是根据示例的用于生成混合强度数据的方法100的流程图。在项110处,生成包括多个对比度值的局部对比度映射,每个对比度值表示输入图像数据的单个像素。可以从一个或多个传感器接收输入图像,例如被配置成捕获周围图像的视觉数据的相机。另选地,在一些示例中,图像数据存储在与系统相关联的存储器上,并从该存储器中检索以供处理器处理,该处理器被配置成实现如下文将进一步详细描述的方法。
[0024]
图像数据可以采用若干形式。例如,图像数据可以使用rgb颜色模型、yuv颜色模型、raw颜色模型或任何其他适当的颜色模型。应当理解,也可以使用其他类型的图像数据,诸如以给定文件格式(诸如jpeg、png或gif)处理的图像文件。
[0025]
在一个示例中,在项110处生成局部对比度映射可能涉及使用基于其周围像素邻域的峰值与谷值之间的差值来生成图像数据的表示。这涉及使用作为非线性过滤操作的范围过滤器,并且将在下面结合图2进一步详细描述。通过生成局部对比度映射,改善了辨别和/或指示特定区域与其灰度等效值的差异的能力。例如,如果所有三个颜色通道都表示相同或相似的数值,则图像数据区域(如rgb图像数据)可被定义为具有小的局部对比度。相反地,如果图像数据区域具有包含显著大于或小于其对应物的值的一个或多个通道,则该区域可能具有大的局部对比度。因此,局部对比度映射中较大对比度值的区域对转换为灰度更具挑战性。局部对比度映射的示例在图3中示出,并且将在下面进一步详细描述。
[0026]
在项110处生成局部对比度映射之后,该方法进行到生成α掩膜的项120。α掩膜包括上阈值和下阈值,该上阈值和下阈值用于确定使用这些强度数据计算方法中的哪一种。例如,强度数据计算方法可以是上述maxrgb和luma。
[0027]
第一下阈值可以用于识别局部对比度映射中对比度值的上边界,并且当生成强度数据时,对于对应对比度值达到下阈值的任何像素,可以使用maxrgb方法。类似地,上阈值可以用于识别局部对比度映射中对比度值的下边界,并且当生成强度数据时,对于对应对比度值高于上阈值的任何像素,可以使用luma方法。应当理解,强度数据计算方法可以不同或不同地被应用。例如,上述示例的相反情况可能是正确的,因为luma方法用于对应对比度值达到下阈值的像素,并且maxrgb方法可用于对应对比度值高于上阈值的像素。
[0028]
对于介于上阈值与下阈值之间的对比度值,可以基于两种强度数据计算方法使用混合强度数据,如下文将进一步详细描述。也就是说,α掩膜值限定了第一强度数据和第二强度数据的加权。
[0029]
在生成α掩膜之后,在项130处生成至少第一强度数据和第二强度数据。基于输入图像数据100和强度数据计算方法中的每一者生成第一强度数据和第二强度数据。这使得能够根据项140处的α掩膜选择强度数据的部分以创建混合强度数据。第一强度数据和第二
强度数据的生成可以如图1的方法100中所示顺序发生,然而应了解,强度数据的生成可以与项110和120并行发生。
[0030]
在项140处,在生成强度数据和α掩膜之后,生成混合强度数据。混合强度数据由如α掩膜指示的第一强度数据和第二强度数据中的每一者的部分形成。因此,在给定像素的对比度值低于α掩膜中的下阈值的情况下,使用第一强度数据中的对应像素,并且在给定像素的对比度值高于α掩膜中的上阈值的情况下,使用第二强度数据的对应像素。对比度值介于上阈值与下阈值之间的像素使用第一强度数据和第二强度数据中对应像素的加权组合,由此加权由α掩膜值限定。
[0031]
一旦已经生成混合强度数据,就在项150处输出混合强度数据。混合强度数据的输出可能涉及将混合强度数据存储到存储器,将混合强度数据传递到另一处理器,诸如神经处理单元或图形处理器,或输出混合强度数据进行显示。
[0032]
图2是根据示例的范围过滤器210和图像数据220的表示200。在图2的示例中,范围过滤器210是被布置成根据箭头a和b在图像数据220内的每个像素上滑动的3
×
3窗口,并且产生包括对应于图像数据220中的每个像素的多个对比度值的局部对比度映射。应当理解,范围过滤器210可以是任何n
×
n大小的窗口。
[0033]
范围过滤器210被布置成逐像素地在图像数据220上滑动,使得当范围过滤器210定位在给定像素上时,与像素x0相关联的对比度值基于该范围过滤器覆盖的区域内的最大和最小像素值之间的差值。因此,对于像素x0,为像素x0、x1、y0和y1的像素值的最大值与最小值之间的差值。
[0034]
这些像素值可以基于每个像素的颜色值。例如,如果图像数据220是使用rgb颜色模型的图像数据,则可以在范围过滤器210覆盖的所有像素上平均这些像素中的每个像素的r值、g值和b值,并且计算每个像素之间的差值。如果r值、g值和b值的平均值相同或相似,这意味着存在小的局部对比度,然而,如果它们不同,则这可能表示较大的局部对比度。
[0035]
范围过滤器210被布置成如箭头a和b所示的那样在图像数据220上逐像素地移动,使得产生包括与图像数据22的每个像素相关联的对比度值的局部对比度映射。图3中示出了这种局部对比度映射的示例。
[0036]
图3是根据示例的局部对比度映射300的表示。局部对比度映射300包括对应于图像数据(诸如图2的图像数据220)的像素的像素。在图3的示例性局部对比度映射300中,与图像数据的每个像素相关联的对比度值在0到1的范围内,其中0表示低局部对比度—也就是说,由范围过滤器覆盖的区域中的最大值与最小值之间的差值低,并且其中1表示区域中的高局部对比度。0与1之间的值表示低局部对比度与高局部对比度之间的中间对比度。应当理解,对比度值的范围可以存在于比图3中描绘的0到1范围更大的范围内。
[0037]
图4是根据示例的α掩膜图400的示意图。α掩膜图400用于指示当基于局部对比度映射(诸如图3中所示的局部对比度映射300)生成混合强度数据的给定部分时可以使用两种方法中的哪一种,并且根据关于图2所描述的方法生成。
[0038]
α掩膜图400包含至少三个部分,即第一部分410、第二部分420和第三部分430。每个部分基于在局部对比度映射300中指示的相关联对比度值来指示哪些强度数据用于给定区域。第一部分410与第二部分420之间的边界由第一下阈值415指示,并且第二部分420与第三部分430之间的边界由第二上阈值425指示。
[0039]
α掩膜图400的第一部分410指示对于局部对比度映射300的给定部分使用第一强度数据440。第一强度数据440用于指示混合强度数据的区域(未示出),其中局部对比度映射300中的对应区域具有低于下阈值415的对比值。
[0040]
类似地,α掩膜图400的第三部分430指示对于局部对比度映射300的给定部分使用第二强度数据450。第二强度数据450用于指示混合强度数据的区域(未示出),其中局部对比度映射300中的对应区域具有高于上阈值425的对比度值。
[0041]
α掩膜图400的第二部分420用于指示使用第一强度数据440与第二强度数据450之间的混合。例如,如图4所示,其中局部对比度映射300中的对比度值具有介于下阈值415与上阈值425之间的值、第一强度数据440与第二强度数据450之间的对应混合。图4中所示的示例400提供了第一阈值415与第二阈值425之间的线性关系,然而应当理解,可以使用其他关系诸如功率曲线、查找表或可调线性方程来提供第一强度数据440与第二强度数据450之间的相关联混合。
[0042]
例如,在局部对比度映射300中的对比度值介于如图3所示的0与1之间的情况下,对比度值0将指示当生成混合强度数据时第一强度数据440用于对应部分,并且对比度值1将指示当生成混合强度数据时第二强度数据450用于对应部分。如果下阈值415为0.2并且上阈值425为0.7,则根据α掩膜图400和第一阈值415与第二阈值425之间指示的关系,局部对比度映射300中局部对比度值介于0.2与0.7之间的部分将使用第一强度数据440和第二强度数据450的混合。在此示例中,将通过将第一强度数据450和第二强度数据450以相关比率组合470来生成中间混合强度数据460。在图4所示的示例中,第一阈值415与第二阈值之间的关系是线性的,因此继续先前的示例性值,如果局部对比度映射300的一部分具有0.5的对比度值,则根据由α掩膜图400限定的α混合策略,中间混合强度数据460可以表示第一强度数据440的50%和第二强度数据450的50%。
[0043]
图5是根据示例的生成用于输出的混合强度数据的示意图500。首先接收图像作为输入510,该图像可以是任何图像类型,并且包括使用rgb、yuv或raw颜色模型的图像数据。基于此输入510,生成对比度图像520,该对比度图像(诸如上文关于图3所描述的对比度图像300)包括多个对比度值。每个对比度值表示输入图像数据中的至少一个像素;然而,每个对比度值可以表示图像数据中的一组像素,具体取决于期望的输出设置。使用n
×
n维度范围过滤器生成对比度值,该过滤器对于每个给定像素指示n
×
n维度范围过滤器区域内的最大值与最小值之间的差值。例如,在输入图像是使用rgb颜色模型的图像的情况下,可以在由范围过滤器覆盖的所有像素上平均这些像素中的每个像素的r值、g值和b值,并且计算每个像素之间的差值。如果r值、g值和b值的平均值相同或相似,这意味着存在小的局部对比度,然而,如果它们不同,则这可能表示较大的局部对比度。局部对比度越小,对比度值越低。也就是说,在图3的示例性局部对比度映射300中,在对比度在0到1的范围内的情况下,局部对比度越小,给定像素的对比度值越接近0,局部对比度越高,给定像素的对比度值越接近1。
[0044]
一旦已经生成局部对比度映射,就生成α掩膜530。α掩膜可以采用若干形式,然而如图4的示例400中所示,α掩膜可以是指示对比度值与使用不同强度数据计算方法生成的强度数据之间的映射的图。α掩膜可以指示对比度值,即图像数据的像素或区域,其中第一强度数据计算方法将产生最期望的结果,以及对比度值,在第二强度数据计算方法将产生
最期望结果的情况下。这些由上阈值和下阈值表示,如上文参考图4所描述。中间值,即上阈值与下阈值之间的值指示用于生成混合强度数据的像素和/或区域的α混合策略,例如通过根据预定义关系诸如功率曲线、查找表或可调线性方程组合由第一强度数据计算方法生成的第一强度数据和由第二强度数据计算方法计算的第二强度数据,可以产生更期望的总体混合强度数据。
[0045]
然后基于由第一强度计算方法550和第二强度计算方法560生成的第一强度数据和第二强度数据以及先前生成的α掩膜和对比度图像来生成540混合强度数据。可以使用第一强度数据计算方法计算550第一强度数据以及与对比度图像和α掩膜的生成基本上并行地计算560第二强度数据,以便加速处理。另选地,可以基本上顺序地计算第一强度数据和第二强度数据。一旦基于第一强度数据和第二强度数据生成540混合强度数据,α掩膜和对比度图像就可以被输出570以用于进一步处理。例如,可以将混合强度数据输出到另一处理器,诸如图像信号处理器、中央处理单元、数字信号处理器、图形处理单元或神经处理单元。混合强度数据也可以输出570到显示器或其他设备以供用户检查,并且在一些示例中,混合强度数据可以写入存储器设备以供将来调用。
[0046]
虽然上文参考图1至图5描述的示例指示仅使用两种强度数据计算方法,但是应当理解,可以使用多于两种强度数据计算方法。在这种情况下,所生成的α掩膜将包括第三阈值和后续阈值,每个阈值指示根据要产生的期望混合强度数据输出使用强度数据计算方法生成的强度数据的使用之间的边界。
[0047]
图6是根据示例的用于生成混合强度数据的处理器600的示意图。处理器600可以包括用于处理输入的多个模块和/或单元。应当理解,处理器600可以是独立处理器或形成系统的一部分,诸如能够进行若干其他任务和进程的片上系统(soc)。
[0048]
处理器600包括被布置成接收图像数据的输入模块610。可以从传感器(诸如相机)或从存储器(诸如与处理器600为其一部分的系统相关联的存储器)接收图像数据。一旦被接收,图像数据就被对比度图像生成模块620使用,该对比度图像生成模块被布置成基于获得的图像数据中的像素数据生成局部对比度映射。局部对比度映射包括表示图像数据的像素和/或区域的多个对比度值。这些对比度值基于与给定像素或区域以及基于n
×
n维度范围过滤器的其周围像素或区域相关联的最大值与最小值之间的差值,如上文参考图2和图3所描述。
[0049]
在生成局部对比度映射之后,由α掩膜生成模块630生成α掩膜。α掩膜生成模块630确定哪些对比度值将与使用两种或更多种强度数据计算方法生成的给定强度数据的应用相关联。α掩膜包括至少上阈值和下阈值,该上阈值和下阈值指示应用给定强度数据的上对比度值和下对比度值,该给定强度数据通过如上文参考图4描述的第一强度数据计算方法和第二强度数据计算方法计算。
[0050]
处理器600还包括强度数据生成模块640。强度数据生成模块使用不同方法生成多个强度数据,例如上述的luma和maxrgb方法。强度数据生成模块640包括用于使用这些方法中的每一种生成强度数据的单个单元。例如,强度数据生成模块640可以包括luma单元642、maxrgb单元644和用于使用其他强度数据计算方法计算强度数据的任何数量的其他单元646。强度数据的生成可以与其他计算顺序或并行发生,即强度数据生成模块640可以独立于处理器600的其他模块运行。
rom”、光盘读/写“cd-r/w”、blu-ray和dvd。
[0057]
上述示例性具体实施应被理解为本发明的例示性示例。还设想了另外的具体实施。例如,关于方法所述的具体实施还可以计算机程序产品、计算机可读存储介质、系统或设备来实现。因此,应当理解,关于任何一个具体实施所述的特征可单独使用,或与所述的其他特征结合使用,并且还可与另一个具体实施的一个或多个特征或与其他具体实施的组合结合使用。此外,在不脱离所附权利要求中限定的本公开的范围的情况下,也可采用上文未描述的等同物和修改形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1