h.264 中运动估计算法的研究

36
H.264 中中中中中中中中中中 F99TR 刘刘刘

Upload: whilemina-good

Post on 02-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

H.264 中运动估计算法的研究. F99TR 刘伟峰. 主要内容:. 背景 H.264 层次搜索算法 自适应搜索算法. 背景介绍 —— 谁是继承者?. MPEG2 老了 谁是继承者?. 背景介绍 —— H.26L 横空出世. 背景介绍 —— 来龙去脉. H.26L — ITU-T Q.6/SG16 (VCEG - Video Coding Experts Group) 的新宠, H.264 的前身 2001 11:VCEG 和 MPEG 联合组建 Joint Video Team (JVT), 共同制定 H.26L 标准 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: H.264 中运动估计算法的研究

H.264中运动估计算法的研究

F99TR 刘伟峰

Page 2: H.264 中运动估计算法的研究

Bell Lab

主要内容:

背景 H.264 层次搜索算法 自适应搜索算法

Page 3: H.264 中运动估计算法的研究

Bell Lab

背景介绍——谁是继承者?

MPEG2 老了 谁是继承者?

0

1

2

3

4

5

6

1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005

Mbi

t/s

MPEG-2

Page 4: H.264 中运动估计算法的研究

Bell Lab

背景介绍—— H.26L横空出世

0

1

2

3

4

5

6

1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005

Mb

it/s

MPEG-2

MPEG-4

H.26L

H.263

Page 5: H.264 中运动估计算法的研究

Bell Lab

背景介绍——来龙去脉

H.26L—ITU-T Q.6/SG16 (VCEG - Video Coding Experts Group) 的新宠, H.264 的前身

2001 11 : VCEG 和 MPEG 联合组建 Joint Video Team (JVT) ,共同制定 H.26L 标准

2002 10 :完成标准草案 预计 2003 标准最终在两个组织获得通过 H.264 是该标准 ITU-T 的官方名称, MPEG 方

面称它为 MPEG4-Part 10

Page 6: H.264 中运动估计算法的研究

Bell Lab

H.264——基于块的混合编码方式

Page 7: H.264 中运动估计算法的研究

Bell Lab

运动估计的原理

Page 8: H.264 中运动估计算法的研究

Bell Lab

H.264中运动估计

更为精细的块尺寸• 4x4 , 4x8 , 8x4 , 8x8• 8x16 , 16x8 , 16x16

¼像素精度的运动矢量• 6 阶 FIR 滤波器插值 1/2 像素点• 双线性插值 1/4 像素点• 线性插值 1/8 色度像素点

多参考帧• 周期运动• 镜头、场景的来回切换

Page 9: H.264 中运动估计算法的研究

Bell Lab

多种多样的块尺寸

Page 10: H.264 中运动估计算法的研究

Bell Lab

多种多样的块尺寸

Page 11: H.264 中运动估计算法的研究

Bell Lab

¼像素精度的运动矢量

½ 亮度像素点的插值 1/8 色度像素点的插值

¼ 亮度像素点的插值

Page 12: H.264 中运动估计算法的研究

Bell Lab

多参考帧

Page 13: H.264 中运动估计算法的研究

Bell Lab

H.264的性能

27

28

29

30

31

32

33

34

35

36

37

38

39

0 50 100 150 200 250

Bit-rate [kbit/s]

Foreman QCIF 10Hz

QualityY-PSNR [dB]

MPEG-2H.263

MPEG-4

JVT/H.264/AVC

Page 14: H.264 中运动估计算法的研究

Bell Lab

H.264 Codec设计复杂度

相对 MPEG-2 ,解码复杂度增加 2-3 倍,编码复杂度增加 3-4 倍

问题 :– 宏块分得更细(更多的搜索)– 预测模式更多(更多的搜索)– 多参考帧的运动估计(更多的内存,更多的计算)– 更长的滤波器– ……

Page 15: H.264 中运动估计算法的研究

Bell Lab

编码器的硬件实现方案—— ASIC

Embedded Embedded CPUCPU

Entropy Entropy CodingCoding

TransformTransformQQ

Inverse TInverse TIQIQ

AddressAddressGeneratorGenerator

Memory ControllerMemory Controller

Pixel Pixel InterfaceInterface

Pixel Data

Host API

OutputOutputInterfaceInterface

Intra Pred.Intra Pred.MEMEMCMC

De-blockingDe-blockingFilterFilter

PLLPLL27MHz

Bit Stream

Page 16: H.264 中运动估计算法的研究

Bell Lab

编码器的硬件实现方案—— DSP

MEIntra Pred.

MemoryControl

InternalMemory

DDR SDRAM

MemoryXilinx FPGA

TMS320DM642PixelIntf.

MCReconst

TransformQ

Inverse TIQ

EntropyCoding

Controller

De-blkFilter

InternalMemory

Pixel Data

BUFBit

Stream

Page 17: H.264 中运动估计算法的研究

Bell Lab

编码器的硬件实现方案—— FPGA

PixelIntf.

MEIntra Pred.

MCReconst.

MemoryCtrl.

DDR SDRAM

Controller

InternalMemory

Pixel Data

FIFOsSRAMs

TransformQ

InverseTransform

IQ

De-blockingFilter

EntropyCoding

OutputCtrl.

InternalMemory

BUFBit

Stream

Page 18: H.264 中运动估计算法的研究

Bell Lab

我们的问题

性能,成本和计算复杂度 选择 DSP 方案 运动估计计算量无法承受 需要一种快速高效的搜索算法

Page 19: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法

思想通过下采样,将图像分辨率降低,先在

低分辨的图像上作穷尽搜索,得到最优点 X’ 。然后,回到原图像,在 X’ 的邻域内作进一步的搜索,可以得到局部最优 XL 。

Page 20: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法——举例 以下采样 2 倍为例,设搜索范围

是正负 48 ,当前编码块的大小是 16x16 ,则原来要搜索 9409个点,每个点的计算量是 256 次减法, 255 次加法, 1 次比较,2 倍下采样之后,搜索点数下降1/4 ,为 2401 ,每个点的计算量是 64 次减法, 63 次加法, 1次比较,总的计算量只有原来的1/16 。白点为下采样后剩下的像素,灰色点是被忽略的点。在得到最优点 X’ 之后,对邻近的 8个点(黑点)作进一步的比较,取其最小者作为匹配位置。

Page 21: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法——实现

由( spiral_search_x[k] , spiral_search_y[k] )构成了一个可由 k 索引的点,随着 k 的增加,这个点沿着原点作类似于螺旋状的运动。 0 , 1 , 2…… 数字即为 k ,数字所在的位置即为点的位置。

有了这样一个数组之后,下采样意味着调整步长,下采样 2倍,只要加倍步长就可以了。邻域搜索也就轻而易举了。

Page 22: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法——性能 1

以 dec 作为输入视频文件计算平均值层次搜索算法有 5% 左右比特率的增加但是编码时间却有50%—60% 的减少

Page 23: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法——性能 2

以 dec 作为输入视频文件SNR 相差不超过 0.1dB穷尽搜索算法有 5% 左右比特率优势但是编码时间却是以级数增长

Page 24: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法——性能 3

以 sign_irene 作为输入视频文件观察每一帧性能变化。性能差异不是十分明显。

Page 25: H.264 中运动估计算法的研究

Bell Lab

层次搜索算法——结论

适宜硬件以流水线方式实现适合大屏幕,高分辨率的情况图像质量不受影响,比特率增加 5% 左右,

编码时间大约减少 60%系统带宽较为宽裕,瓶颈落在计算能力上,

层次搜索算法是一种不错的选择

Page 26: H.264 中运动估计算法的研究

Bell Lab

自适应搜索算法

启发– 对于穷尽算法,搜索范围并非越大越好的,如 dec ,

在搜索范围取 16 时,已经达到了较佳的性能,再增加范围,就是浪费了;在 sign_Irene 和 tempete中,也有类似情况。

– 对于层次算法,将会有一个最佳的搜索范围,再增加反而会使性能恶化,因为大的搜索范围会增加出错的概率。

– 如何寻找最佳?

Page 27: H.264 中运动估计算法的研究

Bell Lab

自适应搜索算法

思想– 假设运动矢量的预测十分准确,则,只要小范围搜索

就可以了。– 当有运动物体突变,或镜头切换等情况时(预测失

效),搜索范围又能及时地做出调整。

Page 28: H.264 中运动估计算法的研究

Bell Lab

自适应搜索算法

实现– 关键在于这个反馈机制– 我的想法:如果前一个宏块的运动矢量处于搜索范围

的边缘,或者它的费用高出平均水平很多,就应该适当放大搜索范围,反之,则应缩小搜索范围。

Page 29: H.264 中运动估计算法的研究

Bell Lab

自适应搜索算法——举例

自适应算法层次算法 sr=16穷尽算法 sr=4,8

Page 30: H.264 中运动估计算法的研究

Bell Lab

自适应搜索算法——举例

可以看到自适应算法具有一定的跟踪最佳搜索范围的能力。

Page 31: H.264 中运动估计算法的研究

Bell Lab

自适应搜索算法

结论– 这种想法与 ADM 是一样的,这样搜索范围能

自动调整到最佳状态,始终保持在较小的水平。

– 在实现上,可以用硬件来实现搜索范围的调整,这样,对软件来说,省下了大量的JUMP指令,可以更快。

– 还处在探索阶段,有很多实际问题需要解决

Page 32: H.264 中运动估计算法的研究

Bell Lab

结束语

根据硬件特性,寻找合适的快速算法 本文实现了层次搜索算法,并对其性能作了测评,

为工程开发提供了极有价值的参考 受到层次搜索算法的启发,本文又设计了一种自

适应的搜索算法,此算法还在进一步的探索之中 但是,到目前为止,所有的工作还只是停留在

PC 上,没有进一步为特定的硬件,特定的视频内容作优化。

Page 33: H.264 中运动估计算法的研究

Bell Lab

结束语

视频编码的发展,已历四十年。近年来,又出现了很多新兴的图像压缩编码方法——模型基法,分形法,人工神经网络法等等。

算法同样存在着复杂度大的问题。如何调解性能和计算复杂这对矛盾,是一个很现实,很迫切的问题。

Page 34: H.264 中运动估计算法的研究

Bell Lab

结束语

相信,随着硬件速度的不断提高,编码算法的不断改进,多媒体网络将会得到更为迅速的发展。

Page 35: H.264 中运动估计算法的研究

Bell Lab

致谢

首先,向我的毕业设计的指导老师 -朱杰表示我的感谢和敬意。在整个毕业设计的过程中,朱老师热情地对我的工作予以了指导,并尽可能地为我提供各种便利条件。同时,我更要感谢的是甘小莺学长和贝尔实验室的阎安、邓航师长,是他们给了我机会、指导和鼓励,并提供大量的资料和宝贵的建议。

Page 36: H.264 中运动估计算法的研究

Bell Lab

谢谢!

QUESTION ?