■パソコン高速画像処理の時代到来!

  実利用できる画像処理装置の第1のファクターは処理速度である。大容量画像  (たとえば1024x1024画素のモノクロ画像または640x480画素の   カラー画像)をリアルタイム(1/30秒=0.033秒)で処理することは、   5年前までは専用に構築されたハードウェアのみが成し得る聖域であった。し   かし今や、パソコン画像処理がその聖域に足を踏み入れ始めた。

 <3年前までの高速画像処理>    小生はここ15年FA用画像処理を手がけているが、少なくともコンマ数秒    に処理時間を押さえないと使いものにならないFA分野であるだけに、特に    下の点に留意して専用画像処理装置を使うようにしてきた。    1.68系CPUであること。     ・この時代はパソコンのパワーは、著しく低かった。512x512画像      に3x3のマスク処理など施そうものなら、1分は必要であった。     ・それに比べて、68系(たとえば68000)CPUは強力であった。      16bitCPUでありながらデータレジスタ、アドレスレジスタを各      々7個持ち、86系(たとえば8086)CPUを用いたパソコンと比      べると同一クロックでも数倍(2〜3倍)速かった。     ・よって高速画像処理は、68系CPUを用いた専用画像処理装置と相場      が決まっていたものである。    2.CPUと画像メモリは高速バスで接続されていること。     ・パソコンが高速画像処理に適さなかったもう一つの理由は、バスの転送      速度にあった。当時のCバス(98バス)やISAバス(ATバス)で         は、512x512画像を1秒で転送できればよい方であった。     ・これに比べ、専用画像処理装置はVMEバスまたは専用バスでCPUと      画像メモリをつないでおり、ここでも3〜5倍はパソコンよりも速かっ      た。    3.マシン語で記述されている事     ・当時のパソコンはCPUも非力であったが、さらにはCコンパイラも非      力であった。大体16bitのCコンパイラは、純粋にマシン語で記述      した場合と比べて3〜4倍は遅かった。また86系CPUでアセンブラ      で組もうとすると、レジスタが圧倒的に少ないことと、16bitアド      レス空間を超えた場合に発生するセグメントという概念が障害となり、      マシン語でプログラムを記述しようとすると奇人扱いされたものである。     ・これに比べ68系CPUを用いた専用画像処理装置は、14のデータ、      アドレスレジスタは使い放題であり、しかもセグメントのない32bi      tアドレス空間を自由に使えたので、マシン語でのプログラム構築は極      めて容易であった。

 <これからのパソコン高速画像処理>

    1995年夏、小生は大容量画像(1024x1024画素)をリアルタイ     ム(1/30秒)に連続10枚取り込み、取り込んだ10Mバイトの画像を     高速処理するという問題に直面していた。専用画像処理装置ではこのスペッ     を満たすのは、全く不可能であった。これを可能にしたのが、Pentiumを搭     載した上記写真のパソコン画像処理システムであった。
   1.Pentiumの登場(CPUの処理速度)
    小生が使ったCPUは100MHzのPentiumであった。小生が初期に用いた専用画     像処理装置(68000)とベンチマークテスト(512x512画像での     2値化処理時間)を行ったが、50倍以上速かった。86系CPUは遅いと     いう定説は、Pentium以降は解消された様である。     →200MHzのPentiumマシン以降なら、1024x1024画素の大容量画像     であっても、2値化処理程度なら十分リアルタイム処理(0.033秒)が     可能となっている。     [Pentiumの処理能力]測定'95.10.16/'96.12.5(M.NUMADA)
      ・68000-10MHz(アセンブラ) 3.9s  ;68系       ・68030-20MHz(アセンブラ) 0.99秒 ;68系       ・68040-25MHz(アセンブラ) 0.42秒 ;68系       ・486DX2-66MHz(C16)    0.76秒 ;86系       ・486DX4-100MHz(C16)   0.44秒 ;86系       ・Pentium-60MHz(C32)   0.18秒       ・Pentium-100MHz(C32)   0.070秒       ・Pentium-200MHz(C32)   0.033秒      (1M画像を2値化する時間で算出した。68系マシンは専用画像処理装置。       86系マシンはパソコンを使用。)    2.PCIバスの登場(バスの転送速度)
PCIバス対応画像入力基板
    1024x1024画素の1M画像を1/30秒でパソコンに取り込もうとす     れば、バスの転送速度は30Mバイト/秒以上必要である。これはVMEバス     では達成できなかった。     また当時すでにPCIバスが出ていたが、実力的には30Mバイト/秒は無理     であった。1995年夏には当時最新のPCIチップセットTritonが登場したが、     これを用いる事により難なく、上記問題はクリアされた。小生の実測では70     Mバイト/秒に迫る性能を誇った。     [PCIチップセットのバス転送能力]測定1995.10.16(M.NUMADA)
      ・NEPTUNE  31.5MB/S       ・TRITON   67.9MB/S      (1M画像を100枚連続転送できる時間から算出した。マシンはPentium−       75MHzとPentium−100MHz)    3.32bitCコンパイラの登場(Cコンパイラの能力)          いよいよ残るはCコンパイラである。実は’95年夏の時点でさえ小生は、ま     だマシン語はCコンパイラより3倍は速いという神話を信じていたのである。     もちろんそれは、16bitCコンパイラ(MS−Cなど)にはあてはまっている     のだが、32bitCコンパイラ(Watcom−Cなど)にはあてはまらなかっ     た。1024x1024画像の2値化をPentiumのマシン語コードで記     述したが、Watcom−C(Dos−Extender)で記述したプログ     ラムより若干遅かった。     そんなバカな事があるかと、Watcom−Cより速いマシン語プログラムを     作るために3日間を費やしたが、それでも40%しか速くならなかった。     [C16とC32コンパイラの能力比較]測定1995.10.16(M.NUMADA)       ・C16(MS−C)     0.44S       ・C32(Watcom−C) 0.20S      (1M画像を2値化する時間。マシンは486DX4−100MHz)     [アセンブラとC32コンパイラの能力比較]測定1995.10.16(M.NUMADA)       ・アセンブラ(Wasm)  0.050S       ・C32(Watcom−C) 0.070S      (1M画像を2値化する時間。マシンはPentium−100MHz)     →この頃はWindows用のVisual Cはまだ16bit対応であっ     たが、現在では32bit対応となっており上述のWatcom−C以上の性     能を出すことができる。         現在のパソコン画像処理システムはかつての専用画像処理装置よりはるかに高     速であり、かつシステム構築が安価であることから、次代を担う画像処理装置     であると見られる。

    以上のように高速性に優れたパソコン画像処理であるが、FA分野で主流とな     るには、まだいくつかの問題点があるので揚げておこう。     1)装置サイズが大きい。       →FA現場で使うにはCRTが大きすぎ、設置スペースのネックとなる。     2)耐環境性に問題あり。       →ハードディスクからプログラムを起動するため、振動や停電によるハー        ドディスクのクラッシュがあると致命的問題となる。     3)連続運転に懸念あり。       →Windows95上で連続動作させておくと、数日経つとOSがハン        グアップする事があるといわれている。これについては、大容量のメモ        リ(64MB以上)を積んで、WindowsのSWAPを最小限に押        さえるか、NTを用いる事により解消される。

戻る

ホームページの画像技術

最先端のCG技術

画像処理研究室へのリンク