モバイル リアルタイム EVC デコーダとプレーヤーの改善
オルガ・クロヴャコワ著 - 2021年5月26日
抽象的な
この記事では、EVC ビットストリームのリアルタイム再生が可能なプレーヤーの初期バージョンを実装した、2020 年 10 月のリアルタイムモバイル ビデオ プレーヤープロジェクトのステージ 1 に対する改善点について説明します。プレーヤーは ETM リファレンス ソフトウェア バージョン 6.1 に基づいており、ARM アーキテクチャ向けに最適化されています。このプレーヤーは、Huawei P40 Pro スマートフォンで開発およびテストされており、EVC メイン プロファイル ツールのサブセットを使用して、1080p テスト ファイルで 24 FPS でのリアルタイム再生を実証します。
1.結果
ソリューションの第 1 段階を要約すると、次の制限付きでエンコードされたシーケンスのリアルタイム再生を可能にすることが提示されました。
- 量子化パラメータ値: 32;
- コーディング ツール セット: Affine、DMVR、HTDF、ADMVP、ADCC、AMVR、ATS、IQT、CM_INIT、ADDB、DBF、HMVP、MMVD、POCS、RPL (Stage1 セット)。
提示された EVC プレーヤーは、「ParkScene」シーケンスで 25.07 FPS、「Kimono1」シーケンスで 26.02 FPS を実証します。
ステージ 2 で行われた最適化の結果は、BTT ツールをツール セットに安全に追加でき、QP を 27 に減らすことができ、これにより次の条件で画質が向上することがわかります。
- 量子化パラメータ値: 27;
- コーディング ツール セット: Affine、DMVR、HTDF、ADMVP、ADCC、AMVR、ATS、IQT、CM_INIT、ADDB、DBF、HMVP、MMVD、POCS、RPL、BTT (Stage2 セットとも呼ばれます)。
表 1 - QP=27 のテスト モバイル デバイスで選択したツールセットで達成された平均最大再生速度
テストシーケンス | デコード速度 ステージ 1 デコーダ (fps) | デコード速度 ステージ 2 デコーダ (fps) | に比べてパフォーマンスが向上 ステージ 1 デコーダ (%) |
パークシーン | 21.36 | 32.99 | 53,2 |
着物1 | 22.85 | 35.02 | 54,4 |
最適化の結果、デコーダは、Huawei P40 Pro スマートフォン用に設計された EVC プレーヤー アプリケーションで 53 ~ 54% のパフォーマンス向上を示しました。
表 2. リアルタイム プレーヤーの改善のために選択されたツールセット
ツールの短縮名 | ツールのフルネーム | ETM6.1 CTC RA デフォルト設定 | 選択されたツールセット、ステージ 1 | 選択されたツールセット、ステージ 2 |
ADMVP | 高度な動きベクトル予測 | 1 | 1 | 1 |
アフィン | アフィン予測 | 1 | 1 | 1 |
HTDF | アダマール変換ドメインフィルター | 1 | 1 | 1 |
DMVR | デコーダ側の動きベクトルの導出 | 1 | 1 | 1 |
ADCC | 高度な係数コーディング | 1 | 1 | 1 |
追加DB | 高度なブロック解除 | 1 | 1 | 1 |
アルフ | 適応ループフィルター | 1 | 0 | 0 |
AMVR | アダプティブモーションベクトル解像度 | 1 | 1 | 1 |
ATS | 適応変換の選択 | 1 | 1 | 1 |
BTT | 二分木と三分木 | 1 | 0 | 1 |
CM_INIT | コンテキストモデリングの初期化 | 1 | 1 | 1 |
DBF | デブロッキングフィルター | 1 | 1 | 1 |
EIPD | 強化されたイントラ予測方向 | 1 | 0 | 0 |
HMVP | 履歴 動きベクトル 予測 | 1 | 1 | 1 |
iQT | 高度な量子化と変換 | 1 | 1 | 1 |
MMVD | 動きベクトルの違いとマージ | 1 | 1 | 1 |
POCS | アドバンストピクチャーオーダー数 | 1 | 1 | 1 |
RPL | 参考画像一覧 | 1 | 1 | 1 |
スーコ | スプリットユニットのコーディング順序 | 1 | 0 | 0 |
IBC | イントラブロックコピー | 0 | 0 | 0 |
2. サポートされている EVC ツール
BTT ツールは最も潜在的なツールであると考えられるため、Stage1 セットに追加で有効になっている BTT ツールのテストを実行します (表 2)。
次の図 1 ~ 3 は、BTT64 ツールを使用した場合と使用しない場合の、QP 値 27 ~ 32 でエンコードされた ParkScene および着物 1 ファイルの EVC エンコード、デコード パフォーマンス、および PSNR 値を示しています。便宜上、図には、BTT64 を使用しないストリームと BTT64 を使用するストリームで測定された合計値が含まれています。
図 1. Windows 10 x64 で動作する i7-9700 CPU を搭載した PC での ETM 6.1 エンコーディングのパフォーマンス (BTT64 ツールが有効な場合と有効でない場合)
図 2. BTT64 ツールを有効にした場合と無効にした場合の EMUI 10.1 で動作する HUAWEI P40 Pro のステージ 1 デコーダーのパフォーマンス
図 3. BTT64 ツールを有効にした場合と有効にしない場合の ETM 6.1 エンコーダによってエンコードされたファイルの PSNR 値。
図 3 は、BTT64 を有効にしてもデコーダのパフォーマンスが大幅に低下せず、出力ファイルの品質も向上することを示しています。したがって、追加の EVC ツールとして安全に有効にすることができます。
ステージ 1 で提案された復号化の概念に固執するために、BTT (便宜上 BTT64 と呼ばれます) に対して 64x64 CU サイズを有効にすることが提案されています。
ターゲット デバイスでリアルタイムの再生速度を実現するには、デコード中に EVC ツールのプロファイリング情報を知ることが重要です。このような情報は、ステージ 1 デコーダーでデコードされたテストで Android プロファイラーによって収集されました。図 4 と図 5 は、ステージ 2 ツールセットと 27 に等しい QP 値を使用してエンコードされた ParkScene ビットストリームと着物 1 ビットストリームについて、ターゲット デバイス上で取得されたプロファイリング データを示しています。
図 4. ステージ 2 ツールセット (QP=27) でエンコードされた ParkScene ビットストリームのデコーダー プロファイリング
図 5. ステージ 2 ツールセット (QP=27) でエンコードされた着物 1 ビットストリームのデコーダー プロファイリング
最も時間のかかる機能は、DMVR、動き補償 (MC)、デブロッキング、再構築に関連したものです。これらのツールはデコード時間の約 77% を消費し、SIMD 最適化の最適な候補です。
3. 実装の詳細と再生
選択したツールセットでリアルタイム再生を実現するために、ETM 6.1 リファレンス SW に加えて次の主な変更が実行されました。
- デブロッキングおよび再構築部分の最も重要な機能の ARM SIMD 実装
- ウォーターフロントのような並列処理 (WPP) によるデブロッキングおよびデコードプロセス、スレッドプルおよびラインベースの起動
マルチスレッド機能の最適化の準備として、ブロック解除に関連する関数で追加のリファクタリングと最適化が行われました。マルチスレッド実装の完了後、ステージ 1 デコーダーに対するデコーダーの FPS ゲインは、Kimono1 シーケンスでは 40%、ParkScene シーケンスでは 42% となり、Player はデバイス上で 24 fps の再生を実証できます。
再生速度を客観的および主観的にチェックするために、プレーヤーを Huawei P40 Pro スマートフォンに導入してテストしました。
図 6 は、デバイスでの着物ビットストリーム再生中のプレーヤーの画像を示しています。
図 6. Huawei P40 Pro で動作するプレーヤーの画像
4. 最適化されたデコーダのプロファイリング
図 7. ステージ 2 ツールセット (QP=27) でエンコードされた ParkScene ビットストリームの最適化されたデコーダー プロファイリング
図 8. ステージ 2 ツールセット (QP=27) でエンコードされた着物 1 ビットストリームの最適化されたデコーダー プロファイリング
5. CPU使用率
デコーダは、CPU コア使用量の点で Huawei P40 Pro 携帯電話用に最適化されており、具体的には、SW は 4 つの最も強力な Kirin 990 CPU コア (ハイエンドおよびミッドエンド) でのみ動作します。図 9 と図 10 は、デコード プロセス中の 4 つの強力なコアごとの CPU 使用率を示しています。
(a)
(b)
図 9. ハイエンドおよびミッドエンドの CPU コア使用率。着物プレイバック、(a) ステージ 1、(b) ステージ 2
(a)
(b)
図 10. ハイエンドおよびミッドエンドの CPU コア使用率。 ParkScene の再生、(a) ステージ 1、(b) ステージ 2
図 9 ~ 10 は、ステージ 2 の最適化されたデコーダによってハイエンドおよびミッドエンドのコアがより効果的に使用されていることを示しています。
6. 消費電力
消費電力を見積もるために、テスト モバイル デバイスが 100% 充電された状態でプレーヤーでテスト ビットストリームの無限再生ループが開始され、エネルギー不足によりデバイスの電源がオフになるまでプロセスが動作しました。その結果、プレーヤーは、24 fps の速度で、Kimono1 ファイルで 4 時間 25 分、ParkScene ファイルで 4 時間 07 分動作しました。図 11 と 12 は、得られた結果をまとめたものです。
(a)
(b)
図 11. 着物の無限再生時の消費電力と再生速度、(a) ステージ 1、(b) ステージ 2
(a)
(b)
図 12. ParkScene の無限再生時の消費電力と再生速度、(a) ステージ 1、(b) ステージ 2
図 11 ~ 12 は、ステージ 2のバッテリー消費量がステージ 1と比較してわずかに増加していることを示しています。
7. 結論
Solveig Multimedia は、ステージ 1 で導入された WPP アルゴリズムに関連する最適化と、関数の SIMD 最適化を継続しました。
最適化の結果、デコーダは、Huawei P40 Pro スマートフォン用に設計された EVC プレーヤー アプリケーションで 53 ~ 54% のパフォーマンス向上を示しました。
最適化されたデコーダーは、提案されたツールセットに対して 33 ~ 35 FPS を示します。BTT ツールが追加されているため、ステージ 2 のすべての目的は十分に達成されています。これは、QP 値も 23 に減らすことができることを意味します。QP=23 の場合、デコーダは、Kimono1 ファイルに対して 31.52 FPS、Parkscene ファイルに対して 28.37 FPS を示します。これは、両方のファイルに対してリアルタイム 24 FPS 再生を提供するには十分です。
- https://www.solveigmm.com/en/howto/early-implementation-of-mobile-real-time-evc-player-mpeg-submission-october-2020/
Olga Krovyakova は、2010 年から Solveig Multimedia のテクニカル サポート マネージャーを務めています。
彼女は、ビデオ スプリッター、HyperCam、WMP トリマー プラグイン、AVI Trimmer+、TriMP4 などの会社製品に関する多くのテキストおよびビデオ ガイドラインの著者です。
彼女は毎日プログラムを使って作業しているため、プログラムがどのように機能するかをよく知っています。 ご質問がある場合は、 support@solveigmm.com経由で Olga までお問い合わせください。彼女は喜んでお手伝いします!