SSP_StartJpegEncoder

構文


u32 SSP_StartJpegEncoder(const void* src, u8 *dst, u32 limit, u8 *wrk, u32 width, u32 height, u32 quality, u32 sampling, u32 option);

引数

src エンコードする画像データ (RGB555 もしくは YUV422)。4バイトアライメントでなければなりません。
dst エンコード結果を格納するバッファ
limit dstのサイズ
このサイズを超えるとエンコードに失敗します。
wrk 作業用バッファ。4バイトアライメントでなければなりません。
SSP_GetJpegEncoderBufferSize()で必要なサイズが計算できます。
width エンコードする画像の横幅(pixel)
height エンコードする画像の縦幅(pixel)
quality エンコードのクオリティ
1〜100 まで指定可能であり、100 に近づくほど高画質になりサイズが大きくなります。
sampling 主画像の出力形式 (SSP_JPEG_OUTPUT_YUV444 / SSP_JPEG_OUTPUT_YUV420 / SSP_JPEG_OUTPUT_YUV422)
option エンコードオプション (SSP_JPEG_RGB555 / SSP_JPEG_YUV422 / SSP_JPEG_THUMBNAIL)

返り値

成功ならば、生成されたJPEGファイルのサイズが返ってくる。
失敗した場合は 0 が返る。

説明

画像データをJPEGファイルにエンコードします。
エンコードする画像データは RGB555、YUV422 が使用できます。YUV422 の画像データを src に指定した場合は、必ず optionSSP_JPEG_YUV422 を指定するようにしてください。
サムネイル付きのエンコードを行いたい場合は、SSP_JPEG_THUMBNAILoption に指定する必要があります。
そのため、YUV422 の画像をサムネイル付きでエンコードする場合は、SSP_JPEG_YUV422|SSP_JPEG_THUMBNAILoption に指定します。

本関数でエンコードできる画像の縦横サイズは sampling の値によって変わります。
SSP_JPEG_OUTPUT_YUV444 を指定した場合は、縦横サイズがそれぞれ8の倍数である必要があります。
SSP_JPEG_OUTPUT_YUV420 を指定した場合は、縦横サイズがそれぞれ16の倍数である必要があります。
SSP_JPEG_OUTPUT_YUV422 を指定した場合は、縦サイズが8の倍数、横サイズが16の倍数である必要があります。

注意:
本関数は完了後にエンコードの成功、失敗問わず、SSP_SetJpegEncoderDateTime(),SSP_SetJpegEncoderDateTimeNow(),SSP_SetJpegEncoderMakerNote(),SSP_SetJpegEncoderMakerNoteEx() で設定した値はクリアされます。
また、本関数は事前に SSP_SetJpegEncoderDateTime() もしくは SSP_SetJpegEncoderDateTimeNow() を呼び出していない場合、内部で SSP_GetDateTime() が呼ばれます。

参照

SSP_SetJpegEncoderDateTime, SSP_SetJpegEncoderDateTimeNow, SSP_SetJpegEncoderMakerNote, SSP_SetJpegEncoderMakerNoteEx, SSP_GetDateTime, SSP_GetJpegEncoderBufferSize

履歴

2009/07/16 関数の内部動作にあった説明に変更
2009/04/28 アライメントの制限について追記
2008/11/04 関数の完了後にクリアされる値について追記
2008/10/15 エンコードできる画像の縦横サイズの制限について追記
2008/10/09 RSFファイルの設定について追記
2008/09/15 初版