老哥学习网 - www.lg9.cn 2024年05月16日 16:10 星期四
当前位置 首页 >杂文文章 >

实现jpeg编码器_基于FPGA的AVS编码器帧内预测实现

发布时间:2019-01-17 19:43:18 浏览数:

  摘 要:针对帧内预测的快速算法,由于DSP架构软件顺序执行的局限性难以满足实时性要求,而FPGA以其高速的计算速度和强大的并行处理能力成为H.264和AVS编解码的理想平台。本文在FPGA平台上采用资源共享、高并行和多流水线结构实现了亮度帧内预测算法。该方法在分析AVS帧内亮度5种预测模式的基础上,将像素预测与模式判决在一个模块中完成,并且利用各模式预测的相似性,实现运算单元共享和多种模式并行执行,兼顾了处理速度和实现代价。仿真及综合结果表明该设计能够完全满足标清(704×576,30f/s)数字视频的实时处理要求。
  关键词:AVS;帧内预测;模式判决;FPGA
  中图分类号:TN919.8 文献标识码:a DoI: 10.3969/j.issn.1003-6970.2012.02.036
  Intra Frame Prediction for AVS Encoder based on FPGA
  XIaNG Hong-li ZHaNG Gang(College of Information Engineering Taiyuan University of Technology, Taiyuan 030024, China)
  【Abstract】The fast algorithm of intra prediction is difficult to meet the real-time demand on DSP because of the limitations of sequential order of DSP software architecture; while FPGA with the high calculation speed and strong parallel processing ability has become the ideal platform for H.264 and aVS codec. In this paper, a method which applies the resource-sharing, high parallel and pipeline structure has been put foward .The method, in the analysis of 5 prediction modes of AVS intra luma and their similarity in operation, has put the pixel prediction and mode decision in a module and realized the sharing of public operation unit and concurrent execution of a variety of modes on consideration of both processing speed and realizing costs. the simulation and comprehensive results show that the design has been completely meet real-time processing requirements of the standard (704 x 576, 30 f/s) digital video.
  【Key words】aVS; Intra frame Prediction;Mode Decision; fPGa
   0 引 言
  AVS(Audio Video Coding Standard)标准[1],是《信息技术―先进音视频编码》系列标准的简称, 是由我国自主提出的数字音视频编解码技术标准,这个标准达到了当前国际先进水平。AVS具有以下优点:(1)性能高,编码效率是MPEG2的2倍以上,与H.264的编码效率处于同一水平;(2)复杂度低,算法复杂度比H.264明显低,软硬件实现成本都低于H.264;(3)我国掌握主要知识产权,专利授权模式简单,费用低[2]。AVS视频标准制定的目标是: 适应数字电视广播、数字存储媒体、因特网流媒体、多媒体通信等应用中对运动图像压缩技术的需要,这就对编码的实时性提出了很高的要求。
  帧内预测[3]是AVS编解码中很重要的部分,其原理是利用图像内部相邻像素间的相关性来降低编码码率,也就是通过减少空间冗余度来达到压缩的目的。视频编码器帧内预测部分的硬件架构设计方案一般分为两种。第一种是基于可重构硬件电路的设计[4-5]。这种电路结构设计思想是根据帧内预测各模式算法上的相似性,设计出能够处理所有预测模式的可重构的运算单元。该运算单元可根据预测模式的不同对输入的数据选择相应的数据通路,从而达到资源的最优化利用。由于该电路结构是逐个处理各个模式的预测,因此其缺点是处理速度慢。第二种设计方案是将具有相同预测值求解算法的预测模式共用同一个预测器,以优化资源利用,文献[6]采用了这种设计方案。本文参考第二种设计方案,提出了一种基于资源共享以及并行流水[7]的帧内预测编码器硬件架构。
   1 AVS帧内预测模块算法原理
  AVS的帧内预测分为亮度(1uma)和色度(chroma)预测两种,都是以8x8的块为单位进行预测的。其中,亮度预测包括33个参考像素点,有5种预测模式(如图1所示),Vertical预测模式、Horizontal预测模式、DC预测模式、Down_Left预测模式和Down_Right预测模式。图1标示了AVS帧内预测模式的预测方向,标号的对应关系为:Vertical模式(模式值为0)、Horizontal模式(模式值为1)、DC模式(模式值为2)、
   Down_Left模式(模式值为3)、Down_Right(模式值为4)。
  
  图1 8×8亮度帧内预测模式
  Fig. 1 Intra luminance prediction mode
  色度预测包括17个参考像素点,有4种预测模式,分别为:DC模式(模式值为0)、Horizontal模式(模式值为1)、Vertical模式(模式值为2)和Plane模式(模式值为3)。其中,DC模式、Horizontal模式、Vertical模式与亮度预测算法相同。
  AVS的帧内预测模块子块级主要包括像素值预测和模式判决两部分,实现的功能主要是在给出当前块的左边像素,左上像素以及上边像素的情况下按照各种模式预测的方法得到当前块的预测像素值。
  AVS编码标准采用了计算预测块和原始块之间的SAD来寻找最合适的预测模式的方法。编码器将所有的预测模式遍历一遍,算出所有模式对应的SAD值,取其中拥有最小SAD的模式作为最终选择的模式。
   2 帧内预测硬件设计与实现
   2.1 帧内预测模块硬件设计方案
  
  图2 帧内预测模块结构框图Fig.2 Structure diagram for intra luminance prediction module
  设计中,Blockjudge子模块的功能是由系统计数的BlockNum变量判断当前块在一帧图像中的位置,从而决定当前块的相邻块边缘像素的可用性。由图2可知,在给定输入数据的情况下,多种模式并行挂起,由于预测是按一个时钟预测一个像素进行的,在预测完一个像素就进计算一次绝对误差计算,然后预测完下一个就将误差累加,最终预测完成,SAD的计算也完成。模式判决模块完成的是在SAD计算完后比较得出各模式下的SAD最小值,按其对应的预测模式即最佳预测模式选择输出对应的预测数据。可见整个过程是多个模式并行,并且共享公共运算单元,单个模式多级流水,从而提高资源利用率。
   2.2 亮度预测模块的VHDL实现
  
  图3 亮度帧内预测模块状态机
  Fig.3 State machine for intra luminance prediction module
  帧内亮度预测模块的VHDL实现主要涉及到四部分:读写数据单元,运算单元,数据比较单元,输出单元。这四个部分分别对应于状态机(亮度帧内预测模块状态机如图3所示)的streceive、 stcalculate、stcompare和sttrans状态。状态之间的转换通过状态计数器完成,预测输出数据用于与当前块数据做残差供DCT使用,最佳模式输出供熵编码写码流。
  系统的起始状态是stidle状态,当使能en置1时转到streceive状态;streceive状态将接收的数据(总共接收97个数据,前64个是8x8块的原始数据,后33个是参考数据)分别暂存到RAM00和RAM11中,RAM00中存储的当前块数据用于与各种模式预测值进行SAD运算,RAM11中的数据用于得出预测数据,同时在该状态存储预测模式V和H 需要的参考数据;当使能en置0时进入stcalculate状态,在stcalculate状态将33个参考数据中相邻的三个数据按(a+2b+c+2)>>2低通滤波,得到31个预测数据。并且存储DDR模式,DDL模式,DC_LEFT模式和DC_TOP模式需要的预测数据。在stm4状态读取DC_LEFT和DC_TOP的预测数据d和e,同时进行运算(d+e)>>1得到f,将f进行限幅运算clip(f),从而得到DC模式的预测值并将其存储;同时完成的有V,H,DDL,DDR的模式预测。预测过程按单像素进行,即串行输入串行输出,SAD的计算通过SAD>2; SAD 3 实验结果
  本文设计是以8×8块为单元,采用VHDL硬件描述语言实现了帧内像素值预测以及模式判决模块。设计中所采用的硬件处理平台是Xilinx公司的VidexII系列FPGA xc2vp20,整个设计在ISE 10.1环境下进行。
   3.1 功能仿真结果
  仿真过程中我们将预测输出内容存储到Pre_RAM中,在每个子块预测结束时打印至文本文件,同时将相同的视频码流加入到我们采用的软件模型并打印与我们仿真相应的部分内容, 将两者进行比较。至模块完成时,已成功完成一个完整视频码流的数据对比,结果完全相同。
   3.2 时序仿真结果
  与功能仿真一样, 我们将Pre_RAM中存储的内容在每个块预测结束时打印至文本文件, 同时将相同的视频码流加入到我们采用的软件模型并打印与我们仿真相应的部分内容,将两者进行比较,结果也完全相同。由于篇幅限制图4仅给出了与图5对应的同一亮度块在软件模型中的内存数据,8x8亮度块预测的仿真结果如图5所示,图中显示的当前状态是stm4,stcompare和sttrans,其中sum_v, sum_h, sum_dc, sum_dc_left, sum_dc_top, sum_ddl, sum_ddr分别表示各对应模式下的SAD值,log表示最佳预测模式,dataout表示最佳预测值,对比可知二者结果一致。
  
  图4 亮度块内存数据
  Fig.4 Memory data for luminance block
  
  图5 帧内亮度预测块仿真波形Fig.5 Simulation waveform for intra luminance prediction module
   3.3 综合
  资源利用情况如图6所示,整个预测过程占用了328个时钟周期。而系统时钟频率在100MHZ的情况下要达到实时时钟周期需要控制在526之内,显然仿真结果表明该硬件结构完全满足标清AVS视频实时编码要求。
  
  图6 帧内亮度预测资源利用Fig.6 Resource utilization for intra luminance prediction module
   4 结束语
  本文将AVS帧内亮度预测模块的像素值预测和模式判决结合到一个模块中在FPGA平台硬件实现。采用资源共享的设计思想,同时将各种模式并行执行和流水处理,兼顾了时钟和资源利用率。仿真结果表明,当工作在155.927MHz时钟时,可以实时处理704x576、4:2:0、30 帧/s 的视频图像。拥有中国自己的自主知识产权的数字音视频编解码标准(AVS),在技术和性能上处于国际先进水平。本论文的研究内容对于AVS标清视频编码芯片的设计有着实际的参考价值。
  参考文献
  [1] Video Coding Standard[S]. Audio Video coding Standard Workgroup of China(AVS), Nov. 2005.
  [2] 梁凡.AVS视频标准的技术特点[J].电视技术,2005(7):8-12.
  [3] 王争,刘佩林.AVS帧内预测算法及其解码器的硬件实现[J].计算机工程与应用,2006,42(19):81-83.
  [4] Ke Zhang,Lu Yu.An area-efficient VLSI architecture for AVS intra frame encoder[C].Visual Communications and Image Processing 6508,2007:50822-50822.
  [5] 刘凌志,路奇,戎蒙,等.一种并行结构的H.264帧内预测器[J].上海交通大学学报,2006,40(1):54-58.
  [6] Kao Yu-Chien,Kuo Huang-Chih,Lin Yin-Tzu,et al.A high-performance VLSI architecture for intra prediction and mode decision in H.264/AVC video encoding[C].Asia Pacific Conference on Circuits and Systems, 2006: 562 -565.
  [7] 姜伟. AVS解码器帧内预测和环路滤波器硬件设计与实现[D].山东:山东大学,2009.

推荐访问:编码器 预测 FPGA AVS

相关文章:

Top