用于数据解码的装置和方法

文档序号:10627101阅读:533来源:国知局
用于数据解码的装置和方法
【专利摘要】本发明可提供用于数据解码的方法和装置。一种计算机实施的方法,包括:接收数据流,所述数据流包括码字串,所述码字串根据第一熵编码查找表编码相应的像素数据串;以及处理所述数据流以确定第一码字和接续的第二码字与第二熵编码查找表中的码字条目之间是否存在匹配。所述方法还包括:如果存在匹配,则使用所述第二熵编码查找表解码所述第一码字和所述第二码字。而且,所述方法包括:如果不存在匹配,则使用所述第一熵编码查找表解码所述第一码字。根据本发明,可提供用于数据解码的方法和系统。
【专利说明】
用于数据解码的装置和方法
技术领域
[0001 ]本发明大体涉及用于数据解码的方法和系统。
【背景技术】
[0002] 近年来,各种类型的打印设备已经在商业和消费者使用中流行起来。除了传统的 黑白打印机之外,彩色打印机、扫描仪、复印机、传真机和其他部件现在也很普遍。支持这些 功能中两种或更多功能的复合机(MFP)也被广泛使用。除了其他功能之外,这些设备用于处 理图像数据。
[0003] 图像数据的处理可包括,例如,压缩和编码操作和/或解压和解码操作。一种示例 图像处理技术由联合图像专家组(JPEG)标准所定义。通常,图像数据的JPEG编码处理包括 空间频率转换、量化、数据排序和熵编码;而图像数据的JPEG解码处理包括JPEG编码处理的 反演,比如熵解码、反向数据排序、反量化和反向空间频率转换。
[0004] 期望改善传统方法和系统的设置或者至少提供一种或多种有益的替换方式以助 于使得数据处理更有效、可靠并且快捷。

【发明内容】

[0005] 本发明可提供用于数据解码的方法和系统。
[0006] 在示例实施例中,一种计算机实施的方法包括:由计算设备接收数据流,所述数据 流包括码字串,所述码字串根据第一熵编码查找表编码相应的像素数据串;以及由所述计 算设备处理所述数据流以确定第一码字和第二码字与第二熵编码查找表中的码字条目之 间是否存在匹配。在本示例中,所述第一码字和所述第二码字是所述数据流中的连续码字, 并且所述第二熵编码查找表不同于所述第一熵编码查找表。本示例方法还包括:如果所述 第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在匹配,则由所述 计算设备使用所述第二熵编码查找表解码所述第一码字和所述第二码字。进一步地,本示 例方法包括:如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之 间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第一码字。
[0007] 在另一示例实施例中,一种用于解码数据流的系统包括:输入缓冲器,用于接收所 述数据流,所述数据流包括根据熵编码查找表而编码为码字串的数据;以及处理器,连接至 所述输入缓冲器。在本示例中,所述处理器被配置为确定所述数据流中的连续码字是否对 应于其后跟随着零行程或一行程的零行程;如果所述连续码字对应于其后跟随着零行程或 一行程的零行程,则至少部分地基于使用修改的熵编码查找表解码所述连续码字来提供输 出。进一步地,在本示例中,所述处理器被配置为:如果所述连续码字不对应于其后跟随着 零行程或一行程的零行程,则至少部分地基于使用熵编码查找表解码所述连续码字中的第 一码字来提供输出。
[0008] 根据本发明,可提供用于数据解码的方法和系统。
【附图说明】
[0009] 图1描绘了传统的级联霍夫曼解码器的图解框图和流程图。
[0010] 图2描绘了根据示例实施例的计算设备。
[0011] 图3是例示了根据示例实施例的计算设备的数据处理组件的框图。
[0012] 图4是例示了根据示例实施例的用于图像处理的存储组件和数据的框图。
[0013] 图5是用于8x8数据块的预定数据序列的示例。
[0014] 图6是例示了根据示例实施例的计算设备的数据处理组件的框图。
[0015] 图7是例示了根据示例实施例的用于图像处理的存储组件和数据的框图。
[0016] 图8描绘了根据示例实施例的数据解码器系统的框图。
[0017] 图9描绘了根据示例实施例的解码数据的方法。
【具体实施方式】
[0018] 在此描述了示例方法和系统。在不脱离在此呈现的发明主题的精神或范围的前提 下,还可使用其他示例实施例或特征,并且可做出其他改变。以下详细说明参照了构成其一 部分的附图。
[0019] 在此描述的示例实施例并非意在限制。应很容易理解的是,在此概括地描述并且 在图中例示的本发明的各方面可以以各种各样不同的配置进行设置、替换、组合、拆分和设 计,并且本说明书明确地预计到了这些设置、替换、组合、拆分和设计。出于例示的目的而参 照打印设备和图像数据的处理描述了各特征和功能。然而,在本文中公开的特征和功能也 可应用于其他类型的计算设备(例如,显示设备)、计算设备的组件(例如,数据解码器、处理 器、存储组件等等),并且应用于处理其他类型的数据(例如,音频数据和/或视频数据)。
[0020] 1.引言
[0021] 在最近30多年间,打印技术已经从仅仅产生黑白图像的基于点阵的简单输出设备 发展到今天能够产生高分辨率彩色图像的基于激光的高级打印设备。另外,现代的打印设 备还可以被用作复印机、扫描仪和传真机。这么做这些设备可以能够存储大量排队等待打 印或传真的或者已经被扫描的电子文档的图像数据。因而,许多打印设备是计算设备的专 用形式,其可以包括例如一个或多个处理器、数据储存器和输入/输出接口。
[0022] 不管是在住宅、企业还是在另一种类型的场所使用打印设备,打印设备都可以是 能够被通信连接至其他各种计算设备的共享资源。因此,在某些环境下,打印设备的存储和 处理要求可能相当高,这是因为许多计算设备可以将电子文档传送至打印设备以进行打 印。通常,打印设备在一个时刻会以先到先服务的方式打印、复印、传真和/或扫描一个电子 文档。因此,打印设备可以存储等待服务的潜在的大量电子文档。由于数据储存器(例如,诸 如随机存取存储器(RAM)、固态存储器、硬盘驱动存储器和/或闪存之类的存储器)的成本可 能昂贵,对所存储的电子文档进行压缩以降低打印设备的数据存储要求可以是有益的。另 外,由于一些电子文档可以被传送至打印设备和计算设备,和/或从打印设备和计算设备中 被传送出,对这些电子文档进行压缩可以使传送更快且使用更少的网络容量。
[0023] 此外,由于打印作业可能是大规模的(例如,打印作业可能包括包含有数百页的一 个或多个电子文档),在每个作业被打印之前,对列表中已排队的打印作业进行压缩会节省 短期存储空间。此外,用户可能希望将打印作业保存在长期储存器内以便在以后的时间进 行打印。因此,对打印作业进行压缩可以允许更多的打印作业被保存。进一步地,在长期存 储器中存储和检索较大的打印作业的行为可能缓慢,但是该行为可以通过压缩打印作业以 使它们的尺寸更小而被加速。
[0024] -种用于压缩并且随后解压打印作业(以及其他类型的数据)的技术利用了熵编 码。霍夫曼编码是熵编码的一个示例,其普遍用于压缩图像数据、视频数据、音频数据等。通 常,霍夫曼编码法用可变长度的二进制代码或者用根据统计概率分配的码字对符号(例如, 像素数据、DCT系数、音频数据等等)进行编码。例如,更频繁使用的符号是长度可能只有几 比特的分配代码,而不怎么频繁使用的符号是长度为渐增比特数(例如,长度多达16位)的 分配代码。霍夫曼编码法使用列出了每个可能的可变长度代码的查找表来编码和解码数 据。在附录("JPEG霍夫曼查找表")中随附于此的表K. 5中的JPEG标准(IS0/IEC 10918)中提 供了一个示例霍夫曼表。其他示例霍夫曼表也是可能的并且落入本发明的范围内。
[0025] 因为霍夫曼编码法使用了可变长度代码,对霍夫曼编码的数据流进行解码本质上 是有序的,这使得数据流中的每个代码都是在确定下一个代码之前得以确定。传统的解码 器每时钟频率或每时钟周期操作一个代码。通常,每个霍夫曼代码包含多个像素,以使得每 时钟频率的平均像素解压速率适宜地高。然而,一些应用要求有保证的像素吞吐量(例如, 每时钟两个像素),而且在瞬态最坏情况下每时钟一个像素的低像素速率可能引起数据不 足(data under-run)和图像伪影。在实践中,更有可能在例如图像的非常嗜杂的区域中出 现少于每时钟两个像素的吞吐量。
[0026] 传统的保证每时钟两个像素的吞吐量的尝试存在各种缺陷。在一种方案中,两个 级联的霍夫曼解码器每时钟可以解码至少两个像素,但此吞吐量伴随着的代价是使得处理 逻辑的关键路径延迟加倍。例如,参照图1,将第一霍夫曼解码器与第二霍夫曼解码器级联 实质上使得关键路径延迟加倍,这是由于使用了两个完整的霍夫曼查找表来处理数据流, 其实质上使最大处理频率减半。在通常用于JPEG处理中的160个条目霍夫曼查找表的情况 下,相对较大的霍夫曼查找表限制了可供级联解码器运行的最大时钟频率。
[0027] 在另一方案中,并联的霍夫曼解码器用于每时钟解码至少两个像素。然而,此方案 使用了附加的数据缓冲器和动态内存分配来为并联的霍夫曼解码器分别生成数据流。取决 于所使用的解码数据流的计算设备,此类附加的数据缓冲器可能不可用。此外,在这种环境 下使用附加的数据缓冲器和动态内存分配会增加内存碎片并增加处理延迟。
[0028] 本发明提供可靠并且有效的方案来保证平均每时钟两个像素的解码吞吐量(例 如,每两个时钟周期四个像素的吞吐量)。所公开的方案利用了修改的霍夫曼查找表来对编 码数据流进行解码。参照相对较大的JPEG霍夫曼查找表,其中仅有10个条目对应于零行程 (run of zero)。通常,该行程长度对应于零幅值AC系数的行程长度。在这种环境下,"零行 程"意味着上一个(解码的)AC系数和下一个非零AC系数之间不存在零幅值AC系数,"一行 程"(run of one)意味着在一个零幅值AC系数之后跟随着一个非零幅值AC系数,"二行程" (run of two)意味着在两个零幅值AC系数之后跟随着一个非零幅值AC系数,并且"整数(η) 行程"意味着在η个零幅值AC系数之后跟随着一个非零幅值AC系数。
[0029]只有在JPEG查找表(以及其他可变或固定长度编码表)中的"零行程"码字的情况 下才存在对快于每时钟一个码字的解码速度的需要,以保证每时钟两个像素的吞吐量。这 是因为用于"一行程"的吞吐量相当于每时钟两个像素的解码速率(零幅值AC系数像素和一 个非零幅值AC系数像素),"二行程"相当于每时钟三个像素的解码速率,"三行程"相当于每 时钟四个像素的解码速率,而"η行程"相当于每时钟(n+1)个像素的解码速率。
[0030] 本发明使用修改的编码查找表,其将完整的查找表中对应于"零行程"的条目与完 整的查找表中对应于"零行程"或"一行程"的条目进行级联。所生成的修改的编码查找表使 得解码器能够在一个时钟周期中解码两个码字而无需像传统技术中那样级联整个完整的 查找表。简单地说,如果当前码字对应于一个像素并且下一个码字对应于一个或两个像素, 则使用修改的编码查找表一起解码这些连续的码字。否则,可以每时钟周期解码一个码字 ("二行程"或"大于二的行程"对应于三个或更多个像素)而不会使吞吐率降低至每时钟两 个像素以下。
[0031] 与上文所讨论的级联解码器相比,除了完整的查找表之外并行地使用修改的编码 查找表的此方案大约需要相同数量的线路和逻辑(例如,通过使查找表中具有多于200个条 目)。然而,由于码字对的解码与常规的解码过程并行发生,与级联解码器中的串行解码相 反,所讨论的方案本质上更快。
[0032] 2.示例打印设备
[0033]图2描绘了示例打印设备20。打印设备20可配置为打印部分地存储和/或完整地存 储在各种类型的物理输出介质上的电子文档。这些输出介质包括但不限于各种尺寸和类型 的纸张、投影片等等。打印设备20可以互换地称为"打印机"。
[0034]打印设备20可作为诸如个人电脑、显示监视器、服务器设备、打印服务器等等的另 一计算设备的本地外设。在这些情况下,打印设备20可通过诸如串行端口电缆、并行端口电 缆、通用串行总线(USB)电缆、火线(IEEE 1394)电缆或高清多媒体接口(HDMI)电缆的电缆 而被附接至计算设备。由此,计算设备可作为打印设备20的电子文档源。
[0035]另一方面,打印设备20可包括有线或无线网络接口,比如以太网或IEEE802.il (WLAN或Wi-Fi)接口。通过如此设置,打印设备20可用作可通过网络与打印设备20通信的任 意数量的计算设备的打印设备。在一些实施例中,打印设备20可同时用作本地外设和联网 打印机。为了使用打印设备20,计算设备可安装一个或多个打印机驱动器。这些打印机驱动 器可包括软件组件,该软件组件将代表待打印的电子文档的图像数据从存储在计算设备上 的各种本地表现形式转换为打印设备20支持的一个或多个表现形式。尽管如此,打印设备 20可被视为是计算设备,并且可以既执行打印相关的作业,又执行非打印相关的作业。 [0036]如上所示,打印设备20还可包括复印机、传真机和扫描仪功能。在一些实施例中, 打印设备20可使用扫描仪功能以利于复印机和/或传真机功能。例如,打印设备20可将物理 文档扫描为电子格式,然后打印所生成的电子文档以提供复印功能和/或经由电话接口传 送所生成的电子文档以提供传真机功能。
[0037]为了支持其各种功能,打印设备20可包括文档进纸器/输出托盘22、供纸盒24、用 户接口 26、扫描元件28和机壳30。应理解的是,打印设备可采用大量不同的形式。因此,打印 设备20可包括比图1所描绘的更多或更少的组件和/或以与图1所描绘的不同的形式布置的 组件。
[0038]文档进纸器/输出托盘22可保持待扫描、复印或传真的物理文档(例如,一叠包括 一张或多张纸的纸)。文档进纸器/输出托盘22可允许打印设备20自动进给多个物理文档以 通过打印设备20进行打印而无需人工干预。文档进纸器/输出托盘22还可包括一个或多个 分离的输出托盘以用于保持已由打印设备20处理过的物理文档。这些物理文档可包括已由 打印设备20扫描、复印或传真过的物理文档以及已由打印设备20的例如传真和/或复印功 能生成的物理文档。
[0039]供纸盒24可包括用于各种类型的物理介质的托盘和/或进纸元件。例如,供纸盒24 可包括用于8V2x 11英寸纸、A4纸、信笺纸、信封等等的分离的托盘。对于打印设备20的任意 涉及生成物理介质(例如,打印、复印和/或接收传真)的功能,供纸盒24可供应该物理介质。 [0040]用户接口 26可利于打印设备20与人类用户或非人类用户的交互,比如接收来自用 户的输入以及向用户提供输出。由此,用户接口 26可包括输入组件,比如小键盘、键盘、触摸 感应面板或存在感应面板、操纵杆、麦克风、静物照相机和/或摄像机。用户接口 26还可包括 一个或多个输出组件,比如显示屏(其例如可与存在感应面板组合)、阴极射线管(CRT)、液 晶显示器(IXD)、基于发光二极管(LED)的显示器、使用数字光处理(DLP?)技术的显示器、 灯泡和/或一个或多个现在已知或以后开发的其他类似设备。用户接口 26还可被配置为能 够通过扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或现在已知或未来将开 发的其他类似设备生成可听输出。
[0041]扫描元件28可为玻璃面板,可移动的光源在其下方操作以扫描放置在玻璃面板顶 部的物理介质。可替换地,玻璃面板下方的数字相机可通过拍摄物理介质的图片来"扫描" 放置在玻璃面板顶部的该物理介质。已扫描的物理介质的图像可存储在与打印设备20相关 联的数据储存器中。
[0042]机壳30可包括物理外壳,物理外壳包含打印设备20的各种组件和或与其互连,这 些组件比如为文档进纸/输出托盘22、供纸盒24、用户接口 26和扫描元件28。此外,机壳30可 容纳图1未示出的其他组件。例如,机壳30可包含一个或多个调色剂盒、液体喷墨、带、辊和/ 或电源。而且,机壳30可包括通信接口,比如有线和/或无线网络接口、电话接口(例如,RJ45 插座)、USB接口、蓝牙馨接口、读卡器端口等。
[0043]此外,由于打印设备20可基于通用的和/或专门设计的计算设备组件,机壳30还可 容纳这些组件中的一些或全部。例如,打印设备20可包括处理器和数据储存器(未明确示 出)。通常,处理器可包括一个或多个中央处理单元(CPU),比如一个或多个通用处理器和/ 或一个或多个专用处理器(例如,专用集成电路(ASIC)或数字信号处理器(DSP)等)。数据储 存器可包括易失性和/或非易失性数据储存器,并且可整体或部分地与处理器集成。数据储 存器可存储可由处理器执行的程序指令以及由这些指令操纵以执行在此描述的各种方法、 过程或功能的数据。可替换地,这些方法、过程或功能可由硬件、固件、软件和/或硬件、固件 和软件的任意组合来定义。因此,数据储存器可包括有形非暂态计算机可读介质,其上存储 程序指令,当由一个或多个处理器运行时、这些程序指令引起打印设备20执行在本说明书 或随附附图中公开的任意方法、过程或功能。
[0044] 而且,打印设备20的组件还可包括用于压缩/编码和/或解压/解码图像数据的硬 件和/或软件组件。
[0045] 3.示例编码器和解码器
[0046] 图3和图6描绘了可包含在打印设备20中的计算设备组件(例如,计算设备的功能 元件)的示例实施例。首先参照图3,其例示了示例图像数据编码器40。编码器40被配置为接 收图像数据42。在所例示的示例中,图像数据被划分为图像数据块(例如,8x8像素块),并且 图像数据块被提供给编码器40的空间频率转换器44。空间频率转换器执行空间频率转换, 比如通过对图像数据执行离散余弦变换(DCT)。对图像数据执行空间频率转换,生成代表图 像数据块的空间频率转换结果的一个或多个频率系数的集合。在8x8像素块的示例中,空间 频率转换器44被配置为在单个时钟周期中生成1个和64个之间的频率系数。参照图4,在一 个示例中,生成的这些频率系数S uv可被存储在存储组件60中。在另一示例中,生成的1至64 个频率系数Suv的集合不需要单独存储,而是可在单次操作(例如,单个时钟周期)中由量化 器和数据序列器操作。
[0047]例如,之后,1至64个频率系数的集合可立即由量化器46操作。量化器46生成量化 数据,比如一个或多个量化的频率系数的集合。通常,量化是在已通过空间频率转换操作将 图像数据变换到频域之后、用于减少或消除高频成分的过程。量化器46使用包括量化因子 的量化表对频率系数进行操作。更具体地,在编码器40中,量化器将频率系数S uv除以对应的 量化因子以生成量化的频率系数的集合。在图4例示的示例中,量化因子Quv可被存储在存储 组件62中或者可作为量化器的输入,其中每时钟周期可获得1或多达64个量化因子Q uv。量化 器46还可对除法操作的结果进行舍入以消除无关紧要的高频成分。
[0048]在本示例中,之后,由量化器46生成的量化的频率系数Squv的集合可在单次操作或 单个时钟周期中被立即提供给数据序列器48。数据序列器48被配置为以预定顺序排列量化 的频率系数的集合。一种此类顺序是Z字形顺序,如图5所示。图4还例示了块64,其代表执行 Z字形排序操作的硬件和/或软件组件。
[0049]所生成的以预定顺序排列的量化的频率系数Squv的集合可被存储在存储组件66 中。在另一示例中,所生成的1至64个量化的频率系数Squv的集合不需要单独存储,而是可在 单次操作(例如,单个时钟周期)中通过数据编码器50操作。数据编码器50对所提取的量化 的频率系数Sq uv执行熵或霍夫曼编码,从而提供编码数据52以进行存储、传送或其他处理。
[0050] 现在参照图6和图7,其例示了示例图像数据解码器70。解码器70被配置为接收编 码图像数据52(比如图3中的编码数据)。在例示的示例中,编码数据立即被提供给数据解码 器72。数据解码器72执行数据编码器50的反向功能,例如,反向熵或霍夫曼解码,从而生成 量化的频率系数Sq uv。在8x8像素块的示例中,数据解码器72被配置为在单个时钟周期中生 成1个和64个之间的量化的频率系数Sq uv。系数Squv的数量可部分地取决于所接收的编码图 像数据。在图7的一个示例中,所生成的量化的频率系数Sq uv可被存储在存储组件90中。在另 一示例中,所生成的1至64个量化的频率系数Squv的集合不需要单独存储,而是可在单次操 作(例如,单个时钟周期)中由数据反向序列器和反量化器操作,下文中将更详细地对其进 行描述。
[0051] 在本示例中,1至64个量化的频率系数Squv的集合可以以通过图3的数据序列器48 的操作而生成的预定顺序进行排列。相应地,量化的频率系数Sq uv可被提供给数据反向序列 器74,其以预定顺序的反向顺序排列量化的频率系数Squv。参照图7,在一个示例中,所生成 的重新排列的量化的频率系数Sq uv可被存储在存储组件92中。
[0052]在另一示例中,所生成的重新排列的量化的频率系数Squv不需要单独存储,并且在 数据反向序列器74之后、量化的频率系数Squv被立即提供给反量化器76,反量化器76对量化 的频率系数Sq uv进行反量化。在一个示例中,反量化器76使用与上文中关于图3的量化器46 讨论过的相同的量化表和量化因子。然而,反量化器76将量化的频率系数Squv与对应的量化 因子Quv相乘,并且执行与由量化器46执行的舍入操作反向的操作来提取频率系数Suv,频率 系数S uv可被存储在存储组件94中或者被立即提供给反向空间频率转换器78。反向空间频率 转换器78执行由图3中转换器44执行的空间频率转换的反向操作,以提取原始图像数据42 进行显示、打印或其他处理。
[0053] 4.示例解码器系统
[0054] 现在参照图8,其例示了示例解码器系统100。在图8中,系统100包括缓冲器组件 102,缓冲器组件102被配置为接收包括可变长度码字串的输入数据流104,该可变长度码字 串根据熵编码查找表对相应的像素数据串(例如,DCT系数)进行编码。在一个示例中,第一 熵编码查找表是包括所有160个条目的JPEG霍夫曼查找表。由缓冲器102提供数据流104(或 其连续部分),以通过使用第一编码查找表(例如,与用于对像素数据进行编码的查找表相 同的、"完整的"熵编码查找表)的块1〇6(例如,处理器或处理逻辑)和使用第二编码查找表 的块1〇8(例如,与块106相同或不同的处理器或处理逻辑)进行处理。
[0055] 在本示例中,第二编码查找表是第一熵编码查找表的修改版本并且包括多个条 目,每个条目包括第一码字和第二码字的码字对。例如,每个码字对中的第一码字选自第一 编码查找表中对应于"零行程"的一个或多个条目,而每个码字对中的第二码字选自第一编 码查找表中对应于"零行程"或"一行程"的一个或多个条目。参照JPEG霍夫曼查找表,有10 个码字对应于"零行程",并且有10个码字对应于"一行程"。在此示例中,第二编码查找表包 括其后跟随着"零行程"码字或"一行程"码字的"零行程"码字的每种组合。基于JPEG霍夫曼 查找表,这种修改的第二编码查找表将包括200个条目,通常如下所示:
[0056](其后跟随着"零行程"码字的"零行程"码字)
[0057] 〇/1_〇/1,〇/1_〇/2,…,0/1_0/Α,
[0058] 0/2_0/1,0/2_0/2,…,0/2_0/A,
[0059] 0/3_0/1,0/3_0/2,…,0/3_0/A,
[0060] ···
[0061 ] 0/Α_0/1,0/A_0/2,…,0/Α_0/Α,
[0062] (其后跟随着"一行程"码字的"零行程"码字)
[0063] 〇/1_1/1 ,〇/1_1/2, ··· ,〇/1_1/Α,
[0064] 〇/2_1/1,0/2_1/2,…,0/2_1/Α,
[0065] 〇/3_1/1,0/3_1/2,…,0/3_1/Α,
[0066] ···
[0067] 〇/A_l /1,0/Α_1 /2, ·' ·, 〇/A_l /A,
[0068] 第一和第二编码查找表块106、108并行地处理数据流104以识别所接收的数据流 中的码字与相应的查找表中的条目之间的匹配关系。块106以一次一个码字的方式处理数 据流104,以寻找第一编码查找表中的匹配码字条目并且将匹配码字作为输出110提供给选 择器组件112。选择器组件112可以是基于优先权的多路器或者其他硬件和/或软件组件,其 被配置为从多个输入选择性地提供输出。
[0069]块108使用第二编码查找表来处理数据流104,以确定数据流是否包括对应于其后 跟随着"零行程"或"一行程"的"零行程"的连续码字。如果块108确定在数据流中的连续码 字与第二编码查找表中的码字条目之间存在匹配,则块108将匹配的码字对作为输出114提 供给选择器组件112。如果块108确定存在匹配,则块108提供优先权信号,其指示选择器组 件112基于输出114选择性地提供输出116。如果块108确定不存在匹配,则块108不提供优先 权信号(或者提供不同的信号),其指示选择器组件112基于输出110选择性地提供输出116。
[0070] 在图8的示例中,封装逻辑块118从选择器组件112接收输出116,并且被配置为将 来自块106的可变长度码字输出110或者来自块108的可变长度码字对输出114封装在像素 队列120中,该像素队列120可能是固定长度队列。图8的系统100还包括一个或多个解码阶 段122,其被配置为执行比如反向数据排序、反量化、反向空间频率转换等等的功能。进一步 地,在图8的示例中,输出设备124连接至解码阶段122。在本示例中,输出设备124可为打印 引擎,打印引擎被配置为将解码阶段122处理过的像素队列120的内容转换为用于打印图像 的对应部分的控制信号。输出设备124还可包括一些其他显示设备,比如显示监视器,其被 配置为将像素队列120的内容转换为用于显示图像的对应部分的控制信号。
[0071] 在系统100中,块106、108还可被配置为提供连接至缓冲器102的反馈输出126,该 缓冲器102还可起到基于硬件和/或软件的选择器块的功能。更具体地,当块106、108识别数 据流104中的可变长度码字时,块106、108可生成反馈输出126以将码字的长度告知选择器 块102。然后,选择器块102可移位一移动窗口的位,以将数据流的下一个连续部分提供给块 106、108进行处理。
[0072] 5.示例操作
[0073]除了上述说明之外,图9例示了示例实施例的流程图。此流程图例示的各步骤可通 过一个或多个计算设备、系统或其组件执行,比如打印设备20、解码器72和系统100。进一步 地,如果合适的话,每个单独步骤的各个方面可分布在多个计算设备之间。
[0074] 图9例示了可使用例如图6和图8中组件的示例编码处理150。在处理150的块152 处,例如,系统100接收包括码字的数据流,该码字根据第一熵编码查找表对相应的像素数 据串进行编码。例如,第一熵编码查找表可为在此描述过的JPEG霍夫曼查找表。
[0075] 在块154处,系统100处理数据流以确定第一码字和第二码字与第二熵编码查找表 中的码字条目之间是否存在匹配。在本示例中,第一码字和第二码字是数据流中的连续码 字,并且第二熵编码查找表可以是图8中第二编码查找表块108所使用的修改的编码查找 表。在块156处,系统100处理数据流以识别第一码字与第一熵编码查找表中的码字条目之 间的匹配。在一个示例中,块156处的该处理与步骤154中的处理并行执行。
[0076] 在块158处,如果第一码字和第二码字与第二熵编码查找表中的码字条目之间存 在匹配,则系统100使用第二熵编码查找表解码第一码字和第二码字或将其作为输出提供。 在块160处,如果第一码字和第二码字与第二熵编码查找表中的码字条目之间不存在匹配, 则系统100使用第一熵编码查找表解码第一码字或将其作为输出提供。
[0077]在图9的示例中,在块162处,系统100转而处理下一码字集合。根据一个实施例,如 果系统100在块154处没有识别到匹配,则该系统100在块162处转而处理下一个码字,并且 控制过程回到块154以继续处理接收到的数据流。相应地,在块154的下一次迭代中,系统 100确定第二码字和下一个连续(第三)码字与第二熵编码查找表中的码字条目之间是否存 在匹配。进一步地,在块156的下一次迭代中,系统100处理数据流以识别第二码字与第一熵 编码查找表中码字条目之间的匹配。此后,在块158处,如果第二码字和第三码字与第二熵 编码查找表中的码字条目之间存在匹配,则系统100使用第二熵编码查找表解码该第二码 字和第三码字或者将其作为输出提供。在块160处,如果第二码字和第三码字与第二熵编码 查找表中的码字条目之间不存在匹配,则系统100使用第一熵编码查找表解码第二码字或 者将其作为输出提供。
[0078] 再次参照块162,根据本实施例,如果系统100在块154处没有识别到匹配,则在块 162处该系统100将其处理移位两个码字,并且将控制返回至块154以继续处理接收到的数 据流。相应地,在块154的下一次迭代中,系统100确定在下一个连续码字对(例如,第三和第 四码字)与第二熵编码查找表中的码字条目之间是否存在匹配。进一步地,在块156的下一 次迭代中,系统100处理数据流以识别第三码字与第一熵编码查找表中的码字条目之间的 匹配。此后,在块158处,如果第三码字和第四码字与第二熵编码查找表中的码字条目之间 存在匹配,则系统100使用第二熵编码查找表解码第三码字和第四码字或者将其作为输出 提供。在块160处,如果第三码字和第四码字与第二熵编码查找表中的码字条目之间不存在 匹配,则系统100使用第一熵编码查找表解码第三码字或者将其作为输出提供。
[0079]通常,块162中的处理提供移动窗口,随着码字被解码并且提供给输出,该移动窗 口按顺序遍历数据流。
[00S0] 6.结论
[0081] 本发明并不按照本申请中所述的特定实施例被限定,这些特定实施例旨在作为各 方面的例示。可以进行许多修改和变形而不会背离本发明的精神和范围,这一点对本领域 技术人员来说是显而易见的。除了本文所列举的之外,本发明范围内的功能上等效的方法 和装置根据前面的描述是显而易见的。这种修改和变形旨在落到所附权利要求的范围内。
[0082] 关于附图中和这里所讨论的梯形图、场景和流程图中的全部或任意,每个块和/或 通信可表示根据示例实施例的信息处理和/或信息发送。可替代的实施例可被包括在这种 示例实施例的范围内。进一步地,更多或更少的块和/或功能可与这里所讨论任何的梯形 图、场景和流程图一起使用,并且这些梯形图、场景和流程图可以部分或整体地相互结合。
[0083] 表示信息处理的步骤或块可对应于电路,该电路可被配置为执行这里所述的方法 或技术的特定逻辑功能。可替代地或者另外,表示信息处理的步骤或块可对应于程序代码 (包括相关数据)的模块、段或部分。程序代码可包括一个或多个指令,该一个或多个指令可 由处理器执行以实施上述方法或技术中的特定逻辑功能或行为。程序代码和/或相关数据 可被存储在任何类型的计算机可读介质上,诸如存储设备,包括磁盘驱动器、硬盘驱动器或 其他存储介质。
[0084] 计算机可读介质还可包括非暂时性计算机可读介质,诸如短期存储数据的计算机 可读介质,像寄存器存储器、处理器缓存和/或随机存取存储器(RAM)。计算机可读介质还可 包括较长期存储程序代码和/或数据的非暂时性计算机可读介质,诸如二次或持续长期储 存器,例如像只读存储器(R0M)、光盘或磁盘、和/或只读光盘存储器(CD-ROM)。计算机可读 介质还可以是任何其他易失性或非易失性存储系统。计算机可读介质可被认为是例如计算 机可读存储介质和/或有形存储设备。
[0085] 尽管这里已经公开多个方面和多种实施例,其他方面和其他实施例对本领域技术 人员来说也是显而易见的。这里所公开的多个方面和多种实施例的目的是例示性的而
[0086] 并不意欲进行限制,真正的范围和精神由所附的权利要求指示。
[0087] 附录
[0088] 表K.5-亮度AC系数表(4页中的第1页)
[0089]
[0090] 表Κ· 5(4页中的第2页)
[0091]
[0092] 表Κ·5(4页中的第3页)
[0093]
[0094] 表Κ· 5(4页中的第4页)
[0095]
【主权项】
1. 一种计算机实施的方法,包括: 由计算设备接收数据流,所述数据流包括码字串,所述码字串根据第一熵编码查找表 编码相应的像素数据串; 由所述计算设备处理所述数据流以确定第一码字和第二码字与第二熵编码查找表中 的码字条目之间是否存在匹配,其中所述第一码字和所述第二码字是所述数据流中的连续 码字,并且其中所述第二熵编码查找表不同于所述第一熵编码查找表; 如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在 匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第一码字和所述第二码字; 以及 如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存 在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第一码字。2. 如权利要求1所述的方法,还包括:由所述计算设备处理所述数据流以识别所述第一 码字与所述第一熵编码查找表中的码字条目之间的匹配,其中,所述计算设备处理所述数 据流以识别所述第一码字与所述第一熵编码查找表中的码字条目之间的匹配以及处理所 述数据流以确定所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之 间是否存在匹配是并行执行的。3. 如权利要求1所述的方法,其中所述第二熵编码查找表至少包括多个条目,每个条目 包括第一码字和第二码字的码字对,其中每个码字对中的所述第一码字选自所述第一熵编 码查找表中对应于零行程的一个或多个条目,并且每个码字对中的所述第二码字选自所述 第一熵编码查找表中对应于零行程或一行程的一个或多个条目。4. 如权利要求3所述的方法,其中所述第二熵编码查找表包括所述第一码字和所述第 二码字的码字对的每个唯一组合。5. 如权利要求1所述的方法,还包括: 如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在 匹配,则由所述计算设备处理所述数据流以确定第三码字和第四码字与所述第二熵编码查 找表中的码字条目之间是否存在匹配,其中所述第一码字、所述第二码字、所述第三码字和 所述第四码字是所述数据流中的连续码字。6. 如权利要求5所述的方法,还包括: 如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存 在匹配,并且(ii)所述第三码字和所述第四码字与所述第二熵编码查找表中的码字条目之 间存在匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第三码字和所述第四 码字;以及 如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存 在匹配,并且(ii)所述第三码字和所述第四码字与所述第二熵编码查找表中的码字条目之 间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第三码字。7. 如权利要求1所述的方法,还包括: 如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存 在匹配,则由所述计算设备处理所述数据流以确定第三码字和所述第二码字与所述第二熵 编码查找表中的码字条目之间是否存在匹配,其中所述第二码字和所述第三码字是所述数 据流中的连续码字。8. 如权利要求7所述的方法,还包括: 如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不 存在匹配,并且(ii)所述第二码字和所述第三码字与所述第二熵编码查找表中的码字条目 之间存在匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第二码字和所述第 三码字;以及 如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不 存在匹配,并且(ii)所述第二码字和所述第三码字与所述第二熵编码查找表中的码字条目 之间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第二码字。9. 如权利要求1所述的方法,其中,使用所述第二熵编码查找表解码所述第一码字和所 述第二码字确保了平均每时钟周期两个像素的吞吐量。10. 如权利要求1所述的方法,其中,所述第一熵编码查找表是霍夫曼熵编码查找表。11. 如权利要求1所述的方法,还包括:基于所述第一码字的解码或者基于所述第一码 字和所述第二码字的解码,向打印引擎和显示监视器中的一个或多个提供输出数据流。12. 如权利要求11所述的方法,还包括:在向所述打印引擎和所述显示监视器中的一个 或多个提供所述输出数据流之前,对所述输出数据流进行反量化并且对所述输出数据流执 行反向空间频率转换。13. -种用于解码数据流的系统,包括: 输入缓冲器,用于接收所述数据流,其中所述数据流包括根据熵编码查找表而编码为 码字串的数据;以及 处理器,连接至所述输入缓冲器并且被配置为: 确定所述数据流中的连续码字是否对应于其后跟随着零行程或一行程的零行程; 如果所述连续码字对应于其后跟随着零行程或一行程的零行程,则至少部分地基于使 用修改的熵编码查找表解码所述连续码字来提供输出;并且 如果所述连续码字不对应于其后跟随着零行程或一行程的零行程,则至少部分地基于 使用所述熵编码查找表解码所述连续码字中的第一码字来提供所述输出。14. 如权利要求13所述的系统,其中,所述修改的熵编码查找表至少包括多个条目,每 个条目包括第一码字和第二码字的码字对,其中每个码字对中的所述第一码字选自所述熵 编码查找表中对应于零行程的一个或多个条目,并且每个码字对中的所述第二码字选自所 述熵编码查找表中对应于零行程或一行程的一个或多个条目。15. 如权利要求13所述的系统,其中,所述输入缓冲器和所述处理器被包含在打印设备 中。
【文档编号】H04N1/40GK105991895SQ201610112402
【公开日】2016年10月5日
【申请日】2016年2月29日
【发明人】苏东佩, 肯尼斯·A·施密特, 西恩-福·阮·多, 李升
【申请人】京瓷办公信息系统株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1