ビデオ・デコーディング
[Video Decoding]セクションを使用すると、開発者は、ハードウェアまたはソフトウェアのいずれかのビデオ・デコーディング機能を使用してTouchGFX HALを強化できます。
Further reading
ビデオ・ソフトウェア・デコーディングでは、アプリケーションのフレームバッファに使用されているものとは異なるデコード・フォーマットを使用できます。 ビデオ・ハードウェア・デコーディングは、アプリケーションのフレームバッファと同じピクセル・フォーマットのビデオのRGBバッファのみをサポートします。
Note
Type
デフォルトでは、[Video Decoding]の[Type]は無効になっています。 必要なペリフェラルがSTM32CubeMXで有効化されていない場合は、[Software]と[Hardware]の両方がグレー表示になります。 マウスをグレー表示されているオプションに合わせ、必要なペリフェラルを確認します。
- Software - STM32CubeMXの[Middleware and Software Packs]セクションでLIBJPEGが有効になっている場合は、[Software]オプションを選択すると、ソフトウェア・デコーダが生成されます。 これはつまり、ToughGFX GeneratorによってソフトウェアMJPEGデコーダが生成されるということです。
- Hardware - JPEG IPが[Multimedia]セクションで有効になっており、CMSIS準拠のRTOSがTouchGFX Generatorで選択されている場合は、[Hardware]オプションを選択できます。
Further reading
Concurrent videos
[Concurrent Videos]オプションは任意の時点でGUIの同じ画面で同時にデコードされるビデオの最大量を指定します。 画面上で1つのビデオをデコードする場合にのみ、[Number of Videos]を1に設定できます。
最大で4つのビデオを同時にデコードできます。
Strategy
ビデオ・デコーディング方式に関して、開発者には次の3つのオプションがあります。
- Direct to Framebuffer - ビデオはUIスレッドでデコードされます。 これは、他の方式よりも時間がかかります。 ハードウェア・ビデオ・デコーディングと共に使用する場合、[Direct to Framebuffer]オプションは使用できません。
- Single Buffer - ビデオは1つの専用バッファを使用し、1つの専用タスクでデコードされます。 このバッファは内部メモリに割り当てられます。
- Double Buffer - ビデオは2つの専用バッファを使用し、1つの専用タスクでデコードされます。これは多くのメモリを必要としますが、パフォーマンスは向上します。
シングルまたはダブル・フレームバッファ方式を採用する場合、CMSIS準拠のOSを有効化する必要があります。
Note
Further reading
Decode Format
ソフトウェア・デコーディングの場合、開発者は、フレームバッファのピクセル・フォーマットに関係なく、RGBバッファのピクセル・フォーマットを選択できます。 TouchGFX Generatorは、これらのフォーマットが異なっている場合に、DMA2D(ChromART)でピクセル・フォーマットの変換を実行できるコードを生成します。
- RGB565 - ビデオのRGBバッファは16ビットです。
- RGB888 - ビデオのRGBバッファは24ビットです。
- RGB8888 - ビデオのRGBバッファは32ビットです。 アルファ値は255です。
Tip
Buffer size
バッファの幅と高さの設定は、アプリケーションの最大ビデオ・サイズより大きいか等しくする必要があります。 幅は32で割り切れる必要があります。