论文部分内容阅读
随着信息化时代的到来,越来越多的高清分辨率甚至超清分辨率的视频出现在人们的生活中,实时对这类视频进行压缩并传输的需求也越来越多。2013年1月JCT-VC发布了最新的视频压缩标准HEVC。该标准采用了基于四叉树的编码组织结构以及更大尺寸的编码块,加入了更多的预测方向,其压缩效率比现有的H.264标准高了一倍。HEVC标准采用基于上下文模型的二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)作为其熵编码的编码算法。CABAC在HEVC中的作用非常重要,它根据精确的上下文概率模型对残差信息进行编码,达到了接近香农熵的编码性能。但是由于CABAC的工作模式为串行逐比特编码,使得它成为了HEVC视频压缩的主要瓶颈。赛灵思公司近年来新推出的高级综合工具(High-Level-Synthesis,HLS),它帮助工程师隐藏了寄存器转换级(Register Transfer Lever,RTL)设计和现场可编程逻辑器件(Field-Programmable Gate Array,FPGA)结构的细节,其验证过程也较为简单,能够大幅地减少硬件系统的开发周期。为了解决CABAC吞吐率瓶颈的问题,本文在仔细研究了HEVC标准和CABAC算法原理的基础上,从算法上分析CABAC的速度瓶颈,并且使用HLS工具进行CABAC的硬件设计实现。本文的主要工作有:1.提出了一种多级流水的CABAC实现架构。将CABAC划分成比特编码、码流打包和码流输出三个子模块,通过分支预测技术去除了比特编码模块和码流输出模块之间的数据相关性,在三个模块间建立起多级流水线,提高了CABAC的数据吞吐率。2.利用HLS工具完成了满足4K实时视频编码的CABAC实现。针对提出的CABAC的硬件架构,利用HLS工具分别对CABAC的常规编码模式和旁路编码模式进行实现和相应优化;通过partition约束将数组映射为寄存器以提高数据访问速度,通过unroll约束将串行执行的循环体映射为并行执行的循环体以缩短处理时延;通过pipeline约束在多个模块间建立流水线以最终实现一种多级流水的可实时编码的CABAC的硬件架构;最后将所设计的CABAC编码器架构利用HLS工具进行RTL功能仿真。本文针对HEVC中CABAC的硬件实现,提出了一种多级流水的硬件架构,并通过HLS工具实现。实验结果表明,该架构能够获得比较高的数据吞吐率,满足4K分辨率视频实时压缩的需求。本文所提出的CABAC编码器的核心架构,其算法复杂度低,可通过单片FPGA实现,具有很高的实际应用价值。