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