1、分类号UDC密 级学 号硕士学位论文H.264 运动估计算法的研究与 FPGA 验证学 科 名 称: 电路与系统 学 科 门 类: 工 学 指 导 教 师: 申 请 日 期: H.264运动估计算法的研究与FPGA验证 西安理工大学硕士学位论文论文题目:H.264 运动估计算法的研究与 FPGA 验证学科专业:电路与系统研 究 生:摘 要随着互联网的飞速发展,人们的生活中充满了各种多媒体技术。2003 年 3 月份,ITU-T(国际电信联盟)颁布了 H.264 视频编码标准。H.264 是一个新的数字视频编码标准,这个标准下,可获得比以往标准都高的编码效率,满足低带宽、高质量网络视频应用的需要
2、。为了达到实时性,对视频编码技术提出了更高的挑战。作为视频压缩编码中运算量最大也最重要的一部分运动估计,它能有效去除视频信号中存在的大量的时间冗余和空间冗余,使视频数据得到高效压缩,这是能够解决实时性的关键,也是视频压缩编码标准中的一个重要研究方向。在分析了运动估计几种典型的算法,结合前人已有的硬件结构的基础上,结合高性能 VLSI 设计实现的特点,提出了一种改进的脉动阵列及流水线相结合的全搜索块匹配的整像素运动估计结构,并完成了其 VLSI 设计。先简要描述了 H.264 标准及其性能,对块匹配运动估计原理和相关参数对运动估计效果的影响进行了详细的介绍。接下来对全搜索算法和几种快速搜索算法作
3、了一一介绍。然后重点介绍了两种脉动结构 :1-D 和 2-D ,阐述了各自的优点和不足。由于搜索区域中的相邻参考块之间有一定的数据重叠,为了重用这些重叠数据,提出了本文的数据流,根据数据流的特点给出了相应的硬件结构,采用串入并出的流水线,提高了计算速度的同时也大大减小了 I/O 带宽。最后利用 FPGA 的分块设计思想,先详细的划分了全搜索运动估计算法的各个功能子模块,编写了各个子模块的 Verilog 代码,并分块进行了功能仿真,子模块仿真通过后,把所有模块综合起来,进行了仿真。通过分析仿真数据,证明了本文设计的全搜索运动估计模块能够正常工作,并且能够实现全搜索算法的功能,输出正确的运动矢量
4、。关键词:H.264;视频编码;运动估计;VLSI;脉动结构摘要i西安理工大学硕士学位论文iiTitle: THE RESEARCH OF H.264 MOTION ESTIMATION ALGORITHM AND FPGA VERIFICATIONMajor: Circuits and SystemsName: Yang Liu Signature: Supervisor: Associate Prof. Shijie Qiao Signature: AbstractWith the rapid development of the internet, multimedia technolo
5、gy in peoples daily lives has been more widely used, multimedia communications is one indispensable part of daily life. In March of 2003, ITU-T ( International Telecommunication Union ) issued H.264 video coding standard. H.264 is a new digital video coding standard, this standard has a high coding
6、efficiency, it is suitable for high quality network video and low-bandwidth applications. In order to achieve real-time,video coding technology faced a higher challenge. As video compression coding in computing the largest and most important part - motion estimation, it can effectively remove the us
7、e of the video signal in the presence of a large number of temporal redundancy and spatial redundancy and compressed video data efficiently, real-time requirements is a solution bottlenecks, which is an important research direction of the video compression.Based on the analysis of integer motion est
8、imation algorithm and architecture, combined characteristics of high-performance VLSI design and implementation, suggested an improved pipelined systolic array and a combination of full-search block-matching motion estimation structure of integers, and completed its VLSI design. Firstly,described th
9、e H.264 standard and its performance briefly. Detailedly introduced the block-matching motion estimation principle and some relevant parameterss effect on the result of motion estimation. Secondly, introduced the full search algorithm and several fast search algorithms.Thirdly, presented two kinds o
10、f pulse structure :1-D and 2-D and their respective advantages and weaknesses . In order to reuse the overlapping data among the adjacent reference block data in search area, put forward the data stream,gave the structure according to the characteristics of the data stream, used the pipeline operati
11、on to improve the computing speed and reduce the I/O bandwidth greatly.Finally, through the FPGA block design thinking, devided the full search motion Abstractiiiestimation algorithm into many functional sub-modules,Write the Verilog code for each sub-module, after function simulation of sub-modules
12、,synthesized all the sub-modules and simulated.Analysysed the simulation data and proved the design of full search motion estimation module can work properly, be able to realize the full search function and output correct motion vectors.Key words:H.264; Video Coding; Motion Estimation; VLSI; Pulsati
13、ng Structure西安理工大学硕士学位论文ii目 录1 前言.11.1 研究背景与意义 .11.2 国内外研究现状 .21.3 论文的主要研究内容和章节安排 .31.3.1 主要研究内容 .31.3.2 论文的章节安排 .32 运动估计算法的介绍.52.1 H.264 标准概述 .52.2 运功估计技术的概述 .62.2.1 运动估计的基本概念 .62.2.2 运动估计的基本过程 .62.3 块匹配技术概述 .62.4 块匹配运动估计的参数和准则 .72.4.1 分块大小 .72.4.2 匹配准则 .82.4.3 搜索策略 .92.4.4 搜索范围的确定 .92.4.5 算法评定指标 .
14、92.4.6 估计精度 .102.5 经典块匹配运动估计算法介绍和性能分析 .112.5.1 全搜索算法(FS) .112.5.2 三步搜索法 (TSS) .122.5.3 新三步搜索法 (New Three Step Search).132.5.4 菱形搜索法 (Diamond Search).142.5.5 四步搜索法(Four Step Search) .152.5.6 混合非对称十字多六边形格点搜索(UMHexagonS) .162.6 本章小结 .173 运动估计的经典硬件结构.193.1 流水线技术概述 .193.2 脉动阵列概述 .203.3 全搜索运动估计算法的硬件结构 .20
15、3.3.1 经典的 1-D 脉动结构 .213.3.2 AB1 类型的 1-D 脉动结构 .233.3.3 AS2 类型的 2-D 脉动结构 .243.3.4 AB2 类型的 2-D 脉动结构 .253.3.5 树形结构 .263.4 本章小结 .274 运动估计硬件结构的设计.284.1 设计流程 .284.2 设计方法 .294.3 运动估计算法和相关参数的确定 .294.3.1 运动估计算法的选择 .294.3.2 相关参数的确定 .30目录i4.4 数据复用 .304.5 脉动阵列结构的设计和实现流程 .304.6 本章小节 .335 运动估计模块的设计和仿真.355.1 运动估计模块
16、的总体结构 .355.2 存储单元功能模块 .365.3 数据选择功能模块 .375.4 PE 运算模块 .395.5 比较运算模块 .415.6 整体控制模块 .435.7 整体结构功能测试和分析 .435.8 FPGA 验证 .435.9 本章小结 .456 总结和展望.47致谢.49参考文献.51西安理工大学硕士学位论文01 前言1.1 研 究 背 景 与 意 义在当今这个信息化的社会,信息技术影响着我们日常生活的方方面面。在我们的生活中有近 70%的信息,通过我们的视觉系统获得,即图像,而视频是由运动的图像构成的,这里面就包含了更为丰富的信息。从普通电话到可视电话,普通手机到智能手机,
17、有线电视到数字电视的飞速发展。人们更希望无论何时,无论何地,都能实时、方便的通过图像和视频等方式进行通信,但受到客观条件的的限制,比如处理器的处理能力,要想达到实时性,就需要有视频压缩编码方面高性能的处理器,同时也可以提出更好的视频压缩编码方法。人们的生活因为视觉而丰富多彩。为了更好的生活和娱乐,数字视频的质量需要不断的提高,因此加大了对数字视频编码技术的研究。2003 年 3 月,H.264 标准经过多次修改后,最终确定。H.264 较以往标准,同等质量下,压缩比方面有了明显的提高,明显增进了网络的可靠性和视频传输安全,大大改善了网络传输时易阻塞、易误码、QoS 没有保证的情况 【1】 。H
18、.264 标准中,为了提高其性能和编码效率,增加了很多相当复杂的算法,提高了编码效率的同时使得编解码更难。H.264/AVC 标准仍然是基于块的混合编码,但采用了大量以往标准中没有的技术,大大提高了编码性能。视频编码层 VCL 和网络提取层 NAL 构成了 H.264/AVC 视频编码标准。H.264/AVC 标准显著提高了压缩比,同等图像质量下,H.264/AVC 要比 H.263 和MPEG-4 节省大约 50%的码率 【2】 ,因此也被广泛的应用,像可视电话、实况转播、视频会议和监控等。实时视频效果的好坏不仅与网络性能有关,而且还与所采用的视频压缩标准以及所利用的实现平台有关。H.264
19、 视频编码标准计算杂度高,运算量也庞大,要想在实时方面得到很好的应用,就必须要考虑用硬件来实现。 运动估计,一种帧间编码方法。由于两帧图像间相隔的时间很短,因此存在很大的相似性,运动估计就是利用了这个相似性,减少时间的冗余度,这个时间的多少取决于运动估计算法的好坏,所以它是视频编码中的一个关键技术,视频的压缩比完全体现在这里。FPGA,一种大规模的可编程器件 【8】 ,有着逻辑单元灵活、集成度高,开发周期短、开发工具先进、制造成本低等特点,因此被广泛的应用于各种设计之中。它对执行运算量庞大,但原理简单,运算工整的算法,有着自己独特的优势,因为它的内部有大量的触发器和 I/O 引脚,拥有强大的并
20、行计算能力。H.264 中的加法和位移,原理简单,运算工整,使得它能在 FPGA 中能够高效并行进行,大大缩短了处理时间,提高了系统的实时性。因此,深入研究 H.264 视频编码核心算法中的运动估计硬件实现结构是一件值得做的工作。前言11.2 国 内 外 研 究 现 状随着各种视频编码技术的快速发展,与之相对应的硬件视频编码器也陆续出现,各自有一定的优缺点。为了促进 H.264/AVC 在硬件方面的发展,国内外在优化 H.264/AVC编码算法各个模块的同时,提出了很多像三步搜索法、钻石搜索法、混合非对称十字多六边形格点搜索等算法,这些算法降低了计算复杂度,减小了运算量,效果也不错,也提出了现
21、在最常用的匹配准则:SAD 准则,大大降低了计算复杂度。ASIC 是早期视频编码方案采取的主要芯片,众所周知,ASIC 是固化了特定功能的芯片,不可编程,从设计到使用需要很长时间,产品一旦做出来就不允许再更改,导致它跟不上视频编码技术的发展,因此出现了其他方案,并替代了该方案。大多数的视视频编码设计方案,伴随着DSP 技术的飞速发展,都相继转向了 DSP 平台。新一代高性能 DSP 芯片的陆续推出,并成为了现今视频编码设计方案的主流。主要有 EQUATOR 的 BSP16、 Sigma Design 公司的EM86XX【9】 和 Davinci 平台、ADI Blackfin【10】 处理器和
22、 Philip 公司的 TriMedia 系列及新品 PNX1500 【11】 以及 TI 的 DM642 DSP 等。这些产品的设计都利用了 DSP 高性能的数字信号处理能力,同时 DSP 成本低,功耗也低,因此广受欢迎。加拿大 UB Video 公司制作的一套基于 TMS320C64x 系列 DSP 芯片的 H.26L 实时视频通信系统,可以在 H.263+的 1/20 倍的码率情况下,获得相同的图像质量 【12】 。随着人们需求的提高,编码技术在飞速的发展,视频编码的算法越来越复杂,控制也越来越难,需要更高性能的硬件结构。仅仅靠 DSP 芯片来完成运算量庞大的 H.264 视频编码算法已
23、没有一点优势可言,虽然 DSP 芯片拥有强大的数字信号处理能力,但无法完成复杂的控制操作。在市场的压力下,大多数视频编码公司逐步转向 DSP+FPGA 或者DSP+ARM【13】 的设计方案。在 DSP+ARM 的方案中,控制部分由 ARM 完成,DSP 处理算法,软硬协同处理。在 DSP+FPGA 的方案中,控制部分交给 FPGA 完成,也是由 DSP 来完成算法的处理。Nios II 软核技术 【14】 的发展使得 SOPC 的应用逐渐成熟,用 FPGA 来实现软硬协同工作也不再是难事。上述的两种方案有一个共同点,就是算法部分都由 DSP 芯片来完成,不同的是一个控制部分由 ARM 完成,
24、一个控制部分由 FPGA 来完成。随着流水线技术在 DSP 芯片中的应用,使得其性能有了进一步的提升,但对实时性要求很高的应用,计算速度有限的中低端 DSP 芯片已无用武之地。高端的 DSP,虽然能够满足要求很高的实时应用的需求,但这样做又显得成本太高,使得整个设计投入过大,投入市场收益甚微。FPGA 作为一种新型的逻辑器件,拥有强大的并行运行能力和很高的计算速度。H.264 视频编码的算法简单,运算工整,很适合利用 FPGA 来完成它的设计。大规模 FPGA 的出现,使得在 FPGA 上实现 H.264 视频编码的全部算法和控制成为了可能。已经有很多公司和研究所在从事基于 PFGA 的 H.264 视频编码器的设计。由 Altera 和 Xilinx Altera 公司开发的基于大规模 FPGA 的视频处理套件很早就已经在市场上出售。经过近 3 年的努力,JointWave 公司