Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MOTION PREDICTING METHOD AND SYSTEM FOR INTER-FRAME CODING
Document Type and Number:
WIPO Patent Application WO/2012/088806
Kind Code:
A1
Abstract:
A motion predicting method and system for inter-frame coding are provided in the present invention. The method includes: according to a threshold range which relative variety complexity information of a current frame is in, judging whether to enter a global motion prediction; if yes, judging whether a selected judgment area has a strong consistency horizontal motion trend, if yes, confirming that the current frame is in a horizontal global motion, and obtaining corresponding direction judgment, then ending; if the selected judgment area has not the strong consistency horizontal motion trend, selecting a vertical motion judgment area, and judging whether the vertical motion judgment area has a strong consistency vertical motion trend, if yes, confirming that the current frame is in a vertical global motion, and obtaining corresponding direction judgment, then ending; if the vertical motion judgment area has not the strong consistency vertical motion trend, carrying out a global motion judgment of horizontal and vertical motion. By adopting the present invention, compression ratio can be improved on the one hand, and compression speed can be improved on the other hand.

Inventors:
SHU QIAN (CN)
Application Number:
PCT/CN2011/072791
Publication Date:
July 05, 2012
Filing Date:
April 14, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SHENZHEN TEMOBI SCI & TECH CO (CN)
SHU QIAN (CN)
International Classes:
H04N7/26
Foreign References:
CN101207810A2008-06-25
CN101835044A2010-09-15
CN101127912A2008-02-20
Attorney, Agent or Firm:
SHENZHEN STANDARD PATENT & TRADEMARK AGENT LTD. (CN)
深圳市顺天达专利商标代理有限公司 (CN)
Download PDF:
Claims:
权利要求书

1、 一种帧间编码的运动预测方法, 其特征在于, 包括:

根据当前帧的相对变化复杂度信息所在的阈值范围, 判断是否进入全局运 动预测, 如果是, 则

判断选定的判定区域是否为强一致性水平运动趋势, 如果是, 则 确定当前帧为水平全局运动, 获取相应的方向判定, 结束。

2、 如权利要求 1所述的帧间编码的运动预测方法, 其特征在于, 所述判 断选定的判定区域是否为强一致性水平运动趋势还包括:

如果选定的判定区域不是强一致性水平运动趋势, 则选取垂直运动判定 区域, 判断所述垂直运动判定区域是否为强一致性垂直运动趋势, 如果是, 则确定当前帧为垂直全局运动, 获取相应的方向判定, 结束。

3、 如权利要求 2所述的帧间编码的运动预测方法, 其特征在于, 所述判 断所述垂直运动判定区域是否为强一致性垂直运动趋势还包括:

如果选定的区域不是强一致性垂直运动趋势, 则进行水平、 垂直运动全 局运动判定。

4、 如权利要求 1所述的帧间编码的运动预测方法, 其特征在于, 所述根 据当前帧的相对变化复杂度信息所在的阈值范围判断是否进入全局运动预测 具体为:

如果当前帧的相对变化复杂度信息大于第一阈值, 则认为当前帧与前一 帧极度近似, 判定当前帧为 Skip帧; 如果当前帧的相对变化复杂度信息在第 一阈值和第二阈值之间, 则不进入全局运动预测; 如果当前帧的相对变化复 杂度信息小于第二阈值, 则进入全局运动预测, 即判断选定的判定区域是否 为强一致性水平运动趋势, 其中第一阈值大于第二阈值。

5、 如权利要求 1所述的帧间编码的运动预测方法, 其特征在于, 所述当 前帧的相对变化复杂度信息求取方法如下:

根据宏块运动信息、 宏块纹理信息提取各宏块相对变化复杂度信息; 基于宏块相对变化复杂度信息, 获取当前帧的相对变化复杂度信息。

6、 如权利要求 5所述的帧间编码的运动预测方法, 其特征在于, 所述根 据宏块运动信息、 宏块纹理信息提取各宏块相对变化复杂度信息具体为: 求取宏块运动信息, 即当前宏块内像素与前一帧相应宏块内的像素值差 值的均方差: ti― Mbt,m,n = std[ ft (i, j I (i, j) e Mbt,m,n ) - ft— (i, j I (i, j) e Mbt— 求取宏块纹理信息, 即当前宏块内像素值的均方差:

si _ Mbtii¾n

如果 Si _ Mbt = 0, 则判定当前宏块为单点宏块, 即整个宏块所有像素值为相 同的一个像素值;

求取宏块相对变化复杂度信息:

其中, Mb 表示第 t帧第 m行 n列的宏块, ινι^ 表示第 t-1帧第 m行 n列 的宏块, ft (1,j)表示第 t帧第 i行 j列的像素值,

ft(i,j I (i j) Mbt,m,n)表示第 t帧中属于 的第 i行 j列的像素值, 表示第 t-1帧中属于 的第 i行 j列的像素值, std表不均方差,

7、 如权利要求 5所述的帧间编码的运动预测方法, 其特征在于, 所述基 于宏块相对变化复杂度信息获取当前帧的相对变化复杂度信息具体为: coun^ + + bt m>n < T¾resO

tis _ framest

count else

其中, ThresO为相应的第零判定阈值,

tis_ fra st表示第 t帧的相对变化复杂度信息,

tis一 Mbtmn表示 Mbt 的宏块相对变化复杂度信息。

8、 如权利要求 1所述的帧间编码的运动预测方法, 其特征在于, 述判 定区域需同时满足以下条件:

条件 1 : 判定区域为背景区域;

条件 2: 选取两类判定区域即水平区域和垂直区域, 每类区域至少选取两 个区域;

条件 3: 水平区域只作两个方向检测、 垂直区域只作两个方向检测 I, 在选 定的两个水平区域中只作水平运动判定, 在选定的两个垂直区域中只 运动判定。 9、 如权利要求 1所述的帧间编码的运动预测方法, 其特征在于, 所述判 断选定的判定区域是否为强一致性水平运动趋势具体包括以下步骤:

以宏块为单位, 求取判定区域内的宏块水平运动方向;

统计各水平区域中相应方向的运动宏块数;

基于各水平区域中相应方向的运动宏块数的统计信息, 判定该区域的信 息是否可用;

针对选定的水平区域的运动趋势作水平运动的判定, 即一个水平区域内 宏块数最多的运动方向, 则判定为该区域的运动方向;

根据水平区域的运动, 进行全局运动方向判定;

其中所述水平区域中相应方向包括左侧运动、 右侧运动、 静止 。

10、 如权利要求 9所述的帧间编码的运动预测方法, 其特征在于, 所述 以宏块为单位求取判定区域内的宏块水平预测方向具体为:

对所述选定的两个水平区域内的宏块, 分别具体做如下计算:

计算左侧运动预测值和当前编码值差值的均方差, 获取左侧运动预测残 计算右侧运动预测值和当前编码值差值的均方差, 获取右侧运动预测残 计算静止预测值和当前编码值差值的均方差, 获取静止运动预测残差。

11、 如权利要求 9所述的帧间编码的运动预测方法, 其特征在于, 所述 统计各水平区域中相应方向的运动宏块数具体为:

在水平区域内, 宏块预测残差最小的方向上运动宏块数加一。

12、 如权利要求 9所述的帧间编码的运动预测方法, 其特征在于, 所述 基于各水平区域中相应方向的运动宏块数的统计信息判定该区域的信息是否 可用具体为:

一个水平区域内如果相反运动方向的宏块数的差值小于第一水平判定阈 值或者该水平区域内三个运动方向宏块数的最大值与次大值的差值小于第二 水平判定阈值, 则认为该区域的信息不可用。

13、 如权利要求 9所述的帧间编码的运动预测方法, 其特征在于, 所述 根据水平区域的运动进行全局运动方向判定具体为:

两个水平区域的运动方向一致且都不属于静止方向, 并且每个区域相应 运动方向上的宏块数大于相应第三判定阈值, 或者两个水平区域的运动方向 不一致但其中一个区域运动方向为静止并且另一非静止方向的区域其相应运 动方向的宏块数大于相应第四判定阈值, 那么即可获取全局运动方向, 结束 全局运动预测判断, 否则, 选取垂直运动判定区域, 判断所述垂直运动判定 区域是否为强一致性垂直运动趋势。

14、 如权利要求 2所述的帧间编码的运动预测方法, 其特征在于, 所述 判断所述垂直运动判定区域是否为强一致性垂直运动趋势具体包括以下步 骤:

对所述选定的垂直区域作垂直运动预测;

统计各垂直区域中相应方向的运动宏块数;

基于各垂直区域中相应方向的运动宏块数的统计信息, 判定该区域的信 息是否可用;

针对所述选定的垂直区域的运动趋势作垂直运动的判定, 即一个垂直区 域内宏块数最多的运动方向, 则判定为该区域的运动方向;

根据垂直区域的运动, 进行全局运动方向判定;

其中, 所述垂直区域中相应方向包括上侧运动、 下侧运动、 静止方向。

15、 如权利要求 14所述的帧间编码的运动预测方法, 其特征在于, 所述 对所述选定的垂直区域作垂直运动预测具体为:

在所述选定的两个垂直区域内的宏块, 分别具体做如下计算:

计算上侧运动预测值和当前编码值差值的均方差, 获取上侧运动预测残 计算下侧运动预测值和当前编码值差值的均方差, 获取下侧运动预测残 计算静止预测值和当前编码值差值的均方差, 获取静止运动预测残差。

16、 如权利要求 14所述的帧间编码的运动预测方法, 其特征在于, 所述 统计各垂直区域中相应方向的运动宏块数具体为:

在垂直区域内, 宏块预测残差最小的方向上运动宏块数加一。

17、 如权利要求 14所述的帧间编码的运动预测方法, 其特征在于, 所述 基于各垂直区域中相应方向的运动宏块数的统计信息判定该区域的信息是否 可用具体为:

一个垂直区域内如果相反运动方向的宏块数的差值小于第一垂直判定阈 值或者该区域内三个运动方向宏块数的最大值与次大值的差值小于第二垂直 判定阈值, 则认为该区域的信息不可用。

18、 如权利要求 14所述的帧间编码的运动预测方法, 其特征在于, 所述 根据垂直区域的运动进行全局运动方向判定具体为:

两个垂直区域的运动方向一致且都不属于静止方向, 并且每个区域相应 运动方向上的宏块数大于相应的第三判定阈值, 或者两个垂直区域的运动方 向不一致但其中一个区域运动方向为静止并且另一非静止方向的区域其相应 运动方向的宏块数大于相应的第四判定阈值, 那么即可获取全局运动方向, 结束全局运动预测判断, 否则, 进行水平、 垂直运动全局运动判定。

19、 如权利要求 3所述的帧间编码的运动预测方法, 其特征在于, 所述 进行水平、 垂直运动全局运动判定具体包括以下步骤:

计算水平区域的方向差值和垂直区域的方向差值, 即计算水平、 垂直区 域最大运动方向宏块数与次大运动方向宏块数的差值, 同类区域的最小值即 为该类区域的方向差值;

根据水平区域、 垂直区域的各类情况择优选取、 确定全局运动方向。

20、 如权利要求 19所述的帧间编码的运动预测方法, 其特征在于, 所述 根据水平区域、 垂直区域的各类情况择优选取、 确定全局运动方向具体为: 情况 1 : 当两个同类区域的运动方向都一致时, 如果满足一类区域运动方 向差值与另一类区域运动方向差值大于相应的第九判定阈值或者一类区域运 动方向差值大于相应的第五判定阈值, 则运动方向差值大的区域的运动方向 即为全局运动方向; 所述第九判定阈值为 mbheight/mbwidth , mbheight表示一帧 图像的宏块行数, mbwidth表示一帧图像的宏块列数;

情况 2:当两个水平区域的运动方向一致而两个垂直区域的运动方向不一 致时:

情况 21 : 如果两个垂直区域信息均判定为有效或者一个垂直区域有 效,而且该垂直区域运动方向的宏块数小于相应的第六判定阈值, 则 当水平区域的方向差值满足相应的第五判定阈值时,全局运动方向即 为水平区域的运动方向;

情况 22: 只有一个垂直区域有效,

如果垂直区域的方向差值大于相应的第五判定阈值并且垂直区 域的方向差值与水平区域的方向差值的比值大于相应的第七判定阈 值,并且水平区域的运动方向为静止, 则有效垂直区域的运动方向即 为全局运动方向;

如果水平区域的方向差值大于相应的第五判定阈值并且水平区 域的方向差值与垂直区域的方向差值的比值大于相应的第七判定阈 值, 则全局运动方向即为水平区域的运动方向;

情况 3 :当两个垂直区域的运动方向一致而两个水平区域的运动方向不一 致时:

情况 31 : 如果两个水平区域信息均判定为有效或者一个水平区域有 效而且该水平区域运动方向的宏块数小于相应的第六判定阈值, 则 当垂直区域的方向差值满足相应的第五判定阈值时, 全局运动方向 即为垂直区域的运动方向;

情况 32: 只有一个水平区域有效,

如果水平区域的方向差值大于相应的第五判定阈值并且水平区 域的方向差值与垂直区域的方向差值的比值大于相应的第八判定阈 值, 并且垂直区域的运动方向为静止, 则有效水平区域的运动方向 即为全局运动方向;

如果垂直区域的方向差值大于相应的第五判定阈值并且垂直区 域的方向差值与水平区域的方向差值的比值大于相应的第八判定阈 值, 则全局运动方向即为垂直区域的运动方向;

情况 4: 当两个水平区域的运动方向不一致、两个垂直区域的运动方向也 不一致时, 不存在全局运动。

21、 一种帧间编码的运动预测系统, 其特征在于, 所述系统包括: 进入全局运动预测判断模块, 用于根据当前帧的相对变化复杂度信息所 在的阈值范围, 判断是否进入全局运动预测;

强一致性水平运动趋势判断模块, 用于判断选定的判定区域是否为强一 致性水平运动趋势, 如果是则确定当前帧为水平全局运动, 获取相应的方向 判定, 如果否则通知强一致性垂直运动趋势判断模块进行垂直运动趋势判断; 强一致性垂直运动趋势判断模块, 用于选取垂直运动判定区域, 判断所 述垂直运动判定区域是否为强一致性垂直运动趋势, 如果是则确定当前帧为 垂直全局运动, 获取相应的方向判定, 如果否则通知水平、 垂直运动全局运 动判定模块进行水平、 垂直运动全局运动判定;

水平、 垂直运动全局运动判定模块, 用于根据水平、 垂直区域的运动, 进行全局运动方向的判定。

Description:
一种帧间编码的运动预测方法和系统

技术领域

本发明涉及视频编码领域, 尤其涉及一种帧间编码的运动预测方法和系 统。 背景技术

视频编码中视频源的帧间信息冗余度极大, 从而使得帧间编码方法在视 频编码中显得尤为重要。 目前主流的基于宏块、 子块的运动补偿方法, 在常 规运动时, 可以达到较好的效果, 但当出现全局运动时, 相应的压缩难度提 升, 这个问题在低码率压缩时更为严重。 出现此问题, 固然是由于编码源本 身的复杂度引起的, 但另一方面却也是现有基于宏块、 子块的运动补偿的方 法存在缺陷的原因。 基于宏块、 子块的运动补偿的方法割裂了区域及全局相 关性, 当存在全局运动时, 仅使用该方法不能很好的消除帧间信息的冗余 度, 从而使得低码率下的压缩质与量的矛盾尤为突 出。 此外, 逐个判定的模式也 浪费了计算资源。 发明内容

本发明实施例的目的在于提出一种帧间编码的 运动预测方法和系统, 旨 在解决现有技术基于宏块、 子块的运动补偿的方法割裂了区域及全局相关 性, 当存在全局运动时, 不能很好的消除帧间信息的冗余度, 从而使得低码率下 的压缩质与量的矛盾尤为突出的问题。

本发明实施例方法是这样实现的, 提供一种帧间编码的运动预测方法, 所述方法包括:

根据当前帧的相对变化复杂度信息所在的阈值 范围, 判断是否进入全局 运动预测, 如果是, 则

判断选定的判定区域是否为强一致性水平运动 趋势, 如果是, 则 确定当前帧为水平全局运动, 获取相应的方向判定, 结束。

本发明帧间编码的运动预测方法中, 所述判断选定的判定区域是否为强 一致性水平运动趋势还包括:

如果选定的判定区域不是强一致性水平运动趋 势, 则选取垂直运动判定 区域, 判断所述垂直运动判定区域是否为强一致性垂 直运动趋势, 如果是, 则确定当前帧为垂直全局运动, 获取相应的方向判定, 结束。 本发明帧间编码的运动预测方法中, 所述判断所述垂直运动判定区域是 否为强一致性垂直运动趋势还包括:

如果选定的区域不是强一致性垂直运动趋势, 则进行水平、 垂直运动全 局运动判定。

本发明帧间编码的运动预测方法中, 所述根据当前帧的相对变化复杂度 信息所在的阈值范围判断是否进入全局运动预 测具体为:

如果当前帧的相对变化复杂度信息大于第一阈 值, 则认为当前帧与前一 帧极度近似, 判定当前帧为 Skip帧; 如果当前帧的相对变化复杂度信息在第 一阈值和第二阈值之间, 则不进入全局运动预测; 如果当前帧的相对变化复 杂度信息小于第二阈值, 则进入全局运动预测, 即判断选定的判定区域是否 为强一致性水平运动趋势, 其中第一阈值大于第二阈值。

本发明帧间编码的运动预测方法中, 所述当前帧的相对变化复杂度信息 求取方法如下:

根据宏块运动信息、 宏块纹理信息提取各宏块相对变化复杂度信息 ; 基于宏块相对变化复杂度信息, 获取当前帧的相对变化复杂度信息。 本发明帧间编码的运动预测方法中, 所述根据宏块运动信息、 宏块纹理 信息提取各宏块相对变化复杂度信息具体为:

求取宏块运动信息, 即当前宏块内像素与前一帧相应宏块内的像素 值差 值的均方差:

ti― Mb t , m , n = std[ f t (i, j I (i, j ) e Mb t , m , n ) - f t — (i, j I (i, j ) e Mb t

求取宏块纹理信息, 即当前宏块内像素值的均方差:

si _ Mb tii¾n

如果 S i _ Mb t = 0, 则判定当前宏块为单点宏块, 即整个宏块所有像素值为相 同的一个像素值;

求取宏块相对变化复杂度信息:

其中, 表示第 t帧第 m行 n列的宏块, - 1 , 表示第 t-1帧第 m行 n列 的宏块, f t (1 ,j)表示第 t帧第 i行 j列的像素值,

f t (i, j I (i j) e Mb t , m , n )表示第 t帧中属于 的第 i行 j列的像素值, 表示第 t-1帧中属于 ^- 1 , 的第 i行 j列的像素值,

coun^ + + , tis _Mb t m n < ThresO

tis _ frames t = < ' '

coun^ , else

其中, ThresO为相应的第零判定阈值,

tis_ fra st表示第 t帧的相对变化复杂度信息,

tis一 Mb t m n 表示 Mb一的宏块相对变化复杂度信息。 本发明帧间编码的运动预测方法中, 所述判定区域需同时满足以下条件: 条件 1 : 判定区域为背景区域;

条件 2: 选取两类判定区域即水平区域和垂直区域, 每类区域至少选取两 个区域;

条件 3 : 水平区域只作两个方向检测、 垂直区域只作两个方向检测, 在选 定的两个水平区域中只作水平运动判定, 在选定的两个垂直区域中只作垂直 运动判定。

本发明帧间编码的运动预测方法中, 所述判断选定的判定区域是否为强 一致性水平运动趋势具体包括以下步骤:

以宏块为单位, 求取判定区域内的宏块水平运动方向;

统计各水平区域中相应方向的运动宏块数;

基于各水平区域中相应方向的运动宏块数的统 计信息, 判定该区域的信 息是否可用;

针对选定的水平区域的运动趋势作水平运动的 判定, 即一个水平区域内 宏块数最多的运动方向, 则判定为该区域的运动方向;

根据水平区域的运动, 进行全局运动方向判定;

其中所述水平区域中相应方向包括左侧运动、 右侧运动、 静止 。

本发明帧间编码的运动预测方法中, 所述以宏块为单位求取判定区域内 的宏块水平预测方向具体为:

对所述选定的两个水平区域内的宏块, 分别具体做如下计算:

计算左侧运动预测值和当前编码值差值的均方 差, 获取左侧运动预测残 计算右侧运动预测值和当前编码值差值的均方 差, 获取右侧运动预测残 计算静止预测值和当前编码值差值的均方差, 获取静止运动预测残差。 本发明帧间编码的运动预测方法中, 所述统计各水平区域中相应方向的 运动宏块数具体为:

在水平区域内, 宏块预测残差最小的方向上运动宏块数加一。

本发明帧间编码的运动预测方法中, 所述基于各水平区域中相应方向的 运动宏块数的统计信息判定该区域的信息是否 可用具体为:

一个水平区域内如果相反运动方向的宏块数的 差值小于第一水平判定阈 值或者该水平区域内三个运动方向宏块数的最 大值与次大值的差值小于第二 水平判定阈值, 则认为该区域的信息不可用。

本发明帧间编码的运动预测方法中, 所述根据水平区域的运动进行全局 运动方向判定具体为:

两个水平区域的运动方向一致且都不属于静止 方向, 并且每个区域相应 运动方向上的宏块数大于相应第三判定阈值, 或者两个水平区域的运动方向 不一致但其中一个区域运动方向为静止并且另 一非静止方向的区域其相应运 动方向的宏块数大于相应第四判定阈值, 那么即可获取全局运动方向, 结束 全局运动预测判断, 否则, 选取垂直运动判定区域, 判断所述垂直运动判定 区域是否为强一致性垂直运动趋势。

本发明帧间编码的运动预测方法中, 所述判断所述垂直运动判定区域是 否为强一致性垂直运动趋势具体包括以下步骤 :

对所述选定的垂直区域作垂直运动预测;

统计各垂直区域中相应方向的运动宏块数;

基于各垂直区域中相应方向的运动宏块数的统 计信息, 判定该区域的信 息是否可用;

针对所述选定的垂直区域的运动趋势作垂直运 动的判定, 即一个垂直区 域内宏块数最多的运动方向, 则判定为该区域的运动方向;

根据垂直区域的运动, 进行全局运动方向判定;

其中, 所述垂直区域中相应方向包括上侧运动、 下侧运动、 静止方向。 本发明帧间编码的运动预测方法中, 所述对所述选定的垂直区域作垂直 运动预测具体为: 在所述选定的两个垂直区域内的宏块, 分别具体做如下计算: 计算上侧运动预测值和当前编码值差值的均方 差, 获取上侧运动预测残 计算下侧运动预测值和当前编码值差值的均方 差, 获取下侧运动预测残 计算静止预测值和当前编码值差值的均方差, 获取静止运动预测残差。 本发明帧间编码的运动预测方法中, 所述统计各垂直区域中相应方向的 运动宏块数具体为:

在垂直区域内, 宏块预测残差最小的方向上运动宏块数加一。

本发明帧间编码的运动预测方法中, 所述基于各垂直区域中相应方向的 运动宏块数的统计信息判定该区域的信息是否 可用具体为:

一个垂直区域内如果相反运动方向的宏块数的 差值小于第一垂直判定阈 值或者该区域内三个运动方向宏块数的最大值 与次大值的差值小于第二垂直 判定阈值, 则认为该区域的信息不可用。

本发明帧间编码的运动预测方法中, 所述根据垂直区域的运动进行全局 运动方向判定具体为:

两个垂直区域的运动方向一致且都不属于静止 方向, 并且每个区域相应 运动方向上的宏块数大于相应的第三判定阈值 , 或者两个垂直区域的运动方 向不一致但其中一个区域运动方向为静止并且 另一非静止方向的区域其相应 运动方向的宏块数大于相应的第四判定阈值, 那么即可获取全局运动方向, 结束全局运动预测判断, 否则, 进行水平、 垂直运动全局运动判定。

本发明帧间编码的运动预测方法中, 所述进行水平、 垂直运动全局运动 判定具体包括以下步骤:

计算水平区域的方向差值和垂直区域的方向差 值, 即计算水平、 垂直区 域最大运动方向宏块数与次大运动方向宏块数 的差值, 同类区域的最小值即 为该类区域的方向差值;

根据水平区域、 垂直区域的各类情况择优选取、 确定全局运动方向。 本发明帧间编码的运动预测方法中, 所述根据水平区域、 垂直区域的各 类情况择优选取、 确定全局运动方向具体为:

情况 1 : 当两个同类区域的运动方向都一致时, 如果满足一类区域运动方 向差值与另一类区域运动方向差值大于相应的 第九判定阈值或者一类区域运 动方向差值大于相应的第五判定阈值, 则运动方向差值大的区域的运动方向 即为全局运动方向; 所述第九判定阈值为 mbheight/mbwidth , mbheight表示一帧 图像的宏块行数, mbwidth表示一帧图像的宏块列数;

情况 2:当两个水平区域的运动方向一致而两个垂直 域的运动方向不一 致时:

情况 21 : 如果两个垂直区域信息均判定为有效或者一个 垂直区域有 效,而且该垂直区域运动方向的宏块数小于相 应的第六判定阈值, 则 当水平区域的方向差值满足相应的第五判定阈 值时,全局运动方向即 为水平区域的运动方向;

情况 22: 只有一个垂直区域有效,

如果垂直区域的方向差值大于相应的第五判定 阈值并且垂直区 域的方向差值与水平区域的方向差值的比值大 于相应的第七判定阈 值,并且水平区域的运动方向为静止, 则有效垂直区域的运动方向即 为全局运动方向;

如果水平区域的方向差值大于相应的第五判定 阈值并且水平区 域的方向差值与垂直区域的方向差值的比值大 于相应的第七判定阈 值, 则全局运动方向即为水平区域的运动方向;

情况 3 :当两个垂直区域的运动方向一致而两个水平 域的运动方向不一 致时:

情况 31 : 如果两个水平区域信息均判定为有效或者一个 水平区域有 效而且该水平区域运动方向的宏块数小于相应 的第六判定阈值, 则 当垂直区域的方向差值满足相应的第五判定阈 值时, 全局运动方向 即为垂直区域的运动方向;

情况 32: 只有一个水平区域有效,

如果水平区域的方向差值大于相应的第五判定 阈值并且水平区 域的方向差值与垂直区域的方向差值的比值大 于相应的第八判定阈 值, 并且垂直区域的运动方向为静止, 则有效水平区域的运动方向 即为全局运动方向;

如果垂直区域的方向差值大于相应的第五判定 阈值并且垂直区 域的方向差值与水平区域的方向差值的比值大 于相应的第八判定阈 值, 则全局运动方向即为垂直区域的运动方向;

情况 4: 当两个水平区域的运动方向不一致、两个垂直 区域的运动方向也 不一致时, 不存在全局运动。 本发明实施例的另一目的在于提出一种帧间编 码的运动预测系统, 所述 系统包括:

进入全局运动预测判断模块, 用于根据当前帧的相对变化复杂度信息所 在的阈值范围, 判断是否进入全局运动预测;

强一致性水平运动趋势判断模块, 用于判断选定的判定区域是否为强一 致性水平运动趋势, 如果是则确定当前帧为水平全局运动, 获取相应的方向 判定, 如果否则通知强一致性垂直运动趋势判断模块 进行垂直运动趋势判断; 强一致性垂直运动趋势判断模块, 用于选取垂直运动判定区域, 判断所 述垂直运动判定区域是否为强一致性垂直运动 趋势, 如果是则确定当前帧为 垂直全局运动, 获取相应的方向判定, 如果否则通知水平、 垂直运动全局运 动判定模块进行水平、 垂直运动全局运动判定;

水平、 垂直运动全局运动判定模块, 用于根据水平、 垂直区域的运动, 进行全局运动方向的判定。

本发明的有益效果: 本发明提出一种帧间编码的运动预测方法和系 统, 利用本发明, 一方面可以提升压缩率, 另一方面可以提升压缩速度, 即对存 在全局运动的视频源进行压缩时, 可通过统一判断的方式确定运动预测, 而 不需依赖基于宏块、 子块的运动预测方法对每个宏块子块依次作判 断。 附图说明

图 1是本发明实施例的一种帧间编码的运动预测 法的流程图; 图 2是本发明实施例的一种帧间编码的运动预测 统的结构示意图。 具体实 式

为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图和 实施例, 对本发明进行进一步详细说明, 为了便于说明, 仅示出了与本发明 实施例相关的部分。 应当理解, 此处所描写的具体实施例, 仅仅用于解释本 发明, 并不用以限制本发明。

本发明提出一种帧间编码的运动预测方法, 先根据当前帧的相对变化复 杂度信息所在的阈值范围, 判断是否进入全局运动预测; 如果是进入全局运 动预测, 判断选定的判定区域是否为强一致性水平运动 趋势, 如果是强一致 水平运动趋势, 则获取当前帧为水平全局运动, 获取相应的方向判定, 结束; 如果不是强一致水平运动趋势, 则选取垂直运动判定区域, 判断垂直运动判 定区域是否为强一致性垂直运动趋势, 如果是强一致性垂直运动趋势, 则获 取当前帧为垂直全局运动, 获取相应的方向判定, 结束; 如果不是强一致性 垂直运动趋势, 则进行水平、 垂直运动全局运动判定。

图 1 所示为本发明实施例一种帧间编码的运动预测 方法的流程图, 该方 法包括以下步骤:

S11 , 根据当前帧的相对变化复杂度信息所在的阈值 范围, 判断是否进入 全局运动预测。

具体为: 如果当前帧的相对变化复杂度信息大于第一阈 值, 则认为当前 帧与前一帧极度近似, 判定当前帧为 Skip帧 (前后两帧近乎无运动, 可直接 复制前一帧图像) ; 如果当前帧它的相对变化复杂度信息在第一阈 值和第二 阈值之间, 则不进入全局运动预测; 如果当前帧的相对变化复杂度信息小于 第二阈值, 则进入全局运动预测, 即进入步骤 S12。其中第一阈值大于第二阈 值。

是否进入全局运动预测方法的程序描述如下:

if (tis_fr ames t > Thres 1 )

则第 t帧与第 t-l帧极度近似, 判定第 t帧为 Skip帧

if (tis _ frames t < Thres 2)

则运用全局运动预测方法进行预测

if (Thres 2 < tis _ frames t < Thres 1)

则无全局运动趋势, 进入基于宏块、 块的运动预测 其中: Thresl、 Thres2为相应的第一阈值和第二阈值判定阈值, tis_ franKs t 表示 第 t帧的相对变化复杂度信息。

当前帧的相对变化复杂度信息求取方法如下:

A): 根据宏块运动信息、 宏块纹理信息提取各宏块相对变化复杂度信息 : a) 宏块运动信息: 当前宏块内像素与前一帧相应宏块内的像素值 差 值的均方差:

ti - Mb t , n = std[ f t (i, j I (i, j) e Mb tiI¾n ) - f t _, (i, j I (i, j) e Mb t _ liI¾n )] 。

b) 宏块纹理信息: 当前宏块内像素值的均方差:

si _ Mb tii¾n

if (si - Mb t , m , n = 0)

贝 IJ , 判定当前宏块为单点宏块, 即整个宏块所有像素值即为 相同的一个像素值。

C) 宏块相对变化复杂度信息:

Mb, Mb,

其中 ;第 t帧第 m行 n列的宏块, t-l,m,n ;第 t-1帧第 m行 n 列的宏块, f t d,j)表示第 t帧第 i行 j列的像素值, f t (i,jl(i,j)eMb t , m , n )表示第 t 帧中属于 的第 i行 j列的像素值, f t — iJi j M 表示第 t-1帧中属 于^ 3 " 的第 i行 j列的像素值, std表示均方差, ti_Mb t , m , n 表示: ^一的宏块 运动信息, si_Mb t , m , n 表示: 的宏块纹理信息。

B): 基于宏块相对变化复杂度信息, 获取当前帧的相对变化复杂度信息: coun^ + + b t>m>n <T¾resO

tis _ frames t

coun^ , else

其中 T¾res0为相应的第零判定阈值, ti S _fr anKSt 表示第 t帧的相对变化复杂度 信息, 表示^ 的宏块相对变化复杂度信息。

S12, 判断选定的判定区域是否为强一致性水平运动 趋势, 如果是则获取 当前帧为水平全局运动,获取相应的方向判定 , 结束; 如果否则进入步骤 S13。

判定区域需同时满足以下条件:

条件 1: 判定区域为背景区域

当存在全局运动时, 一般具有背景运动趋势一致, 而前景则一般 存在相对运动的特点;

条件 2: 选取两类判定区域即水平区域和垂直区域, 每类区域至少选取两 个区域

条件 3: 水平区域只作两个方向检测、 垂直区域只作两个方向检测, 本发 明实施例选定两个区域 R eg i。i¾,R eg i。 为两个水平区域, 在其中只作水平运动 判定; 本发明实施例选定两个区域设1¾ 。11 3 ,1¾ 。11 4 为两个垂直区域, 在其中 只作垂直运动判定;

其中, "判断选定的判定区域是否为强一致性水平运 趋势" 的具体方 法为

S121: 以宏块为单位, 求取判定区域内的宏块预测方向, 即对水平区域 Re gioi^Re gi。 作水平运动预测。

对水平区域 Region^Regk^内的宏块, 分别具体做如下计算:

计算左侧运动预测值和当前编码值差值的均方 差, 获取左侧运动预测残 计算右侧运动预测值和当前编码值差值的均方 差, 获取右侧运动预测残 计算静止预测值和当前编码值差值的均方差, 获取静止运动预测残差。 具体计算公式如下:

diff Kght = std[ f t mn (i, j) - predR_ f_ 1>mn (i, j) I Mb t G Region Regior^] dffaatic =std[f tmn (i j)- predS— f t _ lim , n (i, j) I Mb tmn e Re gio^ Re gioi^ ]

Mb,

其中: Mb t 表示第 t帧第 m行 n列的宏块, lvlDt 为当前编码第 t帧第 m行 n 列的宏块, ^^^^为^ 中第 i行第 j列的像素值, f^j)表示第 t帧第 i 行 j列的像素值, std表示均方差, ! ^为左侧运动预测残差, predL— f t lmn (i,j) 为利用前一帧图像对当前宏块作左侧运动估计 的预测值, di ffRlght 为右侧运动预 测残差, predR— f t lmn (i, j)为利用前一帧图像对当前宏块作右侧运动估 的预 测值, diff stafc 为静止运动预测残差, pr edS_ f t — ^ iJ)为利用前一帧图像对当前 宏块作静止运动估计的预测值。

S122: 统计各水平区域中相应方向的运动宏块数。 即在水平区域内, 宏 块预测残差最小的方向上运动宏块数加一, 水平区域中相应方向为左侧运动、 右侧运动、 静止方向。

水平区域内, 运动宏块数统计方法的具体程序如下:

if (min( diff^, diff , diff Static ) = diff Left )

Count L , ( eft,j + +

else if (min( diff Static ) = diff L K Rig eh h t t ) '

Count ,」 + +

else

Coun^ j + +

其中, , Οηιηΐ^^分别表示水平区域 Re gi。 nj 左侧运动、 右 侧运动、 静止宏块的数量, U =1 2 ), 当 j等于 1或 2时, Re giQn j表示水平区 域; min(ab c)表示求三个值中的最小值。

S123: 基于各水平区域中相应方向的运动宏块数的统 计信息, 判定该区 域的信息是否可用。 即一个水平区域内如果相反运动方向的宏块数 的差值小于第一水平判 定阈值 reShl 或者该水平区域内三个运动方向 (左侧运动、 右侧运动、 静止) 宏块数的最大值与次大值的差值小于第二水平 判定阈值 lhre Sh2 ,则认为该区域 的信息不可用。

详细程序如下:

if (abs(Count Left j - County j ) < Thres hl 11

, County , ,Count StafcJ ) - , County , ,Count StafcJ ) < Thres h2 ) 该区域信息不可用 其中, 、 Οηιηΐ^^分别表示水平区域 Re gi。 nj 左侧运动、 右 侧运动、 静止宏块的数量 (j = 1 2 ), 当 j等于 1或 2时, Re giQn j表示水平区域; max(a,b,c)、 lessmax(a,b,c)分别为求三个值中的最大值和次大 , Thres hl 为第一 水平判定阈值, !!^^为第二水平判定阈值。

S124: 针对选定的水平区域的运动趋势作水平运动的 判定, 即一个水平 区域内宏块数最多的运动方向, 则判定为该区域的运动方向。

详细程序如下:

if ( Region有效) 则获取其水平运动方向判定 direction.

其中 directioiij为 Regies的运动方向, 其分为左侧运动方向 Left、 右侧运动 方向 Right、静止 Static; Count Left j 、 Count^ j 、 Count^c」分别表示水平区域 Re gio^ 左侧运动、右侧运动、静止宏块的数量 (j = 1,2), 当 j等于 1或 2时, Re gi Qn J表 示水平区域; ma X (a, b, c)表示求三个值中的最大值。

S125 : 根据水平区域的运动, 进行全局运动方向判定。

即两个水平区域的运动方向一致且都不属于静 止方向, 并且每个区域相 应运动方向上的宏块数大于相应第三判定阈值 T¾res3 ; 或者两个水平区域的运 动方向不一致但其中一个区域运动方向为静止 并且另一非静止方向的区域其 相应运动方向的宏块数大于相应第四判定阈值 T¾res4;那么即可获取全局运动 方向, 结束全局运动预测判断, 否则, 进入 S13。

详细程序如下: if ((direction = direction 2 &&directicn 1 ≠ Static&&

C oun c > Ί¾ Γ 3&& ιιη ¾ 2 > lhres3 * weight) II

(direction≠ = Static&&Caint direction >1 > T¾res4 * weight)) directioi¾ frame = direction, 获取方向结束全局运

else

if (direction≠ direction 2 ) & = Static&&Caint direction 2 > Thres 4)) dir eC ti。i¾ fram6 = direction,, 获取方向结束全局运动预测判断 否则, 进入 S13

其中 directi。!^ m6 为第 t帧的运动方向, Thres3、 T¾res4分别为第三判定阈值和第 四判定阈值; 水平判定

weight:

mbheight/ mb width 垂直判定

mbheight , mbwidth分别表示以宏块为单位时,一帧图像的 数与列数; 表示水平区域 Re gi。 ni 的运动方向; dkeeti ° 表示水平区域 Re gion 2 的运动方向;

Count ;水平区域 Re gies的运动方向上的宏块数; County 区域 Re gion 2 的运动方向上的宏块数。

S13 , 选取垂直运动判定区域, 判断垂直运动判定区域是否为强一致性垂 直运动趋势, 如果是则获取当前帧为垂直全局运动, 获取相应的方向判定, 结束, 如果否则进入步骤 S14。

"判断垂直运动判定区域是否为强一致性垂直 动趋势"具体方法为: S131 , 对选定的垂直区域作垂直运动预测。

对垂直区域 Re gi 0n3 ,R e gi 0 ii 4 内的宏块, 分别具体做如下计算:

计算上侧运动预测值和当前编码值差值的均方 差, 获取上侧运动预测残 计算下侧运动预测值和当前编码值差值的均方 差, 获取下侧运动预测残 计算静止预测值和当前编码值差值的均方差, 获取静止运动预测残差。 具体计算公式如下:

diff Up = std[ f t m n (i, j)— predU_ f _ 1>m n (i, j) I Mb t n n e Re gior^ Re gion 4 ] diff D = std[ f t mn (i, j) - predD_ f _ 1>m n (i, j) I Mb t mn G Reg— RegionJ dffaatic = std[ f t mn (i j) - predS— f t — (i, j) I Mb t mn e Re gion 3 Re gionj 其中, Mb t 表示第 t帧第 m行 n列的宏块, 为当前编码第 t帧第 m行 n 列的宏块, (^)为^ 中第 i行第 j列的像素值, 表示第 t帧第 i 行 j列的像素值, std表示均方差, diff UP 为上侧运动预测残差, P redU - f t l , m , n ^j) 为利用前一帧图像对当前宏块作上侧运动估计 的预测值, diff d wn 为下侧运动预 测残差, predD— f t im n (i,j)为利用前一帧图像对当前宏块作下侧 动估计的预 测值, diff stafc 为静止运动预测残差、 predS_ f t _ m i, j)为利用前一帧图像对当前 宏块作静止运动估计的预测值, Regi n 3 Regi n 4 为垂直区域。

S132: 统计各垂直区域中相应方向的运动宏块数。 即在垂直区域内, 宏 块预测残差最小的方向上运动宏块数加一, 垂直区域中相应方向包括上侧运 动、 下侧运动、 静止方向。

垂直区域内, 运动宏块数统计方法的具体程序如下:

if (irin( diff Up diff D diff aatic ) = diff Up )

Count Up j + +

else if (irin( diff Up diff Down diff Static ) = diff Down )

Count Downj + +

else

其中 C unt Up j C unt D wn j Οηιηί^^分别表示垂直区域 Re gi。 nj 上侧运动、 下侧 运动、 静止宏块的数量 U =3 4 ), 当 j等于 3或者 4 则表示垂直区域; min(a,b,c)表示求三个值中的最小值。

S133: 基于各垂直区域中相应方向的运动宏块数的统 计信息, 判定该区 域的信息是否可用。

即一个垂直区域内如果相反运动方向的宏块数 的差值小于第一垂直判定 阈值 11^^或者该区域内三个运动方向宏块数的最大 与次大值的差值小于 第二垂直判定阈值 hres v2 , 则认为该区域的信息不可用。

详细程序如下:

if (abs(Count Up j - Count Down j ) < Thres vl 11

max(Count Up j ,Count Down j ,Count Staac j ) - lessmax(Count Upt ^ ,Count Down j ,Count Staac ^ )<Thres v2 )

贝 lj, 该区域信息不可用 其中, C。unt Up j 、 C。unt D wn j 、 Οηιηΐ^^分别表示水平区域 Re gi。 nj 上侧运动、 下 侧运动、 静止宏块的数量 (j = 3,4), 当 j等于 3或 4时, Re gi ° n j表示垂直区域; max(a,b,c), lessmax(a,b,c)分别为求三个值中的最大值和次大 , hres vl 、 Thres v2 分别为第一垂直判定阈值、 第二垂直判定阈值。

S134: 针对选定的垂直区域的运动趋势作垂直运动的 判定, 即一个垂直 区域内宏块数最多的运动方向, 则判定为该区域的运动方向。

详细程序如下:

if ( Region有效) 则获取其水平运动方向判定

Up , max(Count Upj ,Count Do j ,Cou n t Static j ) = Count Upj direction. Down , max(Count Upj ,Count Dow¾j ,Count Static ) = Count Do

Static , max(Count Upj ,Count DownJ ,Count Static j ) = Count Static j 其中 directiotij为 Regies的运动方向, 其分为上侧运动方向 Up、 下侧运动 方向 Down、 静止 Static; Regi onj 表示垂直区域(j = 3,4) ; Count^ j、 Count DoM1J , Ccnm ^分别表示垂直区域 Re gk^上侧运动、 下侧运动、 静止宏块的数量 ( j = 3,4); max(a, b, c)表示求三个值中的最大值。

S135 : 根据垂直区域的运动, 进行全局运动方向判定。

即两个垂直区域的运动方向一致且都不属于静 止方向, 并且每个区域相 应运动方向上的宏块数大于相应的第三判定阈 值 T¾res3, 或者两个垂直区域的 运动方向不一致但其中一个区域运动方向为静 止并且另一非静止方向的区域 其相应运动方向的宏块数大于相应的第四判定 阈值 Thres4,那么即可获取全局 运动方向, 结束全局运动预测判断, 否则, 进入 S14

详细程序如下:

if ((direction 3 = direction 4 &&directiai 3 ≠ Static&&

Count > T¾res3 & &Count d > Hires 3 * weight)

(directiong≠ direction 4 ) & &direction 4 = Static&&Caint > Thres 4 * weight )) direction = direction;, 获取方向结束全局运

else

if (direction 3 ≠ directioi¾ ) & &directior¾ > Thres4 * weight)) direction = direction,获取方向结束全局运 否则, 进入 S14

direction,表示垂直区域 Re gion 3 的运动方向

direction 4 表示垂直区域 Re gion 4 的运动方向

Count dire ti ¾ , 3 表示垂直区域 Re gion 3 的运动方向上的宏块数

。0111¾^。 ¾ , 4 表示垂直区域 Re gion 4 的运动方向上的宏块数

S14: 根据水平、 垂直区域的运动, 进行全局运动方向的判定。

具体方法步骤如下:

S141 : 计算各类区域 (水平区域、 垂直区域) 的方向差值 m和 n, 即计算 水平、 垂直区域最大运动方向宏块数与次大运动方向 宏块数的差值, 同类区 域的最小值即为该类区域的方向差值, m用于统计水平区域, 即水平区域的 方向差值 n用于统计垂直区域, 即垂直区域的方向差值, 初始值 m= n = 0。

详细程序如下:

if (Regionj 'Regior^均有效 )

m = (賺 (Countwt'j 'Count , County」 ) -lessmax(Count Left j , County ^Coun^ j )) if (只 Regio 有效)

m = j )) if (只 Regio 有效)

m = (賺 (Countwt'j , County ^Coun^ j ) -less賺 (Coun 」 ,Count Mght 」 'County」 )) if (Region 3 ,Region 4 均有效)

n = ^(賺(0 」 ,Count Mght 」 'County」) -lessmax Coun 」 ,Count Mght 」 'County」 )) if (只 Region 3 有效)

n = j , County j 'County」 )) if (只 Region 4 有效)

n = j , County j 'County」 ))

S142: 即根据水平区域、 垂直区域的各类情况择优选取, 确定全局运动 方向: 情况 1 : 当两个同类区域的运动方向都一致时,

如果满足一类区域运动方向差值与另一类运动 方向差值大于相应的第九 判定阈值 ( mbheight/mbwidth )并且一类区域运动方向差值大于相应的第五 定 阈值 T¾re S 5, 则运动方向差值大的区域类的运动方向即为全 局运动方向。

情况 2:当两个水平区域的运动方向一致而两个垂直 域的运动方向不一 致时,

情况 21 : 如果两个垂直区域信息均判定为有效或者一个 垂直区域有 效, 而且该垂直区域运动方向的宏块数小于相应的 第六判定阈值 Thres6,

则当水平区域的方向差值满足相应的第五判定 阈值 Thres5, 全局运动 方向即为水平区域的运动方向;

情况 22: 如果只有一个垂直区域有效、

如果垂直区域的方向差值大于相应第五判定阈 值 ThresS并且垂直区 域的方向差值与水平区域的方向差值的比值大 于相应的第七判定阈 值 Thres7并且水平区域的运动方向为静止,

贝 IJ , 有效垂直区域的运动方向即为全局运动方向;

如果水平区域的方向差值大于相应的第五判定 阈值 Thres5并且水平 区域的方向差值与垂直区域的方向差值的比值 大于相应的第七判定 阈值 Thres7,

贝 IJ , 全局运动方向即为水平区域的运动方向。

情况 3 :当两个垂直区域的运动方向一致而两个水平 域的运动方向不一 致时,

情况 31 : 如果两个水平区域信息均判定为有效或者一个 水平区域有 效而且该水平区域运动方向的宏块数小于相应 的第六判定阈值 Thres6,

则当垂直区域的方向差值满足相应的第五判定 阈值 Thres5, 全局运动 方向即为垂直区域的运动方向;

情况 32: 如果只有一个水平区域有效,

如果水平区域的方向差值大于相应的第五判定 阈值 Thres5并且水平 区域的方向差值与垂直区域的方向差值的比值 大于相应的第八判定 阈值 ThresS并且垂直区域的运动方向为静止,

贝 IJ , 有效水平区域的运动方向即为全局运动方向; 如果垂直区域的方向差值大于相应的第五判定 阈值 Thre^并且垂直 区域的方向差值与水平区域的方向差值的比值 大于相应的第八判定 阈值 Thres8,

贝 lj, 全局运动方向即为垂直区域的运动方向。

情况 4: 当两个水平区域的运动方向不一致、两个垂直 区域的运动方向也 一致时, 则, 不存在全局运动;

详细程序描述如下:

if (direction = directi 0¾ & & directiai 3 = direction 4 ) if (n≤ m* mbheight/ mb width & &m >- Thres5)

directioi frame = direction

else if (n > m* mbheight/ mbwidth& &n > Thres5 * mbheight / mb width) direction t frame = direction 4

else

无全局运动 else if (direction = directi on2&&directiai 3 ≠ direction 4 ) if ((Regio ,Region^ 有效) II (只 Regio 有效 & &Οηιη^^。 η3 ,3≤T¾res6) II (只 Regio 有效 & & υι¾^。 η4 ,4 < T¾res6)) if(m>Thres5)

direction t frame = direction i

else

无全局运动 else if (只 Regioi有效 II只 R gioi¾有效) if (n - Thres5 * mbheight /mbw id th& & (n > m * mbheight/ mbw idth 11 ( ((只 Region^有效 & &Coimt directi n33 > Thres7) II

(只 Regio¾有效 & &Coimt directa44 > Thres7)) & &directio ni = Static))) directiot^ frame = directionj, Regior^有效

}

else if (n < mbheight/ mbwidth& &m >- Thres5) directioi frame = directionj

else 无全局运动 else 无全局运动 else if (directionj≠ direction2&&directiai 3 = direction 4 ) if ((1^§1011 1 ,1¾§10 均有效) II (只 Region有效 & Count^^^l < Thres6 * mb width/ mbheight) II (只 Regio 有效 & &Count fcctl n2 ,2 < Thres6 * mbwidth/ mbheight))

{ if (n >- Thres5 * mbheight I mbw idth)

directiorij 621116 = direction 3

else

无全局运动 else II只 Region 2 有效) if (m >- Thres5 & &(n <= m * mbheight/ mbwidth 11

( ((只 Regio 有效 & &Coimt dkecti nl l > ThresS) II

( egio¾ ¾ & &Count direction2)2 > Thres 8) ) & &direc tion 3 directioi\ frame = directiorij, Regiorij有效 else

if (n > m* mbheight/ mbwidth & &n - Thres5 * mbheight/ mbwidth)

direction = direction 3

else 无全局运动 else 无全局运动 else

不存在全局运动 (水平、 垂直)

其中, mbheight : —帧图像的宏块行数

mbwidth: 一帧图像的宏块列数 本发明实施例根据当前帧的相对变化复杂度信 息所在的阈值范围, 判断 是否进入全局运动预测; 如果是进入全局运动预测, 判断选定的判定区域是 否为强一致性水平运动趋势, 如果是强一致水平运动趋势, 则获取当前帧为 水平全局运动, 获取相应的方向判定, 结束; 如果不是强一致水平运动趋势, 则选取垂直运动判定区域, 判断垂直运动判定区域是否为强一致性垂直运 动 趋势, 如果是强一致性垂直运动趋势, 则获取当前帧为垂直全局运动, 获取 相应的方向判定, 结束; 如果不是强一致性垂直运动趋势, 则进行水平、 垂 直运动全局运动判定。 利用本发明方法, 一方面可以提升压缩率, 另一方面 可以提升压缩速度, 即对存在全局运动的视频源进行压缩时, 可通过统一判 断的方式确定运动预测, 而无需像仅依赖基于宏块、 子块的运动预测方法对 每个宏块子块依次作判断。

如图 2所示为本发明实施例一种帧间编码的运动预 系统的结构示意图, 系统包括:

进入全局运动预测判断模块: 用于根据当前帧的相对变化复杂度信息所 在的阈值范围, 判断是否进入全局运动预测; 即如果当前帧的相对变化复杂 度信息大于第一阈值, 则认为当前帧与前一帧极度近似, 判定当前帧为 Skip 帧 (前后两帧近乎无运动, 可直接复制前一帧图像) ; 如果当前帧它的相对 变化复杂度信息在第一阈值和第二阈值之间, 则不进入全局运动预测; 如果 当前帧的相对变化复杂度信息小于第二阈值, 则进入全局运动预测, 即进入 强一致性水平运动趋势判断模块, 其中第一阈值大于第二阈值。

强一致性水平运动趋势判断模块: 判断选定的判定区域是否为强一致性 水平运动趋势, 如果是则获取当前帧为水平全局运动, 获取相应的方向判定, 结束; 如果否则进入强一致性垂直运动趋势判断模块 ; 即两个水平区域的运 动方向一致且都不属于静止方向, 并且每个区域相应运动方向上的宏块数大 于相应第三判定阈值 Thre S 3 ; 或者两个水平区域的运动方向不一致但其中一 个 区域运动方向为静止并且另一非静止方向的区 域其相应运动方向的宏块数大 于相应第四判定阈值 Thre S 4 ; 那么即可获取全局运动方向, 结束全局运动预测 判断, 否则, 进入强一致性垂直运动趋势判断模块。

强一致性垂直运动趋势判断模块, 选取垂直运动判定区域, 判断垂直运 动判定区域是否为强一致性垂直运动趋势, 如果是则获取当前帧为垂直全局 运动, 获取相应的方向判定, 结束, 如果否则进入水平、 垂直运动全局运动 判定模块。 即两个垂直区域的运动方向一致且都不属于静 止方向, 并且每个 区域相应运动方向上的宏块数大于相应的第三 判定阈值 T¾res3, 或者两个垂直 区域的运动方向不一致但其中一个区域运动方 向为静止并且另一非静止方向 的区域其相应运动方向的宏块数大于相应的第 四判定阈值 Thres4,那么即可获 取全局运动方向, 结束全局运动预测判断, 否则, 进入水平、 垂直运动全局 运动判定模块。

水平、 垂直运动全局运动判定模块, 用于根据水平、 垂直区域的运动, 进行全局运动方向的判定。

本发明实施例根据当前帧的相对变化复杂度信 息所在的阈值范围, 判断 是否进入全局运动预测; 如果是进入全局运动预测, 判断选定的判定区域是 否为强一致性水平运动趋势, 如果是强一致水平运动趋势, 则获取当前帧为 水平全局运动, 获取相应的方向判定, 结束; 如果不是强一致水平运动趋势, 则选取垂直运动判定区域, 判断垂直运动判定区域是否为强一致性垂直运 动 趋势, 如果是强一致性垂直运动趋势, 则获取当前帧为垂直全局运动, 获取 相应的方向判定, 结束; 如果不是强一致性垂直运动趋势, 则进行水平、 垂 直运动全局运动判定。 利用本发明方法, 一方面可以提升压缩率, 另一方面 可以提升压缩速度, 即对存在全局运动的视频源进行压缩时, 可通过统一判 断的方式确定运动预测, 而无需像仅依赖基于宏块、 子块的运动预测方法对 每个宏块子块依次作判断。

本领域的普通技术人员可以理解, 实现上述实施例方法中的全部或部分 步骤是可以通过程序指令相关硬件来完成的, 的程序可以存储于一计算机可 读取存储介质中, 的存储介质可以为 ROM、 RAM, 磁盘、 光盘等。

以上仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明 的精神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明 的保护范围之内。