一种层级词典的创建方法及图像压缩系统转让专利

申请号 : CN201380075633.2

文献号 : CN105164665B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 德让·德帕洛夫彼得·鲍尔Y·G·郭贾恩·阿莱巴赫查理斯·A·博曼

申请人 : 惠普发展公司有限责任合伙企业普杜研究基金会

摘要 :

一种创建层级词典的方法,包括使用处理器从第一图像提取多个符号;基于符号构造多个细化词典条目,细化词典条目形成细化词典;将多个细化词典条目分组成集群以形成多个细化词典条目集群;以及针对细化词典条目集群中的每个,构造多个直接词典条目,直接词典条目形成直接词典。

权利要求 :

1.一种创建层级词典的方法,包括使用处理器:从多页面二进制文档中的后续图像提取多个符号;

基于所述符号构造多个细化词典条目,所述细化词典条目形成细化词典;

通过组合根据在所述多页面二进制文档中的所述后续图像之前的多个在前的图像创建的细化词典和直接词典来构造存储的词典;

确定多个所述细化词典条目是否匹配所述存储的词典的存储的词典条目;

通过对不匹配的细化词典条目进行编码来构造直接词典;以及创建包括所述细化词典、所述直接词典和所述存储的词典的层级词典。

2.如权利要求1所述的方法,其中基于所述符号构造多个细化词典条目包括:针对多个不同符号中的每个,构造多个细化词典条目。

3.如权利要求1所述的方法,其中基于所述符号构造多个细化词典条目包括:基于所述符号的相似度将所述符号分组成多个集群,每个单独的符号集群包括相似的符号;以及针对所述符号集群中的每个,构造多个细化词典条目。

4.如权利要求1所述的方法,还包括:

使用匹配的所述存储的词典条目作为引用来对匹配的细化词典条目进行编码。

5.如权利要求1所述的方法,还包括:如果所述符号的字节数与所述直接词典、所述细化词典和所述存储的词典的字节数的组合超过阈值,则丢弃在所述存储的词典内的多个最不显著的存储的词典条目。

6.如权利要求1所述的方法,其中确定多个所述细化词典条目是否匹配所述存储的词典的存储的词典条目包括:使用阈值条件熵估计来确定所述细化词典条目之一是否匹配所述存储的词典条目之一。

7.如权利要求1所述的方法,其中层级词典创建的迭代的次数取决于所述符号的字节数和所述直接词典、所述细化词典和所述存储的词典的字节数的组合的在字节上的大小。

8.一种图像压缩系统,包括:

处理器;以及

存储器,通信地联接到所述处理器,所述存储器包括:符号提取模块,用于从多页面二进制文档中的后续图像提取多个符号;

词典构造模块,用于基于所述符号构造多个细化词典条目,所述细化词典条目形成细化词典;以及存储的词典创建模块,用于组合从多个在前的图像得到的多个所述细化词典和从多个在前的图像得到的多个直接词典,所述组合形成存储的词典,其中所述词典构造模块还通过使用所述细化词典对不匹配的细化词典条目进行编码来构造直接词典,并且其中所述细化词典、所述直接词典和所述存储的词典形成层级词典。

9.如权利要求8所述的系统,其中所述处理器使用所述符号传输或存储所述层级词典。

10.如权利要求8所述的系统,其中所述系统被提供为在网络上的服务。

11.一种计算机可读存储介质,包括与其体现的计算机可用程序代码,所述计算机可用程序代码包括:当由处理器执行时从多页面二进制文档中的后续图像提取多个符号的计算机可用程序代码;

当由处理器执行时基于所述符号构造多个细化词典条目的计算机可用程序代码,所述细化词典条目形成细化词典;

当由处理器执行时通过组合根据在所述多页面二进制文档中的所述后续图像之前的多个在前的图像创建的细化词典和直接词典来构造存储的词典的计算机可用程序代码;

当由处理器执行时确定多个所述细化词典条目是否匹配所述存储的词典的存储的词典条目的计算机可用程序代码;

当由处理器执行时通过对不匹配的细化词典条目进行编码来构造直接词典的计算机可用程序代码;以及当由处理器执行时创建包括所述直接词典、所述细化词典和所述存储的词典的层级词典的计算机可用程序代码。

12.如权利要求11所述的计算机可读存储介质,还包括:当由处理器执行时通过使用匹配的所述存储的词典条目作为引用对匹配的词典条目进行编码的计算机可用程序代码。

13.如权利要求11所述的计算机可读存储介质,还包括当由处理器执行时对所述层级词典和所述符号进行解码以重新创建第一图像和所述后续图像的无损版本或有损版本的计算机可用程序代码。

说明书 :

一种层级词典的创建方法及图像压缩系统

技术领域

[0001] 本发明涉及图像压缩领域,更具体地,涉及一种创建层级词典的方法、图像压缩系统和计算机可读存储介质。

背景技术

[0002] 随着在计算设备之间传输的数据的量和在那些计算设备上的数据的存储量的指数增加,图像压缩是用于减少代表图像的数据的量的技术。图像压缩的使用有助于存储图像所需的空间或计算资源的数量以及发送图像所需的带宽的配给。

发明内容

[0003] 在一实施例中,一种创建层级词典的方法,包括使用处理器:
[0004] 从多页面二进制文档中的后续图像提取多个符号;
[0005] 基于所述符号构造多个细化词典条目,所述细化词典条目形成细化词典;
[0006] 通过组合根据在所述多页面二进制文档中的所述后续图像之前的多个在前的图像创建的细化词典和直接词典来构造存储的词典;
[0007] 确定多个所述细化词典条目是否匹配所述存储的词典的存储的词典条目;
[0008] 通过对不匹配的细化词典条目进行编码来构造直接词典;以及
[0009] 创建包括所述细化词典、所述直接词典和所述存储的词典的层级词典。
[0010] 在另一实施例中,一种图像压缩系统,包括:
[0011] 处理器;以及
[0012] 存储器,通信地联接到所述处理器,所述存储器包括:
[0013] 符号提取模块,用于从多页面二进制文档中的后续图像提取多个符号;
[0014] 词典构造模块,用于基于所述符号构造多个细化词典条目,所述细化词典条目形成细化词典;以及
[0015] 存储的词典创建模块,用于组合从多个在前的图像得到的多个所述细化词典和从多个在前的图像得到的多个直接词典,所述组合形成存储的词典,
[0016] 其中所述词典构造模块还通过使用所述细化词典对不匹配的细化词典条目进行编码来构造直接词典,并且
[0017] 其中所述细化词典、所述直接词典和所述存储的词典形成层级词典。
[0018] 在再一实施例中,一种计算机可读存储介质,包括与其体现的计算机可用程序代码,所述计算机可用程序代码包括:
[0019] 当由处理器执行时从多页面二进制文档中的后续图像提取多个符号的计算机可用程序代码;
[0020] 当由处理器执行时基于所述符号构造多个细化词典条目的计算机可用程序代码,所述细化词典条目形成细化词典;
[0021] 当由处理器执行时通过组合根据在所述多页面二进制文档中的所述后续图像之前的多个在前的图像创建的细化词典和直接词典来构造存储的词典的计算机可用程序代码;
[0022] 当由处理器执行时确定多个所述细化词典条目是否匹配所述存储的词典的存储的词典条目的计算机可用程序代码;
[0023] 当由处理器执行时通过对不匹配的细化词典条目进行编码来构造直接词典的计算机可用程序代码;以及
[0024] 当由处理器执行时创建包括所述直接词典、所述细化词典和所述存储的词典的层级词典的计算机可用程序代码。

附图说明

[0025] 附图示出本文所述的原理的各种示例且是说明书的一部分。所示示例仅为了说明而给出,且并不限制权利要求的范围。
[0026] 图1是根据本文所述的原理的一个示例的用于创建在二进制文档图像压缩中使用的多个层级词典的数据处理系统的图。
[0027] 图2A是示出根据本文所述的原理的一个示例的无损层级词典创建方法的流程图。
[0028] 图2B是示出根据本文所述的原理的一个示例的有损层级词典创建方法的流程图。
[0029] 图3是根据本文所述的原理的一个示例的层级词典的方框图。
[0030] 图4A是示出根据本文所述的原理的一个示例的多页面文档的连续页面的无损层级词典创建方法的流程图。
[0031] 图4B是示出根据本文所述的原理的一个示例的多页面文档的连续页面的有损层级词典创建方法的流程图。
[0032] 图5是根据本文所述的原理的一个示例的多页面文档的连续页面的层级词典的方框图。
[0033] 图6是根据本文所述的原理的一个示例的描绘通过多种压缩方法相对于 IS-WXOR的压缩比提高的曲线图。
[0034] 图7A和图7B是根据本文所述的原理的一个示例的描绘通过多种词典设计方法得到的词典条目数的曲线图。
[0035] 图8是根据本文所述的原理的一个示例的描绘使用三种词典压缩方法的比特率的比较的曲线图。
[0036] 在全部附图中,相同的参考数字标示类似的但不一定相同的元件。

具体实施方式

[0037] 二进制文档图像压缩用于文档扫描、存储和传输。用户常常希望压缩单页面和多页面二进制文档图像。由于图像可从同一文档源的连续页面被处理,在多页面二进制文档内的图像当中有信息冗余的可能性较高。本文描述了图像当中的这种类型的信息冗余的利用,以便提高多页面二进制文档图像压缩的压缩比。
[0038] 本文描述了多页面二进制文档图像压缩的动态层级词典(HD)设计。可结合本系统和方法使用任何数量的图像压缩方法。一个这样的方法是由联合二值图像专家组开发的JBIG2图像压缩标准利用的方法。JBIG2标准可用于二进制文档图像压缩,因为它比其它传真编码标准实现高得多的压缩比。然而,虽然将在描述本系统和方法时使用JBIG2,可结合本动态HD使用任何图像压缩方法。
[0039] HD方法通过使用三种方法来利用多页面二进制文档的图像当中的信息冗余。首先,层级词典被构建以便每个页面保持更多的信息用于未来使用。其次,层级词典在存储器中被动态地更新以在内存约束下保持尽可能多的信息。第三,条件熵估计技术更有效地利用所保存的信息。在本文呈现的实验结果证明,与其它技术相比,通过HD 技术的压缩比提高为近似14%。
[0040] 如在本说明书中和在所附权利要求中使用的,术语“图像”应该被广泛地理解为文档的页面的任何二进制表示。文档可包括多个页面,且因此可包括相等数量的图像。
[0041] 此外,如在本说明书中和在所附权利要求中使用的,术语“多个”或类似语言应该被广泛地理解为包括1到无限的任何正数;零不应该理解为数字,而应该理解为没有数字。
[0042] 在下面的描述中,为了说明的目的,阐述了很多特定的细节,以便提供对本系统和方法的彻底理解。然而对本领域技术人员将明显,可在没有这些特定细节的情况下实施本装置、系统和方法。在说明书中对“示例”或类似语言的提及意指关于那个示例描述的特定的特征、结构或特性如所描述的被包括,但可以不包括在其它示例中。
[0043] 现在转到附图,图1是根据本文所述的原理的一个示例的用于创建在二进制文档图像压缩中使用的多个层级词典的数据处理系统100的图。可在任何数据处理场景中利用数据处理系统100,数据处理场景包括例如像软件即服务(SaaS)、平台即服务 (PaaS)、基础设施即服务(IaaS)、应用程序接口(API)即服务(APIaas)、其它形式的网络服务或其组合那样的云计算服务。此外,可在公共云网络、私有云网络、混合云网络、其它形式的网络或其组合中使用数据处理系统100。在一个示例中,由数据处理系统100提供的方法由例如第三方提供为网络上的服务。在另一示例中,由数据处理系统100提供的方法由本地管理员执行。
[0044] 此外,可在单个计算设备内利用数据处理系统100。在该数据处理场景中,单个计算设备可利用层级词典和本文所述的其它相关方法来扫描、存储和/或传输单页面或多页面文档的压缩版本。
[0045] 为了实现其期望功能,数据处理系统100包括各种硬件部件。在这些硬件部件当中的可以是多个处理器102、多个数据存储设备104、多个外围设备适配器106和多个网络适配器108。可通过使用多个总线和/或网络连接来互连这些硬件部件。在一个示例中,可经由总线107通信地联接处理器102、数据存储设备104、外围设备适配器 106和网络适配器108。
[0046] 处理器102可包括从数据存储设备104检索可执行代码并执行可执行代码的硬件体系结构。根据本文所述的本说明书的方法,可执行代码在由处理器102执行时可促使处理器102至少实现层级词典创建和二进制文档图像压缩的功能。在执行代码的过程中,处理器102可从多个其余硬件单元接收输入并向多个其余硬件单元提供输出。
[0047] 数据存储设备104可存储数据,例如由处理器102或其它处理设备执行的可执行程序代码。如将讨论的,数据存储设备104可具体存储处理器102执行来实现至少本文所述的功能的多个应用程序。
[0048] 数据存储设备104可包括各种类型的存储器模块,包括易失性存储器和非易失性存储器。例如,本示例的数据存储设备104包括随机存取存储器(RAM)111、只读存储器(ROM)112和硬盘驱动器(HDD)存储器113。也可利用很多其它类型的存储器,且本说明书设想如可适合本文所述的原理的特定应用的在数据存储设备104中的很多不同类型的存储器的使用。在某些示例中,可针对不同的数据存储需要使用在数据存储设备104中的不同类型的存储器。例如,在某些示例中,处理器102可从只读存储器(ROM)112引导,在硬盘驱动器(HDD)存储器113中维持非易失性存储并执行存储在随机存取存储器(RAM)111中的程序代码。
[0049] 通常,数据存储设备104可包括计算机可读介质、计算机可读存储介质或非瞬态计算机可读介质等。例如,数据存储设备104可以是但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备或前述项的任何适当组合。计算机可读存储介质的更具体的示例可包括例如下列项:具有多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM 或闪存)、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备或前述项的任何适当的组合。在该文档的上下文中,计算机可读存储介质可以是可包含或存储由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序的任何有形介质。在另一示例中,计算机可读存储介质可以是可包含或存储由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序的任何非瞬态介质。
[0050] 在数据处理系统100中的硬件适配器106使处理器102能够与在数据处理系统100 外部和内部的各种其它硬件元件接口。例如,外围设备适配器106可提供像显示设备 110那样的输入/输出设备的接口或访问像外部存储设备120那样的其它外部设备。可提供显示设备110以允许用户与数据处理系统100交互并实现数据处理系统100的功能。外围设备适配器106也可创建处理器102与打印机、显示设备110或其它媒体输出设备之间的接口。网络适配器108可提供在例如网络内的其它计算设备的接口,从而实现数据处理系统100与位于网络内的其它设备之间的数据传输。
[0051] 数据处理系统100还包括在多个层级词典的创建和二进制文档图像压缩中使用的多个模块。在数据处理系统100内的各种模块可被单独地执行。在该示例中,各种模块可被存储为单独的计算机程序产品。在另一示例中,在数据处理系统100内的各种模块可在多个计算机程序产品内组合,每个计算机程序产品包括多个模块。
[0052] 数据处理系统100可包括符号提取模块140,当由处理器102执行时,符号提取模块140从在单页面或多页面二进制文档中的多个图像提取多个符号。在一个示例中,符号提取模块140提取在大约300dpi下是大约30×20像素图像的文本的多个单独符号。在一个示例中,符号提取模块140被存储在数据处理系统100的数据存储设备104 内,并且是处理器102可访问和可执行的。在另一示例中,符号提取模块140被存储在例如服务器设备上并在服务器设备上经由云计算服务为了如上所述的数据处理系统 100的用户的利益而被执行。
[0053] 数据处理系统100还可包括编码模块142,当由处理器102执行时,编码模块142 对直接词典和细化词典进行编码,以及对符号进行编码。在一个示例中,编码模块142 被存储在数据处理系统100的数据存储设备104内,并由处理器102可访问和可执行。在另一示例中,编码模块142被存储在例如服务器设备上并在服务器设备上通过云计算服务为了如上所述的数据处理系统100的用户的利益而被执行。
[0054] 数据处理系统100还可包括存储的词典创建模块144,当由处理器102执行时,存储的词典创建模块144根据在前的页面创建包括所有词典的并集的存储的词典。在一个示例中,存储的词典创建模块144被存储在数据处理系统100的数据存储设备104 内,并由处理器102可访问和可执行。在另一示例中,存储的词典创建模块144被存储在例如服务器设备上并在服务器设备上通过云计算服务为了如上所述的数据处理系统100的用户的利益而被执行。
[0055] 数据处理系统100还可包括词典构造模块146,当由处理器102执行时,词典构造模块146构造多个细化词典和直接词典。在一个示例中,词典构造模块146被存储在数据处理系统100的数据存储设备104内,并由处理器102可访问和可执行。在另一示例中,词典构造模块146被存储在例如服务器设备上并在服务器设备上通过云计算服务为了如上所述的数据处理系统100的用户的利益而被执行。
[0056] 如上面提到的,JBIG2压缩标准利用二进制图像压缩的有效方法。可结合本系统和方法使用的其它图像压缩方法可包括例如由ITU电信标准化部门(ITU-T)确定的 T.4、T.6和T.82(即JBIG1)或由ITU-T、国际电工技术委员会(IEC)或国际标准化组织(ISO)等标准化的其它图像压缩方法。JBIG2压缩的高压缩比来自其词典符号编码方法。JBIG2编码器可首先将文档分成连接的组成部分或符号。文档可以是单页面文档或多页面文档。此外,文档可包括文本、艺术线条、表格和图形元素。JBIG2编码器通过对来自图像的符号的子集进行编码来创建词典。所有其余符号然后使用词典条目作为引用被编码。
[0057] 存在两种使用JBIG2编码器来压缩多页面文档图像的方法。第一种方法包括单独和独立地压缩每个页面。这可被称为IS方法。IS方法不利用在文档内的多个页面当中的信息冗余。因此,JBIG2的压缩比实质上低于本系统和方法所提供的压缩比,且可实质上被提高。
[0058] 使用JBIG2编码器来压缩多页面文档图像的另一方法是提前加载所有页面并将所有页面压缩在一起。这种方法可充分利用在页面当中的信息冗余,但不切实际,因为其消耗相对太多的内存。在一些情况下,由于内存约束,JBIG2编码器只加载一个页面或甚至一个页面的一部分来压缩,且直到压缩完成才加载下一页面。以这种方式,JBIG2压缩方法不利用在不同页面当中的信息冗余,使得从内存消耗方面来说变得不实际。
[0059] 本文描述了多页面二进制文档图像压缩的动态层级词典设计方法(HD)。本系统和方法描述在给定内存约束下如何提高编码多页面图像的压缩比。本系统和方法使用层级词典来针对多页面文档内的多个页面中的每个构造附加的词典条目。此外,本公开描述动态词典更新策略,其在内存约束被满足时丢弃多个“最不显著的”词典条目。进一步地,本系统和方法合并“条件熵”估计策略以测量两个词典条目之间的信息冗余。下面描述的实验结果证明,HD方法相对于以前的压缩方法产生较高的压缩比。
[0060] 包括JBIG2压缩方法的一些压缩方法允许保留词典条目但不是来自多页面文档中的在前的页面的符号,用于未来使用。因此,在当前页面被编码之后,存储器设备可保留更多的词典条目。这些附加的词典条目可用于对在多页面文档内的多个后续页面进行编码,且因此可对后面的页面实现较高的压缩比。现在将结合图2A、图2B和图 3更详细地描述单页面的更多词典条目的构造。
[0061] 图2A是示出根据本文所述的原理的一个示例的无损层级词典创建方法的流程图。图2B是示出根据本文所述的原理的一个示例的有损层级词典创建方法的流程图。图3 是根据本文所述的原理的一个示例的层级词典300的方框图。在单个页面只有一个词典的构造中,在词典内可包括过多的词典条目,这又会降低单个页面的压缩比。这是因为相对大量的位将被用于对词典本身进行编码。本层级词典结构可通过产生直接词典来对细化词典进行编码从而产生大词典大小,但具有小文件大小惩罚。
[0062] 为了增加词典条目数,同时仍然提供相对较小的文件大小惩罚,使用本层级词典技术。本层级词典技术通过创建第一词典来对第二词典进行编码从而实现这个目的,如在图2A、图2B和图3中描绘的。再次,图2A是示出根据本文所述的原理的一个示例的无损层级词典创建方法的流程图。如在图2A中描绘的,执行符号提取模块140 的处理器(图1,102)从第一图像提取(块201)多个符号(图3,306)。
[0063] 执行编码模块(图1,142)的处理器对可被称为直接词典(图3,302)的第一词典进行编码。在一个示例中,直接词典(图3,302)使用在JBIG2标准中描述的直接编码模式被编码。执行编码模块(图1,142)的处理器(图1,102)使用在JBIG2 标准中描述的细化编码模式并使用直接词典(图3,302)作为引用对被称为细化词典 (图3,304)的第二词典进行编码。细化词典(图3,304)非常有效地压缩,因为细化编码使用来自直接词典(图3,302)的引用符号来对细化词典(图3,304)中的每个新符号进行编码。可接着使用细化词典(图3,304)作为引用对在图像中的所有符号(图3,306)进行编码。在一个示例中,直接词典(图3,302)相对小于细化词典 (图3,304)。
[0064] 在一个示例中,任何数量的细化词典可被编码。在该示例中且继续上面的描述,可使用在JBIG2标准中描述的细化编码模式并使用细化词典(图3,304)作为引用对第二细化词典进行编码。同样,可使用在JBIG2标准中描述的细化编码模式并使用第二细化词典作为引用对第三细化词典进行编码。因此,即使在图3中只描绘单个直接词典(图3,302)和单个细化词典(图3,304),对层级词典进行编码的这个过程也可被执行任何次数的迭代以得到任何数量的层级词典(图3,302,304)。
[0065] 为了构造图3的无损层级词典300,可使用自底向上过程。图2A的方法可通过从第一图像或页面提取(块201)多个符号(图3,306)开始。符号(图3,306)的提取可由执行符号提取模块(图1,140)的处理器(图1,102)执行。执行词典构造模块(图1,146)的处理器(图1,102)通过复制符号的位图来针对多个不同的符号中的每个构造(块202)多个细化词典条目。细化词典条目形成细化词典(图2,304)。通过使用这个策略,所有符号的位图信息可保持在存储器中。
[0066] 处理器(图1,102)将类似的细化词典条目分组(块203)成集群,且每个集群的一个代表性细化词典条目被创建。代表性细化词典条目是形成直接词典的词典条目。因此,执行词典构造模块(图1,146)的处理器(图1,102)构造(块204)单独的细化词典条目集群中的每个的多个直接词典条目。在一个示例中,为了执行聚类,可使用基于“条件熵”估计的词典索引和设计方法。该基于条件熵估计的词典索引和设计方法在上面被提到过且将在下面更详细地被描述。
[0067] 图2A描绘无损层级词典创建方法。如上面提到的,图2B是示出根据本文所述的原理的一个示例的有损层级词典创建方法的流程图。为了构造图3的有损层级词典 300,可再次使用自底向上过程。图2B的方法可通过从第一图像或页面提取(块211) 多个符号(图3,306)开始。符号(图3,306)的提取可由执行符号提取模块(图1,140)的处理器(图1,102)执行。处理器(图1,102)基于符号(图3,306)的相似度将符号(图3,306)分组(块212)成多个集群,每个单独的符号集群包括相似的符号(图3,306)。
[0068] 执行词典构造模块(图1,146)的处理器(图1,102)针对符号集群中的每个构造(块213)多个细化词典条目。处理器(图1,102)将类似的细化词典条目分组(块 214)成集群,且针对集群中的每个创建一个代表性细化词典条目。代表性细化词典条目是形成直接词典的词典条目。因此,执行词典构造模块(图1,146)的处理器(图1,102)针对单独的细化词典条目集群中的每个构造(块215)多个直接词典条目。再次,在一个示例中,为了执行聚类,可使用基于“条件熵”估计的词典索引和设计方法。该基于条件熵估计的词典索引和设计方法将在下面更详细地被描述。
[0069] 现在将结合图4A、图4B和图5描述对文档的连续页面的编码。图4A是示出根据本文所述的原理的一个示例的多页面文档的连续页面的无损层级词典创建方法的流程图。图4B是示出根据本文所述的原理的一个示例的多页面文档的连续页面的有损层级词典创建方法的流程图。图5是根据本文所述的原理的一个示例的多页面文档的连续页面的层级词典500的方框图。在一些情况下,多个页面可存在于单个文档内。在这些多页面二进制文档中,在多页面文档内的图像或页面当中有信息冗余的可能性较高,其中在图像当中的这种类型的信息冗余的利用提高多页面二进制文档图像压缩的压缩比。因此,对于在多页面文档内的连续页面,被表示为 的存储的词典(图5,501)用于第k页,其中k≠1。图4A的无损层级词典创建方法可由处理器(图1,102) 执行符号提取模块140开始,符号提取模块140从多页面文档的第k页提取(块401) 多个符号(图5,506)。再次,多页面文档的第k页不是多页面文档的第一页,而是其后的任何数量的后续页面。执行词典构造模块(图1,146)的处理器(图
1,102) 针对多个不同符号中的每个构造(块402)多个细化词典条目以形成细化词典(图5,
504)。
[0070] 通过组合从在多页面文档内的在前的页面创建的细化词典(图5,504)和直接词典(图5,502)由执行存储的词典创建模块(图1,144)的处理器(图1,102)创建(块403)存储的词典(图5,501)。当没有在系统100内强加的内存约束时,存储的词典(图5,501) 包括来自在前的页面的所有词典的并集。存储的词典(图5, 501)是来自多页面文档的在前的页面的所有词典的削减的并集。下面将更详细地描述内存约束被强加在系统(图1,100)上的情况。
[0071] 因此,细化词典(图5,504) 由执行编码模块(图1,142)的处理器形成(块 403),并包括在第k页中的每个唯一的符号作为在细化词典(图5,504)中的条目。图4A的方法可通过确定(块404)是否在存储的词典(图5,501)中找到细化词典条目的匹配来继续。对于给定细化词典条目中的每个,可在存储的词典 中找到(块 404,确定“是”)匹配以有效地对细化词典进行编码(块405)。执行编码模块(图1,142)的处理器(图1,102)使用匹配的存储的词典条目作为引用来进行编码(块 405)。在大部分情况下,在细化词典(图5,504)中的条目将具有在存储的词典(图5,501)中的良好匹配。因此,在这些情况下,细化词典(图5,504)被非常有效地编码。
[0072] 然而,在一些实例中,可能存在不具有在存储的词典(图5,501)中的良好匹配 (块404,确定“否”)的细化词典条目。为了对这些不匹配的细化词典条目进行编码,执行编码模块142的处理器(图1,102)形成(块406)由Dk表示的新的直接词典(图5,502)。如上面类似地描述的,使用基于条件熵估计的词典索引和设计方法来构建直接词典(图5,502)。基于条件熵估计的词典索引和设计方法有助于确定是否可在存储的词典(图5,501)中找到给定细化词典条目的良好匹配。因此,在细化词典(图5,504)中的一些条目使用存储的词典(图5,
501)被编码,而其余部分使用直接词典(图5,502)被编码。在多页面文档的第k页的图像中的所有符号(图5,506)可接着使用细化词典(图5,504)作为引用被编码。
[0073] 上面的示例过程可通过使用处理器确定(块407)在多页面文档中是否有待分析的后续页面来继续。如果在文档中有待分析的后续页面(块407,确定“是”),则过程可循环回到块401,且可针对新的后续页面重新创建存储的词典(图5,501)。如果在文档中没有待分析的后续页面(块407,确定“否”),则过程可终止。
[0074] 已描述了图4A的无损层级词典创建方法,现在将描述有损层级词典创建方法。再次,图4B是示出根据本文所述的原理的一个示例的多页面文档的连续页面的有损层级词典创建方法的流程图。
[0075] 图4A的有损层级词典创建方法可由执行符号提取模块140的处理器(图1,102) 从多页面文档的第k页提取(块411)多个符号(图5,506)而开始。再次,多页面文档的第k页不是多页文档的第一页,而是其后的任何数量的后续页面。处理器(图1,102)基于相似度将符号(图5,506)分组(块412)成多个集群。因而产生的符号集群每个单独地包括相似的符号。执行词典构造模块(图1,146)的处理器(图1,102)针对符号集群中的每个构造(块413)多个细化词典条目以形成细化词典(图5,504)。
[0076] 通过组合从在多页面文档内的在前的页面创建的细化词典(图5,504)和直接词典(图5,502)由执行存储词典创建模块(图1,144)的处理器(图1,102)创建存储的词典(图5,501)。再次,当没有在系统100内强加的内存约束时,存储的词典(图5,501) 包括来自在前的页面的所有词典的并集。存储的词典(图5,501) 是来自多页面文档的在前的页面的所有词典的削减的并集。下面将更详细地描述内存约束被强加在系统(图1,100)上的情况。
[0077] 图4B的方法可通过确定(块415)是否在存储的词典(图5,501)中找到细化词典条目的匹配来继续。对于给定细化词典条目中的每个,可在存储的词典 中找到 (块415,确定“是”)匹配以有效地对细化词典进行编码(块416)。执行编码模块(图1,142)的处理器(图1,102)使用匹配的存储的词典条目作为引用来编码(块 416)。在大部分情况下,在细化词典(图5,504)中的条目将具有在存储的词典(图5,501)中的良好匹配。因此,在这些情况下,细化词典(图5,504)被非常有效地编码。
[0078] 然而,在一些实例中,可能存在不具有在存储的词典(图5,501)中的良好匹配 (块415,确定“否”)的细化词典条目。为了对这些不匹配的细化词典条目进行编码,执行编码模块142的处理器(图1,102)形成(块417)由Dk表示的新的直接词典(图5,502)。如上面类似地描述的,使用基于条件熵估计的词典索引和设计方法来构建直接词典(图5,502)。基于条件熵估计的词典索引和设计方法有助于确定是否可在存储的词典(图5,501)中找到给定细化词典条目的良好匹配。因此,在细化词典(图5,504)中的一些条目使用存储的词典(图5,
501)被编码,而其余部分使用直接词典(图5,502)被编码。在多页面文档的第k页的图像中的所有符号(图5,506)可接着使用细化词典(图5,504)作为引用被编码。
[0079] 上面的示例过程可通过使用处理器确定(块418)在多页面文档中是否有待分析的后续页面来继续。如果在文档中有待分析的后续页面(块418,确定“是”),则过程可循环回到块401,且可为新的后续页面重新创建存储的词典(图5,501)。如果在文档中没有待分析的后续页面(块418,确定“否”),则过程可终止。
[0080] 确定是否可在存储的词典(图5,501)中找到给定细化词典条目的良好匹配的标准基于条件熵估计(CEE)。令 表示在 中的第j个条目并且 表示在 中的第 i个条目。通过下式找到在 中的 的最佳匹配:
[0081]
[0082]
[0083] 其中 是给定 时 的条件熵的估计。如果给定d*时的 的条件熵小于预定阈值TR,
[0084]
[0085] 使用存储的词典条目d*作为引用被编码。否则, 不使用存储的词典(图5,501)被编码。因此,如果
[0086]
[0087] 则创建 的新的直接词典条目。在一个示例中,条件熵 可以用其它函数例如XOR或WXOR代替,以便以较低的压缩比为代价减小计算成本。
[0088] 为了使上述方法变得实际,可维持存储的词典(图5,501)的大小,以便不增长到超出可用内存大小,如上面提到的。在内存约束被强加在系统100内的场景中使用的方法是每当第k页的所有词典(图5,501,502,504)的内存大小大于1Mb时丢弃一些存储的词典条目。阈值被选择为1Mb,因为标准是至少具有用于词典(图5, 501,502,504)的1Mb存储量的解码器。然而,所有词典(图5,501,502,504) 的内存大小的任何阈值可被使用,且可以是用户可定义的。
[0089] 在一个示例中,第k页的所有词典(图5,501,502,504)的词典的内存大小是 Dk、和 的内存大小的总和,其可使用下式被计算。令MSD是符号词典的存储器尺寸(以字节为单位)并等于固定分量加上每符号分量。固定分量等于2^(直接编码模板大小_加2^(细化编码模板大小)+8K。每符号分量等于下式:
[0090]
[0091] 其中w(i)是符号宽度,而h(i)是符号高度。每符号开销32字节。
[0092] 在上面的示例中,待丢弃的条目是满足下面的两个条件的存储的词典条目  (1)条目 不被 中的任何条目引用;以及(2)条目 是“最不显著的”,最不显著的被定义为:
[0093]
[0094] 其中 是不同于 并属于Dk、 或 的任何词典条目。函数dXOR计算在两个词典条目之间的汉明距离。类似的词典条目可具有更多共同的信息。因此,通过使用上述策略,在内存大小约束下尽可能多的总信息被维持在内存中。
[0095] 上述方法可通过传输或存储层级词典300、500连同符号306、506用于以后处理来继续。该以后处理可包括层级词典300、500和符号306、506的解码,以便重新创建在文档内的一个或多个原始图像的无损或有损版本。
[0096] 图2的方法的示例可由下面的实验结果给出。测试图像image01.pbm被压缩,该测试图像在300dpi下被扫描并具有3275×2525个像素的大小。基于XOR的一遍扫描算法(OP-XOR)用于将image01.pbm压缩15次,每次具有不同的词典大小。通过规定OP-XOR的不同参数值来得到不同的词典大小。当针对在image01.pbm中的每个不同的符号创建一个词典条目时,词典条目数在2208被最大化。在这种情况下,位流文件大小是44.75KB。
[0097] 通过复制符号的位图中的每个来针对每个不同的符号构造在细化词典中的一个条目。所有符号的位图信息可存储在数据存储设备例如数据存储设备104或数据处理系统100的外部存储设备120中。在细化词典中的词典条目作为符号被处理,且细化词典条目的直接词典使用OP-XOR、OP-WXOR或条件熵估计(CEE)距离测量方法被构造。
[0098] 在图2中示出使用层级结构来对image01.pbm进行编码的结果。使用层级OPXOR 算法,得到2208个词典条目,位流文件大小是31:20KB,其比通过没有层级结构的 OP-XOR得到的44:75KB小得多。使用层级CEE算法,也得到2208个词典条目,且位流文件大小是26:85KB。与没有层级结构的CEE算法的情况相比,以1:45KB文件大小增加为代价得到多393:96%的词典条目。
[0099] 然而,调节OP-XOR的参数,确定在438个条目的词典的情况下,位流文件大小是仅仅28.11KB。下面说明的条件熵估计(CEE)距离测量用于压缩image01.pbm。虽然CEE距离测量不需要所规定的参数并产生较小的位流文件大小25.40KB,CEE距离测量只产生447个词典条目,其比预期的2208个词典条目少得多。因此,在不使用上面描述的层级词典方法的情况下,以几乎使文件大小加倍为代价得到大词典。使用层级词典方法,得到具有小文件大小惩罚的大词典。
[0100] 现在将描述本动态层级词典(HD)方法与其它方法的比较,以便在实验上展示本系统和方法的优点。在下面的实验中的DSC方法基于在符号和词典条目之间的相异度测量的加权汉明距离(WXOR)。对于本动态HD方法,使用两个版本的DSC方法。第一个版本在上面被描述,并可被称为DH-CEE,因为其使用条件熵估计(CEE)符号距离。结合这些实验使用的这两个DSC方法的第二个版本用WXOR相异度测量来代替CEE相异度测量,以便看到只归因于本动态层级词典方法的益处。这种方法可被称为HD-WXOR方法。
[0101] 测试图像组可被称为EEPaper,并包含从同一文档的连续页面扫描的9个图像。所有这些图像是300dpi,并具有3275×2525个像素。测试图像主要包括文本,但一些图像还包括艺术线条、表格和图形元素。然而,在EEPapter内没有一个测试图像包括半色调。JBIG2无损文本模式用于所有实验。词典的阈值总内存使用被限制到小于 1MB。除非另外陈述,所有方法的参数被调节,使得每个方法实现它们的最佳压缩比。
[0102] 在下面的实验中,整个测试图像组被压缩。图6是根据本文所述的原理的一个示例的描绘通过多种压缩方法的相对于IS-WXOR的压缩比提高的曲线图。图6描绘 DH-CEE方法与可选的方法的比较。在图6的曲线图中,一切与使用WXOR相异度测量(IS-WXOR)构造的独立和静态词典相关。注意,DH-CEE方法对于所有页面具有最高压缩比。对于整个测试图像组,DH-CEE与IS-WXOR相比将压缩比提高了28%,且与DSC相比提高了14%。
[0103] DH-CEE相对于DSC压缩比提高的一个原因是DH-CEE针对每个页面产生大得多的词典。图7A和图7B是根据本文所述的原理的一个示例的描绘通过多种词典设计方法得到的词典条目数的曲线图。如在图7A和图7B中描绘的,较大的词典可以更有效地对文档或图像进行编码。由DH方法产生的大词典有效地对文档进行编码。对于 DH-CEE和DH-WXOR,由于内存约束,在9页测试文档的第7页之后,动态更新控制它们的词典的大小。然而,在使用DH-CEE时,只需要小开销来对大词典进行编码。用下面的示例证明大词典的有效编码。
[0104] 在下一示例中,DH方法被表现为允许使用下面的实验以相对小的开销编码大词典。DH-CEE和DSC方法用于创建在EEPaper中的第一页的大词典,且这些大词典根据其用来对其词典进行编码的位数被比较。
[0105] 由DH-CEE方法产生的细化词典在大小上是大的,因为DH-CEE针对页面中的不同的符号中的每个创建一个细化词典条目。对于DSC方法,其参数被调节以得到与使用DH-CEE的细化词典一样大的单个词典。图8是根据本文所述的原理的一个示例的描绘使用三种词典压缩方法的比特率的比较的曲线图。如在图8中描绘的,通过使用 DH-CEE得到的位流文件大小明显小于使用DSC得到的位流文件大小。这是由于 DH-CEE的层级结构。DH-CEE使用CEE-ID建立直接词典以有效地对细化词典进行编码。也注意,DH-CEE导致最小编码词典。
[0106] 通过DH-CEE的压缩比提高也来自条件熵估计(CEE)。为了比较,探讨DH-WXOR 方法,该方法用WXOR代替CEE。首先,上面结合图2的方法描述的单个页面实验使用DH-WXOR方法被重复。通过使用DH-WXOR和DH-CEE得到的细化词典是相同的,因为它们使用相同的方法来创建它们的细化词典。如在图8中所示的,由于层级词典设计,通过使用DH-WXOR得到的比特率小于使用DSC得到的比特率。另一方面,使用DH-WXOR的比特率大于DH-CEE的比特率。这是因为在DH-CEE中使用的CEE比在DH-WXOR中的WXOR提供词典条目之间的信息冗余的更好测量。因此,DH-CEE创建更好的直接词典来对细化词典进行编码。
[0107] 上面结合使用DH-WXOR方法的EEPaper描述的多页面实验被重复。如图6所示,与DSC相比,DH-WXOR将压缩比提高了11%。该提高来自由在图7B中描绘的 DH-WXOR的动态层级设计产生的大词典。另一方面,使用DH-WXOR的压缩比比 DH-CEE的压缩比小大约4%。这是因为,基于CEE,DH-CEE比DH-WXOR方法创建更好的直接词典并选择更好的存储的词典条目以结合等式1对细化词典进行编码。
[0108] 注意,所有的上述实验都是在1MB内存约束下进行的。如图7A所示,从第7页被编码以后,继续进行的动态更新丢弃存储的词典条目。如果内存约束被解除,则不会有词典条目被丢弃,且额外的内存将被消耗。然而,根据上面的实验结果,额外的内存使用只将压缩比提高小于1%。这是因为动态更新通过选择最不显著的存储的词典条目来最小化由丢弃的词典条目引起的信息损失。
[0109] 在本文参考根据本文所述的原理的示例的方法、装置(系统)和计算机程序产品的流程图说明和/或方框图描述了本系统和方法的方面。流程图说明和方框图的每个块以及在流程图说明和方框图中的块的组合可由计算机可用程序代码实现。可将计算机可用程序代码提供到通用计算机、专用计算机或其它可编程数据处理装置的处理器来产生机器,使得计算机可用程序代码在经由例如数据处理系统100的处理器102或其它可编程数据处理装置执行时实现一个或多个流程图和/或方框图块中规定的功能或动作。在一个示例中,计算机可用程序代码可体现在计算机可读存储介质内;计算机可读存储介质是计算机程序产品的一部分。在一个示例中,计算机可读存储介质是非瞬态计算机可读介质。
[0110] 说明书和附图描述用于创建用于图像压缩的层级词典的系统和方法。方法可包括:从第一图像提取多个符号;基于符号构造多个细化词典条目,细化词典条目形成细化词典;将多个细化词典条目分组成集群以形成多个细化词典条目集群;以及针对细化词典条目集群中的每个,构造多个直接词典条目,直接词典条目形成直接词典。这些系统和方法可具有多个优点,包括:(1)创建无损系统,其中在压缩和重构中没有信息丢失;(2)提供更有效地对文档内的符号进行编码的大词典的更有效存储;(3) 通过使用条件熵估计提供对词典设计和编码过程的编码效率的进一步提高;以及(4) 通过维持并利用来自在前的页面的信息来对连续页面进行编码来提高编码效率。用于多页面二进制文档图像压缩的本动态层级词典(HD)设计方法通过维持并利用来自在前的页面的信息来对连续页面进行编码来提高编码效率。使用下面的技术,HD方法优于其它方法。首先,层级设计允许每个页面更多的信息被维持。其次,动态更新有助于在内存大小约束下维持尽可能多的信息。第三,条件熵估计有助于更有效地利用所维持的信息。
[0111] 前面的描述被提供来说明和描述所描述的原理的示例。该描述并不旨在详尽无遗的或将这些原理限制到所公开的任何精确形式。按照上面的教导,很多修改和变型是可能的。