アプリケーションノート

RX ファミリJPEG デコーダ モジュール

R20AN0104JJ0206
Rev.2.06
2016.04.01

Firmware Integration Technology
要旨
本仕様では、RX ファミリ用 JPEG デコーダ(以下、JPEGD と略します)の使用方法について記載しています。
JPEG デコーダはデコード専用で、以下の 2 つのライブラリがあります。
• JPEG デコードライブラリ:• JPEG ファイル伸張ライブラリ:

逆 DCT、逆量子化、ハフマン復号化
JPEG デコードライブラリを用いて JPEG 画像を伸張するライブラリ

JPEG ファイル伸張ライブラリはソースコードが付属します。ユーザの用途に合わせて変更してください。

JPEGD は、Firmware Integration Technology(FIT)モジュールとして提供されます。FIT の概念については以下 URL を参照してください。
http://japan.renesas.com/products/mpumcu/rx/child/fit.jsp

動作確認デバイス
RX ファミリR20AN0104JJ0206
2016.04.01

Rev.2.06

Page 1 of 14

RX ファミリ

JPEG デコーダ モジュール
Firmware Integration Technology

目次1.

製品構成 ...........................................................................................................................32.

ライブラリ仕様 ................................................................................................................42.1

構成 ............................................................................................................................................... 42.2

JPEG ファイル伸張ライブラリの仕様 ......................................................................................... 42.3

開発環境 ........................................................................................................................................ 5

2.4

API 関数 ........................................................................................................................................ 6

2.5

ROM/RAM/スタックサイズ........................................................................................................... 72.6

バージョン情報 ............................................................................................................................. 92.6.1

RX600 (little endian) ............................................................................................................... 92.6.2

RX600 (big endian) ................................................................................................................. 92.6.3

RX200 (little endian) ............................................................................................................. 10

2.6.4

RX200 (big endian) ............................................................................................................... 10

3.

ライブラリの使用方法.................................................................................................... 113.1

JPEG ファイル伸張ライブラリを使用する場合 ......................................................................... 113.2

JPEG デコードライブラリを使用する場合 ................................................................................ 114.

注意事項 ......................................................................................................................... 125.

ソフトウェア更新履歴.................................................................................................... 13

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 2 of 14

RX ファミリ
1.

JPEG デコーダ モジュール
Firmware Integration Technology

製品構成

パッケージ名:RX ファミリ用 JPEG デコーダ V.2.06 Release 00

表 1.1 JPEG デコーダの製品構成
ファイル/ディレクトリ名
内容
JPEGD FIT Module (r_jpegd_rx_v.2.06.zip)
JPEGD コンフィグ (r_config)
r_jpegd_rx_config.h
JPEGD コンフィグファイル(デフォルト設定)
JPEGD FIT Module 本体 (r_jpegd_rx)
JPEGD ドキュメント(doc)
日本語版(ja)
r20an0104jj0206_rx_jpegd.pdf
導入ガイド（本書）
r20uw0075jj0103_jpegd.pdf
ユーザーズマニュアル
英語版(en)r20an0104ej0206_rx_jpegd.pdf
導入ガイド
r20uw0075ej0103_jpegd.pdf
ユーザーズマニュアル
JPEGD ライブラリ(lib)jpegd_rx600_little.lib
JPEG デコードライブラリ
jpegd_rx600_big.lib
jpegd_rx200_little.lib
jpegd_rx200_big.lib
r_jpegd.h
expand_jpegd_rx600_little.lib
JPEG ファイル伸張ライブラリ
expand_jpegd_rx600_big.lib
expand_jpegd_rx200_little.lib
expand_jpegd_rx200_big.lib
r_expand_jpegd.hr_stdint.h
型定義ヘッダファイル
r_mw_version.h
バージョン情報ヘッダファイル
JPEG ファイル伸張ライブラリ生成環境(make_lib)
make_lib.zip
JPEG ファイル伸張ライブラリ生成環境
JPEGD コンフィグリファレンス(ref)r_jpegd_rx_config_reference.h
JPEGD コンフィグファイル(テンプレート)
readme(readme.txt)
readmeR20AN0104JJ0206
2016.04.01

Rev.2.06

Page 3 of 14

RX ファミリ

JPEG デコーダ モジュール
Firmware Integration Technologyライブラリ仕様

2.
2.1

構成

JPEG デコーダのソフトウェア構成を以下に示します。

ユーザーアプリケーション

入出力データ情報の指定

画像情報

JPEG デコーダ
RAM

JPEG ファイル伸張ライブラリ

JPEG ファイル(フレームバッファなど)
RGB565

JPEG デコードライブラリ

図 2.1 JPEG 伸張の構成

2.2

JPEG ファイル伸張ライブラリの仕様

JPEG ファイル伸張ライブラリの仕様は以下のとおりです。
表 2.1 JPEG ファイル伸張ライブラリの仕様
項目
色要素
サンプル比

出力フォーマット
入力データの読み込み伸張のクリッピング
プログレッシブ
Exif

R20AN0104JJ0206
2016.04.01

Rev.2.06

仕様
3 色(YCbCr)
4:4:4 (1x1,1x1,1x1)
4:2:2 (2x1,1x1,1x1)
4:2:2 垂直 (1x2,1x1,1x1)
4:2:0 (2x2,1x1,1x1)
RGB565 (16bit color)
一括読み込み（分割読み込み不可）
非対応（全て伸張します）
非対応
非対応

Page 4 of 14

RX ファミリ
2.3

JPEG デコーダ モジュール
Firmware Integration Technology

開発環境

以下の開発環境で動作します。
[統合開発環境]CS+ for CC V3.03.00
e2 studio V4.2.0.012[C コンパイラ]
C/C++ Compiler Package for RX Family V.1.02 Release 01 以降
ライブラリは以下のオプション（デフォルト）で生成されています。
[RX600 リトルエンディアン]-cpu=rx600 -output=obj="$(CONFIGDIR)¥$(FILELEAF).obj" -nologo[RX600 ビッグエンディアン]
上記に加えて -endian=big を設定[RX200 リトルエンディアン]-cpu=rx200 -output=obj="$(CONFIGDIR)¥$(FILELEAF).obj" -nologo[RX200 ビッグエンディアン]
上記に加えて -endian=big を設定

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 5 of 14

RX ファミリ
2.4

JPEG デコーダ モジュール
Firmware Integration Technology

API 関数JPEG ファイル伸張ライブラリの API 関数は以下のとおりです。
表 2.2 API 関数(JPEG ファイル伸張ライブラリ)
関数名
R_init_jpeg
ライブラリの初期化R_expand_jpeg
伸張処理
R_get_info_jpeg
画像情報の取得【注】 詳細はユーザーズマニュアルを参照ください。

機能概要

JPEG デコードライブラリの API 関数は以下のとおりです。
表 2.3 API 関数(JPEG デコードライブラリ)
機能概要
関数名
R_jpeg_make_huff_table
ハフマン符号テーブルの登録
R_jpeg_add_iquant_table
量子化テーブルの登録
R_jpeg_decode_one_block
ハフマン符号化
R_jpeg_IDCT
逆量子化と逆 DCT
R_jpeg_readRST
符号化再初期化間隔番号の検出【注】 詳細はユーザーズマニュアルを参照ください。

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 6 of 14

RX ファミリ
2.5

JPEG デコーダ モジュール
Firmware Integration Technology

ROM/RAM/スタックサイズ

JPEG デコーダが使用する ROM/RAM/スタックサイズは以下のとおりです。
表 2.4 ROM/RAM サイズ(JPEG ファイル伸張ライブラリ)
分類

セクション名ROM

P_jpeg_exp_F (*)
P_jpeg_exp_S
C_jpeg_exp_F (*)
C_jpeg_exp_S
合計 -属性, アライメント数

code
code
data, align=4data, align=4-

RAM

B_jpeg_exp_F (*)
data, align=4
B_jpeg_exp_F_2 (*) data, align=2
B_jpeg_exp_S
data, align=4
B_jpeg_exp_S_2
data, align=2
合計 【注】 (*): 高速メモリに配置することを推奨します。

サイズ [byte]
RX600, RX200
little endian
4040
3327
86448019

RX600, RX200
big endian
4040
3330
8644
80225424
67245424
672455065506

表 2.5 ROM/RAM サイズ(JPEG デコードライブラリ)
分類

セクション名ROM

P_jpeg_dec_F8 (*)
P_jpeg_dec_S
C_jpeg_dec_F (*)
C_jpeg_dec_F_2 (*)
C_jpeg_dec_S
合計 -RAM

属性, アライメント数

code, align=8code
data, align=4data, align=2data, align=4-

合計 【注】 (*): 高速メモリに配置することを推奨します。

R20AN0104JJ0206
2016.04.01

Rev.2.06

サイズ [byte]
RX600, RX200
little endian2982
48412841324384

RX600, RX200
big endian2981
484128413243850000

Page 7 of 14

RX ファミリ

JPEG デコーダ モジュール
Firmware Integration Technology
表 2.6 スタックサイズ(JPEG ファイル伸張ライブラリ)

API 関数名

スタックサイズ [byte]
RX600, RX200
little endian

R_init_jpeg
R_expand_jpeg
R_get_info_jpeg

4228
56

RX600, RX200
big endian422856

表 2.7 スタックサイズ(JPEG デコードライブラリ)
API 関数名

スタックサイズ [byte]
RX600, RX200
little endian

R_jpeg_make_huff_table
R_jpeg_add_iquant_table
R_jpeg_decode_one_block
R_jpeg_IDCT
R_jpeg_readRST

R20AN0104JJ0206
2016.04.01

Rev.2.06

52
86464
16

RX600, RX200
big endian
5286464
16

Page 8 of 14

RX ファミリ
2.6

JPEG デコーダ モジュール
Firmware Integration Technology

バージョン情報

本ライブラリにはバージョン情報が格納されています。本ライブラリのヘッダをインクルードするとバージョン情報にアクセスできます。本ライブラリに格納されているデータは以下の通りです。

2.6.1

RX600 (little endian)

JPEG ファイル伸張ライブラリ (expand_jpegd_rx600_little.lib)#include "r_expand_jpegd.h"
ライブラリバージョン情報
R_expand_jpegd_version.library[] ="JPEG File Expand Library version 1.03 for the RX600 LITTLE endian.(Apr 11 2013, 16:18:02)"
コンパイラバージョン情報
R_expand_jpegd_version.complier = 0x01020100

JPEG デコードライブラリ (jpegd_rx600_little.lib)#include "r_jpegd.h"
ライブラリバージョン情報
R_jpegd_version.library[] ="JPEG Decode Library version 2.06 for the RX600 LITTLE endian.(Feb 18 2016, 17:15:41)"
コンパイラバージョン情報R_jpegd_version.complier = 0x01020100

2.6.2RX600 (big endian)

JPEG ファイル伸張ライブラリ (expand_jpegd_rx600_big.lib)#include "r_expand_jpegd.h"
ライブラリバージョン情報
R_expand_jpegd_version.library[] ="JPEG File Expand Library version 1.03 for the RX600 BIG endian.(Apr 11 2013, 16:17:58)"
コンパイラバージョン情報
R_expand_jpegd_version.complier = 0x01020100

JPEG デコードライブラリ (jpegd_rx600_big.lib)#include "r_jpegd.h"
ライブラリバージョン情報
R_jpegd_version.library[] ="JPEG Decode Library version 2.06 for the RX600 BIG endian.(Feb 18 2016, 17:15:52)"
コンパイラバージョン情報R_jpegd_version.complier = 0x01020100

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 9 of 14

RX ファミリ
2.6.3

JPEG デコーダ モジュール
Firmware Integration Technology

RX200 (little endian)

JPEG ファイル伸張ライブラリ (expand_jpegd_rx200_little.lib)#include "r_expand_jpegd.h"
ライブラリバージョン情報
R_expand_jpegd_version.library[] ="JPEG File Expand Library version 1.03 for the RX200 LITTLE endian.(Apr 11 2013, 16:17:55)"
コンパイラバージョン情報
R_expand_jpegd_version.complier = 0x01020100

JPEG デコードライブラリ (jpegd_rx200_little.lib)#include "r_jpegd.h"
ライブラリバージョン情報
R_jpegd_version.library[] ="JPEG Decode Library version 2.06 for the RX200 LITTLE endian.(Feb 18 2016, 17:15:58)"
コンパイラバージョン情報
R_jpegd_version.complier = 0x01020100

2.6.4RX200 (big endian)

JPEG ファイル伸張ライブラリ (expand_jpegd_rx200_big.lib)#include "r_expand_jpegd.h"
ライブラリバージョン情報
R_expand_jpegd_version.library[] ="JPEG File Expand Library version 1.03 for the RX200 BIG endian.(Apr 11 2013, 16:17:51)"
コンパイラバージョン情報
R_expand_jpegd_version.complier = 0x01020100

JPEG デコードライブラリ (jpegd_rx200_big.lib)#include "r_jpegd.h"
ライブラリバージョン情報
R_jpegd_version.library[] ="JPEG Decode Library version 2.06 for the RX200 BIG endian.(Feb 18 2016, 17:16:06)"
コンパイラバージョン情報
R_jpegd_version.complier = 0x01020100

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 10 of 14

RX ファミリ3.
3.1

JPEG デコーダ モジュール
Firmware Integration Technology

ライブラリの使用方法
JPEG ファイル伸張ライブラリを使用する場合

エンディアンに応じて以下のライブラリをリンクしてください。
RX600 リトルエンディアン:

jpegd_rx600_little.lib, expand_jpegd_rx600_little.lib

RX600 ビッグエンディアン:

jpegd_rx600_big.lib, expand_jpegd_rx600_big.lib

RX200 リトルエンディアン:

jpegd_rx200_little.lib, expand_jpegd_rx200_little.lib

RX200 ビッグエンディアン:

jpegd_rx200_big.lib, expand_jpegd_rx200_big.lib

ライブラリを使用するファイルでは以下のヘッダファイルをインクルードしてください。
#include "r_expand_jpegd.h"

3.2

JPEG デコードライブラリを使用する場合エンディアンに応じて以下のライブラリをリンクしてください。
RX600 リトルエンディアン:

jpegd_rx600_little.lib

RX600 ビッグエンディアン:

jpegd_rx600_big.lib

RX200 リトルエンディアン:

jpegd_rx200_little.lib

RX200 ビッグエンディアン:

jpegd_rx200_big.lib

ライブラリを使用するファイルでは以下のヘッダファイルをインクルードしてください。
#include "r_jpegd.h"

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 11 of 14

RX ファミリ
4.

JPEG デコーダ モジュール
Firmware Integration Technology

注意事項• 本ライブラリは、DSP 機能命令を使用しています。アキュムレータ(以降 ACC)の内容が書き換わる割り込み関数では、 ACC の退避/回復を行ってください（RX600 用ライブラリ）。
• 本ライブラリは、マイコンオプション fint_register=0 (高速割り込み専用レジスタ [なし]) で使用してください。本オプションの省略時解釈は、fint_register=0 です。
• 本ライブラリは、YCbCr から RGB の変換にアプリケーションノート "DSP 機能命令を活用した色空間変換" [R01AN0225JJ0100]のプログラムを使用しています。詳しくはアプリケーションノートを参照してください。

R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 12 of 14

RX ファミリ
5.

JPEG デコーダ モジュール
Firmware Integration Technology

ソフトウェア更新履歴

パッケージバージョン
V.2.01 Release 00
V.2.03 Release 00

発行日
2011.06.17
2012.10.15

V.2.04 Release 00

2013.06.28

V.2.05 Release 00

2015.03.17

新規リリース
RX200 に対応しました。
RX600 用のライブラリでは、RGB 変換に DSP 機能命令を使用するようにしました。
ビッグエンディアンで正しくデコードできない不具合を修正しました。
JPEG ファイル解析時のエラーチェックを強化しました。
JPEG デコードライブラリの処理速度を改善しました。
FIT に対応しました。

V.2.06 Release 00

2016.04.01

xml ファイル変更の為、バージョン番号を更新しました。

R20AN0104JJ0206
2016.04.01

Rev.2.06

改訂内容

Page 13 of 14

RX ファミリ

JPEG デコーダ モジュール
Firmware Integration Technology

ホームページとサポート窓口
ルネサス エレクトロニクスホームページ
http://japan.renesas.com/
お問合せ先
http://japan.renesas.com/contact/

すべての商標および登録商標は，それぞれの所有者に帰属します。
R20AN0104JJ0206
2016.04.01

Rev.2.06

Page 14 of 14

改訂記録
Rev.
1.00
1.01
1.02

発行日
2011.06.06
2012.05.15
2012.10.16

ページ
—
—
—

1.03

2013.04.26

—

2.05
2.06

2015.03.17
2016.04.01

—
—

改訂内容
ポイント
初版発行
RX200 に対応しました。
ライブラリ情報の更新
誤記修正
使用するセクションを変更しました。
バージョン情報の書式が変わりました。
FIT 対応しました。
FIT 用 xml ファイルを更新しました。

A-1

製品ご使用上の注意事項
ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意事項については、本ドキュメントおよびテクニカルアップデートを参照してください。
1. 未使用端子の処理【注意】未使用端子は、本文の「未使用端子の処理」に従って処理してください。
CMOS製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっています。未使用端子を開放状態で動作させると、誘導現象により、LSI周辺のノイズが印加され、LSI内部で貫通電流が流れたり、入力信号と認識されて誤動作を起こす恐れがあります。未使用端子は、本文「未使用端子の処理」で説明する指示に従い処理してください。
2. 電源投入時の処置【注意】電源投入時は，製品の状態は不定です。
電源投入時には、LSIの内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定です。
外部リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子の状態は保証できません。
同様に、内蔵パワーオンリセット機能を使用してリセットする製品の場合、電源投入からリセットのかかる一定電圧に達するまでの期間、端子の状態は保証できません。
3. リザーブアドレス（予約領域）のアクセス禁止【注意】リザーブアドレス（予約領域）のアクセスを禁止します。
アドレス領域には、将来の機能拡張用に割り付けられているリザーブアドレス（予約領域）があります。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしないようにしてください。
4. クロックについて【注意】リセット時は、クロックが安定した後、リセットを解除してください。
プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した後に切り替えてください。
リセット時、外部発振子（または外部発振回路）を用いたクロックで動作を開始するシステムでは、クロックが十分安定した後、リセットを解除してください。また、プログラムの途中で外部発振子（または外部発振回路）を用いたクロックに切り替える場合は、切り替え先のクロックが十分安定してから切り替えてください。
5. 製品間の相違について【注意】型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してください。
同じグループのマイコンでも型名が違うと、内部ROM、レイアウトパターンの相違などにより、電気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ輻射量などが異なる場合があります。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。

ご注意書き1. 本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。お客様の機器・システムの設計において、回路、ソフトウェアおよびこれらに関連する情報を使用する場合には、お客様の責任において行ってください。これらの使用に起因して、お客様または第三者に生じた損害に関し、当社は、一切その責任を負いません。
2. 本資料に記載されている情報は、正確を期すため慎重に作成したものですが、誤りがないことを保証するものではありません。万一、本資料に記載されている情報の誤りに起因する損害がお客様に生じた場合においても、当社は、一切その責任を負いません。
3. 本資料に記載された製品デ－タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、著作権その他の知的財産権に対する侵害に関し、当社は、何らの責任を負うものではありません。当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許諾するものではありません。
4. 当社製品を改造、改変、複製等しないでください。かかる改造、改変、複製等により生じた損害に関し、当社は、一切その責任を負いません。
5. 当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、各品質水準は、以下に示す用途に製品が使用されることを意図しております。
標準水準：

コンピュータ、OA機器、通信機器、計測機器、AV機器、家電、工作機械、パーソナル機器、産業用ロボット等

高品質水準：輸送機器（自動車、電車、船舶等）、交通用信号機器、防災・防犯装置、各種安全装置等
当社製品は、直接生命・身体に危害を及ぼす可能性のある機器・システム（生命維持装置、人体に埋め込み使用するもの等） 、もしくは多大な物的損害を発生させるおそれのある機器・システム（原子力制御システム、軍事機器等）に使用されることを意図しておらず、使用することはできません。 たとえ、意図しない用途に当社製品を使用したことによりお客様または第三者に損害が生じても、当社は一切その責任を負いません。 なお、ご不明点がある場合は、当社営業にお問い合わせください。
6. 当社製品をご使用の際は、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他の保証範囲内でご使用ください。当社保証範囲を超えて当社製品をご使用された場合の故障および事故につきましては、当社は、一切その責任を負いません。
7. 当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする場合があります。また、当社製品は耐放射線設計については行っておりません。当社製品の故障または誤動作が生じた場合も、人身事故、火災事故、社会的損害等を生じさせないよう、お客様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証を行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行ってください。
8. 当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用を規制するRoHS指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。お客様がかかる法令を遵守しないことにより生じた損害に関して、当社は、一切その責任を負いません。
9. 本資料に記載されている当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。また、当社製品および技術を大量破壊兵器の開発等の目的、軍事利用の目的その他軍事用途に使用しないでください。当社製品または技術を輸出する場合は、「外国為替及び外国貿易法」その他輸出関連法令を遵守し、かかる法令の定めるところにより必要な手続を行ってください。
10. お客様の転売等により、本ご注意書き記載の諸条件に抵触して当社製品が使用され、その使用から損害が生じた場合、当社は何らの責任も負わず、お客様にてご負担して頂きますのでご了承ください。
11. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。
注1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社がその総株主の議決権の過半数を直接または間接に保有する会社をいいます。
注2. 本資料において使用されている「当社製品」とは、注１において定義された当社の開発、製造製品をいいます。

http://www.renesas.com■営業お問合せ窓口※営業お問合せ窓口の住所は変更になることがあります。最新情報につきましては、弊社ホームページをご覧ください。

ルネサス エレクトロニクス株式会社〒135-0061 東京都江東区豊洲3-2-24（豊洲フォレシア）■技術的なお問合せおよび資料のご請求は下記へどうぞ。
総合お問合せ窓口：http://japan.renesas.com/contact/© 2016 Renesas Electronics Corporation. All rights reserved.
Colophon 4.0