图像压缩的制作方法

文档序号:13426500
图像压缩的制作方法
图像压缩

背景技术:
图像(例如,由诸如数码相机或扫描仪的图像捕获装置获得的,或由计算机装置生成的)可以被压缩以减少用于存储图像的存储需求或减少用于通过通信链路传输图像的带宽需求。附图说明图1(a)示出了待压缩图像的4×4RGB像素单元的示例。图1(b)示出了被截断成四个不同的RGB颜色的图1(a)的4×4RGB像素单元的示例。图2示出了用于图像压缩的方法的示例的流程图。图3示出了插值压缩模式的示例,其中,图3(a)示出了具有16个像素的原始4×4RGB像素单元,而图3(b)示出了具有4个像素的下采样的4×4的RGB像素单元。图4示出了聚类压缩模式的示例,其中,图4(a)示出了具有16个像素的原始的4×4的RGB像素单元,并且其中,图4(b)示出了减小到四个颜色的聚类的4×4的RGB像素单元。图5示出了块截断压缩模式的示例,其中图5(a)示意性示出了分离成上半部分和下半部分的原始单元,并且其中,图5(b)示意性示出了分离成左半部分和右半部分的原始单元。图6示出了用于选择有损压缩过程的示例的流程图,该有损压缩过程用于压缩图像或图像的单元同时保留预定义的颜色。图7示出了用于选择有损压缩过程的设备的示例的框图,该有损压缩过程用于压缩图像或图像的单元同时保留预定义的颜色。图8(a)示出了包括实现图7的设备的计算装置的打印管线的示例。图8(b)示出了包括图7的设备的图像捕获装置的示例。具体实施方式图像(例如,连续色调的图像)的压缩可以在打印工作流程中使用,以减少用以在由打印机管线处理栅格化页面之前传输栅格化页面的存储和带宽需求。可以压缩将由打印机驱动程序或外部光栅图像处理器(RIP)发送到打印机的图像,以减少传输时间。打印作业和打印页面可以存储到存储装置,如光盘,用于排队和重印。这样的打印作业和打印页面可以被压缩以减少从存储装置读/向存储装置写的时间以及存储空间需求。应用于图像的压缩过程可以包括无损压缩过程或有损压缩过程。无损压缩过程可以保留确切内容,但是可能不提供任何压缩并且可能会产生较差的压缩比,例如当压缩从数码相机或另一图像捕获装置获得的照片时。有损压缩过程,如JPEG(联合图像专家组),可被用来压缩RGB图像,但它可能不适合于打印,因为有损压缩过程不保留边缘。其他有损压缩过程可以被用于压缩具有最小压缩比的栅格化页面但可能不保留白色或灰色像素,从而降低压缩后的整体图像质量。另一压缩过程,被称为RGB压缩过程,可以包括两阶段过程,包括执行有损的固定长度压缩格式的第一阶段和执行无损可变速率压缩的第二阶段。RGB压缩过程被应用于待压缩图像的预定义的区域,并且每个区域经受压缩以压缩整个图像。预定义的区域也可被称为待压缩图像的单元,并且,在一些示例中,可以考虑4×4RGB像素单元。图1(a)示出了待压缩图像的4×4RGB像素单元100的示例。4×4RGB像素单元100可以包括多达16个不同RGB颜色,即,像素102中每个可以具有不同的颜色。在未压缩的4×4RGB像素单元100中的每个像素可以按照指示所述像素的颜色的其相应的R值、G值、B值进行描述,例如,按照RGB颜色RGB1至RGB16进行描述。在一些示例中,RGB颜色可以按照四个字节进行描述,所述字节表示红色(R)、绿色(G)、蓝色(B)以及指示该像素的不透明度的α值。在其他示例中,RGB颜色可以包括表示红色(R)、绿色(G)、蓝色(B)的三个字节。未压缩的4×4RGB像素单元100的大小是64个字节。在RGB压缩过程的第一阶段中,待压缩图像的每个4×4RGB像素单元100被截断成四个或更少的颜色,并且按照颜色进行描述,以及针对每个像素具有两个比特的掩码,该掩码指示该像素映射到四个可能RGB颜色中的哪一个。图1(b)示出了被截断成四种不同的RGB颜色的4×4RGB像素单元的示例。在图1(b)中所示的示例中,像素1、2、5、6和15被截断成第一颜色RGB1,使得这些像素现在由相同的第一颜色来表示。像素3、7、9、11和13被截断成第二颜色RGB2,像素10和14被截断成第三颜色RGB3,并且像素4、8、12和16被截断成第四颜色RGB4。截断的4×4RGB像素单元100′可以按照16个字节进行描述,包括用于掩码的4个字节加上用于四个RGB颜色RGB1至RGB4的12个字节,该掩码指示针对16个像素中的每个选择四个颜色中的哪一个(16像素×2比特/像素)。RGB压缩过程的第一阶段可以产生将图1(a)中的4×4RGB像素单元的64个字节的原始大小减小至截断的4×4RGB像素单元100′的16个字节的4∶1的压缩比。在第二个阶段中,RGB压缩过程可以执行无损可变速率压缩,该无损可变速率压缩产生用于图1(b)中所描绘的截断的4×4RGB像素单元100′的有效编码。可以使用具有第一字节的1个字节到17个字节对图1(b)中的截断的4×4RGB像素单元100′进行编码,所述第一字节描述截断的4×4RGB像素单元100′包含的不同颜色的数目与截断的4×4RGB像素单元100′中的颜色组合。如果灰色像素或彩色像素存在则第一字节之后可以是附加数据。在截断的4×4RGB像素单元100′中的颜色组合可以是这样的,使得在截断的4×4RGB像素单元100′中提供一个白色或黑色像素。没有附加值被提供用于这样的像素。多达四个灰色像素可以在截断的4×4RGB像素单元100′中。由一个附加字节来描述灰色像素来存储灰色像素值。多达四个RGB像素可以是在由用于描述颜色的附加数据的三个字节描述的截断的4×4RGB像素单元100′中。例如,当原始的或未压缩的4×4RGB像素单元100被截断,使得截断的4×4RGB像素单元100′包括黑色或白色时,无损可变速率压缩可以产生按照一个字节描述截断的4x4RGB像素单元100′的编码,该编码指示单个颜色被包括在截断的4×4RGB像素单元100′中,并且可以产生指示该颜色是白色或黑色的颜色组合。当4×4RGB像素单元100被截断成四个颜色截断的4×4RGB像素单元100′时,像在图1(b)中,无损可变速率压缩可以产生按照具有17个字节的编码描述截断的4×4RGB像素单元100′的编码。第一字节描述了四个不同颜色在截断的4×4RGB像素单元100′中,并且描述了所述颜色组合包括四个不同的颜色RGB1至RGB4。接下来的四个字节对像素掩码进行编码。所述四个不同的颜色RGB1至RGB4每个由三个字节表示,从而产生17个字节的编码的总体大小。RGB压缩过程可以被应用于待压缩的整个图像,或者可以应用于图像的一部分,该部分将被部分压缩。例如,RGB压缩过程可以应用使用两字节编码的相同的单元的游程长度编码。上述两阶段RGB压缩过程提供了一种编码格式,允许编码白色和灰色的级别,同时提供了良好的压缩比例如,4∶1。例如,保留可以用于打印应用的白色背景像素以产生更好的物体边缘并避免污染背景。保留灰色颜色可以用于避免在中性轴中发生色调偏移。本文描述的技术,提供一种高效的图像压缩,同时保留预定义的颜色,如白色,黑色,灰色或任何其他RGB颜色,同时产生具有合宜的计算量的良好图像质量。如上所述,本文描述的技术允许确定一个合适的过程,与用于优化图像质量和保留预定义的颜色(如白色,黑色,灰色或任何其他RGB颜色)的固定长度压缩格式相组合,与合理的计算量相组合以减少待压缩图像的预定义的区域,例如,具有多达16个RGB颜色的4×4RGB像素单元下降至较少数目的颜色,例如,下降至四个颜色。图2示出了用于图像压缩的方法的示例的流程图。在110,确定待压缩图像的预先确定的区域中的颜色的数目,该预先确定的区域包括多个像素。在120,响应于确定了颜色的数目大于第一预定义的阈值,取决于具有预定义的颜色的预定义的区域中的像素的数目来选择有损压缩过程。在130,所选择的有损压缩过程被应用于所述预定义的区域。在一些示例中,可针对待压缩图像的多个预定义的区域中每个重复上述方法,直到图像的一部分或整个图像已被压缩为止。将所选择的有损压缩过程应用于预定义的区域可以包括上面描述的无损可变速率压缩,该无损可变速率压缩按照可变数目的字节描述预定义的区域中的颜色的数目,预定义的区域中的颜色组合以及描述或限定预定义的区域中的颜色的值。在下文中,将参考作为预定义的颜色的白色的保留描述示例,然而,本文描述的方法也可以应用于其他预定义的颜色,如黑色,灰色等级或RGB颜色中的任何一个。此外,将参考作为待压缩图像的预定义的区域的一个示例的4×4RGB像素单元描述以下示例。其他示例可以使用待压缩图像的区域,该区域具有包括更多或更少像素的不同的尺寸。代替正方形区域,预定义的区域可以具有另一形状,例如,矩形形状或任何多边形形状。在一些示例中,在图2中120处选择的有损压缩过程可以包括插值压缩模式,聚类压缩模式或块截断压缩模式。图3示出了插值压缩模式的示例,其中,图3(a)示出了具有不同颜色的16个像素的原始的4×4RGB像素单元100。插值压缩模式可以按照预定义的因数(例如1/2)下采样4×4RGB像素单元100的像素,这导致包括四个象限104a至104d的图3(b)中示出的减少的或截断的4×4RGB像素单元100′。第一象限104a包括像素1、2、5和6,第二象限104b包括像素3、4、7和8,第三象限104c包括像素9、10、13、14,并且第四象限104d包括像素11、12、15和16。象限104a至104b中的每个如在图3(b)中所示被减少到单个颜色。插值压缩模式可以用于具有渐进颜色变化的单元,如在自然图像中。图4示出了聚类压缩模式的示例。图4(a)示出了具有16个像素的原始的4×4RGB像素单元100,每个像素具有由R值,G值和B值描述的颜色,也被称为像素的RGB值。在聚类压缩模式中,相似颜色的像素聚类在一起。聚类被限定为最大距离内的R值,G值和B值的范围。如果像素具有彼此阈值距离内的个体R值、G值和B值中的每个,则像素被处理为相似颜色的像素。相似颜色的这样的像素聚类在一起。在一些示例中,聚类压缩模式可应用单个通过过程,在该过程中原始的4×4RGB像素单元100中的第一像素限定第一聚类。当第二像素的R值,G值和B值小于距第一像素的R值,G值和B值阈值距离时,第二像素被添加到聚类,并且至少使用第二像素的R值,G值以及B值更新聚类RBG边界。当第二像素的R值,G值和B值中的任何一个比阈值更远时,产生新的聚类。针对单元中的所有像素继续该过程,并且每个聚类的颜色被计算为聚类边界的中点。图4(b)示出了当从图4(a)中示出的原始的4×4RGB像素单元100开始时由示例中的聚类压缩模式获得的聚类的4×4RGB像素单元100′。在图4(a)的示例中,像素1、2、12和15被认为是相似的,被聚类在一起,并通过颜色RGB1表示,颜色RGB1被计算为聚类边界的中点。例如,R值,G值和B值被设置为聚类的中点。同样地,像素3、7、8和9,像素4、10、13和14,以及像素5、6、11和16被聚类在一起,并分别由共同的颜色RGB2,RGB3和RGB4表示。图5示出了块截断压缩模式的示例。在这种模式下,原始的4×4RGB像素单元,未在图5描绘,可以被分离成两半,在图5(a)中示出为顶部/底部,或在图5(b)中示出为左部/右部。每个半单元使用例如块截断编码(BTC)过程被减少到两个颜色,该块截断编码(BTC)过程基于亮度将像素分类到两个桶(bucket)中。在一些示例中,相应半单元的减少可以通过应用另一种编码过程来执行。在一些示例中,可以通过合并颜色实现进一步的压缩,合并的颜色比预定义的距离更靠近在一起,例如,当满足以下条件时,颜色可以被合并在一起|R0-R1|+|G0-G1|+|B0-B1|<距离,其中R0,G0,B0=第一颜色的RGB值,R1,G1,B1=第二颜色的RGB值,距离=要合并的颜色之间预定义的最大距离。该附加的压缩模式可以应用于上述的插值,聚类和块截断压缩模式。图6示出了用于选择有损压缩过程的示例,该有损压缩过程将被用于压缩图像或图像的部分同时保留白色。在图6中,在150处接收未压缩的或原始的4×4RGB像素单元的输入像素。块160使用例如精确匹配计数4×4RGB像素单元中的不同的颜色。块170确定颜色的数目是四个还是更少的颜色。当四个或更少的颜色在4×4RGB像素单元中被找到时,4×4RGB像素单元是使用精确的颜色由块180无损编码的。块180可以应用适当的无损压缩过程用于编码四个颜色。例如,可以应用上述两阶段RGB压缩过程,并且在第一阶段中,由这些颜色以及针对4×4像素中的每个具有两个比特的掩码描述具有四个或更少颜色的4×4RGB像素单元,该掩码指示相应像素映射到四个颜色中的哪一个。可变速率压缩阶段如上所述取决于颜色的数目使用1个字节到17个字节对4×4RGB像素单元进行编码。在一些示例中,块180可以对非灰色的对求平均,但是相似颜色由预定义的距离分离,从而减少颜色的数目以使用变成有损的压缩进行编码。如果块170确定有在4×4RGB像素单元中多于四个颜色,则块190计数白色像素的数目。块200确定4×4RGB像素单元是否包括多于预定义的数目的白色像素。预定义的数目可以是可编程的阈值。在图6中描绘的示例中,可编程阈值是1,并且块200确定4×4RGB像素单元是否包括多于一个白色像素。如果块200在4×4RGB像素单元中没有找到或仅找到一个白色像素,则白色被处理为常规颜色并且选择颜色非保留有损压缩过程将白色处理为4×4RGB像素单元中的任何其他颜色。在一些示例中,可以应用上述插值压缩模式,聚类压缩模式和块截断压缩模式中的至少一个。在一些示例中,可以应用另一种颜色非保留有损压缩过程,该颜色非保留有损压缩过程等同地处理4×4RGB像素单元中的所有颜色。块210计算用于在4×4RGB像素单元中的多个部分的颜色范围。在示例中,4×4RGB像素单元可被分离成多个2×2像素象限,这产生上面参考图3(b)描述的四个象限104a-104d。2×2像素象限104-104d中的每个的颜色范围被计算。例如,2×2像素象限104-104d中的每个的颜色范围被计算为max[R最大-R最小,G最大-G最小,B最大-B最小]。在示例中,块220确定所有四个象限104a-104d的范围是否低于可以被设置到18的值的低对比度阈值。当块220确定所有象限104a-104d的范围低于该阈值时,块230应用适用的插值压缩模式并且通过下采样该4×4RGB像素单元到降低的分辨率(例如从600dpi到300dpi),通过对2×2像素象限104-104d中的每个中的四个像素的颜色求平均来产生如以上图3(b)中所示的单元,将4×4RGB像素单元减小到四个颜色。在一些示例中,当个体象限的范围是彼此接近时,可以应用进一步颜色减少,例如,当相应的颜色是比预定义的距离更接近时:|R0-R1|+|G0-G1|+|B0-B1|<距离,其中R0,G0,B0=第一颜色的RGB值,R1,G1,B1=第二颜色的RGB值,距离=颜色之间的预定义的距离。如果块220确定存在四个象限104a-104d中的任何一个具有超过阈值的范围,则块240应用上面描述的聚类压缩模式用于聚类具有相似颜色的像素。块250确定块240是否生成四个或更少的聚类。如果块240生成四个或更少的聚类,则块260使用RGB颜色针对被设置为聚类中点的聚类中的每个对4×4RGB像素单元进行编码。当确定块240生成多于四个聚类时,块270应用块截断压缩模式将4×4RGB像素单元分离成两半,顶部/底部(参见上述图5(a))或左部/右部(参见上述图5(b))。分离是通过至少使用由块210针对象限104a-104d中的每个计算的颜色范围以及通过查找具有最小颜色范围的2×4像素块来执行的。在分离4×4RGB像素单元之后,块420例如通过应用块截断编码(BTC)过程将每个半单元减少到两个颜色。现在我们返回到块200,如果确定在4×4RGB像素单元中有两个(或更多)白色像素,则应用颜色保留有损压缩过程,该过程处理与4×4RGB像素单元中的其他颜色分离的白色。块290应用上述聚类压缩模式,其中白色像素限定第一聚类。几乎白色的像素,例如距离白色颜色值预定义的距离内的像素,可以被添加到白色聚类。剩余的非白色像素如上所述进行处理以便生成其他聚类。块300确定块290是否生成四个或更少聚类。如果生成四个或更少聚类,则块310使用白色聚类的白色颜色的编码值和与剩余聚类相关联的颜色的编码值对4x4RGB像素单元进行编码。如上所述,剩余聚类的颜色可以被计算为聚类的中点。如果块300确定由块290生成了多于四个的聚类,则块320保持或保留白色聚类以及主导聚类,该主导聚类可以是具有遵循聚类的最多像素的聚类。块330至少使用白色聚类的编码,至少使用生成为主导聚类的中点的主导聚类的颜色编码对4×4RGB像素单元进行编码,并且剩余非聚类像素使用例如块截断编码(BTC)过程被减少到两个颜色。上述关于图6描述的过程允许这样的图像压缩,该图像压缩提供了增加的图像质量和降低的计算同时保留纯化的颜色(例如白色)。该过程可以提供4∶1的最小压缩比,同时保留白色像素。已经参考白色像素描述上述示例,但该过程也可以被应用于其他颜色,例如应用于黑色像素,应用于特定的灰色颜色或特定的RGB颜色。图7示出了包括缓冲器352的设备350的框图,该缓冲器352用于存储待压缩图像的预定义的区域,例如如上所述的4×4RGB像素单元。缓冲器352连接到处理器354,该处理器也被称为处理资源,用以处理上面详细讨论的图像的预定义的区域。设备350可以是计算装置,例如台式计算机,打印机内的微控制器,图像捕获装置(例如,数码相机或扫描仪)内的处理器,GPU和ASIC,或类似物。在一些示例中,设备350可以连接到内部或外部存储356用以存储经压缩的图像。在一些示例中,例如通过处理器354针对待压缩图像的每个预定义的区域或针对待压缩图像的多个预定义的区域重复上面描述的过程,使得最后,可以存储完全或部分经压缩的图像。图8(a)示出了包括打印机362外部的计算装置360的打印管线358的示例。该计算装置360可以包括打印机驱动程序或光栅图像处理器(RIP)364,该打印机驱动程序或光栅图像处理器(RIP)364包括图7的设备350用于选择用于压缩图像或图像的单元同时保留预定义的颜色的有损压缩过程。由打印机驱动程序/RIP364生成的图像通过上述过程压缩并经由通信链路366的转送到打印机362。压缩可以减少传输时间并且可以加速打印过程。打印机362可以是2D或3D的喷墨打印机,例如页宽阵列(PWA)打印机,其包括通常被称为打印杆的打印头组或基板宽度固定打印头,用以打印到移动通过打印杆的纸张或其他打印基板或打印目标上。在其他示例中,2D或3D的喷墨打印机可以是具有托架的托架打印机,该托架可在基本上垂直于打印目标的前进方向的托架扫描方向上移动,以及承载用于打印在托架在其上方移动的纸张,或者另一打印基板或打印目标上的打印头。在一些其他示例中,打印机可以是电子照排打印机。打印机326可以包括存储装置368(例如磁盘驱动器),和用于生成打印输出的打印引擎370。存储装置368可以用于使例如从计算装置360接收的压缩形式的打印作业或页面排队。存储装置368也可用于存储压缩形式的打印作业和页面用于重印。这将减少打印机362内部的存储需求和读取/写入时间。在一些示例中,该设备350可以在打印机362内部被实现为图8(a)中的虚线框371。该设备也可以被实现为打印引擎370的一部分。图8(b)示出了图像捕获装置372,例如扫描装置或数码相机。图像捕获装置372可以包括处理部分374,该处理部分374实现设备350,以允许由装置372捕获的图像以压缩形式输出到内部或外部存储376或用于进一步处理。在传输用于存储或用于进一步处理的图像时,压缩可以减少传输带宽。在存储图像时也可以减少存储需求。经压缩的图像可经由如在图8(b)的378处示意性示出的有线或无线通信链路被传送以用于进一步的处理或用于存储。尽管已经在设备的上下文中描述了本文描述的技术的一些方面,但是这些方面也可以表示对应方法的描述。类似地,在方法的上下文中描述的方面也表示对应设备的对应特征的描述。在本说明书,包括任何所附权利要求,摘要和附图中公开的所有特征,可以以任何组合加以组合。在本说明书,包括任何所附权利要求,摘要和附图中公开的每个特征,可以由用于相同,等同或相似目的的其他特征所替代,除非另有明确说明。因此,除非另有明确说明,所公开的每个特征都是等同或相似特征的通用系列的一个示例。将理解的是,本文描述的示例可以以硬件、机器可读指令或硬件或硬件和机器可读指令的组合的形式来实现。任何这样的机器可读指令可以以易失性或非易失性存储的形式存储,诸如,例如诸如ROM的存储装置,不管是否可擦除或可重写,或以存储器的形式存储,诸如,例如RAM,存储器芯片器件或集成电路或光学或磁性可读介质,诸如,例如CD,DVD,磁盘或磁带。应当理解,这些存储装置和存储介质是机器可读存储的示例,该机器可读存储适于存储当被执行时实现本文所述的示例的一个或多个程序。...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1