用于数据压缩和解压缩的装置和方法

文档序号:7968571阅读:319来源:国知局
专利名称:用于数据压缩和解压缩的装置和方法
技术领域
本发明涉及数据处理,具体上涉及数据编码压缩/解压缩的方法和装置。
背景技术
各种数据压缩编码技术用于有效地存储和传送数据。当前可以获得的数据压缩编码技术一般可以分类成可变长度编码(VLC)或固定长度编码(FLC)。
VLC执行数据编码处理,以便用于编码数据的代码字的长度可以在长度上变化。即,在VLC中,通过使用具有基于数据的发生概率的不同长度的代码字来编码数据。以下,更详细地说明VLC压缩编码技术。
通常,视频和音频数据的压缩包括将时域数据变换成频域数据的处理。在所述变换处理中,可以使用傅立叶变换,以便在时域中的“n”值由在频域中的“n”值表示。所述变换编码方法可以将视频或音频信号变换成变换系数,所述变换系数进一步划分成DC系数和AC系数。所述DC系数表示预定块的输入信号的平均值,所述AC系数表示对应于所述预定块的输入信号的分量的值。配置AC系数以便当增加计算数量时AC系数值汇聚到常数值。因此,当应用VLC时,可以将具有高发生功率的数据编码为具有一个比特或两个比特的长度的代码字。以这种方式,VLC编码可以减少代码字的长度,以节省存储编码数据所需要的存储器的大小。
但是,在某些情况下,可能由于量化而发生信息丢失。可以对于VLC使用从编码数据的第一比特开始的逐比特分析,这是因为代码字的长度在解码处理期间变化。另外,可以使用首标来指示编码数据的起点和终点,可以使用解码器来逐个比特地分析编码数据,以便检测编码数据的起点和终点。因此,VLC解码可以使用大解码电路和/或更多的处理时间以解码VLC数据。
作为替代方式,FLC可以使用具有固定长度的代码字。FLC解码器可以通过固定数量的比特来分析编码数据,这是因为FLC使用固定长度的代码字。因为不需要用于指示编码数据的起点和终点的首标,因此FLC解码电路一般小于在使用VLC的解码中使用的那些解码电路。类似地,用于解码通过FLC编码的数据的处理时间一般少于解码通过VLC编码的数据的处理时间。
但是,FLC向具有高发生概率的数据分配固定长度的代码字,这导致较大块的编码数据。所述大块可能不适合于压缩包含诸如视频和音频信号之类的有效数据内容的数据。
以下,说明使用在数据的发生概率中的不均衡(disproportion)的数据压缩的效果,考虑下述示例其中,使用二比特的固定长度的二进制代码字来编码四种数据——“0”、“1”、“2”和“3”,所述二比特的固定长度的二进制代码字诸如二进制值“00”、“01”、“10”和“11”。可以考虑在数据的发生概率上的不均衡,以便将具有不同长度的代码字分别分配给在下面的表1中所示的四种数据的每个。
表1

在这个示例中,当向每种数据分配具有固定长度的代码字时,代码字的平均长度是2.0比特,如由下面的方程所确定的那样FLC代码字的平均长度=2×0.6+2×0.2+2×0.1+2×0.1(比特)向上述的示例应用VLC原理,当向如表1中所示的四种数据中的每一种分配具有不同长度的代码字时,代码字的平均长度可能小于2比特,如在下面的方程中所示VLC代码字的平均长度=1×0.6+2×0.2+3×0.1+3×0.1=1.6(比特)因此,虽然VLC对于压缩在发生概率上具有不均衡的数据可以具有优势,诸如在视频或音频信号中经常存在的,但是VLC与FLC相比可能在解码编码数据的过程中使用更多的处理时间。因为可能由于代码字的可变长度、以致于可能需要检测用于指示编码数据的起点和终点的首标而执行从编码数据的第一比特开始的逐比特的分析,所以可能产生额外的处理时间。

发明内容
本发明的实施例提供了用于数据压缩的装置和方法。在此方面,一些实施例可以被实现为包括域变换单元和分类单元的装置,其中所述域变换单元被配置成将时域数据变换成频域数据,所述分类单元被配置成根据频域数据的发生概率来确定频域数据的编码类型。所述装置也包括可变长度编码器,被配置成编码第一频域数据,所述第一频域数据被确定为通过可变长度编码来编码;以及固定长度编码器,被配置成编码第二频域数据,所述第二频域数据被确定为通过固定长度编码来编码。所述装置还包括存储单元,被配置成存储分别通过所述可变长度编码器和所述固定长度编码器编码的所述被编码的第一和第二频域数据,所述被编码的第一和第二频域数据被重新定位,以便所述被编码的第一频域数据可以彼此相邻地放置,以及所述被编码的第二频域数据可以彼此相邻地放置。
在其他实施例中,所述分类单元可以确定通过固定长度编码来编码具有高发生概率的预定数量的频域数据,以及通过可变长度编码来编码其他频域数据。所述分类单元也可以确定通过固定长度编码来编码具有四个最高发生概率的四个频域数据。所述分类单元可以进一步确定通过固定长度编码来编码与发生概率的不均衡无关的DC值。
在其他实施例中,所述存储器依序存储通过固定长度编码器编码的被编码的第二频域数据,并且然后接着被编码的第二频域数据存储通过所述可变长度编码器编码的被编码的第一频域数据。
在其他实施例中,提供了用于数据压缩的方法。在此方面,可以将一些实施例实现为下述方法,所述方法包括将输入的时域数据变换成频域数据,并且根据频域数据的发生概率来确定频域数据的编码类型,这样的方法也可以包括编码被确定为通过可变长度编码来编码的第一频域数据;编码被确定为通过固定长度编码来编码的第二频域数据;以及通过下述方式来存储分别通过可变长度编码器和固定长度编码器编码的被编码的第一和第二频域数据所述方式是通过将被编码的第一和第二频域数据重新定位,以便被编码的第一频域数据可以彼此相邻地放置,以及被编码的第二频域数据可以彼此相邻地放置。
在一些实施例中,可以通过固定长度编码来编码具有高发生概率的预定数量的频域数据,并且可以通过可变长度编码来编码其他频域数据。在其他实施例中,可以通过固定长度编码来编码具有四个最高发生概率的四个频域数据,在其他实施例中,可以通过固定长度编码来编码与发生概率的不均衡无关的DC值。
在其他实施例中,可以依序存储通过固定长度编码器编码的被编码的第二频域数据,并且然后接着被编码的第二频域数据存储通过所述可变长度编码器编码的被编码的第一频域数据。
在其他实施例中,一种用于数据解压缩的装置可以包括存储单元,被配置成存储通过可变长度编码器编码的第一频域数据和通过固定长度编码器编码的第二频域数据,所述被编码的第一和第二频域数据被重新定位,以便被编码的第一频域数据可以彼此相邻地放置,以及被编码的第二频域数据可以彼此相邻地放置。所述装置也可以包括可变长度解码器,被配置成解码通过所述可变长度编码器编码的第一频域数据;固定长度解码器,被配置成解码通过所述固定长度编码器编码的第二频域数据;以及域变换单元,被配置成将所述被解码的第一和第二频域数据变换成时域数据。
在其他的实施例中,提供了用于数据解压缩的方法,这样的方法可以包括在解码通过固定长度编码方法编码的固定长度编码数据的同时,解码在通过可变长度编码方法编码的多个可变长度编码数据中的第一可变长度编码数据,并且依序解码在所述多个可变长度编码数据中的第二可变长度编码数据,所述第二可变长度编码数据包括除了所述第一可变长度编码数据之外的在所述多个可变长度编码数据中的其他可变长度编码数据。
在其他实施例中,可以通过下述方式来同时解码所述多个可变长度编码数据向所述多个可变长度编码数据应用条件分支,以便在通过固定长度解码解码所述固定长度编码数据的同时在单个时钟周期期间解码数据。


图1是示出按照本发明的一个示例实施例的数据编码装置的方框图。
图2是示出按照本发明的一个示例实施例的编码数据的方法和解码数据的方法的流程图。
图3是示出按照本发明的一个示例实施例的在数据编码处理期间的数据改变的示意图。
图4是示出用于解码通过传统编码方法编码的数据的处理时间和用于解码通过按照本发明的一些实施例的编码方法编码的数据的处理时间的比较的时序图。
图5是示出用于解码通过使用传统方法编码的数据的单个时钟周期与用于解码按照在此公开的一些实施例的编码方法编码的数据的单个时钟周期的比较的时序图。
具体实施例方式
现在参见附图来更全面地说明本发明的实施例,在所述附图中,图解了本发明的实施例。但是,本发明可以被体现为许多不同的形式,并且应当不被理解为限于在此给出的实施例。而且,提供这些实施例以便本公开是彻底和完整的,并且将全面地向本领域内的技术人员传达本发明的范围。在本申请中,类似的附图标号表示类似的单元。
可以明白,虽然可以在此使用术语第一、第二等来描述各种元件,但是这些术语应当不限制这些元件。这些术语用于将元件彼此区分。在不脱离本发明的范围的情况下,例如,第一元件可以被称为第二元件,并且,类似地,第二元件可以被称为第一元件。在此使用的术语“和/或”包括相关联的所列出项目的一个或多个的任何和所有组合。
在此使用的术语用于描述特定的元件,并且不意欲限定本发明。在此使用的单数形式“一个”和“所述”意欲也包括复数,除非上下文清楚地另外指示。还可以明白,在此使用的术语“包括”指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但是不排除存在或增加一个或多个其他特征、整数、步骤、操作、元件、部件和/或组。
除非另外限定,在此使用的所有术语(包括科技术语)具有与本发明所属的领域内的普通技术人员通常理解的相同的含义。还可以明白,诸如在通常使用的词典中定义的那些的术语应当被解释为具有与它们在相关领域的环境中的含义一致的含义,并且不以理想或过分正式的含义来解释,除非在此明确地如此限定。
也应当注意,在一些替代的实现方式中,在所述块中所述的功能/行为可以不以在流程图中所述的顺序发生。例如,根据所涉及的功能/行为,连续示出的两个块可以事实上基本上同时地被执行,或者,可以有时以逆序来执行所述块。
图1是示出按照本发明的一个示例实施例的数据编码装置的方框图。如图1中所示,所述数据编码装置包括第一域变换器单元110、分类单元120、VLC编码器130、FLC编码器140和存储单元150。所述数据解码装置可以包括VLC解码器160、FLC解码器170和第二域变换器单元180。
第一域变换单元110被配置成将时域输入数据变换成频域数据。分类单元120确定由第一域变换单元110变换的数据的合适编码类型(VLC或FLC),所述分类可以基于由第一域变换单元110变换的数据的发生概率。按照编码类型,分类单元120向VLC编码器130或FLC编码器140传送所变换的数据,其中所述VLC编码器130通过使用具有可变长度的代码字来编码所变换的数据,所述FLC编码器140通过使用具有固定长度的代码字来编码所变换的数据。
存储单元150然后存储在VLC编码器130和FLC编码器140中编码的数据。在存储所述数据的过程中,存储单元150按照用于编码数据的编码类型来重新定位所述编码数据。例如,存储单元150重新定位所述编码数据,以便通过VLC编码的数据被定位于与其他VLC数据相邻。类似地,存储单元150将通过FLC编码的数据重新定位于与其他FLC编码数据相邻。
通过所使用的编码的类型来解码所述编码数据。例如,VLC解码器160通过使用具有可变长度的代码字来解码被变换的数据,而FLC解码器170通过使用具有固定长度的代码字来解码被变换的数据。第二域变换器单元180然后可以将从VLC解码器160和FLC解码器170接收的频域数据变换成时域输入数据,其中可以提供所述时域输入数据作为输出。
现在参见图2,其是示出按照本发明的一些实施例的编码数据和解码数据的方法的流程图。时域数据被接收(块205),并且被变换成频域数据(块210)。频域数据被分类(块215)以确定适当的编码类型。所述分类可以基于例如所变换的数据的发生概率。使用编码数据的发生概率,所述数据被分类以通过使用VLC或FLC来编码(块220)。除了AC值的一些值之外,还可以通过FLC来编码在数据变换期间产生的任何DC值。被变换的数据根据编码类型而被传送到VLC编码器或FLC编码器。在接收到被变换的数据后,VLC和FLC编码器编码它们各自的数据。以这种方式,VLC编码器通过使用可变长度代码字来编码被变换的数据,而FLC编码器通过使用固定长度代码字来编码被变换的数据。
编码数据然后被存储(块230)。存储编码数据包括按照所使用的编码类型来重新定位编码数据(块225)。具体上,通过VLC编码的数据被定位为与其他VLC编码数据相邻,而通过FLC编码的数据被定位为与其他FLC编码数据相邻。在重新定位后,存储编码数据(块230)。
在存储编码数据后,可以请求解码所述编码数据(块235)。可以对于在存储器中存储的编码数据执行VLC和FLC解码(块240)。例如,可以从存储器读取VLC编码数据并且使用VLC来将其解码(块240)。类似地,可以从存储器读取FLC编码数据并且使用FLC将其解码(块240)。
现在参见图3,其是示出按照本发明的一些实施例的在数据编码处理期间的数据的改变的示意图。时域数据310被输入到第一域变换单元110。例如,时域数据310可以包括8个值(DATA n、DATA n+1、…、以及DATA n+7)它们可以每个包括几个比特的信息。时域数据310被变换成频域数据320。在当前示例中,所述8个时域数据310(DATA n、DATA n+1、…、以及DATAn+7)被变换成一个DC信息块和7个AC信息块。在一些实施例中,所述频域数据320的7个AC信息块被指定采用VLC来编码。编码数据330可以是从频域数据320编码得到的数据,以便AC4、AC5、AC6和AC7被确定为通过FLC来编码,而AC1、AC2和AC3被确定为通过VLC来编码。这可以例如在AC4、AC5、AC6和AC7具有比AC1、AC2和AC3高的发生概率时发生。编码数据340提供了在除了所选择的AC信息块之外、还有与不均衡的发生概率无关的DC值被确定为通过FLC来编码时的一个示例。在这种情况下,编码数据350表示由编码数据340重新定位的数据,以便通过同一编码类型编码的数据彼此相邻。例如,与其他FLC编码数据相邻地存储通过FLC编码的数据,与其他VLC编码数据相邻地存储通过VLC编码的数据。
如上所述,8个时域数据值被变换成8个频域数据320。每个频域数据值按照其发生概率而通过VLC或FLC来编码。因此,如在频域数据350中所示,在存储器中重新定位编码数据340,以便通过同一编码类型编码的数据彼此相邻。例如,AC4、AC5、AC6和AC7彼此相邻地存储在第一区域中,AC1、AC2和AC3彼此相邻地存储在第二区域中。
现在参见图4,其是示出与通过传统编码方法编码的数据相比的、对通过按照本发明的一个示例实施例的编码方法编码的数据进行解码的处理时间的时序图。系统时钟包括多个时钟周期202、204、206和208。解码I示出了在传统编码处理中的定时。如在解码1中所示,在由几个时钟周期(例如“n”个时钟周期)构成的一个单位时钟周期期间解码一个数据值。作为比较,解码II和解码III示出了按照本发明的示例实施例的解码处理中的定时。解码II例如示出了用于解码通过VLC编码的数据的处理中的定时,解码III示出了用于解码通过FLC编码的数据的处理中的定时。
对于通过传统VLC编码方法编码的数据,如在图4的解码I中所示,需要通过编码数据的最后比特的、编码数据的逐比特检测。因此,如果VLC编码数据的二进制代码是4比特宽,则会需要32(4比特×8数据,即AC1到AC7)个时钟周期来解码通过VLC编码的数据。但是,使用如解码II和解码III图解的编码方法,可以在12(4比特×3数据,即AC1到AC3)个时钟周期中解码通过VLC编码的数据。
如在解码I中所示,在第一时钟周期202期间解码DC值,在第二时钟周期204期间解码第一VLC编码AC值AC1,在第三时钟周期206期间解码第二VLC编码AC值AC2,而在第四时钟周期期间解码第三VLC编码AC值AC3。因此,在可以于传统编码方法下解码通过VLC编码的AC值AC7之前,过去了7个时钟周期。但是,在通过如图4的解码II和解码III所图解的(即,如从其可以看到的)的编码方法编码的数据的情况下,在第一时钟周期202期间解码所有的FLC编码值(DC、AC4到AC7)和第一VLC编码AC值AC1。另外,在第二时钟周期204期间解码第二VLC编码AC值AC2,而在第三时钟周期206期间解码第三VLC编码AC值AC3。以这种方式,因为仅仅需要三个时钟周期来解码通过在此所述的编码方法编码的数据,所以减少了解码时间。
现在参见图5,其是示出用于对通过使用传统方法编码的数据进行解码的单个时钟周期与用于对通过按照在此公开的一些实施例的编码方法编码的数据进行解码的单个时钟周期的比较的时序图。一个系统时钟包括第一时钟周期210和第二时钟周期212。解码I的图示示出了在传统解码处理中的定时。解码II和解码III示出了在按照本发明的一些实施例的解码处理中的定时,通常,为了在单个时钟周期中解码DC值和AC值,使用多个条件分支。例如,需要24×8(8表示DC、AC1到AC7)个条件分支来用于解码由一个DC值和7个AC值组成的VLC编码数据。
按照本发明的一些实施例的编码方法可以使用24×5(5表示DC、AC4-AC7)个条件分支来解码通过FLC编码的数据。但是,因为通过FLC编码的数据具有高发生概率,因此可以使用少于24×5个条件分支。即,可以使用少于23×5(5表示DC、AC4-AC7)个条件分支来用于解码通过FLC编码的数据。而且,使用仅仅对应于三个VLC编码数据(AC1-AC3)的条件分支,因此,可能需要24×3(3表示AC1、AC2、AC3)个条件分支来用于解码通过VLC编码的数据。结果,总共23×5(5表示DC、AC4-AC7)+24×3(3表示AC1、AC2、AC3)个条件分支足以用来在单个时钟周期中解码通过按照本发明的示例实施例的编码方法编码的数据。因此,与使用传统编码方法编码的数据相比,本发明的编码方法可以减少执行的条件分支的数量,以便在单个时钟周期期间解码数据。可以通过固定长度的编码方法来编码具有高发生概率的频域数据,所述固定长度的编码方法可以减少用于解码所述数据的时间。而且,可以通过利用VLC和FLC的各自的优点来有效地执行数据解码。
虽然已经详细说明了本发明的示例实施例及其它们的优点,但是,应当明白,可以在不脱离本发明的范围的情况下在此进行各种改变、替换和变换。
本申请要求对于2002年9月1日在韩国知识产权局提交的韩国专利申请第2005-81135号的优先权,其公开通过引用被整体包含在此。
权利要求
1.一种用于数据压缩的装置,包括域变换单元,被配置成将时域数据变换成频域数据;分类单元,被配置成根据频域数据的发生概率来确定频域数据的编码类型;可变长度编码器,被配置成编码第一频域数据,其中所述第一频域数据被确定为通过可变长度编码来编码;固定长度编码器,被配置成编码第二频域数据,其中所述第二频域数据被确定为通过固定长度编码来编码;以及存储单元,被配置成存储通过所述可变长度编码器编码的被编码的第一频域数据和通过所述固定长度编码器编码的第二频域数据,其中通过将被编码的第一频域数据彼此相邻地重新定位以及将被编码的第二频域数据彼此相邻地重新定位来重新定位所述第一和第二频域数据。
2.按照权利要求1的装置,其中,所述分类单元被进一步配置成确定通过固定长度编码来编码具有高发生概率的预定数量的频域数据,以及通过可变长度编码来编码其他频域数据。
3.按照权利要求2的装置,其中,所述分类单元被进一步配置成确定通过固定长度编码来编码具有四个最高发生概率的四个频域数据。
4.按照权利要求1的装置,其中,所述分类单元被进一步配置成确定通过固定长度编码来编码与发生概率的不均衡无关的DC值。
5.按照权利要求1的装置,其中,所述存储器被进一步配置成依序存储通过所述固定长度编码器编码的被编码的第二频域数据,并且然后与其他的被编码的第一频域数据相邻地存储通过所述可变长度编码器编码的被编码的第一频域数据。
6.按照权利要求1的装置,其中,依序存储通过所述固定长度编码器编码的被编码的第二频域数据,并且然后,紧接被编码的第二频域数据来存储通过所述可变长度编码器编码的被编码的第一频域数据。
7.一种数据压缩的方法,所述方法包括将输入的时域数据变换成频域数据;根据所述频域数据的发生概率来确定所述频域数据的编码类型;编码被确定为通过可变长度编码来编码的第一频域数据;编码被确定为通过固定长度编码来编码的第二频域数据;通过下述方式来存储通过可变长度编码器编码的被编码的第一频域数据通过将被编码的第一频域数据重新定位为与其他的被编码的第一频域数据彼此相邻;通过下述方式来存储通过固定长度编码器编码的被编码的第二频域数据通过将被编码的第二频域数据重新定位为与其他的第二频域数据彼此相邻;
8.按照权利要求7的方法,还包括使用所述固定长度编码来编码具有高发生概率的预定数量的频域数据;以及使用所述可变长度编码来编码所述其他频域数据。
9.按照权利要求8的方法,还包括,使用固定长度编码来编码具有四个最高发生概率的四个频域数据。
10.按照权利要求7的方法,还包括使用固定长度编码来编码与发生概率的不均衡无关的DC值。
11.一种用于数据解压缩的装置,包括存储单元,被配置成存储通过可变长度编码器编码的第一频域数据和通过固定长度编码器编码的第二频域数据,其中所述被编码的第一频域数据与其他的第一频域数据相邻地存储,以及其中所述被编码的第二频域数据与其他的第二频域数据相邻地存储;可变长度解码器,被配置成解码通过所述可变长度编码器编码的第一频域数据;固定长度解码器,被配置成解码通过所述固定长度编码器编码的第二频域数据;以及域变换单元,被配置成将所述被解码的第一和第二频域数据变换成时域数据。
12.一种用于数据解压缩的方法,包括在解码通过固定长度编码方法编码的固定长度编码数据的同时,解码在通过可变长度编码方法编码的多个可变长度编码数据中的第一可变长度编码数据;以及依序解码在所述多个可变长度编码数据中的第二可变长度编码数据,所述第二可变长度编码数据包括除了所述第一可变长度编码数据之外的在所述多个可变长度编码数据中的其他可变长度编码数据。
13.按照权利要求12的方法,还包括通过下述方式来同时解码所述多个可变长度编码数据向所述多个可变长度编码数据应用条件分支,以便在通过固定长度编码来解码所述固定长度编码数据的同时在单个时钟周期期间解码数据。
14.一种用于减少在数据解压缩中执行的条件分支的数量的方法,包括在第一时钟周期期间解码通过第二编码技术编码的数据和通过第一编码技术编码的数据的第一部分;以及在第二时钟周期期间解码通过第一编码技术编码的数据的第二部分。
全文摘要
一种用于数据压缩的装置包括域变换单元、分类单元、可变长度编码器、固定长度编码器以及存储单元。域变换单元将时域数据变换成频域数据。分类单元根据频域数据的发生概率来确定频域数据的编码类型。可变长度编码器编码第一频域数据,所述第一频域数据被确定为通过可变长度编码来编码。固定长度编码器编码第二频域数据,所述第二频域数据被确定为通过固定长度编码来编码。存储单元通过重新定位被编码的第一和第二频域数据来存储所述被编码的第一和第二频域数据,以便所述被编码的第一频域数据被相邻地放置,而所述被编码的第二频域数据被相邻地放置。因此,可以减少用于解码相应数据的时间。
文档编号H04N7/30GK1925331SQ20061012805
公开日2007年3月7日 申请日期2006年9月1日 优先权日2005年9月1日
发明者金范渊, 金钟善, 李时和, 李相祚 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1