STM32H7 - JPEG
JPEGコーデック
1.0版

こんにちは、STM32 JPEGコーデックのプレゼンテーションへようこそ。グラフィックス指向のアプリケーションに使用されるこのエンコーダ/デコーダの機能を紹介します。

1

概要

2

• JPEGエンコードとデコード用のハードウェア・アクセラレーションを提供
JPEGコーデック
レジスタ/コントロール

RAMテーブル• エンコードとデコードのサポート• ヘッダの解析と生成• 完全にプログラム可能なJPEGテーブル

AHB
インプット
FIFO

アウトプット
FIFO

JPEG
コーデック
カーネル

アプリケーション上の利点• 完全なハードウェアのJPEGコーデック• 高速エンコード/デコード(1サイクルあたり1データピクセル)• CPU負荷のないシンプルな統合• M-JPEGビデオ再生に使用可能

STM32製品の中に統合されたJPEGコーデックは、JPEG画像のエンコードとデコードのためのハードウェアアクセラレータです。ハードウェアJPEGヘッダジェネレータと自動JPEGファイル処理用の構文解析が含まれています。エンコードとデコードの両方に必要なすべてのJPEGテーブルは完全にプログラム可能です。
JPEGコーデックはハードウェアに完全に実装されるため、CPU負荷なしで1サイクルあたり1つのデータピクセルを提供します。この柔軟な機能と高いパフォーマンスにより、JPEGコーデックをM-JPEGビデオ再生に使用できます。

2

主な機能

3

• 主な機能• ピクセルのチャネルあたり8ビットの深さ• エンコード/デコードのサポート(同時ではない)• ピクセルデータのエンコードとデコードに対する単一クロック• JPEGヘッダの生成と解析のサポート• 柔軟なIP• 最大4つのプログラム可能な量子化テーブル• 完全にプログラム可能なハフマンテーブル(2つのAC、および2つのDC)• 完全にプログラム可能な最小符号化単位(MCU)

JPEGコーデックは、ピクセルに対してチャネルあたり8ビットの標準ピクセルの深さで動作します。エンコードおよびデコードプ
ロセスは、ハードウェアに完全に実装されますが、同時に動作することはできません。エンコードおよびデコードプロセスは非常に効率的で、クロックサイクルあたり1ピクセルのデータのスループットを実現します。埋め込みヘッダパーサとジェネレータのおかげで、CPU負荷なしでJPEGヘッダを自動的に処理できます。
コーデックに必要なJPEGテーブルは、完全にプログラム可能です。コーデックは、最大4つの量子化テーブルと4つのハフマンテーブルをサポートします。

3

動作モード4

CPU負荷を軽減するためのハードウェア･デコードとエンコード• デコーディング• コーデックレジスタとテーブルの自動更新によるヘッダの任意解析• JPEGベースライン･アルゴリズム(ISO/IEC 10918-1 Annex B)に関連するすべてのマーカーをサポート• 内部JPEGコーデックRAMに格納されているすべてのテーブル(量子化とハフマン)• 割込みまたはDMAを介したデータ要求を伴う32バイト入力FIFO• 割込みまたはDMAを介したデータ要求を伴う32バイト出力FIFO• エンコーディング• コーデック･レジスタとテーブルに従った自動ヘッダ生成• 割込みまたはDMAを介したデータ要求を伴う32バイト入力FIFO• 割込みまたはDMAを介したデータ要求を伴う32バイト出力FIFO

JPEGコーデックには、デコードとエンコードの2つの動作モードがあります。
デコード操作中に、JPEGヘッダを自動的に解析できます。コー
デックは、JPEGベースライン・アルゴリズムに関連するすべてのメーカーをサポートします。ヘッダに格納されているすべてのテーブルは、自動的にローカルコーデックRAMにコピーされます。データファイルは32バイト入力FIFOを介してコーデックに送信され、デコードされたデータは32バイト出力FIFOを通じて使用できます。
エンコード中に、JPEGコーデックはJPEGヘッダを自動的に生成して、内部RAMコンテンツをJPEGヘッダにコピーします。出
力データ・ファイルは32バイト出力FIFOを介して送信され、ピクチャ・データは32バイト入力FIFOに送られます。

4

デコード･プロセス

5

完全なハードウェア･デコード･プロセス

01001110011110001000

JPEGコーデック
エントロピーデコーダ
FIFO

ヘッダ
プロセッシング

アップデート
テーブル
&レジスタ

ハフマン
デコーダ

ADPCM
(DC)

並べ替え
(ジグザグ)

非量子化

内部コーデックRAMに格納されている
テーブル

量子化
テーブル

iDCT

FIFO

RLE
(AC)

ハフマン
テーブル
4つまで (YとC*DCとAC)

2つまで (YおよびCの場合)

デコード処理は、JPEGベースラインアルゴリズムに従います。
ファイルデータは入力FIFOに送信されます。ファイルヘッダが解析され、対応する内部RAMテーブルが更新されます。ヘッダが解析されると、割込みを発生させることができます。圧縮されたデータはエントロピーデコーダを介して送信され、ジグザグの順序を使用して8%、8最小符号化単位(MCUs)を生成します。結果として得られる8x8テーブルは、逆DCT(iDCT)を通じて元の画像データに非量子化され、変換されます。

5

エンコード･プロセス

6

完全なハードウェア・エンコーディング・プロセス

01001110011110001000

JPEGコーデック
エントロピー･エンコーダ
FIFO

DCT

量子化

並べ替え
(ジグザグ)

ADPCM
(DC)
RLE
(AC)

量子化
テーブル
2つまで (YおよびCの場合)

内部コーデックRAMに格納されている
テーブル

ハフマン
エンコーダ

ハフマンテーブル

ヘッダ生成

FIFO

テーブル
&レジスタ

4つまで (YとC*DCとAC)

エンコード処理は、デコード処理と同様の方法で動作します。
ヘッダを生成する必要がある場合、内部テーブルは関連するJPEGマーカーを使用して出力FIFOにコピーされます。
生成されると、圧縮する画像データは8x8ピクセルブロックで入力FIFOを介して送信されます。元のデータはDCTを介して変換され、結果の行列はユーザーがプログラムした定量化テーブルのおかげで定量化されます。
変換された8x8のテーブルは、ジグザグ・アルゴリズムを使用してビットストリームとして送信されます。その後、データはエント
ロピーエンコーダーによって処理され、圧縮ストリームは出力
FIFOを介して送信されます。

6

割込みとDMA
割込みイベント

7

説明

入力FIFOしきい値

入力FIFOしきい値に達した

入力FIFOノットフル

入力FIFOがフルでない場合、少なくとも32ビット値は書き込み可能

出力FIFOしきい値

出力FIFOしきい値に達した

出力FIFOノットエンプティ

出力FIFOがエンプティの場合、少なくとも32ビット値を読み出すことが可能

変換終了

JPEG処理が終了

ヘッダ解析終了

ヘッダ解析の終了

DMA要求はFIFOしきい値イベントで生成可能

JPEGコーデックには6つの割込みソースがあります。
入力FIFOしきい値および入力FIFOノットフルフラグは、CPUま
たはDMAのいずれかによって入力FIFOを管理するために使用されます。
出力FIFOしきい値および出力FIFOノットエンプティフラグは、CPUまたはDMAのいずれかによって出力FIFOを管理するために使用されます。
変換終了フラグは、JPEGプロセスの終了を示します。
ヘッダ解析終了フラグは、ヘッダの解析操作の終了を示します。

7

低電力モード
モード

8

説明

RUN

アクティブ

SLEEP

アクティブ
ペリフェラルの割込みにより、デバイスはSLEEPモードを終了

STOP

停止
ペリフェラル･レジスタの内容は保持される

STANDBY

パワーダウン
STANDBYモードを終了した後、ペリフェラルを再初期化する必要がある

JPEGコーデックは、RUNモードとSLEEPモードでアクティブになります。JPEGコーデック割込みにより、デバイスがSLEEPモードを終了する可能性があります。STOPモードでは、JPEGコーデックが停止し、レジスタの内容が保持されます。
STANDBYモードでは、JPEGコーデックの電源がオフになり、後で再初期化する必要があります。

8

アプリケーションの例

9• 通信機能およびHMIを含む家電製品:
BTモジュール

UART

DSI

シリアルFlash

QuadSPI

I2C

ディスプレイ

タッチパネル

STM32H7
ボタン

I/O

SDRAM

FMC

I2S

JPEG

タイマ

オーディオコーデック
モーター• JPEGコーデックは圧縮可能• HMI用JPEG画像• チュートリアル再生のためのM-JPEGビデオ

ウェアラブルアプリケーションには、高品質のユーザーインタ
フェースと共に低電力管理機能が必要です。この範囲では、JPEGコーデックを使用して、圧縮された背景画像やユーザーの画像をデコードしたり、チュートリアル用の特定のビデオを再生したりすることもできます。

9関連するペリフェラル

10• この周辺機器にリンクされているこれらのトレーニングを参照ください• RCC(JPEG・クロック・コントロール、JPEGイネーブル/リセット)• 割込み(JPEG割込みマッピング)• DMA(JPEGデータ転送)

RCC、割込み、DMA、GPIOに関連するトレーニングスライドを参照し、追加情報を確認できます。

10

参照

11

• 詳細は、以下を参照ください:• ISO/IEC 10918-1 standard

詳細は、ISO/IEC 10918-1規格をご参照ください。

11