用于通信网络的丢失复原协议的制作方法

文档序号:11589602阅读:184来源:国知局
用于通信网络的丢失复原协议的制造方法与工艺

本发明大体涉及设备辅助通信,且更具体地,涉及用于有损通信网络的设备辅助通信协议。



背景技术:

在有损网络通信(例如,无线网络通信)中,数据分组丢失是常见现象。例如,噪声和/或干扰可以改变或擦除部分发送的数据分组。可以检测到损坏的数据分组并将其视为丢失的分组。已经构思出若干种技术来恢复损坏的数据分组,包括前向纠错和线性网络编码。对于许多实际的应用,已经发现线性网络编码相对于单播和多播网络中的转发具有吞吐量增益。

可以通过使用随机线性网络编码(rlnc)来实现对于许多场景具有分组丢失的网络容量。在典型的rlnc方案中,源节点发送输入分组的随机线性组合,一个或多个中间节点发送其接收到的分组的随机线性组合,且目的节点一旦接收到具有线性无关编码向量的足够编码分组就可以对输入分组进行解码。由于网络编码自身可以扮演端到端纠删码(erasurecode)的角色,所以不要求针对每个链路的纠删码。

然而,当在实际中实现rlnc方案时,要考虑若干问题。例如,编码和解码的计算成本、在中间节点处的存储和计算成本、以及用于系数向量的开销等。解决这些问题的常规尝试是无效的、低效的和/或非最优的。



技术实现要素:

在具有突发或相关型丢失的网络中,bats协议可以被用于高效通信。在重新编码期间,在中间网络节点处可以利用系统重新编码(systematicrecoding)来减少计算成本。可以利用基于块交织器的bats协议来处理突发丢失,其中将各批次重新编码为同样数量的分组。自适应重新编码可以被用于提高吞吐量,其中,具有更高秩的批次被重新编码成更大数量的分组。使用自适应重新编码,可以利用基于非块交织器的bats协议。

本专利中使用的术语“发明”、“所述发明”、“该发明”和“本发明”旨在广泛地指代本专利的所有主题和以下的专利权利要求。包含这些术语在内的声明应当被理解为不限制本文描述的主题或不限制以下专利权利要求的含义或范围。由本专利所覆盖的本发明的实施例是由以下权利要求而不是本概要所定义。本概要是本发明各方案的高度概述并介绍了一些将在以下具体实施方式部分中进一步描述的概念。本概要不意图标明所请求保护主题的关键特征或基本特征,也不意图单独用于确定所请求保护主题的范围。该主题应当通过参考本专利的全部说明书的适当部分、任何或全部附图以及每一项权利要求来理解。

附图说明

参考以下附图,将在下文详细描述本发明的说明性实施例:

图1是示出了根据本发明的至少一个实施例的示例通信环境的方案的示意图。

图2是示出了根据本发明的至少一个实施例的另一个示例通信环境的方案的示意图。

图3是示出了根据本发明的至少一个实施例的与网络节点的bats协议模块对应的方案的示意图。

图4是示出了根据本发明的至少一个实施例的并入了bats协议模块的示例通信设备的方案的示意图。

图5是示出了根据本发明的至少一个实施例的由bf模块执行的示例过程的方案的流程图。

图6是示出了根据本发明的至少一个实施例的示例块交织方案的方案的示意图。

图7是示出了根据本发明的至少一个实施例的作为交织batspro-1通信协议的一部分执行的示例过程的方案的流程图。

图8是根据本发明的至少一个实施例的表示用于优化每个批次中多个数据分组的示例算法的伪代码列表。

图9是根据本发明的至少一个实施例的表示用于优化每个批次中多个数据分组的另一个示例算法的伪代码列表。

图10是根据本发明的至少一个实施例的表示用于优化每个批次中多个数据分组的又一个示例算法的伪代码列表。

图11是示出了根据本发明的至少一个实施例的示例batspro-2数据分组格式的方案的示意图。

图12是示出了根据本发明的至少一个实施例的batspro-2bf模块的示例子模块结构的方案的示意图。

图13是示出了根据本发明的至少一个实施例的用于重新编码的示例操作的流程图。

图14是示出了根据本发明的至少一个实施例的示例数据流状态的方案的示意图。

图15是示出了根据本发明的至少一个实施例的用于重新编码的示例操作的流程图。以及

图16是示出了根据本发明的一些实施例的示例计算设备的方案的示意图。

注意,贯穿本公开和附图,相同的数字用于引用相似的组件和特征。

具体实施方式

本文描述的本发明的实施例的主题的特性满足法定要求,但本说明书不一定意在限制权利要求的范围。所要求保护的主题可以用其它方式来体现,可以包括不同的元素或步骤,并可以结合其它现有的或未来的技术使用。除了当各个步骤的顺序或元素排列是显式描述时之外,本说明书不应被解释为在各种步骤或元素间暗示任何特定的顺序或排列。

bats码是相对低复杂度的随机线性网络编码方案,其可以渐近实现非常接近具有分组丢失的分组网络的容量。在实际中采用bats码要求基于bats码的网络传输协议(bats协议)。根据本发明的至少一个实施例,在具有突发或相关型丢失的网络中,bats协议被用于高效通信。例如,这些丢失类型发生在许多无线通信信道(包括wi-fi、水下和卫星通信)中。在整个描述中,虽然线性网络拓扑被用作示例,但本领域技术人员将理解,线性网络是更一般的拓扑的构成单元(buildingblock),且概念是更广泛适用的。

根据本发明的至少一个实施例,在重新编码期间,可以利用中间网络节点处的系统重新编码来减少计算成本。可以利用基于块交织器的bats协议来处理突发丢失,其中将各批次重新编码为同样数量的分组。自适应重新编码可以被用于提高吞吐量,其中,具有更高秩的批次被重新编码成更大数量的分组。使用自适应重新编码,可以利用基于非块交织器的bats协议。

术语“数字数据分组”、“数据分组”和“分组”在整个描述中可以互换使用。这样的分组可以携带任何合适类型的数字数据,包括(但不限于):音频、视频或多媒体数据文件或流。

图1示出了根据本发明的至少一个实施例的示例网络100。该网络100是三跳线性网络。节点r0是一个或多个输入数据分组和/或输入数据流的源节点,节点r3是希望接收(经解码的)输入数据分组的目的节点,且节点r1和r2是不一定希望探查经解码的输入分组的中间节点。在网络100中,网络链路仅存在于两个相邻节点之间,并假定每条链路每个时隙发送一个分组。在图1的节点r0、r1、r2、r3之间的箭头的方向指示了输入数据分组的数据流的主方向,但不排除相反方向的数据流,例如,信令数据流。

在网络100中,每个节点向线路上的下一个节点发送数据分组(例如,r0到r1、r1到r2、r2到r3)。假设在网络链路上发送的分组以概率p被独立擦除(例如,损坏)。如果中间节点仅应用转发(例如,使用前向纠错),则在l跳之后网络吞吐量的上界为(1-p)l。当每个时隙网络容量是(1-p)个分组时,网络吞吐量随l以指数方式减少。根据本发明的实施例,提供了解决这些问题的分批稀疏(bats)码。虽然,为了清楚起见,本说明书经常引用图1的线性网络100,本文描述的bats码和对应的bats协议可以在具有多个源节点和/或目的节点的网络中使用(如图2中示出的示例网络200)。

图2示出了具有多播链路的示例树形无线网络200。节点r0是源节点,节点r3,1、r3,2、r3,3和r3,4是目的节点,且节点r1、r2,1和r2,2是不一定希望探查经解码的输入分组的中间节点。在这个示例中,来自每个节点r1、r2,1和r2,2的两条出局链路共享对应的公共无线信道。此外,图2中箭头的方向指示数据流的主方向,但不排除相反方向的数据流。

为了在实际网络中实现bats码,建立用于在节点间通信的bats协议。bats码包括实现bats协议的三种类型的分组数据处理模块中的一个或多个:编码模块、批次转发(bf)模块、和解码模块。图3示意性地示出了与图1的节点r0、r1、r2、r3相对应的bats协议模块300的示例布置。源节点302(本文也称为“第一节点”)运行对输入数据(例如,离散数据文件或连续数据流)进行编码的编码模块,汇聚(sink)节点308(本文也称为“最后一个节点”)运行对已编码的输入数据进行解码以产生与输入数据相对应的输出数据的解码模块,且每个中间节点304、306运行转发已编码的输入数据的bf模块。

图4是根据本发明的至少一个实施例的并入了bats协议模块的示例通信设备400的示意图。通信设备400可以实现利用bats协议模块来进行通信的应用402。例如,应用402可以与编码模块404进行交互以对数据流(例如,源或输入数据流)编码,且编码模块404可以利用网络接口408通过网络来发送bats编码数据流。通信设备400也可以接收已编码的数据分组和/或流。例如,通信设备400可以使用网络接口408来接收已编码的数据流并向解码模块406提供已编码的数据流以产生解码数据流(例如,汇聚或输出数据流),解码数据流被传递到应用402以做进一步处理(例如,用于呈现给用户)。示例通信设备400也包括批次转发模块410。这样,通信设备400可以充当网络中的中间节点(例如图1描绘的网络100)。然而,根据本发明的备选实施例,且如图4中虚线样式所示,利用bats协议的通信设备不需要并入批次转发模块410和/或担当网络中的中间节点。根据其他备选实施例,通信设备可以包括批次转发模块410,但不包括编码模块404或解码模块406。在这样的实施例中,通信设备可以被限制为充当中间节点。

诸如图1中的节点r0之类的源节点包括编码模块404。在高级别上,编码模块可以执行如下操作:

1)读取数据文件和/或数据流作为输入(本文中有时被称为“输入文件”或“输入数据”);

2)使用bats编码算法来产生批次;以及

3)以协议特定顺序来输出所产生的批次的已编码的数据分组。

由bats编码算法产生的分组可以表示为在大小为q的有限域f上的列向量。这里,术语“域”在抽象代数意义上使用。每个分组包含来自f的t个符号。输入文件被分成k个输入分组。可以通过将分组集合加以并置,使用矩阵来表示分组集合。固定度分布(degreedistribution)ψ=(ψ0,ψl,...,ψd),其中d是最大度。

可以通过以下操作来产生批次:

1)对度分布ψ取样并取得具有概率ψd的度d。

2)以均匀随机的方式选择d个输入分组并通过并置这d个分组来形成矩阵b;以及

3)产生批次x=bg,其中,g是在有限域f上的d×m生成矩阵(这里,m是合适的整数,使得g是有限域f上的d×m生成矩阵)。

系数向量被嵌入到批次中的分组,其形成有限域f上的m×m的单位矩阵。通过上述操作独立产生不同批次。可以用确定性方式来设计生成矩阵g或随机生成生成矩阵g,且生成矩阵g对于bats解码器来说是已知的(例如,解码模块406和/或它在另一个通信设备中的对应模块)。

为了提高输入分组的发送可靠性,可以利用最早为了raptor编码而引入的预编码技术。例如,在应用批次编码处理之前,可首先使用传统的纠删码(称为预编码)对输入分组进行编码。然后可将批次编码过程应用到通过预编码来生成的预编码输入分组。

通过网络来发送批次的分组。在中间节点处使用bf模块410。bf模块410可以执行以下操作:

1)接收已编码的分组作为输入;

2)通过对同一批次的分组执行线性编码来生成重新编码的分组;以及

3)按协议特定顺序来输出分组。

与诸如tcp/ip之类的常规网络通信协议不同,中间节点可以输出已接收到的分组的线性组合。由于这个原因,中间节点有时被称为重新编码器或重新编码节点。

在使用仅对属于同一批次的分组应用线性组合的规定的情况下,根据本发明的至少一个实施例的各种bf模块设计是可能的。由于在线性网络编码期间的操作是线性的,可构想出转移矩阵h。将在汇聚节点处接收到的批次分组并置为矩阵y,我们有

y=xh=bgh。(1)

h的尺寸取决于该批次中接收到的分组的数量。假设接收到该批次中的r个分组,则h是m×r矩阵。矩阵h通过分组的系数向量在解码器处是已知的。

对于接收到的n个批次,定义hr是n个转移矩阵中秩为r的部分。转移矩阵的经验秩分布(empiricalrankdistribution)h=(h0,h1,..,hm)可以促进良好的度分布。

诸如图1中的节点r3之类的目的节点包括解码模块406。在高级别上,解码模块可以执行如下操作:

1)接收已编码的数据分组作为输入;

2)使用bats解码算法对分组解码;以及

3)输出经解码的数据文件和/或数据流。

根据本发明的至少一个实施例,存在针对bats码的多种解码算法。在网络发送期间保留批次的度,使得例如可以将高效的置信传播(bp)解码算法用于对所接收的分组进行联合解码。针对所接收到的批次,目的节点使用y和对g和h的了解来尝试解码输入分组。如果rk(gh)等于度d,则批次是可解码的,即(1)中以b作为变量的线性系统具有唯一解。对bats码的bp解码持续寻找可解码的批次。如果找到可解码的批次,则通过求解相关联的线性系统(1)来恢复该批次的输入分组且将已恢复的输入分组代入尚未解出的批次。如果不能找到可解码的批次,则bp解码停止。对于通常情况,用数值方式证明了具有bp解码的bats码实现了非常接近平均经验秩∑iihi的码率(每批次分组中可实现码率的理论上限)。

另一种技术被称为失活(inactivation)。如果输入分组的数量非常大,渐进优化的度分布将表现良好。如果输入分组的数量相对少,那么在对输入分组的所需部分解码之前bp解码趋向于停止。在bp解码停止后,使用失活可以继续解码处理。当没有可解码的批次,挑选未解码的输入分组并将其标记为失活的。虽然失活的分组是不确定的,但将失活分组像经解码的分组一样代入批次中。重复解码处理,直到输入分组要么被解码,要么是失活的。通过求解线性方程系统,可以恢复失活的输入分组。

现在描述根据本发明的至少一个实施例的被称为batspro-1的bats协议。编码模块404在另一批次之前输出批次的分组。解码模块406如以上描述运行。在新的批次的分组到来之后,bf模块410重新编码批次。在下一个重新编码处理之前,其产生每批次m个重新编码的分组并发送他们。

图5示出了根据本发明的至少一个实施例的可以由bf模块410执行的示例过程500。bats分组可以被接收(在502处)和保存(在504处)。如果检测到新的批次(在506处),当前批次变成准备好的批次且新的批次变成当前批次(在508处)。准备好的批次的m个分组被重新编码(在510处),并发送m个重新编码的分组(在512处)。

系统重新编码是存储并转发线性无关的分组的方法。该方法可以显著减少在重新编码处理期间所要求的有限域运算(在抽象代数意义上)的数量。假设重新编码器针对批次将产生t≥r个分组,其中r是正确接收到的线性无关的分组的数量,即批次的秩。不产生全部t个分组,通过针对接收到的r个分组使用随机线性组合,仅产生t-r个分组。其余的r个重新编码的分组与r个接收到的分组相同,被称为系统重新编码分组。

当链路损耗独立时,batspro-1可以很好地工作。然而,当链路损耗是突发式的,batspro-1的有效性可能降低。由于干扰和衰落,突发损耗是无线发送中的常见现象。此外,在实际中,突发错误的长度不是固定的。

根据本发明的至少一个实施例,块交织器可以将突发损耗变换为接近随机损耗(例如,使得损耗模式具有白噪声特征)。批次集合(例如,多个批次)形成块。块的大小被称为交织器的深度,由l表示。在新块的分组到来之后,节点针对前一块中的批次执行重新编码。其产生每批次m个重新编码分组并以循环(round-robin)方式发送每批次的一个分组,直到其发送了本块所有重新编码的分组为止。

图6示出了深度为4的块交织方案600的示例。每个矩形表示一个批次且长度表示重新编码的分组的数量。不同批次分组的数量相同。箭头表示由块交织器产生的发送序列。图7示出了根据本发明的至少一个实施例的可以由bf模块410执行以实现交织batspro-1的示例过程700。bats分组可以被接收(在702处)和保存(在704处)。如果检测到新的块(在706处),当前块变成准备好的块且新的块变成当前块(在708处)。准备好的块中的每个批次的分组被重新编码成m个分组(在710处),且以交织顺序(在712处)发送ml个重新编码的分组,例如,利用图6所示的块交织方案600。

对于重新编码器,分组丢失可能出现在前一链路。接收到的批次的秩最多与前一跳的同批次的秩相同。解码过程依赖于批次中线性无关的分组,且bats码的可实现码率与每批次的期望秩相近。bf模块的目标是优化(例如,最大化)不同的批次中将在下一跳接收的线性无关分组的总数,例如最大化下一跳中各批次的转移矩阵的秩的和。

例如,假设重新编码器接收到秩为1的批次。在batspro-1中,重新编码器产生该批次的m个分组。该m个重新编码的分组是线性相关的。下一跳仅需要m个分组之一来取回整个批次,且其他正确接收到的分组是开销。根据本发明的至少一个实施例,可以向具有较低秩的批次自适应地分配较少的重新编码分组且向具有较高秩的批次分配较多的分组。这个方案被称为自适应重新编码,这是改进的协议(batspro-2)的特征。

在batspro-2中,操作是在重新编码处理前确定重新编码的分组的最优数量。本文称这个处理为预重新编码。给定下一跳的分组丢失概率p。针对批次的集合l,可以预先计算表格:

令重新编码器产生l中批次b的tb个分组。令tb的和等于tmax,tmax是该批次集合的重新编码的分组的最大数量。然后图8所示的算法800可以找到在下一跳上具有最大期望的秩的tb集合。图9所示的算法900是算法800的近似备选,且在实际中更有用。图10所示的算法1000可以将近似方案的结果(例如修改算法900的输出)修改为更优化的结果。在算法800、900和1000中,符号rb代表批次b的秩(例如,与批次b相关联的转移矩阵的秩和/或统计观察到的该批次的秩,例如针对批次的线性无关接收的数据分组)。

使用自适应重新编码,不同批次中重新编码的分组的数量可以不同。有时,重新编码的分组的数量可以超过m,因此块交织器不能以上述方式工作。对于源节点,因为每批次具有m个分组,标准块交织器工作良好。

根据本发明的至少一个实施例,可对多个数据流应用交织器。一个批次出现在一个数据流中。在数据流中,另一批次跟随前一批次。图11示出了根据本发明的至少一个实施例的用于batspro-2的示例数据分组设计。批次id字段1104用于识别不同的批次。这里,术语“字段”在信息处理意义上使用,例如,数据记录的预定义部分。系数向量1106是转移矩阵的列。有效载荷1108是编码/重新编码的数据。前一批次id1102是在同一数据流中前一批次的批次id。分组p的四个字段(前一批次id、批次id、系数向量、有效负荷)分别由pj,pi,pc和pb表示。

根据本发明的至少一个实施例,用于batspro-2的编码模块和解码模块可以类似于batspro-1的编码模块和解码模块。然而,用于batspro-2的bf模块可以不同。图12示出了根据本发明的至少一个实施例的batspro-2bf模块1202的示例子模块结构1200。入局分组被转移到输入流管理单元(ismu)1204,ismu1204处理乱序分组并指示完成批次。ismu输出非乱序分组且这些分组被存储在高速缓存1206中。重新编码单元1208从高速缓存中读取完成批次的分组,并执行预编码过程和重新编码过程,以产生重新编码分组。输出流管理单元(osmu)1210管理数据流,向不同的数据流分配批次,并以交织顺序来发送流。数据流的分组来自重新编码单元(重新编码的分组)和高速缓存(系统重新编码分组)。除了字段pj外,重新编码分组可以对应于接收到的分组。

ismu1204可以实现以下功能:

1)识别不同的输入数据流;

2)识别完成批次;

3)处理断流(brokenstream);以及

4)处理乱序分组。

在存在分组丢失的情况下,输入分组具有交织顺序。信道中可能存在分组抖动,所以丢失分组的存在性不能通过接收时间差来检测。根据本发明的至少一个实施例,必须区分不同的数据流,因为指示完成批次的信息(例如,利用分组的pj字段)取决于它的数据流。

图13示出了根据本发明的至少一个实施例的由ismu1204执行的示例过程1300。ismu1204管理记录输入数据流上的当前批次id的有效列表。开始时该列表是空的。此处假设不存在乱序分组。在1302处,接收batspro-2分组。如果分组的字段pj不在列表上(在1304处判定),则分组被认为在新的未识别出的数据流中(在1306处)。分组的批次id被加入列表。如果pj在列表上而pi不在列表上(在1308处判定),则该分组指示前一批次(其批次id为pj)是完成批次。该分组的批次id代替了列表上的取值为pj的项目并继承数据流(在1310处)。如果pj等于pi,则其是伪分组,指示该批次是完成批次(在1312处)。如果pi在列表上而pj不在列表上,则是个错误。这意味着两个流正在接收同一批次。可以通过将两个流合并在一起来处理该错误。在识别出完成批次后,向重新编码单元1208发送批次id。

假设后续批次的分组丢失。数据流中的后续分组的pj不能匹配有效列表中的任何项目。在这种情况下,分组被认为在新的数据流中。为每个数据流设置超时。如果数据流中没有新接收到的分组,该数据流被认为是断流。数据流中的最后批次被当做完成批次。移除有效列表中相应的项目。图14示出了该场景1400的示例(流1是断流,流3尚未被识别)。

高速缓存1206的功能是提供存储设备,以支持对批次中的分组的读写。为了其他子模块的使用,记录统计数据,例如批次的秩。高速缓存根据分组的批次id将分组加以存储和成组。由于输出数据流一次仅读取一个批次,如果高速缓存也存储重新编码的分组,则高速缓存可充当流的存储设备。

存在针对每批次设计的两个标志:“重新编码”和“选择”。当重新编码单元1208产生批次的重新编码分组时,例如,由预重新编码处理产生的数量,对标志“重新编码”进行标记。它指示osmu1210不需要等待该批次更多的分组。如果osmu选择了该批次,则对数据流标记“选择”。当标记了“选择”标志时,高速缓存将向重新编码单元发送批次id,这表示该批次准备好在其变为完成批次后执行重新编码。

当批次的块完成预重新编码处理时,重新编码单元1208产生重新编码分组。当存在足够多的“选择”完成批次,根据预编码重新编码方案来计算该批次重新编码的分组的数量。之后,产生重新编码的分组并存储在高速缓存中。在存储完该批次最后的重新编码分组之后,在高速缓存中对标志“重新编码”进行标记。

ismu1210可以实现以下功能:

1)向输出数据流分配批次;

2)从其他子模块读取数据流的分组;以及

3)以交织顺序来输出数据流。

osmu1210管理输出数据流的当前批次id。当发送流中批次的最后的分组时,该单元从高速缓存中选择批次作为后继者。该后继的批次在高速缓存中用“选择”来标记。后继者的候选是在高速缓存中没有被标记有“选择”标志的批次。向首先接收到的分组中具有最老的时间戳的完成批次给予候选的优先级。如果没有完成批次,则向具有最高秩的未完成批次给予优先级。如果存在具有同样优先级的多个候选,则随机选择任何一个。如果没有候选,osmu1210停止发送并等待直到存在候选。图15示出了根据本发明的至少一个实施例的可以由osmu1210执行以选择后续者的示例过程1500。在1502处,检测到要求后继者。(在1504)考虑高速缓存中没有“选择”标志的批次。完成批次比未完成批次具有更高的优先级。在(在1506处检测到的)完成批次中,选择首先接收到的分组中具有最老的时间戳的完成批次(在1508处)。如果(在1510处检测到)没有完成批次,选择具有最高秩的未完成批次(在1512处)。如果在该轮中没有选择候选,则osmu等待并重复这个流程以找到后继者。

自适应重新编码方法导致具有不同数量的重新编码分组的批次。在数据流之一发送了批次的重新编码的分组之后,该数据流为空且osmu1210选择批次(可能是未完成批次)作为后继者。如果它是未完成的批次,重新编码单元1208还未重新编码该批次。根据系统重新编码分组与接收到的分组相同的事实,通过使用系统重新编码分组(如果可用),osmu1210可以填入间隙。否则,osmu1210填入虚拟分组。

假设当前接收到的分组(系统重新编码分组)被发送,使得数据流为空,osmu1210等待更多的重新编码分组。osmu1210的输出具有交织顺序。

根据至少一些实施例,用于消息编码的系统、设备、方法、处理和/或操作可以用由一个或多个编程的计算机处理器(例如中央处理单元(cpu)或微处理器)执行的指令集的形式来全部或部分实现。这样的处理器可被并入由系统的其他组件操作或与之通信的装置、服务器、客户端或其他计算设备中。例如,图16示出了根据本发明的一些实施例的可以在被配置为实现方法和/或处理的计算机设备和/或系统1600中存在的元件的各方案。图16示出的子系统经由系统总线1602互连。附加子系统是例如打印机1604、键盘1606、固定盘1608、耦合到显示适配器1612的显示器1610。外围设备和耦合到i/o控制器1614的输入/输出(i/o)设备可以通过本领域已知的任何数量的手段(例如串行端口1616)连接到计算机系统。例如,可以利用串行端口1616或外部接口1618将计算机设备1600连接到图16未示出的其他设备和/或系统,包括广域网(例如互联网)、鼠标输入设备、和/或扫描仪。经由系统总线1602的互连允许一个或多个处理器1620与每个子系统通信并控制对可存储在系统存储器1622和/或固定盘1608中的指令的执行,以及控制在子系统之间对信息的交换。系统存储器1622和/或固定盘1608可以体现有形的计算机可读介质。

应当理解:如上所述,本发明可以使用具有模块化或集成方式的计算机软件以控制逻辑的形式来实现。备选地,或附加地,本发明的实施例可以部分或全部通过硬件实现,例如,通过一个或多个电路,如电子电路,光电路、模拟电路、数字电路、包括专用集成电路(“asic”)和现场可编程门阵列(“fpga”)在内的集成电路(“ic”,有时叫做“芯片”)、以及它们合适的组合。具体地,上面参考图2描述的编码器和/或解码器可以部分或全部以硬件实现。如对本领域的技术人员显而易见的:计算复杂性和计算效率的概念可以在进行了必要的修正的情况下应用于实现计算和/或算法的电路和/或线路中。基于本文的公开和教导,本领域的普通技术人员将知道和理解使用硬件和/或硬件和软件的结合来实现本发明的其它方式和/或方法。

任何在本申请中描述的软件组件、处理或功能可以作为软件代码来实现,该软件代码要由处理器通过利用任何适当的计算机语言(例如java、c++或perl)利用例如传统的或面向对象的技术来执行。软件代码可被存储为计算机可读介质上的一系列指令或命令,该计算机可读介质是例如随机存取存储器(ram)、只读存储器(rom)、磁性介质(例如硬盘驱动器或软盘)、或光学介质(例如cd-rom)。任何这样的计算机可读介质可驻留在单个计算装置上或位于单个计算装置内,并可在系统或网络内的不同计算装置上或计算装置内存在。

本文中引用的包括出版物、专利申请和专利在内的所有参考文件通过引用方式合并于此,就好像每个参考文件被单独且具体地指示为通过引用被并入和/或被全部阐述于此一样。附录a和附录b可以提供与上述本发明的一个或多个实施例相关的上下文和/或附加的细节。

在说明书和以下权利要求中对术语“一”、“一个”和“所述”及类似指示物的使用应当被解释为涵盖单数和复数这二者,除非本文另有指示或与上下文明显矛盾。在说明书和以下权利要求中的术语“具有”、“包括”、“包含”和类似指示物应当被解释为开放式术语(例如,“包括,但不限于,”),除非另有说明。除非本文中另外指示,否则本文中对值的范围的叙述仅意在用作分别参考落入该范围内(含该范围)的各个值的便捷方法,并且各个单独值被并入本说明书中犹如其被单独在此叙述一样。可以按照任何适当顺序执行本文中描述的所有方法,除非本文中另外指出或者上下文另外明确地相反指示。本文中提供的对任何和所有示例或示例语言(例如,“诸如(例如)”)的使用仅意在更好地阐述本发明的实施例,且不对本发明的范围施加限制,除非另外要求。在说明书中的任何语言不应被认为指示任何非要求保护的元素作为本发明每个实施例的必要元素。

附图或上述描述的组件的不同布置以及没有示出或描述的组件和步骤是可能的。类似地,一些特征和子组合是有用的且可以不用参考其它的特征和子组合而使用。为了说明性的而非限制性的目的来描述本发明的实施例,且备选实施例对本专利的读者将变得显而易见。因此,本发明不限于上述或附图示出的实施例,且在不脱离所附权利要求的范围的前提下,可以做出各种实施例和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1