クイズ

  • 問題1:FPGAのPは何の略?
  • 問題2:FFPGAのAはアルテラのAである。 ○か×か?

※答えはこのページの一番下にあります。

「いま,FPGAはどこに使われているのか?」

FPGAは今やさまざまな機器に組み込まれ利用目的も多様化している。普及を始めた当初はいわゆる「雑論理」(グルーロジック)の収容が中心だったが,近年はシステムの心臓部とも言うべき重要な処理機能を集積するケースが増えてきた。なかでも画像処理と通信処理はFPGAの中心的な利用分野であり,どちらも現代のデジタル化社会に不可欠な機能だ。FPGA採用を牽引してきたとも言えるこれらの分野で,最新のFPGAは何をどこまで対応できるようになっているのか。前編では画像処理における具体的な使用例をみてみよう。

 産業用か民生用かを問わず,今やほとんどの機器が画像処理機能と通信処理機能とを備えているといっても過言ではない。

 たとえば生産工場で使用されているロボットには,ロボットの動作や製品の状態を監視するカメラやマシンビジョンが備えられ,また,モーションコントローラやロボット本体などはネットワークによって結ばれている(図1)。デジタル家電を代表する薄型テレビも,一部の製品にはネットワーク機能が搭載され,インターネットを介して番組情報などが検索できる。

図1.産業用機器も通信機能と画像処理機能を備える時代に

図1.産業用機器も通信機能と画像処理機能を備える時代に

 これら画像処理機能と通信機能は,従来からFPGAが強みを発揮する分野として知られているが,最新のFPGAで何をどこまで対応できるようになっているか,今回は画像処理での具体的な活用方法をみることにしよう。

 画像処理といったとき,どのような機器を思い浮かべるだろうか?

 産業用や業務用であれば,面実装部品の自動マウンタ,製品検査などのマシンビジョン,紙幣読取り,業務用スキャナ,コピー機や複合機,サーベイランス(監視カメラ)システムなどが挙げられる。医療分野では,デジタルレントゲン装置,CT(コンピュータ断層撮影)スキャナ,PET(陽電子放出断層装置),MRI(核磁気共鳴画像装置),さらには超音波検査装置などに高度な画像処理機能が組み込まれている。また,放送機器やデジタル家電などでも画像処理はおなじみだ。

 もちろんそれぞれの機能には幅がある。遠隔カメラの画像信号を監視センターに転送するだけの単純な処理から,MRIのように二次元画像から立体画像を作成する高度な処理までさまざまだ。

 こういった画像処理に最適なデバイスがFPGAだ。その理由は次のとおりである。

(1) ハードウェアで処理するため,高速,リアルタイムで処理できる
(2) マイクロプロセッサやDSPを使ったソフトウェア処理とは違って,広帯域を実現しやすい。あるいは,同じ性能を少ないチップや低い周波数で動作させることができる。
(3) 何度でもハードウェアを再構成(プログラム)でき,アルゴリズムの変更や性能のチューニングが容易である
(4) 視覚的な検証や評価を実時間で行うことができる
(5) 演算処理に必要な演算回路がマクロ(乗算器)として用意されている
(6) 画像処理に関連したIPやライブラリなどの資産が揃っている(後述)
(7) 内蔵メモリを使ってフィルタやコーデック処理が高速に実行できる
(8) ディスプレイ・アプリケーションの場合,内蔵メモリで足りる場合は外付けラインバッファを必要としない(図2)
(9) ビデオ信号のシリアル伝送に適したトランシーバが用意されてい

図2.普及版のFPGAを使えば画像処理の低コスト化も可能

図2.普及版のFPGAを使えば画像処理の低コスト化も可能

 それでは具体的なふたつの事例を挙げてみよう。

IPライブラリを活用して,液晶テレビのエンジンをFPGAで構成

 まず,地デジ(地上デジタル放送)移行を追い風に普及が進む,液晶テレビを取り上げよう。 

 液晶テレビの開発では,コストも含めてさまざまな点を考慮しなければならない。たとえば,輪郭のギラつきなどに代表される「デジタル臭さ」の排除,従来のインタレース方式によるSD品質(標準精細)入力への対応,さまざまな機能をリモコンで設定できるようにするOSD(オンスクリーンディスプレイ)の重ね合わせ表示などだ。

 こうした要件を満たす液晶テレビのブロック図を図3に示す。

 MPEG2デコーダや音声処理には市販のLSIを使用する一方で,いわゆるエンジンと称される画像処理の部分にアルテラの「Cyclone III」FPGAを使用している(オレンジ色の部分)。

 画像処理にはふたつの技術を用いた。ひとつは後述する専用のIPライブラリ「VIPスイート」(MegaCore)である。たとえば輪郭のギラつきはMegaCoreが持つ「2Dメディアンフィルタ」機能を使えば緩和できる。また,4:3のSD画像を16:9の液晶パネルに表示するために,「スケーラ」機能を使って画像サイズを合わせている。

 さらに,リモコン処理やさまざまなハウスキーピング処理を行うために,アルテラのソフトコア・プロセッサ「Nios II」をCycloneに組み込んだ(ブロック図 右下のオレンジの箇所)。一般の組み込みプロセッサに慣れたエンジニアならNiosのコード開発は難しくない。なおNios II については連載の最終回(第9回目)で触れる予定だ。

 このように,ハードウェアとして実装されるIPライブラリと,ソフトウェアとして実装されるNios IIのコードとを上手にバランスさせることで,高速な画像処理とユーザーインタフェースなどの複雑な機能とを同一のFPGAに集積できる。コストとソリューションサイズの両面でメリットが得られるのがお分かりいただけるだろう。

 なお,本事例ついてのさらなる詳細は,ホワイトペーパー「Cyclone III FPGAを使用した,より鮮明なLCD HDTVの実現(pdf)」で読むことができる。

図3.FPGAで構成した液晶テレビの代表的なブロック図

図3.FPGAで構成した液晶テレビの代表的なブロック図

 また薄型テレビの分野では,1080p フルハイビジョンといった高精細・高解像度化が進んでおり低価格化の要求も高まっている。チューナーや映像処理部から液晶パネルのインタフェースはこれまでLVDS信号によるパラレル接続であったが,信号線が増えるとともにパッケージ・ピン,コネクタ,基板面積の増大によるコスト増と消費電力の増加が問題となるため,シリアル伝送に移行しようとしている。

 そのシリアル化の際の有力なプロトコルにザインエレクトロニクス社提唱の「V-by-One HS」があるが,アルテラではトランシーバとSerDesを内蔵する低コスト・量産向けの FPGA「Cyclone IV GX」および「Arria II GX」で対応している。今後 4K2Kといった高精細画像が今後一般的に扱われるようになると,より高速なSerDesが不可欠になるだろう。画像処理とSerDesとをワンチップで構成できるFPGAはその点でも有利といえる。

 なお,アルテラがこのほどリリースした最新Cyclone IV FPGAを紹介するオンライン・セミナーでは,ディスプレイ・コントローラーでのFPGAの応用例についても触れられている。興味がある方は参照していただきたい。

高感度監視カメラにおける,DSPプロセッサでは実現できないシステム要件を解決

 次は米Intevac社が開発した「NightVista」という高感度監視カメラでの応用例を挙げる。イメージセンサのキャリブレーション,イメージの増倍処理に必要なゲインコントロール,リアルタイムでのコントラスト調整,ガンマ補正といった画像処理機能が要件として定められた。

 当初Intevac社は汎用のDSPや市販LSIで設計を進めていたが,試作を進めていく過程で,外部DSPでは十分な性能が得られないこと,消費電力やソリューションサイズが大きくなりすぎるため,発熱やパッケージングにおいても実用化が難しいことが判明したという。設置の自由度を高めるためにも,小型化は必要不可欠である上,遠隔設置を想定すると消費電力はできるだけ抑えなければならないからだ。

 そこで同社は,汎用DSPと市販LSIではなく,FPGAを採用することにした。アルテラのNiosプロセッサコアをCyclone FPGAに統合し,Nios上で動作するソフトウェアでほとんどの画像処理を実行しようという方式である(図4)。

図4.NightVistaに搭載されたCyclone FPGAのブロック図

図4.NightVistaに搭載されたCyclone FPGAのブロック図
[画像のクリックで拡大表示]

 完成したNightVista製品の外観を図5に示す。画像処理ユニットはレンズと一体で構成され,レンズ部分を除く本体サイズは一辺がおよそ5cmの立方体である。汎用DSPと市販LSIを使った試作の段階では5枚のプリント基板が必要だったが,FPGAの採用で基板は1枚に収まった。消費電力も試作回路から80%も削減され2Wに抑えられた。撮像素子の解像度は1280×1024のSXGAで,Nios IIによって所期の性能を得ている。

 FPGAは開発期間の短縮にも寄与した。Intevac社はわずか4か月で製品化を実現したほか,プログラミング可能なFPGAの特徴を生かして,カスタマイズやフィールドアップグレード,あるいは類似製品への横展開も可能となった。

 本事例ついても,ホワイトペーパー「FPGAのDSP機能統合による,画像アプリケーションの性能向上(pdf)」で詳細を公開しているので参照していただきたい。

図5.Intevec社のNightVista製品の外観とFPGAが搭載された基板

図5.Intevec社のNightVista製品の外観とFPGAが搭載された基板

最新の画像処理ライブラリもIPリソースとして提供

 最後のセクションでは,画像処理に関連した設計支援環境について説明しよう。

 まず,画像処理ライブラリであるIP MegaCoreファンクションを集成した「ビデオ/画像処理スイート」(VIPスイート)がある。色空間を変換する「カラースペース・コンバータ」,クロマデータのサンプリングレートを変更する「クロマ・リサンプラ」,明るさなどを表示デバイスの特性に合わせる「ガンマコレクタ」,ノイズ除去やシャープネスを適用する「2Dフィルタ」類,画像サイズを変更する「スケーラ」,インタレースをプログレッシブフォーマットに変換する「デインタレーサ」など,画像処理に欠かせない基本的な機能が利用できる。

図6.基本的な画像処理機能を統合した「ビデオ/画像処理スイート」

図5.Intevec社のNightVista製品の外観とFPGAが搭載された基板
[画像のクリックで拡大表示]

 また,DSP開発キットやビデオ処理開発キットも,アルテラおよびサードパーティから豊富に提供されている。設計に必要なリソースがすべて付属されているため,積極的に利用するとよいだろう(図7)。JPEG2000エンコーダとデコーダ,H.264エンコーダ,ウェーブレット変換や各種フィルタといった高度なメガファンクションも増えつつある。詳しくは IP MegaStoreページを参照していただきたい。

図7.画像処理に関連した開発キットとリファレンスデザイン

図7.画像処理に関連した開発キットとリファレンスデザイン

 これらのリソースを上手に活用することで,高性能な画像処理機能を備えたFPGAを,効率良く,かつ,短期間で開発できるようになるだろう。

 後編では通信システムでの応用例を取り上げる。

  • 解答1:FPGAのPはProgrammableの頭文字のPです。その「プログラマブル」の名の通り、FPGAは、「後からでも回路の書き換えが可能」である点が大きな利点になっています。詳しくはアルテラの「FPGA入門」をご覧ください。
  • 解答2:1983 年に世界で初めて書き換え可能なロジック・デバイス (PLD : Programmable Logic Device) を開発して以来、アルテラはプログラマブル・ロジックにおけるイノベーションをリードし続けていますので、FPGA の A はアルテラの A だとお思いの方もいらっしゃるかもしれません。しかし、FPGA は、Field Programmable Gate Array の頭文字をとったものです。よって、A は 「Array」 の略になります。アルテラについて詳しくは「アルテラについて」をご覧ください。