具体实施方式
下文将结合附图参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
为了叙述的方便,下文中,使用的术语“编码单元”,又是也被称为“编码块”;术语“预测单元”,又是也被称为“预测块”;术语“帧内预测”,又是也被称为“帧内像素预测”;术语“帧间预测”,又是也被称为“帧间像素预测”。
图1图示根据本发明实施方式的视频编码方法100的流程图。该方法100可以包括如下步骤:
步骤S110,将输入图像按最大编码单元(MCU)进行划分,其中MCU的尺寸为128×128(尺寸单位为像素;下同)。
步骤S120,针对每个MCU,按照四叉树划分模式进一步子划分,得到至少一个编码单元(CU,CodingUnit)。划分过程中的最小分块尺寸为4×4。对于类似且不变的图像区域,编码单元可以是MCU。
步骤S130,按照子划分所得的编码单元CU对输入图像进行图像编码。可以以尺寸为128×128的MCU按照行扫描编码整个图像、按照列扫面编码整个图像、或者按照预设线路进行扫描。
现代视频编码技术一般会把视频的当前编码帧划(输入图像)划分成互不重合的编码单元,例如AVC/H.264或AVS1中的宏块(MB,macroblock)、HEVC/H.265或AVS2中的编码单元(CU)。为了适应于具体的视频内容,编码单元还可以进一步作子划分,仍称为编码单元、或者或称为编码子单元(CU)。
四叉树划分模式是现代视频编码技术的一项关键技术,其基本原理为将图像的二维区域按照四个象限进行递归分割,寻找针对该二维区域(例如MCU)的最佳划分方式,例如直到子划分的像素值满足一定条件为止。其基本思想是首先把一幅图象的MCU可以按照2N×2N,2N×N,N×2N,N×N等方式划分成不同区域,并记录各个子区域的编码代价;并对N×N的划分方式再进行进一步各种方式的划分,并记录其编码代价,按照这种方式递归地划分,直至遍历到4×4大小的划分,并比较各个划分区域的总的编码代价,选择代价最小的划分作为最终的划分方式。四叉树的划分模式多种多样,很多都是四叉树模式的派生。在HEVC/H.265国际标准中对于原始图像的划分就采用了一种四叉树划分模式。关于该四叉树划分模式的更多细节可以参考国际电信联盟远程通信标准化组织ITU-T所公布的H.265文档,标题为“Highefficiencyvideocoding”,可以从网址http://www.itu.int/rec/T-REC-H.265-201304-S获得。然而,应当理解,本发明的实施方式对于每个MCU的子划分可以采用HEVC/H.265国际标准中的四叉树方式,但可以不限于此。
图2图示了根据本发明一种实施方式的四叉树划分模式的图像划分示意图。如图2所示,在128×128的MCU尺寸下,对图像的划分或者子划分所得的CU的尺寸可以包括但不限于:4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、以及128×128。
根据本发明实施方式的视频编码方法,预设大的MCU尺寸,即128×128。这尤其适用于视频监控场景,充分考虑了室内室外不同监控场景的特殊性。传统的以AVC/H.264和HEVC/H.265为代表的视频编码方案针对的是广电或交互式应用等的视频压缩和传输。在这些视频编码标准中,明确限定了MCU的尺寸最大为64×64,这固然兼顾了计算复杂度,应用领域等因素,但对视频监控这样的特殊场景的图像编码缺乏考虑和支持。事实上,随着高清超高清视频监控市场的发展,硬件水平的提高和硬件成本的下降,更大MCU已经成为未来视频压缩标准的必选特征之一。
在一个实施方式中,在对于每个MCU进行子划分得到至少一个编码单元(CU)之后,方法100还可以包括帧内像素预测步骤。针对至少一个编码单元CU中的每个编码单元CU进行帧内像素预测,生成经预测的编码单元。在视频编码方法100中,帧内像素预测能够支持的预测单元的最大尺寸为64×64。
在一个实施方式中,在对于每个MCU进行子划分得到至少一个编码单元(CU)之后,方法100还可以包括帧间像素预测步骤。针对至少一个编码单元CU中的每个编码单元CU进行帧间像素预测,生成经预测的编码单元。在视频编码方法100中,帧间像素预测能够支持的预测单元的最大尺寸为128×128。
现代视频编码技术还可以采用帧内预测技术,其中利用视频信号的空间和时间冗余性来达到信息压缩的目的:在压缩当前的编码单元或编码子单元时,利用其周围已编码的像素信息对当前的编码单元或编码子单元中的像素值作预测。预测过程一般是使用某几种预先定义的预测算法在邻近像素的基础上,生成当前编码单元/子单元的一个预测像素块、或者称为预测单元。根据对率失真性能的评估,编码器选择效率最高的预测模式。
图3图示了根据本发明实施方式的一种帧内预测模式的示意图。如图3所示,帧内预测使用的邻域像素为当前编码块的上一行和左一列,像素数目至少是当前编码块的2倍,其中对于无法取得的像素可以进行边界像素扩展。在图3中,帧内像素预测能够支持的预测单元的最大尺寸为64×64,若M=N=64,则帧内像素预测需要考虑的领域像素的行和列都为128,其中M和N为帧内像素预测的预测单元的行尺寸和列尺寸。
进一步地,根据本发明实施方式的视频编码方法还可以支持空域可伸缩视频编码(SVC)形式的帧内预测。可以从基本层32×32尺寸的编码块按照插值滤波方法得到64×64的帧内预测块,该预测块以及邻域像素得到的预测块作为候选,来寻找最优预测。
本发明一种实施方式的帧间预测技术,可以支持预测单元的最大尺寸为128×128,并且可以支持128×128的分数像素内插。运动估计最大块尺寸为128×128,并可进行整像素分数像素的运动补偿预测。
在进行帧内或帧间预测时,将预测块的尺寸扩展到64×64像素或者128×128像素,可以使得视频监控场景下的大面积类似且不变的图像编码受益。
与帧内或帧间预测技术有关的编码端的具体操作包括:1)编码所使用的预测模式的索引;2)当前编码单元/子单元与预测像素块作差,得到残差块;3)对残差块做变换、量化、和熵编码。解码端的对应操作包括:1)解码预测模式的索引,根据索引得到预测模式,并计算相应的帧内预测块;2)熵解码变换系数、逆量化、逆变换得到残差块;3)相加预测块和残差块得到重建的像素块。
在一个实施方式中,在帧内像素预测并且/或者帧间像素预测的步骤之后,方法100还可以包括:将每个编码单元CU与针对其生成的经预测的编码单元作差,得到残差数据;以及对所述残差数据进行离散整数或非整数余弦变换(DCT),其中所述变换的变换核最大为64×64。根据本发明的实施方式,可以支持最大为64×64的离散余弦变换(DCT)。
在进行帧内预测或帧间预测编码以产生预测数据和残差数据之后,并且在进行包括DCT在内的任何变换(比如在4×4或8×8整数变换)以产生变换系数之后,可以执行变换系统的量化。量化一般是指对变换系数进行量化从而有可能减小用来数据量的过程,例如通过将高精度变换系数转换成有限数目的可能值。
在一个实施方式中,用来进行DCT变换的DCT矩阵形式如下:
其中N可以取值64,并且DCT变换系数可以取整数数据形式。
在一个实施方式中,在进行了帧内像素预测并且/或者帧间像素预测之后,方法100还可以包括对所述经预测的编码单元进行环路滤波,其中所述环路滤波可以以128×128大小的MCU为基本单元进行,以MCU所在的整行进行,或者以整帧图像进行。以128×128为单元,所有预测块和变换块边界都需进行滤波。在一个实施例中,128×128的环路滤波可以分成4个64×64的滤波按扫描顺序进行,以便节省带宽。
在一个实施方式中,环路滤波可以具体为对所述经预测的编码单元进行自适应环路滤波(ALF),其中所述自适应环路滤波可以以128×128大小的MCU为基本单元进行,以MCU所在的整行进行,或者以整帧图像进行。ALF可以按128×128的大小选择滤波参数,备选地,也可以选择64×64大小的自适应环路滤波。
用来预测当前编码单元/子单元的相邻像素由此前的编码单元/子单元解码重建而得到。由于压缩过程中信息的损伤,用这些有损伤的相邻像素预测产生的预测像素块也就包含了信息的损伤。为了减小这些损伤带来的影响,可以通过在用来在经预测的当前编码单元/子单元的像素上做滤波的方法提高压缩性能。
图4示出了根据根据本发明一种实施方式的用于编码和/或解码预测单元的示意图。如图4所示,给定当前预测单元PU,用x表示,则可以通过帧内预测(或者帧间)预测来首先获得预测PU,用x’表示。预测PU、x’然后可以被从当前PU、x中减去,产生PU残差,用e表示。通过对与CU相关联的PU残差、e进行分组而生成的CU残差然后可以通过变换进行变换,每次一个变换单元TU,产生变换域中的PU残差,用E表示。所述变换可以例如使用正方形或者非正方形的块变换。
PU残差、E然后可以通过量化器模块118进行量化,从而将高精度变换系数转换成有限数目的可能值。如应当理解的,量化是有损操作,并且量化损失通常无法恢复。
经量化的系数然后可以通过熵编解码模块120进行熵编解码,产生最后的压缩比特。应当注意,取决于所执行的编解码标准,以上描述的预测、变换、和量化可以针对任何视频数据块来执行,例如,针对CU的PU或TU。
为了促进时间和空间预测,还可采取经量化的变换系数E,并且利用逆量化模块122对其进行逆量化,从而产生经逆量化的变换系数E’。经逆量化的变换系数然后通过逆变换模块124进行逆变换,产生经重构的PU残差,用e’表示。经重构的PU残差、e’然后在时间上或在空间上被加入到相应的预测PU、x’,以形成经重构的PU,用x”表示。
可以在经重构的预测单元PU、x”上执行去块滤波(“DFB”)操作,以首先减少块效应。可以在完成针对经解码的图像的去块滤波操作之后有条件地执行样本自适应偏置(“SAO”)过程,这补偿经重构的像素与原始像素之间的像素值偏置。在一些实施例中,DBF操作和SAO过程都通过自适应环路滤波器功能来实现,该自适应环路滤波器功能可以通过环路滤波器模块126在经重构的PU之上有条件地执行。在一些实施例中,自适应环路滤波器函数最小化在输入和输出图像之间的编解码失真。在一些实施例中,环路滤波器模块126在图像间预测环路期间工作。如果经重构的图像是参考图像,则它们可以被存储在参考缓冲器128中用于将来的时间预测。
本领域技术人员将理解,在解码器处,可以执行如上所描述的过程的逆过程。
图5图示了根据本发明实施方式的一种视频编码的设备500的框图,该设备特别适用于视频监控场景。该设备500可以包括:MCU划分单元510,用于将输入图像按最大编码单元MCU进行划分,其中MCU的尺寸为128×128;CU划分单元520,用于针对每个MCU,按照四叉树划分模式进一步进行子划分,得到至少一个编码单元CU,其中,子划分过程中的最小分块尺寸为4×4;以及编码单元530,用于按照所述子划分所得的至少一个编码单元CU对所述输入图像进行编码。
在一个实施方式中,设备500还可以包括:帧内预测单元,用于针对所述至少一个编码单元CU中的每个编码单元CU进行帧内像素预测,生成经预测的编码单元,其中所述帧内像素预测支持的预测单元的最大尺寸为64×64。
在一个实施方式中,设备500还可以包括:帧间预测单元,用于针对所述至少一个编码单元CU中的每个编码单元CU进行帧间像素预测,生成经预测的编码单元,其中所述帧间像素预测支持的预测单元的最大尺寸为128×128。
在一个实施方式中,设备500还可以包括:残差获得单元,用于将所述每个编码单元CU与针对其生成的经预测的编码单元作差,得到残差数据;以及离散余弦变换单元,用于对所述残差数据进行离散整数或非整数余弦变换,其中所述变换的变换核最大为64×64。
在一个实施方式中,设备500还可以包括:环路滤波单元,用于对所述经预测的编码单元进行环路滤波,其中所述环路滤波可以以128×128大小的MCU为基本单元进行,以MCU所在的整行进行,或者以整帧图像进行。进一步地,环路滤波单元可以包括:自适应环路滤波单元,用于对所述经预测的编码单元进行自适应环路滤波,其中所述自适应环路滤波可以以128×128大小的MCU为基本单元进行,也可以在MCU行或整帧图像进行。
在现有的视频编解码方案中,最大编码单元的尺寸限制影响了某些高分辨率图像的编码效率。例如,在现有的较新的视频压缩技术中,最大编码单元(MCU)最大确定为64×64,这对某些超高清图、特别是视频监控场景,并不是很好的选择。
根据本发明的实施方式的视频编码的方法和设备,提供了一种特别适用于视频监控场景的视频编码方案,能够很好地兼顾视频监控场景中的大面积的类似且不变的区域、以及局部小图像的超高清的要求。同时,在算法复杂度和硬件实现成本方面也具有显著优势。
应当理解,附图中描绘为功能块的元件可以被实现为硬件、软件、或它们的组合。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
此外,本发明的实施方式可以被采用在诸如个人计算机、智能电话、或平板计算机等系统上。
已经出于示出和描述的目的给出了本发明的说明书,但是其并不意在是穷举的或者限制于所公开形式的发明。本领域技术人员可以想到很多修改和变体。在不脱离本发明精神的前提下,做出的所有修改和替换都将落入所附权利要求定义的本发明保护范围内。