编码器、解码器和编码解码方法

文档序号:9602781阅读:1244来源:国知局
编码器、解码器和编码解码方法
【技术领域】
[0001] 本发明涉及编码器,例如可采用直接ODelta算子的编码器。此外,本发明涉及编 码数据的方法,例如采用直接ODelta算子的数据编码方法。此外,本发明还涉及用于对编 码数据进行解码的解码器,例如采用逆ODelta算子的解码器。此外,本发明涉及编码数据 的解码方法,例如采用逆ODelta算子对编码数据进行解码的方法。更进一步地,本发明涉 及记录在非瞬时机器可读的数据存储介质上的软件产品,其中,软件产品可在计算机硬件 上执行来实现上述方法。
【背景技术】
[0002] 克劳德?香农(ClaudeE.Shannon)提出了一种数学理论,它为现代通信系统提供 了基础。此外,在上述数学理论知识上,产生了各种现代编码方法。表1提供了一个概述当 代技术知识的信息来源的列表。
[0003] 表1:已知技术
[0004]

[0006] 在欧洲专利EP1376974B1( "数据包报头压缩方法和装置",申请人是Alcatel Lucent(FR)),描述了一种传输数据包的方法,其中数据包由包含压缩值的字段(CF)组成。 所述压缩值表示在两个连续数据包之间不断变化的值,并且包括一个预定义的间隔(以下 简称"解释区间(interpretationinterval)")。方法包括以下步骤:
[0007] (i)如果要压缩的值与预定义的回绕(wraparound)边界之间的距离低于预设阈 值,给所述压缩值追加一个附加位,所述附加位明确地表示该值被压缩到回绕边界的相对 位置;
[0008] (ii)在一个接收器中,根据所有接收到的压缩值的比特位计算第一解释区间;
[0009] (iii)如果第一解释区间的不止一个值与接收到的压缩值相匹配,用信号指示回 绕(wraparound);
[0010] (iv)在用信号指示回绕的时候,根据压缩值的除所述附加位之外的所有接收到的 比特位计算第二解释区间;
[0011] (v)使用附加位,在第二解释区间消除解压缩值的歧义。
[0012] 香农熵(Shanonentropy)的定义是由表1中所列的P7和P8文件提供的。有许 多不同的压缩方法,可以用于压缩给定数据的熵,这些方法有时被用于修改熵,例如,为了 获得给定数据的更大的无损压缩率之目的;这种修改熵的方法包括,例如,在表1中P2文件 描述的行程长度编码(RLE),表1中P1文件描述的可变长度编码(Variable-lengthcode, VLC),表1中P3文件描述的哈夫曼编码(Huffmancoding),表1中P6文件中描述的德尔塔 编码(Deltaencoding),和表1中P4文件描述的算术编码(Arithmeticcoding),也称为 距离编码(rangecoding)。这些方法有利于压缩代表字母、数字、字节和字的数据。然而, 这些方法并不适用于压缩比特级的给定数据,并且由于这个原因这些方法不能很好的压缩 那些容易一位一位地变化的给定数据。
[0013] 德尔塔编码,例如表1中P6文件所述,可以从正数的原始数据值中生成增量值,这 些增量值可以是正数或者负数。此外,有一些德尔塔编码的实现是基于所采用的数据元素 的尺寸而用于8位、16位或32位回绕。然而,目前缺乏针对8位、16位、32位以外环境而 优化的德尔塔编码器。特别是,当编码原始比特值时,也即"0"和" 1",现有德尔塔编码器 是尤其低效的,例如逐位(一位一位地,bit-by-bit)编码,它典型地形成三个不同的值,即 "_1"、"0"和 "1"。
[0014] 所有类型的数据都会占用存储空间,当数据从一个位置移到另一个位置时,需要 通信系统的传输容量。随着数据量的增加,例如三维视频内容等多媒体的发展,相应的需要 更多的存储空间和传输容量来处理数据,并且随着数据量的增加还需要更多的能源。在全 球范围内,被传输的数据量正在随着时间不断增加;例如,因特网包含大量的数据,其中一 些存储于多个副本。此外,有些方法可同时用于压缩与数据相关的熵E,例如用在减少数据 的大小的时候。此外,也有一些用于修正熵的方法,例如德尔塔编码和行程长度编码,但是, 仍然需要改进的方法,来提供比当前方法更大的数据压缩。
[0015] 还有需要对已知的德尔塔编码方法进行优化的使用,来实现对原始数据更快、更 有效的编码,例如逐位编码,例如,在原始数据的数据元素中的所有值没有被使用,和/或, 与德尔塔编码方法相结合使用的之前或之后的编码方法需要比初始动态用于待编码的数 据的比特位更高的比特位格式。

【发明内容】

[0016] 本发明旨在于提供一种德尔塔编码器的改进形式,即一种"直接ODelta编码器", 当对个别比特进行编码,即,以一位一位的方式进行编码,以及对其它数据值进行时,这种 编码器是更有效的。
[0017] 此外,本发明旨在于提供一种德尔塔编码数据的改进方法,即一种直接ODelta编 码数据的方法。
[0018] 此外,本发明旨在于提供一种用于解码已编码数据的改进的解码器,例如ODelta 已编码数据,即一种逆ODelta解码器。
[0019] 进一步地,本发明旨在于提供一种解码已编码数据的改进的方法,例如ODelta已 编码数据,即一种逆ODelta解码数据的方法。
[0020] 根据第一个方面,提供了一种如权利要求1所述的编码器:一种编码器(10),用于 编码输入数据(D1)以生成相应的已编码输出数据(D2或D3),所述输入数据(D1)包括多个 数字值的序列,其特征在于,所述编码器(10)包括数据处理装置,用于对输入数据(D1)进 行差分和/或总和形式的编码的,以生成一个或多个相应的已编码序列,其中,所述一个或 多个相应的已编码序列受到一个围绕最大值的回绕和/或一个围绕最小值的回绕处理,生 成已编码输出数据(D2或D3)。
[0021] 优选地,所述回绕(wraparound)用于避免在实施所述编码器时产生负偏差或太 大的值。所述术语"数值"(numericalvalue)被解释为包括个别比特位(二进制),和比 特组(比二进制更高的阶)。
[0022] 本发明的有益效果在于,差分和/或总和编码的结合,和所述回绕提供所述输入 数据(D1)的有用的熵修正以生成所述已编码数据(D2),能够在一个给定的熵编码器内从 已编码数据(2)生成已编码数据(D3)时增强数据压缩。
[0023] 可选地,所述数据处理装置用于分析所述输入数据(D1)和/或一个或多个相应的 已编码序列来计算一个或多个偏移值、最小值和/或最大值,用于所述一个或多个相应的 已编码序列,以生成所述已编码输出数据(D2或D3)。进一步可选地,所述一个或多个偏移 值有一个值。
[0024] 可选地,所述编码器(10)用于处理包括一个或多个Ι-bit值的所述多个值,所述 编码器(10)用于以一位一位方式编码所述输入数据(D1)。
[0025] 可选地,所述一个或多个相应的已编码序列代表在所述输入数据(D1)的连续的 值中的变化。
[0026] 可选地,所述编码器用于使用一个回绕值(wrapValue),其中所述回绕值是最大值 (highValue)-最小值(lowValue)+l。当生成所述已编码输出数据(D2或D3)时,这样的 回绕值被优选地使用,以避免产生比所述最小值(lowValue)更小的值、负值、或比最大值 (highValue)更大的值。
[0027] 可选地,所述编码器(10)用于将所述输入数据(D1)细分为多个部分,所述多个部 分被单独编码。进一步可选地,所述编码器(10)用于仅当数据压缩在所述已编码输出数据 (D2或D3)中是可实现的时,对所述数据的部分有选择地进行编码。
[0028] 可选地,所述编码器(10)用于为一系列预测值使用默认第一个预测值,所述预测 值用于生成所述输出已编码数据(D2或D3),其中所述已编码数据通过使用输入值、预测值 和编码算子而生成。进一步可选地,所述默认第一个预测值为"〇"。进一步可选地,所述第一 个预测值由以下至少一种值的计算得到:最小值(lowValue)、最大值(highValue)、(最 大值(highValue) + 最小值(lowValue)+1)/2〇
[0029] 可选地,所述编码器(10)应用附加的编码,以生成所述已编码输出数据(D2),其 中所述附加的编码包括以下中的至少一个:行程长度编码(RLE)、SRLE,熵修正(ΕΜ)、可变 长度编码(VLC)、哈夫曼编码、算术编码、距离编码。
[0030] 可选地,所述编码器(10)用于根据其中互相类似的比特的行程长度将所述输入 数据(D1)细分为多个部分,所述的类似的比特的行程长度在使用行程长度编码(RLE)、 SRLE、熵修正(EM)、哈夫曼编码、可变长度编码(VLC)、距离编码和/或算术编码进行编码时 是有效率的。
[0031] 可选地,所述处理装置通过使用计算机硬件实现,所述计算机硬件用于执行一个 或多个记录于非瞬时机器可读的数据存储介质上的软件产品。
[0032] 根据第二个方面,提供了一种使用编码器(10)编码输入数据(D1)以生成相应的 已编码输出数据(D2或D3)的方法,所述输入数据(D1)包括多个值的序列,其特征在于,所 述方法包括:
[0033] (a)使用编码器(10)的数据处理装置,对输入数据(D1)进行差分和/或总和形式 的编码,以生成一个或多个相应的已编码序列;并且
[0034] (b)使用所述数据处理装置,使得所述一个或多个相应的已编码序列受到一个围 绕最大值的回绕和/或一个围绕最小值的回绕处理,以生成所述已编码输出数据(D2或D3) 〇
[0035] 优选地,所述回绕用于避免在实施所述编码器时产生负偏差或太大的值。所述术 语"数值"(numericalvalue)被解释为包括个别比特位(二进制),和比特组(比二进制 更高的阶)。
[0036] 可选地,所述方法包括使用所述数据处理装置来分析所述输入数据(D1)和/或所 述一个或多个相应的已编码序列来计算一个或多个偏移值、最小值和/或最大值,用来作 用于所述一个或多个相应的已编码序列以生成所述已编码输出数据(D2或D3)。进一步可 选地,所述方法包括为一个或多个偏移值使用"〇"值。
[0037] 可选地,所述方法包括处理所述包括一个或多个Ι-bit值的多个值,并以一位一 位方式编码所述输入数据(D1)。进一步可选地,所述方法包括为一个或多个偏移值使用 "0" 值。
[0038] 可选地,当实施所述方法时,所述一个或多个相应的已编码序列代表所述输入数 据(D1)的连续的值的变化。
[0039] 可选地,所述方法包括执行所述编码器以使用一个回绕值(wrapValue),所述回 绕值是最大值(highValue)-最小值(lowValue)+1。当生成所述已编码输出数据(D2或 D3)时,这样的回绕被优选地使用,以避免产生比所述最小值(lowValue)更小的值、负值、 或比最大值(highValue)更大的值。
[0040] 可选地,所述方法包括将所述输入数据(D1)细分为多个部分,所述多个部分被单 独编码。进一步可选地,所述方法包括仅当数据压缩在所述已编码输出数据(D2或D3)中 是可实现的时,对所述数据的部分有选择地进行编码。
[0041] 可选地,所述方法包括为一系列预测值使用默认第一个预测值,所述预测值用于 生成所述输出已编码数据(D2或D3),其中所述已编码数据通过使用输入值、预测值和编码 算子而生成。进一步可选地,在所述方法中,所述默认第一个预测值为"0"。进一步可选地, 所述方法包括由以下至少一种值的计算得到所述第一个预测值:最小值(lowValue)、最大 值(highValue)、(最大值(highValue) + 最小值(lowValue)+1)/2〇
[0042] 可选地,所述方法包括应用附加的编码,以生成所述已编码输出数据(D2),其中所 述附加的编码包括以下中的至少一个:行程长度编码(RLE)、SRLE、熵修正(EM)、可变长度 编码(VLC)、哈夫曼编码、算术编码、距离编码。
[0043] 进一步可选地,所述方法包括根据其中互相类似的比特的行程长度将所述输入数 据(D1)细分为多个部分,所述的类似的比特的行程长度在使用行程长度编码(RLE)、SRLE、 熵修正(EM)、哈夫曼编码、可变长度编码(VLC)、距离编码和/或算术编码进行编码时是有 效率的。
[0044] 进一步可选地,所述方法包括通过使用计算机硬件实现所述处理装置,所述计算 机硬件用于执行一个或多个记录于非瞬时机器可读的数据存储介质上的软件产品。
[0045]根据第三个方面,提供了一种解码器(20),用于解码已编码数据(D2、D3或D4)以 生成相应的已解码输出数据(D5),其特征在于,所述解码器(20)包括数据处理装置,用于 处理已编码数据(D2、D3或D
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1