您好, 访客   登录/注册

浅析H.264中基于宏块灰度变化梯度的优化插值算法

来源:用户上传      作者:

  [摘要] 本文深入剖析了双线性及立方卷积法在H.264中的应用特点,提出根据宏块某一部分灰度分布的特定情况选择适当的插值算法。实验表明, 在提高插值精度的同时,一定程度上减少了运动搜索及插值运算的工作量。为基于H.264编码器的设计提供了一种新的思路。
  [关键词] H.264立方卷积插值双线性插值最佳匹配运动搜索
  
  1 引言
  H.264图像编码标准[1]是基于运动估计和补偿的,在搜索最佳匹配象素点时,未知的半像素、亚像素(1/4)精度图像信息必须通过空间内插得到。H.264建议采用二维六抽头维纳滤波器实现半像素点位置的插值,并进一步使用双线性插值法[2]来得到1/4像素点精度的数据。此插值方法相对简单,但仅考虑了四个直接邻点的影响,而未考虑到各邻点间变化率的影响,所以具有低通滤波器的性质,损失了高频分量。立方卷积法则利用了待采样点周围更大区域内像素的灰度值作三次插值,正确性更高。但算法相对复杂,运算量较大。
  2 H.264中插值法算法的应用分析
  2.1 运动搜索与插值算法
  H.264支持多重参考帧选择和多达7种[3]的运动估计模式[4],所以运动估计在H.264编码器中占用运算量更大。各种用来减小运动估计的搜索算法一般可以分为两大类:①全局搜索(FS),通过辅助的策略减少搜索的计算量。如可以动态选择搜索中心或者提前跳出匹配搜索等来减少块匹配所需的计算量。②只对部分位置进行搜索,通过减少搜索空间中的候选位置或使用特定的匹配准则来减少计算量。如新二步搜索法(TSS)、新四步搜索法和钻石搜索法。不管采用何种搜索模式,必须先搜索到宏块的最佳匹配整象素点,然后进行第一次插值得到此整象素点最近的1/2象素点;再次搜索得到最佳匹配1/2象素点,进行第二次插值得到此半象素点最近的1/4象素点;最后搜索得到最佳匹配1/4象素点。因此,插值算法的选择及优化对运动搜索的速度及运动矢量精度的极为重要。
  2.2 双线性插值法及在H.264中的应用
  双线性插值法的插入值是由周围四个栅格点的平均加权值决定。即根据待插值点与相邻点的距离来确定相应的权值并计算出待插点的插入值。对于线性函数插值,则考虑定义在矩形栅格N 范围内的函数f (x) ,一般有如下形式:
   (1)
  其中x 为N 中的一点,h(x,n)为线性插值权函数。典型的插值权函数h(x,n)是拉格朗日多项式: (2)
  式(2) 线性插值权函数变为:(3)
  H. 264采用二维6抽头维纳滤波器实现半像素点位置的插值。并进一步使用双线性插值法来得到1/4像素点精度的数据。一部分1/4像素点 a, c, d, n, f, i, k, q 其值经由相邻的整像素点和半像素点进行双线性插值获得。公式如下:
  a=(G + b + 1)>>1 c=(H + b + 1)>>1
  d=(G + h + 1)>>1 h=(M + h + 1)>>1
  i=(h + j + 1)>>1 f=(b + j + 1)>>1
  k=(j + m + 1)>>1 q=(j + s + 1)>>1 (4)
  
  
  
  图1 插值中整像素和非整像素点的位置
  另外的1/4像素插值点e, g, p, r点则经由与之相邻的一组对角线上的半像素点进行双线性插值获得。公式如下:
  e=(b + h + 1)>>1g=(b + m + 1)>>1
  p=(h + s + 1)>>1r=(m + s + 1)>>1(5)
  由公式(4)和(5)不难看出,得到一个1/4像素位置的插值点只需要2次加法, 1次移位运算。整体运算相对简单。但由双线性插值法的频谱类似于一个低通滤波器[5]。这导致高频信号不能被正确内插,而图像的边缘信息一般反映为高频信号。所以边沿被弱化,图像变得相对模糊。
  2.3 立方卷积插值法在H.264中的应用分析
  除了双线性插值法外,立方卷积插值也是常用的数据插值法。由插值理论可知,等间隔采样的二维图像立方卷积插值可表述如下:
  (6)
  其中,s(x,y) 为待插值点,c(,) 为像素点(,)处的采样值,h为插值权函数,h的选取是立方卷积插值性能的关键。
  在h.264中选取的是单变量插值核, 主要依据Coons - Gordon 曲面的布尔和思想,即一双变量插值可通过单变量插值的适当叠加来构造。单变量立方卷积插值核[6]:
   (7)
  在实际应用中一般选取A =-1/2。立方卷积内插在图像处理中,必须把一维立方卷积内插扩展成二维立方卷积内插.然后利用公式(7)取与待测像素距离最近的4*4个像素值进行插值。参照图1,具体结果如下:
  a = F; b = 0.5625(F +G) - 0.0625(E +H) ;
  c = 0.5625(F +J) -0.0625(B +N) ;
  d = 0.0625×0.0625( A+D+M+P) + 0.5625×0.5625(F+G+L+K) -0.5625×0.0625(F+G+L+K)(B+C+E+I+H+L+N+O) (8)
  总的说来立方卷积比双线性法的频带要宽,从而保留了高频分量,插值正确性更高,但计算更加复杂。
  3 H.264中合适插值算法的选择及优化
  比较以上两种算法可知, 双线性法对低频信号(即灰度均匀分布的宏块部分)比较有效,计算量相对较小; 立方卷积法对高频信号(即灰度不均匀分布的宏块部分)特别是图像边沿的保护比较有效,但计算量大。如何处理插值精度和复杂度这对矛盾。根据宏块不同部分的灰度特性选择不同的插值方法是一个好的解决方向。
  根据统计学理论,可用方差作为阈值来判定整个宏块灰度值分布的均匀情况。但由方差公式s^=∑X*X/N(9)
  可以看出需要对一个宏块内所有象素点进行平方运算再除以象素点数,判定阈值的运算量过大。另一方面,对人眼视觉影响较大的图像边沿信息一般集中在宏块的某一位置,在此位置选用立方卷积等插值精度高的算法,而另外一些灰度分布较均匀的地方选用双线性等计算相对简单的算法可充分结合这两种算法的优点。
  在一个宏块中,每两个象素点之间的距离都是一定的。对于等间隔采样数据,插值可以表示为:
  (10)
  其中h为插值核, Ck为权系数, 卷积对k个数据做处理。在实际应用中, h总是对称的, Ck即为采样值。从(10)式中不难看出, h取不同的函数就会产生不同的插值算法。事实上,若假设Xk=Xk+1成立,则不论用哪种插值方法都得到
  f(x) = f()=f(+1) (11)
  显然,如所取参考象素点的灰度值相等,不管是用双线性或立方卷积法得到的插值点灰度值均与参考点一样,人眼感觉不到任何变化。所以,要对插值点产生相对于参考点发生变化的感觉,插值点灰度必须相对附近参考点有一个梯度的化,变化越强列,视觉感越强。
  假设得到某x点处的插值数据灰度为f(x),定义此插值点相对临近点变化梯度
  (12)
  为权系数,为f(x)临近整象素点灰度值。由式(12)可以看出,权系数以及临近点数目k的选择是d精度的关键。
  对于H.264来说,在运动搜索过程中,可通过六抽头维纳滤波器得到第一次插值f(x)。考虑到计算的简便性,插值f(x)的临近点只取与它最近的两个整象素点,参考图1,例如点h取垂直方向与之最近的整象素点G,M。点b则取水平方向的点G,H。均取1/2.
  当d<5%时, f(x)的灰度相对另外两点变化不大,肉眼的视觉反应并不敏感。可近似认为运动搜索找到的半象素点相对周围灰度变化不大。实际上,第二次插值再用什么算法在效果上已无太大的差别。因此,当对宏块进行第一次插值找到最佳匹配半象素点后,如果此点相对临近区域灰度一致则选用双线性法,否则采用立方卷积法。这样处理的结果是既不损失插值质量又大大减少了运算量。
  4 实验结果及结论
  因为无论采用何种算法都要先进行六抽头维纳滤波。所以省略此步骤,直接经过分支判断判断后选用不同的算法。图2是一组放大图片的实际效果,每张取25副尺寸为100×100像素的图像采用不同方法放大成400×400像素的平均时间。虽然此算法比使用单一算法多出一个分支判断,看似增加了程序的复杂度;但实际上判断仅相当于一次简单运算,与立方卷法运算量相比微不足道。由图2可见,此方法放大效果与立方卷积法相差不大,比线性法要好。但在运算速度上有明显的差异:使用此算法比单一的立方卷积算法在速度上要提高20%―30%。另外在判断阈值时,当d小于某个值时甚至可以退出搜索过程,无疑可以节省一部分插值运算时间。具体阈值大小有待进一步论证。
  
  
  图2 立方卷积法,本文方法,线性插值法放大效果与原图对比
  
  参考文献:
  [1] Stockhammer T,Hannuksela M M,Wi-egand T.H.264/AVC inWireless Environments[J].IEEE Trans,Circuits Syst,Video Technol,2003,13(6):657-673.
  [2] I.Lille-Langoy,et al.Telenor H.26L proposal and software ITU-T SG16/Q15 doc.Q15-H-08[S].Berlin,1999-08.
  [3] 万帅,王新岱.新一代视频压缩标准H.264 [J].中国有线电视,2003,9(18):32-34.
  [4] 郑翔,叶志远,周秉锋.JVT草案中的核心技术综述[J].软件学报,2004,15(1):58-68.
  [5] Chen Ting.A study of spatial color interpolation algorithms for single-detector digital cameras [EB/OL]. http://www-ise.stanford.edu/~tingchen/,1999.
  [6] Schreiber William F,et al.Transformation between continuous and discrete representations of image:A Perceptual Approach [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1985,PAMI-7:178-186.

转载注明来源:https://www.xzbu.com/8/view-9014051.htm