论文部分内容阅读
H.264/AVC作为目前视频编解码领域的主流标准,采用基于块的混合编码框架,获得的压缩效率是MPEG-4和H.263的2倍左右,因而成为研究的热点。H.264编解码算法复杂度很高,为了满足H.264在实时性要求较高场合的应用,设计实现基于硬件平台的H.264编解码器具有重要的现实意义。本文首先介绍了熵编解码的理论原理和FPGA的设计流程,在此基础上给出了基于FPGA的CAVLC编码器整体设计方案,通过对已有的设计理论与研究思路的总结,给出了CAVLC编码的优化方法。对CAVLC熵编码采用4x4和8x8全零块跳转减少功耗,提高编码效率,8x8全零子块不进行CAVLC编码,4x4全零子块直接使用重新整理的特定码表查表,无需经过编码阶段分步编码;利用扫描与编码两级流水线设计减少编码过程的时钟周期。其次,给出了熵解码的整体设计方案以及优化方法。熵解码部分采用CAVLC解码信息提取和残差数据恢复两级流水架构提高解码效率。通过对相关的编解码表进行重新排列,变长码表按照码字前缀零的个数从小到大排列,利用首一检测减少查表次数;定长码表可以寻找特定规律,这样即可用逻辑运算代替一些查表过程来提高解码时的查表速度。最后,基于以上设计方案详细论述了硬件设计的整体结构框架和内部模块功能的划分,利用verilog语言完成了相关模块的逻辑设计。同时采用硬件验证语言SystemVerilog,仿真工具Modelsim以及DPI(Direct Programming Interface)技术,以X.264软件模型中的实现为基准参考,对各个功能模块和整体框架进行了仿真验证,证明设计系统逻辑设计上的正确性。利用Xilinx ISE13.3开发环境下的综合工具XST,选择xc6vlx240t-1ff1156硬件平台对设计系统进行综合分析。验证分析结果表明CAVLC编码器最高频率可达167.8MHZ,编码一个宏块平均需要435个时钟周期,熵解码部分的最高频率可达153.8MHZ,解码完成一个宏块平均需要480个时钟周期,均可满足对高清视频序列1080p@30fps的实时性处理。