首页> 中国专利> 压缩后的属性平面与颜色平面的交错编码方法及打印设备

压缩后的属性平面与颜色平面的交错编码方法及打印设备

摘要

本发明可提供一种用于压缩后的属性平面和颜色平面的交错编码的方法及打印设备。示例实施例可涉及:从带有一个或多个颜色平面的图像中获取a×b像素宏单元,并且获取a×b属性宏单元。a×b像素宏单元可以包含四个非重叠的m×n像素单元,并且a×b属性宏单元可以包含四个非重叠的m×n属性单元。a×b像素宏单元中的像素可以与各自的颜色值相关联。示例实施例还可涉及:确定分别与四个非重叠的m×n属性单元相关联的四个属性平面输出值。示例实施例还可进一步涉及:为非重叠的m×n像素单元确定一至四个颜色平面输出值,并且写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示。根据本发明,可提供一种用于压缩后的属性平面与颜色平面的交错编码的方法。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-09

    授权

    授权

  • 2016-09-07

    实质审查的生效 IPC(主分类):G06F3/12 申请日:20160115

    实质审查的生效

  • 2016-08-10

    公开

    公开

说明书

技术领域

本发明总的来说涉及一种用于压缩后的属性平面与颜色平面的交错编码的方法。

背景技术

近年来,各种类型的打印设备已经在商业和消费者使用中流行起来。除了传统的黑白打印机之外,彩色打印机、扫描仪、复印机、传真机和其他部件现在也很普遍。支持这些操作中两种或者更多种操作的复合机(MFP)也被广泛使用。随着这些设备越来越流行,它们正被用于处理更加高级且复杂的文档。

发明内容

本发明可以提供一种用于压缩后的属性平面与颜色平面的交错编码的方法。

第一示例实施例可以涉及:从输入图像中获取m×n像素单元。所述输入图像可以包含多于m×n个像素,并且所述m×n像素单元中m×n个像素中的每一个可以与至少一个颜色值相关联。第一示例实施例还可以涉及:可能基于m×n像素单元,获取m×n属性单元。所述m×n属性单元的元素可以以一对一的方式与所述m×n像素单元中相应的像素相关联,并且所述元素可以标识与这些元素的关联像素有关的各自的控制数据。第一示例实施例可以进一步涉及:以有损方式对所述m×n像素单元进行压缩,并且以无损方式对所述m×n属性单元进行压缩。所述m×n像素单元的压缩可以基于所述m×n属性单元中的至少一部分。第一示例实施例可以另外涉及:将压缩后的m×n像素单元与压缩后的m×n属性单元这两者的交错后表示写入输出介质。

第二示例实施例可以涉及:从输入图像中获取a×b像素宏单元。所述a×b像素宏单元可以包含四个非重叠的m×n像素单元,其中所述a×b像素宏单元中a×b个像素具有各自的颜色值并且与各自的对象类型标记相关联。第二示例实施例还可以涉及:可能基于各自的颜色值和各自的对象类型标记,选择压缩技术为(i)将所述a×b像素宏单元作为一个整体压缩;或者(ii)通过独立地压缩四个非重叠的m×n像素单元中的每一个来压缩所述a×b像素宏单元。第二示例实施例可以进一步涉及:根据选择的压缩技术对所述a×b像素宏单元进行压缩。第二示例实施例可以另外涉及:将压缩后的 a×b像素宏单元的表示写入计算机可读输出介质。

第三示例实施例可以涉及:从带有一个或多个颜色平面的输入图像中获取a×b像素宏单元和a×b属性宏单元。所述a×b像素宏单元可以包含四个非重叠的m×n像素单元,并且所述a×b属性宏单元可以包含四个非重叠的m×n属性单元。所述a×b像素宏单元中a×b个像素可以与各自的颜色值相关联,并且所述a×b属性宏单元中的元素可以以一对一的方式与所述a×b像素宏单元中相应的像素相关联。第三示例实施例可以还包括:确定独立地与所述四个非重叠的m×n属性单元相关联的四个属性平面输出值。第三示例实施例可以进一步包括:为非重叠的m×n像素单元确定一至四个颜色平面输出值。第三示例实施例可以另外包括:将四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示写入计算机可读输出介质。

第四示例实施例可以包括:至少包含有处理器和数据储存器的计算设备。数据储存器可以包括程序指令,当所述程序指令由所述处理器执行时,使所述计算设备根据所述第一、第二和/或第三示例实施例来执行操作。

通过适当的参考附图来阅读以下的具体实施方式,这些方面和其他方面、优点和替代例对于本领域技术人员而言将会变得显而易见。进一步地,应当理解的是,本发明内容部分和本文中其他地方提供的描述旨在通过示例方式而不是限制方式示出要求保护的主题。

根据本发明,可以提供用于压缩后的属性平面与颜色平面的交错编码的方法。

附图说明

图1描绘了根据示例实施例的打印设备。

图2是示出根据示例实施例的打印设备的计算部件的框图。

图3是示出根据示例实施例的涉及打印设备的各种数据路径的框图。

图4描绘了根据示例实施例的可以被包含在电子文档中的图像。

图5描绘了根据示例实施例的属性阵列。

图6描绘了根据示例实施例的文档处理管道。

图7描绘了根据示例实施例的包含四个单元的宏单元。

图8描绘了根据示例实施例的颜色平面决策树。

图9描绘了根据示例实施例的属性平面决策树。

图10描绘了根据示例实施例的交错编码的伪代码。

图11A描绘了根据示例实施例的四个平面的单元。

图11B描绘了根据示例实施例的图11A在输出介质上交错的单元。

图12A描绘了根据示例实施例的四个平面的单元。

图12B描绘了根据示例实施例的图12A在输出介质上交错的单元。

图13是根据示例实施例的流程图。

图14是根据示例实施例的另一个流程图。

图15是根据示例实施例的又一个流程图。

具体实施方式

本文描述示例方法和系统。可以进一步使用其他示例实施例或特征,并且可以进行其他改变,而不会背离这里所呈现的主题的范围。在以下的详细描述中,对形成其一部分的附图进行参考。

本文中所述的示例实施例并不意味着是限制性的。因此,本文中一般描述并在附图中示出的本发明的方面,可以被布置、替换、结合、分开和设计为各种各样的配置,本文中明确预期了所有这些配置。

1.介绍

在最近30多年间,打印技术已经从仅仅产生黑白图像的基于点阵的简单输出设备发展到今天能够产生高分辨率彩色图像的基于激光的高级打印设备。另外,现代的打印设备还可以被用作复印机、扫描仪和传真机。这么做这些设备可以能够存储大量排队等待打印或传真的电子文档或者已经被扫描的电子文档。因而,许多打印设备是计算设备的专用形式,其可以包括例如一个或多个处理器、数据储存器和输入/输出接口。

不管是在住宅、企业还是在另一种类型的场所使用打印设备,打印设备都可以是能够被通信连接至其他各种计算设备的共享资源。因此,在某些环境下,打印设备的存储要求可能相当高,这是因为许多计算设备可以将电子文档传送至打印设备以进行打印。通常,打印设备在一个时刻会以先到先服务的方式打印、复印、传真和/或扫描一个电子文档。因此,打印设备可以存储等待服务的潜在的大量电子文档。另外,由于诸如包含背景图像或标志(logo)的叠加文档之类的一些电子文档可以被应用于多个打印作业,因此这些电子文档可以被无限期地存储在打印设备中。

因为数据储存器(例如,诸如随机存取存储器(RAM)、固态存储器、硬盘驱动存储器和/或闪存之类的存储器)的成本可能昂贵,所以对所存储的电子文档进行压缩用以降低打印设备的数据存储要求可以是有益的。另外,因为一些电子文档可以被传送至打印设备和计算设备,和/或从打印设备和计算设备中被传送出,所以对这些电子文档进行压缩可以使传送更快且使用更少的网络容量。

再者,因为打印作业可能是大规模的(例如,打印作业可能包括包含有数百页的 一个或多个电子文档),所以在每个作业被打印之前,对已排队的打印作业进行压缩会节省短期存储空间。此外,用户可能希望将打印作业保存在长期储存器内以便在以后的时间进行打印。因此,对打印作业进行压缩可以允许更多的打印作业被保存。进一步地,在长期存储器中存储和检索较大的打印作业的行为可能缓慢,但是该行为可以通过压缩打印作业以使它们的尺寸更小而被加速。

2.示例打印设备

图1描绘了示例打印设备100。打印设备100可以被配置为将部分存储和/或完全存储的电子文档打印在各种类型的物理输出介质上。这些输出介质包括各种尺寸和类型的纸张、字幕片(overhead transparency)等,但并不限于此。打印设备100可以被互换地称为“打印机”。

打印设备100可以被用作诸如个人计算机、服务器设备、打印服务器等计算设备的本地外设。在这些情况下,打印设备100可以通过诸如串行端口电缆、并行端口电缆、通用串行总线(USB)电缆、火线(IEEE 1394)电缆或者高清多媒体接口(HDMI)电缆之类的电缆而被附接至计算设备。因此,计算设备可以被用作打印设备100的电子文档源。

另一方面,打印设备100可以包括有线或无线网络接口,诸如以太网或802.11(WiFi)接口。如此布置后,打印设备100可以被用作能够通过网络与打印设备100进行通信的任意数量的计算设备的打印设备。在一些实施例中,打印设备100可以同时用作本地外设和网络打印机。为了使用打印设备100,计算设备可以安装一个或多个打印机驱动器。这些打印机驱动器可以包括软件部件,该软件部件将待打印的电子文档从存储在计算设备上的各种本地表示转换为打印设备100所支持的一种或多种表示。

不管怎样,打印设备100可以被认为是非通用类型的计算设备,并且可以执行打印相关任务和非打印相关的任务。例如,打印设备100还可以包括复印机、传真机以及扫描仪的功能。在一些实施例中,打印设备100可以使用扫描单元来使复印机和/或传真机的功能变得容易。例如,打印设备100可以将物理文档扫描成电子格式,然后打印所获得的电子文档以提供副本,和/或经由电话接口发送所获得的电子文档以提供传真操作。另外,打印设备100可以经由电话接口接收传真来的电子文档,然后对该电子文档的表示进行压缩和存储。

为了支持打印设备100的各种性能,打印设备100可以包括文档进纸器/输出托盘102、供纸盒104、用户接口106、扫描元件108以及机壳110。应当理解,打印设备可以呈现各种各样的形式。因此,打印设备100可以包括比图1所示的更多或更少的 部件,和/或以与图1所示不同的方式所布置的部件。

文档进纸器/输出托盘102可以保持待扫描、复印或传真的物理文档(例如,一张或多张纸的堆)。有利的是,文档进纸器/输出托盘102可以允许打印设备100自动进给由打印设备100处理的多个物理文档而无需进行人工干预。文档进纸器/输出托盘102还可以包括一个或多个独立的输出托盘,该输出托盘用于保持已由打印设备100处理过的物理文档。这些物理文档可以包括已由打印设备100扫描、复印或传真的物理文档,以及已由例如打印设备100的传真和/或复制功能产生的物理文档。

供纸盒104可以包括用于各种类型的物理介质的托盘和/或进纸元件。例如,供纸盒104可以包括用于8.5x 11英寸的纸、A4纸、信笺纸、信封等的独立的托盘。对于打印设备100的涉及到输出物理介质(例如打印、复印和/或接收传真)的任何操作,供纸盒104可以供应物理介质。

用户接口106可以使打印设备100与人类或非人类用户之间的交互容易,例如从用户接收输入和向用户提供输出。因此,用户接口106可以包括诸如小键盘、键盘、触摸感应面板或存在感应面板、操纵杆、麦克风、静物照相机和/或摄像机之类的输入部件。用户接口106还可以包括一个或多个输出部件,例如显示屏(例如,显示屏可以与存在感应面板结合)、阴极射线管(CRT)、液晶显示器(LCD)、基于发光二极管(LED)的显示器、使用数字光处理技术的显示器、灯泡和/或现在已知或以后开发的一个或多个其他类似的设备。用户接口106还可以被配置为能够通过扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或现在已知或将来以后开发的其他类似的设备来产生可听输出。

扫描元件108可以是玻璃面板,在该玻璃面板下,可移动光源执行操作,用以对被放置于玻璃面板顶部的物理介质进行扫描。可替代地,玻璃面板下的数码相机可以通过拍摄物理介质的图片,来对被放置于玻璃面板顶部的物理介质进行“扫描”。已扫描的物理介质的图像可以被存储在与打印设备100相关联的数据储存器中。

机壳110可以包括用于包含和互连打印设备100的各种部件(诸如文档进纸/输出托盘102、供纸盒104、用户接口106和扫描元件108)的物理外壳。此外,机壳110可以容纳图1中未示出的其他部件。例如,机壳110可以包含一个或多个调色剂盒、液体喷墨、带、辊和/或电源。进一步地,机壳110可以包括通信接口,诸如有线和/或无线网络接口、电话接口(例如RJ45插座)、USB接口、接口、读卡器端口等。

而且,由于打印设备100可以基于通用和/或专门设计的计算设备部件,因此机壳110还可以容纳这些部件中的一些或者全部。针对这一点,图2描绘了可以被包括在 打印设备100中的计算设备部件200(例如计算设备的功能元件)的示例实施例200。

计算设备部件200可以包括处理器202、存储器204和输入/输出单元206,所有这些都可以通过系统总线208或类似的机构相联接。处理器202可以包括一个或多个中央处理单元(CPU),诸如一个或多个通用处理器和/或一个或多个专用处理器(例如专用集成电路(ASIC)或数字信号处理器(DSP)等)。

接下来,存储器204可以包括易失性数据储存器和/或非易失性数据储存器,并且可以以整体或部分的方式被集成于处理器202。存储器204可以存储由处理器202可执行的程序指令以及由这些指令所操纵用以实现此处所描述的各种方法、处理或功能的数据。可替代地,这些方法、处理或功能可以由硬件、固件、软件和/或硬件、固件和软件的任何组合来定义。因此,存储器204可以包括有形的非暂时性计算机可读介质,在该计算机可读介质上存储有程序指令,当这些程序指令被一个或多个处理器执行时,会使打印设备100实施在本说明书或附图中所公开的任何方法、处理或功能。

存储器204也可以被配置为存储可被随后处理(例如打印)的压缩和非压缩的电子文档。因此,存储器204可以被用作这些电子文档的输出介质。

输入/输出单元206可以包括参考用户接口106而描述的任何操作和/或元件。因此,输入/输出单元206可以用于对处理器202的操作进行配置和/或控制。输入/输出单元206还可以基于由处理器202执行的操作来提供输出。

提供打印设备的这些示例是为了示意性的目的。除了和/或可代替于上述示例,打印机和计算机技术的其他组合和/或子组合还可以存在于其他的可能性之中,而不会背离本文实施例的范围。

图3描绘了可以使由打印设备100处理过的电子文档的表示通过的一些可能的数据路径。在图3中,假设打印设备100可以包括扫描单元302和打印单元304。这些单元中的每一个的控制可以用硬件、固件、软件、或者硬件、固件和/或软件的任何组合来实现。此外,扫描单元302和打印单元304中的每一个可以与计算设备300进行通信,并且还可以与其他计算设备进行通信。在一些情况下,由打印设备100支持的数据路径可以被称为“管道”。

扫描至打印数据路径310可以由扫描单元302和打印单元304支持。扫描至打印数据路径310例如可以在用户指令打印设备100复印物理文档时被使用。响应于该指令,扫描单元302可以将物理文档扫描为电子文档,并且经由扫描至打印数据路径310将电子文档发送至打印单元304。扫描至打印数据路径310的使用可以涉及至少暂时将电子文档中的一些或全部(可能以压缩格式)存储在打印设备100的数据储存器中。然后,打印单元304可以将电子文档打印到物理介质(例如一张或多张纸)上。

扫描至主机数据路径306还可以由扫描单元302和计算设备300支持。扫描至主机数据路径306例如可以在用户指令打印设备100扫描物理文档时被使用。用户也可以指令打印设备100将所获得的电子文档的表示发送至计算设备300,或者打印设备100可以被预配置为将电子文档自动发送至计算设备300。因此,响应于该指令,扫描单元302可以将物理文档扫描为电子文档,并且经由扫描至主机数据路径306将所获得的电子文档发送至计算设备300。扫描至主机数据路径306的使用可以涉及至少暂时将电子文档中的一些或全部(可能以压缩格式)存储在打印设备100的数据储存器中,并且将所获得的电子文档的表示发送至计算设备300。

主机至打印数据路径308可以由计算设备300和打印单元304支持。主机至打印数据路径308例如可以在用户指令计算设备300在打印设备100上打印电子文档时被使用。响应于该指令,计算设备300可以将电子文档的表示发送至打印单元304。打印设备100可以通过打印单元304将电子文档打印到物理介质上。在打印电子文挡之前和/或在打印电子文挡期间,电子文档的一些或全部可以被存储(可能以压缩格式)在打印设备100的数据储存器中。

明显地,对于以上讨论的数据路径中的至少一个以及可能地由打印设备100支持的其他数据路径,电子文档可以请求存储和/或通过网络或电缆发送。通过对这些存储和/或发送的电子文档进行压缩,能够提高电子文档的存储和发送的效率。例如,如果电子文档可以被平均压缩至它们初始大小的四分之一,则能够在固定量的数据储存器中存储大约四倍的电子文档。进一步地,这些压缩的电子文档通过网络或电缆的发送能够以大约四倍于未压缩的电子文档的发送的速度发生。

过去,有损压缩可能被用于一些数据路径,而无损压缩可能被用于其他数据路径。(有损压缩技术通过丢弃数据中的一些来压缩数据,而无损压缩技术不丢弃任何数据来压缩数据)。例如,在一些实施方式中,主机至打印数据路径308可以利用无损压缩,从而在电子文档的打印版本中保持文本和线条的锐利边缘。另一方面,扫描至主机数据路径306和扫描至打印数据路径310可以利用有损压缩,从而有效地存储和发送所扫描的包含图形图像的物理文档。通过对打印设备100的数据路径中的至少一些(并且可能是全部)使用相同或类似的压缩技术,打印设备100可以更加有效并且可以简化打印设备100的软件和/或硬件的实现。

因此,支持无损和有损压缩这两者的压缩技术较为理想。无损压缩和有损压缩这两者能够被应用于相同的文档中也较为理想。针对这一点,理解图像如何被呈现可能是有用的。

3.示例图像

图像可以是根据图像格式和颜色模型来编码的像素的矩阵。图4描绘了图像400,该图像400可以被包括在由打印设备100处理的物理或电子文档上或内。尽管图像400呈现黑白色,但是打印设备100也可以对具有类似特性的彩色图像进行处理。图像400可以采用各种分辨率来形成,诸如600点每英寸(dpi)或在其他示例中1200dpi。

如图4所示,图像400包含各种类型的内容。例如,图像400包含具有锐利边缘的文本和线条。进一步,图像400还包含具有连续色调的部分(例如图像400的左上角),以及包含具有真实感数据的部分(例如图像400的右下角和右上角)。文本覆盖图像400的不同部分。因此,图像400示出用在商业打印中,例如用在手册页、杂志页、传单页或广告页中的普通类型的图像。

在一些可能的实施例中,诸如示例图像400之类的图像中的每一个像素可以被归类为三种不同对象类型(图像图形、矢量图形或文本)中的一种。图像图形包括诸如来自照片的图像之类的真实感图像。在图像400的右下角和右上角中的真实感数据可以被当作图像图形。遍及图像400中的非文本行可被当作矢量图形,并且文本字符(例如,以“E”和“R”为例)可以被当作文本。

特定像素的对象类型可以通过电子文档的页面描述语言(PDL)表示来确定或者根据电子文档的页面描述语言(PDL)表示来确定。PDL是以比页面的实际像素更高水平描述打印页面或显示页面的外观的语言、语法或格式。页面的像素表示可以从PDL中导出。

因此,电子文档可以包含一个或多个由PDL文档表示的页面。这些页面中的每一个可以通过PDL文档的部分或全部和/或通过图像来表示。存在PDL的很多示例,其中可携式文件格式(PDF)是其中之一。

统一的压缩技术能够精确表示图像400的锐利边缘和线条,同时为了减小包含图像400的电子文档的存储需求而仍旧使用有损压缩。特别是,理想的是保持诸如文本、基本几何图形和线图之类的某些元素的准确特征,因为即使是较小的失真,这些元素都无法显示得令人眼满意。因此,这些元素可以被归类为矢量图形或文本,并且可以有针对性地以无损方式压缩。

另一方面,真实感图像和渐变复杂图形可以不具有这样的精确性而被观看。因此,这些元素可以被归类为图像图形,并且可以有针对性地以有损方式压缩。例如,图像图形可以以这样一种方式被压缩,即,对于人眼而言它们在视觉上显现得与它们各自的未压缩版本相同或类似。

进一步地,像素的对象类型(例如,图像图形、矢量图形或文本)可能会对应用于像素的颜色转换以及应用于像素的半色调屏幕(halftone screen)的类型产生影响。 这些问题将在下文中更详细地讨论。

在一些情况下,矢量图形与文本对象可能看起来具有类似的特性。的确,在一些实施例中这两个类别可以结合,并且以相同方式处理。然而,诸如浅色的线条之类的某些类型的矢量图形在以与文本不同的方式处理时会呈现得更好。例如,如果浅色的线条以与文本相同的方式处理,则这些线条中的一些可能会变得难以区分。因此,对矢量图形应用不同的颜色转换和/或不同的半色调屏幕可以保持和/或加强这些线条。例如,专为矢量图形像素选择半色调屏幕可能会使该像素在被打印时会被施加更多的调色剂。

4.示例图像颜色模型

可以使用多个颜色模型来表示电子文档。因此,稳健的压缩技术应当能够对这些模型中的一些或者全部进行操作。进一步地,压缩技术可以包括专用于个别的颜色模型的预处理。

例如,红绿蓝(RGB)颜色模型可以被用于诸如电视机、显示器或计算机屏幕之类的电子输出设备上的图像显示。RGB是加色模型,其中红光、绿光和蓝光以各种方式相加在一起以产生色谱。例如,可以通过结合绿色和蓝色来形成青色,可以通过结合红色和绿色来形成黄色,可以通过结合红色和蓝色来形成品红色,以及可以通过结合红色、绿色和蓝色来形成白色。

RGB图像的特定像素可以被表达为三平面元组(R,G,B),三平面元组(R,G,B)中的每一个平面可以从零变化至预定的最大值(例如255)。如果全部平面为零,则结果可以是黑色。如果全部平面为最大值,则结果可以是可表示的最亮的白色。(此处所描述的颜色平面也可以被称为颜色通道。)

RGB输出通常依赖于设备,因为不同的输出设备可以以不同方式显示相同的RGB图像。因此,在某些情况下,这些区别可能会被人察觉。在一些实施例中,使用扫描至主机数据路径306扫描到打印设备100中的物理文档可以使用RGB颜色模型来编码。

青色-品红色-黄色(CMY)颜色模型可以被用于通过打印设备打印彩色图像。CMY是减色模型,其中采用不同方法将青色、黄色和品红色应用于白色表面以再现色谱。例如,可以通过结合品红色和黄色来形成红色,可以通过结合青色和品红色来形成蓝色,以及可以通过结合青色和黄色来形成绿色。因此,CMY颜色模型可以被认为是RGB颜色模型的补充。

CMY图像的特定像素可以被表达为三平面元组(C,M,Y),三平面元组(C,M,Y)中的每一个平面可以从零变化至预定的最大值。如果全部平面为零,则结果 可以是白色。如果全部平面为最大值,则结果可以是黑色。

与RGB输出一样,CMY输出通常依赖于设备,因为在不同打印设备上打印的相同CMY图像的输出可能看起来不同。在某些情况下,这些区别可能会被人察觉。在一些实施例中,使用主机至打印数据路径308和/或扫描至打印数据路径310由打印设备100打印的电子文档可以使用CMY颜色模型来编码。

在一些实施例中,还可以使用四平面CMYK颜色模型。除了还使用关键(黑色)平面之外,CMYK的四平面模型可以与CMY颜色模型类似或相同。除了可能结合青色、品红色和黄色以形成黑色之外,还可以使用单独的关键(黑色)墨源来形成黑色。因此,CMYK图像的特定像素可以被表达为四平面元组(C,M,Y,K),四平面元组(C,M,Y,K)中的每一个平面可以从零变化至预定的最大值。

使用CMYK颜色模型,可以支持与CMY模型相同的颜色,但是因为K着色剂可以代替C、M和Y着色剂的混合,所以通常使用较少的墨。然而,CMYK颜色模型不可能总是方便地转换至其他颜色模型和从其他颜色模型转换得到,因为K着色剂的添加增加了冗余,例如相同的颜色可以是混合不同的C、M、Y和K的组合的结果。在一些实施例中,一个或多个颜色表可以被用于将像素从CMY模型转换到CMYK模型,和/或在颜色模型的其他对之间转换。

另外的颜色模型是灰色,也被称为灰度,其可被用于黑白图像的表示。不像RGB和CMY/CMYK颜色模型,灰色颜色模型的每个像素使用对像素的强度进行编码的单个平面(K)来表达。灰色平面所使用的数值可以从黑色的零变化至白色的预定的最大值(例如255)。在一些实施例中,由打印设备100支持的一个或多个数据路径能够使用灰色颜色模型来对图像进行编码。

另一个颜色模型是YCbCr。在一些实施方式中,该颜色模型可以被用作图像的替代表示。具体来说,Y平面可以表示像素的亮度,并且Cb和Cr平面可以分别表示蓝-黄色度和红-绿色度。YCbCr颜色模型与RGB和CMY颜色模型具有明确的关系,并且YCbCr颜色模型可以相对容易地转换至这些颜色模型中的任一个,并且从这些颜色模型中的任一个转换得到。

YCbCr颜色模型的附加优点是,相较于采用RGB或CMY/CMYK颜色模型编码的图像的压缩而言,使用YCbCr颜色模型编码的图像的压缩趋向于更加有效。具体而言,人的眼睛并不太擅长于检测图像中的高频(例如快速变化)的色度信息。因此,使用YCbCr颜色模型编码的图像可以通过忽略Cb和Cr平面的高频分量来利用这个信息。所以,以特定颜色模型编码的图像可以在压缩之前转换至YCbCr颜色模型,从而提高压缩性能。

5.示例属性平面

除了颜色平面之外,图像还可以使用属性平面来数字化地表示。虽然属性平面的值在图像中可能没有明显地体现,但是属性平面可以被用于对图像压缩和处理操作提供指导。

作为示例,图像中的每个像素可以与表示属性的比特位(例如,8比特位或16比特位)的阵列相关联。这些属性中的一些可以指示像素是否被用作在其他材料的顶部的叠加或者是否被用作打印或复印的特征的一部分。其他属性可能包含对中性颜色保持技术和在颜色模型之间转换像素时使用的颜色转换表的引用、和/或对打印像素时使用的半色调屏幕的引用。

属性平面的阵列可以被用于标识它的相关像素所表现出的对象类型。这些标识出的对象类型例如可以包括图形图像、矢量图形或文本。对象类型标记可以是这样的属性阵列的一个或多个比特位。

在图5中示出示例属性阵列500。属性阵列500包括叠加位502、两个中性颜色保持位504、506、两个颜色表位508、510、复印或打印位512、以及两个半色调位514、516。

叠加位502可以指示相关像素是否覆盖其他材料。例如,一些打印设备可以支持将一个或多个背景图像或图案应用于某些打印作业。这些图像或图案可以是静态的,例如标志或边框,或者可以是动态的,例如自动加页码(例如,在文档的每一页的底部显示诸如“1/3页”之类的词句)。

例如,在自动加页码的情况下,打印设备可以由用户操纵以添加页码。用户可以在打印设备的用户界面上选择一个选项来指定自动加页码。可替代地,用于将电子文档发送到打印设备的计算机打印机驱动程序可以指定自动加页码。在其他情况下,打印设备可以检测哪些像素是相对于背景像素(诸如页面的白色背景)的前景像素(诸如页面上的文本),并且指示前景像素是叠加的。

中性颜色保持位504、506可以指示像素是诸如白色、黑色或灰色之类的“中性”颜色还是非中性颜色。例如,中性颜色保持位504、506可以取值“00”为白色,“01”为黑色,“10”为其他中性灰色,或“11”为非中性颜色。

执行中性颜色保持可以改善从CMY颜色模型到CMYK颜色模型的颜色转换处理和/或其他颜色模型之间的颜色转换处理。打印机可以执行这种转换,以使中性颜色可以使用K颜色通道来完整表达,结果为仅使用黑色的调色剂。如此,理想的是对白色像素保持白色,对黑色像素保持黑色,并且灰色像素在CMYK颜色模型中被表达为(0,0,0,K)。然而,此处的有损压缩及解压缩技术可能会导致中性像素被表示为非中性 颜色。

在CMY颜色模型中,当全部的三个通道具有相同的值时颜色是中性灰色,并且这样的中性颜色可以以(0,0,0,K)被转换到CMYK颜色模型。作为示例,灰色的CMY像素(73,73,73)可以通过有损压缩/解压缩技术被改变为非灰色的像素(73,74,72)。因此,该像素的颜色中立性被丢失,而彩色调色剂将被用于打印该像素。为了克服这种缺点,中性颜色保持位504、506可以被用于强制使解压缩后的CMY像素返回中性状态。这样做的一种可能方法是取C、M和Y像素的平均值,将该数值四舍五入到最近的整数,并且针对全部的三个颜色通道使用所获得的值。

相反地,在某些情况下,像素的值可能指示其是中性的(例如,C、M和Y像素具有相同的值),但中性颜色保持位可能取值“11”。在这种情况下,颜色平面中的一个平面的最低有效位可以被反转(从0到1或从1到0),用以将像素改变为非中性颜色。

另外,纯白色的CMY像素将取值(0,0,0),并且相关的中性颜色保持位可以是“00”。在压缩和解压缩之后,像素可能取诸如(0,2,1)之类的非纯白色的值。在这种情况下,可以对中性颜色保持位进行检查,并且可以确定像素应该是纯白色。因此,像素的值可以被改变为(0,0,0)以保持其纯白色的特性。

类似地,纯黑色的CMY像素将取值(255,255,255),并且相关中性颜色保持位可以是“01”。在压缩和解压缩之后,像素可能取诸如(255,253,253)之类的非纯黑色的值。在这种情况下,可以对中性颜色保持位进行检查,并且可以确定像素应该是纯黑色。因此,像素的值可以被改变为(255,255,255)以保持其纯黑色的特性。

在这里,具有值(0,0,0)的纯白色像素和具有值(255,255,255)的纯黑色像素可以被称为具有“最纯”值的像素。在使用多于8比特来表示颜色值的实施方式中,除了(0,0,0)和(255,255,255)之外的各像素值也可以表示纯白色和纯黑色。

作为一个可能的示例,颜色表位508、510可以指示颜色表,该颜色表包含CMY和CMYK颜色模型之间的颜色平面值的映射。如上所述,像素的对象类型(例如,图像图形、矢量图形或文本)可以根据电子文档的PDL表示来确定,而像素从该电子文档中被导出。根据像素的对象类型,可以应用不同的颜色转换表。例如,颜色表位508、510可以在像素为文本对象的一部分时取值“00”,在像素为矢量图形对象的一部分时取值“01”,以及在像素为图像图形对象的一部分时取值“11”。根据颜色表位508、510的值,可以选择数个颜色转换表中的一个,并且应用于像素。

复印或打印位512可以指示相关像素是被复印(被扫描然后被打印)还是被传统 打印(例如,根据本地存储的、或者从其他设备接收到的PDL文档)。这个比特位的值可以与那些半色调位514、516组合来选择最多八个半色调屏幕中的一个(半色调的讨论见下文)。在某些情况下,被扫描然后打印的电子文档可以使用某些类型的半色调屏幕,而传统打印的电子文档可以使用其他类型的半色调屏幕。

半色调位514、516可以指示当打印时半色调屏幕是否被应用到图像,以及哪个半色调屏幕被应用。半色调(halftoning)是一种通过使用大小、形状或间距不同的点来模拟梯度的技术。半色调可以以每个屏幕包含特定颜色的单一(二进制)深浅的方式将包含有各种颜色的多个深浅的图像分解为一系列叠加的半色调屏幕。叠加的半色调屏幕创建一个外观,在该外观中点被混合成平滑色调。

类似于颜色表位508、510,半色调位514、516可以基于像素表现出的对象类型来取值。因此,半色调位514、516可以在像素为图像图形对象的一部分时取值“00”,在像素为矢量图形对象的一部分时取值“01”,以及在像素为文本对象的一部分时取值“11”。根据半色调位514、516的值,可以选择数个半色调屏幕中的一个并且应用于像素。

虽然是基于相同的三个对象类型,但是颜色表位508、510可以与半色调位514、516不同。保持这两组不同的信息的一个可能原因是为了在某些PDL中适应对象像素重叠混合。例如,当文本像素与光栅图像像素混合时,颜色表位508、510可以指示光栅图像,半色调位514、516可以表示文本。该特征支持重叠、混合对象的图像质量。

示例属性阵列500每像素包含8比特位(1字节)。因此,使用这种类型的属性阵列,属性平面的大小会随着图像中的像素数量而线性增长。与图像中的像素相关联的属性阵列的范围可以被称为该图像的属性平面。

属性平面可以被称为A平面。因此,当属性平面与一个或多个颜色平面相组合时,组合后的属性与颜色平面取决于正在使用的颜色模型而可以被称为KA、CMYA、CMYKA、RGBA或YCbCrA。在这里,尽管属性平面实际上不表示颜色自身,但是组合后的属性与颜色平面的这些示例可以被称为“颜色模型”。

6.示例成像管道

在图6中示出示例成像管道的高级概述。该成像管道采用流程图600的形式,并且包括多个压缩与解压缩的步骤。流程图600可以表示由打印设备执行用以接收、储存和打印电子文档的一系列步骤。

在图6的块602,电子文档可以被表示为一个或多个根据KA或CMYA颜色模型格式化的图像。然而,选择这些颜色模型是为了示意性的目的,也可以使用其他的颜色模型。KA或CMYA像素可以从电子文档的PDL表示中被导出。

可替代地,在块602,电子文档可以通过诸如位图、JPEG、GIF等图像格式来表示,并且转换为例如KA或CMYA颜色模型。

在块604,基于单元的压缩(以下具体讨论)可以被应用于电子文档的每个平面的像素。因此,对于KA电子文档,基于单元的压缩可以被应用于灰色平面和属性平面。对于CMYA电子文档,基于单元的压缩可以被单独应用于C、M、Y和A平面中的每一个,或者以复合方式被应用于C、M、Y和A平面中的每一个。因此,在某些情况下,基于单元的压缩可以以相同的逻辑操作对两个或更多个平面的相应的单元进行压缩。块604的结果可以是用于表示电子文档的压缩后版本的比特流。

在块606,该压缩后版本可以被存储在储存器输出介质中。在一般情况下,该储存器可以是打印设备的存储器,用来存储一个或多个页面的压缩后表示。由于此处所描述的压缩技术能够将这些文档压缩至它们的初始位图化的大小的至少三分之一或四分之一,因此对储存器的存储器大小的要求可以相应地减少。作为结果,结合本文实施例的打印设备可以被较为便宜地制造。

在块608,基于单元的解压缩可以被应用于电子文档的每个平面。这可以导致电子文档的KA或CMYA表示的重建。然而,如果基于单元的压缩技术采用有损压缩,则根据块608的解压缩而获得的电子文档可能不同于通过块604的压缩被压缩的电子文档。然而,电子文档的这些版本之间的区别会很微小,因此不会轻易被人察觉。

在块610,电子文档的解压缩后版本可以被进一步处理。例如,各种变换可以被应用于电子文档。在对电子文档进行这些变换中的一个或多个之后,电子文档可以再次在块604中被压缩,并且在块606中被存储于储存器中。块610的应用是可选的,并不是所有的电子文档都经受该处理。

在块612,电子文档的解压缩后版本还可以被进一步处理。在块614,基于单元的压缩可以被应用于电子文档的每个平面。这个压缩程序可以与块604的压缩程序相同,或者也可以不同。例如,在块614中应用的压缩可以被配置为获得比块604的压缩比更高或更低的压缩比。

在块616,该压缩后版本可以被存储在储存器中。如同块606的储存器,块616的储存器可以是打印设备的存储器,用于存储一个或多个页面的压缩后表示。由于这些页面表示是压缩后的,因此存储器需求以及储存器的成本被降低。

在块618,基于单元的解压缩可以被应用于电子文档的每个平面。这可以导致电子文档的KA、CMYA或CMYKA表示的重建。正如块608的情况,如果基于单元的压缩技术采用有损压缩,则根据块618的解压缩而获得的电子文档可能会不同于通过块604和/或块614的压缩而被压缩的电子文档。

在块620,进一步的处理可以被施加于电子文档。在块620之后,电子文档可以被准备打印,或者可以被施加其他处理。

块604和块614的基于单元的压缩步骤可以相同或不同。例如,这些步骤可以使用不同的压缩算法,或者可以使用具有相同或不同设置的相同的压缩算法。同样地,块608和块618的基于单元的解压缩步骤也可以相同或不同。

在某些实施例中,每个像素所使用的属性平面比特位的数目可以基于压缩在流程图600中所发生的位置而产生变化。例如,属性阵列500的所有比特位可以在块604中被压缩。由于颜色转换、中性颜色保持、叠加处理以及半色调可以在块604后发生,因此属性阵列500中的每一比特位都应被保留。

然而,在步骤612之后,叠加位502、中性颜色保持位504、506和颜色表位508、510可能已不再需要。进一步地,某些类型的打印设备没有复印功能。因此,对于这些打印设备,复印或打印位512在流程图600中可能不被用于任何位置,并且可以从块604和块614的压缩中被省略。

不管如何,在不同的实施例中,属性阵列500的从0到6比特位的任何位置都可以从基于单元的压缩过程中被省略。作为结果,每个单元被压缩的比特位的总数可以被减少,这接下来可能会提高属性平面的单元的可实现压缩比。

此处的描述集中在基于单元的压缩的单个实例被应用于图像的属性平面和颜色平面。图像可以是来自包含一个或多个页面的电子文档的单个页面的表示。但是,这种基于单元的压缩的多个实例可以根据管道600或其他一些配置而被应用于这类图像的单元。在这种方式下,整个图像可以以高效的方式被压缩。

进一步地,基于单元的解压缩技术也可以通过将此处所描述的基于单元的压缩技术反转从而应用于图像。

7.示例单元配置

基于单元的压缩的一个方面是可以将电子文档的每个颜色平面和属性平面划分为一个或多个m×n单元,然后以部分独立的方式或完全独立的方式对每个单元进行压缩。例如,m可以是8且n可以是4。可替代地,m可以是8且n可以是8,或者还有m可以是16且n可以是16。可以使用m和n的其他数值。

可以对每个单元进行评估以确定什么类型的压缩技术可以最有效地压缩该单元中的数据。例如,如果一单元全部由相同颜色的像素组成,则该单元中的数据可以被非常有效地压缩为该颜色的表示,可能还有一些系统开销数据。然而,如果一单元包含真实感图像的一部分,则可能无法以这样的高压缩比来压缩该单元中的数据。

图7描绘了可以与基于单元的压缩一起使用的示例单元结构。为了方便起见,以 pCell和qCell的措辞来考虑单元。pCell可以是图像的颜色平面或属性平面的m×n个元素块。因此,对于颜色平面,pCell元素可以是像素,而对于属性平面,pCell元素可以是属性阵列。qCell可以是图像的颜色平面或属性平面的a×b个元素块。每个qCell可以由一定数量的非重叠的pCell组成。根据上下文,术语“pCell”和“qCell”可以指单一属性平面或颜色平面的元素,或者多个属性平面和颜色平面的元素。

作为示例,图7描绘了四个8×8的pCell 700、702、704、706,每个包含特定平面的64个属性或像素的值。每个属性或像素的值,例如可以由0-255范围内的数字表示,因此可以被表达为一个字节。然而,存在其他的可能性。为简单起见,pCell 700只显示了一些具有代表性的值的位置。

图7中示出的四个pCell的2×2排列可以被称为qCell。因此,图7的qCell 710可以是16×16的,并且可以包含特定平面的256个属性或像素的值。然而,qCell可以包括不同数量的pCell(例如,3×2块、2×3块或3×3块的pCell)。

图7将左上方的pCell称为“a”pCell,将右上方的pCell称为“b”pCell,将左下方的pCell称为“c”pCell,并且将右下方的pCell称为“d”pCell。这些名称可以被称为pCell ID,并且仅仅是一种用于区分qCell内的pCell位置的简便方法,并且将被用于下文中的交错讨论。

此处所描述的基于单元的压缩技术可以在pCell和qCell上操作。为了简单起见,假设使用8×8的pCell和16×16的qCell。然而,该假设是基于可代替使用不同大小的pCell和qCell的理解而做出的。

进一步地,平面pCell或qCell可以指单一平面的元素,而复合pCell或qCell可以指跨越多个平面的相应的元素。例如,当使用CMYA颜色模型时,平面pCell可以包括C、M、Y或A平面中的一个平面的元素,而复合pCell可以包括来自于C、M、Y和A平面中的两个或更多个平面的元素。

8.基于单元的压缩示例

压缩单元类型有损或无损颜色平面使用属性平面使用D1,D1DpCell无损P2,P2DpCell无损P4pCell无损DCTPpCell有损DCTQqCell有损D1CqCell无损D1EN/AN/AD64pCell无损EOFN/AN/A

表1

接下来的几个小节详细描述各种基于单元的压缩技术。这些技术中的每一个对pCell、qCell或者这两者进行操作。表1中提供了这些压缩技术的概述。

a.D1和D1D压缩

当给定的pCell中的全部的属性或像素都相同时,可以使用D1压缩。例如,假设在pCell中每个属性或像素取从0到255的值。仅仅作为一个示例,如果所有的值都是74,那么D1压缩可以被应用于该单元。如此,可以显著地减少表示pCell所需要的数据量。

D1压缩的变形(可以被称为D1D压缩)可以在颜色值是默认颜色时被使用。例如,在YCbCr颜色空间的Y平面、灰色颜色空间和全部CMYK颜色空间中,默认值可以是0和255。在YCbCr颜色空间的Cb和Cr平面,默认值可以是128和255。D1D压缩具有比D1压缩稍微更有效的编码。因为在颜色空间中仅仅存在有限数目的默认值(例如2个),所以这些默认颜色值可以以少量的比特位(例如1个)来表示。因此,比起D1压缩,D1D压缩可以要求每个pCell更少的比特位。

对于属性平面,D1D默认值可以是预定的(例如0或128)或由用户手动设置。

在某些情况下,对于所有属性或像素具有相同值的多个相邻的pCell(例如行或列中的pCell)可以使用D1或D1D编码来表示。有两种会发生上述情况的可能方式。D1和D1D压缩允许行程长度被编码。行程长度表示总共有多少pCell也使用D1压缩进行了压缩。D1压缩也允许以前使用的(缓存的属性或像素的值)在随后的pCell的编码中被使用。

压缩操作码选项参数D1001V’长度/值(选项)D1D000V长度

表2

表2提供了用于D1和D1D压缩的示例二进制编码。对于D1压缩,pCell的压缩后表示以操作码001开始。如果V’位为1,则D1编码还包括1个字节的值参数(对于pCell中的所有属性或像素是相同的)。如果V’位是0,则值参数从编码中被省略,并且最近的D1编码中的值(例如缓存的值)被用于pCell中的所有属性或像素。长度参数可以是两个比特位,从而支持qCell内从一至四个pCell的行程长度。值参数施加于像素值以及属性值。因此,当对颜色平面的pCell进行压缩时,值参数可以是8个比特位。然而如上所述,属性平面值可以使用少于8个比特位来表示,并且值字段的大小可以被适当地减少。

对于D1D压缩,pCell的压缩后表示以操作码000开始。V位指示使用两个默认值中的哪一个(例如,如果V是0,则使用一个值;如果V是1,则使用另一个值)。长度参数可以以与用于D1压缩的方式相同的方式来使用。

b.P2和P2D压缩

当给定的pCell中的属性或像素中的每一个可以使用两个值中的一个来表示时,可以使用P2压缩。例如,如果单元中的属性或像素可以取0和255之间的值,但全部的值均为76或125,则可以在pCell上使用P2压缩。当使用P2压缩时,两个值以及pCell中的属性或像素的位图可以被编码。位图指示哪个值与pCell中的每个属性或像素相关联。类似于D1和D1D压缩,P2压缩可以使用最近使用的一对值的缓存。

P2压缩技术的变形(可以被称为P2D压缩)可以在单元中只出现两个默认颜色值时被使用。如上所述,在YCbCr颜色空间的Y平面、灰色颜色空间和全部CMYK颜色空间中,默认值可以是0和255。在YCbCr颜色空间的Cb和Cr平面中,默认值可以是128和255。因此,P2D压缩可以对pCell中的属性或像素的位图进行编码,但是,因为使用默认值,所以不需要显式地对属性或像素的值进行编码。

对于属性平面,一个或两个P2D默认值可以是预定的(例如0和128)或由用户手动设置。

表3

表3提供了P2和P2D压缩的示例二进制编码。对于P2压缩,pCell的压缩后表示以操作码011开始,如果V’位为1,则P2编码还包括表示由pCell中的属性或像素使用的一对值(值1,值2)的2个字节。如果V’位为0,则这些值从编码中被省略,并且最近的P2编码中的值(例如缓存的值)被用于pCell中的属性或像素。

对于P2D压缩,pCell的压缩后表示以操作码010开始。对于P2和P2D压缩这两者,当P选项为1时,存在行映射参数,指示位图中还存在8行中的哪些行。当P选项为0时,没有行映射参数,位图中也不存在行。相反,可以使用来自以P2或P2D压缩后的最近的pCell中的缓存的位图。

行映射的每一比特位指示在位图中存在相对应的行字段。如果存在行映射,则可以假设在位图中至少还存在一行。因此,行映射可以在位图中仅使用7比特来编码第2至第8行。对于行映射a的每一比特位,0指示对应的行不存在,并且和先前的行重复,而1指示对应的行存在。

C.P4压缩

当给定单元中的全部像素都可以使用三个或四个颜色值来表示时,可以使用P4压缩。当使用P4压缩时,三个或四个值以及pCell中的属性或像素的位图可以被编码。位图表示哪个值与pCell中的每个属性或像素相关联。

压缩操作码参数位图P4100行映射/值1/值2/值3/值41至8行

表4

表4提供了P4压缩的示例二进制编码。对于P4压缩,pCell的压缩后表示以操作码100开始。7比特的行映射定义了位图如何被压缩,类似于P2位图。对于行映射的每个比特,0指示对应的行不存在,并且和先前的行重复,而1指示对应的行存在。

四个值参数都是8比特的字段,用于表示在pCell中获得的元素的值。为了区分这些值,位图的每一行(如果存在)可以长16比特。当只有三个值通过P4压缩被编码时,“值4”参数可以存在但是被忽略。

d.DCTP压缩

DCTP压缩指的是采用离散余弦变换(DCT)技术对pCell进行压缩。在一些实施例中,在D1、D1D、P2、P2D及P4压缩不适于颜色平面的特定pCell时,可以使用DCTP压缩。因为DCTP压缩是有损的,所以DCTP压缩可能不会被用于属性平面,并且理想的是属性平面被无损压缩。DCTP压缩可以涉及:从二维系数阵列进行DCT变换、缩放、量化、重新排序为一维数据,以及进行霍夫曼(Huffman)熵编码。

压缩操作码位图DCTP11DCT编码(平均6-200比特)

表5

表5提供了DCTP压缩的示例二进制编码。对于DCTP压缩,pCell的压缩后表示以操作码11开始,并且该表示的剩余部分是DCT编码。在一些实施例中,DCT编码可以是根据联合图像专家组(JPEG)标准的子集并且使用哈夫曼编码进行封装的量化DCT系数的集合。

e.DCTQ压缩

DCTQ压缩指的是采用DCT技术,通过将qCell下采样到pCell的大小来将该qCell作为一个整体压缩,然后将DCTP编码应用于所获得的pCell。在一些实施例中,当D1、D1D、P2、P2D及P4压缩不适于颜色平面的一个或多个特定pCell时,可以使用DCTQ压缩。因为基于DCT的压缩是有损的,所以DCTQ压缩可能不会被用于属性平面,并且理想的是属性平面被无损压缩。

作为示例,16×16的qCell可能被下采样为8×8的pCell。下采样过程可以涉及:将16×16的qCell划分为64个非重叠的2x 2的块,并且替换带有单一像素值的每个块,单一像素值是各块中的像素值的平均值。所获得的64个平均值组成8×8的单元。值得注意的是,这个下采样提供了初始压缩比为4:1,然后DCTP编码在其上提供了附加压缩。

压缩操作码位图DCTQ101DCT编码(平均6-200比特)

表6

表6提供了DCTQ压缩的示例二进制编码。对于DCTQ压缩,qCell的压缩后表示以操作码101开始,并且该表示的剩余部分是DCT编码。类似于DCTP的情况,DCT编码可以是根据JPEG标准的子集并且使用哈夫曼编码进行封装的量化DCT系数的集合。

f.D1C和D1E压缩

D1C和D1E压缩使连续单元的行程的高效编码变得容易,其为D1或D1D压缩的候选。编码这些行程可以极大地提高在具有呈现纯色(例如白色背景)的部分的图像中的压缩性能。可以支持下述两种类型的D1或D1D行程:(i)qCell间行程,其为跨越qCell的D1或D1D的候选pCell的行程;以及(ii)qCell内行程,其为qCell内的D1或D1D候选pCell的行程。

qCell间D1或D1D行程是编码跨越了两个或更多个qCell的D1或D1D行程。当qCell中的两个最右边的pCell(“b”pCell和“d”pCell)包含使用D1压缩进行编码的固定像素值的8×16阵列时,这意味着D1或D1D行程的开始,并且使编码模式从正常编码模式改变为D1或D1D行程编码模式。该编码模式在每个平面和qCell边界上跟踪。因此,对于特定平面,模式改变为D1或D1D行程编码模式会发生在qCell边界的终点。

在D1或D1D行程编码模式中,只定义了两个代码:D1C(继续)和D1E(结束),并且它们每个使用单一比特位来编码。只要后续qCell包含与开始该行程的两个D1或D1D候选pCell相同的16×16像素值,则发送一比特的D1C操作码,并且D1或D1D行程编码模式持续。如果后续qCell除了匹配行程的开始的纯色值之外还包含其他任何值,则行程结束。在这种情况下,发送一比特的D1E代码,并且重新进入正常编码模式。另外,当前qCell的任何剩余的D1、P2、P4、DCTP或DCTQ编码被发送。

qCell内D1或D1D行程是编码qCell内的D1或D1D行程。例如,2比特的行程长度可以被用来编码在qCell内从一个pCell延续至四个pCell的D1和D1D行程。这样的行程被记为D1(n)和D1D(n),其中n取值1、2、3或4。

压缩操作码D1C1D1E0

表7

表7提供了D1C和D1E压缩的示例二进制编码。对于D1C压缩,1指示D1或D1D行程的延续,并且给定的qCell中的全部四个pCell都匹配当前行程的D1或D1D单元。对于D1E压缩,0指示D1或D1D行程的结束。

g.D64压缩

D64压缩是无损技术,其被用于对不适于D1、D1D、P2、P2D和P4压缩的属性平面的pCell进行编码。例如,如果pCell包含五个或更多个不同的值,则可以使用 D64压缩。

D64压缩对8×8的属性pCell的全部64个值进行编码,并且在包含有其报头时,会导致很小的扩展而不是压缩。然而,由于理想的是属性平面在无损方式下压缩,因此D64压缩在某些情况下可能是必要的。

然而,取决于基于单元的压缩发生在压缩管道600中的什么位置,pCell中的属性值的8个比特位可能不会全部被编码。代替地,这些值的2-8比特可能反而会被封装和编码。这会导致D64压缩的改进。

压缩操作码属性D6411使用每个属性2-8比特编码的64个属性

表8

表8提供了D64压缩的示例二进制编码。D64pCell的压缩后表示以操作码11开始,并且包括在pCell内使用每个属性2-8比特编码的64个属性的阵列。正如上面所讨论的,每一个属性阵列的比特位数目是基于压缩属性平面时可以省略多少属性位。注意DCTP和D64压缩共享相同的操作码。然而,由于DCTP仅用于颜色平面并且D64仅用于属性平面,因此这些编码可以基于待压缩的pCell的平面来区分。

h.文件尾(EOF)

EOF不是压缩技术本身,而是被定义为压缩流的结束的信号。在压缩器中,在全部的输入数据已被压缩并且最后qCell的最后代码已被发送之后,可以发送EOF序列。EOF作为属性平面代码来发送。

如果属性平面处于D1或D1D行程编码模式下,则可以发送D1E以返回到发送EOF之前的正常编码模式。此外,EOF在除了属性平面之外的其他任何平面上自动终止任何有效的qCell间D1或D1D行程。

压缩操作码EOF0011 00 0000 0000

表9

表9提供了EOF的示例二进制编码。在001的操作码之后,发送二进制值“10000000000”。由于EOF与D1压缩共享操作码,因此这个值可以被用来区分EOF与pCell的D1编码。

9.示例决策树

pCell和qCell的编码可以基于一个或多个决策树。每个决策树描述了在pCell和 qCell被编码之前考虑各种因素的过程。可以是用于属性平面和颜色平面的独立的决策树。例如,理想的是在压缩属性平面时不丢失任何信息。因此,属性平面可以使用各种无损压缩技术来进行压缩。另一方面,理想的是以无损方式对颜色平面的某些部分(例如矢量图形和文本部分)进行压缩,但是以有损方式对颜色平面的其他部分(例如图像图形部分)进行压缩。在这种方式下,当需要时可以保留原始图像中的细节,但依旧可以实现高压缩比。

a.颜色平面决策树

图8描绘了根据示例实施例的颜色平面决策树800。该决策树以qCell由四个非重叠的pCell组成这种理解来考虑qCell的性质。这样的qCell和其附属的pCell的大小可以分别为16×16和8×8。然而,可以代替使用另外的尺寸。

假定qCell中的每个像素以对象类型的指示来标记,该对象类型的像素是部分例如文本、矢量(例如线条)或光栅(例如图像)。这些标记可以存在于qCell的属性平面。

进一步地,决策树800可以被用于1200dpi的图像和/或600dpi的图像。然而,在某些情况下,当对600dpi图像进行处理时,DCTQ方法可以被省略,以避免下采样到300dpi。例如,600dpi图像的决策树可以只包括图8的块804、806和808。

在决策块802、804、810、812、816、818、820、822中的每一个中,决策的类型以放在括号里的方式表示。如果决策在平面基础上做出,则存在括号内P。如果决策在复合基础上做出,则存在括号内C。然而,压缩技术中的每一种被应用于每个平面。

平面决策是通过单独考虑每个颜色平面的qCell和/或pCell而做出的。因此,例如,平面决策可能会考虑颜色性质和/或与单一的qCell和/或pCell相关联的属性。然而,复合决策可能会考虑qCell和pCell的性质以及由qCell定义的图像的位置中所有颜色平面的相关属性。

为简单起见,在决策树800中并不明确涉及D1D和P2D压缩。然而,无论D1或P2压缩在何处被考虑或者被使用,D1D和P2D压缩也同样可以被考虑或者被使用。因此,块804和806可以考虑和使用D1D和P2D压缩,而块824可以应用D1D压缩。在决策树800中,也没有明确考虑连续的D1或D1D编码的行程,但是不管怎样可以使用。

块802、810、816和820的每个代表在qCell的基础上做出的复合决策。对于这些决策中的每一个,考虑到qCell的所有颜色平面上的值的范围,同样考虑由qCell表示的对象类型的数量。为了确定该范围是宽还是窄,可以确定每个平面的值的范围(因此,例如,如果有三个颜色平面,则确定出三个范围)。每个范围可以通过获取该平面 的qCell中最高像素值与该平面的qCell中最低像素值之差来计算。如果这些范围中的任何一个超过预定的阈值,则该范围被归类为宽。否则,该范围被归类为窄。预定阈值可以为4、8、16、32或其他一些值。

进一步地,混合标记指示在qCell中聚集两个或更多个对象,因此qCell可能包含边缘。理想的是保持边缘以维持图像的清晰度。如果qCell的全部256个标记的值相同,则在qCell中不太可能存在边缘。

宽范围指示细节值得保留,而窄范围指示用于下采样的较佳的qCell候选。宽范围和混合标记加在一起可能是具有边缘的qCell的证据。在这种情况下,如块802所反映的,下采样应被避免。当块802的查询是肯定回答时,则块804下一个被考虑。

在块804中,qCell可能有边缘细节要保持,因此每个平面以一个pCell接一个pCell(pCell-by-pCell)的方式被编码,用以最佳地保持这个细节。如果pCell分别具有1、2或4种颜色,则pCell具有D1、P2或P4编码的资格。如果选择D1、P2或P4压缩中的一个,则可以在块806中应用这种技术。否则可以在块808中应用DCTP压缩。在一些实施例中,块804可能涉及如下通常处理,即,确定每个颜色平面的每个pCell的m×n个像素的各颜色值是否至少包括d种颜色,其中d至少是2。

另一方面,如果qCell全部显示出宽范围和相同标记,则块810的查询是肯定回答,并且块812下一个被考虑。在复合基础上,对qCell中是否有五种或更多种的颜色以及是否所有标记代表光栅进行确定。如果条件为真,则qCell只包含图像数据,并且可以在块814中使用DCTQ技术进行压缩。如果该条件为假,则qCell包含不应该被下采样的文本或线条,或者包含具有非常少量的值的图像数据。在两者之中的任一种情况下,D1、P2、P4或DCTP压缩都可以在qCell中更好地保存信息或者可以提供更好的压缩比。因此,qCell可以在块804中被进一步考虑并且在块806或者块808中被压缩。

可替代地,如果qCell显示窄范围和混合标记,则qCell可能是下采样的候选,因为很少的信息在这个过程中应当被丢弃。然而,如果qCell中有四种或更少的颜色,则D1、P2或P4压缩中的一个可以提供比基于DCT的压缩更好的压缩比。

因此,如果块816的查询是肯定回答,则到达块818。在块818中,在复合基础上,确定qCell是否包含五种或更多的颜色。如果是,则qCell可能主要包含图像数据,并且可以在块814中使用DCTQ技术进行压缩。如果不是,则qCell可以在块804中被进一步考虑并且在块806中被压缩。由于qCell具有四种或更少的颜色,因此将可以适用D1、P2或P4压缩中的一个,并且在这种场景下不可能到达块808。

如果qCell贯穿始终显示狭范围和相同标记,这是在qCell中没有边缘的强有力的 证据。如果块820的查询是肯定回答,则块822下一个被考虑。在块822中,可以确定qCell的每个平面的所有像素是否具有相同的值。如果是,则使用D1压缩会比基于DCT的压缩效率更高。因此,在块824中,qCell的平面可以在pCell-by-pCell的基础上被压缩。否则,在块814中,DCTQ被应用于qCell的平面。

图8描绘了一种可行的颜色平面决策树。其他这样的决策树也是可行的。例如,当压缩600dpi图像时,只有块804、806和808可以被使用。

b.属性平面决策树

图9描绘了根据示例实施例的属性平面决策树900。该决策树以属性平面pCell的每个元素以一对一的方式与一个或多个相应的颜色平面pCell的像素值相关联这种理解,来考虑属性平面pCell的性质。这些pCell的大小可以是8×8,但也可以代替使用其他的尺寸。这里还假设只有一个属性平面,所以决策树900中的所有决策都是在平面基础上做出的。然而,可替代的实施例可以采取不同的方法。

类似于决策树800,在决策树900中也未明确涉及D1D和P2D压缩。然而,无论D1或P2压缩在何处被考虑或者被使用,D1D和P2D压缩也同样可以被考虑或者被使用。因此,块902、904、906和908可以考虑和/或使用D1D和P2D压缩。在决策树900中,也没有明确考虑连续的D1或D1D编码的行程,但是不管怎样可以使用。

在块902,确定属性平面pCell是否具有D1压缩的资格。如果具有,则在块904中应用D1压缩。否则,在块906,确定pCell是否具有P2压缩的资格。如果具有,则在块908中应用P2压缩。

如果pCell不具有D1或P2压缩的资格,则在块910,可以确定pCell是否具有P4压缩的资格。如果具有,则在块912中可以应用P4压缩。否则,可以在块914中应用D64压缩。

图9描绘了一种可行的属性平面决策树。其他这类决策树也是可行的。

c.后备模式

在某些情况下,诸如图6的管道之类的打印设备的管道的行为可以根据不同的性能目标而被动态地修改。特别是,当打印设备的压缩比或者打印设备的解压缩速度不能满足预先设定的阈值时,打印设备可以被配置为进入后备模式。

正如上面所讨论的,压缩大小可以是一个目标,这是因为块616的储存器可以被设计为存储少量的页面(例如,两个1200dpi A3 CMYKA页面)。解压缩速度也可以是一个目标,这是因为块618的基于单元的解压缩不应当运行地慢于打印设备能够打印解压缩数据的速度。

因此,打印设备可以被配置为对压缩缓冲区溢出和/或解压缩速度不足进行检测。 压缩缓冲区溢出发生在写入存储器(例如块616的储存器)的字节数超过预定的阈值时,这表示所达到的压缩比较差。解压缩速度不足发生在一页的每个部分或全部的DCT编码qCell的数量超过预定的阈值时。

在检测到压缩缓冲区溢出之后,可以修改图8和/或图9的决策树,以便使用始终达到至少4:1压缩的压缩技术。例如,在颜色平面,对于通常与在相同qCell中剩余的pCell一起以P4压缩进行编码的pCell而言,P4压缩的使用可以被淘汰而用DCTQ压缩来取代。以类似的方式,DCTP压缩也可以被DCTQ压缩取代。在属性平面,当每个属性元素只保持有1或2比特时,P4压缩可以被D64压缩取代。

在检测到解压缩速度不足之后,可以将图8的颜色平面决策树修改为强制qCell内不超过t个DCT操作,其中t是1、2或3。

10.交错编码

基于单元的压缩的编码后输出可以被交错。在某些情况下,交错的编码可以优于非交错的编码。

这种交错可以考虑(i)pCell和跨越qCell的平面的排序;(ii)下采样是平面决策还是复合决策;以及(iii)压缩性能。针对后者的考虑,可以使用单独的DCT压缩处理器和模式(非DCT)压缩处理器。假定DCT压缩处理器与模式处理器一起并行运行,并且DCT处理器可能运行得慢很多,也许为模式处理器的速度的八分之一。因此,交错格式可以以DCT pCell和模式pCell这两者的各种混合支持保持DCT处理器的高利用率。

基于这些考虑,属性平面和颜色平面的qCell和pCell可以以交错方式被写入到输出介质(例如,块606的储存器和/或块616的储存器)中。作为示例,如果颜色模型是CMYA,则编码的pCell的排序依次可以是:属性pCell、青色pCell、品红色pCell、黄色pCell、另一个属性pCell、另一个青色pCell、另一个品红色pCell、另一个黄色pCell,等等。

在图10中示出这种操作的伪码表示1000。在伪码表示1000的第1行,考虑输入图像中的每个复合(多平面)qCell。在第3行,复合qCell以平面顺序排序,使得属性平面第一,青色平面第二,品红色平面第三,黄色平面第四,并且K平面(如果存在)第五。

在第4行和第5行,考虑每个pCell的每个平面。在第7行,确定平面qCell是否应被子采样(下采样)。如果是,则在第8-11行,对用于整个平面qCell的单一pCell进行编码和发送(例如写入输出介质)。如果平面qCell不被下采样,则在第13行,发送该平面qCell的平面pCell中的每一个pCell(使用非DCT技术进行编码)。

在图11A和图11B中示出这样的交错操作的示例。图11A描绘了属性平面、青色平面、品红色平面和黄色平面中的每一个平面的四个qCell的系列。qCell中的每个pCell与各自的pCell ID(例如a、b、c或d)相关联,并且被描绘成方框。方框包含用于对每个相应的pCell进行压缩的压缩技术,以及qCell编号和pCell ID。例如,属性平面的第一个(最左边)pCell使用P2压缩进行压缩,并且来自于pCell 1a。

遍及四个qCell,属性平面一致使用P2压缩进行编码,青色平面使用P4压缩进行编码,以及黄色平面使用DCTP压缩进行编码。但是,品红色平面使用P2压缩和D1压缩的混合进行编码。值得注意的是,品红色平面的13个连续相同的pCell以D1压缩的行程编码。

图11B描绘了图11A的pCell和qCell的交错编码。除了行程以更有效的方式被编码时,颜色平面和属性平面中的每一个以一个接一个接一个接一个的方式进行交错。例如,编码从第一个qCell的pCell开始。首先是属性平面的1a pCell,接着是青色平面的1a pCell、品红色平面的1a pCell、黄色平面的1a pCell、属性平面的1b pCell、青色平面的1b pCell,等等。

关于使用D1压缩的13个品红色单元的行程,输出序列中第7个pCell表示D1的行程开始。特别是,该pCell是在D1行程中的三个pCell中的一个,该D1行程自第一个qCell起。因此,该pCell可以使用D1压缩进行编码,并且可以包括一个带有值为3的长度字段,用以指示其代表三个连续相同的D1 pCell。因此,品红色的1b pCell、1c pCell和1d pCell作为单一的pCell来编码,并且品红色的1c pCell和1d pCell从输出序列中被省略。

对于第2个qCell,其中的第1个品红色pCell出现在输出序列的第17位置。然而,使用D1C编码以指示品红色D1 pCell的行程在该qCell之中连续。类似地,对于第3个qCell,其中的第1个品红色pCell出现在输出序列的第30位置。在这里,也使用D1C编码以指示品红色D1 pCell的行程在该qCell之中连续。在第2个qCell和第3个qCell中其他的品红色pCell在该编码中被省略。

在第4个qCell中,品红色D1 pCell的行程再持续两个pCell,然后结束。因此,在输出序列的第43位置,使用D1E编码以指示D1行程的结束。但是,由于在行程中实际上有两个剩余的连续相同的品红色D1 pCell,因此第2个D1行程被编码。在输出序列的第44位置,品红色pCell可以采用D1压缩进行编码。该pCell可以包括值为2的长度字段,用以指示其代表了两个连续相同的D1 pCell。因此,从编码中省略品红色的4b pCell,但是包括品红色的4c pCell和4d pCell。

在第57输出位置,最终编码是文件尾(EOF),被用于指示这部分压缩后表示的 结束。

在图12A和图12B中示出交错操作的另一个示例。图12A描绘了属性平面、青色平面、品红色平面和黄色平面中的每一个平面的四个qCell的系列。然而,不像图11A和图11B的示例,图12A的示例包括DCTQ编码以及隐含的D1行程。

图12B描绘了图12A的pCell和qCell的交错编码。除了行程以更有效的方式被编码时,颜色平面和属性平面中的每一个以一个接一个接一个接一个的方式进行交错。关于DCTQ编码,由于这种编码包括四个实际的pCell,每个qCell只可以使用一个DCTQ编码。因此,在图12B中,青色DCTQ编码分别出现在第2、第13、第23和第33输出位置。

类似于图11B,在图12B中13个品红色D1 pCell的行程被压缩为两个逻辑行程。然而,6个连续相同的属性D1 pCell的行程以稍微不同的方式被编码。由于行程以qCell的b pCell和d pCell开始,因此行程的开始被认为是隐式的。因此,这两个pCell分别被编码为预计位于第26和第30输出位置。然而,在第32输出位置,D1C编码被用于第四个qCell中的该行程的四个D1 cell。然后,在第42输出位置使用D1E编码以指示该行程的结束,并且在第43输出位置使用EOF编码以指示这部分压缩后表示的结束。

提供图11A、图11B、图12A和图12B是为了示意性的目的。其他的编码也可以由本文的实施例支持,并且可以对这些编码进行变形而不背离实施例的范围。

11.基于单元的解压缩的示例

一旦使用例如上文所讨论的压缩方法和编码来压缩多个pCell和/或qCell,则这些pCell和/或qCell可以被有效存储和/或通过电缆或网络被有效传送。尽管如此,在某个时刻,pCell和/或qCell可以被解压缩为原始图像或原始图像的近似图像。由于这里所描述的基于单元的压缩技术可以是有损的,因此解压缩后的图像可以不同于,至少在某种程度上不同于原始图像。然而,在许多场景下,这一差异或者不太可能被人察觉,或者被认为是原始图像的可接受版本。

使用上文所描述的压缩编码进行编码的pCell和/或qCell可如下所述地被解码和解压缩。对于特定pCell或qCell编码,读取操作码。基于操作码的值,任何可适用的选项、参数、位图等可以根据跟随在操作码后面的比特位来确定。根据这些参数,pCell或qCell的解压缩版本可以被重构。然后,读取下一个操作码,等等,直到图像被重构。

例如,如果操作码是指示D1编码的001,则V’位和参数字段可以被读取以确定压缩后元素的值。长度位也可以被读取以确定是否存在行程长度。然后,以各单元中 的所有像素都显示由编码中的或者值字段的缓存版本中的值字段所指示的值,来创建与运行长度相当的多个单元。

如果操作码是指示D1D编码的000,则V位可以被读取以确定压缩后元素的值,并且长度位可以被读取以确定是否存在行程长度。然后,以各单元中的所有像素都显示由V位所指示的默认值,来创建与行程长度相当的多个单元。

如果操作码是指示P2压缩的011,则选项、参数和位图可以被读取。如果V’位是1,则单元中的两个值可以被确定。然后,可以以各像素根据行映射和位图取两个值中的一个,来创建单元。如果不存在行映射,则使用来自先前的P2单元的行映射和位图。

如果操作码是指示P2D压缩的010,则可以以各像素根据行映射和位图取两个值中的一个,来创建单元。如果不存在行映射,则使用来自先前的P2单元的行映射和位图。

如果操作码是指示P4压缩的100,则行映射和值参数与位图一起可以被读取。然后,可以以各像素根据行映射和位图取四个颜色值中的一个,来创建单元。

如果操作码是指示DCTP压缩的11,则DCTP压缩方法的位图可以被读取,并且单元可以根据该DCTP编码来被创建。

如果操作码是指示DCTQ压缩的101,则DCTQ压缩方法的位图可以被读取,并且pCell可以根据该DCTQ编码来被创建。然后,pCell中的每个元素可以被具有相同值的2×2块的元素取代。其结果是qCell,该qCell是DCTQ下采样处理的近似反转。

如果操作码是指示D1C压缩的1,则最近的D1或D1D单元被复制。如果操作码是指示D1E压缩的0,则当前的D1或D1D行程被认为已经结束。

如果操作码是指示D64压缩的11,则每个属性的比特位数被确定,然后属性字段被相应地解码。每个属性的比特位数可以取决于打印设备的类型以及解压缩发生在管道中的什么位置。

12.示例性能结果

对此处公开的基于单元的压缩(CBC)技术的压缩性能与基于JPEG的压缩的压缩性能以及基于压缩(无损技术)的分割行程长度编码(SRLE)进行了比较。测试套件包括具有不同数量的文本、线条和图像内容的408个页面。

表10

表10提供了由CBC、JPEG和SRLE针对600dpi和1200dpi图像所实现的压缩比。这些结果包括针对每种技术所实现的最大、最小、平均和中值压缩比。

此处公开的CBC技术以很大的余地为600dpi和1200dpi图像提供了最佳的最大压缩比。CBC技术也为1200dpi图像提供了最佳的最小压缩比,但是JPEG技术为600dpi图像提供了稍微好一点的最小压缩比。

更重要的是,此处公开的CBC技术提供了明显优于JPEG和SRLE的平均压缩比和中值压缩比,同时提供了高于JPEG的卓越的图像质量。因此,CBC技术是打印技术以及打印设备技术的重大改进。

13.示例操作

图13、图14和图15是示例实施例的流程图。由这些流程图示出的步骤可以由一个或多个打印设备和/或计算设备实施,打印设备诸如打印设备100,计算设备诸如计算设备300。进一步地,每个单独步骤的各方面可以被分布在多个计算设备或打印设备之间。

关于此处所使用的术语,m×n属性单元可以指属性平面的平面pCell,并且m×n像素单元可以指颜色平面的平面pCell。进一步地,a×b属性单元可以指属性平面的平面qCell,并且a×b像素单元可以指颜色平面的平面qCell。假定自始至终a大于m并且b大于n。

图13概括描绘了属性平面的单元与一个或多个颜色平面的单元的交错压缩的步骤。然而,这些步骤可以被用作其他用途。本流程图可以显式或隐式地引用参考图5-12B所讨论的操作。例如,图13的步骤可以在图6的块604和/或块614中发生,在打印设备的管道的其他位置发生,或由主机发生。

在步骤1300,可以从输入图像中获取m×n像素单元。输入图像可以包含多于m×n个像素,并且m×n像素单元中m×n个像素中的每一个可以与至少一个颜色值相关联。

在步骤1302,可以基于m×n像素单元来获取m×n属性单元。m×n属性单元的元素可以以一对一的方式与m×n像素单元中相应的像素相关联,并且元素可以标识与这 些元素的关联像素有关的各自的控制数据。属性单元的元素可以是属性阵列和/或属性字节。

在步骤1304,可以以有损方式对m×n像素单元进行压缩,并且可以以无损方式对m×n属性单元进行压缩。有损压缩可以是基于DCT的压缩,并且无损压缩可以是此处所描述的任何其他的压缩技术。m×n像素单元的压缩可以是基于m×n属性单元中的至少一部分(例如,由于通过m×n属性单元进行编码,因此压缩可以取决于m×n像素单元所表现出的对象的类型)。在步骤1306,可以将压缩后m×n像素单元和压缩后m×n属性单元这两者的交错后表示写入输出介质。该交错后表示可以采取与图11A、图11B、图12A和图12B的公开相一致的形式或者采取另一种形式。

在某些实施例中,控制数据的单元可以与m×n像素单元中特定像素相关联。控制数据可以是用于指示特定像素是否表现出图像对象类型、矢量对象类型或文本对象类型的一个或多个比特位。可以对压缩后m×n像素单元和压缩后m×n属性单元进行解压缩,并且可以基于一个或多个比特位来选择半色调屏幕。可以打印m×n像素单元(可能与输入图像的其余部分一起),同时将选择的半色调屏幕应用于特定像素。

可替代地或者另外,与m×n像素单元中特定像素相关联的控制数据可以包含用于指示特定像素是否被形成为打印程序或扫描程序的一部分的一个或多个比特位。可以对压缩后m×n像素单元和压缩后m×n属性单元进行解压缩,并且可以基于一个或多个比特位来选择半色调屏幕。可以打印m×n像素单元(可能与输入图像的其余部分一起),同时将选择的半色调屏幕应用于特定像素。

可替代地或者另外,与m×n像素单元中特定像素相关联的控制数据可以包含用于指示在压缩之前特定像素取中性颜色值的一个或多个比特位。可以对压缩后m×n像素单元和压缩后m×n属性单元进行解压缩。可能是因为一个或多个比特位指示在压缩之前特定像素取中性颜色值,所以可以确定特定像素的颜色值是不同的,并且可以改变至少一个颜色值以使颜色值相同。

可替代地或者另外,与m×n像素单元中的特定像素相关联的控制数据可以包含用于指示在压缩之前特定像素取非中性颜色值的一个或多个比特位。可以对压缩后m×n像素单元和压缩后m×n属性单元进行解压缩。可能是因为一个或多个比特位指示在压缩之前特定像素取非中性颜色值,所以可以确定特定像素的颜色值是相同的,并且可以改变至少一个颜色值以使颜色值不同。

可替代地或者另外,与m×n像素单元中的特定像素相关联的控制数据可以包含用于指示在压缩之前特定像素取相同的最纯颜色值的一个或多个比特位。可以对压缩后m×n像素单元和压缩后m×n属性单元进行解压缩。可能是因为一个或多个比特位指 示在压缩之前特定像素取最纯颜色值,所以可以确定特定像素的颜色值是不同的最纯颜色值,并且可以改变至少一个颜色值以使颜色值是相同的最纯颜色值。

可替代地或者另外,与m×n像素单元中的特定像素相关联的控制数据可以包含用于指示特定像素是否与数字对象叠加的一个或多个比特位。以有损方式对m×n像素单元进行压缩可以涉及:选择(i)特定像素、或者(ii)来自数字对象的替换像素;以及对选择的像素进行压缩。选择可以是基于一个或多个比特位。在某些情况下,一个或多个比特位可以从m×n属性单元的无损压缩中被省略。

可替代地或者另外,与m×n像素单元中的特定像素相关联的控制数据可以包含用于指示特定颜色转换是否被应用于特定像素的一个或多个比特位。在以有损方式对m×n像素单元进行压缩之前,可以基于特定颜色转换将特定像素从一种颜色模型转换为另一种颜色模型。在某些情况下,一个或多个比特位可以从m×n属性单元的无损压缩中被省略。

以无损方式对m×n属性单元进行压缩可以涉及:确定m×n属性单元的每个元素取相同的值,并且可能基于该确定,使用单值的操作码(例如使用D1或D1D压缩)和相同值的指示,来对m×n属性单元进行编码。可替代地,以无损方式对m×n属性单元进行压缩可以涉及:确定m×n属性单元的每个元素取两个不同的值中的一个,并且可能基于该确定,使用二值操作码(例如使用P2或P2D压缩)、这两个不同的值的指示、以及用于指示哪些元素取两个不同的值中的各个值的位图,来对m×n属性单元进行编码。

在又一个方面,以无损方式对m×n属性单元进行压缩可以涉及:确定m×n属性单元的每个元素取三个或四个不同的值中的一个,并且可能基于该确定,使用四个值操作码(例如使用P4压缩)、三个或四个不同的值的指示、以及用于指示哪些元素取三个或四个不同的值中的各个值的位图,来对m×n属性单元进行编码。在另一个替代中,以无损方式对m×n属性单元进行压缩可以涉及:确定m×n属性单元的元素取至少五个不同的值,并且可能基于该确定,使用多值操作码(例如使用D64压缩)以及由m×n属性单元的元素中的每个元素所取的值的指示,来对m×n属性单元进行编码。

图14概括描绘了颜色平面的单元的压缩步骤。然而,这些步骤可被用作其他用途。在本流程图中可以显式或隐式地引用参考图5-12B所讨论的操作。例如,图14的步骤可以在图6的块604和/或块614中发生、在打印设备的管道的其他位置发生,或由主机发生。

由于本流程图涉及单一颜色平面的压缩,因此决策(如颜色平面决策树800的决策)是在平面基础上做出的。尽管如此,图14中的步骤可以作为同时考虑多个颜色平 面的复合操作的一部分来执行。

在步骤1400中,可以从输入图像中获取a×b像素宏单元。a×b像素宏单元可以包含四个非重叠的m×n像素单元。a×b像素宏单元中的a×b个像素可以具有各自的颜色值,并且可以与各自的对象类型标记相关联。这些对象类型标记可以各为例如属性阵列的一个或多个比特位。

在步骤1402中,可能是基于各自的颜色值和各自的对象类型标记,可以选择压缩技术以(i)将a×b像素宏单元作为一个整体压缩;或(ii)通过独立地压缩四个非重叠的m×n像素单元中的每一个来压缩a×b像素宏单元。

在步骤1404,可以根据选择的压缩技术对a×b像素宏单元进行压缩。在步骤1406,可以将压缩后的a×b像素宏单元的表示写入计算机可读输出介质。

在一些实施例中,选择的压缩技术将a×b像素宏单元作为一个整体压缩。该处理可以涉及:将a×b像素宏单元下采样为下采样后m×n像素单元,并且以有损方式对下采样后m×n像素单元进行压缩(例如使用DCTQ压缩)。

当a×b像素宏单元作为一个整体被压缩时,选择压缩技术可以包括:(i)确定a×b个像素的各自的颜色值的范围超过预定的非零阈值;(ii)确定a×b个像素的各自的对象类型标记指示a×b个像素各自表现出相同的对象类型;(iii)确定a×b个像素的各自的颜色值包括至少d种颜色,其中d至少为2;以及(iv)选择将a×b像素宏单元作为一个整体压缩。

可替代地,当a×b像素宏单元作为一个整体被压缩时,选择压缩技术可以包括:(i)确定a×b个像素的各自的颜色值的范围在预定的非零阈值内;(ii)确定a×b个像素的各自的对象类型标记指示a×b个像素中的一些像素表现出不同的对象类型;(iii)确定a×b个像素的各自的颜色值包括至少d种颜色,其中d至少为2;以及(iv)选择将a×b像素宏单元作为一个整体压缩。

又可替代地,当a×b像素宏单元作为一个整体被压缩时,选择压缩技术可以包括:(i)确定a×b个像素的各自的颜色值的范围在预定的非零阈值内;(ii)确定a×b个像素的各自的对象类型标记指示a×b个像素的每一个像素表现出相同的对象类型;(iii)确定a×b个像素的各自的颜色值包括多于一种颜色;(iv)选择将a×b像素宏单元作为一个整体压缩。

在其它实施例中,选择的压缩技术以无损方式独立地对四个非重叠的m×n像素单元中的每一个进行压缩(例如使用D1、D1D、P2、P2D或P4压缩)。

当四个非重叠的m×n像素单元独立地以无损方式被压缩时,选择压缩技术可以涉及:(i)确定a×b个像素的各自的颜色值的范围超过预定的非零阈值;(ii)确定a×b 个像素的各自的对象类型标记指示a×b个像素中的每一个像素表现出相同的对象类型;(iii)确定一个或多个m×n像素单元中的每一个m×n像素单元的各自的颜色值包括少于d种颜色,其中d至少为2;以及(iv)选择以无损方式独立地对一个或多个m×n像素单元中的每一个进行压缩。

可替代地,选择压缩技术可以涉及:(i)确定a×b个像素的各自的颜色值的范围在预定的非零阈值内;(ii)确定a×b个像素的各自的对象类型标记指示a×b个像素中的一些像素表现出不同的对象类型;(iii)确定一个或多个m×n像素单元中的每一个m×n像素单元的各自的颜色值包括少于d种颜色,其中d至少为2;以及(iv)选择以无损方式独立地对一个或多个m×n像素单元中的每一个进行压缩。

又可替代地,选择压缩技术可以涉及:(i)确定a×b个像素的各自的颜色值的范围超过预定的非零阈值;(ii)确定a×b个像素的各自的对象类型标记指示a×b个像素中的一些像素表现出不同的对象类型;(iii)确定一个或多个m×n像素单元中的每一个m×n像素单元的各自的颜色值包括少于d种颜色,其中d至少为2;以及(iv)选择以无损方式独立地对一个或多个m×n像素单元中的每一个进行压缩。

再可替代地,选择压缩技术可以包括:(i)确定a×b个像素的各自的颜色值的范围在预定的非零阈值内;(ii)确定a×b个像素的各自的对象类型标记指示a×b个像素表现出相同的对象类型;(iii)确定a×b个像素的各自的颜色值各自表示相同的颜色值;以及(iv)选择以无损方式独立地对四个非重叠的m×n像素单元中的每一个进行压缩。

在一些实施例中,选择的压缩技术可以以有损方式独立地对四个非重叠的m×n像素单元中的一个或多个m×n像素单元进行压缩(例如,DCTP压缩)。

当四个非重叠的m×n像素单元独立地以有损方式被压缩时,选择压缩技术可以涉及:(i)确定a×b个像素的各自的颜色值的范围超过预定的非零阈值或a×b个像素的各自的对象类型标记指示a×b个像素中的一些像素表现出不同的对象类型;(ii)确定a×b个像素的各自的颜色值包括少于五种颜色;(iii)确定一个或多个m×n像素单元中的每一个m×n像素单元的各自的颜色值包括至少d种颜色,其中d至少为2;以及(iv)选择以有损方式独立地对一个或多个m×n像素单元中的每一个进行压缩。

可以通过将用来压缩a×b像素宏单元的压缩技术反转,来对压缩后的a×b像素宏单元进行解压缩。因此,对压缩后的a×b像素宏单元进行解压缩可以导致第二a×b像素宏单元,并且第二a×b像素宏单元中的像素值可以与a×b像素宏单元中的像素值相同或相近。

在某些实施例中,可以从输入图像中获取第二a×b像素宏单元和第三a×b像素宏单元。第二a×b像素宏单元和第三a×b像素宏单元各自可以包含四个非重叠的m×n像 素单元,并且在第二a×b像素宏单元和第三a×b像素宏单元中的每一个a×b像素宏单元中的像素也可以具有各自的颜色值,并且也可以与各自的对象类型标记相关联。在这些实施例中,可以选择压缩技术以通过彼此独立地并且与a×b像素宏单元的四个非重叠的m×n像素单元独立地,对第二a×b像素宏单元的四个非重叠的m×n像素单元中的每一个和第三a×b像素宏单元的四个非重叠的m×n像素单元中的每一个进行压缩,来对第二a×b像素宏单元和第三a×b像素宏单元中的每一个进行压缩。于是,彼此独立地并且与a×b像素宏单元的四个非重叠的m×n像素单元独立地,可以对第二a×b像素宏单元的四个非重叠的m×n像素单元中的每一个和第三a×b像素宏单元的四个非重叠的m×n像素单元中的每一个进行压缩。可以将压缩后的第二a×b像素宏单元和压缩后的第三a×b像素宏单元这两者的表示写入计算机可读输出介质。

图15概括描绘了用于根据属性平面和一个或多个颜色平面对单元的压缩后表示进行交错的步骤。然而,这些步骤可被用作其他用途。在本流程图中可以显式或隐式地引用参考图5-12B所讨论的操作。例如,图15的步骤可以在图6的块604和/或块614中发生、在打印设备的管道的其他位置发生,或由主机发生。

在步骤1500,可以从带有一个或多个颜色平面的输入图像中获取a×b像素宏单元。还可以获取a×b属性宏单元。a×b像素宏单元可以包含四个非重叠的m×n像素单元,并且a×b属性宏单元可以包含四个非重叠的m×n属性单元。a×b像素宏单元中的a×b像素可能与各自的颜色值相关联,并且a×b属性宏单元中的元素可以以一对一的方式与a×b像素宏单元中的相应的像素相关联。

在步骤1502,可以确定分别与四个非重叠的m×n属性单元相关联的四个属性平面输出值。在步骤1504,可以为非重叠的m×n像素单元确定一至四个颜色平面输出值。在步骤1506,可以将四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示写入计算机可读输出介质。这个交错后表示可以采取与图11A、图11B、图12A和/或图12B的公开相一致的形式或者采取另一种形式。

进一步地,还可以从输入图像中获取第二a×b像素宏单元。第二a×b像素宏单元可以包含第二组四个非重叠的m×n像素单元,其中第二a×b像素宏单元中的a×b个像素也与各自的颜色值相关联,并且其中a×b属性宏单元的元素以一对一的方式与第二a×b像素宏单元中的相应的像素相关联。还可以从输入图像中获取第三a×b像素宏单元。第三a×b像素宏单元可以包含第三组四个非重叠的m×n像素单元,其中第三a×b像素宏单元中的a×b个像素也与各自的颜色值相关联,并且其中a×b属性宏单元的元素以一对一的方式与第三a×b像素宏单元中的相应的像素相关联。该操作可以进一步涉及:为第二组四个非重叠的m×n像素单元确定第二组一至四个颜色平面输出值,并 且为第三组四个非重叠的m×n像素单元确定第三组一至四个颜色平面输出值。交错后表示还可以包括确定的第二组一至四个颜色平面输出值和确定的第三组一至四个颜色平面输出值。

在一些实施例中,属性平面输出值中的每一个和颜色平面输出值中的每一个包含各自的操作码和数据。进一步地,四个属性平面输出值可以基于相应的四个非重叠的m×n属性单元的无损压缩来确定(例如使用D1、D1D、P2、P2D、P4或D64压缩)。

在某些情况下,为非重叠的m×n像素单元确定颜色平面输出值可以涉及:确定四个非重叠的m×n像素单元中的每一个分别以有损或无损方式被压缩(例如使用D1、D1D、P2、P2D、P4或DCTP压缩),并且确定四个颜色平面输出值,为四个非重叠的m×n像素单元中的每一个确定一个颜色平面输出值。另外,为非重叠的m×n像素单元确定颜色平面输出值可以涉及:确定a×b像素宏单元被下采样并且以有损方式被压缩(例如使用DCTQ压缩),并且为被下采样且被压缩后的a×b像素宏单元确定一个颜色平面输出值。

在一些实施例中,确定至少2个颜色平面输出值(例如使用D1、D1D、P2或P2D压缩)。写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示可以涉及:确定颜色平面输出值的第一颜色平面输出值和第二颜色平面输出值以相同的方式被无损压缩,并且以操作码、缓存未命中指示器和数据字段来表示第一颜色平面输出值,并且以操作码和缓存命中指示器来表示第二颜色平面输出值。缓存命中指示器可以指示第二颜色平面输出值使用第一颜色平面输出值的数据字段。

可替代地或另外,写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示可以涉及:确定颜色平面输出值中的特定颜色平面输出值是(i)使用n-1位行映射;(ii)使用第一m比特的行;以及(iii)对于n-1位行映射中取1的值的每一位使用另一个相应的m比特的行,而被无损压缩的。于是,特定颜色平面输出值可以以操作码、至少两个不同的像素值、n-1位行映射、第一m比特的行、以及相应的m比特的行来表示(例如使用P2压缩)。

在其他情况下,写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示可以涉及:确定颜色平面输出值中的特定颜色平面输出值是(i)使用n-1位行映射;(ii)使用第一2m比特的行;以及(iii)对于n-1位行映射中取1的值的每一位使用另一个相应的2m比特的行,而被无损压缩的。于是,特定颜色平面输出值可以以操作码、至少四个不同的像素值、n-1位行映射、第一2m比特的行、以及相应的2m比特的行来表示(例如使用P4压缩)。

在一些实施例中,写入四个属性平面输出值与确定的颜色平面输出值这两者的交 错后表示可以涉及:确定第一输出值和第二输出值要在计算机可读输出介质中被表示,并且与第一输出值和第二输出值相关联的m×n单元以相同的位图来表示(例如,使用带有缓存的P2压缩)。于是,第二输出值可以以操作码、两个或更多个颜色值、以及对第一输出值的第一位图的引用来表示,其中第二输出值不包括专用的位图。

此外,写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示可以涉及:确定(i)四个非重叠的m×n像素单元中的p个非重叠的m×n像素单元以同样的方式被无损压缩;且(ii)彼此在相同的位置包含颜色值,其中,p是1、2、3或4(例如,qCell内的D1 pCell的行程)。于是,确定的颜色平面输出值至少可以被表示为操作码、像素值和p的值。

在某些情况下,写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示可以涉及:确定四个非重叠的m×n像素单元以彼此相同的方式被无损压缩并且以与相同颜色平面的先前写入的m×n像素单元相同的方式被无损压缩。于是,确定的颜色平面输出值可以被表示为操作码,该操作码指示确定的颜色平面输出值是相同编码的行程(例如使用D1C压缩)。写入四个属性平面输出值与确定的颜色平面输出值这两者的交错后表示可以进一步涉及:确定四个非重叠的m×n像素单元中的p个非重叠的m×n像素单元是(i)以与写入到计算机可读输出介质中的先前的m×n像素单元相同的方式被无损压缩,其中,先前的m×n像素单元被表示为相同编码的行程;以及(ii)在任何剩余的4-p个非重叠的m×n像素单元之前,被写入到计算机可读输出介质中,其中p是0、1、2或3。于是,确定的颜色平面输出值可以(i)被表示为第一操作码,该第一操作码用于指示相同编码的行程的结束(例如使用D1E编码);以及(ii)当p大于0时,被表示为第二操作码、像素值和p的值(例如,qCell中的D1 pCell的行程)。

14.结论

本发明并不按照本申请中所述的特定实施例被限定,这些特定实施例旨在作为各方面的示意。可以进行许多修改和变形而不会背离本发明的精神和范围,这一点对本领域技术人员来说是显而易见的。除了本文所列举的之外,本发明范围内的功能上等效的方法和装置根据前面的描述是显而易见的。这种修改和变形旨在落到所附权利要求的范围内。

关于附图中和这里所讨论的梯形图、场景和流程图中的全部或任意,每个块和/或通信可以表示根据示例实施例的信息处理和/或信息发送。可替代的实施例可以被包括在这种示例实施例的范围内。进一步地,更多或更少的块和/或功能可以与这里所讨论任何的梯形图、场景和流程图一起使用,并且这些梯形图、场景和流程图可以部分或 整体地相互结合。

表示信息处理的步骤或者块可以对应于电路,该电路可被配置为执行这里所述的方法或技术的特定逻辑功能。可替代地或者另外,表示信息处理的步骤或块可以对应于程序代码(包括相关数据)的模块、段或部分。程序代码可以包括一个或多个指令,该一个或多个指令可由处理器执行以实施上述方法或技术中的特定逻辑功能或行为。程序代码和/或相关数据可以被存储在任何类型的计算机可读介质上,诸如存储设备,包括磁盘驱动器、硬盘驱动器或其他存储介质。

计算机可读介质还可以包括非暂时性计算机可读介质,诸如短期存储数据的计算机可读介质,像寄存器存储器、处理器缓存和/或随机存取存储器(RAM)。计算机可读介质还可以包括较长期存储程序代码和/或数据的非暂时性计算机可读介质,诸如二次或持续长期储存器,例如像只读存储器(ROM)、光盘或磁盘、和/或只读光盘存储器(CD-ROM)。计算机可读介质还可以是任何其他易失性或非易失性存储系统。计算机可读介质可以被认为是例如计算机可读存储介质和/或有形存储设备。

此外,本说明书、附图或权利要求中的元素、块或步骤的任何枚举是以清楚为目的。因此,这样的枚举不应当被解释为要求或暗示这些元素、块或步骤遵循某种特别布置或是以特定顺序被执行。

尽管这里已经公开多个方面和多种实施例,其他方面和其他实施例对本领域技术人员来说也是显而易见的。这里所公开的多个方面和多种实施例的目的是示意性的而并不意欲进行限制,真正的范围和精神由所附的权利要求指示。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号