当前位置:问答库>论文摘要

题目:基于FPGA的视频编码算法VLSI结构设计研究

关键词:视频编码;FPGA;高层建模;MPEG-4;VBSME;CABAC;H.264

  摘要

复杂的算法和多样的需求,使得视频编码的实现越来越需要一种兼具性能和灵活性的运算平台。现场可编程逻辑门阵列(Field-Programmable Gate Arrays,FPGA)提供精细粒度的电路可编程功能,既能采用类似ASIC(Application Specific Integrated Circuit)的方式将运算在空间展开,提高处理性能,又能基于不同需求选择适合的算法和电路结构实现方式,增加了针对不同应用的适用性,因此FPGA作为运算平台也是实现视频编码的一种重要选择。 然而,FPGA相比ASIC的硬件性能和效率差距,影响了视频编码算法在FPGA平台上的实现效果。为了更有效地利用FPGA的技术特点,优化算法的实现性能和资源代价,本文一方面研究了面向系统整体结构的高层建模和优化方法,提高整体结构的性能和资源优化效率;另一方面,对编码算法中消耗资源多且容易成为系统性能瓶颈的关键算法模块——可变尺寸块运动估计(Variable Block Size Motion Estimation, VBSME)和算术编码,进行了面向FPGA的电路结构优化实现,为进一步实现高性能视频编码器打下基础。本文的主要研究成果包括:(1)提出了一种支持性能和资源整体优化的高层建模方法 为了对算法VLSI整体结构的进行高效的性能和资源优化,需要一种能在算法和硬件结构之间建立联系的高层模型。本文以数据流驱动的并发计算模型为基础,通过研究视频编码算法的数据流处理特点,定义了两种建模元素以及从算法提取建模元素的方法,并给出了建模元素的性能规划和资源映射方法,支持了对系统整体结构高层次优化。 (2)针对MPEG-4编码算法进行了硬件结构的高层优化建模和部分实现验证为了验证高层建模方法的有效性,针对MPEG-4简单档次编码算法进行了高层优化建模,并通过对模型中关键模块的实现,证明了基于该模型的设计能够比Xilinx公司的商业IP核提高约25%的性能并减少一半的资源消耗。此外,针对一种MEPG-4全Intra帧编码的实际应用需求,对已有高层模型进行了高效地调整和优化,针对这种需求大幅增加了处理性能、优化了资源消耗,并结合其它系统功能实现了完整的视频采集、编码和传输系统,其中全Intra帧编码器的性能和资源消耗明显优于同类功能的商业IP核。 (3)针对不同的处理需求,提出了一组FPGA资源和性能高效的整像素VBSME硬件结构 H.264/AVC中的整像素VBSME结构在FPGA上实现时,消耗资源多且实现性能低,通常是限制系统整体性能的关键模块。通过采用更适合FPGA的随机存储器累加方式计算绝对差累加和(Sum of Absolute Difference,SAD),比采用寄存器合并累加方式减少了SAD计算单元(Processing Unit,PE)的资源消耗并提升了处理性能;通过采用脉动比较链而非总线比较器结构增强了多组SAD的比较能力。基于上述基本优化手段,针对低资源消耗和低吞吐率的应用,一种16个 并发PE的全搜索结构在Virtex-II型FPGA可运行在163MHz,消耗2156个slice,在16×16的搜索窗口下可每秒处理25帧4CIF图像。针对中、高端处理需求,采用混合累加方式将每个PE的并发度增加到四倍,用总共3568个slice实现了32×32搜索窗口的D1实时全搜索。针对搜索精度要求不高的应用,提出了一种基于提前终止技术的快速搜索实现方案,该方案通过对全搜索结构内部状态机的简单修改,获得了和全搜索结构相当的数据重用度和硬件效率,并用很少的资源和图像质量代价节省约70%的处理时间。(4)研究了CABAC和MQ这两种典型算术编码算法的FPGA优化实现方法算术编码算法包含复杂的变量迭代运算,在硬件上形成了不易流水和并发的反馈环路。为了提升环路吞吐率,本文首先研究了迭代环路的动态优化方法,即利用数据的动态依赖周期、数据流量的动态特征和不同数值的处理差异,改善环路的有效吞吐率。然后,针对H.264/AVC中的CABAC算法和JPEG2000中的MQ算法,针对关键环路结合基本的电路优化和动态优化方法进行环路性能优化,提升了整体编码的性能。仿真结果显示,本文提出的CABAC和MQ编码器性能优于已有同类FPGA设计。其中,CABAC编码器在Virtex-II型FPGA上频率可达202MHz,每个时钟周期处理一个编码符号;MQ编码器则能够在Stratix型FPGA上每秒处理156兆个编码符号。