用于运动估计迭代搜索的推测起始点选择转让专利

申请号 : CN200980128038.4

文献号 : CN102100068B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 中里宗弘具星友

申请人 : 索尼公司索尼电子有限公司

摘要 :

用于运动估计迭代搜索的推测起始点选择通过推测性地选择迭代的起始位置而提高了整像素运动估计迭代搜索的效率和质量。起始位置是通过将0运动向量、预测运动向量和全局运动向量(GMV)的绝对差之和(SAD)值相比较并且选择具有最小SAD值的位置来选择的。利用阈值的细化方案通过执行若干次比较以确保合适的运动向量被选择,来提高运动估计迭代搜索的效率和质量。这种经改进的运动估计搜索的应用包括稳定图像以及使用运动向量的许多其它应用。

权利要求 :

1.一种利用计算设备细化用于运动估计的迭代搜索结果的方法,该方法包括: a.确定起始位置,包括: i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置; c.向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; d.将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及 e.选择所述总成本与所述预测运动向量距离值中的所述较小的值。

2.如权利要求1所述的方法,其中,所述距离值是绝对差之和值。

3.如权利要求1所述的方法,其中,所述多个位置包括第一位置、第二位置和第三位置。

4.如权利要求3所述的方法,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

5.如权利要求1所述的方法,其中,所述较小的值被进一步细化并且使图像稳定。

6.如权利要求1所述的方法,其中,迭代地搜索还包括: a.将计数设为指定值;

b.计算子区域的子区域距离值;

c.选择所述子区域中的最小区域距离值; d.将所述最小区域距离值与先前的最小区域距离相比较; e.保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值; f.递减所述计数;以及 g.重复b-f直到所述计数为零为止。

7.如权利要求1所述的方法,其中,迭代地搜索还包括: a.将计数设为指定值并且计算子区域的子区域距离值;

b.确定所述子区域中的最小距离值;

c.将所述最小距离值与阈值相比较;

d.如果所述最小距离值小于所述阈值,则提早结束;以及 e.如果所述最小距离值大于或等于所述阈值,则重复a-d直到所述计数为零为止。

8.如权利要求1所述的方法,其中,所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、 和家庭娱乐系统。

9.一种用于细化用于运动估计的迭代搜索结果的系统,该系统包括: i.用于确定起始位置的装置,包括:

(1)用于计算多个位置中的每个位置的距离值的装置; (2)用于将所述多个位置中的每个位置的距离值相比较的装置;以及 (3)用于从所述多个位置中的每个位置的距离值中选出最小起始距离位置的装置; ii.用于从所述起始位置开始迭代地搜索最小距离位置的装置; iii.用于向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本的装置,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; iv.用于将所述总成本与预测运动向量距离值相比较,以确定较小的值的装置;以及 v.用于选择所述总成本与所述预测运动向量距离值中的所述较小的值的装置。

10.如权利要求9所述的系统,其中,所述距离值是绝对差之和值。

11.如权利要求9所述的系统,其中,所述多个位置包括第一位置、第二位置和第三位置。

12.如权利要求11所述的系统,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

13.如权利要求9所述的系统,其中,用于迭代地搜索的装置还包括: a.用于将计数设为指定值的装置;

b.用于计算子区域的子区域距离值的装置; c.用于选择所述子区域中的最小区域距离值的装置; d.用于将所述最小区域距离值与先前的最小区域距离相比较的装置; e.用于保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值的装置; f.用于递减所述计数的装置;以及

g.用于重复b-f直到所述计数为零为止的装置。

14.如权利要求9所述的系统,其中,用于迭代地搜索的装置还包括: a.用于将计数设为指定值并且计算子区域的子区域距离值; b.用于确定所述子区域中的最小距离值的装置; c.用于将所述最小距离值与阈值相比较的装置; d.用于如果所述最小距离值小于所述阈值,则提早结束的装置;以及 e.用于如果所述最小距离值大于或等于所述阈值,则重复a-d直到所述计数为零为止的装置。

15.如权利要求9所述的系统,其中,所述较小的值被进一步细化并且使图像稳定。

16.如权利要求9所述的系统,其中,所述系统被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、和家庭娱乐系统。

17.一种用于细化用于运动估计的迭代搜索结果的设备,该设备包括: a.起始位置组件,用于确定用于开始迭代搜索的最小起始位置; b.迭代搜索组件,用于迭代地搜索最小距离位置;以及 c.比较组件,用于将总成本与预测运动向量距离值相比较,其中,所述总成本包括所述最小距离位置的最小距离值以及运动向量成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的。

18.如权利要求17所述的设备,其中,所述起始位置组件用于: a.计算多个位置中的每个位置的距离值; b.将所述多个位置中的每个位置的距离值相比较;以及 c.从所述多个位置中的每个位置的距离值中选出最小起始距离位置。

19.如权利要求18所述的设备,其中,所述多个位置包括第一位置、第二位置和第三位置。

20.如权利要求19所述的设备,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

21.如权利要求17所述的设备,其中,所述迭代搜索组件还用于: a.将计数设为指定值;

b.计算子区域的子区域距离值;

c.选择所述子区域中的最小区域距离值; d.将所述最小区域距离值与先前的最小区域距离值相比较; e.保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值; f.递减所述计数;以及 g.重复b-f直到所述计数为零为止。

22.如权利要求17所述的设备,其中,所述最小距离位置被用来确定用于稳定图像的适当运动向量。

23.如权利要求17所述的设备,其中,所述设备被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能 设备、游戏控制器、数字相机、数字摄录像机、相机手机、 和家庭娱乐系统。

24.一种利用计算设备细化用于运动估计的迭代搜索结果的方法,该方法包括: a.确定起始位置,包括: i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置; c.向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; d.判断全局运动向量是否小于阈值;

e.如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括: i.将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及 ii.选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及 f.如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化。

25.如权利要求24所述的方法,其中,所述距离值是绝对差之和值。

26.如权利要求24所述的方法,其中,所述多个位置包括第一位置、第二位置和第三位置。

27.如权利要求26所述的方法,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

28.如权利要求24所述的方法,其中,所述方法使图像稳定。

29.如权利要求24所述的方法,其中,迭代地搜索还包括: a.将计数设为指定值;

b.计算子区域的子区域距离值;

c.选择所述子区域中的最小区域距离值; d.将所述最小区域距离值与先前的最小区域距离相比较; e.保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值; f.递减所述计数;以及 g.重复b-f直到所述计数为零为止。

30.如权利要求24所述的方法,其中,所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、 和家庭娱乐系统。

31.一种细化用于运动估计的迭代搜索结果的系统,该系统包括: i.用于确定起始位置的装置,包括:

(1)用于计算多个位置中的每个位置的距离值的装置; (2)用于将所述多个位置中的每个位置的距离值相比较的装置;以及 (3)用于从所述多个位置中的每个位置的距离值中选出最小起始距离位置的装置; ii.用于从所述起始位置开始迭代地搜索最小距离位置的装置; iii.用于向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本的装置,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; iv.用于判断全局运动向量是否小于阈值的装置; v.用于如果所述全局运动向量小于所述阈值,则采取另外的步骤的装置,包括: (1)用于将所述总成本与预测运动向量距离值相比较,以确定较小的值的装置;以及 (2)用于选择所述总成本与所述预测运动向量距离值中的 较小的值用于进行细化的装置;以及 vi.用于如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化的装置。

32.如权利要求31所述的系统,其中,所述距离值是绝对差之和值。

33.如权利要求31所述的系统,其中,所述多个位置包括第一位置、第二位置和第三位置。

34.如权利要求33所述的系统,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

35.如权利要求31所述的系统,其中,用于迭代地搜索的装置还包括: a.用于将计数设为指定值的装置;

b.用于计算子区域的子区域距离值的装置; c.用于选择所述子区域中的最小区域距离值的装置; d.用于将所述最小区域距离值与先前的最小区域距离相比较的装置; e.用于保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值的装置; f.用于递减所述计数的装置;以及

g.用于重复b-f直到所述计数为零为止的装置。

36.如权利要求31所述的系统,其中,所述系统使图像稳定。

37.如权利要求31所述的系统,其中,所述系统被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、和家庭娱乐系统。

38.一种用于细化用于运动估计的迭代搜索结果的设备,该设备包括: a.起始位置组件,用于确定用于开始迭代搜索的最小起始位置; b.迭代搜索组件,用于迭代地搜索最小距离位置; c.比较组件,用于将总成本与预测运动向量距离值相比较,其中,所 述总成本包括所述最小距离位置的最小距离值以及运动向量成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的;以及 d.阈值组件,用于将全局运动向量与阈值相比较以判断是执行所述比较组件还是使用来自所述迭代搜索组件的结果。

39.如权利要求38所述的设备,其中,所述起始位置组件用于: a.计算多个位置中的每个位置的距离值; b.将所述多个位置中的每个位置的距离值相比较;以及 c.从所述多个位置中的每个位置的距离值中选出最小起始距离位置。

40.如权利要求39所述的设备,其中,所述多个位置包括第一位置、第二位置和第三位置。

41.如权利要求40所述的设备,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

42.如权利要求38所述的设备,其中,所述迭代搜索组件还用于: a.将计数设为指定值;

b.计算子区域的子区域距离值;

c.选择所述子区域中的最小区域距离值; d.将所述最小区域距离值与先前的最小区域距离相比较; e.保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值; f.递减所述计数;以及 g.重复b-f直到所述计数为零为止。

43.如权利要求38所述的设备,其中,所述设备使图像稳定。

44.如权利要求38所述的设备,其中,所述设备被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、和家庭娱乐系统。

45.一种利用计算设备选择用于运动估计迭代搜索的起始位置的方法,该方法包括: a.计算多个位置中的每个位置的距离值,其中,所述多个位置包括第一位置、第二位置和第三位置,并且其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量; b.将所述多个位置中的每个位置的距离值相比较;以及 c.从所述多个位置中的每个位置的距离值中选出最小起始距离位置。

46.如权利要求45所述的方法,其中,所述距离值是绝对差之和值。

47.如权利要求45所述的方法,其中,所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、 和家庭娱乐系统。

48.如权利要求45所述的方法,其中,所述最小起始距离位置被用作用于使图像稳定的运动估计迭代搜索的起始位置。

49.一种利用计算设备估计运动的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置;以及 b.从所述起始位置开始迭代地搜索最小距离位置。

50.如权利要求49所述的方法,其中,所述距离值是绝对差之和值。

51.如权利要求49所述的方法,其中,迭代地搜索还包括: a.将计数设为指定值;

b.计算子区域的子区域距离值;

c.选择所述子区域中的最小区域距离值; d.将所述最小区域距离值与先前的最小区域距离相比较; e.保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值; f.递减所述计数;以及 g.重复b-f直到所述计数为零为止。

52.如权利要求49所述的方法,其中,所述多个位置包括第一位置、第二位置和第三位置。

53.如权利要求52所述的方法,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

54.如权利要求49所述的方法,其中,所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、 和家庭娱乐系统。

55.如权利要求49所述的方法,其中,所述最小距离位置用来确定用于使图像稳定的适当运动向量。

56.一种用于估计运动的系统,该系统包括: i.用于确定起始位置的装置,包括:

(1)用于计算多个位置中的每个位置的距离值的装置; (2)用于将所述多个位置中的每个位置的距离值相比较的装置;以及 (3)用于从所述多个位置中的每个位置的距离值中选出最小起始距离位置的装置;以及 ii.用于从所述起始位置开始迭代地搜索最小距离位置的装置。

57.如权利要求56所述的系统,其中,所述距离值是绝对差之和值。

58.如权利要求56所述的系统,其中,用于迭代地搜索的装置还包括: a.用于将计数设为指定值的装置;

b.用于计算子区域的子区域距离值的装置; c.用于选择所述子区域中的最小区域距离值的装置; d.用于将所述最小区域距离值与先前的最小区域距离相比较的装置; e.用于保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值的装置; f.用于递减所述计数的装置;以及

g.用于重复b-f直到所述计数为零为止的装置。

59.如权利要求56所述的系统,其中,所述多个位置包括第一位置、第二位置和第三位置。

60.如权利要求59所述的系统,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

61.如权利要求56所述的系统,其中,所述系统被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、和家庭娱乐系统。

62.如权利要求56所述的系统,其中,所述最小距离位置用来确定用于使图像稳定的适当运动向量。

63.一种用于估计运动的设备,该设备包括: a.起始位置组件,用于确定用于开始迭代搜索的最佳起始位置;以及 b.迭代搜索组件,用于迭代地搜索最小距离位置, 其中,所述迭代搜索组件还用于:

a.将计数设为指定值;

b.计算子区域的子区域距离值;

c.选择所述子区域中的最小区域距离值; d.将所述最小区域距离值与先前的最小区域距离相比较; e.保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值; f.递减所述计数;以及 g.重复b-f直到所述计数为零为止。

64.如权利要求63所述的设备,其中,所述起始位置组件用于: a.计算多个位置中的每个位置的距离值; b.将所述多个位置中的每个位置的距离值相比较;以及 c.从所述多个位置中的每个位置的距离值中选出最小起始距离位置。

65.如权利要求64所述的设备,其中,所述多个位置包括第一位置、第二位置和第三位置。

66.如权利要求65所述的设备,其中,所述第一位置是零运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。

67.如权利要求63所述的设备,其中,所述设备被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、和家庭娱乐系统。

68.如权利要求63所述的设备,其中,所述最小距离位置用来确定用于使图像稳定的适当运动向量。

69.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置;以及 c.避开局部最小值,包括:

i.确定前一位置;

ii.确定新的位置;

iii.比较所述前一位置和所述新的位置;以及 iv.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。

70.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置;以及 c.确定下一搜索区域的中心点,包括: i.确定搜索区域中具有最小距离搜索值的位置; ii.基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移;

以及

iii.基于所述偏移选择所述下一搜索区域的中心点。

71.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置;以及 c.确定下一搜索区域的中心点,包括: i.确定搜索区域中具有最小距离搜索值的位置; ii.基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移;

以及

iii.基于所述偏移选择所述下一搜索区域的中心点;以及 d.避开局部最小值,包括:

i.确定前一位置;

ii.确定新的位置;

iii.比较所述前一位置和所述新的位置;以及 iv.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。

72.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置; c.向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; d.判断全局运动向量是否小于阈值;

e.如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括: i.将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及 ii.选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化; f.如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及 g.确定下一搜索区域的中心点,包括: i.确定搜索区域中具有最小距离搜索值的位置; ii.基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移;

以及

iii.基于所述偏移选择所述下一搜索区域的中心点。

73.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置; c.向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; d.判断全局运动向量是否小于阈值;

e.如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括: i.将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及 ii.选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及 f.如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及 g.避开局部最小值,包括:

i.确定前一位置;

ii.确定新的位置;

iii.比较所述前一位置和所述新的位置;以及 iv.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。

74.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置; c.向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; d.判断全局运动向量是否小于阈值;

e.如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括: i.将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及 ii.选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及 f.如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及 g.确定下一搜索区域的中心点,包括: i.确定搜索区域中具有最小距离搜索值的位置; ii.基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移;

以及

iii.基于所述偏移选择所述下一搜索区域的中心点;以及 h.避开局部最小值,包括:

i.确定前一位置;

ii.确定新的位置;

iii.比较所述前一位置和所述新的位置;以及 iv.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。

75.一种利用计算设备改进运动估计的方法,该方法包括: a.确定起始位置,包括:

i.计算多个位置中的每个位置的距离值; ii.将所述多个位置中的每个位置的距离值相比较;以及 iii.从所述多个位置中的每个位置的距离值中选出最小起始距离位置; b.从所述起始位置开始迭代地搜索最小距离位置; c.向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本,其中,所述运动向量成本是基于离预测运动向量的距离来计算的; d.判断全局运动向量是否小于阈值;

e.如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括: i.将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及 ii.选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化; f.如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及 g.确定下一搜索区域的中心点,包括: i.确定搜索区域中具有最小距离搜索值的位置; ii.基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移;

以及

iii.基于所述偏移选择所述下一搜索区域的中心点; h.避开局部最小值,包括:

i.确定前一位置;

ii.确定新的位置;

iii.比较所述前一位置和所述新的位置;以及 iv.基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置;以及 i.早期地终止迭代搜索,包括:

i.将计数设为指定值并且计算子区域的子区域距离值; ii.确定所述子区域中的最小距离值; iii.将所述最小距离值与阈值相比较; iv.如果所述最小距离值小于所述阈值,则提早结束;以及 v.如果所述最小距离值大于或等于所述阈值,则重复i-iv直到所述计数为零为止。

说明书 :

用于运动估计迭代搜索的推测起始点选择

技术领域

[0001] 本发明涉及视频压缩领域。更具体地,本发明涉及数字视频编码器中的经改进运动估计。

背景技术

[0002] 视频序列由多个通常称为帧的图片构成。由于随后的帧非常相似,因此从一帧到下一帧包含了许多冗余。在高效地通过信道发送或存储在存储器中之前,视频数据被压缩以节省带宽和存储器两者。目标是去除冗余以获得更好的压缩比。第一视频压缩方法是从给定帧减去参考帧以生成相对差。该相对差可以以相同质量按照较低比特速率被编码。解码器通过将该相对差添加到参考帧中来重构原始帧。
[0003] 更复杂的方法是对整个场景的运动以及视频序列的对象进行近似。该运动是通过被编码在比特流中的参数来描述的。预测帧的像素是通过经适当转换的参考帧的像素来近似的。该方法与简单的减法相比,提供了提高的预测能力。然而,运动模型的参数所占的比特速率必须不会变得太大。
[0004] 一般而言,视频压缩是根据许多标准来执行的,包括来自运动图像专家组(MPEG)的一个或多个用于音频和视频压缩的标准,例如MPEG-1、MPEG-2和MPEG-4。已提出了额外的增强来作为MPEG-4第10部分(也称为H.264或AVC(高级视频编码))标准的一部分。在MPEG标准下,视频数据首先被编码并且随后被存储在视频系统的编码器侧上的编码器缓冲器中。然后,编码数据被发送给视频系统的解码器侧,在其中,该编码数据在被解码之前被存储在解码器缓冲器中,以使得相应的图片可被查看。
[0005] H.264/AVC工程的意图在于开发一种能够以比先前标准(例如,MPEG-2、H.263或MPEG-4第2部分)需要的比特速率低得多的比特速率来提供良好视频质量的标准。此外,希望在不致使复杂性大幅增加的情况下来进行这些改进,以便不会使设计无法实现。另一目标是以灵活的方式来作出这些改变,该方式允许将标准应用于各种应用,以使得其可被用于低比特速率和高比特速率两者以及低分辨率视频和高分辨率视频。另一目标是其在极广泛种类的网络和系统上工作良好。
[0006] H.264/AVC/MPEG-4第10部分包含许多新的特征,这些特征允许其比以往的标准更有效地压缩视频并且提供了应用于各种网络环境的更大灵活性。一些关键特征包括利用先前编码的图片作为参考的多图片运动补偿、具有16×16那样大和4×4那样小的块大小的可变块大小运动补偿(VBSMC)、用于半像素亮度样本预测的推导的六抽头滤波、宏块对结构、用于运动补偿的四分之一像素精度、加权预测、环路解块滤波器、精确匹配整数4×4空间块变换、对主空间变换的“DC”系数执行的二次Hadamard变换(其中,Hadamard变换类似于快速傅里叶变换)、从用于“内部”编码的相邻块进行的空间预测、基于上下文的自适应二进制算术编码(CABAC)、基于上下文的自适应可变长度编码(CAVLC)、针对未被CABAC或CAVLC编码的许多语法要素的简单且高度结构化的可变长度编码(VLC)技术(称为指数Golomb编码)、网络抽象层(NAL)定义、切换片段、灵活宏块排序、冗余片段(RS)、补充增强信息(SEI)和视频可用性信息(VUI)、辅助图片、帧编号以及图片顺序计数。这些技术以及若干其它技术允许H.264在更多状况下、在更多环境中比先前的标准表现得更好。H.264通过以一半的比特速率或者甚至更小的比特速率获得相同的质量而比MPEG-2视频表现得更好。
[0007] MPEG用于对运动图像和关联音频进行一般性编码,并且创建由三种类型的编码数据帧的序列构成的压缩视频比特流。三种类型的数据帧是帧内编码帧(称为I帧或I图片)、双向预测帧(称为B帧或B图片),以及前向预测帧(称为P帧或P图片)。这三种类型的帧可以按照被称为GOP(图片组)结构的指定顺序来排列。I帧包含重构图片所需的所有信息。I帧被编码为没有运动补偿的常规图像。另一方面,P帧使用来自在前帧的信息并且B帧使用来自在前帧、后续帧或者这两者的信息,来重构图片。具体地,P帧是从前一I帧或者紧邻的前一P帧来预测的。
[0008] 还可以从紧邻的后续帧来预测帧。为了以这种方式利用后续帧,必须在被预测帧之前对后续帧编码。因此,编码顺序不一定与真实的帧顺序相匹配。这样的帧通常从两个方向来预测,例如,从紧邻被预测帧的在前的I帧或P帧或者紧邻被预测帧的随后的P帧来预测。这些被双向预测的帧称为B帧。
[0009] 存在许多可能的GOP结构。常见的GOP结构是15帧长,并且具有序列I_BB_P_BB_P_BB_P_BB_P_BB_。类似的12帧序列也是常见的。I帧针对空间冗余进行编码,P和B帧针对时间冗余和空间冗余两者进行编码。由于视频流中的相邻帧常常密切相关,因此P帧和B帧仅是I帧的大小的一小百分比。然而,在帧可被压缩为的大小与对这样的压缩帧进行编码所需的处理时间和资源之间存在折中。GOP结构中的I、P和B帧之比是由视频流的性质以及对输出流的带宽约束来确定的,尽管编码时间也可能是一个问题。在具有有限计算资源的现场传输和实时环境中尤其是这样,因为包含许多B帧的流可能要比纯I帧文件花费长得多的时间来编码。
[0010] B帧和P帧需要较少的比特来存储图片数据,一般包含针对当前帧与在前帧、后续帧或者它们两者之间的差异的差异比特。B帧和P帧由此被用来减少跨越帧所包含的冗余信息。在操作中,解码器接收经编码B帧或经编码P帧并且利用先前或后续帧来重构原始帧。该处理要容易得多并且在连续的帧极类似时将产生更平滑的场景转换,这是因为帧中的差异较小。
[0011] 每个视频图像被分离为一个亮度(Y)通道和两个色度通道(也称为色差信号Cb和Cr)。亮度和色度阵列的块被组织成为“宏块”,其是在帧内编码的基本单位。
[0012] 在I帧的情况中,使实际图像数据经过编码处理。然而,P帧和B帧首先经过“运动补偿”处理。运动补偿是根据前一帧的每个宏块所移动到的位置来描述连续帧之间的差异的一种方式。这样的技术通常用来减少用于视频压缩的视频序列的时间冗余。P帧或B帧中的每个宏块被与前一或下一图像中的密切相关的区域相关联,该区域是如编码器利用“运动向量”所选择的。将宏块映射到其相关区域的运动向量被编码,并且然后使两个区域之间的差异经过编码处理。
[0013] 传统视频编解码器使用经运动补偿的预测来高效地对初始输入视频流进行编码。当前帧中的宏块是从前一帧中的经位移的宏块预测的。原始宏块与其预测之间的差异被压缩并且与位移(运动)向量一起被发送。该技术称为帧间编码(inter-coding),其是MPEG标准中所使用的方法。
[0014] 编码处理中的最耗时部分之一是运动估计。运动估计通过结合预测误差的变换编码来实现运动补偿预测来减小视频信号的比特速率。与运动估计有关的混叠(aliasing)是不能通过利用像素间运动估计来避免的,并且混叠使预测效率恶化。为了解决该恶化问题,半像素插值和四分之一像素插值适合用于减小混叠的影响。为了估计出具有四分之一像素精度的运动向量,通常使用三步搜索法。在第一步,运动估计在指定搜索范围内被应用于每个整像素以找到最佳匹配。然后,在第二步,所选整像素运动向量周围的八个半像素点被检查以找到最佳的半像素匹配点。最后,在第三步,所选半像素运动向量周围的八个四分之一像素点被检查,并且最佳匹配点被选择作为最终运动向量。考虑到运动估计的复杂性,如果将全面搜索用于整像素运动估计,则整像素运动估计将占据运动估计的主要部分。然而,如果利用快速整数运动估计算法,则可以通过检查少于十个搜索点来找到整像素运动向量。结果,搜索半像素运动向量和四分之一像素运动向量的复杂性变得显著。

发明内容

[0015] 用于运动估计迭代搜索的推测起始点选择通过推测性地选择迭代的起始位置而提高了整像素运动估计迭代搜索的效率和质量。起始位置是通过将0运动向量、预测运动向量和全局运动向量(GMV)的绝对差之和(SAD)值相比较并且选择具有最小SAD值的位置来选择的。利用阈值的细化方案通过执行若干次比较以确保合适的运动向量被选择,来提高运动估计迭代搜索的效率和质量。这种经改进的运动估计搜索的应用包括稳定图像以及使用运动向量的许多其它应用。
[0016] 在一个方面中,一种利用计算设备细化用于运动估计的迭代搜索结果的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及选择所述总成本与所述预测运动向量距离值中的所述较小的值。在一些实施例中,所述距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述运动向量成本是基于离预测运动向量的距离来计算的。所述较小的值被进一步细化并且使图像稳定。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。
[0017] 在另一方面中,一种用于细化用于运动估计的迭代搜索结果的系统包括用于存储应用的存储器和用于处理所述应用的处理器,所述应用被配置用于:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;将所述总成本与预测运动向量距离值相比较,以确定较小的值;以及选择所述总成本与所述预测运动向量距离值中的所述较小的值。在一些实施例中,所述距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述运动向量成本是基于离预测运动向量的距离来计算的。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。所述较小的值被进一步细化并且使图像稳定。所述处理器和存储器被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。
[0018] 在另一方面中,一种由处理器处理的、用于细化用于运动估计的迭代搜索结果的应用包括:起始位置组件,用于确定用于开始迭代搜索的最小起始位置;迭代搜索组件,用于迭代地搜索最小距离位置;以及比较组件,用于将总成本与预测运动向量距离值相比较,其中,所述总成本包括所述最小距离位置的最小距离值以及运动向量成本。确定最小起始位置包括:计算多个位置中的每个位置的距离值;将所述多个位置中的每个位置的距离值相比较;以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离值相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。所述运动向量成本是基于离预测运动向量的距离来计算的。最佳距离位置被用来确定用于稳定图像的适当运动向量。所述应用被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。
[0019] 在又一方面中,一种利用计算设备细化用于运动估计的迭代搜索结果的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;判断全局运动向量是否小于阈值;如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括:将所述总成本与预测运动向量距离值相比较,以确定较小的值,以及选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化。在一些实施例中,所述距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述运动向量成本是基于离预测运动向量的距离来计算的。所述方法使图像稳定。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。
[0020] 在另一方面中,一种细化用于运动估计的迭代搜索结果的系统包括用于存储应用的存储器和用于处理所述应用的处理器,所述应用被配置用于:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;判断全局运动向量是否小于阈值;如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括:将所述总成本与预测运动向量距离值相比较,以确定较小的值,以及选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化。在一些实施例中,所述距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述运动向量成本是基于离预测运动向量的距离来计算的。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止所述系统使图像稳定。所述处理器和所述存储器被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。
[0021] 在另一方面中,一种由处理器处理的、用于细化用于运动估计的迭代搜索结果的应用包括:起始位置组件,用于确定用于开始迭代搜索的最小起始位置;迭代搜索组件,用于迭代地搜索最小距离位置;比较组件,用于将总成本与预测运动向量距离值相比较,其中,所述总成本包括所述最小距离位置的最小距离值以及运动向量成本;以及阈值组件,用于将全局运动向量与阈值相比较以判断是执行所述比较组件还是使用来自所述迭代搜索组件的结果。在一些实施例中,所述距离值是绝对差之和值所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。所述运动向量成本是基于离预测运动向量的距离来计算的。所述应用使图像稳定。所述应用被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。
[0022] 在又一方面中,一种利用计算设备选择用于运动估计迭代搜索的起始位置的方法包括:计算多个位置中的每个位置的距离值;将所述多个位置中的每个位置的距离值相比较;以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置。在一些实施例中,所述距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。所述最小起始距离位置被用作用于使图像稳定的运动估计迭代搜索的起始位置。
[0023] 在另一方面中,一种利用计算设备估计运动的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;以及从所述起始位置开始迭代地搜索最小距离位置。所述距离值是绝对差之和值。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。在一些实施例中,距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述计算设备是从包括如下项的组中选出的:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。所述最小距离位置用来确定用于使图像稳定的适当运动向量
[0024] 在另一方面中,一种用于估计运动的系统包括用于存储应用的存储器和用于处理所述应用的处理器,所述应用被配置用于:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;以及从所述起始位置开始迭代地搜索最小距离位置。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。在一些实施例中,所述距离值是绝对差之和值。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述处理器和所述存储器被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。所述最小距离位置用来确定用于使图像稳定的适当运动向量。
[0025] 在另一方面中,一种由处理器处理的用于估计运动的应用包括:起始位置组件,用于确定用于开始迭代搜索的最佳起始位置;以及迭代搜索组件,用于迭代地搜索最小距离位置。迭代地搜索还包括:将计数设为指定值;计算子区域的子区域距离值;选择所述子区域中的最小区域距离值;将所述最小区域距离值与先前的最小区域距离相比较;保留所述最小区域距离值与所述先前的最小区域距离值中的较小的区域距离值;递减所述计数;以及重复这些步骤直到所述计数为零为止。确定所述最佳起始位置包括:计算多个位置中的每个位置的距离值;将所述多个位置中的每个位置的距离值相比较;以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置。所述多个位置包括第一位置、第二位置和第三位置。所述第一位置是零(0)运动向量,所述第二位置是预测运动向量,并且所述第三位置是全局运动向量。所述应用被包含在从包括如下项的组中选出的设备中:个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 和家庭娱乐系统。所述最小距离位置用来确定用于使图像稳定的适当运动向量。
[0026] 在又一方面中,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;以及避开局部最小值,包括:确定前一位置,确定新的位置,比较所述前一位置和所述新的位置,以及基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
[0027] 在另一方面中,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;以及确定下一搜索区域的中心点,包括:确定搜索区域中具有最小距离搜索值的位置,基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移,以及基于所述偏移选择所述下一搜索区域的中心点。
[0028] 在另一方面中,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;以及确定下一搜索区域的中心点,包括:确定搜索区域中具有最小距离搜索值的位置,基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移,以及基于所述偏移选择所述下一搜索区域的中心点;以及避开局部最小值,包括:确定前一位置,确定新的位置,比较所述前一位置和所述新的位置,以及基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
[0029] 在另一方面,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;判断全局运动向量是否小于阈值;如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括:将所述总成本与预测运动向量距离值相比较,以确定较小的值,以及选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及确定下一搜索区域的中心点,包括:确定搜索区域中具有最小距离搜索值的位置,基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移,以及基于所述偏移选择所述下一搜索区域的中心点。
[0030] 在另一方面中,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;判断全局运动向量是否小于阈值;如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括:将所述总成本与预测运动向量距离值相比较,以确定较小的值,以及选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及避开局部最小值,包括:确定前一位置,确定新的位置,比较所述前一位置和所述新的位置,以及基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
[0031] 在另一方面或者,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;判断全局运动向量是否小于阈值;如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括:将所述总成本与预测运动向量距离值相比较,以确定较小的值,以及选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;以及如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及确定下一搜索区域的中心点,包括:确定搜索区域中具有最小距离搜索值的位置,基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移,以及基于所述偏移选择所述下一搜索区域的中心点;以及避开局部最小值,包括:确定前一位置,确定新的位置,比较所述前一位置和所述新的位置,以及基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置。
[0032] 在另一方面,一种利用计算设备改进运动估计的方法包括:确定起始位置,包括:计算多个位置中的每个位置的距离值,将所述多个位置中的每个位置的距离值相比较,以及从所述多个位置中的每个位置的距离值中选出最小起始距离位置;从所述起始位置开始迭代地搜索最小距离位置;向所述最小距离位置的最小距离值添加运动向量成本,以形成总成本;判断全局运动向量是否小于阈值;如果所述全局运动向量小于所述阈值,则采取另外的步骤,这些步骤包括:将所述总成本与预测运动向量距离值相比较,以确定较小的值,以及选择所述总成本与所述预测运动向量距离值中的较小的值用于进行细化;如果所述全局运动向量大于或等于所述阈值,则所述最小距离位置的最小距离值被选择用于细化;以及确定下一搜索区域的中心点,包括:确定搜索区域中具有最小距离搜索值的位置,基于所述具有最小距离搜索值的位置来确定用于下一搜索区域的中心点的偏移,以及基于所述偏移选择所述下一搜索区域的中心点;避开局部最小值,包括:确定前一位置,确定新的位置,比较所述前一位置和所述新的位置,以及基于所述前一位置与所述新的位置的比较,选择新的搜索中心,其中,如果所述新的位置在与所述前一位置相反的方向上,则所述新的搜索中心基于所述前一位置,并且如果所述新的位置不在与所述前一位置相反的方向上,则所述新的搜索中心于所述新的位置;以及早期地终止迭代搜索,包括:计算子区域的子区域距离值,确定所述子区域中的最小距离值,将所述最小距离值与阈值相比较,如果所述最小距离值小于所述阈值,则提早结束,以及如果所述最小距离值大于或等于所述阈值,则重复这些步骤直到所述计数为零为止。

附图说明

[0033] 图1图示出了根据本发明的视频编码层的框图。
[0034] 图2图示出了根据本发明的运动估计流。
[0035] 图3图示出了根据本发明的示例性搜索。
[0036] 图4图示出了根据本发明的迭代搜索的流程图。
[0037] 图5图示出了根据本发明的用于计算绝对差之和(SAD)的示例性搜索位置和像素。
[0038] 图6图示出了根据本发明的实现用于估计运动的推测起始点选择的流程图。
[0039] 图7图示出了根据本发明的示例性计算设备的框图。
[0040] 图8图示出了根据本发明的普通(naive)下一步骤选择。
[0041] 图9图示出了根据本发明的被固定在局部最小值处的搜索。
[0042] 图10图示出了根据本发明的回到相反方向上的普通下一步骤选择。
[0043] 图11图示出了根据本发明的移出局部最小值的搜索。
[0044] 图12图示出了根据本发明的位置矩阵。
[0045] 图13图示出了用阴影标出了相对位置的位置矩阵。
[0046] 图14图示出了根据本发明的新的位置以及被禁止的相对位置。
[0047] 图15图示出了根据本发明的普通搜索的流程图。
[0048] 图16图示出了根据本发明的局部最小值避免搜索的流程图。
[0049] 图17图示出了根据本发明的下一位置选择器的流程图的示图。
[0050] 图18-20图示出了根据本发明的对于3×3搜索区域基于具有当前搜索区域中的最小SAD的位置的下一搜索区域。
[0051] 图21图示出了根据本发明的选择下一位置的方法的流程图。
[0052] 图22图示出了根据本发明的用于基于具有最小SAD的位置来确定下一搜索区域的中心点的示例性查找表。
[0053] 图23图示出了根据本发明的利用细化(refinement)的迭代搜索的流程图,该细化基于运动向量成本和预测运动向量的SAD。
[0054] 图24图示出了根据本发明的当前宏块以及相邻宏块及其运动向量。
[0055] 图25图示出了根据本发明的利用细化的迭代搜索的流程图,该细化基于运动向量成本和预测运动向量的SAD以及阈值。
[0056] 图26图示出了根据本发明的利用早期终止方案的迭代搜索的流程图。

具体实施方式

[0057] 图1图示出了宏块的视频编码层100的框图。视频编码层100(例如,编码器)包括时间和空间预测的组合以及变换编码。输入视频102被接收并被分为多个块。序列中的第一图片通常仅利用其自身内包含的信息而被进行“帧内”编码。然后,在帧内预测模块110处利用先前编码块的空间相邻样本来预测帧内编码帧中的块的每个部分。该编码处理选择用于内部预测的相邻样本以及如何使用它们。该处理在本地解码器118以及编码器100处进行。对于序列中的其余图片,通常使用“帧间”编码。帧间编码从其它先前解码的图片来实现运动补偿112。在运动估计模块114处进行的用于帧间预测/运动估计的编码处理包括选择运动数据、确定参考图片以及应用于块中所有样本的空间位移。运动数据被发送作为供编码器100和本地解码器118使用的边信息(side information)。
[0058] 原始块与预测块之间的差异被称为预测的残余信息。残余信息被变换,并且变换系数在变换和缩放量化模块104处被缩放和量化。对于变换系数的量化,使用标量量化(scalar quantization)。利用整数变换来对每个块进行变换,并且利用熵编码方法来量化变换系数并发送。熵编码器116使用被设置用于除经量化的变换系数以外的所有元素的码字。基于上下文的自适应可变长度编码(CAVLC)或基于上下文的自适应二进制算术编码(CABAC)被用于经量化的变换系数。解块滤波器108被实现来控制滤波强度以减轻图像的块状化(blockiness)。
[0059] 编码器100还包括本地解码器118以生成用于接下来的块的预测参考。经量化的变换系数按照与给出解码预测残余信息的编码器侧相同的方式被逆缩放和逆变换106。解码预测残余信息被添加到预测中,并且其组合被引导至解块滤波器108,解块滤波器108提供经解码视频作为输出。最终,熵编码器116产生原始输入视频102的压缩视频比特120。
[0060] 在视频编码器的运动估计(ME)中,最昂贵的计算是预测图片与原始图片之间的绝对差之和(SAD)的计算。特别地,整像素搜索的SAD计算占主导地位。因此,减少整像素搜索中的SAD计算的次数在减小硬件大小,并且由此降低成本方面具有重要作用。图2图示出了运动估计流程200,该流程获取图片并且执行整像素搜索、半像素搜索和四分之一像素搜索以确定运动向量。
[0061] 用于减少SAD计算的常用方法是在SAD计算之前对参考图片和原始图片进行二次采样(sub-sample),以使得ME硬件能够利用较少次数的SAD计算来搜索相同的搜索范围。在经二次采样的搜索范围内,搜索仍然是详尽的。由于该搜索是在粗略的经二次采样域中进行的,因此需要进行细化以获得更精确的运动向量。
[0062] 在通过引用被结合于此的Yamauchi,H.等人的“An 81 MHz,1280×720pixels×30 frames/s MPEG-4 video/audio CODEC processor”中描述的迭代运动估计搜索方法通过计算搜索范围中的仅一部分的SAD而进一步减少了SAD计算的次数。利用该方法,系统一次计算一小区域的SAD。然后,系统比较区域的SAD并且挑选出最小SAD的位置。接下来,系统基于先前的搜索结果来选择另一小区域。系统将该处理重复一定次数。在所有迭代期间具有最小SAD值的搜索位置被选为最佳匹配位置。迭代次数取决于硬件性能。图3图示出了示出起始位置300和所确定的最小SAD 302的示例性搜索,其中,每个步骤一次搜索9个搜索点(3×3)并重复5次。
[0063] 图4图示出了迭代搜索的流程图。在步骤400中,处理开始于计数等于N,其中,N是要搜索的次数。在步骤402,计算区域的SAD(例如,3×3区域)。在步骤404,基于步骤402中的计算来选择该区域中的最小SAD位置。在步骤406,将最小SAD位置与先前的最佳(例如最小)SAD相比较并且保留两者中的较小者。在步骤408,计数被递减1以考虑进迭代。在步骤410,判断计数是否为0。如果计数为0,则处理结束。如果计数不为0,则在步骤412中选择下一搜索位置。此后,处理从步骤402起重复。在一些实施例中,还可以使用不同的计数实现方式或不同的计数顺序。
[0064] 由于仅对搜索范围的一部分进行搜索,因此与穷尽搜索相比,极大地减少了SAD计算的次数。在二次采样搜索中,一次搜索小数目的搜索点(例如在3×3网格中为9个),并且重复搜索N次(例如5次)。“3×3搜索”意味着“9个位置”的SAD计算而非“9个SAD”。因此,如果宏块(16×16个像素)被二次采样为1/4大小(例如,8×8个像素),则针对“一个位置”的SAD数目为8×8=64个。在硬件中,64次SAD计算能够同时计算。图5图示出了示例性3×3搜索位置500以及8×8个像素的宏块中的二次样本502。尽管3×3二次采样搜索被描述,然而搜索的大小不限于该大小。
[0065] 然而,由于二次采样迭代搜索未检查搜索范围中的所有位置,因此其存在问题。因此,该搜索不保证将找到可能的最佳解。具体地,搜索在错误的方向上进行和/或最佳搜索位置可能离起始位置太远。
[0066] 推测起始点
[0067] 为了解决上面的问题,使用推测的起始点迭代搜索方案。利用该推测搜索方案,在迭代开始之前,系统将数个“有希望的”位置的SAD相比较。然后,“有希望的”位置中的最佳位置被用作迭代搜索的起始位置。在针对H.264编码器的实现方式中,搜索在两个步骤中执行,尽管替代地,搜索可以在任意数目的步骤中执行。
[0068] 图6图示出了实现用以估计运动的推测起始点选择的流程图。在步骤600,计算三个位置的SAD:全局运动向量(GMV)、零(0)运动向量(0MV)和预测运动向量(PMV)。GMV针对每个帧根据先前编码帧的统计信息被计算一次,并且PMV针对每个宏块从当前帧中的相邻宏块被估计出。具有最小SAD的位置被用作随后的迭代搜索的起始位置。取决于编码器/解码器(CODEC),各个位置都可被选为“有希望的”位置,而不限于上面那些位置。尽管上面描述了三个位置,然而,可供选择的位置的数目不限于三个;而是,更多或更少的位置可被选择。
[0069] 在步骤602,系统执行在图4中描述的迭代搜索。然而,该迭代的起始位置是来自步骤600的最佳起始位置。在一些实施例中,在步骤600之后,所选SAD被用作用于其它迭代搜索实现方式的起始位置。在步骤604,对运动向量进行细化。在步骤606,实现子像素(subpel)搜索。结果得到了在较短时间量中被处理的平滑图像/视频。
[0070] 图7图示出了根据本发明的示例性计算设备700的框图。计算设备700能够用来获取、存储、计算、传输和/或显示诸如图像和视频之类的信息。例如,计算设备700获取视频,并且在获取了视频时,进行经改进的运动估计处理。一般地,适合实现计算设备700的硬件结构包括网络接口702、存储器704、处理器706、(一个或多个)I/O设备708、总线710以及存储设备712。处理器的选择不是至关重要的,只要选择具有足够速度的合适处理器即可。存储器704可以是本领域已知的任何传统的计算机存储器。存储设备712可以包括硬盘驱动器、CDROM、CDRW、DVD、DVDRW、闪存卡或者任何其它存储设备。计算设备700可以包括一个或多个网络接口702。网络接口的示例包括连接到以太网或其它类型的LAN的网卡。(一个或多个)I/O设备708可以包括如下设备中的一个或多个:键盘、鼠标、监视器、显示装置、打印机、调制解调器、触摸屏、按钮接口以及其它设备。用来执行本发明的方法的(一个或多个)应用730有可能存储在存储设备712和存储器704中,并且按照应用通常被处理的方式而被处理。应用730包括用于确定起始点的起始点组件730′和用于执行迭代搜索的迭代搜索组件730″,以及任何其它所希望或需要的组件。比图7所示的更多或更少的组件可被包括在计算设备700中。在一些实施例中,运动估计硬件720被包括用于处理运动估计信息。尽管图7中的计算设备700包括用于运动估计处理的应用730和硬件720,然而经改进运动估计处理可以在由硬件、固件、软件或者它们的任意组合构成的计算设备上实现。
[0071] 合适的计算设备的示例包括个人计算机、膝上型计算机、计算机工作站、服务器、大型计算机、手持式计算机、个人数字助理、蜂窝/移动电话、智能设备、游戏控制器、数字相机、数字摄录像机、相机手机、iPod 家庭娱乐系统或者任何其它合适的计算设备。
[0072] 为了利用推测起始点迭代搜索方案,计算设备照常工作,但是运动估计处理的改进之处在于其更高效且更精确。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。经改进的运动估计处理能够自动地提高视频质量。例如,推测起始点迭代搜索方案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该经改进的运动估计处理。
[0073] 在操作中,通过利用推测起始点迭代搜索方案,迭代搜索以多种方式被改进。经改进的迭代搜索避免进入完全错误的位置,这是因为该迭代搜索从可能的最佳起始点开始。总的迭代次数能够被减少,这是因为利用从“静态位置”(0MV)、诸如相机摇移之类的“全局移动”(GMV)和“对象的运动”(PMV)中选出的起始MV,迭代搜索有可能从接近搜索范围中的最佳可能位置的位置开始。即使最佳位置(例如MV)较大,如果迭代从全局运动开始,则也能够抵达搜索位置。用于H.264编码器的推测起始点迭代搜索方案极大地减少了SAD计算时间。
[0074] 局部最小值避免
[0075] 迭代搜索的至关紧要的方面是如何选择接下来的中心点。如果系统简单地选择具有最小SAD的方向,则系统可能处于在局部最小值处来回往复的位置中。例如,普通的系统可能选择最小SAD点的方向。在图8所示示例中,当位置802具有5×5区域800中的最小SAD值时,向右前进是合理的。下次迭代是向右对5×5区域的搜索。然而,该搜索可能处于图9所示的局部最小值900处,而未在真实最小值902处。在此情况中,下次迭代的最小SAD是5×5区域中的左边的中心1002,如图10所示。然后,普通的搜索算法确定下次搜索去往已经被搜索过的左边的5×5区域。在随后的搜索中,最小SAD再次为右边的中心,并且搜索来回地持续,逗留在局部最小值处。
[0076] 为了避免逗留在局部最小值处,局部最小避免搜索判断要分析的下一方向是否是先前分析过的方向的相反方向。在搜索前进到下一搜索中心之前,该搜索保留当前搜索的最小SAD位置。在图8的情况中,系统记住将向东前进。
[0077] 在接下来的搜索位置的SAD计算完成之后,并且挑选了最佳SAD时,系统检查是否尝试向前一迭代的“相反方向”前进。在图10的情况中,新的方向为西方,其与先前的方向刚好相反。如果这样的情况发生,系统确定向先前选择的方向(例如,东方)前进。在避开相反方向几次之后,搜索可能逃离局部最小值1100并且朝着真实最小值1102移动,如图11所示。
[0078] 图12至图14图示出了局部最小值避免搜索的示例性实现方式。在针对H.264视频编码器的实现方式中,系统仅存储前一搜索的最小SAD位置。对于5×5搜索1200,从0至24的编号被保留。图12示出了最小SAD被确定为东方的中心位置中的位置14。
[0079] 在迭代的下一步骤中,在计算出新的最小SAD位置之后,将新的位置与前一最佳位置相比较。基于查找表或其它映射方案,方法/系统能够得知哪些位置被认为处于相反方向上。例如,在图12中前一步骤中的最佳位置为14,因此,在图13中阴影位置1300被认为“与先前最佳相反”。
[0080] 如果新的位置是这些阴影位置1300中的任一个,则系统认为迭代“后退”到先前搜索位置。于是,系统不考虑基本迭代规则并且选择东方作为下一方向。
[0081] 在5×5搜索的情况中,一些可应用规则已被减少为图14所示的图案。可以通过旋转附图来应用其它位置。针对先前搜索位置的阴影位置1400被示出,并且相对应的禁止位置1402被示为与阴影位置1400相对。一般地,角落位置产生相对的角落位置(可能具有被认为是相对的延伸),并且边/顶部/底部位置具有各自相对的边/底部/顶部位置作为相对位置。
[0082] 图15图示出了经简化迭代搜索的流程图。在步骤1500,计算5×5搜索的SAD。在步骤1502,选择最小SAD位置。然后,在步骤1504,基于当前搜索结果选择新的搜索中心。该处理重复指定次数,直到达到阈值或符合另一标准为止。
[0083] 局部最小值避免搜索的流程在图16中示出。在选择新的搜索中心之前,检查新的方向以判断该方向是否正后退。如果是,则该方向被先前的方向取代。方向是由最小SAD的位置确定的。例如,如果最小SAD是中心以东的位置,则该方向为东方。如果方向是上部向东位置,则方向为东北方,等等。
[0084] 具体地,在步骤1600,计算5×5区域中的每个搜索位置的SAD。在步骤1602,选择具有最小SAD的位置。在步骤1604,确定新位置的方向。在步骤1606,判断该方向是否与先前方向相反。如果该方向不是相反的,则在步骤1608新的位置被保留,并且跳过步骤1610。如果该方向是相反的,则在步骤1610新的位置被设置为先前位置。然后,在步骤1612,基于在步骤1608或步骤1610中确定的位置来选择新的搜索中心。在步骤1614,该处理重复指定次数,直到达到阈值或符合另一标准为止。
[0085] 在一些实施例中,当检测到“后退”时,则追随相同的方向(例如,先前的方位)。在一些实施例中,当检测到“后退”时,采取经调节的方向,其中,经调节方向位于先前方向与新方向之间的某个地方。
[0086] 尽管为了示例性目的描述了5×5搜索,然而可以进行任何适当大小的搜索。
[0087] 如上所述,图7图示出了计算设备700。该计算设备除了可以执行推测起始点方法以外,该计算设备还可以执行除其它应用以外的或者替代其它应用的局部最小值避免。在一些实施例中,计算设备700包括用于避免局部最小值的附加应用732。在一些实施例中,局部最小值避免方法在与推测起始点选择应用730相同的应用中实现。在一些实施例中,计算设备ME HW 720被配置来避开局部最小值。局部最小值避免可以通过硬件、固件、软件或者它们的任意组合来实现。
[0088] 为了利用局部最小值避免搜索,计算设备照常工作,但是运动估计处理的改进之处在于其更高效且更精确,这是因为将避开局部最小值。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。局部最小值避免搜索能够自动地提高视频质量。例如,局部最小值避免搜索能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该经改进的局部最小值避免处理。
[0089] 在操作中,局部最小值避免搜索通过防止迭代搜索持续地来回搜索相同位置来避开局部最小值。
[0090] 下一搜索位置方案
[0091] 由于迭代搜索仅能够搜索搜索范围中的有限的点,因此如果搜索点未被有效地选择,则图片质量将显著降低。另外,搜索点选择在迭代中的每个步骤中被执行。因此,优选地,作出决定的算法要快。
[0092] 下一搜索位置方案能够基于最小SAD的位置快速地决定下一搜索中心。
[0093] 图17图示出了下一位置选择器1702的操作的流程图的示图。下一位置选择器1700的输入1702是当前搜索中的最小SAD的位置。在3×3步骤的情况中,该位置是从0至8的编号,如图18所示。输出1704是从当前搜索中心到新的搜索中心的偏移。迭代搜索随后基于该输出移动。
[0094] 例如,当最小SAD的位置是图18中被标为“1”的位置时,下一搜索中心将在当前搜索中心向北3个像素处。因此,如果当前搜索的搜索中心在位置(10,10)处并且3×3搜索区域中的最佳/最小SAD位置在位置1处,则下一搜索中心将在位置(10,7)处。然而,如果最小SAD在位置5处,则下一搜索中心将在向东3个像素处。因此,如果当前搜索中心在位置(10,10)处,则新的搜索中心将在位置(13,10)处。
[0095] 图18-20图示出了对于3×3搜索区域基于具有当前搜索区域的最小SAD的位置的下一搜索区域。图18图示出了3×3搜索,其中每个位置由一个编号指定。该图案仅包括水平、垂直和对角线位置。图19示出了水平位置(3、5)和垂直位置(1、7),它们具有相对应的下一搜索区域偏移—位置1:北(0,-3)、位置3:西(-3,0)、位置7:南(0,3)和位置5:东(3,0)。图20示出了对角线位置(0、2、6、8),它们具有相对应的搜索区域偏移—位置0:
西北(-2,-2)、位置6:西南(-2,2)、位置8:东南(2,2)和位置2:东北(2,-2)。
[0096] 尽管已描述了3×3搜索区域,然而任何适当的搜索区域都是可以的。
[0097] 图21图示出了选择下一位置的方法的流程图。在步骤3100,确定搜索区域中具有最小SAD的位置。在一些实施例中,搜索区域为3×3个像素,并且在一些实施例中,搜索区域具有不同大小。在步骤3102,基于该最小SAD位置来自动为下一搜索区域计算/查找下一搜索区域中心点的偏移。在一些实施例中,下一中心点的实际位置是基于当前中心点计算的。在步骤3104,为下一搜索区域选择中心点。
[0098] 下一位置选择器所使用的规则可以通过查找表来实现。在一些实施例中,规则通过另外的手段来实现。在一些实施例中,甚至不需要SAD本身的值。规则简单地使用最小SAD的位置来确定下一搜索区域的中心点。此外,由于规则是用查找表实现的,因此可以按照需要容易地改变它们。
[0099] 图22图示出了用于基于具有最小SAD的位置来确定下一搜索区域的中心点的示例性查找表3200。如上所述,到下一搜索区域的中心点的偏移是基于最小SAD位置确定的。如图22所示,如果最小SAD在位置0处,则下一搜索区域的中心点在(-2,-2)的偏移处。
还示出了其它查找值。图22假设搜索区域为3×3个像素。对于其它搜索区域,值将相应地改变。
[0100] 下一搜索区域选择方案与简单局部最小值避免搜索方案相组合能够在H.264编码器中利用少的处理器周期获得高质量的编码。
[0101] 如上所述,图7图示出了计算设备700。该计算设备700除了可以执行推测起始点迭代搜索方案和局部最小值避免方法以外,该计算设备700还可以执行除其它应用以外的或者替代其它应用的下一搜索位置选择方法。在一些实施例中,计算设备700包括用于选择下一搜索位置的附加应用734。在一些实施例中,下一搜索位置选择在与应用732或推测起始点选择应用730相同的应用中实现。在一些实施例中,用于选择下一搜索位置的应用734或硬件720包括:用于接收搜索区域的最小SAD位置的输入组件734′、用于基于最小SAD位置查找偏移的诸如查找表之类的映射组件734″,以及用于输出下一搜索区域的中心点的偏移的输出组件734′″。在一些实施例中,取代将偏移输出或者除了将偏移输出以外,还确定下一搜索区域的中心点的实际位置。在一些实施例中,计算设备ME HW 720被配置来选择下一搜索位置。下一搜索位置选择可以通过硬件、固件、软件或者它们的任意组合来实现。
[0102] 为了利用下一位置选择器,计算设备照常工作,但是运动估计处理的改进之处在于其更高效且更精确,这是因为要搜索的更好的下一位置将被选出。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。下一位置选择器能够自动地提高视频质量。例如,下一位置选择器能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该下一位置选择器。
[0103] 在操作中,下一位置选择器确定下一搜索区域的中心点,以提高运动估计的效率。此外,由于下一位置选择器使用了简单的方案,因此容易实现。
[0104] 细化方案
[0105] 在平滑、平坦的区域中,大多数位置具有类似的SAD值。因此,搜索算法容易被欺骗,因为任何运动向量都像是好的候选。然而,如果ME选择任意运动向量,则除了系数以外更多的比特被消耗用于运动向量头部,从而产生更差的感知到的图片质量。另外,尽管其不太影响信噪比,然而平滑表面中的不协调运动会生成不自然的图片,从而降低感知到的质量。
[0106] 当原始图片具有许多噪声时,SAD计算容易被噪声欺骗。有时,这些不正确的运动向量由于噪声而具有更小的SAD值。然而,这些不准确的运动容易被人眼认出。
[0107] 将描述利用预测运动向量(PMV)细化(refine)迭代搜索的方案。PMV是从相邻宏块预测出的当前宏块的最可能运动向量。
[0108] 利用周围宏块的运动向量的迭代搜索流程在图23中示出。PMV细化给予PMV位置两次机会。在步骤3300,计算三个位置的SAD:全局运动向量(GMV)、零(0)运动向量(0MV)和预测运动向量(PMV)。GMV针对每个帧根据先前编码帧的统计信息被计算一次,并且PMV针对每个宏块从当前帧中的相邻宏块被估计出。具有最小SAD的位置被用作随后的迭代搜索的起始位置。取决于编码器/解码器(CODEC),各个位置都可被选为“有希望的”位置,而不限于上面那些位置。尽管上面描述了三个位置,然而,可供选择的位置的数目不限于三个;而是,更多或更少的位置可被选择。
[0109] 在步骤3302,系统执行在图4中描述的迭代搜索。然而,该迭代的起始位置是来自步骤3300的最佳起始位置。PMV位置的SAD值被计算出并且与诸如0MV和全局MV之类的其它位置相比较,以确定如上所述的迭代的起始位置。在一些实施例中,在步骤3300之后,所选SAD被用作用于迭代搜索的其它实现方式的起始位置。迭代搜索得到最小SAD位置。在步骤3304,运动向量成本(cost)被添加到迭代搜索优胜者的SAD中,而不向PMV的SAD添加MV成本。然后,在步骤3306,被添加了运动向量成本的迭代搜索优胜者(例如,最小SAD位置)再次与PMV位置的SAD相比较。具有运动向量成本的迭代搜索结果与PMV的SAD中的较小者被选择。在步骤3308,运动向量被细化。结果得到了在较短时间量中被处理的平滑图像/视频。
[0110] 具有计算MV成本的各种方式。一般地,运动向量成本是基于离PMV的距离来计算的。因此,MV成本不被添加给PMV位置。
[0111] 图24图示出了当前宏块3400和相邻宏块3402及其运动向量。PMV从相邻宏块3402被计算出。
[0112] 该细化方案防止迭代搜索选择任意的运动向量。这也有助于运动向量即使在平滑表面中也变得一致,从而节省了用于运动向量头部的比特。这产生了提高的感知到的图片质量。此外,即使在有噪声的视频序列中,系统也不太可能被欺骗。
[0113] 该细化方案不限于计算PMV这种方式。此外,细化方案也可以应用于任何种类的ME应用。
[0114] 如上所述,图7图示出了计算设备700。计算设备700也可以执行该细化方案。在一些实施例中,计算设备700包括用于执行细化方案的附加应用736。在一些实施例中,应用736具有起始位置组件736′、迭代搜索组件736″和附加比较组件736′″。在一些实施例中,细化方案在与先前讨论的应用之一相同的应用中实现。在一些实施例中,计算设备ME HW720被配置来实现细化方案。该细化方案可以通过硬件、固件、软件或者它们的任意组合来实现。
[0115] 为了利用该细化方案,计算设备照常工作,但是运动估计处理的改进之处在于其更高效且更精确,尤其是对于平滑的平坦区域,这是因为合适的运动向量将被选出。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。该细化方案能够自动地提高视频质量。例如,该细化方案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该细化方案。
[0116] 在操作中,该细化方案通过向运动向量的SAD添加运动向量成本并且将该值与PMV的SAD相比较来确定适当的运动向量。这两者中的较低者随后被用于细化运动向量。该附加的比较有助于避免在图像或有噪声图像中的平滑的平坦区域中出现的问题。
[0117] 利用阈值的细化方案
[0118] 当图片的运动非常大时,上述细化方案具有一些负面影响。具体地,系统将迭代搜索的优胜者与PMV位置相比较。然而,总成本也与PMV位置相比较,其中,该总成本是“SAD+MV成本”,而PMV的总成本仅是SAD。因此,当图片中的运动较大时,MV成本也趋于较大。这使得该细化方案极大地阻碍了运动估计系统产生大的运动向量。
[0119] 添加了阈值的利用周围宏块的运动向量的迭代搜索的流程在图25中示出。PMV细化给予PMV位置两次机会,但是该阈值判断第二次机会是否有用。在步骤3500,计算三个位置的SAD:全局运动向量(GMV)、零(0)运动向量(0MV)和预测运动向量(PMV)。GMV针对每个帧根据先前编码帧的统计信息被计算一次,并且PMV针对每个宏块从当前帧中的相邻宏块被估计出。具有最小SAD的位置被用作随后的迭代搜索的起始位置。取决于编码器/解码器(CODEC),各个位置都可被选为“有希望的”位置,而不限于上面那些位置。尽管上面描述了三个位置,然而,可供选择的位置的数目不限于三个;而是,更多或更少的位置可被选择。
[0120] 在步骤3502,系统执行在图4中描述的迭代搜索。然而,该迭代的起始位置是来自步骤3500的最佳起始位置。PMV位置的SAD值被计算出并且与诸如0MV和全局MV(GMV)之类的其它位置相比较,以确定如上所述的迭代的起始位置。在一些实施例中,在步骤3500之后,所选SAD被用作用于迭代搜索的其它实现方式的起始位置。迭代搜索得到最小SAD位置。在步骤3504,运动向量成本被添加到迭代搜索优胜者的SAD中。在一些实施例中,步骤3504和3506的顺序被交换。在步骤3506中,将GMV与阈值相比较。如果GMV小于阈值,则在步骤3508,被添加了运动向量成本的迭代搜索优胜者(例如,最小SAD位置)与PMV位置的SAD相比较。在步骤3506,如果GMV大于或等于该阈值,则跳过步骤3508中的比较,并且迭代搜索结果就是在步骤3510中经细化的运动向量。结果得到了在较短时间量中被处理的平滑图像/视频。
[0121] 利用阈值的细化方案防止了迭代搜索选择任意运动向量并且还防止PMV优先阻碍较大的运动向量。这也有助于运动向量即使在平滑表面中也变得一致,从而节省了用于运动向量头部的比特。当图片中的运动较大时,这产生了提高的感知到的图片质量。
[0122] 利用阈值的细化方案不限于计算PMV这种方式。此外,细化方案也可以应用于任何种类的ME应用。
[0123] 如上所述,图7图示出了计算设备700。计算设备700也可以执行该利用阈值的细化方案。在一些实施例中,计算设备700包括用于执行利用阈值的细化方案的附加应用738。在一些实施例中,应用738具有起始位置组件738′、迭代搜索组件738″、阈值组件
738′″和附加的比较组件738″″。在一些实施例中,利用阈值的细化方案在与先前讨论的应用之一相同的应用中实现。在一些实施例中,计算设备ME HW 720被配置来实现利用阈值的细化方案。该利用阈值的细化方案可以通过硬件、固件、软件或者它们的任意组合来实现。
[0124] 为了利用该使用阈值的细化方案,计算设备照常工作,但是运动估计处理的改进之处在于其更高效且更精确,尤其是对于平滑的平坦区域,这是因为合适的运动向量将被选出。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。该利用阈值的细化方案能够自动地提高视频质量。例如,该利用阈值的细化方案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该利用阈值的细化方案。
[0125] 在操作中,该利用阈值的细化方案首先基于GMV与阈值的比较来判断迭代搜索结果与PMV的比较是否适当。如果适当,则该利用阈值的细化方案通过向运动向量的SAD添加运动向量成本并且将该值与PMV的SAD相比较来确定适当的运动向量。这两者中的较低者随后被用于细化运动向量。如果不适当,则来自迭代搜索结果的运动向量被用于进行细化。
[0126] 早期终止方案
[0127] 尽管迭代搜索算法减少了SAD计算的次数,然而在系统中SAD的功耗仍然较大。因此,减少迭代次数的方法将进而降低功耗。
[0128] 为了降低迭代搜索的功耗,迭代搜索在“好的”搜索候选被找到时终止。系统将一个步骤的最佳SAD与阈值相比较。如果该最佳SAD值小于阈值,则其被认为是“好的”搜索候选并且迭代终止。否则,搜索照常继续。
[0129] 图26图示出了利用阈值的迭代搜索的流程图。在步骤3600,处理开始于计数等于N,其中,N是要搜索的次数。在步骤3602,计算区域的SAD(例如,3×3区域)。在步骤3604,基于步骤3602中的计算来选择该区域中的最小SAD位置。在步骤3606,将最小SAD位置与先前的最佳(例如最小)SAD相比较并且保留两者中的较小者。在步骤3608,计数被递减1以考虑进步骤3606中的比较。在步骤3610,判断计数是否为0。如果计数为0,则处理结束。如果计数不为0,则在步骤3612中判断所保留的SAD是否小于阈值。如果该SAD小于阈值,则处理结束。如果该SAD不小于阈值,则在步骤3614中选择下一搜索位置。此后,处理从步骤3602起重复。在一些实施例中,还可以使用不同的计数实现方式或不同的计数顺序。
[0130] 如上所述,图7图示出了计算设备700。该计算设备700还可以执行早期终止方案。在一些实施例中,计算设备700包括用于执行早期终止方案的附加应用740。在一些实施例中,早期终止方案在与先前讨论的应用之一相同的应用中实现。在一些实施例中,应用740包括用于迭代搜索的迭代搜索组件740′和用于在满足阈值条件时进行早期终止的阈值组件740″。在一些实施例中,计算设备ME HW 720被配置来实现早期终止方案。早期终止方案可以通过硬件、固件、软件或者它们的任意组合来实现。
[0131] 为了利用早期终止方案,计算设备照常工作,但是运动估计处理的改进之处在于其更高效。从用户的角度来看,计算设备的利用与使用标准运动估计的计算设备类似或相同。例如,用户仍然简单地打开数字摄录像机并且利用该摄录像机记录视频。早期终止方案能够自动地提高视频质量。例如,早期终止方案能够用在需要运动估计的任何地方,例如图像稳定器。许多其它应用也能够利用该早期终止方案。
[0132] 在操作中,早期终止方案判断最佳SAD是否小于阈值。如果最佳SAD小于阈值,则该方案结束,而不完成其余计数。当运动估计用硬件实现时,该早期终止方案降低了迭代搜索的功耗。当用软件实现时,该早期终止方案减少了处理器周期,从而得到了更快的编码速度。
[0133] 上述方法中的任何方法和/或所有方法都可以按照需要在分离的设备上或者单个设备上实现。例如,数字摄录像机可以包括推测起始点方法、局部最小值避免、下一搜索位置方案、细化方案、利用阈值的细化方案以及早期终止方案。
[0134] 尽管这里将SAD描述为在迭代搜索中实现的距离度量以计算图案匹配程度,然而存在可以使用的许多其它距离或误差度量,例如误差值或其它距离,包括但不限于绝对传送距离之和以及均方误差。
[0135] 已根据具体实施例描述了本发明,这些实施例包括用于辅助理解本发明的构成和操作原理的细节。这里对具体实施例及其细节的引用不希望将所附权利要求的范围限制于此。本领域技术人员容易清楚,在不脱离如权利要求限定的本发明的精神和范围的情况下,可以对被选择用于说明的实施例作出各种修改。