论文部分内容阅读
随着移动平台的飞速发展,移动智能设备用户对视频的消费需求越来越大。硬件解码的方式虽然在性能方面可以满足流畅播放的要求;但是受限于编码方式和封装格式的限制,不能满足用户观看各种格式的视频的需求。因此,需要利用移动智能设备的硬件特性,对软件解码进行优化,以便为用户带来更好的视频播放体验。VP8是Google提出的针对下一代互联网标准的视频格式。它拥有良好的网络亲和性,广泛的设备适应性,使低性能设备也可以获得良好的播放效果,因此可以更好地满足移动智能设备用户的需求。经历了几代的更新与发展,ARM(Advanced RISC Machine)处理器已经成为大部分移动设备处理器的选择。其中,Cortex-A8是目前使用最广泛的ARM处理器架构。Cortex-A8架构基于ARMv7指令集,带有NEON(Advanced SIMD,业界称为NEON)协处理器,具有很强的多媒体程序加速功能。基于Cortex-A8平台,利用NEON对VP8视频进行解码优化具有很广泛的市场前景。在介绍了Cortex-A8的各项新技术的基础之上,着重对基于SIMD技术的NEON协处理器进行了深入分析,包括SIMD技术的基本优化原理,NEON协处理器架构与寄存器特性等,并选用手工编写汇编代码的方式作为VP8视频解码的优化方法。深入解析了VP8解码流程,对其中的解码模块进行算法分析,结合解码器整体性能测试结果,对耗时较多并且适合SIMD优化的反量化反变换、运动补偿和去块滤波模块进行NEON优化。针对反量化反变换模块,利用NEON寄存器高效地实现矩阵变换;针对运动补偿,利用亚像素插值计算方式一致的特点实现并行计算;针对去块效应滤波,对算法进行微调,去掉判断分支,以实现并行滤波。最后基于开源视频编解码器FFmpeg具体实现了NEON优化方法,并对各组视频片段进行测试,测试结果表明,NEON优化方法实际效果比较理想。以解码速度作为性能指标,可以使VP8视频解码性能提高40%以上;尤其是运动幅度较大的视频,优化效果可以达到70%以上。