JP2523222B2 - 画像縮小/拡大方法及び装置 - Google Patents

画像縮小/拡大方法及び装置

Info

Publication number
JP2523222B2
JP2523222B2 JP2328813A JP32881390A JP2523222B2 JP 2523222 B2 JP2523222 B2 JP 2523222B2 JP 2328813 A JP2328813 A JP 2328813A JP 32881390 A JP32881390 A JP 32881390A JP 2523222 B2 JP2523222 B2 JP 2523222B2
Authority
JP
Japan
Prior art keywords
image
bit
bits
original
pixel
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 - Fee Related
Application number
JP2328813A
Other languages
English (en)
Other versions
JPH03231383A (ja
Inventor
エス ブルームバーグ ダン
ディヴィス ダニエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Publication of JPH03231383A publication Critical patent/JPH03231383A/ja
Application granted granted Critical
Publication of JP2523222B2 publication Critical patent/JP2523222B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本願は一般的には画像処理装置に関し、特に画像ビッ
トマップを縮小したり拡大したりする技術に関する。
〔従来の技術及び発明が解決しようとする課題〕
現代の電子工学的プリンターやスキャナーによって使
われている解像において、画像内における画素の数は非
常に大きい。1インチあたり8000ドットの場合、8.5イ
ンチ×11インチの単一の画像には33,000,000個の画素が
含まれている。そのような大量のデータを処理ずくこと
は、高くつくうえ時間もかかる。幸い、多くの画像翻訳
演算は完全な解像度でなされる必要はない。しかし、大
きさを統一して縮小した画像上でされなければならな
い。縮小した画像上の動作によって、意義ある性能の向
上がもたらされる。一般には、任意の要因によって、画
像を縮小する必要はない。むしろ2の低次の累乗による
縮小で一般には充分である。
米国特許第4,742,553号のイワンには、解像度変換を
実行する状況下にあっては、閾値縮小の使用が可能であ
ることが示されている。この中の例として、4入力画素
の各タイルが単一の出力画素上にマップされている2×
2縮小が示されている。この特定の例示においては、ON
状態にある0−2の入力画素に対してOFFであり、3−
4の入力画素がONであるのに対し出力画素はONであっ
た。ただし該技術によれば、グレースケール情報が失わ
れるという結果になることは避けられないということに
注意しなければならない。しかしながら、グレースケー
ル情報が重要ではなくなるアプリケーションがある。
〔課題を解決するための手段〕
本願は、効率的に画像のビットマップを縮小する技術
に関するものである。
すなわち、たてm、横nの要素によってM×N(それ
ぞれN画素がM行ある)の入力2値画像を縮小する方法
は、隣接するm行の連続グループ内のにおけるビット間
で少なくとも一つの論理演算を行い、その結果、m行か
らなるグループの各々について、単一の行を提供する工
程と、n個の隣接する列の連続するグループ内における
ビット間で少なくとも一つの論理操作を行い、その結果
n列からなるグループについての関いつの列を提供する
工程とを有している。ある種の縮小の型においては、該
結果としての縮小画像は所望の出力画像にある。一方他
のタイプの場合は、該結果の画像は、所望の複数の中間
画像であり、そしてそれらは後に組み合わされて所望の
出力画像を提供する。
2×2の縮小の例を考えてみよう。入力画素の2×2
のタイルの各々は該出力画像内の単一画素上にマップさ
れる。そして、該出力画像内の画素の値は、該入力画像
内のタイルにあるONの画素数が閾値レベル以上であるか
否かによって決定される。レベル=1(1またはそれ以
上の画素がON)での縮小は、隣接する行の対の論理和を
とり、行の数を減らし、次に隣接する列の対の論理和を
とることによって行われ、所望の縮小画像を提供してい
る。同様に、レベル=4での縮小は隣接する行の対の論
理積をとり、次に隣接する列の対の論理積をとることに
よって行われ、所望の縮小画像を提供している。しか
し、レベル=2またはレベル=3での縮小は、まず中間
画素を形成し次にそれらを組み合わせて作る必要があ
る。一方の中間画像は、隣接する行の対の論理和をと
り、次に隣接する列の論理積をとることによって形成さ
れ、他方の中間画像は隣接する行の論理積をとり次に隣
接する列の論理和をとることによって形成される。レベ
ル=2での縮小画像は該中間画像の論理和をとることに
よって形成され、レベル=3での縮小画像は該中間画像
の論理積をとることによって形成される。
コンピュータ内における語並列処理によって、行と共
進会の間の論理演算が計算上効率的に行われるようにな
る。画素の行は、メモリー内の多数の隣接する語によっ
て表されている。このため、一対の行をビットごとに論
理的に組み合わせる演算は、一方の行を形成する語と他
方の行を形成する語とを組み合わせることによって実行
される。2つの語を論理的に組み合わせる単一の操作
は、一度に多数のビット対を組み合わせるので、この方
が計算上効率的である。
これに対して、画素の列はメモリ内の多数の語の各々
からの1ビットによって表されている。それ故、2つの
列を論理的に組み合わせるには各語内のビット対を組み
合わせることが必要であり、すなわち1対を一度に、語
並行処理の利益を享受することなく行われる。それ故、
列演算は、該論理操作以前に、2つの列における対応す
るビット、すなわち2ビットを一度に見つけなければな
らないので、計算上はずっと効率が悪い。
列演算は、検索表を使用することによってスピードア
ップすることができる。各行が論理的に連続的な画素語
である場合、要素nによる縮小は各論理演算について1
つの検索表を必要とする。該画素語はn*k画素幅の線
分に分割される。該表は2n*kの項目を含んでおり、
そしてそれは(n*k)−ビットアドレスでアドレス可
能である。そのアドレスについての項目はkビット幅
で、各ビットは該(n*k)−ビットアドレスのnビッ
トグループ上の所望の論理演算をした結果と等しくな
る。
汎用コンピュータで行及び列演算を実行することは、
たとえ列演算に検索表を用いたとしても、コンピュータ
語の幅による制約を受ける。本願の他の側面は、非常に
広い画素語上で列演算を実行するための技術とハードウ
エアを提供することによって、この制約を克服すること
である。画素語は2Qビットで、ビットは0から(2Q−
1)までの値をとって変わると仮定する。画素語は2つ
の段階で縮小される。
第1の段階における装置は該幅広の画素語と、それ自
身の移動バージョンどう組み合わせる装置を提供する。
この目的のためには、該画素語は、一組のレジスターの
内に読み込まれ、一方のレジスター内において1位置だ
け(たとえば右へ)移動し、そして該2つのレジスター
の内容は論理的に組み合わされる。その結果、一つおき
のビット位置に所望の対の組み合わせを有する画素語が
できるが、右シフトの場合には奇数ビット位置1,3,...
(2Q−1)となる。その結果は、プロセッサデータポー
トへ転送され、データバス上で利用される。
第2段階における装置は、分割されたビットを圧縮す
る装置を提供している。それは、各々2つのポートを有
する、ラッチされた第1及び第2のトランシーバを有し
ている。該第1ポートの各々からの回線はデータバスの
一方の半分の側の隣接する回線に接続されている。他
方、該第2のトランシーバの第2ポートからの回線は該
データバスの他方の半分の側にある隣接する回線と接続
されている。
次に、画素語は以下のように圧縮される。第1の入力
画素語は第1段階で処理され、当該ビット(有効ビッ
ト)が該奇数ビット位置を専有し、その結果がデータバ
ス上におかれる。該バス上の奇数ビットはその第1ポー
トを介して該第1のトランシーバの中にラッチされる。
第2入力画素語も同様に処理され奇数ビットはその第1
ポートを介してデータバス上の各々の半分に読み出さ
れ、該プロセッサデータポートにつながれている。これ
は、該2つの入力画素語は列縮小バージョンである新し
い画素語を示している。それはメモリ内の該縮小画像用
にとっておいた場所に書き戻される。
明細書の以下の記載及び添付図面を参照することによ
って、本願の本質と利点が理解できよう。
〔実施例〕
定義及び用語 この議論においては、2値画像を扱っている。この場
合、「画像」という語は、画素からなる2次元データ構
造の表現をいう。1つの2値画像は所定の画素が“ON"
または“OFF"である画像である。2値画像は、1または
それ以上の原画像が目標画像上にマップされた多数の演
算に応じて走査される。かかる走査の結果は一般には画
像と呼ばれている。処理の開始点である画像は原画像と
呼ばれることもある。
画素は、黒である場合にはON、白である場合にはOFF
と定義される。但し、黒で指定した場合はON、白で指定
した場合にはOFFとしたのは、当該文書のほとんどが白
地に黒で書かれているという事実を反映したものであ
る。本願の技術は陰画にも適用することができるが、そ
の場合は黒字に白となる。
画像の「中実領域」とは、両次元内における多数の画
素を延長する領域であって、該画素のすべてがONである
ものをいう。
画像の「テキスチャ領域」とは、比較的細かな粒状パ
ターンを有している領域をいう。テキスチャ領域の例と
しては、ハーフトーンまたは点刻された領域がある。
「テキスト」とは文字、数字、またはアルファベット
ではない言語学的な図形などの他の記号をいう。
「ライングラフィックス」とは、テキスト以外のグラ
フ、図形または線図からなる文書または画像の部分をい
う。一般にはこれらは、文書と比べた場合にかなり長さ
を有する水平、垂直及び斜の線からなっている。グラフ
には、組織図における水平及び垂直な線から工学図面に
おけるもっと複雑な水平、垂直及び斜めの線までが含ま
れている。
「マスク」は、通常原画から由来するものであって、
該原画内の当該領域に対応するON画素の領域を含んでい
てもよい。
AND、OR、及びXORは画素単位に2つの画像間で実行さ
れる論理演算である。
NOTは、画素単位に単一の画像上で実行される論理演
算である。
「拡張」は、規模要素Nによって特徴づけられる規模
演算をいい、原画像にある各画素はN×N四方のすべて
の原画の画素と同じ値を有する画素となる。
「縮小」は、規模要素Nと、値レベルMによって特徴
づけられる規模演算である。Xスケール=Nでの縮小
は、必然的に原画像をN×N四方の画素に分割すること
と、該原画像におけるそのような正方形の各々を該目標
画像上の単一画素にマップすることとを伴う。該目標画
像内の画素に対する値は、値レベルMによって決定され
る。画像Mは1とNの間の数字である。該画素正方形内
のON画素の数がM以上であるとき、該目標画素はONとな
り、そうでない場合はOFFとなる。
「サブサンプリング」とは原画像がより小さな要素に
細分され(典型的には正方形)、該原画像内の各要素は
目標画像内の小さな要素にマップされる。各目標画像要
素についての画素値は、該原画像要素内の画素の選択さ
れたサブセットによって決定される。典型的には、サブ
サンプリングは必然的に単一画素にマップすることを必
然的に伴うが、該目標画素値は該原画要素から選択した
画素と同一である。かかる選択はあらかじめ決め手おい
てもよいし(たとえば左上の画素)、ランダムに行って
もよい。
「4連続領域」とはON画素のセットであって、該セッ
トの各画素は、該セット内の少なくとも一つの他の画素
に水平または垂直に隣接する。
「8連続領域」は、ON画素のセットであって、該セッ
トの各画素は、該セット内の少なくとも一つの他の画素
に水平、垂直、または斜めの位置で隣接するものをい
う。
多数の形態演算は、原画像を構造要素(SE)と呼ばれ
る画素型によって定義される規則に応じて、等しい大き
さの目標画像上にマップされる。該SEは中心位置及び多
数の画素位置によって定義されていて、そしてその各々
は定義された値(ONまたはOFF)を有している。他の画
素位置は、「無関係」と呼ばれ、無視される。該SEを定
義づける画素は互いに隣あう必要はない。中心位置は、
該パターンの図形的な中心である必要はなく、該パター
ンの中にある必要さえない。
「中実」SEとは周縁部を有し、この中はすべての画素
がONとなっているものをいう。たとえば、2×2の中実
SEは2×2四方のON画素である。中実SEは方形である必
要はない。
「ヒット・ミス」SEとは、少なくとも一つのON画素と
少なくとも一つのOFF画素を特定するSEのことである。
「侵食」とは、SEの中心を原画像内の対応する画素内
の位置に重ね合わせたところ、該SE内のON及びOFF画素
と、その下にある該原画像内の画素とが一致することに
なる場合、またはその場合のみ、該目標画像内の所定画
素がONになるようにした形態上の演算である。
「拡張」とは、該原画像の所定画素がONであると、該
目標画像の対応する位置に該SEの中心を据えた状態で、
該SEを該原画像内に書き込むようにした、形態上の演算
をいう。拡張に使用されるSEは典型的にはOFF画像を有
しない。
「開放」は形態上の演算であって、侵食の後に拡張を
行うことからある操作である。この結果、該目標画像内
のSEは、該原画像内の一致の各々のために反復される。
「閉鎖」は、展開の後に侵食を行うことからある形態
上の操作である。
上記に定義された種々の演算は、名詞、形容詞、動詞
の形で言及されることもある。たとえば、拡張(名詞
形)について述べる場合には、画像を拡張するもしくは
画像が拡張される(動詞形)という使い方をする場合も
あるし、また、該画像が拡張演算される(形容詞形)と
いうように使われる場合もある。しかし、意味の上で違
いはない。
装置概略 第1図は本願の実施例にかかる画像分析装置1のブロ
ック図である。装置1の基本的な演算は、文書2の特徴
的な部分を取り出したり、除去したりすることである。
この目的のために、該装置は画素単位で文書をデジタル
化し、その結果、データ構造、典型的には画像と呼ばれ
る形を提供するスキャナー3を有している。アプリケー
ションによっては、該スキャナーは2値画像(1画素に
つき1ビット)またはグレースケール画像(1画素につ
き複数ビット)であってもよい。該画像は、文書の生の
内容を有しており、スキャナーの解像度の正確さに寄与
している。該画像は、メモリ4に送られかもしくはファ
イルとしてディスクや他の大容量の記憶装置などのファ
イル記憶装置5内に記憶してもよい。
プロセッサ6はデータの流れを制御し画像処理を実行
する。プロセッサ6は汎用コンピュータ、画像処理作業
ように最適化された特殊目的のコンピュータ、または汎
用コンピュータと付属の特殊目的のハードウェアとを組
み合わせたものでもよい。ファイル記憶装置が使用され
た場合には、画像は処理の前にメモリ4に転送される。
メモリ4は中間データ構造および可能ならば最終処理デ
ータ構造を記憶するのに用いられる。
画像処理の結果は、本発明がその一部を形成している
のだが、由来する画像、数値データ(画像の突出した形
態の座標など)またはその組み合わせでもよい。この情
報は、プリンターやディスプレイなどの特定目的のアプ
リケーションハードウェア8に伝えられたり、ファイル
記憶装置5に書き戻されたりしてもよい。
基本手続き MxN原画像(M行、N列)のmxn縮小(縦方向にm,横方
向にnの因数による縮小)を考える。以下の議論の大部
分が2値画像(1画素につき1ビット)を扱っているの
で、画素をビットと言うことが多い。
縮小は連続した2つのステップで行われる。第1ステ
ップにおいて、ラスタ処理(ANDかORのいずれか)がm
個の行の各集合に対して行なわれ、その結果m個の行が
一時的な配列の単一行となる。これはm=2として第2A
図に示されている。このようにして、行の数は因数mに
より縮小される。もしM/mが整数でないならば、剰余
(=mを法としたM)の行は無視される。第2ステップ
において、n=2として第2B図に示したように、ラスタ
処理が一時的な配列のn個の列の各集合を縮小された配
列の単一の列に写像する。この縮小において、剰余(=
nを法としたN)の列は無視される。
この手続きは全画像の変換から生じる問題を、ビット
のmxnの長方形配列(タイルと呼ばれる)を1ビットに
縮小する論理問題に還元する。ここでは、原画像の各mx
nタイルの閾値処理に帰する行と列間の一連のAND及びOR
演算を見出すことが望まれる。
分かり易くするために、寸法が等しい縮小因数、即ち
m=nを考えることにする。特に行と列のラスタ処理に
より実行可能で、nxnのビットマップを単一のビットに
写像する一連のn2ブール演算子が望ましい。この演算子
はi=1,2,...,n2として、iより少ないONビットを備え
た全てのnxnビット配列を単一のOFFビットとし、i以上
のONビットを備えた全ての配列を単一のONビットとする
特性を備えたものである。
この問題に対する独特な解決法は一般に存在しない
が、以下の制約条件の下で得た結果を開示する。
(1)先ず行演算を行い、次に列演算を行う。
(2)行と列間の演算はAND若しくはORである。
第1の条件はある意味で任意であるが、更に具体的な
説明を要する。しかしながら、特定の処理系において
は、行演算が最初に行われるならばより迅速に処理する
ことができる。
2x2縮小の場合、僅か24=16通りの構成があるだけで
あり、最小写像演算子はこれらの16通りの場合を考える
ことにより容易に見出すことができる。しかしながら、
この構成の数は累乗n2とともに指数関数的に大きくな
る。例えばn=3のときは29=512通りの構成、n=4
のときは216=65,536通りの構成が考えられる。そうし
た大きな集合に対して機能する演算子を見つける方法
は、それらを構成間の対称を利用する特定の行と列の演
算子の積に分解することである。ここで選定された行と
列の演算子はそれ自体1xn及びnx1配列のための閾値処理
演算子である。その後これらの行と列の演算子の積はnx
n演算子の基底集合を形成するために用いられ、そこか
ら閾値処理に適したブール組合せを選定する。
これと関連して以下に分析的な議論を展開するため
に、2x2の閾値縮小を行う行及び列の演算子の概要を考
察することが有益である。第2C図はこれらの演算子の流
れ図である。
レベル=1(1以上の画素がON)での縮小は、行の数
を減少させるために隣接する行の各対の論理和をとるこ
とにより行われ、また所定の縮小された画像を得るため
に隣接する列の各対の論理和をとることにより行われ
る。同様にレベル=4での縮小は、隣接する行の各対の
論理積をとり、その後所定の縮小された画像を得るため
に隣接する列の各対の論理積をとることにより行われ
る。しかしながら、レベル=2又はレベル=3での縮小
は、その後組み合わせられる一対の中間画像を生成する
ことが必要である。一方の中間画像は隣接する行の各対
の論理和をとり、その後隣接する列の各対の論理積をと
ることにより生成される。他方の中間画像は隣接する行
の各対の論理積をとり、その後隣接する列の各対の論理
和をとることにより生成される。レベル=2での縮小さ
れた画像は2つの中間画像の論理和をとることにより生
成され、レベル=3での縮小された画像は2つの中間画
像の論理積をとることにより生成される。
このような縮小に伴う特徴の一つは、メモリ内に完全
な原画像や(必要ならば)完全な中間画像を持つことが
不要になることである。むしろm個の行だけが必要とさ
れる。行またはそのセグメントは論理的に組み合わせら
れて単一の行を形成し、更にこの行内のnビットのグル
ープが組み合わせられて、その結果は所定の縮小された
画像の一部として永久的に、或いは中間画像の一部とし
て一時的に格納される。後者の場合、他の必要な中間画
像の部分も、同様に生成されて一時的に格納されるが、
これらは組み合わせられて所定の縮小された画像の一部
として格納される。
n=2縮小の閾値演算子:2x2→1x1 上述したように1x2(及び2x1)ビットマップをスレッ
ショルドする行(及び列)演算子を選定する。明らかに
行か列に必要な閾値処理演算子は、 a: OR 1個以上のONビット b: AND 2個のONビット これらの演算子の4通りの積は、2x2ビット配列に対
する演算子の基底集合を形成する。
aa:OR/OR 全部が1個以上のONビットを持つ ab:OR/AND 一部が2個以上のONビットを持つ ba:AND/OR 一部が2個以上のONビットを持つ bb:AND/AND 全部が4個のONビットを持つ 右側の注釈は演算子がONビットを付与する2x2配列を
説明している。要するに、演算子aa及びbbはそれぞれ1
個及び4個のONビットにおける閾値処理に適したもので
ある。2個及び3個のONビットを持つ配列に適した閾値
処理演算子を見つけるためには、基底演算子のブール組
合せを形成する必要がある。
基底演算子がONビットを付与する配列型に関する上記
説明を再整理することは有益である。一次元の(行及び
列)演算子が閾値演算子として選定されているので、こ
れら4通りの2x2基底演算子は2x2配列の定まった部分集
合に対して作用するときONビットを付与する。
aa: 全部が1個以上のONビットを持つ ab: 各列が少なくとも1個のONビットを持つ ba: 少なくとも1列が2個のONビットを持つ bb: 全部が4個のONビットを持つ ここで16通りの2x2ビット配列を考える。一次元閾値
演算子の使用から直接導かれる以下の2つの縮小原則に
従ってこれらの配列の部分集合を選定する。
(1)ONビットの列内での位置は重要ではない。従って
ONビットを各列の上部の行に置く。
(2)各列は置換することができるので、各列内のONビ
ットの数が右方向へ行くにつれて減少するように各列を
配置する。
これらの縮小原則は配列の標準形を形成する。
第3A図は上記演算子により作用されるときONビットを
付与する(標準形の)最小配列を示す。例えば、1個の
ONビットを持つ配列は、その各行の論理和がとられ、そ
の後各列の論理和がとられるときONビットを付与する。
しかしながら、上部左角に単一のONビットを有する配列
は上記2つの原則に従った標準形である。第3B図は全て
異なった標準2x2ビット配列の集合を示す。(OFF画素の
配列は全て図示しない。) その後の汎用手続きは異なった配列の集合をこの標準
形で表現することである。これらの異なった配列のいず
れかを写影する演算子は、第2図で象徴的に表したよう
に、概して基底演算子の共通集合である。これらの標準
配列を正確に1個、2個、3個、...のONビットを有す
る各集合に分類する。その時、閾値処理演算子は各配列
に特有の演算子の和集合である。
後のセクションで用いるために、標準配列とそれらを
写影する演算子の両方に対して以下の記数法が採用され
る。第j列にe(j)個の項目を備えたnxn標準配列は n(e(1),...,e(n)) で表される。
従って、第3図に示された標準配列は、 2(1、0) (1個がONビット) 2(1、1)及び2(2、0) (2個がONビット) 2(2、1) (3個がONビット) 2(2、2) (4個がONビット) 二次元基底演算子を表示した第2図を参照すると、検
査により2x2閾値演算子II1、II2、II3、II4を書き込む
ことが可能となる。
II1: aa 全部が1個以上のONビットを持つ II2: ab∪ba 全部が2個以上のONビットを持つ II3: ab∩ba 全部が3個以上のONビットを持つ II4: bb 全部が4個以上のONビットを持つ 第3図に示したように2個のONビットに対して2通り
の標準配列があり、基底演算子abとbaの和集合はそうし
た配列の全てを明瞭に写影する。従って、演算子II2
これら2個の基底演算子の和集合である。3個のONビッ
トに対してはただ1通りの標準配列が存在し、この配列
に対応する閾値処理演算子II3は基底演算子aとbaの共
通集合でなければならない。(これは図形的には第2図
で示したabとbaに対する配列表示の和集合のようにみえ
る。) 閾値演算子はこれらの基底演算子に基づいて表現され
るとき単純な対称を示す。閾値演算子は幾つかの例を試
みた後に検査により書き込まれることができたが、上述
の形式のアプローチはn>2の閾値処理縮小に有効であ
る。
2x2→1x1縮小の実行 2x2演算子II1−II4は、メモリ・ピクスレクトのサン
・ラスタロプス機能を用いて、Cで実行された。サン・
ラスタ処理はそれ自体Cで書き込まれ、特に列ラスタ処
理は(第1B図)で非常に遅い。サン3/260を用いると、1
000x1000画素の2値画像はII1とII4を用いて2.5秒で縮
小でき、II2とII3で5秒である。しかしながら、このCP
U時間の90%以上は相対的に小さな列ラスタ処理に費や
される。
テーブル索引スキームは25の因数により列縮小処理を
高速度化することができる。第4図は8ビット・セグメ
ントの画素列の対になったビット組合せ(OR及びAND)
を計算するためのテーブル索引の概略図である。ここで
は(列のラスタ処理により生成される)中間画像内で8
ビットずつ索引付けされたOR用とAND用に1つずつ計2
つの28−項目のテーブルを構成する必要がある。この二
つのテーブルは更にそれぞれ索引ビットの対になった論
理和演算及び論理積演算に対応する縮小画像の4ビット
・項目を備えている。この図は幾つかの代表的な画素セ
グメントとそれらがポイントするテーブル・項目を示し
ている。
上述したように、第4図は4ビット・項目で28の項目
を有するテーブルに付けられた8ビット索引を示す。こ
れは単純化のためであり、実際の実施例では8ビット・
項目で216の項目を有するテーブルに付けられた16ビッ
ト索引を使用している。このOR及びAND検索表はビット
・マスキングを要しない反復アルゴリズムから作成する
ことができる。16ビット索引iを備えたORテーブルに対
して、8ビット・テーブル値t(i)は以下の式により
生成される。
t(0)=0,i=1; (d=0...7) i0=22d; /*初期値 i*/ t0=2d ; /*増分値 t*/ (r=1...3) ここで、 k=0...(i0−1) t=(i)=t(k)+t0; i=i+1; 同様に、16ビット索引のANDテーブルは下式により生
成される。
t(0)=0,i=1; (d=0...7) i0=22d; /*初期値 i*/ t0=2d ; /*増分値 t*/ (r=1...3) (R<3)ならば t Inc=0; その他の場合は t Inc=t0; ここで、 k=0...(i0−1) t=(i)=t(k)+t Inc; i=i+1; この混成(ラスタロプ/索引)実行により、列論理演
算は1語当たり基準で、サン・ラスタロプ行演算と同程
度に迅速に行われる。かくして、列演算は行演算の半分
の時間で行われる。ラスタ演算のみ用いる実行と比較す
ると、全体の時間は10の因数により低減される。混成実
行においては1000x1000画素の2値画像に対して、縮小
処理II1とII4は0.25秒かかり、II2とII3は0.5秒かか
る。行演算の最適化と列に対するテーブル索引によりこ
の時間は0.1秒と0.2秒に短縮できる。従ってサン3/260
の処理速度は、高速及び低速縮小に対してそれぞれ毎秒
10x106画素及び毎秒5x106画素である。
n=3縮小の閾値演算子:3x3→1x1 2x2縮小に用いられた方法は、類似の3x3縮小にも適用
することができる。第5A図及び第5B図は、上述したよう
に展開された標準3x3配列と閾値処理を示す。
29の3x3ビット配列に対する閾値演算子を見つけるた
めに、再び行か列の間の閾値演算子からスタートする。
これらの演算子はここでは1つ以上の連続した演算より
なっている。演算子ORi,j(又はANDi,j)はi及びjの
論理和(又は論理積)を意味するものとし、iとjは集
合(1、2、3)の等しくない要素である。この時、行
と列に対する3つの閾値写影演算子が以下のように表わ
されることは容易に理解できよう。
a:OR2,1∪ OR3,1 (1個以上がONビット) b:AND2,1∪ AND3,1∪ AND3,2 (2個以上がONビット) c:AND2,1∩ AND3,1 (3個全部がONビット) 以下のように連続的に演算することにより、a及びc
演算子を(3個から)2個の演算に縮小することができ
る。
a:OR2,1OR3,1 c:AND2,1AND3,1 ここでORi,j又はANDi,jの結果はjに置かれ、演算子
は左から右へ評価される。
前述したように、これらの行及び列演算子の積から3x
3ビット配列に対する9個の演算子の基底集合を形成す
る。これらの演算子が3x3ビット配列に作用すると、定
まった配列の部分集合に対してONビットを付与する。
aa: 1個以上のONビット ab: 2列で少なくとも1個のONビット ac: 3列で少なくとも1個のONビット ba: 1列で少なくとも2個のONビット bb: 2列で少なくとも2個のONビット bc: 3列で少なくとも2個のONビット ca: 1付で少なくとも3個のONビット cb: 2列で少なくとも3個のONビット cc: 9個全部がONビット これらの基底演算子のブール組合せとして閾値演算子
を形成するために、上述した原則の意味で異なる全ての
標準3x3配列を形成する。これらの標準配列は、 3(1,0,0) (1個のONビット) 3(1,1,0)、3(2,0,0) (2個のONビット) 3(1,1,1)、3(2,1,0)、3(3,0,0) (3個のONビ
ット) 3(2,1,1)、3(2,2,0)、3(3,1,0) (4個のONビ
ット) 3(2,2,1)、3(3,1,1)、3(3,2,0) (5個のONビ
ット) 3(2,2,2)、3(3,2,1)、3(3,3,0) (6個のONビ
ット) 3(3,2,2)、3(3,3,1)、3(3,3,0) (7個のONビ
ット) 3(3,3,2) (8個のONビット) 3(3,3,3) (9個のONビット) 上述した9個の基底演算子の機能により、概して基底
演算子の共通集合として表された各標準配列に係る識別
が行われる。閾値演算子III1−III9は、標準配列に対応
するこれらの概して合成演算子の和集合として見出され
る。
閾値処理演算子は高度の対称を示す。それらは各項を
組み合わせることによりある程度まで縮小でき、項の幾
つかは2x2演算子により表現することができる。例え
ば、 III3=ac∪II3∪ca しかしながら、この表現において、II3のa及びb演
算子は2x1ビット配列に対する演算子ではなく、3x1(又
は1x3)配列に対する閾値演算子であることに留意され
たい。
n=4縮小の閾値演算子: 4x4→1x1 4x4縮小への拡張は直接的である。第6A図乃至第6H図
は以下に説明するように展開された標準4x4配列及び閾
値演算子を示す。
216の4x4配列に作用する閾値演算子は一次元4x1(及
び1x4)閾値演算子の積から導かれる。これらは上述し
た3x1演算子の拡張により直接書き込むことができる
が、以下の連続した演算の集合により最も効果的に表現
される。
a: OR2,1OR4,3OR3,1 (1個以上がONビット) b: (OR2,1OR4,3AND3,1)∪ (OR4,1OR3,2AND2,1) (2個以上がONビット) c: (AND2,1OR4,3AND3,1)∪ (OR2,1AND4,3AND3,1) (3個以上がONビット) d: AND2,1AND4,3AND3,1 (4個全部がONビット) 3x3縮小の演算子a及びcの場合のように、これらの
演算は左から右へ実行され、各部分の結果は第2添字に
より与えられる行又は列内に配置される。
これらの演算子は演算子II1−II4が2x2ビット配列に
対して行ったものと同様の4x1ビット配列に対する閾値
処理関数を実行する。しかしながら、前者の表現は配列
の一次元的特性の故に一層複雑になっている。
第7図及び第8図は4つの隣接する行の特定のビット
に対する演算子b及びcの作用をそれぞれ示す。第7図
において演算子bは4個のビット(1100)に作用する。
左側は0を付与するが、右側は1と評価する。その結論
はこれらの2つの部分の論理和であるので、演算子bは
このビットに対して1を付与する。第8図において演算
子cは4個のビット(1101)に作用する。この場合、左
側は1と評価し右側は0と評価する。演算子cは2つの
部分の論理和である1を付与する。
上記で定義した行と列の閾値処理演算子を用いてこれ
らの演算子の積をとり、4x4ビット配列の集合に適用さ
れるとき既存の部分集合に対してONビットを付与する16
個の演算子の基底集合を形成する。
aa: 1個以上がONビット ab: 2列で少なくとも1個がONビット ac: 3列で少なくとも1個がONビット ad: 4列で少なくとも1個がONビット ba: 1列で少なくとも2個がONビット bb: 2列で少なくとも2個がONビット bc: 3列で少なくとも2個がONビット bd: 4列で少なくとも2個がONビット ca: 1列で少なくとも3個がONビット cb: 2列で少なくとも3個がONビット cc: 3列で少なくとも3個がONビット cd: 4列で少なくとも3個がONビット da: 1列で少なくとも4個がONビット db: 2列で少なくとも4個がONビット dc: 4列で少なくとも4個がONビット dd: 16個全部がONビット 異なる標準4x4ビット配列は以下のように表される。
4(1,0,0,0) (1個がONビット) 4(1,1,0,0)、4(2,0,0,0) (2個がONビット) 4(1,1,1,0)、4(2,1,0,0)、4(3,0,0,0) (3個がONビット) 4(1,1,1,1)、4(2,1,1,0)、4(2,2,0,0)、 4(3,1,0,0)、4(1,0,0,0) (4個がONビット) 4(2,1,1,1)、4(2,2,1,0)、4(3,1,1,0)、 4(3,2,0,0)、4(4,1,0,0) (5個がONビット) 4(2,2,1,1)、4(2,2,2,0)、4(3,2,1,0)、 4(3,3,0,0)、4(4,1,1,0)、 4(4,2,0,0) (7個がONビット) 4(2,2,2,2)、4(3,2,2,1)、4(3,3,1,1) 4(3,3,2,0)、4(4,2,1,1)、 4(4,2,2,0)、4(4,3,1,0)、 4(4,4,0,0) (8個がONビット) 4(3,2,2,2)、4(3,3,2,1)、4(3,3,3,0) 4(4,2,2,1)、4(4,3,1,1)、 4(4,3,2,0)、4(4,4,1,0) (9個がONビット) 4(3,3,2,2)、4(3,3,3,1)、4(4,2,2,2)、 4(4,3,2,1)、4(4,3,3,0)、 4(4,4,1,1)、4(4,4,2,0) (10個がONビット) 4(3,3,3,2)、4(4,3,2,2)、(4,3,3,1) 4(4,4,2,1)、4(4,4,3,0) (11個がONビット) 4(3,3,3,3)、4(4,3,3,2)、4(4,4,2,2)、 4(4,4,3,1)、4(4,4,4,0) (12個がONビット) 4(4,3,3,3)、4(4,4,3,2)、4(4,4,4,1) (13個がONビット) 4(4,4,3,3,)、4(4,4,4,2) (14個がONビット) 4(4,4,4,3) (15個がONビット) 4(4,4,4,4) (全部がONビット) 前述したように、これらの標準配列はそれぞれ、二次
元基底演算子の共通集合である関連した演算子を有して
いる。4x4配列に対する16個の閾値演算子は、標準配列
を表すこれらの演算子の和集合と考えることができる。
この表現は演算子を縮小する低次の標準配列の集合がよ
り高次の演算子内に不変的に含まれるということに注目
することにより幾分単純化することができる。例えば基
底演算子a、b、cに関するIV1、IV2、IV3はそれらのI
II1、III2、III3と、一次元閾値処理演算子a、b、c
の意味が2つの場合に異なるということを除いて、それ
ぞれ等しくなっている。
画像拡大演算子 整数の因数により2値画像を各方向に拡大する演算子
は、上述したアプローチを変形して簡単に構成すること
ができる。画像を水平方向と垂直方向に、それぞれ因数
cとrにより拡大したいと仮定する。上述したように、
このプロセスは2つのステップを必要とする。即ち各行
のr倍の複写と、拡大画像への挿入とともにそれに続く
因数cによる列の同様の拡大である。
列ラスタ演算の非効率の故に、迅速な実行には列拡大
のためのテーブル索引が必要である。第9図は画像の行
の長さを2倍に拡大するテーブル索引の概略図である。
例図は4ビット・セグメントを8ビットに拡大する場合
を示している。より一般的には、列の数が因数cにより
拡大されるとすると、原画像の1バイト(8ビット)を
拡大画像のcバイトに変換するためには各cバイトの28
項目を備えた検索表で十分である。以下のアルゴリズム
は原画像の8ビットを16ビットに写像してその幅を2倍
にする各16ビットの28項目t(i)のテーブルを生成す
る。
t(0)=0,i=1; (d=0...7)として、 i0=2d; /*初期値i*/ t0=3(i02; /*増分値t*/ (k=0...i0−1)として、 t(i)=t(k)+t0; i=i+1; 上述したように、このアルゴリズムの実行は語基準で
行ラスタ演算と比較できる。
グレイスケール画像への拡張 これらの方法は濃淡画像を縮小する単純なアプローチ
を導くものである。簡単な例として、同数のビット/画
素を備えた縮小グレイスケール画像を生じるような4ビ
ット又は8ビットのグレイスケール画像の2x2縮小を考
える。
各2x2の正方内の4個の画素値を、平均値を持った単
一の画素に変換したい場合を考える。ここで画素値は8
ビットである。かくして4個の8ビットの数を各2x2正
方内で加算し、その結果を4で割る効果的な方法が望ま
れる。第1のステップは2値画像用の行ラスタロプスと
同様に、偶数行と奇数行の対応する(同じ列の)画素を
加算することである。オーバーフローを避けるために、
最初に右方向へのシフトが全ての画素値に対して行わ
れ、画像内の各バイトは2ビットずつ右方向へシフトさ
れる。従って、4による除法は加算の前に行われる。そ
の後、偶数行と奇数行の各集合の画素データが加算され
る。効率をよくするために、4個の連続した画素を32ビ
ット整数として扱って一度に1語を処理することができ
る。(画素データの各ラインは語境界にパッドされなけ
ればならないことに注意)列の加算は直接に或いはテー
ブル索引を介して行うことができる。直接法では1行内
の偶数と奇数の隣接するバイトは単純に加算される。テ
ーブル索引を用いた方が幾分効果的な実行が期待でき
る。2値画像の場合のように、各連続した16ビットは一
対の画素値を表し、配列の8ビットの内容は2個のバイ
トの整数和である。これらの行と「列」演算の結果がグ
レイスケール画像であり、因数2により各方向に寸法が
縮小される。ここで、縮小画像内の各画素の値は原画像
の4個の対応する画素の略平均値である。また、一連の
グレイスケール画像を与えることにより、2の累乗によ
る寸法縮小で容易に大幅な縮小を行うことができる。
4ビット/画素の画像に対しては、第1のステップに
おける4による各画素値の除法のみが変更を要する。特
殊な目的のハードウェアでは1バイト内で各ニブルをシ
フトしてもよいが、汎用機械では効率のよい実行のため
にテーブル索引が必要となる。再びテーブル内への索引
として16の連続したビット(この場合4画素)を用いる
ことができる。テーブル・項目の内容は2ビットずつ右
へシフトされた4個の画素値のそれぞれを表す16ビット
である。
専用ハードウェアの構成 上述したように、2x2縮小は行間の第1の論理演算
と、それに続く列間の第2の多分異なった論理演算を要
する。更に、閾値レベルによっては後に結合される2つ
の中間縮小画像を要する。列演算のためのテーブル索引
技術は極めて広範な原画素語を有することが望まれる場
合には煩雑である。テーブルが巨大なものになるか、多
重平行テーブル内で広範な原画素語の一部を検索する特
別な技術が必要とされるか、いずれかである。後者が明
らかに優れているが、他の場合には不必要な記憶アドレ
スとしてデータワードの一部を使用する方途が必要とな
る。
第10図は垂直方向に隣接した2Qビット原画素語間の論
理演算を行い、その結果としての2Qビット原画素語(ビ
ット0乃至Q−1)の対になったビット縮小を行う専用
ハードウェアの論理図表である。図は16原画素語を示し
ているが、このハードウェアは検索表技術が煩雑となる
ような遥かに長い原画素語に対して有効である。1行の
画像を僅か数原画素語で表すことができるので、512ビ
ット原画素語が企図されている。
2個の原画素語の縮小が200と202で示した2段階で行
われる。第1段階で、垂直方向に隣接した一対の原画素
語が第1メモリ203から読み出され、それらの間で所定
の第1論理演算が行われる。その後で所定の第2の論理
演算が結果の原画素語と1ビットだけシフトされた原画
素語のバージョンとの間で実行される。これにより、他
の全てのビット位置に有効ビットを有する処理原画素語
が提供される。第2段階で、処理原画素語内の有効ビッ
トは抽出された後に圧縮され、その結果は第2メモリ20
4内に格納される。第1メモリ203は原画素語サイズに対
応するワードサイズで編成されることが望ましい。第2
メモリ204は同様に編成してもよいし、同一の物理装置
の一部であってもよい。
ステージ200の好ましい実施例は統合部品技術から得
られるIDT49C402プロセッサなどの一連のビットスライ
ス・プロセッサである。この特定のプロセッサは16ビッ
トのワイド装置であり、それぞれが64個のシフト可能な
レジスタを有している。512ビットの原画素語に対して
は32個のレジスタが適している。単純化のために4個の
レジスタ205、206、207、208を備えた16ビットシステム
が示されている。プロセッサの処理の中で、第1及び第
2レジスタの内容を論理的に組み合わせて、その結果を
第1レジスタ内に格納する処理がある。この装置は制御
及び論理装置212とデータポート215を備え、更にデータ
バス217へ連結されている。制御装置212はプログラムメ
モリ218に連結されているが、メモリ203及び204から離
隔していても、又それらの一部であってもよい。第2ス
テージ202は第1及び第2のラッチトランシーバ220及び
222を備え、それぞれ原画素語の半分の幅である。各ト
ランシーバはそれぞれ2個のポートを有している。即ち
トランシーバ220は220aと220bで表されたポートを、ト
ランシーバ222は222aと222bで表されたポートを有して
いる。各トランシーバは原画素語の半分の幅である。ポ
ート220aと222aは、有効ビットに対応するデータバス21
7の奇数ビットにそれぞれ連結されている。ポート220b
はデータバスのビット0乃至(Q−1)に連結され、ポ
ート222bはビットQ乃至(2Q−1)に連結されている。
バスラインは非駆動ラインが強くプルアップされるよう
にレジスタ125によりプルアップされる。
レベル=2で2x2縮小の場合を考える。逐次処理にお
いて、 (a)垂直方向に隣接した一対の原画素語の論理積をと
って単一の2Q−1ビット原画素語を形成し、隣接する一
対のビットの論理和をとってQ−ビット原画素語を形成
し、更にその結果を格納し、 (b)垂直方向に隣接した一対の原画素語の論理和をと
り、その結果の2Q−ビット原画素語の隣接するビットの
論理積をとり、その結果のQ−ビット原画素語を格納
し、 (c)2個のQ−ビット原画素語の論理和をとる、 ことが必要となる。
これを実行するために、一対の垂直方向に隣接した原
画素語が第1のメモリ203からデータバス217上に読み出
され、レジスタ205及び206内に格納される。更にレジス
タ205及び206の論理積をとりその結果はレジスタ207及
び208に格納される。レジスタ208の内容は1ビット右方
向にシフトされ、レジスタ207と208の論理和をとり、そ
の結果をレジスタ208に格納する。一方、レジスタ205と
206の論理和をとり、その結果をレジスタ206と207に格
納する。レジスタ207の内容は1ビットだけ右方向にシ
フトされ、レジスタ206と207の論理積をとり、その結果
をレジスタ207に格納する。
この時点でレジスタ207は、2個の原画素語の論理和
演算と一対の隣接するビットの論理積演算の結果を含
み、一方、レジスタ208は原画素語の論理積演算と一対
の隣接するビットの論理和演算の結果を含んでいる。し
かしながら、レジスタ207及び208は奇数のビット位置1,
3,...(2Q−1)に有効ビットを含んでいる。レベル2
での縮小の場合、レジスタ207と208は論理和をとられ、
その結果はデータバス217に連結されたプロセッサのデ
ータポート215で利用できる。
データバスの奇数ビットはポート220aを介してトラン
シーバ220にラッチされ、その結果Qビットの原画素語
は隣接した位置に有効ビットを備える。このQビットの
項目はバス上にリードバックされ、メモリ204に転送さ
れることができるが、両方のラッチを用いることが望ま
しい。かくして、2個の新しい原画素語(水平方向に最
初の2個に隣接)が上述したようにステージ200で処理
され、その結果はプロセッサのデータポート215で利用
可能であり、更にポート222aを介してトランシーバ222
内にラッチされる。2つのトランシーバの内容はその後
ポート220b及び222bを介してデータバス上に読み出さ
れ、4個の2Q−ビット画素の縮小を表現している1個の
2Q−ビット画素を提供している。その結果は第2メモリ
204に転送される。この全体のシーケンスは行の対の中
にある全ての原画素語が処理されるまで続けられる。一
対の行が処理されると、次の対が同様に処理される。上
述したように各ビットスライス・プロセッサは64個のレ
ジスタを持っている。従ってメモリアクセスはブロック
モードで一層効果的であるので、8対の原画素語がメモ
リ203からブロックで読み出され、上記のように処理さ
れた後にプロセッサのレジスタに格納され、更にブロッ
クでメモリ204に書き込まれるならば、より迅速な処理
が期待できる。
画像の拡大も同様であるが、各ステップは逆の順序で
実行される。先ず、プロセッサは原画素語を読み出し、
その左半分をトランシーバ220のポート220bを介して送
り出す。これはポート220aを介してバス上に読み出され
る。バス上で結果のワード内の1つおきの画素だけが当
初有効であるので、プロセッサは一連のシフト及び論理
演算を用いて全ての画素を有効にする必要がある。レジ
スタ225が駆動していない全てのバスラインをプルアッ
プするので、各非駆動ライン、この場合全ての偶数ビッ
トが1となる。1と有効データを交互にするこの拡大さ
れた原画素語は2個のレジスタ内に読み出され、一方の
レジスタの内容が1位置だけシフトされた後、レジスタ
の論理積がとられる。奇数ビット内に0があれば、偶数
/奇数対に00があることになる。その他のビットはいず
れも影響されない。この原画素語はその後、拡大画像内
の垂直方向に隣接した2個のワードに書き込まれる。こ
のプロセスはトランシーバ222を使って原画素語の右半
分に対しても繰り返される。プロセッサは1行全体を一
度に1個の原画素語に拡大し、また全体の画像を一度に
1つの行に拡大する。
構造的考察 以下は実行に当たって速度と資源条件の両方の観点か
らなされた、平行処理、パイプライン方式、ストリーム
処理等の構造的な問題についての簡単な議論である。
第1に、上記アルゴリズムが平行処理に寄与すること
は明らかであり、それにより多くのプロセッサは所定の
数の走査線の帯等の画像の部分に対して閾値処理縮小を
独立して行うことができる。入出力帯幅が限定要因でな
いならば、処理時間は含まれるプロセッサの数と反比例
する。
第2に、nxn閾値処理縮小の場合には一度にnライン
を処理することだけが必要であり、拡大の場合には1ラ
インだけをバッファ内に格納すればよいことに留意すべ
きである。縮小の時は、中間画像(全幅、原画像のライ
ン数の1/n倍)を生成する必要はない。これは中間画像
の各ラインが直ちに縮小画像の縮小幅ラインに変換され
るためである。専用ハードウェアを用いると、行と
「列」演算をパイプライン処理することができる。列演
算が1ラインに対して進行している間に、次の行の集合
に対する演算を平行して行うことができる。
閾値処理縮小の多くは、多数の縮小画像の生成を必要
とする。例えば、レベル=2かレベル=3での2x2縮小
の場合には、2つの縮小画像を生成しなければならず、
閾値処理画像はこれらの2つの画像の論理積又は論理和
から導かれる。又、そうした縮小画像は格納されなけれ
ばならない。それぞれの縮小画像の1ラインを生成する
ことだけが必要であり、その後でそれらの2本のライン
に対して適当な論理演算を適用する。
上記の観察から閾値がいかに望ましくとも中間の格納
をほとんど必要としないストリーム処理により画像を縮
小することができることがわかる。原画像の2本以上の
ラインの集合が入力され、縮小画像の単一のラインが生
成される。このプロセスはカスケードにすることができ
る。例えば、2x2縮小のn個のステージを用いて、原画
像の2n本のラインが第1ステージにより処理された後、
2n回折り重ねられた縮小画像の単一のラインがn番目の
ステージから出力される。カスケードにおける各ステー
ジの独立性のゆえに、異なった閾値を各ステージに対し
て選定することができる。第11図は閾値処理縮小を実行
するための別の方法を示すフローチャートである。レベ
ル=1での2x2→1閾値処理縮小は、2x2SE302で拡張
(ステップ300)した後、サブサンプリング(ステップ3
05)して結果の画像の各2x2タイル内で上部左側の画素
のみを取ることにより行ってもよい。同様に、レベル=
4での2x2→1閾値処理縮小は、2x2SE312で浸食(ステ
ップ310)した後、サブサンプリング(ステップ315)し
て画像の各2x2タイル内で上部左側の画素のみを取るこ
とにより行ってもよい。SE302は下部右角にその中心位
置を有する2x2固体SEであり、SE312は上部左角にその中
心位置を有する2x2固体SEである。
レベル=1での縮小の別の方法として、1x2水平SE322
で拡張(ステップ320)し、2x1垂直SE327で拡張(ステ
ップ325)した後、サブサンプリング(ステップ328)し
て画像の各2x2タイル内の上部右側の画素のみを取って
もよい。同様に、レベル=4での縮小は1x2水平SE332で
浸食(ステップ330)し、2x1垂直SE337で浸食(ステッ
プ335)した後、サブサンプリング(ステップ338)して
各2x2タイル内の上部左側の画素のみをとることにより
行うこともできる。
レベル=1での縮小の水平及び垂直SEは右側底部の位
置にその中心位置を有し、一方レベル=4での縮小の水
平及び垂直SEは左側上部の画素位置にその中心位置を有
している。これらの区別はただ拡張と浸食の特別な定義
のゆえに必要となる。この定義はR.M.ハラリック、S.R.
スターンバーグ、及びX.ジューアングによる「数学的形
態論を用いた画像解析」(パターン解析及び機械知能に
関するIEEE会報、第PAMI−9巻、頁532−550、1987年7
月)において与えられている。
閾値レベル=2の2x2→1縮小は、拡張(OR)と浸食
(AND)の両方を必要とするため幾分複雑である。これ
は (1)SE322で拡張し、SE337で浸食することにより第1
の中間画像を形成すること、 (2)SE332で浸食し、SE327で拡張することにより第2
の中間画像を形成すること、 (3)第1と第2の中間画像の論理和をとることにより
第3の中間画像を形成すること、 及び (4)第3の中間画像をサブサンプリングして画像の各
2x2タイル内の上部左側画素のみをとること、 により行われる。
同様に、閾値レベル=3の2x2縮小は、第3ステップ
で第1及び第2の中間画像の論理積をとる点を除き、レ
ベル=2と同じ方法で得られる。
汎用コンピュータは一連の完全な画像論理ラスタ演算
とそれに続く単一のサブサンプリング処理のみを含んで
いるので、それに対する実行は効果的である。
完全な画像ラスタ演算はハードウェア及びソフトウェ
アにおいて効果的に行われ、又サブサンプリング処理も
例えば一度に16画素ビットを処理する迅速なテーブル索
引により実行される。
2x2→1縮小のサブサンプリング・ステップの場合、
一つおきの行をサブサンプリングする必要がある(即
ち、行(0)、行(2)、等)。各サンプリングされた
行のビットは例えば一度に16個ずつ採られ、それぞれの
16ビットワードは216項目のテーブル内へ索引として用
いることができる。その内容はビット0、2、...14よ
りなる8個のビットの16ビットワードである。
16ビット索引を備えた2x2→1縮小用のサブサンプリ
ングテーブルの場合、8ビットテーブル値t(i)は下
式により与えれる。
t(0)=0;i=1; (d=0,...,7) i0=2**2d; /*初期値 i*/ t0=2**d; /*増分値 t*/ (r=1,...,3) (r<2)ならば tInc=0; それ意外ならば tInc=t0; (k=0,...,i0−1) t(i)=t(k)+tInc; i=i+1 同様の方法で、一般的な閾値減少(mxn)が以下の手
続きで求められる。
(1)原画像に対する形態素演算、一連の中間画像を生
成 (2)中間画像に対する論理演算、最終的なフルサイズ
画像を生成 (3)最終的なフルサイズ画像のmxnサブサンプリン
グ、縮小画像を生成 一般的な場合、形態素演算に使用されるSEは次元(mx
1)と(1xn)を有する。
(mxn)サブサンプリングは、全てのm番目の行(行
0,m,2m,...)に対して,全てのn番目のビット(ビッ
ト(0)...(n))を採ることにより行われる。テー
ブル索引によりソフトウェアの最も効果的な実行が保証
される。
結論 最後に、本発明がソフトウェア及びハードウェアの実
施に関して、閾値処理縮小のための効果的な技術を提供
するものであることは明らかである。
上述したものは本発明の好ましい実施例についての完
全な説明であるが、種々の変更、改良、及び等価物を含
むものである。従って、上記説明は添付請求項により規
定される本発明の範囲を制限するものと見做されるべき
ではない。
【図面の簡単な説明】
第1図は、本発明にかかる画像走査及び処理装置のブロ
ック図、 第2図及び第2B図には、連続する行及び列演算を用いて
の画像縮小を示す概念図、 第2C図は、閾値2×2縮小を実行する流れ図、 第3A図は、2×2演算によって作動されているときON画
素を戻す2×2配列を示す図、 第3B図は、標準形の2×2配列の組を示す図、 第4図は、列演算を実行する表検索装置の概念図、 第5A図及び5B図は、標準形の3×3の配列の組及び3×
3縮小用の閾値演算を示した図、 第6A図から6H図までは、標準形の4×4配列を示した
図、 第7図及び第8図は、特定の列ベクトルに適用される4
×1値演算の概念図、 第9図は、拡張を実行する表検索装置の概念図、 第10図は列演算を実行する際に用いられるハードウエア
の論理概念図、 第11図は、閾値縮小の形態上の実行を示す流れ図であ
る。 1……文書、3……スキャナ、4……メモリ 5……ファイル記憶装置、6……プロセッサ 8……専用アプリケーション・ハードウェア 203、204……メモリ 205、206、207、208……レジスタ 212……制御装置、 218……プログラムメモリ 220、222……トランシーバ 300……拡張、 305、315……サブサンプリング 310……浸食

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】2値画像上に、閾値2で2×2縮小を実行
    する方法において、 原画たる2値画像内にある隣接する行からなる対の論理
    和をとり、行数を減らした第1の中間画像を提供する工
    程と、 前記第1の中間画像内にある隣接する列からなる対の論
    理積をとり、行数及び列数を減らした第2の中間画像を
    提供する工程と、 前記原画内にある隣接する行からなる対の論理積をと
    り、行数を減らした第3の中間画像を提供する工程と、 前記第3の中間画像内にある隣接する列からなる対の論
    理積をとり、行数及び列数を減らした第4の中間画像を
    提供する工程と、 を有し、更に 前記第2及び第4の中間画像の論理積をとり、閾値2の
    縮小画像を提供することを特徴とする2×2縮小を実行
    する方法。
  2. 【請求項2】2値画像上に閾値3で2×2縮小を実行す
    る方法において、 原画たる2値画像内にある隣接する行からなる対の論理
    和をとり、行数を減らした第1の中間画像を提供する工
    程と、 前記第1の中間画像内にある隣接する列からなる対の論
    理積をとり、行数及び列数を減らした第2の中間画像を
    提供する工程と、 前記原画内にある隣接する行からなる対の論理積をと
    り、行数の数を減らした第3の中間画像を提供する工程
    と、 前記第3の中間画像内にある隣接する列からなる対の論
    理積をとり、行数及び列数を減らした第4の中間画像を
    提供する工程と、 前記第2及び第4の中間画像の論理積をとり、閾値3の
    縮小画像を提供する工程と、 を有することを特徴とする2×2縮小を実行する方法。
  3. 【請求項3】原画たる2値画像内にある隣接するn列か
    らなるグループ間で所定の論理演算を実行し、1/n倍の
    列数を有する目的画像を提供する方法であって、 前記原画内にある画素の行各々が論理的に連続な原画素
    語として記憶され、また、前記目標画像内にある画素の
    列各々が前記原画素語の1/nの長さを有する論理的に連
    続な目標画素語として記憶される方法において、 各々がkビット項目を保持する大きさであり、また
    (0)から(m*n−1)に指定される(n*k)ビッ
    トのアドレスによってアドレス可能である2n*k個の
    ロケーションを有する検索表メモリを提供する工程(但
    し、n及びkは0でない整数)と、 項目ビットが0から(k−1)まで指定され、また項目
    ビット(i)は、アドレスビット(nxk)の所定の論理
    的組合せからアドレスビット(n*i+b−1)まで変
    化するkビット項目を各ロケーション内に記憶する工程
    と、 前記原画像内にある原画素語各々に、一度に(n*k)
    ビットの原画素語セグメントで、アクセスする工程と、 上記アクセスされた(n*k)ビットの原画素語セグメ
    ント各々について、(n*k)ビットアドレスが(n*
    k)ビットの原画素語セグメントの値と対応するロケー
    ション内に記憶されている検索表内にある項目にアクセ
    スし、そして前記kビットの項目値をkビットの目的画
    素語セグメントとして、前記原画素語に対応する目標画
    素語内に記憶する工程と、 を有することを特徴とする所定論理演算を実行する方
    法。
  4. 【請求項4】2値の原画像を拡張し、n倍の数の行列を
    有する目標画像を提供する方法であって、原画像内にあ
    る画素列各々は、論理的に連続な原画素語として記憶さ
    れ、また、前記目的画像内にある画素列の各々は、原画
    素語のn倍の長さを有する論理的に連続な目的画素語と
    して記憶される方法において、 各々がn*kビット項目を保持する大きさであり、また
    アドレスビットが(0)から(k−1)まで指定される
    kビットアドレスによってアドレス可能である2個のロ
    ケーションを有する検索表メモリを提供する工程と、 項目ビットは(0)から(n*k−1)に指定され、ま
    た、(n*i)から(n*i+n−1)までの項目ビッ
    ト各々は、iが0から(k−1)までの値をとるとき、
    アドレスビット(i)と同一の値をとる態様のn*kビ
    ット項目を各ロケーション内に記憶する工程と、 前記原画像内にある原画素語各々に、kビットの原画素
    語セグメントが一度にアクセスする工程と、 上記アクセスされたkビットの原画素語セグメント各々
    について、kビットアドレスがkビットの原画素語セグ
    メントの値に対応するロケーション内に記憶された検索
    表メモリ内にある項目にアクセスし、そして前記n*k
    ビットの項目値を、nxkビットの目的画素語セグメント
    として、原画素語に対応する目的画素語内に記憶する工
    程と、 を有することを特徴とする2値の原画像を拡張する方
    法。
  5. 【請求項5】(0)から(2a−1)まで指定されたビッ
    ト位置を有する2Qビットデータポートと、 第1の2Qビットレジスタと、 シフトレジスタたる第2の2Qビットレジスタと、 各々が第1及び第2のQビットラッチされたトランシー
    バを備えると共に、 前記レジスタの各々は、前記データポートと選択的に双
    方向連結されており、 前記第1及び第2のトランシーバの第1のポートの各々
    は、前記データポートの交互に変わるビット位置の同一
    セットと接続されており、 前記第1のトランシーバの前記第2ポートは前記データ
    ポートの(0)から(Q−1)までのビットに連結され
    ており、 前記第2のトランシーバの第2ポートは(0)から(2Q
    −1)に連結されていることを特徴とする装置。
JP2328813A 1989-12-08 1990-11-28 画像縮小/拡大方法及び装置 Expired - Fee Related JP2523222B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44962789A 1989-12-08 1989-12-08
US449627 1989-12-08

Publications (2)

Publication Number Publication Date
JPH03231383A JPH03231383A (ja) 1991-10-15
JP2523222B2 true JP2523222B2 (ja) 1996-08-07

Family

ID=23784870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2328813A Expired - Fee Related JP2523222B2 (ja) 1989-12-08 1990-11-28 画像縮小/拡大方法及び装置

Country Status (4)

Country Link
US (1) US5740285A (ja)
EP (1) EP0431961B1 (ja)
JP (1) JP2523222B2 (ja)
DE (1) DE69032556T2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416851A (en) * 1991-07-30 1995-05-16 Xerox Corporation Image analysis based on location sampling
US5434953A (en) * 1992-03-20 1995-07-18 Xerox Corporation Use of fast textured reduction for discrimination of document image components
US5467410A (en) * 1992-03-20 1995-11-14 Xerox Corporation Identification of a blank page in an image processing system
US5418865A (en) * 1992-03-20 1995-05-23 Xerox Corporation Mark sensing on a form
US5437045A (en) * 1992-12-18 1995-07-25 Xerox Corporation Parallel processing with subsampling/spreading circuitry and data transfer circuitry to and from any processing unit
US5408670A (en) * 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5375080A (en) * 1992-12-18 1994-12-20 Xerox Corporation Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component
US5717436A (en) * 1993-07-01 1998-02-10 Intel Corporation Processing image signals with a single image support component
KR0120570B1 (ko) * 1994-04-30 1997-10-29 김광호 디지탈 화상처리장치에 있어서 화상데이타 변배처리방법 및 회로
US6259827B1 (en) 1996-03-21 2001-07-10 Cognex Corporation Machine vision methods for enhancing the contrast between an object and its background using multiple on-axis images
JPH10285389A (ja) * 1997-04-11 1998-10-23 Nikon Corp 画像処理方法、画像処理装置、および、記録媒体
US5992745A (en) * 1997-04-30 1999-11-30 Uniform Code Council, Inc. N, k structure bar code character value determination method and system
US6236769B1 (en) * 1998-01-28 2001-05-22 Cognex Corporation Machine vision systems and methods for morphological transformation of an image with zero or other uniform offsets
US6687402B1 (en) 1998-12-18 2004-02-03 Cognex Corporation Machine vision methods and systems for boundary feature comparison of patterns and images
US6748104B1 (en) 2000-03-24 2004-06-08 Cognex Corporation Methods and apparatus for machine vision inspection using single and multiple templates or patterns
US6920358B2 (en) * 2000-05-26 2005-07-19 Second Sight Medical Products, Inc. Video processing methods for improving visual acuity and/or perceived image resolution
US6883138B2 (en) * 2001-08-08 2005-04-19 Xerox Corporation Methods and systems for generating enhanced thumbnails usable for document navigation
US7069506B2 (en) * 2001-08-08 2006-06-27 Xerox Corporation Methods and systems for generating enhanced thumbnails
US6993726B2 (en) * 2001-08-08 2006-01-31 Xerox Corporation Methods and systems for document navigation using enhanced thumbnails
US7337396B2 (en) 2001-08-08 2008-02-26 Xerox Corporation Methods and systems for transitioning between thumbnails and documents based upon thumbnail appearance
SE0103279L (sv) 2001-10-02 2003-04-03 Integrated Vision Prod Förfarande för mätning av ljusspridning och geometrisk profil
JP4501566B2 (ja) * 2004-07-13 2010-07-14 富士通株式会社 無線通信装置及び移動局
US8111904B2 (en) * 2005-10-07 2012-02-07 Cognex Technology And Investment Corp. Methods and apparatus for practical 3D vision system
US8162584B2 (en) * 2006-08-23 2012-04-24 Cognex Corporation Method and apparatus for semiconductor wafer alignment
FR2909204A1 (fr) * 2006-11-28 2008-05-30 Commissariat Energie Atomique Systeme de traitement d'image a macro cellule morphologique.
EP2155327B1 (en) * 2007-05-08 2014-07-23 Second Sight Medical Products, Inc. System for providing stimulation inputs to a visual prosthesis implant
JP5173873B2 (ja) * 2008-11-20 2013-04-03 キヤノン株式会社 画像符号化装置及びその制御方法
JP5116650B2 (ja) * 2008-12-10 2013-01-09 キヤノン株式会社 画像符号化装置及びその制御方法
KR101778530B1 (ko) * 2011-06-14 2017-09-15 삼성전자 주식회사 영상 처리 방법 및 장치
KR101947125B1 (ko) * 2012-11-27 2019-02-13 엘지디스플레이 주식회사 타이밍 컨트롤러 및 그 구동 방법과 이를 이용한 표시장치
CN105046632B (zh) * 2015-06-29 2018-09-25 湖南大学 时空高效的二值图像二元逻辑运算方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3289164A (en) * 1964-04-29 1966-11-29 Control Data Corp Character normalizing reading machine
US3560930A (en) * 1968-01-15 1971-02-02 Ibm Method and apparatus for reducing data in a pattern recognition system
US4097846A (en) * 1977-04-08 1978-06-27 Energy Conversion Devices, Inc. Data storage and retrieval system
US4414685A (en) * 1979-09-10 1983-11-08 Sternberg Stanley R Method and apparatus for pattern recognition and detection
DE3036711C2 (de) * 1980-09-29 1985-08-01 Siemens AG, 1000 Berlin und 8000 München Verfahren zum Verkleinern von grafischen Mustern
US4573200A (en) * 1982-12-27 1986-02-25 International Business Machines Corporation Video normalization for hand print recognition
US4817186A (en) * 1983-01-07 1989-03-28 International Business Machines Corporation Locating individual images in a field for recognition or the like
JPS59156070A (ja) * 1983-02-25 1984-09-05 Canon Inc 画像処理装置
JPS60100176A (ja) * 1983-11-05 1985-06-04 株式会社リコー 文字フオント縮小方式
US4712140A (en) * 1983-12-30 1987-12-08 International Business Machines Corporation Image reduction method
US4569081A (en) * 1983-12-30 1986-02-04 International Business Machines Corporation Method for expansion of a digital image
US4742558A (en) * 1984-02-14 1988-05-03 Nippon Telegraph & Telephone Public Corporation Image information retrieval/display apparatus
US4601055A (en) * 1984-04-10 1986-07-15 The United States Of America As Represented By The Secretary Of Commerce Image processor
JPS60261252A (ja) * 1984-06-08 1985-12-24 Dainippon Screen Mfg Co Ltd 画像信号の密度変換方法
CN1009605B (zh) * 1985-03-28 1990-09-12 西门子公司 信息传输装置
US4700400A (en) * 1985-10-10 1987-10-13 The Palantir Corporation Feature extraction technique for use in a pattern recognition system
US4791675A (en) * 1985-12-31 1988-12-13 Schlumberger Systems And Services, Inc. VSP Connectivity pattern recognition system
US4825388A (en) * 1986-04-01 1989-04-25 Princeton Gamma Tech., Inc. Apparatus and method for processing digital images
GB8614214D0 (en) * 1986-06-11 1986-07-16 Kodak Ltd Image processing method
JP2635034B2 (ja) * 1986-06-26 1997-07-30 ウォング・ラボラトリーズ・インコーポレーテッド エラー項平均化を用いるビットマップ像の解像度交換法
JP2696211B2 (ja) * 1987-04-20 1998-01-14 株式会社日立製作所 濃淡画像からのパターン認識方法及び装置
JPS63261486A (ja) * 1987-04-20 1988-10-28 Nec Corp 書体識別装置
JP2615625B2 (ja) * 1987-06-24 1997-06-04 富士ゼロックス株式会社 画像処理装置
US4827330A (en) * 1987-07-20 1989-05-02 Litton Industrial Automation Systems, Inc. Automatic document image revision
US5033105A (en) * 1987-08-11 1991-07-16 Apple Computer Video compression algorithm
JPS6482286A (en) * 1987-09-25 1989-03-28 Toshiba Corp Image inclination detector
US4791679A (en) * 1987-12-26 1988-12-13 Eastman Kodak Company Image character enhancement using a stroke strengthening kernal
US5161213A (en) * 1988-05-27 1992-11-03 Wang Laboratories, Inc. Method for black and white image reduction based upon averaging black/white pixel counts of neighboring blocks
US5131053A (en) * 1988-08-10 1992-07-14 Caere Corporation Optical character recognition method and apparatus
US4948955A (en) * 1988-12-22 1990-08-14 The Boeing Company Barcode location determination
US5065437A (en) * 1989-12-08 1991-11-12 Xerox Corporation Identification and segmentation of finely textured and solid regions of binary images
US5048109A (en) * 1989-12-08 1991-09-10 Xerox Corporation Detection of highlighted regions
US5276315A (en) * 1992-05-14 1994-01-04 United Parcel Service Of America, Inc. Method and apparatus for processing low resolution images of degraded bar code symbols

Also Published As

Publication number Publication date
EP0431961A2 (en) 1991-06-12
EP0431961B1 (en) 1998-08-12
JPH03231383A (ja) 1991-10-15
DE69032556D1 (de) 1998-09-17
DE69032556T2 (de) 1999-02-04
US5740285A (en) 1998-04-14
EP0431961A3 (en) 1993-02-24

Similar Documents

Publication Publication Date Title
JP2523222B2 (ja) 画像縮小/拡大方法及び装置
EP0431960B1 (en) Identification, characterization, and segmentation of halftone or strippled regions of binary images
JP3051183B2 (ja) テクスチャ領域と非テクスチャ領域との分割方法
JP2840133B2 (ja) 像の整列方法
US5097518A (en) Technique for performing digital image scaling by logically combining or replicating pixels in blocks of differing groupsizes
US5606650A (en) Method and apparatus for storage and retrieval of a texture map in a graphics display system
US5113455A (en) Digital image scaling by stepwise pixel movement
US5896139A (en) System and method for optimizing a scene graph for optimizing rendering performance
JPH11167378A (ja) 画像をスケーリングする方法
US4945497A (en) Method and apparatus for translating rectilinear information into scan line information for display by a computer system
JP3110041B2 (ja) 画像情報処理装置
JPH07192130A (ja) 仮ラベル付け方法
JP3517982B2 (ja) 図形描画装置
JP2857260B2 (ja) 矩形領域の判定方法
JPS58115969A (ja) 画像デ−タ縁取り装置
JP2854433B2 (ja) ラインメモリ制御回路
JPH0830784A (ja) 2値または濃淡値画像パターンマッチング装置
JP3162918B2 (ja) 画像処理装置および方法
JPH05143729A (ja) 画像処理装置
JP3093950B2 (ja) 輪郭情報抽出装置及びその方法
JPH06274617A (ja) メディアンフィルタ処理方法
JPS63201774A (ja) 画像処理装置
JPH06348832A (ja) 画像データの位置変換方法
JPH05189553A (ja) 画像処理方式
JPH07320044A (ja) イメージ・データのジオメトリ変換方法及び装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees