用于半色调数字图像的压缩的方法以及计算设备的制作方法

文档序号:7774159阅读:333来源:国知局
用于半色调数字图像的压缩的方法以及计算设备的制作方法
【专利摘要】本发明可以提供一种用于半色调数字图像的压缩的方法以及计算设备。基于mxn半色调矩阵和图像的mxn像素块,可以确定mxn像素块的mxn半色调版本。可以对mxn半色调版本的行执行n路交错以创建mnx1半色调段。可以将mnx1半色调段与缓冲区中的一个或多个半色调段相比较。基于该比较,可以输出mnx1半色调段的文字码字和表示,并且可以将mnx1半色调段的表示写入缓冲区。可替代地,可以输出重复码字和重复值,并且可以将mnx1半色调段的至少一个表示写入缓冲区。根据本发明,可以提供一种用于半色调数字图像的压缩的方法。
【专利说明】用于半色调数字图像的压缩的方法以及计算设备
【技术领域】
[0001]本发明涉及用于半色调(Halftoned)数字图像的压缩的方法。
【背景技术】
[0002]半色调是通过使用在尺寸、形状或间距方面变化的点来模拟连续色调影像的技术。在基本二进制半色调方面具有单色调水平的这些点形成半色调点图案。半色调点图案的正确设计经由单色调水平的仅仅开/关标记提供半色调图像中多色调和平滑阴影的外观。

【发明内容】

[0003]本发明可以提供用于半色调数字图像的压缩的方法。
[0004]在示例实施例中,基于mxn半色调矩阵和图像的第一 mxn像素块,可以确定第一mxn像素块的第一 mxn半色调版本。可以对第一 mxn像素块的第一 mxn半色调版本的行执行η路交错以创建第一 mnxl半色调段。第一 mnxl半色调段可以与先入先出(FIFO)缓冲区中的一个或多个半色调段相比较。如果所述第一 mnxl半色调段与所述FIFO缓冲区中的任意半色调段不相匹配,则可以输出所述第一 mnxl半色调段的文字码字和表示,并且可以将所述第一 mnxl半色调段的表示写入所述FIFO缓冲区。如果所述第一 mnxl半色调段与所述FIFO缓冲区中的特定半色调段相匹配,则可以输出重复码字和重复值,并且可以将所述第一 mnxl半色调段的至少一个表示写入所述FIFO缓冲区。
[0005]另外的实施例可以包括一种非暂时性计算机可读介质,在所述计算机可读介质上存储有程序指令,该程序指令一旦由计算设备执行就导致该计算设备根据上述或其它示例实施例执行操作。
[0006]更多的实施例可以包括一种计算设备,所述计算设备包括:至少一个处理器、数据储存器,以及在所述数据储存器中的程序指令,所述程序指令一旦由该至少一个处理器执行就导致所述计算设备根据上述或其它示例实施例操作。
[0007]通过在适当之处参照附图阅读下列详细描述,这些以及其它方面、优点和可替代物对于本领域普通技术人员来说将变得显而易见。进一步,应当理解,在该
【发明内容】
部分以及该文件其它地方提供的描述旨在通过示例的方式而不是通过限制的方式示出所要求保护的主题。
[0008]根据本发明,可以提供用于半色调数字图像的压缩的方法。
【专利附图】

【附图说明】
[0009]图1图示根据示例实施例的打印设备。
[0010]图2是图解根据示例实施例的打印设备的计算部件的框图。
[0011]图3是图解根据示例实施例的涉及打印设备的各种数据路径的框图。
[0012]图4图示根据示例实施例的半色调矩阵到图像的像素的应用。[0013]图5A图示根据示例实施例的在图像上平铺的半色调矩阵。
[0014]图5B图示根据示例实施例的在具有列填充的图像上平铺的半色调矩阵。
[0015]图6图示根据示例实施例的图像和图像的放大部分。
[0016]图7图示根据示例实施例的具有列填充的图像的半色调。
[0017]图8图示根据示例实施例的图像半色调版本的部分的十六进制表示。
[0018]图9图示根据示例实施例的交错图像的半色调版本。
[0019]图10图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区。
[0020]图11图示根据示例实施例的压缩后的半色调段的格式。
[0021 ] 图12是根据示例实施例的流程图。
[0022]图13图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区的操作,在该操作中,未找到先行缓冲区的段的匹配。
[0023]图14图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区的操作,在该操作中,找到先行缓冲区的两段的匹配。
[0024]图15图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区的操作,在该操作中,未找到先行缓冲区的段的匹配。
[0025]图16图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区的操作,在该操作中,找到先行缓冲区的一段的匹配。
[0026]图17图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区的操作,在该操作中,因为使用了列填充而找到先行缓冲区的三段的匹配。
[0027]图18图示根据示例实施例的历史缓冲区、先行缓冲区和新的段缓冲区的操作,在该操作中,找到先行缓冲区和新的段缓冲区的所有段的匹配,方便了扩展重复码字的使用
[0028]图19A、19B、19C和19D图示了其中列填充的使用导致更有效率的半色调图像压缩的场景。
[0029]图20是根据示例实施例的流程图。
【具体实施方式】
[0030]在这里描述示例方法和系统。可以进一步利用其它示例实施例或特征,并且可以做出其它改变,只要不背离这里呈现的主题的精神或范围。在下列详细描述中,参考形成该详细描述的一部分的附图。
[0031]这里描述的示例实施例并不意味着是限制。将容易理解,在这里一般描述的和在图中示出的本发明的方面可以被布置、取代、组合、分离和以广泛种类的不同配置被设计,所有这些在这里被明确地预期。
[0032]1、导言
[0033]打印技术在过去的30多年间从产生仅仅黑色和白色图像的基于简单点矩阵的输出设备演进到今天的能够产生高分辨率彩色图像的基于高级激光器的打印设备。另外,现代打印设备也可以用作复印机、扫描仪和传真机。为了做这些,这些打印设备可能能够存储排队用于打印或传真的或者已被扫描的数目众多的电子文件。因此,许多打印设备是专门格式的计算设备,该计算设备可以包括例如一个或多个处理器、数据储存器和输入/输出接口。[0034]不管打印设备是否用在住宅、商业或其它类型的场所,打印设备可以是能够通信连接至各种其它计算设备的共享资源。结果,在一些环境中,当数目众多的计算设备可能正在向打印设备传送电子文件用于打印时,打印设备的存储需求可能相当高。通常,打印设备将每次以先到先服务的方式打印、复印、传真和/或扫描一份电子文件。因此,打印设备可以存储潜在的正在等待服务的大数目电子文件。由于数据储存器(例如,诸如随机存取存储器(RAM)、固态存储器、硬驱动存储器和/或闪存之类的存储器)的成本可能昂贵,因此为了降低打印设备的数据存储需求而压缩所存储的电子文件可能是有利的。另外,由于一些电子文件可能被传递给打印设备和计算设备和/或从打印设备和计算设备传递,因此压缩这些电子文件可能使传递更快并且使用较少的网络容量。
[0035]而且,由于打印作业可能较大(例如,打印作业可能包括包含数以百计页面的一份或多份电子文件),因此在打印每个作业之前压缩已排队打印作业节省短期存储空间。另夕卜,用户可能想以长期存储保存打印作业以在后来的时间进行打印。因此,压缩打印作业可能允许更多的打印作业被保存。此外,存储和从长期存储器检索大的打印作业的动作可以是慢的,但可以通过压缩打印作业以使它们在尺寸方面较小来加速。
[0036]2、示例打印设备
[0037]图1图示示例打印设备100。打印设备100可以被配置为打印在各种类型物理输出介质上部分存储和/或完全存储的电子文件。这些输出介质包括但不限于各种尺寸和类型的纸张、字幕片等。打印设备100可以可互换地被称之为“打印机”。
[0038]打印设备100可以用作例如个人计算机、服务器设备、打印服务器等的计算设备的本地外围设备。在这些情况下,打印设备100可以通过例如串行端口电缆、并行端口电缆、通用串行总线(USB)电缆、Firewire (IEEE1394)电缆或高分辨率多媒体接口(HDMI)电缆的电缆附接至计算设备。因此,计算设备可以用作用于打印设备100的电子文件的源。
[0039]另一方面,打印设备100可以包括有线或无线网络接口,例如以太网或802.11(Wifi)接口。如此被配置,打印设备100可以用作用于在网络上能与打印设备100通信的任意数目计算设备的打印设备。在一些实施例中,打印设备100可以同时用作本地外围设备和联网打印机两者。
[0040]为了使用打印设备100,计算设备可以安装一个或多个打印机驱动器。这些打印机驱动器可以包括将待打印的电子文件从存储在计算设备上的各种本地表示转换成由打印设备100支持的一个或多个表示的软件组件。
[0041]无论如何,打印设备100可以被考虑为是计算设备,并且可以实现打印相关的任务和非打印相关的任务两者。
[0042]如以上所指出的那样,打印设备100还可以包括复印机、传真机和扫描仪功能。在一些实施例中,打印设备100可以使用扫描仪功能来方便复印机和/或传真机功能。例如,打印设备100可以将物理文件扫描成电子格式,并且然后打印所得到的电子文件以提供副本,和/或经由电话接口传送所得到的电子文件以提供传真功能。
[0043]为了支持打印设备100的各种功能,打印设备100可以包括文件进纸器/输出托盘102、纸张储存器104、用户接口 106、扫描元件108以及机壳110。应当理解,打印设备可以处理广泛种类的形式。因此,打印设备100可以包括比图1中图示的更多或更少的部件,和/或采用与图1中图示的不同方式布置的部件。[0044]文件进纸器/输出托盘102可以保留待扫描、复印或传真的物理文件(例如,一张或多张纸的堆)。有利地,文件进纸器/输出托盘102可以允许打印设备100自动喂送多个物理文件以通过打印设备100进行处理,而不需要人工干预。文件进纸器/输出托盘102还可以包括用于保留已由打印设备100处理的物理文件的一个或多个分离输出托盘。这些可以包括已由打印设备100扫描、复印或传真的物理文件以及已由例如打印设备100的传真和/或复印功能产生的物理文件。
[0045]纸张储存器104可以包括用于各种类型物理介质的托盘和/或喂送元件。例如,纸张储存器104可以包括用于872xll英寸纸、A4纸、信头纸、信封等的分离托盘。对于打印设备100的涉及输出物理介质的任意功能(例如,打印、复印和/或接收传真),纸张储存器104可以供应物理介质。
[0046]用户接口 106可以方便打印设备100与人类或非人类用户的交互,例如用于从用户接收输入和向用户提供输出。因此,用户接口 106可以包括诸如键区、键盘、触敏或存在敏感性(presence-sensitive)面板、操纵杆、麦克风、照相机和/或摄影机的输入部件。用户接口 106还可以包括一个或多个输出部件,例如显示屏(其例如可以与存在敏感性面板组合)、阴极射线管(CRT)、液晶显示器(IXD)、基于发光二极管(LED)的显示器、使用数字光处理(DLP? )技术的显示器、电灯泡和/或一个或多个现在已知或后来开发的其它类似设备。用户接口 106还可以被配置为能够经由扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或现在已知或在未来随后开发的其它类似设备产生可听输出。
[0047]扫描元件108可以是玻璃面板,在该玻璃面板下,可移动光源操作以扫描被放置在玻璃面板顶部上的物理介质。可替代地,在玻璃面板下的数字相机可以通过拍摄物理介质的图片而“扫描”被放置在玻璃面板顶部上的物理介质。被扫描物理介质的图像可以存储在与打印设备100相关联的数据储存器中。
[0048]机壳110可以包括包含打印设备100的各种部件(例如文件进纸器/输出托盘102、纸张储存器104、用户接口 106和扫描元件108)和/或与打印设备100的各种部件互联的物理外壳。另外,机壳110可以容纳图1中未示出的其它部件。例如,机壳110可以包含一个或多个硒鼓、液体喷墨、传送带、墨辊和/或电源。进一步,机壳110可以包括诸如有线和/或无线网络接口、电话接口(例如RJ45插孔)、USB接口、蓝牙?接口、读卡器端口等的通信接口。
[0049]而且,由于打印设备100可以基于通用和/或特定设计的计算设备部件,因此机壳110还可以容纳一些或所有这些部件。为此,图2图示可以包括在打印设备100中的计算设备部件200 (例如,计算设备的功能元件)的示例实施例。
[0050]计算设备部件200可以包括处理器202、数据储存器204和输入/输出功能206,所有这些可以通过系统总线208或类似机制连接。处理器202可以包括一个或多个中央处理单元(CPU),例如一个或多个通用处理器和/或一个或多个专用处理器(例如,特定用途集成电路(ASIC)或数字信号处理器(DSP)等)。
[0051]数据储存器204依次可以包括易失性和/或非易失性数据储存器,并且可以整体或部分地与处理器202集成。数据储存器204可以存储可由处理器202执行的程序指令和由这些指令操纵的数据以实现这里描述的各种方法、过程或功能。可替代地,这些方法、过程或功能可以由硬件、固件和/或硬件、固件和软件的任意组合定义。因此,数据储存器204可以包括有形、非暂时性计算机可读介质,在这些介质上存储有一旦由一个或多个处理器执行就导致打印设备100实现在本说明书或附图中公开的任意方法、过程或功能的程序指令。
[0052]输入/输出功能206可以包括参照用户接口 106描述的任意功能和/或元件。因此,输入/输出功能206可以用于配置和/或控制处理器202的操作。输入/输出功能206还可以基于由处理器202执行的操作提供输出。
[0053]应当理解,打印设备的这些示例被提供用于示例目的。进一步,除了和/或可替代于上面示例,在其它可能性之中,打印机和计算机技术的其它组合和/或子组合也可以存在,只要不背离这里实施例的范围。
[0054]图3图示可能数据路径中由打印设备100处理的电子文件的表示可能通过的一些数据路径。在图3中,假设打印设备100可以包括扫描功能302和打印功能304。这些功能中的每个可以以硬件、固件、软件或硬件、固件和/或软件的任意组合来实施。另外,扫描功能302和打印功能304中的每个可以与计算设备300通信,并且也可能与其它计算设备通信。在一些情况下,由打印设备100支持的数据路径可以被称之为“管线”。
[0055]扫描至打印数据路径310可以由扫描功能302和打印功能304支持。扫描至打印数据路径310可以例如在用户指令打印设备100复印物理文件时使用。响应于该指令,扫描功能302可以将物理文件扫描成电子文件,并且经由扫描至打印数据路径310将电子文件传送至打印功能304。扫描至打印数据路径310的使用可能涉及至少暂时将电子文件中的一些或全部存储在打印设备100的数据储存器中。然后,打印功能304可以将电子文件打印成物理介质(例如一张或多张纸)。
[0056]扫描至主机数据路径306也可以由扫描功能302和计算设备300支持。扫描至主机数据路径306可以例如在用户指令打印设备100扫描物理文件时使用。用户也可以指令打印设备100将所得到的电子文件的表示传送至计算设备100,或者打印设备100可以被预配置成将电子文件自动传送至计算设备300。因此,响应于该指令,扫描功能302可以将物理文件扫描成电子文件,并且经由扫描至主机数据路径306将所得到的电子文件传送至计算设备300。扫描至打印数据路径310的使用可能涉及至少暂时将电子文件中的一些或全部存储在打印设备100的数据储存器中,并且将所得到的电子文件的表示传送至计算设备300。
[0057]主机至打印数据路径308可以由计算设备300和打印功能304支持。主机至打印数据路径308可以例如在用户指令计算设备300在打印设备100上打印电子文件时使用。响应于该指令,计算设备300可以将电子文件的表示传送至打印功能304。打印设备100经由打印功能304可以将电子文件打印成物理介质。电子文件中的一些或全部可以在电子文件的打印之前和/或期间存储在打印设备100的数据储存器中。
[0058]明显地,对于上面讨论的数据路径中的至少一个以及由打印设备100支持的可能其它数据路径,电子文件可能需要存储和/或在网络或电缆上传送。电子文件的存储和/或传送两者的效率能够通过压缩这些电子文件来提高。例如,如果电子文件能够平均被压缩成它们原始尺寸的四分之一,则大约四倍多的电子文件能够存储在固定量的数据储存器中。进一步,这些压缩电子文件在网络或电缆上的传送能够比未压缩电子文件的传送大约四倍快地发生。[0059]下列部分描述提供由打印设备100处理的电子文件的压缩的各种实施例。
[0060]3、示例图像颜色模型
[0061]电子文件能够使用多个颜色模型来表示。因此,稳健型压缩技术应当能够对这些模型中的一些或全部进行操作。进一步,半色调压缩可能对于单个颜色模型是特定的,或者可能单独对颜色模型的每个通道进行操作。
[0062]例如,红绿蓝(RGB)颜色模型可以用于在电子输出设备,例如电视机、监视器和计算机屏幕上显示图像。RGB是加色模型,在该模型中,红色、绿色和蓝色光以各种方式一起加入以产生颜色光谱。例如,青色可以通过组合绿色和蓝色形成,黄色可以通过组合红色和绿色形成,品红可以通过组合红色和蓝色形成,并且白色可以通过组合红色、绿色和蓝色形成。
[0063]RGB图像的特定像素可以被表达为三通道元组(R,G,B),其每个通道可以从零变化到预定义的最大值(例如255)。如果所有通道处于零,则结果可能是黑色。如果所有通道处于最大值,则结果可能是最亮的可表达白色。
[0064]RGB输出通常依赖于设备,因为不同的输出设备可以以不同的方式显示相同的RGB图像。因此,在一些情况下,这些不同可以由人识别。在一些实施例中,使用扫描至主机数据路径306扫描到打印设备100中的物理文件可以使用RGB颜色模型来编码。
[0065]青色-品红-黄色(CMY)颜色模型可以用于通过打印设备打印彩色图像。CMY是减色模型,在该模型中,青色、黄色和品红以各种方式施加到白色表面以再生颜色光谱。例如,红色可以通过组合品红和黄色形成,蓝色可以通过组合青色和品红形成,并且绿色可以通过组合青色和黄色形成。因此,CMY颜色模型可以被考虑为RGB颜色模型的补充。
[0066]CMY图像的特定像素可以被表达为三通道元组(C,M,Y),其每个通道可以从零变化到预定义的最大值。如果所有通道处于零,则结果可能是白色。如果所有通道处于最大值,则结果可能是黑色。
[0067]与RGB输出同样地,CMY输出通常依赖于设备,因为相同CMY图像在不同打印设备上的打印输出可能看起来不同。在一些情况下,这些不同可以由人识别。在一些实施例中,使用主机至打印数据路径308和/或扫描至打印数据路径310由打印设备100打印的电子文件可以使用CMY颜色模型编码。
[0068]在一些实施例中,也可以使用四通道CMYK颜色模型。除了也使用主(黑色)通道以夕卜,该CMYK四通道模型可能与CMY颜色模型类似或相同。除了可能组合青色、品红和黄色以形成黑色,独立的主(黑色)墨源可以用于形成黑色。因此,CMYK图像的特定像素可以被表达为四通道元组(C,M,Y,K),其每个通道可以从零变化至预定义的最大值。
[0069]使用CMYK颜色模型,与CMY模型相同的颜色可以被支持,但通常使用较少的墨,因为K着色剂能够代替C、M和Y着色剂的混合物。然而,CMYK颜色模型可能不总是能够方便地转换成其它颜色模型以及从其它颜色模型转换,因为K着色剂的添加增加冗余性,例如相同的颜色能够是混合不同C、M、Y和K组合物的结果。
[0070]加色模型是灰色,也被称之为灰度级,灰度级可以用于黑色和白色图像的表示。与RGB和CMY/CMYK颜色模型不同,灰色颜色模型的每个像素使用对像素的强度进行编码的单个通道来表示。由灰色通道使用的值能够从用于黑色的零变化至用于白色的预定义最大值(例如255)。在一些实施例中,由打印设备100支持的数据路径中的一条或多条可以能够使用灰色颜色模型对图像进行编码。
[0071]另一颜色模型是YCbCr。在一些实施中,该颜色模型可以用作图像的可替代表示。具体地,Y通道可以表示像素的亮度,并且Cb和Cr通道可以分别表示蓝色-黄色色度和红色-绿色色度。YCbCr颜色模型具有与RGB和CMY颜色模型定义明确的关系,并且能够相对轻松地转换成这些颜色模型中的任一个以及从这些颜色模型中的任一个转换。
[0072]YCbCr颜色模型的附加优势是,使用YCbCr颜色模型编码的图像的压缩倾向于比采用RGB或CMY/CMYK颜色模型编码的图像的压缩更有效率。具体地,人眼不是非常擅长于检测图像中的高频(例如快速变化)色度信息。因此,使用YCbCr颜色模型编码的图像能够通过忽视Cb和Cr通道的高频组分而利用该信息。因此,如在下面更详细讨论的那样,采用特定颜色模型编码的图像可以在压缩之前被转换成YCbCr颜色模型以便提高压缩性能。
[0073]4、示例图像半色调
[0074]许多数字图像包含连续色调,在该连续色调中,图像的颜色或灰度级部分从较亮的色调平滑地过渡到较暗的色调,或者从较暗的色调平滑地过渡到较亮的色调。然而,许多打印机不支持连续色调。代替地,打印机可能支持从最亮色调到最暗色调的离散数目的色调。例如,对于图像的任意给定像素,简单的黑色和白色打印机可以支持仅仅输出黑色或白色。
[0075]半色调包括将连续色调图像分解成像素阴影的图案以创建平滑过渡灰色或彩色的幻影的过程。应当注意,这里术语“图像”可以称之为全图像或图像的部分,例如图像块。在下面的一些示例中,为了简单起见,操作可能针对图像块而不是全图像示出。
[0076]半色调矩阵可以是mxn块单元,每个单元包含一个或多个阈值。当向图像应用半色调矩阵时,半色调矩阵可以在图像上平铺,使得图像中的每个像素与平铺半色调矩阵之一中的单元成对相关联。半色调矩阵可以基于特定打印机的特性来定义,因此可以是特定于输出设备。半色调矩阵也可以被称之为半色调屏幕、阈值表或抖动表。
[0077]来自图像的每个像素可以与其相关联单元中的阈值比较来确定像素的半色调值。例如,在特定颜色通道中,像素可以采用指示该像素强度或亮度的0-255的值。相关联单元可以包含三个阈值:64、128和240,因此定义四个范围:0_64、65_128、129-240和241-255。像素的值落入这些范围之一中,并且像素所落入的范围可以限定像素的半色调值。因此,像素的半色调值可以利用2位值来限定。例如,00可以指示范围0-64,01可以指示范围65-128,10可以指示范围129-240,并且11可以指示范围241-255。
[0078]更正式地说,如果在半色调矩阵中存在为每个单元所限定的阈值,则这些阈值可以限定i个范围,并且像素值所落入的范围可以由log2(i)位值表示。将半色调矩阵应用于图像中的每个像素可能导致图像的半色调版本,在半色调版本中,每个像素由log2(i)位值表示。该半色调版本然后可以发送至支持i色调的打印机。
[0079]该过程在图4中示出。图像像素矩阵400包含多个单个像素,包括示例像素402和404,每个采用8位值(例如0-255)。半色调矩阵406包含单元的图案,包括示例单元408和410,每个包括15个阈值的表示(即指示被标记从O至15的16个范围,在0-255的全部范围内)。
[0080]半色调矩阵406可以覆盖在图像像素矩阵400上,使得示例单元408与示例像素402相关联,并且示例单元410与示例像素404相关联。示例像素402的值可以被映射成由示例单元408的阈值限定的范围,并且示例像素404的值可以映射成由示例单元410的阈值限定的范围。
[0081]每个示例单元可以限定不同的阈值。例如,示例单元408可以限定阈值412,而示例单元410可以限定阈值414。因此,将像素映射成这些相应的阈可能导致确定示例像素402的值落在阈值412的第四和第五阈值之间,并且示例像素404的值落在阈值414的第十五阈值上。因此,示例像素402的半色调值可以被表示为4,而示例像素404的半色调值可以被表不为15。
[0082]更一般地,假设半色调矩阵的单元限定i_l个阈值。如果像素值大于或等于最高阈值,则半色调值为1-Ι。如果像素值小于最低阈值,则半色调值为O。如果像素值大于或等于第c阈值但小于第(c+1)阈值,则半色调值为C。
[0083]覆盖示例图像块的示例半色调矩阵在图5A中图示出。半色调矩阵的每个单元被标记为ΑΡ..Α8或ΒΡ..Β8中之一。这些标记中的每个指示潜在不同的阈值集合。因此,标记为Al的单元可以具有与标记为Α2的单元不同的阈值集合,等等。
[0084]半色调矩阵的覆盖图案向左移动,使得半色调矩阵的垂直相邻平铺的起始位置偏移两个单元。例如,半色调矩阵502的Al单元比半色调矩阵500的Al单元进一步向左两个单元。相似地,半色调矩阵504的Al单元比半色调矩阵502的Al单元进一步向左两个单元。该偏移可能导致由打印机产生的半色调图案具有美学上吸引人的角度。
[0085]平铺半色调矩阵的一个可能缺点是,当图像的宽度是这样时需要非整数的半色调矩阵来覆盖图像的每行。例如,在图5Α中,图像块为12x8个像素,并且半色调矩阵为8x2个单元。因此,需要IV2半色调矩阵来跨越图像块的宽度。因为下面将更详细解释的原因,填充图像块的行可能导致图像的半色调版本的压缩效率增加。具体地,图像块可以利用额外的像素列填充,使得整数的半色调矩阵可以覆盖在每行上。这些填充列(padding column)可以包含在图像块的最右列中的像素副本。
[0086]填充列的数目可以以各种方法确定。确定填充列数目r的一个可能方法是根据下列等式:
[0087]r = m-(p_q)modm
[0088]其中m为单元中半色调矩阵的宽度,P为像素中图像块的宽度,并且q为偏移。对于图 5A, m=8, p=12,并且 q=2。因此,r=6。
[0089]图5B图示图5A的图像块,其具有6个填充列,并且平铺有半色调矩阵。除了图5B中示出的平铺半色调矩阵以外,更多的半色调矩阵可以通过将半色调矩阵从一对行的右端缠绕到接下来下面一对行的左端而在填充图像块上平铺。因此,半色调矩阵可以在右上角中的Al…A6和ΒΡ..Β6单元上展开,并且然后“卷绕”到位于接下来最下面两行的左侧的Α7…AS和Β7…Β8单元。因此,当从左到右相邻读取每对行时,半色调矩阵顺次重复。
[0090]为了提供基于实际图像的另一不例,图6图不不例图像600和图像600的图像块602。为了简单和例示的目的,图像600包括单个颜色通道。图像块602表示图像600的区域的扩大,即程式化的“R”。
[0091]作为示例,可以假设图像块602的尺寸为128x128像素。进一步假设图5Α的8x2半色调矩阵用于覆盖图像块602,并且偏移为2,则m=8,ρ=128,并且q=2。因此,填充列的数目r为2。[0092]图7再次图示图像块602,图像块602此时与2像素填充列700对准。填充列700可以附加至图像块602的右侧以形成130x128像素块。填充列700的像素可以从图像块602的两个最右列导出,并且半色调可以应用于这些像素。因此,半色调后,填充列700的像素可能不类似导出它们的像素。
[0093]另外,图7还包括图像块702,图像块702为图像块602的略微放大、半色调后的版本。类似地,列704是列700的略微放大、半色调后的版本。当在适当距离处观看时,图像块702近似图像块602的阴影。该效果可以通过向图像块602应用合适的半色调矩阵而实现。
[0094]图8中的半色调像素800图示应用半色调后图像块602的右上角的像素。因此,半色调像素800可以表示图像块702的部分。在半色调像素800中,单个半色调像素可以具有采用十六进制符号的从O到F的值。O可以表示最亮的半色调像素(例如,白色),而F可以表示最暗的半色调像素(例如,黑色)。O和F之间的半色调像素值可以表示以用于半色调像素值I的浅灰色开始的灰色阴影,并且随着半色调像素值增加日益变得较暗。
[0095]由于图像块602的右上角是纯色,因此半色调像素800的值反映三角图案在图像块702的右上角明显。这示出半色调如何能够用于表示颜色的特定阴影。
[0096]给定图像块的半色调像素,这些像素可以被布置成段。做出这种布置的一个可能方法在图9中示出。在图9中,假设应用于图像块的半色调矩阵是8单元宽和2单元高。毫无疑问,其它尺寸的半色调矩阵可以使用。例如,一些实施例可以使用m单元宽和η单元高的mxn像素半色调矩阵。这些段可以包括填充列中的像素。
[0097]具体地,图9示出被布置成段900A、902A、904A和906A的半色调像素800的顶部两行的一部分。每段是半色调矩阵的尺寸,也就是说8像素宽和2像素高,或者8x2。然而,在完全一般性上,如果mxn单元半色调矩阵被使用,则相应地可以使用mxn像素段。
[0098]图9还示出每段的2路交错。例如,在段900A中,该段的顶部像素与该段的底部像素一个接一个地交错。结果可能是交错段900B,其是16像素宽和I像素高。以类似的方式,段902A可以被交错以形成交错段902B,段904A可以被交错以形成交错段904B,并且段906A可以被交错以形成交错段906B。一般地,如果段的高度是η像素,则可以使用η路交错。因此,为了清楚起见,这些交错段可以可选择地被称之为mnxl半色调段。
[0099]一旦它们被形成,交错段900B、902B、904B和906B可以按图9中示出的顺序被布置,其中最左交错段由第二最左交错段紧接着,依次类推。这些交错段可以按该特定顺序提供给被布置以存储这些段用于进一步处理的一个或多个缓冲区。因此,在下列讨论中对“段”的引用可以假定该段是交错段。进一步,这些段的序列可以被称之为缓冲区的“输入流”。
[0100]图10图示缓冲区布置1000,其包含12段历史缓冲区1002(条目ΗΒ_0至HB_11)、4段先行缓冲区(lookahead buffer) 1004 (条目LB_0至LB_3)和“新”缓冲区1006。历史缓冲区1002可以是FIFO缓冲区,因为在历史缓冲区1002 (例如,HB_11)的一端插入的段可以按它们插入的顺序行进通过至历史缓冲区1002 (例如,ΗΒ_0)的另一端。数据流的一般方向在图10中被示出为从底部到顶部;也就是说,段可以首先被放置在“新”缓冲区1006中、移动至先行缓冲区1004,然后至历史缓冲区1002。
[0101]为了方便起见,历史缓冲区1002可以被称之为“FIFO缓冲区”,并且可以由h条目组成,而先行缓冲区1004可以由k条目组成。“新”缓冲区1006可以由图10中示出的单个条目或更多条目组成。因此,应当理解,缓冲区布置1000的单个缓冲区可以各自包含任意数目的条目,并且图10中示出的特定布置是为了示例的目的。例如,在一些实施中,“新”缓冲区1006的条目可以被考虑为是先行缓冲区1004的部分。
[0102]一般地,半色调段可以通过在历史缓冲区1002中查找匹配段来压缩。具体地,先行缓冲区1004中段的当前序列可以与历史缓冲区1002中的段序列相比较,以确定在能够做出的相应段序列之间的最长匹配。当考虑以HB_9、HB_10或HB_11开始的匹配时,包括在先行缓冲区1004中的段可以被考虑为历史缓冲区1002的部分。
[0103]图11图示在压缩后可以用于表示半色调段的若干不同格式。图11基于图10的缓冲区布置1000;也就是说,64位段,在历史缓冲区中为12条目,在先行缓冲区中为4条目,并且在“新”缓冲区中为一个条目。毫无疑问,其它缓冲区布置可能通过相应调节图11的格式而可以被支持。为了例示的目的,格式1100、1102和1104的尺寸未按规定比例示出。
[0104]格式1100可以表示段的文字编码,并且可以在特定段不能基于缓冲区布置1000中的信息被压缩时使用。因此,格式1100可以以文字码字开始,其可以是I的单个位集合。文字码字可以指示下一字段包括未压缩的段。具体地,该下一字段可以是64位,并且可以是不能被压缩的段的副本。
[0105]格式1102可以被称之为重复或短重复格式。格式1102可以以重复码字开始,其可以是O的单个位集合。该字段可以由4位重复位置字段和2位重复长度字段紧接着。重复位置字段可以指示在历史缓冲区中重复段从哪开始。重复长度字段可以指示从该位置开始的重复段的数目。为了高效利用重复长度字段中的位,该字段可以包含重复段减去I的数目。因此,如果重复长度字段包含值“00”,则I的重复长度可以被表示。如果重复长度字段包含值“01”,则2的重复长度可以被表示,等等。
[0106]格式1104可以被称之为扩展重复或长重复格式。格式1104可以以扩展重复码字开始,其可以是I的三个位集合。该字段可以由5位重复长度字段紧接着,指示条目HB_11中的段在先行缓冲区1004、“新”缓冲区1006和/或输入流中的倍数。为了高效利用重复长度字段中的位,该字段可以包含重复段减去5的数目。因此,如果重复长度字段包含值“00000”,则5的重复长度可以被表示。如果重复长度字段包含值“00001”,则6的重复长度可以被表示,等等。
[0107]图12是可以被跟紧接着以确定图11的哪个格式用在特定场景中的全部过程的流程图。如上所指出的,在步骤1200,先行缓冲区1004中段的当前序列可以与历史缓冲区1002中的段序列相比较以确定能够做出的段的相应序列之间的最长匹配。“新”缓冲区1006可以包含将从输入流读取的下一段。
[0108]在步骤1202,确定匹配长度是否为零,零指示未找到匹配。如果匹配长度为零,则在步骤1204处,可以采用下列动作:(I)输出以格式1100编码的LB_0中的段,(2)移动历史缓冲区一段,将条目ΗΒ_0中的之前段从历史缓冲区中清空,(3)将条目LB_0中的段移动到条目HBll中,以及(4)将新段移动到LB_3中。
[0109]如果匹配长度为非零,则采取的动作可能依赖于匹配的长度。在步骤1206,确定下列条件是否为真:匹配开始于HB_11并且具有五的长度(所有先行缓冲区段相同并且等于段并且“新”缓冲区1006中的段也与HB_11中的值相匹配)。[0110]如果条件为真,则在步骤1208,可以采取下列动作:(1)设置扩展计数值为5,(2)只要扩展计数值小于36并且“新”缓冲区1006中的段与HB_11处的段相匹配,则丢弃“新”缓冲区1006中的段并且累加扩展计数值,(3)使用格式1104,输出具有以重复长度字段编码的最后扩展长度的扩展重复码,(4)丢弃先行缓冲区1004中的所有四个值,而不更新历史缓冲区1002,以及(5)利用来自输入流的下一段重新加载先行缓冲区1004。
[0111]如果条件为非真,则在步骤1210处,可以采取下列动作:(I)利用编码的匹配历史缓冲区1002位置和匹配长度输出格式1102,(2)以匹配长度移动运行窗口,以及(3)利用来自输入数据流的下一段重新加载先行缓冲区1006。如果具有相同非零最好匹配长度的多个匹配存在,则可以使用以最低历史缓冲区1002索引数开始的匹配。
[0112]注意,解压缩器模块可以以相同的原始历史缓冲区值开始,并且可以利用与压缩器模块相同的规则维持运行窗口。另外,如果待压缩的图像不是段尺寸的整数倍,则最后一段可能在输入流耗尽时以O位填充。
[0113]为了进一步示出能够压缩半色调图像或图像块的各种方法中的一些,图13至图18提供如何能够操作图10的缓冲区、图11的格式和图12的过程以方便这种压缩的示例。
[0114]图13示出来自输入流的段如何可以添加到“新”缓冲区1006和先行缓冲区1004。一旦初始化,历史缓冲区1002就可以利用用于条目ΗΒ_0至HB_10的所有“F”值(即采用二进制的1111)和用于条目HB_11的所有“O”值(即采用二进制的0000)来加载。先行缓冲区1004可以利用来自输入流的第一四段来加载。
[0115]在图13所示出的场景中,未能找到匹配。相应地,采用格式1100的输出可以产生,包括指示输出段未被压缩的文字码字和输出段的副本(例如,由LB_0处的段表示的64位“00000F9R)0000F9”)。因此,全部65位可以输出用于该段。
[0116]另外,历史缓冲区1002的段可以向上移动一个条目,其包括丢弃条目ΗΒ_0中的段。输出段也可以是写入的条目HB_11。
[0117]图14示出在先行缓冲区1004和历史缓冲区1002中的段之间找到两段匹配的示例场景。图14的示例场景近似从图13的示例场景离开的位置继续。因此,先行缓冲区1004的段已向上移动一个条目,“新”缓冲区1006中的段已被移入LB_3中,并且来自输入流的下一段已被放置在“新”缓冲区1006中。
[0118]先行缓冲区1004中段的序列再次可以与历史缓冲区1002中的段序列相比较以确定那些缓冲区中段的相应序列之间的最长匹配。此时,对于2段的匹配,LB_0和LB_1的段与段HB_11和LB_0相匹配(如上所指出的那样,当搜索匹配时,先行缓冲区1004的内容可以被考虑为历史缓冲区1002的部分)。
[0119]响应于确定存在两段的匹配,可以产生采用格式1102的输出。该输出可以包括O的重复码字(二进制)、1011的重复位置(二进制)(指示匹配开始于第11缓冲区条目和01的重复长度(二进制)(指示HB_11处的段重复两次)(如上所指出的那样,为了效率的目的,重复长度码可以指代重复长度减去I)。因此,代替两个64位的段,可以使用一个7位的值。
[0120]另外,历史缓冲区1002中的段可以向上移动两个条目,其可以包括丢弃条目ΗΒ_0和HB_1中的段。进一步,先行缓冲区中的段可以向上移动两个条目,其可能涉及条目LB_0和LB_1中的段移入条目HB_10和HB_11中。另外,“新”缓冲区1006中的段可以移入条目LB_2中,并且来自输入流的接下来两段可以分别存储在条目LB_3和“新”缓冲区1006中。
[0121]图15图示近似从图14的示例场景离开的位置继续的另一场景。再次,先行缓冲区1004中段的序列可以与历史缓冲区1002中的段序列相比较,以确定那些缓冲区中段的相应序列之间的最长匹配。在此场景中,与图13的场景相同,未找到匹配(零长度匹配)。
[0122]相应地,可以产生采用格式1100的输出。该输出可以包括指示输出段未被解压缩(I 二进制)的文字码字和输出段的副本(例如,由LB_0处的段表示的64位“FAE00FFFFAE00FFF”)。因此,可以针对该段输出总的65位。另外,历史缓冲区1002的段可以向上移动一个条目,其包括丢弃条目ΗΒ_0中的段。输出段也可以是写入的条目HB_11。
[0123]图16示出在先行缓冲区1004与历史缓冲区1002中的段之间找到一段匹配的示例场景。图16的示例场景近似从图15的示例场景离开的位置继续。
[0124]先行缓冲区1004中段的序列再次可以与历史缓冲区1002中的段序列相比较以确定那些缓冲区中段的相应序列之间的最长匹配。此时,最长匹配位于条目LB_0中的段与条目LB_11中的段之间。
[0125]响应于确定存在一段的匹配,可以产生采用格式1102的输出。该输出可以包括重复码字(O 二进制)、1011的重复位置(二进制)(指示匹配开始于第11缓冲区条目和00的重复长度(二进制)(指示匹配为一段长度)(再次,重复长度可以指代实际重复长度减去I)。因此,代替64位的段,可以使用一个7位的值。
[0126]另外,历史缓冲区1002中的段可以向上移动一个条目,其可以包括丢弃条目ΗΒ_0中的段。进一步,先行缓冲区中的段也可以向上移动一个条目,其可能涉及条目LB_0中的段移入条目HB_11中。“新”缓冲区1006中的段可以移入先行缓冲区1004的条目LB_3中,并且来自输入流的接下来的段可以分别存储在“新”缓冲区1006中。
[0127]图17示出在先行缓冲区1004与历史缓冲区1002中的段之间找到三段匹配的示例场景。先行缓冲区1004中段的序列再次可以与历史缓冲区1002中的段序列相比较以确定那些缓冲区中段的相应序列之间的最长匹配。此时,最长匹配位于条目1^_0、1^_1和LB_2中的段与条目HB_4、HB_5和HB_6中的段之间。图17中圈出的值表示来自填充列的值。
[0128]响应于确定存在三段的匹配,可以产生采用格式1102的输出。该输出可以包括重复码字(O 二进制)、0100的重复位置(二进制)(指示匹配开始于HB_4)历史缓冲区1002的第四条目和10的重复长度(二进制)(指示匹配针对三段继续)。因此,代替三个64位的段,可以使用一个7位的值。
[0129]另外,历史缓冲区1002中的段可以向上移动三个条目,其可以包括丢弃条目HB_0、HB_1和HB_2中的段。进一步,先行缓冲区中的段也可以向上移动三个条目,其可能涉及条目LB_0、LB_1和LB_2中的段移入条目HB_9、HB_10和HB_11中。“新”缓冲区1006中的段可以移入条目LB_1中,并且来自输入流的接下来的三段可以分别存储在LB_2、LB_3和“新”缓冲区1006中。
[0130]图18示出在先行缓冲区1004和历史缓冲区1002中的段之间找到五段匹配的示例场景。该场景是条目HB_11中的段与先行缓冲区1004和“新”缓冲区1006中的所有条目相匹配的“扩展重复”的示例。因此,最长匹配位于条目HB11、LB_0、LB_1、LB_2和LB_3中的段与条目LB_0、LB_1、LB_2、LB_3和“新”缓冲区1006中的段之间。[0131]响应于确定存在五段的扩展重复匹配,可以产生使用格式1104的输出。该输出可以包括111的扩展重复码字(二进制)和00000的重复长度(二进制)(指示匹配针对五段继续)(对于扩展重复码字,重复长度码可以指代重复长度减去5)。因此,代替五个64位的段,可以使用一个8位的值。在重复针对额外段继续的场景中,输入流可以继续读取并且重复长度可以相应地累加。
[0132]图19A、图19B、图19C和图19D提供上述列填充机制的可能益处的进一步例示。图19A图示具有覆盖的示例8x2半色调矩阵的示例图像块1900。显著地,在半色调后,与在点1902处开始的三个半色调矩阵对准的像素和与在点1904处开始的三个半色调矩阵对准的像素相同。
[0133]图19B图示包含交错后图19A的半色调矩阵的缓冲区布置1906。如在图19B中所能看出的,即使与在点1902处开始的三个半色调矩阵对准的像素和与在点1904处开始的三个半色调矩阵对准的像素相同,但它们也在缓冲区布置1906中彼此偏移。结果,在先行缓冲区和历史缓冲区中的条目之间不存在匹配。
[0134]图19C图示具有覆盖的示例8x2半色调矩阵的示例图像块1908。除了两个填充列1910应用于右手侧以外,示例图像块1908与示例图像块1900类似。除了由填充矩阵1910的加入所做出的改变以外,与在点1902处开始的三个半色调矩阵对准的像素和与在点1904处开始的三个半色调矩阵对准的像素相同。
[0135]图19D图示包含交错后图19C的半色调矩阵的缓冲区布置1912。填充列的第一两个像素1914 (最顶部填充像素)被圈出,填充列的第二两个像素1916 (第二顶部填充像素)也被圈出。如在图19D中可看出的,填充列的加入导致历史缓冲区和先行缓冲区之间的三个匹配。具体地,条目HB_5、HB_6和HB_7与条目LB_0、LB_1和LB_2相匹配。以该方式,填充列可以导致半色调图像的更高效压缩。
[0136]5、示例操作
[0137]图20是示例实施例的流程图。由该流程图示出的步骤可以由一个或多个打印设备,例如打印设备100和/或计算设备,例如计算设备300实施。每个单独步骤的方面可以由单个设备执行或者分布在多个计算设备之间。图20的示例实施例还可以包括任意特征或始终在本说明书和/或附图中公开的特征。
[0138]在步骤2000,基于mxn半色调矩阵和图像的第一mxn像素块,可以确定第一 mxn像素块的第一 mxn半色调版本。该确定可能涉及在图像上平铺mxn半色调矩阵,使得mxn半色调矩阵的垂直相邻平铺的开始位置偏移q像素。另外,rlxn填充像素列可以附加至图像的最右列。在一些实施例中,P可以是在附加rlxn填充像素列之前像素中的图像的宽度,并且r可以是m- (p-q) modm。
[0139]在步骤2002,可以在第一 mxn像素块的第一mxn半色调版本的行上执行η路交错,以创建第一 mnxl半色调段。
[0140]在步骤2004,第一 mnxl半色调段可以与先入先出(FIFO)缓冲区中的一个或多个半色调段相比较。该比较可能涉及确定FIFO缓冲区中与第一 mnxl半色调段相匹配的半色调段和连续紧接第一 mnxl半色调段的任意其它半色调段的最长连续范围。
[0141]在步骤2006,可以确定第一 mnxl半色调段是否与FIFO缓冲区中的任意半色调段相匹配。如果第一 mnxl半色调段与FIFO缓冲区中的特定半色调段相匹配,则在步骤2008处可以输出重复码字和重复值,并且可以向FIFO缓冲区写入第一 mnxl半色调段的至少一个表示。在一些实施例中,指示特定半色调段在FIFO缓冲区中的地点的重复位置可以包括在该输出中。
[0142]如果第一 mnxl半色调段与FIFO缓冲区中的任意半色调段不相匹配,则在步骤2010处可以输出第一 mnxl半色调段的文字码字和表示,并且可以向FIFO缓冲区写入第一mnxl半色调段的表示。
[0143]在一些实施例中,第一 mnxl半色调段可以存储在具有其它mnxl半色调段的一个或多个先行缓冲区中。另外,FIFO缓冲区中的其它mnxl半色调段也可以与特定半色调段相匹配。j匹配半色调段可以在先行缓冲区中相邻,和/或重复值指示j。将第一 mnxl半色调段的至少一个表示写入FIFO缓冲区可能涉及将第一 mnxl半色调段的j表示写入FIFO缓冲区。进一步,其它mnxl半色调段可以从图像的其它mxn像素块导出。在一些实施中,j匹配半色调段可以从先行缓冲区去除。
[0144]另外,重复码字可以是短重复码字或扩展重复码字。在任一情况下,j可以与k比较。如果j〈k,则短重复码字可以用作重复码字,而如果j >k,则扩展重复码字可以用作重复码字。如果扩展重复码字是重复码字,则在向FIFO缓冲区写入第一 mnxl半色调段的j表示之后,可以利用第二 mnxl半色调段代替先行缓冲区中的至少一个条目。第二 mnxl半色调段可以从图像的第二 mxn像素块导出。
[0145]而且,mxn半色调矩阵的每个单元可以包含阈值。阈值可以限定i个像素值范围,并且第一 mxn像素块的第一 mxn半色调版本的每个单元可以包含1g2⑴位值。对于第一mxn像素块中的每个特定单元,确定第一 mxn像素块的第一 mxn半色调版本可能涉及:(i)确定第一 mxn像素块中特定单元的特定像素值,(ii)确定mxn半色调矩阵的特定单元中的i像素值范围之一包含特定像素值,其中第一 mxn像素块中的特定单元对应于mxn半色调矩阵的特定单元,以及(iii)向第一 mxn像素块的第一 mxn半色调版本的特定单元写入表示确定i像素值范围之一的1g2 (i)位值。
[0146]6、结论
[0147]本发明不限于在本申请中描述的特定实施例方面,该特定实施例旨在作为各个方面的例示。对于本领域技术人员来说将显而易见的是,可以做出许多更改和改变,只要不背离其精神和范围。除了这里列出的那些以外,在本发明范围内的功能等同的方法和装置将从前面的描述中显而易见。这种更改和改变旨在落入所附权利要求的范围内。
[0148]关于图中以及这里讨论的梯形图、场景和流程图中的任意一个或所有,每块和/或通信可以根据示例实施例表示信息的处理和/或信息的传送。可替代实施例可以包括在这种示例实施例的范围内。进一步,或多或少的块和/或功能可以与这里讨论的梯形图、场景和流程图中的任一个一起使用,并且这些梯形图、场景和流程图可以部分或整体地彼此结合。
[0149]表示信息的处理的步骤或块可以对应于能够被配置为执行这里描述的方法或技术的特定逻辑功能的电路。可替代地或另外地,表示信息的处理的步骤或块可以对应于模块、段或程序代码的一部分(包括相关数据)。程序代码可以包括可由处理器执行的用于实施方法或技术中的特定逻辑功能或动作的一个或多个指令。程序代码和/或相关数据可以存储在任意类型的计算机可读介质上,例如存储设备,包括盘驱动器、硬盘驱动器或其它存储介质。
[0150]计算机可读介质也可以包括非暂时性计算机可读介质,例如像寄存器存储器、处理器缓存和/或随机存取存储器(RAM)的短时间段存储数据的计算机可读介质。计算机可读介质还可以包括较长时间段存储程序代码和/或数据的非暂时性计算机可读介质,例如像只读存储器(ROM)、光盘或磁盘和/或紧凑盘只读存储器(CD-ROM)的二次或永久长期储存器。计算机可读介质还可以是任意其它的易失性或非易失性存储系统。计算机可读介质可以被考虑为例如计算机可读存储介质和/或有形存储设备。
[0151]尽管这里已公开了各个方面和实施例,但其它方面和实施例对于本领域技术人员来说将显而易见。这里公开的各个方面和实施例是为了例示的目的而不旨在是限制,其真实范围和精神由所附权利要求指示。
【权利要求】
1.一种用于半色调数字图像的压缩的方法,包括: 基于mxn半色调矩阵和图像的第一 mxn像素块,由计算设备确定所述第一 mxn像素块的第一 mxn半色调版本; 对所述第一 mxn像素块的第一 mxn半色调版本的行执行η路交错以创建第一 mnxl半色调段; 将所述第一 mnxl半色调段与先入先出FIFO缓冲区中的一个或多个半色调段相比较; 如果所述第一 mnxl半色调段与所述先入先出缓冲区中的任意半色调段不相匹配,则(i)输出所述第一 mnxl半色调段的文字码字和表示,并且(ii)将所述第一 mnxl半色调段的表示写入所述先入先出缓冲区;以及 如果所述第一 mnxl半色调段与所述先入先出缓冲区中的特定半色调段相匹配,则(i)输出重复码字和重复值,并且(ii)将所述第一 mnxl半色调段的至少一个表示写入所述先入先出缓冲区。
2.根据权利要求1所述的方法,其中所述第一mnxl半色调段与k_l个其它mnxl半色调段一起被存储在先行缓冲区中,其中j_l ( k的所述其它mnxl半色调段也与所述先入先出缓冲区中的所述特定半色调段相匹配,其中所述j匹配半色调段在至少所述先行缓冲区中是相邻的,其中所述重复值指示j,并且其中将所述第一 mnxl半色调段的至少一个表示写入所述先入先出缓 冲区包括将所述第一 mnxl半色调段的j表示写入所述先入先出缓冲区。
3.根据权利要求2所述的方法,其中所述k-Ι个其它mnxl半色调段从所述图像的其它mxn像素块导出。
4.根据权利要求2所述的方法,进一步包括: 将所述j匹配半色调段从所述先行缓冲区中去除。
5.根据权利要求2所述的方法,其中所述重复码字或者是短重复码字或者是扩展重复码字。
6.根据权利要求5所述的方法,所述方法进一步包括: 将j与k相比较; 如果j〈k,则使用所述短重复码字作为所述重复码字;并且 如果j ^ k,则使用所述扩展重复码字作为所述重复码字。
7.根据权利要求6所述的方法,其中所述扩展重复码字是所述重复码字,所述方法进一步包括: 在将所述第一 mnxl半色调段的j表示写入所述先入先出缓冲区之后,利用第二 mnxl半色调段代替所述先行缓冲区中的至少一个条目,其中所述第二 mnxl半色调段从所述图像的第二 mxn像素块导出。
8.根据权利要求1所述的方法,其中将所述第一mnxl半色调段与所述先入先出缓冲区中的一个或多个半色调段相比较包括:确定所述先入先出缓冲区中与所述第一 mnxl半色调段和连续紧接着所述第一 mnxl半色调段的任意其它半色调段相匹配的半色调段的最长连续范围。
9.根据权利要求1所述的方法,其中所述第一mnxl半色调段与所述先入先出缓冲区中的所述特定半色调段相匹配,所述方法进一步包括:输出指示所述特定半色调段在所述先入先出缓冲区中的地点的重复位置。
10.根据权利要求1所述的方法,其中所述mxn半色调矩阵的每个单元包含i_l个阈值,其中所述i_l个阈值限定i个像素值范围,并且其中所述第一 mxn像素块的第一 mxn半色调版本的每个单元包含1g2 (i)位值。
11.根据权利要求10所述的方法,其中对于所述第一mxn像素块的每个特定单元,确定所述第一 mxn像素块的第一 mxn半色调版本包括: 确定所述第一 mxn像素块中所述特定单元的特定像素值; 确定所述mxn半色调矩阵的特定单元中的i个像素值范围之一包含所述特定像素值,其中所述第一 mxn像素块中的所述特定单元对应于所述mxn半色调矩阵的特定单元;并且 将表示确定所述i个像素值范围之一的1g2 (i)位值写入所述第一 mxn像素块的第一mxn半色调版本的特定单元。
12.根据权利要求1所述的方法,其中确定所述第一mxn像素块的第一mxn半色调版本包括:将所述mxn半色调矩阵在所述图像上平铺,使得所述mxn半色调矩阵的垂直相邻平铺的起始位置偏移q像素,所述方法进一步包括: 将rlxn填充像素列附加至所述图像的最右列。
13.根据权利要求12所述的方法,其中P是在附加所述rlxn填充像素列之前像素中所述图像的宽度,并且其中r是m-(p-q)modm。
14.一种计算设备,包括: 处理器; 数据储存器;以及 存储在所述数据储存器中的程序指令,所述程序指令一旦由所述处理器执行就导致所述计算设备执行根据权利要求1至权利要求13中任意一项的方法的操作。
【文档编号】H04N1/52GK103780796SQ201310499246
【公开日】2014年5月7日 申请日期:2013年10月22日 优先权日:2012年10月23日
【发明者】苏东佩, 肯德里克·翁, 拉里·卢布曼, 迈克尔·M·张, 斯蒂芬·L·施埃弗尔 申请人:京瓷办公信息系统株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1