CN107592547B - 一种基于hevc压缩域的运动感知图提取方法 - Google Patents
一种基于hevc压缩域的运动感知图提取方法 Download PDFInfo
- Publication number
- CN107592547B CN107592547B CN201710767176.3A CN201710767176A CN107592547B CN 107592547 B CN107592547 B CN 107592547B CN 201710767176 A CN201710767176 A CN 201710767176A CN 107592547 B CN107592547 B CN 107592547B
- Authority
- CN
- China
- Prior art keywords
- block
- pixels
- motion vector
- adjacent
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种基于HEVC压缩域的运动感知图提取方法,输入一帧已编码帧的编码信息;全局运动检测,判断是否有全局运动;计算运动矢量幅值,并以4×4像素块为基本单位建立运动矢量幅值图;运动矢量幅值空间中值滤波;基于块尺寸的幅值滤波;基于Skip模式的幅值滤波;更新Intra模式CU的运动矢量幅值;对运动矢量幅值图进行膨胀处理,保存膨胀后的感知图给下一P帧参考;根据前一帧是否为P帧来决定是否进行基于时间域上的运动矢量幅值滤波;根据权重值生成当前P帧的运动感知图。本发明充分利用了HEVC编码过程中产生的编码信息,能够有效的提取单目标或者多目标的运动区域,相比像素域的处理方法极大的减少了计算复杂度。
Description
技术领域
本发明涉及数字视频编码领域,具体涉及一种基于HEVC压缩域的运动感知图提取方法。
背景技术
随着视频信息技术的快速发展,高清1080P(1920×1080)视频已经普及,超高清4K(3840×2160)视频正逐渐进入我们的生活和工作。为了获得高效的视频编码效率,国际标准化组织ITU-T的视频编码专家组 (VCEG)和ISO/IEC的运动图像专家组(MPEG)于2013年共同推出了新一代的高效率视频编码标准(HEVC)。与上一代编码标准H.264相比, HEVC采用了更为先进的编码技术,在相同视频图像质量的条件下可以节约50%左右的视频码流。
为了灵活有效地编码视频图像,HEVC采用了新的处理单元划分机制 (见G.J.Sullivan,J.R.Ohm,W.J.Han,and T.Wiegand,Overview of the high efficiencyvideo coding(HEVC)standard,即“高效率视频编码标准概述”,IEEE Transactions onCircuits and Systems for Video Technology,vol.22, no.12,pp.1649-1668,Dec.2012),包括编码单元(CU)、预测单元(PU) 和变换单元(TU)。这种划分机制有利于编码器根据视频图像内容特点自适应选择最佳的划分方式。在HEVC中,一帧视频图像被划分成多个不同尺寸的正方形CU进行编码,其尺寸可以为64×64、32×32、16×16或8×8,每个CU又被进一步划分为一个或多个PU进行预测,PU的预测模式可以为帧内预测模式(Intra模式)或帧间预测模式(Inter模式),同一个CU 下的PU预测模式相同。PU的帧间预测模式包括Skip(PU的Skip模式不会对残差进行编码,划分方式为2N×2N)、Merge、2N×2N、N×N、N×2N、 2N×N、2N×nU、2N×nD、nL×2N和nR×2N。若CU的尺寸为8×8时,不进行N×N、2N×nU、2N×nD、nL×2N和nR×2N的PU划分方式。对于一个32×32尺寸的CU,若其采用Inter编码模式,则它的PU划分方式可为以下八种情况之一:一个32×32的PU、四个16×16的PU、左右各一个 16×32的PU、上下各一个32×16的PU、上方32×8与下方32×24的PU、上方32×24与下方32×8的PU、左边8×32与右边24×32的PU、左边24×32 与右边8×32的PU。在Intra编码模式下,每个PU没有运动矢量;在Inter 编码模式下,每个PU都有运动矢量,其中运动矢量幅值的单位为四分之一像素位移。
虽然视频编码的数据压缩效率已经不断提升,然而在很多实际应用过程中,视频编码系统依然存在网络带宽、存储容量和计算性能等资源受限制的问题,在这样的情况下,优先保证人眼的主观视频质量尤为重要。现有的视频编码标准本身都没有涉及感兴趣区域编码,因此基于感兴趣区域的视频编码方法是数字视频编码领域的一个研究热点,然而其中的核心问题就是如何有效的提取出感兴趣的区域。申请号为201710000884.4的专利采用像素域的帧间差分法分离出运动区域与静止区域,在HEVC上实现了感兴趣区域的编码。申请号为201110161017.1的专利利用H.264压缩域产生的运动矢量建立4×4像素块的运动矢量场,然后求取运动矢量的幅度与相位,并利用宏块的分割与时空相关性建立MRF模型提取运动目标区域。申请号为20101015249.7的专利利用H.264在压缩域中获得的运动矢量建立概率分布函数,计算每个像素点的运动矢量值的时间相关性熵值并建立运动模型,利用视频图像亮度信息进行Mean-Shift和区域生长法得到空间域分割模型,采用边缘判定法将二者融合得到时空域运动感知模型。
上述方法主要是针对H.264的压缩域信息,不能完全适用于具有全新编码划分结构的HEVC。相比纹理和色彩信息,人眼视觉系统对运动的敏感度更高。因此,提取准确的运动感知图是实现HEVC感兴趣区域编码的关键。由于HEVC具有灵活的块划分机制,其压缩过程中产生的CU、PU 划分方式以及PU运动矢量等编码信息反映了视频图像运动的状态,可以用于快速、有效地提取运动感知图。
发明内容
为了根据视觉感兴趣区域合理分配HEVC编码的码率资源和计算资源,本发明主要针对背景区域基本静止的视频场景,提出了一种基于 HEVC压缩域的运动感知图提取方法,所述方法包括以下步骤:
(1)输入一帧已编码帧的编码信息
所述已编码帧为前向预测编码帧,即P帧,输入的编码信息包括其亮度分量子帧所有的CU尺寸、CU编码模式、PU划分方式以及4×4像素块水平和垂直方向上的运动矢量MVx和MVy。若CU的编码模式为帧内编码模式,即Intra模式,则将该CU所包含的4×4像素块的MVx和MVy都设为0,若CU的编码模式为帧间编码模式,即Inter模式,则该CU所包含的4×4像素块的MVx和MVy为所属PU的运动矢量。在HEVC编码过程中,最小的帧间预测PU尺寸为8×4和4×8,因此本发明中取运动矢量的基本粒度为4×4像素块,各种尺寸的帧间预测PU都可以用若干个具有相同运动矢量的4×4像素块来表示。
(2)全局运动检测
由于摄像机在拍摄视频的过程中可能存在全局的转动或者距离前景运动物体很近,导致视频画面存在全局运动或者运动范围较大,从而使人眼视觉难以获取到真正感兴趣的区域。为了能在有限的计算量下准确的检测出真正感兴趣的区域,需要检测出当前画面是否存在全局运动,具体的检测子步骤如下:
(2-1)对当前帧所有4×4像素块的运动矢量MVx和MVy由小到大分别进行排序,若当前帧4×4像素块的个数为奇数,则分别选取排在中间的数值作为水平方向的全局运动矢量值GMVx和垂直方向的全局运动矢量值 GMVy,若当前帧4×4像素块的个数为偶数,则分别选取中间两个数值的平均值作为GMVx和GMVy。
(2-2)用Weightlum来表示每个像素点的感知权重值,Weightlum∈[0, 255],取值越大表明运动越强,用Tgmv表示全局运动矢量阈值。若GMVx与GMVy都在[-Tgmv,Tgmv]之间,认为视频图像没有全局运动,则进行下一步,即从步骤(3)继续执行后面的步骤,计算当前帧每个像素点的 Weightlum。若GMVx与GMVy至少一个不在[-Tgmv,Tgmv]之间时,则认为视频图像存在全局运动或者运动范围很大,将当前帧每个像素点的Weightlum赋值为255,并结束当前帧的处理,跳到步骤(1)等待处理下一帧。Tgmv取值范围为[0,4],即小于等于一个像素位移,取值越大表明当前帧存在大范围运动且整体运动幅度越大。
(3)运动矢量幅值计算
物体的运动可以分解为水平方向和垂直方向两个分量,为了能更好的反映出物体运动的幅度,对当前帧所有4×4像素块根据从上到下从左到右的顺序按式(1)计算其运动矢量幅值MVamp,所有MVamp按顺序组成一幅二维的运动矢量幅值图,该图水平方向的幅值个数为当前帧水平方向上4×4 像素块的个数,垂直方向的幅值个数为当前帧垂直方向上4×4像素块的个数。
MVamp=|MVx|+|MVy| (1)
(4)运动矢量幅值滤波
为了减小噪声运动矢量对运动感知图生成的影响,以PU为单位对当前帧的运动矢量幅值进行滤波,具体步骤如下:
(4-1)对运动矢量幅值进行空间中值滤波
经过编码后的视频图像在静止的区域会存在一些噪声运动矢量,这些噪声相对孤立,而真正运动的物体是以区域的形式在图像中表现出来,因此本发明利用相邻PU块的运动矢量信息将非真正运动区域的噪声运动矢量滤除。
选取当前PU左上角4×4像素块的运动矢量幅值为当前PU的运动矢量幅值,记作MVpu。根据当前帧PU的最终划分形式,以PU为单位对当前帧的运动矢量幅值进行空间中值滤波:若当前PU不在图像边界,则选取与当前PU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为中值滤波参考块,并获取这四个参考块的MVamp,分别标记为MVampl、MVampu、MVampr、MVampd。将这四个参考块的运动矢量幅值与MVpu进行排序,选取中间值作为当前PU中所有4×4像素块的运动矢量幅值。
若当前PU块位于图像的边界且非四个顶角处,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻的4×4像素块中存在的三个4×4像素块作为参考块,将这三个参考块的运动矢量幅值进行排序选取中间值作为当前PU中所有4×4像素块的运动矢量幅值。
若当前PU块位于图像的顶角处,则选取当前PU左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻4×4像素块中存在的两个4×4像素块作为参考块,将这两个参考块的运动矢量幅值与MVpu进行排序,选取中间值作为当前PU中所有4×4 像素块的运动矢量幅值。
(4-2)基于块尺寸的幅值滤波
采用(4-1)中的滤波方式可以将周围运动矢量幅值为0的非0运动矢量噪声滤掉,但依然存在区域性幅值较小的运动矢量噪声,这些噪声不能表示真实的运动目标。根据HEVC编码特性,尺寸较大的块所包含图像的运动活跃性相对较小,因此本专利利用编码块的尺寸进一步滤波。
利用每个PU所属CU的尺寸对每个PU的4×4像素块按式(2)进行基于块尺寸的运动矢量幅值滤波,式中CUsize表示所属CU的尺寸;T64、T32、 T16、T8分别表示CUsize为64×64、32×32、16×16、8×8时的运动矢量幅值滤波阈值,三者关系需满足式(3),且T64∈[1,8]、T32∈[1,6]、T16∈[1,4]、 T8∈[0,2]。
T64≥T32≥T16≥T8 (3)
(4-3)基于Skip模式的幅值滤波
运动显著区域的PU其预测模式通常不会选择Skip模式,当PU的预测方式为Skip模式时它会选取相邻已有的运动矢量来作为自身运动矢量,如果只对Skip模式自身的运动矢量进行处理,这样的区域也会被判定为运动区域。基于这样的特性分析,本发明利用相邻PU的预测模式信息对这部分噪声进行滤除。
对于所有预测模式为Skip模式的PU进行运动矢量幅值滤波:若当前 PU为位于图像边界PU,则将所包含4×4像素块的运动矢量幅值直接设为 0。若当前PU不在图像边界,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为Skip模式PU参考块,并统计这四个参考块所在PU的编码模式为Skip模式的个数Numskip,对当前PU中所包含的4×4像素块按式(4)更新MVamp,其中Tskip为基于Skip 模式的幅值滤波阈值,Tskip∈[2,4]。
(5)更新Intra模式CU的运动矢量幅值
HEVC在进行预测时会根据率失真代价来选择最佳的编码模式,对于一些帧间预测率失真代价较大的运动区域,也会存在Intra模式的CU,而这部分同样需要成为感知图的一部分。本发明利用相邻4×4像素块的编码信息来判断每个Intra模式的CU是否位于运动区域,以及更新其运动矢量幅值。
由步骤(4-3)得到了滤波后运动矢量幅值图,对所有4×4像素块的非零运动矢量幅值按从小到大进行排序,若统计的个数为奇数,则取中间值作为Intra模式CU运动矢量幅值参考值,并记为MVIntra;若统计的个数为偶数,则选取中间两数的平均值作为MVIntra。
对每个Intra模式CU,若该CU不在图像边界,则选取当前CU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为 Intra模式CU参考块。若当前Intra模式CU位于帧的边界且非顶角处,则选取当前CU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻 4×4像素块中存在的三个4×4像素块作为参考块。若当前Intra模式的CU 位于帧的顶角处,则选取当前CU左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻4×4像素块中存在的两个4×4像素块作为参考块。
统计参考块中运动矢量幅值大于Tamp的个数Tnum1以及参考块中对应 CU的编码模式为Intra模式的个数Tnum2,并计算Tnum1与Tnum2的和,记为 Tnum,其中Tamp∈[0,8]。当前CU为非边界CU时,若Tnum值大于Tintra,则将当前CU下所有4×4像素块的MVamp设为MVIntra,否则设为0,其中 Tintra∈[0,3]。当前CU为边界CU时,若Tnum大于Tintra2,则将当前CU 下所有4×4像素块的MVamp设为MVIntra,否则设为0,其中Tintra2∈[0,1]。
(6)运动矢量幅值图的膨胀
对于连续运动的物体,其在下一帧的位置区域会与当前帧有一定的变化,因此为了能更好的给下一帧编码作参考,当前帧的感知图需要尽量包括下一帧的运动区域。本发明对当前帧的运动矢量幅值图进行非零运动矢量幅值膨胀,每个4×4像素块得到膨胀后的MVamp,具体方法如下:
对当前帧中的每个4×4像素块,若其MVamp不为0,则该块在当前步膨胀之后的MVamp为膨胀前的MVamp,即保持不变,否则选取当前块及其左上方、上方、右上方、左方、右方、左下方、下方和右下方相邻且存在的4×4像素块组成运动矢量幅值膨胀参考块,统计这些参考块中MVamp大于0的个数NZamp,若NZamp小于Texp,则膨胀之后的MVamp仍为0,否则先获取这些参考块中最小且非0的MVamp,记为MinMVamp,再将膨胀后的 MVamp设置为MinMVamp,其中Texp∈[1,3],取值越小膨胀效果越显著。
(7)基于时间域的运动矢量幅值滤波
前面的滤波过程主要是在空域上进行滤波,仍然存在着时域上的运动矢量噪声,由于物体的运动是存在惯性的,即如果当前帧的某一块区域存在运动,那么上一帧相应块的邻近区域也会存在着运动。本发明利用相邻帧之间的相关性滤除时间域上的运动矢量噪声。
由步骤(6)获取到了膨胀后的运动矢量幅值图,若当前帧的前一帧不为P帧则不进行时间域的滤波操作,跳到下一步,否则按以下方法进行处理:
对于当前帧的每个4×4像素块,若其运动矢量幅值为0,则滤波之后的运动矢量幅值仍为0,否则先选取当前4×4像素块在前一P帧膨胀后的运动矢量幅值图中相同位置4×4像素块,以及此位置左上方、上方、右上方、左方、右方、左下方、下方、右下方相邻且存在的4×4像素块组成时间域滤波参考块,接着统计参考块中运动矢量幅值大于0的个数,记为Ampnum,最后对当前4×4像素块的运动矢量幅值按照式(5)进行更新。
(8)运动感知图生成
经过上一步的处理后对当前帧运动矢量幅值图中的非零运动矢量幅值进行统计,选取最大值作为感知图阈值MVthr,利用MVthr和每个4×4像素块的MVamp对当前帧每个像素点的感知权重值Weightlum进行设置,若 MVthr大于4,按照式(6)计算得到;若MVthr小于等于4,按照式(7)计算得到。每个像素的Weightlum最终组成当前帧的运动感知图。
本发明的技术构思为:首先从HEVC压缩域中获取P帧的运动矢量、编码模式、划分方式、CU尺寸等编码信息,通过运动矢量判断当前帧是否存在全局运动,并对当前帧的运动矢量求取幅值得到运动矢量幅值图;接着利用CU的尺寸、PU的划分信息与编码模式对运动矢量幅值进行滤波以及进行Intra模式CU的运动矢量幅值处理;然后对运动矢量幅值图进行膨胀;最后利用相邻帧的相关性进行时间域的运动矢量幅值滤波,得到当前帧的运动感知图。
与现有技术相比,本发明具有以下有益效果:
本发明提出一种基于HEVC压缩域的运动感知图提取方法。该方法与现有技术相比,具有如下特点和优点:通过HEVC压缩域得到的运动矢量信息获取感兴趣区域;利用CU的尺寸、PU的划分方式与编码模式等编码信息对运动矢量幅值进行空域上的滤波,利用相邻帧的相关性进行时域上的滤波,去除了非感兴趣区域上产生的运动噪声。本发明充分利用了 HEVC编码过程中产生的编码信息,能够有效的提取单目标或者多目标的运动区域,相比像素域的处理方法极大的减少了计算复杂度。
附图说明
图1为本发明的方法流程图;
图2为本发明的中值滤波中PU不在图像边界的参考块与PU相对位置示意图;
图3为本发明的中值滤波中PU在图像边界的参考块与PU相对位置示意图;
图4为本发明的实施例中BasketballDrill序列第17帧原始帧(a)、分割图(b)、感知图(c)对比;
图5为本发明的实施例中BasketballDrill序列第22帧原始帧(a)、分割图(b)、感知图(c)对比。
具体实施方式
下面结合实施例和附图来详细描述本发明,但本发明并不仅限于此。
本发明采用编译工具为Visual Studio2012编译器,HEVC编码软件为官方参考软件X265_1.8,处理器为Inter-Core-i5-4590@3.30GHz。X265编码器的配置如下:帧率30fps,没有B帧且I帧后面全是P帧,关闭wpp 功能,开启amp与rect划分方式。输入的视频源为HEVC测试序列 BasketballDrill序列,分辨率大小为832×480,背景是静止的且包含多个运动目标。
如图1所示,一种基于HEVC压缩域的运动感知图提取方法,包括以下步骤:
(1)输入一帧已编码帧的编码信息;
(2)全局运动检测;
(3)运动矢量幅值计算;
(4)运动矢量幅值滤波;
(5)更新Intra模式CU的运动矢量幅值;
(6)动矢量幅值图的膨胀;
(7)基于时间域的运动矢量幅值滤波;
(8)运动感知图生成;
步骤(1)具体包括:
当前编码帧类型为P帧,获取当前帧亮度分量子帧所有的CU尺寸、 CU编码模式、PU划分方式以及4×4像素块水平和垂直方向上的运动矢量 MVx和MVy。若CU的编码模式为帧内编码模式,即Intra模式,则将该 CU所包含的4×4像素块的MVx和MVy都设为0,若CU的编码模式为帧间编码模式,即Inter模式,则将该CU所包含的4×4像素块的MVx和MVy为所属PU的运动矢量。
步骤(2)具体包括:
(2-1)对当前帧所有4×4像素块的运动矢量MVx和MVy由小到大分别进行排序,若当前帧4×4像素块的个数为奇数,则分别选取排在中间的数值作为水平方向的全局运动矢量值GMVx和垂直方向的全局运动矢量值 GMVy,若当前帧4×4像素块的个数为偶数,则分别选取中间两个数值的平均值作为GMVx和GMVy。
(2-2)用Weightlum来表示每个像素点的感知权重值,其取值范围为 [0,255]。用Tgmv表示全局运动矢量阈值。若GMVx与GMVy都在[-Tgmv, Tgmv]之间,认为视频图像没有全局运动,则进行下一步,即从步骤(3) 继续执行后面的步骤,计算当前帧每个像素点的Weightlum。若GMVx与 GMVy至少一个不在[-Tgmv,Tgmv]之间时,则认为视频图像存在全局运动或者运动范围很大,则将当前帧每个像素点的Weightlum赋值为255,并结束当前帧的处理,跳到步骤(1)等待处理下一帧。Tgmv取值范围为[0,4],此处取值为2。
步骤(3)具体包括:
对当前帧所有4×4像素块的运动矢量根据从上到下从左到右的顺序按式(1)计算其运动矢量幅值MVamp,所有MVamp按顺序组成一幅二维的运动矢量幅值图,该图水平方向的幅值个数为当前帧水平方向上4×4像素块的个数,垂直方向的幅值个数为当前帧垂直方向上4×4像素块的个数。
MVamp=|MVx|+|MVy| (1)
步骤(4)是对当前帧所有4×4像素块的运动矢量幅值进行滤波,具体包括以下步骤:
(4-1)对运动矢量幅值进行空间中值滤波,具体方法如下:
选取当前PU左上角4×4像素块的运动矢量幅值为当前PU的运动矢量幅值,记作MVpu。根据当前帧PU的最终划分形式,以PU为单位对当前帧的运动矢量幅值进行空间中值滤波:若当前PU不在图像边界,则选取与当前PU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为中值滤波参考块,并获取这四个参考块的MVamp,分别标记为MVampl、MVampu、MVampr、MVampd。将这四个参考块的运动矢量幅值与MVpu进行排序,选取中间值作为当前PU中所有4×4像素块的运动矢量幅值。
若当前PU块位于图像的边界且非四个顶角处,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻的4×4像素块中存在的三个4×4像素块作为参考块,如图3所示,例如当前PU位于图像左侧边界时,选取当前PU中左上角4×4像素块上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4 像素块,左下角4×4像素块下侧的相邻的4×4像素块作为参考块。将这三个参考块的运动矢量幅值进行排序选取中间值作为当前PU中所有4×4像素块的运动矢量幅值。
若当前PU块位于图像的顶角处,则选取当前PU左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻4×4像素块中存在的两个4×4像素块作为参考块,如图3所示,例如当前PU位于图像左上角时,选取当前PU中右上角4×4像素块右侧相邻的4×4像素块与左下角4×4像素块下侧相邻的4×4像素块作为参考块。将这两个参考块的运动矢量幅值与MVpu进行排序,选取中间值作为当前PU中所有4×4像素块的运动矢量幅值。
(4-2)基于块尺寸的幅值滤波,具体方法如下:
利用每个PU所属CU的尺寸对每个PU下的4×4像素块按式(2)进行基于块尺寸的运动矢量幅值滤波,式中CUsize表示当前CU的尺寸;T64、 T32、T16、T8分别表示CUsize为64×64、32×32、16×16、8×8时的滤波阈值,T64取值范围为[1,8],此处取值为4;T32取值范围为[1,6],此处取值为2; T16取值范围为[1,4],此处取值为1;T8取值范围为[0,2],此处取值为0,且三者关系需满足式(3)。
T64≥T32≥T16≥T8 (3)
(4-3)基于Skip模式的运动矢量幅值滤波,具体方法如下:
对于所有预测模式为Skip模式的PU进行运动矢量幅值滤波:若当前 PU为位于图像边界PU,则将所包含4×4像素块的运动矢量幅值直接赋值为0。若当前PU不在图像边界,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为Skip模式PU参考块,并统计这四个参考块所在PU的编码模式为Skip模式的个数Numskip,对当前PU中所包含的4×4像素块按式(4)更新MVamp,其中Tskip为基于Skip 模式的幅值滤波阈值,Tskip取值范围为[2,4],此处取值为3。
步骤(5)具体包括:
由步骤(4-3)得到了滤波后运动矢量幅值图,对所有4×4像素块的非零运动矢量幅值进行由小到大排序,若统计的个数为奇数时,取中值作为Intra模式运动矢量幅值的参考值,并记作MVIntra;若统计的个数为偶数时选取中间两数平均值作为MVIntra。
对每个Intra模式CU,若该CU不在图像边界,则选取当前CU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为 Intra模式CU参考块。若当前Intra模式CU位于帧的边界且非顶角处,则选取当前CU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻 4×4像素块中存在的三个4×4像素块作为参考块。若当前Intra模式的CU 位于帧的顶角处,则选取当前CU左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻4×4像素块中存在的两个4×4像素块作为参考块。
统计参考块运动矢量幅值大于Tamp的个数Tnum1与参考块对应CU的编码模式为Intra模式的个数Tnum2,并计算Tnum1与Tnum2的和,记作为Tnum,其中Tamp的取值范围为[0,8],此处取值为4。当前CU为非边界CU时,若Tnum值大于Tintra,则将当前CU下所有4×4像素块的MVamp设为MVIntra,否则设为0,其中Tintra的取值范围为[0,3],此处取值为1。当前CU为边界CU时,若Tnum大于Tintra2,则将当前CU下所有4×4像素块的MVamp设为MVIntra,否则设为0,其中Tintra2的取值范围为[0,1],此处取值为0。
步骤(6)具体包括:
对当前帧中的每个4×4像素块,若其MVamp不为0,则该块在当前步膨胀之后的MVamp为膨胀前的MVamp,即保持不变,否则选取当前块及其左上方、上方、右上方、左方、右方、左下方、下方和右下方相邻且存在的4×4像素块组成运动矢量幅值膨胀参考块,统计这些参考块中MVamp大于0的个数NZamp,若NZamp小于Texp,则膨胀之后的MVamp仍为0,否则先获取这些参考块中最小且非0的MVamp,记为MinMVamp,再将膨胀后的 MVamp设置为MinMVamp,其中Texp∈[1,3],此处取值为1。
步骤(7)具体包括:
由步骤(6)获取到了膨胀后的运动矢量幅值图,若当前帧的前一帧不为P帧则不进行时间域的滤波操作,跳到下一步,否则按以下方法进行处理:
对于当前帧的每个4×4像素块,若其运动矢量幅值为0,则滤波之后的运动矢量幅值仍为0,否则先选取当前4×4像素块在前一P帧膨胀后的运动矢量幅值图中相同位置4×4像素块,以及此位置左上方、上方、右上方、左方、右方、左下方、下方、右下方相邻且存在的4×4像素块组成时间域滤波参考块,接着统计参考块中运动矢量幅值大于0的个数,记为Ampnum,最后对当前4×4像素块的运动矢量幅值按照式(5)进行更新。
步骤(8)具体包括:
经过上一步的处理后对当前帧运动矢量幅值图中的非零运动矢量幅值进行统计,选取最大值作为感知图阈值MVthr,利用MVthr和每个4×4像素块的MVamp对当前帧每个像素点的感知权重值Weightlum进行设置,若 MVthr大于4,按照式(6)计算得到;若MVthr小于等于4,按照式(7)计算得到。每个像素的Weightlum最终组成当前帧的运动感知图。如图4、图5分别为BasketballDrill序列第17帧和22帧原始视频图像、分割图与感知图的对比,感知图中亮度越高的区域表示物体运动的幅度越大。
。
Claims (10)
1.一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述方法包括以下步骤:
步骤1:输入一帧已编码帧的编码信息,所述已编码帧为前向预测编码帧,所述编码信息包括已编码帧的亮度分量子帧所有的CU尺寸、CU编码模式、PU划分方式以及4×4像素块在水平和垂直方向上的运动矢量MVx和MVy;若CU的编码模式为帧内编码模式,则将该CU所包含的4×4像素块的MVx和MVy都设为0,若CU的编码模式为帧间编码模式,则该CU所包含的4×4像素块的MVx和MVy为所属PU的运动矢量;
步骤2:对当前帧的所有4×4像素块的运动矢量MVx和MVy按从小到大分别进行排序,利用排序结果对已编码帧进行全局运动检测,判定当前帧是否存在全局运动;若存在全局运动,则结束当前帧的处理,并跳到步骤1等待处理下一帧,否则进行下一步;
步骤3:按从上到下从左到右的顺序计算当前帧所有4×4像素块的运动矢量幅值MVamp,其中MVamp=|MVx|+|MVy|,所有MVamp按顺序组成一幅二维的运动矢量幅值图;
步骤4:以PU为单位对当前帧的运动矢量幅值进行空间中值滤波、基于块尺寸的幅值滤波和基于Skip模式的幅值滤波,当前帧所有4×4像素块得到滤波后的MVamp;
步骤5:更新Intra模式CU的运动矢量幅值,得到更新后的MVamp;
步骤6:对当前帧的运动矢量幅值图进行非零运动矢量幅值膨胀,所有4×4像素块得到膨胀后的MVamp;
步骤7:若当前帧的前一帧为前向预测编码帧,则进行基于时间域的运动矢量幅值滤波,每个4×4像素块得到滤波后的MVamp,否则进行下一步;
步骤8:对当前帧运动矢量幅值图中的非零MVamp进行统计,选取最大值作为感知图阈值MVthr,利用MVthr和每个4×4像素块的MVamp对当前帧每个像素点的感知权重值Weightlum进行设置,每个像素的Weightlum最终组成当前帧的运动感知图。
2.根据权利要求1所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤2中,判定当前帧是否存在全局运动包括以下子步骤:
步骤2.1:获取当前帧所有4×4像素块的水平方向的全局运动矢量值GMVx和垂直方向的全局运动矢量值GMVy:若当前帧所有4×4像素块的个数为奇数,则分别选取排在中间的数值作为水平方向的全局运动矢量值GMVx和垂直方向的全局运动矢量值GMVy,若当前帧的所有4×4像素块的个数为偶数,则分别选取中间两个数值的平均值作为GMVx和GMVy;
步骤2.2:以Weightlum表示当前帧每个像素点的感知权重值,Weightlum∈[0,255],Tgmv表示全局运动矢量阈值;若GMVx与GMVy都在[-Tgmv,Tgmv]之间,则判定当前帧没有全局运动,进行步骤3;若GMVx与GMVy中至少一个不在[-Tgmv,Tgmv]之间,则判定当前帧存在全局运动,将当前帧每个像素点的运动感知权重Weightlum设置为255,并跳到步骤1等待处理下一帧。
3.根据权利要求2所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤2.2中,Tgmv的取值范围为[0,4]。
4.根据权利要求1所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤4包括以下子步骤:
步骤4.1:选取当前PU左上角4×4像素块的运动矢量幅值作为当前PU的运动矢量幅值,记作MVpu;根据当前帧PU的最终划分形式,以PU为单位对每个PU进行空间中值滤波:
若当前PU不在图像边界,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为中值滤波参考块,获取这四个参考块的MVamp,分别标记为MVampl、MVampu、MVampr、Mvampd,将这四个参考块的运动矢量幅值与MVpu进行排序,选取中间值作为当前PU中所有4×4像素块的运动矢量幅值,并进行下一步;
若当前PU块位于图像的边界且非四个顶角处,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻、右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻的4×4像素块中存在的三个4×4像素块作为参考块,将这三个参考块的运动矢量幅值进行排序选取中间值作为当前PU中所有4×4像素块的运动矢量幅值,并进行下一步;
若当前PU位于图像的顶角处,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻、右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻的4×4像素块中存在的两个4×4像素块作为参考块,将这两个参考块的运动矢量幅值与MVpu进行排序,选取中间值作为当前PU中所有4×4像素块的运动矢量幅值,并进行下一步;
步骤4.2:利用每个PU所属CU的尺寸对每个PU的4×4像素块进行基于块尺寸的幅值滤波,
得到其中,CUsize表示所属CU的尺寸,T64、T32、T16、T8分别表示CUsize为64×64、32×32、16×16、8×8时的运动矢量幅值滤波阈值;
步骤4.3:对于所有预测模式为Skip模式的PU进行运动矢量幅值滤波:若当前PU位于图像边界,则将其所包含的所有4×4像素块的运动矢量幅值直接设为0;若当前PU不在图像边界,则选取当前PU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为Skip模式PU参考块,并统计这四个参考块所在PU的编码模式为Skip模式的个数Numskip,对当前PU中所包含的4×4像素块按对MVamp进行更新,其中,Tskip为基于Skip模式的幅值滤波阈值。
5.根据权利要求4所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤4.2中,T64≥T32≥T16≥T8,且T64∈[1,8]、T32∈[1,6]、T16∈[1,4]、T8∈[0,2];所述步骤4.3中,Tskip∈[2,4]。
6.根据权利要求1所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤5的非零运动矢量幅值膨胀包括以下子步骤:
步骤5.1:对经过步骤4滤波的4×4像素块的非零运动矢量幅值按从小到大进行排序,若统计的非零运动矢量幅值个数为奇数,则选取中间值作为Intra模式CU的运动矢量幅值参考值,记为MVIntra,若统计的个数为偶数,则选取中间两数的平均值作为MVIntra;
步骤5.2:对每个Intra模式CU,若该CU不在图像边界,则选取当前CU中左上角4×4像素块左侧相邻和上侧相邻的4×4像素块,右上角4×4像素块右侧相邻的4×4像素块以及左下角4×4像素块下侧相邻的4×4像素块作为Intra模式CU参考块,并进行下一步;若当前Intra模式CU位于帧的边界且非顶角处,则选取当前CU左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻4×4像素块中存在的三个4×4像素块作为参考块,并进行下一步;若当前Intra模式的CU位于帧的顶角处,则选取当前CU左上角4×4像素块左侧相邻和上侧相邻,右上角4×4像素块右侧相邻以及左下角4×4像素块下侧相邻4×4像素块中存在的两个4×4像素块作为参考块,并进行下一步;
步骤5.3:统计参考块中运动矢量幅值大于Tamp的个数Tnum1以及参考块中对应CU的编码模式为Intra模式的个数Tnum2,并计算Tnum1与Tnum2的和,记为Tnum,其中Tamp∈[0,8];当前CU为非边界CU时,若Tnum值大于Tintra,则将当前CU下所有4×4像素块的MVamp设为MVIntra,否则设为0,其中Tintra∈[0,3];当前CU为边界CU时,若Tnum大于Tintra2,则将当前CU下所有4×4像素块的MVamp设为MVIntra,否则设为0,其中Tintra2∈[0,1];
步骤5.4:重复执行步骤5.2至5.3,更新所有Intra模式CU的MVamp。
7.根据权利要求6所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤5.3中,Tamp∈[0,8],Tintra∈[0,3],Tintra2∈[0,1]。
8.根据权利要求1所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤6中,对当前帧中的每个4×4像素块,若其MVamp不为0,则该块在当前步膨胀之后的MVamp为膨胀前的MVamp,否则选取当前块及其左上方、上方、右上方、左方、右方、左下方、下方和右下方相邻且存在的4×4像素块组成运动矢量幅值膨胀参考块,统计这些参考块中MVamp大于0的个数NZamp,若NZamp小于Texp,则膨胀之后的MVamp仍为0,否则先获取这些参考块中最小且非0的MVamp,记为MinMVamp,再将膨胀后的MVamp设置为MinMVamp,其中Texp∈[1,3]。
9.根据权利要求1所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤7中,对于当前帧的每个4×4像素块,若其运动矢量幅值为0,则滤波之后的运动矢量幅值仍为0,否则先选取当前4×4像素块在前一帧膨胀后的运动矢量幅值图中相同位置4×4像素块,以及此位置左上方、上方、右上方、左方、右方、左下方、下方、右下方相邻且存在的4×4像素块组成时间域滤波参考块,接着统计参考块中运动矢量幅值大于0的个数,记为Ampnum,最后对当前4×4像素块的运动矢量幅值按进行更新。
10.根据权利要求1所述的一种基于HEVC压缩域的运动感知图提取方法,其特征在于:所述步骤8中,
当MVthr大于4,则
当MVthr小于等于4,则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710767176.3A CN107592547B (zh) | 2017-08-31 | 2017-08-31 | 一种基于hevc压缩域的运动感知图提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710767176.3A CN107592547B (zh) | 2017-08-31 | 2017-08-31 | 一种基于hevc压缩域的运动感知图提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107592547A CN107592547A (zh) | 2018-01-16 |
CN107592547B true CN107592547B (zh) | 2019-05-31 |
Family
ID=61051633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710767176.3A Active CN107592547B (zh) | 2017-08-31 | 2017-08-31 | 一种基于hevc压缩域的运动感知图提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107592547B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108419081B (zh) * | 2018-03-28 | 2020-06-05 | 佛山市顺德区中山大学研究院 | 一种基于特征的帧间编码方法 |
CN112203092B (zh) * | 2020-09-27 | 2024-01-30 | 深圳市梦网视讯有限公司 | 一种全局运动场景的码流分析方法、系统及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811728A (zh) * | 2015-04-23 | 2015-07-29 | 湖南大目信息科技有限公司 | 一种视频内容自适应的运动搜索方法 |
CN105657215A (zh) * | 2015-12-29 | 2016-06-08 | 中山大学 | 一种基于压缩域特征的异常事件检测方法 |
CN105959611A (zh) * | 2016-07-14 | 2016-09-21 | 同观科技(深圳)有限公司 | 一种自适应的从h264到hevc的帧间快速转码方法及装置 |
-
2017
- 2017-08-31 CN CN201710767176.3A patent/CN107592547B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811728A (zh) * | 2015-04-23 | 2015-07-29 | 湖南大目信息科技有限公司 | 一种视频内容自适应的运动搜索方法 |
CN105657215A (zh) * | 2015-12-29 | 2016-06-08 | 中山大学 | 一种基于压缩域特征的异常事件检测方法 |
CN105959611A (zh) * | 2016-07-14 | 2016-09-21 | 同观科技(深圳)有限公司 | 一种自适应的从h264到hevc的帧间快速转码方法及装置 |
Non-Patent Citations (2)
Title |
---|
Moving object detection in the HEVC compressed domain for ultra-high-resolution interactive video;Johan De Praeter, Jan Van de Vyver;《2017 IEEE International Conference on Consumer Electronics (ICCE)》;20170330;全文 * |
基于块划分的HEVC运动目标分割方法;牛志国,梁久祯;《计算机工程与应用》;20150929;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107592547A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102119401B (zh) | 用于带状伪像检测的方法和设备 | |
CN103632352B (zh) | 一种噪声图像的时域降噪方法和相关装置 | |
US9743082B2 (en) | Apparatus for encoding and decoding image by skip encoding and method for same | |
JP5261376B2 (ja) | 画像符号化装置および画像復号化装置 | |
CN101175209B (zh) | 活动图像专家组视讯译码器可适性去区块滤波方法 | |
US8139883B2 (en) | System and method for image and video encoding artifacts reduction and quality improvement | |
TWI538487B (zh) | 螢幕視訊之預測編碼的方法與系統 | |
CN104539962A (zh) | 一种融合视觉感知特征的可分层视频编码方法 | |
CN101710993A (zh) | 基于块的自适应超分辨率视频处理方法及系统 | |
JP2012520025A (ja) | ビデオデータの動きベクトルを処理するためのシステムおよび方法 | |
CN101087368A (zh) | 测量压缩数字图像的mpeg噪声强度的方法和装置 | |
CN101325711A (zh) | 基于时空掩盖效应的自适应码率控制方法 | |
RU2009127749A (ru) | Сжатие и снятие сжатия изображения | |
US9883200B2 (en) | Method of acquiring neighboring disparity vectors for multi-texture and multi-depth video | |
JP2007060164A (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
CN110351554A (zh) | 用于视频编码的分割和模式决策的生成 | |
CN103096090A (zh) | 一种用于视频压缩中的编码块划分的方法 | |
CN109672896A (zh) | 利用深度信息的视频编码方法及装置 | |
CN107592547B (zh) | 一种基于hevc压缩域的运动感知图提取方法 | |
CN106878727A (zh) | 视频数据处理方法及装置 | |
CN106878754B (zh) | 一种3d视频深度图像帧内预测模式选择方法 | |
CN102984524A (zh) | 一种基于图层分解的视频编解码方法 | |
JP2007027980A (ja) | 復号装置および符号化装置 | |
CN106165425B (zh) | 利用深度信息的视频编码方法及装置 | |
CN109889838A (zh) | 一种基于roi区域的hevc快速编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |