用于视频编码中的运动向量储存的方法及其装置与流程

文档序号:16811253发布日期:2019-02-10 13:40阅读:180来源:国知局
用于视频编码中的运动向量储存的方法及其装置与流程

本申请要求2016年3月14日递交的申请号为pct/cn2016/076224的pct专利申请的优先权。在此合并参考该相关申请的全部内容。

本发明有关于视频处理。特别地,本发明涉及在视频编码中储存运动向量(motionvector,mv)及其扩展,三维(three-dimensional,3d)视频编码,可伸缩视频编码和屏幕内容编码的方法。



背景技术:

除非另有说明,否则本节中描述的方法相对于权利要求而言不构成先前技术,并且也不被承认为先前技术。

视频编码是一种处理,其中占据不同时间位置(temporalpositions)的视频帧序列被编码为比特流。视频编码器将视频像素数据编码到比特流中,以及视频解码器对比特流进行解码以重构该视频像素数据。每个视频帧的像素数据通常被编码为像素的块(这里也称为“像素块”,“编码单元”和“宏块”)。像素块可以在比特流中被编码作为压缩转换数据(compressedtransformdata)或作为像素块的外部的参考像素数据的运动向量。通过参考像素块的外部的像素数据来重构像素块的处理被称为运动补偿。使用运动向量来参考视频序列中的其他视频帧中的像素数据的像素块是帧间预测块(inter-predictedblock)(与在其他视频帧中不参考像素数据的帧内编码或帧内预测块相反)。

为了运动向量的有效发信,视频编解码器可以使用运动向量预测来降低将要发送或储存到比特流中的运动数据的量。运动向量预测是视频编解码器基于其他运动向量产生运动向量的预测的技术。所产生的预测提供构造用于运动补偿的运动向量所需的运动数据的一些或全部。在编解码器处可本地产生预测,以使得比特流中需要的运动数据的量降低。

对于诸如h.265高效率视频编码(hevc)的视频编码标准,存在两种类型的运动向量预测。一种是空间运动向量预测,其中空间相邻块或预测单元的编码运动向量用于预测当前块的运动向量。另一种是时间运动向量预测,其中参考帧的编码运动向量用于预测当前块的运动向量。



技术实现要素:

以下概述仅是说明性的,并非以任何方式限制本发明。也就是说,提供的以下概述仅用于介绍本文描述的新颖的和非显而易见的技术的概念,亮点,益处和优点。选择一部分实施方式而并非所有实施方式均在下面的详细描述中进一步描述。因此,以下概述并不旨在确定所要求保护的主题的基本特征,也不旨在用于确定所要求保护的主题的范围。

本发明的一些实施例提供了使用具有降低的精度的参考运动向量来产生预测的运动向量的视频编码设备(或视频编码器)。视频编码器接收视频帧的像素块,并通过运动补偿产生运动向量以对像素块进行编码。视频编码器基于精度降低缩放因子通过降低产生的运动向量的精度,来创建降低精度的运动向量。视频编码器还将降低精度的运动向量储存到运动向量缓冲器中,以作为在对后续的像素块进行编码时的空间运动向量预测的参考运动向量,或者对未来的视频帧进行编码时的时间运动向量预测的参考运动向量。视频编码器从运动向量缓冲器提取参考运动向量,并根据精度恢复缩放因子通过恢复提取到的参考运动向量的精度来创建恢复精度的参考运动向量。视频编码器基于恢复精度的参考运动向量,运动向量预测模式和残差运动数据来计算预测的运动向量。基于预测的运动向量和所产生的运动向量之间的差值来计算残差运动数据。视频编码器将精度降低缩放因子,残差运动数据和运动向量预测模式编码到比特流中。

本发明的一些实施例提供了使用具有降低的精度的参考运动向量来产生预测的运动向量的视频解码设备(或视频解码器)。视频解码器解析比特流以提取精度降低缩放因子和残差运动数据。视频解码器通过将残差运动数据与预测的运动向量相加来产生运动补偿运动向量。视频解码器通过使用运动补偿运动向量来执行运动补偿以构造像素块。视频解码器基于精度降低缩放因子通过降低运动补偿运动向量的精度来创建降低精度的运动补偿运动向量。视频解码器还将降低精度的运动补偿运动向量储存到运动向量缓冲器中,作为用于解码后续的像素块或未来的视频帧的多个参考运动向量之一。视频解码器还从运动向量缓冲器提取参考运动向量,并且基于精度降低缩放因子通过恢复提取到的参考运动向量的精度来产生恢复精度的参考运动向量。视频解码器基于恢复精度的参考运动向量来产生预测的运动向量。

附图说明

本发明提供了附图以更好地理解本发明,附图并入本发明且构成本发明的一部分。附图揭露了本发明的实施方式,并同说明书一起共同解释本发明的原理。可以理解的是,附图并不一定是按照比例绘制的,因而,某些绘制的组件可能同其在实际的实施方式中的尺寸不成比例,这样做可更清晰地阐释本发明的构思。

图1为根据本发明实施例的用于时间运动向量预测的参考运动向量的储存(storage)和提取(retrieval)的示意图。

图2为根据本发明实施例的在储存之前通过降低参考运动向量的分辨率来降低运动向量缓冲器的储存需求的示意图。

图3为视频编码或解码系统,其最初降低用于空间运动向量预测的参考运动向量的分辨率,并再次降低以用于储存,以用于将来的时间运动向量预测。

图4为根据本发明实施例的视频编码器,其基于具有降低的精度(reducedprecision)的修改的参考运动向量执行运动向量预测。

图5为根据本发明实施例的视频解码器,其基于具有降低的精度的修改的参考运动向量执行运动向量预测。

图6为概念性地根据本发明实施例的视频编码器将运动向量精度降低(mvprecisionreduction)的缩放因子(scalingfactor)传送到视频解码器的示意图。

图7为概念性地根据本发明实施例的视频解码器从比特流接收运动向量精度降低的缩放因子的示意图。

图8为概念性地根据本发明实施例的基于具有降低的精度/分辨率的参考运动向量,通过运动向量预测来编码像素块的流程的示意图。

图9为概念性地根据本发明实施例的基于具有降低的精度/分辨率的参考运动向量,通过运动向量预测来解码像素块的流程的示意图。

图10为概念性地可以实现本发明的某些实施例的电子系统的示意图。

具体实施方式

在下面的详细描述中,许多具体的细节都是通过举例的方式来呈现,以提供对相关精神的深入了解。基于本文所描述的精神的任何变型,衍生和/或扩展都在本发明的保护范围内。在某些情况下,可以在没有细节的相对高的级别下描述与本文公开的一个或多个示例实现有关的公知的方法,程式,组件和/或电路,以避免不必要地模糊本发明的精神的一些方面。

时间运动向量预测(temporalmvprediction)是视频编解码器(编码器和/或解码器)基于用于运动补偿的实际运动向量来产生预测的运动向量的技术。在一些实施例中,视频编解码器将用于运动补偿的运动向量储存在运动向量缓冲器中,以便用作为将来的时间运动向量预测的参考运动向量。

空间运动向量预测(spatialmvprediction)是将空间上相邻的块或预测单元的编码运动向量用于预测当前块的运动向量的技术。在一些实施例中,视频编解码器将用于运动补偿的运动向量储存在单行缓冲器(linebuffer)或任何其他类型的运动向量缓冲器中,以便用作为随后的空间运动向量预测的参考运动向量。

图1为在视频编码或解码系统中用于时间运动向量预测的参考运动向量的储存和提取的示意图。当构建先前的(earlier)帧110(帧i)的帧间预测块111-115时,编码/解码处理100使用运动向量171-175进行运动补偿(如图1中所示的运动补偿运动向量171-175)。当编码或解码先前的帧110时,运动向量171-175中的至少一个也用于空间运动向量预测。空间运动向量预测所需的运动数据被储存在单行缓冲器135中,其可以包括运动向量171-175以及重构像素数据,当编码/解码先前的帧110的后续像素块时,该重构像素数据作为帧内预测的参考像素。

运动向量171-175储存在运动向量缓冲器150中,运动向量缓冲器150储存用于对视频帧进行编码/解码的运动向量。当编码/解码处理100稍后构造随后的(later)帧120(帧i+j)时,可以从运动向量缓冲器150中提取先前的帧110(帧i)的运动向量175,以作为参考运动向量。运动向量预测模块160使用提取到的参考运动向量175来执行时间运动向量预测并且产生预测的运动向量165,以重构在随后的帧120中的帧间预测块125。运动向量预测模块160可以是软体指令的模块,由计算设备的一个或多个处理单元(例如,处理器)来执行。运动向量预测模块还可以是由电子设备的一个或多个集体电路来实现的硬件电路的模块。

在一些实施例中,运动向量预测模块160根据指定的预测模式产生预测的运动向量165。在一些预测模式中,运动向量预测模块160可以使用先前帧110(作为参考帧)和当前帧120的时间位置(例如,通过插值或外推法),通过缩放所提取的参考运动向量175,来产生预测的运动向量165。这种预测模式的示例包括但不限于,h.265合并模式(h.265mergemode)和h.264直接模式(h.264directmode)。一些预测模式使用提取的参考运动向量175作为预测的运动向量,而不进行缩放。这种预测模式的示例包括但不限于h.264跳跃模式(skipmode)。

视频帧可以具有许多帧间预测块,因此可以使用许多运动向量以用于运动补偿。使帧间预测块的最小块宽度和最小块高度分别为minblkw和minblkh。那么可以储存在运动向量缓冲器中的运动向量的最大数目是(picwidth/minblkw)*(picheight/minblkh),其中picwidth和picheight分别为编码帧的宽度和高度。由于后续帧的编码可能使用任何运动向量来用于时间运动向量预测,所以运动向量缓冲器可能必须储存多达每个帧的最大数量的运动向量。因此,运动向量缓冲器的储存需求可能变得非常显著。

为了降低运动向量缓冲器的储存需求,在一些实施例中,视频编解码器针对每个m×n块(m>minblkw,n>minblkh)储存一个运动向量而不是更多。在mxn块中有多个运动向量的情况下,视频编解码器储存运动向量缓冲器中的位于左上子块的运动向量,以作为后续时间运动向量预测的参考运动向量。以这种方式,对运动向量域(mvfield)进行子采样,并且运动向量缓冲器的储存需求得以降低。

对于高效率视频编码(hevc),运动向量的分辨率为1/4像素精度(pixelaccuracy)。在最新开发的下一代视频编码中,运动向量分辨率可以是1/8像素精度,1/16像素精度,甚至更高的精度。这种较高分辨率运动向量的来源可以包括仿射运动补偿(motioncompensation),时间运动向量预测和解码器侧运动向量搜索/改善(search/refine)。分辨率的提高也增加了运动向量的储存需求。一个可能的解决方案是降低运动向量的范围,使得可以使用相同数量的比特(bit)来表示一运动向量。然而,在快速运动情况下,这将降低运动补偿的视频编码性能。

为了降低运动向量储存需求而不会不利地影响运动补偿的性能,本发明的一些实施例提供了一种降低运动向量缓冲器的储存需求的方法。在将运动向量储存在运动向量缓冲器中作为参考运动向量之前,该方法降低了运动向量的精度(用于表达值的比特数)或分辨率(基于最小可寻址像素单元的大小的可寻址位置的数量)。当使用参考运动向量用于时间运动向量预测和/或运动补偿时,该方法从运动向量缓冲器中提取参考运动向量,并且在执行时间运动向量预测和/或运动补偿之前恢复参考运动向量的分辨率。在一些实施例中,相同的技术适用于降低单行缓冲器上的运动向量储存需求,具体地,通过降低用于储存在单行缓冲器中作为参考运动向量的运动向量的精度/分辨率,并且在执行空间运动向量预测时恢复所储存的参考运动向量的分辨率。

图2为视频编码或解码系统,其通过在储存之前降低参考运动向量的分辨率来降低运动向量缓冲器的储存需求。

如图所示,编码/解码处理100通过使用运动向量171-175执行运动补偿来编码(或解码)先前的帧110(帧i)。运动向量171-175也储存在单行缓冲器135中,以用于空间运动向量预测。这些运动向量具有k比特精度。在储存运动向量171-175之前,精度降低运算210降低参考运动向量171-175的精度,以产生修改的参考运动向量271-275,以储存到运动向量缓冲器150中。这些修改的参考运动向量271-275具有q比特的精确。当q小于k时,修改后的参考运动向量271-275是降低精度(reduced-precision)的运动向量,与原始参考运动向量171-175相比需要较少的储存。

在一些实施例中,当像素块中存在多个运动向量时,视频编解码器选择块的一个运动向量而不是更多(例如,块的左上子块的运动向量),以储存到运动向量缓冲器150中,以便对运动向量域进行子采样。在这些情况下,所选择的运动向量(而不是没有选择的运动向量)通过精度降低运算210并储存到运动向量缓冲器150中以作为参考运动向量。

当编码/解码处理100编码(或解码)随后的帧120(帧i+j)时,从运动向量缓冲器150中提取出修改的(降低精度的)参考运动向量275。精度恢复运算(precisionrestorationoperation)220恢复参考运动向量275的精度以产生恢复的参考运动向量285,运动向量预测模块160使用参考运动向量285以产生用于编码/解码处理100的预测的运动向量265。

值得注意的是,预测的运动向量265可能与图1的预测的运动向量165不同。这是因为运动向量265是基于恢复的参考运动向量285来计算的,该参考运动向量285在精度降低处理210期间已经丢失了几个比特的信息。

对于一些实施例,以下描述精度降低运算210和精度恢复运算220:

使用来表示用于运动补偿(通过帧间预测)的运动向量(例如,运动向量171-175)。其精度为k比特,k为整数(2,3,4等)。这对应于基于1/2k像素的分辨率(即,vx,vy的最小可寻址像素单位为1/2k像素)。在对帧进行编码(或解码)之后,将用于编码(或解码)帧的所有运动向量储存到运动向量缓冲器(例如,运动向量缓冲器150)中,以作为用于后续运动向量预测的参考运动向量。精度降低运算210将运动向量修改为具有q比特精度(或基于1/2q像素的分辨率)的修改的参考运动向量其中q小于k。精度降低是逐比特右移或下移(bitwiseright-shiftordown-shift)k-q比特,如下面数学表达式所示。

v'x=vx>>(k-q),v'y=vy>>(k-q)等式(1)

然后将修改的参考运动向量储存到运动向量缓冲器中。当时间运动向量预测需要参考运动向量时,从运动向量缓冲器中提取其对应的修改的参考运动向量。然后,精度恢复运算220将修改的参考运动向量恢复到原始分辨率1/2k,例如通过逐比特左移或上移(bit-wiseleft-shiftorup-shiftbyk-qbits)k-q比特,如以下数学表达式所示。

在一些实施例中,在执行精度降低之前,精度降低运算210向上舍入(roundup)运动补偿运动向量。这能最小化与精度降低运算相关联的截断误差。具体地说,精度降低运算210根据下面以数学方式表示的向上舍入的逐比特向下移动运算来产生修改的参考运动向量

o=1<<(k-q-1),v'x=(vx+o)>>(k-q),v'y=(vy+o)>>(k-q)等式(3)

当用于时间运动向量预测时,修改的参考运动向量在缩放之前恢复到其原始分辨率,例如根据等式(2)。该恢复的参考运动向量反映在精度降低运算210中执行的向上舍入运算。

在一些实施例中,精确度降低运算210通过将原始运动补偿运动向量除以由k和q导出的两个整数的幂(例如,2k-q)来降低精度,以及精度恢复运算220通过将修改的参考运动向量与从k和q导出的两个整数的幂(例如,2k-q)相乘来恢复精度,而不是通过向下移比特来降低精度以及通过向上移比特来恢复精度。具体地,根据下面的数学表达式来修改(降低精度)运动补偿运动向量。

vx=v'x÷(1<<(k-q))和vy=v'y÷(1<<(k-q))等式(4)

当用于时间运动向量预测时,根据下面的数学表达式将修改的参考运动向量恢复到原始精度。

vx=v'x×(1<<(k-q))和vy=v'y×(1<<(k-q))等式(5)

在一些实施例中,数量k-q(其为k和q之间的差值)被称为缩放因子d,其是在精度降低或精确恢复期间要移比特的数量。当精度降低运算210将参考运动向量下移k-q比特(例如,根据等式(1),(3)和(4))时,缩放因子d用作精度降低缩放因子。当精度恢复运算220将参考运动向量上移k-q比特(例如,根据等式(2)和(5))时,缩放因子d被用作精度恢复缩放因子。

在一些实施例中,实现精度降低运算210和精度恢复运算220的等式(1)至(5),适用于将运动向量储存到运动向量缓冲器150中以用于时间运动向量预测,以及适用于将运动向量储存到单行缓冲器135中以用于空间运动向量预测。

在一些实施例中,储存在运动向量缓冲器中的运动向量可用于空间运动向量预测,时间运动向量预测或以上两者。然而,用于运动补偿的运动向量的精度或分辨率可以不同于用于空间运动向量预测的运动向量的精度或分辨率。当运动补偿运动向量用于空间运动向量预测和时间运动向量预测时,运动补偿运动向量的精度或分辨率首先被降低以用于空间运动向量预测(并且可以储存到单行缓冲器中),然后再次降低以储存到运动向量缓冲器。

图3为视频编码或解码系统,其最初降低用于空间运动向量预测的参考运动向量的分辨率,并再次降低用于储存,以用于将来的时间运动向量预测。如图所示,用于运动补偿的运动向量171-175的分辨率为1/2p像素精度,p>k,用于空间运动向量预测的运动向量371-375的分辨率为1/2k像素精度,并且用于时间运动向量预测的运动向量271-275的分辨率为1/2q像素精度。视频编码或解码系统首先将运动向量171-175修改为用于空间运动向量预测的1/2k像素精度的分辨率,然后在储存到运动向量缓冲器中作为用于随后的空间或时间运动向量预测的参考运动向量271-275之前,进一步将运动向量371-375修改为用于时间运动向量预测的1/2q像素精度的分辨率。

例如,在仿射运动补偿期间,用于每个子块的运动补偿的运动向量的分辨率可以基于1/16,1/64甚至更精细(finer)的像素精度。然而,用于相同视频帧的后续块的空间运动向量预测的运动向量的分辨率是基于1/8的像素精度。在这些情况下,运动补偿运动向量的精度首先被修改为具有基于1/8像素精度的分辨率,以用于空间运动向量预测,然后进一步修改为具有基于1/4像素精度的分辨率,以储存到运动向量缓冲器中,以用于随后的时间运动向量预测和/或空间运动向量预测。

图4为视频编码器400或视频编码装置,其基于具有降低的精度的修改的参考运动向量执行运动向量预测。具体地,视频编码器400产生用于运动补偿的运动向量,并储存所产生的运动补偿的运动向量,以作为用于后续时间和/或空间运动向量预测的参考运动向量。视频编码器400在储存之前降低参考运动向量的精度,以及为运动向量预测恢复精度。

如图所示,视频编码器400接收输入视频信号405并将信号编码到比特流495中。视频编码器400具有用于对视频信号405进行编码的多个组件或模块,包括转换和量化模块410,逆转换模块415,帧内估计模块420,帧内预测模块425,运动补偿模块430,运动估计模块435,滤波器控制分析模块440,环路滤波器445,解码图像缓冲器450和熵编码器490。另外,视频编码器400具有用于时间运动向量预测的多个模块,即:精度降低模块460,运动向量缓冲器465,精度恢复模块470和运动向量预测模块475。视频编码器400的各个组件联合执行编码处理,该编码处理与参考上述图1和图2描述的编码/解码处理100类似。

在一些实施例中,模块410-490是由计算设备105的一个或多个处理单元(例如,处理器)执行的软体指令的模块。在一些实施例中,模块410-490是由电子设备的一个或多个集体电路实现的硬件电路模块。虽然模块410-490被示为分离的模块,但是其中的一些模块可以组合成单个模块。例如,精度恢复模块470可以合并到运动向量预测模块475中。

输入视频信号405是原始视频信号,其呈现未经压缩的每个视频帧的像素数据。转换和量化模块410将原始视频的像素数据(从帧内预测模块425或运动补偿模块430中减去预测像素数据413)转换为量化的转换系数412(例如,离散余弦转换或dct),其将由熵编码器490编码到比特流495中。逆转换模块415对转换系数412执行逆转换,并(在添加预测像素数据413之后)产生解码的像素数据417。在一些实施例中,解码的像素数据417临时储存在单行缓冲器(未示出)中,以用于帧内预测(intra-pictureprediction)和空间运动向量预测的。

帧内估计模块420基于解码的像素数据417执行帧内预测(intra-prediction),以产生帧内预测数据(intrapredictiondata)。将帧内预测数据提供给熵编码器490以编码到比特流495中。帧内预测数据也被帧内预测模块425用于产生预测像素数据413。

运动估计模块435通过产生运动向量来执行帧间预测,以参考储存在解码图像缓冲器450中的先前解码的帧的像素数据。这些运动向量被提供给运动补偿模块430以产生预测像素数据。这些运动向量对于在解码器处重构视频帧也是必需的。代替编码比特流中的完全真实的运动向量,视频编码器400使用时间运动向量预测来产生预测的运动向量,并且用于运动补偿的运动向量和预测的运动向量之间的差值被编码为残差运动数据(residualmotiondata)并储存在比特流495中以用于解码器。

视频编码器400基于为编码先前的视频帧而产生的参考运动向量来产生预测的运动向量,即运动补偿运动向量用于执行运动补偿。视频编码器400从来自运动向量缓冲器465的先前视频帧中提取参考运动向量。视频编码器400将为当前视频帧产生的运动向量储存到运动向量缓冲器465中,以作为用于产生预测的运动向量的参考运动向量。

视频编码器400降低参考运动向量的精度或分辨率,以储存到运动向量缓冲器465中。当提取参考运动向量用于运动向量预测时,视频编码器400恢复参考运动向量的精度或分辨率。在一些实施例中,所产生的运动向量也储存在单行缓冲器(未示出)中,作为用于空间运动向量预测的参考运动向量。视频编码器400降低参考运动向量的精度或分辨率,以储存到单行缓冲器中(并且在提取出来时恢复精度)。

在视频编码器400内,精度降低模块460从运动估计模块435接收运动补偿运动向量作为参考运动向量。精度降低模块460然后通过执行上述图2的精度降低运算210(例如根据等式(1),(3)或(4))来降低参考运动向量的精度。在一些实施例中,当像素块中存在多个运动向量时,视频编码器400仅选择该块的一个运动向量(例如,该块的左上子块的运动向量)以便储存到运动向量缓冲器中,以对运动向量域进行子采样。在这些情况下,所选择的运动向量,而不是其它运动向量,通过精度降低模块460并作为参考运动向量储存到运动向量缓冲器465中。

修改的(精确度降低的)参考运动向量被储存在运动向量缓冲器465中,用于执行稍后的视频帧的空间运动向量预测和/或时间运动向量预测。精度恢复模块470接收从运动向量缓冲器465提取参考运动向量,并通过执行上述图2的精确恢复运算220(例如,根据等式(2)或(5))来恢复其精度。

运动向量预测模块475使用恢复的参考运动向量来创建预测的运动向量。预测的运动向量可以通过空间运动向量预测或时间运动向量预测来计算。当前帧(残差运动数据)的预测的运动向量和运动补偿运动向量之间的差值由熵编码器490编码到比特流495中。

熵编码器490通过使用诸如上下文自适应二进制算术编码(cabac)或霍夫曼编码(huffmanencoding)之类的熵编码技术,将各种参数和数据编码到比特流495中。熵编码器490将诸如量化转换数据,残差运动数据,精度降低缩放因子和精确恢复缩放因子等参数编码到比特流中。

图5为基于具有降低的精度的修改的参考运动向量执行运动向量预测的视频解码器500或视频解码装置。具体地,视频解码器500产生用于运动补偿的运动向量,并将产生的运动向量储存为用于后续运动向量预测的参考运动向量。视频解码器500在储存之前降低参考运动向量的精度,并恢复其精度以用于运动向量预测。

如图所示,视频解码器500接收比特流595,并且将比特流的内容解码为视频帧的像素数据以供显示。视频解码器500具有用于对比特流595进行解码的多个组件或模块,包括逆转换模块515,帧内预测模块525,运动补偿模块535,环路滤波器545,解码图像缓冲器550和比特流解析器590。另外,视频解码器500还可以包括用于时间运动向量预测的几个模块,即:精度降低模块560,运动向量缓冲器565,精度恢复模块570和运动向量预测模块575。视频解码器500的各个组件共同执行与上面参照图1和图2描述的编码/解码处理100类似的解码处理。

在一些实施例中,模块510-590是由计算设备的一个或多个处理单元(例如,处理器)执行的软体指令的模块。在一些实施例中,模块510-590是由电子设备的一个或多个集体电路实现的硬件电路的模块。虽然模块510-590被示为分开的模块,但是其中一些模块可以组合成一个模块。例如,精度恢复模块570可以合并到运动向量预测模块575中。

逆转换模块515根据转换系数512执行逆转换,并且产生解码像素数据517(在从帧内预测模块525或运动补偿模块535添加预测像素数据513之后)。解码像素数据517储存到解码图像缓冲器550中。帧内预测模块525从比特流595接收帧内预测数据,根据该预测数据从储存在解码图像缓冲器550中的解码的像素数据517产生预测像素数据513。在一些实施例中,解码像素数据517也储存到用于帧内预测和空间运动向量预测的单行缓冲器(未示出)中。

运动补偿模块535根据运动补偿运动向量从储存在解码图像缓冲器550中的解码像素数据产生预测像素数据513。通过将从比特流595接收到的残差运动数据与从运动向量预测模块575接收的预测的运动向量相加来重构这些运动补偿运动向量。

视频解码器500基于为解码先前视频帧产生的参考运动向量(亦即,用于执行运动补偿的运动补偿运动向量)来产生预测的运动向量。视频解码器500从运动向量缓冲器565中提取先前视频帧的参考运动向量。视频解码器500还将为解码当前视频帧二产生的运动补偿运动向量储存到运动向量缓冲器565中,以作为用于产生预测的运动向量的参考运动向量。

视频解码器500降低将储存到运动向量缓冲器565中的参考运动向量的精度或分辨率。当从运动向量缓冲器565中提取运动向量以用于时间运动向量预测或空间运动向量预测时,视频解码器500恢复参考运动向量的精度或分辨率。在一些实施例中,参考运动向量也储存在的单行缓冲器(未示出)中,以用于空间运动向量预测。视频解码器500降低参考运动向量的精度或分辨率以储存到单行缓冲器中(并且在提取出来时恢复精度)。

在视频解码器500内,精度降低模块560接收用于运动补偿的运动向量。储存重构的运动向量,以作为用于未来视频帧的空间运动向量预测和/或时间运动向量预测的参考运动向量。精度降低模块560然后通过执行上述图2的精度降低运算210(例如根据等式(1),(3)或(4))来降低参考运动向量的精度。在一些实施例中,当在像素块中存在多个运动向量时,视频解码器500仅选择该块的一个运动向量(例如,该块的左上子块的运动向量),以储存在运动向量缓冲器565中,以对运动向量域进行子采样。在这些情况下,只有所选择的运动向量会通过精度降低运算210并作为参考运动向量储存在运动向量缓冲器150中。

精度恢复模块570从运动向量缓冲器565接收参考运动向量并恢复它们的精度。精度恢复模块570接收从运动向量缓冲器565提取的参考运动向量,并通过执行上述图2的精度恢复运算220(例如,根据等式(2)或(5))来恢复其精度。

运动向量预测模块575使用恢复的参考运动向量,来基于空间运动向量预测或时间运动向量预测创建预测的运动向量。将预测的运动向量与从比特流595接收的残差运动数据相加,以重构用于运动补偿的运动向量,并且用来作为未来的运动向量预测的参考运动向量。

在一些实施例中,通过比特流将参考运动向量的修改的精度/分辨率从编码器发送到解码器。由于参考运动向量的精度/分辨率影响在比特流中编码的残差运动数据的值,因此这是必要的。因此,为了精确地重构用于运动补偿的运动向量,在一些实施例中,视频解码器使用与编码器完全相同的量来降低并恢复其参考运动向量的精度/分辨率。

在一些实施例中,视频编码器通过将缩放因子编码到比特流中,来将用于精度降低和精确恢复的缩放因子传送给视频解码器。在一些实施例中,该缩放因子表示为“d”,其是在精度降低或精确恢复期间要移比特的比特数。具体地,d=k-q,“k”是原始运动向量的精度,“q”是降低的参考运动向量的精度。

图6为概念性地视频编码器将运动向量精度降低的缩放因子传送到解码器的示意图。具体地,该图为视频编码器400基于缩放因子来降低和恢复参考运动向量的精度/分辨率,然后将缩放因子编码到比特流495中,以传送给视频解码器500。

如图所示,视频编码器400的精度降低模块460从运动估计模块435接收运动补偿运动向量,作为参考运动向量以储存到运动向量缓冲器中。精度降低模块460根据由储存分辨率设置651(例如,控制/配置寄存器)提供的缩放因子“d_reduce”来降低参考运动向量的精度。类似地,精度恢复模块470接收从运动向量缓冲器465提取的参考运动向量,以计算预测的运动向量。精度恢复模块470根据由恢复分辨率设置652提供的缩放因子“d_restore”来恢复参考运动向量的精度。熵编码器490捕获储存分辨率设置651和恢复分辨率设置652,并将用于精度降低和精度恢复的缩放因子编码到比特流495中,以传送到视频解码器。

不同实施例中的视频编码器使用不同的方法和/或格式来编码精度降低/恢复的缩放因子。在一些实施例中,精度降低的缩放因子(“d_reduce”)和精确恢复的缩放因子(“d_restore”)是相同的,因此熵编码器490仅将单个的精度降低参数(d)编码到比特流中以传送缩放因子。

在一些实施例中,视频编码器在编码期间可以动态地改变用于精度降低和恢复的缩放因子。例如,视频编码器可以使用第一缩放因子来降低第一视频帧的运动补偿运动向量的精度,然后切换到不同的第二缩放因子,以降低第二视频帧的运动补偿运动向量的精度。在这些情况下,用于精度降低的缩放因子“d_reduce”可能与用于精确恢复的缩放因子“d_restore”不同,因为储存的参考运动向量属于当前编码的帧,而正在提取的参考运动向量属于过去编码的帧。在这些实施例中,编码器将“d_reduce”和“d_restore”都储存到比特流中。

在一些实施例中,代替将缩放因子“d_reduce”,“d_restore”,“d”储存到比特流中,将值k(原始运动向量的精度)和值q(降低精度的参考运动向量的精度)储存到比特流中。

用于精确降低或恢复的缩放因子(不管是d,d_reduce,d_restore,k,q)可以作为参数或一组参数被编码到视频编码层级(videocodinghierarchy)的各个级别的比特流中。例如,精度降低缩放因子可以被编码为视频参数集(videoparameterset,vps),图像参数集(pictureparameterset,pps),序列参数集(sequenceparameterset,sps),切片头(sliceheader,sh),编码树单元(codingtreeunit,ctu),编码单元(codingunit,cu)等中的参数,使得当储存到运动向量缓冲器中时,不同视频帧的参考运动向量可以具有不同的精度/分辨率。精度降低缩放因子也可以被编码为切片头中的参数,使得当储存到运动向量缓冲器中时,不同切片的参考运动向量可以具有不同的精度/分辨率。

在一些实施例中,可以在当前切片中发信当前切片的运动向量预测的分辨率,并且,可以在当前切片中发信用于后续切片的运动向量预测中作为参考运动向量的当前切片的储存的运动向量的分辨率信息。在一些实施例中,可以在后续的切片中发信用于后续切片的运动向量预测中作为参考运动向量的当前切片的储存的运动向量的分辨率信息。

图6也概念地为编码了精度降低和恢复缩放因子的比特流的示意图。如图所示,比特流495包括包含帧610-613的视频序列600。帧610包括切片621-623。帧611包括切片624-625。

序列600在其序列参数集中具有参数661,该序列参数集发信缩放因子。帧612在其图像参数集中具有参数665,该图像参数集发信缩放因子。切片622,623和624在其相应的切片头中分别具有参数662,参数663,参数664,该相应的切片头发信缩放因子。

在一些实施例中,每个发信的缩放因子适用于(例如,由于其范围被限制为)其对应的视频编码分级实体(videocodinghierarchicalentity)(除非被具有其自己的缩放因子的较低级别的实体覆盖)。例如,序列600的缩放因子661适用于序列600内的帧和切片中的运动向量,而缩放因子662适用于切片622中的运动向量并且不适用于其他帧和切片中的运动向量。在一些实施例中,每个发信的缩放因子可应用于所有后续的视频编码分级实体,直到比特流中发信另一缩放因子为止。例如,由切片624处的参数664发信的缩放因子可应用于切片624,625等,直到在帧612的图像参数集处发信参数665。

在一些实施例中,每个缩放因子(标记为“d”)参数可以发信用于降低参考运动向量的精度的缩放因子(即,“d_reduce”)和/或用于恢复参考运动向量的精度的缩放因子(即,“d_restore”)。在一些实施例中,每个缩放因子参数可以发信值k(原始运动向量的精度)和值q(降低的参考运动向量的精度)。

图7为概念性地视频解码器从比特流接收运动向量精度降低的缩放因子的示意图。具体地,该图为视频解码器500从比特流495接收缩放因子,并根据接收到的缩放因子降低和恢复参考运动向量的精度/分辨率。

如图所示,视频解码器500接收比特流495,并且解析器590通过执行熵编码器490的反函数从比特流中提取各种参数。解析器590提取精度降低缩放因子(“d_reduce”)和精度恢复缩放因子(“d_restore”),并分别提供给精度降低模块560和精度恢复模块570。

精度降低模块560接收参考运动向量(其为从来自运动向量预测模块575的预测的运动向量以及从解析器590接收到的残差运动数据导出的运动补偿运动向量),并且根据缩放因子“d_reduce”(例如,下移d_reduce个比特)来降低参考运动向量的精度,以储存到运动向量缓冲器565中。精度恢复模块570接收从运动向量缓冲器565中提取的参考运动向量,并根据缩放因子“d_restore“(例如,上移d_restore个比特)来恢复参考运动向量的精度。

如上所述,在一些实施例中,为运动补偿产生的运动向量也被储存在单行缓冲器中,以作为用于空间运动向量预测的参考运动向量,其中参考运动向量的精度被降低以用于储存,并且被恢复以用于空间运动向量预测。在一些实施例中,用于将参考运动向量储存到单行缓冲器中的缩放因子与用于将参考运动向量储存到运动向量缓冲器中的缩放因子相同。在一些实施例中,用于将参考运动向量储存到单行缓冲器中的缩放因子可以不同于用于将参考运动向量储存到运动向量缓冲器中的缩放因子。在这些实施例中的一些实施例中,用于将参考运动向量储存到单行缓冲器中的缩放因子由比特流(例如,在vps,sps,pps,切片头,编码单元,编码树单元)中编码的参数来发信。

图8为概念性地基于具有降低的精度/分辨率的参考运动向量,通过运动向量预测来编码像素块的流程800的示意图。在一些实施例中,实现视频编码器400的计算设备的一个或多个处理单元(例如,处理器)可以执行流程800。在一些实施例中,实现视频编码器400的具有一个或多个集体电路的电子设备可以执行流程800。

在步骤805中,当视频编码器400接收视频帧的像素块时,流程800开始。块中的像素作为未压缩的视频信号被接收。在步骤810中,视频编码器400通过运动估计产生运动向量,并通过使用所产生的运动向量来执行运动补偿以编码像素块(因此,所产生的运动向量是运动补偿运动向量)。

在步骤820中,视频编码器400基于精度降低缩放因子通过降低运动补偿运动向量的精度(例如,根据“d_reduce”通过下移运动补偿运动向量)来创建精度降低的运动向量。通过参考图2的精度降低运算210(例如,根据等式(1),(3)和(4))来描述精度降低运算。精度降低缩放因子适用于包含像素块(例如,切片,帧或序列)的视频编码分级实体。在一些实施例中,视频编码器400可以为像素块产生多个运动向量,但是仅选择该块的一个运动向量作为参考运动向量以进行储存,以便对运动向量域进行子采样。在这些情况下,块的所选择的运动向量,并且没有其他的运动向量,经过步骤820,并被储存为参考运动向量。

在步骤825中,视频编码器400然后将精度降低的运动向量储存到运动向量缓冲器和/或单行缓冲器中,作为用于通过空间预测来对当前视频帧进行编码的参考运动向量和/或通过时间运动向量预测来对未来的视频帧进行编码的参考运动向量。

接下来在步骤830中,视频编码器400识别运动向量预测模式。在一些预测模式中,视频编码器400通过使用参考帧(参考运动向量的视频帧)和当前帧的时间位置来缩放所提取的参考运动向量,以产生预测的运动向量。这种预测模式的示例包括h.265合并模式和h.264直接模式。一些预测模式使用提取的参考运动向量作为预测的运动向量而不进行缩放。这种预测模式的示例包括h.264跳跃模式。

在步骤840中,视频编码器400还从运动向量缓冲器和/或单行缓冲器中提取参考运动向量。在步骤850中,视频编码器400然后通过基于精度恢复缩放因子恢复参考运动向量的精度(例如,通过根据“d_restore”上移参考运动向量)来创建恢复精度的参考运动向量。通过参考图2的精度恢复运算220(例如,根据等式(2)和(5))来描述精度恢复运算。精度恢复缩放因子适用于包含像素块(例如,切片,帧或序列)的视频编码分级实体。

在步骤870中,视频编码器400然后根据所识别的运动向量预测模式(其可以是时间运动向量预测或空间运动向量预测),基于恢复精度的参考运动向量来计算预测的运动向量。在步骤880中,视频编码器400还基于预测的运动向量和在步骤810中产生的运动补偿运动向量之间的差值来计算残差运动数据。

接下来在步骤890中,视频编码器400将精度降低缩放因子(“d_reduce”),精度恢复缩放因子(“d_restore”),残差运动数据和预测模式编码到比特流中。根据缩放因子的适用范围,精度降低缩放因子和精度恢复缩放因子可以被编码为在vps,sps,pps或切片头中的参数。可以将精度降低缩放因子和精度恢复缩放因子储存为具有不同值的不同参数。精度降低缩放因子和精度恢复缩放因子也可以具有相同的值并作为一个参数储存。

在将精度降低/恢复缩放因子编码之后,流程800结束。视频编码器400可以再次执行流程800,以对另一块像素进行编码。

图9为概念性地基于具有降低的精度/分辨率的参考运动向量,通过运动向量预测来解码像素块的流程900的示意图。用于对像素块进行解码的必要数据被编码在比特流中。在一些实施例中,实现视频解码器500的计算设备的一个或多个处理单元(例如,处理器)可以执行流程900。在一些实施例中,实现视频解码器500的具有一个或多个集体电路的电子设备可以执行流程900。

在步骤905中,当视频解码器500解析比特流以提取用于解码块像素的必要数据时,流程900开始,必要数据包括:精度降低缩放因子,精度恢复缩放因子,残差运动数据,运动向量预测模式和转换数据。可以将精度降低缩放因子和精度恢复缩放因子编码为在vps,sps,pps或切片头中的参数。精度降低缩放因子和精度恢复缩放因子可以储存为两个不同参数或一个参数。

在步骤910中,视频解码器500从运动向量缓冲器或单行缓冲器提取参考运动向量。参考运动向量是用于对先前帧或当前帧中的像素块进行解码的运动补偿运动向量。在储存到运动向量缓冲器和/或单行缓冲器中之前,也可以降低参考运动向量的精度。

在步骤920中,视频解码器500基于精度恢复缩放因子通过恢复提取到的参考运动向量的精度(例如,将参考运动向量上移“d_restore”个比特的位置),来创建恢复精度的参考运动向量。通过参考图2的精度恢复运算220(例如,根据等式(2)和(5))来描述精度恢复运算。

在步骤930中,视频解码器500然后根据运动向量预测模式基于恢复精度的参考运动向量来产生预测的运动向量,运动向量预测模式可以是空间运动向量预测或时间运动向量预测(例如,使用参考帧和当前帧的时间位置来缩放恢复精度的参考运动向量)。

在步骤940中,视频解码器500通过将残差运动数据添加到预测的运动向量中以产生运动补偿运动向量。在步骤945中,视频解码器500然后通过使用运动补偿运动向量来执行运动补偿以构造像素块。

在步骤950中,视频解码器500基于精度降低缩放因子通过降低运动补偿运动向量的精度(例如,根据“d_reduce”下移运动向量)来产生降低精度的运动补偿运动向量。通过参考图2的精度降低运算210(例如,等式(1),(3),(4))来描述精度降低运算。在一些实施例中,视频解码器500可以产生像素块的多个运动补偿运动向量,但仅选择块的一个运动向量作为参考运动向量进行储存,以对运动向量域进行子采样。在这些情况下,只有块的所选运动向量经过步骤950,并且作为参考运动向量储存在运动向量缓冲器或单行缓冲器中。

在步骤960中,视频解码器500然后将精度降低的运动补偿运动向量储存到运动向量缓冲器和/或单行缓冲器中,作为用于将来的运动向量预测的参考运动向量。然后流程900结束。视频解码器500可以再次执行流程900以对另一像素块进行解码。

电子系统示例

许多上述特征和应用被实现为软体处理,其被指定为记录在计算机可读储存媒体(也称为计算机可读媒体)上的一组指令。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器,处理器核心或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算机可读媒体的示例包括但不限于cd-rom,闪存驱动器,随机存取储存器(ram)芯片,硬盘驱动器,可擦除可编程只读储存器(eprom),电可擦除可编程只读储存器(eeprom)等等。计算机可读媒体不包括通过无线或有线连接的载波和电子信号。

在本说明书中,术语“软体”旨在包括驻留在只读储存器中的韧体或储存在磁性储存器中的应用程式,其可被读入储存器中以供处理器处理。此外,在一些实施例中,多个软体发明可以被实现为较大程式的子部分,同时保持不同的软体发明。在一些实施例中,多个软体发明也可以被实现为单独的程式。最后,共同实现这里描述的软体发明的单独程式的任何组合都在本发明的范围内。在一些实施例中,软体程式被安装以在一个或多个电子系统上运算时,定义执行软体程式的运算的一个或多个特定机器实现。

图10为概念性地实现本发明的某些实施例的电子系统1000的示意图。电子系统1000可以是计算机(例如,台式计算机,个人计算机,平板计算机等),电话,pda或任何其他类型的电子设备。这样的电子系统包括各种类型的计算机可读媒体和用于各种其他类型的计算机可读媒体的接口。电子系统1000包括总线1005,处理单元1010,图形处理单元(gpu)1015,系统储存器1020,网络1025,只读储存器(rom)1030,永久储存装置1035,输入装置1040,以及输出装置1045。

总线1005集合代表通信连接电子系统1000的多个内部装置的所有系统,外围设备和芯片组的总线。例如,总线1005将处理单元1010与gpu1015,只读储存器1030,系统储存器1020和永久储存装置1035通信连接。

处理单元1010从这些各种储存器单元提取用于执行的指令和要处理的数据,以便执行本发明的处理。在不同实施例中,处理单元可以是的单个处理器或多核处理器。一些指令被传递给gpu1015并由gpu1015执行。gpu1015可以卸载各种计算或补充由处理单元1010提供的图像处理。

只读储存器1030储存处理单元1010和电子系统的其他模块所需的静态数据和指令。另一方面,永久储存装置1035是可读写储存装置。该装置是非易失性储存器单元,即使当电子系统1000关闭时也可以储存指令和数据。本发明的一些实施例使用大容量储存装置(例如磁盘或光盘及其相应的磁盘驱动器)作为永久储存装置1035。

其他实施例使用可移动储存装置(例如软盘,闪存设备等及其相应的磁盘驱动器)作为永久储存装置。像永久储存装置1035一样,系统储存器1020是可读写储存装置。然而,与储存装置1035不同,系统储存器1020也可以是易失性可读写储存器,例如随机存取储存器。系统储存器1020储存处理器在运行时需要的一些指令和数据。在一些实施例中,根据本发明的处理被储存在系统储存器1020,永久储存装置1035和/或只读储存器1030中。例如,各种储存器单元包括用于根据本发明的一些实施例的处理多媒体剪辑的指令。处理单元1010从这些各种储存器单元提取用于执行的指令和要处理的数据,以执行一些实施例的处理。

总线1005还连接到输入装置1040和输出装置1045。输入装置1040使能用户向电子系统传送信息并选择命令。输入装置1040包括字母数字键盘和指示装置(也称为“光标控制装置”),摄像机(例如,网络摄像头),麦克风或用于接收语音命令的类似装置等。输出装置1045显示由电子系统产生的图像或其他输出数据。输出装置1045包括打印机和显示装置,例如阴极射线管(crt)或液晶显示器(lcd),以及扬声器或类似的音频输出装置。一些实施例包括诸如用作输入和输出装置两者的触摸屏的装置。

最后,如图10所示,总线1005还通过网络适配器(未示出)将电子系统1000耦接到网络1025。以这种方式,计算机可以是计算机网络(例如局域网(lan),广域网(wan))或内联网或网际网络的一部分。电子系统1000的任何或所有组件均可以结合本发明来使用。

一些实施例包括电子组件,例如微处理器,储存器和内存,其储存机器可读或计算机可读媒体(或称为计算机可读储存媒体,机器可读媒体或机器可读储存媒体)中的计算机程式指令。这种计算机可读媒体的一些示例包括ram,rom,只读光盘(cd-rom),可记录光盘(cd-r),可重写光盘(cd-rw),只读数字通用光盘(例如,dvd-rom,双层dvd-rom),各种可记录/可重写dvd(例如,dvd-ram,dvd-rw,dvd+rw等),闪存(例如,sd卡,小型sd卡,微型sd卡),磁性和/或固态硬盘,只读和可录制的蓝光盘,超密度光盘,任何其他光学或磁性媒体和软盘。计算机可读媒体可以储存可由至少一个处理单元执行的计算机程式,并且包括用于执行各种运算的指令集。计算机程式或计算机代码的示例包括:诸如由编译器产生的机器代码,以及包括由计算机,电子组件或使用解释器的微处理器执行的更高级代码的文件。

尽管上述讨论主要涉及执行软体的微处理器或多核处理器,但许多上述特征和应用可由一个或多个集体电路执行,例如专用集体电路(asic)或现场可编程门阵列(fpga)。在一些实施例中,这种集体电路执行储存在电路本身上的指令。此外,一些实施例执行储存在可编程逻辑器件(pld),rom或ram装置中的软体。

如本说明书和本申请的任何权利要求书所使用的,术语“计算机”,“服务器”,“处理器”和“储存器”均指电子或其他技术设备。这些术语不包括人或人群。为了说明书的目的,术语显示或显示装置在电子设备上显示。如本说明书和本申请的任何权利要求所使用的,术语“计算机可读媒体”,“计算机可读媒体”和“机器可读媒体”完全限于有形的物理对象,其以可由电脑读取的方式来储存资讯。这些术语排除任何无线信号,有线下载信号和任何其他短暂信号。

虽然已经参考许多具体细节描述了本发明,但是本领域的技术人员应可理解,在不脱离本发明的精神的情况下,本发明可以以其他具体形式实施。此外,附图(例如图8和图9)中的一些数字在概念上说明了流程。这些流程的具体运算可以不按照所示和描述的确切顺序进行。具体运算可以不在一连串的运算中执行,并且可以在不同的实施例中执行不同的具体运算。此外,该流程可以使用几个子流程来实现,也可以作为更大的宏流程的一部分。因此,本领域的技术人员应可理解,本发明不受前述说明性细节的限制,而是由权利要求书来限定。

附注

本文中有时会描述不同的组件包含在其他不同的组件内,或同其他不同的组件相连接。应当理解的是,所描述的这种结构关系仅仅作为示例,事实上,也可以通过实施其他的结构以实现相同的功能。从概念上讲,任何可实现相同功能的组件的配置均是有效的“相关联的”,从而实现所需要的功能。因此,本文为实现某特定功能所组合的任意两个组件均可被看作是彼此“相关联的”,以此实现所需要的功能,而不管其架构或者中间组件如何。类似地,以这种方式相关联的任意两个组件也可被看作是彼此间“操作上相连接的”或“操作上相耦合的”,从而实现所需要的功能,并且,能够以这种方式相关联的任意两个组件还可被看作是彼此间“操作上可耦合的”,从而实现所需要的功能。操作上可耦合的具体实例包括但不限于物理上可配对的和/或物理上相互交互的组件、和/或无线地可交互的和/或无线地相互交互的组件、和/或逻辑上相互交互的和/或逻辑上可交互的组件。

此外,对于本文所使用的任何复数和/或单数形式的词语,本领域的技术人员可根据其语境和/或应用场景是否合适而将复数转换至单数和/或将单数转换至复数。为清晰起见,此处即对单数/复数之间的各种置换作出明确规定。

并且,本领域的熟练技术人员可以理解的是,一般地,本文所使用的词语,特别是所附权利要求如权利要求主体中所使用的词语通常具有“开放性”意义,例如,词语“包括”应该理解为“包括但不限于”,词语|“具有”应该理解为“至少具有”等等。本领域的熟练技术人员可进一步理解的是,若某权利要求意图将其引入的权利要求列举中某一具体的数值包含进来,那么这种意图将会明确地列举于该权利要求中,而如果没有列举的话,这种意图即不存在。为帮助理解,可举例如,下面的权利要求可能包含引导性短语的使用如“至少一个”和“一个或多个”来引入权利要求列举。然而,类似这种短语不应将该权利要求列举解释为:对不定冠词“一个”的引入意味着把包含这种引入权利要求列举的任何特定权利要求限制为仅包含一个这种列举的实施方式,甚至当同一权利要求包含引导性短语“一个或多个”或“至少一个”和不定冠词例如“一个”时同样符合这种情况,例如,“一个”应该解释为“至少一个”或“一个或多个”;同样的,使用定冠词来引入权利要求列举也是这样。另外,即使某一引入的权利要求列举中明确列举了一具体数值,本领域的熟练技术人员会认识到,这种列举应该理解为至少包括所列举的数值,例如,仅“两个列举”而没有任何其他限定时,其意味着至少两个列举,或者说两个或多个列举。此外,在某些情况下,如使用了类似“a、b和c等中的至少一个”,通常,本领域的熟练技术人员可以理解的是,如“具有a、b和c中至少一个的系统”将包括但不限于:只具有a的系统、只具有b的系统、只具有c的系统、具有a和b的系统、具有a和c的系统、具有b和c的系统,和/或具有a、b和c的系统等等。另外一些情况下,若使用了类似“a、b或c等中至少一个”,通常,本领域的熟练技术人员可以理解的是,如“具有a、b或c中至少一个的系统”将包括但不限于:只具有a的系统、只具有b的系统、只具有c的系统、具有a和b的系统、具有a和c的系统、具有b和c的系统,和/或具有a、b和c的系统等等。本领域的技术人员可进一步理解的是,无论是说明书、权利要求书或附图中所出现的几乎所有连接两个或多个替代性词语的析取词语和/或短语,均应理解为其考虑到了所有的可能性,即包括所有词语中某一个、两个词语中任一个或包括两个词语。例如,短语“a或b”应该理解为包括可能性:“a”、“b”或“a和b”。

上述内容已经描述了本发明的各个实施方式以对本发明作出解释,并且,可在不背离本发明的范畴和精神的情况下对各个实施方式做出多种修改。相应地,本文所公开的各个实施方式不应理解为具有限制意义,真实的范畴和精神通过权利要求书进行限定。

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