[0060] 为了避免保持对许多的丢失测量结果的
跟踪,之前的加权丢失也可以被用于求出新的加权丢失,例如使用下面的等式:
[0061]
[0062] 这里,ωold和ωnew是总的来说被设定成使得满足ωold<ωnew的权值。
[0063] 可供选择地,可以在步骤1103中使加权丢失率归一化,从而仅使用整数以简化查找。可以使用下面的等式来计算归一化的丢失NLx:
[0064]
[0065] 这里,N是归一化因数(例如,N=10000)。
[0066] 然后,在步骤1104中,使用NLx来索引编码层级表格,从而提取当前编码层级。下面示出了编码层级表格的示例,该表格提供了8个层级,其中INT_max表示最大整数或大的值(例如,10000)。
[0067]
[0068] 然后,截取网络设备B1107的编码器1111把为那个会话发送的各编码数据包的头文件中所提取的编码层级1105插入到截取网络设备A1106。截取网络设备A1106中的解码器1112从所接收到的数据包中读取编码层级。然后,解码器1112用编码层级来索引新参数表格,以获得I和Max_n的值,Max_n表示考虑到当前编码层级而应当将n设定成的最大值。可以使用多种新参数表格来实现基于应用程序需求和可接受开销的不同的TLR。下面示出了使用8个丢失率的这种新参数表格的示例:
[0069]
[0070] 这里,INT_max表示最大整数(无穷大)。
[0071] 在截取网络设备A1106的编码器1108将s大小的数据包编码之前,它用s索引预配置的数据包大小表格,以获得Rec_n,该Rec_n表示考虑到数据包大小的n的推荐值。下面示出了一个示例性数据包大小表格:
[0072]
[0073] 使用该表格,s<88字节大小的数据包返回Rec_n=1。如果s>528字节,那么Rec_n=4。然后,把被用来对数据包进行编码的n的值确定为n=min(Rec_n,Max_n)。
[0074] 在另一实施例中,解码器1109使用上面的等式(3)或(4)来计算加权丢失率WLx。解码器1109能视需要进行归一化以使用等式(5)计算NLx。准确的丢失值(WLx或NLx)以插入到用于该会话的编码信道中的控制消息的形式,定期地(例如,每秒)被发送到解码器
1112。解码器1112从控制消息中提取准确的丢失值。编码器1108使用该准确的丢失值来索引新参数表格,从而获得Max_n和m。
[0075]
[0076] n的值被推导为n=min(Rec_n,Max_n)。可以构造多种新参数表格以反映不同的目标丢失率,并且编码器1108基于应用程序的目标丢失率而使用适当的表格。发送实际丢失率而不是当前丢失率,这允许在编码侧构造出参数表格,因此简化了构造。
[0077] 之前的等式说明了如何计算单个流的丢失率。使用图5作为示例,截取网络设备D1203计算分别来源于截取网络设备A1202、B1207和C1208的三个流1204、1205和1206的丢失率。除了返回为该流而测量到的丢失率之外,接收截取网络设备能在间隔时期x内从被发送给它的三个流计算出加权丢失率的平均值ALx。
[0078] 间隔时期可以与用于计算单个流的丢失率的间隔时期相同。例如,能按如下这样来计算平均丢失率:
[0079]
[0080] 这里,能使用上面的等式(3)或(4)来计算出WLi。然后,能使用上面的等式(5)使ALx归一化,从而创建归一化的平均丢失率NALx。然后,在编码层级表格中对NALx进行索引,从而获得远端处的平均丢失率(ALFEx)。编码层级表格可以与上面图示的表格相同,或者由不同的数字预配置而成。ALFNx被添加到与如上所述计算出的每流的当前丢失率一起由截取网络设备D1203的解码器传输到各个截取网络设备1202、1207和1208的编码数据包的数据包头文件中。
[0081] 如果在数据包头文件中包含了聚合信息(aggregate information),那么截取网络设备1202、1207或1208能使用该信息来决定是否改变它的编码层级。截取网络设备A1202的解码器还计算出近端处的平均丢失(ALNEx),近端处的平均丢失是在编码信道中从在测量期间x内起作用的g个编码会话1211、1212和1204接收到的当前丢失率的平均值。
[0082]
[0083] 在图5的示例中,在截取网络设备A1202处计算出的ALNEx表示从截取网络设备D1203、E1209和F1210接收到的当前丢失率的平均值。
[0084] 如果该会话的当前丢失率与ALFEx之间的差值小于预定
阈值,那么如上所述,当前丢失率被用于设定编码层级。在这种情况下,假设该会话不大可能拥塞上游网络,这是因为当前丢失率比计算的ALFEx好,或者比计算的ALFEx稍微差一些。
[0085] 如果当前丢失率与ALFEx之间的差值在预定阈值以上,并且当前丢失率减去ALNEx的值在预定阈值以上,那么忽略当前丢失率,并且仅根据数据包大小表格来设定编码层级,从而通过为给定的数据包选择最高带宽效率的编码方法来使带宽使用最小化。预定阈值可以不同,并且可以根据网络策略和拓扑来设定。
[0086] 不论如何确定n(当前丢失或平均丢失),都能逐步地执行n的值的增大,从而避免开销的大幅度增加。当利用表格来推荐n的较高值时,n只能应用于随后的标准数据包的子集:下一次进入的w个标准数据包之中只有v个标准数据包使用n的增加值,而其他的w-v个数据包使用之前的n的较低值。如果所测量的丢失率继续增大或者随着所测量的丢失率接近下一个层级,那么v和w的值还能改变。
[0087] 例如,如果所测量的丢失(加权的或归一化的丢失)是0%,那么n=1、m=0且v=w=1。因此,所有数据包用n=1、m=0进行编码。如果所测量的丢失增加到大于0%但小于0.05%,那么n=4、m=1,但是v=1、w=3,以使得三个数据包中只有一个数据包用n=4进行编码,而其他数据包使用之前的编码层级n=1、m=0。当所测量的丢失超过0.05%但小于0.1%时,那么改变成v=1和w=2,以使得每隔一个数据包用n=4进行编码,而其他数据包使用之前的编码层级n=1、m=0。当所测量的丢失超过0.1%但不超过0.2%时,那么使用v=1和w=1,以使得每个数据包用n=4进行编码。在不同的预定丢失率下,能构造出不同值的v和w以缓和开销增加。这种能力能够显著地调和不同丢失率之间的传输功能。
[0088] 截取网络设备在网络丢失会随着编码层级的增大而减少的理论上进行操作。然而,随着n和/或m增大,由截取网络设备生成的且穿越网络的数据包的数量增多。这导致了在实现应用通信时所必需的带宽的增大。
[0089] 在某些情况下,额外的带宽会导致丢失的增加。如果路径中的至少一个链路是受带宽限制的,那么额外的数据包实际上就增加了这点上的拥塞。当数据包到达传输用链路时,数据包可能会立即传输或者可能无法立即传输。如果数据包不能被发送,那么大多数设备会实施排队以缓冲数据包,使得稍后能传输该数据包。在一些设备中,随着与该链路相关联的排队增长到特定级别,网络拥塞控制机制(例如,RED、WRED等)可能被调用以处理该链路上的拥塞。随着到达该链路的数据包的数量增多,丢弃编码数据包中的一者的可能性就增大。该可能性还会由于因编码信道而添加的额外开销而增大。额外开销会使排队的深度更快地增加,因此增大了数据包将会被丢弃的可能性。
[0090] 拥塞的另一个原因可能是切换上下文(switching context)。源终端站与目标终端站之间的路径中的网络设备可能在每个时间段内仅能够传送有限数量的数据包。因此,即使有足够的链路带宽可用于传输编码数据包,但是网络设备也不能传送所有帧,这导致丢失。
[0091] 因此,通过增大编码层级(这会增加路径中的数据包的数量和开销量),丢失率会增大。截取网络设备要求算法对这种情况做出反应。首先,截取设备必须检测编码信道上的丢失率的显著增加。这例如能通过在一时间段内跟踪丢失率的结果来完成。这可以是如利用等式(1)或(2)计算出的当前丢失率、利用等式(3)或(4)计算出的加权丢失率、利用等式(5)计算出的归一化丢失率、或者用任何其他方法来获得丢失。
[0092] 用于检测显著增加的一种方法是利用丢失率中的瞬时变化。这要考虑当前丢失率与之前的丢失率’之间的差值。
[0093] ΔCLRx=CLRx-CLRx-1 (8)
[0094] 如果该差值超过显著增加阈值(定义为SIT),那么将检测到丢失率中的显著增加。为了避免谬误地宣称已经发生了显著增加,在源截取网络设备与目标截取网络设备之间发送的编码数据包的数量必须是在统计上相关的。在这种情况下,利用下面的等式来决定:
[0095]
[0096] 之前的等式可以使用平均丢失率(像等式(3)和(4)),来替代瞬时比率的使用。这种变化能使用等式(10)来计算:
[0097] ΔWLx=WLx-WLx-1 (10)
[0098] 于是,能够按如下方式来确定显著增加:
[0099]
[0100] 另一种途径是当遇到编码层级的增大时就记录丢失率。丢失率(CLRoriginal)的变化被记录下来,并且被用作与当前的瞬时丢失率进行比较的
基础。如果当前丢失率例如是原始丢失率的10倍,那么已经检测到丢失的显著增加:
[0101]
[0102] 一旦已经检测到丢失率中的显著增加,截取网络设备就会使用编码层级回退方案做出反应。在这种情况下,截取网络设备是通过减小编码层级以替代增大编码层级来对丢失做出反应。图6是用于响应于检测到丢失率中的显著增加而减小编码层级的一种技术的流程图。首先,步骤1300尽力找出会使丢失率停止增加的编码层级。一旦获得了这个层级,步骤1301就确保在使截取网络设备返回丢失率的正常处理之前丢失率是稳定的。
[0103] 图7图示了图6中的步骤1300的一个实施例。这种算法规定了用于找出能使丢失率停止增加的编码层级的步骤。该算法通过在步骤1400中记录当前丢失率而开始,然后在步骤1401中减小该信道的编码层级。能以数种方式来实现编码层级的减小。例如,对于该算法的每次
迭代,可以线性地减小编码层级,或者编码层级能够以指数方式减小。一种实施方案支持这两种方法,并且在建立编码信道时允许选择其中一种方法。另一个例子使用了在创建编码信道之前所设定的配置策略。
[0104] 一旦在步骤1401中已经减小了编码层级,步骤1402就判断编码层级是否大于0。步骤1402中的否定回答表明当前丢失率仍然高于起始丢失率,这意味着编码回退算法不起作用,因此在步骤1403中终止该算法。随后,编码信道返回正常的丢失率处理,或者回到n=1和m=0并且通知用户和/或系统。
[0105] 如果步骤1402中的回答是肯定的,那么系统前进到步骤1404:在这个步骤中,在通过步骤1405再次对当前丢失率进行取样之前,截取网络设备等待时间段d。然后,在步骤1406中,该步骤1406判定当前丢失率是否大于起始丢失率,即,丢失率是否仍然大了某个预定量,算法从步骤1406返回到步骤1401和1402,以再次减小该信道的编码层级。如果步骤1406中的回答是否定的,那么系统前进到步骤1407,以判定当前编码层级是否导致了稳定的丢失率。
[0106] 图8图示了图6中的步骤1301的一个实施方案。这种算法规定了用于判定当前编码层级是否已导致稳定的丢失率的步骤。该算法以循环的方式运行,该循环在步骤1500中被初始化。然后,在通过步骤1502再次对当前丢失率进行取样之前,截取网络设备在步骤1501中等待时间段d。如果当前丢失率显著地大于起始丢失率,那么在步骤1503中该算法退出并且返回至使编码层级回退。步骤1503判定当前丢失率是否仍然小于起始丢失率(步骤1503),然后该算法使循环计数器递增(步骤1504),并且继续对当前丢失率进行取样直到已达到迭代次数的最大值(步骤1505)。此时,由于已经处理了丢失率的显著增加,所以退出算法。
[0107] 存在有图6的算法的另一个实施方案。例如,图9图示了编码层级回退方案的替代用实施方案。在这种情况下,算法在步骤1600中将起始丢失率设定为当前丢失率值,然后步骤1601首先增大编码层级,以判断丢失率是否将会降低。如果步骤1604检测到丢失率的降低,那么该算法退出,并且继续前进以确保在返回正常的丢失率处理之前丢失率是稳定的。如果步骤1604没有检测到丢失率的降低,那么该算法前进到步骤1605和1606,从而将编码层级降低2个层级,然后前进到步骤1602,从而在再次检查当前丢失率之前等待一时间段。如果这成功了(步骤1603和1604),那么算法再次确保在返回正常的丢失率处理之前丢失率是稳定的。如果步骤1604判定当前丢失率仍然大于起始丢失率,并且步骤1605判定这不是第一次迭代,那么该算法使用图7的算法继续使编码层级回退。
[0108] 用于处理丢失率中的显著增加(在图6的步骤1300中)的另一种途径是使用图10的算法来限制引起了显著增加的编码层级。在步骤1700中,将当前编码层级记录为受限制的编码层级,然后在步骤1701中减小当前编码层级。然后,步骤1702确保当前编码层级仍然小于受限制的编码层级。
[0109] 存在有许多方法来判定编码层级的限制是否在图6的步骤1301中使丢失率稳定化。图11所示的一种方法是仅仅退出算法以使得再也不会使用该编码层级,虽然该编码信道是起作用的。图12图示了另一替代用技术,该技术在步骤1800中延迟一时间段d,之后才在步骤1801中重新启用用于该编码信道的编码层级。图13图示了另一种可选方案,其中编码层级被慢慢地调回到受限制的编码层级。其中发生了编码层级被慢慢地调回到受限制的编码层级的这一时间段依赖于在步骤1900中设定的延迟时间段d以及在步骤1902中的用来增大编码层级的增量。步骤1901将当前编码层级与受限制的编码层级相比较,从而判定当前编码层级是否小于受限制的编码层级。只要该回答是肯定的,那么系统前进到步骤1902以增大编码层级。一旦实现了受限制的层级,就在步骤1903中退出算法。
[0110] 用于处理高层级的网络丢失的另一种策略是将编码器构造成以交错的方式(称作“交错模式”)传输编码数据包,因而将丢失多个编码数据包的
风险分散到不同的标准数据包上,并且提供了编码数据包重组的更高可能性。因此,取代顺序地发送编码数据包组以使得各组对应于一个标准数据包的是,来自不同的标准数据包的编码数据包彼此交错。图14图示了交错模式的示例。在该示例中,假设将标准数据包A、B和C分别分段为编码数据包A1、A2;B1、B2、B3;以及C1、C2、C3和C4。编码数据包A2、B3和C4是额外的编码数据包。取代发送这些根据它们各自的标准数据包而被分组的编码数据包的是,这些编码数据包通过k个标准数据包的组而交错。在图14的示例中,k=3。编码器将与k个标准数据包对应的编码数据包存储在缓冲器1303中。或者,编码器存储许多数据包,这些数据包是在预定时间段内到达的或是直到检测(例如,通过深度数据包检查)出具有时间敏感信息的数据包之前到达的。为了避免重排,将编码数据包的集合对齐于左边,以使得各标准数据包的倒数第二个数据处在尾部且最后被发送,而各标准数据包的第一编码数据包处在头部且最早被传输。编码器在物理接口1304上按照从顶部到底部的顺序来传输头部处的数据单元,或者按照任意的能最小化地发送来自同一标准数据包的两个连续编码数据包的顺序来传输头部处的数据单元。在图14的示例中,可以按照C1、B1、C2、A1、B2、C3、A2、B3和C4的顺序发送编码数据包。最后发送所有的额外的编码数据包能使延迟最小化。交错也能够随机地进行。交错的数据包组可以包括从接口传输过来的所有编码数据包,或者交错组可以包括同一应用程序(例如,视频会议的同一信道)、同一目的地或预配置分组的编码数据包。
[0111] 在图15中,通过使交错的编码数据包的不同交错组1401、1402、1403的编码数据包交错,实现了另一个层级的交错。通过这样的交错,数据单位的任何大丢失的影响能被最小化,并且,取决于所采用的编码和策略,这种类型的丢失是可以恢复的。
[0112] “交错模式”还能被用于解决突发丢失。如果当前丢失率(即,等式(1)、(2)、(3)或(4)的结果)超出目标丢失率(Target Loss Ratio)预定量(例如,两倍),那么能检测到突发丢失。图16图示了用于处理突发丢失的一种技术。当最初检测到突发丢失时,使丢失率去抖动(debounced)。假设该突发丢失坚持存在,那么在步骤2000中执行向交错模式的转变。如果交错模式是启用的,那么在步骤2001中检查并核实向随机模式返回的状况。
[0113] 图17图示了如何向交错模式转变的示例。这种算法将当前丢失率去抖动,从而确保在启用交错模式之前该问题是坚持存在的。该实施方案使用循环,该循环在步骤2100中被初始化,然后在步骤2101中延迟时间段d。在步骤2102中重获当前丢失率,然后在步骤2103中检查当前丢失率,从而判定当前丢失率是否超过目标丢失率的两倍(该两倍对于这一标准协议类型而言是可接受的)。步骤2103中的肯定回答导致循环计数器在步骤2104中递增,然后步骤2105判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2101,然后重复步骤2102和2103。步骤2103中的否定回答使得流程结束,步骤2105中的肯定回答使得交错模式在步骤2106中得以启用。
[0114] 因此,假设丢失率维持了延迟时间段d乘以最大迭代次数,将排队设定为交错模式,且算法继续进行,以处理向随机模式的返回。如果丢失率未继续超过用于该应用程序的TLR的两倍,那么退出算法,且禁用交错模式。
[0115] 能通过图18至图21所图示的几种不同方法中的任意一种方法来实施向随机模式的返回。能够以几种方式来选择实际上被用于编码信道的方法。截取网络设备可以被构造成使该方法被用于所有编码信道。另外,截取网络设备可以具有与正被编码的标准协议相匹配的策略。或者,当建立编码信道时,截取网络设备可以协商所要使用的方法。
[0116] 图18图示了用于向随机模式返回的最直接的方法。在这种情况下,当编码信道已经进入交错模式时,在步骤2200中启动
定时器。当定时器期满时,在步骤2201中信道返回随机模式。
[0117] 在图19中,该算法确保在排队返回随机模式之前交错模式对当前丢失率有影响。在随机模式被启用之前,在时间段d乘以最大迭代次数的期间内,当前丢失率必须小于目标丢失率的两倍。为了完成这个,使用循环以对当前丢失率进行取样。该循环在步骤2300中被初始化,然后在步骤2301中等待延迟时间段d。在步骤2302中重获当前丢失率,然后在步骤2303中检查当前丢失率,从而判断当前丢失率是否超过目标丢失率的两倍。步骤
2303中的肯定回答导致循环计数器在步骤2304中递增,然后步骤2305判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2301,然后重复步骤2302和2303。步骤2305中的肯定回答导致随机模式在步骤2306中得以启用。
[0118] 图20类似于图19,除了使用平均丢失率来代替使用当前丢失率之外。在步骤2400中,通过将循环计数器设定为0且将起始平均丢失设定为当前平均丢失,循环被初始化,然后在步骤2401中,系统等待延迟时间段d。在步骤2402中,重获当前平均丢失率,然后在步骤2403中检查当前平均丢失率,从而判定当前平均丢失率是否超过起始平均丢失。步骤2403中的肯定回答导致循环计数器在步骤2404中递增,然后步骤2405判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2401,然后重复步骤2402和2403。步骤2405中的肯定回答导致随机模式在步骤2406中得以启用。
[0119] 图21类似于图20,除了还允许改变编码层级之外。在步骤2500中,通过将循环计数器设定为0且将起始平均丢失设定为当前平均丢失,循环被初始化,然后在步骤2501中,系统等待延迟时间段d。在步骤2502中重获当前平均丢失率,然后在步骤2503中检查当前平均丢失率,从而判定当前平均丢失率是否超过起始平均丢失。步骤2503中的否定回答使得在步骤2507中调节编码层级,从而处理当前平均丢失率,然后返回步骤2500。步骤2503中的肯定回答导致循环计数器在步骤2504中递增,然后步骤2505判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2501,然后重复步骤2501至2503。步骤2505中的肯定回答导致随机模式在步骤2506中得以启用。
[0120] 图22图示了与既处理当前丢失率的显著变化又处理超过TLR的两倍的突发丢失相结合的算法。在该实施例中,在步骤3000中,通过判定编码信道是否需要向交错模式转变而开始该算法。假设这是必需的,则在步骤3001中该算法进行检查以判定是否需要编码层级回退。不论是否需要回退,该算法随后都会在步骤3002中判定编码信道何时转变回随机模式。
[0121] 步骤3000中的处理向交错模式的转变能够以与图18中相同方式来处理。步骤3002使用图18至图21所示的任意一种算法来关注转变回到随机模式。
[0122] 图23图示了在步骤3002中判定是否需要回退。该算法对从随机模式向交错模式转变的影响去抖动。该测量应当在增大编码层级之后进行。该算法循环了延迟时间段d乘以最大迭代次数,并且检查当前丢失率。在步骤3100中,该循环被初始化,在步骤3101中,该循环具有延迟时间段d。当该延迟时间段期满时,在步骤3102中对当前丢失率进行取样,然后在步骤3103中与TLR的两倍相比较。如果当前丢失率大于TLR的两倍,那么超出计数器在步骤3104中递增。否则,循环计数器在步骤3105中递增。该处理继续进行直到循环计数器在步骤3106中达到最大迭代次数。此时,在步骤3107中检查超出计数器,如果其等于最大迭代次数,那么在步骤3108中启用编码层级回退。否则,算法继续进行,从而处理向随机模式的返回。
[0123] 在图24中,设备101、102使用本地的、质量低劣的、具有不可靠的网络性能的网络TM连接104来接入应用服务器103(例如Youtube 服务器)。
[0124] 存在有几种网络性能增强的编码技术(NPEC)。NPEC包括任意一种如下的网络编码技术:该网络编码技术在一个位置使用编码器,同时在第二个位置使用解码器,并且在该网络编码技术中,位于编码器与解码器之间的部分中的网络的性能得以提高。NPEC包括例如上述的NPEC、以及在美国专利No.7,706,365和美国专利公开No.2011/0149087中说明的那些、或者任何其他的类似方法。因为这些技术通常修改标准协议,并且如果在另一侧没有相配的解码器,数据包就不会被恢复,所以NPEC通常需要标记符“bookending”,它意味着在一端需要有编码器/解码器对,同时在另一端也需要解码器/编码器对,从而解决双向连接。
[0125] 图25图示了不能将NPEC放置在应用服务器端的实施例。代理服务器201被添加到网络中,从而实施一个以上的NPEC机制的编码/解码。通信量经由代理服务器路由,并且设备101、102与代理服务器201(通常是接入网络)之间的网络部分202基于代理服务器201中所实施的所选NPEC规范而被编码/解码。结果,该网络部分具有增强的性能和可靠性。
[0126] 代理服务器201可以与应用服务器103并置着,以便进一步使性能劣化最小化。在另一实施例中,NPEC服务器被部署成与代理服务器并置着。
[0127] 在代理服务器中使用上述NPEC,备份应用程序能减少80%的备份时间。灾难恢复能提高5倍,并且大文件的传输能缩短6倍。
[0128] 中继穿越NAT(Traversal Using Relays around NAT;TURN)是一种协议:该协议允许网络地址转换器(NAT)或
防火墙后面的元件接收TCP或UDP连接上的输入数据。图26示出了这样的示例:其中TURN服务器301实施NPEC服务且客户端302、303中的一者或两者能受益于在NPEC所保护的网络部分304中增强的/可靠的质量。
[0129] 能设计任意的性能敏感的应用程序,从而实施NPEC的编码/解码,然后通过代理服务器或TURN服务器来接入NPEC服务。或者,设备可以已经包括一个以上的NPEC能力
驱动器(NPEC capable driver)。
[0130] 提供质量作为服务的另一实施例是通过使用VPN服务器。一个以上的NPEC编码/解码机制能在VPN服务器及在VPN客户端中被实施,从而至少客户端与VPN服务器之间的部分具有增强的质量。
[0131] 代理服务器实施例能任意搜集测量结果,以确保NPEC管理部分的性能为足够,且能在测量结果上进行性能分析以确保网络工程为足够。
[0132] 在下面的说明中,为了解释而陈述了很多细节,为的是提供本发明的透彻理解。然而对本领域技术人员很显然,为了实践本发明,这些特定细节不是必需的。在其他情况下,为了不难理解本发明而以框图形式示出已知的电结构和
电路。例如,未提供关于文中说明的本发明实施例是否作为
软件程序、
硬件电路、
固件或它们的组合而被实施的特定细节。
[0133] 可以在具有端点的网络(诸如服务器或其它计算设备以及相关联的编码组件)中实施本发明的实施例。能在硬件、软件或它们的组合中实施编码组件和所说明的方法。这些在软件中实施的部分能被表示为存储在机器可读介质(还称作计算机可读介质、处理器可读介质或具有计算机可读程序代码的计算机可用介质)中的软件产品。机器可读介质可以是任意合适的有形介质,其包括磁、光或电存储介质,磁、光或电存储介质包括磁盘、光盘只读
存储器(CD-ROM)、存储设备(易失性或非易失性)或者类似的存储机制。机器可读介质可以包含指令、代码序列、配置信息或其他数据的各种集合,当执行它们时,导致处理器执行方法中的步骤。本领域的普通技术人员感激的是,实施上述实施例所必需的其他指令和操作也可以存储于机器可读介质上。从机器可读介质运行的软件可以与电路连接,从而执行上述任务。
[0134] 虽然本发明的具体实施例和应用已经被图示和说明,但是需要理解的是,本发明不局限于文中公开的精确结构和组成,并且在不背离如随附权利要求所限定的本发明的本质和范围的情况下,从前述说明可以做出显而易见的各种修改、改变和变化。