Android多核平台下X264多线程编码优化与应用.docVIP

  • 40
  • 0
  • 约4.19千字
  • 约 9页
  • 2018-08-11 发布于福建
  • 举报

Android多核平台下X264多线程编码优化与应用.doc

Android多核平台下X264多线程编码优化与应用

Android多核平台下X264多线程编码优化与应用   本文分析的是在arm芯片的android平台下,一种通用的H264视频压缩算法应用。该算法的特点是,多核arm芯片,android平台优化。而H264本来就是比较先进的视频编码算法,具有速度快,压缩倍数大的特点,具有很好的通用性。充分利用Cortex-A9芯片的neon功能提高指令集的优化。   【关键词】android arm X264 Cortex-A9 neon 多核   X264是一个开源的视频算法,算法的时间复杂度和空间复杂度都相对小,开发团队都是资深的视频编码人士,有深刻的视频编码背景。稳定性好,有专业的人在持续的维护和改进该算法,更新网上的开发包。而且经过这么多年的应用和bug修复,得到应用上的实践验证。是一个比较成熟的视频编码算法。移动设备在市场上的火热表现和越来越多的商业应用。而绝大多数设备都是android系统,其内在芯片多数基于arm的,尤其是多核,已近成为大家熟知的一个概念。   本文通过在4核的arm芯片上实现X264的应用和优化,尝试提高多核在实际应用中的效率提高,同时通过arm芯片编译优化,提高X264开源库的效率。进一步提高X264在android移动设备上效率。   1 X264,NEON-ARM,arm多核并发初步介绍   1.1 X264简介   先介绍H264,H.264是ITU(International Telecommunication Unite国际通信联盟)和MPEG(Motion Picture Experts Group运动图像专家组)联合制定的视频编码标准。这个标准的目标是:一是基于高的视频分辨率和高压缩比,改善图象质量;二是能够覆盖所有的低带宽和高带宽的应用,具有很好的网络适应性。   在同等的图像质量条件下,H.264的数据压缩比能比当前DVD系统中使用的MPEG-2高2-3倍,比MPEG-4高1.5-2倍。正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。在MPEG-2需要6Mbps的传输速率匹配时,H.264只需1Mbps-2Mbps的传输速率。   H264标准分为三个不同的档次,分别应用于不同的领域。   1.1.1 基本档次   主要用于视频会议,可视电话,远程医疗,远程教育,视频监控等。   1.1.2 主档次   采用了多项提高图像质量和增加压缩比的技术措施,主要用于消费电子产品。   1.1.3 扩展档次   包含了除自适应算术编码之外的所有H264标准所规定的内容,主要用于各种网络视频流传输,如视频点播。   X264是一个基于H264标准的免费开源的视频实现算法软件包。由法国巴黎中心学校的中心研究所于2004年6月发起,并由许多视频编码爱好者共同完成的项目。广泛应用于视频压缩和格式转换领域,支持x86,power PC,ARM和Ultra SPARC平台。当前的一些视频处理组织,如VLC,FFDSHOW,FFMPEG等,已经将X264集成到其开源项目中。   1.2 NEON-ARM简介   是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction,Multiple Data,单指令、多数据)扩展结构。从智能手机和移动计算设备到HDTV,它已被公认为是多媒体应用领域中最为优越的处理器之一。它采用专门设计,简化了软件在不同平台之间的移植,为类似Dolby Mobile的密集型多媒体应用提供了低能耗和灵活的加速功能。   NEON技术与Cortex-A8和Cortex-A9处理器相结合,已经被许多领先企业广泛采用。越来越多的机构正在IP设计中采用NEON技术,或提供为NEON技术优化的软件,构成了NEON生态系统的一部分。这一生态系统由大量的硅片领导厂商构成,如博通公司、Freescale Semiconductor、Matsush_ita、NEC、NVIDIA、松下、PMC-Sierra、三星电子、ST、TI和东芝美国电子元器件公司,这些公司都获得了Cortex处理器授权,其中提供NEON技术作为选择之一。此外,在这些ARM处理器和多媒体编解码器厂商基础上,构建开发和评测电路板的硬件设计合作伙伴正不断为NEON技术优化编解码器。   1.3 arm多核并发   所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。   arm多核并发,其实就是为了在同一个时刻,充分利用所有的cpu,而不是单一的cpu。提高cpu的性能。   2 X264在多核

文档评论(0)

1亿VIP精品文档

相关文档