具有非循序输入的游程长度编码的制作方法

文档序号:8907504阅读:429来源:国知局
具有非循序输入的游程长度编码的制作方法
【专利说明】具有非循序输入的游程长度编码
[0001]相关申请的交叉引用
[0002]本申请要求2014年2月27日向美国专利商标局递交的标题为“Run LengthEncoding with Non-Sequential Input”的美国临时专利申请61/945,744号的优先权和权益,这里通过引用并入该申请的全部公开内容。
技术领域
[0003]本发明的实施例涉及用于对通信信道中的数据编码和解码的系统和方法。
【背景技术】
[0004]游程长度编码(Run Length Encoding,RLE)是一种流行的无损压缩技术,该技术用“游程”一一按一定的扫描顺序具有相同值的元素的数目一一来表示数据元素。例如,以下序列 “0,0,0,I, I, 1,0,0,0, I, I” 可由“ (O, 3),(1,3), (O, 3),(1,2) ” 表示,其中每一对中的第一数字确定游程的元素的值,并且第二数字确定该值的重复次数。在上述示例中,序列开始于三个O (0,3),之后是三个I (1,3),之后又是三个O (0,3),最后是两个I (1,2)。在二进制情况下,元素的值可被省略,并且该表示变成“(3,3,3,2) ”,其中RLE序列的第一数字指的是元素“O”的重复次数。
[0005]游程长度编码经常通过按光栅扫描顺序操作的硬件使用,例如显示设备和扫描仪。RLE的效率取决于数据的特性。例如,当不同值的数目较小并且当相同的值在邻接元素的群组中经常重复时,RLE提供较高的压缩。通过对数据应用线性扫描顺序或者通过直接在多个维度中对重复次数编码,可将RLE应用到多维数据。通常,RLE编码器对按先后顺序提供并存储在行缓冲器或其他类型的存储器中的数据操作。如果数据是以非先后顺序产生的,则非先后顺序数据一般被缓冲以使数据完整,以便其可按先后顺序被提供给RLE编码器。

【发明内容】

[0006]本发明的实施例的一些方面涉及非循序游程长度编码装置。
[0007]根据本发明的一个实施例,一种用于更新游程长度编码流的方法包括:处理器接收要在插入位置处插入到游程长度编码流中的具有插入值的元素,插入值具有多个值之一,游程长度编码流具有布置在位于游程长度编码流的开始位置和结束位置之间的多个游程中的多个元素,并且多个元素中的每一个具有多个值之一和在游程长度编码流中的位置;识别游程长度编码流的游程之中的包含插入位置的游程;处理器确定插入值是否与插入位置处的元素的值相同;当插入值不同于插入位置处的元素的值时:处理器确定插入位置是否与游程长度编码流的游程之中的一个或多个相邻匹配游程邻接,相邻匹配游程的每个元素具有与插入值相同的值;当插入位置与一个或多个相邻匹配游程中的仅一个邻接时,处理器延长一个或多个相邻匹配游程中的一个匹配游程;当插入位置与一个或多个相邻匹配游程中的两个匹配游程邻接时,处理器合并一个或多个相邻匹配游程中的该两个匹配游程;以及当插入位置不与一个或多个相邻匹配游程邻接时,处理器创建新的游程。
[0008]确定插入位置是否与一个或多个相邻匹配游程邻接可包括:处理器计算从插入位置到一个或多个相邻匹配游程中的每一个的一个或多个距离,一个或多个相邻匹配游程中的每一个具有左端和右端;当插入位置在一个或多个相邻匹配游程中的两个之间时,处理器计算到一个或多个相邻匹配游程中的第一相邻匹配游程的右端的左距离;以及到一个或多个相邻匹配游程中的第二相邻匹配游程的左端的右距离;当插入位置在一个或多个相邻匹配游程之一与开始位置之间时,处理器计算到开始位置的左距离和到一个或多个相邻匹配游程中的该一个游程的左端的右距离;以及当插入位置在一个或多个相邻匹配游程之一与结束位置之间时,处理器计算到一个或多个相邻匹配游程中的该一个游程的右端的左距离和到结束位置的右距离。
[0009]处理器确定插入位置是否与一个或多个相邻匹配游程邻接可包括:当左距离大于I并且右距离为I时,或者当左距离为I并且右距离大于I时,处理器确定插入位置仅与一个相邻匹配游程邻接;当左距离为I并且右距离为I时,处理器确定插入位置在两个匹配游程之间;以及当左距离大于I并且右距离大于I时,处理器确定插入位置不与一个或多个匹配游程邻接。
[0010]多个值可包括两个值。
[0011]多个值可包括三个值。
[0012]识别游程长度编码流的包含插入位置的游程可包括:根据一个或多个先前接收的元素来预测游程长度编码流的该游程。
[0013]元素包括多个连续的元素,连续的元素中的每一个具有插入值,并且其中,插入位置包括多个连续的位置,该方法还包括利用与连续的元素的值不同的值来替换游程长度编码流的与多个连续的位置相对应的位置处的值。
[0014]游程长度编码序列可被填补以具有零长度的附加游程。
[0015]合并两个匹配的游程可包括将附加游程转换成具有非零长度的游程。
[0016]根据本发明的一个实施例,一种系统包括:触摸控制器;以及耦合到触摸控制器的游程长度编码器,游程长度编码器被配置为:从触摸控制器接收要在插入位置处插入到游程长度编码流中的具有插入值的元素,插入值具有多个值之一,游程长度编码流具有布置在位于游程长度编码流的开始位置和结束位置之间的多个游程中的多个元素,并且多个元素中的每一个具有多个值之一和在游程长度编码流中的位置;识别游程长度编码流的游程之中的包含插入位置的游程;确定元素的插入值是否与插入位置处的值相同;当插入值不同于插入位置处的元素的值时:确定插入位置是否与游程长度编码流的一个或多个相邻匹配游程邻接,相邻匹配游程的每个元素具有与插入值相同的值;当插入位置与一个或多个相邻匹配游程中的仅一个邻接时,延长一个或多个相邻匹配游程中的一个匹配游程;当插入位置与一个或多个相邻匹配游程中的两个匹配游程邻接时,合并一个或多个相邻匹配游程中的该两个匹配游程;以及当插入位置不与一个或多个相邻匹配游程邻接时,创建新的游程。
[0017]游程长度编码器可被配置为通过以下操作来确定插入位置是否与一个或多个相邻匹配游程邻接:计算从插入位置到一个或多个相邻匹配游程中的每一个的一个或多个距离,一个或多个相邻匹配游程中的每一个具有左端和右端;当插入位置在一个或多个相邻匹配游程中的两个之间时,计算到一个或多个相邻匹配游程中的第一游程的右端的左距离;以及到一个或多个相邻匹配游程中的第二游程的左端的右距离;当插入位置在一个或多个相邻匹配游程之一与开始位置之间时,计算到开始位置的左距离和到一个或多个相邻匹配游程中的该一个游程的左端的右距离;以及当插入位置在一个或多个相邻匹配游程之一与结束位置之间时,计算到一个或多个相邻匹配游程中的该一个游程的右端的左距离和到结束位置的右距离。
[0018]游程长度编码器可被配置为通过以下操作来确定插入位置是否与一个或多个相邻匹配游程邻接:当左距离大于I并且右距离为I时,或者当左距离为I并且右距离大于I时,确定插入位置仅与一个相邻匹配游程邻接;当左距离为I并且右距离为I时,确定插入位置在两个匹配游程之间;以及当左距离大于I并且右距离大于I时,确定插入位置不与一个或多个匹配游程邻接。
[0019]多个值可包括两个值。
[0020]多个值可包括三个值。
[0021]游程长度编码器可被配置为通过以下操作来识别游程长度编码流的包含插入位置的游程:根据一个或多个先前接收的元素来预测游程长度编码流的该游程。
[0022]所述元素可包括多个连续的元素,连续的元素中的每一个具有插入值,其中,插入位置包括多个连续的位置,以及其中,游程长度编码器还被配置为用与连续的元素的值不同的值来替换游程长度编码流的与多个连续的位置相对应的位置处的值。
[0023]游程长度编码序列可被填补以具有零长度的附加游程。
[0024]游程长度编码器可被配置为通过将附加游程转换成具有非零长度的游程来合并游程。
【附图说明】
[0025]附图与说明书一起阐明了本发明的示范性实施例并且与描述一起用来说明本发明的原理。
[0026]图1是图示出原始数据和用游程长度编码来压缩的相同数据的示意图。
[0027]图2是图示出包括根据本发明的一个实施例的游程长度编码器的计算设备的框图。
[0028]图3A、3B、3C、3D和3E是根据本发明的一个实施例的通过添加新的元素来修改现有数据序列的不同情况的示意图示。
[0029]图4是图示出根据本发明的一个实施例的用于向经游程长度编码的数据添加新元素的方法的流程图。
[0030]图5A、5B、5C、5D、5E和5F是根据本发明的一个实施例的在各种情况下向经游程长度编码的二进制数据添加多个新元素的方法的示意图示。
[0031]图6是图示出根据本发明的一个实施例的用于向经游程长度编码的二进制数据添加新元素的方法的流程图。
【具体实施方式】
[0032]在以下详细描述中,只是以举例说明的方式示出和描述了本发明的某些示范性实施例。正如本领域技术人员将会认识到的,本发明可以以许多不同的形式来实现,而不应当被解释为限于本文记载的实施例。贯穿说明书各处,相似的标号指代相似的元素。
[0033]本文使用的术语只是为了描述特定实施例,而并不打算限制发明构思。就本文使用的而言,单数形式“一”和“该”打算也包括复数形式,除非上下文明确地另有指示。还要理解
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1