发明内容
本申请实施例提供一种视频编码方法及装置,以提升编码后的视频质量。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种视频编码方法,该方法应用于编码设备或编码设备的芯片,该方法包括:根据编码单元的第一量化参数QP确定编码单元的目标编码模式,并根据所述目标编码模式对所述编码单元进行划分,得到至少一个第一子编码单元,之后,根据当前第一子编码单元的第二QP对所述当前第一子编码单元编码,所述编码单元为待编码的视频图像,所述第一QP用于反映所述编码单元的特性,所述第二QP用于反映所述第一子编码单元的特性。
其中,每一第一子编码单元的第二QP可能相同,也可能不同。
通过上述视频编码方法,采用第一QP确定编码单元(LCU)的目标编码模式,这意味着,编码单元的编码模式判决流程中,每个子编码单元(CU)使用同一QP确定编码模式,避免不同CU使用不同QP导致的编码模式误判,能够得到较为合理的目标编码模式。并且,在确定LCU的目标编码模式后,在对目标编码模式下的第一子编码单元进行编码时,使用第一子编码单元对应的第二QP进行量化、编码,使得更加符合第一子编码单元的图像特征。具体的,每一第一子编码单元的特性可能不同,第二QP为反映第一子编码单元特性的参数,如此,一方面,若第一子编码单元为人眼敏感度较高的图像区域,根据第一子编码单元对应的第二QP(用以反映该第一子编码单元的特性)编码可使该图像区域的细节不易丢失,避免产生图像局部模糊的现象,另一方面,若第一子编码单元为人眼敏感度较低的图像区域,根据第一子编码单元特性所取的第二QP对第一子编码单元进行编码,可降低编码码率。即,采用本申请实施例的视频编码方法,能够综合考虑视频的编码质量与编码码率,得到符合用户需求的编码后的视频图像。
在第一方面的一种可能的设计中,在根据编码单元的第一量化参数QP确定编码单元的目标编码模式之前,还可以执行如下操作:根据编码单元的第一目标特征确定所述编码单元的第一QP。其中,第一目标特征为编码单元的纹理、亮度、色度等特征。
在第一方面的一种可能的设计中,在根据当前第一子编码单元的第二QP对所述当前第一子编码单元编码之前,还可以执行如下操作:根据当前第一子编码单元的第二目标特征确定所述当前第一子编码单元的第二QP。
在第一方面的一种可能的设计中,所述目标编码模式为所述编码单元率失真值最小时对应的编码模式,每一编码模式下的率失真值均与所述第一QP相关。由于在目标编码模式下编码单元的失真程度较小,所以,能够提升视频编码的质量。
在第一方面的一种可能的设计中,上述根据编码单元的所述第一QP确定所述编码单元的目标编码模式,具体可以实现为:根据所述编码单元的第一QP确定所述编码单元在每一编码模式下的率失真值,之后,确定所述编码单元的率失真值最小时对应的编码模式为所述目标编码模式。
在第一方面的一种可能的设计中,所述根据所述第一QP确定所述编码单元在第一编码模式下的率失真值,具体可以实现为:
根据所述第一QP确定在所述第一编码模式下当前第二子编码单元在每一预测模式下的率失真值,将当前第二子编码单元的率失真值最小时对应的预测模式确定为当前第二子编码单元的目标预测模式。之后,将至少一个第二子编码单元在各自的目标预测模式下的率失真值之和作为所述编码单元在所述第一编码模式下的率失真值。
其中,所述第二子编码单元为根据所述第一编码模式确定的子编码单元。
这里,第二子编码单元与第一子编码单元均为编码单元的组成单元,所不同的是,第二子编码单元为目标模式确定之前,在每一编码模式下编码单元的组成单元,第一子编码单元为目标模式确定后,在目标模式下编码单元所包含的组成单元。
在第一方面的一种可能的设计中,根据当前第一子编码单元的第二QP对所述当前第二子编码单元编码,具体可以实现为:根据所述当前第一子编码单元、所述当前第一子编码单元在其目标预测模式下对应的预测子编码单元确定所述当前第一子编码单元对应的第一残差子编码单元,根据所述当前第一子编码单元的第二QP对所述第一残差子编码单元编码。
在第一方面的一种可能的设计中,在根据当前第一子编码单元的第二QP对所述当前第一子编码单元编码之后,还可以执行如下操作:根据所述当前第一子编码单元的第二QP对编码后的所述当前第一子编码单元进行重构,得到所述当前第一子编码单元的重构子编码单元。
其中,所述重构子编码单元用于预测所述当前第一子编码单元的下一个第一子编码单元。
采用上述重构当前第一子编码单元的方法,使用契合当前第一子编码单元特性的第二QP重构当前第一子编码单元,由于考虑到每一第一子编码单元可能具有不同特性(例如纹理特性等),使得重构子编码单元的准确性有所提升。
在第一方面的一种可能的设计中,根据所述当前第一子编码单元的第二QP对编码后的所述当前第一子编码单元进行重构,具体可以实现为:根据当前第一子编码单元的第二QP确定所述第一残差子编码单元对应的第二残差子编码单元,根据所述第二残差子编码单元和所述当前第一子编码单元在所述目标预测模式下对应的预测子编码单元确定所述当前第一子编码单元的重构子编码单元。
第二方面,本申请实施例提供一种视频编码装置,该装置可以为视频编码设备,也可以为具有视频编码功能的芯片,该装置包括存储器和处理器。
其中,存储器,用于存储包括程序指令的信息。处理器,用于根据编码单元的第一量化参数QP确定编码单元的目标编码模式,并根据所述目标编码模式对所述编码单元进行划分,得到至少一个第一子编码单元,之后,根据当前第一子编码单元的第二QP对所述当前第一子编码单元编码,所述编码单元为待编码的视频图像,所述第一QP用于反映所述编码单元的特性,所述第二QP用于反映所述第一子编码单元的特性。
其中,每一第一子编码单元的第二QP可能相同,也可能不同。
在第二方面的一种可能的设计中,所述处理器,还用于根据编码单元的第一目标特征确定所述编码单元的第一QP。其中,第一目标特征为编码单元的纹理、亮度、色度等特征。
在第二方面的一种可能的设计中,所述处理器,还用于根据当前第一子编码单元的第二目标特征确定所述当前第一子编码单元的第二QP。
在第二方面的一种可能的设计中,所述目标编码模式为所述编码单元率失真值最小时对应的编码模式,每一编码模式下的率失真值均与所述第一QP相关。由于在目标编码模式下编码单元的失真程度较小,所以,能够提升视频编码的质量。
在第二方面的一种可能的设计中,所述处理器,还用于根据所述编码单元的第一QP确定所述编码单元在每一编码模式下的率失真值,之后,确定所述编码单元的率失真值最小时对应的编码模式为所述目标编码模式。
在第二方面的一种可能的设计中,所述处理器,还用于根据所述第一QP确定在所述第一编码模式下当前第二子编码单元在每一预测模式下的率失真值,将当前第二子编码单元的率失真值最小时对应的预测模式确定为当前第二子编码单元的目标预测模式。之后,将至少一个第二子编码单元在各自的目标预测模式下的率失真值之和作为所述编码单元在所述第一编码模式下的率失真值。
其中,所述第二子编码单元为根据所述第一编码模式确定的子编码单元。
这里,第二子编码单元与第一子编码单元均为编码单元的组成单元,所不同的是,第二子编码单元为目标模式确定之前,在每一编码模式下编码单元的组成单元,第一子编码单元为目标模式确定后,在目标模式下编码单元所包含的组成单元。
在第二方面的一种可能的设计中,所述处理器,还用于根据所述当前第一子编码单元、所述当前第一子编码单元在其目标预测模式下对应的预测子编码单元确定所述当前第一子编码单元对应的第一残差子编码单元,根据所述当前第一子编码单元的第二QP对所述第一残差子编码单元编码。
在第二方面的一种可能的设计中,所述处理器,还用于根据所述当前第一子编码单元的第二QP对编码后的所述当前第一子编码单元进行重构,得到所述当前第一子编码单元的重构子编码单元。
其中,所述重构子编码单元用于预测所述当前第一子编码单元的下一个第一子编码单元。
采用上述重构当前第一子编码单元的方法,使用契合当前第一子编码单元特性的第二QP重构当前第一子编码单元,由于考虑到每一第一子编码单元可能具有不同特性(例如纹理特性等),使得重构子编码单元的准确性有所提升。
在第二方面的一种可能的设计中,所述处理器,还用于根据当前第一子编码单元的第二QP确定所述第一残差子编码单元对应的第二残差子编码单元,根据所述第二残差子编码单元和所述当前第一子编码单元在所述目标预测模式下对应的预测子编码单元确定所述当前第一子编码单元的重构子编码单元。
在第一方面或第二方面的一种可能的设计中,目标编码模式包括预测模式和划分模式。
第三方面,本申请实施例提供一种视频编码装置,该视频编码装置具有实现上述第一方面任一项的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,提供一种视频编码装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该视频编码装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该视频编码装置执行如上述第一方面中任一项的视频编码方法。
第五方面,提供一种视频编码装置,包括:处理器;处理器用于与存储器耦合,并读取存储器中的指令之后,根据指令执行如上述第一方面中任一项的视频编码方法。
第六方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的视频编码方法。
第七方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的视频编码方法。
第八方面,提供一种芯片系统,该芯片系统包括处理器,用于支持视频编码装置实现上述第一方面中所涉及的功能。在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存视频编码装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至八方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
具体实施方式
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供的视频编码方法应用于视频编码过程中,其中,视频编码包括但不限于高效视频编码(High Efficiency Video Coding,HEVC,即(H.265))、音视频编码(Audio Video Coding Standard,AVS),使用更大编码树单元(Coding Tree Unit,CTU)的H.266。图1为本申请实施例提供的视频编码装置的结构示意图。
应理解,图1是示例性的而不应视为限制如本发明广泛例证并描述的技术。如图1所示,视频编码装置10包含预测处理单元100、残差产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重构单元112、滤波器单元113、解码图片缓冲器114及熵编码单元116。熵编码单元116包含基于上下文的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)引擎118及旁通编码引擎120。预测处理单元100包含帧间预测处理单元121及帧内预测处理单元126。帧间预测处理单元121包含运动估计单元122及运动补偿单元124。在其它实例中,视频编码装置10可包含更多、更少或不同的功能组件。
视频编码装置10接收视频数据。为编码视频数据,视频编码装置10可编码视频数据的每一图片的每一条带。作为编码条带的一部分,视频编码装置10可编码上述条带中的每一编码树块(Coding Tree Block,CTB)。作为CTB的一部分,预测处理单元100可对与CTB相关联的像素块执行四叉树分割,以将像素块分成递减的像素块。举例来说,预测处理单元100可将CTB对应的像素块分割成四个相等大小的子块,进一步的,可将子块中的一个或多个分割成四个相等大小的更小像素块,等等。
视频编码装置10可编码图片中CTB对应的CU以产生CU的编码信息。视频编码装置10可根据折形扫描次序来编码CTB的CU。换句话说,视频编码装置10可按左上CU、右上CU、左下CU及接着右下CU的顺序来编码所述CU。当视频编码装置10编码分割后的CU时,视频编码装置10可根据折形扫描次序来编码与分割后的CU的像素块的子块相关联的CU。
此外,预测处理单元100可在CU的一个或多个预测单元(Prediction Unit,PU)中分割CU的像素块。视频编码装置10可支持多种PU大小。假定特定CU的大小为2N×2N,视频编码装置10可支持2N×2N或N×N的PU大小以用于帧内预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间预测。视频编码装置10还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间预测。
帧间预测处理单元121可通过对CU的每一PU执行帧间预测而产生PU的预测性数据。PU的预测性数据可包含对应于PU的预测性像素块及PU的运动信息。条带可为I条带、P条带或B条带。帧间预测单元121可根据PU是在I条带、P条带还是B条带中而对CU的PU执行不同操作。
其中,如果PU在I条带中,对PU执行帧内预测。
如果PU在P条带中,则运动估计单元122可搜索参考图片的列表(例如,“列表0”)中的参考图片以查找PU的参考块。PU的参考块可为最紧密地对应于PU的像素块的像素块。运动估计单元122可产生指示列表0中的含有PU的参考块的参考图片的参考图片索引,及指示PU的像素块与参考块之间的空间位移的运动向量。运动估计单元122可将参考图片索引及运动向量作为PU的运动信息而输出。运动补偿单元124可基于由PU的运动信息指示的参考块来产生PU的预测性像素块。
如果PU在B条带中,则运动估计单元122可对PU执行单向帧间预测或双向帧间预测。为对PU执行单向帧间预测,运动估计单元122可搜索第一参考图片列表(“列表0”)或第二参考图片列表(“列表1”)的参考图片以查找PU的参考块。运动估计单元122可将以下各者作为PU的运动信息而输出:指示含有参考块的参考图片的列表0或列表1中的位置的参考图片索引、指示PU的像素块与参考块之间的空间位移的运动向量,及指示参考图片是在列表0中还是在列表1中的预测方向指示符。为对PU执行双向帧间预测,运动估计单元122可搜索列表0中的参考图片以查找PU的参考块,且还可搜索列表1中的参考图片以查找PU的另一参考块。运动估计单元122可产生指示含有参考块的参考图片的列表0及列表1中的位置的参考图片索引。另外,运动估计单元122可产生指示参考块与PU的像素块之间的空间位移的运动向量。PU的运动信息可包含PU的参考图片索引及运动向量。运动补偿单元124可基于由PU的运动信息指示的参考块来产生PU的预测性像素块。
帧内预测处理单元126可通过对PU执行帧内预测而产生PU的预测性数据。PU的预测性数据可包含PU的预测性像素块及各种语法元素。帧内预测处理单元126可对I条带、P条带及B条带内的PU执行帧内预测。
为对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式来产生PU的预测性数据的多个集合。为使用帧内预测模式来产生PU的预测性数据的集合,帧内预测处理单元126可在与帧内预测模式相关联的方向上跨越PU的采样块扩展来自相邻PU的采样块的采样。假定从左向右、从上而下的编码次序用于PU、CU及CTB,相邻PU可在PU的上方,在PU的右上方,在PU的左上方或在PU的左方。帧内预测处理单元126可使用包含不同数目的帧内预测模式,例如,33个方向性帧内预测模式。在一些实例中,帧内预测模式的数目可取决于PU的像素块的大小。
预测处理单元100可从通过帧间预测处理单元121针对PU而产生的预测性数据或通过帧内预测处理单元126针对PU而产生的预测性数据当中选择CU的PU的预测性数据。在一些实例中,预测处理单元100基于预测性数据的集合的速率/失真量度来选择CU的PU的预测性数据。例如,使用拉格朗日代价函数来在编码模式及其参数值(比如运动矢量、参考索引和帧内预测方向)之间进行选择。这一种类的代价函数使用加权因子lambda将由于有损编码方法所致的实际的或者估计的图像失真与为了表示在图像区域中的像素值而需要的实际的或估计的信息量联系在一起:C=D+lambda*R,其中C是待最小化的拉格朗日代价,D是具有模式及其参数的图像失真(例如均方误差),R是为了在解码设备中重构图像块而需要的比特数(例如包括用于表示候选运动矢量的数据量)。一般的,代价最小的编码模式被选定作为实际编码模式。选定预测性数据的预测性像素块在本文中可被称作选定预测性像素块。
残差产生单元102可基于CU的像素块及CU的PU的选定预测性像素块来产生CU的残余像素块。举例来说,残差产生单元102可产生CU的残余像素块,使得残余像素块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的选定预测性像素块中的对应采样。
预测处理单元100可执行四叉树分割以将CU的残余像素块分割成子块。每一不再划分的残余像素块可与CU的不同变换单元(Transform Unit,TU)相关联。与CU的TU相关联的残余像素块的大小及位置与基于CU的PU的像素块的大小及位置没有必然联系。
因为TU的残余像素块的像素可对应一个亮度采样及两个色度采样,所以每一个TU可与一个亮度采样块及两个色度采样块相关联。变换处理单元104可通过将一个或多个变换应用于与TU相关联的残余采样块而产生CU的每一个TU的系数块。举例来说,变换处理单元104可将离散余弦变换(Discrete Cosine Transform,DCT)、方向性变换或概念上类似的变换应用于残余采样块。
量化单元106可量化上述得到的系数块中的系数。举例来说,n位系数可在量化期间舍位到m位系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QuantizationParameter,QP)值来量化与CU的TU相关联的系数块。视频编码装置10可通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化程度。
逆量化单元108及逆变换处理单元110可分别将逆量化及逆变换应用于变换后的系数块以从系数块重建残余采样块。重构单元112可将重建后的残余采样块的采样加到预测处理单元100产生的一个或多个预测性采样块的对应采样,以产生与TU相关联的重建后的采样块。通过此方式重建CU的每一个TU的采样块,视频编码装置10可重建CU的像素块。
滤波器单元113可执行消块滤波操作以减少与CU相关联的像素块的块效应。此外,滤波器单元113可将由预测处理单元100确定的取样自适应偏移(Sample AdaptiveOffset,SAO)应用于重建后的采样块以恢复像素块。滤波器单元113可产生CTB的SAO语法元素的编码信息。
解码图片缓冲器114可存储重建后的像素块。帧间预测处理单元121可使用含有重建后的像素块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用解码图片缓冲器114中的重建后的像素块来对在与CU相同的图片中的其它PU执行帧内预测。
熵编码单元116可接收来自视频编码装置10的其它功能组件的数据。举例来说,熵编码单元116可接收来自量化单元106的系数块且可接收来自预测处理单元100的语法元素。熵编码单元116可对数据执行一个或多个熵编码操作以产生熵编码后的数据。举例来说,熵编码单元116可对数据执行基于上下文的自适应可变长度编码(Context-basedAdaptive Variable-Length Code,CAVLC)操作、CABAC操作、基于语法的二进制算术编解码(Syntax-based Binary Arithmetic Coding,SBAC)操作,或其它类型的熵编码操作。
在实现中,上述视频编码装置可以为具有视频编码功能的设备或者芯片,例如,可以为诸如摄像机、手机一类的设备,也可以为例如摄像机、手机内部的芯片。还可以为其他实现形式,本申请实施例对此不进行限制。
下文主要以上述视频编码装置为具有视频编码功能的设备(简称为编码设备)为例对本申请实施例的技术方案作出说明,在此统一说明,下文不再赘述。并且,本文主要以编码单元为一个LCU为例进行说明,可以理解的是,编码单元并不局限与一个LCU,还可以是一个CTU,或者,本申请实施例中的一个编码单元还可以为多个LCU,或者多个CTU,或者为LCU和CTU的结合,本申请实施例对此不加以限制。
在视频编码流程中,首先需确定一个编码单元的编码模式,之后,按照确定的编码模式对每一CU进行编码。其中,编码模式包括预测模式和划分模式。
其中,编码设备可以将一个编码单元(例如一个LCU或一个CTU)进行划分,确定编码单元的划分模式。可选的,采用上述四叉树分割算法确定编码单元的划分模式。作为一个示例,图2中(a)的编码单元的颗粒度为64*64(即编码单元为64*64的像素块),编码单元包含的最小处理单元为颗粒度为8*8的像素块,记为CU_8*8。每个CU_8*8的编号如图2中(a)所示。
在一种可能的实现方式中,四叉树分割方式选用自底向上的迭代方式。示例性的,分别计算图2中(a)所示编号为1的CU_8*8(记为CU1_8*8)、CU2_8*8、CU9_8*8、CU10_8*8的率失真值,计算上述4个CU_8*8的率失真值之和,并计算由CU1_8*8、CU2_8*8、CU9_8*8、CU10_8*8构成的CU1_16*16的率失真值。之后,将CU1_16*16的率失真值与其对应的4个CU_8*8的率失真值之和进行比较,并选取率失真值小的划分模式来划分CU1_16*16。如图2中(b)所示,CU1_16*16的率失真值大于其对应的4个CU_8*8的率失真值之和,则将CU1_16*16划分为图2中(b)所示的CU1_8*8、CU2_8*8、CU3_8*8、CU4_8*8。又例如,计算图2中(a)所示CU3_8*8、CU4_8*8、CU11_8*8、CU12_8*8的率失真值之和,计算CU2_16*16的率失真值,CU2_16*16的率失真值小于其对应的4个CU_8*8的率失真值之和,则将图2中(a)所示的CU3_8*8、CU4_8*8、CU11_8*8、CU12_8*8聚合为图2中(b)所示的CU5_16*16,以此类推,可以依次判断是否将特定的4个CU_8*8聚合为一个CU_16*16。需要说明的是,图2中(b)的CU编号与图2中(a)的CU可能不一致,各个CU的编号仅为了方便阅读,并不意味着视频编码顺序按照编号进行。
之后,可以采取同样的方式,计算4个CU_16*16的率失真值之和以及对应的CU_32*32的率失真值,当4个CU_16*16的率失真值之和大于对应的CU_32*32的率失真值,将4个CU_16*16聚合为一个CU_32*32。例如,图2中(b)的CU8至CU20聚合为图2中(c)的CU8_32*32。图2中(b)所示的CU21至CU33聚合为图2中(c)所示的CU9_32*32。当然,还可以继续判断4个CU_32*32是否可聚合成1个CU_64*64。
除了上述四叉树分割方式,还可以采取其他方式确定编码单元的划分模式,本申请对此不进行任何限制。
可选的,使用上文提及的拉格朗日代价函数计算每一CU(例如CU_8*8,或者CU_16*16等)的率失真值,即采用如下公式计算率失真值:
C=D+lambda*R。
其中,C为CU的率失真值,D为CU的失真程度,lambda为拉格朗日因子,R为CU的编码比特数。通常,C的值越小,编码后的CU越契合用户对视频图像的需求。
在计算C时,可以通过绝对误差和(Sum of Absolute Difference,SAD)、平均平方误差(Mean Squared Error,MSE)、方差和(Sum of Squared Difference,SSD)等表示失真程度D,本申请实施例对此不进行任何限制。
以SSD表示失真程度D为例,拉格朗日代价函数具体为如下公式:
RDCost=SSD+λ*Bits。
其中,RDCost为CU的率失真值,SSD为CU和CU的重构图像之间的方差和(即失真)。
λ为拉格朗日因子,可用于反映用户所期盼的CU的编码码率与编码质量的关系。在一种示例中,λ为用户所期盼的图像编码码率与编码质量的比值。那么,λ越大,意味着用户对编码码率的要求较高,且对编码质量的要求越低,λ越小,意味着对编码码率的要求较低,且对编码质量的要求较高。
Bits为CU的编码比特数,Bits包括CU的头比特数和残差比特数,头比特包括参考帧、预测模式、运动矢量等相关的比特。
在RDCost中,λ与QP相关,在QP确定之后,λ的值通常也就随之确定。在视频编码流程中,可设置QP或λ的值,并且,在所设置QP(λ)的条件下,即在用户对编码质量与编码码率具有特定需求的基础上,计算CU在每一编码模式下对应的SSD和Bits,进而计算CU在每一编码模式下对应的RDCost,并确定在符合用户需求的条件下由CU构成的编码单元的目标编码模式。通常,在目标编码模式下每一CU的RDCost均较小。其中,编码单元在不同编码模式下对应不同的失真程度。可见,QP值对编码单元的编码模式的确定有所影响。
同时,QP还与量化步长相关。通常QP越大,量化步长越大,量化编码后的图像质量越差,码率越低。反之,QP越小,量化步长越小,量化编码后的图像质量越好,码率越高。并且,人眼对不同亮度、纹理、运动区域的量化误差的感知是不同的。例如,人眼对弱纹理区域和平坦区域的量化误差较为灵敏,对强纹理和强边界的量化误差的感知程度较低。因此,从平衡视频编码质量和码率的角度,通常在强纹理和强边界区域使用大QP来降低码率,在弱纹理和平坦区域则使用小QP来提升编码后的图像质量。
可见,QP值的大小不仅影响编码单元的编码模式,还影响编码单元的编码质量与码率。
在现有的LCU级编码方案中,LCU包含的全部CU(例如CU_8*8,或者CU_16*16)均采用同一QP。如图3所示,当前编码单元为草地上站着一个人的图像,在图3中,人与草地背景的强边界处采用一个QP进行量化编码,且草地背景的弱纹理区域也采用同一QP进行量化编码。在该强边界处,由于人眼对强边界处的图像变化不敏感,所以,量化编码后展现给用户的图像并未产生明显的失真。但是,人眼对草地背景的弱纹理区域的亮度、纹理等变化较为敏感,所以在采用同一QP量化编码后展现给用户的图像中,人与草地背景的边界处的邻近弱纹理区域产生了模糊,也就是弱纹理区域的图像细节被丢失,导致用户观看的图像质量较差。
在现有的CU级编码方案中,LCU包含的每一CU可采用不同QP。在采用诸如RDCost计算编码单元的编码模式时,每个CU使用不同的QP,意味着,每个CU使用不同的λ,也就是说,用户对各个CU的编码码率与编码质量的需求不同。例如,当CU使用数值较大的λ,说明用户期盼该CU的编码码率较高,允许编码质量稍低,当CU使用数值较小的λ,说明用户期盼该CU的编码质量较高。这样,不同CU使用不同的QP意味着用户对这些CU编码质量的需求不同,在此基础上,可能导致不合理的编码模式判决,进而影响编码后视频图像的质量。
可见,在许多应用场景下,现有的视频编码方案无法保证编码后视频图像的质量。
本申请实施例提供一种视频编码方法,如图4所示,该视频编码流程包括S401至S407:
S401、编码设备确定编码单元的第一目标特征的特征值。
其中,编码单元为待编码的视频图像。
如上文所描述,这里以编码单元为LCU为例进行说明,第一目标特征用于描述LCU的特征。LCU的特征包括但不限于纹理特征、亮度特征、色度特征、运动特征、肤色特征、感兴趣区域特征。
以计算LCU的纹理特征为例,可采用如下公式计算LCU的纹理特征的特征值:
其中,P(i,j)为LCU中当前像素的像素值,
为LCU中各个像素的像素值的均值,N为LCU中像素的数量。
示例性的,如图2中(a)至(d)所示,LCU为64*64的像素块,则
为LCU中64*64个像素的像素值的均值,N的取值为64*64,该LCU的纹理特征值为
当然,还有其他计算第一目标特征值的方法。例如,可以基于图像中各个像素之间的相关性对像素值进行加权、积分、微分运算,并不局限于上述公式所提及的计算方法,这里不再赘述。
S402、编码设备根据编码单元的第一目标特征确定编码单元的第一QP。
具体的,编码设备根据编码单元的第一目标特征的特征值(本文中也称为第一目标特征值)确定编码单元的第一QP。
作为一种可能的实现方式,编码设备中设置有QP与特征值的对应关系。在编码设备确定编码单元的第一目标特征值之后,查找QP与特征值的对应关系,从而确定第一目标特征值对应的第一QP。
这里,可根据经验值、大数据统计分析等方式设置特征值与QP的对应关系。示例性的,当特征为纹理特征时,由于人眼对弱纹理区域的视觉误差较为敏感,对强纹理区域的视觉误差不够敏感,所以,可设置弱纹理区域的特征值对应小QP,强纹理区域的特征值对应大QP。
可以理解的是,第一目标特征用于描述LCU的特性,相应的,由第一目标特征得到的第一QP也可用于反映LCU的纹理等特性。
S403、编码设备根据编码单元的第一QP确定编码单元的目标编码模式。
其中,目标编码模式包括划分模式和预测模式。
划分模式指的是将编码单元采用诸如上述四叉树分割方式划分为至少一个CU时采用的划分方式。不同的划分模式对应不同的失真程度。示例性的,采用如图2中(c)所示的划分模式和采用图2中(d)所示的划分模式可能对应不同的失真程度。
预测模式指的是使用参考图像预测当前CU时采用的预测方式。在视频编码中,每个CU可以使用不同的预测模式,不同预测模式对应不同的失真程度。
需要说明的是,在不同的视频编码技术标准中,预测模式可能不同。示例性的,预测模式包括但不限于帧内预测和帧间预测。帧内预测包括垂直预测模式、水平预测模式、左下预测模式、右下预测模式、右垂直预测模式等。帧间预测模式包括运动估计等。
其中,在垂直预测模式下,参考图像为CU上方N个像素构成的图像,根据参考图像的像素参数(例如像素值)作出预测,得到CU的预测图像。如图5所示,当前CU为箭头所指的CU9_8*8,在采用垂直预测模式预测当前CU的情况下,参考图像为图5所示的编号1至8的CU_1*1,可根据CU1_1*1至CU8_1*1的像素值得到CU9_8*8的预测图像。
作为一种可能的实现方式,编码设备先根据编码单元的第一QP确定编码单元在每一编码模式下的率失真值,之后,为了降低图像的失真程度,编码设备将编码单元的率失真值最小时对应的编码模式作为目标编码模式。可选的,编码设备中的预测处理单元100用以确定编码单元的率失真值。
其中,编码单元包含一个或多个第二子编码单元,相应的,编码单元的率失真值为编码单元包含的第二子编码单元的率失真值之和。作为一种可能的实现方式,在一个编码模式中,令每一第二子编码单元的率失真值最小,得到该编码模式下编码单元的率失真值。具体的,为第二子编码单元选用一个预测模式,在该预测模式下,第二子编码单元的率失真值最小。这里,在该编码模式下,使得每个第二子编码单元的率失真值最小的预测模式可能不同。例如,使得第二子编码单元1的率失真值最小的预测模式为垂直预测模式,使得第二子编码单元2的率失真值最小的预测模式为水平预测模式。可以看出,本申请实施例中,编码模式包括该编码模式下的划分模式,以及在该划分模式下每一第二子编码单元的预测模式。如图2中(d)所示,编码模式包括划分模式,即将LCU划分为CU1至CU34,还包括在该划分模式下CU1至CU34中每一CU的预测模式。
示例性的,若第一编码模式包含的划分模式如图2中(a)所示,该划分模式下编码单元包含64个第二子编码单元,即CU1至CU64,且当前第二子编码单元为CU12,编码设备计算CU12在每一预测模式下的率失真值。可选的,编码设备采用上述RDCost计算CU12在每一预测模式下的率失真值。例如,编码设备计算CU12在垂直预测模式下的率失真值,RDCost_vertical=SSD_vertical+λ*Bits。其中,RDCost_vertical为CU12在垂直预测模式下的率失真值,SSD_vertical为CU12与在垂直预测模式下CU12的预测图像之间的失真程度,λ为用于平衡失真和编码比特的拉格朗日因子,λ与第一QP相关,Bits为编码比特。又例如,编码设备计算CU12在水平预测模式下的率失真值,RDCost_Horizontal=SSD_Horizontal+λ*Bits。其中,RDCost_Horizontal为CU12在水平预测模式下的率失真值,SSD_Horizontal为CU12与在水平预测模式下CU12的预测图像之间的失真程度,λ同样与第一QP相关。采用同样的原理,编码设备可遍历CU12的全部预测模式以及每一预测模式下的率失真值,进而,编码设备可确定一个预测模式,使得CU12的率失真值最小。同样的,编码设备可分别确定图2中(a)所示的其他CU的最小率失真值,以确定编码单元在第一编码模式下的率失真值。同样的,编码设备遍历编码单元的全部编码模式,分别确定编码单元在其他编码模式下的率失真值。例如,分别确定编码单元在如图2中(b)、(c)、(d)所示的第二编码模式、第三编码模式、第四编码模式下的率失真值。之后,将率失真值最小的编码模式作为目标编码模式。由此,每一编码模式下编码单元的率失真值均由第一QP计算得到,即均与第一QP相关。
S404、编码设备根据目标编码模式对编码单元进行划分,得到至少一个第一子编码单元。
比如,若目标编码模式包含的划分模式如图2中(d)所示,则得到的第一子编码单元分别为CU1至CU34。
需要说明的是,在本申请实施例中,第二子编码单元和第一子编码单元均为编码单元的组成单元,所不同的是,第二子编码单元为目标编码模式确定之前,每一编码模式中所包含的子编码单元,第一子编码单元为目标编码模式所包含的子编码单元。
S405、编码设备分别确定每一第一子编码单元的第二目标特征的特征值。
其中,与上述第一目标特征为编码单元的特征(即CTU或者LCU的特征)不同,第一子编码单元的第二目标特征为描述第一子编码单元特性的特征。第二目标特征可以为第一子编码单元的纹理细节特征、亮度特征、色度特征、运动特征、肤色特征、感兴趣区域特征等。
示例性的,在将编码单元进行划分,得到如图2中(d)所示的目标编码模式下的各个第一子编码单元(CU1至CU34)后,分别确定CU1至CU34的第二目标特征的特征值(本文中也称为第二目标特征值)。
计算第一子编码单元的第二目标特征值的步骤可参考上述计算编码单元的第一目标特征值的流程。即采用如下公式计算第一子编码单元的第二目标特征值:
在上述公式中,P(i,j)为第一子编码单元中当前像素的像素值,P为第一子编码单元中各个像素的像素值的均值,N为第一子编码单元中像素的数量。
值得说明的是,S405可以在S404之后执行,即采用串行处理方式,先对编码单元进行划分,得到如图2中(d)所示目标编码模式下的每一第一子编码单元,再确定每一第一子编码单元的第二目标特征值。从而避免在每一编码模式下分别确定每一CU的第二目标特征值,节约编码设备的计算资源。或者,S405也可以与S404同时执行,即采用并行处理方式,在编码设备确定编码模式的同时,分别确定每个编码模式下每一CU的第二目标特征值,不必等待目标编码模式确定之后再确定各个第一子编码单元的第二目标特征值,降低了处理时延。本申请并不限制S404和S405的执行顺序。
当然,还可在S402(计算编码单元的第一QP)执行的同时,分别计算每一编码模式下包含的CU的第二目标特征值,在目标编码模式确定后,从全部编码模式中查询目标编码模式下每一第一子编码单元的第二目标特征值。从而,无需等待目标编码模式确定后才计算每一第一子编码单元的第二目标特征值,降低了视频编码的时延。
S406、编码设备根据当前第一子编码单元的第二目标特征确定当前第一子编码单元的第二QP。其中,每一第一子编码单元对应一个第二目标特征值,相应的,每一第一子编码单元对应一个第二QP。第二QP对应第二量化步长,第二QP用于反映第一子编码单元的特性。
具体的,编码设备根据当前第一子编码单元的第二目标特征值确定当前第一子编码单元的第二QP。根据第二目标特征值确定当前第一子编码单元的第二QP的流程可参考上述根据第一目标特征值确定第一QP的流程,这里不再赘述。
其中,每一第一子编码单元的第二目标特征值可以相同或者不同,也就是,每一第一子编码单元的纹理等特性可以相同或者不同,相应的,每一第一子编码单元的第二QP可以相同或者不同,本申请实施例对此不进行限制。
S407、编码设备根据当前第一子编码单元的第二QP对当前第一子编码单元编码。
其中,第二量化步长与第一量化步长不同。
具体的,根据当前第一子编码单元的第二QP对当前第一子编码单元的第一残差图像进行编码。作为一种可能的实现方式,在目标编码模式下,编码设备中的预测处理单元100将使得当前第一子编码单元的率失真值最小的预测模式作为当前第一子编码单元的目标预测模式。之后,预测处理单元100将当前第一子编码单元在目标预测模式下的预测图像输出到残差产生单元102,残差产生单元102还接收当前第一子编码单元。之后,残差产生单元102基于两个输入,即预测图像和第一子编码单元,计算当前第一子编码单元与预测图像的差值,输出第一子编码单元的第一残差图像。之后由编码设备的其他功能模块或处理部件对第一残差图像量化、编码。例如,由图1中的量化单元106对第一残差图像进行量化,由图1所示的熵编码单元116对量化后的第一残差图像进行编码,从而得到可用于传输的码流。
当然,在对第一残差图像进行量化、编码之前,还可以对第一残差图像进行变换等操作,也就是,S407中所指的对当前第一子编码单元进行编码的流程包括对当前第一子编码单元进行的变换、量化、编码等一系列操作,本申请实施例对此不进行限制。其中,变换操作可由图1中的变换处理单元104执行。
本申请实施例提供的视频编码方法,当QP值确定后,λ的值通常也就随之确定,所以,在确定LCU的编码模式的流程中,编码单元包含的不同CU均使用同一λ计算各自的率失真值,这说明用户对每一CU的编码码率和编码质量的需求是一致的,在此基础上,能够得到较为合理的目标编码模式。并且,在确定目标编码模式后,在对各个第一子编码单元进行编码时,使用第一子编码单元的第二QP进行量化、编码,更加符合第一子编码单元的特征。一方面,若第一子编码单元为人眼敏感度较高的图像区域,根据第一子编码单元的第二QP编码可使该图像区域的细节不易丢失,避免产生图像局部模糊的现象,另一方面,若第一子编码单元为人眼敏感度较低的图像区域,根据第一子编码单元的第二QP编码可降低编码码率。即,采用本申请实施例的视频编码方法,能够综合考虑视频的编码质量与编码码率,得到符合用户需求的编码后的视频图像。也就是,本申请实施例中,使用LCU的第一QP确定该LCU的目标编码模式,由于第一QP由LCU的纹理等特性决定,所以得到的目标编码模式能够匹配该LCU的特性,在后续针对LCU中的第一子编码单元编码时,使用第一子编码单元的第二QP进行编码,由于第二QP由第一子编码单元的纹理等特性决定,所以得到的第一子编码单元的编码值更加契合第一子编码单元的特性。
在本申请的另一些实施例中,若当前第一子编码单元后还存在其他第一子编码单元,则为了对后续的第一子编码单元进行编码,需对当前第一子编码单元进行重构。具体的,如图6所示,在S407后,还可执行S601。
S601、编码设备根据当前第一子编码单元的第二QP对编码后的当前第一子编码单元进行重构,得到当前第一子编码单元的重构子编码单元。其中,重构子编码单元用于预测所述当前第一子编码单元的下一个第一子编码单元。
这里,对编码后的当前第一子编码单元进行重构指的是对经由图1所示的熵编码单元116编码后的当前第一子编码单元进行处理,也可以是对量化单元106量化后的当前第一子编码单元进行处理。本申请实施例对此不进行限制。
如图1所示,若对量化单元106输出的量化后的当前第一子编码单元进行处理,量化单元106的输出为量化后的第一残差图像,在此基础上,编码设备中的逆量化单元108对量化后的第一残差图像进行逆量化操作,可选的,逆变换处理单元110对逆量化单元108处理后的第一残差图像进行逆变换处理操作,得到第二残差图像。可选的,逆量化单元108使用当前第一子编码单元的第二QP对量化后的第一残差图像进行逆量化操作。之后,重构单元112根据第二残差图像和当前第一子编码单元在目标预测模式下对应的预测图像确定当前第一子编码单元的重构子编码单元。示例性的,如图1所示,将逆变换处理单元110输出的第二残差图像和预测处理单元100输出的当前第一子编码单元在目标预测模式下的预测图像输入到重构单元112,重构单元112对两个输入求和,得到当前第一子编码单元的重构子编码单元。
若对熵编码单元116编码后的当前第一子编码单元进行处理,则先对编码后的当前第一子编码单元进行解码,之后,将解码结果输入逆量化单元108,由逆量化单元108、逆变换处理单元110对解码结果进行诸如上文的处理操作,得到第二残差图像,进而得到重构子编码单元。
采用上述重构第一子编码单元的方法,根据第二QP确定当前第一子编码单元的第二残差图像,能够更好的拟合当前第一子编码单元的特性,使得第二残差图像失真较小,从而提升重构子编码单元的还原度。当使用该还原度较高的重构子编码单元对后续第一子编码单元进行预测时,能够提升预测的准确度。
上文主要以CU包含一个PU或者TU为例对本申请实施例的视频编码做出说明,可以理解的是,在实际应用中,还可以将CU划分为多个PU或者TU,本申请实施例对此不进行限制。并且,在将CU划分为多个PU或TU时,也可使用LCU的第一QP计算各个PU或者TU的率失真值,进而确定CU划分为PU或TU的划分模式和预测模式,确定PU或TU划分模式和预测模式的具体流程可参见上文,这里不再赘述。
上述主要从视频编码装置工作过程的角度对本申请实施例提供的方案进行了介绍。可以理解的是,视频编码装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对视频编码装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的视频编码装置的一种可能的结构示意图。视频编码装置700可以包括:确定模块701、划分模块702、编码模块703、重构模块704。确定模块701用于支持视频编码装置700执行图4、图6中的过程S401、S402、S403、S405、S406。划分模块702用于支持视频编码装置700执行图4、图6中的过程S404。编码模块703用于支持视频编码装置700执行图4、图6中的过程S407。重构模块,用于支持视频编码装置700执行图6中的过程S601。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图8为本申请实施例提供的一种视频编码装置的组成示意图,视频编码装置800可以包括至少一个处理器801、通信接口802、存储器803和总线804。
其中,处理器801是视频编码装置800的控制中心,可以是一个处理器,也可以是多个处理元件的统称。在具体的实现中,作为一种实施例,处理器801可以包括一个或多个中央处理单元(Central Processing Unit,CPU),例如图8中所示的CPU0和CPU1。处理器801也可以是专用集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(DigitalSignal Processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable GateArray,FPGA)组成的集成电路集合。
其中,以处理器801是一个或多个CPU为例,处理器801可以通过运行或执行存储在视频编码装置800中的存储器803内的软件程序,以及调用存储在存储器803内的数据,执行视频编码装置800的各种功能。
在具体实现中,作为一种实施例,视频编码装置800可以包括多个处理器,例如图8中所示的2个处理器801。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在本申请实施例中,处理器801主要用于根据编码单元的第一QP确定该编码单元的目标编码模式,后续,在对目标编码模式下的每一第一子编码单元进行编码时,采用单个第一子编码单元自身的第二QP编码单个第一子编码单元。
存储器803可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器803可以是独立存在,通过总线804与处理器801相连接。存储器803也可以和处理器801集成在一起。
其中,存储器803可以包括程序存储区,用于存储执行本申请方案的程序指令,并由处理器801来控制执行。此外,存储器803还可以包括数据存储区,用于缓存视频编码装置800的相关数据,以及执行本申请实施例提供的视频编码方法过程中产生的中间数据。
通信接口802,用于与其他设备或通信网络通信,如以太网,无线接入网(RadioAccess Network,RAN),无线局域网(Wireless Local Area Networks,WLAN)等。通信接口802可以包括接收单元实现接收功能,以及发送单元实现发送功能。在本申请实施例中通信接口802可用于向视频解码设备传输编码后的编码单元。
总线804,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图8中示出的设备结构并不构成对视频编码装置800的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令相关的硬件完成,相应的,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质可以包括存储器803。如此,程序指令可以存储于计算机可读存储介质中。其中,计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在上述计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。