从非凸源域到非凸目标域的色彩映射的方法转让专利

申请号 : CN200880100745.8

文献号 : CN101766019B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 劳伦特·布朗德于尔根·斯托德沃尔夫冈·恩德雷斯

申请人 : 汤姆森特许公司

摘要 :

一种将来自源彩色设备的源色彩映射到目标彩色设备的目标色彩的方法,所述源彩色设备具有通过源凸GBD(域边界描述符)和源非凸GBD表示的实际源域,所述目标彩色设备具有通过目标凸GBD和目标非凸GBD表示的实际目标域,所述方法包括:1-域映射步骤,如果要映射的源色彩位于源非凸GBD之外,则将源色彩映射到源非凸GBD,2-后映射步骤,如果所映射的目标色彩位于目标非凸GBD之外,则将目标色彩映射到目标非凸GBD。此方法允许精确的域映射,同时还允许使用凸域的简单几何运算。

权利要求 :

1.一种将色彩空间中的源色彩映射到目标色彩的方法,所述源色彩来自具有实际源域的源彩色设备,所述目标色彩用于具有实际目标域的目标彩色设备,其中实际源域和实际目标域中的至少一个是非凸的,所述方法包括以下步骤:-为了表示实际源域,创建源凸域边界描述符,并且如果此实际源域是非凸的,则创建被包括在所述源凸域边界描述符中的源非凸域边界描述符,-为了表示实际目标域,创建目标凸域边界描述符,并且如果此实际目标域是非凸的,则创建被包括在所述目标凸域边界描述符中的目标非凸域边界描述符,然后,对于每个要映射的源色彩,

1-如果实际源域是非凸的,并且如果所述源色彩位于所述源凸域边界描述符之内但是位于所述源非凸域边界描述符之外,则将所述源色彩预映射到位于所述源非凸域边界描述符内的预映射的源色彩,

2-将未被预映射的情况下的所述源色彩、或者所述预映射的源色彩主映射到位于所述目标凸域边界描述符内的目标色彩,

3-如果实际目标域是非凸的,并且如果所述主映射的目标色彩位于所述目标非凸域边界描述符之外,则将所述主映射的目标色彩后映射到位于所述目标非凸域边界描述符内的最终目标色彩。

2.根据权利要求1所述的映射方法,其特征在于,所述每个要映射的源色彩位于所述源凸域边界描述符内。

3.根据权利要求1或2所述的映射方法,其特征在于,以与HDMI标准兼容的二进制格式存储所述域边界描述中的每一个。

4.一种用于将所述源彩色设备的依赖于设备的源色彩变换为所述目标彩色设备的依赖于设备的目标色彩的方法,其特征在于,其包括以下步骤:-通过使用与所述源彩色设备相关联的源彩色设备模型来将依赖于设备的源色彩变换为不依赖于设备的源色彩,-根据权利要求1至3中的任一个,将不依赖于设备的源色彩映射到不依赖于设备的目标色彩,-通过使用与所述目标彩色设备相关联的目标彩色设备模型来将不依赖于设备的目标色彩变换为依赖于设备的目标色彩。

说明书 :

从非凸源域到非凸目标域的色彩映射的方法

技术领域

[0001] 本发明涉及彩色设备(color device)的域边界(gamut boundary)的领域,并且更具体地涉及彩色设备的域边界描述的计算。

背景技术

[0002] 因为输入设备和输出设备典型地具有相对于彼此不同的域边界,所以域映射用于在输出彩色设备上再现通过输入彩色设备呈现的图像。换言之,可通过输入设备再现的色彩的域典型地与可通过输出设备再现的色彩的域不同。可以将域映射用于将来自输入设备域边界内的图像呈现到输出设备域边界内,以便在输出设备上更精确地再现彩色图像。 [0003] 通常将术语“色域(color gamut)”或域(gamut)用于描述图像包含或者彩色设备能够呈现的色彩的完整范围。所述术语有时指与打印机或者屏幕显示设备相关联的色域或者域色彩空间。将例如图像域映射到屏幕或者打印机上通常需要调节图像的色彩以适应屏幕或者打印机的受限制的色域。在一些情况下,正被显示的图像不具有宽范围的色彩,因此未填充或者利用打印机域或者甚至屏幕域中的更宽的范围的色彩。在其它情况下,图像中的色彩在显示设备的窄色域之外,但可被在具有更宽的域的彩色打印机上打印。 [0004] 色域可包含可通过特定的显示器或者打印设备再现的、或者可在例如使用特定的介质或者标准时传输或者存储的所有色彩。还可以将色域用于表征在图像或者视频中出现的所有色彩。相机、掌上电脑、蜂窝电话、因特网终端以及数字相框使用YCC、xvYCC、Adobe RGB、bgRGB、scRGB、CIELAB、esRGB或者ROMM数字表示下的特定色域来生成图像。 [0005] 典型地使用作为在域之间映射色彩数据的具体方法的域映射算法(“GMA”)来执行图像数据从源色域到目标色域的域映射。域映射算法经常利用定义输入和输出彩色设备的色域的边界的数据,以便获得用于图像的适当域映射的两个域之间的参考(reference)。这样的定义域色彩边界的数据可以被称为域边界描述(“GBD”)。例如参见US2007/081176。 [0006] 在基于测量的色彩管理系统中,典型地在运行时间计算域边界描述。因此,优选地是:快速计算域边界描述,并且不显著影响诸如存储器之类的系统资源。 [0007] 域边界的一种方便的表示是作为一组凸平面多边形(convex,planarpolygon)。获得这样的一组包围多边形(bounding polygon)的一种众所周知的方法是通过计算与设备的一组色彩样本相关联的不依赖于设备的色彩的凸包(convex hull)。当基于测量的色彩管理系统使用基于测量的色彩简档(profile)时,典型地通过色彩简档提供一组适当的样本值。用于获得用来计算域边界描述的样本值的一种途径是选择设备的依赖于设备的色彩空间中的一组样本值,并且使用源变换将所选择的值转换到不依赖于设备的色彩空间,所述源变换将色彩从依赖于设备的色彩空间转换到不依赖于设备的色彩空间。然后,可以通过取所产生的不依赖于设备的色彩值的凸包来确定域边界描述。
[0008] 为了定义彩色设备的域色彩边界,例如,如在文献US2007/052719和US2007/085855中公开的,可以使用若干个壳(shell),然后形成域边界描述系统(“GBDS”)。
[0009] 尽管存在用于在给出域容量(volume)内的一组样本值的情况下确定该组包围多边形的其它方式,但是凸包是优选的表示。凸域边界的一个近来的例子是Pellegri和Schettini在他们的论文“Gamut boundary determination for acolour printer using the Face Triangulation Method”(2003年在Proceedings ofSPIE vol.5008中发表)中描述的实施。作者假设色彩空间点取决于在至少一个色彩坐标达到其最小或者最大值时的域的表面。对于色彩空间中的这些点,应用三角测量,产生表示GBD的多边形。 [0010] 但是,在大量的情况下,域边界是非凸(凹)表面,并且用于凸包计算的凸性假设(convexity assumption)将导致域容量的过高估计。例如,基于减色原理(subtractive principle)的打印设备经常具有非凸设备域边界。对于计算非凸域边界,已知多种方法。一个典型的参考是Cholewo和Love,他们在他们的题为“Gamut boundary determination using alpha-shapes”的论 文(1999年在 Proceedings of the 7th Color Imaging Conference中发表)中呈现了基于阿尔法形状的域边界描述的算法。参见对应的专利US6480301。使用参数阿尔法,可以生成从凸包到非常好的非凸描述的整个族的形状。 [0011] 图1示出了样本二维域映射算法(GMA)的几何形状,所述域映射算法(GMA)将色彩从具有非凸域边界描述(GBD)的源域(具有参考标号a的线)沿映射线(参考标号c)映射到具有非凸GBD的目标域(具有参考标号b的线)。通常,GMA确定映射线与源和目标GBD的交点,然后确定此映射线上的每种色彩的一维映射函数,所述一维映射函数指示其应当沿此映射线移动多远。但是,如此例子中所示,由于域边界是非凸的,因此在映射线与GBD之间存在多个交点。因此,简单的映射函数将不给出对于此例子的令人满意的结果。此外,由于GMA不仅在目标GBD内移动色彩,而且可能希望满足诸如对比度保持、色调保持以及色彩一致性(homogeneity)保持之类的多个附加条件,因此映射将仍然更加困难。即使沿线映射的非常常见的策略也可能是不适合的。
[0012] 文献WO2007/024494提出了一种用于非凸域的域映射方法,包括以下步骤: [0013] -使用源设备模型将依赖于设备的源色彩变换为不依赖于设备的源色彩。 [0014] -从源非凸域形成源凸域。
[0015] -形成扩展源设备模型,使得所有不依赖于设备的、弯曲的(warped)源色彩填充弯曲的色彩空间中的源凸域。
[0016] 通过此域映射方法,尽管源域实际上是非凸的,但域映射主算法利用源凸域进行运算,然后可以使用简化的几何运算。类似的途径由R.Balasubramanian和E.Dalal在他们的题为“A method for quantifying the colorgamut of an output device”的论文(1997年在Proceedings of SPIE,Volume 3018中发表)中提出。
[0017] 此方法的问题是源域的非凸形状对于在弯曲的色彩空间中进行运算的域映射算法是完全隐藏的。主域映射运算无法访问实际的源色彩值,并且色差也失真。色彩不仅通过主域映射运算修改,而且还利用扩展源设备模型通过形成凸域的预备运算修改。当在不同的系统模块中实施此方法的不同步骤时,扩展源设备模型(包括凸域形成运算)将已经修改的色彩传送给域映射算法,并且系统模块之间的接口定义变得困难。在这样的系统中,将需要在不同的系统组件中实施对于色彩的修改的共同质量准则。

发明内容

[0018] 本发明的一个目标是避免上述缺陷。
[0019] 为此目的,本发明的主题是一种将来自具有实际源域的源彩色设备的色彩空间中的源色彩、映射到用于具有实际目标域的目标彩色设备的目标色彩的方法,其中实际源域和实际目标域中的至少一个是非凸的,所述方法包括以下步骤:
[0020] -为了表示实际源域,创建源凸域边界描述符,并且如果此实际源域是非凸的,则创建源非凸域边界描述符,
[0021] -为了表示实际目标域,创建目标凸域边界描述符,并且如果此实际目标域是非凸的,则创建目标非凸域边界描述符,
[0022] 然后,对于每个要映射的源色彩,
[0023] 1-如果实际源域是非凸的,并且如果所述源色彩位于所述源非凸域边界描述符之外,则将所述源色彩预映射到位于所述源非凸域边界描述符内的预映射的源色彩, [0024] 2-将未被预映射情况下的所述源色彩、或者所述预映射的源色彩主映射到位于所述目标凸域边界描述符内的目标色彩,
[0025] 3-如果实际目标域是非凸的,并且至少如果所述主映射的目标色彩位于所述目标非凸域边界描述符之外,则将所述主映射的目标色彩后映射到位于所述目标非凸域边界描述符内的最终目标色彩。
[0026] 优选地,所述源非凸域边界描述符(如果有的话)被包括在所述源凸域边界描述符中,并且所述目标非凸域边界描述符(如果有的话)被包括在所述目标凸域边界描述符中。
[0027] 优选地,要映射的每个源色彩位于所述源凸域边界描述符内。
[0028] 如果主目标色彩未被后映射,则所述主映射的目标色彩不被进一步映射,并成为最终目标色彩。
[0029] 彩色设备意指:任何种类的图像输出设备,例如胶片投影仪、数字投影仪、CRT或者LCD监视器、具有链接的监视器的数字视频盘(DVD)存储设备、或者具有链接的监视器的录像带存储设备;或者任何种类的图像输入或者捕获设备,例如胶片相机结合胶片扫描仪、电子相机;或者中间彩色设备,例如胶片打印机(而没有胶片投影仪)、色彩校正设备(而没有显示器);或者任何其它对彩色图像起作用的彩色设备。
[0030] 彩色设备的实际域包括可通过彩色设备输入或者输出的所有色彩。此彩色设备的实际域边界是限制此实际域的2D表面。
[0031] 本发明由域映射方法和设备组成,所述方法和设备不仅使用用于非凸色彩域的单个域边界描述(GBD),还使用其中一个为通常的凸包的多个域边界描述(GBD)。根据要映射的源色彩的位置(远离实际域的凹部分、或者接近实际域的凹部分),仅将凸包用于映射,或者也使用其它GBD。本发明相对于已知的域映射方法具有以下优点:
[0032] -允许精确的域映射,同时还允许使用凸域的简单几何运算。
[0033] -允许精度和计算负荷/复杂度之间的折中。
[0034] -允许使用凸域的简单几何运算,同时不隐藏域的非凸特性。
[0035] 优选地,以与HDMI标准兼容的二进制格式存储每一个所述域边界描述。 [0036] 本发明的另一个主题是一种用于将所述源彩色设备的依赖于设备的源色彩变换为所述目标彩色设备的依赖于设备的目标色彩的方法,其包括以下步骤: [0037] -通过使用与所述源彩色设备相关联的源彩色设备模型来将依赖于设备的源色彩变换为不依赖于设备的源色彩,
[0038] -根据本发明,将不依赖于设备的源色彩映射到不依赖于设备的目标色彩, [0039] -通过使用与所述目标彩色设备相关联的目标彩色设备模型来将不依赖于设备的目标色彩变换为依赖于设备的目标色彩。
[0040] 然后,在如XYZCIE色彩空间的不依赖于设备的色彩空间中执行映射;也可以使用如LabCIE色彩空间的感知上一致的(perceptually uniform)不依赖于设备的色彩空间,也可以使用如CIECAM色彩空间的包括观看条件的外观(appearance)不依赖于设备的色彩空间。

附图说明

[0041] 在阅读通过非限制性的例子的方式并且参照附图给出的下面的描述时,本发明将被更清楚地理解,附图中:
[0042] -图1图示了将色彩从源非凸GBD(a)沿着映射线(c)映射到目标非凸GBD(b)的二维域映射方法。
[0043] -图2示出了从一组三角形创建GBD的总的原理。
[0044] -图3图示了Voronoi图的创建,并且图4图示了被用于使用阿尔法形状方法创建非凸GBD的Delaunay三角剖分(triangulation)的创建。
[0045] -图5是根据本发明的域映射方法的实施例的图示。
[0046] -图6图示了图5的域映射方法的预映射步骤。
[0047] -图7图示了图5的域映射方法的主映射步骤。
[0048] -图8图示了图5的域映射方法的后映射步骤。
[0049] -图9是根据本发明的另一个实施例的图示,在所述另一个实施例中,要映射的源色彩是依赖于设备的,并且所获得的目标色彩也是依赖于设备的。

具体实施方式

[0050] 现在将对于下述方法来描述本发明的实施例,所述方法将来自具有非凸的实际源域的源彩色设备的源色彩、映射到用于具有同样非凸的实际目标域的另一目标彩色设备的目标色彩。选择三维(N=3)色彩空间CIEXYZ作为用于映射的独立色彩空间。GBD由将边界定义为3D多面体的顶点生成三角形(vertices spanning triangles)组成。 [0051] 1.多个源GBD和目标GBD的创建:
[0052] 对于源和目标实际色域中的每一个,计算多个不同的GBD。在此示例中,对于每个源和目标,计算两个GBD,其中一个是如用于实际色域的凸GBD的所谓的凸包,而另一个是如非凸GBD的所谓的非凸包,其以更精确的方式描述实际色域,并被完全包括在凸包中。 [0053] 在下文中,示出了如何为源色域计算凸GBD以及非凸GBD。以类似的方式计算用于目标色域的凸GBD以及非凸GBD。我们假设通过一组给定的源色彩表示实际源色域。我们假设这些源色彩足够精确地采样实际色域。这些源色彩是三维CIEXYZ色彩空间中的点。由这些点或者这些点的选择,要生成凸和非凸GBD。
[0054] GBD描述色彩空间中的三维源色域的二维表面。GBD基于索引三角形组(indexed triangle set)。三角形是基础的多边形。GBD是基础多边形的基本网络,其表示色彩空间中的源彩色设备的实际域边界。
[0055] 图2中所示的该初始的源GBD包含一组顶点V0、V1、V2、V3、...。每个顶点通过其在CIEXYZ映射色彩空间中的坐标定义。经常将CIEXYZ色彩空间中的坐标编码为标准化的RGB或者YCbCr值。
[0056] 该初始的源GBD包含一组三角形F0、F1、F2、F3、...。令F0为图2中示出的样本三角形。通过其三个顶点V0、V1、V2的三个索引(index)0、1、2定义三角形F0。该组三角形被称为索引三角形组。v是域外的三角形点的面法线(surface normal)。下面对于如何具有与HDMI格式的兼容性地以二进制格式存储这些数据给出更多细节。
[0057] 通常的凸包算法旨在计算作为一组给定的色彩的凸包的表面的表示,所述一组给定的色彩在实际域上遍布,并且通常可以使用源彩色设备测量。我们这里使用所谓的增量算法,但是可以代之使用诸如礼物包装(gift warp)或分治(divide-and-conquer)之类的其它的众所周知的算法。
[0058] 由对映射色彩空间中的实际域的表面进行采样的所选择的色彩,可以在这里使用以下已知的增量凸包算法,以建立表示初始的源域边界的凸包,而索引三角形组的顶点是给定色彩的子组。为了实施此已知的算法,通常执行以下步骤:
[0059] -1)由源色域中的任何四个所选择的色彩创建第一包(四面体);
[0060] -2)取新的色彩;
[0061] -3)如果新的色彩在第一包内,则继续步骤2;
[0062] -4)当新的色彩现在在第一包之外时,从第一包删除通过此新的色彩可见的所有三角形;
[0063] -5)创建包括新的色彩的新的三角形,以产生第二包;
[0064] -6)如果还未处理所有色彩,则继续步骤2;
[0065] -7)在现在已经处理了所有选择的色彩时,最后的包给出凸GBD或者凸包。 [0066] 现在,根据已经提及的阿尔法形状的途径来计算非凸GBD。阿尔法形状的替代描述由J.Giesen、E.Schuberth、K.Simon和P.Zolliker给出,其呈现在他们的题为“Toward Image-dependent Gamut Mapping:Fast and AccurateGamut Boundary Determination”的论文(2005年在Proceedings of the 17thAnnual IS&T/SPIE Symposium on Electronic Imaging中发表)中。
[0067] 通过以下步骤计算非凸GBD:
[0068] -1)创建用于源色彩的Voronoi图。所述Voronoi图是色彩空间到四面体的单元分解。每个四面体的Voronoi单元恰好对应于一个源色彩,并且包含色彩空间中的、不具有与该给定源色彩组的任何其它色彩的更小距离的所 有色彩,参见图3。
[0069] -2)创建源色彩的Delaunay三角剖分。Delaunay三角剖分是将源色彩的凸包(凸GBD)分解为体积的(volumic)的四面体单元的单元复合体(cellcomplex),所述四面体单元以每个四面体的Delaunay单元与其四个顶点的Voronoi单元的交点非空的方式使源色彩作为顶点,参见图4。
[0070] -3)基于给定值α,半径α的球体以色彩空间中的每个源色彩为中心。对于Delaunay三角剖分的四面体的每一个,确定Delaunay顶点的Voronoi四面体的共用Voronoi顶点。消除具有其Delaunay顶点中的至少一个的球体之外的共用Voronoi顶点的所有Delaunay四面体。可以根据 由通过凸GBD描述的体的体积V计算值α。 [0071] 然后,获得非凸GBD。
[0072] 将凸GBD和对应的非凸GBD例如以如下的二进制格式存储。
[0073] 该二进制格式以包含根据以下表的最小的域信息组的基本首部开始。有利地,所提出的基本首部与高清多媒体接口(HDMI)与域有关的元数据相兼容。参见下面的表1。 [0074] FF和FM位是Format_Flag和Facet_Mode标志,并且对于有利的与HDMI标准的兼容性来说应当为0。通常将ID标志设置为1,指示基本首部之后的数据的存在。 [0075] ID_PRECISION指示每色彩通道使用多少位,以便定义色彩空间中的顶点的坐标。位数应该为以下之一:N=8位、N=10位、N=12位。
[0076] ID_SPACE指示使用哪个色彩空间,以便定义顶点的坐标。每个色彩空间具有三个色彩通道。ID_SPACE应该为以下之一:
[0077] ·ITU-R BT.709、RGB空间、按照SMPTE 274M的编码,
[0078] ·xvYCC-601、YCbCr空间、按照IEC 61966-2-4-SD的编码,
[0079] ·xvYCC-709、YCbCr空间、按照IEC 61966-2-4-HD的编码。
[0080] 打包(packed)的基本顶点数据定义应该指示实际色域中的黑、红、绿和蓝的色彩空间中的四个顶点。在将这些顶点表示为CIEXYZ色彩空间中的矢量V黑、V红、V绿、V蓝时,给出CIEXYZ色彩空间中的失真立方体(distortedcube),可以计算另外四个矢量V品红=V红+V蓝-V黑、V青=V绿+V蓝-V黑、V黄=V 红+V绿-V黑、V白=V红+V绿+V蓝-2V黑。此立方体应当为实际色域的近似。
[0081] 表1
[0082]
[0083]
[0084] VSIZE是打包的基本顶点数据的大小,并且根据表2定义:
[0085] 表2
[0086]N VSIZE
8 12
10 15
12 18
[0087] 顶点的打包:打包的基本顶点数据包含RGB或者YCbCr或者XYZ的以此顺序的编码色彩值。下面以黑、红、绿、蓝的顺序列出顶点。在N=8时,将12个色彩值直接编码为12个字节。在N=10或者N=12时,分别根据下面的表3和表4将顶点打包。 [0088] 表3
[0089]
[0090] 表4
[0091]
[0092] 扩展首部:扩展首部在基本首部之后,并且根据下面的表5定义。 [0093] 表5
[0094]字节#(十六进 制) 大小(字节) 符号 描述 值(十进制)
VISZE+03 2 ID_GI 偏移到域实例 (GI,Gamut Instances) [0;0hFFFF]
VISZE+05 2 保留 0h0000
VISZE+07 2 保留 0h0000
VISZE+09 2 ID_F 偏移到面 (facet) [0;0hFFFF]
[0095] [0096]]FFFFh0;0[ 0 0 0 0 0 2≤X≤1











I
G:
2

X





IG

所:
1

X



点 凸
顶 非
到 者
移 留 留 留 留 留 或
偏 保 保 保 保 保 凸

V_DI X
2 1 1 1 2 1 1

D E F 01 2 3
B0+E 0+EZ 0+EZ 0+EZ +EZI 1+EZ 1+EZ
ZSV SIV SIV SIV SIV SIV SIV

[0096] 将16位整数或者地址值编码为2字节,其中MSB在第一字节中,并且LSB在第二字节中。
[0097] ID_GI、ID_F和ID_V分别给出从域ID元数据的开始到域实例、面、以及顶点数据的开始的按照字节的偏移。
[0098] X指示二进制格式仅使用凸形状(X=1)还是可以使用凸和非凸形状(X=2)。在X=1时,每个GI应当对应于凸形状。在X=2时,将GI组织成对。每个对包含对应于凸GBD的第一GI(标为“凸”)。该对的第二GI(标为“非凸”)可以对应于非凸形状,并被设置为非凸GBD。二进制格式至少包含X个GI。
[0099] 域实例(GI):二进制格式包含实际源色域或者实际目标色域的一个或多个描述。将单个描述称为域实例(GI)。此二进制格式的接收者可以使用该二进制格式的任一个或任意数目的GI。根据下面的表6,通过从字节数ID_GI起由GI的列表来定义GI。该列表中的顺序是任意的而非固定的。
[0100] 表6
[0101]
[0102] I是GI的数目,并且应当等于X。根据下面的表7定义每个GI:
[0103] 表7
[0104]
[0105] 是关于凸或者非凸形状的指示符。如果 则第i个GI定义凸形状。如果 则第i个GI可以定义凸或非凸形状。
[0106] Fi是由第i个GI参考的面的数目。GI参考至少四个面。
[0107] 将面的索引打包成字节。面的每个索引取ld(F)个位。逐个GI(GI wise)组织打包,即,GI的第一面索引总是以字节的开始而开始。
[0108] 对于I=2个域实例(GI)、其中每个域实例使用来自总共F=8个面的F0=F1=6个面的情况给出打包的示例。每个GI对于面的索引取个字节。打包例如如下在表8中那样:
[0109] 表8
[0110]
[0111]
[0112] LSB是最低有效位,并且MSB是最高有效位。
[0113] 面:根据下面的表9,从字节数ID_F起通过面的列表定义面。列表中的顺序是任意的而非固定的。
[0114] 表9
[0115]
[0116] F是域ID元数据的面的总数。对于每个面,指示总共3F个索引中的顶点的三个索引。
[0117] 将所有面的顶点的索引打包为字节。对于V,面的每个索引取ld(V)位,参见下文。 [0118] 对于F=4个面并且V=4个顶点的情况给出打包的示例。面的每个索引取ld(V)=2位。所有索引取 字节。在表10中给出了打包的示例。
[0119] 表10
[0120]
[0121] 顶点:顶点从字节数ID_V起由顶点的列表定义,参见下面的表11。列表中的顺序是任意的而非固定的。
[0122] 表11
[0123]
[0124] 在此, 是舍入到下一个较大的整数的运算。
[0125] V是域ID元数据的顶点的总数(未对基本首部的四个基本顶点计数)。 [0126] 如上所述,然后,创建了源凸域边界描述符(或者源凸包)以及源非凸域边界描述符(或者源非凸包),以表示源彩色设备的实际源域。类似地,创建目标凸域边界描述符(或者目标凸包)以及目标非凸域边界描述符(或者目标非凸包),以表示目标彩色设备的实际目标域。
[0127] 现在将参照图5的图示描述源色彩的映射方法。
[0128] 2-预映射步骤
[0129] 现在将在CIELab色彩空间中执行下面的域映射步骤。通过简单地变换顶点的色彩坐标,将平滑的最终GBD从CIEXYZ空间变换到CIELab空间。
[0130] 如果要映射的源色彩位于源GBD内、但位于源非凸GBD之外,则将此源色彩预映射到位于源非凸GBD内的预映射的源色彩。在此步骤期间,将位于一组源GBD的非凸包之外的要被映射的一组源色彩的每个源色彩映射到非凸源GBD内的预映射的色彩。 [0131] 执行以下步骤:
[0132] -1)测试每个源色彩在非凸源GBD之内或之外。因此,从源色彩到一组方向来跟踪射线。对于每条射线,计数与非凸GBD的三角形的交点的数目。从处理中排除具有数值问题的射线,诸如与三角形之一共线的射线。在每条射线中的交点的数目不成对(impair)时,源色彩称为在非凸GBD之内,否则,源色彩被称为在非凸GBD之外。对于所有非凸GBD之外的源色彩执行以下步骤。
[0133] -2)对于每个源色彩,如下定义映射线。由属于通过非凸源GBD描述的表面并且不依赖通过凸源GBD描述的表面的色彩空间中的所有点,确定最接近源色彩的点。映射线是从源色彩到所述最接近的点的线。所述最接近的点是映射线与非凸GBD的交点。 [0134] -3)如图6所示,沿着映射线将每个源色彩映射到位于非凸GBD内的预映射的源色彩上。
[0135] 通过以下子步骤执行此预映射:
[0136] -1)确定映射线与凸GBD的交点。
[0137] -2)分别确定映射线与非凸GBD的交点和与凸GBD的交点之间的距离D。 [0138] -3)在映射线上定义局部锚点(local anchor point),所述局部锚点分别具有距与凸源GBD的交点和与非凸源GBD的交点的距离(l+d)D和dD,其中d是0和1之间的值,典型地是1/4。
[0139] -4)沿着映射线将源色彩映射到预映射的源色彩上,使得局部锚点与预映射的源色彩之间的距离E’是E’=d/(D+d)E,其中E是局部锚点与源色彩之间的距离。 [0140] 在一变体中,如果d>0,则不仅将预映射步骤应用于位于该组源GBD的非凸包之外的源色彩,还将其应用于位于如上所定义的其映射线上的、在锚点和映射线与非凸GBD的交点之间的所有源色彩。
[0141] 3-主映射步骤
[0142] 此步骤旨在使用任何已知的方法,将在未被预映射的情况下的源色彩或者预映射的源色彩映射到位于目标GBD内的目标色彩。
[0143] 对于域主映射,将直线传统地用作映射曲线,该映射曲线被定义为具有L=50的、穿过亮度轴上的被称为锚点的点的所有线。作为已知的变体,可以使用其它锚点或者多个锚点。
[0144] 将每个源色彩或者预映射的色彩映射到朝向锚点的方向上的目标色彩上,使得目标色彩在凸目标GBD内,如图7所示。由于将直线选为映射轨迹,因此可以将映射描述为将源色彩(或者预映射的色彩)的距离D修改为目标色彩的距离D’。在此情况下,已知的算法可以用于映射。
[0145] 在Montag和Fairchild的题为“Gamut mapping:Evaluation of chromaclipping techniques for three destination gamuts”的论文(1998年在IS&T/SIDSixth Color Imaging Conference in Scottsdale中发表)中,描述了四种映射技术:缩放-剪辑(scaling-clipping)、膝函数(knee-function)映射、Gentile的映射、以及三片段(segment)映射。
[0146] 为了在给定的映射轨迹上将具有距离D的源色彩(或者预映射的色彩)映射到具有距离D’的目标色彩,我们在这里使用沿着映射曲线的映射函数,该映射曲线由三个片段定义:
[0147] -具有等于1的映射“斜率”(即,D’=D)的第一片段,其中映射“斜 率”是比值D’/D,
[0148] -作为所谓的硬剪辑(hard clipping)(即, )的最后片段,以及 [0149] -线性连接第一片段与最后片段的中间片段,如下面所表示的。
[0150] 普遍地,将目标色彩的距离D’以如下的相同的映射轨迹上的源色彩(或者预映射的色彩)的距离D的函数表示:
[0151]
[0152] 其中D是要映射的值;D输入最大是最大输入值,其例如通过CIE L*a*b*空间的限制最大确定;D输出 是最大输出值。
[0153] 此映射函数D’=f(D)使用两个参数:
[0154] -D拐点,其是其中(斜率为1的)第一片段停止并且中间片段开始的距离, [0155] -D剪辑是其中中间片段停止并且硬剪辑的最后片段开始的距离;此距离是对于剪辑的所谓的截止值。
[0156] 然后,获得目标色彩。
[0157] 4-后映射步骤
[0158] 当在前面的步骤3获得的主映射的目标色彩位于目标非凸GBD之外时执行此步骤。然后,将主映射的目标色彩后映射到位于目标非凸GBD内的最终目标色彩。 [0159] 执行下面的步骤:
[0160] -1)测试主映射的色彩中的每个在非凸目标GBD之内或者之外,如上面已经对于源色彩和非凸源GBD的情况解释的。然后,对于被测试为在非凸目标GBD之外的所有主映射的色彩执行下面的步骤。
[0161] -2)对于这些在非凸目标GBD之外的色彩中的每一个,以与如上所述的对于预映射步骤相同的方式定义映射线。
[0162] -3)如图8中所示,并且如对于预映射步骤那样,沿着此映射线将每个在非凸目标GBD之外的色彩映射到位于非凸目标GBD之内的最终目标色彩上。
[0163] 在变体中,如果d>0,还将后映射应用于位于如上定义的其映射线上的、在锚点和映射线与非凸GBD的交点之间的所有主映射的色彩。
[0164] 如果在步骤3中获得的主目标色彩未被后映射,则此主映射的目标色彩不被进一步映射,并且成为最终目标色彩。
[0165] 在对要映射的源色彩的每个执行了上述步骤之后,获得整个组的最终目标色彩。 [0166] 图9公开了在从依赖于设备的源色彩开始时、并且在期望依赖于设备的目标色彩以便能够直接控制目标彩色设备时使用的映射方法的图示。在应用根据本发明的域映射方法之前,使用前向源设备模型将依赖于设备的源色彩变换为不依赖于设备的源色彩,并且在应用根据本发明的域映射方法之后,使用反向目标设备模型将不依赖于设备的目标色彩变换为依赖于设备的目标色彩。由于已经在文献WO2007/024494中提及,因此不需要扩展的前向或者反向目标设备模型。
[0167] 根据本发明的已经被描述的域方法相对于以前的域映射方法具有以下的优点: [0168] -允许精确的预映射,同时还允许使用凸域的简单的几何运算。
[0169] -允许精确度与计算负荷/复杂度之间的折中。
[0170] -允许使用凸域的简单的几何运算,同时不隐藏域的非凸特性。
[0171] 尽管针对具体的实施例和变体描述了本发明,但是应理解本发明不限于此实施例和变体。请求保护的本发明因此包括由此实施例以及这里描述的变体的变化,如将对本领域技术人员来说显而易见的。尽管可以分开描述和请求保护特定实施例中的一些实施例,但是应理解可以结合地使用这里所描述和所请求保护的实施例的各种特征。