基子片上异构平台的高性能视频解码器的设计与实现
作者单位:山东大学
学位级别:硕士
导师姓名:鞠雷
授予年度:2016年
学科分类:0810[工学-信息与通信工程] 080902[工学-电路与系统] 0809[工学-电子科学与技术(可授工学、理学学位)] 08[工学] 081001[工学-通信与信息系统]
主 题:HEVC/H.265 实时解码 片上异构处理器器 GPU加速
摘 要:高清视频在日常生活中扮演者越来越重要的角色,随着视频分辨率的升高,视频文件变得越来越大。因此,为了更好的存储和传输视频文件,视频编码标准也在被不断的提出和完善。目前,由联合视频编码组提出的HEVC视频编码标准凭借其高效的压缩效率,被普遍认为成为将成为新一代视频编码标准。HEVC能够获得比现如今主流视频编码标准H.264高一倍压缩率,但同时其代码的复杂度也是H.264代码复杂度的二到四倍。由于HEVC编码标准高效的压缩率,HEVC拥有着良好的发展前景,但由于其复杂的视频编码结构,使其在普通PC机和嵌入式环境下很难达到实时编码和解码。在嵌入式环境中,由于计算资源的限制,HEVC编解码在嵌入式环境下的编/解码效率将会更低。因此,对HEVC编码标准的加速优化将成为HEVC视频编码标准应用到嵌入式环境当中的关键问题。本文研究了HEVC的编码标准,并借助GPU的并行计算能力,实现一个基于片上异构的嵌入式高效HEVC视频实时解码器。本文首先对HEVC编码标准进行介绍和分析,认为造成HEVC编码复杂度提高的主要原因是由于在HEVC标准中采用动态四叉树划分编码树单元替代了H.264中固定编码宏块。另外,在帧内预测和帧间预测时,HEVC支持更多模式,提供更多预测机制,这同样是造成HEVC编码复杂度升高的原因之一。并且HEVC编码标准当中的数据依赖关系也是其在并行化实现过程当中的阻碍。本系统通过分析HEVC解码模块当中的数据依赖关系,设计能够遵守这种依赖关系的并行化算法,并且将各个模块当中复杂的操作并行执行,得到一个基于嵌入式平台的实时HEVC视频解码器。同时,本系统通过分析在解码过程当中对数据的访问顺序,利用GPU的存储架构特点,降低数据在cache当中的冲突发生次数,提高本系统的解码效率。在本解码器的实现过程当中,通过分析,将并行度不高且占解码时间较少的的熵解码部分在CPU上实现,将并行度较高的反变换/反量化、帧内预测、去方块滤波、样本自适应补偿四个模块在GPU上执行,并且分别设计适应各个模块的并行化算法。特别是对于帧内预测模块,为了满足其重建帧内像素时需要遵守的数据依赖关系,运用了波前并行处理的方法设计了既能够并行化帧内预测模块同时又遵守数据依赖关系的并行化算法。对于所有并行化的模块,本文中设计了专门的数据结构能够减少CPU与GPU间不必要的数据传输。经过试验表明本系统当中设计的基于嵌入式平台的HEVC解码器能够在解码720p(720*1280)视频时达到实时的要求。