背景技术
容器格式是能够包括利用标准化的编码器和编解码器压缩的各类数据的计算机文件格式。容器文件用于识别和交织不同的数据类型。类似的容器格式可包括不同类型的音频编解码器,而更高级的容器格式可以支持音频、视频、字幕、章节、和元数据(标签),以及将各种流一起重放所需要的同步信息。
当经由有损网络来广播或多播容器文件时,在文件接收时可能发生分组差错。一些视频解码器就信道差错而言是不鲁棒的。对于视频解码器或播放器来说,能够处理有完全缺失的切片(slice)或图片的压缩视频文件比起能够处理有部分缺失的切片或图片的压缩文件来,通常要容易得多。由于可变长度编码,视频解码器很难检测缺失或损坏的数据,因为每个比特都能被解释为可允许的、但不正确的符号。此外,一些容器文件格式,比如国际标准化组织/国际电工委员会(ISO/IEC)运动图片专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟电信部(ITU-T)H.264推荐(以下称之为“MPEG-4 AVC标准”),依赖于偏移量的表格来识别整个切片或图片在文件中的位置。当数据缺失时,这些偏移量将是不正确的,从而阻碍了正确的视频解码器操作。
当经由分组网络来流式传输视频时,通常使用实时传输协议(RTP)。实时传输协议分组头部包括可用于识别缺失的分组的序列号。实时传输协议数据分组可具有各种长度。一般推荐,压缩的视频切片与分组对齐。如果分组包括一个或多个完整的切片并且分组丢失,则解码器将不能够处理局部切片。
MPEG-4AVC标准规定了网络抽象层(NAL)单元,其中必须包括经编码的切片。经编码的图片中的宏块被放置到一个或多个切片中。网络抽象层单元还可包括其他类型的数据,例如序列或图片参数集、补充增强信息(SEI)消息,等等。当经由因特网协议(IP)网络来流式传输遵从MPEG-4 AVC标准的比特流时,通常使用这样一种方案,该方案规定了用于利用实时传输协议来发送遵从MPEG-4 AVC标准的比特流的语法。在一种现有技术方法中,如果既不使用分割单元(fragmentation unit)也不使用聚合单元(aggregation unit),那么一整个网络抽象层单元被放置在因特网协议分组中以便传送。如果该分组由于传送差错而丢失,则一整个网络抽象层单元都丢失了。如果使用聚合单元,则若干个完整的网络抽象层单元被放置在单个分组中。如果该分组由于传送差错而丢失,则这若干个完整的网络抽象层单元都丢失了。在这些情况下,部分网络抽象层单元将不会到达相应的接收器处。如果使用分割单元,则单个大的网络抽象层单元被分在多个分组中。接收器可以利用实时传输协议分组中包括的序列号来检测这些分组中的一个或多个是否由于传送差错而丢失。
如果分割单元丢失,则接收器应当丢弃所有在传送顺序上随后的、与同一个分割的网络抽象层单元相对应的分割单元。端点中的或者媒体知晓网络元件(MANE)中的接收器可将网络抽象层单元的前n-1个片段聚合成一个(不完整的)网络抽象层单元,即使该网络抽象层单元的第n片段没有被接收到。在此情况下,网络抽象层单元的forbidden zero bit被设为1,以指示语法违反。根据MPEG-4AVC标准,网络抽象层单元头部包括被称为forbidden zero bit的一比特语法字段。在遵从MPEG-4AVC标准的比特流中,forbidden zero bit通常等于0。当检测到比特流语法中的差错时,解码器可将检测到的状况视为表明已失去字节对齐的指示,并且可以丢弃所有比特流数据,直到在比特流中之后的某一位置处检测到字节对齐为止。
MPEG-4 AVC标准定义了填充(filler)数据网络抽象层单元类型。预期解码器会忽略包括填充数据的网络抽象层单元。
经由双向网络进行的文件传输经常使用诸如传送控制协议(TCP)之类的可靠协议。如果发生分组丢失,则重传被用来最终接收文件中的所有数据。当利用非可靠协议经由单向网络或双向网络传输文件时,不使用重传。
根据例如MPEG-4 AVC标准、音频视频交织(AVI)格式、第3代合作伙伴计划(3GPP)以及ISO/IEC MPEG-2标准,可按多媒体容器格式将压缩的视频和音频存储在一起。MPEG-4 AVC标准包括可用于存储若干种不同的视频(MPEG-2视频、MPEG-4 Part 2视频、或MPEG-4 AVC视频)或音频(MPEG-2 Layer 3、高级音频编码(AAC))格式的容器文件格式。MPEG-4 AVC标准文件格式是基于ISO媒体文件格式的。
MPEG-4 AVC文件中的基本单元是样本(sample),对于视频而言它通常是整个经编码的图片。在非提示轨道中,样本是视频的一帧、一系列时间上连续的视频帧、或者时间上连续的压缩音频区段。在提示轨道中,样本定义一个或多个流式分组的形成。一个轨道里不会有两个样本共享同一时间戳。
MPEG-4 AVC文件包括样本表格。样本表格为每个样本(通常是经编码的图片)提供了信息,该信息指示出样本在文件中所在位置的偏移量以及样本大小。
样本表格包括轨道中的媒体样本的所有时间和数据索引。利用该表格,可以在时间上定位样本,判定其类型(例如,I帧或其他),以及判定其大小、容器和在该容器内的偏移量。
如果包括样本表格盒的轨道不引用数据,则可能需要以下的子盒(sub-box):样本描述、样本大小、样本到组块(Sample To Chunk)、以及组块偏移量。
MPEG-4 AVC文件格式已被扩展到包括MPEG-4 AVC视频。当MPEG-4 AVC视频被包括在MPEG-4 AVC文件格式中时,起始代码不被包括在该文件中。
被称为单向传输式文件递送(File Delivery over UnidirectionalTransport,FLUTE)的文件递送协议致力于经由单向网络进行多播递送。单向传输式文件递送可用于递送MPEG-4 AVC文件。特定的单向传输式文件递送会话中的所有利用单向传输式文件递送来传送的分组将具有相同的长度,并因此不会与MPEG-4 AVC文件中的经可变长度编码的切片或图片相对齐。如果在MPEG-4 AVC文件的递送期间发生分组丢失,则接收到的部分MPEG-4 AVC文件是无效的。样本表格中的偏移量将指向不正确的位置。由于经可变长度编码的图片,在无效的MPEG-4 AVC文件中,MPEG-4 AVC样本表格中的应当指向特定的经编码帧的起始处的偏移量将会改为指向比特流数据中的未知位置,该位置有可能是经编码帧的中部。每个单向传输式文件递送分组包含源块号字段,该字段对于每个被传送的分组递增。单向传输式文件递送协议包括文件描述表格(FDT),该表格包括用来指示要递送的文件的大小的字段。
具体实施方式
这里的原理涉及用于对具有丢失的分组的容器文件中包括的样本进行修复的方法和装置。
这里的描述说明了这里的原理。因此,将会明白,本领域的技术人员将能够设计各种布置,这些布置虽然在这里没有明确描述或者示出,但体现了这里的原理并且被包括在其精神和范围内。
这里记载的所有示例和附条件语言都意图用于教导目的,以帮助读者理解这里的原理和发明人为推进技术所贡献的概念,并且能够被解释为并不限于这些具体记载的示例和条件。
另外,这里所有记载这里原理的原理、方面和实施例及其具体示例的所有语句都意图涵盖其结构和功能上的等同物。此外,希望这种等同物既包括当前已知的等同物,也包括将来开发的等同物,即,任何被开发出来执行相同功能的元件,不论其结构如何。
因此,例如,本领域的技术人员将会明白,这里给出的框图表示体现这里的原理的说明性电路的概念性视图。类似地,将会明白,任何流程图表、流程图、状态转换图、伪代码等等,都表示实质上可被表示在计算机可读介质中并被计算机或处理器如此执行的各种过程,不论这种计算机或处理器被明确示出与否。
附图中示出的各种元件的功能可通过使用专用的硬件以及能够联系适当的软件来运行软件的硬件来提供。当通过处理器提供时,这些功能可通过单个专用处理器、通过单个共享处理器、或者通过多个个体处理器(其中一些可能是共享的)来提供。另外,对术语“处理器”或“控制器”的明确使用不应当被解释为专指能够运行软件的硬件,而是也可能隐含包括(而不限于)数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机访问存储器(“RAM”)、以及非易失性存储装置。
也可以包括其他传统的和/或定制的硬件。类似地,附图中所示出的任何开关都只是概念性的。它们的功能可通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互来实现或者甚至手工实现,具体的技术由实现者根据对上下文的具体理解来选择。
在本申请的权利要求中,任何被表达为用于执行指定功能的装置的元件都意图涵盖任何执行该功能的方式,例如包括:a)执行该功能的电路元件的组合,或者b)任何形式的软件,因此包括固件、微代码等等,结合用于运行该软件以执行该功能的适当电路。这种权利要求所限定的这里的原理存在于这样的事实中:即,由各种记载的装置提供的功能以权利要求要求所要求的方式被组合到一起。因此认为,任何提供这些功能的装置都与这里示出的那些是等同的。
说明书中提到这里的原理的“一个实施例”或“实施例”意味着联系该实施例描述的特定特征、结构、特性等等被包括在这里的原理的至少一个实施例中。因此,在说明书中各处出现短语“在一个实施例中”或“在实施例中”不一定都是指同一个实施例。
另外,应当明白,虽然这里的原理的一个或多个实施例在这里是针对MPEG-4 AVC标准和/或音频视频交织(AVI)格式来描述的,但是这里的原理并不仅限于该标准和/或格式,因此可以针对其他视频编码标准、推荐及其扩展(包括MPEG-4 AVC标准的扩展)以及其他联合视频和音频格式来使用,而仍保持这里的原理的精神。
另外,应当明白,虽然这里的原理的一个或多个实施例是针对单向传输式文件递送(FLUTE)来描述的,但是这里的原理并不仅限于该协议,因此可以针对其他文件传输协议来使用,而仍保持这里的原理的精神。
另外,这里使用的术语“修复”指的是“修补”并且与“修补”同义。即,由于一个或多个丢失的分组而受影响的样本(至少部分丢失)或者被从容器文件中去除(并且相应的样本表格被适当地更新),或者受影响的样本(至少部分丢失)被填上填充比特。填充比特是意图供解码器丢弃而不解码的数据。
如上所述,这里的原理针对用于对具有丢失的分组的容器文件中包括的样本进行修复的方法和装置。
在实施例中,这里的原理提供了一种方法和装置,用于对接收到的具有分组丢失的容器文件进行修复,以使得它能够被音频/视频解码器所播放。修复/修补过程消除了来自容器文件的表示切片或图片的部分接收的样本。这使得就损坏的切片和图片而言不鲁棒的解码器能够处理该文件。解码器仍可以执行差错隐藏来隐藏缺失的切片或图片。
参考图1,单向视频文件传输系统由标号10来总地指示。
系统100包括存储设备110,该存储设备110具有与文件发送器120的输入进行信号通信连接的输出。文件发送器120的输出与分组网络130的输入信号通信连接。分组网络130的输出与文件接收器140的输入进行信号通信连接。文件接收器140的第一输出与文件修补器150的输入进行信号通信连接。文件接收器140的第二输出与存储设备160进行信号通信连接。存储设备160的双向输入/输出与文件修补器150的双向输入/输出进行信号通信连接。文件修补器150的输出与视频解码器170的输入进行信号通信连接。
经压缩的视频和(可选)音频数据是按诸如MPEG-4或音频视频交织(AVI)之类的容器文件格式来存储的。容器文件经由网络被传送到文件接收器,在文件接收器处文件被存储在本地。文件传输协议应当能够指示出是否发生了任何分组丢失。如果单向传输式文件递送(FLUTE)被用作文件传输协议,则文件接收器可以检测接收到的源块号字段中的间隙。如果接收到的分组的源块号不比前一个接收到的分组的源块号高1,则可检测到分组丢失。文件接收器140应当向文件修补器150指示出缺失的源块号。单向传输式文件递送文件接收器能够通过将接收文件大小与文件描述表格(FDT)中指示的文件大小相比较来判定是否发生了传送丢失。如果接收文件大小不等于FDT文件大小,则知道发生了传送丢失,但是没有判定哪个数据丢失了。如果所有数据都被正确接收,则不必执行文件修补过程。
参考图2,示例性的容器文件由标号200来总地指示。容器文件200包括样本表格210和可变大小编码的图片220。
样本表格210包括每个样本的信息,例如文件偏移量和大小。当然,信息并不仅限于前述的信息类型,因此也可以使用与样本有关的其他类型的信息,同时保持了本原理的范围。表1示出了容器文件样本表格的示例性内容,其中每个样本表示一个经编码的图片。
表1
图片号 |
偏移量 |
大小 |
0 |
900 |
923 |
1 |
1823 |
415 |
2 |
2238 |
639 |
3 |
2877 |
312 |
4 |
3189 |
1527 |
参考图3,具有传送分组化的示例性容器文件由标号300来总地指示。容器文件300示出了示例性的容器文件如何被分成长度为100的固定大小分组以便传送。在该示例中,分组2包括图片1的末尾部分、图片2的全部、以及图片3的起始部分。
如果分组2在传送期间丢失,则分组2中包括的数据将会丢失。如果解码器在不使用文件修补过程的情况下尝试对文件进行解码,那么在试图对图片1解码时,它将针对不正确的数据进行操作。图4示出了该示例。
参考图4,具有传送分组化和分组丢失的示例性容器文件由标号400来总地指示。当解码器170尝试访问样本表格中指示的图片1的所预期的380字节时,它将得到图片1的正确初始部分(在图4中指示为1a)、图片3的最终部分(指示为3b),以及图片4的一部分。由于可变长度编码,解码器将有可能不能检测到它正在处理无效数据,因此将不正确地解释该数据。这将导致看起来非常奇怪的视频,例如当变换系数被解释为运动向量时。此外,解码器有可能因为尝试访问不适当的存储器单元而崩溃。
根据这里的原理的一个或多个实施例的修补解决了向解码器发送无效数据的这个问题。在实施例中,文件修补过程将在文件接收期间或之后、解码之前被应用到容器文件。在修补过程中,对于每个丢失的分组,将判定由于样本的至少一部分缺失,哪些样本将受到丢失的分组的影响。然后,对于那些受影响的样本中的每一个,更新容器文件,以消除损坏的样本。正确接收的数据中的一些被去除或替换,以使解码器可以保证它将只接收有效的经编码图片或切片。
在实施例中,判定哪些样本受丢失的分组的影响的过程利用了来自文件传输协议(例如,单向传输式文件递送)的信息,包括分组长度pkt_length,和被文件接收器判定为与丢失的分组相对应的源块号。该过程还使用了来自容器文件格式的样本表格的信息,包括样本偏移量(或组块偏移量)和样本大小。这些参数被用于判定曾在丢失的分组中的字节与容器文件中的相应经编码样本之间的任何重叠。对于特定的样本,如果在该样本和丢失的分组之间存在任何重叠,使得该样本的至少一部分缺失,则该样本被标记为受分组丢失的影响。
应当明白,使用单向传输式文件递送来判定哪些样本受丢失的分组的影响在这里是出于说明目的而描述的,这里的原理不仅限于使用单向传输式文件递送来进行这种判定。即,给定这里提供的原理的教导,本领域及相关领域的普通技术人员将设想使用单向传输式文件递送和其他协议和方法来判定哪些样本受丢失的分组的影响,以用于执行根据这里的原理的修复,同是保持这里的原理的精神。
参考图7,用于判定受丢失分组的影响的样本的示例性方法由标号700来总地指示。
方法700包括开始块705,该开始块将控制传递给功能块710。功能块710将由变量s表示的当前样本设置为等于0,并且将控制传递给循环限制块715。循环限制块715对于由变量m表示的每个丢失的源块执行循环,并且将控制传递给功能块720,该变量m表示源块号。功能块720将lost_pkt_offset[m]设置为等于pkt_length*m,并且将控制传递给判决块725。判决块725判定offset[s]+size[s]是否大于lost_pkt_offset[m]。如果是,则控制被传递给功能块730。否则控制被传递给功能块745。
功能块730将样本s标记为受分组丢失的影响,并且将控制传递给判决块735。判决块735判定offset[s]+size[s]<lost_pkt_offset[m]+pkt_length。如果是,则控制被传递给功能块740。否则,控制被传递给循环限制块750。
功能块740递增变量s,并且将控制返回给功能块730。
循环限制块750结束对每个丢失的源块(由变量m表示)的循环,并且将控制传递给结束块799。
功能块745递增s,并且将控制返回给判决块725。
如果方法700被应用到这里示出的示例,则与图片1、2和3相对应的样本将被标记为受分组丢失的影响。
在判定出受影响的分组后,更新容器文件以利用这里描述的两种示例性选项之一来修补这些受影响的样本。当然,应当明白,前述的示例性选项只是用于说明性目的的,这里的原理并不仅限于这些选项,有了这里提供的原理的教导,本领域和相关领域的普通技术人员将设想出用于更新容器文件的这些和其他选项,同时仍保持这里的原理的精神。
根据第一示例性选项,与受影响的样本相对应的所有数据都被从文件中去除,并且样本表格被更新以去除所有受分组丢失影响的样本。然后,样本表格中所有其他样本的偏移量被调整以考虑到去除的样本。对于每个被去除的样本,该去除的样本的大小被从样本表格中所有后续样本的偏移量值中减去。根据该选项,在修补之后容器文件的总大小被减小。参考图5,当在根据第一示例性更新选项更新样本表格的情况下进行文件修补之后具有传送分组化和分组丢失的示例性容器文件由标号500来总地指示。
根据第二示例性选项,不修改样本表格,而是将填充数据放置于所有受影响样本的位置中。根据该选项,修补之后容器文件的总大小与原始文件的大小相同。参考图6,在根据第二示例性更新选项利用填充数据进行文件修补之后具有传送分组化和分组丢失的示例性容器文件由标号600来总地指示。
如果所使用的视频压缩标准是MPEG-4 AVC标准,那么包括填充数据的网络抽象层单元可被放置到容器文件中以替换受影响的样本。另一个选项将会是把网络抽象层单元头部中的forbidden_zero_bit设为1,这向解码器表明这是损坏的网络抽象层单元。注意,一些容器文件格式(例如,应用到MPEG-4 AVC标准编码视频的MPEG-4 AVC标准文件格式)可通过在每个网络抽象层单元前附加该单元的大小(NALUnitLength)来在单个样本内存储网络抽象层(NAL)单元的序列。如果forbidden_zero_bit被用于指示损坏,那么如果多个网络抽象层单元存在于一个受影响的样本内,则NALUnitLength必须被调整以反映受影响的样本的完整大小(减去NALUnitLength字段的大小)。
容器文件中的样本的基本单元通常是整个经编码的图片。但是,此概念也可应用到各个切片。经编码的图片或经编码的切片在其数据的至少一部分在传送期间丢失时被去除。
参考图8,用于替换受丢失分组的影响的样本的示例性方法由标号800来总地指示。
方法800包括开始块805,该开始块将控制传递给功能块810。功能块810将当前样本s设置为等于0,并且将控制传递给循环限制块815。功能块815对每个样本执行循环,并且将控制传递给判决块820。
判决块820判定s是否被标记为受分组丢失的影响。如果是,则控制被传递给判决块825。否则,控制被传递给功能块850。
判决块825判定是否使用forbidden_zero_bit方法。如果是,则控制被传递给功能块830。否则,控制被传递给判决块855。
功能块830将当前样本开始处的NALUnitLength字段设置为样本s的长度减去长度字段的长度,并且将控制传递给功能块835。功能块835将当前样本s中的第一NAL头部的forbidden_zero_bit设置为等于1,并且将控制传递给判决块840。
判决块840判定当前样本s是否是最后一个样本。如果是,则控制被传递给循环限制块845。否则,控制被传递给功能块850。
功能块845结束对每个样本s的循环,并且将控制传递给结束块899。
功能块850递增s,并且将控制返回给判决块820。
判决块855判定是否使用填充NAL方法。如果是,则控制被传递给功能块860。否则,控制被传递给功能块870。
功能块860将当前样本开始处的NALUnitLength字段设置为样本s的长度减去长度字段的大小,并且将控制传递给功能块865。功能块865利用包括填充比特内容的NAL来替换样本内容,并且将控制传递给判决块840。
功能块870指定将使用样本去除方法,并且将控制传递给功能块875。功能块875从文件中去除样本,并且将控制传递给功能块880。功能块880更新样本表格以指示去除的样本,并且将控制传递给功能块840。
现在将描述本发明的许多伴随的优点/特征中的一些,其中一些以上已经提及。例如,一个优点/特征在于一种包括接收器和文件修补器的装置。接收器用于接收其中包括容器文件的分组,识别这些分组中的任何发生了分组丢失的分组,并且识别受分组丢失影响的、具有在识别出的分组中包括的数据的至少一个样本。该至少一个样本分别对应于特定容器文件。文件修补器用于针对该至少一个样本修复该特定容器文件。
另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,文件修补器通过从该特定容器文件中去除该至少一个样本来修复该特定容器文件,并且更新该特定容器文件的样本表格来指示该至少一个样本的去除。
另一个优点/特征在于所述具有接收器和文件修补器的装置,其中,如上所述,文件修补器通过从该特定容器文件中去除该至少一个样本来修复该特定容器文件,并且更新该特定容器文件的样本表格来指示该至少一个样本的去除,其中,文件修补器更新该样本表格中的后续样本的偏移量,以考虑到该至少一个样本的去除。
另外,另一个优点/特征在于所述具有接收器和文件修补器的装置,其中,如上所述,文件修补器更新该样本表格中的后续样本的偏移量,以考虑到该至少一个样本的去除,其中,文件修补器从后续样本的偏移量中减去该至少一个样本的大小。
另外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,文件修补器通过利用填充比特内容替换该至少一个样本来修复该特定容器文件。
另外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,接收器基于分组长度、源块号、容器文件样本表格样本偏移量值以及容器文件样本表格样本大小中的至少一种来识别这些分组中的任何发生了分组丢失的分组。
此外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,接收器通过利用分组参数和容器文件格式样本表格参数中的至少一种分别判定在这些分组中的每一个中包括的字节和这些容器文件中相应一个中的相应样本之间是否存在任何重叠,来识别这些分组中的任何发生了分组丢失的分组,并且将所述多个分组中的在存在重叠时的任何分组识别为遭受分组丢失。
另外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,该至少一个样本包括部分接收的样本和完全缺失的样本中的任何一种,并且文件修补器设置与该至少一个样本相对应的网络抽象层单元头部中的比特来指示该至少一个样本是损坏的。
另外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,文件修补器在与该至少一个样本相对应的至少一个网络抽象层单元中将forbidden zero bit设置为1,来指示该至少一个样本是损坏的。
另外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,文件修补器在对该特定容器文件进行解码之前对其进行修复。
此外,另一个优点/特征在于如上所述的具有接收器和文件修补器的装置,其中,该至少一个样本包括部分接收的样本和完全缺失的样本中的任何一种。
有关领域的普通技术人员基于这里的教导可以很容易确定这里的原理的这些和其他特征和优点。应当理解,这里的原理的教导可以通过各种形式的硬件、软件、固件、专用处理器或其组合来实现。
最优选地,这里的原理的教导可实现为硬件和软件的组合。另外,软件可以实现为有形地包含在程序存储单元上的应用程序。应用程序可被上载到包括任何合适的体系结构的机器并被该机器运行。优选地,机器可以实现在具有诸如一个或多个中央处理单元(“CPU”)、随机访问存储器(“RAM”)和输入/输出(“I/O”)接口之类的硬件的计算机平台上。计算机平台还可包括操作系统和微指令代码。这里描述的各种过程和功能可以是微处理器代码的一部分或者应用程序的一部分,或者其任何组合,其可被CPU运行。此外,诸如额外的数据存储单元和打印单元之类的各种其他外围单元可连接到计算机平台。
不应当理解,因为附图中示出的构成系统的组件和方法中的一些优选地是用软件来实现的,所以系统组件或过程功能块之间的实际连接可能依据这里的原理被编程的方式而有所不同。有了这里的教导,有关领域的普通技术人员将能够设想这里的原理的这些和类似实现方式或配置。
虽然已经参考附图描述了说明性实施例,但是应当理解,这里的原理并不限于这些确切的实施例,有关领域的普通技术人员可在其中实现各种变化和修改,而不脱离这里的原理的范围或精神。所有这种变化和修改都意图被包括在所附权利要求所限定的这里的原理的范围之内。