JPH0731726B2 - イメージ処理システム - Google Patents

イメージ処理システム

Info

Publication number
JPH0731726B2
JPH0731726B2 JP1165512A JP16551289A JPH0731726B2 JP H0731726 B2 JPH0731726 B2 JP H0731726B2 JP 1165512 A JP1165512 A JP 1165512A JP 16551289 A JP16551289 A JP 16551289A JP H0731726 B2 JPH0731726 B2 JP H0731726B2
Authority
JP
Japan
Prior art keywords
enp
bit
shift
bits
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1165512A
Other languages
English (en)
Other versions
JPH0337773A (ja
Inventor
芳直 小林
Original Assignee
インターナショナル・ビジネス・マシーンズ・コーポレーシヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インターナショナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナショナル・ビジネス・マシーンズ・コーポレーシヨン
Priority to JP1165512A priority Critical patent/JPH0731726B2/ja
Priority to EP19900306557 priority patent/EP0405805A3/en
Priority to US07/543,315 priority patent/US5222214A/en
Publication of JPH0337773A publication Critical patent/JPH0337773A/ja
Publication of JPH0731726B2 publication Critical patent/JPH0731726B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、文字認識、プリント基板の検査工程、視覚ロ
ボットの画像処理等の分野で用いられるイメージ処理シ
ステムに関する。
B.従来技術及び発明が解決しようとする問題点 パターンを認識するためには、もとの画像情報にたいし
て、3x3とか4x4のマスクをかけて画像情報の処理をする
ことが必要になってくる。このマスク処理をすべてマイ
クロプロセッサで実行することは非常に効率が悪く、ま
た画像情報は膨大なので多大な時間を要してしまう。な
んらかのハードウェアを追加してこのマスク処理を効率
的に行う試みが数多くなされてきたが、十分な処理速度
を製品化にみあう軽いハードウェアで実現した例はなか
った。処理速度を追求するとハードウェアが大きくなり
すぎて製品化ができなくなり、また手軽にハードウェア
をまとめると処理速度がでないというジレンマがあっ
た。
記憶装置の中にベタ詰めされた画像処理をマスク処理す
るためには、記憶装置の中の画像情報を一旦もとの縦横
の長さをもった矩形の画像に変換する必要がある。この
ためにはもとの画像の横幅分の長さを持った記憶装置に
詰めなおす必要がある。この数ライン分のバッファをラ
インバッファという。ラインバッファにはイメージ数ラ
イン分を覚えておく機能があり、イメージを3x3といっ
た方形に切り取ってマスク処理をすることが可能とな
る。マスク処理をするためのハードウェアユーティリテ
ィとして様々なものが考案されているが、その構成の違
いはこのラインバッファの構成法の違いと言ってよい。
従来のハードウェアユーティリティとして代表的なシフ
トレジスタ方式について次に説明する。
シフトレジスタ方式 イメージの横幅Nビットを記憶するためのラインバッフ
ァとして、2N+2ビットの長いシフトレジスタを用意す
る方法がある。イメージバッファから読み取られた画像
情報はまず並直列変換され、1ビットのビットストリー
ムになってからこのラインバッファに送られる。イメー
ジデータの並直列変換のためには16ビットのシフトレジ
スタを使用する。このシフトレジスタは16ビットがパラ
レルロードできるようになっており、まずパラレルロー
ド、そして15回ビットシフト、再びパラレルロード、15
回ビットシフトというふうにロード、シフトを繰り返し
て1ビットのビットストリームを作る働きがある。こう
して作られたビットストリームは2N+2ビットのシフト
レジスタに送られる。イメージデータを1ビットのビッ
トストリームに変換する回路を以降ビットストリームジ
ェネレータという。
ラインバッファの頭から数えてN+1番目、2N+2番目
の位置には窓が開いていて1ライン下と2ライン下のビ
ットを取り出すことができる。この2ビットとビットス
トリームジェネレータの出力の1ビットの計3ビットは
もとのイメージの縦にならんだ3ビットになっている。
この3ビットを3本の3ビットシフトレジスタにいれる
と3x3のマトリックスを得ることができる。3x3のマトリ
ックスを取り出してこれを処理する回路を以降マスク処
理回路と言う。
マスク処理回路は3x3のビットパターンをマスク処理し
て1ビットの結果をだす。この処理後のビットを16ビッ
トのシリアルイン・パラレルアウトのシフトレジスタで
直並列変換をして16ビットのパラレルデータに直す。シ
フトレジスタに16ビットのデータがたまる度に結果バッ
ファに書き込んで行くことによりマスク処理が終ったイ
メージが結果バッファにたまっていく。このシフトレジ
スタを使った方式の動作は理論的に明快であり高速処理
が可能となる。
シフトレジスタ方式の欠点は、長いシフトレジスタが必
要なのでハードウェアサイズが大きくなり易いことと、
任意の横幅を持った画像情報に対応するためにはシフト
レジスタの長さを変えないといけないのだが可変長のシ
フトレジスタは回路的に実現が難しい事である。
次に、このレジスタ方式に代わるものとして考えられる
RAM方式について説明する。
RAM方式 この方式は、シフトレジスタを使うとハードウェアサイ
ズが大きくなり易いので、このシフトレジスタの代わり
にRAMを使って等価な作業をさせようというものであ
る。RAMを使うと使い勝手の不便さはさておき集積度を
大幅にあげることができる。スキャンするアドレスの幅
を変えるだけで等価的に任意長のシフトレジスタがえら
れるようになり、任意幅のイメージに対応できるように
なる。つまり、シフトレジスタ方式のようにイメージの
横幅に合わせてタップの位置を選ぶような回路は全く不
用になり、この点からもハードウェアサイズを小さくで
きる。RAMにはシフト/ロードを自由に切り変える機能
がないので、シフトレジスタとして働かせるためには、
等価的にパラレルロード/シリアルアウトができるよう
に外部回路で補う必要がある。
RAM方式でも、シフトレジスタ方式と同様、まずイメー
ジバッファに収められたイメージデータがビックストリ
ームジェネレータにより1ビットのビットストリームに
直される。次に、このビットストリームの各ビットがRA
Mに書き込まれる。以下、RAMのビットの書込手順を、図
面を参照しながら説明する。
第15図は、パーソナル・コンピュータの画面の生イメー
ジの一例を示す。画面の行方向には3ワードが並び、縦
方向には48ワードが並ぶ。各ワードには、第15図に示す
ようにしてアドレスが振られている。各ワードの左端の
ビットがMSBであり、右端のビットがLSBである。
第16図に基づいて、アドレス0に位置する1ワード(16
ビット)をRAMに書き込む手順を説明する。RAMは16ビッ
ト用であり、そのアドレスをA0、A1、・・・、のように
記述することにする。なお、図中のSRはシフトレジスタ
である。
まず、RAMのA0の内容がSRに読み込まれ、次いでSRが右
へシフトされる。SRの空いているMSBには、ビット・ス
トリームの015ビットがインサートされる。(第16図
A)。次に、SRの内容が、A0に書き込まれる。この結
果、015ビットはRAMに書き込まれた(第16図B)。次
に、RAMのアドレス・ポインタをA1にシフトした後、A1
の内容がSRに読み込まれる。SRは右へシフトされ、空い
たMSBにはビット・ストリームの014ビットがインサート
される(第16図C)。次に、SRの内容がA1に書き込まれ
る。この結果、014ビットはRAMに書き込まれた(第16図
D)。第17図はアドレス・ポインタがA23を指すまでこ
のような操作を繰り返した結果を示す。1ワード分のイ
メージ・データが16アドレスに分散されてRAMにストア
される様子が理解できよう。アドレス・ポインタかA47
までインクリメントされた後、アドレス・ポイタンは再
びA0を指し、同様の操作を繰り返す。第18図は、2回目
のスキャンにおいて、アドレス・ポインタがA26を指し
ているときの、RAMの状態を示している。このようにし
て、16ビットのRAMは16ライン・バッファとして働く。
上記の例では、イメージ幅が48ビットであることからRA
Mの48のアドレスを使用した。イメージ幅が96ビットで
あるならば、RAMの96のアドレスを使用すればよい。こ
のようにしてRAMを使うならば、任意のイメージ幅に対
応できるという大きな長所を得られるだろう。反面、1
ビットの処理についてRAMのRMW:Read Modify Writeのた
めに2回分のアクセスが必要になる。さらに、RAMのア
クセス時間は論理ICの遅延時間に比べてずっと遅いの
で、処理速度が出ないという欠点をもたらすだろう。
ところで、RAMを使ったラインバッファには画像情報を
回転させる働きがある。上記の例に即して言えば、画像
情報を16ライン分このRAMを用いたラインバッファにつ
めこんだ状態でこのラインバッファの内容に注目してみ
れば、RAMの各アドレスにはもとの画像情報の1ライン
から16ラインまでの縦16ビットが詰まっている。これは
画像が90度回転したのとおなじことになる。ラインバッ
ファにRAMを使いイメージの90度回転をする方法につい
ては 1.特開昭58−159184号 公報 2.特開昭63−85983号 公報 に記述がある。
しかしながら、上記公報に記載の方法は、何れも8x8回
転器を用いて、イメージ・データの8x8のブロックを一
挙に90度回転させている。したがって、ハードウェアが
重くなるという問題点がある。
C.問題点を解決するための手段 本発明は、任意のイメージ幅に対応でき、ハードウェア
が軽く、かつ高速処理が可能なラインバッファ機能を備
えたイメージ処理システムを提供することを目的とす
る。
任意のイメージ幅に対応できるようにするためには、ラ
インバッファはRAMを使って構成するのがよい。軽いハ
ードウェアを実現するためには、RMWを繰り返しながら
イメージ・データをRAMに充填するのがよい。しかしな
がら、この方式では、処理速度の点で問題がある。だ
が、この問題はRAMの中へのデータの詰め方を工夫する
ことにより解決することができる。ラインバッファ(RA
M)へのデータの充填を1ビット単位で行うのではなく
て複数ビット単位で行えば、処理速度が向上する。1回
のRMWの操作でラインバッファに書き込むビット数を
2、4、8と増やしていけば、それだけ処理速度が向上
する。以下、1回のRMWの操作で書き込むビット数が
2、4、8である動作モードを、それぞれ2倍速、4倍
速、8倍速モードと呼ぶことにする。
D.実施例 第1図は本発明を用いたイメージ処理システムの1例を
示す。
このイメージ処理システムは、3つのデータバッファ
1、2、3と3つのプロセスの計6つのユニットからで
きている。バッファとプロセスは交互に並んでいてその
順序は次のようになっている。
1.バッファ1 生データ 2.プロセス1 データの90度回転 3.バッファ2 ラインバッファ 4.プロセス2 マスク処理 5.バッファ3 結果バッファ 6.プロセス3 黒ビットの計算、他 以下各々について説明する。
1.バッファ1 加工前のイメージデータがはいっている。このバッファ
はイメージプロセッサが動作中は占有されてしまうの
で、マイクロプロセッサのシステムメモリから切り放さ
れた独立したメモリであることが望ましい。DMAにより
システムメモリ内にバッファ1をアサインすることは回
路的には可能だが、システムパフォーマンスを大きく犠
牲にしてしまう。このバッファは通常後述のバッファ3
と同一メモリを分割して使う。バッファ1のサイズがこ
のイメージプロセッサが1回に取り扱える最大の面積を
規定する。文字イメージを64x64のドットイメージで表
すときは最低512バイト必要である。
2.プロセス1 バッファ1の内容を読み取ってバッファ2(16ビットRA
M)により構成されるラインバッファに送る。一方バッ
ファ2は連続的にRead Modify Write(以下RMW)のメモ
リサイクルを各アドレスについて実行することにより、
バッファ1のデータが90度回転したものをバッファ2の
中に実現するようなメモリ操作を繰り返している。以下
詳細について説明する。
第2図は、2倍速モードを実現するためのハードウェア
構成である。SR4は、シフト・レジスタであり、バッフ
ァ1から16ビットを1度にパラレル・ロードした後、右
へ2ビットずつ7度シフトする動作を繰り返す。
右端にMSBが入り、左端にLSBが入る。SR4とバッファ2
の間には、16ビット・ラッチ6がある。ラッチ6の出力
ビット0、1、・・・、15は、それぞれバッファ2のビ
ット0、1、・・・、15に入力される。SR4のMSBとその
隣のビット(P、Q)は、ラッチ6のビット0とビット
8にそれぞれ入力される。バッファ2のビット0〜6
は、ラッチ6のビット1〜7にそれぞれ入力される。バ
ッファ2のビット8〜14は、ラッチ6のビット9〜15に
それぞれ入力される。
第3図に基づいて、1ワード分のイメージ・ビット0〜
15がバッファ2に充填される様子を説明する。まず、SR
4の位置P、Qには、ビット15、14が収容されている。
この状態で、アドレス0について、RMWが実行される。
すなわち、アドレス0のビット0〜6、ビット8〜14
が、ラッチ6のビット1〜7、9〜15にそれぞれ入力さ
れる。アドレス0のビット7、15は捨てられる。ラッチ
6のビット0、ビット8には、PビットとQビット、つ
まりビット15、ビット14がそれぞれ入力される(第3図
A)。次に、ラッチ6の内容がアドレス0に書き込まれ
る。これと並行して、SR4の内容が右へ2ビット分シフ
トされる。つまり、P、Qビットの内容はビット13、12
になる(第3図B)。この状態で、アドレス1について
RMWが実行される(第3図C、D)。このような動作を
繰り返すことによって、第15図に示すようなイメージ・
データは、第4図に示すようにストアされる。すなわ
ち、奇数番目のビットはRAM2のビット15〜8(小バッフ
ァ0)に詰められる一方、偶数番目ビットはRAM2のビッ
ト7〜0(小バッファ1)に詰められる。RAM2の24アド
レスを使うことによって、48ビットのイメージ幅に対処
することができる。
第5図は、4倍速モードを実現するためのハードウェア
構成である。第2図の装置とは以下の点が異なる。
・SR4の上位4ビットP、Q、R、Sが、ラッチ6のビ
ット0、4、8、12にそれぞれ入力される。
・バッファ2の内容をラッチ6に読み出す際に、ビット
3、7、11、15は捨てられる。
・SR4は、バッファ2についてRMWが実行される度に、4
ビット右へシフトする動作、またはバッファ1から16ビ
ットをパラレルにロードする動作の何れかを行う。
第6図は、第5図の装置について第3図と同様の動作を
繰り返して16ビット分のイメージ・データをバッファ2
に蓄えた結果を示す。イメージ幅が48ビットの場合に
は、12アドレスを用いることによって4ライン分のライ
ン・バッファが形成される。つまり、ビット4n、4n+
1、4n+2、4n+3は、それぞれRAM2のビット15〜12
(小バッファ0)、11〜8(小バッファ1)、7〜4
(小バッファ2)、3〜0(小バッファ3)に詰められ
る。
第7図は、8倍速モードを実現するためのハードウェア
構成である。第2図及び第5図の装置とは以下の点が異
なる。
・SR4の上位8ビッP、Q、R、S、T、U、V、W
が、ラッチ6のビット0、2、4、6、8、10、12、14
にそれぞれ入力される。
・バッファ2の内容をラッチ6に読み出す際に、ビット
1、3、5、7、9、11、13、15は捨てられる。
・SR4は、バッファ2についてRMWが実行される度に、8
ビット右へシフトする動作、またはバッファ1から16ビ
ットをパラレルにロードする動作の何れかを行う。
第8図は、第7図の装置について第3図と同様の動作を
繰り返して16ビット分のイメージ・データをバッファ2
に蓄えた結果を示す。
イメージ幅が48ビットの場合には、6アドレスを用いる
ことによって2ライン分のライン・バッファが形成され
る。つまり、ビット8n、8n+1、8n+2、8n+3、8n+
4、8n+5、8n+6、8n+7は、それぞれRAM2のビット
15−14(小バッファ0)、13−12(小バッファ1)、11
−10(小バッファ2)、9−8(小バッファ3)、7−
6(小バッファ4)、5−4(小バッファ5)、3−2
(小バッファ6)、1−0(小バッファ7)に詰められ
る。もちろん、バッファ2として32ビットRAMを用いれ
ば、8倍速モード時に4ライン分のライン・バッファが
形成される。
なお、説明の便宜上、2倍速、4倍速、及び8倍速モー
ド用の装置を異なる図面で説明した。しかしながら、1
つの装置でこれらの機能を兼用させてもよい。第9図
は、4倍速モードと8倍速モード兼用の装置の1例のご
く1部分を示す。第9図のハードウェア構成により、4
倍速モードではバッファ2のビット1がANDゲート91、O
Rゲート92を経てラッチ6のビット2に供給される一
方、8倍速モードではSR4のビットQがANDゲート93、OR
ゲート92を経てラッチ6のビット2に供給される。同様
にして、1つの装置でもって1回のRMWにつき1ビット
をRAMに書き込む動作(いわば普通速モード)と8倍速
モードを切換えられるようにしても差し支えない。参考
までに、普通速モード時に実現されるハードウェアの構
成を第10図に示す。
SR4は、バッファ1とバッファ2の間にあって、バッフ
ァ2に1回に送るビット数を調節する。したがって、バ
ッファ1が8ビットのRAMであって1回に読み出される
ビット数が8であり、かつバッファ2が8倍速モード専
用である場合には、SR4は不要である。バッファ1が16
ビットのRAMである場合に、バッファ2を2倍速、4倍
速、及び8倍速モードで動作させるとき、SR4は次の動
作を繰り返す。
2倍速モード:ロード1回、2ビットのシフト7回。
4倍速モード:ロード1回、4ビットのシフト3回。
8倍速モード:ロード1回、8ビットのシフト1回。
SR4は、モード毎に別個のものを使ってもよいし、同一
のものを、その動作を切り替えて使うようにしてもよ
い。モードに応じて異なる動作をするレジスタをバレル
・シフタと呼ぶことにする。その具体的な実現について
は後掲の資料を参照されたい。モードに応じたバレル・
シフタの出力の変更に応答してライン・バッファへのビ
ットの書き込みを変更する回路をビットソータ回路とい
う。これは、いわば第9図の回路を一般化させたもので
ある。その詳細については後掲の資料を参照されたい。
第2図、第5図、及び第7図の装置ではRMW用にラッチ
6を1つだけ用いたけれども、ラッチ6の機能を2つの
レジスタに分けてもよい。第11図はそのような変形例を
8倍速モードについて示す。この例では、RAM2のあるア
ドレスから読み出された内容がそのまま読込レジスタ10
1に読み込まれる。読込レジスタ101から書込レジスタ10
2への転送の際に、レジスタ101の内容の半分が捨てら
れ、残りのビットもその位置がシフトされる。レジスタ
102の残りの位置には、SR4のビットP〜Wがインサート
される。このようにして形成された書込レジスタ102の
内容は、そのままRAM2の元のアドレスに書き込まれる。
3.バッファ2 RAMを使ったラインバッファである。ラインバッファに
メモリを使う利点として、容易に任意の横幅を持ったラ
インバッファが得られることがあげられる。欠点として
はメモリのアクセス時間はゲートのディレイ時間よりは
るかに遅いので単純に使うとシステムのボトルネックに
なる惧れがある事だが、このイメージ処理システムでは
倍速モードの設定によりそのボトルネックを解消してい
る。RMWを最新のSRAMについて行うと1回のオペレーシ
ョンに約200nsecかかる。
4.プロセス2 このプロセスでは2x2、3x3、4x4等のマスク処理を行
う。例えば3x3の平滑化マスクは、黒イメージの角を削
る働きをする。つまり、3x3のマスクを3x3のイメージに
あてはめ、そこに2x2の黒があれば、中央の黒を削る。
普通モードならば、90度回転したイメージがバッファ2
に再現されるので、3x3のイメージを切り出す処理は比
較的容易である。しかしながら、倍速モードでは、元の
イメージが1本のラインであっても、バッファ2では、
複数のビット位置に分かれて書き込まれる。そこで、特
殊な工夫が必要になる。ここでは、8倍速モード及び4
倍速モードでの3x3マスク処理について説明する。
第12図は、処理対象のイメージ・データ・ビットを示
す。Z0〜Z7の8ビットをライン・バッファに収容すると
きに行われるデータ処理を、第13図に基づいて説明す
る。
第13図において、7、8、9は10ビットのシフト・レジ
スタであり、先頭の8ビットをパラレル・ロードするこ
とができる。レジスタ7の場合は、SR4から送られる8
ビットがパラレルにロードされる。レジスタ8の場合
は、RAM2のビット0、2、4、6、8、10、12、14がパ
ラレルにロードされる。レジスタ9の場合は、RAM2のビ
ット1、3、5、7、9、11、13、15がパラレルにロー
ドされる。シフトレジスタ7、8、9は、RAM2について
1回RMWの操作(2回のアクセス)が行われる間に、1
回のデータロードと7回のビットシフトを行う。シフト
レジスタ7、8、9のそれぞれの終端3ビットは、マス
処理回路の3ビット・シフト・レジスタ10、11、12を兼
ねている。マスク処理回路13は、3ビット・レジスタ1
0、11、12の内容を参照して、マスク処理を行い、結果
ビット14を出力する。結果ビットは8ビット・シフト・
レジスタ15に送られる。レジスタ15に8ビットが蓄えら
れると、その8ビットはバッファ3にパラレルにロード
される。結局、RAM2について1回のRMW(2回のアクセ
ス)が実行される間に、8ビットの結果データが生成さ
れ、バッファ3にロードされる。
より具体的に説明しよう。ライン・バッファ(RAM2)に
収容するべく、ビットZ0〜Z7がSR4からプロセス1に渡
されると同時に、ビットZ0〜Z7はレジスタ7の先頭8ビ
ットにロードされる。このとき、RAM2のアドレス・ポイ
ンタが指すアドレスA′には、Z0〜Z7の1ライン前と2
ライン前のデータ、つまりX0〜X7、Y0〜Y7がストアされ
ている。このアドレスA′の内容が読み出されるとき
に、レジスタ8の先頭8ビットにはY0〜Y7がロードさ
れ、一方、レジスタ9の先頭8ビットにはX0〜X7がロー
ドされる。こうして、第12図のイメージが、3本のレジ
スタ7、8、9の中で再現された。後は、レジスタ10、
11、12の内容に基づいて3x3のマスク処理が順次行われ
る。こうして、画像情報(SR4)の1回のアクセス、ラ
インバッファ(RAM2)の1回のアクセス、結果バッファ
3の1回のアクセスが同時に進行できるようになり、ラ
イン・バッファとしてRAMを使用したイメージ処理シス
テムの処理スピードが大幅に向上する。
第14図は、第13図の回路を4倍速モード用に変形したも
のである。シフト・レジスタ77、88、99は、先頭の4ビ
ットがパラレル・ロード可能である点を除き、第13図の
レジスタ7、8、9と同様である。レジスタ77の先頭4
ビットには、SR4からの4ビットが入力される。レジス
タ88の先頭4ビットには、RAM2のビット0、4、8、12
が入力される。レジスタ99の先頭4ビットには、RAM2の
ビット1、5、9、13が入力される。
4倍速モードの場合には、第12図のビットZ7〜Z4が1回
のRMWでRAM2に書き込まれ、次のRMWによってビットZ3〜
Z0がRAM2に書き込まれる。ビットZ7〜Z4が書き込まれる
アドレスをA″とすると、そこには第14図に示されるよ
うにビットX7〜X4、Y7〜Y4がロードされている。また、
アドレス(A″+1)には、ビットX3〜X0、Y3〜Y0がロ
ードされている。したがって、2回のRMWの間にアドレ
スA″、(A″+1)の内容が読み出される結果、レジ
スタ77、88、99にはビット列Z0〜Z1′、Y0〜Y1′、X0〜
X1′が形成される。以後の処理は、第13図の例と同じで
ある。
なお、同一のレジスタでもってレジスタ7と77を兼用さ
せてもよい。その場合は、第9図のような8倍速モード
と4倍速モード切替用のゲート回路を設ける必要がある
が、当業者にとってはそのような回路の設計は容易であ
ろう。同様に、1つのマスク処理装置でもって普通速モ
ードと8倍速モードの両方に適応させてもよい。普通速
モードと8倍速モードの切換が可能なイメージ処理シス
テムは、イメージ回転処理とマスク処理の両方を高速に
実行できるので有益である。モードの切替に応じて、ラ
イン・バッファからのデータの読み取り方及びバレル・
シフタからのデータの読み取り方を変更する汎用回路を
ビット・アライナ回路と呼ぶ。その詳細については後掲
の資料を参照されたい。
5.バッファ3 結果バッファである。バッファ1と同一メモリを分割し
て使用し、ポインタを切り替えることによって、バッフ
ァ1とバッファ3はダイナミックに切り替え使われる。
つまり、ある処理をした結果について別の処理をしたい
ときは、バッファ3の内容をバッファ1に転送してから
イメージプロセッサを再度起動するのではなくて、バッ
ファ1とバッファ3のポインタだけを切り替えるだけで
新しい作業にはいれる。
6.プロセス3 バッファ3の内容を読み出すときにすこし加工したデー
タをマイクロプロセッサに返す働きがある。回路上はバ
ッファ1とバッファ3は同一メモリを分割して使用して
いるので、バッファ1についても同じ加工が可能であ
る。データの加工は次の4種類がある。
(1) 加工しない。
(2) “1"ビットの数を数えてバイナリに直す。これ
は黒ビットの数もしくはパターンの数を数えるときに使
う。結果として得られるデータは16ビットについて0−
15の5ビットのバイナリである。
(3) LSBとMSBの順序を入れ換える。ビット0−15を
ビット15−0に入れ換える。イメージの反転に使う。
(4) マスクをかけてから“1"ビットの数を数える。
16ビットのマスクをかけて、マスクが“1"になっている
ところについてだけ“1"ビットの数を数える。あるエリ
アについてのみ“1"ビットを数えたいときに使用する。
資料:バレル・シフタ(第19図) ラインバッファで処理するビット数が変えられるように
なると様々な操作が同一ハードウェアでできるようにな
り操作性が向上する。ラインバッファで処理するビット
数が1ビットになればイメージの回転ができる。バレル
シフタは画像情報のはいった記憶装置とラインバッファ
の間にあってラインバッファの動作モードの応じたビッ
ト数をラインバッファに送る。バレルシフタの出力は倍
速モードの切り替えにより次の表1のようにかわる。
Bxxはラッチの出力をあらわし、bxxはラッチの入力をあ
ららす。バレルシフタにまずイメージデータをパラレル
ロードして、次にシフト動作をする。バレルシフタのと
各ラッチの入力はこの表に従って切り替えられる。表の
下半分はロード動作のときに各ラッチにはいるイメージ
データを示す。表の上半分はバレルシフトの動作を示し
ている。B15についてみればb15、つまりB15のラッチの
入力は普通速モードではB14の出力につながっている。
これが2倍速モードではB13、4倍速モードではB11、8
倍速モードではB07と切り替わって1、2、4、8ビッ
トのバレルシフタを構成する。バレルシフタは3個のGA
L(ジュネリック・アレイ・ロジック。プログラマブル
・ロジック・デバイスの一種である。)モジュールで構
成され、倍速モードに応じたビット数をビットソータ回
路に送る。GALの内部論理についてはTENTA0、TENTA1、T
ENTA2の内容を参照。
デバイスtenta0(第20図) −Reduced Equations: B7 :=(D7 & enp & !shift #B3 & enp & !s0 & s1 & shift #B5 & enp & s0 & !s1 & shift #B6 & enp & !s0 & !s1 & shift #B7 & !enp); B6 :=(D6 & enp & !shift #B2 & enp & !s0 & s1 & shift #B4 & enp & s0 & !s1 & shift #B5 & enp & !s0 & !s1 & shift #B6 & !enp); B5 :=(D5 & enp & !shift #B1 & enp & !s0 & s1 & shift #B3 & enp & s0 & !s1 & shift #B4 & enp & !s0 & !s1 & shift #B5 & !enp); B4 :=(D4 & enp & !shift #B0 & enp & !s0 & s1 & shift #B2 & enp & s0 & !s1 & shift #B3 & enp & !s0 & !s1 & shift #B4 & !enp); B3 :=(D3 & enp & !shift #B1 & enp & s0 & !s1 & shift #B2 & enp & !s0 & !s1 & shift #B3 & !enp); B2 :=(D2 & enp & !shift #B0 & enp & s0 & !s1 & shift #B1 & enp & !s0 & !s1 & shift #B2 & !enp); B1 :=(D1 & enp & !shift # B0 & enp & !s0 &
!s1 & shift # B1 & !enp); B0 :=(D1 & enp & !shift # B0 & !enp); テバイスtenta1(第21図) −Reduced Equations: B11 :=(D11 & enp & !shift #B3 & enp & s0 & s1 & shift #B7 & enp & !s0 & s1 & shift #B9 & enp & s0 & !s1 & shift #B10 & enp & !s0 & !s1 & shift #B11 & !enp); B10 :=(D10 & enp & !shift #B2 & enp & s0 & s1 & shift #B6 & enp & !s0 & s1 & shift #B8 & enp & s0 & !s1 & shift #B9 & enp & !s0 & !s1 & shift #B10 & !enp); B9 :=(D9 & enp & !shift #B1 & enp & s0 & s1 & shift #B5 & enp & !s0 & s1 & shift #B7 & enp & s0 & !s1 & shift #B8 & enp & !s0 & !s1 & shift #B9 & !enp); B8 :=(D8 & enp & !shift #B0 & enp & s0 & s1 & shift #B4 & enp & !s0 & s1 & shift #B6 & enp & s0 & !s1 & shift #B7 & enp & !s0 & !s1 & shift #B8 & !enp); テバイスtenta2(第22図) −Reduced Equations: B15 :=(D15 & enp & !shift #B7 & enp & s0 & s1 & shift #B11 & enp & !s0 & s1 & shift #B13 & enp & s0 & !s1 & shift #B14 & enp & !s0 & !s1 & shift #B15 & !enp); B14 :=(D14 & enp & !shift #B6 & enp & s0 & s1 & shift #B10 & enp & !s0 & s1 & shift #B12 & enp & s0 & !s1 & shift #B13 & enp & !s0 & !s1 & shift #B14 & !enp); B13 :=(D13 & enp & !shift #B5 & enp & s0 & s1 & shift #B9 & enp & !s0 & s1 & shift #B11 & enp & s0 & !s1 & shift #B12 & enp & !s0 & !s1 & shift #B13 & !enp); B12 :=(D12 & enp & !shift #B4 & enp & s0 & s1 & shift #B8 & enp & !s0 & s1 & shift #B10 & enp & s0 & !s1 & shift #B11 & enp & !s0 & !s1 & shift #B12 & !enp); 資料:ビットソータ回路(第23図) バレルシフタから送られてきたデータはラインバッファ
のデータとまぜられて再びラインバッファに書き込まれ
る。倍速モードに応じて、ラインバッファから読み取ら
れたデータに新しいデータを混ぜる組み合せが変わる。
ラインバッファとバレルシフタの出力のソートの仕方は
次の表2のようにかわる。
B8−15はバレルシフタの出力を表している。L0−15はラ
インバッファの出力を表している。ソータの入力はsxx
で表し、出力をSxxで表す。ソータの出力がラインバッ
ファに書き込まれる。S15についてみると入力はつねにL
14につながっているので A:Always でしめしてある。
S14についてみると8倍速モードではB15につながるが、
そのほかの1、2、4倍速モードではL13につながる。
よって、B15に“8"が示されている。O:Other はS14が
その他のときにL13につながっていることを示してい
る。この回路は2個のGAL20V8と1個の74LS374(8ビッ
トのラッチ)を使って実現される。GALの論理内容につ
いてはSQUID0、SQUID1参照。
デバイスsquid0(第24図) −Reduced Equations: S6 :=(B11 & enp & s0 & s1 #L5 & enp & !s0 #L5 & enp & !s1 #S6 & !enp); S4 :=(B10 & enp & s0 & s1 #B13 & enp & !s0 & s1 #L3 & enp & !s1 #S4 & !enp); S2 :=(B9 & enp & s0 & s1 # L1 & enp & !s0 # L1 & enp & !s1 # S2 & !enp); S0 :=(B8 & enp & s0 & s1 #B12 & enp & !s0 & s1 #B14 & enp & !s0 & !s1 #B15 & enp & !s0 & !s1 #S0 & !enp); デバイスsquid1(第25図) −Reduced Equations: S14 :=(B15 & enp & s0 & s1 #L13 & enp & !s0 #L13 & enp & !s1 #S14 & !enp); S12 :=(B14 & enp & s0 & s1 #B15 & enp & !s0 & s1 #L11 & enp & !s1 #S12 & !enp); S10 :=(B13 & enp & s0 & s1 #L9 & enp & !s0 #L9 & enp & !s1 #S10 & !enp); S8 :=(B12 & enp & s0 & s1 #B14 & enp & !s0 & S1 #B15 & enp & !s0 & !s1 #L7 & enp & !s0 & !s1 #S8 & !enp); 資料:ビットアライナ(第26図) ラインバッファの1、2、4、8倍速モードを切り替え
られるようにすると、ラインバッファの中に折り込まれ
たデータを拾い集めて整列させる回路が必要になる。ビ
ットアライナはバレルシフタの出力8ビットとイメージ
バッファの出力16ビットを使って3ビットのビットスト
リームを作る。
第1行のビットアライナの動作 Axxはビットアライナの出力を表しaxxが入力を表す。第
1行目はバレルシフタの出力をそのまま使う。倍速モー
ドに関係なく8ビットのパラレルインシリアルアウトの
シフトレジスタになる。A07がビットアライナの出力に
なる。AはA:Always を表している。
第2行とビットアライナの動作 第2行目以降は倍速モードの切り替に応じて動作が切り
替わる。8倍速モードでは、8ビットのパラレルインシ
リアルアウトのシフトレジスタになる。4倍速モードに
なればラインバッファから1度にとれるビット数は4ビ
ットになるのでこのビットアライナは等価的に4ビット
のシフトレジスタになる。2倍速モードになればライン
バッファから1度にとれるビット数は2ビットになるの
でこのビットアライナは等価的に2ビットのシフトレジ
スタになる。普通速モードになればラインバッファから
1度にとれるビット数は1ビットになるのでこのビット
アライナは実質的に1個のラッチになる。ビットアライ
ナの出力はA17である。
第3行とビットアライナの動作 第3行目の動作も2行目とほぼ同じだがラインバッファ
から取り込むデータが違っている。取り込むデータは倍
速モードの切り替えに応じて切り替わる。8倍速モード
のときはラインバッファから1度に8ビットのデータが
とれるので8ビットのパラレルインシリアルアウトのシ
フトレジスタになる。4倍速モードになればラインバッ
ファから1度にとれるビット数は4ビットになるのでこ
のビットアライナは等価的に4ビットのシフトレジスタ
になる。2倍速モードになればラインバッファから1度
にとれるビット数は2ビットになるのでこのビットアラ
イナは等価的に2ビットのシフトレジスタになる。普通
速モードになればラインバッファから1度にとれるビッ
ト数は1ビットになるのでこのビットアライナは実質的
に1個のラッチになる。ビットアライナの出力はA27で
ある。
このビットアライナ回路は2個のGALモジュールと1個
のTTL74LS166(パラレル・イン・シリアル・アウトの8
ビット・シフト・レジスタ)からできている。
GALの内部論理についてはOCTAL1、OCTAL2を参照。
デバイスoctal1(第27図) −Reduced Equations: A17 :=(A16 & enp & shift #L14 & enp & s0 & s1 & !shift #L12 & enp & !s0 & s1 & !shift #L08 & enp & s0 & !s1 & !shift #L00 & enp & !s0 & !s1 & !shift #A17 & !enp); A16 :=(A15 & enp & shift #L12 & enp & s0 & s1 & !shift #L08 & enp & !s0 & s1 & !shift #L00 & enp & !s1 & !shift #A16 & !enp); A15 :=(A14 & enp & shift #L10 & enp & s0 & !shift #L04 & enp & !s0 & !shift #A15 & !enp); A14 :=(A14 & shift #L08 & enp & s0 & s1 & !shift #L00 & enp & !s0 & s1 & !shift #A14 & !enp); A13 :=(A12 & enp & shift # L06 & enp & !shift # A13 & !enp); A12 :=(A11 & enp & shift # L04 & enp & !shift # A12 & !enp); A11 :=(A10 & enp & shift # L02 & enp & !shift # A11 & !enp); A10 :=(L00 & enp & !shift # A10 & !enp); デバイスoctal2(第28図) −Reduced Equations: A27 :=(A26 & enp & shift L15 & enp & s0 & s1 & !shift L13 & enp & !s0 & s1 & !shift L09 & enp & s0 & !s1 & !shift L01 & enp & !s0 & !s1 & !shift A27 & !enp); A26 :=(A25 & enp & shift L13 & enp & s0 & s1 & !shift L09 & enp & !s0 & s1 & !shift L01 & enp & !s1 & !shift A26 & !enp); A25 :=(A24 & enp & shift L11 & enp & s0 & !shift L05 & enp & !s0 & !shift A25 & !enp); A24 :=(A24 & shift L09 & enp & s0 & s1 & !shift L01 & enp & !s0 & s1 !shift A24 & !enp); A23 :=(A22 & enp & shift # L07 & enp & !shift # A23 & !enp); A22 :=(A21 & enp & shift # L05 & enp & !shift # A22 & !enp); A21 :=(A20 & enp & shift # L03 & enp & !shift # A21 & !enp); A20 :=(L01 & enp & !shift # A20 & !enp); E.効果 本発明によれば、任意のイメージ幅に対応でき、ハード
ウェアが軽く、かつ高速処理が可能なラインバッファ機
能が実現される。
【図面の簡単な説明】
第1図は、本発明を用いたイメージ処理システムの全体
を示すブロック図である。 第2図は、2倍速モードを実現する1例の回路図であ
る。 第3図は、2倍速モードの動作の説明図である。 第4図は、2倍速モードでのライン・バッファへのデー
タの詰まり方を示す説明図である。 第5図は、4倍速モードを実現する1例の回路図であ
る。 第6図は、4倍速モードでのライン・バッファへのデー
タの詰まり方を示す説明図である。 第7図は、8倍速モードを実現する1例の回路図であ
る。 第8図は、8倍速モードでのライン・バッファへのデー
タの詰まり方を示す説明図である。 第9図は、4倍速モードと8倍速モードを切り換えるた
めの回路図である。 第10図は、普通速モードを実現する1例の回路図であ
る。 第11図は、8倍速モードを実現する他の例を示す回路図
である。 第12図は、イメージ・データの位置関係を示す説明図で
ある。 第13図は、8倍速モード用の3x3マスク処理を実現する
1例の回路図である。 第14図は、4倍速モード用の3x3マスク処理を実現する
1例の回路図である。 第15図は、スクリーン全部のイメージ・データの説明図
である。 第16図は、普通速モードの動作説明図である。 第17図及び第18図は、普通速モードでのライン・バッフ
ァへのデータの詰まり方を示す説明図である。 第19図は、バレル・シフタの説明図である。 第20図ないし第22図は、それぞれバレル・シフタを構成
するモジュールの説明図である。 第23図は、ビット・ソータ回路の説明図である。 第24図及び25図は、それぞれビット・ソータ回路を構成
するモジュールの説明図である。 第26図は、ビットアライナの説明図である。 第27図及び28図は、それぞれビットアライナを構成する
モジュールの説明図である。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】行方向にXビットが並ぶイメージ・データ
    の処理システムであって、 (a) RAMのビット幅を論理的にn(nは2以上の整
    数であって、かつXの約数)分割して設けられたn個の
    小バッファと、 (b) イメージ・データの行方向に関して連続するn
    ビットを取り出す手段と、 (c) RAMのX/n個のアドレスを順次指定する手段と、 (d) 小バッファごとに、該当小バッファに含まれか
    つ指定されたアドレスに関連するデータ・ビットについ
    て、1ビットを捨て、残りのデータ・ビットの位置をRA
    Mのビット幅方向に1ビットずつシフトさせる手段と、 (e) 上記手段(b)により取り出されたnビットを
    n個の小バッファの空いたビット位置に1ビットずつ分
    配する手段を具備するイメージ処理システム
  2. 【請求項2】上記RAMの分割数として少なくとも2つの
    値が指定可能であり、 上記手段(b)ないし(e)は上記指定可能な分割数ご
    とに用意されている。 ことを特徴とする特許請求の範囲第1項記載のイメージ
    処理システム。
  3. 【請求項3】(f) イメージ・データを1ビットずつ
    取り出す手段と、 (g) RAMのX個のアドレスを順次指定する手段と、 (h) 指定されたアドレスに関連するデータ・ビット
    のうちの1つを捨て残りのデータ・ビットの位置を1ビ
    ットずつシフトさせる手段と、 (i) 上記手段(f)により取り出された1ビットを
    上記指定されたアドレスの空いたビット位置に挿入する
    手段を具備する特許請求の範囲第1項または第2項に記
    載のイメージ処理システム。
JP1165512A 1989-06-29 1989-06-29 イメージ処理システム Expired - Lifetime JPH0731726B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP1165512A JPH0731726B2 (ja) 1989-06-29 1989-06-29 イメージ処理システム
EP19900306557 EP0405805A3 (en) 1989-06-29 1990-06-15 Apparatus for processing image data
US07/543,315 US5222214A (en) 1989-06-29 1990-06-25 Image processing using a ram and repeat read-modify-write operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1165512A JPH0731726B2 (ja) 1989-06-29 1989-06-29 イメージ処理システム

Publications (2)

Publication Number Publication Date
JPH0337773A JPH0337773A (ja) 1991-02-19
JPH0731726B2 true JPH0731726B2 (ja) 1995-04-10

Family

ID=15813805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1165512A Expired - Lifetime JPH0731726B2 (ja) 1989-06-29 1989-06-29 イメージ処理システム

Country Status (3)

Country Link
US (1) US5222214A (ja)
EP (1) EP0405805A3 (ja)
JP (1) JPH0731726B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428804A (en) * 1992-12-18 1995-06-27 Xerox Corporation Edge crossing circuitry for SIMD architecture
US5596684A (en) * 1994-11-23 1997-01-21 Compaq Computer Corporation Anti-aliasing apparatus and method using fast scan-line memory mapping for sampling pixel patterns
JPH09222397A (ja) * 1996-02-16 1997-08-26 Mitsui Mining & Smelting Co Ltd 散乱光による観察装置
US8878825B2 (en) * 2004-09-27 2014-11-04 Qualcomm Mems Technologies, Inc. System and method for providing a variable refresh rate of an interferometric modulator display
US20110314256A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Data Parallel Programming Model
US8589867B2 (en) 2010-06-18 2013-11-19 Microsoft Corporation Compiler-generated invocation stubs for data parallel programming model

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2566949B1 (fr) * 1984-06-29 1986-12-26 Texas Instruments France Systeme d'affichage d'images video sur un ecran a balayage ligne par ligne et point par point
JPS6177965A (ja) * 1984-09-26 1986-04-21 Nissan Motor Co Ltd 画像処理装置
JPS61159686A (ja) * 1985-01-07 1986-07-19 株式会社日立製作所 画像表示装置

Also Published As

Publication number Publication date
JPH0337773A (ja) 1991-02-19
EP0405805A3 (en) 1992-05-06
EP0405805A2 (en) 1991-01-02
US5222214A (en) 1993-06-22

Similar Documents

Publication Publication Date Title
US4627020A (en) Method for rotating a binary image
US4561072A (en) Memory system handling a plurality of bits as a unit to be processed
US4434502A (en) Memory system handling a plurality of bits as a unit to be processed
US4907284A (en) Image processing apparatus having function of enlargement and/or shrinkage of image
US4665551A (en) Apparatus and method for implementing transformations in digital image processing
JPS62187977A (ja) 画像デ−タ処理装置
US4797852A (en) Block shifter for graphics processor
JPH0731726B2 (ja) イメージ処理システム
JPS6116369A (ja) 画像処理装置
EP0085210A1 (en) Image processing system
JPH07121693A (ja) 画像処理装置
JPH0522238B2 (ja)
JP2753349B2 (ja) 任意角回転画像データ入出力方法及びその入出力回路並びにこれらを用いた電子ファイル装置
JPS6398694A (ja) パタ−ンデ−タの縦横変換装置
JPH028336B2 (ja)
JPH061449B2 (ja) 画像編集用イメ−ジメモリ
JPH046153B2 (ja)
JP2647379B2 (ja) 画像処理装置
JPH0433178A (ja) 画像情報処理方式
JPH0248729A (ja) デイスプレイ装置
GB2218603A (en) Pixel data includes address of next pixel to increase image generation efficiency
JPS63298481A (ja) 画像デ−タ処理装置
JPH02108173A (ja) 情報処理装置
JPH0740294B2 (ja) パターン縮小方法
JPH07121061B2 (ja) 画像処理装置