本发明涉及图形处理。
当设计图形架构时,降低存储器带宽至关重要,因为能效是在硬件设计中所占权重最大的性能因素。就能量和延迟时间而言,通过存储器总线的交易可能花费的比计算要多若干数量级。因此,尝试以更多的计算为代价来减少带宽使用从而降低功耗和/或提升整体性能是普遍的。这是缓冲器压缩算法背后的动机,常常发现于图形处理单元(GPU)中。
针对颜色缓冲器压缩,如果所述算法要有用的话,其算法必须成功地将每一图块(tile)(例如,像素的矩形区域)的颜色数据向下压缩至某个阈值大小。例如,如果从压缩中获得任何东西,则以未压缩形式使用1024位的图块可能需要向下压缩至512位(压缩/未压缩图块的大小基于架构发生变化并且通常涉及存储器系统的约束)。因此,可向下压缩至这些阈值(在此示例中的512位)的图块越多,使用到存储器的带宽就越少。可压缩的图块与图块的总数量之间的比率被称为压缩率,并且在评价压缩算法的效率时,压缩率是重要的度量。可以存在若干个不同的阈值,例如,从2048位向下压缩至512位的倍数:1536位、或1024位、或512位。在这种情况下,它们可以从最低阈值(即,这种情况下为512)开始设置优先级。
典型的颜色缓冲器压缩算法可以发现图块中的最小颜色分量,并且然后使用尽可能少的位来对相对于每通道最小颜色分量的残差进行编码。这些方案有时被称为偏移压缩方法。注意,图形应用程序接口(API)(OpenGL和DirectX)要求颜色缓冲器是无损的,即,在压缩/解压缩过程中不可以损坏信息。
附图说明
关于下面的附图描述了一些实施例:
图1是在一个假设示例中的红色通道和绿色通道图;
图2是一个分区实施例的流程图;
图3是一个实施例的系统描绘;以及
图4是系统的一个实施例的正视视图。
具体实施方式
许多图块可以包含两种或更多种不同颜色组。例如,图块可能包含一个蓝颜色组以及另一各黄颜色组。将这些组压缩在一起通常不是非常高效。这是由于两种不同组之间的颜色空间中的较大距离,这需要用于压缩的较大残差(residual)。
首先,在图块内将颜色分区为不同的组,从而使得每一组内的颜色变化被降低。其次,可以采用高效方式对每一组进行编码。在此描述的所述算法可以给出比之前的算法更高的压缩比,并且因此可以在一些实施例中以非常低的计算成本增长来进一步降低存储器带宽。所述算法可以被添加至具有现有缓冲器压缩算法的系统中,处理所述现有算法无法压缩的附加图块,从而增加了整体压缩率。
在分区方案的一个实施例中,围绕图块的颜色限定最小方框(box)并且然后将此方框分割成网格,所述网格具有在一个实施例中覆盖母方框的多个不相交单元(也是方框形状的),但是还可以使用其他配置,例如矩形网格单元。针对每一个单元,发现落入那个单元的颜色的最小方框。在最坏情况下,此方框将如网格单元自身一样大,但是如果样本形成一个紧密组,则此方框通常更小。然后对这些方框进行合并直到标识出可高效存储的组的某个预定数字的组。此数字取决于压缩数据的大小,因此在一个实施例中,针对512位的预算,可例如提供2或3组。然后,围绕一组颜色的最小方框被发现并且以高效方式被编码。
在一些实施例中,这种算法同时将所有通道编码在一起,这可能更高效。
例如,假定一个具有N种颜色(由RGB值限定)的图块。然而,可以使用任何颜色空间。在图1中,仅示出了红色通道和绿色通道(R和G)。
至图1的左边,针对8种像素颜色(四种绿色(开口圆)和四种红色(闭合圆))示出了红色(R)和绿色(G)轴线。在中间,围绕像素颜色绘制了最小方框。圆圈D在左下角处,在所述左下角处是这8种像素颜色的最小颜色。在中间,最小方框被分割成2×2单元。至右边,针对每一个单元计算最小方框B1和B2,创建两个组。暗圈D1和D2示出了这两组的最小颜色。
在最简单的群聚(clustering)算法中,一种仅仅对具有最小颜色(图1中的暗圈D1和D2)的每一个非空单元进行编码,并且然后对那个方框内部的一些残差进行一些编码。这可以利用标准方法或者利用以下描述的方法来进行。
此示例是在二维中,但通常存在三(RGB)维或四(RGBA)维。由于对组(或方框)的最小颜色的编码相当昂贵,因此有时将两组(方框)合并成一组是有意义的。还可以选择将颜色变换成另一种颜色空间,诸如伪亮度或强度(Y)、橘色色度、Co和绿色色度Cg或(YCoCg)以便潜在地减小每一个方框的体积,因此减少残余位的数量。例如,在具有低色度的图像中,大部分的变化将沿着Y轴。
在迭代方案中,对所产生的合并后的组(方框)的总体积增加最少的一对组(方框)进行合并。在RGB空间中,通过每维分割一次来获得8个单元。在x、y或z上,每一组仅具有一个直接相邻组。一种有用的合并启发是:相较于与任何其他相邻方框进行合并,将所述最小方框与给出最小体积的相邻方框进行合并。迭代地进行此步骤直到成本下降至成功压缩的位阈值以下。只有达到目标位阈值(或小于目标位阈值),才需要继续合并。
每维进行多于一次的分割也是可能的。这创建了更多其最小方框可以被合并的单元。在这种情况下,每一个单元可以得到更多的直接相邻单元。
假定有一组颜色要编码,并且针对在RGB空间中围绕这些颜色的方框标识出最小颜色。首先,可以从所述组中的所有颜色中减去此最小颜色以便计算每一个通道颜色的残余分量。然后,发现每一个通道的最大颜色分量LR、LG、LB。每一个通道的“宽度”被标记为wR、wG、wB,其中,wR=LR+1,等等。
大多数方案仅使用整数个位来存储每信道的残差。这意味着例如针对红色通道R,发现最小k,从而使得WR<=2k,并且然后对具有k位的R的每一残差进行编码。然后,这会变得非常浪费。例如,如果最大残差是32,则需要6位来对那个残差进行编码(因为5位仅达到25-1=31)。
相反,可以使用更高效的编码技术。随后的说明同样是在RGB空间中,但这概括了任何颜色空间中的任何数量的通道。
假定将要对颜色r、g、b(当如以上所述,已经减去了最小颜色)进行编码。注意,r是0与wR-1之间的数字,并且在其他通道中以此类推。
使用每一个通道的最大颜色分量,此编码被变换成单个整数成本T,如下:
[等式1]T=r+g*wR+b*wR*wG
此数字可至多处于0与(wR*wG*wB-1)之间。因此,发现了最小的数字k,从而使得(wR*wG*wB-1)<2k并且利用k位对每一个T进行编码。
这保存每像素0与c-1位之间,假定c是每像素的通道的数量。以下表1中包括几个示例。
表1:通过将残差编码为单个无符号整数而非对每个残差分量单独编码来进行位节约的示例。
接下来,对解码进行说明。我们具有数字(每像素)、T,并且想要对r、g、以及b进行解码。
[等式2]
b=T/(wR*wG)
g=(T-b*wR*wG)/wR=(T%(wR*wG))/wR
r=(T-b*wR*wG)%wR=(T%(wR*wG))%wR
每颜色组,存储所述组的大小:每图块的wR、wG、wB。当前的方案可能需要存储每通道3位(针对R8G8B8A8),并且在本方案之后的优化的情况下,在一些实施例中可能需要存储每通道6位。因此,成本增加了6*4-3*4=12位,这是可以接受的。
在以上说明中,RGBA被编码在一起。另一替代方案是:对与其他通道隔离的所有红色值进行编码,并且所有绿色值将与其他通道隔离而被编码在一起,并且针对蓝色和阿尔法也是类似的。例如,如果三个红色值被编码在一个组中,可将等式1重写为:
[等式3]T=r1+r2*wR+r3*wR*wR
以相同的方式,可对解码(等式2)进行调整(在使用wG(及其他)的任何地方仅使用wR)。这可潜在地更加高效,并且可选择将许多更多通道分量(例如,红色值)一起编码在一个组中。例如,可决定将通道分量(例如,红色值)编码在一起。这还可以可能地自适应地进行,即越来越多的通道分量被编码直到达到最佳折中,这可能是成本T尽可能的接近2的幂数,因为那使用更少的位。
编码(等式1)和解码(等式2)包括乘法和除法(以及模数,即%运算符)两者。针对一些图形处理器,降低这些运算的成本是可以期望的。例如,可以限制每一个通道的宽度(即wR、wG、wB)以便使得除法更简单。
之前,宽度wR、wG、wB仅可呈现二(即2j)的幂数。这将除法转变为移位,但是其同样不能节省任何位。以下宽度可用于一个实施例中:
[等式4]
1*2n,
3*2n,
5*2n,
7*2n。
针对RGB,除以wR*wG。此数字被描述为:
{1,3,5,7}*2n*{1,3,5,7}*2m
所述除法变为:
b=T/(wR*wG)=T/({1,3,5,7}*2n*{1,3,5,7}*2m)。
除以2n和2m变成除法,并且然后余数可以除以{1,3,5,7}中的任何两个数。
这些可以相对简单地在如在被常数整除(Integer Division by Constants)(在因特网上在hackersdelight.org/divcMore.pdf可获得)中描述的硬件来实现。
另一可替代性示例是让宽度为从0至15的数,并且k*16,其中,k>=1。这意味着利用从1至15的常数来实现除法,即1、2、3、4、5、6、7、8、9、10、11、12、13、14、15。
这归结为以下除法(不考虑除以2、或重复):
3、5、7、11、13。
剩余的将是移位。
如果可负担得起,可将多于一个的像素编码成单个数。如果N种颜色被编码在一起,可保存0与N-1位之间。
在此描述的两种分区和编码方案可彼此单独或一起使用,例如取决于需要和实用性。
图2中所示的群聚算法10可以用软件、固件和/或硬件来实现。在软件和固件实施例中,可以由存储在一个或多个非瞬态计算机可读介质(诸如磁性、光学、或半导体存储设备)中的计算机可执行指令来实现。例如,在一个实施例中,所述群聚算法可以与图形处理器相关联的存储设备来实现。
如框12中所指示的,群聚算法10通过基于在颜色值图块内的颜色变化将所述图块划分成多个单元而开始。这些单元可以是对图块的任何细分。
然后,如框14中所指示的,确定每一个非空单元的基础颜色值。在如以上所述的一个实施例中,基础颜色值可以是单元的最小颜色值。但是,还可以使用包括最大值、中值或平均值在内的其他值来提及其他示例。如框15中所指示的,对所产生的合并后的组的总体积增加最少的这对组进行合并。
最后,如框16中所指示的,对非空单元中的每一个颜色值相对于基础颜色值的残差进行编码。以上已经描述了用于对颜色值进行编码的各种不同的技术。还可以使用其他技术。
图3展示了系统700的实施例。在实施例中,虽然系统700不限于此上下文,但系统700可以是媒体系统。例如,系统700可以并入个人计算机(PC)、膝上计算机、超级膝上计算机、平板机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等。
在实施例中,系统700包括耦合至显示器720的平台702。平台702可以接收来自内容设备的内容,如(多个)内容服务设备730或(多个)内容传递设备740或者其他类似内容源。包括一个或多个导航特征的导航控制器750可以用于例如与平台702和/或显示器720交互。以下将更详细地描述这些组件中的每个组件。
在实施例中,平台702可以包括芯片组705、处理器710、存储器712、存储设备714、图形子系统715、应用716和/或无线电718的任意组合。芯片组705可以提供在处理器710、存储器712、存储设备714、图形子系统715、应用716和/或无线电718之间的相互通信。例如,芯片组705可以包括能够提供与存储设备714的相互通信的存储器适配器(未描绘)。
处理器710可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核处理器、或任何其他微处理器或中央处理单元(CPU)。在实施例中,处理器710可以包括(多个)双核处理器、(多个)双核移动处理器等。处理器可以与存储器712一起实现图2的序列。
存储器712可以被实现为易失性存储设备,如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。
存储设备714可以被实现为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池应急SDRAM(同步DRAM)、和/或可接入网络的存储设备。在实施例中,存储设备714可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。
图形子系统715可以执行对诸如用于显示的静态或视频图像的处理。例如,图形子系统715可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口来通信地耦合图形子系统715与显示器720。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI、和/或符合无线HD的技术中的任何一个接口。图形子系统715可集成到处理器710或芯片组705内。图形子系统715可以是通信地耦合至芯片组705的独立卡。
在此描述的图形和/或视频处理技术可以用各种硬件架构来实现。例如,图形和/或视频功能可以被集成到芯片组中。可替代地,可以使用离散图形和/或视频处理器。如又另一实施例,图形和/或视频功能可以由通用处理器(包括多核处理器)来实现。在进一步的实施例中,所述功能可以在消费电子设备中实现。
无线电718可以包括能够使用各种适当的无线通信技术发射并接收信号的一个或多个无线电。这种技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个人局域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这类网络通信时,无线电718可以根据任意版本的一个或多个可适用标准进行操作。
在实施例中,显示器720可以包括任何电视机类型监测器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监测器、电视机类型的设备、和/或电视机。显示器720可以是数字的和/或模拟的。在实施例中,显示器720可以是全息显示器。并且,显示器720可以是可以接收视觉投影的透明表面。这种投影可以传达各种形式的信息、图像和/或物体。例如,这种投影可以是针对移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面722。
在实施例中,(多个)内容服务设备730可以发起于任意国家的、国际的和/或独立的服务并且因此例如经由互联网可接入平台702。(多个)内容服务设备730可以耦合至平台702和/或至显示器720。平台702和/或(多个)内容服务设备730可以耦合至网络760以将媒体信息传达至网络760或从网络接收(例如,发送和/或接收)。(多个)内容传递设备740也可以耦合至平台702和/或至显示器720。
在实施例中,(多个)内容服务设备730可以包括有线电视盒、个人计算机、网络、电话、能够传递数字信息和/或内容的启用互联网的设备或应用、以及能够在内容提供方与平台702和/或显示器720之间经由网络760或直接地单向或双向传达内容的任何其他类似设备。将理解,内容可以经由网络760单向地和/或双向地来往于系统700中的任何一个组件与内容提供方之间进行通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
(多个)内容服务设备730接收如包括媒体信息、数字信息、和/或其他内容的有线电视节目的内容。内容提供方的示例可以包括任何有线或卫星电视或无线电或互联网内容提供方。所提供的示例并不意在限制可应用实施例。
在实施例中,平台702可以从具有一个或多个导航特征的导航控制器750中接收控制信号。控制器750的导航特征可以用于例如与用户界面722交互。在实施例中,导航控制器750可以是定位设备,所述定位设备可以是允许用户输入空间(如连续的和多维的)数据到计算机的计算机硬件组件(特别是人机接口设备)。诸如图形用户界面(GUI)、以及电视机和监测器的许多系统允许用户使用物理姿势来控制计算机或电视机并向计算机或电视机提供数据。
可以通过指针、光标、聚焦环、或在显示器上显示的其他视觉指示符的移动在显示器(例如,显示器720)上回应控制器750的导航特征的移动。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可以例如被映射至在用户界面722上显示的虚拟导航特征。在实施例中,控制器750可以不是独立组件而是集成到平台702和/或显示器720内。然而,实施例并不限于在此示出或描述的这些元素或上下文。
在实施例中,驱动器(未示出)可以包括使用户能够通过例如在初始引导后启动的按钮的触摸立刻打开和关闭类似电视机的平台702的技术。当平台被“关闭”时,程序逻辑可以允许平台702流出内容到媒体适配器或其他(多个)内容服务设备730或(多个)内容传递设备740。此外,芯片组705可以包括支持例如5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在实施例中,图形驱动器可以包括外围组件互连(PCI)快速图形卡。
在各实施例中,可以对系统700中示出的任何一个或多个组件进行集成。例如,平台702和(多个)内容服务设备730可以是集成的,或者平台702和(多个)内容传递设备740可以是集成的,或者平台702、(多个)内容服务设备730、和(多个)内容传递设备740可以例如是集成的。在各实施例中,平台702和显示器720可以是集成单元。例如,显示器720和(多个)内容服务设备730可以是集成的,或者显示器720和(多个)内容传递设备740可以是集成的。这些示例并不意在限制范围。
在各实施例中,系统700可以被实现为无线系统、有线系统、或两者的组合。当被实现为无线系统时,系统700可以包括适合于通过如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑等的无线共享介质进行通信的组件和接口。无线共享介质的示例可以包括无线频谱部分,诸如RF频谱等。当被实现为有线系统时,系统700可以包括适合于通过有线通信介质(诸如输入/输出(I/O)适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等)进行通信的组件和接口。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台702可以建立一个或多个逻辑或物理信道以传达信息。所述信息可以包括媒体信息和控制信息。媒体信息可以指表示为用户准备的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文字等的数据。来自语音对话的数据可以是例如发言信息、沉默时段、背景噪音、舒适噪音、声调等。控制信息可以是指表示针对自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于将媒体信息路由通过系统、或指示节点以预定方式处理媒体信息。然而,实施例不限于图3中示出或描述的元素或上下文。
如上所述,系统700可以用变化的物理风格或形状因数来具体化。图4展示了可以用其具体化系统700的小形状因数设备800的实施例。在实施例中,例如,设备800可以被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源或供电(诸如一个或多个电池)的任何设备。
如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上计算机、超级膝上计算机、平板机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等。
移动计算设备的示例还可以包括被安排成由人穿戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机、以及其他可穿戴计算机。在实施例中,例如,移动计算设备可以实现为能够执行计算机应用程序、以及语音通信和/或数据通信的智能电话。举例来讲,尽管一些实施例可以用被实现为智能电话的移动计算设备来描述,但可以理解的是,其他实施例也可以使用其他无线移动计算设备来实现。实施例不局限于本上下文中。
下面的条款和/或示例涉及进一步的实施例:
一个示例实施例可以是一种方法,所述方法包括:使用计算机处理器,基于在颜色值图块内的颜色变化来将所述图块划分成多个单元;确定每一个非空单元的基础颜色值;以及使用所述基础颜色值来对每一个值进行编码。所述方法还可以包括:限定围绕图块颜色值的最小方框;以及将所述方框分割成多个单元。所述方法还可以包括:对使合并后方框的总体积增加最少量的一对方框进行合并。所述方法还可以包括:相比与任何其他相邻方框合并,将所述最小方框与给出最小体积的相邻方框合并以及迭代地进行合并,直到编码成本下降至低于阈值为止。所述方法还可以包括:对在非空单元中的每一个值相对于所述单元的所述基础颜色值的残差进行编码。所述方法还可以包括:从待编码的组中的所有颜色值中减去最小颜色值以形成每一个通道的颜色值分量。所述方法还可以包括:发现每一个通道的最大颜色值分量。所述方法还可以包括:使用所述每通道最大分量将颜色编码变换成单个整数成本。所述方法还可以包括:将颜色空间的所有通道编码在一起。所述方法还可以包括:在不进行乘法或除法的情况下进行编码。所述方法还可以包括:为数组指定宽度,使得利用常数对所述数组实现除法。所述方法还可以包括:将相同颜色分量的多个值编码在一起。
另一示例实施例可以是一种或多种非瞬态计算机可读介质,所述一种或多种非瞬态计算机可读介质存储有指令,所述指令由处理器执行以便执行包括以下各项的序列:使用计算机处理器,基于在颜色值图块内的颜色变化来将所述图块划分成多个单元;确定每一个非空单元的基础颜色值;以及使用所述基础颜色值来对每一个值进行编码。所述介质可以包括:限定围绕图块颜色值的最小方框;以及将所述方框分割成多个单元。所述介质可以包括:对使合并后方框的总体积增加最少量的一对方框进行合并。所述介质可以包括:相比与任何其他相邻方框合并,将所述最小方框与给出最小体积的相邻方框合并;以及迭代地合并,直到编码成本下降至低于阈值为止。所述介质可以包括:对在非空单元中的每一个值相对于所述单元的所述基础颜色值的残差进行编码。所述介质可以包括:将颜色空间的所有通道编码在一起。所述介质可以包括:在不进行乘法或除法的情况下进行编码。所述介质可以包括:为数组指定宽度,使得利用常数对所述数组实现除法。所述介质可以包括:将相同颜色分量的多个值编码在一起。
在另一示例实施例中可以是一种装置,包括:处理器,所述处理器用于:基于在颜色值图块内的颜色变化来将所述图块划分成多个单元;确定每一个非空单元的基础颜色值;以及使用所述基础颜色值对每一个值进行编码;以及耦合至所述处理器的存储设备。所述装置可以包括所述处理器,所述处理器用于:限定围绕图块颜色值的最小方框;以及将所述方框分割成多个单元。所述装置可以包括所述处理器,所述处理器用于:对使合并后方框的总体积增加最少量的一对方框进行合并。所述装置可以包括所述处理器,所述处理器用于:相比与任何其他相邻方框合并,将所述最小方框与给出最小体积的相邻方框合并;以及迭代地进行合并,直到编码成本下降至低于阈值为止。所述装置可以包括所述处理器,所述处理器用于:对在非空单元中的每一个值相对于所述单元的所述基础颜色值的残差进行编码。所述装置可以包括所述处理器,所述处理器用于:将颜色空间的所有通道编码在一起。所述装置可以包括所述处理器,所述处理器用于:在不进行乘法或除法的情况下进行编码。所述装置可以包括所述处理器,所述处理器用于:包括电池。所述装置可以包括所述处理器,所述处理器用于:更新固件的包括所述固件和模块。
在此描述的图形处理技术可以用各种硬件架构来实现。例如,图形功能可以被集成到芯片组内。可替代地,可以使用离散图形处理器。如又另一实施例,图形功能可以由通用处理器(包括多核处理器)来实现。
贯穿本说明书提及“一个实施例”或“实施例”意味着,结合所述实施例所描述的特定特征、结构、或特性被包括在本公开所涵盖的至少一种实现方式中。因此,短语“一个实施例”或“在实施例中”的出现并非必须指相同个实施例。而且,除了所展示的特定实施例之外,特定特征、结构、或特性可以以其他适合的形式建立,并且所有这种形式都可以涵盖于本申请的权利要求书中。
虽然已经描述了有限数量的实施例,但本领域技术人员将从中理解许多修改和变体。旨在使得所附权利要求书覆盖落入本公开的真正精神和范围的所有此类修改和变体。