# SSP_StartJpegDecoderFast

## 構文

    BOOL SSP_StartJpegDecoderFast(SSPJpegDecoderFastContext* pCtx, u8* data, u32 size, void* dst, u32 maxWidth, u32 maxHeight, u32 option);

## 引数

pCtx | コンテキスト構造体。4バイトアライメントされている必要があります。
data | デコードするJPEGファイル
size | デコードするJPEGファイルのサイズ
dst | デコードした画像を格納するバッファ width * height * 2 のサイズのバッファが必要となり、4バイトアライメントされている必要があります。
maxWidth | デコードを許す画像の最大横幅(pixel)を指定する。 デコード完了後は、pCtx->width にデコードした画像の横幅が格納されている。
maxHeight | デコードを許す画像の最大縦幅(pixel)を指定する。 デコード完了後は、pCtx->height デコードした画像の縦幅が格納されている。
option | デコードオプション (SSP_JPEG_RGB555, SSP_JPEG_THUMBNAIL) `SSP_JPEG_RGB555` は必ず指定する必要があります。

## 返り値

成功ならば、TRUE を返します。
失敗した場合、pCtx->errorCodeに `SSPJpegDecoderErrorCode` 型のエラーコードが格納されます。

## 説明

JPEGファイルを RGB555 形式の画像データにデコードします。
デコードできるJPEGファイルは YUV420、YUV422、YUV444 のものに限られます。
本関数は `SSP_StartJpegDecoder()` よりも高速にデコード処理を行うことができますが、 画像サイズが8ピクセルあるいは16ピクセルの倍数である必要があります。
また、いくつかの点で `SSP_StartJpegDecoder()` と違いがあります。

- 作業用バッファを pCtx として渡す必要があります。このコンテキスト構造体はサイズが大きいため、ローカル変数のようにスタックから領域を確保しないようにしてください。
- デコードされた画像の縦横サイズは、コンテキスト構造体のメンバに代入されて返ってきます。pCtx->width, pCtx->height から取得するようにしてください。
- デコードオプションに `SSP_JPEG_RGB555` を指定することが必須となります。

option に SSP_JPEG_THUMBNAIL を指定した場合はサムネイル画像のデコードを行い、指定しなかった場合(`SSP_JPEG_RGB555` のみを指定した場合)は、メイン画像のデコードを行います。
注意：
本デコーダは、SSPのエンコーダを使用して作成されたJPEGファイルのデコードのみを保障しています。
その他のソフトウェアで作成されたJPEGファイルでは一部デコードできないものもありますのでご注意ください。
よくあるパターンとして、付加されている EXIF 情報によってデコードに失敗する場合があります。
その際は、EXIF 情報を省く等の画像側での対応をお願いします。

## 参照

`SSPJpegDecoderErrorCode`

## 履歴

2009/09/17 デコードが失敗するJPEGファイルについて追記
2009/07/28 option の指定についての説明修正
2009/06/23 初版