迄今为止最大提升!FFmpeg手写汇编代码:性能100倍飞跃

7月18日消息,FFmpeg项目的开发者们再次通过手写汇编代码实现了显著的性能提升,开发者称:“手写汇编代码使FFmpeg速度提升100倍,这可能是目前我所见到的最大速度提升”。

不过其很快澄清,这一100倍的提升仅适用于一个特定函数,而不是整个FFmpeg应用。

通过最新的手写汇编补丁,应用中的“rangedetect8_avx512”性能提升了100.73%。即使用户的处理器不支持AVX512,使用rangedetect8_avx2代码路径时,仍可获得65.63%的性能提升。

开发者们在后续的推文中承认:“这是一个现在快了100倍的单一函数,而不是整个FFmpeg。”他们进一步解释说,这个可能享受100%速度提升的功能是一个“较为冷门的过滤器”。

由于该功能的冷门性,它直到现在才被开发者优先考虑,该过滤器代码被重新编写,采用了SIMD(单指令多数据)处理概念,从而实现了大幅改进的并行处理。

显然,编译器仍然无法与手写汇编相竞争,或者正如FFmpeg所说:“编译器的寄存器分配器很糟糕。”

FFmpeg是少数几个仍然坚持使用手写汇编代码优化的项目之一,团队甚至运营着一所“学校”,教授手写汇编代码的技巧。

FFmepg是一套视频音频的完整解决方案,提供了视频解码、编码、后期处理等一系列功能,对世界上千奇百怪的视频音频编码有着完善的支持。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

相关文章