帧间预测运动估计算法研究

合集下载

运动估计算法研究

运动估计算法研究

运动估计算法研究篇一前段时间,我接到一个任务,要研究运动估计算法在智能安防监控中的应用,这可把我折腾得够呛,但也让我对这算法有了不少新的认识。

一开始,我对运动估计算法的了解也就停留在书本上的那些理论知识,什么基于块匹配的算法、光流法之类的,感觉自己都懂,但真要动手实践,就发现完全不是那么回事。

我找了个安防监控的视频数据集,打算先从最基础的块匹配算法开始研究。

我坐在电脑前,打开代码编辑器,看着那一行行代码,就像看着一群调皮的孩子,不知道它们会闹出什么幺蛾子。

我先按照书上的步骤,把视频分成一个个小块,然后开始计算每个小块在相邻帧之间的位移。

这听起来简单,做起来可难了。

有一次,我计算完一个小块的位移后,发现结果完全不对,画面上的物体明明是从左边移到右边,可算出来的位移却是往上的。

我盯着屏幕,脑袋里一团乱麻,心想:“这是咋回事啊?难道是我代码写错了?”于是,我开始一行一行地检查代码,眼睛都快瞪出来了,可就是找不出问题。

没办法,我只好把代码发给了我的一个朋友,让他帮忙看看。

朋友看了半天,突然哈哈大笑起来,说:“你看看你这个地方,是不是把坐标弄反了?”我仔细一看,可不是嘛,我把x 坐标和y 坐标搞混了,真是个低级错误!经过这次教训,我更加小心谨慎了。

我继续研究块匹配算法,不断调整参数,试图找到最优的匹配结果。

我发现,不同的块大小和搜索范围对算法的性能影响很大。

如果块太大,虽然计算速度快,但精度就会下降;如果搜索范围太小,又可能会找不到最佳的匹配块。

有一天,我为了测试不同参数下的算法效果,在电脑前坐了整整一天,眼睛都看酸了。

我看着屏幕上不断变化的视频画面和算法输出的结果,一会儿高兴,一会儿沮丧。

高兴的是当我找到一组参数让算法的精度提高了一点,沮丧的是当我换了一个视频场景,这组参数又不太好用了。

就在我快要被这些参数折磨疯了的时候,我突然想到,为什么不试试根据视频内容的特点自动调整参数呢?比如说,如果画面中的物体运动比较缓慢,就可以适当增大块的大小和减小搜索范围;如果物体运动剧烈,就反过来。

运动估计算法简述

运动估计算法简述

运动估计算法简述标签:搜索运动估计预测矢量算法分类:探索H.2642007-02-03 13:59马上要做运动估计算法,重点整理了一下这方面的内容。

帧间预测编码可以简单地分为单向预测、双向预测、多帧预测。

而H.264标准采用了多帧预测,参考帧可达5—15帧。

运动补偿采用较多的有运动矢量估计[重叠块运动补偿(OBMC)]、全局运动估计、基于象素点的运动估计、基于区域的运动估计、基于网格的运动估计。

1.单向预测原理:将重建帧和参考帧送运动参数估值器(ME)比较得到运动矢量,再将运动矢量和重建帧送到运动补偿预测器中,得预测帧Ft^(x,y)。

Ft^(x,y)=Ft(x+i,y+j) 其中(i,j)即MV2.基于块匹配算法的运动矢量估计简单地说就是以块为单位分配运动矢量。

在前一帧搜索区(M+2Wx,M+2Wy)内找到与当前帧块相匹配的块,位移d(i,j)即为运动矢量。

常用的块匹配准则有:均方误差(MSE)最小准则,绝对误差均值(MAD)最小准则、NCCF准则。

搜索方法:a.穷尽搜索计算(2Wx+1)×(2Wy+1)个MAD值,全局最优,计算量大。

b.快速搜索(1)分层的和多分辨率的快速块匹配方法(2)基于连续消除的快速块匹配方法(3)固定搜索模式的快速块匹配方法(e.g.三步搜索法)(4)基于时空相关性和视觉特性的快速块匹配方法3.重叠块运动补偿(OBMC)为解决方块效应特别是运动矢量估计不准确或物体运动不是简单的平移运动以及一个块中有多个不同物体运动时的问题,采用OBMC方法,即一个像素的预测不仅基于其所属块的MV估计,还基于相邻块的MV估计。

4.运动估计•运动表示法:(1)基于块的运动表示法帧间宏块分割区域大小的选择:大分区,表征MV的选择和区分割类型的比特数较少,但运动压缩的冗余度较高,运动补偿残差在多细节区域能量很高。

小分区,运动补偿残差能量较低,但需要较多的表征MV的选择和区分割类型的比特数,运动压缩的冗余度较低。

H.264帧间预测算法的研究的开题报告

H.264帧间预测算法的研究的开题报告

H.264帧间预测算法的研究的开题报告一、选题背景H.264是一套先进的视频压缩标准,其采用了许多高效的算法,其中帧间预测算法是其中之一。

帧间预测算法是指在编码过程中根据前一帧或后一帧的像素信息预测当前帧的像素信息,从而达到降低码率的效果,因此对于H.264的性能和压缩率有着重要的影响。

因此,研究H.264的帧间预测算法,对于提高视频压缩效率具有重要的理论和实际意义。

二、选题目的及意义本课题旨在深入研究H.264的帧间预测算法,包括其原理、实现方法、应用场景等方面,从理论和实践两个方面综合探讨该算法的优化方式和提高压缩率的方法,以期达到以下目的:1.掌握H.264标准的理论基础和各种编码方式的工作流程;2.深入研究H.264的帧间预测算法的原理和实现方式;3.分析H.264帧间预测算法的不足和存在的问题,并探讨其优化方法;4.提高视频压缩率的效率和优化视频质量,实现更高质量的视频传输和存储。

三、研究内容及方法1. H.264标准的理论基础和各种编码方式的工作流程2. H.264的帧间预测算法的原理和实现方式3. H.264帧间预测算法的不足和存在的问题,并探讨其优化方法4. 通过实验等方法,分析H.264帧间预测算法的性能和提高压缩率的方法;5. 探究如何提高视频压缩率的效率和优化视频质量,实现更高质量的视频传输和存储。

四、可行性分析1.资料充足:关于H.264标准以及其中的帧间预测算法,已经有大量的研究,因此相关的文献和资料非常丰富,可以作为参考和支撑。

2.实验条件成熟:本研究需要进行大量的编码和解码实验等,相关的软件和硬件设备均已成熟,操作简单,可行性较高。

3.具有一定的实际价值:H.264标准是当今最先进的视频压缩标准,其帧间预测算法在实际应用中具有重要的应用价值,因此本研究具有一定的实际应用价值。

五、预期成果及创新点本课题的预期成果有三个方面:1. 对H.264标准的理论基础和各种编码方式的工作流程进行了较全面的研究和总结;2. 对H.264的帧间预测算法进行了深入的研究和探讨,提出了优化和提高压缩率的方法,并通过实验加以验证;3. 探究了如何提高视频压缩率的效率和优化视频质量,实现更高质量的视频传输和存储。

视频编码中的运动估计算法研究

视频编码中的运动估计算法研究

视频编码中的运动估计算法研究随着数字媒体技术的飞速发展,视频的应用范围变得越来越广泛,比如在线教育、远程办公、游戏直播等。

在视频传输和存储过程中,编码技术是一项必须掌握的技能,而其中最重要的环节之一就是运动估计算法。

一、什么是运动估计算法运动估计算法是视频编码中的一项重要技术,在视频编码中的作用是通过对视频序列中的运动进行建模,并对不同质量图片进行编码压缩。

这个过程中,运动估计算法主要的任务就是识别出视频帧间的运动信息,包括目标物体的位移、速度等等,以获得更好的编码质量。

运动估计大致分为全搜索(Full Search)算法和快递搜索(Fast Search)算法两类。

二、全搜索算法全搜索算法是一种最常见、最基础的运动估计算法,其核心思想是在编码过程中,通过遍历所有可能的搜索位置计算最佳匹配块,从而获得最优的运动矢量。

具体地说,全搜索算法会对每一个帧中的像素点进行搜索,找到在参考帧中对应的最佳匹配块,并计算出匹配块与当前块之间的运动矢量。

因为全搜索需要遍历所有可能的搜索点,因此其时间复杂度、计算量都比较大,不适用于实时应用场景。

三、快递搜索算法为了解决全搜索算法的计算量大、速度慢的问题,人们逐渐提出了很多更加高效的运动估计算法,快递搜索算法便是其中之一。

快递搜索算法可以在运动估计的时候减少搜索点的数量,从而提高搜索的速度。

具体的实现过程是首先确定一个中心点,然后将搜索点放置在这个中心点附近特定的位置,从而得到一个搜索区域。

之后,根据之前算法找到的最好的匹配块进行迭代搜索,找到最优的匹配块和运动矢量。

快递搜索算法具有较快的速度和较好的效率,因此被广泛应用于实时视频传输和储存中。

四、总结运动估计算法是视频编码过程中的一项重要技术,其主要作用是在编码过程中寻找帧间的运动信息,以便于实现更高效的视频数据传输和储存。

全搜索算法和快递搜索算法是两种常见的运动估计算法,它们的实现原理各不相同、应用场景不同,但它们对于现代视频编码技术发展却是不可或缺的。

VVC帧间几何预测模式优化算法研究

VVC帧间几何预测模式优化算法研究

VVC帧间几何预测模式优化算法研究VVC帧间几何预测模式优化算法研究摘要:视频编解码是现代通信领域中的重要研究方向之一,其主要目的是通过对原始视频数据进行压缩和解压缩来实现视频传输和存储。

VVC(Versatile Video Coding)作为下一代视频编码标准,相比于现有的国际标准H.265/HEVC可实现更高的压缩比、更强的适应性和更强的兼容性。

然而,在实际应用中,VVC中基于预测的帧间编码依然存在很大的优化空间。

本文提出了一种基于几何模型的预测模式优化算法,通过对几何模型的建模和优化,实现了在编码效率和画质性能上的双重提升。

实验结果表明,本文提出的算法相比于传统的编码方法,在编码效率和画质性能上均有显著的提升。

关键词:视频编解码;VVC;帧间预测;几何模型;优化算法1. 引言随着视频应用的不断普及和发展,视频编解码技术在通信领域中扮演着越来越重要的角色。

当前,H.265/HEVC(High Efficiency Video Coding)标准已经成为了广泛应用的视频编码标准。

然而,由于现有的视频编解码技术依然存在一定的不足,在压缩比、编码速度、复杂度等方面还有一定的提升空间。

因此,VVC标准的出现解决了这些问题,同时还拥有更强的适应性和兼容性,成为了下一代视频编码标准。

在VVC标准中,帧间预测是一种基于参考帧的压缩方法,通过计算当前帧和参考帧之间的空间和时间相关性,实现对视频内容的高效压缩。

然而,在实际应用中,由于预测模式的选择和参数的调整等问题,VVC仍然存在比较大的优化空间。

因此,本文提出了一种基于几何模型的帧间预测模式优化算法,通过模拟视频内容的几何形状和运动特征,实现对预测模式的优化和调整。

2. 相关工作在VVC中,帧间预测是一种基于参考帧的压缩方法,通过参考帧和当前帧之间的相关性来实现对视频内容的高效压缩。

其中,预测模式的选择和参数调整是影响预测效果的重要因素之一。

为了提高预测效果,已经提出了多种帧间预测模式和参数调整算法。

帧间预测编码中的运动估计算法研究

帧间预测编码中的运动估计算法研究
之 间 的像 素 差 值 , 据 差 值 最 小 原 则 [ ] 生 成 基 依 1,
于相邻 帧 的预 测 帧 。再 对 当前 帧 和预 测 帧 之 间 的 差值 信 息以及 ,成 预 测 帧 的运 动绍算 法 之 前 , 需 要 确 定 算 法 的 匹 配 准 还
r h i S ac ) i m c e rh t
rltnFntn 等 。其 中 MA 因为 计 算 步 骤 简 e i uci ) ao o D 单, 不涉及 乘 法运算 , 且具有 很 高 的计算 效率 , 并 同 时其 结果 的精度 也适 用 于大 多数 应用场 合 , 因此 被 广泛 采用 。MA D的计算 方 法是 对 像 素块 中的每 个 点取 绝对 差值 , 再计 算其 总 和而得 到两 个像 素块 的
码和传输 , 在解码端根据解码后 的差值信息和 已被 恢 复 的相邻 帧 重 构被 编 码 帧 而 实现 的。对 被 编 码
收到本文 时间 : 0 2 7年 3月 1 日 0 9
则, 只有在匹配准则下最符合的像素块才会被认为
是最佳 匹配 块 。
作者简介 : 手磊 , , 士研 究生 , 男 硕 研究方 向: 字视 频压缩 编码 技术。葛镜 , , 数 男 硕士研 究生 , 研究方 向 : 数字 视频传 输技术 。熊 曼 子, , 士研究生 , 男 硕 研究方 向: 数字视频 压缩 编码技术 。
有空问相关性 , 对相邻一定范 围内的每个像素点都
做一 次 匹配点 搜索 计 算 是 非 常 繁琐 而 且 根 本 没有 必要 的 。因此 , 像素 矩阵 块被 用来 做帧 间预测 编码 的最 小计算 处理 单元 。根 据不 同 的应 用对 象 、 运算
除视频序列中相关帧之间的时域冗余信息 , 以达到 压缩数据 , 方便存储和传输的目的。 到 目前 为 止 , 已经提 出 了多种 帧间预测 编码 算

视频编码中的帧间预测算法研究与改进

视频编码中的帧间预测算法研究与改进摘要:随着高清视频和4K视频的广泛使用,视频编码技术在实时传输、存储和传播中起着重要的作用。

其中,帧间预测算法作为视频编码的核心算法之一,对视频质量和压缩率有着重要影响。

本文将对视频编码中的帧间预测算法进行研究和改进。

一、引言在视频编码中,帧间预测是一种有效的压缩技术,通过利用相邻帧之间的冗余信息来减少数据量。

帧间预测算法的目标是利用已编码的参考帧和当前帧的相关性来预测当前帧的像素值,从而进行压缩编码。

当前主流视频编码标准中,如H.264和H.265,都采用了帧间预测算法。

二、帧间预测算法的研究1. 基于运动矢量的帧间预测算法运动矢量是帧间预测算法的关键,通过对参考帧和当前帧之间的运动进行估计,可以实现高效的预测。

常见的运动估计算法包括全搜索算法、三步搜索算法和快速搜索算法等。

这些算法在时间复杂度和编码效率之间存在着折衷,需要根据具体应用场景进行选择。

2. 基于像素域的帧间预测算法像素域的帧间预测算法通过对像素值的差异进行预测,可以更好地适应一些特殊场景。

常见的像素域预测算法有均方差预测算法和梯度预测算法等。

这些算法在复杂场景下可能表现更好,但需要在编码效率和计算复杂度之间进行权衡。

三、帧间预测算法的改进1. 运动矢量优化通过改进运动矢量的估计算法,可以提高帧间预测的编码效率。

例如,引入自适应搜索范围和分层搜索策略,可以在保证编码效率的同时减少计算复杂度。

2. 像素域优化在像素域的帧间预测算法中,通过改进预测模型和差异计算方法,可以提高预测精度。

例如,使用非线性模型进行预测和采用自适应的差异计算方法,可以得到更准确的预测结果。

3. 码率控制策略在视频编码中,码率控制是非常重要的。

通过合理地控制码率分配,可以在保证视频质量的前提下实现更高的压缩率。

一些优化算法,如基于深度学习的码率控制方法,可以在保证视频质量和实时性的同时,进一步提升编码效率。

四、实验与结果分析为了验证改进算法的有效性,我们进行了一系列实验,并与传统算法进行了对比。

图像编码中的运动估计方法探讨(三)

图像编码是一种将图像数据压缩,以便在存储和传输过程中节省空间和带宽的技术。

而图像编码的质量往往取决于运动估计方法的准确性和效率。

运动估计是指在视频编码中,通过对连续帧之间的差异进行分析,来估计图像中物体的运动信息的过程。

本文将探讨几种常用的运动估计方法。

一、全搜索法全搜索法是一种最基本的运动估计方法,也是一种最简单粗暴的方法。

该方法的思想是对于每个块在图像中搜索所有可能的位置,从而找到最佳的匹配。

但是由于它需要遍历所有可能的位置,时间复杂度非常高,计算量大,因此不适用于实时视频编码。

二、三步搜索法为了降低全搜索法的计算复杂度,三步搜索法被提出。

这种方法将图像分成多个宏块,然后分别使用全搜索法对每个宏块进行运动估计。

首先,在低分辨率下对宏块进行全搜索,找到粗略的最优位置。

然后,在较高分辨率下对该位置周围的邻域进行全搜索,获得更加精确的位置。

最后,在最高分辨率下对该位置进行全搜索,得到最优解。

三步搜索法相比全搜索法,减少了搜索的区域,提高了运动估计的速度,但仍然存在较高的计算复杂度。

三、块匹配法在块匹配法中,图像被划分成相同大小的块,在两帧之间寻找最匹配的块。

最常用的块匹配方法是块匹配算法(Block Matching Algorithm,BMA)。

BMA将每个块与其周围的候选块进行比较,并选择与之具有最小误差的块作为最佳匹配。

这种方法简单易懂,计算速度较快,因此被广泛应用于视频编码领域。

四、金字塔算法金字塔算法主要是为了解决运动估计过程中存在的尺度问题。

在传统的运动估计算法中,由于相邻帧之间的尺度变化,容易导致运动估计的错误。

而金字塔算法通过对图像进行多尺度分解,将原始图像分成多个不同分辨率的图像金字塔。

然后,在每个尺度下进行运动估计,最后将结果进行插值,得到最终的运动矢量。

金字塔算法在运动估计精度方面有一定的提高,但同样需要较大的计算量。

综上所述,图像编码中的运动估计方法有很多种,每种方法都有其优劣之处。

HEVC帧间预测之五——运动估计(二)

H EVC_CJL的专栏H EVC帧间预测之五——运动估计(二)分类: HEVC 2013-03-18 13:36 665人阅读 评论(2) 收藏举报HEVCHMxTZSearchHelpsetDistParamDistParam分析xTZSearch这个函数,xTZSearchHelp是当中最为重要的子函数之一。

它实现最基本的功能:根据输入的搜索点坐标,参考图像首地址,原始图像首地址,以及当前PU大小等相关信息,计算出SAD,并与之前保存的最佳值进行比较,更新到目前为止的最佳值相关参数,如uiBestSad,搜索点坐标,搜索步长等。

其他的函数如xTZ8PointSearch等搜索函数,最终都是调用xTZSearchHelp进行误差匹配的。

因此,我们有必要先来了解xTZSearchHelp这个函数:__inline Void TEncSearch::xTZSearchHelp( TComPattern* pcPatternKey, IntTZSearchStruct& rcStruct, const Int iSearchX, const Int iSearchY, const UChar {UInt uiSad;Pel* piRefSrch;piRefSrch = rcStruct.piRefY + iSearchY * rcStruct.iYStride + iSearchX; //!< 参考图像Y分量的起始地址//-- jclee for using the SAD function pointerm_pcRdCost->setDistParam( pcPatternKey, piRefSrch, rcStruct.iYStride, m_cDistParam );//!< 该函数主要职能是设置计算SAD的函数指针,下面会更为详细地分析该函 // fast encoder decision: use subsampled SAD when rows > 8 for integer MEif ( m_pcEncCfg->getUseFastEnc() ){if ( m_cDistParam.iRows > 8 ){m_cDistParam.iSubShift = 1;}}setDistParamComp(0); // Y component// distortionm_cDistParam.bitDepth = g_bitDepthY; //!< 位深uiSad = m_cDistParam.DistFunc( &m_cDistParam ); //!< 计算SAD// motion costuiSad += m_pcRdCost->getCost( iSearchX, iSearchY ); //!< 考虑上mv本身带来的开销if( uiSad < rcStruct.uiBestSad ) //!< 更新最佳值{rcStruct.uiBestSad = uiSad; //!< SADrcStruct.iBestX = iSearchX; //!< mv_xrcStruct.iBestY = iSearchY; //!< mv_yrcStruct.uiBestDistance = uiDistance; //!< 搜索步长rcStruct.uiBestRound = 0; //!< 搜索次数rcStruct.ucPointNr = ucPointNr; //!< 搜索点序号}}// Setting the Distortion Parameter for Inter (ME)Void TComRdCost::setDistParam( TComPattern* pcPatternKey, Pel* piRefY, Int iRefStride, DistParam& rcDistParam ){// set Original & Curr Pointer / StridercDistParam.pOrg = pcPatternKey->getROIY(); //!< 感兴趣区即待搜索的原始图像首地址rcDistParam.pCur = piRefY;//!< 参考图像首地址rcDistParam.iStrideOrg = pcPatternKey->getPatternLStride(); //!< 原始图像跨度rcDistParam.iStrideCur = iRefStride;//!< 参考图像跨度// set Block Width / HeightrcDistParam.iCols = pcPatternKey->getROIYWidth();//!< PU宽度rcDistParam.iRows = pcPatternKey->getROIYHeight();//!< PU高度rcDistParam.DistFunc = m_afpDistortFunc[DF_SAD + g_aucConvertToBit[ rcDistParam.iCols ] + 1 ]; //!< 根据PU的大小选择相应的失真计算函数#if AMP_SAD //!< 为非对称分区AMP预测模式提供专用的失真函数if (rcDistParam.iCols == 12){rcDistParam.DistFunc = m_afpDistortFunc[43 ]; //!< TComRdCost::xGetSAD12}else if (rcDistParam.iCols == 24){rcDistParam.DistFunc = m_afpDistortFunc[44 ]; //!< TComRdCost::xGetSAD24}else if (rcDistParam.iCols == 48){rcDistParam.DistFunc = m_afpDistortFunc[45 ]; //!< TComRdCost::xGetSAD48}#endif// initializercDistParam.iSubShift = 0; //!< (vertical) subsampling shift (for reducing complexity)}/// distortion parameter classclass DistParam{public:Pel* pOrg;//!< 原始图像首地址Pel* pCur;//!< 参考图像首地址Int iStrideOrg; //!< 原始图像跨度Int iStrideCur; //!< 参考图像跨度Int iRows;//!< PU的宽度Int iCols;//!< PU的高度Int iStep;FpDistFunc DistFunc; //!< 计算失真的函数指针Int bitDepth;//!< 位深Bool bApplyWeight; // whether weithed prediction is used or notwpScalingParam *wpCur; // weithed prediction scaling parameters for current refUInt uiComp; // uiComp = 0 (luma Y), 1 (chroma U), 2 (chroma V)#if NS_HADBool bUseNSHAD;#endif// (vertical) subsampling shift (for reducing complexity)// - 0 = no subsampling, 1 = even rows, 2 = every 4th, etc.Int iSubShift; //!< 下采样DistParam(){pOrg = NULL;pCur = NULL;iStrideOrg = 0;iStrideCur = 0;iRows = 0;iCols = 0;iStep = 1;DistFunc = NULL;iSubShift = 0;bitDepth = 0;#if NS_HADbUseNSHAD = false;#endif}};具体的SAD计算函数这里不一一列举,功能其实很简单,就是根据PU所包含的总的像素数计算参考图像与原始图像的像素差的绝对值的总和。

图像编码中的运动估计方法探讨(九)

图像编码是数字图像处理中的重要技术之一,它的核心问题之一就是如何准确地表示和传输图像信息。

在图像编码中,运动估计方法发挥着至关重要的作用。

运动估计是指通过对图像序列中的帧间像素变化进行分析和预测,来获取并编码图像中的运动信息的过程。

本文将以图像编码中的运动估计方法为主题,对其进行一番探讨。

一、运动估计的概述运动估计是基于时间相关性的一种技术,它的核心思想是利用相邻图像帧之间的相关性,通过分析像素的变化情况来预测当前图像帧中的运动信息。

运动估计方法可以分为全局运动估计和局部运动估计两种:全局运动估计通常基于整个图像来估计全局的运动信息,通过对整幅图像进行运动补偿,以达到减少冗余信息并提高编码效率的目的。

局部运动估计则是基于图像块的运动,通常将图像划分为多个块,分别对每个块进行运动估计,更适合于快速运动的场景。

二、运动向量的表示运动向量是运动估计的核心产物,它用来描述当前帧与参考帧之间的相对运动信息。

在图像编码中,常用以下两种方式来表示运动向量:1. 位移矢量法:位移矢量法是最常见的表达方式,它用一个二维矢量来表示运动信息,其中横向位移表示水平方向的运动,纵向位移表示垂直方向的运动。

位移矢量法简单直观,但在存在非刚体运动和遮挡等复杂场景下不够精确。

2. 区域填充法:区域填充法通过选择一个最匹配的参考块来表示运动信息,适用于非刚体运动和遮挡等场景。

该方法通常结合全局运动估计,能够更好地处理复杂情况。

三、运动估计方法的具体实现在图像编码中,有多种方法可以用于实现运动估计,其中最常用的几种方法包括:1. 块匹配法:块匹配法是一种基于搜索的运动估计方法,它将当前图像块与一系列参考图像块进行对比,选择最佳匹配的参考块作为运动信息。

块匹配法简单高效,广泛应用于视频编码领域。

2. 全局优化法:全局优化法是一种基于优化算法的运动估计方法,它通过在整个图像序列中考虑全局一致性来获得更精确的运动信息。

全局优化法适用于对复杂图像序列进行准确的运动估计,但计算复杂度较高。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

研究视界科技创新与应用Technology Innovation and Application2018年18期帧间预测运动估计算法研究孙道辉(河南工业大学电气工程学院,河南郑州450001)摘要:帧间预测编码法是视频编码过程中消除冗余的重要方法。

运动估计和运动补偿技术是视频帧间预测编码中的核心技术。

详细研究了块匹配运动估计的基本原理,重点介绍了几种经典的块匹配运动估计算法,通过实验定性地评价了各算法的性能特点,分 析了各算法的优缺点,总结出了运动估计算法优化的方向,对目前运动估计技术的研究和设计具有重要意义。

关键词:帧间预测编码;时间冗余;块匹配;运动估计;运动矢量中图分类号:TN919.81文献标志码:A文章编号= 2095-2945(2018) 18-0068-02Abstract : Motion estimation and motion compensation are the core technologies in video inter-frame prediction coding. The basicprinciple of block matching motion estimation is studied in detail, and several classical block matching motion estimation algorithms are introduced in detail. The performance characteristics of each algorithm are evaluated qualitatively through experiments, and the advantages and disadvantages of each algorithm are analyzed.Keywords : interframe prediction coding; time redundancy; block matching; motion estimation; motion vectorB 在图像中坐标位置相同。

在P r 中,按照搜索准则,寻找与 B 块相减残差最小的匹配块Br 。

这个过程就是运动估计,Br 左上角坐标U ,y )与B *左上角坐标(x ,y )之差,即为运动矢 量(M otion Vector,MV )。

1.2运动补偿运动估计得到的运动矢量同参考帧补偿出当前帧的预测巾贞的过程叫做运动补偿(M otion Compensation , MC ),预测 帧与当前帧相减得到预测误差|3]。

再对预测误差进行进一步 处理。

2运动估计算法全搜索算法(Exhaustive Search method ,ES )能够得到 全局最优的运动矢量,但该算法的运算量巨大无法实时应用。

快速搜索算法151简单,计算量小,加速比较大,但有时会陷人局部最优值,搜索的准确度不高。

经典的快速搜索算法 |6]有:三步法(Three Step Search method ,TSS ),二维对数法,交叉搜索法,新二步法(New Three Step Search method , NTSS ),四步法(FourStepSearchmethod ,FSS ),菱形法|7] (Diamond Search method , DS ),十字菱形搜索法,自适应十 字搜索法(Adaptive Rood Pattern Search method ,ARPS ), 六边形搜索法。

2.1 全局搜索算法全局搜索算法是以每个像素为单位,在搜索区域内,按 照一定的搜索规则,寻找匹配误差最小的块,计算出运动矢 量,这样在每个像素的位置都会找到一个运动矢量,形成运 动矢量集合。

2.2 三步搜索法三步法是首先将图像分成不重叠的的块,在搜索区域 内,按照一定的搜索准则分三步搜索。

第一步,从块中心开作者简介:孙道辉(1990,02-),男,河南驻马店人,硕士研究生,研究方向为图像处理与视频编码。

引言帧间预测是视频编码的关键内容,而运动估计是其核 心。

据统计在H .264/AVC 编码中运动估计约占全部计算量 的60%到80%,所以运动估计算法的性能至关重要。

块匹配 算法广泛应用标准视频编码。

在基于块匹配的运动估计算法中,对每一帧图像都被 分成大小相同的宏块,然后以宏块为基本处理单元。

最后对 预测差值、运动矢量和相应的参考索引进行编码。

1帧间预测原理1.1 运动估计在序列图像中,邻近帧存在着一定的相关性。

因此,可 将活动图像分成若干块或宏块,在参考帧中定义的搜索区域,按照一定的匹配准则,搜索出每个块或宏块在参考帧图 像中的匹配块,并得出两者之间的空间位置的相对偏移量, 即运动矢量。

当前块从参考帧中求取最佳匹配块得到运动矢量的过程被称为运动估计|2]。

运动估计的原理如图1。

图1运动估计的原理示意图假设当前帧为P ,参考帧为Pr ,当前编码块为B ,B *与2018年18期科技创新与应用Technology Innovation and Application研究视界始以4步为步长的9个点的区域内计算 最小误差值。

第二步,以第一步的最小值 的点为中心,步长为2步的9个点的区域 内计算最小的误差值。

第三步:以第二步 的最小SAD 值的点为中心,步长为1步的 9个点的区域内计算最小误差值,这个最 小点即为最佳匹配点。

三步法一共计算点 数为:25个点。

它的优点是搜索步骤固定 简单,只有三步,易于硬件实现新三步法、简单快速三步法(Simple and Efficient Three Step Search method ,SESTSS )、四步 法等都是在三步法的基础上进行改进的 运动估i 十算法。

2.3麦形法菱形法不同于三步法及其改进的算法,它利用运动矢量的中心偏置特性,对搜索模式进行了改进,采用大小菱形模板。

大菱形由9个点组成,围绕中心点的8个点形成一个 大菱形的形状。

小菱形是由5个点组成的菱形。

菱形法的第 一步:在大菱形中搜索计算9个点(大菱形)的SAD ,找到最 小值点,如果在中心,则转至第三步;如果不在中心,转至第 二步。

第二步:以第一步的最小值点为中心继续构建大菱形 搜索,直至最小值位于中心。

第三步:以上一步的最小值点 为中心构建5个小菱形搜索,计算结束。

菱形法的优点:计 算量少,搜索速度快,可以尽可能避免找到局部最优的位 置,得到的性能更好。

六边形搜索法、十字形搜索等算法是 在菱形法的基础上进行改进的运动估计算法。

3实验结果与分析3.1实验平台和实验条件设置仿真实验在配置为Intel (R ) Core (TM ) CPU i 7- 8550@1.80GHz 1.99Hz ,8.00GB 内存,Windows 10 的 PC 平 台下,使用Matlab 2014b 作为仿真平台,对ES 、TSS、NTSS 、 SESTSS 、FSS 、DS 、ARPS 算法进行实验,测试视频为caltrain 的前31帧。

运动估计块采用边长为16个像素的正方形,搜 索范围为距当前块的上下左右各15个像素。

最佳搜索点采 用最小绝对误差匹配准则。

测试指标采用搜索点数和峰值 信噪比(PeakSignalto Noise Ratio ,PSNR )。

图2各帧图像在所采用算法下的峰值信噪比表1各算法对测试序列的性能算法名称平均搜索点数平均峰值信噪比(dB)ES 22527.8317TSS 23. 727326.2654NTSS 23. 094627.0210SESTSS 16. 023225.9713FSS 19. 650127.5924DS 18. 365327.5734ARPS10. 015427.4827模板,在搜索速度和PSNR 上均有明显的提升。

自适应十字 形搜索法在PSNR 上和菱形法一致,搜索速度上却提升近 一倍。

4结束语本文在分析块匹配运动估计原理的基础上,实现了几 种经典的块匹配运动估计算法,通过实验结果和数据证明 了不同运动估计算法的优劣,进而从理论上分析了这些经 典算法优劣的原因,为更加鲁棒和快速的运动估计算法的 研究设计提供了思路,有利于视频帧间预测编码的进一步 研究。

参考文献:[1]朱秀昌,刘峰,胡栋.视频编码和传输新技术[M].北京:电子工业出3.2 实验结果和分析每帧图像在所采用算法下的峰值信噪比PSNR 如图2 所示。

实验所用31帧图像的平均搜索点数和平均峰值信噪 比PSNR 值如表1所示。

图2表明,出全局E S 算法的PSNR 值最高,搜索的精 确性最好,得到的运动矢量最佳。

四步法FSS 和菱形法DS 与全局搜索ES 算法的PSNR 性能上相近,帧PSNR 值相差 不到0.3dB 。

从表1可以看出ES 算法虽然PSNR 最高,但是搜索点 数是快速搜索算法的10~20倍,搜索速度很慢。

三步法相比 E S 算法在PSNR 上有一定的下降,但是搜索速度快约10 倍。

新三步法是在三步法基础改进的,与三步法在搜索速度 上相当,但是PSNR 上有明显的提高。

菱形法采用大小菱形版社,2014:7.[2] 陈靖,刘京,曹喜信.深入理解视频编解码技术:基于H.264标准 及参考模型[M].北京:北京航空航天大学出版社,2012: 20-29.[3] 张晓星.基于块匹配的运动估计算法研究与实现[D ].北京交通大 学,2008.[4] 蒋晓悦,赵荣椿.几种块匹配运动估计算法的比较[J].计算机应用 研究,2004,21(7):1-3.[5] 刘书平.H.264运动估计算法比较与分析[J].现代计算机,2017 (9): 41-46.[6] 吴晓军,白世军,卢文涛.基于H.264视频编码的运动估计算法优 化[J].电子学报,2009,37( 11): 2541-2545.[7] 刘海峰,郭宝龙,冯宗哲.用于块匹配运动估值的正方形-菱形搜 索算法[J].计算机学报,2002,25 (7): 747-752.-69-。

相关文档
最新文档