JP2702930B2 - フィルタリング方法 - Google Patents

フィルタリング方法

Info

Publication number
JP2702930B2
JP2702930B2 JP62159594A JP15959487A JP2702930B2 JP 2702930 B2 JP2702930 B2 JP 2702930B2 JP 62159594 A JP62159594 A JP 62159594A JP 15959487 A JP15959487 A JP 15959487A JP 2702930 B2 JP2702930 B2 JP 2702930B2
Authority
JP
Japan
Prior art keywords
data
result
run
memory
filtering
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
JP62159594A
Other languages
English (en)
Other versions
JPS644873A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62159594A priority Critical patent/JP2702930B2/ja
Priority to US07/213,133 priority patent/US5007099A/en
Publication of JPS644873A publication Critical patent/JPS644873A/ja
Application granted granted Critical
Publication of JP2702930B2 publication Critical patent/JP2702930B2/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
    • 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)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、画像(図面,文書等)の情報を計算機で処
理できる形に変換したり、計算機上でそれらを処理する
ために、データの認識ノイズ除去,データ解析するため
の情報処理装置に係り、特にOA,FA等の文書,画像,図
面など大量データに対するフィルタリング方式に関す
る。 〔従来の技術〕 従来のフィルタは、フィルタサイズ、例えばn×mに
対して、処理すべき点を中心としたn×mの画像・図形
イメージを切出し、その中で1結果分のフィルタ処理を
実行し、この処理を全画面にわたって行っていた。その
他の方法として、n×mフィルタリングを3×3程度の
小フィルタに分解しそれを基本に(n−2)×(m×
2)回行っていた。上記いずれの方法にしても全面の処
理回数は、フィルタサイズn,mに大きく依存する。この
ようなフィルタリング手法については、長尾真著「ディ
ジタル画像処理」近代科学者1978,pp.376〜379において
論じられている。 〔発明が解決しようとする問題点〕 上記の従来技術は基本的に次のような問題がある。
(1)フィルタサイズn×mに比例した演算時間がかか
る。例えばオフィスで必要な図面,文書,画像の処理で
しばしば必要となるフィルタリング処理では、フィルタ
サイズが10×10〜50×50程度となる。この場合、3×3
フィルタを8×8(64)回〜48×48(2304)回繰返すこ
とになり、実際上使用できなかった場合がほとんどであ
る。このような場合専用回路利用の方法もある。今、TV
画像を処理する場合のように、3×3〜5×5程度のフ
ィルタを使う場合や、そのフィルタを少数回繰返せば充
分な場合は実現可能である。しかしOA分野などではフィ
ルタサイズを更に大きくする必要があり、高速化に大き
な専用回路等が必要となりコストが高くなる。このため
事実上、市場に受け入れられる装置の実現は難しかっ
た。 更に従来方法では、画像を1画素ずつ参照して演算す
る方法であった。このため処理画素数分の画像を記憶す
る大画面バッファを必要とした。更に、現在、ファクシ
ミリや光ディスクファイル装置では、圧縮コードによる
記憶が標準になっている。従来方式では、この圧縮コー
ドを一担画像に展開して処理する必要があり、データ量
が少なくて済む圧縮記録のメリットも活用できないとい
う問題点があった。さらに、オフィス,工場等で使う図
面や文書データは大量であるため、通常、磁気ディス
ク,フロッピー,光ディスクなど外部ファイル装置に記
憶される場合が大半である。この場合、従来手法では、
画像を何度もアクセスするため、転送時間がかかり高速
化は困難であった。 本発明の目的は、上記問題点を解決した高速かつ専用
回路の不要なフィルタリング方式を提供することにあ
る。 〔問題点を解決するための手段〕 上記目的は、(1)フィルタリングの処理を、マスク
のサイズに依存しない少ない時間で行なう方式を提供す
ること、(2)専用回路でなく汎用の計算方式で実現で
きるアルゴリズムを提供することにより達成される。ま
た、圧縮画像の利点を有効活用するためには、(3)圧
縮画像のデータから、画素に全面展開することなく直接
フィルタリングを行う方式を提供することにより達成さ
れる。 まず、上記(1),(2)に対してはフィルタ長nと
したとき途中演算の結果を最大限に利用することにより
総演算回路を減らす。具体的には2n個の入力データ列か
らn+1個の出力を求める演算を3(n−1)回の演算
で完結し、これを1サイクルとして全画面に繰返す。そ
の際まず、n個の入力データ列から1つの結果を得る。
この途中結果を後に有効活用することが本発明のポイン
トである。そのためにまず、nとn−1番目の入力から
2項演算し結果を求め、それを一時記憶する。次にその
一時記憶の結果とn−2番目の入力をもとに、再び2項
演算し結果を求めこれも一時記憶する。これを順次n−
1回繰返し最後に1つの結果を得る。これが、第1番目
のフィルタリング結果である。この最後の結果の前のn
−2回の途中結果を有効活用する。 次に第n+1番目の結果は次の手順で求める。n+1
番目とn+2番目の2つの入力に2項演算を施こし、そ
の結果を記憶する。次にその結果と、n+3番目の入力
に2項演算を施こす。以下この手順を続けて、n−2個
の途中結果と、(n+1)番目の結果が求まる。この手
順で行われた2項演算回数はn−1回である。 さて以上の段階までに、途中演算結果が2(n−2)
個得られたことになる。後述の実施例で明らかとなる
が、これにn,n+1番目の2つの入力を加えた、合計2
(n−1)個のデータを2つずつ効率的に組合わせるこ
とにより、(n−1)回の演算で(n−1)個(2番目
からn番目)の結果を得る。以上、 最初の結果を求めるために (n−1)回 最後の結果を求めるために (n−1)回 途中の(n−1)1個の 結果を求めるために (n−1)回 の合計3(n−1)回の演算で (n+1)個 の出力を求める。実際には以上の処理をメモリアスク回
数が減少するよう順序を若干入れ換えて実行する。いず
れにしろ、この手段は、フィルタリングを行なう関数の
うち、拡大・縮小,最大値,最小値型フィルタは、引数
の順序を入れ換えて実行しても良いという原理を有効に
活用したことによって生じる。従来は、この原理の有効
活用法が発見されていなかったが、本発明ではそれを見
出し最大限に利用している。 次に、本手法を更に低コスト,高速化するために、前
述の途中結果を少ないワークメモリに格納するととも
に、無駄なメモリ転送をなくすために、メモリを有効活
用するパイプラインバッファ方式を利用する。 最後に(3)の目的を達成るために、圧縮画像から直
接、1ライン中の画像変化点座標を求め、その座標だけ
を利用したフィルタ演算手法を適用する。すなわち、1
ライン中の隣り合う座標値とフィルタサイズnを用い
て、1ライン中のフィルタリング結果を求める。この結
果も座標列となっているが、この座標列と前(後の)ラ
インの同じく座標列をもとにライン間にフィルタリング
を施こす。以上の演算では、画像を画素に展開する必要
はない。 〔作用〕 まず、(1)マスクサイズnに対し2n個の入力データ
列をもとに前述の方法でn+1個の結果を求める方式で
は、n+1個の結果に対し、3(n−1)回の2項演算
しか必要でない。すなわち、1出力当りでは、 nが無限大となっても最大3回の2項演算しか必要でな
い。これは、演算回数がフィルタサイズnにほとんど依
存せず、かつ最大3回で処理が可能であることを示して
いる。すなわちのの方式により、大型のフィルタを施し
ても高速に処理できる。 次に前記(2)の手段によって基本的には本方式は、
ワークモメリは不要である。すなわち、(1)の方式の
実行の際、途中結果を格納する必要があるが、不要とな
った所へ途中結果を格納するよう制御を行っており、余
分なメモリ及び、メモリ間でのデータ転送が不要で低コ
スト化が可能である。更に、この制御も単純であるた
め、汎用的手段で充分実行可能である。すなわち、本方
式は、汎用回路又は汎用計算機のプログラム処理で充分
実現可能である。 また、(3)の手段により、全画面処理に要する処理
時間は、処理画面の画素数に比例するのではなく、ライ
ン毎にみた画像変化点の総数に比較する。一般に画像変
化点数は画素数に比し50分の1程度である。また、座標
値の比較は単純な数値演算であり簡単に実現できるの
で、1画像変化点に対する処理と1画素に対する処理は
あまり大差はない。以上を総合すると、(3)の手段に
より大幅な高速化が可能である。 以上、本発明について1次元,2次元のデータ例につい
て説明してきたが、本発明はk次元にも容易に展開可能
である。 〔実施例〕 以下、本発明の一実施例を説明する。第1図は1次元
データ列にフィルタサイズ5の最大値フィルタを本発明
を採用し実施した例である。図中100は入力データ列、1
01は該入力データ列の入力データを示す。この例では、
連続するA1,A2,…,A10の10個の入力データに対する処理
例を示す。該入力データの実際の値を該入力データ列10
0の中に書かれている数字102で示す。この例では、 A1=8,A2=5,……,A10=1 (1) を各々示している。これら入力データ列に対して、フィ
ルタ演算の結果列を求める。記号200が該演結果列、201
が演算結果、202がその値を示す。ここで、本実施例が
フィルタサイズ5の最大値フィルタであるので、B1〜B6
は次式で記述できる。 次に、記号300−1,300−2,……,300−12の各黒丸
(・)は2項演算を示す。この実施例の場合は2つの数
の最大値を求める演算を示す。300−1〜300−12の演算
は、実際には一つの演算器で行っても良い。演算300−
1に接続している矢印を持つ線は、矢印の入る線301,30
2が入力、出ていく線が結果を示す。図では、演算300−
1は、入力301としてA4、302としてA5の値をそれぞれ入
力し、結果を求め、その結果が、演算300−2の入力303
と演算300−9の入力の2つに利用されることを示して
いる。演算を示す・点の下に書かれている( )付の数
字、(例えば300−1の下の304)は演算の結果の実際の
値を示している。以下記号の説明を終る。以下具体的な
演算手順を詳細に示す。 入力列100から演算住果列200を求める際、フィルタサ
イズ5の2倍の10個の入力列を1区切りとして結果、5
+1=6個の結果を求める。この10個の入力列をA1〜A1
0とすると、その5番目A5とA4の2項間で演算を施す。
今、A4=2,A5=0であるので演算300−1の入力301は
2、入力302は0となる。演算300−1 Max(A4,A5)=Max(2,0)=2 (3.1) となるので、結果304は2の値となる。次に、その結果
とA3の間で演算300−2を施す。 Max(3,2)=3 (3.2) 尚この演算はMax(A3,A4,A5)を意味する。 以下、順次 演算300−3 Max(A2,A3,A4,A5) Max(A2,3)=Max(5,3)=5 (3.3) 演算300−4 Max(A1,5)=Max(8,5)=8 (3.4) の演算を繰返すと、最後の演算300−4は結果B1とな
る。ここに、 B1=Max(A1,A2,…,A5)=8 (2.1) 次に、演算300−3の結果とA6の2つで演算300−5を
施す。前述の式(3.3)で示したとおりこの演算の1方
の入力は、A2〜A5の4つの入力の最大値を示しているの
で、演算300−5は、A2〜A6の5つの入力列の最大値を
求めることになる。すなわち、これによりB2が求まる。 次に、A6とA7の2入力を用い演算300−6を施こす。 演算300−6 Max(A6,A7)=Max(2,6)=6 (3.6) 以下、 演算300−7 Max(Max(A3,A4,A5),Max(A6,A7) =Max(3,6)=6=B3 (3.7) 演算300−8 Max(Max(A6,A7),A8) =Max(6,0)=6 (3.8) 演算300−9 Max(Max(A4,A5),Max(A6,A7,A8)) =Max(2,6)=6=B4 (3.9) 演算300−10 Max(Max(A6,A7,A8),A9)=9(3.10) 演算300−11 Max(A5,Max(A6,A7,A8,A9) =9=B5 (3.11) 演算300−12 Max(Max(A6,A7,A8,A9),A10) =9=B6 (3.12) 以上述べたB1〜B6の6個の演算結果を求めるために行
った総演算回数は 12回 すなわち フィルタサイズ5か1を引いた数4の3倍である。かつ
1演算結果当り2回の2項演算で良いことがわかる。こ
れを入力列全体に亘って繰返せばよい。 以上の方法をフィルタサイズをnとし行うと、まず B1=Max(A1,A2,……,An) を求めるのに、AnとAn-1、その結果とAn-2,……のよう
にn−1回の演算を施こす。 次に、Bn+1(=Max(An+1,……,A2n))を求めるのに
も、B1と同様、こんどは逆向きに2項演算を、n−1回
施こす。B2〜Bnのn−1個の結果については、B1,Bn+1
を求める際に得られた途中結果を使用することにより1
つの結果当り1個の2項演算を施こす。以上のことよ
り、フィルタサイズnの最大値フィルタでは、n+1個
の演算結果は、合計3(n−)回の2項演算で求まるこ
とになる。1個当りでは、 となり、n→∞としても最大3の演算で1出力が求まる
ことになる。従来のフィルタリングは、サイズに比例し
た演算数が必要とされていたので、本演算方法は、実質
的にフィルタサイズに演算回数が依存しない超高速方法
を実現している。 第2図は、本発明の他の一実施例である。以降述べる
方法は、フィルタを最大値に限らず、フィルタ演算が参
照する引数同志が可換性を持つ最小値,ミディアム値,
中間値,平均値,2値データの論理和,積,1(又は0)カ
ウントなど広範な種類のフィルタに適用可能である。図
中(a)は構成、(b)は演算手順を示したものであ
る。この演算で使用される一般演算式は Bi=φ(i,i+n−1)≡ψ(di,di+1,…,di+n-1) である。以降、本一実施例の説明により、本発明の実施
により記憶手段を効率的に使えることが証明される。ま
ず(a)によって構成について説明する。記号1は情報
処理装置、特に制御部記憶部を中心とした部分を示す。
(特に、ここでは説明の都合上フィルタ演算をする演算
部を分離して考えるものとするが、演算部を含めて情報
処理装置としても発明の本質は変らない。)記号100は
記憶装置を示す。第1図の入力メモリ列に相当すると考
えて良い。101は入力データ、103はメモリアドレスであ
る。300は演算器で、その入力を301,302とする。演算器
の出力は、途中結果は再びメモリで戻される。最終のフ
ィルタリングの結果は、200で示される。(フィルタリ
ング結果が、再び情報処理装置内で処理・記憶される場
合は、記号305を通じて装置へ戻される。) 演算器300の演算器の演算を ψ(I1,I2) (5) 但しI1,I2は入力オペランド とする。ここで、ψは、I1,I2可換なタイプの演算とす
る。このような演算の中で、画像や図形を扱う場合の代
表的なものを以下に示す。 Max ;I1,I2の最大値 Min ;I1,I2の最小値 Sumup;I1,I2の和……最終的に平均値,分散値面積等
を求めることができる。 AND ;I1,I2の論理積……図形の縮小に使用 OR ;I1,I2の論理和……図形の拡大に 次に、演算函数ψを用いて、一般演算式の説明をす
る。ψの引数は可換である。すなわち ψ(I1,I2)=ψ(I2,I1) (6.1) 更に、上述の各処理は、ψを繰返し処理した場合、引
数ψの順序によらず、引数のみに依存する。すなわち、
一般的に ψ(A,ψ(B,C))=ψ(ψ(A,B),C) (6.2) (6.1),(6.2)よりψを、2項演算関数から多項関
数に拡張することができる。今、フィルタは、連続する
入力データ列101に対して処理するのであるので、ψを
連続的に施す場合は、該入力データ列の最初と最後のデ
ータを明確にした関数の導入が望ましい。そこで、φを
次のように定義する。 φ(i,j)≡ψ(Ai,Ai+1,…,Aj) (6.3) 但し i≦j,φ(i,i)≡Ai (6.4) 更に、この特殊な場合としてφを定義する。 φ≡φ(i,i+n−1) (6.5) n;フィルタサイズ このφが最終的なフィルタリング結果となる。 これを用いて、第2図(a)の動作を第2図(b)を
参照しながら詳しく説明する。(b)の中の、オペラン
ドI1は、(a)の演算器の入力301、同じくオペランドI
2は該演算器の入力302を表わす。 但し、今までの説明で自明のようにオペランドI1とオ
ペランドI2の入力は、入れ換えても本発明の本質は何ら
変化しない。時刻tは、演算のステップを示している。
(b)中演算結果305、フィルタリング結果200は、
(a)の同一の番号の値を示している。演算結果の欄の
アドレスは、演算住果が再び(a)の記憶装置100の1
セル内の記憶されることを意味する。 まずt=1のとき、記憶装置100のアドレスn−1の
データAn-1をオペランドI1301へ、同じくアドレスnの
データを302へ入力し、演算器300で演算4を施こす。そ
の結果ψ(An-1,An)すなわち、φ(n-1,n)を、アドレ
スn−1へ書き込む。アドレスn−1のデータはAn-1
らφ(n-1,n)に書き換えられ、新しいメモリセルは使
わなくて済む。 次にt=2で、オペランドI1,I2のそれぞれのアドレ
スを1だけ減らし、その内容を演算器300に入力する。
その際アドレスn−1には、t=1で求めた
φ(n-1,n)が記憶されている。従ってt=2での演算
は次の通りである。 ψ(An-2,φ(n-1,n)) ≡ψ(An-2,ψ(An-1,An)) ≡ψ(An-2,An-1,An) ≡φ(n-2,n) (6.3)より これを、t=3,4,…,n−2と繰返すと、記憶装置100
の内容は次のようになっている。 尚、この演算手順では、t=2〜,n−2までオペラン
ドI2の内容は、その直前に求められた結果であるので、
オペランドI2は、演算器の出力をレジスタに格納してそ
れを直接利用する方法もある。 次にt=n−1で、オペランドAにアドレス1のA1
オペランドI2にアドレス2のφ(2,n)を入れ演算す
る。すなわち、 ψ(A1,φ(2,n))=φ(1,n)≡φ (6.5) この段階で1つの結果が求まった。この結果は、図1
の(a)の出力200として利用すればよい。尚、この結
果を記憶装置100に再び記憶して、情報処理装置1で利
用する場合は、アドレス1に記憶しても良いし、原デー
タを破壊しない他の別のアドレスへ記憶しても良い。 次にt=nで、アドレス2に記憶されているφ(2,
n)とアドレスn+1に記憶されているAn+2を演算す
る。 ψ(φ(2,n),An+1)=φ(2,n+1)≡φ これが2番目のフィルタリング結果である。φの場
合と同様、これをアドレス2に記憶しなくてもかまわな
い。これは、アドレス2に記憶されているφ(2,n)
は、これ以降の演算で使用しないからである。次に、t
=n+1で、アドレスn+1のAn+1とアドレスn+2の
An+2の演算を行い、その結果、 ψ(An+1,An+2)≡φ(n+1,n+2) をアドレスn+1に記する。 以上述べたt=nとt=n+1の2ステップの演算を
t=3n−4とt=3n−3になるまで繰返す。その際オペ
ランドに使用するデータの格納アドレスは第2図(c)
に示す通りである。基本的には、オペランドAは、t=
n+2,t+4,…の2つおきに、先の演算で記憶されてい
る、アドレス3,4,…の φ(3,n),φ(4,n),…… を、又、オペランドI2はt=n+3,t+5,…,の2つお
きに、原入力データ An+3,An+4,…… を入力する。尚、アドレスn+1に毎ステップアクセス
が起っているが、これに対してレジスタを使用する方法
もある。これは、例えばt=n+1で求まったφ(n+1,
n+2)の値は、それに連続するt=n+2,t=n+3の2
ステップしか使われず、それ以降の演算のためには記憶
して残しておく必要がないため、一時記憶用のレジスト
で充分であるからである。 以上述べたt=nからt=3n−3の2n−2回の演算で φ23,……,φnn+1 のn個のフィルタリング出力が求まる。最後のフィルタ
リング結果φn+1以外は、1つ置きのステップ毎に求ま
る。 以上φ〜φn+1を求めるのに必要な演算ステップ、
すなわち2項演算関数ψを使った回数は、 3n−3 である。フィルタリング結果1つ当りのψの回数は となる。 φn+2以降の結果を求める手順は次の通りである。t
=3n−2は、t=1からのアドレスに、オペランドI1,
オペランドI2,演算結果いずれも、n+1を加えたもの
とする。すなわち、オペランドI1はアドレス2n、オペラ
ンドI2は2n+1、その結果の格納は2nとする。t=1か
らt=3n−3の手順を、上述のアドレスにn+1を加算
した方法でt=3n−2からt=3n−2+(3n−3−1)
=6n−6まで繰返すと φn+2n+3,……,φ2n+2 のn+1個の結果が求まる。以降同様の方法で処理を実
行する。どのn+1個のフィルタリング結果を求めるの
も3(n−1)回の演算で済むのて全体を処理するの
も、1回当りの平均演算回数は となり、高々3回で良いことになる。 尚、フィルタリングの場合、フィルタリングマスクを
nとすると、有効な処理結果は、 原データ数−n+1 (8) となる。すなわち、原データ数に対して(n−1)個減
少する。この場合、減少分をそのままにしておいても良
いが、次に再び処理する場合、減少分を考慮に入れて行
わねばならず不便である。その場合は、残りに定数を入
れるか、あるいは、原データ例の後に更にn−1個分の
定数列境界条件により定まる値)があるものとみなして
残りのn−1個の演算を実行する。また、フィルタリン
グの結果を、入力データ列1からに対して、1から出力
せず、 からり出力する方法もあるが、これらは従来と同様に、
処理後にシフトするか、全く別の記憶領域に から入力する方法で良い。 また、演算結果数が(n+1)の整数倍でない場合
は、最終結果がでるまで前述の方法を繰返し残った処理
を省略すれば良い。(n+1)の整数倍を越える部分に
対する必要演算回数は、第2図(c)より次のように算
定できる。 フィルタリング演算数 (n+1)m+k (9.1) とすると、 k=1のとき 3(n−1)m+(n−1) (9.2) (n−1は図cでφが求まるまでの処理ステップ
数) k=2〜nまで 3(n−1)m+(n−1)+2k
−1 (9.3) となる。結果1つ当りの演算回数は、 となる。(9.4),(9.5)のいずれもmが大きいと3回
程度となる。すなわち、実質的にフィルタサイズnに依
存しない回数でフィルタリングが可能であるといえる。 第3図は、第2図の処理を実行する手順をPADで書い
たものである。第2図の手順の中で繰返し性の高い部分
を1まとめとし、全体を以下の4つのフェーズに分けて
プログラム化してある。 フェーズ1 φを求める t=1〜t=n−1ま
で。 フェーズ2 φを求める t=nのステップ フェーズ3 φ〜φを求める t=n+1〜t=3n−4まで。 フェーズ4 φn+1を求める t=3n−3のステッ
プ。 図中101は入力データを示すが、このデータは演算途
中で書き換えられる。Pbは出力ポインタで、1から始ま
るものとする。Pcは作業用のワークポインタであり、1
〜n+1を繰返す。つまり、n+1個の結果を1区切り
の処理とした場合の、1区切り中のどの結果を求めてい
るかを示すものである。したがってPcはポインタ更新
時、mod(n+1)の計算が施される。Pbは入力データ
総数106、Nよりn−1少ない値までとりうる。従っ
て、 Pb≦N−(n−1) の間処理が実行される。107のjは、第2図(b)のt
=n+1〜3n−3で毎ステップ使用されるアドレスn+
1を記憶するためのポインタである。本ポインタの値
は、フェーズ2を経る度に更新される。フェーズ2は、
Pcが2となる度に発生するが、Pcの更新はmod(n+
1)で+1ずつ加算が行なわれるので、n+1回毎にj
の値は変化する。Pc,Pbは同時に+1ずつ加算されるの
で、Pbは、n+1ずつ大きくなる。すなわち(10)式よ
りjはn+1ずつ大きくなる。 尚、第2図の説明で記述したように、jを使って記憶
するA(j)の内容は、メモリセルに必ずしも記憶して
おかなくてもよい。参照可能なレジスタであればその中
に記憶しておけばよい。それを今、cとおくと、第3図
中、フェーズ2,3,4は以下のように単純化される。 フェーズ2 φ(Pb)←ψ(A(Pb),A(Pb+n−1)) C←A(Pb+n−1) (j←Pb+n+1の式をd(j)≡Cの式に書き
換え) フェーズ3 (d(j)をCに書き換え、以下同様) φ(Pb)←ψ(A(Pb),C) フェーズ4 φ(Pb)←ψ(C,A(Pb+n+1)) 第3図は、第2図(c)をPAD化したものであり、通
常の電子計算機すなわち第2図(a)の構成を含む情報
処理装置上で一般的に実行可能である。 第4,第5,第6図は、パイプライン化による処理効率向
上を図った本発明の一実施例である。第4図はシステム
の構成、第6図は、フィルタサイズn=5とした場合の
パイプラインバッファの使用法、第7図は、PADを用い
た実行手順を、それぞれ示したものである。 第4図中演算器の出力305は、リング型パイプライン
バッファ400への入力としても使用される。入力データ1
01のAiと、リング型パイプラインバッファ400の内容が
演算器300で演算を施され、その結果の内、最終結果は
フィルタリング結果メモリ200へ、途中のデータは、該
バッファ400へ記憶される。リング型パイプラインバッ
ファは、フィルタサイズnに対してn+1セルを用意す
る。 第5図のn=5の場合を詳しく説明する。各演算時に
おけるオペランドの順序は、第1図と全く同じである。
但し、この第5図の例では各入力データは、リング型パ
イプラインバッファ6個を繰返し使いながら処理を行
う。まず、入力データ101のAiからA5まで該バッファ401
の1〜5番地に格納される。次に第5図中300−1・で
示される2項演算関数を、2つのオペランド302,303
を、それぞれ該バッファ401のアドレス4,5の値として、
実行する。その結果を該パイルラインバッファ401のア
ドレス4に格納する。第5図中、演算・の位置は、その
結果を格納する該バッファのアドレスを示す。例えば、
300−1の結果は、該バッファのアドレス4、300−2の
結果は、アドレス3にそれぞれ格納することを示す。ま
た演算・の左下の数字は演算の順序を示す。さて、300
−4の演算までは、最初に設定してあるA1〜A5の入力デ
ータで演算か可能であるか、次の300−5では、新らし
くA6の値が必要である。そこで本発明を実施しA6の値を
該パイプラインバッファのアドレス6に格納する。 ここで演算300−5でこのA6を用いて結果B2を求め
る。次の段階で該リング型パイプラインバッファのアド
レスを元の1に戻し、A7を格納する。 その際、それ以前に記憶されていた入力データA1は消
えるが、この値は、演算300−4で出力データ201のB1
求めた段階で使用終了となっているので、A1→A7への書
き換えは問題はない。以下、A8,A9,A10をそれぞれ該バ
ッファのアドレス2,3,4と入力しながら演算を実行すれ
ば演算300−12までの12回の演算回数で6個(B1,……,B
6)のフィルタリング結果が得られる。第3図で説明し
たフェーズの考え方を導入すると、以下の通りである、 フェーズ1 B1を求めるための1〜4までの演算手順 フェーズ2 B2を求めた演算手順5 フェーズ3 B3からB5を求めた、演算手順6〜11ま
で。1フィルタリング結果当り、2回の演算を必要とす
る。 フェーズ4 B6を求めた演算手順12 さて、このようにすると、次の6個のフィルタリング
リ結果B7〜B12を求める際、B1〜B6を求めた時の入力、
該リング型パイプラインバッファのと全く同じ方法で演
算を繰返すことができる。すなわち、該リング型パイプ
ラインバッファのアドレス5に次の入力11を格納する
と、以降の演算は、該バッファのアドレス5と4の演
算、その結果とアドレス3の演算と手順をB1〜B6の場合
と全く同様に続けていけばよい。この方法の利点は、こ
の段階で新たにA7〜A10のデータを入力データ列に読み
にいかなくても良い点にある。すなわち入力データ列は
一回アクセスするだけでよく、2回目に使用する場合は
該リング型パイプラインバッファに格納されたデータを
利用することで済む。通常、入力データ列はデータ量が
多く、例えば磁気ファイル装置のように、演算器とのデ
ータ転送レートが余り高くない場合が多い。その際、そ
のデータ転送が少なくて済む利点は、処理速度の上で効
果が大きい。更に本手法では手順の繰返し性がよく制御
しやすい点も利点である。 第6図は、第5図のn=5の場合を一般化してPADで
手順を示したものである。(a)はデータ構造、(b)
は流れ図である。符号は次の通り。 103Pa 入力データ列100のアドレスを示すポインタ 104Pa フィルタリング結果列200のアドレスを示す
ポインタ 105Pa リング型パイプラインバッファ400のアドレ
スを示すポインタ 各データは、 101 A(i)入力データ 201 B(i)フィルタリング結果 401 C(i)リング列パイプラインバッファの内
容 106Nは入力データの総数である。本PADの大略の手順
は、第3図のPADと同じであるので変っている点のみ説
明する。 まず、フェーズ1〜フェーズ4の処理が、リング型パ
イプラインバッファC(i)の処理になっている。これ
は、第5図の例で述べたように、入力データ列A(i)
がc(i)に転写されているためである。実際の演算内
容は第5図で説明した手順の通りである。 A(i)のC(i)への転写とC(i)からB(i)
への出力が新たな手順として第6図(b)の108バッフ
ァ入力、107バッファ出力で行われている。尚、このバ
ッファ出力については、フェーズ1〜フェーズ4のフィ
ルタリング最終結果をいきなり出力してC(i)→B
(i)への出力を省略することもできる。 尚、リング型パイプラインバッファのセル数はフィル
タサイズと同数のnでも実現できるる(n+1)個のセ
ルの場合と同様に処理すれば良いが、フェーズ4から次
のフェーズ1に戻る時リングカウンタの値が1つ進んで
いるので、プログラム手順がやや複雑となるが本発明の
本質は失われない。 次に、第7図は、本発明を2次元データのフィルタリ
ング処理に適用した例である。2次元データに関して
は、まず、1つの次元方向にフィルタリングを施こし、
次に残りの次元方向に同様にフィルタリングを施こせば
よい。すなわち、2回、フィルタリング装置を介するこ
とにより実行が可能である。第7図(a)はフィルタリ
ング装置の構成を示したもので、(b)はフィルタリン
グ手順を示したものである。今、フィルタサイズをn×
mとする。まずi方向に対するフィルタリングは、出力
n+1個当り、3(n−1)回の演算が必要である。す
なわち、全面にわたって、i方向のフィルタリングを行
うと、入力データサイズをN×Mとして大略次の式で求
まる回数の演算が必要となる。 この結果は、 と表わすことができる。この段階での有効データ総数
は、 (N−n+1)×M となっている。次にこれに対してj方向のフィルタリン
グを施こすが、この演算回数は、(11.1),(11.2)の合計をとると、この2次元のフィ
ルタリングに対して 6NM (12) 回の演算で良いことがわかる。 尚この他に、リング型パイプラインバッファを2段設
ける図(c)の方法がある。この方法では1段回は、
(n+1)セルのリング型パイプラインバッファとして
i方向へフィルタリングをかける。その結果を2段目の
パイプラインバッファに入力する。2段目のパイプライ
ンバッファを (N−n+1)×(m+1) の2次元セルとする。これを C2(i,j) とする。1段目のフィルタの結果n+1個を、 C2(1,1),C2(2,1),……,C2(n+1,1) に格納する。以下、A(i,1)の行について順次i方向
のフィルタを施し、C2に入力していく。その結果C2の1
行目 C2(1,1),C2(2,1),……,C2(N−n+1,1) には、 A(1,1),A(2,1),……,A(N,1) にフィルタサイズnのi方向フィルタを施した結果が入
る。この処理をまず、A(i,j)の1行目からm行回ま
で実行する。するとC2(i,j)には、(N−b+1)×
mの2次元データC2(i,j);i=1〜N−b+1,j=1,〜
mが入る。次に、これをj方向にみて、まず、1列目の C2(1,1),C2(1,2),……,C2(1,m) にj方向フィルタを施こす。これによって B(1,1) が求まる。同様に、この処理をiを変えながらN−n+
1回実行すると、 B(2,1),B(3,1),……,B(N−n+1,1) の一行目のフィルタ結果を求めることができる。これを
フィルタリング結果列のメモリに転写すればよい。 次に、A(i,j)のm+1行目 A(1,m+1),A(2,m+1),……,A(N,m+1) にi方向フィルタを施こす。そのためにまず、 A(1,m+1),A(2,m+1),……,A(n,m+1) のn個のデータをC1グ型パイプラインバッファに入力
し、i方向フィルタリングを施こす。その結果をC2(1,
m+1)へ格納する。 以下、A(n+1,m+1),A(n+2,m+1)………を
追加しながら第6図で述べた方法に従って結果を求め、
その出力を順次 C2(2,m+1),C2(3,m+1),……,C2(N−n+1,m+1) へ格納していく。これによりj方向のフェーズ2の処理
のデータが揃ったことになる。ここでC2リング型パイプ
ラインバッファを用いてj方向のフィルタのフェーズ2
を施こす。すなわち、2行目とm+1行目を用いて演算
を施こす。これが2行目のフィルタリング結果となる。 次にフェーズ3の処理の準備をする。すなわち A(1,m+2),A(2,m+2),……,A(N,m+2) に対してC1を使ってi方向フィルタを施こす。その結果
をC2に格納する。その後 C2(1,1),C2(2,1),……,C2(N−n+1,1) に格納する。このC2の1行目とm+1行目を演算し、そ
の結果を再び C2(1,m+1),C2(2,m+1),……,C2(N−n+1,m+1) に格納する。すなわちこれと、C2の3行目を演算すると3行目の結果が求ま
る。 これがj方向のフェーズ3の処理である。 以降このj方向の処理をi方向処理をおりまぜながら
続けるとj方向のフェーズ4の処理を終了し、再びフェ
ーズ1から繰返せばよい。この方法も、2次元に対して
6NMの演算回数で結果が求まっている。 尚、第7図(c)では2つの方向に対して最初i、次
にj方向のフィルタを施したが、第7図(c)中、2段
のパイプラインバッファC1,C2を入れ換えて、i,jの順に
フィルタを施しても良い。特に、入力データがアクセス
の遅い外部記憶装置に貯えられている場合、一度に大量
のデータ転送を行える後者の方法が有効となる。 以上述べた第7図の方法をk次元に拡張すると第7図
での説明でもわかるように次元数の増加は、加算でしか
影響がない。すなわち、今画素数 N1×N2×N3×……×Nk の、フィルタサイズ n1×n2×n3×……×nk によるフィルタリングは、大略 3kN1×N2×N3×……×Nk (12) で済むことになる。 尚、k次元に対してすべて本発明の方法を使わずと
も、その一部の次元に本発明を適用しても効果は減少し
ない。すなわち、使用した次元の数だけ効果が発揮され
ることになるは論を持たない。 第8図,第9図,第10図は、ランレングスコード圧縮
データのように、横方向には画素毎に区切られたデータ
構造を持っていない二次元データに対する本発明の一実
施例である。この場合、ライン単位の入力データを複数
本リング型にしたパイプラインバッファを利用する。ラ
ンレングスコード圧縮データのように、処理した結果デ
ータ長に伸縮が発生する場合は、2ラインに対する処理
結果を、元のラインに格納する際、原データを破壊する
可能性がある。そこで、この実施例では、リング型パイ
プラインバッファのライン数をフィルタサイズnに対し
てn+2本用意する。 第9図は、処理の流れ、第10図は、n=5とした時の
リング型パイプラインバッファ410の使い方の説明図、
第11図はPADによる処理手順である。まず第9図を用い
て処理の流れを説明する。 入力データ列100の中からリング型パイプラインバッ
ファに入力データ101を入力しながら、演算器300を使っ
て縦方向のフィルタリングを施こす。その結果をワーク
メモリ500へ転送し、情報処理ユニット600を用いて横方
向のフィルタリングを施こす。これにより最終結果200
が求まる。尚、この際、情報処理ユニットは通常のマイ
クロプロセッサのように制御,演算ができるものであれ
ばよい。また、410には結果が残っているので情報処理
ユニットがそのリング型パイプラインバッファの1ライ
ン分を直接アクセスしてその結果を求めることができ
る。更にそれを直接フィルタリング結果200として出力
する場合は、第8図500のワークメモリは不要となる。
リング型パイプラインバッファの使用法について第9図
を参照に説明する。101は入力データ、411は、リング型
パイプラインバッファのアドレス(以降バッファアドレ
スと略称)を示す。特に、411は、入力データを最初に
格納するバッファアドレスを示す。n=5の例であるの
で、バッファアドレスは1〜7まである。ここで注意す
る点は、入力データ列 A1,A2,A3,A4,A5 を、それぞれ 1,2,3,4,6 とし、最後のA5を1つ空けて入れる点である。 この実施例でもフェーズ1〜4を設け説明する。 フェーズ1 1行目の結果B1を求めるまでの手順 フェーズ2 2行目の結果B2を求める手順 フェーズ3 3行目〜n行目(第9図の場合5行目)
を求める手順 フェーズ4 n+1行目(第9図の場合6行目)を求
めるまでの手順 まず、フェーズ1の最初として2つのオペランド301,
302としてリング型パイプラインバッファ410のバッファ
アドレス4のA4と同じく6のA5を用いて演算300−1を
施こす。その出力を第9図中演算を示す・の右上に記述
した番号のバッファアドレスに書き込む。演算300−1
の場合は符号305で示す5番地に結果を書きこむことを
意味する。このようにすると、演算によってデータ長が
伸縮しても正常に演算が終了できる。 フェーズ1処理では、この後、300−2,300−3,300−
4と続けてフィルタリング結果B1を得る。この段階まで
の演算回数は、1ラインと1ラインの処理を1回と算定
して(n−1)回である。最後にフェーズ2の準備とし
て、バッファアドレス7にA6の入力データを入力する。
(尚この入力は、フェーズ2側の処理としても良い。以
下フェーズ2〜フェーズ4の最後の入力データ読込みに
ついても同様である。) 次にフェーズ2の処理では、演算300−5を実行す
る。すなわち入力の2行目A2から5行目A5までの4ライ
ン分の縦方向フィルタの結果が入っているバッファアド
レス3の内容と、バッファアドレス7に入っているA6
の関で演算を施して2行目の結果B2を得る。そして、次
の入力A7をリング型パイプラインバッファのバッファア
ドレス1に入力する。このようにすると、後述するがフ
ェーズ4から次のフェーズ1へと移る場合、最初のフェ
ーズ1からの処理と全く同じ処理を始めればよいことに
なり都合が良い。 次にフェーズ3で、第9図300−7,300−9,300−11の
各演算を施してB3〜B5を得る。この際、演算300−6,300
−8,300−10の結果としてバッファアドレス3,4,5に順次
データを始納する。そしてフェーズ3の最後には、バッ
ファアドレスの1,2,3,4にそれぞれ、A7以降のA7,A8,A9,
A10が残っていることになる。 最後にフェーズ4で、バッファアドレス5と4の内容
を演算(300−12)して、6行の結果がすべて求まる。
この後、バッファアドレス6にA11を入力する。これに
より、3(n−1)回,n=5のこの場合で12回の演算で
B1〜B6のn+1個の結果が求まると共に、リング型パイ
プラインバッファの1,2,3,4,6に、A7,A8,A9,A10,A11
5行の入力データが残っていることになる。このデータ
の並びとリング型パイプラインバッファの使い方は、A1
〜A5を使ってB1〜B6を求めたフェーズ1の最初と同じで
ある。従って以降、フェーズ1〜4を繰返すことにより
全面処理が可能である。 第10図は以上説明した流れを一般化しPADで表したも
のである。図中各記号の表わす意味は、第6図と全く同
様であるが、新しくi方向フィルタ関数として ψ′(C(i),C(j),n) を導入している。これは、2ラインC(i),C(j)間
で縦方向フィルタをやった上で、その結果に対して横方
向にフィルタサイズmのフィルタを施す関数である。こ
の後半の横方向フィルタは、第8図の情報処理ユニット
600を用いた演算に相当する。それ以外については、第
9図の説明で述べた手順の通りである。 以上8〜10図では、縦方向のフィルタリングに対し、
1ラインの結果当り の演算回数で全結果が求まる。 第11図は、ランレングスコード圧縮データに、対する
縦方向フィルタリング方法を示した本発明の一実施例で
ある。この場合のフィルタは2ライン間の2ライン×1
列の拡大フィルタで、データはランレングスで記憶され
ているものとする。ランレングスデータは第11図(a)
のように黒ランのスタート座標と最終座標で表わすもの
とする。(b)は縦方向フィルタの入力と結果例であ
る。今j行目のi番目のランを (Xis,j,Xie,j) (13.1) i+1番目のランを (X(i+1)s,j,X(i+1)e,j) (13.2) また、j+1行目のi′番目のランを (Xis(j+1),Xis,(j+1)) (13.3) とする。この第11図(b)の例では、 (Xis,(j+1)<,Xis,j<Xie,j<X(i+1)s,j<Xie,j+1<X
(i+1)e,j+1 (13.4) とする。この2行1列のフィルタは通常2ライン間の画
素間OR演算を施している。これに対して本発明では、2
ラインのランのエッジ座標の最大値,最小値を求めるこ
とにより行う。すなわち、この例では、まず、j,j+1
の2行のそれぞれのランデータを取り出す。まず、それ
らのスタート座標同志の最小値を取り出す。(13.1)の
(13.3)のスタート座標は、 Xis,j,Xis,(j+1) であるので(13.4)より最小値は Xis,(j+1) (14.1) となる。この値が、2ライン間のフィルタリング結果に
よってできるランのスタートエッジ座標となる。 次にこの結果ランの後縁を求める。この後縁はXi
s,(j+1)で始まるj+1行目のi′番目のラン Xis,(j+1),Xie,(j+1) よりの後縁の座標より小さくはない。そこで、この座標
を中心に、他の行、この場合はj行目のランを調べる。
そのためには、今調べ終ったj行目のi番目のラン以降
ランに沿って順次調べていけばよい。この場合(c)図
に記す3通りの場合が発生する。 まず、(c.1)のようにj+1側のランエッジ座標で
j側のランが白ランである場合は、今求めているXi
s,(j+1)で始まるランの後縁の値を X(i+1)e,j+1 とする。次の手順は、j,j+1行とも新しいランのデー
タを取り出し、そのスタートラン座標同志の最小値を求
めるという最初の処理から始めればよい。 次に(c.2)のように、j+1側のランの後縁に接し
て、又は含んで(図c.2の点線の場合)j側のランがあ
る場合は、今後は、j側のそのランの後縁を基準に、後
縁探索手順を進めればよい。 最後に(c.3)のようにj,j+1の後縁が同じ場合(c.
1)と同じく、この後縁値をラン終了座標とすればよ
い。そして、(c.1)の場合と同様、新しいランを求め
る処理をすればよい。 さて、以上の処理を(b)の場合にあてはめると、j
+1側のランの後縁の座標 Xie,(j+1) でのj行目のランを調べるとj側に黒ランがある。これ
は、(c.2)の場合に相当するので、j側の黒ランの後
像X(i+1)e,jを基準に、j+1側のランを調べ
る。この点でのj+1側のランは白ランであるのでこの
値X(i+1)e,jを結果のランの後像とする。そし
て、次j,j+1両ラインを見ながら最初に始まる黒ラン
を探索する。 尚、上記探索中に、片方又は両方のラインの最終座標
となる場合がある。その場合は、後縁を探索中の場合は
その最終点を後像座標とし、前縁を求めている場合はな
にもしないで終了し次のラインへの処理へ移ればよい。 また、2行分のランを取り出して比較した結果、両者
が同じ値の時は、その値を前縁値とし、その両ランの後
縁同志を比較して後縁の座標値の大きい値の方を基準
に、後縁探索の処理を行えばよい。そこで後縁も同じ値
となる場合については、どちらを採用しても同じ値であ
るので問題はない。 以上第11図では、拡大処理を2行のラン間の前,後縁
の座標値間の大小関係のみ調べて処理を行った。これに
よって、従来1点1点処理していたフィルタ処理がラン
単位に行なえるようになる。通常ラン数は画素数より充
分少なくなるのでこれによって高速化が可能である。ま
た、最小,最大を調べる処理は通常の算術演算であり汎
用性の高い処理である。すなわち、本発明の実施により
専用ハードなくても実現できる長所がある。 縮小処理についても同様に本発明を実施することによ
り高速化が可能である。この場合、2つの行の黒ランの
共通部分を求める処理を行えばよい。すなわち、2つの
ラン (Xis,j,Xie,j) (Xis,(j+1),Xie,(j+1)) の前縁同志の最大値と、後縁同志の最小値を求め、この
最大値と最小値の間をフィルタリング結果のランとすれ
ばよい。もし、この最大値が最小値より大きければ、共
通する黒ランがなかったことになる。その場合、次のラ
ン探索を行えばよい。具体的には、今調べた2つのラン
のうち後像の座標値の小さい方の行のランを更新すれば
よい。もし同じ値をとるなら両ラインともランを更新し
黒ランの共通部分を捜せばよい。 第12図は、第11図の方法をnラインに拡張したもので
ある。この例ではj〜j+n−1のn行に対してn行×
1画素の拡大フィルタを施した例である。今、第11図
(a)と同じデータ形式で黒ランが表現されているもの
とする。第12図に示すように各行のランを とする。このデータに対してn×1の拡大フィルタを行
う処理は次に述べる通りである。 まず、1〜n行目からそれぞれの最初のランを取り出
す。すなわち、次のようなランが取出される。 (X1s,11e,1),(X1s,21e,2),…,(X1s,n
1e,n) (15) 次に、これらのランの中でスタート座標(黒ランの前
縁値)の最小ランを抽出する。そのようなランが複数個
ある場合は、そのどれをとっても良い。抽出された1つ
のランを、フィルタリング結果として一応記憶してお
く、そのランの値を (Xs,Xe) (16.1) とする。次に抽出されたランの行の入力データの中の、
次のランを取り出す。それを式(15)の残ったランの中
に入れ再びn個のランの中で前縁が最小値であるランを
求める。そのランを (Xs′,Xe′) (16.2) であるとする。今、(16.1)と(16.2)において、 Xs≦Xs′ が成り立つ。 ここで、Xe,Xs′,Xe′の値のとの方により次に示す2
種類のどちらかの処理を行う。 Xe<Xs′ (Xs,Xe)を結果として登録。新たに(Xs′,Xe′)を
仮登録して、次の処理に移る。次の処理については後登
する。 Xs′≦Xe 仮登録の(Xs,Xe)のランの後縁値を、Max(Xe′,
Xe)に置き換え、これを新たな仮登録ランとして次の処
理へ移る。 尚、黒ランの前・後縁をサンプル点の座標とした場
合、 (Xs,Xe)と(Xe+1,X′) (但しXe+1<X′) の2つのランは連結していることになる。この場合は、
上記,の条件はそれぞれ、 Xe+1<Xs′ Xs≦Xe+1 に置き換えればよい。 さて、,の処理を行った後は、抽出したランが属
するラインにおける、抽出ランの次のランを取出して、
そのランと他のn−1本のラインの既に取り出されてい
るランの合計n個のランの間で再び前縁が最小値をとる
ランを探索する処理を繰返せばよい。 以上が、ランレングスコード圧縮コードに対するn×
1拡大フィルタの実施例である。尚、この手法の更に高
速化を図った手法は次の通りである。上記の場合にお
いて、 Xs′≦Xe′≦Xe となる抽出ラン(Xs′,Xe′)は、結果に何ら影響を与
えない。言い換えれば、仮登録ラン(Xs,Xe)が求まっ
た段階で、その他のラインに存在する。 前縁・後縁の少なくとも1つがXeより大きくないラン
は処理する必要がない。従ってこの段階で、各ラインの
ランデータの中で式(17)を満足するランを無視し、
(17)を満足しない最初のランを取り出した方が高速化
が図れる。 以上説明したように本発明を実施した手法は、ランの
座標値の最大・最小を検出するという通常の算術演算を
用いてフィルタリングが可能であること、更に、演算量
が画素数に依存せずラン数に依存すること、などの長所
を有する。これによって汎用的な装置で実現でき、コス
トの低さや、床面積の小ささなどが求められるオフィス
機器等への応用が図れる。また高速性も達成できる。 尚、nライン縮小処理については、以下の通りであ
る。まず1〜n行目からそれぞれのラインの最初のラン
を取り出す。この点は、前述の拡大処理での処理と同じ
である。すなわち式(15)と同じく次のようなランが取
出される。 (X1s,11e,1),(X1s,21e,2),…,(X1s,n
1e,n) (15)′ 次に、これらランの前縁の最大値、後縁の最小値を求
める。それをXs,Xeとおくと、 Xs=max(X1s,1,X1s,2,…,X1s,n) (18.1) Xs=min(X1e,1,X1e,2,…,X1e,n) (18.2) この2つの値Xs,Xeの関係は、次の2つの場合のいず
れかである。 Xs<Xe Xe≦Xs まず、の場合について説明する。この場合、この2
つの値を前縁,後縁に持つラン (Xs,Xe) (19) が実際に黒ランとして存在する。従ってこれを結果のラ
ンとして登録する。 次に、Xeと同じ後縁を持つ(15)′の中の1つのラン
を取り出す。これは必ず1つ以上存在するはずである。
その抽出ランの所属する行で、次のランを取り出す。そ
のラインをi行とすると、i行の2つ目のランを取り出
すことになる。すなわち、 (X2s,i2e,i) (20) 次にこれを中心に縮小フィルタを施こすことにする。
その際、この(20)式のランと共通部を持たない他の行
のランは結果に影響を与えない。ここで各行のランは座
標値の小さいものから並んでいるので、後縁座標値が
(20)式のX2s,iと等しいか、又は小さいランは考慮か
らはずしても良いことになる。そこで、各ラインのラン
を後縁座標値が(20)式のX2s,iより大きくなる最初の
ランの前まで読みとばし、その最初のランを取り出す。
そのような処理を残りのラインにも実施しn行分のラン
を揃えると(15)′のようにn個のランのペアができ
る。これをもとにまた最初に述べたように前縁の最大値
の後縁の最小値を求める処理を行う。 次にの場合、すなわちXe≦Xsの場合は、「前縁が後
縁の右側に存在する」ということになり、現実にこのよ
うなランは存在しないことになる。この場合は式(19)
の(Xs,Xe)を登録することはやめ、直ちに次の処理に
移る。この場合は、前縁値がXsと一致する(15)′の中
の1つのランを抽出する。そのランをi行目のランとす
ると (X1s,i1e,i) (21) となる。これを中心にその他のラインのランを更新す
る。この更新の仕方は、の場合に述べた方法と同じで
ある。すなわち、ライン毎に後縁が(21)式のX1s,i
越えないランを考慮からはずし、最初に出現する、そう
でないランを取り出す。これ以降はの場合に述べた方
法と同じである。 以上が、縮小フィルタ処理の方法である。尚、ラン探
索中に残りのランがなくなったら、その時点で処理は終
り次のラインへ移る。また、最初からランが存在しない
場合、例えば1ライン分真白の場合は、結果が真白とな
るのは自明である。そこで、処理に当って黒ランのない
ラインがないかどうか調べ、そのようなラインが存在す
る場合、次のラインへ処理を移す。 更に、真白なラインはn×1縮小フィルタの場合、上
下合わせてnライン分の結果を真白とする。そこで、順
次処理していく段階で最終ラインに真白ラインが現れる
と、その処理中の結果のラインを真白とするとともに続
くn−1ラインも真白とし、それに続くラインへの処理
と一気に処理を進める。 最初のラインの処理又は、上記のnラインを真白にす
る処理の後の処理でnラインを取り出した際、真白ライ
ン1〜数本が表れた場合は、その真白ラインの最終のも
のに着目する。そのラインがi番目(最初を1とする)
であったとすると、処理中のランも含めて連続するiラ
イン分を真白とし、その次の処理へ進める。 尚、拡大フィルタ処理時、1ライン分真黒のランがあ
ると、nラン分真黒となる。これを導入して拡大フィル
タ処理を高速化することが可能である。上記縮小フィル
タの場合と同じ処理をすればよい。但し、その際、結果
ラインを真白にする代りに真黒にするという処理を行え
ばよい。 以上、縮小フィルタにおいても、拡大フィルタの場合
と同様に本発明を実施した効果がある。すなわち、汎用
装置で高速化できる。 更に、この手法にリング型パイプラインバッファを利
用して高速化を図ることが可能である。第8図で述べた
例において、演算器300による処理を、第11図で述べた
2ライン間の拡大又は縮小フィルタ処理とする。そのよ
うにして、第8,第9,第10で述べた方法を実施すれば、第
11図で述べたランレングスコード圧縮の処理方法の効
果、すなわち 処理数が画素数に依存せず、ラン数に依存し高速で
あること、 汎用装置での実現が可能なことと、リング型パイプ
ラインバッファの利用による効果、 1ライン出力当り、フィルタサイズnに対して 回の演算で済り、実質的にフィルタサイズに依存しない
高速化が図れること が重畳され、他めて高速かつ汎用的に使用できる方法が
提供されることになる。 尚この両方式の混合方式においても、1ライン全体が
白又は黒の場合の前述の処理は適用できる。その一つの
具体例は次の通りである。 第10図において、バッファ初期化の段階で、拡大フィ
ルタの場合、ライン全体黒ランのラインが、又、縮小フ
ィルタの場合、ライン全体白のラインが存在すれば無条
件に結果ランをそれぞれ黒ラン又は真白にする処理を行
う。その処理を行うライン数は、上述のラインの番号を
i番目(最初のラインを1とする)とすれば、i行分黒
又は白とすればよい。 そして次に、ポインタ初期化として Pa=n+i+1,Pb=i+1,Pc=1 (22) かつ、再びバッファ初期化として C(1)←A(i+1),C(2)←A(i+2) ………………… C(n−1)←A(i+n−1) C(n+1)←A(i+n) (23) を実行し以下第10図のPADの手順に従って実行する。こ
の段階で再びライン全体が黒(拡大フィルタ)又は白
(縮小フィルタ)のラインがある場合は、再びそのライ
ンi′までライン全体黒又は白の処理を施し、(22),
(23)で i′→i として最初の場合と同様の処理そればよい。また、フェ
ーズ1,フェーズ2,フェーズ3,フェーズ4の各処理の最後
に行う入力データのリング型パイプラインバッファへの
入力時に、ライン全体白又は黒ランが現れた場合は、次
のようにする。その時点でのPbの値をi″とする。該白
又は黒ランのラインは、 i″+n である。従って、nラインのフィルタ処理で影響の出る
のは、結果のラインの i″+1,i″+2,……,i″+n 行である。従ってこのnライン分をライン全体白又は黒
ランとする。そして(22),(23)の処理において、 i″+n+1→i として最初の場合と同様の処理を行う。すなわち、後り
のフェーズの処理を飛ばして、ポインタ等を更新した上
で最初からやり直せばよい。 次に、ランレングスコード圧縮データに対する横方向
の拡大縮小フィルタの本発明の一実施例を説明する。1
ラインのデータを (X1sX1e)(X2sX2e)……(XNsXNe) (24) とする。このデータに拡大フィルタを施こす例を述べる
フィルタサイズをnとする。 まず、画面のスタート座標値をX0とすると結果の最初
のランの前縁を X1s′=max(X0,X1s−n+1) (25.1) とする。この値を前縁として、最初のランを (X1s′,X1e) (25.2) として仮登録する。 次に2番目のランを取出して、計算して新しく (X2s−n+1,X2e) (25.3) のランを作る。ここで、(25.2),(25.3)が併合され
るか否か調べる。(25.2)の後縁と(25.3)の前縁を比
較する。 X1e<X2s−n+1 (25.2)を結果として登録、(25.3)を仮登録とし、
この(25.3)と更に次のランの拡大したランとの併合を
調べる。 X1eX2e−n+1 (25.2)の後縁を(25.3)の後縁に置きかえ (X1s′,X2e を新たな仮登録ランとして前の仮登録ランと置換する。
この仮登録ランと、次のランに対する処理結果と併合可
能性を調べる。 以上の処理を続けて、最後のランまで処理を行う。最
後のランは、 (……,XNe) (25.4) となって仮登録のまま残されていることになる。これを
登録して処理を終了する。 また、縮小フィルタの場合は次のようにすればよい。
まず、(24)の最初のランを取り出す。これに縮小フィ
ルタを施こす。その際、 X1s<X1e−n+1 (X1s,X1e−n+1)を登録し次ランへ移る。 X1sX1e−n+1 何も登録しないで次のランへ移る。 この又はの処理を全体のランに施せばよい。 以上、横方向の拡大縮小フィルタを説明したが、これ
らの処理は極めて単純な算術演算であり、かつ、ラン数
に比例した演算を行えばよく極めて高速である。 次に、この方法を第8図、600情報処理ユニットとし
て使用すれば、 横方向フィルタリングの高速化と リング型パイプラインバッファ利用の高速化の重量
効果を発揮させることができる。 〔発明の効果〕 本発明によれば、 フィルタサイズの大きさに実質的に依存しない演算回
数でフィルタリングが実行できる。具体的には、フィル
タサイズnに対して1出力当り、基本的に 回の演算でフィルタリングできる。この結果、オフィス
や工場等の画像,文書,図面処理において、必要となる
大きなサイズのフィルタによるフィルタリングが可能と
なり、今まで速度が遅く実行できなかった認識,解析等
の高度な処理ができるようになる効果がある。 更に、k次元データに対しても、実質的に1出力デー
タ当り3k回の処理で実行可能である。例えば、50×50の
フィルタでは、1出力当り従来、約2500回の演算が必要
であったのに対し、本発明によれば、1出力当り、6回
の演算で良い。つまり、2ケタ半の高速化が図れる。実
質的にこれは、不可能を可能とする効果がある。 又、本発明によれば、 リング型パイプラインバッファの利用により入力デー
タへのアクセス回数を減らすことができる。通常入力デ
ータは大量であるため、外部ファイル装置に入っている
場合が大半であるので、アクセス回数の減少により超高
速化が可能となる。従来フィルタサイズnに対して、1
出力当り4回のアクセスを必要とするのに対し、本発明
では、1回のアクセスで可能となる。すなわち4倍の高
速化効果がある。 圧縮データにおいて、画素数に依存せずラン数に依存
する処理数でフィルタリングが可能である。具体的に
は、通常の文書,図面では、画素数とラン数は2ケタ近
くの差がある。すなわち、本発明により処理数は2ケタ
近く、減少し、超高速化か可能である。 圧縮データにおいて、通常の算術演算ができる汎用装
置でフィルタが可能となる。特殊回路不要かつ、大量に
ある汎用装置の利用で低コスト化が図れる。 以上本発明により、図面,文書,画像処理に大幅な変
率を持たらし、従来、処理時間がかかりすぎるためあき
らめていた各種処理が可能となる効果がある。
【図面の簡単な説明】 第1図は本発明の一実施例のフィルタリングサイズ5と
した場合のフィルタリング手順を示した図、第2図は、
本発明の他の実施例でフィルタサイズを一般化した手順
を示す図、第3図はそのPAD図、第4,5,6図は、リング型
パイプラインバッファを使った本発明の一実施例を示す
図、第7,8図はそれぞれ2次元データに対する本発明の
一実施例をす図、第9,第10図は、第8図の例の具体的手
順例とPADを示す図、第11図は、圧縮データに対する縦
方向フィルタリングを示す図、第12図は横方向フィルタ
リングを示す図である。 100……入力データ例(メモリ)、101……入力データ、
102……入力データ値、200……出力データ列(メモ
リ)、201……出力データ、 300……(2項)演算器、301,302……演算器入力、400
……リング型パイプラインバッファ、401……バッファ
アドレス、410……リング型パイプラインバッファ2、5
00……横方向フィルタリング用ワークメモリ、600……
(横方向フィルタリング用)情報処理ユニット、700…
…入力画像、701……黒ラン前縁、702……黒ラン後縁、
703……圧縮データ列、710……拡大処理結果、720……
nラインフィルタリング結果。

Claims (1)

  1. (57)【特許請求の範囲】 1.少なくとも、入力された2n個のデジタルデータを記
    憶するメモリと、該メモリから引数として読み出したデ
    ータに引数可換な演算Φを複数回施して最終的に(n+
    1)個の所望のデータを出力する演算部を有する情報処
    理装置で実行される画像フィルタリング方法であって、
    該画像フィルタリング方法は、 上記メモリに記憶されている、1〜nまでのn個のデー
    タに対して(n−1)回の演算Φを施し、最終結果A
    1と、(n−2)個からなる途中結果G1を得る第1のス
    テップと、 上記メモリに記憶されている(n+1)〜2nまでのn個
    のデータに対して(n−1)回の演算Φを施し、最終結
    果An+1と、(n−2)個からなる途中結果G2を得る第2
    のステップと、 上記G1のデータとG2のデータの組み合わせに(n−1)
    回の演算Φを施して、A2〜An番目のデータ(n−1)個
    を得る第3のステップと、 上記データA1〜An+1からなるデータ列をフィルタリング
    結果として出力する第4のステップと、 からなることを特徴とするフィルタリング方法。 2.特許請求の範囲第1項記載のフィルタリング方法に
    おいて、上記入力データを画像データとし、該画像デー
    タをラン情報で表示し、上記演算は上記ラン情報の前縁
    及び後縁の座標値をもとに画像の拡大・縮小を行うフィ
    ルタリング方法。 3.前記第1及び第2のステップで得られた途中結果G1
    及びG2は、上記第3のステップが実行される際に、上記
    メモリに上書きされて保存されることを特徴とする特許
    請求の範囲第1項又は第2項に記載のフィルタリング方
    法。 4.処理の対象となるデータより少数の2n個のデジタル
    データを記憶するメモリと、該メモリから引数として読
    み出したデータに引数可換な演算Φを複数回施して最終
    的に(n+1)個の所望のデータを出力する演算部を有
    する情報処理装置で実行される画像フィルタリング方法
    であって、該画像フィルタリング方法は、 上記メモリに記憶されている、1〜nまでのn個のデー
    タに対して(n−1)回の演算Φを施し、最終結果A
    1と、(n−2)個からなる途中結果G1を得る第1のス
    テップと、 上記メモリに記憶されている(n+1)〜2nまでのn個
    のデータに対して(n−1)回の演算Φを施し、最終結
    果An+1と、(n−2)個からなる途中結果G2を得る第2
    のステップと、 上記G1のデータとG2のデータの組み合わせに(n−1)
    回の演算Φを施して、A2〜An番目のデータ(n−1)個
    を得る第3のステップと、 上記データA1〜An+1からなるデータ列をフィルタリング
    結果として出力する第4のステップと、 他の2n個のデータを上記メモリに読み込んで、フィルタ
    リングの対象となるデータが無くなるまで、上記の第1
    から第4のステップを繰り返すことを特徴とするフィル
    タリング方法。
JP62159594A 1987-06-29 1987-06-29 フィルタリング方法 Expired - Lifetime JP2702930B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62159594A JP2702930B2 (ja) 1987-06-29 1987-06-29 フィルタリング方法
US07/213,133 US5007099A (en) 1987-06-29 1988-06-29 Data filtering method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62159594A JP2702930B2 (ja) 1987-06-29 1987-06-29 フィルタリング方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP29239296A Division JPH09120449A (ja) 1996-11-05 1996-11-05 フィルタリング装置

Publications (2)

Publication Number Publication Date
JPS644873A JPS644873A (en) 1989-01-10
JP2702930B2 true JP2702930B2 (ja) 1998-01-26

Family

ID=15697114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62159594A Expired - Lifetime JP2702930B2 (ja) 1987-06-29 1987-06-29 フィルタリング方法

Country Status (2)

Country Link
US (1) US5007099A (ja)
JP (1) JP2702930B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5885276A (en) * 1997-12-02 1999-03-23 Galil Medical Ltd. Method and device for transmyocardial cryo revascularization
US6412050B1 (en) * 1999-12-30 2002-06-25 Intel Corporation Memory record update filtering
DE60224181D1 (de) * 2001-06-11 2008-01-31 Silicon Optix Inc Verfahren und vorrichtung zur verarbeitung von zweidimensionalen bilddaten
JP3731565B2 (ja) * 2002-06-18 2006-01-05 ソニー株式会社 データ変換装置
TWI396967B (zh) * 2008-05-16 2013-05-21 Htc Corp 信號過濾方法及應用其之電子裝置與可讀取記錄媒體
JP6361290B2 (ja) * 2014-05-30 2018-07-25 セイコーエプソン株式会社 画像処理装置、表示装置および画像処理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5951686A (ja) * 1982-09-02 1984-03-26 Hitachi Medical Corp デイジタルフイルタ法及びデイジタルフイルタ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4375081A (en) * 1980-12-05 1983-02-22 Pencept, Inc. Multistage digital filtering utilizing several criteria

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5951686A (ja) * 1982-09-02 1984-03-26 Hitachi Medical Corp デイジタルフイルタ法及びデイジタルフイルタ

Also Published As

Publication number Publication date
US5007099A (en) 1991-04-09
JPS644873A (en) 1989-01-10

Similar Documents

Publication Publication Date Title
US10699160B2 (en) Neural network method and apparatus
CN111587447B (zh) 帧循环视频超分辨率
KR100264633B1 (ko) 준난수 생성 장치 및 방법, 및 함수 f의 다중 적분 계산 장치 및 방법
US20030084082A1 (en) Apparatus and method for efficient filtering and convolution of content data
Singh et al. Survey on single image based super-resolution—implementation challenges and solutions
Nicol A systolic approach for real time connected component labeling
JP2702930B2 (ja) フィルタリング方法
Saydjari et al. Equivariant wavelets: Fast rotation and translation invariant wavelet scattering transforms
Han et al. TSR-VFD: Generating temporal super-resolution for unsteady vector field data
Yuan et al. A fast single-image super-resolution method implemented with CUDA
CN114494022A (zh) 模型训练方法、超分辨率重建方法、装置、设备及介质
CN108389153B (zh) 一种视图加载的方法及终端设备
Shahbahrami et al. FPGA implementation of parallel histogram computation
KR102494565B1 (ko) 콘볼루션 신경망의 하드웨어 구조 최적화 방법
WO2020187042A1 (zh) 图像处理方法、装置、设备以及计算机可读介质
US5745123A (en) Method for resizing an image by a factor of two
CN115409719A (zh) 数据处理方法、装置、终端设备及计算机可读存储介质
JPH09120449A (ja) フィルタリング装置
CN113538205B (zh) 基于surf算法的特征点检测方法和装置
WO2022089421A1 (en) ReLU COMPRESSION TO REDUCE GPU MEMORY
JP7468655B2 (ja) 不整合判定装置、方法、および、プログラム
US8972462B2 (en) Display of temporal data over multiple orders of magnitude
JP2737829B2 (ja) イメージ・データの拡大変換方法及び装置
US20230237628A1 (en) Modeling continuous kernels to generate an enhanced digital image from a burst of digital images
JP7285479B2 (ja) 画像認識装置、及び画像認識プログラム

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071003

Year of fee payment: 10