この記事は、インテル® デベロッパー・ゾーンに公開されている「Accelerating Media & Video Processing: Which Tool Do I Use?」(https://software.intel.com/en-us/articles/accelerating-media-processing-which-tool-do-i-use-when) の日本語参考訳です。
インテルには、エッジからクラウドに至るまで、メディアやビデオのソリューションやアプリケーションを最適化するための多くの優れたソフトウェア開発ツールがあります。開発者が必要とする一般的な用途は以下のとおりです。
- ビデオ・トランスコードのパフォーマンスを高速化し、インテルのハードウェア機能とアクセラレーターをフル活用
- より高いフレームレートと HEVC のような効率良いフォーマットへの移行
- 物体検出と認識、メディア分析などのインテリジェント・ビジョンとディープラーニング推論の統合
- 360° ビデオ、リアルタイム・クラウド・ゲーム、AR/VR などの没入型体験の革新
しかし、特定のニーズや用途に適した開発ツールを探すのが困難なこともあります。ここでは、開発者がスマートメディアやビデオ・アプリケーションの開発に使用できるインテル® ソフトウェア開発ツールを紹介します。
高速なビデオ/イメージ処理
- クライアント、モバイル、組込みアプリケーションとデバイス: インテル® メディア SDK for Embedded Linux*
- サーバー、デスクトップ、クライアント、モバイル、組込みアプリケーションとデバイス: インテル® メディア SDK for Windows*
以下の開発向け:
- インテル® Core™ プロセッサーまたはインテル® Core™ M プロセッサー
- インテル® クイック・シンク・ビデオをサポートするインテル® HD グラフィックスを搭載するインテル® Celeron® プロセッサー、インテル® Pentium® プロセッサー、そして Intel Atom® プロセッサーの SKU を選択
- クライアント、モバイル、または組込みデバイス – デスクトップやモバイル向けのメディア・アプリケーション
- OS – Windows* および組込み Linux*
- オープンソース・バージョンは、Github* (英語) において MIT ライセンスで利用可能
用途とニーズ
- 高速ビデオ再生、エンコードおよびメディア処理、メディア・フォーマット変換、またはテレビ会議
- RAW ビデオやイメージの高速処理
- スクリーン・キャプチャー
- ドローン、携帯電話、エディター/プレイヤー、ネットワーク・ビデオ・レコーダー、ネットワーク接続された自動車などのスマートカメラ
- HEVC、AVC、MPEG-2 およびオーディオコーデックのサポート
- ソリューションと使用方法に応じて、インテル® コンピューター・ビジョン SDK、インテル® SDK for OpenCL* Application、インテル® System Studio と組み合わせて使用
スマートビデオ、コンピューター・ビジョン、およびディープラーニング推論:
|
コンピューター・ビジョン・ソリューションの開発を加速し、ディープラーニング推論を統合するには、インテル® ディストリビューションの OpenVINO™ ツールキットを使用します。
- さまざまなインテル® プロセッサーとアクセラレーターでコンピューター・ビジョンとディープラーニングのパフォーマンスを加速
- ワークロード・パイプラインに独自のカスタムカーネルを追加可能
- 付属のインテル® ディープラーニング・デプロイメント・ツールキットを使用して、ディープラーニング対応のコンピューター・ビジョン・アルゴリズムを迅速に展開
- OpenCV*、OpenVX*、メディアのエンコード/デコード向けに最適化された関数を利用可能 (インテル® メディア SDK オープンソース版を同梱)
- スマートビデオ、物体認識、コンピューター・ビジョン、デジタル監視、小売、製造、スマートホーム/スマートシティー、ヘルスケア、自動運転などの垂直ソリューションにおけるディープラーニング推論などに使用
ウェブ・アプリケーションを介したリアルタイム通信: インテル® Collaboration Suite for WebRTC
- W3C 標準の WebRTC API をベースに構築されており、ブロードキャスト、ピアツーピア、会議モード通信、オンラインゲーム/VR ストリーミングなどのリアルタイム通信 (RTC) の開発を高速化
- Andrioid*、ウェブ (JavaScript* ビルド)、iOS*、Windows* アプリケーションで使用可能
ソリューションのカスタマイズ、CPU/GPU 負荷バランス、インテル プロセッサー・グラフィックスの活用: インテル® SDK for OpenCL* Applications
以下の開発向け:
一部のインテル® プロセッサー上での汎用 GPU アクセラレーション (技術仕様を参照)。OpenCL* は主に実行ユニットをターゲットとします。OpenCL* アプリケーションが、インテル固有のハードウェア・ブロックにアクセスできるよう、インテル® プロセッサー向けの拡張機能が追加されています。
- ヘテロジニアス計算アプリケーションをカスタマイズしてパフォーマンスを高速化
- アプリケーションのニーズに合わせてインテル® グラフィックス・テクノロジーへ計算をオフロードして、CPU と GPU の間でメディア・ワークロードのバランスを取る
ビデオのパフォーマンスと品質の解析: インテル® VTune™ プロファイラー
CPU、GPU、スレッド、OpenCL*、帯域幅のメトリックを収集して、メディア処理のボトルネックを見つけるパフォーマンス・プロファイラーです。データを素早く分析して、タイムライン、コードソース、および BPU アーキテクチャー・ダイアグラムで結果をフィルターして、VDBox、VEBox、EU 利用率、バス帯域幅を示します。
システム/IoT デバイス・アプリケーションのシステム・ブリングアップ、ブート・パフォーマンス、電力使用量、信頼性: インテル® System Studioこのクロスプラットフォームのツール・スイートには、最適化コンパイラー、高度にチューニングされたライブラリー、アナライザー、デバッグツール、クラウドコネクターや 400 以上のセンサーへのアクセスが含まれています。
|
FPGA: インテル® FPGA 開発ツール (旧アルテラ FPGA)
(旧アルテラ) ビデオ & イメージ処理スイート MegaCore® ファンクション (インテル® Quartus® Prime 開発ソフトウェアの IP Catalog に含まれる)
以下の開発向け:
- すべてのインテル® FPGA (旧アルテラ FPGA) ファミリー
- ビデオ監視、放送、テレビ会議、医療および軍事映像、車載ディスプレイなどのビデオとイメージ処理アプリケーション
用途とニーズ
- FPGA デバイス向けのハードウェア・ビット・ストリームの設計、シミュレーション、検証
- デインターレース、カラー空間変換、アルファ・ブレンディング、スケーリングなどに最適化されたビルディング・ブロック
インテル® C for Metal と関連ツール
CM ランタイムは、インテルのメディアドライバーと CM コンパイラーとともにオープンソース化されました。CM パッケージは 01.org にあります。
ソースコードは以下の場所から利用できます。
- インテル® Media Driver for VAAPI とインテル® C for Metal Runtime: GitHub* (英語)
- インテル® Metal Compilerとサンプルコード: GitHub* (英語)
- インテル® グラフィックス・コンパイラー: GitHub* (英語)
OpenCL および OpenCL ロゴは、Apple Inc. の商標であり、Khronos の使用許諾を受けて使用しています。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。