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

Post on 02-Jan-2016

83 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

F99TR 刘伟峰

Bell Lab

主要内容:

背景 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

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

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

Bell Lab

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

Bell Lab

运动估计的原理

Bell Lab

H.264中运动估计

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

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

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

Bell Lab

多种多样的块尺寸

Bell Lab

多种多样的块尺寸

Bell Lab

¼像素精度的运动矢量

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

¼ 亮度像素点的插值

Bell Lab

多参考帧

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

Bell Lab

H.264 Codec设计复杂度

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

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

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

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

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

Bell Lab

我们的问题

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

Bell Lab

层次搜索算法

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

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

Bell Lab

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

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

Bell Lab

层次搜索算法——实现

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

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

Bell Lab

层次搜索算法——性能 1

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

Bell Lab

层次搜索算法——性能 2

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

Bell Lab

层次搜索算法——性能 3

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

Bell Lab

层次搜索算法——结论

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

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

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

Bell Lab

自适应搜索算法

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

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

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

– 如何寻找最佳?

Bell Lab

自适应搜索算法

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

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

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

Bell Lab

自适应搜索算法

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

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

Bell Lab

自适应搜索算法——举例

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

Bell Lab

自适应搜索算法——举例

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

Bell Lab

自适应搜索算法

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

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

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

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

Bell Lab

结束语

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

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

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

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

Bell Lab

结束语

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

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

Bell Lab

结束语

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

Bell Lab

致谢

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

Bell Lab

谢谢!

QUESTION ?

top related