论文部分内容阅读
由于H.264编码运算复杂,计算量庞大,基于传统嵌入式处理器如ARM等所实现编码系统,核心编码算法依靠软件实现,系统编码性能差,无法实现较高实时性编码;基于专用编码芯片或者视频编码DSP所实现的编码系统,虽然编码性能较好,但系统接口和功能固定,可升级性差;而基于FPGA平台的H.264编码方案,编码性能高,可编程性强,弥补了上述编码系统的不足。大量国内外文献表明,一些学者成功地将H.264编码框架中的部分模块在FPGA平台上实现,编码性能均得到大幅度改善。然而,至今没有文献系统地介绍如何在FPGA平台上构建完整的H.264编码方案。本文完成了基于FPGA的H.264基本档次帧内预测和编码的所有部分,并实现了完整的视频编码系统。本文主要工作为:在H.264编码模块的FPGA实现方面,采用Verilog硬件描述语言实现了4×4帧内亮度预测模块、8×8帧内色度预测模块、4×4整数DCT变换模块、2×2哈达玛变换模块、量化模块、4×4逆整数DCT变换、逆量化模块、CAVLC熵编码模块、有符号Exp-Golumb熵编码以及重建模块等模块。对运算量较大的CAVLC熵编码模块加以优化,提高运算效率。在系统实现方面,设计了基于AXI-Stream接口的H.264编码IP核,并在Xilinx公司最新推出的Zynq-7000系列FPGA上搭建了测试系统,同时完成了Linux操作系统的移植、H.264编码IP核的驱动设计、USB摄像头的视频获取、QT界面上视频的动态显示,最终完成了整套的视频采集、显示、编码和存储系统。在H.264编码模块实现方面,使用Modelsim对相应的模块进行功能仿真,结果表明各模块运行正确,相关模块的优化方案切实可行。在Zynq-7000FPGA上综合后测试,运算量较大的CAVLC熵编码模块最高工作频率可达190MHz,理论上可以完成对1920×1080@30fps高清视频的实时编码。在编码系统实现方面,当量化参数QP为28时,系统对640×480分辨率视频的平均编码速度可达到21.69fps,是ARM平台的88.9倍,压缩比为4.94%,平均亮度PSNR和色度PSNR分别可达36.97dB和39.58dB,满足编码性能指标。