论文部分内容阅读
H.264视频编解码标准凭借其出众的压缩性能,在各种视频服务领域得到应用。它使用了分数像素运动估计,使得编码器压缩性能提升了0.5~2dB。但是分数像素运动估计的计算复杂度较大,占用了整个帧间预测计算量的45%。FPGA技术可以使我们方便的通过硬件平台完成高速计算的任务,设计基于FPGA的视频编解码器是产业界研究的热门方向。本文首先介绍了视频压缩技术的发展及技术特点,然后描述了H.264视频编码主要环节和FPGA相关知识,最后给出了几种已有的分数像素运动估计模块设计模式并引出本文的设计方案。在保证视频编码质量的情况下,为了降低复杂度,本方案未支持8x8分割以下的分割模式,且在求解像素残差和运动预测像素值时都以8x8块为基本单位;存储参考帧像素和当前帧像素时,使用了FPGA中不同的存储资源,并设置了相应的存储规则;在插值过程中将竖向8x8块合并后输入到插值单元,避免了参考帧像素边界的重复输入;本方案采用了一种适合硬件实现的搜索算法,即并行搜索21个分数像素点(匹配块左上顶点),这个算法对视频质量的影响只有0.02dB,但处理效率大大提升;在比较判决模块,利用21个代价值到达的时间不同的特点,复用了三个比较单元;同时设计中进行了两次分数像素运动估计,节省了存储空间,第一次针对每种分割模式,得到最佳分割模式,第二次仅针对最佳分割运动估计,得到最佳残差和最佳运动补偿像素等数据,最后重构得到重构像素。最后,本文利用Systemverilog搭建的验证平台,使用大量视频的数据进行了验证,功能仿真表明本文设计正确达到了预期功能。在Xilinx的xc7z045硬件平台上进行了综合和布局布线,结果表明本模块共使用11094个寄存器和22950个LUTs,布局布线后的工作频率达到了125MHz,处理一个宏块需要440个周期,满足处理1080p@30fps的要求。