CN105991895B - 用于数据解码的装置和方法 - Google Patents

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

Info

Publication number
CN105991895B
CN105991895B CN201610112402.XA CN201610112402A CN105991895B CN 105991895 B CN105991895 B CN 105991895B CN 201610112402 A CN201610112402 A CN 201610112402A CN 105991895 B CN105991895 B CN 105991895B
Authority
CN
China
Prior art keywords
code word
entropy coding
look
coding look
entry
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.)
Expired - Fee Related
Application number
CN201610112402.XA
Other languages
English (en)
Other versions
CN105991895A (zh
Inventor
苏东佩
肯尼斯·A·施密特
西恩-福·阮·多
李升�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Publication of CN105991895A publication Critical patent/CN105991895A/zh
Application granted granted Critical
Publication of CN105991895B publication Critical patent/CN105991895B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/4115Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures involving the recognition of specific patterns, e.g. by symbol matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本发明可提供用于数据解码的方法和装置。一种计算机实施的方法,包括:接收数据流,所述数据流包括码字串,所述码字串根据第一熵编码查找表编码相应的像素数据串;以及处理所述数据流以确定第一码字和接续的第二码字与第二熵编码查找表中的码字条目之间是否存在匹配。所述方法还包括:如果存在匹配,则使用所述第二熵编码查找表解码所述第一码字和所述第二码字。而且,所述方法包括:如果不存在匹配,则使用所述第一熵编码查找表解码所述第一码字。根据本发明,可提供用于数据解码的方法和系统。

Description

用于数据解码的装置和方法
技术领域
本发明大体涉及用于数据解码的方法和系统。
背景技术
近年来,各种类型的打印设备已经在商业和消费者使用中流行起来。除了传统的黑白打印机之外,彩色打印机、扫描仪、复印机、传真机和其他部件现在也很普遍。支持这些功能中两种或更多功能的复合机(MFP)也被广泛使用。除了其他功能之外,这些设备用于处理图像数据。
图像数据的处理可包括,例如,压缩和编码操作和/或解压和解码操作。一种示例图像处理技术由联合图像专家组(JPEG)标准所定义。通常,图像数据的JPEG编码处理包括空间频率转换、量化、数据排序和熵编码;而图像数据的JPEG解码处理包括JPEG编码处理的反演,比如熵解码、反向数据排序、反量化和反向空间频率转换。
期望改善传统方法和系统的设置或者至少提供一种或多种有益的替换方式以助于使得数据处理更有效、可靠并且快捷。
发明内容
本发明可提供用于数据解码的方法和系统。
在示例实施例中,一种计算机实施的方法包括:由计算设备接收数据流,所述数据流包括码字串,所述码字串根据第一熵编码查找表编码相应的像素数据串;以及由所述计算设备处理所述数据流以确定第一码字和第二码字与第二熵编码查找表中的码字条目之间是否存在匹配。在本示例中,所述第一码字和所述第二码字是所述数据流中的连续码字,并且所述第二熵编码查找表不同于所述第一熵编码查找表。本示例方法还包括:如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第一码字和所述第二码字。进一步地,本示例方法包括:如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第一码字。
在另一示例实施例中,一种用于解码数据流的系统包括:输入缓冲器,用于接收所述数据流,所述数据流包括根据熵编码查找表而编码为码字串的数据;以及处理器,连接至所述输入缓冲器。在本示例中,所述处理器被配置为确定所述数据流中的连续码字是否对应于其后跟随着零行程或一行程的零行程;如果所述连续码字对应于其后跟随着零行程或一行程的零行程,则至少部分地基于使用修改的熵编码查找表解码所述连续码字来提供输出。进一步地,在本示例中,所述处理器被配置为:如果所述连续码字不对应于其后跟随着零行程或一行程的零行程,则至少部分地基于使用熵编码查找表解码所述连续码字中的第一码字来提供输出。
根据本发明,可提供用于数据解码的方法和系统。
附图说明
图1描绘了传统的级联霍夫曼解码器的图解框图和流程图。
图2描绘了根据示例实施例的计算设备。
图3是例示了根据示例实施例的计算设备的数据处理组件的框图。
图4是例示了根据示例实施例的用于图像处理的存储组件和数据的框图。
图5是用于8x8数据块的预定数据序列的示例。
图6是例示了根据示例实施例的计算设备的数据处理组件的框图。
图7是例示了根据示例实施例的用于图像处理的存储组件和数据的框图。
图8描绘了根据示例实施例的数据解码器系统的框图。
图9描绘了根据示例实施例的解码数据的方法。
具体实施方式
在此描述了示例方法和系统。在不脱离在此呈现的发明主题的精神或范围的前提下,还可使用其他示例实施例或特征,并且可做出其他改变。以下详细说明参照了构成其一部分的附图。
在此描述的示例实施例并非意在限制。应很容易理解的是,在此概括地描述并且在图中例示的本发明的各方面可以以各种各样不同的配置进行设置、替换、组合、拆分和设计,并且本说明书明确地预计到了这些设置、替换、组合、拆分和设计。出于例示的目的而参照打印设备和图像数据的处理描述了各特征和功能。然而,在本文中公开的特征和功能也可应用于其他类型的计算设备(例如,显示设备)、计算设备的组件(例如,数据解码器、处理器、存储组件等等),并且应用于处理其他类型的数据(例如,音频数据和/或视频数据)。
1.引言
在最近30多年间,打印技术已经从仅仅产生黑白图像的基于点阵的简单输出设备发展到今天能够产生高分辨率彩色图像的基于激光的高级打印设备。另外,现代的打印设备还可以被用作复印机、扫描仪和传真机。这么做这些设备可以能够存储大量排队等待打印或传真的或者已经被扫描的电子文档的图像数据。因而,许多打印设备是计算设备的专用形式,其可以包括例如一个或多个处理器、数据储存器和输入/输出接口。
不管是在住宅、企业还是在另一种类型的场所使用打印设备,打印设备都可以是能够被通信连接至其他各种计算设备的共享资源。因此,在某些环境下,打印设备的存储和处理要求可能相当高,这是因为许多计算设备可以将电子文档传送至打印设备以进行打印。通常,打印设备在一个时刻会以先到先服务的方式打印、复印、传真和/或扫描一个电子文档。因此,打印设备可以存储等待服务的潜在的大量电子文档。由于数据储存器(例如,诸如随机存取存储器(RAM)、固态存储器、硬盘驱动存储器和/或闪存之类的存储器)的成本可能昂贵,对所存储的电子文档进行压缩以降低打印设备的数据存储要求可以是有益的。另外,由于一些电子文档可以被传送至打印设备和计算设备,和/或从打印设备和计算设备中被传送出,对这些电子文档进行压缩可以使传送更快且使用更少的网络容量。
此外,由于打印作业可能是大规模的(例如,打印作业可能包括包含有数百页的一个或多个电子文档),在每个作业被打印之前,对列表中已排队的打印作业进行压缩会节省短期存储空间。此外,用户可能希望将打印作业保存在长期储存器内以便在以后的时间进行打印。因此,对打印作业进行压缩可以允许更多的打印作业被保存。进一步地,在长期存储器中存储和检索较大的打印作业的行为可能缓慢,但是该行为可以通过压缩打印作业以使它们的尺寸更小而被加速。
一种用于压缩并且随后解压打印作业(以及其他类型的数据)的技术利用了熵编码。霍夫曼编码是熵编码的一个示例,其普遍用于压缩图像数据、视频数据、音频数据等。通常,霍夫曼编码法用可变长度的二进制代码或者用根据统计概率分配的码字对符号(例如,像素数据、DCT系数、音频数据等等)进行编码。例如,更频繁使用的符号是长度可能只有几比特的分配代码,而不怎么频繁使用的符号是长度为渐增比特数(例如,长度多达16位)的分配代码。霍夫曼编码法使用列出了每个可能的可变长度代码的查找表来编码和解码数据。在附录(“JPEG霍夫曼查找表”)中随附于此的表K.5中的JPEG标准(ISO/IEC 10918)中提供了一个示例霍夫曼表。其他示例霍夫曼表也是可能的并且落入本发明的范围内。
因为霍夫曼编码法使用了可变长度代码,对霍夫曼编码的数据流进行解码本质上是有序的,这使得数据流中的每个代码都是在确定下一个代码之前得以确定。传统的解码器每时钟频率或每时钟周期操作一个代码。通常,每个霍夫曼代码包含多个像素,以使得每时钟频率的平均像素解压速率适宜地高。然而,一些应用要求有保证的像素吞吐量(例如,每时钟两个像素),而且在瞬态最坏情况下每时钟一个像素的低像素速率可能引起数据不足(data under-run)和图像伪影。在实践中,更有可能在例如图像的非常嘈杂的区域中出现少于每时钟两个像素的吞吐量。
传统的保证每时钟两个像素的吞吐量的尝试存在各种缺陷。在一种方案中,两个级联的霍夫曼解码器每时钟可以解码至少两个像素,但此吞吐量伴随着的代价是使得处理逻辑的关键路径延迟加倍。例如,参照图1,将第一霍夫曼解码器与第二霍夫曼解码器级联实质上使得关键路径延迟加倍,这是由于使用了两个完整的霍夫曼查找表来处理数据流,其实质上使最大处理频率减半。在通常用于JPEG处理中的160个条目霍夫曼查找表的情况下,相对较大的霍夫曼查找表限制了可供级联解码器运行的最大时钟频率。
在另一方案中,并联的霍夫曼解码器用于每时钟解码至少两个像素。然而,此方案使用了附加的数据缓冲器和动态内存分配来为并联的霍夫曼解码器分别生成数据流。取决于所使用的解码数据流的计算设备,此类附加的数据缓冲器可能不可用。此外,在这种环境下使用附加的数据缓冲器和动态内存分配会增加内存碎片并增加处理延迟。
本发明提供可靠并且有效的方案来保证平均每时钟两个像素的解码吞吐量(例如,每两个时钟周期四个像素的吞吐量)。所公开的方案利用了修改的霍夫曼查找表来对编码数据流进行解码。参照相对较大的JPEG霍夫曼查找表,其中仅有10个条目对应于零行程(run of zero)。通常,该行程长度对应于零幅值AC系数的行程长度。在这种环境下,“零行程”意味着上一个(解码的)AC系数和下一个非零AC系数之间不存在零幅值AC系数,“一行程”(run of one)意味着在一个零幅值AC系数之后跟随着一个非零幅值AC系数,“二行程”(run of two)意味着在两个零幅值AC系数之后跟随着一个非零幅值AC系数,并且“整数(n)行程”意味着在n个零幅值AC系数之后跟随着一个非零幅值AC系数。
只有在JPEG查找表(以及其他可变或固定长度编码表)中的“零行程”码字的情况下才存在对快于每时钟一个码字的解码速度的需要,以保证每时钟两个像素的吞吐量。这是因为用于“一行程”的吞吐量相当于每时钟两个像素的解码速率(零幅值AC系数像素和一个非零幅值AC系数像素),“二行程”相当于每时钟三个像素的解码速率,“三行程”相当于每时钟四个像素的解码速率,而“n行程”相当于每时钟(n+1)个像素的解码速率。
本发明使用修改的编码查找表,其将完整的查找表中对应于“零行程”的条目与完整的查找表中对应于“零行程”或“一行程”的条目进行级联。所生成的修改的编码查找表使得解码器能够在一个时钟周期中解码两个码字而无需像传统技术中那样级联整个完整的查找表。简单地说,如果当前码字对应于一个像素并且下一个码字对应于一个或两个像素,则使用修改的编码查找表一起解码这些连续的码字。否则,可以每时钟周期解码一个码字(“二行程”或“大于二的行程”对应于三个或更多个像素)而不会使吞吐率降低至每时钟两个像素以下。
与上文所讨论的级联解码器相比,除了完整的查找表之外并行地使用修改的编码查找表的此方案大约需要相同数量的线路和逻辑(例如,通过使查找表中具有多于200个条目)。然而,由于码字对的解码与常规的解码过程并行发生,与级联解码器中的串行解码相反,所讨论的方案本质上更快。
2.示例打印设备
图2描绘了示例打印设备20。打印设备20可配置为打印部分地存储和/或完整地存储在各种类型的物理输出介质上的电子文档。这些输出介质包括但不限于各种尺寸和类型的纸张、投影片等等。打印设备20可以互换地称为“打印机”。
打印设备20可作为诸如个人电脑、显示监视器、服务器设备、打印服务器等等的另一计算设备的本地外设。在这些情况下,打印设备20可通过诸如串行端口电缆、并行端口电缆、通用串行总线(USB)电缆、火线(IEEE 1394)电缆或高清多媒体接口(HDMI)电缆的电缆而被附接至计算设备。由此,计算设备可作为打印设备20的电子文档源。
另一方面,打印设备20可包括有线或无线网络接口,比如以太网或IEEE802.11(WLAN或Wi-Fi)接口。通过如此设置,打印设备20可用作可通过网络与打印设备20通信的任意数量的计算设备的打印设备。在一些实施例中,打印设备20可同时用作本地外设和联网打印机。为了使用打印设备20,计算设备可安装一个或多个打印机驱动器。这些打印机驱动器可包括软件组件,该软件组件将代表待打印的电子文档的图像数据从存储在计算设备上的各种本地表现形式转换为打印设备20支持的一个或多个表现形式。尽管如此,打印设备20可被视为是计算设备,并且可以既执行打印相关的作业,又执行非打印相关的作业。
如上所示,打印设备20还可包括复印机、传真机和扫描仪功能。在一些实施例中,打印设备20可使用扫描仪功能以利于复印机和/或传真机功能。例如,打印设备20可将物理文档扫描为电子格式,然后打印所生成的电子文档以提供复印功能和/或经由电话接口传送所生成的电子文档以提供传真机功能。
为了支持其各种功能,打印设备20可包括文档进纸器/输出托盘22、供纸盒24、用户接口26、扫描元件28和机壳30。应理解的是,打印设备可采用大量不同的形式。因此,打印设备20可包括比图1所描绘的更多或更少的组件和/或以与图1所描绘的不同的形式布置的组件。
文档进纸器/输出托盘22可保持待扫描、复印或传真的物理文档(例如,一叠包括一张或多张纸的纸)。文档进纸器/输出托盘22可允许打印设备20自动进给多个物理文档以通过打印设备20进行打印而无需人工干预。文档进纸器/输出托盘22还可包括一个或多个分离的输出托盘以用于保持已由打印设备20处理过的物理文档。这些物理文档可包括已由打印设备20扫描、复印或传真过的物理文档以及已由打印设备20的例如传真和/或复印功能生成的物理文档。
供纸盒24可包括用于各种类型的物理介质的托盘和/或进纸元件。例如,供纸盒24可包括用于81/2x 11英寸纸、A4纸、信笺纸、信封等等的分离的托盘。对于打印设备20的任意涉及生成物理介质(例如,打印、复印和/或接收传真)的功能,供纸盒24可供应该物理介质。
用户接口26可利于打印设备20与人类用户或非人类用户的交互,比如接收来自用户的输入以及向用户提供输出。由此,用户接口26可包括输入组件,比如小键盘、键盘、触摸感应面板或存在感应面板、操纵杆、麦克风、静物照相机和/或摄像机。用户接口26还可包括一个或多个输出组件,比如显示屏(其例如可与存在感应面板组合)、阴极射线管(CRT)、液晶显示器(LCD)、基于发光二极管(LED)的显示器、使用数字光处理技术的显示器、灯泡和/或一个或多个现在已知或以后开发的其他类似设备。用户接口26还可被配置为能够通过扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或现在已知或未来将开发的其他类似设备生成可听输出。
扫描元件28可为玻璃面板,可移动的光源在其下方操作以扫描放置在玻璃面板顶部的物理介质。可替换地,玻璃面板下方的数字相机可通过拍摄物理介质的图片来“扫描”放置在玻璃面板顶部的该物理介质。已扫描的物理介质的图像可存储在与打印设备20相关联的数据储存器中。
机壳30可包括物理外壳,物理外壳包含打印设备20的各种组件和或与其互连,这些组件比如为文档进纸/输出托盘22、供纸盒24、用户接口26和扫描元件28。此外,机壳30可容纳图1未示出的其他组件。例如,机壳30可包含一个或多个调色剂盒、液体喷墨、带、辊和/或电源。而且,机壳30可包括通信接口,比如有线和/或无线网络接口、电话接口(例如,RJ45插座)、USB接口、接口、读卡器端口等。
此外,由于打印设备20可基于通用的和/或专门设计的计算设备组件,机壳30还可容纳这些组件中的一些或全部。例如,打印设备20可包括处理器和数据储存器(未明确示出)。通常,处理器可包括一个或多个中央处理单元(CPU),比如一个或多个通用处理器和/或一个或多个专用处理器(例如,专用集成电路(ASIC)或数字信号处理器(DSP)等)。数据储存器可包括易失性和/或非易失性数据储存器,并且可整体或部分地与处理器集成。数据储存器可存储可由处理器执行的程序指令以及由这些指令操纵以执行在此描述的各种方法、过程或功能的数据。可替换地,这些方法、过程或功能可由硬件、固件、软件和/或硬件、固件和软件的任意组合来定义。因此,数据储存器可包括有形非暂态计算机可读介质,其上存储程序指令,当由一个或多个处理器运行时、这些程序指令引起打印设备20执行在本说明书或随附附图中公开的任意方法、过程或功能。
而且,打印设备20的组件还可包括用于压缩/编码和/或解压/解码图像数据的硬件和/或软件组件。
3.示例编码器和解码器
图3和图6描绘了可包含在打印设备20中的计算设备组件(例如,计算设备的功能元件)的示例实施例。首先参照图3,其例示了示例图像数据编码器40。编码器40被配置为接收图像数据42。在所例示的示例中,图像数据被划分为图像数据块(例如,8x8像素块),并且图像数据块被提供给编码器40的空间频率转换器44。空间频率转换器执行空间频率转换,比如通过对图像数据执行离散余弦变换(DCT)。对图像数据执行空间频率转换,生成代表图像数据块的空间频率转换结果的一个或多个频率系数的集合。在8x8像素块的示例中,空间频率转换器44被配置为在单个时钟周期中生成1个和64个之间的频率系数。参照图4,在一个示例中,生成的这些频率系数Suv可被存储在存储组件60中。在另一示例中,生成的1至64个频率系数Suv的集合不需要单独存储,而是可在单次操作(例如,单个时钟周期)中由量化器和数据序列器操作。
例如,之后,1至64个频率系数的集合可立即由量化器46操作。量化器46生成量化数据,比如一个或多个量化的频率系数的集合。通常,量化是在已通过空间频率转换操作将图像数据变换到频域之后、用于减少或消除高频成分的过程。量化器46使用包括量化因子的量化表对频率系数进行操作。更具体地,在编码器40中,量化器将频率系数Suv除以对应的量化因子以生成量化的频率系数的集合。在图4例示的示例中,量化因子Quv可被存储在存储组件62中或者可作为量化器的输入,其中每时钟周期可获得1或多达64个量化因子Quv。量化器46还可对除法操作的结果进行舍入以消除无关紧要的高频成分。
在本示例中,之后,由量化器46生成的量化的频率系数Squv的集合可在单次操作或单个时钟周期中被立即提供给数据序列器48。数据序列器48被配置为以预定顺序排列量化的频率系数的集合。一种此类顺序是Z字形顺序,如图5所示。图4还例示了块64,其代表执行Z字形排序操作的硬件和/或软件组件。
所生成的以预定顺序排列的量化的频率系数Squv的集合可被存储在存储组件66中。在另一示例中,所生成的1至64个量化的频率系数Squv的集合不需要单独存储,而是可在单次操作(例如,单个时钟周期)中通过数据编码器50操作。数据编码器50对所提取的量化的频率系数Squv执行熵或霍夫曼编码,从而提供编码数据52以进行存储、传送或其他处理。
现在参照图6和图7,其例示了示例图像数据解码器70。解码器70被配置为接收编码图像数据52(比如图3中的编码数据)。在例示的示例中,编码数据立即被提供给数据解码器72。数据解码器72执行数据编码器50的反向功能,例如,反向熵或霍夫曼解码,从而生成量化的频率系数Squv。在8x8像素块的示例中,数据解码器72被配置为在单个时钟周期中生成1个和64个之间的量化的频率系数Squv。系数Squv的数量可部分地取决于所接收的编码图像数据。在图7的一个示例中,所生成的量化的频率系数Squv可被存储在存储组件90中。在另一示例中,所生成的1至64个量化的频率系数Squv的集合不需要单独存储,而是可在单次操作(例如,单个时钟周期)中由数据反向序列器和反量化器操作,下文中将更详细地对其进行描述。
在本示例中,1至64个量化的频率系数Squv的集合可以以通过图3的数据序列器48的操作而生成的预定顺序进行排列。相应地,量化的频率系数Squv可被提供给数据反向序列器74,其以预定顺序的反向顺序排列量化的频率系数Squv。参照图7,在一个示例中,所生成的重新排列的量化的频率系数Squv可被存储在存储组件92中。
在另一示例中,所生成的重新排列的量化的频率系数Squv不需要单独存储,并且在数据反向序列器74之后、量化的频率系数Squv被立即提供给反量化器76,反量化器76对量化的频率系数Squv进行反量化。在一个示例中,反量化器76使用与上文中关于图3的量化器46讨论过的相同的量化表和量化因子。然而,反量化器76将量化的频率系数Squv与对应的量化因子Quv相乘,并且执行与由量化器46执行的舍入操作反向的操作来提取频率系数Suv,频率系数Suv可被存储在存储组件94中或者被立即提供给反向空间频率转换器78。反向空间频率转换器78执行由图3中转换器44执行的空间频率转换的反向操作,以提取原始图像数据42进行显示、打印或其他处理。
4.示例解码器系统
现在参照图8,其例示了示例解码器系统100。在图8中,系统100包括缓冲器组件102,缓冲器组件102被配置为接收包括可变长度码字串的输入数据流104,该可变长度码字串根据熵编码查找表对相应的像素数据串(例如,DCT系数)进行编码。在一个示例中,第一熵编码查找表是包括所有160个条目的JPEG霍夫曼查找表。由缓冲器102提供数据流104(或其连续部分),以通过使用第一编码查找表(例如,与用于对像素数据进行编码的查找表相同的、“完整的”熵编码查找表)的块106(例如,处理器或处理逻辑)和使用第二编码查找表的块108(例如,与块106相同或不同的处理器或处理逻辑)进行处理。
在本示例中,第二编码查找表是第一熵编码查找表的修改版本并且包括多个条目,每个条目包括第一码字和第二码字的码字对。例如,每个码字对中的第一码字选自第一编码查找表中对应于“零行程”的一个或多个条目,而每个码字对中的第二码字选自第一编码查找表中对应于“零行程”或“一行程”的一个或多个条目。参照JPEG霍夫曼查找表,有10个码字对应于“零行程”,并且有10个码字对应于“一行程”。在此示例中,第二编码查找表包括其后跟随着“零行程”码字或“一行程”码字的“零行程”码字的每种组合。基于JPEG霍夫曼查找表,这种修改的第二编码查找表将包括200个条目,通常如下所示:
(其后跟随着“零行程”码字的“零行程”码字)
0/1_0/1,0/1_0/2,…,0/1_0/A,
0/2_0/1,0/2_0/2,…,0/2_0/A,
0/3_0/1,0/3_0/2,…,0/3_0/A,
0/A_0/1,0/A_0/2,…,0/A_0/A,
(其后跟随着“一行程”码字的“零行程”码字)
0/1_1/1,0/1_1/2,…,0/1_1/A,
0/2_1/1,0/2_1/2,…,0/2_1/A,
0/3_1/1,0/3_1/2,…,0/3_1/A,
0/A_1/1,0/A_1/2,…,0/A_1/A,
第一和第二编码查找表块106、108并行地处理数据流104以识别所接收的数据流中的码字与相应的查找表中的条目之间的匹配关系。块106以一次一个码字的方式处理数据流104,以寻找第一编码查找表中的匹配码字条目并且将匹配码字作为输出110提供给选择器组件112。选择器组件112可以是基于优先权的多路器或者其他硬件和/或软件组件,其被配置为从多个输入选择性地提供输出。
块108使用第二编码查找表来处理数据流104,以确定数据流是否包括对应于其后跟随着“零行程”或“一行程”的“零行程”的连续码字。如果块108确定在数据流中的连续码字与第二编码查找表中的码字条目之间存在匹配,则块108将匹配的码字对作为输出114提供给选择器组件112。如果块108确定存在匹配,则块108提供优先权信号,其指示选择器组件112基于输出114选择性地提供输出116。如果块108确定不存在匹配,则块108不提供优先权信号(或者提供不同的信号),其指示选择器组件112基于输出110选择性地提供输出116。
在图8的示例中,封装逻辑块118从选择器组件112接收输出116,并且被配置为将来自块106的可变长度码字输出110或者来自块108的可变长度码字对输出114封装在像素队列120中,该像素队列120可能是固定长度队列。图8的系统100还包括一个或多个解码阶段122,其被配置为执行比如反向数据排序、反量化、反向空间频率转换等等的功能。进一步地,在图8的示例中,输出设备124连接至解码阶段122。在本示例中,输出设备124可为打印引擎,打印引擎被配置为将解码阶段122处理过的像素队列120的内容转换为用于打印图像的对应部分的控制信号。输出设备124还可包括一些其他显示设备,比如显示监视器,其被配置为将像素队列120的内容转换为用于显示图像的对应部分的控制信号。
在系统100中,块106、108还可被配置为提供连接至缓冲器102的反馈输出126,该缓冲器102还可起到基于硬件和/或软件的选择器块的功能。更具体地,当块106、108识别数据流104中的可变长度码字时,块106、108可生成反馈输出126以将码字的长度告知选择器块102。然后,选择器块102可移位一移动窗口的位,以将数据流的下一个连续部分提供给块106、108进行处理。
5.示例操作
除了上述说明之外,图9例示了示例实施例的流程图。此流程图例示的各步骤可通过一个或多个计算设备、系统或其组件执行,比如打印设备20、解码器72和系统100。进一步地,如果合适的话,每个单独步骤的各个方面可分布在多个计算设备之间。
图9例示了可使用例如图6和图8中组件的示例编码处理150。在处理150的块152处,例如,系统100接收包括码字的数据流,该码字根据第一熵编码查找表对相应的像素数据串进行编码。例如,第一熵编码查找表可为在此描述过的JPEG霍夫曼查找表。
在块154处,系统100处理数据流以确定第一码字和第二码字与第二熵编码查找表中的码字条目之间是否存在匹配。在本示例中,第一码字和第二码字是数据流中的连续码字,并且第二熵编码查找表可以是图8中第二编码查找表块108所使用的修改的编码查找表。在块156处,系统100处理数据流以识别第一码字与第一熵编码查找表中的码字条目之间的匹配。在一个示例中,块156处的该处理与步骤154中的处理并行执行。
在块158处,如果第一码字和第二码字与第二熵编码查找表中的码字条目之间存在匹配,则系统100使用第二熵编码查找表解码第一码字和第二码字或将其作为输出提供。在块160处,如果第一码字和第二码字与第二熵编码查找表中的码字条目之间不存在匹配,则系统100使用第一熵编码查找表解码第一码字或将其作为输出提供。
在图9的示例中,在块162处,系统100转而处理下一码字集合。根据一个实施例,如果系统100在块154处没有识别到匹配,则该系统100在块162处转而处理下一个码字,并且控制过程回到块154以继续处理接收到的数据流。相应地,在块154的下一次迭代中,系统100确定第二码字和下一个连续(第三)码字与第二熵编码查找表中的码字条目之间是否存在匹配。进一步地,在块156的下一次迭代中,系统100处理数据流以识别第二码字与第一熵编码查找表中码字条目之间的匹配。此后,在块158处,如果第二码字和第三码字与第二熵编码查找表中的码字条目之间存在匹配,则系统100使用第二熵编码查找表解码该第二码字和第三码字或者将其作为输出提供。在块160处,如果第二码字和第三码字与第二熵编码查找表中的码字条目之间不存在匹配,则系统100使用第一熵编码查找表解码第二码字或者将其作为输出提供。
再次参照块162,根据本实施例,如果系统100在块154处没有识别到匹配,则在块162处该系统100将其处理移位两个码字,并且将控制返回至块154以继续处理接收到的数据流。相应地,在块154的下一次迭代中,系统100确定在下一个连续码字对(例如,第三和第四码字)与第二熵编码查找表中的码字条目之间是否存在匹配。进一步地,在块156的下一次迭代中,系统100处理数据流以识别第三码字与第一熵编码查找表中的码字条目之间的匹配。此后,在块158处,如果第三码字和第四码字与第二熵编码查找表中的码字条目之间存在匹配,则系统100使用第二熵编码查找表解码第三码字和第四码字或者将其作为输出提供。在块160处,如果第三码字和第四码字与第二熵编码查找表中的码字条目之间不存在匹配,则系统100使用第一熵编码查找表解码第三码字或者将其作为输出提供。
通常,块162中的处理提供移动窗口,随着码字被解码并且提供给输出,该移动窗口按顺序遍历数据流。
6.结论
本发明并不按照本申请中所述的特定实施例被限定,这些特定实施例旨在作为各方面的例示。可以进行许多修改和变形而不会背离本发明的精神和范围,这一点对本领域技术人员来说是显而易见的。除了本文所列举的之外,本发明范围内的功能上等效的方法和装置根据前面的描述是显而易见的。这种修改和变形旨在落到所附权利要求的范围内。
关于附图中和这里所讨论的梯形图、场景和流程图中的全部或任意,每个块和/或通信可表示根据示例实施例的信息处理和/或信息发送。可替代的实施例可被包括在这种示例实施例的范围内。进一步地,更多或更少的块和/或功能可与这里所讨论任何的梯形图、场景和流程图一起使用,并且这些梯形图、场景和流程图可以部分或整体地相互结合。
表示信息处理的步骤或块可对应于电路,该电路可被配置为执行这里所述的方法或技术的特定逻辑功能。可替代地或者另外,表示信息处理的步骤或块可对应于程序代码(包括相关数据)的模块、段或部分。程序代码可包括一个或多个指令,该一个或多个指令可由处理器执行以实施上述方法或技术中的特定逻辑功能或行为。程序代码和/或相关数据可被存储在任何类型的计算机可读介质上,诸如存储设备,包括磁盘驱动器、硬盘驱动器或其他存储介质。
计算机可读介质还可包括非暂时性计算机可读介质,诸如短期存储数据的计算机可读介质,像寄存器存储器、处理器缓存和/或随机存取存储器(RAM)。计算机可读介质还可包括较长期存储程序代码和/或数据的非暂时性计算机可读介质,诸如二次或持续长期储存器,例如像只读存储器(ROM)、光盘或磁盘、和/或只读光盘存储器(CD-ROM)。计算机可读介质还可以是任何其他易失性或非易失性存储系统。计算机可读介质可被认为是例如计算机可读存储介质和/或有形存储设备。
尽管这里已经公开多个方面和多种实施例,其他方面和其他实施例对本领域技术人员来说也是显而易见的。这里所公开的多个方面和多种实施例的目的是例示性的而
并不意欲进行限制,真正的范围和精神由所附的权利要求指示。
附录
表K.5-亮度AC系数表(4页中的第1页)
表K.5(4页中的第2页)
表K.5(4页中的第3页)
表K.5(4页中的第4页)

Claims (13)

1.一种计算机实施的方法,包括:
由计算设备接收数据流,所述数据流包括码字串,所述码字串根据第一熵编码查找表编码相应的像素数据串;
由所述计算设备处理所述数据流以确定第一码字和第二码字与第二熵编码查找表中的码字条目之间是否存在匹配,其中所述第一码字和所述第二码字是所述数据流中的连续码字,并且其中所述第二熵编码查找表不同于所述第一熵编码查找表;
如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第一码字和所述第二码字;以及
如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第一码字,
其中所述第二熵编码查找表至少包括多个条目,每个条目包括第一码字和第二码字的码字对,其中每个码字对中的所述第一码字选自所述第一熵编码查找表中对应于零行程的一个或多个条目,并且每个码字对中的所述第二码字选自所述第一熵编码查找表中对应于零行程或一行程的一个或多个条目。
2.如权利要求1所述的方法,还包括:由所述计算设备处理所述数据流以识别所述第一码字与所述第一熵编码查找表中的码字条目之间的匹配,其中,所述计算设备处理所述数据流以识别所述第一码字与所述第一熵编码查找表中的码字条目之间的匹配以及处理所述数据流以确定所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间是否存在匹配是并行执行的。
3.如权利要求1所述的方法,其中所述第二熵编码查找表包括所述第一码字和所述第二码字的码字对的每个唯一组合。
4.如权利要求1所述的方法,还包括:
如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在匹配,则由所述计算设备处理所述数据流以确定第三码字和第四码字与所述第二熵编码查找表中的码字条目之间是否存在匹配,其中所述第一码字、所述第二码字、所述第三码字和所述第四码字是所述数据流中的连续码字。
5.如权利要求4所述的方法,还包括:
如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在匹配,并且(ii)所述第三码字和所述第四码字与所述第二熵编码查找表中的码字条目之间存在匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第三码字和所述第四码字;以及
如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间存在匹配,并且(ii)所述第三码字和所述第四码字与所述第二熵编码查找表中的码字条目之间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第三码字。
6.如权利要求1所述的方法,还包括:
如果所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存在匹配,则由所述计算设备处理所述数据流以确定第三码字和所述第二码字与所述第二熵编码查找表中的码字条目之间是否存在匹配,其中所述第二码字和所述第三码字是所述数据流中的连续码字。
7.如权利要求6所述的方法,还包括:
如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存在匹配,并且(ii)所述第二码字和所述第三码字与所述第二熵编码查找表中的码字条目之间存在匹配,则由所述计算设备使用所述第二熵编码查找表解码所述第二码字和所述第三码字;以及
如果(i)所述第一码字和所述第二码字与所述第二熵编码查找表中的码字条目之间不存在匹配,并且(ii)所述第二码字和所述第三码字与所述第二熵编码查找表中的码字条目之间不存在匹配,则由所述计算设备使用所述第一熵编码查找表解码所述第二码字。
8.如权利要求1所述的方法,其中,使用所述第二熵编码查找表解码所述第一码字和所述第二码字确保了平均每时钟周期两个像素的吞吐量。
9.如权利要求1所述的方法,其中,所述第一熵编码查找表是霍夫曼熵编码查找表。
10.如权利要求1所述的方法,还包括:基于所述第一码字的解码或者基于所述第一码字和所述第二码字的解码,向打印引擎和显示监视器中的一个或多个提供输出数据流。
11.如权利要求10所述的方法,还包括:在向所述打印引擎和所述显示监视器中的一个或多个提供所述输出数据流之前,对所述输出数据流进行反量化并且对所述输出数据流执行反向空间频率转换。
12.一种用于解码数据流的系统,包括:
输入缓冲器,用于接收所述数据流,其中所述数据流包括根据熵编码查找表而编码为码字串的数据;以及
处理器,连接至所述输入缓冲器并且被配置为:
确定所述数据流中的连续码字是否对应于其后跟随着零行程或一行程的零行程;
如果所述连续码字对应于其后跟随着零行程或一行程的零行程,则基于使用第二熵编码查找表解码所述连续码字来提供输出;并且
如果所述连续码字不对应于其后跟随着零行程或一行程的零行程,则基于使用所述熵编码查找表解码所述连续码字中的第一码字来提供所述输出,
其中,所述第二熵编码查找表至少包括多个条目,每个条目包括第一码字和第二码字的码字对,其中每个码字对中的所述第一码字选自所述熵编码查找表中对应于零行程的一个或多个条目,并且每个码字对中的所述第二码字选自所述熵编码查找表中对应于零行程或一行程的一个或多个条目。
13.如权利要求12所述的系统,其中,所述输入缓冲器和所述处理器被包含在打印设备中。
CN201610112402.XA 2015-03-20 2016-02-29 用于数据解码的装置和方法 Expired - Fee Related CN105991895B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/664,335 2015-03-20
US14/664,335 US9538044B2 (en) 2015-03-20 2015-03-20 Apparatus and method for data decoding

Publications (2)

Publication Number Publication Date
CN105991895A CN105991895A (zh) 2016-10-05
CN105991895B true CN105991895B (zh) 2019-01-01

Family

ID=56974476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610112402.XA Expired - Fee Related CN105991895B (zh) 2015-03-20 2016-02-29 用于数据解码的装置和方法

Country Status (3)

Country Link
US (1) US9538044B2 (zh)
JP (1) JP6569949B2 (zh)
CN (1) CN105991895B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083451B2 (en) 2016-07-08 2018-09-25 Asapp, Inc. Using semantic processing for customer support
US10453074B2 (en) * 2016-07-08 2019-10-22 Asapp, Inc. Automatically suggesting resources for responding to a request
US10728555B1 (en) 2019-02-06 2020-07-28 Sony Corporation Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101682773A (zh) * 2007-06-14 2010-03-24 三星电子株式会社 用于对视频数据进行熵编码和熵解码的方法和设备
CN102298948A (zh) * 2010-05-06 2011-12-28 索尼公司 编码装置和方法、记录装置和方法以及解码装置和方法
CN104300991A (zh) * 2005-04-13 2015-01-21 弗劳恩霍夫应用研究促进协会 确保最大比特率的无损信息编码

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5654806A (en) * 1996-05-06 1997-08-05 Xerox Corporation Code manipulation for a high speed JPEG decoder
JP3235555B2 (ja) * 1997-05-14 2001-12-04 日本電気株式会社 信号復号装置及び信号復号方法並びに信号復号処理をコンピュータに行わせるためのプログラムを記録した記録媒体
JP3189876B2 (ja) * 1997-06-09 2001-07-16 日本電気株式会社 可変長符号復号化回路
JPH11284864A (ja) * 1998-03-27 1999-10-15 Fuji Xerox Co Ltd 画像復号装置
US6215424B1 (en) * 1998-12-16 2001-04-10 Thomson Licensing S.A. System for variable length codeword processing suitable for video and other applications
GB0004427D0 (en) * 2000-02-24 2000-04-12 Xeikon Nv Cleaning device
JP4013680B2 (ja) * 2002-07-19 2007-11-28 富士ゼロックス株式会社 復号装置および復号方法
US8457419B2 (en) * 2007-04-13 2013-06-04 Research In Motion Limited Method of decoding entropy-encoded data
US8406307B2 (en) * 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
JP2012060376A (ja) * 2010-09-08 2012-03-22 Olympus Corp データ圧縮装置、データ復号装置、データ圧縮方法、データ復号方法およびデータ圧縮および復号システム
GB2530312B (en) * 2014-09-19 2016-09-14 Imagination Tech Ltd Data compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104300991A (zh) * 2005-04-13 2015-01-21 弗劳恩霍夫应用研究促进协会 确保最大比特率的无损信息编码
CN101682773A (zh) * 2007-06-14 2010-03-24 三星电子株式会社 用于对视频数据进行熵编码和熵解码的方法和设备
CN102298948A (zh) * 2010-05-06 2011-12-28 索尼公司 编码装置和方法、记录装置和方法以及解码装置和方法

Also Published As

Publication number Publication date
JP6569949B2 (ja) 2019-09-04
CN105991895A (zh) 2016-10-05
US20160286083A1 (en) 2016-09-29
US9538044B2 (en) 2017-01-03
JP2016178639A (ja) 2016-10-06

Similar Documents

Publication Publication Date Title
US10136128B2 (en) Cell-based compression with edge detection
TW453049B (en) Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6941019B1 (en) Reentry into compressed data
US8805069B2 (en) Cell-based compression of digital images
US20030138151A1 (en) Encoder rate control
US9596383B2 (en) Interleaved encoding of compressed attribute and color planes
WO2021031877A1 (zh) 图像编解码的方法、装置和芯片
US9667839B2 (en) Digital image color plane compression
CN105991895B (zh) 用于数据解码的装置和方法
US9860427B2 (en) Digital image attribute plane compression
US9838570B2 (en) Cell-based compression with edge detection and interleaved encoding
CN110692244B (zh) 基于最大概率符号的二进制位串编译
CN116389741A (zh) 用于对图像或视频数据的当前块进行编码的方法
JP6531640B2 (ja) 画像データを処理するための装置および方法
US11991335B2 (en) High-speed cell-based image compression
JP2005086353A (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2004120025A (ja) 逆離散コサイン変換装置、画像復号化処理装置、逆離散コサイン変換方法、画像復号化処理方法、プログラムおよび記録媒体

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190101

CF01 Termination of patent right due to non-payment of annual fee