1103986_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1103986_ja-JP

1103986_ja-JP

i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

この記事では、さまざまなVPUクロックでのビデオ再生でのi.MX6DQの機能を検証するためのいくつかの実験を行います。

1. 事前準備

Board: i.MX6DQ SD

ビットストリーム:1080pヒマワリ、40Mbps、最もタフなH264クリップと見なされています。元のクリップを 20 回コピーして新しい raw ビデオを生成し (ひまわりクリップを 20 回繰り返します)、mp4 コンテナにカプセル化します。これは、vpu単体テストと比較して、gstreamerの起動ワークロードの影響を排除し、最小限に抑えるためです。

カーネル:270MHz、298MHz、329MHz、352MHz、382MHzの異なるVPUクロック設定で異なるカーネルを生成します。

テスト設定:1080pデバイスでの1080pコンテンツのデコードと表示。(サイズ変更なし)

2. VPU単体テストとGstreamerのテストコマンド

タイル形式のビデオ再生はNV12形式よりも高速であるため、以下の実験では、ビデオ再生中にタイル形式を選択します。

ユニットテストコマンド:(フレームレートを-a 70に設定し、1080p 60fps HDMIリフレッシュレートより高く設定します)

/unit_tests/mxc_vpu_test.out -D "-i /media/65a78bbd-1608-4d49-bca8-4e009cafac5e/sunflower_2B_2ref_WP_40Mbps.264 -f 2 -y 1 -a 70"

Gstreamerコマンド:(最高の再生速度を得るためのフリーラン)

gst-launch filesrc location=/media/65a78bbd-1608-4d49-bca8-4e009cafac5e/sunflower_2B_2ref_WP_40Mbps.mp4 typefind=true !アイウルデマックス!vpudec framedrop=false !キューの最大サイズバッファ= 3!mfw_v4lsink sync=false です。

3. 動画再生フレームレートの測定

テスト中に、コマンド「echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor」を入力して、CPUが常に最高周波数で動作することを確認し、割り込みに迅速に応答できるようにします。

異なるVPUクロックを持つ各テストポイントに対して、5ラウンドのテストを行います。最大値と最小値は削除され、残りの 3 つのデータが平均化されて最終的な再生フレームレートが取得されます。

#1#2#3#4#5Min最大平均
12月再生12月再生12月再生12月再生12月再生再生再生再生
270M 閲覧数ユニット・テスト57.857.357.8157.0457.7857.357.8756.1557.9155.455.457.356.83
GSTの53.7654.16354.13654.27353.65953.65954.27354.01967
298M 閲覧数ユニット・テスト60.9758.3760.9858.5560.9757.860.9458.0760.9858.6557.858.6558.33
GSTの56.75549.14453.27156.15956.66549.14456.75555.365
329M 閲覧数ユニット・テスト63.859.5263.9252.6363.858.163.8258.2663.7859.3452.6359.5258.56667
GSTの57.81555.85756.86258.63756.70355.85758.63757.12667
352メートルユニット・テスト65.7959.6365.7859.6865.7859.6566.1649.2165.9357.6749.2159.6858.98333
GSTの58.66859.10356.41958.0858.31256.41959.10358.35333
382M 閲覧数ユニット・テスト64.3456.5867.858.7367.7559.6867.8159.3667.7759.7656.5859.7659.25667
GSTの59.75358.89358.97258.27359.23858.27359.75359.03433

注:Dec列はvpuデコードfpsを意味し、Playback列は全体的な再生fpsを意味します。

untitled.JPG

いくつかの説明:

単体テストがよりフラットなのに、Gstreamerのパフォーマンスデータがまだ改善されるのはなぜですか?Gstreamerには、vpu apiをより直感的に呼び出すために使用されるvpuラッパーがあります。したがって、最初は、全体的な GST 再生パフォーマンスは vpu (vpu dec 57.8 fps) によって制約されます。そして最後に、vpuクロックが増加するとvpuデコードパフォーマンスが60fpsを超えると、制約はディスプレイのリフレッシュレート60fpsになります。

Gstreamerのビデオ表示オーバーヘッドは、単体テストと同様に約1fpsにすぎません。

テスト結果に基づくと、352MHz の場合、1080p ディスプレイでの全体的な 1080p ビデオ再生は ~60fps に達する可能性があることがわかります。

または、2つのディスプレイを備えた2つのパイプラインで時間を共有する場合、2 x 1080p @ 30fpsのビデオ再生を行うことができます。

ただし、この実験は 1080p ディスプレイでの 1080p ビデオ再生に有効です。インターレースされたクリップとディスプレイのサイズが 1080p と同じでない場合、インターレース解除やサイズ変更などの後処理によって全体的な再生パフォーマンスが制限されます。

i.MX6Duali.MX6QuadLinuxマルチメディアRe: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちはJunping、

mfw_isink前にキューも使用する必要がありますか?

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

vpu はデコードに 6 つのバッファを使用し、vl4sink はそのうちの 2 つを使用し、キューは 3 つのバッファを使用します。大きすぎる設定は使用できません。そうしないと、実行するのに十分なバッファがありません

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

スケールダウンしても大きな違いはないはずです、なぜならどちらもIPUを使用しているからです

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ああ、わかりました。よくわかりません。ジャックマオさん、これについてコメントしていただけますか?

Leo

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Leo,

スケールダウンする必要がありますが、私の質問は次のとおりです。

mfw_ipucsc を使用したスケールダウンと mfw_isink を使用したスケールダウンの違いは何ですか?パフォーマンスの向上はありますか?

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Tarek,

mfw_ipucsc は色空間変換および解像度スケーラーであるため、これらの機能が必要ない場合はパイプラインから削除できます。一方、それを追加して前にcapsfilterを追加しない場合、(私が信じている)何もしません。

Leo

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Leo,

私はmfw_ipucscと同じIPUを使用していると思うmfw_isinkを使用しています。それを使用することで追加の利点があると思いますか?

とにかく試してみるので、パイプラインは次のようになります。

appsrc -> vpudec -> mfw_ipucsc -> mfw_isink.それでよろしいですか。

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

jackmao は、キューのバッファを減らす必要がある理由について、よりよく理解しているはずです。AFAIKでは、vpudecは少なくとも6つのバッファを実行する必要があり、vpudecのプロパティを使用して変更することはできないため、残っている唯一のパラメータはキューのバッファです。実際、私はキュー要素を調べましたが、デフォルトは200のようです!!

max-size-buffers : 最大キュー内のバッファの数 (0=無効)

フラグ:読み取り可能、書き込み可能

符号なし整数。範囲: 0 - 4294967295 デフォルト: 200 現在: 200

ところで、mfw_ipucsc要素をダウンスケーリングに使ってみたことはありますか?

Leo

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Leo,

1.メモリ リークは見られません。私はTop valgrindとmtraceを使用したことがあるので、疑いはありません。

2.私はそれを理解しているかどうか諦めていません!デフォルト値は 20 バッファで、VPU がバッファを使い果た しないように 、この数を 3 バッファ に減らす 必要があります。数を増やす必要があると思いますよね?

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi Tarek,

1. フリーズの問題: パイプラインの実行中に RAM のメモリ使用量/空き容量 (top -b | grep Mem) を監視できますか?

2.キュー:「max-size-buffers」を減らす理由は、vpudecが常にパイプライン上で実行されるいくつかのバッファを必要とするためだと思います。デフォルト値が指定されている場合、vpudecはある時点でバッファを使い果たします。

Re: i.MX6DQボードでのビデオ再生性能評価<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hello,

この情報を提示していただきありがとうございます。それは非常に有益です。

私は関連する問題をデバッグしており、ほとんど質問がありません。

問題を:

gstreamerを使用して、複数のネットワークストリーム(4-8-16)を1080p画面に再生しています。画面はDVIのみをサポートしているため、HDMI-DVIケーブルを使用しています。もちろん、画面に収まるように mfw_isink 要素を使用してストリームを縮小しています。すべてのストリームは目立ったエラーなしで正常に開始されますが、数時間後にはエラーメッセージを表示せずにビデオがフリーズします。

私が使用しているパイプラインは次のとおりです

                                          vpudec ->

appsr c-> output-selector -> input-selector -> mfw_isink

                                          jpegdec->

私の質問:

1.システムは24時間年中無休でビデオを再生し、消費電力は気にしません。常にコマンド "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/"を使用する方が良いですかscaling_governor

2. なぜデコーダとシンクの間で "queue max-size-buffers=3" を使用するのですか?バッファのサイズ= 3をどのように決定しますか?

3. VPUとIPUのパフォーマンスを監視するためのツールはありますか?

4.ボトルネック、ディスプレイ、またはデコーダーのどちらがより可能性が高いですか?

ありがとうございます

Tags (1)
No ratings
Version history
Last update:
‎01-06-2026 01:36 AM
Updated by: