画像処理プロセッサの基本を学ぶ:組み込み用途では「面積効率」と「並列度」が鍵に(1/3 ページ)
組み込み機器では、画像処理に特化した専用プロセッサを用いるケースが増えている。専用ハードウエアアクセラレータを設計するよりも短期間でシステムを構築することができ、汎用プロセッサやDSPよりも高いチップ面積効率が得られるからだ。ただし、専用プロセッサの実力を最大限に発揮するには、画像処理の詳細とプロセッサのアーキテクチャについて、「並列度」の観点から深く理解しておく必要がある。
「画像処理」は多種多様
画像情報を扱う組み込み機器の種類が着々と増えている。(デジタル)テレビや、DVDレコーダ/プレーヤ、パソコン、カメラ付き携帯電話機、デジタルカメラ(DSC)、携帯型カムコーダー(DVC)、車載機器、携帯型ゲーム機など、数え上げれば切りがない(図1)。
ひと言で画像処理といっても、用途によってその内容はさまざまである(本稿では、画像認識も含め、画像情報に対する処理をまとめて画像処理と呼ぶことにする)。例えば、デジタルテレビやDVDレコーダ/プレーヤでは、MPEG-2、H.264などの動画像符号化/復号化処理(ビデオコーデック)が用いられている。よく知られているように、この種のビデオコーデックでは、16×16画素のブロック(マクロブロック)を中心としたブロック単位で、動きベクトルの探索やDCT(離散コサイン変換)、量子化などの処理が行われる。
一方、デジタルカメラや、カメラ付き携帯電話機などでは、CCD/CMOSイメージセンサーから出力される生のデータ(RAWデータ)に対してISP(Image Signal Processing)と呼ばれる画像処理が行われる。ISPでは、レンズなど光学系の補正処理や、イメージセンサーのばらつきなどから生じる傷補正など、画素単位での処理が中心となる。
他方、車載機器で用いられる歩行者認識や、デジタルカメラなどで用いられる顔認識などの画像認識処理では、画像データ中の特徴(量)を抽出し、参照データと比較することにより、ある種の判断を下すという流れのものが多い。
ここで画像処理の例として紹介したビデオコーデック、ISP、画像認識は、後述する並列性の構成が大きく異なる。言い換えれば、この点が画像処理の違いを特徴付ける大きなポイントとなっている。
専用プロセッサの特徴
画像処理を実現するハードウエアとしては、高いプログラマビリティを持つ汎用プロセッサから、高い性能を持つ専用ハードウエアアクセラレータまでさまざまなものがある。汎用プロセッサは高いプログラマビリティを持つので機能変更が容易である。しかし、単位面積/単位消費電力当たりの性能は専用ハードウエアアクセラレータと比べて大きく劣る。逆に、専用ハードウエアアクセラレータは機能変更が行えず、プログラマビリティが非常に低い。
このように、プログラマビリティと(単位面積/単位消費電力当たりの)性能は、トレードオフの関係にある(図2)。なぜなら、プログラマビリティと制御系回路の占める面積(消費電力)、そして性能と演算系回路の占める面積(消費電力)が、それぞれ比例関係にあるからである。
一方で、組み込み機器では、単位面積/単位消費電力当たりの性能について、コストの面での許容領域が存在する。さらに、組み込み画像処理技術が用いられる製品分野が広がる中、各製品分野では短期開発による多品種展開が求められている。そのため、画像処理を実現するハードウエアには、ある程度のプログラマビリティを持つことが強く求められている。すなわち、ソフトウエアの入れ替えにより機能を変更できるプロセッサを用いて、画像処理を実現することが必要なのだ。図2において、これらの要求を満たすことができるのは、プログラマブルアクセラレータの領域である。この領域に属するのが、本稿で焦点を当てる組み込み画像処理専用プロセッサである。
画像処理専用プロセッサは、さまざまな画像処理アプリケーションの中でも、ターゲットとするものに特化したアーキテクチャを備える。それにより、ターゲットアプリケーションで求められる処理において十分なプログラマビリティと高い性能を実現する。具体的には、まず必要十分な制御回路により、限られたターゲットアプリケーションにおけるプログラマビリティを保証する。その上で、多数の演算器をアプリケーションの性質に合わせて高い並列性で配置した演算回路構成により、単位面積/単位消費電力当たりの高い性能を実現させようというものである。
上述したように、画像処理専用プロセッサは限られたターゲットアプリケーションに特化したアーキテクチャを有する。そのため、ターゲットから外れた処理に対しては、たとえそれが画像処理の範疇のものであっても十分な性能が得られないことがある。すなわち、汎用プロセッサやDSPのように広い範囲をカバーすることは難しい。しかし、ここ数年、国内外を問わず半導体メーカー各社から、ある範囲の画像処理アプリケーションにターゲットを絞った画像処理専用プロセッサが発表されており*1)、*2)、*3)、*4)、*5)、プロセッサの世界でも注目を浴びる分野の1つになっている。参考文献1〜5からわかるように、ISSCC(International Solid State Circuits Conference)においても、ほぼ毎年新しい画像処理専用プロセッサが発表されている。
図3は、ISSCCを中心とした学会で発表されている最近の画像処理専用プロセッサの動作周波数とピーク性能を表したものである。この図において、縦軸のピーク性能を横軸の動作周波数で割ると「並列度」が得られる。図3では、この並列度が1000、500、200に相当するところを点線で表している。この図から、画像処理専用プロセッサは、総じて500〜1000程度の非常に高い並列度を有することがわかる。
画像処理専用プロセッサの実力を最大限に引き出すには、この非常に高い並列度を使いこなすことがポイントとなる。実現したい画像処理アプリケーションにマッチする最適な画像処理専用プロセッサを選択して使いこなすためには、ターゲットとなるアプリケーションの並列性と画像処理専用プロセッサの並列性の両方について理解しておく必要がある。そこで、次節では画像処理アプリケーションにおける並列性について概観することにする。
脚注:
※1…M. Nakajima, et al., "A 40GOPS 250mW Massively Parallel Processor based on Matrix Architecture", ISSCC Dig. Tech. Papers, Session 22.5, Feb, 2006
※2…S. Arakawa et al., "A 512GOPS Fully Programmable Digital Image Processor with Full HD 1080p Processing Capabilities", ISSCC Dig. Tech. Papers, pp.312〜313, Feb, 2008
※3…S. Nomura, et al., "A 9.7mW AAC-Decoding, 620mW H.264 720p 60fps Decoding, 8-Core Media Processor with Embedded Forward-Body-Biasing and Power-Gating Circuit in 65nm CMOS technology", ISSCC Dig. Tech. Papers, pp.12〜13, Feb, 2008
※4…K. Nakanishi, et al., "A 128-Parallel SIMD Image Signal Coprocessor with High Area Efficiency", COOL Chips XII, pp.377〜379, April, 2009
※5…S. Kyo, et al., "IMAPCAR2: A Dynamic SIMD/MIMD Mode Switching Processor for Embedded Systems", HOT CHIPS 21, August, 2009
Copyright © ITmedia, Inc. All Rights Reserved.