具体实施方式
本发明涉及使用区域视差向量的多视角编码视频中的运动跳过模式的方法和装置。
本说明书说明了本发明。因此,将会明白,本领域的技术人员将能够设计出各种配置,这些配置虽然在这里没有明确描述或者示出,但却实现了本发明并被包括在其精神和范围之内。
这里记载的所有示例和条件语言都意图用于教学目的,以帮助读者理解本发明和发明人对推进现有技术所贡献的思想,并且应当被解释为不限于这种具体记载的示例和条件。
另外,这里的所有记载本发明的原理、方面和实施例及其具体示例的陈述,都意图包括其结构和功能等同物。此外,希望这种等同物既包括当前已知的等同物,也包括将来开发出的等同物,即所开发出的任何执行相同功能的元件,不论其结构如何。
因此,例如,本领域的技术人员将会明白,这里给出的框图表示了实现本发明的示例性电路的概念性视角。类似地,将会明白,任何流程图、状态转换图、伪代码等等都表示实质上可以表示在计算机可读介质中并可以由计算机或处理器来如此执行的各种过程,不论这种计算机或处理器是否被明确地示出。
图中所示的各种元件的功能可通过使用专用硬件以及能够结合适当的软件来执行软件的硬件来提供。当由处理器提供时,这些功能可由单个专用处理器提供、由单个共享处理器提供、或者由多个独立的处理器(其中一些可能被共享)提供。另外,对术语“处理器”或“控制器”的明确使用不应当被解释为只指能够执行软件的硬件,而是可以隐含地包括(但不限于)数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)和非易失性存储设备。
还可以包括其他传统的和/或定制的硬件。类似地,图中所示的任何开关都只是概念性的。它们的功能可通过程序逻辑的操作来实现、通过专用逻辑来实现、通过程序控制和专用逻辑的交互来实现,或者甚至手工实现,具体的技术可由实现者根据对上下文的更具体理解来选择。
在其权利要求中,被表达为用于执行指定功能的装置的任何元件都意图涵盖执行该功能的任何方式,例如包括a)执行该功能的电路元件的组合或者b)任何形式的软件(因此包括固件、微代码等等),这种软件与用于执行该软件的适当电路相组合以执行该功能。这种权利要求所限定的本发明存在于以下事实中:由所记载的各种装置所提供的功能以权利要求所要求的方式被组合到一起。因此,认为任何能够提供这些功能的装置都与这里示出的那些是等同的。
说明书中提到本发明的“一个实施例”或“实施例”意指结合该实施例描述的特定特征、结构、特性等等被包括在本发明的至少一个实施例中。因此,说明书中各处出现的短语“在一个实施例中”或者“在实施例”中不一定均指相同实施例。
这里使用的“高级别语法”(high level syntax)指的是存在于比特流中的、在层次上高于宏块层的语法。例如,这里使用的高级别语法可以指(但不限于)片层头部级、补充增强信息(SEI)级、图片参数集(PPS)级、序列参数集(SPS)级、视角参数集(VPS)级和网络抽象层(NAL)单元头部级的语法。
另外,这里可互换使用的“交叉视角”(cross-view)和“视角间”(inter-view)都指的是属于除当前视角外的视角的图片。
另外,这里使用的“多个”指的是两个或更多个某物品。因此,例如,“多个区域视差向量”指的是两个或更多个区域视差向量。
而且,这里使用的短语“运动信息”指的是与同一视角相对应的时间性改变。
此外,这里使用的短语“视差信息”指的是不同视角之间的空间性改变。
另外,这里使用的“现有语法”指的是已存在于与多视角视频有关的任何现有的视频编码标准、推荐及其扩展中的语法(包括但不限于MPEG-4AVC标准),这与出于本发明目的而生成的新语法形成对照。因此,这种现有语法至少可以满足两种目的:第一是与其相关的现有视频编码标准和推荐的期望目的,以及根据本发明的至少一个目的。
应当明白,例如在“A和/或B”和“A和B中的至少一个”的情况下使用术语“和/或”和“中的至少一个”意图涵盖仅对列出的第一选项(A)的选择、或者仅对列出的第二选项(B)的选择、或者对两个选项(A和B)的选择。又例如,在“A、B和/或C”和“A、B和C中的至少一个”的情况下,这种短语意图涵盖仅对列出的第一选项(A)的选择、或者仅对列出的第二选项(B)的选择、或者仅对列出的第三选项(C)的选择、或者仅对列出的第一和第二选项(A和B)的选择、或者仅对列出的第一和第三选项(A和C)的选择、或者仅对列出的第二和第三选项(B和C)的选择、或者对所有三个选项(A和B和C)的选择。列出了多少项,这就可以扩展到多少项,这对于本领域和相关领域的普通技术人员来说是显而易见的。
另外,应当明白,虽然这里针对MPEG-4AVC标准的多视角视频编码(MVC)扩展描述了本发明的一个或多个实施例,但是本发明并不仅限于这种标准,因此,可以针对与多视角视频编码有关的其他视频编码标准、推荐及其扩展(包括MPEG-4AVC标准的扩展)使用,同时仍维持本发明的精神。
参考图2,示例性的多视角视频编码(MVC)编码器由标号200总地指示。编码器200包括组合器205,该组合器205具有与变换器210的输入发生信号通信连接的输出。变换器210的输出与量化器215的输入发生信号通信连接。量化器215的输出与熵编码器220的输入和逆量化器225的输入发生信号通信连接。逆量化器225的输出与逆变换器230的输入发生信号通信连接。逆变换器230的输出与组合器235的第一同相输入发生信号通信连接。组合器235的输出与内预测器245的输入和解块滤波器250的输入发生信号通信连接。解块滤波器250的输出与(用于视角i的)参考图片存储装置255的输入发生信号通信连接。参考图片存储装置255的输出与运动补偿器275的第一输入和运动估计器280的第一输入发生信号通信连接。运动估计器280的输出与运动补偿器275的第二输入发生信号通信连接。
(用于其他视角的)参考图片存储装置260的输出与视差/照明估计器270的第一输入和视差/照明补偿器265的第一输入发生信号通信连接。视差/照明估计器270的输出与视差/照明补偿器265的第二输入发生信号通信连接。
熵编码器220的输出可用作编码器200的输出。组合器205的同相输入可用作编码器200的输入,并且与视差/照明估计器270的第二输入和运动估计器280的第二输入发生信号通信连接。开关285的输出与组合器235的第二同相输入和组合器205的反相输入发生信号通信连接。开关285包括与运动补偿器275的输出发生信号通信连接的第一输入、与视差/照明补偿器265的输出发生信号通信连接的第二输入、以及与内预测器245的输出发生信号通信连接的第三输入。
模式判决模块240具有连接到开关285的输出,用于控制开关285选择哪个输入。
参考图3,示例性的多视角视频编码(MVC)解码器由标号300总地指示。解码器300包括熵解码器305,该熵解码器305具有与逆量化器310的输入发生信号通信连接的输出。该逆量化器的输出与逆变换器315的输入发生信号通信连接。逆变换器315的输出与组合器320的第一同相输入发生信号通信连接。组合器320的输出与解块滤波器325的输入和内预测器330的输入发生信号通信连接。解块滤波器325的输出与(用于视角i的)参考图片存储装置340的输入发生信号通信连接。参考图片存储装置340的输出与运动补偿器335的第一输入发生信号通信连接。
(用于其他视角的)参考图片存储装置345的输出与视差/照明补偿器350的第一输入发生信号通信连接。
熵解码器305的输入可用作解码器300的输入,用于接收残余比特流。另外,模式模块360的输入也可用作解码器300的输入,用于接收控制语法,以控制开关355选择哪个输入。此外,运动补偿器335的第二输入可用作解码器300的输入,用于接收运动向量。并且,视差/照明补偿器350的第二输入可用作解码器300的输入,用于接收视差向量和照明补偿语法。
开关355的输出与组合器320的第二同相输入发生信号通信连接。开关355的第一输入与视差/照明补偿器350的输出发生信号通信连接。开关355的第二输入与运动补偿器335的输出发生信号通信连接。开关355的第三输入与内预测器330的输出发生信号通信连接。模式模块260的输入与开关355发生信号通信连接,用于控制开关355选择哪个输入。解块滤波器325的输出可用作解码器的输出。
如上所述,本发明涉及使用区域视差向量的多视角编码视频中的运动跳过模式的方法和装置。多视角视频编码(MVC)是多视角序列的编码的压缩框架。多视角视频编码(MVC)序列是从不同的视角点捕捉同一场景的两个或更多个视频序列的集合。
如以上针对现有技术所述,目前在根据联合多视角视频模型(JMVM)的运动跳过模式中,特定视角的运动信息是从来自相邻视角的帧中的对应宏块来推断的。另外,如以上针对现有技术所述,计算应用于整个图片的“全局视差向量”以找出相邻视角中的对应宏块。该全局视差向量随后在每个锚定图片中被传送并被非锚定图片用来获得对应宏块。
与之不同,我们提出了对于单个图片使用“区域视差向量”。图片首先被划分成具有不同视差的区域。对于每个区域,计算区域视差向量。在获得可能是像素、4×4块、8×8块或宏块对齐的N个区域向量后,我们为每个锚定图片通知这些区域向量。非锚定图片随后按宏块来选择使用哪个视差向量来推断运动信息。
在一个实施例中,为了为每个宏块获得相对准确的视差信息,我们将图片划分成具有不同视差的区域。每个区域对应于一个特定的类并且包括具有类似的视差值的块。每个类随后可由单个视差向量来近似。因此,我们获得若干个区域视差向量。
在一个或多个实施例中,可以仅为锚定图片传送区域视差向量,而非锚定图片或者可以直接使用来自锚定图片的这些向量,或者可以基于它们各自与锚定图片的相对距离来缩放这些向量。虽然这是可选的,但是此方法的优点在于,我们可通过仅在锚定图片处传送而节省为视差向量传送的比特。
在另一个实施例中,我们为每个非锚定图片传送视差向量。这个方法的缺点在于我们需要许多比特来传送区域视差向量。然而,优点在于向量可以更准确并且可以帮助以更高的精度选择对应宏块。
我们将当前图片划分成多个区域,在每个区域内具有大致相似的视差,我们随后利用单个视差向量来表示每个区域。对于视差信息,存在各种方式来实现这个目标。与计算机视觉方面的开发复杂方法来在像素级找出准确且平滑的视差地图的大多数文献不同,与之形成对照,根据本发明的一个实施例,我们示范了一种群集(clustering)方法,该方法基于从视频编码器所执行的初始视差补偿获得的整个块范围内的视差向量的水平分量。此方法适用于相机布置在同一水平线上的多视角***。对于诸如相机阵列之类的二维(2D)相机布置,群集方法可以被扩展到视差向量的x和y方向。
为了利用视差向量实现块分割,我们提出了一种使用高斯混合模型(Gaussian Mixture Model,GMM)的群集方法。预期最大化算法(EM算法)被应用来实现GMM群集。此方法将利用多个高斯分布来对视差向量的水平分量的直方图建模。基于为每个高斯分量计算的块的视差向量的似然,来将这些块分类到不同的区域中。
在这种分类之后,我们为每个视差类(区域)获得一个平均视差向量。参考图4,对区域视差向量的高斯混合模型(GMM)分类之后的示例性直方图由标号400总地指示。直方图400表示根据本发明的一个实施例的分类工具的输出。
在我们获得N个区域的N个平均视差向量之后,它们被舍入到最近的整数,该整数可对应于像素、4×4块、8×8块或宏块边界。在一个实施例中,这N个平均视差向量随后被以高级别语法的形式通知。如上所述,高级别语法例如可以是(但不限于)片层头部级、补充增强信息(SEI)级、图片参数集(PPS)级、序列参数集(SPS)级和网络抽象层(NAL)单元头部级的语法。取决于实施例,可以仅为锚定图片通知这些区域视差向量或者可为锚定图片和非锚定图片通知这些区域视差向量。在一个实施例中,在片层头部中为所有图片通知该信息。表3示出了根据本发明的一个实施例所提出的用于运动跳过模式的片层头部。
在接着区域视差向量的描述中,假定是以宏块边界对齐的,但是它们也可能是以像素、2×2块、4×4块或者甚至8×8块的边界对齐的。
表3
slice_header_mvc_extension(){ |
C |
描述符 |
first_mb_in_slice |
2 |
ue(v) |
slice_type |
2 |
ue(v) |
if(slice_type==P||slice_type==B){ |
|
|
num_regional_disparity_vectors_l0 |
2 |
ue(v) |
for(numVect=0;numVect<num_disparity_vectors_l0-1:numVect++) |
|
|
for(compIdx=0;compIdx<2;compIdx++) |
|
|
regional_disparity_l0[numVect][compIdx] |
2 |
se(v) |
if((slice_type==B){ |
|
|
num_regional_disparity_vectors_l1 |
2 |
ue(v) |
for(numVect=0;numVect<num_dispanty_vectors_l1-1;numVect++) |
|
|
for(compIdx=0;compIdx<2;compIdx++) |
|
|
regional_disparity_l1[numVect][compIdx] |
2 |
se(v) |
} |
|
|
} |
|
|
pic_parameter_set_id |
2 |
ue(v) |
---剩余部分与JMVM相同--- |
|
|
一旦已获得了这些区域视差向量,每个宏块随后就可以使用这些区域视差向量之一来针对运动跳过模式从另一视角获得对应宏块。一旦判定哪个区域视差向量就速率失真而言给出最小成本,所判定的区域视差向量就被通知,以使得解码器可以使用这个视差向量。因此,在宏块级,我们通知在宏块模式是运动跳过时使用哪些视差向量。表4示出了根据本发明的一个实施例所提出的用于运动跳过模式的宏块层。
根据本发明的一个实施例所提出的语法元素的语义在下文中描述。
片层头部语义包括以下内容:
num_regional_disparity_vectors_l0指示当前片层的与LIST_0视角间参考图片相对应的区域视差向量的数目。
num_regional_disparity_vectors_l1指示当前片层的与LIST_1视角间参考图片相对应的区域视差向量的数目。
regional_disparity_l0[numVect][compIdx]规定要使用的视差向量分量。索引numVect规定regional_disparity_l0属于哪个区域。水平视差向量分量在解码顺序上被首先解码并且被赋予compIdx=0。垂直视差向量分量在解码顺序上被第二个解码并且被赋予compIdx=1。
regional_disparity_l0[numVect][compIdx]具有与regional_disparity_l0相同的语义,但l0被替换为l1。
宏块层语义包括以下内容:
list_idx在存在时指示出哪个列表被用来推断运动和模式信息。list_idx等于0表明宏块将从LIST_0视角间参考图片推断运动和模式信息。list_idx等于1表明宏块将从LIST_1视角间参考图片推断运动和模式信息。
regional_disparity_idx在存在时规定regional_disparity_lx阵列中将被用于选择区域视差向量以获得对应运动向量的索引。在regional_disparity_l0和regional_disparity_l1之间所做的选择取决于语法list_idx。
在另一个实施例中,区域视差向量不是由编码器发送的,而是可以改为在编码器和/或解码器方利用现有的语法和可用数据来计算。
还可以为锚定图片和/或非锚定图片使用多个视角间参考。因此,在另一个实施例中,可以针对每个视角间参考图片指定区域视差向量。在宏块级,我们随后需要指示哪个视角间参考图片应当被用于推导该信息。表5示出了根据本发明的一个实施例所提出的用于具有多个参考的运动跳过模式的片层头部。
表5
slice_header_mvc_extension(){ |
C |
描述符 |
first_mb_in_slice |
2 |
ue(v) |
slice_type |
2 |
ue(v) |
if(slice_type==P||slice_type==B){ |
|
|
num_regional_disparity_vectors_l0 |
2 |
ue(v) |
for(numRef=0;numRef<num_non_anchor_refs_l0[i];numRef++) |
|
|
for(numVect=0;numVect<num_disparity_vectors_l0-1;numVect++) |
|
|
for(compIdx=0;compIdx<2;compIdx++) |
|
|
regional_disparity_l0[numRef][numVect][compIdx] |
2 |
se(v) |
if(slice_type==B){ |
|
|
num_regional_disparity_vectors_l1 |
2 |
ue(v) |
for(numRef=0;numRef<num_non_anchor_refs_l1[i];numRef++) |
|
|
for(numVect=0;numVect<num_disparity_vectors_l1-1;numVect++) |
|
|
For(compIdx=0;compIdx<2;compIdx++) |
|
|
regional_disparity_l1[numRef][numVect][compIdx] |
2 |
se(v) |
} |
|
|
} |
|
|
pic_parameter_set_id |
2 |
ue(v) |
---剩余部分与JMVM相同--- |
|
|
表6示出了根据本发明的一个实施例所提出的用于具有多个视角间参考的运动跳过模式的宏块层。
表6
macroblock_layer()| |
C |
描述符 |
if(!anchor_pic_flag) |
|
|
motion_skip_flag |
2 |
u(I)|ae(v) |
if(!motion_skip_flag) |
|
|
mb_type |
2 |
ue(v)|ae(v) |
if(!motion_skip_flag&&mb_type==I_PCM)| |
|
|
while(!byte_aligned()) |
|
|
pem_alignment_zero_bit |
2 |
f(l) |
for(i=0:i<256:i++) |
|
|
pem_sample_luma[i] |
2 |
u(v) |
for(i=():i<2*MbWidihC*MbHeightC:i++) |
|
|
pem_sample_chroma[i] |
2 |
u(v) |
|else| |
|
|
noSubMbPartSizeLessThan8×8Flag=I |
|
|
if(!motion_skip_flag)| |
|
|
if(mb_type!=I_N×N&&MbPartPredMode(mb_type.0)!=Intra_16×16&&NumMbPart(mb_type)==4)| |
|
|
......... |
|
|
|else| |
|
|
if(transform_8×8_mode_flag&&mb_type==I_N×N) |
|
|
transform_size_8×8_flag |
2 |
u(l)|ae(v) |
mb_pred(mb_type) |
2 |
|
} |
|
|
|else| |
|
|
list_idx |
2 |
u(l)|ae(v) |
ref_idx |
2 |
te(v)|ae(v) |
regional_disparity_idx |
2 |
te(v)|ae(v) |
} |
|
|
if(MhPartPredMode(mb_type.0)!=Intra_16×16)| |
|
|
coded_block_pattern |
2 |
me(v)|ae(v) |
if(CodedBlockPattuernLuma>0&&transform_8×8_mode_flag&&mb_type!=I_N×N&&noSubMbPartSizeLessThan8×8Flag&&(mb_type!=B_Direct_16×16||direct_8×8_inference_flag)) |
|
|
transform_size_8×8_flag |
2 |
u(l)|ae(v) |
} |
|
|
if(CodedBloekPatternLuma>0||CodedBlockPatternChroma>>0||MbPartPredMode(mb_type.0)==Intra16×16)| |
|
|
mb_qp_delta |
2 |
se(v)|ae(v) |
residual() |
3|4 |
|
} |
|
|
} |
|
|
} |
|
|
唯一的添加是表5中用于多个参考的循环。在表6中,添加了额外的ref_dx以指示多个视角间参考图片中的哪个将被用来为当前宏块获得区域视差向量。ref_idx的语义如下:
ref_idx在存在时规定视角间参考图片的由list_idx通知的参考图片列表中将被用于获得区域视差向量的索引[请澄清]。
参考图5,用于针对运动跳过模式获得和通知区域视差向量的一种示例性方法由标号500总地指示。
方法500包括开始块505,该开始块将控制传递到功能块510。功能块510针对每个视角间参考图片为图片的每个块获得视差向量,并将控制传递到功能块515。功能块515使用分类工具(例如包括但不限于高斯混合模型(GMM))来对视差向量进行群集,并将控制传递到功能块520。功能块520获得具有不同深度(视差向量)的不同区域,并将控制传递到功能块525。功能块525为每个这种区域获得平均视差向量,并将控制传递到功能块530。功能块530使用各个区域视差向量来获得来自另一视角的各个对应运动向量,并且将控制传递到功能块535。功能块535在高级别(例如,利用高级别语法)针对每个列表通知所有视差向量,并将控制传递到功能块540。功能块540在宏块级通知列表索引、区域视差向量索引和视角间参考索引,并将控制传递到结束块599。
参考图6,用于解码和使用区域视差向量的一种示例性方法由标号600总地指示。
方法600包括开始块605,该开始块将控制传递到功能块610。功能块610解析来自每个列表的针对每个视角间参考图片的区域视差向量,并将控制传递到功能块615。功能块615为跳过模式宏块解析列表索引、区域视差向量索引和视角间参考索引,并将控制传递到功能块620。功能块620使用列表索引、区域视差向量索引和视角间参考索引来获得区域视差向量,并将控制传递到功能块625。功能块625使用区域视差向量来获得来自视角间参考图片的对应宏块,并将控制传递到功能块630。功能块630对运动跳过宏块解码,并将控制传递到结束块699。
参考图7,用于获得和使用区域视差向量的另一种示例性方法由标号700总地指示。
方法700包括开始块705,该开始块将控制传递到功能块710。功能块710针对与一当前图片相对应的每个视角间参考图片,隐式地获得该当前图片的区域视差向量,并且将控制传递到功能块715。功能块715使用给定的区域视差向量来获得来自另一视角的对应运动向量,并将控制传递到功能块720。功能块720通知一个或多个相应高级别语法并将控制传递到结束块799,其中这些语法使得随后能够在解码器方隐式推导视差向量。
参考图8,用于解码和使用区域视差向量的另一种示例性方法由标号800总地指示。
方法800包括开始块805,该开始块将控制传递到功能块810。功能块810针对跳过宏块模式解析高级别语法,并将控制传递到功能块815。功能块815使用现有的语法来隐式地获得区域视差向量,并将控制传递到功能块820。功能块820使用区域视差向量来获得来自视角间参考图片的对应宏块(相对于正在解码的当前宏块),并将控制传递到功能块825。功能块825将当前宏块解码为运动跳过宏块,并将控制传递到结束块899。
现在将描述本发明的许多伴随优点/特征中的一些,其中一些已经在上文中提及了。例如一个优点/特征是一种装置,该装置包括一编码器,用于通过以下方式来对与多视角视频内容的至少一个视角相对应的一图片的一图像块编码:基于与所述多视角视频内容的至少一个其他视角相对应的另一图片的一区域的视差信息获得所述图像块的运动信息。所述另一图片的所述区域的视差信息对应于所述另一图片的一部分。
另一个优点/特征在于如上所述的具有编码器的装置,其中所述另一图片的所述区域的视差信息包括至少一个区域视差向量,并且所述编码器在对所述多视角视频内容编码时针对所关注的每个视角间参考图片获得多于一个区域视差向量。
另一个优点/特征在于如上所述的具有编码器的装置,其中所述编码器为所述另一图片获得多个区域视差向量,并且所述另一图片的所述区域的视差信息包括区域视差向量。
另一个优点/特征在于如上所述的具有为所述另一图片获得多个区域视差向量的编码器并且其中所述另一图片的所述区域的视差信息包括区域视差向量的装置,其中所述编码器为所述另一图片的多个块中的每一个获得多个视差向量,并且基于所述多个视差向量将所述多个块分类到不同区域中。
另外,另一个优点/特征在于如上所述的具有进行分类的编码器的装置,其中所述编码器为所述不同区域中的每一个分别计算平均视差向量。
此外,另一个优点/特征在于如上所述的具有为所述不同区域中的每一个分别计算平均视差向量的编码器的装置,其中为所述不同区域中的每一个分别计算的平均视差向量被分别用作该区域的区域视差向量。
并且,另一个优点/特征在于如上所述的具有为所述不同区域中的每一个分别计算平均视差向量的编码器的装置,其中为所述不同区域中的每一个分别计算的区域视差向量是利用高级别语法元素来传送的。
此外,另一个优点/特征在于如上所述的具有利用高级别语法元素来进行传送的编码器的装置,其中所述高级别语法元素被包括在以下各项中的至少一种中:片层头部、序列参数集、图片参数集、视角参数集、网络抽象层单元头部、以及补充增强信息消息。
另外,另一个优点/特征在于如上所述的具有编码器的装置,其中为与多视角内容相对应的、被选择为运动跳过宏块的每个图像块传送列表索引、区域视差索引和参考索引。
此外,另一个优点/特征在于如上所述的具有编码器的装置,其中所述编码器根据至少一个现有语法元素来隐式地推导为所述另一图片的不同区域中的每一个分别计算的区域视差向量。
有关领域的普通技术人员基于这里的教导可以很容易确定本发明的这些和其他特征和优点。应当理解,本发明的教导可以用各种形式的硬件、软件、固件、专用处理器或其组合来实现。
最优选的是本发明的教导被实现为硬件和软件的组合。另外,软件可以实现为有形地包含在程序存储单元上的应用程序。应用程序可以被上载到包括任何适当的体系结构的机器并被该机器所执行。优选地,该机器是在具有诸如以下硬件的计算机平台上实现的:一个或多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)以及输入/输出(“I/O”)接口。该计算机平台还可包括操作***和微指令代码。这里描述的各种过程和功能可以是微指令代码的一部分或者应用程序的一部分,或者是其任何组合(可由CPU执行)。此外,各种其他的***单元可连接到该计算机平台,例如附加的数据存储单元和打印单元。
还应当理解,因为附图中示出的构成***组件和方法中的一些优选地是用软件实现的,因此***组件或过程功能块之间的实际连接可能根据对本发明编程的方式而有所不同。有了这里的教导,有关领域的普通技术人员将能够想出本发明的这些和类似实现方式或配置。
虽然这里已经参考附图描述了示例性的实施例,但是应当理解,本发明并不限于这些确切的实施例,有关领域的普通技术人员可在其中实现各种变化和修改,而不脱离本发明的精神或范围。所有这种变化和修改都意图被包括在权利要求所限定的本发明的范围之内。