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

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

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

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

1.一种用于编码多个位序列的方法,包括:(a)读取所述多个位序列,其中每个位序列包括一个输入位流的多个连续的等值位;(b)确定用于每个位序列的重复因子的值,其中所述重复因子的值是此位序列中位的数量;(c)确定用于每个位序列的重复因子编码宽度的值,其中所述重复因子编码宽度的值是用于所述位序列的重复因子的值所要求的位的最小数量,其中所述位的最小数量在所述多个位序列之间是变化的;和(d)利用其重复因子编码宽度和重复因子来编码所述多个位序列之中的每个位序列。
2.如权利要求1的方法,其中所述读取步骤(a)包括:(a1)读取所述输入位流的第一位;(a2)将前一位设置为等于所述第一位;(a3)读取所述输入位流的下一位;(a4)将当前位设置为等于所述下一位;(a5)确定前一位是否等于当前位;(a6)如果前一位等于当前位,则将前一位设置为等于当前位,并且返回到步骤(a3);以及(a7)如果前一位不等于当前位,则停止所述读取。
3.如权利要求1的方法,其中所述确定步骤(b)包括:(b1)如果所述重复因子的值大于一个预定的最大数,则将所述重复因子的值设置为等于所述预定的最大数。
4.如权利要求1的方法,其中所述确定步骤(c)包括:(c1)如果所述重复因子的值不大于1,则将所述重复因子编码宽度的值设置为等于1;以及(c2)如果所述重复因子的值大于1,则将所述重复因子编码宽度的值设置为等于1加上一个最大整数,所述最大整数不大于所述重复因子的值的二进制对数。
5.如权利要求1的方法,其中所述编码步骤(d)包括:(d1)将用于每个位序列的重复因子编码宽度写到一个输出位流中;以及(d2)将用于每个位序列的重复因子写到所述输出位流中。
6.如权利要求1的方法,其中在所述读取步骤(a)之前,所述方法包括:(a1)将所述重复因子的值初始化为1。
7.如权利要求1的方法,还包括:(e)插入与所述位序列的值相反的一个位值的零长度序列。
8.如权利要求7的方法,其中所述插入步骤(e)包括:(e1)将所述重复因子的值设置为等于零;以及(e2)利用等于零的所述重复因子的值来编码所述零长度序列。

说明书全文

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

技术领域

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

背景技术

数据压缩在数据传输与存储领域中是重要的。用于数据压缩的一族算法为行程长度编码算法。当数据主要是由等值位的序列组成时,诸如可视图象,行程长度编码算法是通常为数据压缩选择的方法,因为它们能达到高压缩比。
在这一族数据压缩算法中,通常定义符号的字母表,其中的符号可包含一或多位。然后通过将数据表示为符号与其重复因子的对,即其连续出现,表达到数据压缩。在字母表只包含诸如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,RFEW等于1加上不大于repeat_factor的二进制对数的最大整数。
按照本发明提供的可变宽度RF行程长度编码算法的关键性优点在于不管任何前面或后面的RF,各单个位序列的RF是只用必要的最小位数表示的。结果,在要压缩的数据的广阔范围的序列长度分布上,能得到高于用传统算法得到的压缩比。此外,可变宽度RF是数据驱动的,因为要压缩的数据控制用多少位来表示RF。因此,没有必要事先知道位值序列分布,这使得按照本发明的方法非常适合于实时应用。
为了展示用按照本发明的方法得到的较高压缩比,假设要编码1000个“0”、20个“1”与300个“0”的位序列,如下表中所示。
表1
使用带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群二维码
意见反馈