首页 / 专利库 / 引擎 / 发动机 / 热机 / 内燃机 / 四冲程发动机 / 压缩行程 / 提供用于数据压缩的改进的行程长度编码算法的方法

提供用于数据压缩的改进的行程长度编码算法的方法

阅读:172发布:2020-05-13

专利汇可以提供提供用于数据压缩的改进的行程长度编码算法的方法专利检索,专利查询,专利分析的服务。并且本 发明 提供编码多个位序列的改进的方法。本发明包括读取位序列;确定该位序列的重复因子的最小位数,其中该最小位数是可变的;及用该重复因子编码位序列。该方法通过采用其中用于表示重复因子(RF)的位数对各等值的位的单个序列改变的策略提供改进的行程长度编码 算法 。不是传统地用任何预定的与固定的位数表示RF,本发明的RF是用将该重复因子二进制编码成无符号整数的最小位数表示的。,下面是提供用于数据压缩的改进的行程长度编码算法的方法专利的具体信息内容。

1.一种编码多个位序列的方法,包括:
(a)读取位序列;
(b)确定该位序列的重复因子的最小位数,其中该最小位数是可 变的;以及
(c)用该重复因子编码该位序列。
2.如权利要求1的方法,其中该读取步骤(a)包括:
(a1)读取输入位流的多个接连的等值的位。
3.如权利要求2的方法,其中该读取步骤(a1)包括:
(a1ⅰ)读取输入位流的第一位;
(a1ⅱ)将前一位设置成等于该第一位;
(a1ⅲ)读取输入位流的下一位;
(a1ⅳ)将当前位设置成等于该下一位;
(a1ⅴ)判定前一位是否等于当前位;
(a1ⅵ)如果前一位等于当前位,将前一位设置成等于当前位, 及返回到步骤(a1ⅲ);及
(a1ⅶ)如果前一位不等于当前位,停止读取。
4.如权利要求1的方法,其中该确定步骤(b)包括:
(b1)计数输入位流的多个接连的等值的位,其中该接连的等值 的位构成该位序列,其中计数的结果便是重复因子;以及(b2)确定该重复因子的重复因子编码宽度,其中该重复因子编 码宽度为该重复因子的最小位数。
5.如权利要求4的方法,其中该计数步骤(b1)包括:
(b1ⅰ)如果重复因子大于预定的最大数,将重复因子设定为等 于预定的最大数。
6.如权利要求4的方法,其中该确定步骤(b2)包括:
(b2ⅰ)如果重复因子不大于1,将重复因子编码宽度设定为等于 1;及
(b2ⅱ)如果重复因子大于1,将重复因子编码宽度设定为等于 1加不大于该重复因子以2为底的对数的最大整数。
7.如权利要求1的方法,其中该编码步骤(c)包括:
(c1)将重复因子的重复因子编码宽度写到输出位流中;以及
(c2)将重复因子写到输出位流中。
8.如权利要求1的方法,其中在该读取步骤(a)之前包括:
(a1)将重复因子初始化成1。
9.如权利要求1的方法,还包括:
(d)插入与该位序列的值相反的位值的零长度序列;
10.如权利要求9的方法,其中该插入步骤(d)包括:
(d1)将重复因子设定为等于零;及
(d2)用等于零的重复因子编码该零长度序列。
11.一种带有用于编码位序列的程序指令的计算机可读的介质, 这些指令用于:
(a)读取位序列;
(b)为该位序列确定重复因子的最小位数,其中该最小位数是 可变的;及
(c)用该重复因子编码该位序列。
12.如权利要求11的介质,其中该读取指令(a)包括指令用于:
(a1)读取输入位流的多个接连的等值的位。
13.如权利要求12的介质,其中该读取指令(a1)包括指令用于:
(a1ⅰ)读取输入位流的第一位;
(a1ⅱ)将前一位设定为等于该第一位;
(a1ⅲ)读取输入位流的下一位;
(a1ⅳ)将当前位设定为等于该下一位;
(a1ⅴ)判定前一位是否等于当前位;
(a1ⅵ)如果前一位等于当前位,将前一位设定为等于当前位, 并返回到步骤(a1ⅲ);及
(a1ⅶ)如果前一位不等于当前位,便停止读取。
14.如权利要求11的介质,其中该确定指令(b)包括指令用于:
(b1)计数输入位流的多个接连的等值的位,其中这些接连的等 值的位构成该位序列,其中计数的结果为重复因子;及(b2)确定重复因子的重复因子编码宽度,其中该重复因子编码 宽度为该重复因子的最小位数。
15.如权利要求14的介质,其中该计数指令(b1)包括指令用于:
(b1ⅰ)如果该重复因子大于预定的最大数,将该重复因子设定 为等于该预定的最大数。
16.如权利要求14的介质,其中该确定指令(b2)包括指令用于:
(b2ⅰ)如果重复因子不大于1,将重复因子编码宽度设定为等于 1;及
(b2ⅱ)如果重复因子大于1,将重复因子编码宽度设定为等于 1加不大于该重复因子以2为底的对数的最大整数。
17.如权利要求11的介质,其中该编码指令(c)包括指令用于:
(c1)将重复因子的重复因子编码宽度写到输出位流中;及
(c2)将重复因子写到输出位流中。
18.如权利要求11的介质,其中在读取指令(a)之前包括指令 用于:
(a1)将重复因子初始化成1。
19.如权利要求11的介质,还包括指令用于:
(d)插入与该位序列的值相反的位值的零长度序列。
20.如权利要求19的介质,其中该插入指令(d)包括指令用于:
(d1)将重复因子设定为等于零;及
(d2)用等于零的重复因子编码该零长度序列。
21.一种编码多个位序列的方法,包括:
(a)读取输入位流的多个接连的等值的位;
(b)计数该多个接连的等值的位,其中计数的结果为重复因子;
(c)确定该重复因子的重复因子编码宽度,其中该重复因子编 码宽度为该重复因子的最小位数;
(d)将该重复因子编码宽度写入输出位流中;及
(e)将重复因子写入输出位流中。
22.一种带有用于编码位序列的程序指令的计算机可读的介质, 这些指令用于:
(a)读取输入位流的多个接连的等值的位;
(b)计数该多个接连的等值的位,其中该计数的结果为重复因 子;
(c)确定重复因子的重复因子编码宽度,其中该重复因子编码宽 度为该重复因子的最小位数;
(d)将该重复因子编码宽度写入输出位流中;及
(e)将重复因子写入输出位流中。
23.一种编码多个位序列的方法,包括:
(a)读取输入位流的多个接连的等值的位;
(b)计数该多个接连的等值的位,其中计数的结果为重复因子;
(c)如果重复因子不大于1,将重复因子编码宽度设定为等于1;
(d)如果重复因子大于1,将重复因子编码宽度设定为等于1加 不大于重复因子的以2为底的对数的最大整数;
(e)将重复因子编码宽度写到输出位流中;
(f)将重复因子写到输出位流中;及
(g)插入与该多个接连的等值的位的值相反的位值的零长度序 列;
24.一种带有用于编码位序列的程序指令的计算机可读的介质, 这些指令用于:
(a)读取输入位流的多个接连的等值的位;
(b)计数该多个接连的等值的位,其中该计数结果为重复因子;
(c)如果重复因子不大于1,将重复因子编码宽度设定为等于1;
(d)如果重复因子大于1,将重复因子编码宽度设定为等于1加 不大于重复因子以2为底的对数的最大整数;
(e)将重复因子编码宽度写入输出位流中;
(f)将重复因子写入输出位流中;及
(g)插入与该多个接连的等值的位的值相反的位值的零长度序 列。

说明书全文

发明涉及数据压缩,而更具体地涉及行程长度编码数据压缩。

数据压缩在数据传输与存储领域中是重要的。用于数据压缩的一 族算法为行程长度编码算法。当数据主要是由等值位的序列组成时, 诸如可视图象,行程长度编码算法是通常为数据压缩选择的方法,因 为它们能达到高压缩比。

在这一族数据压缩算法中,通常定义符号的字母表,其中的符号 可包含一或多位。然后通过将数据表示为符号与其重复因子的对,即 其连续出现,表达到数据压缩。在字母表只包含诸如0与1两位值的 情况中,不需要定义字母表,因为通常也称作行程长度的连续重复因 子能指定交替的位值序列的长度:一个重复因子为0值位的数目而下 一个重复因子为1值位的数目。如果一种位值主要以重复因子1出 现,则可以只写入以变化的重复因子出现的相反位值的重复因子。这 蕴含在任何两个这种重复因子之间,存在着相反位值的单一的位。

限制行程长度编码算法效率的问题在于重复因子本身占用一定 数目的位,及难于或不可能确定最佳位数来表示这些重复因子,尤其 是在不知道要压缩的实际数据时。使这一问题更严重的是,即使在开 始编码进程之前整个数据集或位流的重复因子的分布是已知的,任何 整个数据集或位流中编码重复因子的位数的最佳选择也不一定是不 变的。在这些情况中,次最佳数据压缩比很可能从编码重复因子的位 数的任何固定选择中得出。使用太多的位来表示重复因子是浪费的并 且是与数据压缩的目的背道而驰的。使用不足的位来表示重复因子会 强迫算法引入相反的位值的零长度序列或相同目的的其它措施,然后 以相同方式编码表示起来太长的序列的其余部分。

上述问题的一个实例出现在广播卫星系统中。图1展示可使用数 据压缩算法的这一传统卫星系统100。这一系统包含中心站102,其 上有转发器110与服务器112。中心站102通过卫星108与远程客户 104通信。客户站上的接收机106促进这一通信。为了保证从卫星108 上正确发送数据给远程客户104,广播应用服务器112必须能确定所 有寻址的客户是否正确地接收数据,而服务器112必须重新发送不正 确接收的数据。因此,客户104必须回答服务器112指出哪些数据需 要重新发送,或者因为将它们整个丢失,或者因为它们包含太多传输 错误而不能重物。来自各客户的应答可能与来自任何其它客户的不 同,而从所有客户104返回到服务器112的通信量大致上与接收机的 数目成正比。这一客户应答数据通信量或返回通信量不仅对中心站服 务器112也是对服务器的局域网的沉重负担,后者在不冲击该网络的 其它任务的情况下没有足够的带宽与/或反应能来处理这一客户应 答通信量。在服务器112用卫星108发送有效负载数据而客户104在 慢得多的地面网上应答的情况中,这一客户应答通信量可以是对增加 客户数目的单一最严重的限制因素。从而,称作客户应答内心爆炸的 来自其客户104的应答的广播发送器/服务器112上的泛滥是对运行 时间性能及对接收机及多道播送与广播应用的数目的伸缩性的公共 与严重阻碍。在由于不利气候条件、传输线路的不清楚或太阳黑子活 动引起的传输错误增加时,客户应答内心爆炸的可能性更严重。因 此,网络在数据压缩中所使用的行程长度编码算法的效率是关键性因 素。

从而,存在着对提供用于数据压缩的改进的行程长度编码算法的 方法的需求。本发明致力于这一需求。

本发明提供用于编码多个位序列的改进的方法,本发明包含读取 位序列;为该位序列确定重复因子的最小位数,其中该最小位数是可 变的;以及用这一重复因子编码该位序列。本方法通过使用用来表示 重复因子(RF)的位数对于各单个等值的位序列变化的策略,来提供 改进的行程长度编码算法。不是传统地用任何预定与固定的位数表示 RF,本发明的RF是用将该重复因子二进制编码成无符号整数的最小 位数表示的。提供这种可变宽度RF行程长度编码算法的关键性优点 在于不管任何前面或后面的RF,各单个位序列的RF只用必要的最少 位数来表示。从而,在要压缩的数据中的广范围的序列长度分布上, 能获得比用传统算法获得的更高的压缩比。此外,可变宽度RF是数 据驱动的,因为控制用多少位来表示RF的便是要压缩的数据。因此, 没有必要事先知道位值序列分布,这使得按照本发明的方法很适合于 实时应用。

图1示出可用数据压缩算法的传统卫星系统。

图2为展示按照本发明用于为数据压缩提供改进的行程长度编码 算法的方法的较佳实施例流程图

图3为更详细地展示按照本发明为数据压缩提供改进的行程长度 编码算法的方法的最佳实施例的流程图。

图4为更详细地展示按照本发明的初始化步骤的流程图。

图5为更详细地展示按照本发明写零长度序列的流程图。

图6为更详细地展示按照本发明写编码的序列的流程图。

图7为更详细地展示按照本发明确定RFEW的流程图。

本发明提供用于为数据压缩提供改进的行程长度编码算法的方 法。提出下面的描述使本技术中的普通技术人员能作出与使用本发 明,并且是在专利申请及其要求的上下文中提出的。对于熟悉本技术 的人员对最佳实施例的各种修改将是显而易见的并且其中的通用原 理可应用在其它实施例上。从而,并不意在将本发明限制在所示的实 施例上,而是符合与这里所描述的原理与特征一致的最广阔的范围。

按照本发明的方法通过使用其中用于表示重复因子(RF)的位数 对各等值位的单个序列改变的策略提供改进的行程长度编码算法。RF 为要压缩的位序列中同一位值的接连的重复数。不是传统地用任何预 定与固定的位数表示RF,本发明的RF是用将该重复因子二进制编码 成无符号整数的最小位数表示的。

在该最佳实施例中,用称作重复因子编码宽度(RFEW)的小的参 数化位数将表示等值的位序列的RF所需的位数写在输出位流(OBS) 中实际RF前面。构成用按照本发明的方法压缩的位序列的信息的第 一项是RFEW。然后用重复因子宽度(RFW)位表示实际RF。例如,如 果RFEW为4位,则RFW的范围能从1到16位。RFW永远不能小于1 位,因为即使是零的RF也需要一位来表示。对于1到16位的RFW, RF能达到从零到216-1即65,635的范围中的值。

为了更具体地描述本发明的特征,请结合下面的讨论参见图2至 7。

图2为展示按照本发明用于为数据压缩提供改进的行程长度编码 算法的方法的最佳实施例的流程图。首先,通过步骤202读取要编码 的位序列。接着通过步骤204确定该位序列的RF的最小位数,其中 该最小位数是可变的。然后通过步骤206用该RF编码位序列。

例如,假定要编码一千个接连的“1”的位序列。从而这一位序 列的RF为一千。该RF的二进制表示为“1111101000”,它占用10 位。RF宽度为10,它是二进制“1010”。然而,没有RF能占用少于 一位,因为即使是零的RF也需要一位来编码该零。因此,永远在RF 宽度上蕴含地加一,它是编码在编码的位序列的第一RFEW位中的。 结果,在这一实例中,RF一千,得出10位的二进制RF宽度,编码的 序列的前四位将包含值9,即进二制“1001”。这些初始RFEW位后面 是编码一千的RF的10位。从而,一千个接连的相等的位的位序列编 码成14位长的输出序列“10011111101000”,其中前4位“1001” 为RFEW。得出的压缩比为1000/14即71.4。虽然这一实例示出4位 的RFEW,但可使用任何数目的位。

图3为更详细地展示用于按照本发明提供数据压缩的改进的行程 长度编码算法的方法的最佳实施例的流程图。首先,通过步骤302初 始化进程。图4为更详细地展示初始化步骤302的流程图。在初始化 中,通过步骤402读取输入位流(IBS)的第一位,并将全程变量 “previous_bit”(前一位)设置为等于第一位。如果通过步骤404 判定“previous_bit不等于零,则通过步骤406写入零长度编码的 序列。通过步骤408将全程变量“Cloanup”(清除)设置成等于“真” 并通过步骤410将RF的全程变量“repeat_factor”(重复因子)设 置成等于1。变量“cleanup”指示是否要将编码的序列倾泻到OBS 中。如果通过步骤404判定previous_bit等于零,则初始化步骤跳 过步骤406进入步骤408与410。然而,约定要求OBS的第一位如上 面所使用的为零还是一是随意的。应使用IBS的占统治地位的位值。

图5为更详细地展示按照本发明写零长度序列(图4步骤406) 的流程图。首先,通过步骤502将repeat_factor设置成等于零。然 后,通过步骤504写编码的序列。

返回到图3,一旦通过步骤302初始化了编码进程,通过步骤304 判定IBS是否为空。如果是,则如果Cleanup等于真,便通过步骤 304将编码序列倾泻到OBS中。如果否,则通过步骤308将IBS的下 一位读出并将全程变量“Current_bit”(当前位)设置成等于下一 位。然后通过步骤310判定current_bit是否等于previous_bit。 如果否,则已到达了相等位的序列的结尾而current_bit为下一位序 列的第一位。通过步骤312将previous_bit设置成等于current_bit 来跟踪下一位序列的位值。然后通过步骤314写编码的序列。通过步 骤316将RF重新设置成等于1,并通过步骤318将Cleanup设置成 伪,由于老序列已倾泻到OBS中。然后进程循环回步骤304。

如果通过步骤310 current_bit等于previous_bit,则通过步 骤320将repeat_factor的值增加一,以便计数顺序相等的位的数 目。如果通过步骤322增加后的repeat_factor超过预置的最大值, 则通过步骤324将repeat_factor设置成等于该最大值。(这一最大 值为2^(2^RFEW)-1)。然后,通过步骤326写编码的序列,并通过步 骤328在编码的序列后面插入相反位值的零长度序列。然后通过步骤 320将repeat_factor重设成等于1,并通过步骤332将cleanup设 置成真。然后进程循环回步骤304。

图6为更详细地展示按照本发明写编码的序列(图3步骤326与 314;图5步骤504)的流程图。首先,通过步骤602确定repeat_factor 的值的RFEW。接着通过步骤604将RFEW之值写到OBS中。然后通过 步骤606将repeat_factor之值写到OBS中。

图7为更详细地展示按照本发明确定RFEW(图6步骤602)的流 程图。首先通过步骤702判定repeat_factor是否小于或等于1。如 果是,则通过步骤704为RFEW返回1。如果否,则通过步骤706返 回等于1加不大于repeat_factor以2为底的对数的最大整数的 RFEW。

按照本发明提供的可变宽度RF行程长度编码算法的关键性优点 在于不管任何前面或后面的RF,各单个位序列的RF是只用必要的最 小位数表示的。结果,在要压缩的数据的广阔范围的序列长度分布 上,能得到高于用传统算法得到的压缩比。此外,可变宽度RF是数 据驱动的,因为要压缩的数据控制用多少位来表示RF。因此,没有必 要事先知道位值序列分布,这使得按照本发明的方法非常适合于实时 应用。

为了展示用按照本发明的方法得到的较高压缩比,假设要编码 1000个“0”、20个“1”与300个“0”的位序列,如下表中所示。

表1 未压缩的 位序列 用带4位RF固定 宽度的传统方法 压缩后的位 用按照本发明的带可 变宽度RF的方法压缩 后的位 1000x“0” 532  14  20x“1” 12  9  300x“0” 156  13 总计 1320  700  36

使用带4位RF固定宽度的传统行程长度压缩算法,1000个接连 的“0”的序列需要67个RF及用于各RF之间的相反的值的66个序 列,需要532位。对于20个接连的“1”的序列,  需要2个RF加上 RF之间的相反的值的1个,需要12位。对于300个接连的“0”的序 列,需要20个RF加上各RF之间的相反的值的19个,需要156位。 从而,用传统的行程长度压缩算法,总共需要700位来编码该位序列。 压缩比为1320/700=1.89。

反之,用按照本发明的方法,1000个接连的“0”的序列需要10 位宽度的一个RF;20个连接的“1”的序列需要5位宽度的一个RF, 而300个接连的“0”的序列需要9位宽度的一个RF。各RF需要4 位的RFEW,得到14位来编码1000个“0”,9位来编码20个“1” 及13位来编码300个“0”。从而,用按照本发明的行程长度压缩算 法,它使用可变RF宽度,总共只需要36位来编码这些位序列。压缩 比为1320/36=16.7。因此,达到较高的压缩比,它明显地超过用传 统行程长度编算法所达到的。

在图1中所示的卫星网络的情况中,用按照本发明的方法可获得 若干优点。由于有可能达到较高的压缩比,服务器112的局域网环境 上的数据负载比不用本发明的算法轻得多。这具有两种后果。首先, 它可使一些客户装置可用,因为否则客户的现有或计划的数据网不能 承受来自广播应用的未压缩的返回通信量所施加的附加负担。第二, 服务器的局域网的工作负荷的减轻可以允许现有的或计划的系统升 级到大得多的客户总数。并且,只须处理返回通信量中明显地少的数 据,服务器112较少可能性被客户应答过度消耗。

按照本发明的算法的解压并不需要复杂的算法。因为在处理客户 返回的通信量时,服务器112所承受的从存储器到处理器(未示出) 的数据通信量可以是该服务器的主要性能瓶颈,按照本发明的数据压 缩能改进服务器112处理客户应答的整体速度。这是因为与使用传统 的压缩方法相比较,每一客户必须流入处理器中的应答数据较少。这 又改进了服务器112的总体吞吐量,因为它已释放了一些它的资源。 按照本发明的算法的实现只须以中央处理单元(CPU)周期表示的非 常少的资源,并且除了包含实现它的可执行代码所需的存储器之外几 乎不需要存储器。只需要读取/处理要压缩的数据一次,即可将它们 传送通过本发明的实现。

已公开了用于提供数据压缩的改进的行程长度编码算法。按照本 发明的方法通过使用用于表示重复因子(RF)的位数各等值的位的单 个序列变化的策略提供改进的行程长度编码算法。而不是传统地用任 何预定与固定的位数来表示RF,本发明的RF是用将该重复因子二进 制编码成无符号整数的最少的位数表示的。按照本发明的提供可变宽 度RF行程长度编码算法的关键优点在于不管任何前面或后面的RF, 各单个位序列的RF只用必要的最少位数表示。结果,在要压缩的数 据中的序列长度分布的广阔的范围上,能够得到比用传统算法所能得 到的更高的压缩比。此外,可变宽度RF是数据驱动的,因为要压缩 的数据控制用多少位来表示RF。因此,事先不需要知道位值序列分 布,这使得按照本发明的方法非常适合实时应用。

虽然已按照所示实施例描述了本发明,本技术领域中的普通技术 人员容易理解存在着对这些实施例的改型,且这些改型在本发明的精 神与范围之内。因而,本技术领域中的普通技术人员可作出许多修改 而不脱离所附权利要求的精神与范围。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈