CN105847630A - 用边缘检测和交错编码的基于单元的压缩方法及打印设备 - Google Patents
用边缘检测和交错编码的基于单元的压缩方法及打印设备 Download PDFInfo
- Publication number
- CN105847630A CN105847630A CN201610029933.2A CN201610029933A CN105847630A CN 105847630 A CN105847630 A CN 105847630A CN 201610029933 A CN201610029933 A CN 201610029933A CN 105847630 A CN105847630 A CN 105847630A
- Authority
- CN
- China
- Prior art keywords
- pixel
- color
- macroelement
- planes
- plane
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- 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/41—Bandwidth or redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1236—Connection management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/40—Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
- G06K15/4045—Managing the interface to the data source, e.g. choosing an interface for data reception
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
- H04L41/0661—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- 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/50—Picture reproducers
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Computer And Data Communications (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明可提供数字图像的利用边缘检测和交错编码的基于单元的压缩方法及打印设备。示例实施例可涉及:获取(i)a×b属性宏单元,及(ii)输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元。a×b像素宏单元各自可包含4个非重叠m×n像素单元。示例实施例还可涉及:确定表示4个非重叠m×n像素单元的4个属性平面输出值、表示亮度平面的a×b像素宏单元的1至4个亮度平面输出值、用于表示第一颜色平面的a×b像素宏单元的第一颜色平面输出值、和用于表示第二颜色平面的a×b像素宏单元的第二颜色平面输出值。示例实施例可进一步涉及将输出值的交错表示写入计算机可读输出介质。
Description
技术领域
本发明一般涉及数字图像的利用边缘检测和交错编码的基于单元的压缩方法。
背景技术
近年来,各种类型的打印设备已经变得流行于企业使用和消费者使用。除了传统的黑白打印机之外,彩色打印机、扫描仪、复印机、传真机以及其他组件现在很普遍。支持这些操作中的两种或更多种的多功能复合机(MFP)也广泛使用。随着这些设备变得越来越流行,它们正被用于处理更加高级且复杂的文档。
发明内容
本发明可以提供数字图像的利用边缘检测和交错编码的基于单元的压缩方法。
第一示例实施例可以涉及获取输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元。所述a×b像素宏单元各自可以包含4个非重叠m×n像素单元,并且所述a×b像素宏单元中的像素可以具有相应的像素值。所述第一示例实施例还可以涉及:确定所述a×b像素宏单元中的至少e个像素是否表示所述输入图像中的边缘,其中e是至少1。所述第一示例实施例可以进一步涉及:可能基于所述a×b像素宏单元中的至少e个像素是否表示所述输入图像中的边缘,选择所述a×b像素宏单元的第一编码或第二编码。所述第一编码可以权衡表示所述输入图像中的边缘的一些像素比不表示所述输入图像中的边缘的像素更重要,并且所述第二编码可以不考虑像素是否表示所述输入图像中的边缘。所述第一示例实施例可以附加地涉及:执行所选择编码,并且将被执行的所选择编码的表示写入计算机可读输出介质。
第二示例实施例可以涉及从输入图像获取a×b像素宏单元。所述a×b像素宏单元中的像素可以具有相应的像素值,并且可以与相应的标记关联。所述第二示例实施例还可以涉及:确定所述相应的标记中的至少e个是否指示它们的关联像素表示所述输入图像中的边缘,其中e是至少1。所述第二示例实施例可以进一步涉及:可能基于所述相应标记中的至少e个是否指示它们的关联像素表示所述输入图像中的边缘,选择所述a×b像素宏单元的第一编码或第二编码。所述第一编码可以权衡表示所述输入图像中的边缘的像素比不表示所述输入图像中的边缘的像素更重要,并且所述第二编码可以不考虑像素是否表示边缘。所述第二示例实施例可以附加地涉及:执行所选择编码,并且将被执行的所选择编码的表示写入计算机可读输出介质。
第三示例实施例可以涉及:获取(i)a×b属性宏单元,以及(ii)输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元。a×b像素宏单元各自可以包含4个非重叠m×n像素单元,并且a×b像素宏单元中的a×b个像素可以具有相应的像素值。所述a×b属性宏单元的元素可以以一对一的方式与所述a×b像素宏单元的每一个中的相应像素关联。所述第三示例实施例还可以涉及:确定分别表示所述4个非重叠m×n像素单元的4个属性平面输出值。所述第三示例实施例可以进一步涉及:可能基于所述a×b属性宏单元是否指示所述a×b像素宏单元中的至少e个像素表示所述输入图像中的边缘,确定表示所述亮度平面的所述a×b像素宏单元的1至4个亮度平面输出值,其中e是至少1。所述第三示例实施例还另外涉及:确定用于表示所述第一颜色平面的所述a×b像素宏单元的第一颜色平面输出值、和用于表示所述第二颜色平面的所述a×b像素宏单元的第二颜色平面输出值。所述第三示例实施例还可以涉及:将所述4个属性平面输出值、所述1至4个亮度平面输出值、所述第一颜色平面输出值和所述第二颜色平面输出值的交错表示写入计算机可读输出介质。
第四示例实施例可以包括至少包含处理器和数据储存器的计算设备。所述数据储存器可以包括程序指令,该程序指令在被处理器执行时,促使所述计算设备根据所述第一、第二和/或第三示例实施例执行操作。
通过适当地参考附图阅读下列详细描述,这些以及其它方面、优点和替代物对于本领域普通技术人员来说将变得显而易见。进一步,应当理解,本发明内容部分和本文档中其他部分所提供的描述旨在通过示例的方式而不是限制的方式示出要求保护的主题。
根据本发明,可以提供数字图像的利用检测边缘和交错编码的基于单元的压缩方法。
附图说明
图1描绘根据示例实施例的打印设备。
图2是示出根据示例实施例的打印设备的计算组件的框图。
图3是示出根据示例实施例的涉及打印设备的各种数据路径的框图。
图4描绘根据示例实施例的可以包含在电子文档中的图像。
图5描绘根据示例实施例的属性阵列。
图6描绘根据示例实施例的文档处理管道。
图7描绘根据示例实施例的包含四个单元的宏单元。
图8描绘根据示例实施例的彩色平面决策树。
图9描绘根据示例实施例的灰度平面决策树。
图10描绘根据示例实施例的属性平面决策树。
图11A描绘根据示例实施例的四个平面的单元。
图11B描绘根据示例实施例的在输出介质上交错的图11A的单元。
图12A描绘根据示例实施例的四个平面的单元。
图12B描绘根据示例实施例的在输出介质上交错的图12A的单元。
图13是根据示例实施例的流程图。
图14是根据示例实施例的另一个流程图。
图15是根据示例实施例的又一个流程图。
具体实施方式
示例方法和系统在本文中被描述。可以进一步利用其他示例实施例或特征,并且可以进行其他改变,而不脱离本文所呈现的主题的范围。在下列详细描述中,对形成该描述的一部分的附图做出参考。
本文中描述的示例实施例并不意味着是限制性的。因而,本文中一般描述的并在图中示出的本发明的方面,可以以各种各样不同的配置被布置、替换、组合、分离和设计,本文中明确预期了所有这些配置。
1、导言
在最近30多年间,打印技术已经从仅仅产生黑白图像的基于点阵的简单输出设备发展到今天能够产生高分辨率彩色图像的基于激光的先进打印设备。另外,现代的打印设备还可以充当复印机、扫描仪和传真机。为此,它们可以能够存储许多排队等待打印或传真的电子文档或许多已经扫描的电子文档。因而,许多打印设备是计算设备的专用形式,该计算设备可以包括例如一个或多个处理器、数据储存器和输入/输出接口。
不管是在住宅、企业还是在另一种类型的场所使用打印设备,打印设备都可以是能够被通信联接至各种其他计算设备的共享资源。因此,在一些环境下,打印设备的存储要求可能相当高,因为许多计算设备可能正在将电子文档传输至打印设备以供打印。通常,打印设备会在一个时刻以先来先服务的方式打印、复印、传真和/或扫描一个电子文档。因此,打印设备可以存储等待服务的潜在的大量电子文档。另外,诸如包含背景图像或标识语的叠加文档之类的一些电子文档可以被无限期地存储在打印设备中,因为这些电子文档可以被应用到多个打印作业。
因为数据储存器(例如诸如随机存取存储器(RAM)、固态存储器、硬驱动存储器和/或闪存之类的存储器)的成本可能昂贵,所以压缩所存储的电子文档以便降低对打印设备的数据储存器要求可能是有益的。另外,因为一些电子文档可以被传送至打印设备和计算设备,和/或从打印设备和计算设备传送出,所以压缩这些电子文档可以使得传送更快且使用较少的网络容量。
此外,因为打印作业可能很大(例如打印作业可能包括一个或多个包含数百页的电子文档),所以在打印每个作业之前,压缩排队等待的打印作业会节约短期存储空间。另外,用户可能想要在长期储存器中保存随后要打印的打印作业。因此,压缩打印作业可以允许保存更多的打印作业。此外,存储和从长期存储器获取大的打印作业的动作可能很慢,但是通过压缩打印作业以使它们的尺寸更小可以加速该动作。
2、示例打印设备
图1描绘示例打印设备100。打印设备100可以被配置为将部分存储的和/或完全存储的文档打印在各种类型的物理输出介质上。这些输出介质包括但不限于各种尺寸和类型的纸、字幕片等。打印设备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.5×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可以包括处理器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支持的数据路径可以被称为“管道(pipeline)”。
扫描至打印数据路径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描绘了可以被包括在由打印设备100处理的物理或电子文档上或内的图像400。尽管图像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的电子文档的存储要求仍然使用有损压缩。具体地,可期望保持诸如文本、基本几何形状和线条图之类的某些元素的准确特性,因为甚至这些元素的轻微变形会使人眼出现不舒服。因此,这些元素可以被归类为矢量图形或文本,并且可以作为采用无损方式的压缩的目标。
另一方面,可以在没有这种精确的情况下观看逼真照片的图像和具有梯度的复杂图形。因此,这些元素可以被归类为图像图形,并且可以作为采用有损方式的压缩的目标。例如,图像图形可以以使得人眼可以看到与它们相应的未压缩版本相同或类似的图像图形这样的方式被压缩。
进一步,像素的对象类型(例如,图像图形、矢量图形或文本)可能影响被应用于像素的颜色转换、以及被应用于像素的半色调屏的类型。以下更详细地讨论这些问题。
在一些情况下,矢量图形和文本对象可以看起来具有类似的特征。事实上,在一些实施例中,这两类可以被组合,并以相同的方式被处理。然而,某些类型的矢量图形,诸如浅色线条,在与文本不同地处理时看起来更好。例如,如果浅色线条以与文本相同的方式被处理,则这些线条中的一些可能变得难以区分。因此,将不同的颜色转换和/或不同的半色调屏应用于矢量图形可以保持和/或增强这些线条。例如,针对矢量图形像素特别选择的半色调屏在此像素被打印时可能导致应用更多的碳粉。
4、示例图像颜色模型
电子文档可以使用多个颜色模型来表示。因此,强大的压缩技术应当能够作用于这些模型中的一些或全部。进一步,压缩技术可以包括专用于单个颜色模型的预处理。
例如,红绿蓝(RGB)颜色模型可以被用于诸如电视机、监视器或计算机屏幕之类的电子输出设备上的图像显示。RGB是加色模型,其中红光、绿光和蓝光以各种方式相加在一起以产生色谱。例如,可以通过组合绿色和蓝色形成青色,可以通过组合红色和绿色形成黄色,可以通过组合红色和蓝色形成品红色,以及可以通过组合红色、绿色和蓝色形成白色。
RGB图像的特定像素可以被表达为三平面元组(R,G,B),三平面元组(R,G,B)中的每个平面可以从零变化至预定义的最大值(例如255)。如果全部平面为0,则结果可以是黑色。如果全部平面处于最大值,则结果可以是可表示的最亮的白色。(本文描述的颜色平面还可以被称为颜色通道。)
RGB输出通常依赖于设备,因为不同的输出设备可以以不同的方式显示相同的RGB图像。因此,在一些情况下,这些区别可以被人察觉。在一些实施例中,使用扫描至主机数据路径306被扫描到打印设备100中的物理文档可以使用RGB颜色模型来编码。
青色-品红色-黄色(CMY)颜色模型可以被用于通过打印设备打印彩色图像。CMY是减色模型,其中青色、黄色和品红色以各种方式被应用于白色表面以再现色谱。例如,可以通过组合品红色和黄色形成红色,可以通过组合青色和品红色形成蓝色,以及可以通过组合青色和黄色形成绿色。因此,CMY颜色模型可以被认为是RGB颜色模型的补充。
CMY图像的特定像素可以被表达为三平面元组(C,M,Y),三平面元组(C,M,Y)中的每个平面可以从0变化至预定义的最大值。如果全部平面为0,则结果可以是白色。如果全部平面处于最大值,则结果可以是黑色。
与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平面可以分别表示蓝-黄色度和红-绿色度。尽管Y平面表示亮度,但是其可以被称为像Cb平面和Cr平面一样的“颜色平面”。YCbCr颜色模型与RGB和CMY颜色模型具有明确的关系,并且YCbCr颜色模型可以相对容易地转换为这些颜色模型中的任一个并从这些颜色模型中的任一个转换得到。YCbCr颜色模型的灰度版本可以被称为Y颜色模型。
YCbCr颜色模型的附加优点是,比起用RGB或CMY/CMYK颜色模型编码的图像的压缩来说,使用YCbCr颜色模型编码的图像的压缩趋向于更高效。具体来说,人眼不是非常擅长于检测图像中的高频(例如快速变化的)色度信息。因此,使用YCbCr颜色模型编码的图像可以通过忽略Cb平面和Cr平面的高频分量来利用此信息。所以,以特定颜色模型编码的图像可以在压缩之前转换为YCbCr颜色模型,从而提高压缩性能。
5、示例属性平面
除了颜色平面,图像可以使用属性平面来数字化表示。虽然属性平面的值可能不明显地显现在图像中,但是属性平面可以被用于提供对图像压缩和处理操作的指导。
作为示例,图像中的每个像素可以与表示属性的位阵列(例如,8位或16位)相关联。这些属性中的一些可以指示像素是否被用作其他材料的顶部上的叠加、图像中的边缘的部分,或者被用作打印或复印特征的部分。其他属性可以包括对将像素在颜色模型之间转换时使用的颜色转换表的引用和/或对在打印像素时使用的半色调屏的引用。每个像素的相关联属性阵列中的位可以通过打印设备的扫描单元确定或由电子文档的PDL确定。
属性平面的阵列可以被用于识别其关联像素所表示的对象类型。例如,这些识别的对象类型可以包括图形图像、矢量图形、或文本。对象类型标记可以是这个属性阵列的一个或多个位。
图5中示出了示例属性阵列500。属性阵列500包括叠加位502、未用位504、边缘位506、两个颜色表位508、510、复印或打印位512和两个半色调位514、516。
叠加位502可以指示相关联像素是否与其他材料叠加。例如,一些打印设备可以支持将一个或多个背景图像或图案应用到一些打印作业。这些图像或图案可以是静态的,诸如商标或边框,或者可以是动态的,诸如自动页面编号(例如,在文档中的每个页面的底部显示诸如“1/3页”之类的短语)。
例如,在自动页面编号的情况下,打印设备可以被用户引导来添加页码。用户可以选择在打印设备的用户接口上的选项来指定自动页面编号。可替代地,将电子文档传输至打印设备的计算机的打印机驱动器可以指定自动页面编号。在其他情况下,打印设备可以检测哪些像素是前景像素(诸如页面上的文本)和背景像素(诸如页面的白背景),并且指示前景像素被叠加。
边缘位506可以指示相关联像素是否是图像中边缘的部分。例如,当是这种情况时,边缘位506可以具有值1,而不是这种情况时,可以具有值0。边缘位506可以被扫描单元(例如,扫描单元302)设置为标记深色形状边缘附近的像素,该像素也毗邻于浅色形状。例如,对于表示浅背景上的文本字符的边框的像素,边缘位可以被设置为1。如下所述,边缘位506可以被用于通过使用智能下采样来增强图像中的边缘。
作为一个可能的示例,颜色表位508、510可以指示颜色表,该颜色表包含颜色平面值在CMY和CMYK颜色模型之间的映射。如上所指,像素的对象类型(例如,图像图形、矢量图形或文本)可以由得到像素的电子文档的PDL表示来确定,或者通过扫描单元来确定。
基于像素的对象类型,不同颜色转换表可以被应用。例如,在像素是文本对象的部分时,颜色表位508、510可以具有值“00”,在像素是矢量图形对象的部分时,颜色表位508、510可以具有值“01”,而在像素是图像图形对象的部分时,颜色表位508、510可以具有值“11”。基于颜色表位508、510的值,几个颜色转换表中的一个可以被选择并应用于像素。
复印或打印位512可以指示相关联像素是被复印(扫描然后打印)还是传统地被打印(例如,从本地存储的或从另一个设备接收的PDL文档)。此位的值可以与半色调位514、516中的那些组合,以选择多达八个半色调屏中的一个(参见以下对于半色调的讨论)。在一些情况下,扫描然后打印的电子文档可以使用某些类型的半色调屏,而传统地被打印的电子文档可以使用其他类型的半色调屏。
半色调位514、516可以指示在打印时半色调屏是否要被应用于图像,以及哪个半色调屏要被应用。半色调是通过使用尺寸、形状或间距变化的点来模拟梯度的技术。半色调可以将包含各种颜色的多个阴影的图像分解为一系列叠加的半色调屏,每个屏包含特定颜色的单个的(二进制)阴影。叠加的半色调屏产生点被融合成平滑色调的外观。
类似于颜色表位508、510,半色调位514、516可以基于像素所表示的对象的类型而具有值。因此,在像素是图像图形对象的部分时,半色调位514、516可以具有值“00”,在像素是矢量图形对象的部分时,半色调位514、516可以具有值“01”,而在像素是文本对象的部分时,半色调位514、516可以具有值“11”。基于半色调位514、516的值,几个半色调屏中的一个可以被选择并应用于像素。
虽然基于相同的三个对象类型,但是颜色表位508、510可以区别于半色调位514、516。保持这两套不同的信息的一个可能原因是为了在一些PDL中适应对象像素重叠融合。例如,在文本像素与光栅图像像素融合时,颜色表位508、510可以指示光栅图像,半色调位514、516可以指示文本。此特征支持重叠、融合的对象的图像质量。
示例属性阵列500包含每个像素8位(1个字节)。因此,使用这种样式的属性阵列,属性平面的大小随着图像中像素的数量线性增长。与图像中的像素相关联的属性阵列的范围可以被称为该图像的属性平面。
属性平面可以被称为A平面。因此,在属性平面与一个或多个颜色平面组合时,根据使用的颜色模型,所组合的属性和颜色平面可以被称为KA、CMYA、CMYKA、RGBA、YA或YCbCrA。本文中,尽管属性平面实际上不表示颜色本身,但所组合的属性和颜色平面的这些示例可以被称为“颜色模型”。
6、示例成像管道
图6中示出示例成像管道的高级概览。这个成像管道采用流程图600的形式,并且包括多个压缩和解压缩步骤。流程图600可以表示由打印设备实施的用以接收、存储并打印电子文档的一系列步骤。
在图6的块602处,可以将电子文档表示为根据YA或YCbCrA颜色模型被格式化的一个或多个图像。然而,选择这些颜色模型是为了说明的目的,并且其他颜色模型也可以被使用。YA或YCbCrA像素可以源于初始纸张文档或其他对象的扫描过程。可替代地,例如,在块602处,电子文档可以通过诸如位图、JPEG、GIF等的图像格式来表示,并且被转换为YA或YCbCrA颜色模型。
在块604处,基于单元的压缩(以下详细讨论)可以被应用于电子文档的每个平面的像素。因此,对于YA电子文档,基于单元的压缩可以被应用于灰色平面和属性平面。对于YCbCrA电子文档,基于单元的压缩可以针对Y、Cb、Cr和A平面中的每一个单独应用或以混合方式应用。因此,在一些情况下,基于单元的压缩可以在相同的逻辑操作中压缩两个或更多个平面的对应单元。块604的结果可以是表示电子文档的压缩版本的比特流。
在块606处,这个压缩版本可以被存储在储存器输出介质中。一般来说,这个储存器可以是打印设备的存储一个或多个页面的压缩表示的存储器。因为这里描述的压缩技术可以能够将这些文档压缩至其初始位图尺寸的至少三分之一或四分之一,对此储存器的存储器尺寸要求可以相应地降低。结果,结合这里实施例的打印设备可以不太昂贵地生产。
到达块606中的储存器的压缩页面可能会或可能不会被打印设备打印。在一些情况下,可以将这些页面从块606的储存器传输至便携式储存器(例如,USB储存器、安全数字(SD卡)等)或被传输至个人计算机主机。页面可以在块606的储存器中保持几天、几周等,直到用户或程序决定打印或对这些页面做些其他事情。
在块608处,基于单元的解压缩可以被应用于电子文档的每个平面。这可以导致电子文档的YA或YCbCrA表示的再创建。然而,如果基于单元的压缩技术使用有损压缩,则块608的解压缩产生的电子文档可以不同于被块604的压缩所压缩的电子文档。尽管如此,电子文档的这些版本之间的区别可能是轻微的,并且因此可能不会被人轻易地感知。
在块610处,电子文档的解压缩版本可以被进一步处理。例如,各种变换可以被应用于电子文档。在对电子文档执行这些变换中的一个或多个之后,电子文档可以在块604处再次被压缩,并在块606处被存储在储存器中。块610的应用是可选的,并且不是所有的电子文档都会经历此处理。
在块612处,电子文档的解压缩版本也可以被进一步处理。在块614处,基于单元的压缩可以被应用于电子文档的每个平面。此压缩程序可以与块604的相同,或者可以不同。例如,在块614处应用的压缩可以被配置为获取比块604高或低的压缩比。
在块616处,此压缩版本可以被存储在储存器中。像块606的储存器一样,此储存器可以是打印设备的存储一个或多个页面的压缩表示的存储器。因为这些页面表示被压缩,所以存储器要求和储存器成本被降低。
在块618处,基于单元的解压缩可以被应用于电子文档的每个平面。这可以导致在块614处压缩的电子文档的表示的再创建。像是块608的情况,如果基于单元的压缩技术使用有损压缩,则由块618的解压缩产生的电子文档可以与由块604和/或块614的压缩所压缩的电子文档的版本不同。
在块620处,进一步的处理可以被应用于电子文档的解压缩版本。在块620之后,电子文档可以准备打印,或者进一步处理可以被应用。
块604和614的基于单元的压缩程序可以相同或不同。例如,这些程序可以使用不同的压缩算法,或者可以使用具有相同或不同设置的相同压缩算法。同样,块608和618的基于单元的解压缩程序也可以相同或不同。
在一些实施例中,每个像素所使用的属性平面位的数目可以基于在流程图600中发生压缩的点而变化。例如,属性阵列500的所有位(未用位504可能除外)可以在块604处被压缩。
然而,在步骤612之后,叠加位502、未用位504、边缘位506和颜色表位508、510可以不再需要。进一步,一些类型的打印设备不具备复印功能。因此,对于这些打印设备,复印或打印位512可以不在流程图600中的任意点处使用,并且可以从块604和块614的压缩中省略。
不管怎样,在各个实施例中,可以从基于单元的压缩程序中省略属性阵列500的零至六个位的任意地方。结果,每个单元所压缩的位的总数可以被减小,这可以依次提高属性平面的单元的可实现压缩比。
这里的描述集中于应用到图像的属性平面和颜色平面的基于单元的压缩的单个实例。该图像可以是来自包含一个或多个页面的电子文档中的单个页面的表示。尽管如此,根据管道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×8pCell 700、702、704、706,对于特定平面,每一个包含64个属性或像素值。每个属性或像素值例如可以由0-255的范围中的数来表示,并且因此可以被表达为字节。然而,存在其他可能。为了简单起见,pCell 700仅示出一些代表值的位置。
如图7中示出的四个pCell的2×2布置可以被称为qCell。因此,图7的qCell710可以是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。这些标示可以被称为pCellID,并且仅仅是区别qCell内的pCell的位置的方便方式,并且将会用在以下的交错讨论中。
这里描述的基于单元的压缩技术可以作用于pCell和qCell。为了简单起见,将假定使用8×8pCell和16×16qCell。然而,在不同大小的pCell和qCell可以被替代使用的理解下,做出此假定。
进一步,平面的pCell或qCell可以指单个平面的元素,而混合的pCell或qCell可以指跨多个平面的对应元素。例如,在使用CMYA颜色模型时,平面的pCell可以包括C、M、Y或A平面中的一个的元素,而混合的pCell可以包括来自C、M、Y和A平面中的两个或更多个中的元素。
8、基于单元的压缩示例
接下来的几个子部分详细描述了各种基于单元的压缩技术。这些技术中的每一个与pCell、qCell或两者一起操作。表1中提供了这些压缩技术的概览。
表1
以下可以用更通用的词语描述仅用在属性平面上的压缩技术,因为在一些系统中,针对某些实施例,它们也可以被用在颜色平面上。例如,假如这里公开的基于单元的压缩被用在管道600的块604中。不同的压缩套件可以被用在管道600的块614中。因此,D1、D1D、P2、P2D、P4、D1C、D1E和D64压缩被通用地描述。
a、D1压缩和D1D压缩
当给定pCell中的全部属性或像素相同时,可以使用D1压缩。例如,假定pCell中的每个属性或像素具有从0至255的值。如果全部值是74,正如一个示例,则D1压缩可以被应用于此单元。以此方式,表示pCell所需的数据量可以被显著减少。
可被称为D1D压缩的D1压缩的变形可以在颜色值是默认颜色时使用。例如,在YCbCr颜色空间的Y平面、灰色颜色空间和全部CMYK颜色空间中,默认值可以是0和255。在YCbCr颜色空间的Cb和Cr平面,默认值可以是128和255。D1D压缩具有比D1压缩稍微更高效的编码。因为在颜色空间中仅仅存在有限数目的默认值(例如2),所以这些默认颜色值可以利用少量的位(例如1)来表示。因此,与D1压缩相比,D1D压缩可能需要每单元较少的位。
对于属性平面,D1D默认值可以被预定(例如,0或128),或被用户手动设置。
在一些情况下,对于所有属性或像素具有相同值的多个邻近的pCell(例如,行或列中的pCell)可以使用D1或D1D编码来表示。存在这可能发生在其中的两个可能方式。D1和D1D压缩都允许行程(run)长度被编码。该行程长度表示多少总pCell也使用D1压缩来压缩。D1压缩也允许之前使用的(缓存的属性或像素值)被用在接下来的pCell的编码中。
压缩 | 操作码 | 选项 | 参数 |
D1 | 001 | V’ | 长度/值(可选) |
D1D | 000 | V | 长度 |
表2
表2提供用于D1和D1D压缩的示例二进制编码。对于D1压缩,pCell的压缩表示以操作码001开始。如果V’位是1,则D1编码还包括1字节的值参数(其对于pCell中的全部属性或像素来说是相同的)。如果V'位是0,则值参数从编码中省略,并且在最近的D1编码中的值(例如,缓存的值)被用于pCell中的全部属性或像素。长度参数可以是两个位,因此支持从1至4个pCell的qCell内的行程长度。值参数应用于像素值以及属性值。因此,在压缩颜色平面的pCell时,值参数可以是8位。然而,如上所指,小于8位可以被用于表示属性平面值,并且值字段的大小可以被适当地减小。
对于D1D压缩,pCell的压缩表示以操作码000开始。V位指示两个默认值中的哪一个会被使用(例如,如果V是0,则一个值会被使用,并且如果V是1,则另一个默认值会被使用)。长度参数可以以与其用于D1压缩相同的方式来使用。
b、P2压缩和P2D压缩
当给定pCell中的属性或像素中的每一个可以使用两个值中的一个来表示时,可以使用P2压缩。例如,如果单元中的属性或像素可以具有0和255之间的值,但是全部值是76或125,则P2压缩可以被用在pCell上。在使用P2压缩时,两个值以及pCell中属性或像素的位图可以被编码。位图指示哪个值与pCell中的每个属性或像素相关联。类似于D1和D1D压缩,P2压缩可以使用最近使用的值对的缓存。
可被称为P2D压缩的P2压缩技术的变形可以在一单元中只出现两个默认颜色值时可以被使用。如上所指,在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条线编码。对于线图中的每个位,0指示对应的线不存在,并且之前的线重复,而1指示对应的线存在。
c、P4压缩
当给定单元中的全部像素可以使用三个或四个颜色值来表示时,可以使用P4压缩。在使用P4压缩时,三个或四个值以及pCell中属性或像素的位图可以被编码。位图指示哪个值与pCell中的每个属性或像素关联。
压缩 | 操作码 | 参数 | 位图 |
P4 | 100 | 线图/值1/值2/值3/值4 | 1至8条线 |
表4
表4提供了用于P4压缩的示例二进制编码。对于P4压缩,pCell的压缩表示以操作码100开始。类似于P2位图中的那个,7位的线图限定位图怎样被压缩。对于线图中的每个位,0指示对应的线不存在,并且之前的线重复,而1指示对应的线存在。
四个值参数是表示在pCell中发现的元素的值的8位字段。为了在这些值之间区别,位图的每条线(如果存在)可以是16位长。在只有三个值被P4压缩编码时,“值4”参数可以存在但被忽略。
d、D1C压缩和D1E压缩
D1C和D1E压缩有利于作为D1或D1D压缩的候选的连续单元的行程的有效编码。对这些行程编码可以显著地提高具有展现单色(例如,白背景)的部分的图像上的压缩性能。两种D1或D1D行程可以被支持:(i)与qCell交叉的D1或D1D候选pCell的qCell间行程,以及(ii)qCell内的D1或D1D候选pCell的qCell内行程。
qCell间D1或D1D行程对横跨两个或更多个qCell的D1或D1D行程编码。在qCell中的两个最右边的pCell(“b”和“d”pCell)包含使用D1压缩来编码的恒定像素值的8×16阵列时,这意味着D1或D1D行程的开始,并导致编码模式从正常编码模式改变为D1或D1D行程编码模式。此编码模式按平面追踪,并且在qCell边界上追踪。因此,对于特定平面,模式改变至D1或D1D行程编码模式发生在qCell边界的末端。
在D1或D1D行程编码模式中,只有两个代码被限定:D1C(继续)和D1E(结束),并且它们各自使用单个位被编码。只要接下来的qCell包含与使行程开始的两个D1或D1D候选pCell一样的16×16像素值,则1位的D1C操作码被发射,并且D1或D1D行程编码模式继续。如果接下来的qCell包含除了与行程开始匹配的固有值之外的任何事物,则行程结束。在这种情况下,1位的D1E代码被发射,并且正常编码模式被再次进入。同样,针对存在的qCell的任意剩下的D1、P2、P4或D64编码被发射。
qCell内的D1或D1D行程对qCell内的D1或D1D行程编码。例如,2位的行程长度可以被用于对从qCell内的1至4个pCell延伸的D1和D1D行程编码。这种行程是指示的D1(n)和D1D(n),其中n具有值1、2、3或4。
压缩 | 操作码 |
D1C | 1 |
D1E | 0 |
表5
表5提供用于D1C和D1E压缩的示例二进制编码。对于D1C压缩,1指示D1或D1D行程的继续,并且在给定qCell中的全部四个pCell与当前行程的D1或D1D单元匹配。对于D1E压缩,0指示D1或D1D行程的结束。
e、D64压缩
D64压缩是用于对D1、D1D、P2、P2D和P4不适用的属性平面的pCell编码的无损技术。例如,如果pCell包含5个或更多个不同的值,则可以使用D64压缩。
D64压缩对8×8属性pCell的全部64个值编码,并且在包括有其头部时,这导致非常小的扩大而不是压缩。然而,因为希望属性平面以无损的方式被压缩,所以在一些情况下,D64压缩可能是必须的。
尽管如此,根据压缩管道600中基于单元的压缩发生的地方,pCell中属性值的全部8个位可以不被编码。相反,这些值的2-8个位可以替代地被包装并编码。这导致D64压缩的改进。
压缩 | 操作码 | 属性 |
D64 | 11 | 使用每个属性2-8个位来编码的64个属性 |
表6
表6提供用于D64压缩的示例二进制编码。D64pCell的压缩表示以操作码11开始,并且在pCell中还包括使用每个属性2-8个位来编码的64个属性阵列。如上所讨论,每个属性阵列的位数基于在压缩属性平面时多少属性位可以被省略。
f、文件的结束(EOF)
EOF本身不是压缩技术,恰恰相反,EOF被限定为表示压缩流结束。在压缩器上,在全部输入数据已经被压缩并且最后qCell的最后代码已经被发射之后,EOF序列可以被发射。EOF作为属性平面代码被发射。
如果属性平面处于D1或D1D行程编码模式下,则D1E可以在EOF被发射之前被发射,以返回至正常编码模式。另外,EOF自动终止除了属性平面之外的任意平面上的任意活动的qCell间的D1或D1D行程。
压缩 | 操作码 | 值 |
EOF | 001 | 10000000000 |
表7
表7提供了用于EOF的示例二进制编码。在操作码001之后,二进制值“10000000000”被发射。因为EOF与D1压缩共享操作码,所以此值可以被用于将EOF与pCell的D1编码区别开。
g、DCT 4:2:0压缩或DCT Y压缩
DCT 4:2:0压缩指的是使用离散余弦变换(DCT)技术来压缩下采样的qCell,以使Cb和Cr颜色平面的分辨率在水平和垂直方向上都减少2倍。
作为混合模式操作,DCT 4:2:0压缩可以使用每pCell一个DCT操作(总共四个Y平面DCT操作)来压缩Y平面,同时下采样并将Cb和Cr平面压缩为一个pCell。DCT 4:2:0压缩还可以涉及:DCT变换、缩放、量化、将二维系数阵列重新排序为一维数据、以及哈夫曼(Huffman)熵编码。
对于Cb和Cr平面,此技术首先将qCell下采样为pCell的大小,然后将DCT编码应用于产生的pCell。作为示例,16×16qCell可以被下采样为8×8pCell。下采样程序可以涉及将16×16qCell分为64个非重叠的2×2块,并且使用作为相应块中的像素值的平均值的单个像素值代替每个块(不考虑这些2×2块是否表示任意边缘)。产生的64个平均值组成8×8单元。特别地,此下采样提供4:1的初始压缩比,然后DCT编码提供除此之外的附加压缩。
DCT Y压缩指的是对灰度图像(即,其中没有Cb和Cr平面存在)的Y平面的四个pCell中的每一个执行DCT编码。因此,DCT Y实际上是平面模式操作,但是可以被认为是正常混合模式操作,因为只存在一个颜色平面。
表8
表8提供用于DCT 4:2:0和DCT Y压缩的示例二进制编码。如表8中限定,DCT压缩可以不涉及操作码,相反其可以由DCT压缩的pCell的六个字段组成。由于与属性平面交错(参见以下交错的讨论),这些压缩的pCell可以通过压缩的属性pCell而相互分离,这减少了对DCT 4:2:0压缩的操作码的需求。尽管如此,DCT 4:2:0压缩的一些表示可以包括一个或多个操作码。像DCT 4:2:0编码一样,DCT Y编码通常不使用操作码。
在一些实施例中,每个DCT编码可以是根据联合图像专家组(JPEG)标准的子集使用哈夫曼编码进行封装的量化DCT系数的集合。
h、具有智能下采样的DCT 4:2:0压缩
具有智能下采样的DCT 4:2:0压缩与上面讨论的那个DCT 4:2:0压缩相同,除了下采样程序权衡表示边缘的像素比不表示边缘的像素更重要。
下采样是有利的,因为其可以提高压缩比,同时其一般避免劣化图像质量。对于图像内容,在Cb和Cr平面上这特别真实,因为这些平面固有地容忍可能由下采样引入的人为因素(artifact)。另一方面,文本和矢量对象不具有此容忍。下采样文本和矢量对象可以劣化细节和清晰度,并且可以引入诸如色偏的人工因素。
智能下采样技术通过利用属性平面中的边缘位来改进基础下采样。这些边缘位被用于调节下采样,以使在文本和矢量对象中维持清晰度,由此提高压缩图像的质量。
具体地,在要利用单个下采样的像素值代替的每个2×2块(4个像素)中,计算与属性平面的边缘位关联的像素数。如果此总数是0或4,则4个像素的像素值被平均并被写入下采样的像素值。然而,如果4个像素中的1至3个与边缘位关联,则只有与边缘位关联的像素的值被平均并被写入下采样的像素值。
作为示例,假定2×2块包含以下Cb或Cr平面像素值:0、72、76和1。进一步假定具有值72和76的像素与边缘位关联,但是具有值0和1的像素不关联。然后,具有值72和76的像素可以被平均,并且产生的像素值74可以被写入下取样的像素值。因此,由具有值72和76的像素表示的边缘可以被增强。
具有智能下采样的DCT 4:2:0压缩可以使用表8中限定的编码。
i、DCTL压缩
DCTL压缩也类似于DCT 4:2:0压缩,除了其下采样并压缩全部颜色平面,不仅是Cb和Cr平面。DCTL压缩可以被应用于在Y平面上具有小范围亮度值的qCell。
表9
表9提供用于DCTL压缩的示例二进制编码。对于DCTL压缩,qCell的平面的压缩表示以操作码1开始,并且该表示的剩余部分是DCT编码。类似于DCT 4:2:0情况,DCT编码可以是根据JPEG标准的子集使用哈夫曼编码进行封装的量化DCT系数的集合。
j、QD1压缩和QD1D压缩
在给定qCell中的全部像素值相同或接近时,可以使用QD1压缩。QD1压缩使用相同的像素值对整个qCell编码。qCell中的像素值彼此是否足够接近可以通过检查qCell中每个pCell内的像素值的范围和每个pCell的平均值之间的差来确定。例如,如果每个pCell内的像素值的范围小于或等于单元级阈值,并且pCell的平均值全部处于彼此的宏单元级阈值内,则可以使用QD1压缩。例如,在一些实施例中,单元级阈值可以在2和16之间,而宏单元级阈值可以在1和8之间。
QD1D压缩类同于D1D压缩。因此,在qCell中的像素值与用于Y、Cb或Cr的默认值匹配时,可以使用QD1D压缩。
QD1和QD1D压缩分别是D1和D1D压缩的有损变形。通过使用QD1和QD1D压缩来允许有限的损耗量,压缩比可以被大大增长超过基于DCT的压缩。另外,像D1和D1D压缩一样,QD1和QD1D压缩允许行程,这进一步提高压缩比。
在这一点上,具有相同像素值的多个邻近的qCell(例如,行或列中的qCell)可以使用QD1或QD1D编码。每个QD1和QD1D编码分别隐含地指示QD1或QD1D单元的行程的开始。如果在相同的颜色平面中存在两个或更多个QD1或QD1D单元的行程,则行程中的第二和任意接下来的QD1或QD1D单元可以由QD1C编码来表示(参见以下)。行程可以以QD1E编码结束(参见以下)。
压缩 | 操作码 | 选项 | 参数 |
QD1 | 01 | V’ | 值(可选) |
QD1D | 00 | V |
表10
表10提供用于QD1和QD1D压缩的示例二进制编码。对于QD1压缩,qCell的压缩表示以操作码01开始。如果V’位是1,则QD1编码还包括1字节的值参数(其对于qCell中的全部像素来说是相同的)。如果V'位是0,则值参数从编码中省略,并且在最近的QD1编码中的值(例如,缓存的值)被用于qCell中的全部像素。
对于QD1D压缩,pCell的压缩表示以操作码00开始。V位指示两个默认值中的哪一个会被使用(例如,如果V是0,则一个值会被使用,并且如果V是1,则另一个默认值会被使用)。
k、QD1C压缩和QD1E压缩
如上所指,当在特定颜色平面中对行程的非初始单元编码时,只有两个代码被限定:QD1C(继续)和QD1E(结束),并且它们各自使用单个位来编码。只要接下来的qCell包含与使行程开始的qCell相同的像素值,则1位的QD1C操作码被发射,并且QD1或QD1D行程编码模式继续。如果接下来的qCell包含除了与行程的开始相匹配的固有值之外的任何事物,则行程结束。在这种情况下,1位的QD1E代码被发射,并且再次进入正常编码模式。
压缩 | 操作码 |
QD1C | 1 |
QD1E | 0 |
表11
表11提供用于QD1C和QD1E压缩的示例二进制编码。对于QD1C压缩,1指示QD1或QD1D行程的继续。对于QD1E压缩,0指示QD1或QD1D行程的结束。
l、混合模式和平面模式
如上所指,qCell可以以平面模式(单独压缩每个平面)或混合模式(以相关的方式压缩两个或更多个平面)被压缩。在一些实施例中,基于它们的特性,属性平面仅可以使用平面模式来压缩,但是颜色平面可以使用任一模式来压缩。
为了在压缩的位流中指示被用于特定qCell的模式,在每个qCell的压缩表示的开始,专门的q操作码可以被发射。在使用混合模式压缩qCell时,q操作码可以是1,然而在使用平面模式压缩qCell时,q操作码可以是0。
表12
表12详细说明何时使用混合和平面模式。例如,在DCT 4:2:0压缩(具有或不具有智能下采样)或DCT Y被用于qCell时,q操作码1作为该qCell的开头,但是没有操作码针对qCell内每个颜色平面的编码而存在。
在任意其他压缩技术被用于qCell时,q操作码0作为该qCell的开头,并且使用其操作码来指示所使用的压缩技术。同样,正常模式和行程模式之间的区别仅存在于平面模式中。例如,在正常模式下执行使用QD1、QD1D或DCTL压缩的任意qCell编码,而在行程模式下执行使用QD1C或QD1E压缩的任意编码。从平面模式切换至混合模式隐含地结束全部行程。
注意,混合编码不包括属性平面的编码。假定属性平面被单独编码。
在以下交错的讨论中提供了混合模式和平面模式编码的更多个示例。
9、示例决策树
pCell和qCell的编码可以基于一个或多个决策树。每个决策树示出一过程,通过该过程,各种因素在pCell或qCell被编码之前被考虑。对于属性平面、颜色平面和灰度平面,可以存在单独的决策树。例如,期望在压缩属性平面时不丢失任何信息。因此,属性平面可以使用各种无损压缩技术来压缩。另一方面,期望基于像素的特征压缩颜色平面的一些部分(例如,矢量图形和文本部分)和具有变化损失程度的灰度。以此方式,初始图像中的细节在期望时可以被保存,但是仍旧可以实现高压缩比。
a、颜色平面决策树
图8描绘根据示例实施例的颜色平面决策树800。在qCell由四个非重叠的pCell组成的理解下,此决策树考虑qCell的性质。这种qCell及其子pCell的尺寸可以分别是16×16和8×8。然而,其他尺寸可以被替代使用。
假定qCell中的每个像素利用像素是否是输入图像中边缘的部分的指示被标记。这些标记可以驻留在qCell的属性平面中。
在每个决策块802、806、810中,决策的类型被附带地指示。如果决策在平面的基础上作出,则存在附带的P。如果决策在混合的基础上作出,则存在附带的C。
平面决策通过考虑每个颜色平面的qCell和/或pCell来单独做出。因此,例如,平面决策可以考虑与单个qCell和/或pCell关联的颜色性质和/或属性。然而,对于由qCell限定的图像的位置中的全部颜色平面,混合决策可以考虑qCell和pCell的性质和关联属性。
为了简化,QD1D压缩未明确引用在决策树800中。然而,无论QD1被考虑或使用,QD1D压缩也可以被考虑或使用。因此,块814可以使用QD1D压缩。连续的QD1或QD1D编码的行程在决策树800中也未被明确地考虑,但是可以随便使用。
在块802处,确定边缘位是否针对qCell中的任意属性字节而设置。如果是,则在块804处应用具有智能下采样的DCT 4:2:0压缩。在这种情况下,图像中边缘的清晰度可以被保持和/或增强。
否则,在块806处,确定任意颜色平面中的任意pCell是否展现出比预定阈值更大的像素范围。如果是,则在块808处应用不具有智能下采样的DCT 4:2:0压缩。pCell的像素范围可以通过从pCell中的最高像素值减去pCell中的最低像素值来确定。预定的阈值可以具有诸如8、16、32等的值。
否则,在块810处,针对每个颜色平面,单独测试条件A。为了得到满足,条件A要求:(i)每个pCell的像素范围小于或等于预定的单元级阈值,以及(ii)pCell平均像素值的范围小于预定的宏单元级阈值。预定的单元级阈值可以具有诸如4、8、16等的值,并且预定的宏单元级阈值可以具有诸如2、4、8等的值。在一些实施例中,预定的宏单元级阈值小于预定的单元级阈值,并且预定的单元级阈值小于预定的阈值。
如果条件A是真,则讨论中的平面的qCell中的像素具有窄范围的像素值,并且在块814处应用QD1压缩。如果条件A不真,则在块812处应用DCTL压缩。
图8描绘一个可能的颜色平面决策树。其他这些决策树是可能的。
b、灰度平面决策树
图9描绘根据示例实施例的灰度平面决策树900。在qCell由四个非重叠的pCell组成的理解下,此决策树考虑qCell的性质。这种qCell及其子pCell的尺寸可以分别是16×16和8×8。然而,其他尺寸可以被替代使用。灰度图像只包括亮度(Y)或关键(K)平面,所以来自这些图像的qCell可以以平面方式被压缩。
与颜色平面决策树的情况一样,假定qCell中的每个像素利用像素是否是输入图像中边缘的部分的指示被标记。这些标记可以驻留在qCell的属性平面中。
在每个决策块902、906、910中,决策的类型被附带地指示。因为灰度图像具有单个颜色平面,所以全部这些决策是平面的。因此,这些决策考虑与单个qCell和/或pCell关联的性质和/或属性。
为了简化,QD1D压缩未明确引用在决策树900中。然而,无论QD1被考虑或使用,QD1D压缩也可以被考虑或使用。因此,块914可以使用QD1D压缩。连续的QD1或QD1D编码的行程在决策树900中也未被明确地考虑,但是可以随便使用。
在块902处,确定边缘位是否针对qCell中的任意属性位而设置。如果是,在块904处,DCT Y压缩被应用。否则,在块906处,确定像素平面中的任意pCell是否展现出比预定阈值更大的像素范围。如果是,在块908处,DCT Y压缩可以被应用。pCell的像素范围可以通过从pCell中的最高像素值减去pCell中的最低像素值来确定。预定阈值可以具有诸如8、16、32等的值。
DCT Y压缩对qCell中的pCell的每一个执行基于DCT的压缩。例如,16×16qCell可以被分为四个8×8pCell,并且基于DCT的压缩可以被应用于每个8×8pCell。
否则,在块910处,测试条件A。为了得到满足,条件A要求:(i)每个pCell的像素范围小于或等于预定的单元级阈值,以及(ii)pCell平均像素值的范围小于预定的宏单元级阈值。预定的单元级阈值可以具有诸如4、8、16等的值,并且预定的宏单元级阈值可以具有诸如2、4、8等的值。在一些实施例中,预定的宏单元级阈值小于预定的单元级阈值,并且预定的单元级阈值小于预定阈值。
如果条件A是真,则qCell中的像素具有窄范围的像素值,并且在块914处应用QD1压缩。如果条件A不真,则在块912处应用DCTL压缩。
图9描绘一个可能的灰度平面决策树。其他这些决策树是可能的。
c、属性平面决策树
图10描绘根据示例实施例的属性平面决策树1000。在属性平面的pCell的每个元素以一对一的方式与一个或多个对应的颜色平面pCell的像素值关联的理解下,此决策树考虑此属性平面pCell的性质。这些pCell的尺寸可以是8×8,但是其他尺寸可以被替代使用。还假定只存在一个属性平面,这样决策树1000中的全部决策在平面的基础上作出。然而,替代实施例可以采用不同方式。
类似于决策树800和900,D1D和P2D压缩可以在决策树1000中不被明确地引用。然而,无论D1或P2压缩被考虑或使用,D1D和P2D压缩也可以被考虑或使用。因此,块1002、1004、1006和1008可以考虑和/或使用D1D和P2D压缩。连续的D1或D1D编码的行程在决策树1000中也未被明确地引用,但是可以随便使用。
在块1002处,确定属性平面pCell是否有资格D1压缩(即,pCell中的全部属性阵列是相同的)。如果是,在块1004处,应用D1压缩。否则,在块1006处,确定pCell是否有资格P2压缩(即,pCell中的全部属性阵列具有两个值中的一个)。如果是,在块1008处,可以应用P2压缩。
如果pCell没有资格D1和P2压缩,则在块1010处,可以确定pCell是否有资格P4压缩(即,pCell中的全部属性阵列具有四个值中的一个)。如果是,则在块1012处,可以应用P4压缩。否则,在块1014处,可以应用D64压缩。
图10描绘一个可能的属性平面决策树。其他这些决策树是可能的。
10、交错编码
基于单元的压缩的编码输出可以被交错。在一些情况下,交错编码可能优于非交错编码。
此交错可以考虑:(i)跨qCell的pCell和平面的排序,(ii)下采样是平面决策还是混合决策,以及(iii)压缩性能。对于压缩性能的考虑,分离的DCT压缩处理器和图案(非DCT)压缩处理器可以被使用。假定DCT压缩处理器将与图案处理器并行运行,并且假定DCT处理器可以运行地非常慢,可能以图案处理器的速度的八分之一的速度运行。因此,交错格式可以支持维持DCT处理器在DCT和图案pCell的各种混合中的高利用率。
基于这些考虑,属性平面和颜色平面的qCell和pCell可以以交错的方式写入输出介质(例如,块606的储存器和/或块616的储存器)。作为示例,如果颜色模型是YCbCrA,则被编码单元的排序可以是属性单元,然后亮度(Y)单元,然后Cb单元,然后Cr单元,然后另一个属性单元,然后另一个亮度(Y)单元,然后另一个Cb单元,然后另一个Cr单元等。
图11A和图11B中示出了这种交错操作的示例。图11A描绘用于属性、Y、Cb和Cr平面中每一个的一系列四个qCell。qCell内的每个pCell与相应的pCellID(例如,a、b、c或d)关联,并被描绘为框。框包含用于压缩每个相应的pCell的压缩技术、以及qCell号和pCellID。例如,属性平面的第一(最左)pCell使用P2压缩来压缩,并且来自pCell1a。
遍及四个qCell,属性平面使用P2压缩来连续编码,Y平面使用DCT或DCTL压缩来编码,Cb平面使用DCT(即,DCT 4:2:0)或QD1压缩来编码,并且Cr平面使用DCT(即,DCT 4:2:0)、QD1或DCTL压缩来编码。
图11B描绘图11A的pCell和qCell的交错编码。除了在以更高效的方式对行程编码时,颜色平面和属性平面中的每一个被一个接一个接一个接一个地交错。例如,在混合模式(CM)是活动的指示下,在第1输出位置,编码开始。紧接着是第一qCell的pCell。混合模式被用于第一qCell,因为它使用DCT 4:2:0编码。
在编码中,第一pCell是属性平面的1a pCell,然后是Y平面的1a pCell,Cb平面的1a pCell,Cr平面的1a pCell,属性平面的1b pCell,Y平面的1b pCell等。注意,在混合模式下,对于Y、Cb和Cr编码,操作码被省略。
对于第二qCell,在第12输出位置处进入平面模式,因为颜色通道使用DCTL和QD1压缩来编码。用于Cb和Cr颜色通道的QD1编码中的每一个隐含地使QD1行程开始。注意,操作码针对被编码的pCell中的每一个而存在。
对于第三qCell,在第20输出位置处也指示平面模式,因为颜色通道再次使用DCTL和QD1压缩来编码。因为在Cb平面中的QD1行程继续,所以QD1C编码被用于该平面。然而,对于Cr平面,QD1行程不继续。因此,QD1E编码被用于指示QD1行程的结束,并且在第25输出位置处,DCTL被用于表示Cr平面的pCell。
对于第四qCell,混合模式被再次使用。混合模式指示符(第29输出位置中的CM编码)隐含地使Cb平面中的QD1编码的行程结束。在第四qCell的编码之后,另一个混合模式指示符以及然后文件的结束(EOF)被编码,以使交错表示的这部分结束。
图12A和图12B示出了交错操作的另一个示例。图12A描绘用于属性、Y、Cb和Cr平面中每一个的一系列四个qCell。然而,不像图11A和图11B的示例,图12A的示例包括在属性平面上的D1行程。
图12B描绘图12A的pCell和qCell的交错编码。除了在以更高效的方式对行程编码时,颜色平面和属性平面中的每一个被一个接一个接一个接一个地交错。具体而言,如在第6和第10输出位置处的两个D1编码所表示的,属性平面D1行程隐含地在第一qCell中开始。在Cb平面上的QD1行程与图11A和图11B的QD1行程相同。
在第二qCell中,D1行程由在第13输出位置处的单个D1C编码来表示。然而,D1行程在第三qCell中结束。因此,D1E编码出现在第18输出位置处,指示D1行程的结束。然后,第三qCell的四个属性pCell被单独编码。
第四qCell包含qCell内D1行程。因此,这四个pCell被表示在单个D1编码中,该单个D1编码指示在第28输出位置处的四个(D1R(4))行程。像图11B的示例一样,另一个混合模式指示符以及然后文件的结束(EOF)被编码为使压缩表示的这部分结束。然而,从平面模式切换至混合模式不会使该示例中的属性平面行程隐含地结束。结果,D1E编码出现在第36输出位置处,以执行该功能。
图11A、图11B、图12A和图12B为了说明的目的而提供。其他编码可以由这里的实施例支持,并且在不偏离实施例的范围的情况下,可以对这些编码作出改变。
11、基于单元的解压缩示例
一旦使用例如上文讨论的压缩方法和编码来压缩多个pCell和/或qCell,则这些单元可以被高效存储和/或通过电缆或网络被高效地传输。尽管如此,在某个点上,pCell和/或qCell可以被解压缩为初始图像或初始图像的近似。因为这里所述的基于单元的压缩技术可以是有损的,所以解压缩后的图像可能至少在某种程度上不同于初始图像。然而,在许多场景下,这一差别将或者不太可能被人察觉,或者被认为是初始图像的可接受版本。
利用上面描述的压缩编码进行编码的pCell和/或qCell可以被如下解码和解压缩。对于特定的qCell编码,读取q操作码,以确定qCell是使用混合模式还是平面模式来编码。基于此模式,读取一个或多个操作码。基于每个操作码的值,任意可接受的选项、参数、位图等可以由紧接操作码之后的位来确定。从这些参数中,pCell或qCell的解压缩版本可以被重新构建。然后,读取下一个操作码等,直到图像被重新构建。
a、属性平面解压缩
在属性平面上,如果操作码是指示D1编码的001,则V’位和参数字段可以被读取以确定压缩元素的值。长度位也可以被读取以确定行程长度是否存在。然后,创建与行程长度相当的多个单元,其中每个单元中的全部像素展示出由编码中的值字段所指示的值、或在该值字段的缓存版本中的值。
如果操作码是指示D1D编码的000,则V位可以被读取以确定压缩元素的值,并且长度位可以被读取以确定行程长度是否存在。然后,创建与行程长度相当的多个单元,其中每个单元中的全部像素展示出由V位所指示的默认值。
如果操作码是指示P2编码的011,则选项、参数和位图可以被读取。如果V’位是1,则单元中的两个值可以被确定。然后,单元可以根据线图和位图来创建,其中每个像素具有这两个值中的一个。如果线图不存在,则之前P2单元中的线图和位图被使用。
如果操作码是指示P2D压缩的010,则单元可以根据线图和位图来创建,其中每个像素具有这两个值中的一个。如果线图不存在,则之前P2单元中的线图和位图被使用。
如果操作码是指示P4压缩的100,则线图和值参数以及位图可以被读取。然后,单元可以根据线图和位图来创建,其中每个像素具有四个颜色值中的一个。
如果操作码是指示D1C压缩的1,则最近的D1或D1D单元被复制。如果操作码是指示D1E压缩的0,则当前的D1或D1D行程被认为已经结束。
如果操作码是指示D64压缩的11,则每个属性的位数被确定,然后属性字段被相应地解码。每个属性的位数可以取决于打印设备的类型,并且在管道中,在打印设备处发生解压缩。
b、颜色平面解压缩和灰度平面解压缩
颜色平面解压缩基于是使用混合模式还是平面模式而变化。如果使用平面模式,则解压缩还基于正常模式还是行程模式是活动的而变化。灰度平面解压缩仅使用平面模式。
在使用混合模式时,基于图像是彩色的还是灰度的,DCT 4:2:0或DCT Y编码紧接着q操作码1。在使用平面模式时,指示出现文本的编码类型的操作码紧接着q操作码0。
例如,在正常模式下,01操作码指示QD1编码,00操作码指示QD1D编码,并且1操作码指示DCTL编码。在行程模式下,1操作码指示QD1C编码,并且0操作码指示QD1E编码。
利用智能下采样来解压缩使用DCT 4:2:0压缩的pCell可以涉及使用关联属性阵列中的边缘位。因为边缘位表示初始(未下采样的)边缘位,所以初始图像中边缘的位置被获知。进一步,利用DCT 4:2:0压缩,针对像素(像素的亮度)的对应Y平面值也被获知。
在解压缩时,下采样的pCell被上采样为qCell。因此,例如,pCell中的每个像素被上采样为qCell中的2×2块的像素。假定下采样像素的值是f。然后,如果该像素表示边缘,则2×2块的每个像素c(x,y)、c(x+1,y)、c(x,y+1)和c(x+1,y+1)被设置为f。每个非边缘像素的Y平面值与阈值相比较。如果Y平面值超过阈值,则非边缘像素被设置为128(中和色),否则非边缘像素被设置为f。如果没有边缘存在,则全部四个像素被设置为f。阈值可以是任意值,例如220或更高。
在一些实施例中,除了128之外的中和色值可以被替代使用。一般来说,该技术保存边缘同时上采样,因为扫描单元可以被配置为在限定边缘的两个像素中的一个是白色或近白色时,仅设置像素的边缘位。
12、示例性能结果
这里描述的基于单元的压缩技术与JPEG压缩的两个变形JPEG Q90和JPEGQ95相比较。JPEG Q90和JPEG Q95指的是针对DCT系数而用在JPEG中的普通量化表。JPEG Q90产生高质量,并且JPEG Q95产生更高质量。使用这里描述的基于单元的压缩技术以及使用JPEG Q90和JPEG Q95来压缩二十六个代表性且挑战性的页面。Flat7量化表针对DCT系数而用在基于单元的压缩技术中。
这些比较的结果如下。对于全部二十六个页面,基于单元的压缩技术比JPEGQ95产生更好的压缩比。平均来说,JPEG 95提供比基于单元的压缩技术差大约85%的压缩比。同样,对于除了五个页面的全部页面,基于单元的压缩技术比JPEGQ90产生更好的压缩比。在这五个页面中,比起基于单元的压缩技术,JPEG 90提供至多8%的改进。但是,平均来说,JPEG 90提供比基于单元的压缩技术差大约19%的压缩比。
显然,基于单元的压缩技术产生主观上比两个JPEG设置都更好的图像质量。
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处、在打印设备管道的其他位置中、或通过主机发生。
在步骤1300处,可以获取输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元。a×b像素宏单元各自可以包含4个非重叠的m×n像素单元,并且a×b像素宏单元中的像素可以具有相应的像素值。
在步骤1302处,可以确定a×b像素宏单元中的至少e个像素是否表示输入图像中的边缘。e的值可以是至少1。
在步骤1304处,可能基于a×b像素宏单元中的至少e个像素是否表示输入图像中的边缘,可以选择a×b像素宏单元的第一编码或第二编码。第一编码可以权衡表示输入图像中的边缘的一些像素比不表示输入图像中的边缘的像素更重要,并且第二编码可以不考虑像素是否表示输入图像中的边缘。
在步骤1306处,可以执行所选择编码。在步骤1308处,可以将被执行的所选择编码的表示写入计算机可读输出介质。
第一编码和第二编码可以是压缩后的编码。因此,进一步的步骤可以涉及:对a×b像素宏单元的所选择编码的表示进行解压缩,并打印包括被解压缩的a×b像素宏单元的输入图像。
第一编码可以是所选择编码。在这些实施例中,执行所选择编码可以涉及:下采样第一颜色平面和第二颜色平面的a×b像素宏单元中的像素块,以形成第一颜色平面的第一下采样的m×n像素单元和第二颜色平面的第二下采样的m×n像素单元。下采样可以权衡表示输入图像中的边缘的像素比不表示输入图像中的边缘的像素更重要(例如,使用智能下采样)。执行所选择编码可以进一步涉及:对亮度平面的4个非重叠的m×n像素单元、第一下采样的m×n像素单元和第二下采样的m×n像素单元的变换进行编码。变换可以基于离散余弦变换,诸如DCT4:2:0。
可替代地,第二编码可以是所选择编码。在这些实施例中,执行所选择编码可以涉及:(i)确定来自a×b像素宏单元中任意一个的4个非重叠m×n像素单元中至少一个中的像素值的范围大于阈值,(ii)下采样第一颜色平面和第二颜色平面的a×b像素宏单元中的像素块,以形成第一颜色平面的第一下采样的m×n像素单元、和第二颜色平面的第二下采样的m×n像素单元,以及(iii)对亮度平面的4个非重叠的m×n像素单元、第一下采样的m×n像素单元和第二下采样的m×n像素单元的变换进行编码。下采样可以不考虑像素是否表示输入图像中的边缘。变换可以基于离散余弦变换,诸如DCT 4:2:0。
在又一个替代例中,第二编码可以是所选择编码,并且执行所选择编码可以涉及:(i)确定a×b像素宏单元中每一个的4个非重叠m×n像素单元中每一个中的像素值范围小于或等于阈值,(ii)确定a×b像素宏单元中特定一个的4个非重叠m×n像素单元中每一个的相应平均像素值,(iii)确定(a)该像素值范围中的至少一个大于单元级阈值,或者(b)该相应平均像素值的范围大于或等于宏单元级阈值,(iv)将a×b像素宏单元中特定一个中的像素块下采样为下采样的m×n像素单元,以及(v)对下采样的m×n像素单元的变换进行编码(例如,使用DCTL压缩)。下采样可以不考虑a×b像素宏单元中特定一个中的像素是否表示输入图像中的边缘。阈值可以大于单元级阈值和宏单元级阈值两者。
在另一个替代例中,第二编码可以是所选择编码,并且执行所选择编码可以涉及:(i)确定a×b像素宏单元中特定一个的4个非重叠m×n像素单元中每一个的相应平均像素值,(ii)确定a×b像素宏单元中特定一个的4个非重叠m×n像素单元中每一个中的像素值的范围均小于或等于单元级阈值,(iii)确定相应平均像素值的范围小于宏单元级阈值,以及(iv)利用单个像素值对a×b像素宏单元中的特定一个进行编码(例如,使用QD1压缩)。
图14一般描绘颜色平面的基于单元的压缩步骤。然而,这些步骤也可以被用于另外的目的。参考图5至图12B讨论的操作可以在这个流程图中被明确地或隐含地引用。例如,图14的步骤可以发生在图6的块604处、在打印设备管道的其他位置中、或通过主计算机发生。
在步骤1400处,可以从输入图像获取a×b像素宏单元。a×b像素宏单元中的像素可以具有相应的像素值,并且可以与相应的标记相关联。这些标记可以是相应关联的属性阵列中的边缘位。
在步骤1402处,可以确定相应的标记中的至少e个是否指示它们的关联像素表示输入图像中的边缘。e的值可以是至少1。
在步骤1404处,可能基于相应的标记中的至少e个是否指示它们的关联像素表示输入图像中的边缘,可以选择a×b像素宏单元的第一编码或第二编码。第一编码可以权衡表示输入图像中的边缘的像素比不表示输入图像中的边缘的像素更重要。第二编码可以不考虑像素是否表示边缘。
在步骤1406处,可以执行所选择编码。在步骤1408处,可以将被执行的所选择编码的表示写入计算机可读输出介质。
在一些实施例中,第一编码可以是所选择编码。并且执行所选择编码可以涉及:(i)基于标记,确定a×b像素宏单元中的第一2×2像素块包含表示输入图像中的边缘的g个像素,并且利用g个像素的平均值对下采样的m×n像素单元中的第一像素编码(例如,具有智能下采样的DCT 4:2:0压缩)。g的值可以是1、2或3。在这些实施例中,执行所选择编码可以进一步涉及:(i)基于标记,确定a×b像素宏单元中的第二2×2像素块不包含表示输入图像中的边缘的像素,并且利用第二2×2像素块中全部像素的平均值对下采样的m×n像素单元中的第二像素进行编码。全部像素的平均值可以不考虑像素是否表示边缘。
在替代实施例中,a×b像素宏单元可以包含4个非重叠的m×n像素单元。第二编码可以是所选择编码,并且执行所选择编码可以涉及:(i)确定4个非重叠m×n像素单元中至少一个中的像素值范围超过预定的非零阈值,以及(ii)利用a×b像素宏单元中特定2×2像素块中的全部像素的平均值,对下采样的m×n像素单元中的特定像素编码(例如,不具有智能下采样的DCT 4:2:0压缩)。全部像素的平均值可以不考虑像素是否表示边缘。
在进一步的实施例中,a×b像素宏单元还可以包含4个非重叠的m×n像素单元。第二编码可以是所选择编码,并且执行所选择编码可以涉及:(i)确定4个非重叠m×n像素单元中每一个中的像素值的范围小于或等于阈值,(ii)确定4个非重叠m×n像素单元中每一个的相应平均像素值,(iii)确定(a)像素值的范围中的至少一个大于单元级阈值,或者(b)相应平均像素值的范围大于或等于宏单元级阈值,(iv)将a×b像素宏单元中的像素块下采样为下采样的m×n像素单元,以及(v)对下采样的m×n像素单元的变换进行编码(例如,使用DCTL压缩)。阈值可以大于单元级阈值和宏单元级阈值两者。下采样可以不考虑a×b像素宏单元中的像素是否表示输入图像中的边缘。
在另外的实施例中,a×b像素宏单元还可以包含4个非重叠m×n像素单元。第二编码可以是所选择编码,并且执行所选择编码可以涉及:(i)确定4个非重叠m×n像素单元中每一个的相应平均像素值,(ii)确定4个非重叠m×n像素单元中每一个中的像素值范围均小于或等于单元级阈值。(iii)确定相应平均像素值的范围小于宏单元级阈值,以及(iv)利用单个像素值对a×b像素宏单元进行编码(例如,使用QD1压缩)。
图15一般描绘用于交错来自属性平面和一个或多个颜色平面的单元的压缩表示的步骤。然而,这些步骤也可以被用于另外的目的。参考图5至图12B讨论的操作可以在这个流程图中被明确地或隐含地引用。例如,图15的步骤可以发生在图6的块604处、在打印设备管道的其他位置中、或通过主计算机发生。
在步骤1500处,可以获取(i)a×b属性宏单元,以及(ii)输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元。a×b像素宏单元各自可以包含4个非重叠的m×n像素单元。a×b像素宏单元中的a×b个像素可以具有相应的像素值,并且a×b属性宏单元的元素可以以一对一的方式与a×b像素宏单元中每一个中的相应像素相关联。
在步骤1502处,可以确定分别表示4个非重叠的m×n像素单元的4个属性平面输出值。在步骤1504处,可能至少部分基于a×b属性宏单元是否指示a×b像素宏单元中的至少e个像素表示输入图像中的边缘,可以确定表示亮度平面的a×b像素宏单元的1至4个亮度平面输出值。e的值可以是至少1。
在步骤1506处,可以确定用于表示第一颜色平面的a×b像素宏单元的第一颜色平面输出值、和用于表示第二颜色平面的a×b像素宏单元的第二颜色平面输出值。在步骤1508处,可以将4个属性平面输出值、1至4个亮度平面输出值、第一颜色平面输出值和第二颜色平面输出值的交错表示写入计算机可读输出介质。第一颜色平面输出值可以以小于a×b个字节来表示,并且第二颜色平面输出值可以以小于a×b个字节来表示。
在一些实施例中,确定1至4个亮度平面输出值可以涉及:(i)确定a×b属性宏单元指示a×b像素宏单元中的至少e个像素表示输入图像中的边缘,以及(ii)确定分别表示亮度平面的a×b像素宏单元中的非重叠m×n像素单元中每一个的4个亮度平面输出值。第一颜色平面输出值和第二颜色平面输出值可以分别是第一颜色平面和第二颜色平面的a×b像素宏单元的下采样版本,该下采样版本权衡表示输入图像中的边缘的像素比不表示输入图像中的边缘的像素更重要。
可替代地,确定1至4个亮度平面输出值可以涉及:(i)确定(a)a×b属性宏单元指示a×b像素宏单元中的小于e个像素表示输入图像中的边缘,和(b)a×b像素宏单元的4个非重叠m×n像素单元中至少一个中的像素值范围大于阈值;以及(ii)确定分别表示亮度平面的a×b像素宏单元中的非重叠m×n像素单元中每一个的4个亮度平面输出值。第一颜色平面输出值和第二颜色平面输出值可以分别是第一颜色平面和第二颜色平面的a×b像素宏单元的下采样版本,并且其中该下采样不考虑像素是否表示输入图像中的边缘。
在其他实施例中,确定1至4个亮度平面输出值可以涉及:(i)确定(a)a×b属性宏单元指示a×b像素宏单元中的小于e个像素表示输入图像中的边缘,和(b)a×b像素宏单元中每一个的4个非重叠m×n像素单元中每一个中的像素值范围小于或等于阈值;以及(ii)确定表示亮度平面的a×b像素宏单元的1个亮度平面输出值。
可替代地或另外地,在4个亮度平面输出值被确定时,交错表示可以以混合模式指示符作为开头,并且针对交错表示中的1至4个亮度平面输出值、第一颜色平面输出值和第二颜色平面输出值中的每一个,操作码可以被省略。另一方面,在1个亮度平面输出值被确定时,并且交错表示可以以平面模式指示符作为开头,并且针对交错表示中的1至4个亮度平面输出值、第一颜色平面输出值和第二颜色平面输出值中的每一个,操作码可以被包括。
在一些情况下,第一颜色平面输出值可以指示用于第一颜色平面的相同输出值的行程的继续或结束。类似地,第二颜色平面输出值可以指示用于第二颜色平面的相同输出值的行程的继续或结束。
14、结论
本发明并不按照本申请中所述的特定实施例来限定,这些特定实施例旨在作为各方面的示意。可以做出许多修改和改变而不偏离本发明的精神和范围,这对本领域技术人员来说是显而易见的。除了本文所列举的那些之外,本发明范围内的功能性等效方法和装置根据前面的描述将是显而易见的。这种修改和改变旨在落入所附权利要求的范围内。
关于图中和本文所讨论的梯形图、场景和流程图中的任意一个或全部,每个块和/或通信可以表示根据示例实施例的信息处理和/或信息传输。可替代的实施例可以被包括在这样的示例实施例的范围内。进一步,更多或更少的块和/或功能可以与本文所讨论的梯形图、场景和流程图中的任意一个一起使用,并且这些梯形图、场景和流程图可以部分或整体彼此结合。
表示信息处理的步骤或者块可以与可被配置为执行本文所述方法或技术的特定逻辑功能的电路对应。可替代地或者另外,表示信息处理的步骤或块可以与程序代码(包括相关数据)的模块、段或一部分对应。程序代码可以包括可由处理器执行以实施方法或技术中的特定逻辑功能或动作的一个或多个指令。程序代码和/或相关数据可以被存储在任何类型的计算机可读介质上,诸如包括磁盘驱动器、硬盘驱动器或其他存储介质之类的存储设备。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如短时间段内存储数据的像寄存器存储器、处理器缓存和/或随机存取存储器(RAM)的计算机可读介质。计算机可读介质还可以包括较长时间段内存储程序代码和/或数据的非暂时性计算机可读介质,诸如二级或持续长期储存器,例如像只读存储器(ROM)、光盘或磁盘和/或只读光盘存储器(CD-ROM)。计算机可读介质还可以是任何其他易失性或非易失性存储系统。计算机可读介质可以被认为例如是计算机可读存储介质和/或有形存储设备。
另外地,本说明书、图或权利要求中的元素、块或步骤的任意列举是为了清楚的目的。因此,这种列举不应当被解释为要求或暗示这些元素、块或步骤遵循特定布置或者以特定的顺序实施。
尽管本文已经公开各个方面和实施例,其它方面和实施例对本领域技术人员来说将是显而易见的。本文公开的各个方面和实施例是为了示意的目的,并且不旨在是限制,真实的范围和精神由所附权利要求指示。
Claims (10)
1.一种利用边缘检测和交错编码的基于单元的压缩方法,包括:
通过打印设备获取(i)a×b属性宏单元,以及(ii)输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元,其中所述a×b像素宏单元各自包含4个非重叠m×n像素单元,其中所述a×b像素宏单元中的a×b个像素具有相应的像素值,并且其中所述a×b属性宏单元的元素以一对一的方式与所述a×b像素宏单元中每一个中的相应像素相关联;
通过所述打印设备确定分别表示所述4个非重叠m×n像素单元的4个属性平面输出值;
至少部分基于所述a×b属性宏单元是否指示所述a×b像素宏单元中的至少e个像素表示所述输入图像中的边缘,通过所述打印设备确定表示所述亮度平面的所述a×b像素宏单元的1至4个亮度平面输出值,其中e的值是至少1;
通过所述打印设备确定用于表示所述第一颜色平面的所述a×b像素宏单元的第一颜色平面输出值、和用于表示所述第二颜色平面的所述a×b像素宏单元的第二颜色平面输出值;以及
通过所述打印设备将所述4个属性平面输出值、所述1至4个亮度平面输出值、所述第一颜色平面输出值和所述第二颜色平面输出值的交错表示写入计算机可读输出介质。
2.根据权利要求1所述的方法,其中确定所述1至4个亮度平面输出值包括:
确定所述a×b属性宏单元指示所述a×b像素宏单元中的至少e个像素表示所述输入图像中的边缘;以及
确定分别表示所述亮度平面的所述a×b像素宏单元中的所述非重叠m×n像素单元中每一个的4个亮度平面输出值。
3.根据权利要求2所述的方法,其中所述第一颜色平面输出值和所述第二颜色平面输出值分别是所述第一颜色平面和所述第二颜色平面的所述a×b像素宏单元的下采样版本,所述下采样版本权衡表示所述输入图像中的边缘的像素比不表示所述输入图像中的边缘的像素更重要。
4.根据权利要求1所述的方法,其中确定所述1至4个亮度平面输出值包括:
确定(i)所述a×b属性宏单元指示所述a×b像素宏单元中的小于e个像素表示所述输入图像中的边缘,以及(ii)所述a×b像素宏单元的所述4个非重叠m×n像素单元中至少一个中的像素值的范围大于阈值;以及
确定分别表示所述亮度平面的所述a×b像素宏单元中的所述非重叠m×n像素单元中每一个的4个亮度平面输出值。
5.根据权利要求4的方法,其中所述第一颜色平面输出值和所述第二颜色平面输出值分别是所述第一颜色平面和所述第二颜色平面的所述a×b像素宏单元的下采样版本,并且其中所述下采样不考虑像素是否表示所述输入图像中的边缘。
6.根据权利要求1所述的方法,其中确定所述1至4个亮度平面输出值包括:
确定(i)所述a×b属性宏单元指示所述a×b像素宏单元中的小于e个像素表示所述输入图像中的边缘,以及(ii)所述a×b像素宏单元中每一个的所述4个非重叠m×n像素单元中每一个中的像素值的范围小于或等于阈值;以及
确定表示所述亮度平面的所述a×b像素宏单元的1个亮度平面输出值。
7.根据权利要求1所述的方法,其中所述第一颜色平面输出值以小于a×b个字节被表示,并且所述第二颜色平面输出值以小于a×b个字节被表示。
8.根据权利要求1所述的方法,其中4个亮度平面输出值被确定,并且其中所述交错表示以混合模式指示符作为开头,并且其中针对所述交错表示中的所述1至4个亮度平面输出值、所述第一颜色平面输出值和所述第二颜色平面输出值中的每一个,操作码被省略。
9.根据权利要求1所述的方法,其中1个亮度平面输出值被确定,并且其中所述交错表示以平面模式指示符作为开头,并且其中针对所述交错表示中的所述1至4个亮度平面输出值、所述第一颜色平面输出值和所述第二颜色平面输出值中的每一个,操作码被包括。
10.一种打印设备,包括:
至少一个处理器;
存储器;以及
存储在所述存储器中的程序指令,所述程序指令一旦被所述至少一个处理器执行,则促使所述打印设备执行包括如下的操作:
获取(i)a×b属性宏单元,以及(ii)输入图像的亮度平面、第一颜色平面和第二颜色平面中每一个的a×b像素宏单元,其中所述a×b像素宏单元各自包含4个非重叠m×n像素单元,其中所述a×b像素宏单元中的a×b个像素具有相应的像素值,并且其中所述a×b属性宏单元中的元素以一对一的方式与所述a×b像素宏单元中每一个中的相应像素相关联;
确定分别表示所述4个非重叠m×n像素单元的4个属性平面输出值;
基于所述a×b属性宏单元是否指示所述a×b像素宏单元中的至少e个像素表示所述输入图像中的边缘,确定表示所述亮度平面的所述a×b像素宏单元的1至4个亮度平面输出值,其中e的值是至少1;
确定用于表示所述第一颜色平面的所述a×b像素宏单元的第一颜色平面输出值、和用于表示所述第二颜色平面的所述a×b像素宏单元的第二颜色平面输出值;以及
将所述4个属性平面输出值、所述1至4个亮度平面输出值、所述第一颜色平面输出值和所述第二颜色平面输出值的交错表示写入计算机可读输出介质。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/612,808 US9524126B2 (en) | 2015-02-03 | 2015-02-03 | Methods and system for printing device service restart |
US14/612,808 | 2015-02-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105847630A true CN105847630A (zh) | 2016-08-10 |
CN105847630B CN105847630B (zh) | 2018-12-07 |
Family
ID=56553106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610029933.2A Active CN105847630B (zh) | 2015-02-03 | 2016-01-18 | 用边缘检测和交错编码的基于单元的压缩方法及打印设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9524126B2 (zh) |
CN (1) | CN105847630B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483059A (zh) * | 2017-07-31 | 2017-12-15 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017001916A1 (en) * | 2015-06-30 | 2017-01-05 | Societal Innovations Ipco Limited | System and method for reacquiring a running service after restarting a configurable platform instance |
JP7208707B2 (ja) | 2017-02-17 | 2023-01-19 | キヤノン株式会社 | 情報処理装置及びその制御方法とプログラム |
US10972553B2 (en) * | 2017-09-29 | 2021-04-06 | PrinterLogic, Inc. | Software-as-a-service deployment of printing services in a local network |
JP7080787B2 (ja) * | 2018-10-04 | 2022-06-06 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3944030B2 (ja) * | 2002-08-30 | 2007-07-11 | キヤノン株式会社 | ネットワークデバイス制御装置、ネットワークデバイス制御方法および該制御方法を実現するためのプログラム |
JP2007066271A (ja) * | 2005-09-02 | 2007-03-15 | Canon Inc | 情報処理装置及びその制御方法、データ処理装置、並びにプログラム |
US7751633B1 (en) * | 2006-08-31 | 2010-07-06 | Hewlett-Packard Development Company, L.P. | Method for compressing an image |
US8797562B2 (en) * | 2008-03-05 | 2014-08-05 | Ricoh Production Print Solutions LLC | Page level recovery on print jobs for production printing systems |
KR20130037113A (ko) * | 2011-10-05 | 2013-04-15 | 삼성전자주식회사 | 화상 형성 장치의 링크 속도를 제어하는 방법 및 장치 |
-
2015
- 2015-02-03 US US14/612,808 patent/US9524126B2/en active Active
-
2016
- 2016-01-18 CN CN201610029933.2A patent/CN105847630B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483059A (zh) * | 2017-07-31 | 2017-12-15 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
CN107483059B (zh) * | 2017-07-31 | 2020-06-12 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105847630B (zh) | 2018-12-07 |
US9524126B2 (en) | 2016-12-20 |
US20160224281A1 (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10136128B2 (en) | Cell-based compression with edge detection | |
CN105847631A (zh) | 利用边缘检测的基于单元的压缩方法 | |
CN103491374B (zh) | 基于单元的数字图像压缩的方法及计算设备 | |
CN105847619B (zh) | 对数字图像的颜色平面进行压缩的方法及计算设备 | |
CN105847630B (zh) | 用边缘检测和交错编码的基于单元的压缩方法及打印设备 | |
CN105847620B (zh) | 用于对数字图像的属性平面进行压缩的方法及打印设备 | |
CN105843564B (zh) | 压缩后的属性平面与颜色平面的交错编码方法及打印设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |