论文部分内容阅读
相比此前的任何视频编码标准,H.264标准都更为先进实用,但实际上其发布距今已有多年,仍然与真正大规模的应用实现之间存在较大距离,根本原因在于H.264的高性能以提高了编解码器的计算复杂度作为代价。如何利用现有的软硬件资源,在保证高性能的前提下提高H.264编解码器的效率,长期以来都是该领域研究的热点。本文首先分析了视频编码在应用领域所面临的挑战,再就国内外的研究现状进行了讨论;然后对CUDA的编程架构进行了阐述,并介绍了H.264编解码架构、主要特征,以及H.264的关键技术,分析了CUDA应用于H.264视频编解码的优势与挑战。在此基础上,对H.264编解码框架作了并行化设计,并就其中最为耗时且适合于并行执行的运动估计、环路滤波模块提出了GPU的实现,同时对熵解码查表解码算法也作了基于CPU的算法设计。在编码框架设计中,本文考虑到GPU和CPU间数据传送的时间应明显小于GPU所需要的计算时间,才适合于将该部分算法映射到GPU中去。为了减少从Device端向Host端的回传数据量,同时又避免数据漂移现象,本文采用运动信息来取代残差信号传回。通过对运动估计并行模型的分析,本文利用可变子块的树状结构来分三步完成对整像素点的预测,同时也对亚像素运动估计中的插值运算和SAD计算的并行实现算法作了描述。对环路滤波,分别对Bs值求取以及边界过滤均作了并行实现。此外,对并不适合并行设计的熵解码作了基于CPU的算法设计,根据H.264标准中的CAVLC解码算法过程中查表的特点,提出了针对所查找的二维表中存在的定长和变长两种码表,分别采用不同策略加以优化的设计。实验结果证明,本文提出的基于CUDA的运动估计并行算法实现,编码效果与全搜索算法相近,却大大加速了编码器的处理速度。同时,解码端对环路滤波和熵解码算法的优化,在不降低视频质量的前提下,也显著地加速了解码器处理速度。