ひtoりgoと

Apple Silicon の HandBrake はまだ本気出してない?

Mac ソフトウェア

Apple Silicon の HEVC エンコーディングに関して気になる情報。

Here's some exciting news: Apple has contributed a patch for ffmpeg to the Handbrake project which enables the use of ARM NEON optimizations (don't ask me what NEON means; I've looked all over and can't find a reference). With the Apple patch, x265 encoding performance is tripled. The M1 is already not so bad at encoding.

HandBrake や FFmpeg で HEVC のソフトウェアエンコーディングに使われている x265 は Apple Silicon に用意された NEON という機能を使うと 3 倍ぐらい(!)高速化する余地があり、Apple がパッチを用意したものの採用されていないという話。本当だったら大変もったいないので詳しい人の話を聞きたい。

NEON?

  • NEONはArmのSIMD拡張命令セットです。
  • Single Instruction Multiple Dataの略で、複数のデータに対し、同じ処理を実行できます。

NEON というのは並列処理を高速化するための機能らしい…?

試したい人は

この後の書き込みには、その NEON 最適化を適用した FFmpeg のカスタムバージョンのレポジトリがリンクされていた。ビルドして動かしてみたら確かに速い気がする。試すなら自己責任で。

This script is made to compile FFmpeg with common codecs on Mac OSX running on Apple Silicon. The script was orginally taken from https://gitlab.com/martinr92/ffmpeg and has been modifed to build the libraries with ARM64/NEON code were applicable.

The version of x265 also includes the Apple provided patch used by Handbreak, https://github.com/HandBrake/HandBrake/blob/master/contrib/x265/A01-darwin-neon-support-for-arm64.patch forward ported to apply to newer versions of x265 this is not in the main line code but runs significantly faster. This version also correctly reports that ARM64 is 64 bit not 32 bit :-)

2021.12.21 追記

りんすきさんの調査によると最近 x265 がこの変更を取り入れたらしい 👍

Share

リンクも共有もお気軽に。記事を書くモチベーションの向上に役立てます。

© 2005-2022 zumuya