...

CPUコアを検証時に 活用して開発期間を短縮 CPUコアを検証時に 活用

by user

on
Category: Documents
7

views

Report

Comments

Transcript

CPUコアを検証時に 活用して開発期間を短縮 CPUコアを検証時に 活用
第4章
CPUコアを検証時に
活用して開発期間を短縮
JPEGエンコーダ回路の設計・検証
石田通彰
ここでは,FPGA を用いた JPEG エンコーダ回路の開発事例を
のではないでしょうか.近い将来,組み込みプロセッサの
取り上げる.画像処理のように扱うデータ量が多い回路の検証
性能がさらに向上したり,あるいは高速アルゴリズムが発
では,テストベンチが巨大になり,シミュレーションに膨大な
見されるなどして,VGA サイズで 100 フレーム/s でもソ
時間が必要になる.また,カメラからの入力のように逐次変化
フトウェアで実現できる時代が来るかもしれません.しか
するデータを扱う場合,実機による検証では処理するデータが
しそのときには,より大きな画像への需要が増えているで
毎回異なるため,処理の妥当性の判断がしにくくなる問題があ
しょう.大きな画像では,やはりハードウェア処理が求め
る.そこで筆者は,汎用の FPGA ボードとソフト・マクロの
られます.
CPU を活用した設計・検証環境を作り上げた.開発期間の短
縮に大きな効果があったという.
(編集部)
筆者は,ネットワーク対応の監視カメラ向けに JPEG エ
ンコーダの開発を行いました.カメラ側でエンコード処理,
パソコン側でデコード処理を行うシステム構成です.FPGA
今では JPEG(Joint Photographic Experts Group)を応
用した製品がいたるところにあふれています.ディジタ
ル・カメラや携帯電話などの民生機器,複写機やプリンタ
などの OA(office automation)機器,外観検査装置や分析
ディジタル・
カメラ
携帯電話
装置などの FA(factory automation)機器,医療機器など
JPEGパケット
です.まさに,
「静止画あるところに JPEG あり」という感
ビデオ・
カメラ
さえあります(図 1).
JPEG では,静止画のデータ・サイズをおおむね 1/10 ∼
JPEGパケット
1/100 程度に圧縮できます.そこで,データの保存や通信
LAN
の際にデータ圧縮(エンコード処理)を行います.データの
復元(デコード処理)は,エンコード処理を行った機器が行
マルチファンクション・
プリンタ
ハブ
う場合と,別の機器が行う場合があります.
JPEG のエンコード処理とデコード処理は,組み込みプ
ロセッサのソフトウェアで実現する場合と,ハードウェア
外観検査装置
パソコン
外観検査装置
を用いる場合があります.システム構成や性能によります
図1
が,VGA(640 × 480 画素)サイズで 15 フレーム/s 以上の
ディジタル・カメラや携帯電話などの民生機器,複写機やプリンタなどの
OA 機器,外観検査装置や分析装置などの FA 機器,医療機器などで,JPEG
がよく使われている.
処理を行おうとすると,現行ではハードウェア処理になる
KeyWord
JPEG を応用した製品
JPEG エンコーダ,FPGA,CPU,離散コサイン変換,2 次元ハフマン符号化,2 ポート・レジスタ
Design Wave Magazine 2006 November
71
4
(field programmable gate array)を使用してVGA サイズ
で 30 フレーム/s 以上を実現することを目ざしました.
の規格書である ISO/IEC 10918-1 や Thomas G. Lane 氏の
ソース・コード注 1 を使用しました.
JPEG の処理手順に関しては,教科書などで数多く取り
上げられています.そこで,今回はエッセンスのみ簡単に
1.JPEG エンコーダの開発
おさらいしたいと思います.
論理回路の一般的な開発フローを図 2 に示します.
図 3 は JPEG の規格書に掲載されているエンコーダのブ
ロック図です.
● アルゴリズムの調査と検証
エンコード処理は,8 × 8 画素のブロックを処理単位と
最初にアルゴリズムを理解しなければなりません.JPEG
エンコーダの開発におけるアルゴリズムの調査では,JPEG
しています.周波数空間への変換には,離散コサイン変換
(DCT : discrete cosine transform)を用います.
自然画像では画像の低周波成分が大きく,高周波成分は
小さい特徴があります.また,高周波成分のノイズは人間
の目にはわかりにくいものです.そこで,低周波成分に比
開発開始
べ,高周波成分は荒く量子化します.
データ量を小さくするために,DC 成分については前のブ
アルゴリズムの調査
ロックとの差分値をハフマン符号化します.AC 成分につい
C言語による
アルゴリズムの検証
Cソース①
ては,ランレングス符号化とハフマン符号化を組み合わせ
た 2 次元ハフマン符号化を使用します.また,ゼロラン長
実機の開発
no
動作確認?
アルゴリズム検証用のプログラムは C 言語で記述しまし
yes
動作検証システムの検討
ハードウェア化の検討
Cソース②
①をモディファイして
演算精度・手順の検討
を大きくするために,ジグザグ・スキャンを使用します.
基板の回路設計
た.これは,アルゴリズムの調査時に参考にしたコードが
C 言語だったことと,筆者の場合アルゴリズムの検証には
C 言語を使用しているからです.
ログ・データ
③
基板のアートワーク設計
● ハードウェア化の検討
RTL設計
基板の製造
シミュレーション
ログ・データ
④
JPEG エンコーダの開発では,演算精度と画質注 2 の関係
を求めるため,多くの画像を使って,それぞれ圧縮率を変
部品の実装
えながら評価を繰り返す必要があります.そのため,論理
シミュレーションの段階になってから評価を始めるのでは,
no
③=④?
簡易テストの実施
yes
実機による検証・
デバッグ
ログ・データ
⑤
実機の準備終了
注 1 :Thomas G. Lane 氏のソース・コードは,次のFTP サイトから最新版
を入手できる.ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz.
注 2 :今回は SN 比を用いた簡易的な手法で画質を評価した.
(b)実機の開発
no
④=⑤?
8×8画素
DCTベース・エンコーダ
yes
FDCT
no
開発完了
72
量子化
エントロピ・
エンコーダ
テーブル
テーブル
周波数・回路規模
を満足?
yes
ソース・
データ
圧縮データ
(a)論理回路の開発
図3
図2
JPEG の規格書に掲載されているもの.FDCT は高速離散コサインに変換.
論理回路の一般的な開発フロー
Design Wave Magazine 2006 November
JPEG エンコーダのブロック図
Fly UP