h.264 中运动估计算法的研究
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 PresentationTRANSCRIPT
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 ?