CN101494783A - 视频运动估计 - Google Patents

视频运动估计 Download PDF

Info

Publication number
CN101494783A
CN101494783A CNA2008101897517A CN200810189751A CN101494783A CN 101494783 A CN101494783 A CN 101494783A CN A2008101897517 A CNA2008101897517 A CN A2008101897517A CN 200810189751 A CN200810189751 A CN 200810189751A CN 101494783 A CN101494783 A CN 101494783A
Authority
CN
China
Prior art keywords
motion vector
encoder
piece
distortion
selector
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.)
Pending
Application number
CNA2008101897517A
Other languages
English (en)
Inventor
H·蒋
B·劳赫富斯
N·卢
S·王
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101494783A publication Critical patent/CN101494783A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)

Abstract

本发明为“视频运动估计”。根据本发明的一些实施例,对于运动估计的目的,可使用硬件计算失真。可在频域中确定失真。在一些实施例中,可利用改进的哈尔小波变换。在一些实施例中,可为每个位置确定根据运动矢量的数量的代价以获得更好的失真。可利用查找表以确定可接受的代价。在一些情况下,用户能输入关于可接受代价的信息。

Description

视频运动估计
技术领域
本发明涉及视频运动估计。
背景技术
本发明涉及数字视频图像编码,具体涉及关于对视频图像数据编码的运动估计。
为了有效地通过窄带信道传输视频图像与/或存储视频图像,优选使用已知的压缩方法对数字视频数据编码。例如,要在具有有限可用的内存和处理时间的个人计算机系统上显示实时运动视频,优选利用图像帧序列中尽可能多的冗余来对数字图像数据编码。例如,序列中连续的图像在视觉上是相似的。利用这种冗余的一个方式是使用运动估计对视频图像编码。在运动估计中,图像编码器生成运动矢量(其表示来自一个图像帧的不同区域的相对运动),以形成对下一图像帧中的多个区域的逼近。
使用运动估计编码的视频图像使用运动补偿解码。在运动补偿中,依据运动估计期间编码器生成的运动矢量,图像解码器通过移动前一图像帧的不同区域逼近图像帧。
在常规的运动估计中,将图像帧n分成称作块的长方形或正方形子图像。然后将图像帧n的每个块与前一图像帧n-1比较,以试图识别对应于图像帧n中此块的图像帧n-1中的区域。然后为在图像帧n-1中具有识别的对应区域的图像帧n的每个块生成运动矢量。运动矢量表示了图像帧n的块与图像帧n-1中对应区域之间的相对的矢量距离。
发明内容
本发明提供一种方法,包括:通过使用硬件在频域中检测失真来估计视频帧中的运动。
本发明还提供一种方法,包括:通过确定因为使用更多的运动矢量以获得更好的失真所造成的每个位置的代价来估计视频帧中的运动。
本发明还提供一种图像编码器,包括:存储器;以及耦合到所述存储器的块选择器,所述块选择器使用硬件在频域中检测失真。
本发明还提供一种图像编码器,包括:存储器;以及耦合到所述存储器的块选择,确定因为使用更多的运动矢量以获得更好的失真所造成的每个图像位置的代价。
附图说明
图1是依据一个实施例的编码器的框图;
图2是根据一个实施例的失真计算器的硬件实现;
图3是具有最大运动矢量数限制的运动估计器的硬件实现;
图4是样本分段线性曲线;以及
图5是用于一个实施例的系统描绘。
具体实施方式
参照图1,依据一个实施例,示出图像编码器10的框图。图像编码器10接收第一和第二图像,并生成用于编码第二图像的运动矢量。具体是,图像编码器10的存储器11接收第一和第二图像。块选择器12选择第二图像的块,运动估计器13将所选择的块与第一图像比较,以识别对应于第二图像的所选择的块的第一图像的区域。运动矢量选择器14使用第一和第二图像的对应块之间的相对失真来选择运动矢量,该运动矢量具有最小的失真加权量和描述这些运动矢量的位成本,位流生成器15使用该运动矢量编码第二图像。在一个实施例中,块选择器12、运动估计器13、运动矢量选择器14和位流生成器15都在协处理器16中实现。
运动估计涉及核心全像素运动搜索处理(也叫整数运动搜索)、半像素或四分之一像素精细搜索和双向精细搜索、当不能找到更好的运动预测时作为备选的帧内预测以及用于选择运动矢量的机制。
运动矢量的失真是使用预定度量由运动矢量覆盖的区域中原来的像素和其对应的参考像素之间的差异。最常用的度量是绝对误差和(SAD)和均方误差(MSE)。
视频压缩中,在标准离散余弦变换(DCT)或DCT变换的一些变种后,通常将像素值存储于频域中。直接在频域中测量失真可给出较好的压缩结果。但是,它可能在运算上花费很多。通过使用基于哈尔的小波变换可计算失真度量,其在运算上花费较少。此外,通过简化基于哈尔的小波变换,可进一步简化运算并可使用硬件做失真确定。
哈尔变换能够应用于任意数目的二次方项。实际上,从2N项{x0,x1,…,x2N-1}的任何序列开始,一个一维的哈尔变换步骤将数据序列转换为长度为N的两个序列:
低频序列: { 2 2 ( x 0 + x 1 ) , 2 2 ( x 2 + x 3 ) , · · · , 2 2 ( x 2 N - 2 + x 2 N - 1 ) } , 以及
高频序列: { 2 2 ( x 0 - x 1 ) , 2 2 ( x 2 - x 3 ) , · · · , 2 2 ( x 2 N - 2 - x 2 N - 1 ) } .
依据一个实施例,通过重复地将一维的哈尔变换步骤应用到低频序列直到仅剩一项,得到哈尔小波变换。
为了将哈尔小波应用于图像块,可通过交替水平地和垂直地应用一维步骤改进二维哈尔变换。假定图像块 { p ( x , y ) } 0 &le; x < 2 n , 0 &le; y < 2 m , 可将标准的二维哈尔小波变换应用于图像块2n×2m
在第一步中,可将水平哈尔变换应用于每一行以生成2n-1×2m的两个块:
{ p L ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m { p H ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m
其中,pL是最低频率分量,而pH是最高频率分量。然后可将垂直哈尔变换应用于两个2n-1×2m块的每一行以得到四个2n-1×2m-1块:
{ p LL ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m - 1 , { p HL ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m - 1
{ p LH ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m - 1 , 以及 { p HH ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m - 1
其中,pLL是最低频率分量,pHH是最高频率分量,而pHL和pLH是中间频率分量。最后,将以上步骤重复应用于 { p LL ( x , y ) } 0 &le; x < 2 n - 1 , 0 &le; y < 2 m - 1 .
等效地,可使用如下伪代码:
void Haar4x4TransformMethodl(int Block[4][4],int Haar[4][4])
{
   /对4行做第一级4元素水平哈尔
   For(int j=0;j<4;j++){
      temp[j][3]=(Block[j][2]-Block[j][3]);
      temp[j][2]=(Block[j][0]-Block[j][1]);
      temp[j][1]=(Block[j][2]+Block[j][3]);
      temp[j][0]=(Block[j][0]+Block[j][1]);
   }
   //对2列做第一级4元素垂直哈尔
   For(int i=0;i<2;i++){
      Haar[3][i]=(temp[2][i]-temp[3][i])/2;
      Haar[2][i]=(temp[0][i]-temp[1][i])/2;
      Haar[1][i]=(temp[2][i]+temp[3][i])/2;
      Haar[0][i]=(temp[0][i]+temp[1][i])/2;
   }
   //对2行做第二级2元素水平哈尔
      temp[1][1]=(Haar[1][0]-Haar[1][1]);
      temp[0][1]=(Haar[0][0]-Haar[0][1]);
      temp[1][0]=(Haar[1][0]+Haar[1][1]);
      temp[0][0]=(Haar[0][0]+Haar[0][1]);
   //对1列做第二级2元素垂直哈尔
      Haar[1][1]=(temp[0][1]-temp[1][1])/2;
      Haar[0][1]=(temp[0][1]+temp[1][1])/2;
      Haar[1][0]=(temp[0][0]-temp[1][0])/2;
    Haar[0][0]=(temp[0][0]+temp[1][0])/2;
}
void Haar4x4TransformMethod2(int Block[4][4],int Haar[4][4])
{
   /对4行做第一级4元素水平哈尔
   For(int j=0;j<4;j++){
      Haar[j][3]=(Block[j][2]-Block[j][3])*HALFSQRT2;
      Haar[j][2]=(Block[j][0]-Block[j][1])*HALFSQRT2;
      Block[j][1]=(Block[j][2]+Block[j][3]);
      Block[j][0]=(Block[j][0]+Block[j][1]);
   }
   //对2列做第一级4元素垂直哈尔
   For(int i=0;i<2;i++){
      Haar[3][i]=(Block[2][i]-Block[3][i])/2;
      Haar[2][i]=(Block[0][i]-Block[1][i])/2;
      Block[1][i]=(Block[2][i]+Block[3][i])/2;
      Block[0][i]=(Block[0][i]+Block[1][i])/2;
   }
   //对2行做第二级2元素水平哈尔
   Haar[1][1]=(Block[1][0]-Block[1][1])*HALFSQRT2;
   Haar[0][1]=(Block[0][0]-Block[0][1])*HALFSQRT2;
   Block[1][0]=(Block[1][0]+Block[0][1]);
   Block[0][0]=(Block[0][0]+Block[0][1]);
   //对1列做第二级2元素垂直哈尔
   Haar[1][0]=(Block[0][0]-Block[1][0])/2;
   Haar[0][0]=(Block[0][0]+Block[1][0])/2;
}
在一些实施例中,与未改进的哈尔小波相比,此方法具有较少的运算,且避免了对
Figure A20081018975100091
的归一化的需要。
根据一个实施例,改进的哈尔变换可用如图2所示的硬件48实现,根据一个实施例它可以是运动估计器13(图1)的一部分。在一个实施例中,加法器50和减法器52的阵列可从像素的4x4阵列p[0,0]、p[1,0]、p[2,0]...p[2,3]和p[3,3]接收输入。相对于常规哈尔变换,消除二分之根号二因子的应用和对较低频分量的限制可简化计算。
在视频压缩中,可使用预测码而不是发送或存储实际的像素数据。例如,给定关于相同图像部分的两个预测码,如果使用码的成本不是问题或相同,将希望使用具有较少预测失真的预测码。使用码的成本是其用于获得那个失真等级的位数。一般来说,失真越好,获得它所需要的位越多,并且获得改良的失真可能涉及的开销越多。开销可导致对更高带宽传输的需要,否则不能以相对高的速度传输数据。
调整的失真是失真与调整的成本计算之和。调整的成本计算是用来编码运动矢量的位数,乘以称为质量参数的因子。质量参数λ可由所利用的特定压缩方案确定。它表示将容许多少失真。它能基于能容许多少失真以及可容许多少成本来选取。λ越大,选取用于运动估计的块就越大,导致成本越少。λ越小,块越小,但就位数而言成本越大。把要求为给定失真编码的位数称为编码成本或编码代价。
在一个实施例中使用硬件可确定调整的失真或编码成本。在本发明的一些实施例中,在硬件中每个分析位置上计算编码成本。如图1中表示的,这可使用分段线性曲线(图4)实现以确定成本。在一个实施例中,从所有可能的位置中,可选取帧上的八个位置。选取那八个位置是因为它们给出最小的失真,而且那些用来确定分段线性曲线。虽然,在一个实施例中,利用八个位置,但一般的想法是使用少于所有可用的位置以及选取有限数量的、具有最佳调整的失真的位置。
在一个实施例中,如图4中所示,分段线性曲线可以是对数曲线。用纵坐标上具有代价测量而横坐标给出位数的图表示曲线。曲线显示能容许多少的失真以避免额外的成本。
在一些实施例中,如图1所表示的,用户可供给分段线性曲线。也就是说,用户给系统提供它在较高的失真与较低的成本之间做出权衡的所需信息。于是系统10能有效地应用此曲线以在每个位置上做出能容许多少失真的确定。
可将运动矢量相对预测运动矢量存储在水平和垂直分量中。越接近预测运动矢量,编码要求的位越少。用户能指定用于调整的失真计算的预测中心和成本计算代价曲线。预测中心采用四分之一像素单位的一对坐标。
为简化代价曲线的描述,仅使用二的幂次的位置(采用四分之一像素单位)上的八个关键成本代价。这八个位置是LUT_MV[8]:
0、1、2、4、8、16、32以及64.
所以将运动矢量坐标成本计算定义为:
Costing(v)=LUT_MV[0],如果v=0;
Costing(v)=LUT_MV[p+1],如果|v|=2p,对于任何p≤6;
Costing(v)=LUT_MV[p+1]+((LUT_MV[p+1]-LUT_MV[p+2])*k)>>p,
如果|v|=2p+k,对于任何p<6且k<2p,以及
Costing(v)=LUT_MV[7]+|v|-64,如果dx>64。[Ning:什么是z和dx?]
所以将运动矢量坐标成本计算定义为:
Costing(v)=LUT_MV[0],如果v=0;
Costing(v)=LUT_MV[p+1],如果|v|=2p,对于任何p≤6;
Costing(v)=LUT_MV[p+1]+((LUT_MV[p+1]-LUT_MV[p+2])*k)>>p,
如果|v|=2p+k,对于任何p<6且k<2p,以及
Costing(v)=LUT_MV[7]+|v|-64,如果|v|>64。
且将关于运动矢量mv的总成本计算代价定义为水平和垂直分量之和:
Costing(mv)=Costing(mv.x-pred.x)+Costing(mv.y-pred.y)
为了进一步简化,将每个成本计算代价存储在各四位的两个单元的八位中:base和shift。将成本计算值指定为(base<<shift)。
除运动矢量的编码外,在一个实施例中,宏块分区类型和模式的编码可由另一组模式查找表(其指定使用分区类型和模式的另外的成本或代价)来覆盖。
不只一组查找表可模拟潜在的质量变量,这些质量变量是调整宏块级视频质量所需的。为了减少查找表的大小,能使用具有可更新的乘法器的固定模式且也能将关于运动矢量分量的查找表的大小限制为一小组接近零的值。能将超出范围的运动矢量成本计算假定为遵循预定的线性模式。
因此,在一些实施例中,把数据变换到频域之后可确定失真,而且使用改进的哈尔小波变换失真计算可在硬件中进行。改进的哈尔小波变换可应用于低频部分,而忽视更高频率分量以简化计算且使计算更加适合于硬件实现。
在一个实施例中,在可限制运动矢量的最大数量的系统中能应用用于确定失真和调整的失真的以上技术。例如,一些标准可以控制运动矢量的数量。于是问题变成给定运动矢量的最大数量的限制,如何能获得最低的可能的失真。例如,高级视频编码(AVC)(H.264)立场明确地指定了运动矢量的最大数量。参见瑞士日内瓦电信标准部门的国际电信联盟的ITU-T视频编码专家组MPEG4的第10部分。
参照图3,16x16的源块能够不分开(即对于整个块一个单一的运动矢量)、分成两个16x8块、分成两个8x16块,(在块41中描述以上三种情况),或进一步分成四个8x8子块或甚至更小。对于四个单独的8x8块40中的每一个,可消除两个运动矢量选择中的一个。例如,如上所述,基于确定的最小总的调整的失真,可消除两个8x4或两个4x8。随后将三种选择输出为8x8运动矢量的一个运动矢量a、8x4的或4x8的两个运动矢量a以及4x4的四个运动矢量a。
然后,在块42中,将第一8x8块的三种选择和第二8x8块的三种选择组合成六对。为两个运动矢量b选取一个运动矢量a和另一个运动矢量a。为三个运动矢量b选取一个运动矢量a和两个运动矢量a之一以及选取两个运动矢量a和一个运动矢量a之一。然后,为四个运动矢量b选取两个运动矢量a和两个运动矢量a。然后,为五个运动矢量b在(一个运动矢量a和四个运动矢量a)以及(四个运动矢量a和一个运动矢量a)之间做选择。然后,为六个运动矢量b选取(两个运动矢量a和四个运动矢量a)或(四个运动矢量a和两个运动矢量a)之一。最后为八个运动矢量b选择四个运动矢量a和四个运动矢量a。
类似地使用另一个8x8合并42,将第三8x8块40的三个选择和第四8x8块40的三个选择组合成六对。
在块44中,将前两组比较作为十二个候选。为一个运动矢量c选取一个16x16块。为两个运动矢量c选取两个16x8或两个8x16块之一。为四个运动矢量c从顶部组选取两个运动矢量b和从底部组选取两个运动矢量b。作为记法,我们说4MVc源自组合(2,2)MVb。相似地,对于五个运动矢量的情况,我们合并(2,3)MVb(即来自顶部组的两个运动矢量b和来自底部组的三个运动矢量b)和(3,2)MVs(来自顶部组的三个运动矢量b和来自底部组的两个运动矢量b)以生成五个运动矢量c,5MVc。对于六个运动矢量c,6MVc,选取两个运动矢量b和四个运动矢量b的组(2,4)MVb或四个运动矢量b和两个运动矢量b的组(4,2)MVb或三个运动矢量b和三个运动矢量b的组(3,3)MVb之一。类似地,对于七个运动矢量c,在(2,5)运动矢量b、(5,2)运动矢量b、(3,4)运动矢量b以及(4,3)运动矢量b之中选取最佳之一。对于八个运动矢量c,选取(2,6)运动矢量b、(6,2)运动矢量b、(3,5)运动矢量b、(5,3)运动矢量b以及(4,4)运动矢量b之一。对于九个运动矢量c,选取(3,6)运动矢量b、(6,3)运动矢量b、(4,5)运动矢量b或(5,4)运动矢量b之一。随后,对于十个运动矢量c,选取(2,8)运动矢量b、(8,2)运动矢量b、(4,6)运动矢量b、(6,4)运动矢量b或(5,5)运动矢量b之一。随后,对于十一个运动矢量c,选取(3,8)运动矢量b、(8,3)运动矢量b、(5,6)运动矢量b或(6,5)运动矢量b之一。其后,对于十二个运动矢量,选取(4,8)运动矢量b、(8,4)运动矢量b以及(6,6)运动矢量b之一。对于十三个运动矢量c,选取(5,8)运动矢量b以及(8,5)运动矢量b之一。对于十四个运动矢量c,选取一个(6,8)运动矢量b以及(8,6)运动矢量b。最后,对于十六个运动矢量c选取8运动矢量b以及8运动矢量b。
在下一步中,在块46选取最佳运动矢量c,所选取的运动矢量的数量少于指定的最大运动矢量的数量。
在一些实施例中,为确保选取的是最佳选择,可能希望选择不只一个结果。可有多种方式挑选多个候选。在这些方式中包含以某一预定失真容许的误差挑选另外的结果。于是,挑选的所有结果与最佳结果之间的调整的失真不差于容许的误差T。
作为另一备选,能选取不只一个但固定数量的最佳结果。作为还有的另一可能性,能将最后的14个结果分为k个不相交的组并且可挑选k-1个另外的结果以致于每组始终有一个。例如,可将结果分为三组。一组仅含有一个运动矢量c和两个运动矢量c,其他组含有所有其他的结果。
在一些情况下,以上三种技术可一起使用。例如,如果将方法一和方法二组合,这导致仅关于其失真在容许误差内的额外的结果。
刚刚描述的处理一般在整数像素运动搜索、分数运动搜索和双向搜索之后对所有的可能的候选子块执行。通常,6x16宏块的41个子块,其中有一个16x16的块、两个16x8的块、两个8x16的块、四个8x8的块、八个8x4的块、八个4x8的块以及16个4x4的块。然而,子块的数量可根据允许的子分区而变化。例如,为了减少到25,不允许8x4的块和4x8的块,或如果允许更多的分区(如在场模式中、或在更小的块大小或规则形状中),它会增加。
然而,为了减少运算和节省功率,可更早地执行宏块分区,在分数搜索之后或者正好在整数搜索之后。后面的精细步骤仅能应用于最佳选取分区中涉及的子块。
参照图5,在一个实施例中,计算机系统52可包含图1中所示的图像编码器10。在一个实施例中,计算机系统52可包含由总线56耦合到存储器集线器58的至少一个处理器54。在一个实施例中,可将存储器集线器耦合到包含视频压缩储存设备62的系统存储器60。在一个实施例中,也可将存储器集线器58耦合到图形处理器64,其可耦合到显示器66。在一个实施例中,图像编码器10可以是图形处理器64的部分。当然,也可使用其它的架构。
在一些实施例中,视频压缩储存设备62可存储查找表以确定关于位成本计算的可接受性代价。然而,在其他的实施例中,此表可存储于图1所示的运动估计器13或运动矢量选择器14内。
在一些实施例中,图3中示出的分量或序列可在图1中的硬件中的运动矢量选择器14内实现。在其他的实施例中,它们可在软件中实现。例如,存储为图5所示的视频压缩储存设备62的部分。
贯穿此说明书提到“一个实施例”或“实施例”,意味着结合实施例描述的具体的特征、结构或特性属于本发明包含的至少的一个实现中。因此,短语“一个实施例”或“在实施例中”的出现未必指相同的实施例。此外,具体的特征、结构或特性可以除示出的具体的实施例之外的其他合适的形式建立,且本申请的权利要求内将包含所有这样的形式。
虽然参照有限数量的实施例描述了本发明,但本领域技术人员将由此领会多种修改及变化。所附权利要求旨在覆盖属于本发明的实质和范围的所有此类修改和变化。

Claims (30)

1.一种方法,包括:
通过使用硬件在频域中检测失真来估计视频帧中的运动。
2.如权利要求1所述的方法,包括使用哈尔小波以确定失真。
3.如权利要求2所述的方法,包括当使用所述哈尔小波时消除乘以根号二分之一。
4.一种方法,包括:
通过确定因为使用更多的运动矢量以获得更好的失真所造成的每个位置的代价来估计视频帧中的运动。
5.如权利要求4所述的方法,包括使用查找表以确定用于位成本计算的可接受的代价。
6.如权利要求5所述的方法,包括使用户能够输入关于可接受的代价的信息。
7.如权利要求5所述的方法,包括使用对数曲线指定不同的位置的所述可接受的代价。
8.如权利要求5所述的方法,包括使用每代价八位将代价存储为查找表。
9.如权利要求8所述的方法,包括对于预定数量的运动矢量最小化失真。
10.如权利要求4所述的方法,包括使用预定数量的运动矢量以确定使用哪些位置来估计运动。
11.如权利要求10所述的方法,包括对给定总数的运动矢量选择最佳运动矢量分区。
12.如权利要求10所述的方法,包括选择像素数据的第一8x8块,以及为该块选择关于四个4x4块、二个8x4块和一个8x8块的运动矢量。
13.如权利要求12所述的方法,包括从像素数据的第二8x8块中选择关于四个4x4、两个8x4或4x8块和一个8x8块的运动矢量,然后从关于第一和第二块的运动矢量中选择以生成多个选择的运动矢量。
14.如权利要求13所述的方法,包括从像素数据的第三和第四块中选择运动矢量,合并来自所述第三和第四块的所选择的运动矢量,然后合并来自所述第一、第二、第三和第四块的运动矢量。
15.如权利要求14所述的方法,包括对于给定数量的运动矢量选择产生最小失真的运动矢量。
16.一种图像编码器,包括:
存储器;以及
耦合到所述存储器的块选择器,所述块选择器使用硬件在频域中检测失真。
17.如权利要求16所述的编码器,其中所述块选择器使用哈尔小波确定失真。
18.如权利要求17所述的编码器,当使用所述哈尔小波时,所述编码器消除乘以根号二分之一。
19.一种图像编码器,包括:
存储器;以及
耦合到所述存储器的块选择,确定因为使用更多的运动矢量以获得更好的失真所造成的每个图像位置的代价。
20.如权利要求19所述的编码器,所述存储器存储查找表以确定用于位成本计算的可接受的代价。
21.如权利要求20所述的编码器,所述编码器使用户能够输入关于可接受的代价的信息。
22.如权利要求21所述的编码器,所述编码器使用对数曲线指定不同位置的所述可接受的代价。
23.如权利要求22所述的编码器,所述存储器使用每代价八位将代价存储为查找表。
24.如权利要求23所述的编码器,所述编码器为预定数量的运动矢量最小化失真。
25.如权利要求19所述的编码器,所述编码器使用预定数量的运动矢量以确定使用哪些位置来估计运动。
26.如权利要求25所述的编码器,所述块选择器对于给定总数的运动矢量选择最佳运动矢量分区。
27.如权利要求25所述的编码器,包含选择器,所述选择器选择像素数据的第一8x8块,以及为该块选择关于四个4x4块、二个8x4块和一个8x4块的运动向量。
28.如权利要求27所述的编码器,包含第二选择器,所述第二选择器从像素数据的第二8x8块中选择关于四个4x4、两个8x4或4x8块和一个8x8块的运动矢量,然后从关于所述第一和第二块的运动矢量中选择以生成多个选择的运动矢量。
29.如权利要求28所述的编码器,包含第三选择器,所述第三选择器从像素数据的第三和第四块中选择运动矢量,合并来自所述第三和第四块的所选择的运动矢量,然后合并来自第一、第二、第三和第四块的运动矢量。
30.如权利要求29所述的编码器,其中所述第三选择器对于给定数量的运动矢量选择产生最少失真的运动矢量。
CNA2008101897517A 2007-12-31 2008-12-30 视频运动估计 Pending CN101494783A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/006,250 US20090168871A1 (en) 2007-12-31 2007-12-31 Video motion estimation
US12/006250 2007-12-31

Publications (1)

Publication Number Publication Date
CN101494783A true CN101494783A (zh) 2009-07-29

Family

ID=40527611

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101897517A Pending CN101494783A (zh) 2007-12-31 2008-12-30 视频运动估计

Country Status (3)

Country Link
US (1) US20090168871A1 (zh)
EP (1) EP2076047B1 (zh)
CN (1) CN101494783A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937560A (zh) * 2010-08-30 2011-01-05 中兴通讯股份有限公司 失真图像处理方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2355512A1 (en) 2010-02-05 2011-08-10 Siemens Aktiengesellschaft A method and an apparatus for difference measurement of an image
PT3070945T (pt) * 2010-07-20 2020-04-22 Ntt Docomo Inc Dispositivo de descodificação de previsão de imagem, método de descodificação de previsão de imagem
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9942560B2 (en) * 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9774881B2 (en) * 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9519923D0 (en) * 1995-09-29 1995-11-29 Philips Electronics Nv Motion estimation for predictive image coding
JP2000511366A (ja) * 1995-10-25 2000-08-29 サーノフ コーポレイション 4分割ツリーベースの可変ブロックサイズ動き推定装置および方法
US5838828A (en) * 1995-12-12 1998-11-17 Massachusetts Institute Of Technology Method and apparatus for motion estimation in a video signal
US5844613A (en) * 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
JP4146955B2 (ja) * 1999-02-15 2008-09-10 キヤノン株式会社 画像処理方法及び画像処理装置
US7801215B2 (en) * 2001-07-24 2010-09-21 Sasken Communication Technologies Limited Motion estimation technique for digital video encoding applications
AU2003302795A1 (en) * 2002-12-11 2004-06-30 Koninklijke Philips Electronics N.V. Video encoding method and corresponding computer programme
US20050024487A1 (en) * 2003-07-31 2005-02-03 William Chen Video codec system with real-time complexity adaptation and region-of-interest coding
WO2005022918A1 (en) * 2003-08-29 2005-03-10 Koninklijke Philips Electronics N.V. System and method for encoding and decoding enhancement layer data using descriptive model parameters
EP1515561B1 (en) * 2003-09-09 2007-11-21 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for 3-D sub-band video coding
KR20050045746A (ko) * 2003-11-12 2005-05-17 삼성전자주식회사 계층 구조의 가변 블록 크기를 이용한 움직임 추정 방법및 장치
US7885335B2 (en) * 2005-09-16 2011-02-08 Sont Corporation Variable shape motion estimation in video sequence
US8208548B2 (en) * 2006-02-09 2012-06-26 Qualcomm Incorporated Video encoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937560A (zh) * 2010-08-30 2011-01-05 中兴通讯股份有限公司 失真图像处理方法及装置

Also Published As

Publication number Publication date
EP2076047B1 (en) 2018-11-21
EP2076047A2 (en) 2009-07-01
US20090168871A1 (en) 2009-07-02
EP2076047A3 (en) 2011-02-23

Similar Documents

Publication Publication Date Title
CN105763875B (zh) 图像解码装置及其方法和图像编码装置及其方法
CA2081065C (en) Image signal coding system
CN103260029B (zh) 用于对运动矢量进行编码/解码的方法和设备
CN103096080B (zh) 用于估计当前块的运动矢量的设备
KR100739281B1 (ko) 움직임 추정 방법 및 장치
CN108848380A (zh) 视频编码和解码方法、装置、计算机设备及存储介质
CN103733621B (zh) 基于低复杂度差错传播追踪的速率失真优化的视频编码模式选择
US7236634B2 (en) Image encoding of moving pictures
CN101039433B (zh) 视频编码方法和视频编码装置
US7924918B2 (en) Temporal prediction in video coding
KR100510137B1 (ko) 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
CN101494783A (zh) 视频运动估计
KR101865011B1 (ko) 모션 예측 방법
JPH114441A (ja) インターレースされたデジタルビデオ用のビデオオブジェクト平面の移動推定及び補償
KR100878536B1 (ko) 영상 보간 방법 및 장치
CN108012163A (zh) 视频编码的码率控制方法及装置
CN104980761A (zh) 用于对运动矢量进行编码和解码的方法和设备
CN102598670A (zh) 参考多个帧对图像进行编码/解码的方法和设备
CN105933717A (zh) 一种编码单元的模式决策方法和装置
CN112055203A (zh) 帧间预测方法、视频编码方法及其相关装置
CN102017626B (zh) 编码和解码方法、编码器和解码器
CN102291581A (zh) 支持帧场自适应运动估计的实现方法
CN103096064B (zh) 编码和重构像素块的方法以及相应设备
CN109688411B (zh) 一种视频编码率失真代价估计方法和装置
CN113891089B (zh) 一种运动信息候选列表的构建方法、装置及其设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090729