颜色查找表压缩的制作方法

文档序号:16513272发布日期:2019-01-05 09:28阅读:229来源:国知局
颜色查找表压缩的制作方法
颜色管理系统实现各种设备(诸如图像扫描仪、数码相机、计算机监视器、打印机)及相应介质的颜色表示之间的受控转换。设备特性文件为颜色管理系统提供了用于在颜色空间之间(诸如在本机设备颜色空间和与设备无关的颜色空间之间、在与设备无关的颜色空间和本机设备颜色空间之间、以及在源设备颜色空间和直接目标设备颜色空间之间)转换颜色数据的信息。附图说明图1是框图,展示了具有压缩颜色表的示例存储器设备。图2是框图,展示了一种对图1的存储器设备的颜色表进行压缩的示例方法。图3是框图,展示了具有图2的示例方法的附加特征的示例方法。图4是框图,展示了具有压缩颜色表的另一示例存储器设备。图5是框图,展示了对压缩颜色表进行解码的示例方法。图6是框图,展示了结合图2、图3和图4的方法以及图1和图4的存储器设备的示例的示例系统。图7是框图,展示了结合图5的方法以及图1和图2的存储器设备的示例的示例系统。具体实施方式在以下具体实施方式中参照了附图,这些附图构成了具体实施方式的一部分,并且在附图中以说明方式示出了可以实践本公开的特定示例。应当理解的是,在不脱离本公开的范围的情况下,可以利用其他示例并且可以做出结构或逻辑改变。因此,下面的具体实施方式不以限制的意义来进行,并且本公开的范围由所附权利要求来限定。应当理解的是,除非另外特别说明,否则本文描述的各种示例的特征可以部分地或全部地彼此组合。颜色空间是具有轴线并且以数值方式描述颜色的系统。一些输出设备,诸如二维和三维(增材制造)打印设备,可以采用青色-品红色-黄色-key(黑色)(cmyk)颜色空间类型,而一些软件应用和显示设备可以采用红色-绿色-蓝色(rgb)颜色空间类型。另外,一些软件设备可以采用单色或灰度颜色空间。例如,在cmyk颜色空间中表示的颜色具有青色值、品红色值、黄色值和黑色值,这些值以数值方式组合起来表示颜色。提供各种颜色空间之间的变换的颜色表广泛用于颜色管理,常见的示例是从与设备无关的颜色空间(诸如cielab,即,l*a*b*)到与设备有关的颜色空间(诸如rgb或cmyk)的变换,或者反过来。映射可以使用诸如可以对其应用插值的一个或多个单维或多维查找表等表来规定,或者通过用于变换的一系列参数来规定。颜色表可以包括存储器设备上的阵列或其他数据结构,其利用更简单的阵列索引操作作为颜色查找表来替换运行时计算。出于本公开的目的,颜色表还可以包括单色和灰度颜色表。例如,颜色表可以包括一组m个节点,其可以容纳来自总颜色范围的m种颜色。每个节点包括被表示为一组位或字节的特定颜色值。rgb颜色空间中的256色颜色表可以利用256个节点来表示,其中,每个节点具有18位的深度,即,对于红色、绿色和蓝色的每个值有六位。颜色特性文件是表征不同颜色空间之间的变换的数据文件。在一个示例中,颜色特性文件可以利用与设备有关的颜色空间(诸如源或目标颜色空间)和与设备无关的颜色空间(诸如特性文件相关空间(profileconnectionspace,pcs))之间的映射(或者反过来)来描述观看规范或特定设备的颜色属性。捕获或显示颜色的设备和软件程序——包括打印机、监视器、电视、操作系统、浏览器和其他设备及软件——可以包括包含硬件和编程的各种组合的特性文件。icc特性文件是示例的颜色特性文件,其是根据由国际颜色协会(icc)颁布的标准来表征颜色空间的一组数据。icc特性文件框架已被用作在各种颜色空间之间进行通信和交换的标准。icc特性文件包括可以随着设备类型而变化的多个数据记录。一些记录(诸如包括颜色查找表的那些记录)提供在颜色变换中使用的数据。颜色查找表记录包括多个组成部分,这些组成部分提供针对在设备空间与pcs之间的颜色变换的参数。查找表可以包括颜色转换矩阵、一维查找表和多维查找表。在查找表的输入和输出处的通道数将根据所涉及的颜色空间而变化。icc特性文件经常作为硬件和编程的各种组合嵌入在颜色文档中,以实现不同设备之间的颜色保真度,这增大了这些文档的总大小。每个图形元素,即,颜色文档中的图形或图像可以具有其自身的icc特性文件。颜色特性文件中颜色表的大小也将会随着空间的更精细采样以及更大的位深而增大。对于诸如彩色打印机等设备,颜色表通常嵌入在打印机固件或其他硬件中,其中,颜色表消耗存储设备中的计算机存储器。一般而言,特性文件可以包括待处理的n个颜色表,诸如clut1、clut2、……、clutn。表示不同渲染意图的多个颜色表通常与一个icc特性文件包括在一起。进一步地,输入颜色空间包括jin个通道,并且输出颜色空间包括jout个通道,并且在icc特性文件的许多示例中,jin和jout可以是一个或多个通道。对于每个输出通道,相应的查找表包含个节点。在一些场景中,存储这些颜色表所消耗的固件存储器的量可能会成为问题,尤其是当颜色设备中的查找表的数量增加以支持多个颜色空间、打印介质和偏好时。空间的更精细采样以及更大位深的趋势也导致了表大小的增大,进一步加剧了这些存储器问题。另外,高效存储器使用和存储空间消耗的问题也适用于嵌入在诸如icc源特性文件等颜色文档中的颜色表。在使用嵌入特性文件的应用中,嵌入特性文件表示开销。图1展示了包括压缩颜色表102的示例存储器设备100。压缩颜色表102可以是压缩原始颜色表。原始颜色表包括一组节点。在一个示例中,存储器设备100可以包括在打印机墨盒或打印机上。在另一个示例中,存储器设备100被包括在配合的部件中,诸如,打印机墨盒上的一个部件和可以一起处理的打印机上的另一个部件。压缩颜色表102在存储器设备100上被设置为包括压缩差异表104和残差表106。压缩颜色表102可以被存储为一组文件,包括二进制文件,或被存储为位流。差异表104包括多个差异节点,该多个差异节点中的每个节点表示原始颜色表的节点的值与参考表的节点的值之间的差。参考表包括具有预选值或预定值的节点。在一个示例中,参考表的节点的值表示原始颜色表的节点。残差表106包括多个残差节点,该多个残差节点中的每个节点表示原始颜色表的节点的值与重构的压缩差异表的节点的值之间的差。示例存储器设备100可以被实施为包括一个或多个易失性或非易失性计算机存储介质的组合。计算机存储介质可以被实施为用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何合适的方法或技术。传播信号本身并不可作为存储介质或存储器设备。存储器设备可以被包括作为包括处理器和存储器的系统的一部分,该存储器用于存储用于控制处理器来执行颜色变换的一组计算机指令。示例包括作为打印机墨盒的一部分而被包括的存储器设备,其可以由打印机读取以基于诸如墨料或介质参数或设备规格等这类规格来执行颜色变换。图2展示了可用于对颜色表或原始颜色表进行压缩的示例方法200。参照一维颜色表来描述该示例,一维颜色表即具有一个输入通道、一个输出通道、以及因此m个节点的颜色表,但是这些概念可转移到多维颜色表和其他颜色特性文件记录。在202处,对差异表进行压缩。差异表包括多个差异节点,其表示颜色表的节点的值与参考表的节点的值的差。在204处,压缩差异表被重构并且被应用以生成残差表。残差表包括多个残差节点,其表示颜色表的节点的值与重构压缩差异表的节点的值的差。压缩差异表和残差表可以作为数据文件被存储在存储器设备上,诸如设备100上。在一个示例中,在202处,使用离散余弦变换(或dct)来压缩差异颜色表,但是也可以采用其他系统,其中,dct以按不同频率振荡的余弦函数之和的形式来表示有限数据点序列。dct压缩可特别适用于可以以单个维度或多个维度表达颜色表的示例。在其他示例中,可以使用诸如spiht(多级树集合分裂)和speck(集合分裂嵌入块)等可基于小波的系统来对差异颜色表进行压缩。示例方法200可以被实施为包括用于对系统进行控制以执行方法200来将颜色表压缩成文件或位流的一个或多个硬件设备和程序的组合,所述系统诸如是具有处理器和存储器的计算设备。文件或位流可以被细分为附加文件或位流。方法200可以被实施为用于控制处理器的一组可执行指令。本公开的其他方法也可以被实施为用于对系统进行控制的硬件和编程的组合。数据压缩包括使用比原始表示要少的位来对信息进行编码。无损压缩和有损压缩是两种数据压缩形式。在无损压缩中,在原始数据与重构的无损压缩数据之间不存在数字差。相比而言,在对有损压缩数据进行重构时,一部分原始数据丢失。在示例方法200中,可以采用特定的无损压缩系统来利用待压缩的原始颜色表的特定特性。可以对原始颜色表应用特定的无损压缩以压缩成文件,这些文件可被重构为与原始颜色表没有数字差的颜色表。可以采用通用无损压缩系统来压缩任何种类的数据。这些文件中的一个或多个可以利用通用无损压缩系统进一步压缩,以进一步减小文件的大小。图3展示了如方法200中那样对原始颜色表进行压缩的示例方法300。示例方法300可以分阶段实施,包括利用颜色表数据的特定特性的特定无损压缩阶段和用于进行高数据压缩的通用无损压缩阶段。在一个示例中,连续地执行该方法的这些阶段。在302处,过程300根据原始颜色表和参考表来生成差异表。差异表包括多个差异节点,该多个差异节点中的每个节点包括表示原始颜色表的节点的值与参考表的节点的值之间的差的值。在一个示例中,原始颜色表和参考表各自包括m个节点。从参考表中每个节点的值中减去原始颜色表的相应节点的值,以提供在差异表中的相应节点处的值。因此,从参考表的节点位置j处的值中减去原始颜色表的节点位置j处的值,以提供差异颜色表的节点位置j处的值,其中,j是从1到m的节点位置。参考表包括具有预选值或预定值的节点,该值可以表示原始颜色表的节点。在一个示例中,差异节点的值越小,残差表中的节点的值就越小,这可以提供高效的压缩。在一个示例中,参考表的参考节点的值可以是{0,1,2……(m-1)}。在304处,对差异表进行压缩。在该示例中,经由dct来压缩差异表以生成一组系数,在306处可以进一步处理该组系数以生成一组量化的系数。具有m个节点的差异表将生成m个系数。在306处,该组系数中的每个系数可以除以固定步长δ或用该固定步长δ来量化并取整为最接近的整数,以提供该组m个量化系数。在308处,可以将量化系数写入二进制文件。在310处,压缩差异表被重构并且被应用于参考表以生成初始重构表。例如,来自306的量化系数用于生成重构差异表。在该示例中,量化系数乘以步长δ被应用于逆dct过程并取整为最接近的整数,以获得重构差异表的节点处的值。在310处,重构差异表被加到参考表以获得初始重构表。在一个示例中,重构差异表和参考表各自包括m个节点,并且重构差异表的每个节点的值被加到参考表中相应节点处的值上,以提供初始重构表中相应节点处的值。在312处,从原始颜色表中减去初始重构表以获得残差表。在一个示例中,初始重构表和原始表各自包括m个节点,并且从原始表中的每个节点的值中减去初始重构表的相应节点的值,以提供残差表中相应节点处的值。在314处,可以将残差表写入二进制文件。在一个示例中,将残差表加到初始重构表以创建颜色表,该颜色表与原始颜色表没有数字差或基本上没有数字差。在另一个示例中,残差表被确定为使得其加到初始重构表后得到原始颜色表的近似。量化系数和残差表用于计算相应的位分配表。在316处,量化系数用于计算系数位分配表(cbat),该系数位分配表可用于对在308处写入二进制文件的量化系数进行解码。类似地,在318处,残差表的值可以用于计算残差位分配表(rbat),该残差位分配表可以用于对在314处写入二进制文件的残差表进行解码。单维原始颜色表将包括一个cbat和一个rbat。在316、318处生成的cbat和rbat分别存储关于为每个量化系数或残差值分配多少位的信息。例如,位被用于将范围-0.5到l-0.5中的实数量化为整数值,其中,表示l的以2为底的对数log2(l)的上取整函数,并且上取整函数将实数映射为最小的后续整数。提供附加位用于cbat和rbat中的正负号,因为系数和残差值可能是负数。在316、318处,可以应用示例过程来为cbat和rbat中的每一个计算位分配表。对于给定的输出通道,该输出通道的量化dct系数表示为qi,j,其中,i(从1到n)是颜色表编号,并且j(从1到m)是单维原始颜色表的节点编号(对于多维颜色表是从1到)。如果qi,j为0,则qi,j所需的位数bi,j为bi,j=0,如果qi,j不为0,则在一个示例中,固定的位数a可以分配给相应的位分配表的每个节点,并用于确定每个位分配表的大小。可以根据每个颜色表i(从1到n)所需的最大位数bi,j来确定位分配表在节点位置j处的值,或lj。固定的位数a可以根据针对每个节点位置j(从1到m)确定的的最大数来确定。在该示例中,用于单维颜色表的一个位分配表的总大小因此是am位。经由通用无损压缩可以显著减小cbat和rbat的总大小。通用无损压缩可以使用各种压缩系统来实施,包括lempel-ziv-markov链算法过程(或lzma)、gzip(或gnu-zip)过程、或其他可被应用以获得数据文件的无损压缩的合适的无损压缩系统。利用诸如lzma等无损压缩,在320处可以压缩cbat并且在322处可以压缩rbat。在一些示例中,可以利用通用无损压缩来压缩量化系数和残差二进制文件,但是lzma针对量化系数和残差表可能不具有与针对位分配表(其可能包括高冗余度)一样好的压缩性能。用于在306处生成量化系数的所选步长δ可影响压缩量。压缩比可以根据原始颜色表的大小除以所有文件的大小(即,量化系数、残差表和位分配表的大小)来确定。较大的步长δ实现较小的量化dct系数但是较大的残差值,而较小的步长δ实现较大的量化dct系数但是较小的残差值。最优的压缩比平衡量化系数文件的大小与残差表文件的大小。在根据步长δ计算压缩比时,已经发现,压缩比首先增大,在最优步长δopt处达到峰值,并且随着步长δ增大而减小。在一个示例中,以所选大约为2的步长δ可以实现总体较高的压缩比。dct压缩还可特别适用于可以以多个维度表达颜色表的示例。在306处进一步处理多维颜色表时,可以将jin维量化系数重新排序成具有所选顺序的一维数据流。由于dct变换之后的能量集中在低频域中,所以所选顺序可以基于多维之字形排序,诸如三维之字形排序,其可以用来对量化系数进行重新排序。在执行三维排序时,遍历可以被配置为使得以c的升序访问平面i+j+k=c,并且在每个平面内执行二维之字形排序。这种从低频到高频的量化系数遍历可以向系数位分配表引入大量冗余,这可以在压缩时提供对数据的高效紧缩。在308处,可以将从多维颜色表得到的量化系数的一维数据流写入二进制文件。在多维表的情况下,每个输出通道可以对应于单独的系数位分配表。因此,具有jout个输出通道的特性文件将包括jout个系数位分配表。每个位分配表中的节点与原始颜色表的节点相对应。图4展示了包括可以与图1的压缩颜色表102相对应的压缩颜色表402的示例存储器设备400。存储在存储器设备400上的压缩颜色表402包括以下各项的位流:量化系数404、压缩的系数位分配表(cbat)406、残差表408和压缩的残差位分配表(rbat)410。例如,可以根据方法300在308处确定量化系数404的位流,在320处确定压缩的cbat406的位流,在312处确定残差表408的位流,并且在322处确定压缩的rbat410的位流,这些位流存储在存储器设备400上。在一个示例中,利用lzma过程来压缩cbat和rbat,并且将压缩的cbat406和压缩的rbat410作为.lzma文件存储在存储器设备400上。在一个示例中,量化系数404和残差表408作为二进制文件(.bin)存储在存储器设备400上。(在另一个示例中,利用诸如lzma等通用压缩技术来压缩在308、312处生成的量化系数和残差表,并且文件404和408作为.lzma文件存储在存储器设备400上。)存储器设备400可以是存储器设备100的示例。图5展示了对压缩的原始颜色表402(诸如存储器设备400上的文件404-410)进行解码的示例方法500。如果利用通用无损压缩来压缩一个或多个文件402、404、406或408,则在502处对存储器设备400上的标准无损压缩文件402、404、406或408进行解压缩。例如,在502处,对压缩的cbat和rbat文件406、410应用诸如逆lzma或逆gzip(即,在320、322处应用的以及对其他文件应用的通用无损压缩的逆过程)等标准无损解压缩技术,以产生解压缩的位分配表(或cbat和rbat)。在504处,解压缩的cbat用于重构量化系数,并且解压缩的rbat用于重构残差表。例如,将解压缩的cbat应用于量化系数文件404,以确定向m个系数中的每个量化系数值分配二进制流的多少位。类似地,将解压缩的rbat应用于残差表文件408,以确定向残差表的每个节点分配二进制流的多少位。在506处,对来自504的一组m个重构的量化系数进行处理以获得差异表。将重构的系数乘以量化步长δ,以获得预处理的系数。如果在304处使用了dct来确定系数,则在506处对预处理的系数应用逆dct过程并取整为最接近的整数以获得解压缩的差异表中的m个节点。在508处,将在302处使用的参考表加到来自506的解压缩的差异表以获得中间表。在一个示例中,解压缩的差异表和参考表各自包括m个节点,并且解压缩的差异表的每个节点的值被加到参考表中的相应节点的值上,以提供中间表中的相应节点处的值。因此,解压缩的差异表的节点位置j处的值被加到参考表的节点位置j处的值上,以提供中间表的节点位置j处的值,其中,j是从1到m的节点位置。在510处,来自508的中间表被加到来自504的重构残差表以获得解压缩的原始颜色表。在一个示例中,中间表和重构残差表各自包括m个节点,并且中间表的每个节点的值被加到重构残差表中的相应节点的值上,以提供解压缩的原始颜色表中的相应节点处的值。因此,将中间表的节点位置j处的值加到重构残差表的节点位置j处的值上,以提供解压缩的原始颜色表的节点位置j处的值,其中,j是从1到m的节点位置。解压缩的原始颜色表与利用方法300压缩的原始颜色表相同。使用1dx1_unity.cxf作为参考表,对1dx1_75percent_nonlinear_mono.cxf表和1dx1_90percent_nonlinear_mono.cxf表应用诸如方法300等对单维颜色表进行压缩的方法。参考表包括256个节点,其包括从0线性增加到255的节点。参考表可以存储在存储器设备100上,但也可以被容易地计算并且不被存储为压缩的原始颜色表的文件的一部分。在本示例中,m=256,并且字节深度(用于存储每个节点中的值的字节数)为b=2。总体上,每个表中有bm=256个字节,并且这两个表中总共有512个字节。选择了整数步长δ为2来相对优化残差值大小与系数大小的平衡。残差表、量化系数、rbat和cbat被写为.bin二进制文件,并且利用通用无损lzma压缩被压缩成为.lzma文件。残差表和量化系数没有利用通用无损压缩进一步压缩,因为发现.lzma文件的大小比相应的.bin文件要大。因此,残差表和量化系数被存储为二进制文件,而rbat和cbat被存储为.lzma文件。表1示出了当残差表和量化系数被存储为二进制文件并且rbat和cbat被存储为.lzma文件时这些文件的大小(以字节为单位)。对于3.05的压缩比,相比于原始表的512个字节,这两个压缩的原始颜色表仅占用168个字节。表1压缩文件字节大小残差表35rbat76量化dct系数23cbat34总大小168图6展示了可用于在存储器设备604上创建压缩颜色表602的示例系统600。压缩颜色表602可以包括压缩差异表616和残差表618。在一个示例中,存储器设备604可以与示例存储器设备100、400之一相对应。例如,压缩颜色表602可以包括以下各项的位流:压缩颜色表402的量化系数404、压缩系数位分配表(cbat)406、残差表408和压缩残差位分配表(rbat)410。示例系统600包括具有处理器608和存储器610的计算设备606,该处理器和存储器被配置为将本公开的诸如方法200、300中的一个或多个等示例方法实施为在存储器610中所存储的用于控制处理器608执行该方法的一组计算机可读指令。在一个示例中,该组计算机可读指令可以被实施为计算机程序612,该计算机程序可以包括被配置为在计算设备606上运行的硬件和编程的各种组合。计算机程序612可以存储在存储器610中并且由处理器608执行以便在存储器设备604上创建压缩颜色表602。存储器设备604可以被包括在诸如打印机墨盒等可消耗产品614中。图7展示了示例系统700,其可用于应用利用诸如系统600等系统在存储器设备604上创建的压缩颜色表602。在该示例中,存储器设备604被包括在可消耗产品614中,可消耗产品614诸如是具有液体墨料、干燥调色剂粉末或其他与打印机一起使用的打印或标记物质的容器的打印机墨盒。在一个示例中,打印机墨盒包括与打印或标记物质相对应的颜色表,诸如与黑色、青色、品红色、或黄色墨料相对应的颜色表。存储器设备604可以可操作地耦接到具有处理器704和存储器706的另一计算设备702,以读取和应用压缩颜色表602。在一个示例中,计算设备702包括固有打印能力,并且可以被配置作为可接受存储器设备604并且将压缩颜色表602解压缩和读取为颜色查找表的激光打印机或喷墨打印机。计算设备702可以包括一组计算机可读指令,该组计算机可读指令被存储在存储器706中并且可由处理器704执行以便执行诸如方法500等方法来对颜色表602进行解压缩或以其他方式应用颜色表602。在一个示例中,该组计算机可读指令可以被实施为计算机程序708,该计算机程序可以包括被配置为在计算设备702上运行的硬件和编程的各种组合。计算机程序708可以存储在存储器706中并且由处理器704执行,以便对存储器设备604上的压缩颜色表602进行解压缩。在一个示例中,存储器706可以存储方法500所使用的参考表。在另一个示例中,参考表可以被包括作为计算机程序708的一部分(诸如数据结构中的数据)或者是利用计算机程序经由处理器704所执行的计算来创建并且存储在存储器706中的。在一个示例中,计算设备702耦接到计算机网络(诸如互联网),并且压缩颜色表602被存储在经由网络耦接到计算设备702的存储器设备604上。可消耗产品可以包括代码,当利用计算设备702激活该代码时,该计算设备将压缩颜色表602(可能还有参考表)从存储器设备下载到存储器706,以便利用处理器704来读取和应用压缩颜色表602。尽管本文已经展示和描述了特定示例,但是在不脱离本公开的范围的情况下,各种各样的替代和/或等效实施方式可代替所示出和描述的特定示例。本申请旨在覆盖本文所讨论的特定示例的任何修改或变型。因此,旨在使本公开仅由权利要求及其等同来限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1