JPH052645A - Ordered filtering method - Google Patents
Ordered filtering methodInfo
- Publication number
- JPH052645A JPH052645A JP15475191A JP15475191A JPH052645A JP H052645 A JPH052645 A JP H052645A JP 15475191 A JP15475191 A JP 15475191A JP 15475191 A JP15475191 A JP 15475191A JP H052645 A JPH052645 A JP H052645A
- Authority
- JP
- Japan
- Prior art keywords
- digit
- digital data
- sum
- block
- output
- 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.)
- Pending
Links
Landscapes
- Image Processing (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】複数のデータ中から、所望の順位
の大きさのデータを検索し、出力する順序フィルタリン
グ方法に関し、例えば、画像処理、特にデジタル画像処
理の空間フィルタリング方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an order filtering method for retrieving and outputting data of a desired rank from a plurality of data and, for example, to a spatial filtering method for image processing, especially digital image processing.
【0002】[0002]
【従来の技術】デジタル画像処理は、現在様々な応用分
野の中で素晴らしい使われ方をしている。オートメーシ
ョン工場の制御、ロボット、警備保障業務、あるいはオ
モチャの製造など、様々な分野において盛んに利用され
ている。2. Description of the Related Art Digital image processing is currently being used brilliantly in various fields of application. It is widely used in various fields such as automation factory control, robots, security services, and toy manufacturing.
【0003】これらのデジタル画像データは、その読取
りの際に、しばしば雑音を含んでいる。近年、画像デー
タ読取装置の解像度、分解能が向上するに従い、その雑
音の影響は無視できないものとなっている。このような
雑音を除去する手法の一つに空間フィルタリング方法が
ある。When reading these digital image data, they often contain noise. In recent years, as the resolution and resolution of image data readers have improved, the effect of noise has become non-negligible. One of the methods for removing such noise is a spatial filtering method.
【0004】空間フィルタリング方法とは、画像のある
点の値(明るさ)を決定するために、その点を包含する
複数の点の集合を定義し、その集合に含まれる各点の値
により、最初の点の値を決定する方法である。このよう
な点の集合を一般にカーネルと呼ぶ。In the spatial filtering method, in order to determine the value (brightness) of a certain point in an image, a set of a plurality of points including the point is defined, and the value of each point included in the set defines This is a method of determining the value of the first point. Such a set of points is generally called a kernel.
【0005】最も良く使用されるカーネルは、3×3の
9個の点からなるカーネルである。つまり、ある点の値
は、その点の値とその点を取り巻く8個の点の値とから
決定される。図4に3×3のカーネルを用いた空間フィ
ルタリング方法の説明図を示す。図4は、カーネルと、
画像データ全体との関係を示した図である。図におい
て、点V5 の値は、そのカーネルであるV1 〜V9 の点
の値によって決定される。 この決定の方法によって、
空間フィルタリング方法の種類が決まる。スポット状の
雑音を除去するのに特に効果的なフィルタリング方法と
して、メジアンフィルタリング方法がある。メジアンフ
ィルタリング方法を実行する装置、プログラム等はメジ
アンフィルタと呼ばれる。The most commonly used kernel is a 3 × 3 9 point kernel. That is, the value of a certain point is determined from the value of that point and the values of the eight points surrounding that point. FIG. 4 shows an explanatory diagram of a spatial filtering method using a 3 × 3 kernel. Figure 4 shows the kernel
It is a figure showing the relation with the whole image data. In the figure, the value of the point V 5 is determined by the values of the points V 1 to V 9 , which is the kernel. By the method of this decision,
The type of spatial filtering method is determined. A median filtering method is a particularly effective filtering method for removing spot noise. A device, a program or the like that executes the median filtering method is called a median filter.
【0006】メジアンフィルタリング方法とは、V1 〜
V9 間での点の値を、大きさが大きい順に並べたとき
に、その中央値(メジアン)を新たにV5 の値とする方
法である。前述したようにこのフィルタリング方法は、
スポット状の雑音除去に効果が大きい。また、メジアン
フィルタリング方法では、中央値、すなわち5番目の値
を使ったが、これを、一般的にX(1以上で、カーネル
に含まれる点の数以下の整数)番目の値を取ることとし
たフィルタリング方法を総称して、順序フィルタリング
方法と呼ぶ。The median filtering method is V 1 ~
This is a method in which, when the values of points between V 9 are arranged in descending order of magnitude, the median value (median) thereof is newly set as the value of V 5 . As mentioned above, this filtering method
Greatly effective in removing spot noise. Further, in the median filtering method, the median value, that is, the fifth value is used. Generally, this is taken as the Xth (1 or more and an integer less than or equal to the number of points included in the kernel) th value. The filtering methods described above are collectively called an order filtering method.
【0007】この順序フィルタリング方法を実現する最
も普通の方法は、カーネルに含まれる点の値を大きさの
順に整列(Sorting)させた後、その中から、所
望のX番目の値を取り出す方法である。この方法は、例
えば特開平2−7614などに開示されている。The most common method for implementing this order filtering method is to sort the values of the points included in the kernel in the order of magnitude, and then take out the desired Xth value from the sorted values. is there. This method is disclosed in, for example, JP-A-2-7614.
【0008】また、昭和63年電子情報通信学会秋季全
国大会予稿集、C−2−97ページには、ビットスライ
ス型の並列ソータを用いて所望の順位の値だけを選択的
に取り出す方法を用いたLSIの例が開示されている。
以下、この方法を説明する。Nをカーネルに含まれる点
の数、Dを各点の値の桁数(ビット数)、X(1≦X≦
N)を取り出すデータの順位とする。すなわちD桁のデ
ジタルデータがN個あり、その中から、X(1≦X≦
N)番目の大きさのデータを出力データとして取り出す
とする。N個のデジタルデータを、V1 (D:1)〜V
N (D:1)で表し、例えばV1 (D)は一番目のデー
タのD桁目のビット、すなわちMSBを表し、V
1 (1)は一番目のデータの1桁目のビット、すなわち
LSBを表すものとする。[0008] In addition, in the C-97 page, Proceedings of the Autumn National Convention of the Institute of Electronics, Information and Communication Engineers in 1988, a method of selectively retrieving only values of a desired rank using a bit slice type parallel sorter is used. The example of the existing LSI is disclosed.
Hereinafter, this method will be described. N is the number of points included in the kernel, D is the number of digits (bit number) of the value of each point, X (1 ≦ X ≦
N) is the order of the data to be extracted. That is, there are N pieces of D-digit digital data, and among them, X (1 ≦ X ≦
It is assumed that N) th size data is extracted as output data. N digital data is V 1 (D: 1) to V
N (D: 1), for example V 1 (D) represents the Dth bit of the first data, that is, MSB, and V
1 (1) represents the first digit bit of the first data, that is, the LSB.
【0009】この方法は、各デジタルデータの同じ桁の
「1」の数と、順位Xとを比較し、候補以外のデータを
除外していく方法である。以下に、この方法の各ステッ
プを箇条書きする。In this method, the number of "1" s in the same digit of each digital data is compared with the rank X, and data other than the candidate is excluded. Below is a list of the steps of this method.
【0010】ステップ1 各デジタルデータごとに設けられたマスクフラグM1 〜
MN に「1」を代入し、探索桁dに「D」を代入する初
期化ステップ。Step 1 Mask flags M 1 to M provided for each digital data
An initialization step of substituting "1" for MN and "D" for the search digit d.
【0011】ステップ2 マスクフラグMn (1≦n≦N)が「1」であるデジタ
ルデータに対して、d桁目の「1」の数md を計数する
計数ステップ。Step 2 A counting step of counting the number m d of “1” at the d-th digit for the digital data whose mask flag M n (1 ≦ n ≦ N) is “1”.
【0012】ステップ3 md と順位Xとを比較する比較ステップ。Step 3 A comparison step of comparing m d with the rank X.
【0013】ステップ4 前記比較ステップの結果、md ≧Xならば、出力データ
のd桁目を「1」と決定するとともに、Vn (d)=
「0」(1≦n≦N)であるデジタルデータに対し、マ
スクフラグMn に、「0」を代入し、md <Xならば、
出力データのd桁目を「0」と決定するとともに、Vn
(d)=「1」(1≦n≦N)であるデジタルデータに
対し、マスクフラグMn に、「0」を代入し、順位Xか
らmd を減算するる桁決定ステップ。Step 4 If m d ≧ X as a result of the comparison step, the d-th digit of the output data is determined to be “1” and V n (d) =
For digital data of "0" (1≤n≤N), "0" is assigned to the mask flag M n , and if m d <X,
The d-th digit of the output data is determined to be "0" and V n
(D) A digit determining step of substituting “0” into the mask flag M n and subtracting m d from the rank X for digital data with “1” (1 ≦ n ≦ N).
【0014】ステップ5 前記計数ステップから桁決定ステップまでを、dがMS
B(すなわちd=D)からLSB(すなわちd=1)に
至るまでを繰り返す繰り返しステップ。Step 5 From the counting step to the digit determining step, d is MS
An iterative step that repeats from B (ie d = D) to LSB (ie d = 1).
【0015】以上の各ステップから、この方法は成り立
っている。ステップ1は初期設定をするステップで、マ
スクフラグM1 〜MN に「1」を書き込むことによっ
て、まず全てのデジタルデータを候補とし、探索桁dに
「D」を書き込むことによって、処理の対象となる桁を
まずMSBに設定している。ステップ2は、候補のデジ
タルデータの同じ桁の中で、「1」の個数を計数するス
テップである。ステップ3は、前ステップでの計数値
と、順位Xとを比較するステップである。ステップ4
は、前ステップでの比較結果により、出力データを一桁
決定するとともに、候補ではなくなったデジタルデータ
を除外し、必要に応じ、候補の個数が減少した分だけ順
位Xも小さくしている。除外は、マスクフラグM1 〜M
N に「0」を書き込むことによってなされている。マス
クフラグに「0」を書き込まれたデジタルデータは、ス
テップ2における計数の対象から外される。ステップ5
は、ステップ2から、ステップ4までを、桁数だけ繰り
返すステップである。This method consists of the above steps. Step 1 is a step of initialization, by writing a "1" in the mask flag M 1 ~M N, first, all the digital data as a candidate, by writing "D" in the search digit d, treatment of a subject First, the digit that becomes is set to the MSB. Step 2 is a step of counting the number of "1" s in the same digit of the candidate digital data. Step 3 is a step of comparing the count value in the previous step with the rank X. Step 4
Determines the output data by one digit according to the comparison result in the previous step, excludes digital data that is no longer a candidate, and reduces the rank X by an amount corresponding to the decrease in the number of candidates as necessary. Exclusion is mask flags M 1 to M
This is done by writing "0" to N. The digital data in which “0” is written in the mask flag is excluded from the counting target in step 2. Step 5
Is a step in which steps 2 to 4 are repeated by the number of digits.
【0016】この方法によってLSIを構成した例が前
記予稿集に記載されている。この例では、計数をする加
算器と、比較をする比較器とを有するソータを各桁ごと
に備えた、すなわちビットスライス型の並列ソータを用
いている。つまり、上記の各ステップは各桁ごとに別の
ハードウェアによって実行される。このLSIのブロッ
ク構成図を図5に示す。An example of configuring an LSI by this method is described in the above-mentioned proceedings. In this example, a parallel sorter of the bit slice type is used, in which a sorter having an adder for counting and a comparator for comparing is provided for each digit. That is, the above steps are performed by different hardware for each digit. A block diagram of this LSI is shown in FIG.
【0017】図5は、4桁のデジタルデータを9個入力
し、その中から、所望の順位X番目の値を出力OUT
(3:0)として取り出すLSIを示すブロック構成図
である。前述したように例えば、V1 (D)は一番目の
データのD桁目のビットを表すものとすると、4桁のデ
ジタルデータ9個は、それぞれ、 V1 (3:0)=V1 (3),V1 (2),V1 (1),V1 (0) V2 (3:0)=V2 (3),V2 (2),V2 (1),V2 (0) : : : V5 (3:0)=V5 (3),V5 (2),V5 (1),V5 (0) : : : V9 (3:0)=V9 (3),V9 (2),V9 (1),V9 (0) と、表される。例えば、V1 (3)は1番目のデジタル
データのMSBを表し、V9 (0)は9番目のデジタル
データのLSBを表す。順位Xは1以上9以下の整数を
とる。出力OUT(3:0)は、入力と同様4桁のデジ
タルデータである。このLSIは、各桁ごとに対応した
桁ブロックをもっている。各桁に対応しこれらを桁ブロ
ック#3から桁ブロック#0と呼ぶ。In FIG. 5, nine pieces of 4-digit digital data are input, and the Xth value of a desired rank is output from the OUT.
FIG. 3 is a block configuration diagram showing an LSI extracted as (3: 0). As described above, for example, assuming that V 1 (D) represents the D-th digit bit of the first data, 9 pieces of 4-digit digital data are respectively V 1 (3: 0) = V 1 ( 3), V 1 (2), V 1 (1), V 1 (0) V 2 (3: 0) = V 2 (3), V 2 (2), V 2 (1), V 2 (0 ) :: :: V 5 (3: 0) = V 5 (3), V 5 (2), V 5 (1), V 5 (0) :: :: V 9 (3: 0) = V 9 (3 ), V 9 (2), V 9 (1), V 9 (0). For example, V 1 (3) represents the MSB of the first digital data, and V 9 (0) represents the LSB of the 9th digital data. The rank X is an integer of 1 or more and 9 or less. The output OUT (3: 0) is 4-digit digital data like the input. This LSI has a digit block corresponding to each digit. Corresponding to each digit, these are referred to as digit block # 3 to digit block # 0.
【0018】各桁ブロックには、入力のそれぞれ対応す
る桁のデータが9個分全て入力する。例えば、桁ブロッ
ク#3には、 V1 (3),…V9 (3) の9個の値が入力しており、桁ブロック#2には、 V1 (2),…V9 (2) の9個の値が入力している。また、各桁ブロックは、出
力の各対応する桁のデータを出力する。例えば、桁ブロ
ック#3は、OUT(3)を出力し、桁ブロック#2
は、OUT(2)を出力する。In each digit block, all nine pieces of data corresponding to the input digits are input. For example, nine values V 1 (3), ... V 9 (3) are input to the digit block # 3, and V 1 (2), ... V 9 (2) is input to the digit block # 2. 9 values are entered. Further, each digit block outputs the data of each corresponding digit of the output. For example, the digit block # 3 outputs OUT (3) and the digit block # 2
Outputs OUT (2).
【0019】また、順位Xは、最上位の桁ブロック#3
に入力している。桁ブロック#3は順位Xを、そのまま
の値か、あるいは前述したように必要に応じてより小さ
な値に変更して、下位の桁ブロック#2に出力する。以
下同様にして、最下位の桁ブロック#0まで順位Xは伝
搬される。桁ブロック#dに入力する順位をXd と呼
び、出力する順位をXd-1 と呼ぶ。The rank X is the highest digit block # 3.
Are typing in. The digit block # 3 outputs the rank X to the lower digit block # 2 after changing the rank X as it is or a smaller value as necessary as described above. Similarly, the rank X is propagated to the lowest digit block # 0. The order input to the digit block #d is called X d, and the order output is called X d-1 .
【0020】さらに、前述したように、この方法はマス
クフラグを用いて候補を絞り込んでいく方法であるの
で、そのマスクフラグも順位Xと同様に上位の桁ブロッ
クから下位の桁ブロックへ伝搬される。マスクフラグも
順位Xと同様に、桁ブロック#dに入力するマスクフラ
グを、M1 (d),…M9 (d)と呼び、出力されるマ
スクフラグを、M1 (d−1),…M9 (d−1)と呼
ぶ。最上位の桁ブロック#3においては、9個の入力デ
ジタルデータが全て候補なので、全てのマスクフラグが
「1」であるものと仮定して処理が行われる。Further, as described above, since this method is a method of narrowing down the candidates by using the mask flag, the mask flag is also propagated from the upper digit block to the lower digit block similarly to the rank X. .. Similarly to the rank X, the mask flags are called the mask flags input to the digit block #d as M 1 (d), ... M 9 (d), and the output mask flags are M 1 (d−1), ... M 9 (d-1). In the highest-order digit block # 3, since all nine pieces of input digital data are candidates, processing is performed assuming that all mask flags are "1".
【0021】次に各桁ブロックの詳細なブロック構成図
を図6に示す。図6には、例としてd桁目の桁ブロック
20を示してある。Next, FIG. 6 shows a detailed block diagram of each digit block. FIG. 6 shows the digit block 20 of the d-th digit as an example.
【0022】まず、9個の入力デジタルデータV
1 (d),…V9 (d)は、マスクフラグM1 (d)〜
M9 (d)に基づいてマスキングされる。これには、9
個のANDゲート22が用いられている。入力デジタル
データV1 (d),…V9 (d)はそれぞれマスクフラ
グM1 (d)〜M9 (d)と論理積をとることにより、
候補以外となったデジタルデータを次に説明する加算の
対象から除外している。First, nine pieces of input digital data V
1 (d), ... V 9 (d) are mask flags M 1 (d) to
Masked based on M 9 (d). This includes 9
AND gates 22 are used. The input digital data V 1 (d), ... V 9 (d) are ANDed with the mask flags M 1 (d) to M 9 (d), respectively.
The digital data other than the candidates are excluded from the addition target described below.
【0023】9個のANDゲート22の出力は、加算器
24に出力されている。加算器24は9個のデジタルデ
ータを加算、すなわち、その中の「1」の個数を計数し
ている。加算器24の加算出力md は比較器26に出力
されている。The outputs of the nine AND gates 22 are output to the adder 24. The adder 24 adds nine pieces of digital data, that is, counts the number of "1" s therein. The addition output m d of the adder 24 is output to the comparator 26.
【0024】比較器26は、前述の加算出力md から、
上位の桁ブロックからの順位Xd を減算している。その
結果が非負であれば、比較器26の出力OUT(d)
は、「1」となり、結果が負であれば、OUT(d)
は、「0」となる。比較器26は、減算結果も出力す
る。すなわちmd −Xd を、絶対値回路28に出力して
いる。絶対値回路28は、md −Xd の絶対値を作り、
順位選択器30に出力する。順位選択器30は比較器2
6の出力OUT(d)の値によって、下位の桁ブロック
に伝達する順位Xd-1 の値を選択する。順位選択器30
はOUT(d)の値が「1」のとき、下位の桁ブロック
に伝達する順位Xd-1 としてXd を選択しそのまま出力
する。また、OUT(d)の値が「0」のとき、Xd-1
として絶対値回路28の出力であるXd −md を選択し
出力する。ところで、OUT(d)の値が「0」のとき
とは、md <Xd の場合であるから、比較器26の出力
md −Xd は負の数である。このmd −Xd が、絶対値
回路28を通過することによって、正の数Xd −md と
なり、これが、順位選択器30によって選択される。The comparator 26 calculates, from the above-mentioned addition output m d ,
The rank X d from the upper digit block is subtracted. If the result is non-negative, the output OUT (d) of the comparator 26
Becomes "1", and if the result is negative, OUT (d)
Becomes “0”. The comparator 26 also outputs the subtraction result. That is, m d −X d is output to the absolute value circuit 28. The absolute value circuit 28 creates an absolute value of m d −X d ,
Output to the rank selector 30. The rank selector 30 is the comparator 2
The value of the output OUT (d) of 6 selects the value of the order X d-1 to be transmitted to the lower digit block. Rank selector 30
When the value of OUT (d) is "1", Xd is selected as the order Xd-1 to be transmitted to the lower digit block and is output as it is. When the value of OUT (d) is "0", X d-1
To select the X d -m d which is the output of the absolute value circuit 28 outputs as. By the way, when the value of OUT (d) is “0”, it means that m d <X d , so the output m d −X d of the comparator 26 is a negative number. This m d −X d passes through the absolute value circuit 28 to become a positive number X d −m d , which is selected by the rank selector 30.
【0025】下位の桁ブロックへのマスクフラグは、マ
スクフラグ作成器32によって作成される。マスクフラ
グは、各デジタルデータごとに更新される。マスクフラ
グ作成器32は、上位の桁ブロックからのマスクフラグ
Mn (d)と(n=1,…9)、この桁ブロックに入力
している入力デジタルデータVn (d)と、比較器26
の出力OUT(d)とから、下位の桁ブロックへのマス
クフラグMn (d−1)が算出される。その算出式は以
下の通りである。The mask flag for the lower digit block is created by the mask flag creator 32. The mask flag is updated for each digital data. The mask flag generator 32 receives the mask flags M n (d) and (n = 1, ... 9) from the upper digit block, the input digital data V n (d) input to this digit block, and the comparator. 26
From the output OUT (d) of the above, the mask flag M n (d-1) to the lower digit block is calculated. The calculation formula is as follows.
【0026】 Mn (d−1)=Mn (d).AND. (Vn (d).EX-NOR.OUT(d)) (但し、n=1,…9) すなわち、Mn (d)=「1」で、かつ、Vn (d)=
OUT(d)のときのみMn (d−1)は「1」とな
り、それ以外ではいずれの場合も「0」となる。M n (d−1) = M n (d) .AND. (V n (d) .EX-NOR.OUT (d)) (where n = 1, ... 9) That is, M n ( d) = “1” and V n (d) =
Mn (d-1) is "1" only when OUT (d), and is "0" in all other cases.
【0027】以上説明したようにこのLSIは、各桁ご
とに加算器と比較器を有する桁ブロックを設けたので、
単にデータを整列してから、所望の順番の値を選ぶ方法
に比べれば優れているといえる。As described above, since this LSI is provided with the digit block having the adder and the comparator for each digit,
This is superior to the method of simply sorting the data and then selecting the values in the desired order.
【0028】[0028]
【発明が解決しようとする課題】しかしながら、前記桁
ブロック20は、加算器24と、比較器26の他に、絶
対値回路28という大変複雑な演算回路がある。この絶
対値回路28においては、入力データを反転させてか
ら、「1」を加算するという複雑な処理をしなければな
らないので、絶対値回路28の動作速度は、他の回路群
に比較して非常に遅いものとなってしまう。この結果L
SI全体の速度も相対的に遅くなってしまった。However, the digit block 20 includes an adder 24, a comparator 26 and an absolute value circuit 28, which is a very complicated arithmetic circuit. In this absolute value circuit 28, since the complicated process of inverting the input data and adding "1" must be performed, the operation speed of the absolute value circuit 28 is higher than that of other circuit groups. It will be very slow. This results in L
The speed of the entire SI has also become relatively slow.
【0029】従来の順序フィルタリング方法は、以上の
ように絶対値をとるというよけいなプロセスが必要にな
った。このため、この方法を応用したLSI装置におい
ても、複雑な絶対値回路を用意しなければならず、また
LSIの回路パターン中でも大きな回路面積を占めてい
た。それによってまた、動作速度が遅くなるなどの欠点
があった。The conventional order filtering method requires an extra process of taking an absolute value as described above. Therefore, even in an LSI device to which this method is applied, a complicated absolute value circuit must be prepared, and a large circuit area is occupied in the circuit pattern of the LSI. As a result, there is a drawback that the operation speed becomes slow.
【0030】[0030]
【課題を解決するための手段】本発明は、上述の課題を
解決するために、以下のステップを含むことを特徴とす
る方法である。但し、D桁を有するデジタルデータN個
の中から、X(1≦X≦N)番目の大きさの値を取り出
すものとする。The present invention is a method for solving the above-mentioned problems, characterized by including the following steps. However, it is assumed that the value of the X (1 ≦ X ≦ N) -th magnitude is extracted from N pieces of digital data having D digits.
【0031】ステップ1 各デジタルデータごとに設けられたマスクフラグM1 〜
MN に「1」を代入し、計数和msum に「0」を代入
し、探索桁dに「D」を代入する初期化ステップ。Step 1 Mask flags M 1 to M provided for each digital data
An initialization step of substituting "1" for M N , "0" for the sum of counts m sum , and "D" for the search digit d.
【0032】ステップ2 マスクフラグMn (1≦n≦N)が「1」であるデジタ
ルデータに対して、d桁目の「1」の数md を計数する
計数ステップ。Step 2 A counting step of counting the number m d of “1” at the d-th digit for the digital data whose mask flag M n (1 ≦ n ≦ N) is “1”.
【0033】ステップ3 md +msum とXとを比較する比較ステップ。Step 3 A comparison step of comparing m d + m sum with X.
【0034】ステップ4 前記比較ステップの結果、md +msum ≧Xならば、出
力データのd桁目を「1」と決定するとともに、V
n (d)=「0」(1≦n≦N)であるデジタルデータ
に対し、マスクフラグMn に、「0」を代入し、md +
msum <Xならば、出力データのd桁目を「0」と決定
するとともに、Vn (d)=「1」(1≦n≦N)であ
るデジタルデータに対し、マスクフラグMn に、「0」
を代入し、計数和msum にmd を加算する桁決定ステッ
プ。Step 4 If m d + m sum ≧ X as a result of the comparison step, the d-th digit of the output data is determined to be “1”, and V
For digital data with n (d) = "0" (1 ≤ n ≤ N), "0" is assigned to the mask flag M n , and m d +
If m sum <X, the d-th digit of the output data is determined to be “0” and the mask flag M n is set for the digital data of V n (d) = “1” (1 ≦ n ≦ N). , "0"
And a digit determining step of adding m d to the sum of counts m sum .
【0035】ステップ5 前記計数ステップから桁決定ステップまでを、dがMS
B(すなわちd=D)からLSB(すなわちd=1)に
至るまでを繰り返す繰り返しステップ。Step 5 From the counting step to the digit determining step, d is MS
An iterative step that repeats from B (ie d = D) to LSB (ie d = 1).
【0036】以上のステップから本発明は構成される。
本発明において特徴的なことは、ステップ4において、
md を累積加算しており、Xはまったくその値を変えな
い事である。これによって、ステップ3はmd +msum
とXとを比較している。The present invention comprises the above steps.
What is characteristic of the present invention is that in step 4,
md is cumulatively added, and X does not change its value at all. By this, step 3 is m d + m sum
And X are compared.
【0037】これに対して従来は、ステップ4におい
て、md をXから減算しており、Xはその値が変化して
いた。これによって、ステップ3はmd と変化してゆく
Xとを比較していた。On the other hand, conventionally, in step 4, m d is subtracted from X, and the value of X has changed. This caused step 3 to compare m d with the changing X.
【0038】[0038]
【作用】従来、順位Xから必要に応じてmd を減算して
いったが、その代わりに、md を計数和msum に累積加
算している。そのため従来、絶対値回路が必要不可欠で
あったが、本発明においてはこれが不要になる。このた
め、回路構成が簡略化され、回路動作も高速にすること
ができる。In the past, m d was subtracted from the rank X as needed, but instead, m d is cumulatively added to the count sum m sum . Therefore, the absolute value circuit has been indispensable conventionally, but it is not necessary in the present invention. Therefore, the circuit configuration is simplified and the circuit operation can be performed at high speed.
【0039】[0039]
【実施例】以下、本発明の好適な実施例を図面に基づい
て説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT A preferred embodiment of the present invention will be described below with reference to the drawings.
【0040】図1は、本発明の順序フィルタリング方法
を使用した順序フィルタLSIの一実施例のブロック構
成図である。図1は、従来例で示したLSIと同様に、
4桁のデジタルデータを9個入力し、その中から、所望
の順位X番目の値を出力OUT(3:0)として取り出
すLSIを示すブロック構成図である。FIG. 1 is a block diagram of an embodiment of an ordering filter LSI using the ordering filtering method of the present invention. 1 is similar to the LSI shown in the conventional example,
FIG. 9 is a block diagram showing an LSI in which nine pieces of 4-digit digital data are input and a desired rank Xth value is taken out as an output OUT (3: 0) from the input data.
【0041】従来例と同様、入力を4桁のV1 (3:
0)からV9 (3:0)と表し、出力のX番目のデジタ
ルデータを入力と同様4桁の出力OUT(3:0)と表
す。As in the conventional example, the input is a 4-digit V 1 (3:
0) to V 9 (3: 0), and the Xth digital data of the output is represented as a 4-digit output OUT (3: 0) as with the input.
【0042】LSIの構成もまた従来例と同様に、各桁
ごとに対応した桁ブロックをもっている、これらは、桁
ブロック#3から桁ブロック#0である。各桁ブロック
には、入力のそれぞれ対応する桁のデータが9個分全て
入力する。例えば、桁ブロック#3には、 V1 (3),…V9 (3) の9個の値が入力しており、桁ブロック#2には、 V1 (2),…V9 (2) の9個の値が入力している。また、各桁ブロックは、出
力の各対応する桁のデータを出力する。例えば、桁ブロ
ック#3は、OUT(3)を出力し、桁ブロック#2
は、OUT(2)を出力する。Similarly to the conventional example, the LSI configuration also has a digit block corresponding to each digit. These are digit block # 3 to digit block # 0. In each digit block, all nine pieces of data of the digits corresponding to the input are input. For example, nine values V 1 (3), ... V 9 (3) are input to the digit block # 3, and V 1 (2), ... V 9 (2) is input to the digit block # 2. 9 values are entered. Further, each digit block outputs the data of each corresponding digit of the output. For example, the digit block # 3 outputs OUT (3) and the digit block # 2
Outputs OUT (2).
【0043】また、前述したように、この方法はマスク
フラグを用いて候補を絞り込んでいく方法であるので、
各桁ブロックごとに異なったマスクフラグの値を取る。
つまり、マスクフラグは上位の桁ブロックから下位の桁
ブロックへ更新を受けながら伝搬される。上位の桁ブロ
ックから桁ブロック#dに入力するマスクフラグを、M
1 (d),…M9 (d)と呼び、桁ブロック#dから下
位の桁ブロックに出力されるマスクフラグを、M1 (d
−1),…M9 (d−1)と呼ぶ。最上位の桁ブロック
#3においては、全てのマスクフラグが外部から供給さ
れているが、通常最上位桁においては9個の入力デジタ
ルデータが全て候補なので、全てのマスクフラグに
「1」が図示されていない外部回路から入力されること
になろう。Further, as described above, since this method is a method of narrowing down the candidates by using the mask flag,
Each digit block takes a different mask flag value.
That is, the mask flag is propagated while being updated from the upper digit block to the lower digit block. The mask flag input from the upper digit block to the digit block #d is set to M
1 (d), ... M 9 (d), and the mask flag output from the digit block #d to the lower digit block is M 1 (d
-1), ... M 9 (d-1). In the highest-order digit block # 3, all mask flags are supplied from the outside, but normally, in the highest-order digit, all nine input digital data are candidates, so "1" is shown in all mask flags. It will be input from an external circuit that has not been processed.
【0044】また、順位Xは従来例と異なり全ての桁ブ
ロックに入力している。本発明によれば、順位Xは、ま
ったく変更を受けないので、本実施例においても、順位
Xは、全ての桁ブロックに同じ値を入力することができ
る。The rank X is input to all digit blocks, unlike the conventional example. According to the present invention, since the rank X is not changed at all, the rank X can be input with the same value in all the digit blocks in this embodiment as well.
【0045】本発明は、前述したように順位Xを変更せ
ずに、各桁に置ける「1」の個数を累積していく。した
がって、順位Xは各桁ブロックにおいて同じ値が供給さ
れるが、各桁ブロックにおいて必要に応じて累積加算さ
れた計数和mSUM が、上位の桁ブロックから下位の桁ブ
ロックへ順次伝搬される。本文では、桁ブロック#dに
入力する計数和をmSUM (d)と呼び、下位の桁ブロッ
ク#d−1に出力される計数和を、mSUM (d−1)と
呼ぶ。The present invention accumulates the number of "1" s in each digit without changing the rank X as described above. Therefore, the rank X is supplied with the same value in each digit block, but the sum of counts m SUM cumulatively added as necessary in each digit block is sequentially propagated from the upper digit block to the lower digit block. In this text, the sum of counts input to the digit block #d is called m SUM (d), and the sum of counts output to the lower digit block # d-1 is called m SUM (d-1).
【0046】次に各桁ブロックの詳細なブロック構成図
を図2に示す。図2には、例としてd桁目の桁ブロック
40を示してある。Next, a detailed block configuration diagram of each digit block is shown in FIG. FIG. 2 shows the digit block 40 of the d-th digit as an example.
【0047】まず、9個の入力デジタルデータV
1 (d),…V9 (d)は、マスクフラグM1 (d)〜
M9 (d)に基づいてマスキングされる。これには、9
個のANDゲート42が用いられている。入力デジタル
データV1 (d),…V9 (d)はそれぞれマスクフラ
グM1 (d)〜M9 (d)と論理積をとることにより、
候補以外となったデジタルデータの出力を強制的に
「0」にしている。これによって、候補以外のデジタル
データを次に説明する加算の対象から除外している。First, nine pieces of input digital data V
1 (d), ... V 9 (d) are mask flags M 1 (d) to
Masked based on M 9 (d). This includes 9
AND gates 42 are used. The input digital data V 1 (d), ... V 9 (d) are ANDed with the mask flags M 1 (d) to M 9 (d), respectively.
The output of digital data other than the candidates is forcibly set to "0". As a result, digital data other than the candidates are excluded from the subject of addition described below.
【0048】9個のANDゲート42の出力は、第一の
加算器44に出力されている。第一の加算器44は9個
のデジタルデータを加算、すなわち、9個のデジタルデ
ータ中の「1」の個数を計数している。第一の加算器4
4の加算出力md は第二の加算器46に出力されてい
る。The outputs of the nine AND gates 42 are output to the first adder 44. The first adder 44 adds nine pieces of digital data, that is, counts the number of “1” in the nine pieces of digital data. First adder 4
The addition output m d of 4 is output to the second adder 46.
【0049】第二の加算器46は上位の桁ブロック#d
+1からの計数和mSUM (d)と、第一の加算器44の
加算出力md とを加算し、md +mSUM (d)を出力す
る。比較器48は、前述の第二の加算器46の出力md
+mSUM (d)と、順位Xとを比較している。比較は、
前述の第二の加算器46の出力md +mSUM (d)か
ら、順位Xを減算することにより行われる。この減算し
た結果が非負であれば、すなわちmd +mSUM (d)≧
Xであれば、比較器48の出力OUT(d)は「1」と
なり、結果が負であれば、すなわちmd +mSUM (d)
<Xであれば、OUT(d)は「0」となる。比較器4
8からの出力OUT(d)は、次に述べる計数和選択器
50と、マスクフラグ作成器52にも出力されている。The second adder 46 is in the upper digit block #d.
The sum of counts m SUM (d) from +1 and the addition output m d of the first adder 44 are added, and m d + m SUM (d) is output. The comparator 48 outputs the output m d of the second adder 46 described above.
+ M SUM (d) is compared with rank X. The comparison is
This is performed by subtracting the rank X from the output m d + m SUM (d) of the second adder 46 described above. If the result of this subtraction is non-negative, that is, m d + m SUM (d) ≧
If X, the output OUT (d) of the comparator 48 becomes "1", and if the result is negative, that is, m d + m SUM (d)
If <X, OUT (d) becomes “0”. Comparator 4
The output OUT (d) from 8 is also output to the counting sum selector 50 and the mask flag generator 52 described below.
【0050】計数和選択器50は比較器48の出力OU
T(d)の値によって、下位の桁ブロックに伝達する計
数和mSUM (d−1)の値を選択する。計数和選択器5
0はOUT(d)の値が「1」のとき、下位の桁ブロッ
クに伝達する計数和mSUM (d−1)としてm
SUM (d)を選択しそのまま出力する。また、OUT
(d)の値が「0」のとき、mSUM (d−1)として第
二の加算器46の出力であるmd +mSUM (d)を選択
し出力する。The counting sum selector 50 outputs the output OU of the comparator 48.
According to the value of T (d), the value of the count sum mSUM (d-1) transmitted to the lower digit block is selected. Counting sum selector 5
When the value of OUT (d) is “1”, 0 is m as the count sum m SUM (d−1) transmitted to the lower digit block.
Select SUM (d) and output as it is. Also, OUT
When the value of (d) is “0”, m d + m SUM (d) which is the output of the second adder 46 is selected and output as m SUM (d−1).
【0051】すなわち、OUT(d)の値が「0」のと
きには、d桁目の値が「1」であるデジタルデータは次
段では、検査の対象にはならない。そこで、md の値の
要因となったデジタルデータの個数を保存しておき、次
段での計数の結果と加算してから、順位Xと比較してい
る。つまり、OUT(d)の値が「0」のとき、除外さ
れるデータは、大きさが大きい方のデータであったの
で、従来は、順位xをその分小さくしなければならなか
った。本発明は、これを、計数結果に加算することによ
って、この問題を解決しているといえる。That is, when the value of OUT (d) is "0", the digital data whose value at the d-th digit is "1" is not subject to inspection in the next stage. Therefore, the number of digital data that is a factor of the value of m d is stored, added with the result of counting in the next stage, and then compared with the rank X. In other words, when the value of OUT (d) is "0", the data to be excluded is the data having the larger size, and therefore, conventionally, the rank x had to be reduced accordingly. It can be said that the present invention solves this problem by adding this to the counting result.
【0052】下位の桁ブロックへのマスクフラグは、マ
スクフラグ作成器52によって作成される。マスクフラ
グ作成器52は、従来のものとまったく同一のものであ
る。マスクフラグは、9個の各デジタルデータごとに更
新される。マスクフラグ作成器52は、上位の桁ブロッ
クからのマスクフラグMn (d)と(n=1,…9)、
この桁ブロックに入力している入力デジタルデータVn
(d)と、比較器48の出力OUT(d)とから、下位
の桁ブロックへのマスクフラグMn (d−1)が算出さ
れる。その算出式は以下の通りである。The mask flag for the lower digit block is created by the mask flag creator 52. The mask flag generator 52 is exactly the same as the conventional one. The mask flag is updated every 9 digital data. The mask flag generator 52 receives the mask flags M n (d) and (n = 1, ... 9) from the upper digit block,
Input digital data V n input to this digit block
From (d) and the output OUT (d) of the comparator 48, the mask flag M n (d-1) for the lower digit block is calculated. The calculation formula is as follows.
【0053】 Mn (d−1)=Mn (d).AND. (Vn (d).EX-NOR.OUT(d)) (但し、n=1,…9) すなわち、Mn (d)=「1」で、かつ、Vn (d)=
OUT(d)のときのみ、Mn (d−1)は「1」とな
り、それ以外ではいずれの場合も「0」となる。換言す
れば、まだ除外されていないデジタルデータで、かつ出
力であるOUT(d)と等しい桁データを持ったデータ
のみが、次段での検査の対象となる。M n (d−1) = M n (d) .AND. (V n (d) .EX-NOR.OUT (d)) (where n = 1, ... 9) That is, M n ( d) = “1” and V n (d) =
Only when OUT (d), M n (d−1) becomes “1”, and in all other cases, it becomes “0”. In other words, only digital data that has not been excluded and has digit data equal to the output OUT (d) is subject to the inspection in the next stage.
【0054】また、本LSIは、桁ブロック#3にで用
いられるマスクフラグと、計数和の値を、外部から入力
するための端子を備えている。さらに、桁ブロック#0
から出力されるマスクフラグと、計数和の値を、外部に
出力するための端子をも備えている。そのために9個の
デジタルデータの桁数が増加しても、このLSIを縦列
接続することにより容易に対応することができる。図3
には、本実施例のLSIを2個用いて8桁のデジタルデ
ータに対応している例の接続ブロック図を示す。Further, this LSI is provided with a mask flag used in the digit block # 3 and a terminal for inputting the value of the count sum from the outside. In addition, digit block # 0
It also has a terminal for outputting the mask flag output from the device and the count sum value to the outside. Therefore, even if the digit number of the nine pieces of digital data increases, this LSI can be easily dealt with by cascade connection. Figure 3
2 shows a connection block diagram of an example in which two LSIs of this embodiment are used and 8-digit digital data is supported.
【0055】[0055]
【発明の効果】以上説明したように、本発明によれば、
マスクフラグを用いて、順次候補を絞っていく方法にお
いて、従来は、それにともなって順位を小さくしていた
のに対し、計数値を累積加算しているので、順位Xを同
じ値に保つ事ができる。As described above, according to the present invention,
In the method of sequentially narrowing down the candidates by using the mask flag, the rank is conventionally reduced accordingly, but since the count values are cumulatively added, it is possible to keep the rank X at the same value. it can.
【0056】このため、従来必要であった絶対値回路が
不要になる。また、この方法をLSIで用いた場合、回
路面積が小さくて済む等の良好な性質を有すると共に、
演算速度を向上させる事ができる。Therefore, the absolute value circuit, which has been necessary in the past, becomes unnecessary. Also, when this method is used in an LSI, it has good properties such as a small circuit area, and
The calculation speed can be improved.
【図1】本発明の一実施例である順序フィルタLSIの
ブロック構成図である。FIG. 1 is a block diagram of a sequential filter LSI that is an embodiment of the present invention.
【図2】本発明の一実施例である順序フィルタLSIの
各桁ブロックの詳細なブロック構成図である。FIG. 2 is a detailed block configuration diagram of each digit block of a sequential filter LSI that is an embodiment of the present invention.
【図3】本発明の一実施例である順序フィルタLSIを
縦列接続し、入力デジタルデータの桁数が増加した場合
に対応した例を示す接続図である。FIG. 3 is a connection diagram showing an example corresponding to a case where the sequential filter LSIs according to an embodiment of the present invention are connected in cascade and the number of digits of input digital data increases.
【図4】3×3のカーネルを用いた空間フィルタリング
方法の説明図である。FIG. 4 is an explanatory diagram of a spatial filtering method using a 3 × 3 kernel.
【図5】従来の順序フィルタLSIのブロック構成図で
ある。FIG. 5 is a block diagram of a conventional sequential filter LSI.
【図6】従来の順序フィルタLSIの各桁ブロックの詳
細なブロック構成図である。FIG. 6 is a detailed block configuration diagram of each digit block of a conventional sequential filter LSI.
20 桁ブロック 22 ANDゲート 24 加算器 26 比較器 28 絶対値回路 30 順位選択器 32 マスクフラグ作成器 40 桁ブロック 42 ANDゲート 44 第一の加算器 46 第二の加算器 48 比較器 50 計数和選択器 52 マスクフラグ作成器 20-digit block 22 AND gate 24 Adder 26 Comparator 28 Absolute value circuit 30 Rank selector 32 Mask flag generator 40 Digit block 42 AND gate 44 First adder 46 Second adder 48 Comparator 50 Count sum selection Device 52 Mask flag generator
Claims (1)
(n=1,…N)のX(1≦X≦N)番目の大きさのデ
ータを、検索して出力する順序フィルタリング方法にお
いて、各デジタルデータごとに設けられたマスクフラグ
M1 〜MN に「1」を代入し、計数和msum に「0」を
代入し、探索桁dに「D」を代入する初期化ステップ
と、マスクフラグMn (1≦n≦N)が「1」であるデ
ジタルデータ中のd桁目の「1」の数md を計数する計
数ステップと、md +msum とXとを比較する比較ステ
ップと、前記比較ステップの結果、md +msum ≧Xな
らば、出力データのd桁目を「1」と決定するととも
に、Vn のd桁目が「0」であるデジタルデータに対
し、マスクフラグMn に、「0」を代入し、md +m
sum <Xならば、出力データのd桁目を「0」と決定す
るとともに、Vn のd桁目が「1」であるデジタルデー
タに対し、マスクフラグMn に、「0」を代入し、計数
和msum にmd を加算する桁決定ステップと、前記計数
ステップから桁決定ステップまでを、dがMSB(すな
わちd=D)からLSB(すなわちd=1)に至るまで
を繰り返す繰り返しステップと、を含むことを特徴とす
る順序フィルタリング方法。Claims: 1. Digital data V n having N D digits.
In the order filtering method of searching and outputting the data of the size of (n = 1, ..., N) of X (1 ≦ X ≦ N), mask flags M 1 to MN provided for each digital data. Is set to 1, the sum of counts m sum is set to “0”, and the search digit d is set to “D”. The mask flag M n (1 ≦ n ≦ N) is set to “1”. A counting step for counting the number m d of “1” at the d-th digit in the digital data, a comparing step for comparing m d + m sum with X, and a result of the comparing step, m d + m sum ≧ X If so, the d-th digit of the output data is determined to be "1", and "0" is substituted into the mask flag M n for the digital data in which the d-th digit of V n is "0", and m d + M
If sum <X, the d-th digit of the output data is determined to be "0", and "0" is assigned to the mask flag M n for the digital data in which the d-th digit of V n is "1". , A digit determining step of adding m d to the count sum m sum , and a repeating step of repeating the counting step to the digit determining step until d reaches MSB (that is, d = D) to LSB (that is, d = 1) An ordinal filtering method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15475191A JPH052645A (en) | 1991-06-26 | 1991-06-26 | Ordered filtering method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15475191A JPH052645A (en) | 1991-06-26 | 1991-06-26 | Ordered filtering method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH052645A true JPH052645A (en) | 1993-01-08 |
Family
ID=15591118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15475191A Pending JPH052645A (en) | 1991-06-26 | 1991-06-26 | Ordered filtering method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH052645A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
LT4384B (en) | 1996-12-12 | 1998-09-25 | Akcinė bendrovė "ACHEMA" | Process for the preparation of aluminium hydroxychloride |
US7500089B2 (en) | 2001-04-02 | 2009-03-03 | Ricoh Company, Ltd. | SIMD processor with exchange sort instruction operating or plural data elements simultaneously |
-
1991
- 1991-06-26 JP JP15475191A patent/JPH052645A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
LT4384B (en) | 1996-12-12 | 1998-09-25 | Akcinė bendrovė "ACHEMA" | Process for the preparation of aluminium hydroxychloride |
US7500089B2 (en) | 2001-04-02 | 2009-03-03 | Ricoh Company, Ltd. | SIMD processor with exchange sort instruction operating or plural data elements simultaneously |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737251A (en) | Rank order filter | |
CN1079555C (en) | Edge detection method and apparatus for image processing system | |
US4573137A (en) | Adder circuit | |
US5032838A (en) | Variable length code parallel decoding apparatus and method | |
JPH08339291A (en) | Selection circuit of maximum value | |
CA1286732C (en) | Rank-order filter | |
US6460166B1 (en) | System and method for restructuring of logic circuitry | |
JPH052645A (en) | Ordered filtering method | |
Abut et al. | Vector quantizer architectures for speech and image coding | |
US6731820B2 (en) | Image filter circuit and image filtering method | |
JP2004334545A (en) | Filter circuit | |
US6269385B1 (en) | Apparatus and method for performing rounding and addition in parallel in floating point multiplier | |
US6282695B1 (en) | System and method for restructuring of logic circuitry | |
Venetianer et al. | Analogue combinatorics and cellular automata—key algorithms and lay‐out design | |
EP0568373A2 (en) | Parallelized magnitude comparator | |
JP3151820B2 (en) | Sorting method based on count classification using relative keys | |
US7277909B2 (en) | High speed adder | |
EP0442220B1 (en) | Decoder | |
US6516333B1 (en) | Sticky bit value predicting circuit | |
JPH05233804A (en) | Median filter | |
JPH11102284A (en) | Method and circuit for selection | |
JP3281439B2 (en) | Decoder and decoding method | |
Lee et al. | A parallel bit-level maximum/minimum selector for digital and video signal processing | |
JP2590698B2 (en) | Character string data retrieval device | |
Astola et al. | High-speed systolic architectures for median-type filtering |