CN101227614A - 视频编码系统的运动估计装置及其方法 - Google Patents

视频编码系统的运动估计装置及其方法 Download PDF

Info

Publication number
CN101227614A
CN101227614A CN 200810065972 CN200810065972A CN101227614A CN 101227614 A CN101227614 A CN 101227614A CN 200810065972 CN200810065972 CN 200810065972 CN 200810065972 A CN200810065972 A CN 200810065972A CN 101227614 A CN101227614 A CN 101227614A
Authority
CN
China
Prior art keywords
sad
threshold
pixel
search
motion vector
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.)
Granted
Application number
CN 200810065972
Other languages
English (en)
Other versions
CN101227614B (zh
Inventor
王立波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Actions Technology Co Ltd
Original Assignee
Actions Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN 200810065972 priority Critical patent/CN101227614B/zh
Publication of CN101227614A publication Critical patent/CN101227614A/zh
Application granted granted Critical
Publication of CN101227614B publication Critical patent/CN101227614B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明是一种视频编码系统中的运动估计装置及其方法,所述方法包括:产生预测运动向量;使用所述预测运动向量对参考块进行插值得到预测目标块,计算所述预测目标块与目标块之间的绝对误差和(SAD);比较所述绝对误差和(SAD)与设定的阈值,基于比较结果决定是否进行整像素与分像素运动估计;整像素与分像素运动估计,首先用菱形算法搜索最佳整像素块,然后使用分像素搜索得到最佳分像素块。本方法可以减少整像素和分像素搜索的次数。

Description

视频编码系统的运动估计装置及其方法
技术领域
本发明涉及一种视频编码系统,具体涉及一种运动估计装置及其方法。
背景技术
二维的数字化图象序列通常用象素点的YuV三分量来表示,由于一幅图象的像素点数量非常多,需要大量的数据来表示,给图象的存储与传输带来很大的麻烦,这就需要对图象数据进行压缩,以减少其数据量。事实上,连续的图象序列在空间和时间上有着非常高的相关性,可以利用这一特性来消除数据冗余以获得有效的数据压缩。
消除空间冗余的方法是帧内预测,为编码一帧图象的某个区域,可以使用本帧图象内与该区域相邻部分的信息来预测。消除时间冗余信息的关键技术是运动补偿,它的思想是,相邻的两帧图象相似程度非常高,有些时候甚至是完全相同的,所以在编码后一帧图象的某一区域时,可以用前一帧图象的相似区域来预测,这样做的好处是,只需要存储或传输两个区域位置的相对偏移和插值信息即可,由于插值信息包含的信息量非常小,可以用很少的数据位来表示,所以可以取得很高的压缩效率。在现行的编解码框架中,一般采用块编码结构,编码的基本单位是16×16的像素块。据此,在编码当前帧的某个像素块时,需要在前一帧(又称为参考帧)中搜索匹配程度最高的象素块,这个过程称为运动估计。
运动估计的过程大致可以描述如下,对于当前帧的一个待编码块(在此称为目标块),需要在参考帧中找到一个最佳匹配块。考虑到图象的运动特性以及计算的复杂度,不需要对整个参考帧进行搜索,可以事先在参考帧中确定一个搜索窗口,只在搜索窗口中进行搜索。在运动估计过程中,评价一个参考块与目标块的匹配程度的标准是这两个块的绝对误差和(SAD:Sum of Absolute Difference)。
SAD = Σ y = 0 block - 1 Σ x = 0 block - 1 | MB c ( x , y ) - MB r ( x , y ) |
其中block为块的边长,一般为8或16,MBc(x,y)表示目标块中坐标(x,y)的象素值,MBr(x,y)表示参考块中坐标(x,y)的象素值。SAD运算是一种耗时(time consuming)运算。
找到最佳匹配的整像素参考块之后,为提高匹配精度,一般还需要在整像素点周围进行分像素搜索,所谓分像素搜索就是对整像素参考块进行二分之一甚至四分之一差值,以期望更大程度的消除冗余,求得更小的SAD,插值运算的耗时一般是SAD运算的几倍以上。
以搜索窗口为48×48大小,目标块为16×16大小,搜索精确为四分之一像素为例,最原始的搜索算法是全搜索,也就是对搜索窗口中所有可能的参考块进行搜索,为求得最佳整像素参考块,需要做32×32=984次SAD运算。为得到最佳分像素参考块,还需要对整像素点做5×5-1=24次插值运算和24次SAD运算。
为提高搜索效率,人们提出了各种快速搜索算法,这些算法利用图象的平滑特性,使用较小的SAD次数便可以得到搜索窗口中的局部最优点,以较小的性能损失换来了计算量的大量节省。常见的快速搜索算法有,二维对数搜索法,三步法,菱形搜索法,这些算法能将整像数搜索的SAD次数减少到平均15-20次,而且搜索精度保持在90%以上。
有关搜索的起始点的问题,最初的方法是在参考帧中与目标块在当前帧中有着相同坐标的参考块开始搜索,也就是坐标偏移为(0,0)的点开始。考虑到物体运动的连续性,前一帧中某物体运动的方向应当与当前帧中同一物体的运动方向相同,与此同时,在同一帧内部,位置相邻的两个块中的物体,由于块的大小很小,在大部分时候也有着相似的运动方向。所以,搜索的起始点可以通过本帧内相邻块的运动向量和上一帧中相同位置块的运动向量来预测,这也有助于提高搜索的效率。
我们知道,在便携式应用中,计算复杂度的大小是方案能否取得成功的关键,因为便携式处理器考虑到功耗,面积等因素,其处理能力一般都较弱,而对视频编码这种对计算量要求很高的应用,需要大量算法上和架构上的优化才能取得成功。
普通的快速搜索算法虽然能较大程度的减少搜索次数,但这对便携式应用还显不够。以菱形搜索为例,平均每个16×16的宏块需要10-15次SAD运算,和至少4次插值运算。每次SAD需要256次减法,256次求绝对值,255次累加。假设插值采用的是四抽头滤波器,那么每个插值点需要4次乘法,三次累加和一次移位运算,对两个方向均是分像素的二维插值,需要两倍于一维插值的运算量。据统计,一个16×16宏块的运动估计需要耗费通用处理器15000至25000个周期,以CIF(352×288)分辨率图象为例,以每秒30帧的速度编码,运动估计模块需要200M MIPS以上的运算量,再加上内部存储器的读写延迟,需要400-500M MIPS的运算量。这对便携式处理器来说无论在处理能力上还是在功耗上都是不能接受的。
此外,搜索窗口的数据从内部存储器到高速缓存之间的传输需要占用大量的总线带宽。以±16像素点的偏移极限为例,搜索窗口为(3×16)×(3×16)字节大小,再加上4抽头插值所需的额外3个像素点,共计52×52=2704字节大小。这样一来,对于CIF(352×288)大小的运动图像,每编码一帧需要传输2704×396=1.07兆字节的搜索窗口数据,以30帧每秒计算,约需要32M字节每秒的总线带宽。
专利CN 1440203A中提出的算法需要做一个全搜索,这对降低运算复杂度没有帮助;专利CN 1177483C中提出了预测运动向量搜索的方法,但其阈值是固定的,不能做到动态调整,因此也就不能有效减少整像素和分像素搜索的次数。
发明内容
运动估计是编码器的关键算法,即使采用现有快速搜索算法,仍然需要耗费200M MIPS以上(CIF 30帧每秒的图像),这对通用型便携式处理器来说,是无法承受的。此外,搜索窗口的传输需要占用30MByte/s以上的总线带宽,这也是便携式处理器无法接受的。
当前大多数快速搜索算法旨在提高整像素和分像素搜索的速度,减少每次搜索所需的SAD和插值运算次数。本发明提出的一种算法旨在减少整像素和分像素搜索的次数,本算法对符合要求的目标块,不需要做整像素和分像素搜索,只需要做一次预测点的插值和SAD计算即可找到较优的分像素匹配块,对其余的块,我们依然采用普通的菱形快速搜索和分像素搜索的方法。另外,对搜索起始点进行预测能使得大部分搜索在开始的时候就接近最优点,也因此提高了搜索效率,本发明中也采纳了这一方法。
本发明的一个目的在于提供一种视频编码系统中的运动估计装置,所述装置包括:
预测运动向量发生模块,用于产生目标块的预测运动向量;
预测目标块估计模块,使用预测运动向量对参考块进行插值得到预测目标块,并计算所述预测目标块与目标块之间的绝对误差和(SAD);
预测运动向量裁决模块,比较所述绝对误差和(SAD)与设定的阈值,基于比较结果决定是否进行整像素与分像素运动估计;
整像素与分像素运动估计模块,用于进行整像素与分像素运动估计,在搜索窗口中寻找最佳整像素匹配块。
进一步,还包括基于当前帧的设定阈值对下一帧的阈值进行调整的装置。
进一步,基于当前帧的设定阈值对下一帧的阈值进行调整的装置使用以下公式调整下一帧的阈值:
SAD _ threshold n + 1 = SAD _ threshold n ( 1 + ASR n - OSR n 2 × OSR n ) ,
其中,SAD_thresholdn+1表示第n+1帧图像的绝对误差和阈值,SAD_thresholdn表示第n帧图像的绝对误差和阈值,ASRn表示第n帧图像的实际搜索比,OSRn表示第n帧图像的最优搜索比。
进一步,所述设定的阈值是通过对预定测试流的绝对误差和阈值与实际搜索比进行函数拟合而确定的。
进一步,所述设定的阈值是通过计算所述拟合的函数的拐点而确定的。
进一步,所述比较结果为:当所述绝对误差和(SAD)小于设定的阈值时,直接用预测运动向量作为所述目标块的运动向量;当所述绝对误差和(SAD)大于设定的阈值时,进行整像素与分像素运动估计。
本发明的第二个目的在于提供一种视频编码系统中的运动估计方法,所述方法包括:
产生预测运动向量;
使用所述预测运动向量对参考块进行插值得到预测目标块,计算所述预测目标块与目标块之间的绝对误差和(SAD);
比较所述绝对误差和(SAD)与设定的阈值,基于比较结果决定是否进行整像素与分像素运动估计;
整像素与分像素运动估计,首先用菱形算法搜索最佳整像素块,然后使用分像素搜索得到最佳分像素块。
进一步,还包括基于当前帧的设定阈值对下一帧的阈值进行调整。
进一步,所述基于当前帧的设定阈值对下一帧的阈值进行调整使用以下公式调整下一帧的阈值:
SAD _ threshold n + 1 = SAD _ threshold n ( 1 + ASR n - OSR n 2 × OSR n ) ,
其中,SAD_thresholdn+1表示第n+1帧图像的绝对误差和阈值,SAD_thresholdn表示第n帧图像的绝对误差和阈值,ASRn表示第n帧图像的实际搜索比,OSRn表示第n帧图像的最优搜索比。
进一步,所述设定的阈值是通过对预定测试流的绝对误差和阈值与实际搜索比进行函数拟合而确定的。
进一步,所述设定的阈值是通过计算所拟合的函数的拐点而确定的。
进一步,所述比较结果为:当所述绝对误差和(SAD)小于设定的阈值时,直接用预测运动向量作为所述目标块的运动向量;当所述绝对误差和(SAD)大于设定的阈值时,进行整像素与分像素运动估计。
经过实际的测试,对大部分的视频序列,本发明对50%以上的搜索是有效的,对某些运动较少的低比特率序列,甚至可以达到90%以上的有效性。相对于单纯的菱形搜索,本发明以牺牲PSNR 0.1以内的微小代价,换得了至少2倍的速度提升。此外,本发明还能节省传输搜索窗口所需的总线带宽。
附图说明
图1为按照本发明的运动估计模块框架图;
图2是预测运动向量发生器生成预测运动向量过程的示意图;
图3为在Matlab中采用三次样条插值函数对Akiyo_cif测试流的拟合结果;
图4为计算阈值最优时的ESR与OSR的函数关系式时使用的线性拟合图;
图5为动态调整阈值步骤的流程图。
具体实施方式
图1是本发明的运动估计模块框架图,包括:预测运动向量发生模块101,预测运动向量裁决模块102,预测目标块估计模块103,整像素与分像素运动估计模块104。本发明提出的运动估计方法的各步骤在以上的4个模块中执行。
本发明中,将目标块的运动估计分为4个步骤。首先,执行预测运动向量产生步骤,通过预测运动向量发生器产生预测运动向量;然后,执行预测目标块估计步骤,使用所述预测运动向量对参考块进行插值得到预测目标块,计算所述预测目标块与目标块之间的绝对误差和(SAD);之后,执行预测运动向量裁决步骤,通过比较所述绝对误差和(SAD)与设定的阈值的大小,决定是否进行整像素与分像素运动估计步骤;最后,如果所述绝对误差和(SAD)小于设定的阈值,则完成目标块的运动估计;否则,执行整像素与分像素运动估计步骤,即首先用菱形算法搜索最佳整像素块,然后使用分像素搜索得到最佳分像素块。所谓整像素搜索,就是指在搜索窗口中寻找最佳整像素匹配块的过程。分像素搜索是指对整像素匹配块进行适当的插值运算,以期找到更高匹配程度的匹配块的过程。这些过程都是为大家都共识的,因为公知的功能与结构会以不必要的细节掩盖本发明,所以对其不进行详细描述。
图2是预测运动向量发生模块产生预测运动向量过程的示意图。
当前块的位置是C块203,其左,上,右上块分别是L块204,U块201和UR块202。它们的运动向量分别是MVL,MVU,MVUR,每个向量包含水平和垂直方向的两个分量。首先从MVL,MVU,MVUR的三者的水平分量中取中间值得到预测运动向量的水平分量,再从它们的垂直分量中取中间值得到预测运动向量的垂直分量,这就是所谓的“取中值法”。需要注意的一点是,如果L204,U201,UR202位置的块不存在,则在生成预测运动向量的过程中,将它们的运动向量设为(0,0)。
预测目标块估计至多需要一次插值和一次SAD运算。这个过程是,首先以预测运动向量的整数部分作为偏移从参考帧中取出一个参考块,然后根据分像素部分查表得到相应的插值系数,对这个参考块进行插值得到一个预测目标块,最后再将这个预测目标块与目标块一起做一次SAD运算。相对后续搜索所需要的至少4次插值和15-20次SAD运算来说,是很小的一个运算量。如果能够让搜索中止于此,将对搜索速度有一个很大的提升。事实上我们也发现,通过后续搜索所得到的匹配块与预测目标块是一致的,有时虽然不一致,但相似度甚至不如预测目标块。如何能够在作完预测目标块估计之后,就事先知道后续搜索是无效的呢?我们可以通过对预测目标块SAD设立阈值来解决问题。
如前所述,我们从目标块的‘左’,‘上’,‘上右’三个位置的运动向量中采用“取中值法”挑选出一个,作为目标块的预测运动向量。然后使用该运动向量计算参考块得到相应的SAD。如果该SAD比设定的阈值小,则直接用预测运动向量作为本块的运动向量,否则继续进行后续搜索。为保证准确性,阈值还需要动态的调整,我们可以通过使用线性拟合算法来寻找“最优搜索比”与“有效搜索比”之间的函数关系式,从而找到动态调整最优阈值的方法。后面将参照图5作进一步描述。
此外,本发明提出的方法还可以节省大量内存带宽。例如,对于4抽头滤波器,16×16的预测目标块估计至多需要19×19个像素点,不需要把52×52大小的搜索窗口全部复制到高速缓存。我们可以在搜索的第一步时只复制19×19个像素点至高速缓存,只有当预测目标块的SAD大于阈值时,由于需要进行执行整像素与分像素运动估计步骤,才需要将剩余的像素点复制过去。如果预测目标块估计的效率比较高的话,可以节省大量的内存带宽。事实上,经过实际的测试,对大部分的视频序列,本算法对50%以上块是有效的,对某些运动较少的低比特率序列,甚至可以达到90%以上的有效性。
在本方法中,只有当预测块的SAD值大于阈值时,才需要进行后续的整像素和分像素搜索,我们把实际进行的搜索次数称为实际搜索次数,将实际搜索次数与块的个数相除得到实际搜索比(Actual Search Ration)。
ASR = blocks _ Search blocks (公式1)
对于一次整像素和分像素搜索,如果最终搜索到的匹配块的SAD比预测目标块的SAD小,则称为有效搜索,否则称为无效搜索。将有效搜索次数与总共的搜索次数相除,得到有效搜索比(Effective Search Ration)。
ESR = blocks _ EffectiveSearch blocks _ Search (公式2)
以下是动态阈值的采样和调整过程的推导。
通过对MPEG4提供的7个标准测试流的测试,我们可以得到下表:
  测试流   有效搜索比(ESR)
  Hall_cif   7.41%
  Akiyo_cif   7.81
  Container_cif   11.25%
  News_cif   13.61%
  Mother_daughter_cif   14.67%
  Coastguard_cif   29.8%
  Foreman_cif   30.71%
         表1:各测试流的ESR
在上表中可以看出,大部分的搜索都是无效的,也就是说预测点的SAD在大部分情况下都比通过整像素和分像素搜索所得到的最优匹配块的SAD小或者相等。因此,本发明中,在对一个目标块进行搜索前先设定一个阈值,当预测目标块估计得到的SAD小于该阈值时即停止后面的搜索,反之继续。而对预测目标块SAD阈值的设定则成为了本算法的关键。事实上,若阈值定得过大,则会影响搜索效果,反之若定得过小,则基本上不会起什么作用。而且,该阈值对于各个不同的测试流也不是一成不变的,不同的测试流有着不同的最优阈值。
如果把阈值设为0,则所有的块都要进行搜索,此时一幅图象的搜索次数等于块的个数。在逐步增加阈值的情况下,搜索次数也会相应的减少,当然此时也会伴随着搜索效果的降低,即图像峰值信噪比(PSNR:PeakSignal-to-Noise Ratio)的降低。我们要做的事情是在搜索次数与性能损失之间找到一个平衡,争取在最小性能损失的前提下使用最少的搜索次数得到最优匹配块。
在对7个标准测试流的测试后,我们得到了SAD_threshold(绝对误差和阈值),PSNR,ESR,ASR,bitrate(比特率,也就是每秒钟的比特数)五者之间关系的数据。
表2Hall_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)   ASR(%)   Bits/frame
  0   34.737   7.41   100   7924
  500   34.736   7.41   83.5   7924
  600   34.736   7.39   67.2   7923
  700   34.735   7.26   53.4   7920
  800   34.727   6.94   44.3   7914
  900   34.721   6.61   36.3   7913
  1000   34.712   6.21   30.36   7917
  1100   34.703   5.81   25.5   7916
  1200   34.696   5.38   20.63   7920
  1300   34.68   4.84   16.44   7917
  1400   34.672   4.44   13.17   7928
  1500   34.667   4.13   10.46   7937
  1600   34.664   3.85   8.48   7964
  1700   34.66   3.59   7.01   7977
  1800   34.654   3.35   5.814   8000
  1900   34.65   3.12   5.075   7999
  2000   34.65   2.87   4.52   7988
  2100   34.65   2.72   4.13   7998
  2200   34.649   2.5   3.79   8015
表3Container_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)   ASR(%)   Bits/frame
  0   33.275   11.25   100   7729
  500   33.272   11.24   88.94   7733
  600   33.270   11.18   82.06   7750
  700   33.268   11.26   72.68   7777
  800   33.264   11.15   64.46   7808
  900   33.259   11.02   57.25   7837
  1000   33.247   10.74   49.84   7881
  1100   33.231   10.26   42.70   7966
  1200   33.217   9.61   36.25   8081
  1300   33.2   8.79   31.37   8224
  1400   33.183   8.09   27.09   8336
  1500   33.166   7.27   21.93   8463
  1600   33.142   6.52   17.53   8577
  1700   33.114   5.86   13.21   8683
  1800   33.088   5.08   10.7   8788
  1900   33.061   4.38   9.12   8936
  2000   33.027   3.67   7.94   9164
表4Coastguard_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)   ASR(%)   Bits/frame
  0   31.377   29.8   100   21882
  800   31.3768   29.8   98   21882
  900   31.3764   29.74   96.37   21875
  1000   31.373   29.63   92.58   21888
  1100   31.369   29.48   86.21   21903
  1200   31.361   29.12   78.8   21947
  1300   31.355   28.38   71.38   21998
  1400   31.341   27.6   64.4   22076
  1500   31.327   26.67   57.89   22162
  1600   31.309   25.62   51.89   22301
  1700   31.291   24.178   46.3   22415
  1800   31.265   23.08   41.3   22621
  1900   31.241   21.75   36.68   22855
  2000   31.213   20.52   32.67   23084
  2100   31.193   19.17   28.74   23328
  2200   31.162   17.99   25.44   23671
  2500   31.079   14.8   18.5   24751
表5Akiyo_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)  ASR(%)   Bits/frame
  0   36.722   7.81   100   3963
  200   36.722   7.81   98.48   3963
  500   36.718   7.753   47.3   3961
  550   36.717   7.68   42.44   3957
  600   36.706   7.486   37.51   3950
  650   36.705   7.45   34.48   3948
  700   36.703   7.41   32.573   3950
  750   36.700   7.37   30.596   3953
  800   36.693   7.24   28.71   3953
  850   36.682   7.05   26.28   3959
  900   36.669   6.91   24.2   3971
  950   36.654   6.65   22.28   3977
  1000   36.638   6.36   19.79   3995
  1050   36.625   6.13   17.62   4001
  1100   36.609   5.78   15.51   4015
  1150   36.597   5.42   13.86   4022
  1200   36.581   5.10   12.085   4052
  1250   36.558   4.73   10.33   4071
  1300   36.535   4.383   8.89   4114
  1350   36.514   4.057   7.64   4148
  1400   36.493   3.72   6.578   4192
表6Mother_daughter_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)   ASR(%)   Bits/frame
  0   36.15   15.95   100   4183
  200   36.15   15.98   93.63   4183
  300   36.15   15.98   79.58   4183
  400   36.15   15.97   74   4183
  500   36.15   16   65.9   4188
  600   36.147   15.9   60.2   4198
  700   36.139   15.66   52.98   4204
  800   36.128   15.32   45.9   4220
  900   36.098   14.67   38.38   4240
  1000   36.063   13.65   30.05   4276
  1050   36.035   12.93   25.76   4300
  1100   36.003   12.32   22.05   4344
  1150   35.962   11.48   18.79   4395
  1200   35.913   10.71   16.17   4453
  1250   35.877   9.92   13.88   4519
  1300   35.827   9.12   12.07   4617
表7Foreman_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)   ASR(%)   Bits/frame
  0   33.065   30.71   100   14358
  500   33.062   30.06   93.78   14372
  600   33.065   29.82   90.1   14624
  700   33.057   30.48   84.1   14390
  800   33.054   30.12   77.11   14380
  900   33.051   29.64   69.96   14436
  1000   33.039   28.97   62.94   14452
  1100   33.019   27.81   56.76   14535
  1200   32.995   26.76   51.13   14631
  1300   32.980   25.23   45.7   14776
  1400   32.947   24.06   41.08   14940
  1500   32.915   22.68   36.84   15122
  1600   32.882   21.26   32.93   15380
  1700   32.854   20   29.7   15617
  1800   32.826   18395   26.91   15898
表3News_cif流测试数据(其中Bits/frame为每帧的比特数)
  阈值   PSNR   ESR(%)   ASR(%)   Bits/frame
  0   34.664   13.61   100   8375
  300   34.664   13.61   90.39   8375
  400   34.664   13.61   82.2   8375
  500   34.662   13.61   68.54   8380
  600   34.663   13.54   60.92   8373
  700   34.659   13.45   54.64   8381
  800   34.647   13.14   47.03   8397
  900   34.630   12.68   40.5   8409
  1000   34.609   12.07   34.87   8466
  1100   34.590   11.38   30.14   8504
  1200   34.564   10.53   25.71   8561
  1300   34.537   9.66   21.36   8654
  1400   34.501   8.93   17.72   8757
  1500   34.473   8.08   14012   8858
为了找到各个测试流的最优阈值,需要对每个流的SAD_threshold和ASR进行函数拟合,从而找到最优的ASR值,图3是在Matlab中采用三次样条插值函数对Akiyo_cif测试流的拟合结果。
通过计算函数的拐点可以得到该测试流的最优阈值和此时的ASR分别是850和26.28%,也就是说,当把阈值设为850时,只有26.28%的块需要搜索。查表可以得到此时的PSNR损失为0.04,几乎可以忽略。
我们将最优阈值对应的实际搜索比称为最优搜索比率(OptimalSearch Ration)。采用同样的方法可以计算出其它测试流的最优阈值和最优搜索比,总结如下:
  测试流   ESR(有效搜索比)   OSR(最优搜索比)   SAD_threshold
  Hall_cif   4.84%   16.44%   1300
  Akiyo_cif   7.05%   26.28%   850
  Container_cif   8.09%   27.09%   1400
  News_cif   12.07%   34.87%   900
  Mother_daughter_cif   14.67%   38.38%   900
  Coastguard_cif   23.08%   41.3%   1800
  Foreman_cif   25.23%   45.7%   1300
图4为考虑到计算的复杂度,采用线性拟合,得到阈值最优时的ESR与0SR的函数关系式:
OSR=2*ESR+10when ESR<15                        (公式3)
OSR=1*ESR+20when ESR>=15
图5为动态调整阈值步骤的流程图;以下参照图5描述动态调整阈值的计算步骤,其中,P帧是指单向预测帧,通常以前一个P帧作为参考帧,来消除时间上的冗余,同时也将作为下一个P帧的参考帧。
步骤1:编码一个视频段(GOP)501,并在此前预设:
blocks=0,blocks_Search=0,blocks_EffectiveSearch=0,SAD_threshold=SAD0
步骤2:判断是否为最后帧504,若为是,则结束;
否则,对于每一个块:blocks++506;
预测目标块估计:使用“取中值法”从目标块的‘左’,‘上’,‘上右’三个位置的运动向量中挑选出预测运动向量,将19×19的参考块复制到高速缓存,使用预测运动向量对参考块插值得到预测目标块,并计算预测目标块与目标块之间的绝对误差和(SAD)507;
如果预测SAD小于阈值508,则预测运动向量是最优运动向量,从而得到最优运动向量,然后继续判断是否为最后块505,直至该P帧的所有目标块都搜索完毕;
否则,拷贝剩余的2343字节的搜索窗口至高速缓存,对该目标块实行整像素搜索和分像素搜索,得到最优运动向量和相应的最优SAD 509;
blocks_Search++510;
如果最优SAD大于或等于预测SAD 511,则预测运动向量是最优运动向量,从而得到最优运动向量,然后继续判断是否为最后块505,直至该P帧的所有目标块都搜索完毕;
否则,blocks_EffectiveSearch++512,实际估计得到的运动向量是最优运动向量,从而得到最优运动向量;
步骤3:继续步骤2,判断是否为最后块505,直至该P帧的所有目标块都搜索完毕。
步骤4:分别利用公式(1),(2),(3)初始化数据,即计算该P帧的ESR,ASR和OSR 502;
步骤5:使用以下公式修改下一P帧的阈值:
SAD _ threshold n + 1 = SAD _ threshold n ( 1 + ASR n - OSR n 2 × OSR n ) 503 ;
其中,SAD_thresholdn+1表示第n+1帧图像的绝对误差和阈值,SAD_thresholdn表示第n帧图像的绝对误差和阈值,ASRn表示第n帧图像的实际搜索比,OSRn表示第n帧图像的最优搜索比。
步骤6:为了防止误差累积,到下一个视频段(GOP)时,重新设定SAD_threshold=SAD0,但blocks,blocks_Search,blocks_EffectiveSearch依然有效。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (12)

1.一种视频编码系统中的运动估计装置,其特征在于,包括:
预测运动向量发生模块,用于产生目标块的预测运动向量;
预测目标块估计模块,使用预测运动向量对参考块进行插值得到预测目标块,并计算所述预测目标块与目标块之间的绝对误差和(SAD);
预测运动向量裁决模块,比较所述绝对误差和(SAD)与设定的阈值,基于比较结果决定是否进行整像素与分像素运动估计;
整像素与分像素运动估计模块,用于进行整像素与分像素运动估计,在搜索窗口中寻找最佳整像素匹配块。
2.根据权利要求1所述的装置,其特征在于,还包括基于当前帧的设定阈值对下一帧的阈值进行调整的装置。
3.根据权利要求2所述的装置,其特征在于,基于当前帧的设定阈值对下一帧的阈值进行调整的装置使用以下公式调整下一帧的阈值:
SAD _ threshold n + 1 = SAD _ threshold n ( 1 + ASR n - OSR n 2 × OSR n ) ,
其中,SAD_thresholdn+1表示第n+1帧图像的绝对误差和阈值,SAD_thresholdn表示第n帧图像的绝对误差和阈值,ASRn表示第n帧图像的实际搜索比,OSRn表示第n帧图像的最优搜索比。
4.根据权利要求3所述的装置,其特征在于,所述设定的阈值是通过对预定测试流的绝对误差和阈值与实际搜索比进行函数拟合而确定的。
5.根据权利要求4所述的装置,其特征在于,所述设定的阈值是通过计算所述拟合的函数的拐点而确定的。
6.根据权利要求1所述的装置,其特征在于,所述比较结果为:当所述绝对误差和(SAD)小于设定的阈值时,直接用预测运动向量作为所述目标块的运动向量;当所述绝对误差和(SAD)大于设定的阈值时,进行整像素与分像素运动估计。
7.一种视频编码系统中的运动估计方法,其特征在于,包括:
产生预测运动向量;
使用所述预测运动向量对参考块进行插值得到预测目标块,计算所述预测目标块与目标块之间的绝对误差和(SAD);
比较所述绝对误差和(SAD)与设定的阈值,基于比较结果决定是否进行整像素与分像素运动估计;
整像素与分像素运动估计,首先用菱形算法搜索最佳整像素块,然后使用分像素搜索得到最佳分像素块。
8.根据权利要求7所述的方法,其特征在于,还包括基于当前帧的设定阈值对下一帧的阈值进行调整。
9.根据权利要求8所述的方法,其特征在于,所述基于当前帧的设定阈值对下一帧的阈值进行调整使用以下公式调整下一帧的阈值:
SAD _ threshold n + 1 = SAD _ threshold n ( 1 + ASR n - OSR n 2 × OSR n ) ,
其中,SAD_thresholdn+1表示第n+1帧图像的绝对误差和阈值,SAD_thresholdn表示第n帧图像的绝对误差和阈值,ASRn表示第n帧图像的实际搜索比,OSRn表示第n帧图像的最优搜索比。
10.根据权利要求9所述的方法,其特征在于,所述设定的阈值是通过对预定测试流的绝对误差和阈值与实际搜索比进行函数拟合而确定的。
11.根据权利要求10所述的方法,其特征在于,所述设定的阈值是通过计算所拟合的函数的拐点而确定的。
12.根据权利要求7所述的方法,其特征在于,所述比较结果为:当所述绝对误差和(SAD)小于设定的阈值时,直接用预测运动向量作为所述目标块的运动向量;当所述绝对误差和(SAD)大于设定的阈值时,进行整像素与分像素运动估计。
CN 200810065972 2008-01-22 2008-01-22 视频编码系统的运动估计装置及其方法 Expired - Fee Related CN101227614B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810065972 CN101227614B (zh) 2008-01-22 2008-01-22 视频编码系统的运动估计装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810065972 CN101227614B (zh) 2008-01-22 2008-01-22 视频编码系统的运动估计装置及其方法

Publications (2)

Publication Number Publication Date
CN101227614A true CN101227614A (zh) 2008-07-23
CN101227614B CN101227614B (zh) 2010-09-08

Family

ID=39859333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810065972 Expired - Fee Related CN101227614B (zh) 2008-01-22 2008-01-22 视频编码系统的运动估计装置及其方法

Country Status (1)

Country Link
CN (1) CN101227614B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931803A (zh) * 2009-06-26 2010-12-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN101986711A (zh) * 2010-11-24 2011-03-16 清华大学 一种1/8像素精度插值方法及插值装置
CN102577389A (zh) * 2009-10-16 2012-07-11 夏普株式会社 运动图像编码装置和运动图像解码装置
US8243810B2 (en) 2009-02-18 2012-08-14 Acer Incorporated Motion estimation approach for real-time embedded multimedia design
CN102831623A (zh) * 2012-08-27 2012-12-19 深圳市捷顺科技实业股份有限公司 一种运动补偿预测误差计算方法及装置
CN103139562A (zh) * 2011-11-30 2013-06-05 富士通株式会社 运动估计方法和装置
CN103281533A (zh) * 2013-05-14 2013-09-04 芯原微电子(北京)有限公司 用于可伸缩视频编码中增强层运动估计的设备和方法
CN103903235A (zh) * 2014-01-27 2014-07-02 西安理工大学 细胞图像超分辨率重构方法
CN104427345A (zh) * 2013-09-11 2015-03-18 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
WO2017088558A1 (zh) * 2015-11-27 2017-06-01 传线网络科技(上海)有限公司 视频编码的运动补偿匹配方法和系统
EP3281410A4 (en) * 2015-04-06 2018-12-05 ATI Technologies ULC Efficient low-complexity video compression
CN110267047A (zh) * 2019-06-28 2019-09-20 苏州浪潮智能科技有限公司 视频帧间运动估计方法、装置、设备及可读存储介质
CN114040209A (zh) * 2021-10-21 2022-02-11 百果园技术(新加坡)有限公司 运动估计方法、装置、电子设备及存储介质
CN114401405A (zh) * 2022-01-14 2022-04-26 安谋科技(中国)有限公司 一种视频编码方法、介质及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101990055B (zh) * 2010-11-13 2012-05-23 天津大学 新型运动估计方法

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8243810B2 (en) 2009-02-18 2012-08-14 Acer Incorporated Motion estimation approach for real-time embedded multimedia design
US9432692B2 (en) 2009-06-26 2016-08-30 Huawei Technologies Co., Ltd. Method, apparatus and device for obtaining motion information of video images and template construction method
CN102883160A (zh) * 2009-06-26 2013-01-16 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN101931803A (zh) * 2009-06-26 2010-12-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN102883160B (zh) * 2009-06-26 2016-06-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN101931803B (zh) * 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN102577389A (zh) * 2009-10-16 2012-07-11 夏普株式会社 运动图像编码装置和运动图像解码装置
CN101986711A (zh) * 2010-11-24 2011-03-16 清华大学 一种1/8像素精度插值方法及插值装置
CN101986711B (zh) * 2010-11-24 2013-01-16 清华大学 一种1/8像素精度插值方法及插值装置
CN103139562A (zh) * 2011-11-30 2013-06-05 富士通株式会社 运动估计方法和装置
CN102831623B (zh) * 2012-08-27 2015-10-28 深圳市捷顺科技实业股份有限公司 一种运动补偿预测误差计算方法及装置
CN102831623A (zh) * 2012-08-27 2012-12-19 深圳市捷顺科技实业股份有限公司 一种运动补偿预测误差计算方法及装置
CN103281533B (zh) * 2013-05-14 2016-02-24 芯原微电子(北京)有限公司 用于可伸缩视频编码中增强层运动估计的设备和方法
CN103281533A (zh) * 2013-05-14 2013-09-04 芯原微电子(北京)有限公司 用于可伸缩视频编码中增强层运动估计的设备和方法
CN104427345A (zh) * 2013-09-11 2015-03-18 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
CN103903235B (zh) * 2014-01-27 2017-06-06 西安理工大学 细胞图像超分辨率重构方法
CN103903235A (zh) * 2014-01-27 2014-07-02 西安理工大学 细胞图像超分辨率重构方法
EP3281410A4 (en) * 2015-04-06 2018-12-05 ATI Technologies ULC Efficient low-complexity video compression
WO2017088558A1 (zh) * 2015-11-27 2017-06-01 传线网络科技(上海)有限公司 视频编码的运动补偿匹配方法和系统
CN110267047A (zh) * 2019-06-28 2019-09-20 苏州浪潮智能科技有限公司 视频帧间运动估计方法、装置、设备及可读存储介质
CN110267047B (zh) * 2019-06-28 2021-06-29 苏州浪潮智能科技有限公司 视频帧间运动估计方法、装置、设备及可读存储介质
CN114040209A (zh) * 2021-10-21 2022-02-11 百果园技术(新加坡)有限公司 运动估计方法、装置、电子设备及存储介质
CN114401405A (zh) * 2022-01-14 2022-04-26 安谋科技(中国)有限公司 一种视频编码方法、介质及电子设备

Also Published As

Publication number Publication date
CN101227614B (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
CN101227614B (zh) 视频编码系统的运动估计装置及其方法
JP4001400B2 (ja) 動きベクトル検出方法及び動きベクトル検出装置
US6148027A (en) Method and apparatus for performing hierarchical motion estimation using nonlinear pyramid
EP1661384B1 (en) Semantics-based motion estimation for multi-view video coding
US8009923B2 (en) Method and system for motion estimation with multiple vector candidates
JP2667375B2 (ja) 映像フレーム差を利用した映像信号伝送装置
CN101222638B (zh) 多视视频编解码方法及装置
JP2003284076A (ja) Mpeg映像圧縮技術を利用したデジタル映像格納装置における動き検出装置及びその方法
TW288247B (en) Method and apparatus for detecting optimum motion vectors based on a hierarchical motion estimation approach
US20110050993A1 (en) Motion estimating method and image processing apparatus
CN103475879A (zh) 一种分布式视频编码中边信息生成方法
US6501799B1 (en) Dual-prime motion estimation engine
US20080181310A1 (en) Motion search method and apparatus for minimizing off-chip memory access
WO2006050651A1 (en) Method for performing motion estimation
JP3681784B2 (ja) 映像信号符号化装置
Kaushik Comparative analysis of exhaustive search algorithm with ARPS algorithm for motion estimation
KR100490730B1 (ko) 비디오 영상 압축 시스템에서의 적응적 패턴을 이용한움직임 예측 장치 및 방법
KR101810118B1 (ko) 프로파일 정보 기반 움직임 추정장치 및 방법
JP4440233B2 (ja) エラー隠匿方法及び装置
CN100414998C (zh) 一种视频数据压缩中运动估计的方法
KR101895822B1 (ko) 프로파일 정보 기반 움직임 추정장치 및 방법
KR100275546B1 (ko) 적응형 변환 파라미터 검출방법
Tsai et al. On adaptive pattern selection for block motion estimation algorithms
KR0159301B1 (ko) 대역 분할 부호화 장치에서의 움직임 추정 방법
KR100212560B1 (ko) 하이브리드 윤곽 부호화에서의 부호화 모드 결정장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 519085 hi tech Zone, Guangdong, Zhuhai science and Technology Innovation Coast Road, No. four, No. 1

Patentee after: ACTIONS SEMICONDUCTOR Co.,Ltd.

Address before: 519085 No. 1, unit 15, building 1, 1 Da Ha Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: ACTIONS SEMICONDUCTOR Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20170612

Address after: 519085 C District, 1# workshop, No. 1, science and technology No. four road, hi tech Zone, Zhuhai, Guangdong, China

Patentee after: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

Address before: 519085 hi tech Zone, Guangdong, Zhuhai science and Technology Innovation Coast Road, No. four, No. 1

Patentee before: ACTIONS SEMICONDUCTOR Co.,Ltd.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100908

Termination date: 20220122

CF01 Termination of patent right due to non-payment of annual fee