アプリケーションノート: JPEG圧縮#
Operatorの機能に関する情報を取得できます。VisualAppletsデザインを使用して、JPEG圧縮アプリケーションが示されます。JPEGデータファイルを生成するSDKプロジェクトが提示されます。
VisualAppletsでのJPEG圧縮には2つのOperatorが必要です。これらは ImageBuffer_JPEG_Gray および JPEG_Encoder_Grayです。イメージバッファは、フレームグラバーのMemory内に画像データをバッファリングするために使用され、ピ特定のピクセルの並べ替えに使用されます。JPEGエンコーダは、JPEG圧縮自体を実行します。
JPEG圧縮には8x8ピクセルのブロックが使用されるため、ピクセルの並べ替えが必要です。次の図は、この並べ替えを示しています。
![]()
並べ替えられた画像は次のようになります。Operatorは、元の画像の画像寸法を維持します。
![]()
並べ替えの後、Operatorを使用してJPEG圧縮を実行できます JPEG_Encoder_Grayです。Operatorの出力は、JPEGヘッダーのないハフマンストリームです。圧縮率は、実行時に変更可能な選択された量子化テーブルによって異なります。ハフマン符号化には、標準の輝度テーブルが使用されます。
Operatorドキュメント
パラメータ、入力リンク、およびオペレータ機能の詳細については、オペレータリファレンスを参照してください。
JPEG圧縮デザインの例#
次のデザイン例は、JPEG圧縮を実行するVisualAppletsデザインを示しています。このデザインは、次の仕様を満たす必要があります。
- Camera Linkベースエリアカメラから画像を取得します。
- 画像データをバッファリングし、JPEG圧縮を実行します。
- ソフトウェアで画像にJPEGヘッダーを追加し、選択した画像をファイルに書き込みます。
- カメラの画像高さは一定ではありません。変動する画像の高さをJPEGヘッダーに追加する必要があります。
VisualAppletsデザイン#
仕様を満たすために、次のデザインが使用されます。

このシンプルなデザインで、すべての仕様を満たすのに十分です。画像はベースエリアカメラオペレーターを使用して取り込まれます。次に、画像は2つのパスに分割されます。最初のパスでは画像をバッファリングし、ImageBuffer_JPEG_Gray オペレーターを使用してピクセルの並べ替えを実行します。その後、JPEG_Encoder_Gray を使用してJPEG圧縮を行います。JPEGデータストリームは、DMAチャネルを介してホストPCの Memory に転送されます。2番目のパスでは、元の画像データがバッファリングされ、2つ目のDMAチャネルを使用してホストPCに転送されます。
VisualAppletsデザインのシミュレーション#
デザインは完全にシミュレーション可能です。データリンクにシミュレーションソースとプローブを配置することで、JPEG圧縮のそれぞれのステップをモニタリングできます。下の図は、シミュレーションモジュールを備えたデザインを示しています。示されているように、元の画像のピクセル(simModule0)が並べ替えられ(simModule1)、JPEGデータストリームが生成されます(simModule2)。

JPEGデータを確認すると、ストリームの長さを判断できます(下の図を参照)。JPEGエンコーダーの Quality が変更された場合、データ長もそれに応じて変化します。

microDisplayでのランタイムテスト#
JPEG Encoderを含むアプレットは、microDisplayで直接使用できます。この例では、アプレットにより、各DMAチャネルに対して1つの画像ウィンドウが生成されます。DMA番号1には取り込まれた元の画像が表示され、最初のDMAチャネルにはエンコードされた画像データとDMA長が表示されます。

JPEGファイル生成用SDKプロジェクト#
この例のデザインファイルとSDKのサンプルプロジェクトは、次のフォルダにあります。 examples\processing\advanced\JPEG\JPEG_gray VisualAppletsのインストールパス内。
SDKプロジェクトは基本的に、元の画像とJPEGデータを取得します。元の画像はそのままディスプレイに出力されます。JPEGヘッダーが生成され、JPEGデータに追加されます。これにより、JPEGファイルが完成します。ユーザーは、JPEGスナップショットをファイルに書き込むことができます。さらに、エンコードされたJPEGデータは、シンプルなCコードデコーダーを使用してデコードされます。 nanojpeg。デコードされた画像が表示されます。
ユーザーは、画像のサイズ変更、JPEGの Quality 変更、JPEGスナップショットファイルの書き込み、またはJPEGデータ16進ファイルダンプの書き込みを行うことができます。
ヘッダーの生成はあくまで一例であることに注意してください。Visual AppletsのJPEGオペレーターのユーザーは、それぞれのアプリケーションに合わせた独自のヘッダー生成プログラムを作成する必要があります。
JPEGデコーダー情報:
NanoJPEG -- KeyJ's Tiny Baseline JPEG Decoder
Version 1.0 (2009-04-29)
by Martin J. Fiedler <martin.fiedler@gmx.net>