CN107632801B - 基于单元的数字图像压缩的方法及计算设备 - Google Patents
基于单元的数字图像压缩的方法及计算设备 Download PDFInfo
- Publication number
- CN107632801B CN107632801B CN201710864596.3A CN201710864596A CN107632801B CN 107632801 B CN107632801 B CN 107632801B CN 201710864596 A CN201710864596 A CN 201710864596A CN 107632801 B CN107632801 B CN 107632801B
- Authority
- CN
- China
- Prior art keywords
- color
- color value
- pixel
- output
- color values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Image Communication Systems (AREA)
Abstract
本发明可以提供用于基于单元的数字图像压缩的方法及计算设备。m×n像素单元可以从输入图像中获取,像素中的每一个具有各自的颜色值。可以确定所述单元的特性,包括确定所述像素单元的最低颜色值和最高颜色值。可以计算所述最高颜色值和所述最低颜色值之间的差值。如果所述差值小于或等于阈值差,则可以在所述最高颜色值和所述最低颜色值之间(包括所述最高颜色值和所述最低颜色值)选择一输出颜色值,并且可以将所述输出颜色值的第一表示写入输出介质。如果所述差值大于所述阈值差,则可以选择多个输出颜色值,并且可以将所述多个输出颜色值的第二表示写入所述输出介质。根据本发明,可以提供基于单元的数字图像压缩的方法。
Description
本申请是于2013年5月30日提交的申请号为201310208126.3、标题为“基于单元的数字图像压缩的方法及计算设备”的专利申请的分案申请。
技术领域
本发明涉及基于单元的数字图像压缩的方法。
背景技术
近年来,各种类型的打印设备已经变得流行于企业使用和消费者使用。除了传统的黑白打印机之外,彩色打印机、扫描仪、复印机、传真机和其他部件现在也很普遍。支持这些功能中两种或多种功能的多功能事务机(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像素单元的将所述m×n像素单元中的每个像素与所述两个颜色值中的一个相关联的逐像素位图。如果所述m×n像素单元的颜色值基本由三个或四个颜色值组成,则可以将所述三个或四个颜色值的第三表示写入所述输出介质,其中所述第三表示可以包括四颜色操作码、所述三个或四个颜色值中的每一个的指示以及所述m×n像素单元的将所述m×n像素单元中的每个像素与所述三个或四个颜色值中的一个相关联的逐像素位图。如果所述m×n像素单元的颜色值基本由多于四个的颜色值组成,则可以对所述m×n像素单元执行离散余弦变换(DCT)操作,并且可以将第四表示写入所述输出介质。所述第四表示可以包括DCT操作码和所述DCT操作的结果。
另外的实施例可以包括非暂时性计算机可读介质,其上存储有程序指令,所述程序指令在由计算设备执行时,使所述计算设备执行根据上述示例实施例中的一个或两个的操作。
进一步的实施例可以包括计算系统或计算设备,其包括至少一个处理器、数据存储器和所述数据存储器中的程序指令,所述程序指令在由所述至少一个处理器执行时,使所述计算系统根据上述示例实施例的一个或两个操作。
通过适当的结合附图阅读以下具体实施方式,这些和其他方面、优点和替代例对于本领域技术人员来说将会变得显而易见。进一步,应当理解的是,本发明内容部分和本文中其他地方提供的描述旨在通过示例方式而不是限制方式示出要求保护的主题。
根据本发明,可以提供基于单元的数字图像压缩的方法。
附图说明
图1根据示例实施例描述打印设备。
图2是根据示例实施例示出打印设备的计算部件的框图。
图3是根据示例实施例示出涉及打印设备的各种数据路径。
图4根据示例实施例描述可以被包含在电子文档中的示例图像。
图5A根据示例实施例描述示例压缩/解压缩技术。
图5B根据示例实施例描述另一个示例压缩/解压缩技术。
图6根据示例实施例描述评估和压缩一系列m×n像素单元的方法。
图7根据示例实施例描述压缩技术。
图8根据示例实施例描述梯度压缩的方面。
图9根据示例实施例描述两颜色压缩(two-color compression)的方面。
图10是根据示例实施例的流程图。
图11A和11B是根据示例实施例的另一流程图。
具体实施方式
本文描述示例方法和系统。可以进一步使用其他示例性实施例或特征,并且可以进行其他改变,而不会脱离这里所呈现的主题的精神和范围。在下文详细的描述中,对形成其一部分的附图进行参考。
本文中所述的示例实施例并不意味着是限制性的。容易理解,本文中一般描述并在附图中示出的本发明的方面,可以被布置、替换、结合、分开和设计为各种各样不同的配置,本文中明确预期了所有这些配置。
1.介绍
在最近30多年间,打印技术已经从仅仅呈现黑白图像的基于点阵的简单输出设备发展到今天能够呈现高分辨率彩色图像的基于激光的先进打印设备。另外,现代的打印设备还可以充当复印机、扫描仪和传真机。为此,它们可能能够存储许多排队等待打印或传真的电子文档或者已扫描的电子文档。因而,许多打印设备是计算设备的专用形式,其可以包括例如一个或多个处理器、数据存储器和输入/输出接口。
不管是在住宅、企业还是在另一种类型的场所使用打印设备,打印设备都可以是能够被通信联接至各种其他计算设备的共享资源。因此,在某些环境下,打印设备的存储要求可能相当高,因为许多计算设备可以将电子文档发送至打印设备以打印。通常,打印设备在一个时刻会以先来先服务的方式打印、复印、传真和/或扫描一个电子文档。因此,打印设备可以存储等待服务的潜在的大量文档。因为存储设备(例如诸如随机存取存储器(RAM)的存储器、固态存储器、硬盘驱动器存储器和/或闪存)的成本可能很昂贵,所以压缩所存储的电子文档以便降低打印设备的数据存储要求是有益的。另外,因为一些电子文档可以被传送至打印设备和计算设备和/或从打印设备和计算设备传送出,所以压缩这些电子文档可以使得传送更快并且使用较少的网络容量。
此外,因为打印任务可能很大(例如打印任务可能包括包含数百页的电子文档),所以在打印每个任务之前,压缩在队列中排队等待的打印任务会节约短期存储空间。另外,用户可能想要在长期存储器中保存随后要打印的打印任务。因此,压缩打印任务可以允许保存更多的打印任务。而且,在长期存储器中存储和获取大的打印任务的行为可能很慢,但是通过压缩打印任务以使它们的尺寸更小可以加速这些行为。
2.示例打印设备
图1描述示例打印设备100。打印设备100可以被配置为在各种类型的物理输出介质上打印部分存储的和/或完全存储的文档。这些输出介质包括但不限于各种尺寸和类型的纸、高射幻灯片等。打印设备100可以被互换地称为“打印机”。
打印设备100可以充当计算设备的本地外设,计算设备诸如个人电脑、服务器设备、打印服务器等。在这些例子中,打印设备100可以通过诸如串口线、并口线、通用串行总线(USB)电缆、火线(IEEE1394)电缆或者高清多媒体接口(HDMI)电缆之类的电缆附接至计算设备。因此,计算设备可以充当打印设备100的电子文档源。
另一方面,打印设备100可以包括有线或无线网络接口,诸如以太网或802.11(Wifi)接口。这样布置后,打印设备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可以包括用于81/2×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可以基于通用和/或专门设计的计算设备部件,因此机壳也可以安置这些部件中的一些或全部。就这一点,图2描述了可以被包括在打印设备100中的计算设备部件(例如计算设备的功能元件)的示例实施例200。
计算设备部件200可以包括处理器202、数据存储器204和输入/输出功能206,所有这些都可以由系统总线208或类似机制联接。处理器202可以包括一个或多个中央处理单元(CPU),诸如一个或多个通用处理器和/或一个或多个专用处理器(例如专用集成电路(ASIC)或数字信号处理器(DSP)等)。
接下来,数据存储器204可以包括易失性数据存储器和/或非易失性数据存储器,并且可以与处理器202整体或部分集成。数据存储器204可以存储可由处理器202执行的程序指令以及由这些指令所操纵以实施这里所述的各种方法、处理或功能的数据。可替代地,这些方法、处理或功能可以由硬件、固件和/或硬件、固件和软件的任意组合来定义。因此,数据存储器204可以包括有形的非暂时性计算机可读介质,其上存储在被一个或多个处理器执行时使打印设备100实施本说明书或附图中所公开的任何方法、处理或功能的程序指令。
输入/输出功能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支持的其他可能的数据路径,电子文档可以要求存储和/或通过网络或电缆发送。通过压缩这些供存储和/或发送的电子文档,可以提高电子文档的存储和发送的效率。例如,如果电子文档可以平均被压缩至它们初始大小的四分之一,则可以在固定量的数据存储器中存储大约四倍的电子文档。进一步,这些压缩的电子文档通过网络或电缆的发送可以以未压缩电子文档的发送四倍快的速度发生。
以下部分描述提供由打印设备100处理的电子文档的压缩的各种实施例。
3.示例压缩技术
过去,有损压缩可能已被用于一些数据路径,而无损压缩可能被用于其他数据路径。(有损压缩技术通过丢弃数据中的一些来压缩数据,而无损压缩技术不需要通过丢弃任何数据来压缩数据)。例如,在一些实施方式中,主机至打印数据路径308可以利用无损压缩,从而在电子文档的打印版本中保持文本和线条的清晰边缘。另一方面,扫描至主机数据路径306和扫描至打印数据路径310可以利用有损压缩,从而有效地存储和发送所扫描的包含图形图像的物理文档。打印设备100可以更加有效,并且可以通过对打印设备100的数据路径中的至少一些(并且可能是全部)使用相同或类似的压缩技术,来简化打印设备100的软件和/或硬件的实现。
a.示例图像
图4描述了可以被包括在由打印设备100处理的物理或电子文档上或内的示例图像400。尽管示例图像400呈现黑白色,但是打印设备100也可以处理具有类似特性的彩色图像。
如图4所示,示例图像400包含各种类型的内容。例如,示例图像400包含具有清晰边缘的文本和线条。进一步,示例图像400还包含具有连续色调的部分(例如示例图像400的左上角),也包含具有类似照片的真实数据的部分(例如示例图像400的右下角)。示例图像400示出用在商业打印中,例如用在手册页、杂志页、传单页或广告页中的普通类型的图像。
统一的压缩技术能够精确表示示例图像400的清晰边缘和线条,同时为了减小包含示例图像400的电子文档的存储要求仍旧使用有损压缩。
b.示例图像颜色模型
可以使用许多颜色模型来表示电子文档。因此,强大的压缩技术应当能够作用于这些模型的一些或全部。进一步,压缩技术可以包括专用于单个颜色模型的预处理。
例如,红绿蓝(RGB)颜色模型可以被用于诸如电视机、显示器或计算机屏幕之类的电子输出设备上的图像显示。RGB是加色模型,其中红光、绿光和蓝光以各种方式相加在一起以产生色谱。例如,可以通过结合绿色和蓝色形成青色,可以通过结合红色和绿色形成黄色,可以通过结合红色和蓝色形成品红色,以及可以通过结合红色、绿色和蓝色形成白色。
RGB图像的特定像素可以表达为三通道元组(RGB),三通道元组(RGB)的每个通道可以从零变化至预定义的最大值(例如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的组合的结果。
另外的颜色模型是灰色,还被称为是灰度,其可以被用于黑白图像的表示。不像RGB和CMY/CMYK颜色模型,灰色颜色模型的每个像素使用对像素的强度进行编码的单个通道来表达。灰色通道所使用的数值可以从黑色的零变化至白色的预定义最大值(例如255)。在一些实施例中,由打印设备100支持的一个或多个数据路径能够使用灰色颜色模型对图像进行编码。
另一个颜色模型是YCbCr。在一些实施方式中,该颜色模型可以被用作图像的替代表示。具体来说,Y通道可以表示像素的亮度,并且Cb和Cr通道可以分别表示蓝-黄色度和红-绿色度。YCbCr颜色模型与RGB和CMY颜色模型具有明确的关系,并且YCbCr颜色模型可以相对容易地转换至这些颜色模型中的任一个并从这些颜色模型中的任一个转换得到。
YCbCr颜色模型的附加优点是,比起用RGB或CMY/CMYK颜色模型编码的图像的压缩来说,使用YCbCr颜色模型编码的图像的压缩趋向于更加有效。具体来说,人眼不是非常擅长于检测图像中的高频(例如快速变化的)色度信息。因此,使用YCbCr颜色模型编码的图像可以通过忽略Cb和Cr通道的高频分量来利用这个信息。所以,如以下更详细讨论的,以特定颜色模型编码的图像可以在压缩之前转换至YCbCr颜色模型,从而提高压缩性能。
c.示例压缩技术概览
图5A和图5B示出示例压缩技术的高级概览。图5A中,在块500,电子文档可以是灰色颜色模型或者CMYK颜色模型。在块502,基于单元的压缩(以下具体讨论)可以被施加至电子文档的每个通道。因此,对于灰色电子文档,基于单元的压缩仅仅可以被施加至灰色通道。对于CMYK电子文档,基于单元的压缩可以针对C、M、Y和K通道中的每一个单独施加。块502的结果可以是表示电子文档的压缩后版本的比特流。
在块504,基于单元的解压缩(也在以下具体讨论)可以被施加至电子文档的每个通道。这可以在块506导致灰色或CMYK电子文档的重建。然而,应当注意的是,如果基于单元的技术使用有损压缩,则块506的电子文档会不同于块500的电子文档。然而,电子文档的这些版本之间的区别会很微小,因此不会被人察觉。
图5B中,在块508,电子文档可以是RGB颜色模型或者CMY颜色模型。在块510,该电子文档可以被转换为YCbCr颜色模型。另外,针对电子文档,可以存储属性位。例如,如果像素是纯白的、纯黑的或者另一种灰度级颜色,则一个或多个属性位可以将该信息编码,并且可以针对像素单独存储并压缩(例如以无损方式)。
在步骤512,基于单元的压缩可以被施加至电子文档的每个通道。因此,基于单元的压缩可以针对Y、Cb和Cr通道中的每一个单独施加。块512的结果可以是表示电子文档的压缩后版本的比特流。
在块514,基于单元的解压缩可以被施加至电子文档的每个通道。这可以导致电子文档的YCbCr版本的重建。然而,应当注意的是,如果基于单元的技术使用有损压缩,则电子文档的重建版本会不同于块510的电子文档。然而,与图5A的技术的情况相同,电子文档的这些版本之间的区别会很微小,因此不会被人察觉。另外,在块516,以在块510压缩并存储的属性位所编码的信息(如果有的话)可以被解压缩,并被结合回电子文档的重建的YCbCr版本中。
在块518,电子文档的重建YCbCr版本可以被转换回至其初始的RGB或CMY颜色模型。这可以在块520导致相同于或类似于RGB或CMY电子文档的电子文档的重建。
应当理解的是,图5A和5B中示出的压缩技术仅仅是为了示例的目的。因此,各种可替代的技术仍然包括在这里的实施例中。例如,可以省略到YCbCr颜色模型和从YCbCr颜色模型的转换。进一步,还可以省略属性位的单独的压缩、存储和解压缩。
d.基于单元的压缩示例
基于单元的压缩的一个方面是其可以将电子文档的每个颜色通道划分为一个或多个m×n像素单元,然后以部分独立的方式或完全独立的方式压缩每个单元。例如,m可以是8且n可以是4。可替代地,m可以是8且n也可以是8。可以使用m和n的其他数值。可以对每个单元进行评估以确定什么类型的压缩方法可以最有效地压缩那个单元中的数据。例如,如果一单元全部由相同颜色的像素组成,则该单元中的数据可以被非常有效地压缩为该颜色的表示,可能还有一些开销数据。然而,如果一单元包含复杂多色的类似照片的真实图像的部分,则不能以这样的高压缩比率来压缩该单元中的数据。
图6描述了评估并压缩电子文档的颜色通道600中的一系列单元的方法。以行602的最左边单元开始,根据基于单元的技术来压缩每个单元。在一定程度上,压缩过程沿着行602从左移到右。然后对于行604,压缩过程从右移到左。对于行606,压缩过程再次从左移到右。对于行608,压缩过程再次从右移到左。但是,颜色通道600的单元可以以不同的顺序压缩。
如上所述,针对给定单元使用的确切的压缩方法可以依赖于包含在该单元内的数据。图7是示出确定应该向一单元施加哪种压缩技术的一个可能方式的流程图。图7涉及许多压缩方法,诸如下面更具体解释的D1、G4、P2、P4和DCT。
在块700,可以从给定单元收集像素信息。该信息可以包括单元的最小颜色值和最大颜色值。进一步,还可以针对该单元计算颜色值直方图。
这里的“颜色值”可以指像素颜色的数字表示。针对0-255的范围,示例颜色值可以由8比特表示,或者针对0-65535的范围,由16比特表示。然而,颜色值可以由不同数目的比特表示,因此也可以呈现不同的范围。进一步,即使在一些颜色理论下,黑色和/或白色不可以被认为是“颜色”,颜色值也可以被用于表示黑色、白色和黑色与白色之间的灰色的各种深浅。
另外,可以执行单元是否包含颜色梯度的估计。该估计可以确定单元中的颜色值是否可以使用双线性内插由四点梯度精确表示,其中每个点是该单元的相应角像素。如果单元中的每个非角像素的实际颜色值在该像素的双线性内插值的梯度阈值内,则该单元可以成为梯度(G4)压缩的候选。
在块702,单元中颜色值的范围可以被确定,并且与颜色范围阈值相比较。如果该范围处于颜色范围阈值内,则在704,D1压缩可被施加至该单元。否则,在块706,如果单元中的像素可以使用双线性内插由四点梯度表示(如在块700中确定的),则在块708,G4压缩可以被施加至该单元。可以在块706而不是块700中执行单元是否包含颜色梯度的估计。
如果该单元不包含颜色梯度,则在块710,可以确定该单元是否包含基本是两种颜色的图案。如果是这种情况,则在块712,P2压缩可以被施加至该单元。否则,在块714,可以确定该单元是否包含基本是四种颜色的图案。如果是这种情况,则在块716,P4压缩可以被施加至该单元。如果该单元不包含实质上的四色图案,则在块718,离散余弦变换(DCT)压缩可以被施加至该单元。
图7仅仅示出基于单元的压缩的一种可能布置。可以存在其他布置,并且这些布置可以使用不同的压缩方法,和/或可以应用不同的逻辑来确定针对给定单元使用哪种压缩方法。一般来说,图7示出比起效率较低的压缩方法,优选更有效(考虑用于对单元的压缩后表示进行编码的比特数目)的压缩方法的过程。接下来的几部分更详细地描述各种压缩方法。
i.D1压缩
当给定单元中的全部像素可以使用单一的颜色值来表示时,可以使用D1压缩。这并不意味着单元中的全部像素需具有相同的颜色值。当单元的最大颜色值和最小颜色值之差在预定的颜色范围阈值内时,可以使用D1压缩。
例如,假定单元中的每个像素呈现0至255的值。如果颜色范围阈值是3,并且全部像素具有74、75或76的颜色值,则D1压缩可以被施加至该单元。所存在的三个颜色值中的一个(例如75的中间颜色值)可以被用于表示单元中的全部像素的颜色值。
通过这种方式,可以显著减少表示该单元所需的数据量。虽然这种压缩是有损的,但是当阈值足够小时,人观察者不大可能注意到这种损耗。另外,通过改变颜色范围阈值,压缩效率和图像质量可以彼此交换。例如,10的颜色范围阈值可以导致比2的颜色范围阈值更有效的压缩,而图像质量低于2的颜色范围阈值。
在某些情况下,多个相邻的单元(例如行或列中的单元)全部可以使用D1压缩和相同的颜色值来很好地表示。因此,D1压缩方法允许行程长度与颜色值一起编码。行程长度表示有多少随后的单元也使用D1压缩和颜色值进行了压缩。可替代地,行程长度可以表示总共有多少单元使用D1压缩和颜色值进行了压缩。
D1压缩方法的变形可以被称为D1D压缩,其可以在颜色值是默认颜色时使用。在YCbCr颜色空间的Y通道、灰色颜色空间和全部CMYK颜色空间中,默认值可以是0和255。在YCbCr颜色空间的Cb和Cr平面,默认值可以是128和255。D1D压缩编码具有比D1压缩稍微高一点的效率。因为在颜色空间中仅仅存在有限数目的默认值(例如2),所以这些默认颜色值可以使用小的比特数(例如每颜色值1比特)表示。因此,比起D1压缩,D1D压缩可以要求每单元较少的比特。
ii.G4压缩
如上所述,在单元中的颜色值可以使用双线性内插由四点颜色梯度合理地很好表示时,可以使用G4压缩,其中每个点是该单元的相应角像素。图8示出该方法的操作。块800和802表示8×8像素单元中的像素的颜色值。可以使用x轴和y轴定位单个像素,并且由与各个像素相关联的z轴高度来表示该像素的颜色。(例如,低颜色值可以由z轴上的小高度来表示,而高颜色值可以由z轴上的大高度来表示。)
块800是单元中四点颜色梯度的示例。每个非角像素具有使该非角像素的颜色值在角像素的颜色值之间形成平滑过渡的相应颜色值。为了确定一单元是否要使用G4压缩进行编码,诸如块802的表示可以基于单元的角像素的颜色值而形成。例如,使用双线性内插的形式,每个非角像素可以与“建议”颜色值相关联。如块802所示,具有相同的建议颜色值的像素可以以2或4为单位进行分组,也可以使用更多或更少的像素为单位。然后,对于每个非角像素,可以将各自的建议颜色值与那个像素的实际颜色值相比较。如果这些颜色值之差小于针对全部非角像素的梯度阈值时,可以使用G4压缩。
iii.P2压缩
当给定单元中的全部像素可以使用两个颜色值来表示时,可以使用P2压缩。这并不意味着单元中的全部像素需具有这两个颜色值中的一个。相反,当单元的全部颜色值聚集在两个颜色值的周围(例如离两个颜色值不大于给定阈值)时,可以使用P2压缩。例如,如果单元中的像素可以呈现0和255之间的颜色值,但是全部颜色值是75、76、124或125,则可以选择这些颜色值中的两个,一个颜色值表示一个簇。因此,75的颜色值可以被用于表示具有75或76的颜色值的像素的颜色,并且124的颜色值可以被用于表示具有124或125的颜色值的像素的颜色。
在图9中示出可以对一单元进行评估以确定该单元是否是P2压缩的候选的一种方式。单元900是具有2(0010二进制)、3(0011二进制)和14(1110二进制)的4比特颜色值的4×4像素单元。虽然单元900具有多于两个的颜色值,但是由于颜色值2和颜色值3能够使用单个颜色值(例如颜色值2和颜色值3中的一个)来表示,因此P2压缩可以被用于单元900。
相应地,可以使用三个步骤的过程针对P2压缩对单元900进行评估。在第一步骤中,可以针对单元900确定直方图掩码902。针对具有c个颜色值的单元,直方图掩码可以是c/2比特长度。例如,具有16个可能的颜色值的单元900具有8比特长度的直方图掩码902。
进一步,直方图掩码902中的每个比特表示两个连续颜色值的不同对。因此,直方图掩码902中最左边的比特表示颜色值0和1,直方图掩码902中最左边的第二个比特表示颜色值2和3,等等。如果由给定比特表示的两个颜色值中的至少一个存在于单元900中,则直方图掩码902中的该比特被设置为1。否则,该比特被设置为0。因此,对于直方图掩码902,仅仅表示颜色值2和3的比特以及表示颜色值14和15的比特被设置为1。
另外,可以针对单元确定条件掩码。在条件掩码中,表示单元中的最低颜色值和最高颜色值的比特可以被设置为0。另外,表示最低颜色值的比特右边的一个或两个更多的比特,以及表示最高颜色值的比特左边的一个或两个更多的比特也可以被设置为0。所有其他比特可以设置为1。因此,对于条件掩码904,最左边的第二比特设置为0,因为其表示颜色值2,即单元900中的最低颜色值。另外,最左边的第二比特右边的两个比特也可以设置为0。同样,最右边的比特设置为0,因为其表示颜色值14,即单元中的最高颜色值。最右边的比特左边的两个比特也可以被设置为0。
可以对直方图掩码和条件掩码执行逻辑与(AND)运算。如果结果为0(即结果中的所有比特为0),则P2压缩可以被用于该单元。否则,P2压缩不可以被用于该单元。一旦图9中的逻辑AND 906为0,则单元900有资格使用P2压缩。然而,如果单元900中的任意一个像素被改变为包含颜色值8或者颜色值9,则单元900将没有资格使用P2压缩。
在单元中出现一个或多个默认颜色值时,可以使用P2压缩方法的变形,其可以被认为是P2D压缩。如上所述,在YCbCr颜色空间的Y通道、灰色颜色空间和全部CMYK颜色空间中,默认值可以是0和255。在YCbCr颜色空间的Cb和Cr平面中,默认值可以是128和255。如果单元中仅仅存在默认颜色值,并且单元中不存在非默认颜色值,则使用P2D压缩。另一方面,可以存在变形,其中如果单元中存在每个默认颜色值的给定上下限内的颜色值,则可以使用P2D压缩。比起P2压缩,P2D压缩具有效率更高一些的编码。
iv.P4压缩
当给定单元中的全部像素可以使用三个或四个颜色值来表示时,可以使用P4压缩。例如,如果可以在步骤700产生的直方图指示单元中仅仅存在三个或四个颜色值,则可以使用P4压缩。
可替代地或另外,当在单元中使用多于四个的颜色值,但是所有存在的颜色值都聚集在可以用于表示该单元的四个颜色值的周围(例如离四个颜色值不大于给定阈值)时,可以使用P4压缩。例如,如果给定阈值是1,并且单元包含10、11、56、213、214和255的颜色值,则P4压缩可以被用于该单元,例如使用颜色值10、56、213和255。
v.DCT压缩
DCT压缩可以被用于单元中的任何颜色图案。在一些实施例中,如果单元没有使用D1、G4、P2或P4压缩来压缩,则DCT压缩可以被用作最后手段。对于使用DCT压缩来压缩的单元,可以执行以下步骤:从二维系数阵列进行DCT变换、缩放、量化、重新排序为一维数据,并且进行Huffman熵编码。在一些实施例中,DCT编码可以是根据联合图像专家组(JPEG)标准的子集使用Huffman编码进行封装的量化DCT系数的集合。通常,DCT压缩是这里存在的压缩方法中效率最低的。
e.基于单元的压缩的示例编码
表1示出上述压缩方法的一个可能的压缩比特流编码。表1表示在压缩时怎样使用比特对给定的m×n像素单元进行编码。这里未示出的其他编码也是可能的。
表1:针对每个压缩方法的压缩后比特流编码示例。
压缩方法列指示用于对单元进行编码的压缩方法,并且包括上文讨论的示例压缩方法中的每一个,也包括其中某些的变形。操作码列指示指代各个压缩方法的2-3比特表示。在一些实施例中,单元的操作码可以被放置在该单元的压缩后比特流编码的开始处。在下文中,D1/D1D压缩的操作码可以被称为“单颜色操作码”。类似地,P2/P2D压缩的操作码可以被称为“两颜色操作码”。并且,P4压缩的操作码可以被称为“四颜色操作码”,G4压缩的操作码可以被称为“梯度操作码”,而DCT压缩的操作码可以被称为“DCT操作码”。
选项列可以包含可特定于正在编码的压缩方法的一个或多个选项。例如,D1D压缩方法将整个单元编码为两个可能的默认值中的一个。选项列的比特V可以编码是哪个默认值被编码(例如对于较低默认值V=0,并且对于较高默认值V=1)。
作为另一个示例,D1压缩方法将整个单元编码为例如256个可能值中的一个。D1压缩的选项中的比特V’指示选项字段后跟随着的是对单元的值进行编码的1字节。对于D1D和D1压缩两者,比特R都指示是否存在行程长度字节(参见以下对行程长度列的讨论)。
作为又一个示例,P2压缩方法可以包括比特L,比特L指示存在跟随比特L的两个颜色值。这些颜色值可以是P2压缩方法用来表示被压缩单元中的所有颜色值的颜色值。类似地,P4压缩方法可以包括比特L’,比特L’指示存在跟随比特L’的四个颜色值。这些颜色值可以是P4压缩方法用来表示被压缩单元中的所有颜色值的颜色值。
颜色值列可以包含用于表示被压缩单元的一个或多个颜色值。如上所述,D1、P2和P4压缩方法分别指定1、2和4个颜色值。每个颜色值可以由适当数量的比特来表示(例如对于0-255颜色值范围是8比特)。
光栅列可以表示单元中各个相应像素的颜色值的每像素一比特表示或每像素两比特表示(例如位图)。例如,P2D和P2压缩可以使用每像素一比特来表示两个颜色值中的哪一个被用于单元中的各个相应像素。类似地,P4压缩可以使用每像素2比特来表示四个颜色值中的哪一个被用于单元中的各个相应像素。在光栅列中提及的表示可以进一步使用行程长度编码的形式进行压缩。
长度列可以包含可选的行程长度的一字节编码。在一些实施例中,长度列可以仅仅被用于D1D和D1压缩方法,其中单个颜色值可以被用于表示整个单元。在某些情况下,图像中的两个或更多个连续的单元都能够使用相同的单个颜色值进行编码。因此,长度列中的字节可以针对D1D或D1压缩指示使用相同颜色值的连续单元的数量。
表1中虽然没有明确示出,但是DCT压缩可以导致一单元由DCT操作码及随后的DCT压缩方法的编码结果的比特流来表示。
f.基于单元的解压缩示例
一旦使用例如上文讨论的压缩方法和编码来压缩多个单元,则这些单元可以被有效存储和/或通过电缆或网络有效发送。尽管如此,在某个点上,单元可以被解压缩为初始图像的近似图像。因为这里所述的基于单元的压缩技术可以是有损的,所以解压缩后的图像可能不同于,至少在某种程度上不同于初始图像。然而,在许多情况下,这一差别或者不太可能被人察觉,或者被认为是初始图像的可接受版本。
使用表1的压缩编码进行编码的单元可以被解码和解压缩如下。对于给定的单元编码,读取操作码。基于操作码的值,任何可适用的选项、颜色值、光栅和/或长度可以根据操作码后的比特而确定。根据这些参数,可以重构单元的解压缩版本。然后,读取下一个操作码,等等,直到图像被重构。
例如,如果操作码是指示D1D编码的000,则比特V可以被读取以确定颜色值,并且比特R可以被读取以确定是否存在行程长度。然后,以各单元中的所有像素都呈现由比特V所指示的默认颜色值,来创建与行程长度相当的多个单元。
如果操作码是指示D1压缩的001,则比特V’和颜色值字段可以被读取以确定颜色值。比特R也可以被读取以确定是否存在行程长度。然后,以各单元中的所有像素都呈现由颜色值字段所指示的颜色值,来创建与行程长度相当的多个单元。
如果操作码是指示P2D压缩的010,则光栅字段可以被读取。根据光栅字段的位图,可以以各个像素呈现低默认颜色值或高默认颜色值的颜色值来创建单元。
如果操作码是指示P2压缩的011,则比特L、颜色值字段和光栅字段可以被读取。然后,根据光栅字段的位图,可以以各个像素呈现两个颜色值中的一个来创建单元。
如果操作码是指示P4压缩的100,则比特L’、颜色值字段和光栅字段可以被读取。然后,根据光栅字段的位图,可以以各个像素呈现四个颜色值中的一个来创建单元。
如果操作码是指示G4编码的101,则颜色值字段可以被读取以确定四个角像素的颜色值。然后,可以以各个角像素呈现由颜色值字段所指示的颜色值中的一个来创建单元,并且双线性内插可以被用于确定非角像素的颜色值。
如果操作码是指示DCT压缩的11,则DCT压缩方法的结果可以被读取,并且可以根据DCT编码来创建单元。
g.压缩效率
这里描述的基于单元的压缩技术可以非常有效率。在实践中,可以观察到20:1的平均压缩率。以下的示例示出这一效率。
假定高速打印系统使用主机至打印数据路径每分钟打印180页(每秒3页),对于每个10英寸乘以8英寸的页,这些页的分辨率是每英寸600点(dpi),并且使用三个颜色通道,每个颜色通道编码1字节颜色值。因此,1秒所传输的未压缩数据的总量是600(点)×600(点)×10(英寸)×8(英寸)×3(颜色通道)×3(页),等于大约247兆字节。使用以上所述的基于单元的压缩技术,这一数据量可以平均被减小至大约12.4兆字节。
4.示例操作
图10是示例实施例的流程图。由这个流程图示出的步骤可以由一个或多个打印设备和/或计算设备实施,打印设备诸如打印设备100,计算设备诸如计算设备300。进一步,每个单独步骤的方面可以被分配在多个计算设备之间。
在步骤1000,m×n像素单元可以从输入图像中获取。输入图像可以包含多于m×n个像素,并且m×n像素单元中m×n像素的每一个可以具有各自的颜色值。在一些实施例中,m×n像素单元可以仅仅与来自输入图像的单个颜色通道的颜色值相关联。
在步骤1002,可以确定m×n像素单元的特性。确定特性可以涉及确定m×n像素单元中像素的最低颜色值和最高颜色值。
在步骤1004,可以计算最高颜色值和最低颜色值之间的差值。在步骤1006,可以确定该差值是否小于或等于阈值差。
如果该差值小于或等于阈值差,则在步骤1008,可以从最高颜色值和最低颜色值之间(包括最高颜色值和最低颜色值)的颜色值中选择一输出颜色值,同样在步骤1008,输出颜色值的第一表示可以被写入输出介质。第一表示可以包括单颜色操作码以及输出颜色值的指示。如果该差值大于阈值差,则在步骤1010,可以选择多个输出颜色值,并且多个输出颜色值的第二表示可以被写入输出介质。
基于被写入输出介质的表示(例如第一表示和第二表示),m×n像素单元的近似像素单元可以在输出设备上重构。输出设备可以或可以不与输出介质紧密关联。例如,输出介质可以是打印设备内的数据存储器,而输出设备可以是打印设备。可替代地,输出介质可以是计算设备内的数据存储器,而输出设备可以是打印设备。
多个输出颜色值可以由两个输出颜色值组成,并且第二表示可以包括两颜色操作码、两个输出颜色值中每一个的指示以及m×n像素单元的将m×n像素单元中的每个像素与两个输出颜色中的一个相关联的逐像素位图。确定特性可以进一步包括确定m×n像素单元的颜色值的直方图,并且从该直方图获取m×n像素单元中像素的第二低颜色值和第二高颜色值。第二低颜色值可以邻近最低颜色值(或者在最低颜色值的上下限内),并且第二高颜色值可以邻近最高颜色值(或者在最高颜色值的上下限内)。然后,可以从直方图确定,除了最低颜色值、第二低颜色值、第二高颜色值和最高颜色值之外,在m×n像素单元中没有其他颜色值,并且选择多个输出颜色值可以包括选择最低颜色值和第二低颜色值中的一个以及第二高颜色值和最高颜色值中的一个。
可替代地,多个输出颜色值由多达四个输出颜色值组成,并且第二表示可以包括四颜色操作码、多达四个输出颜色值中每一个的指示以及m×n像素单元的将m×n像素单元中的每个像素与多达四个输出颜色中的一个相关联的逐像素位图。
在一些实施例中,确定特性可以进一步涉及确定m×n像素单元的颜色值的直方图,并且从该直方图获取m×n像素单元中像素的第一中间颜色值和第二中间颜色值。第一中间颜色值和第二中间颜色值中的每一个可以处于最低颜色值和最高颜色值之间。然后可以从直方图确定,除了(i)最低颜色值、(ii)第一中间颜色值、(iii)第二中间颜色值、(iv)最高颜色值以及(v)与最低颜色值、第一中间颜色值、第二中间颜色值和最高颜色值中的一个邻近的一个或多个颜色值之外,m×n像素单元中没有其他颜色值。在这种情况下,选择多个输出颜色值可以包括在最低颜色值、第一中间颜色值、第二中间颜色值和最高颜色值中的每一个处或者附近选择颜色作为四个输出颜色。可替代地,可以使用多于两个的中间颜色。
一些实施例可以进一步包括对m×n像素单元执行DCT操作。相应地,多个输出颜色值可以基于DCT操作的结果,并且第二表示可以包括DCT操作码和DCT操作的结果。
可替代地或另外,多个输出颜色值可以由四个输出颜色值组成。四个输出颜色值中的每一个可以是m×n像素单元的各个角的颜色值,并且第二表示可以包括梯度操作码以及四个输出颜色值中的每一个的指示。此外,在这些场景的某些中,确定特性进一步涉及基于四个输出颜色值的双线性内插导出m×n像素的模板库,将m×n像素单元的颜色值(例如,像素值)与模板库中的颜色值相比较,并且确定m×n像素单元的颜色值至少近似匹配模板库中的颜色值。
图11A和11B是另一示例实施例的流程图,进一步示出基于单元的压缩。在步骤1100,m×n像素单元可以从输入图像中获取。输入图像可以包含多于m×n个像素,并且m×n像素单元中m×n像素的每一个可以具有各自的颜色值。
在步骤1102,可以确定m×n像素单元的特性。确定特性可以涉及确定m×n像素单元中的像素的颜色值。
在步骤1104,可以计算颜色值中最高颜色值和最低颜色值之间的差值。在步骤1106,该差值可以与阈值差相比较。
如果该差值小于或等于阈值差,则在步骤1108,可以在最高颜色值和最低颜色值之间(包括最高颜色值和最低颜色值)选择一输出颜色值。另外,输出颜色值的第一表示可以被写入输出介质。第一表示可以包括单颜色操作码以及输出颜色值的指示。
如果该差值大于阈值差,则在步骤1110,可以确定m×n像素单元的颜色值是否基本由两个颜色值组成。如果(i)单元中仅仅存在两个颜色值,(ii)单元中存在三个颜色值并且这三个颜色值中的至少两个是连续的数,(iii)单元中存在四个颜色值并且这些颜色值中的至少两对各自是连续的数,(iv)单元中的全部颜色值聚集在一个或两个颜色值周围,或者(v)基于单元中的颜色值的一些其他观察,则m×n像素单元的颜色值可以被认为基本由两个颜色值组成。
如果m×n像素单元的颜色值基本由两个颜色值组成,则在步骤1112,这两个颜色值的第二表示可以被写入输出介质。第二表示可以包括两颜色操作码、两个颜色值中的每一个的指示以及m×n像素单元的将m×n像素单元中的每个像素与两个颜色值中的一个相关联的逐像素位图。
如果m×n像素单元的颜色值基本由多于两个的颜色值组成,则在步骤1114,可以确定m×n像素单元的颜色值是否基本由三个或四个颜色值组成。如果(i)单元中仅仅存在三个或四个颜色值,(ii)单元中存在五个至八个颜色值并且这些颜色值中的至少两个是连续的数,(iii)单元中的全部颜色值聚集在三个或四个颜色值周围,或者(iv)基于单元中的颜色值的一些其他观察,则m×n像素单元的颜色值可以被认为是基本由三个或四个颜色值组成。
如果m×n像素单元的颜色值基本由三个或四个颜色值组成,则在步骤1116,这三个或四个颜色值的第三表示可以被写入输出介质。第三表示可以包括四颜色操作码、三个或四个颜色值中每一个的指示以及m×n像素单元的将m×n像素单元中的每个像素与三个或四个颜色值中的一个相关联的逐像素位图。
如果m×n像素单元的颜色值基本由多于四个的颜色值组成,则在步骤1118,可以对m×n像素单元执行离散余弦变换(DCT)操作,并且第四表示可以被写入输出介质。第四表示可以包括DCT操作码和DCT操作的结果。
5.结论
本发明并不按照本申请中所述的特定实施例被限定,这些特定实施例旨在作为各方面的示意。可以进行许多修改和变形而不会偏离本发明的精神和范围,这一点对本领域技术人员来说是显而易见的。除了本文所列举的之外,本发明范围内的功能性等效方法和装置根据前面的描述是显而易见的。这种修改和变形旨在落到所附权利要求的范围内。
关于附图中和这里所讨论的梯形图、场景和流程图中的全部或任意,每个块和/或连接可以表示根据示例实施例的信息处理和/或信息发送。可替代的实施例可以被包括在这种示例实施例的范围内。另外,更多或更少的块和/或功能可以与这里所讨论的梯形图、场景和流程图一起使用,并且这些梯形图、场景和流程图可以部分或整体彼此结合。
表示信息处理的步骤或者块可以对应于可被配置为执行这里所述方法或技术的特定逻辑功能的电路。可替代地或者另外,表示信息处理的步骤或块可以对应于程序代码(包括相关数据)的模块、段或部分。程序代码可以包括能够被处理器执行以实施方法或技术中的特定逻辑功能或行为的一个或多个指令。程序代码和/或相关数据可以被存储在任何类型的计算机可读介质上,诸如存储设备,包括磁盘驱动器、硬盘驱动器或其他存储介质。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如短期存储数据的计算机可读介质,像寄存器存储器、处理器缓存和/或随机存取存储器(RAM)。计算机可读介质还可以包括较长期存储程序代码和/或数据的非暂时性计算机可读介质,诸如二次或持续长期存储器,例如像只读存储器(ROM)、光盘或磁盘和/或只读光盘存储器(CD-ROM)。计算机可读介质还可以是任何其他易失性或非易失性存储系统。计算机可读介质可以被认为例如是计算机可读存储介质和/或有形存储设备。
尽管这里已经公开多个方面和多种实施例,其他方面和其他实施例对本领域技术人员来说也是显而易见的。这里公开的多个方面和多种实施例的目的是示意性的,并不打算限制,真正的范围和精神由所附的权利要求指示。
Claims (2)
1.一种计算设备,包括:
处理器;
数据存储器;以及
程序指令,存储在所述数据存储器中,所述程序指令在被计算设备执行时使所述计算设备执行包括以下步骤的操作:
从输入图像获取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像素单元的近似。
2.一种基于单元的数字图像压缩的方法,包括:
计算设备从输入图像获取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像素单元的近似。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/494,760 US8805069B2 (en) | 2012-06-12 | 2012-06-12 | Cell-based compression of digital images |
US13/494,760 | 2012-06-12 | ||
CN201310208126.3A CN103491374B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法及计算设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310208126.3A Division CN103491374B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107632801A CN107632801A (zh) | 2018-01-26 |
CN107632801B true CN107632801B (zh) | 2020-09-01 |
Family
ID=48740827
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710864596.3A Active CN107632801B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法及计算设备 |
CN201310208126.3A Active CN103491374B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法及计算设备 |
CN201710864432.0A Expired - Fee Related CN107493406B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310208126.3A Active CN103491374B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法及计算设备 |
CN201710864432.0A Expired - Fee Related CN107493406B (zh) | 2012-06-12 | 2013-05-30 | 基于单元的数字图像压缩的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8805069B2 (zh) |
EP (1) | EP2675149B1 (zh) |
JP (1) | JP6076206B2 (zh) |
CN (3) | CN107632801B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6173044B2 (ja) * | 2013-05-27 | 2017-08-02 | 株式会社Pfu | 画像読取装置、圧縮率決定方法及びコンピュータプログラム |
US9939534B2 (en) * | 2013-11-14 | 2018-04-10 | Battelle Energy Alliance, Llc | Methods and apparatuses for detection of radiation with semiconductor image sensors |
US9363422B1 (en) * | 2015-01-30 | 2016-06-07 | Kyocera Document Solutions Inc. | Cell-based compression with edge detection and interleaved encoding |
US9363416B1 (en) * | 2015-01-30 | 2016-06-07 | Kyocera Document Solutions Inc. | Digital image attribute plane compression |
US9319565B1 (en) * | 2015-01-30 | 2016-04-19 | Kyocera Document Solutions Inc. | Interleaved encoding of compressed attribute and color planes |
US9531920B2 (en) | 2015-01-30 | 2016-12-27 | Kyocera Document Solutions Inc. | Digital image color plane compression |
US9380304B1 (en) | 2015-01-30 | 2016-06-28 | Kyocera Document Solutions Inc. | Cell-based compression with edge detection |
US9460365B1 (en) * | 2015-03-24 | 2016-10-04 | Intel Corporation | Clustered palette compression |
CN107801031B (zh) * | 2017-11-09 | 2019-10-18 | 广州物启科技有限公司 | 一种对纯三原色图片数据的无损压缩编码方法 |
US11991335B2 (en) | 2021-08-23 | 2024-05-21 | Kyocera Document Solutions Inc. | High-speed cell-based image compression |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1452388A (zh) * | 2002-04-17 | 2003-10-29 | 佳能株式会社 | 图像压缩方法及装置、图像编码装置及图像编码方法 |
CN101106709A (zh) * | 2006-07-10 | 2008-01-16 | 逐点半导体(上海)有限公司 | 图像压缩方法 |
CN101616320A (zh) * | 2008-06-26 | 2009-12-30 | 展讯通信(上海)有限公司 | 图像压缩、解压缩方法及设备 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2621747B2 (ja) | 1992-10-06 | 1997-06-18 | 富士ゼロックス株式会社 | 画像処理装置 |
JP2800633B2 (ja) | 1993-04-30 | 1998-09-21 | 富士ゼロックス株式会社 | 画像符号化装置 |
JPH1051642A (ja) | 1996-07-31 | 1998-02-20 | Fuji Xerox Co Ltd | 画像処理装置 |
EP0856988A3 (en) | 1997-01-31 | 1998-08-12 | Hewlett-Packard Company | System and method for compressing textual image data |
US5915079A (en) | 1997-06-17 | 1999-06-22 | Hewlett-Packard Company | Multi-path data processing pipeline |
JP3843581B2 (ja) * | 1998-03-05 | 2006-11-08 | 富士ゼロックス株式会社 | 画像符号化装置、画像復号化装置および画像処理装置、並びに画像符号化方法、画像復号化方法および画像処理方法 |
US6529633B1 (en) | 1998-09-16 | 2003-03-04 | Texas Instruments Incorporated | Parallel difference coding method for lossless compression and real time decompression |
US20050213125A1 (en) * | 2002-08-19 | 2005-09-29 | Paul Reed Smith Guitars, Limited Partnership | Method of color accentuation with compensation and adjustment |
CN100534206C (zh) * | 2005-12-06 | 2009-08-26 | 逐点半导体(上海)有限公司 | 一种图像压缩方法 |
US7668382B2 (en) | 2006-02-24 | 2010-02-23 | Microsoft Corporation | Block-based fast image compression |
US7751633B1 (en) | 2006-08-31 | 2010-07-06 | Hewlett-Packard Development Company, L.P. | Method for compressing an image |
CN100514366C (zh) * | 2006-11-30 | 2009-07-15 | 腾讯科技(深圳)有限公司 | 一种图像压缩方法和装置 |
JP4623104B2 (ja) * | 2008-02-06 | 2011-02-02 | コニカミノルタビジネステクノロジーズ株式会社 | 画像圧縮装置 |
US8508449B2 (en) * | 2008-12-18 | 2013-08-13 | Sharp Corporation | Adaptive image processing method and apparatus for reduced colour shift in LCDs |
CN101494788B (zh) * | 2009-01-23 | 2011-07-27 | 炬才微电子(深圳)有限公司 | 视频图像的压缩/解压缩方法与装置 |
JP5595151B2 (ja) * | 2010-07-13 | 2014-09-24 | キヤノン株式会社 | 画像処理装置、画像処理装置における圧縮方法、および、プログラム |
US8847973B2 (en) * | 2010-12-15 | 2014-09-30 | Microsoft Corporation | Automatic adjustment of computer interface colors using image processing |
US8958638B2 (en) * | 2012-06-10 | 2015-02-17 | Apple Inc. | Method and system for multi-stage auto-enhancement of photographs |
-
2012
- 2012-06-12 US US13/494,760 patent/US8805069B2/en active Active
-
2013
- 2013-05-30 CN CN201710864596.3A patent/CN107632801B/zh active Active
- 2013-05-30 CN CN201310208126.3A patent/CN103491374B/zh active Active
- 2013-05-30 CN CN201710864432.0A patent/CN107493406B/zh not_active Expired - Fee Related
- 2013-06-11 EP EP13171543.5A patent/EP2675149B1/en active Active
- 2013-06-12 JP JP2013123409A patent/JP6076206B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1452388A (zh) * | 2002-04-17 | 2003-10-29 | 佳能株式会社 | 图像压缩方法及装置、图像编码装置及图像编码方法 |
CN101106709A (zh) * | 2006-07-10 | 2008-01-16 | 逐点半导体(上海)有限公司 | 图像压缩方法 |
CN101616320A (zh) * | 2008-06-26 | 2009-12-30 | 展讯通信(上海)有限公司 | 图像压缩、解压缩方法及设备 |
CN101616320B (zh) * | 2008-06-26 | 2011-05-04 | 展讯通信(上海)有限公司 | 图像压缩、解压缩方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2675149A2 (en) | 2013-12-18 |
CN103491374A (zh) | 2014-01-01 |
CN107632801A (zh) | 2018-01-26 |
EP2675149B1 (en) | 2020-07-29 |
CN103491374B (zh) | 2018-04-20 |
US20130329237A1 (en) | 2013-12-12 |
CN107493406A (zh) | 2017-12-19 |
US8805069B2 (en) | 2014-08-12 |
EP2675149A3 (en) | 2014-04-02 |
CN107493406B (zh) | 2019-08-02 |
JP6076206B2 (ja) | 2017-02-08 |
JP2013258701A (ja) | 2013-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10136128B2 (en) | Cell-based compression with edge detection | |
CN107632801B (zh) | 基于单元的数字图像压缩的方法及计算设备 | |
JP6074181B2 (ja) | 画像処理装置及びその方法 | |
JP6524931B2 (ja) | 印刷デバイス、コンピュータプログラム及び方法 | |
US20110188750A1 (en) | Image processing apparatus and processing method therefor | |
US9667839B2 (en) | Digital image color plane compression | |
US9838570B2 (en) | Cell-based compression with edge detection and interleaved encoding | |
JP6508615B2 (ja) | 印刷デバイス、プログラム及び方法 | |
CN103780796A (zh) | 用于半色调数字图像的压缩的方法以及计算设备 | |
CN105847630B (zh) | 用边缘检测和交错编码的基于单元的压缩方法及打印设备 | |
KR20110016408A (ko) | 데이터 처리 장치 및 데이터 처리 방법 | |
JP2004112695A (ja) | 画像処理装置及びその処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |