硕士学位论文-h264运动估计算法的研究与fpga验证(编辑修改稿)内容摘要:
运算量也庞大,要想在实时方面得到很好的应用,就必须要考虑用硬件来实现。 运动估计,一种帧间编码方法。 由于两帧图像间相隔的时间很短,因此存在很大的相似性,运动 估计就是利用了这个相似性,减少时间的冗余度,这个时间的多少取决于运动估计算法的好坏,所以它是视频编码中的一个关键技术,视频的压缩比完全体现在这里。 FPGA,一种大规模的可编程器件 【 8】 ,有着逻辑单元灵活、集成度高,开发周期短、开发工具先进、制造成本低等特点,因此被广泛的应用于各种设计之中。 它对执行运算量庞大,但原理简单,运算工整的算法,有着自己独特的优势,因为它的内部有大量的触发器和 I/O引脚,拥有强大的并行计算能力。 中的加法和位移,原理简单,运算工整,使得它能在 FPGA 中能够高效并行进行,大大 缩短了处理时间,提高了系统的实时性。 因此,深入研究 视频编码核心算法中的运动估计硬件实现结构是一件值得做的工作。 西安理工大学硕士学位论文 2 国内外研究现状 随着各种视频编码技术的快速发展,与之相对应的硬件视频编码器也陆续出现,各自有一定的优缺点。 为了促进 ,国内外在优化 算法各个模块的同时,提出了很多像三步搜索法、钻石搜索法、 混合非对称十字多六边形格点 搜索 等 算法,这些算法降低了计算复杂度,减小了运算量,效果也不错,也提出了现在最常用的匹配准则: SAD 准则,大大降低了 计算复杂度。 ASIC 是早期视频编码方案采取的主要芯片,众所周知, ASIC 是 固化了特定功能的芯片 ,不可编程, 从设计到使用需要很长时间 ,产品一旦做出来就不允许再更改,导致它跟不上视频编码技术的发展,因此出现了其他方案,并替代了该方案。 大多数的视视频编码设计方案,伴随着 DSP技术的飞速发展,都相继转向了 DSP 平台。 新一代高性能 DSP 芯片的陆续推出,并成为了现今视频编码设计方案的主流。 主要有 EQUATOR 的 BSP1 Sigma Design 公司的 EM86XX【 9】 和 Davinci平台、 ADI Blackfin【 10】 处理器和 Philip 公司的 TriMedia 系列及新品 PNX1500 【 11】 以及 TI的 DM642 DSP 等。 这些产品的设计都利用了 DSP 高性能的数字信号处理能力,同时 DSP成本低,功耗也低,因此广受欢迎。 加拿大 UB Video 公司制作的一套基于 TMS320C64x系列 DSP 芯片的 实时视频通信系统,可以在 +的 1/20 倍的码率情况下,获得相同的图像质量 【 12】。 随着人们需求的提高,编码技术在飞速的发展,视频编码的算法越来越复杂,控制也越来越难,需要更高性能的硬件结构。 仅仅靠 DSP 芯片来完成运算量庞大的 视频编码算法已没有一点优势可言,虽然 DSP芯片拥有强大的数字信号处理能力,但无法完成复杂的控制操作。 在市场的压力下,大多数视频编码公司逐步转向 DSP+FPGA 或者 DSP+ARM【 13】的设计方案。 在 DSP+ARM 的方案中,控制部分由 ARM 完成, DSP 处理算法,软硬协同处理。 在 DSP+FPGA 的方案中,控制部分交给 FPGA 完成,也是由 DSP 来完成算法的处理。 Nios II软核技术 【 14】 的发展使得 SOPC 的应用逐渐成熟,用 FPGA 来实现软硬协同工作也不再是难事。 上述的两种方 案有一个共同点,就是算法部分都由 DSP 芯片来完成,不同的是一个控制部分由 ARM 完成,一个控制部分由 FPGA 来完成。 随着流水线技术在 DSP 芯片中的应用,使得其性能有了进一步的提升,但对实时性要求很高的应用,计算速度有限的中低端 DSP芯片已无用武之地。 高端的 DSP,虽然能够满足要求很高的实时应用的需求,但这样做又显得成本太高,使得整个设计投入过大,投入市场收益甚微。 FPGA 作为一种新型的逻辑器件,拥有强大的并行运行能力和很高的计算速度。 视频编码的算法简单,运算工整,很适合利用 FPGA 来完成它的设计。 大 规模 FPGA 的出现,使得在 FPGA 上实现 视频编码的全部算法和控制成为了可能。 已经有很多公司和研究所在从事基于 PFGA 的 视频编码器的设计。 由 Altera 和 Xilinx Altera 公司开发的基于大规模 FPGA 的视频处理套件很早就已经在市场上出售。 经过近 3 年的努力, JointWave 公司在 2020 年 3前言 3 月完成了 Main Profile Encoder 的纯 verilog 语言的设计,并且 FPGA 验证顺利通过,通过封装和处理已在全球发行。 它是第一款,也是现在业内水平遥遥领先的 Main Profile Level 级别的纯硬件编码器。 视频编码技术虽然在迅速发展,但是采用 FPGA 设计的编码器却发展缓慢,我国还处在起步阶段。 为了满足人们在日常生活和工作中对实时通信和娱乐的需求,大力发展 基于 FPGA 的视频编码器的设计与实现,将会赢得很大的市场。 这将极大的改善实时通信,满足人们的需求。 论文的主要研究内容和章节安排 主要研究内容 运动估计是视频编码中运算量最大,但同时也是最关键的部分,它对视频压缩的性能起着决定性的作用。 采用 FPGA 强大的 并行能力来完成强大的运算量,改善 视频编码的实时性,是一个很有意义的设计。 本文主要研究了运动估计算法,在已有的运动估计硬件实现的基础上,通过扬长避短,提出了本文的数据流,根据数据流的特点给出了相应的硬件结构,通过数据流的串行输入、最终结果的并行输出,大大减小了 I/O 带宽, PE的利用率也一直保持在 100%,充分利用了硬件资源。 最后利用 FPGA 的分块设计思想,先详细的划分了全搜索运动估计算法的各个功能子模块 ,使用硬件描述语言 Verilog HDL完成了各个模块的代码编写并进行了功能仿真,然后把各个模 块综合在一起进行了功能仿真。 最后在 Altera 公司的 FPGA 开发板上进行了验证。 论文的章节安排 全文共六章,各章节内容如下: 第一章 首先介绍了研究的目的和意义,国内外的研究和发展现状,最后介绍了本文的主要研究内容及章节安排。 第二章 介绍了运动估计的概念和块匹配运动估计的原理,详细介绍了块匹配运动估计中的几项重要技术指标以及它们对运动估计效果的影响,对 全搜索算法( FS)和几种常用的效果不错的快速搜索算法 在匹配速度、运算量、匹配效果、硬件实现起来的难易程度等方面进行了对比分析。 第三章 对全搜 索算法已有的两种脉动处理结构: 1D 和 2D,进行了详细的分析,通过比较它们各自的优点和存在的弊端,取长补短,为后面的设计奠定一定的基础。 最后简要的介绍了一下树形结构,分析了它的工作原理,并指出了其存在的严重不足。 第四章 介绍了 VLSI 的设计流程和方法,确定了本文设计中的运动估计算法和参数指标。 通过对前一章两种脉动结构的扬长补短,同时充分利用参考帧中相邻当前块匹配区西安理工大学硕士学位论文 4 域数据的交叠,给出了一种本文的数据流,根据数据流的特点映射出相应的 2D 脉动结构,大大减小了 I/O 带宽。 第五章 将整个运动估 计模块划分为一个个功能子模块,然后使用硬件描述语言 Verilog HDL 完成了各个子模块的代码编写并进行了功能仿真。 子模块仿真通过后,把所有模块综合起来,进行了仿真。 通过分析仿真数据,证明了本文设计的全搜索运动估计模块能够正常工作,并且能够实现全搜索算法的功能,输出正确的运动矢量。 第六章 总结与展望,总结了本文完成的主要工作,指出了其中存在的不足之处,为以后的研究指明了方向。 运动估计及经典算法 5 2 运动估计算法的介绍 运动估计是视频压缩编码技术中一个相当重要的组成部分。 它能够降低相邻帧间存在的大量时间冗余, 提高了视频压缩比。 运动估计的效果好坏决定了视频编码器的性能。 运动估计占用了整个编码时间的 70%左右,所以运动估计算法的复杂度直接决定了视频编码器的性能和效率。 中 运动估计算法采用块匹配算法,该算法最简单,效果也相当不错,促进了实时实现的可行性,因此它成为目前最常用的方法,国际视频编码标准也采用块匹配算法。 标准概述 , 一个视频压缩编解码的标准 ,虽然它的编码技术简单,却达到了增强压缩性能,提高了网络传输( workfriendly)的能力,以满足日益增长的“对话型”( 视频电话,会议等)和“非对话型”(视频存储、广播以及流媒体等)视频应用的需求。 是在 基础上提出来的,保留了 MPEG4等以往标准的优点,并沿用了 MCDCT,同时增加了 CAVLC 等新技术的应用,使得压缩效率更高,同时也提高了视频质量。 其主要优点【 15】 有以下几点 : (l)更高的编码效率。 在大多数的码率下,与以前的标准相比,当获得等同的视频质量时, 的码率只有它们的 40%左右; (2)更高的视频质量。 在任何码率下,经过 处理的视频,通过解码后,视频的质量比其它标准偏高; (3)自适应的延时特性。 可用于延时小的视频会议等,也能够用于无延时的视频监控等; (4)错误恢复功能。 能够很好的解决网络传输时丢包的问题,适用于高误码率下,无线网络中的数据传输; (5)良好的网络传输功能。 如图 21 所示, 标准分为两个层次。 视频编码层( VCL: Video Coding Layer)负责对视频的压缩,网络适配层( NAL: Network Adaptation Layer)负责对特定网络信息包的传输,因此, 能够优先控制信息,更好的完成对网络数据的封装。 西安理工大学硕士学位论文 6 控制数据视 频 编 码 层数 据 分 割H . 3 2 0 M P 4 F F M P E G 2 H . 3 2 3 / I P 其 他网 络 适 配 层编 码 宏 块编 码 分 片 / 分 割 图 21 Fig. 21 standard structure 运功估计技术的概述 运动估计的基本概念 在帧间编码中,相邻帧间的时间间隔很小,人眼分辨不出来,其中的运动量很小,两帧的相似度很高,可以将图像帧分成互不重叠等大小的宏块,找到每个宏块在相邻帧中的最佳相似位置,计算出相对偏移量,这个偏移量就是运动矢量,这个过程就是运动估计。 运动估计能够大大减小帧间存在的大量时间冗余,增大了视频压缩比,也就减少了视频需要传输的比特数,减小了传输带宽,因此它在视频压缩处理中起着很大的作用。 运动估计的基本过程 运动估计分以下几步完成 :第一步,把当前视频帧分为若干个等大小的互不重叠的宏块,设法找到当前块每个宏块在前一帧给定的搜索区域中最佳相似位置,计算出运动矢量;第二步,将在搜索区域中得到的最相似宏块和当前帧对应宏块的对应像素作减法,求的绝对值和,也就是残差块像素;第三步,把得到的每个当前块的运动矢量和残差块的像素传递给下一个模 块,经过下一个模块的处理后进行传输。 块匹配技术概述 实际上,两帧图像之间的物体运动一般是刚体的平移运动,位移量不大,彼此间存在着很强的相关性。 块匹配法就是将图像分成若干个子块,并有以下的假设:( 1)当前块中的所有像素有着相同的运动;( 2)运动物体不会随着时间的变化而改变了像素值。 块匹配算法就是将当前帧图像分为等大小且互不重叠的宏块,满足以上的两点假设,运动估计及经典算法 7 这时候就可以根据预定的搜索范围 [16],按照匹配准则,在搜索区域中找到和当前块最相似的宏块,计算出两个块之间的相对位移量,并记录,这个便为当前块相 对于前一帧的运动矢量,然后将在搜索区域中得到的最相似宏块和当前帧对应宏块的对应像素作减法,求的绝对值和,也就是残差块像素,这样每个当前块就可由一个运动矢量和残差块像素进行表示。 运动估计越准确,得到的匹配块就越相似,对应的残差块像素越小,经过处理后变为很小的比特数,传输的过程中占用的带宽将大大减小。 运动补偿过程:依据每个当前块的运动矢量,找到在前一帧的对应的最佳匹配块,加上残差块的像素,便可以得到一个和原当前块基本一样的宏块。 运动估计越准确,得到的运动矢量也就越精确。 运动补偿的效果取决于运动矢量的精确程度, 运动矢量的精确程度又取决于运动估计的准确度,因此,选择一个好的运动估计算法很重要。 实际上,两帧之 间 的物体运动一般是刚体的平移运动,位移量不大,因此往往把一帧图像分成若干 MN 块,以块为单位分配运动矢量,大大降低码率。 如图 22所示。 NMWxWxijM + 2 WxN + 2 W yW y当 前帧 块前 一 帧 搜 索 区 图 22 块匹配算法 Fig22 Block matching algorithm 设前一帧搜索区为( M+2Wx, N+2Wy),当前帧块与前一帧块的位移为 d(i, j),在搜索区中,如能找到与当前帧块匹配的前一帧块 ,则该 块 运动矢量 为 (i, j)。 块匹配运动估计的参数和准则 块匹配算法中,涉及到分块大小、搜索范围、匹配准则等几个参数的选取,这些参数的选取需要综合考虑,它们的好坏严重影响着运动估计的准确度及实现难易程度。 分块大小 块匹配算法的使用是有前。硕士学位论文-h264运动估计算法的研究与fpga验证(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。