JPH05189203A - ソーティング装置 - Google Patents

ソーティング装置

Info

Publication number
JPH05189203A
JPH05189203A JP4034158A JP3415892A JPH05189203A JP H05189203 A JPH05189203 A JP H05189203A JP 4034158 A JP4034158 A JP 4034158A JP 3415892 A JP3415892 A JP 3415892A JP H05189203 A JPH05189203 A JP H05189203A
Authority
JP
Japan
Prior art keywords
data
area
address
memory
value
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.)
Granted
Application number
JP4034158A
Other languages
English (en)
Other versions
JP3210053B2 (ja
Inventor
Tatsuya Fujii
達也 藤井
Naohito Shiraishi
尚人 白石
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP03415892A priority Critical patent/JP3210053B2/ja
Priority to US07/978,925 priority patent/US5465371A/en
Publication of JPH05189203A publication Critical patent/JPH05189203A/ja
Application granted granted Critical
Publication of JP3210053B2 publication Critical patent/JP3210053B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 この発明は、3Dクリッピング処理や3Dピ
ッキング処理などを行う場合でも、簡単な構成で高速に
処理が行えるソーティング装置を提供することを目的と
する。 【構成】 基準値データを上位桁と下位桁のデータに分
割して上位桁の基準値データはHソート処理回路15で
行なう。Hソート処理回路15でソート処理を行ない分
布カウントメモリ11に書き込まれた上位桁の基準値デ
ータの中でクリップ制御装置16で上位桁の基準値デー
タがクリッピング対象のものか否か判断する。クリッピ
ング対象のものの下位桁の基準値データのソート処理は
行なわず、クリッピング対象以外の下位桁の基準値デー
タのソート処理をLソート処理回路18で行なう。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ソーティング装置に
かかり、特に複数の基準値データに基づきデータをソー
ティングする装置に関する。
【0002】画像処理装置は、外部から供給される画像
情報に基づき、CRT表示用の各種画像信号を合成出力
するものであり、単に2次元的な平面画像ばかりではな
く、立体的な合成出力することができることから、例え
ば3次元画像用のビデオゲーム、コンピュータグラフィ
ックス、CAD装置のディスプレイ及びその他の用途に
幅広く用いられている。
【0003】ところで、画像処理装置を用いて奥行きを
もった3次元画像をリアルタイムで合成する場合には、
各標体の3次元データを画像奥行き方向の座標値、即ち
Z軸データに基づき、1/60秒間に処理対象のポリゴ
ンに対して高速でソーティングする必要がある。
【0004】このため、複数の3次元データを所定のZ
軸データに基づき、高速ソーティングできる装置の開発
が望まれていた。
【0005】しかし、従来このようなソーティングは、
各データに含まれるZ軸データの隣接するものどうしを
逐次比較してその都度並べ変えるという作業を、全デー
タに対して行っていた。
【0006】この処理を行なうためには、メモリ間にお
ける全Z軸データのデータ転送を、多数回に渡って繰返
し行わなければならない。従って、データのソーティン
グ作業を高速で行うことがでないという問題があった。
【0007】特に、この従来技術では、比較対象とする
Z軸データの個数が多くなると、ソーティング作業に時
間と手間がかかりすぎる。従って、これを高速ソーティ
ングしようとする場合には、比較的大型のコンピュータ
を用いなければならず、装置全体が複雑かつ高価なもの
となってしまうという問題があった。
【0008】そこで、複数のデータのソーティングを簡
単な構成で高速に行うことができ、特にソーティング対
象となる基準軸データの個数が多いような場合でもソー
ティングを高速で行うことが可能なソーティング装置
が、特開平2−224018号公報(国際特許分類G0
6F 7/24)に提案されている。
【0009】このソーティング装置は、ソーティングの
対象となる基準軸データをそのデータ番号順に、ファー
ストバッファメモリおよびラストバッファメモリへ入力
する。
【0010】そして、ファーストバッファメモリは、そ
のファーストデータ番号記憶エリアに、対応する基準軸
データが最初に入力されたときのデータ番号を記憶す
る。
【0011】同様にして、ラストバッファメモリは、そ
のラストデータ番号記憶エリアに、対応する基準軸デー
タが読み出される毎に、そのデータ番号順次更新記憶す
る。従って、各ラストデータ番号には、対応する基準軸
データが最後に読み出されたときのデータ番号が記憶さ
れる。
【0012】また、ラストデータ番号記憶エリアに記憶
されているデータ番号が更新記憶されるとその記憶エリ
アに記憶されていたデータ番号と新たに記憶されるデー
タ番号とがチェインバッファメモリへ向け入力される。
【0013】そして、チェインバッファメモリは、ラス
トデータ番号記憶エリアのデータが更新される毎に、更
新前のデータ番号で指定されるチェインデータ番号記憶
エリアに、更新後の新たなデータ番号を書込む。従っ
て、値が同じでかつデータ番号のみ異なる基準軸データ
が繰返して入力された場合は、その基準軸データの履
歴、すなわち、その基準軸データがどのようなデータ番
号順で入力されたかがチェインデータ番号記憶エリアに
書込まれることになる。
【0014】このような一連のファーストバッファメモ
リ、ラストバッファメモリおよびチェインバッファメモ
リへのデータ書込み終了後、ラストデータ番号記憶エリ
アに記憶されたデータ番号で指定されるチェインデータ
番号記憶エリアに、このラストデータ番号と記憶エリア
所定の対応関係にあるファーストデータ番号エリアに記
憶されたデータ番号が順次書込まれる。このようにし
て、チェインデータ番号記憶エリアの各記憶エリアに
は、基準軸データが昇順または降順に連鎖するようデー
タ番号が書込まれることになる。
【0015】そして、このソーティング回路では、チェ
インデータ番号記憶エリア内に書込まれたデータ番号を
所定の読み出し規則に従って読み出すことにより、入力
された基準軸データを、データ番号順に出力する。
【0016】このようにすることにより、入力された基
準軸データが昇順または降順にソーティング出力される
ことになる。
【0017】ところで、画像処理装置は、図46に示す
ように、スクリーンよりZ軸データの小さいポリゴン及
び境界限界よりZ軸データの大きいポリゴンを除外する
3Dクリッピング、また図47に示すように、任意のZ
データ領域のポリゴンを除外する3Dクリッピング、更
に、図48に示すように、任意の任意のZデータ領域の
ポリゴンだけを残す3Dピッキング等が行われる。
【0018】
【発明が解決しようとする課題】しかしながら、上述し
た方式では、スクリーン面よりZ値の小さいポリゴンと
視界限界よりZ値の大きいポリゴンを除外するいわゆる
3Dクリッピング処理や、任意のZ領域のポリゴンだけ
を残す3Dピッキング処理などを行うためには全体のソ
ートを行った後、ある制限のZ値を必要とし、複数デー
タを所定の基準軸に基づきソートを行うため、余分なデ
ータ転送を行うという問題があった。
【0019】この発明は、3Dクリッピング処理や3D
ピッキング処理などを行う場合でも、簡単な構成で高速
に処理が行えるソーティング装置を提供することをその
課題とする。
【0020】
【課題を解決するための手段】この発明は、入力される
複数の複数桁からなる基準値データをソーティングする
ソーティング装置であって、入力される各基準値データ
に対応したデータ番号を発生するデータ番号発生手段
と、入力された基準値データを2つ以上のデータ群に分
割して夫々のデータ番号に対応したアドレスに記憶する
複数桁の基準値データ記憶領域と、分割された各データ
群の基準値データに基づきアドレスが指定される指定さ
れるデータ群に対応した記憶領域を有し、各領域に対応
する各の基準値データが最初に入力されたとき、この記
憶領域にデータ番号発生手段の発生するデータ番号を記
憶するカウントスタート領域と、前記基準値データに基
づきアドレスが指定される第2の記憶領域を有し、各領
域に対応する前記基準値データが入力される毎に、この
記憶領域にデータ番号発生手段の発生するデータ番号を
更新記憶するカウントエンド領域と、データ番号に基づ
きアドレスが指定される次のアドレスを指定するための
ポインタ領域と、前記カウントエンド領域のデータ番号
が更新される毎に、更新前のデータ番号で指定されるポ
インタ領域に、更新される新たなデータ番後を書き込む
第1の制御手段と、ソート結果を格納する前記分割され
たデータ群に対応したソートアドレス領域を有するソー
トメモリと、前記分割されたデータ群の上位側の基準値
データに従い上位側カウントスタート領域及び上位側の
カウントエンド領域へのデータ番号の書き込み終了後、
上位側のカウントスタート領域に書き込まれたデータ番
号、上位側のポインタ領域に書き込まれたデータ番号並
びに上位側のカウントエンド領域に書き込まれたデータ
番号を連鎖づけてソートメモリに書き込む第2の制御手
段と、前記上位側の基準値データのソートの終了後、上
位側の基準値データの同値のデータの前記上位側の基準
値データに対応する下位側の基準値データ記憶領域から
の基準値データを下位側のカウントスタート領域及び下
位側のカウントエンド領域へ書き込み終了後、下位側の
桁カウントスタート領域に書き込まれたデータ番号、下
位側のポインタ領域に書き込まれたデータ番号並びに下
位側のカウントエンド領域に書き込まれたデータ番号を
連鎖づけてソートメモリに書き込む第3の制御手段と、
を備えてなるソーティング装置。
【0021】更に、この発明は、前記カウントスタート
領域に夫々対応する第1のフラグ領域と、前記カウント
エンド領域に夫々対応する第2のフラグ領域とを備え、
前記第1のフラグ領域はカウントスタート領域にデータ
が格納されている場合にセットされ、第2のフラグ領域
はカウントエンド領域のデータが更新されている場合に
セットされるように構成すると良い。
【0022】更に、この発明は、上位側の基準値データ
に基づくアドレスに対応するフラグ群を有し、クリッピ
ング又はピッキング処理を行なう領域に対応したアドレ
スの上記フラグ群のフラグを設定する手段を備え、上位
側の基準値データのソートの終了後、クリッピング対応
のアドレスの上位側の基準値データに対しては、第3の
制御手段は下位側の基準値データのソートを省略するよ
うに構成すると良い。
【0023】この発明は、入力される複数の複数桁から
なる基準値データをソーティングするソーティング装置
であって、入力される各基準値データに対応したデータ
番号を発生するデータ番号発生手段と、入力された基準
値データを上位桁と下位桁のデータに分割して夫々のデ
ータ番号に対応したアドレスに記憶する上位桁及び下位
桁の基準値データ記憶領域と、上位桁の基準値データに
基づきアドレスが指定される第1の記憶領域を有し、各
領域に対応する上位桁の基準値データが最初に入力され
たとき、この記憶領域にデータ番号発生手段の発生する
データ番号を記憶する上位桁カウントスタート領域と、
前記基準値データに基づきアドレスが指定される第2の
記憶領域を有し、各領域に対応する上位桁の基準値デー
タが入力される毎に、この記憶領域にデータ番号発生手
段の発生するデータ番号を更新記憶する上位桁カウント
エンド領域と、データ番号に基づきアドレスが指定され
る次のアドレスを指定するための上位桁ポインタ領域
と、下位桁の基準値データに基づきアドレスが指定され
る第3の記憶領域を有し、各領域に対応する下位桁の基
準値データが最初に入力されたとき、この記憶領域にデ
ータ番号発生手段の発生するデータ番号を記憶する下位
桁カウントスタート領域と、前記基準値データに基づき
アドレスが指定される第4の記憶領域を有し、各領域に
対応する下位桁の基準値データが入力される毎に、この
記憶領域にデータ番号発生手段の発生するデータ番号を
更新記憶する下位桁カウントエンド領域と、データ番号
に基づきアドレスが指定される次のアドレスを指定する
ための下位桁ポインタ領域と、前記上行桁又は下位桁カ
ウントエンド領域のデータ番号が更新される毎に、更新
前のデータ番号で指定される上位桁又は下位桁ポインタ
領域に、更新される新たなデータ番後を書き込む第1の
制御手段と、ソート結果を格納する上位桁及び下位桁に
対応したソートアドレス領域を有するソートメモリと、
前記上位桁の基準値データに従い上位桁カウントスター
ト領域及び上位桁カウントエンド領域へのデータ番号の
書き込み終了後、上位桁カウントスタート領域に書き込
まれたデータ番号、上位桁ポインタ領域に書き込まれた
データ番号並びに上位桁カウントエンド領域に書き込ま
れたデータ番号を連鎖づけてソートメモリに書き込む第
2の制御手段と、前記上位桁の基準値データのソートの
終了後、上位桁の基準値データの同値のデータの前記上
位桁の基準値データに対応する下位桁基準値データ記憶
領域からの基準値データを下位桁カウントスタート領域
及び下位桁カウントエンド領域へ書き込み終了後、下位
桁カウントスタート領域に書き込まれたデータ番号、下
位桁ポインタ領域に書き込まれたデータ番号並びに下位
桁カウントエンド領域に書き込まれたデータ番号を連鎖
づけてソートメモリに書き込む第3のの制御手段と、を
備えてなる。
【0024】
【作用】この発明によれば、基準値データを2つ以上の
データ群に分割してソート処理を行う。即ち、上位側の
基準値データに対して、分布カウントソートを行う。基
準値データのアドレスの小さいものから、同じ値の基準
値データのデータ群に対して下位側の基準値データだけ
の分布ソートを行い、ソートされたデータをソートメモ
リのアドレスに順次書き込むことにより、大きなビット
長のデータに対しても高速にソートが実行できる。
【0025】また、この発明は、上位側の基準値データ
のソートの終了後、クリッピング対応のアドレスの上位
桁の基準値データに対しては、下位桁の基準値データの
ソートを省略するように構成することができるので、、
任意の基準値データのポリゴンを除外する3Dクリッピ
ング、3Dピッキングを余分なデータ転送を行うことな
く可能となり、3Dクリッピング、3Dピッキング等を
高速にできる。
【0026】
【実施例】以下、この発明の実施例につき図面に従い説
明する。
【0027】図1は、この発明を用いた疑似3次元画像
処理装置の全体構成を示すブロック図であり、この装置
は例えば、レーシングゲームや飛行機の操縦シュミレー
ションなどのゲーム用機器に用いて好適な1例が示され
ている。図1に従いこの発明の全体構成について説明す
る。
【0028】この実施例において、画像情報供給装置5
は、運転中における各種条件のシュミレーション画像を
演算し、このシュミレーション画像を複数のポリゴンの
情報として、ポリゴン座標メモリ20に出力すると共
に、視点からの距離の代表値を決定し、代表値の小さい
即ち優先度の高いポリゴンとしてZ値を決定し、そのZ
値をソート処理装置100に転送するものである。
【0029】画像情報供給装置5の構成について説明す
ると、この装置には、ワールドメモリ1、幾何変換回路
2、操作部3及びメインCPU回路4を備える。
【0030】ワールドメモリ1には、あらゆる物体が複
数のポリゴンの集合体として表現され、このポリゴンの
各端点を示す端点情報が格納されている。
【0031】操作部3は、ハンドル、アクセル、ブレー
キなどで構成され、その操作内容は電気信号に変換さ
れ、メインCPU回路4へ出力される。
【0032】メインCPU回路4は、操作部3から出力
される各種の状態信号、例えば「自動車が加速した」
「自動車がガードレールに激突した」「道に沿って自動
車が曲がった」等の情報を受け取り、これに応じた状況
データを演算し、幾何変換回路2へ出力する。
【0033】幾何変換回路2は、メインCPU4の演算
する自動車の現在位置に従い、ワールドメモリ1に格納
されている各種ポリゴンデータを参照しながら、運転者
が見える光景を演算し、その光景に応じて幾何変形され
たポリゴンの端点情報をポリゴン座標メモリ20に出力
する。即ち、透視投影変換により、各ポリゴンの頂点座
標を幾何変換し、そのX,Yの2次元座標をポリゴン座
標メモリ20に出力する。
【0034】また、この様な透視投影変換を行うに当
り、視点と各ポリゴンとの距離を求めておく。そして、
透視投影変換により求めた各ポリゴンを運転者の視野即
ち画面の視野に入るか否かのチェックを行う。視野に入
るポリゴンに対し、視点からの距離の代表値を決定し、
代表値の小さい即ち優先度の高いポリゴンとしてZ値を
決定し、そのZ値の小さいポリゴンから順に、優先度の
高いポリゴンとしてポリゴン座標メモリ20及びソート
処理装置100に出力する。
【0035】この発明が用いられるソート処理装置10
0には、画像情報供給装置5にて演算された各ポリゴン
ごとのZ値が転送される。このソート処理装置100は
すべてのポリゴンのZ値を受け取った後、図2に示すよ
うに、スクリーンに近い、即ちZ値の小さい順にソート
処理を行う。そして、Z値の小さい順に並んだポリゴン
アドレスをソートアドレス領域に書き込む。
【0036】また、ソート処理装置100のポリゴン座
標演算は各ポリゴンの情報を内部メモリに書き込みその
ソート処理したデータをポリゴン画像処理回路30に送
る。ポリゴン画像処理回路30が、ソート処理装置10
0のソートアドレス領域からZ値の小さい順のポリゴン
のアドレスを受け取り、そのアドレスの示すポリゴン座
標メモリ20のXYアドレスの情報を用いて、画像処理
を行ないCRT40にポリゴンを表示する。
【0037】次に、この発明の第1の実施例におけるソ
ーティング装置につき説明する。図2はソーティング装
置の全体構成を示すブロック図である。このソーティン
グ装置は、データメモリ10、ソート回路100及び分
布カウントメモリ11、ソートメモリ12を備える。
【0038】データメモリ10は、アドレス生成回路1
3によって指定される1〜N迄のZ値データを格納する
記憶領域を有する。この記憶領域は、図5に示すよう
に、大きくH領域とL領域とに領域が分けられている。
この各領域は、Z値データを格納するZ値領域とそれに
付随するNEXTアドレスを格納するNEXTポインタ
領域に分けられ、H領域には基準値データの上位のデー
タが、L領域には、基準値データの下位のデータが格納
される。ここで、Z値データが、図18に示すように1
6ビットデータで構成されているとすれば、H領域に
は、基準値データの上位の8ビットのデータが、L領域
には、下位の8ビットのデータが格納される。このデー
タメモリ10入力されるZ値データに対応したデータ番
号発生手段により発生させたデータ番号が格納される。
【0039】ソートメモリ12は、図5に示すように、
ソート結果を格納するソートアドレス領域を有し、この
ソートメモリ12もデータメモリ10と同じH領域とL
領域とに領域が分けられている。このソートメモリ12
にソートされたデータ番号がソート順に格納される。
【0040】上記データメモリ10のNEXTポインタ
領域は、同じ値のデータのアドレスを示すポインタ値が
格納され、ソートメモリ12のソートアドレス領域に
は、アドレスの小さい順にZ値の小さいデータのアドレ
スの値が格納される。
【0041】ソート回路100は、データメモリ10か
らマルチプレクサ14を介して入力されるZ値に対し
て、分布カウントメモリ11をワーキングとして用い、
ソートメモリ12にマルチプレクサ14を介してZ値の
H領域とL領域に夫々ソートされたアドレスをH領域と
L領域のソートアドレス領域に書き込む。
【0042】分布カウントメモリ11は、図6に示すよ
うに、データメモリ10と同様にH領域とL領域に分か
れており、そして、この領域は分布カウントスタート領
域と分布カウントエンド領域とに分かれている。分布カ
ウントメモリ11は、この実施例では、データメモリ1
0の夫々のZ値領域に格納された8ビットのデータに対
応して0から255のアドレスを持ち、分布カウントス
タート領域にそのアドレスの値のデータの先頭アドレス
を持つ。そして分布カウントエンド領域にそのアドレス
の値の終点アドレスを持つ。
【0043】クリップ制御回路16は前述した3Dクリ
ッピング又はピッキング処理をするために、予め削除す
るZ値領域が指定されており、その指定領域をHソート
処理回路15に送る。
【0044】Hソート処理回路15はデータメモリ10
に格納されたH領域のソート処理として、分布カウント
メモリ11のH領域、データメモリのH領域のNEXT
ポインタ領域に夫々データを書き込む。更に、Hソート
処理回路15は、ソートした領域がクリッピング処理の
対象になっているか否か判断し、対象になっている領域
に対しては、Lソート処理回路18におけるソート処理
が行わないように制御される。また、L側ソート処理回
路間はデータメモリ10に格納されたL領域のソート処
理として、分布カウントメモリ11のH領域、データメ
モリのL領域のNEXTポインタ領域に夫々データを書
き込む。
【0045】次にこの発明のソート動作につき説明す
る。図3はこのソート動作を示すフローチャート図であ
る。画像情報供給装置5からソーティング対象となる複
数の基準軸データ(Z値データ)が入力されると、その
入力順に1〜Nのその基準値データに対応したデータ番
号が割り振られ、アドレス生成回路にてデータ番号ポイ
ンタによってアドレス指定される1〜NのH領域に基準
値データの上位の8ビットのデータが、1〜NのL領域
に基準値データの下位の8ビットのデータが順次格納さ
れる(ステップS1)。
【0046】このようにして、データメモリ10内へソ
ーティング対象となる複数のZ値データの格納が終了す
ると、Hソート処理回路15によりH領域のソート処理
を行う(ステップS2)。このH領域のソート処理は、
データメモリ10からH領域に格納されたZ値データが
1〜Nのデータ番号順に順に読み出され、分布カウント
メモリ11の分布カウントスタート領域とエンド領域に
向け出力される。
【0047】この実施例において、Z値データの読み出
しは、データ番号ポインタ読み出しアドレスとしてデー
タ番号が1〜Nの順で順次出力されることにより行われ
る。そして、データ番号によりアドレスが指定される
と、指定されたZ値データのH領域から分布カウントメ
モリ11の分布カウントスタート領域とエンド領域に向
けZ値データが読み出される。
【0048】分布カウントメモリ11の分布カウントス
タート領域とエンド領域は、Z値データが取り得る値の
全てに1対1に対応する領域を有する。
【0049】実施例のように、Z値データのHビットが
8ビットで構成されている場合には、0,1,2…25
5の合計256個の値を取り得る。従って、分布カウン
トメモリ11の分布カウントスタート領域とエンド領域
は0,1,2…255の各アドレスで指定される256
個の記憶エリアが夫々設けられている。
【0050】分布カウントメモリ11の分布カウントス
タート領域とエンド領域には、データメモリ10から出
力されるZ値データのデータ番号が書き込まれる。この
実施例において、データ番号は1〜Nで表され、その最
大値はNである。
【0051】そして、データメモリ10から分布カウン
トメモリ11の分布カウントスタート領域とエンド領域
にZ値が入力されると、これら分布カウントスタート領
域とエンド領域は対応するアドレス生成回路17のアド
レスポインタによって指定される記憶領域にそのZ値の
データ番号の書き込みを行う。
【0052】この実施例において、データの書き込みは
次のように行われる。即ち、データメモリ10から、ア
ドレス生成回路13のデータ番号ポインタによって指定
されるデータ番号のZ値データが出力されると、そのZ
値データはアドレス生成回路17のアドレスポインタに
セットされ、このアドレスポインタからは、セットされ
たZ値データが書き込みアドレスとして出力される。そ
して、この書き込みアドレスによって指定される分布カ
ウントメモリ11の分布カウントスタート領域とエンド
領域に、データ番号ポインタによって指定されるデータ
番号(Z値に対応するデータ番号)が書き込まれること
になる。
【0053】ここにおいて、分布カウントメモリ11の
分布カウントスタート領域は一旦データ番号が記憶され
ると、データメモリ10から同じ値の新たなZ値データ
が順次出力されても、新たなデータ番号は重ね書きされ
ないように構成されている。これに対して、分布カウン
トエンド領域は、一旦データ番号が記憶されても、次に
データメモリ10から同じ値のZ値が出力されると、そ
のZ値のデータ番号が新たに更新記憶されるように構成
されている。
【0054】分布カウントスタート領域には、このZ値
が始めて出現した時のデータ番号が記憶される。これに
対し分布カウントエンド領域には、各Z値が最後に出現
した時のデータ番号が記憶されることになる。
【0055】そして分布カウントエンド領域の内容が更
新記録されると、更新記録前のデータ番号がアドレスポ
インタに設定されデータメモリ10のNEXTポインタ
領域のアドレス指定が行われる。そして、指定されたN
EXTポインタ領域には更新後の新たなデータ番号が書
き込まれる。
【0056】このためデータメモリ10内には次にアク
セスするアドレスを保有する領域であるNEXTポイン
タ領域が設けられている。
【0057】データメモリ10より、Z値を読み出し、
分布カウントメモリの分布カウントスタート領域又は分
布カウントエンド領域若しくはデータメモリ100NE
XTポインタ領域に夫々データ番号を設定する。すなわ
ち、NEXTポインタ領域はZ値データ読出し、そのデ
ータ番号を書き込み時、分布カウントメモリ11の分布
カウントスタート値がすでに設定されている時に分布カ
ウントエンド領域の値の示すアドレス値に設定する。こ
のNEXTポインタ領域の設定は分布カウントスタート
領域、エンド領域の設定時に行われる。
【0058】そして、ソート処理は、分布カウントメモ
リ11の最小アドレスから分布カウントスタート領域の
データ値を読み出し、もし、NEXTポインタが設定さ
れていれば、NEXTポインタ値を連鎖し、読み出すも
のである。
【0059】更に、この実施例における、データメモリ
10、分布カウントメモリ11のH側及びL側の領域の
夫々の関係は、まず、H側領域の分布カウントスタート
領域、エンド領域並びにNEXTポインタ領域に夫々デ
ータを格納した後、H側領域を上記ソート処理により処
理し、そのソートされたデータをL側領域の分布カウン
トスタート領域、エンド領域並びにNEXTポインタ領
域に夫々前述した様にデータを設定する。
【0060】このため分布カウントスタート領域及びエ
ンド領域の同じアドレスには、データメモリ10から同
じ値のZ値が一回しか出力されない場合には同じデータ
番号が書き込まれることになるが、同じ値のZ値が複数
回にわたって出力されると、最終的には異なるデータ番
号が記憶されることになる。
【0061】従って、分布カウントメモリ11の分布カ
ウントエンド領域の値が、複数回にわたって更新記録さ
れた場合に、この更新がどのように行なわれたかが判れ
ば、基準値データを昇順又は降順にソーティングした時
の各基準値データのデータ番号の並びが判明する。
【0062】このようにして分布カウントエンド領域が
更新記録されるとその更新履歴はデータメモリ10内の
NEXTポインタ領域に順次書き込まれることになる。
【0063】以上説明したようにこの実施例によれば、
データメモリ10からデータ番号順にZ値データが出力
されると、出力されたZ値データを書き込みアドレスと
して、そのデータ番号が分布カウントスタート領域、分
布カウントエンド領域に書き込まれ、更にこれに付随し
て分布カウントエンド領域からデータメモリ10のNE
XTポインタ領域へのデータ転送書き込みが行われる。
【0064】このようなデータ転送が開始されると、H
ソート回路15は次のような転送制御を行う。
【0065】分布カウントエンド領域に記憶されたデー
タ番号がアドレス生成回路13にセットされる。このア
ドレス生成回路13によりアドレス指定されるNEXT
ポインタ領域にその指定アドレスと所定の対応関係にあ
る分布カウントスタート領域のデータ番号を書き込む。
【0066】このようなデータ番号の書き込みはデータ
を昇順にソーティングする場合と、降順にソーティング
する場合とでは若干異なるが、ここではデータを昇順に
ソーティングする場合を例にとり説明する。
【0067】例えば、アドレス0で指定される分布カウ
ントエンド領域にデータ番号が記憶されている時には、
まずアドレス0番地に記憶されているデータ番号がアド
レスポインタにセットされる。
【0068】そして、アドレス1で指定される分布カウ
ントスタート領域からデータ番号が読み出され、このデ
ータ番号が、アドレスポインタで指定されるデータメモ
リ10のNEXTポインタ領域に書き込まれる。
【0069】また、この時アドレス1で指定される分布
カウントスタート領域にデータ番号が記憶されていない
場合には、アドレス2で指定される記憶エリアからデー
タ番号を読み出し、データメモリのNEXTポインタ領
域に書き込む。また、アドレス2で指定される分布カウ
ントスタート領域にもデータ番号が記憶されていない場
合には、データが見つかるまで同様にアドレス3、アド
レス4、………と順次アドレスをインクリメントしてい
く。
【0070】そしてアドレスKで指定される記憶エリア
からデータ番号が読み出されると、このデータ番号がア
ドレスポインタで指定されるデータメモリ10のNEX
Tポインタ領域に書き込まれる。
【0071】このような読み出し書き込みが完了する
と、次にアドレスKで指定される分布カウントエンド領
域からデータ番号が読み出され、それを書き込みアドレ
スとして前回と同様ようにしてデータメモリ10のNE
XTポインタ領域へのデータの書き込みが行われる。
【0072】この実施例における装置は、このようなチ
ェインデータ番号を記録するNEXTポインタ領域への
データの書き込みを繰り返して行う。
【0073】データメモリ10の上位8ビット、すなわ
ちH領域のソーティングが終了すると、そのソート結果
をソートメモリ12のH領域にソートアドレスとして格
納する。
【0074】そして、この実施例においてはクリップ制
御回路16によって指定された領域があるか否かが判断
される。(ステップS3)例えばH側の0〜Nまでの範
囲で昇順にソーティング処理され、そして、そのH側の
0番地のデータを読み出し、そのデータがクリッピング
されるか否か判断される。そして、クリッピングされる
場合には、そのデータの下位8ビットすなわちL領域の
ソーティングは行わず、次のH領域のZ値に対応する処
理が行われる。
【0075】そのソートメモリ12のH領域のソートア
ドレス領域から読み出したアドレスがデータメモリ10
のデータ番号に相当する。今、H領域より0番地のデー
タが読み出されその領域がクリッピング対象とならない
場合にはL領域のソーティング処理が行われる(ステッ
プS4)。
【0076】そして、L側ソート処理回路18におい
て、前述したデータメモリ10の今度はL領域に格納さ
れたZ値データが読み出され、そのデータが分布カウン
トメモリ11の分布カウントスタート領域及び分布カウ
ントエンド領域に格納され、同じくデータメモリ10の
NEXTポインタ領域、すなわちL領域のNEXTポイ
ンタ領域に格納される。この動作は前述のH領域のデー
タ書き込み処理と同様にして行われる。すなわちH領域
の処理はデータメモリ10のH領域、分布カウントメモ
リ11の分布カウントスタート領域、分布カウントエン
ド領域のH領域を使い、データメモリ10のNEXTポ
インタ領域へチェィンデータの書き込みが行われる。こ
れに対して、L領域のデータについては、H側のソート
処理によりソートされたデータを用いてデータメモリ1
0のL領域のZ値データを読み出し、そのデータに従っ
て分布カウントメモリ11のL領域の分布カウントスタ
ート領域、分布カウントエンド領域に夫々データ番号を
格納し、そしてデータメモリ10のL領域のNEXTポ
インタ領域に、そのチェィンデータを書き込む。そし
て、分布カウントメモリ11の最小アドレスから分布カ
ウントスタート値を読み出し、もしNEXTポインタ領
域にデータが設定されていれば、NEXTポインタ値を
チェインして、ソート処理が行われる。
【0077】即ち、この発明においては、まずH領域す
なわちデータの上位8ビットに関してソーティング処理
を行い、そして、そのソーティング処理が行われた段階
でクリッピングする必要があるデータか否かを判断し、
そのデータがクリッピングする必要がないものに関し、
次のL側ソート処理を行うものである。そして、L側ソ
ート処理も同じくH側領域と同様の処理を行ってソーテ
ィングが完了するわけである。そしてソーティングされ
た結果を同じくソートメモリのL領域のソートアドレス
領域に書き込んで(ステップS5)、そして、全てのデ
ータに対してソートされたか否か判断し、全てのデータ
がソーティングされるまでクリッピングが必要か否かと
いう処理判断からL側ソートを繰り返す。
【0078】全てのソーティングが終了すると、動作が
終了するものである。
【0079】次に、このようなソーティング回路を用い
て画像情報供給装置5から出力される16個のZ値デー
タを昇順にソーティングする場合を例に取り説明する。
【0080】この実施例においては、16個のZ値デー
タをソーティング対象とするためデータメモリ10は1
〜16のデータ番号で指定されるH領域のZ値領域とL
領域のZ値領域を有するように形成すれば良い。また、
Z値データは前述したように8ビット×2、即ちH領域
に8ビット、L領域に8ビットのデータで構成されてい
る。
【0081】まず画像情報供給装置5からデータメモリ
10に向け、上位の8ビット、即ちH値のデータが、
1、2、4、5、3、0、0、1、5、6、7、9、1
0、1、2、1の順で入力されると、入力されたZ値デ
ータは順次1、2、3…のデータ番号をアドレスするH
領域の記憶エリアに書き込まれることになる。
【0082】また下位8ビット即ちL領域のデータが
5、6、3、1、5、4、10、2、8、5、7、1、
1、2、7、5の順で入力されると、入力されたZ値デ
ータは順次L領域の1、2、3、4、5…のデータ番号
をアドレスする記憶エリアに書き込まれることになる。
【0083】このようにして、データメモリ10内のL
領域、H領域にZ値データが書き込まれると、このZ値
データのソーティングをZ値データそのものではなくデ
ータ番号を用いて行う。
【0084】このようにすることにより、ソーティング
対象となるZ値データの桁数が多い場合でも、このZ値
データのソーティングを簡単な回路で高速に行うことが
できる。
【0085】この実施例においては、このようにZ値デ
ータメモリ10内にZ値が書き込まれると、このデータ
メモリ10からそのデータ番号順にZ値が順次読み出さ
れる。図19はデータメモリ10に画像供給装置50か
ら転送されたZ値データが書き込まれた状態を示す模式
図である。
【0086】この実施例においては、このようにデータ
メモリ10内にZ値データが書き込まれると、このデー
タメモリ10からデータ番号順に順次読み出される。ま
ずH領域のみ読み出され、図20〜図35に示すように
H領域のソート処理が行なわれる。
【0087】図20に示すように、データメモリ10か
らまずデータ番号1、即ちアドレス1で特定されるZ値
データ1が出力されると、このZ値データ1をアドレス
として分布カウントスタート領域及びエンド領域にデー
タ番号1が書き込まれる。
【0088】H領域のソート処理が続行され、図21に
示すように、データ番号2で特定されるZ値データ2を
アドレスとして、分布カウントスタート領域及び分布カ
ウントエンド領域にデータ番号2が入力される。続い
て、図22に示すように、データ番号3で特定されるZ
値データ4が出力されると、このZ値データ4をアドレ
スとして、分布カウントスタート領域及びエンド領域に
データ番号3が入力される。
【0089】図23〜図25に示すように、データ番号
4〜6まで、順次同様に分布カウントスタート領域及び
エンド領域に夫々のデータ番号が格納される。
【0090】図26に示すように、データ番号7で特定
されるZ値データ0をアドレスとして、分布カウントス
タート領域及び分布カウントエンド領域にデータ番号2
が入力される。この時分布カウントスタート領域には既
にデータ番号が書き込まれているために、新たなデータ
番号の書き込みは行われない。これに対して、分布カウ
ントエンド領域には前のデータ番号6を新たなデータ番
号7に更新記録する。このためデータメモリ10のNE
XTポインタ領域には更新前のデータ番号6をアドレス
として、更新後のデータ番号7が書き込まれることにな
る。
【0091】次に、図27に示すように、データ番号8
で特定されるZ値データ0をアドレスとして、分布カウ
ントスタート領域及び分布カウントエンド領域にデータ
番号1が入力される。この時分布カウントスタート領域
には既にデータ番号が書き込まれているために、新たな
データ番号の書き込みは行われない。これに対して、分
布カウントエンド領域には前のデータ番号1を新たなデ
ータ番号8に更新記録する。このためデータメモリ10
のNEXTポインタ領域には更新前のデータ番号1をア
ドレスとして、更新後のデータ番号8が書き込まれるこ
とになる。
【0092】次に、図28に示すように、データメモリ
10からデータ番号9で特定されるZ値データ5が読み
出される。このZ値データ5をアドレスとして分布カウ
ントスタート領域及び分布カウントエンド領域にそのデ
ータが書き込まれる。この時分布カウントスタート領域
には既にデータ番号が書き込まれているため、新たなデ
ータ番号の書き込みは行われず、これに対しエンド領域
には前のデータ4を新たなデータ番号9に書替え、更新
記録する。そしてデータメモリ10のNEXTポインタ
領域には更新前のデータ番号4をアドレスとして更新後
データ番号9が書き込まれる。
【0093】以下同様にして、図29〜図35に示すよ
うに、データメモリ10のデータ番号9〜6までデータ
を読み出し、そして分布カウントスタート領域及び分布
カウントエンド領域に夫々データを書き込むと共に、既
に分布カウントスタート領域にデータが書き込まれてい
る場合には、そのデータは書き替えずに更新前のデータ
の番号をアドレスをして、更新後のデータ番号をNEX
Tポインタ領域に書き込んでいく。このようにH領域の
みソートした結果を図35に示す。
【0094】このような一連の書き込み作業により、Z
値データをアドレスとする分布カウントスタート領域に
は各Z値が最初に出現した時のデータ番号が書き込まれ
ることになる。
【0095】またZ値データをアドレスとする分布カウ
ントエンド領域には各Z値の値が最後に出現した時のデ
ータ番号が記憶されることになる。
【0096】更に、データ番号をアドレスとするNEX
Tポインタ領域にはカウントエンド領域のデータが更新
記憶される毎に、更新前のデータ番号をアドレスとして
更新後のデータ番号が順次書き込まれることになる。従
って、データメモリ10aから同じZ値データが複数回
出力されると、このNEXTポインタ領域にはそのZ値
データがどのようなデータ番号順に出力されたかの履歴
が記録されることになる。
【0097】このようにして、Z値データが読み出され
ると、読み出されたZ値をアドレスとして対応するデー
タ番号が分布カウントメモリの分布カウントスタート領
域及びエンド領域に書き込まれる。従ってデータメモリ
10からまずデータ番号1、即ちアドレス1で特定され
るZ値データ1が出力されると、このZ値データ1をア
ドレスとして分布カウントスタート領域及びエンド領域
にデータ番号1が書き込まれる。
【0098】次に、H領域のZ値が0の値のものに対し
て、ソートを行う場合につき、図36を参照して説明す
る。まずH領域の分布カウントスタートメモリのアドレ
ス0の領域のデータ番号を読み出す。この場合アドレス
0は、データ番号は6であるのでソートアドレスに6が
書き込まれる。
【0099】そして、Hデータ6の領域のNEXTポイ
ンタを読み出し、そのNEXTポインタ領域が7を示す
ので、そのデータ番号7のNEXTポインタを読みだ
す。この場合7のNEXTポインタには何も書かれてい
ないので、ソートアドレスにはそのデータ番号7を書き
込み、H領域0に相当する全てのデータが書き込まれる
ことになり、カウンタ値(CNTX)にソートアドレス
データ数2がセットされ、L領域の処理へ移る。
【0100】まずデータ番号6のデータメモリ10で特
定されるL値のデータ番号4が読み出されると、このデ
ータ番号4をアドレスとして分布カウントスタート領域
4に6を分布カウントエンド領域に6を書き込む。
【0101】次にデータメモリ10のL領域からデータ
番号7で特定されるデータ番号10が出力されると、こ
のデータ番号10をアドレスとして分布カウントスター
ト領域及び分布カウントエンド領域に7のデータを書き
込みH領域0に対するL領域のソートを終了し、CNT
X2にソートアドレスL領域のデータ数をセットする。
【0102】次に、H領域が1の場合のL領域のソート
につき図38を参照して説明する。
【0103】分布カウントスタート領域のアドレス1で
指定するデータ番号1をソートアドレス1に書き込み、
そしてそのアドレス1に書き込まれているNEXTポイ
ンタを読み出す。この場合NEXTポインタにはデータ
番号8が書き込まれているので、データ番号8をソート
アドレスに書き込むと共にアドレス8に書き込まれたN
EXTポインタ領域のデータ番号14を読み出す。そし
てデータ番号14をソートアドレスに書き込むと共にそ
のデータ番号14が示すNEXTポインタのデータ番号
16をソートアドレスに書き込むと共に、そのアドレス
16のNEXTポインタには何も書かれていないので、
H領域1に相当する全てのデータがソートアドレスに書
き込まれたことになる。
【0104】そして、まずH領域のソートアドレス1に
書き込まれたデータ番号1のL領域を読み出す。データ
番号1に書き込まれたLデータ5をアドレスとする分布
カウントスタート領域5にデータ番号1を書き込む。そ
して、H領域のアドレス2に書き込まれたデータ番号8
のL領域を読み出す。アドレス8を示すZ値2をアドレ
スとする分布カウントスタート領域及び分布カウントエ
ンド領域にデータ番号8を書き込む。そして、14をア
ドレスとするZ値2を呼出し、そのZ値2をアドレスす
る分布カウントスタート領域及び分布カウントエンド領
域にそのデータ番号14を書き込む。分布カウントスタ
ート領域には既にデータが書き込まれているので書き替
えられず、これに対して、分布カウントエンド領域には
前のデータ番号8を新たなデータ番号14に書き替え
る。このためデータメモリ8のNEXTポインタ領域に
は更新前のデータ番号8をアドレスとして、更新後のデ
ータ番号16が書き込まれる。
【0105】そして、ソートアドレス16に示す分布カ
ウントスタート領域に呼び出す。分布カウントスタート
領域16のデータ番号は5であるのでそれをアドレスと
して、そのデータを分布カウンタスタート領域及びエン
ド領域に書き込む、分布カウンタスタート領域には、既
にデータが書き込まれているので、書き替えられず、こ
れに対して、分布カウントエンド領域には前のデータ番
号1を新たなデータ番号16に書き込まれる。このため
データメモリ1のNEXTポインタ領域には、更新前の
データ番号1をアドレスとして、更新後のデータ番号1
6が書き込まれる。
【0106】そして、ソートアドレスのL領域には、ア
ドレス3に分布カウントスタート領域のアドレス2に書
き込まれているデータ8をそして、このエンド領域が1
4を示しているため、データメモリの8のNEXTポイ
ンタ領域に書き込まれているデータ番号14を読み出
し、ソートアドレスのL領域のアドレス4にデータ14
を書き込む。そして次の分布カウントスタート領域のア
ドレス5に書き込まれているデータ番号1をソートアド
レス5に書き込み、分布カウントエンド領域が16を示
しているため、データメモリのアドレス1のNEXTポ
インタ領域に書き込まれていデータ番号16、ソートア
ドレスのアドレス6に書き込み、カウンタCNTX2に
ソートアドレスのL領域のデータ数6をセットする。こ
のようにしてH領域1に対するL領域のソート処理が終
了する。
【0107】図39はH領域が2の場合のL領域のソー
トの処理場合を示す。ソートアドレスのH領域にデータ
番号2、15を書き込み、このデータ番号のデータメモ
リのL領域のアドレス2、15を読み出し、前述と同様
にソート処理が行なわれ、図39に示すようにソート処
理したデータが書き込まれる。
【0108】図40には、H領域3の場合のL領域のソ
ート処理が、図41にはH領域4の場合のL領域のソー
ト処理が、図42にはH領域6の場合のL領域のソート
処理が、図43にはH領域7の場合のL領域のソート処
理が、図44にはH領域9の場合のソート処理が示され
る。
【0109】図45には、H領域10の場合、すなわち
全てのソート処理が終了した結果を示す。
【0110】そして、ソートメモリ12のL領域のソー
トアドレスのアドレス1から順に、データの昇順にソー
ト処理が終了して書き込まれる。すなわち、ソートアド
レス12のL領域のアドレス1から順次読み出すことに
より、Z値の小さい順にソーティングされたデータを読
み出すことができる。
【0111】図7は、この発明のソーティング処理装置
の具体的実施例を示すブロック図である。
【0112】図7において、52は第3カウンタであ
り、分布カウントメモリ11のL領域とフラグ2のアク
セスを行う。53は第1カウンタであり、分布カウント
メモリ11のH領域とフラグ1のアクセスを行う。54
はマルチプレクサであり、第1、第3カウンタ53、5
2及びデータメモリ10からマルチプレクサ68を介し
て入力されるデータ入力の中から所定のデータを選択
し、第1レジスタ58へ与える。
【0113】67は第3レジスタであり、分布カウント
メモリ11から読み出されたH領域L領域からのデータ
が与えられる。この第3レジスタ67からマルチプレク
サ59にデータが転送される。このマルチプレクサ59
には、第2アドレス変換部66からの出力及びマルチプ
レクサ64で選択されて与えられる第2、第4、第5カ
ウンタ61、62、63からの出力が与えられる。そし
て、マルチプレクサ59は入力された各データの中から
所定のデータを選択して第2レジスタ55に与える。
【0114】第2レジスタ55に与えられたデータはデ
ィマルチプレクサ69を介して、データメモリ10及び
ソートメモリ12の所定領域に転送される。
【0115】第1アドレス変換部56は、マリィプレク
サ60より送られてくるデータに基づきデータメモリ1
0及びソートメモリ12のH領域(上位アドレス)、L
領域(下位アドレス)のアドレスを出力する。
【0116】この第1アドレス変換部56は、図15に
示すように、レジスタ71、73、74、75とマルチ
プレクサ72を備え、マルチプレクサ60より送られて
くるデータを下位アドレスとして出力し、コントローラ
65により、レジスタ73に与えられるZ値アドレス
値、レジスタ74に与えられるNEXTポインタアドレ
ス値、レジスタ75に与えられるソートアドレス値をマ
ルチプレクサ72で選択することにより、上位アドレス
としてZ値アドレス、NEXTポインタアドレス、ソー
トアドレス値が選択して出力される。
【0117】第2アドレス変換部66は、第1レジスタ
58より送られてくるデータに基づき分布カウントメモ
リ11のH領域(上位アドレス)、L領域(下位アドレ
ス)のアドレスを出力する。
【0118】この第2アドレス変換部66は、図16に
示すように、レジスタ80、82、83とマルチプレク
サ81を備え、第1レジスタ58より送られてくるデー
タを下位アドレスとして出力し、コントローラ55によ
り、レジスタ82に与えられる分布カウントスタート領
域、レジスタ83に与えられる分布カウントエンド領域
の値を上位アドレスとしてマルチプレクサ81で選択し
て出力する。この第2アドレス変換部66は第1レジス
タ58から転送されたデータを分布カウンタメモリ11
の下位アドレスとして、H/L領域指定と分布カウント
スタートアドレス/分布カウントエンドアドレスの切り
替えを行う。
【0119】57はフラグ検出部であり、第1レジスタ
58の出力に基づいて、分布カウントメモリ11がフラ
グを持っているか否か検出する。
【0120】このフラグ検出部57は,図14に示すよ
うに、0から255のフリップフロップ群153、16
3、173、183を4群持ち、フリップフロップ群1
53はフラグ1LはH領域の分布カウントメモリ11に
対応し、フリップフロップ群173はフラグ2LはL領
域の分布カウントメモリ11に対応し、0から255の
それぞれの分布カウントメモリ11が値を持っているか
を示す。即ちコントローラ65よりの出力C1がマルチ
プレクサ150を介してデコーダ151又は171に与
えられ、デコーダ151又は171にてデコードされた
フリップフロップ群153又は173がセットされてい
るかにより、そのフリップフロップからの出力がセレク
タ152又は172にて選択され、マルチプレクサ16
0を介して出力される。
【0121】また、フリップフロップ群163は分布カ
ウントメモリ11のフラグ1Hに,フリップフロップ群
183は分布カウントメモリ11のフラグ2Hに対応
し、そのアドレス値が1つだけか、複数かを示す。即ち
コントローラ65よりの出力C1がマルチプレクサ15
0を介してデコーダ161又は181に与えられ、デコ
ーダ161又は181にてデコードされたフリップフロ
ップ群163又は183がセットされているかにより、
そのフリップフロップからの出力がセレクタ162又は
182にて選択され、マルチプレクサ160を介して出
力される。
【0122】そして、コントローラ65からのC1信号
により、H領域を選択し、第3レジスタ67の値によ
り、上記フリップフロップを選択し、コントローラ65
からのW信号により、フリップフロップのセットが行な
われる。
【0123】61は第2カウンタであり、データメモリ
10のH領域のZ値領域とソートメモリ12のソートア
ドレス領域をアクセスする。
【0124】62は第4カウンタであり、ソートメモリ
12のH領域のソートアドレス領域をアクセスする。
【0125】63は第5カウンタであり、ソートメモリ
12のL領域のソートアドレス領域をアクセスする。
【0126】70はクリップフラグ検出部であり、図1
7に示すように、0から255のフリップフロップ群7
03を持ち、フリップフロップにセットされるフラグC
LはH領域の分布カウントメモリ11に対応し、フリッ
プフロップが”1”であれば、その値に対応する領域は
処理する必要がないため、この値を持つアドレスにはL
領域のソート処理を行わないように制御する。即ち入力
されたデータをデコーダ702でデコードし、その対応
するフリップフロップ群703のフリップフロップの出
力がセレクタ704のより出力され、フリップフロップ
の出力が”1”であれば、その値に対応する領域は処理
する必要がないため、この値を持つアドレスにはL領域
のソート処理を行わないように制御する。
【0127】また、コントローラ15は図8ないし図1
3に示すフローチャートに従い全体の動作を制御する。
【0128】この実施例を図7ないし図12のフローチ
ャートに従い更に説明する。まず動作を開始すると、ス
テップS10において、クリッピングしたい領域を設定
するためにクリッピングフラグ検出部57の所望のCL
フラグを”1”にセットする。
【0129】次に、ステップS11において、第2、第
3カウンタの値をリセットし、ステップS12に進む。
ステップS12においては、第2カウンタの値をカウン
トアップしステップS13へ進む。
【0130】ステップS13においては、第2カウンタ
の示すデータメモリ10のH領域のZ値領域からZ値を
読み出し、第1レジスタにセットする。そしてステップ
S14に進む。
【0131】ステップS14において、第1レジスタに
示すフラグ1の値が”0”であるか否か判断される。フ
ラグ1の値が”0”である場合にはステップS20に進
み、”0”でない場合には、ステップS15に進む。
【0132】ステップS15では第1レジスタの示すフ
ラグ1の値が”1”であるか否か判断される。”1”の
場合には、ステップS16に進み、”1”でない場合に
はステップS35へ進む。
【0133】ステップS14でフラグ1の値が”0”で
あると判断された場合、ステップS20へ進み、ステッ
プS20において、第1レジスタの示すH領域の分布カ
ウントスタート領域へ第2カウンタの値を書き込む。そ
して、第1レジスタの示すフラグ1の値を”1”にセッ
トし、ステップS19へ進む。
【0134】一方、ステップS16では、第1レジスタ
の示すH領域の分布カウントエンド領域から終点ポイン
ト値をリードし、第3レジスタへセットする。そして、
ステップS17へ進む。ステップS17においては、第
3レジスタの示すH領域のポインタ領域へ第2カウンタ
の値を書き込み、ステップ18へ進む。
【0135】ステップS18において、第1レジスタの
示すH領域の分布カウンタエンド領域へ第2カウンタの
値を書き込む。そして、ステップS19へ進む。ステッ
プS19において、第2カウンタの値とデータ数とが比
較され、第2カウンタの値の方がデータ数より小さい場
合には全てのH領域の処理が終わっていないので、ステ
ップS12へ戻り、前述の動作を繰り返す。第2カウン
タの値がデータ数より大きくなるとステップS21へ進
む。
【0136】ステップS21では、第1カウンタの値を
カウントアップし、ステップS22へ進む。ステップS
22においては、第1カウンタの値を第1レジスタへセ
ットし、ステップS23へ進む。
【0137】ステップS23では、第1レジスタの示す
CLフラグの値が”1”であるか否か、あるいは第1レ
ジスタの示すフラグ1の値が”0”であるか否か判断さ
れる。第1レジスタに示すCLフラグの値が”1”また
は”0”である場合には、ステップS32へ進み、”
0”または”1”でない場合には、ステップS24へ進
む。
【0138】ステップS24においては、第1レジスタ
に示すH領域の分布カウンタスタート領域から終点ポイ
ント値を読み出し、その領域から終点ポイント値を読み
出して第3レジスタへセットする。そして、ステップS
25へ進む。ステップS25においては、第4カウンタ
のカウント値をカウントアップし、ステップS26へ進
む。ステップS26において、第4カウンタの示すソー
トメモリ12のH領域に第3レジスタの値をセットす
る。
【0139】そしてステップ27へ進む。ステップS2
7において、第3レジスタの示すデータメモリ10のH
領域のポインタ領域の値を読み出し、第1レジスタにセ
ットする。そしてステップS28へ進む。
【0140】ステップS28においては、第1レジスタ
の値が”0”であるかないかを判断する。”0”の場合
にはステップS32に進み、”0”でない場合にはステ
ップS29へ進む。ステップS29においては、第4カ
ウンタの値をカウントアップし、ステップS30へ進
む。
【0141】ステップS30において、第4カウンタの
示すソートメモリのH領域に第1レジスタの値をセット
し、ステップS31へ進む。ステップS31において
は、第1レジスタの示すデータメモリのH領域のポイン
タ領域の値を読み出し、第1レジスタにセットする。そ
してステップS28に戻る。第1レジスタの値が”0”
と等しくなるまでこの動作は繰返し、第1レジスタの値
が”0”になるとステップS32に進む。
【0142】そして、ステップS32において、第4カ
ウンタの値が”0”であるかないか判断され、”0”で
ない場合には、ステップS33へ進む。ステップS33
では、L領域のソートを行うサブルーチンを呼び出す。
【0143】また、第4カウンタの値が、”0”の場合
には、ステップS34へ進み、第1カウンタの値が25
5より大きいか否か判断され、255より小さい場合に
はステップS21に戻り、前述の動作を繰り返す。そし
て、第1カウンタの値が255より大きくなった場合に
は全部の動作が終了したので動作を終了する。
【0144】次に、L領域のソート処理を行うサブルー
チンについて説明する。このサブルーチンがスタートす
るとステップS50において、第2、第3カウンタのリ
セットを行いステップS51に進む。ステップS51に
おいて、第2カウンタのカウント値をカウントアップ
し、そしてステップS52へ進む。
【0145】ステップS52において、第2カウンタの
示すソートメモリのH領域のソートアドレス領域から、
ソートアドレスを読み出し第1レジスタにセットする。
【0146】続いてステップS53に進み。ステップS
53において、第1レジスタの示すデータメモリのL領
域のZ値領域から読み出し第1レジスタにセットする。
【0147】次に、ステップS54において、第1レジ
スタの示すフラグ2の値が”0”であるかないか判断さ
れ、”0”の場合にはステップS60へ進み、ステップ
S60において、第1レジスタの示すL領域の分布カウ
ンタスタート領域の第2カウンタの値を書き込む。そし
て、第1レジスタの示すフラグ2の値を”1”にセット
し、ステップS59へ進む。
【0148】ステップS54において、第1レジスタの
値が示すフラグ2の値が”0”でない場合には、ステッ
プS55へ進み、ステップS55において、第1レジス
タの示すフラグ2の値が”1”であるか否か判断され
る。”3”でない場合には図13に示すステップS39
に進む。”1”の場合にはステップS56へ進み、第1
レジスタの示すデータメモリ10のL領域の分布カウン
タエンド領域から終点ポイント値をリードし、第3レジ
スタへセットする。そして、ステップS57へ進む。
【0149】ステップS57では、第3レジスタの示す
データメモリのL領域のポインタ領域へ、第2カウンタ
の値を書き込み、ステップS58へ進む。ステップS5
8においては、第1レジスタの示すL領域の分布カウン
トエンド領域へ第2カウントの値を書き込みステップS
59へ進む。
【0150】ステップS59では、第2カウンタのカウ
ント値と第4カウンタのカウント値が比較され、第4カ
ウンタのカウント値が大きい場合にはステップS51に
戻り前述の動作が繰り返す。そして、第2カウンタのカ
ウント値が大きくなるとステップS61に進む。
【0151】ステップS61において、第3カウンタの
カウント値をカウントアップし、そして、ステップS6
2へ進む。ステップS62において、第3カウンタの値
を第1レジスタへセットし、ステップS63へ進む。
【0152】ステップS63において、第1レジスタの
示すフラグ2の値が”1”であるか否か判断され”1”
の場合には、ステップS64へ進み、”1”でない場合
にはステップS72へ進む。
【0153】ステップS64において、第1レジスタの
示すL領域の分布カウンタスタート領域から始点ポイン
タ値を読み出し、第3レジスタへセットし、ステップS
65へ進む。ステップS65において第5カウンタの値
をカウントアップし、ステップS66に進む。
【0154】ステップS66にて、第5カウンタの示す
ソートメモリ12のL領域に、第3レジスタの値をセッ
トし、ステップS67に進む。
【0155】ステップS67にて、第3レジスタの示す
データメモリ10のL領域のポインタ領域の値を読み出
し、第1レジスタにセットし、ステップS68に進む。
【0156】ステップS68にて、第1レジスタの値
が”0”であるか否か判断され、”0”の場合には、ス
テップS72に進み、”0”でない場合にはステップS
69に進む。
【0157】ステップS69においては、第5カウンタ
の値をカウントアップし、ステップS70に進む。ステ
ップS70では、第5カウンタに示すソートメモリ12
のL領域のソートアドレスに第1レジスタの値をセット
する。
【0158】次にステップS71において、第1レジス
タに示すデータメモリ10のL領域のポインタ領域を読
みだし、第1レジスタにセットし、ステップS68にお
いて、第1レジスタの値が”0”になるまで前述の動作
を繰り返す。ステップS68において、第1レジスタの
値が”0”になると、ステップS72に進む。
【0159】そして、ステップS72において、第3カ
ウンタの値が255になると、このサブルーチン動作が
終了し、ステップS34に戻る。
【0160】一方、ステップS55において、第1レジ
スタの示すフラグ2の値が”3”でない場合には、図1
3に示すステップS39に進む。
【0161】ステップS39においては、第1レジスタ
の示すL領域の分布カウントスタート領域から始点ポイ
ンタ値を読み出し、第3レジスタへセットし、ステップ
S40に進む。
【0162】ステップS40において、第3レジスタの
示すデータメモリのL領域のポインタ領域へ第2カウン
タの値を書き込み、ステップS41に進む。ステップS
41では、第1レジスタの示すL領域の分布カウントエ
ンド領域へ第2カウンタの値を書き込み、ステップS4
2に進む。
【0163】ステップS42において、第1レジスタの
示すフラグ2の値を”2”にセットした後、図11のス
テップS59へ戻る。
【0164】一方、図8のステップS15において、第
1レジスタの示すフラグ1の値が”1”でない場合には
図10ステップS35に進む。
【0165】ステップS35においては、第1レジスタ
の示すH領域の分布カウントスタート領域から始点ポイ
ンタ値を読み出し、第3レジスタへセットし、ステップ
S36に進む。
【0166】ステップS36において、第3レジスタの
示すデータメモリのH領域のポインタ領域へ,第2カウ
ンタの値を書き込み、ステップS37に進む。ステップ
S37では、第1レジスタの示すH領域の分布カウント
エンド領域へ第2カウンタの値を書き込み、ステップS
38に進む。
【0167】そして、ステップS38において、第1レ
ジスタの示すフラグ2の値を”2”にセットした後、図
8のステップS19へ戻る。
【0168】このように処理を行なうと、前述した図2
0から図45に示すように、データメモリ10及びソー
トメモリ12に順次データが書き込まれ、ソーティング
処理される。
【0169】図49、図50にクリッピングを行った例
を示す。この例では、データメモリ10のH領域のZ値
が0,1,2のものクリッピング対象とする。このため
にクリップフラグ検出部70のフリップフロップ群70
3のCLフラグの値として、0,1,2ビット目を”
1”とセットする。
【0170】L領域のソート処理において、H領域のZ
値が0,1,2の値に対してはソートしないため、図4
9示すように、ポリゴン6,7,16,1,8,14,
2,15のアドレスはL領域のソートアドレス領域には
含まれない。従って、図50に示すように、H領域0,
1,2のポリゴンがクリッピングされる。
【0171】図51は、ピッキングとクリッピングの状
態を示す模式図である。図51(a)は、ピッキングま
たはクリッピングを行なわない状態を示す模式図であ
る。
【0172】図51(b)は,スクリーンより前方のH
領域のZ値”0”と、視界限界より後方のH領域”5”
のポリゴンをクリッピングした例を示す模式図である。
このクリッピングを行なう場合には、クリップフラグ検
出部70のフリップフロップ群703のCLフラグの値
として、0,5ビット目を”1”とセットすれば良い。
【0173】図51(c)は、H領域のZ値を”
2”、”3”に対するポリゴンをピッキングした例を示
す模式図である。このピッキングを行なう場合には、ク
リップフラグ検出部70のフリップフロップ群703の
CLフラグの値として、0,1,4,5ビット目を”
1”とセットすれば良い。
【0174】図51(d)はH領域のZ値を”2”、”
3”に対してポリゴンをクリッピングした例を示す模式
図である.このクリッピングを行なう場合には、クリッ
プフラグ検出部70のフリップフロップ群703のCL
フラグの値として、2,3ビット目を”1”とセットす
れば良い。
【0175】上述した実施例においては、基準値デー
タ、即ちZ軸データをH領域及びL領域の2つの領域に
分割してソート処理を行う場合について説明したが、Z
軸データを2つ以上の領域に分割して処理を行えば並列
度が増し、ソート処理が高速に行える。例えば、H,L
領域だけの2分割するシステムより、H,M,Lの3つ
の領域に分ける方が、並列度が増えソート処理の速度が
増す。
【0176】次に、Z軸データをH,M,Lの3つの領
域に分割してソート処理を行う場合の実施例について説
明する。
【0177】この実施例におけるクリッピング処理にお
いては、図60に示すように、H,M,L区分に分ける
ことにより、H,M区分を使用した細かなクリッピング
が少ない処理数で行うことが可能である。
【0178】図60(a)が本実施例方式であり、
(b)は(a)方式からM領域をのぞいたものであり、
(a)と比較すると細かいクリッピングができず、クリ
ッピングが必要な領域のソート処理を行うためむだな処
理を行いスピードが遅くなる。(c)は(a)方式での
H領域がない場合に対応するが、この場合には、細かな
クリッピングが可能であるが、H領域全てのクリッピン
グフラグを必要とする。例えば、H領域が10ビットで
あれば、1024のフラグが必要である。これに対し
て、H,M領域ごと5ビットずつに分割すると32+3
2×2(クリッピング領域の両端)だけですむ。
【0179】また、H領域全てに対してクリッピング処
理するかどうかの判断を必要としソート処理速度が遅く
なる。
【0180】次に、この実施例のソーティング装置につ
き説明する。図52はソーティング装置の全体構成を示
すブロック図である。
【0181】このソーティング装置は、前述した実施例
と同様に、データメモリ10a、ソート回路100及び
分布カウントメモリ11aを備える。
【0182】データメモリ10aは、データ番号ポイン
タによって指定される1〜N迄のZ値データを格納する
記憶領域を有する。この記憶領域は、図57に示すよう
に、大きくH領域とM領域とL領域とに領域が分けられ
ている。この各領域は、Z値データを格納するZ値領域
とそれに付随するNEXTアドレスを格納するNEXT
ポインタ領域に分けられ、H領域には基準値データの上
位のデータが、M領域には基準値データの中位のデータ
が、L領域には、基準値データの下位のデータが格納さ
れる。ここで、Z値データが、図59に示すように16
ビットデータで構成されているとすれば、H領域には、
基準値データの上位の5ビットのデータが、M領域には
中位の5ビットのデータが、L領域には、下位の6ビッ
トのデータが格納される。
【0183】ソートメモリ12aは、図57に示すよう
に、ソート結果を格納するソートアドレス領域を有し、
このソートメモリ12aもデータメモリ10aと同じH
領域、M領域及びL領域に領域が分けられている。
【0184】上記データメモリ10aのNEXTポイン
タ領域は、同じ値のデータのアドレスを示すポインタ値
が格納され、ソートメモリ12aのソートアドレス領域
には、アドレスの小さい順にZ値の小さいデータのアド
レスの値が格納される。
【0185】ソート回路100は、データメモリ10a
から入力されるZ値に対して、分布カウントメモリ11
aをワーキングとして用い、ソートメモリ12aにZ値
のH領域とM領域とL領域に夫々ソートされたアドレス
をH領域とM領域とL領域のソートアドレス領域に書き
込む。
【0186】分布カウントメモリ11aは、図58に示
すように、データメモリ10aと同様にH領域、M領域
及びL領域に分割されており、そして、この領域は分布
カウントスタート領域と分布カウントエンド領域とに分
かれている。分布カウントメモリ11aは、この実施例
では、データメモリ10aの夫々のZ値領域に格納され
た5ビット、5ビット、6ビットのデータに対応して0
から31のアドレスと、0から63のアドレスを持ち、
分布カウントスタート領域にそのアドレスの値のデータ
の先頭アドレスを持つ。そして分布カウントエンド領域
にそのアドレスの値の終点アドレスを持つ。
【0187】クリップ制御回路16は前述した3Dクリ
ッピング又はピッキング処理をするために、予め削除す
るZ値領域が指定されており、その指定領域をH,Mソ
ート処理回路15a,15bに送る。
【0188】H,Mソート処理回路15a,15bは、
ソートした領域がクリッピング処理の対象になっている
か否か判断し、対象になっている領域に対してはLソー
ト処理回路18におけるソート処理が行わないように制
御される。
【0189】この実施例における、Hソート処理回路1
5a、Mソート処理回路15b、Lソート処理回路18
は、前述の実施例と同様のソート処理を行なうものであ
る。
【0190】次に、この実施例のソート処理動作につき
説明する。図53はこのソート動作を示すフローチャー
ト図である。
【0191】画像情報供給装置5からソーティング対象
となる複数の基準軸データ(Z値データ)が入力される
と、その入力順1〜Nのデータ番号が割り振られ、デー
タ番号ポインタによってアドレス指定される1〜NのH
領域に基準値データの上位の5ビットのデータが、1〜
NのM領域に基準値データの中位5ビットデータが、1
〜NのL領域に基準値データの下位の6ビットのデータ
が順次格納される(ステップS100)。
【0192】このようにして、データメモリ10a内へ
ソーティング対象となる複数のZ値データの格納が終了
すると、H領域のソート処理を行う(ステップS10
1)。このH領域のソート処理は、データメモリ10a
からH領域に格納されたZ値データが1〜Nのデータ番
号順に順に読み出され、分布カウントメモリ11aの分
布カウントスタート領域とエンド領域に向け出力され
る。
【0193】この実施例において、Z値データの読み出
しは、データ番号ポインタ読み出しアドレスとしてデー
タ番号が1〜Nの順で順次出力されることにより行われ
る。そして、データ番号によりアドレスが指定される
と、指定されたZ値データのH領域から分布カウントメ
モリ11aの分布カウントスタート領域とエンド領域に
向けZ値データが読み出される。
【0194】分布カウントメモリ11aの分布カウント
スタート領域とエンド領域は、Z値データが取り得る値
の全てに1対1に対応する領域を有する。
【0195】この実施例のように、Z値データのHビッ
ト、Mビットが5ビットで構成されている場合には、
0,1,2…31の合計32個の値を取り得る。また、
Z値データのLビットが6ビットで構成されている場合
には、0,1,2…63の合計64個の値を取り得る。
【0196】従って、分布カウントメモリ11aのH、
M領域の分布カウントスタート領域とエンド領域は0,
1,2…31の各アドレスで指定される32個の記憶エ
リアが夫々設けられており、分布カウントメモリ11a
のL領域の分布カウントスタート領域とエンド領域は
0,1,2…63の各アドレスで指定される64個の記
憶エリアが夫々設けられている。
【0197】分布カウントメモリ11aの分布カウント
スタート領域とエンド領域には、データメモリ10aか
ら出力されるZ値データのデータ番号が書き込まれる。
この実施例において、データ番号は1〜Nで表され、そ
の最大値はNである。
【0198】そして、データメモリ10aから分布カウ
ントスタート領域とエンド領域にZ値が入力されると、
これら分布カウントスタート領域とエンド領域は対応す
るアドレスポインタによって指定される記憶領域にその
Z値のデータ番号の書き込みを行う。
【0199】前述の実施例と同様に、この実施例におい
て、データの書き込みは次のように行われる。即ち、デ
ータメモリ10aから、データ番号ポインタによって指
定されるデータ番号のZ値データが出力されると、その
Z値データはアドレスポインタにセットされ、このアド
レスポインタからは、セットされたZ値データが書き込
みアドレスとして出力される。そして、この書き込みア
ドレスによって指定される分布カウントスタート領域と
エンド領域に、データ番号ポインタによって指定される
データ番号(Z値に対応するデータ番号)が書き込まれ
ることになる。
【0200】ここにおいて、分布カウントスタート領域
は一旦データ番号が記憶されると、データメモリ10a
から同じ値の新たなZ値データが順次出力されても、新
たなデータ番号は重ね書きされないように構成されてい
る。これに対して、分布カウントエンド領域は、一旦デ
ータ番号が記憶されても、次にデータメモリ10から同
じ値のZ値が出力されると、そのZ値のデータ番号が新
たに更新記憶されるように構成されている。
【0201】分布カウントスタート領域には、このZ値
が始めて出現した時のデータ番号が記憶される。これに
対し分布カウントエンド領域には、各Z値が最後に出現
した時のデータ番号が記憶されることになる。
【0202】このため分布カウントスタート領域及びエ
ンド領域の同じアドレスには、データメモリ10aから
同じ値のZ値が一回しか出力されない場合には同じデー
タ番号が書き込まれることになるが、同じ値のZ値が複
数回にわたって出力されると、最終的には異なるデータ
番号が記憶されることになる。
【0203】従って、分布カウントメモリ11aの分布
カウントエンド領域の値が、複数回にわたって更新記録
された場合に、この更新がどのように行なわれたかが判
れば、基準値データを昇順又は降順にソーティングした
時の各基準値データのデータ番号の並びが判明する。
【0204】このためデータメモリ10a内には新しい
ポインタ出力するデータ番号に基づき0〜Nの順にアド
レスが指定されるNEXTポインタ領域が設けられてい
る。
【0205】そして,分布カウントエンド領域の内容が
更新記録されると、更新記録前のデータ番号がアドレス
ポインタに設定されNEXTポインタ領域のアドレス指
定が行われる。そして、指定されたNEXTポインタ領
域には更新後の新たなデータ番号が書き込まれる。
【0206】このようにして分布カウントエンド領域が
更新記録されるとその更新履歴はデータメモリ内のポイ
ンタ領域に順次書き込まれることになる。
【0207】以上説明したようにこの実施例によれば、
データメモリ10からデータ番号順にZ値データが出力
されると、出力されたZ値データを書き込みアドレスと
して、そのデータ番号が分布カウントスタート領域、分
布カウントエンド領域に書き込まれ更にこれに付随して
分布カウントエンド領域からデータメモリ10のNEX
Tポインタ領域へのデータ転送書き込みが行われる。
【0208】このようなデータ転送が開始されると、H
ソート回路15aは次のような転送制御を行う。
【0209】先ず分布カウントエンド領域に記憶された
データ番号がアドレス生成回路13にセットされる。次
に、このアドレス生成回路13によりアドレス指定され
るNEXTポインタ領域にその指定アドレスと所定の対
応関係にある分布カウントスタート領域のデータ番号を
書き込む。
【0210】このようなデータ番号の書き込みはデータ
を昇順にソーティングする場合と、降順にソーティング
する場合とでは若干異なるが、ここではデータを昇順に
ソーティングする場合を例にとり説明する。
【0211】例えば、アドレス0で指定される分布カウ
ントエンド領域にデータ番号が記憶されている時には、
まずアドレス0番地に記憶されているデータ番号がアド
レスポインタにセットされる。
【0212】そして、次にアドレス1で指定される分布
カウントスタート領域からデータ番号が読み出され、こ
のデータ番号が、アドレスポインタで指定されるデータ
メモリ10のNEXTポインタ領域に書き込まれる。
【0213】また、この時アドレス1で指定される分布
カウントスタート領域にデータ番号が記憶されていない
場合には、アドレス2で指定される記憶エリアからデー
タ番号を読み出し、データメモリ10aのNEXTポイ
ンタ領域に書き込む。また、アドレス2で指定される分
布カウントスタート領域にもデータ番号が記憶されてい
ない場合には、データが見つかるまで同様にアドレス
3、アドレス4、………と順次アドレスをインクリメン
トしていく。
【0214】そしてアドレスKで指定される記憶エリア
からデータ番号が読み出されると、このデータ番号がア
ドレスポインタで指定されるデータメモリ10aのNE
XTポインタ領域に書き込まれる。
【0215】このような読み出し書き込みが完了する
と、次にアドレスKで指定される分布カウントエンド領
域からデータ番号が読み出され、それを書き込みアドレ
スとして前回と同様ようにしてデータメモリ10aのN
EXTポインタ領域へのデータの書き込みが行われる。
【0216】この実施例における装置は、このようなチ
ェインデータ番号を記録するNEXTポインタ領域への
データの書き込みを繰り返して行う。そしてこのような
一連の書き込み動作が終了すると、データメモリ10a
のNEXTポインタ領域の記憶エリアには基準値データ
のH領域すなわち上位5ビットのデータの昇順に連鎖す
るようにデータ番号が記憶されることになる。
【0217】データメモリ10aの上位5ビット、すな
わちH領域のソーティングが終了すると、そのソート結
果をソートメモリ12aのH領域にソートアドレスとし
て格納する。
【0218】そして、この実施例においてはクリップ制
御回路16によって指定された領域があるか否かが判断
される(ステップS102)。例えばH側の0〜Nまで
の範囲で昇順にソーティング処理され、そして、そのH
側の0番地のデータを読み出し、そのデータがクリッピ
ングされるか否か判断される。そして、クリッピングさ
れる場合には、そのデータの中位5ビットすなわちM領
域のソーティングは行わず、次のH領域のZ値に対応す
る処理が行われる。
【0219】そのソートメモリ12aのH領域のソート
アドレス領域から読み出したアドレスがデータメモリ1
0のデータ番号に相当する。今、H領域より0番地のデ
ータが読み出されその領域がクリッピング対象とならな
い場合にはM領域のソーティング処理が行われる(ステ
ップS103)。そして、前述したH側のソート処理と
同様にM側のソート処理を行う。全てのデータに対して
ソートされたか否か判断し(ステップS103)、全て
のデータがソーティングされるまでクリッピングが必要
か否かという処理判断からM側ソートを繰り返す。
【0220】続いて、この実施例においてはクリップ制
御回路16によって指定された領域があるか否かが判断
される(ステップS105)。例えばM側の0〜Nまで
の範囲で昇順にソーティング処理され、そして、そのM
側の0番地のデータを読み出し、そのデータがクリッピ
ングされるか否か判断される。そして、クリッピングさ
れる場合には、そのデータの下位6ビットすなわちL領
域のソーティングは行わず、次のM領域のZ値に対応す
る処理が行われる。
【0221】その後、L側ソート処理回路18におい
て、前述したデータメモリ10の今度はL領域に格納さ
れたZ値データが読み出され、そのデータが分布カウン
トメモリ11aの分布カウントスタート領域及び分布カ
ウントエンド領域に格納され、同じくデータメモリ10
のNEXTポインタ領域、すなわちL領域のNEXTポ
インタ領域に格納される。この動作は前述のH領域、M
領域のソート処理と同様にして行われる。すなわちH領
域、M領域の処理はデータメモリ10aのH領域、M領
域、分布カウントメモリ11aの分布カウントスタート
領域、分布カウントエンド領域のH領域、M領域を使
い、データメモリ10のNEXTポインタ領域へチェィ
ンデータの書き込みが行われる。これに対して、L領域
のデータについては、データメモリ10aのL領域のZ
値データを読み出し、そのデータに従って分布カウント
メモリ11aのL領域の分布カウントスタート領域、分
布カウントエンド領域に夫々データ番号を格納し、そし
てデータメモリ10のL領域のNEXTポインタ領域
に、そのチェィンデータを書き込むことにより、ソート
処理が行われる。
【0222】即ち、この発明においては、まずH領域す
なわちデータの上位5ビットに関してソーティング処理
を行い、そして、そのソーティング処理が行われた段階
でクリッピングする必要があるデータか否かを判断し、
そのデータがクリッピングする必要がないものに関し、
次のM側ソート処理を行うものである。更に、このソー
ティング処理が行われた段階でクリッピングする必要が
あるデータか否かを判断し、そのデータがクリッピング
する必要がないものに関し、この次のL側ソート処理を
行うものである。そして、L側ソート処理も同じくH側
領域、M側領域と同様の処理を行ってソーティングが完
了するわけである。そしてソーティングされた結果を同
じくソートメモリ12aのL領域のソートアドレス領域
に書き込んで(ステップS107)、そして、全てのデ
ータに対してソートされたか否か判断し(ステップS1
08)、全てのデータがソーティングされるまでクリッ
ピングが必要か否かという処理判断からL側ソートを繰
り返す。
【0223】全てのソーティングが終了すると、動作が
終了するものである。
【0224】次に、このようなソーティング回路を用い
て画像情報供給装置5から出力される12個のZ値デー
タを昇順にソーティングする場合を例に取り説明する。
【0225】この実施例においては、12個のZ値デー
タをソーティング対象とするためデータメモリ10は1
〜12のデータ番号で指定されるH領域のZ値領域とL
領域のZ値領域を有するように形成すれば良い。また、
Z値データは前述したように、即ちH領域に5ビット、
M領域に5ビット、L領域に6ビットのデータで構成さ
れている。
【0226】まず画像情報供給装置5からデータメモリ
10aに向け、上位の5ビット、即ちH値のデータが、
1、2、4、5、3、0、0、7、9、1、2、1の順
で入力されると、入力されたZ値データは順次1、2、
3…のデータ番号をアドレスするデータメモリ10aの
H領域の記憶エリアに書き込まれることになる。
【0227】中位5ビット、即ちM値のデータが1、
2、3、4、6、7、8、2、3、1、5、6また下位
6ビット、即ちL領域のデータが5、6、3、1、5、
4、5、1、1、2、7、5の順で入力されると、入力
されたZ値データはデータメモリ10aの順次M領域及
びL領域の1、2、3、4、5…のデータ番号をアドレ
スする記憶エリアに書き込まれることになる。
【0228】このようにして、データメモリ10a内の
H領域、M領域、L領域にZ値データが書き込まれる
と、このZ値データのソーティングをZ値データそのも
のではなくデータ番号を用いて行う。
【0229】このようにすることにより、ソーティング
対象となるZ値データの桁数が多い場合でも、このZ値
データのソーティングを簡単な回路で高速に行うことが
できる。
【0230】この実施例においては、このようにZ値デ
ータメモリ10a内にZ値が書き込まれると、このデー
タメモリ10aからそのデータ番号順にZ値が順次読み
出される。
【0231】このようにデータメモリ10a内にZ値デ
ータが書き込まれると、このデータメモリ10aからデ
ータ番号順に順次読み出される。まずH領域のみ読み出
され、図61〜図64に示すように、H領域のソート処
理が行なわれる。
【0232】このようにして、Z値データが読み出され
ると、読み出されたZ値をアドレスとして対応するデー
タ番号が分布カウントメモリ11aの分布カウントスタ
ート領域及びエンド領域に書き込まれる。まず、図61
に示すように、従ってデータメモリ10aからまずデー
タ番号1、即ちアドレス1で特定されるZ値データ1が
出力されると、このZ値データ1をアドレスとして分布
カウントスタート領域及びエンド領域にデータ番号1が
書き込まれる。
【0233】H領域のソート処理が続行され、図62に
示すデータ番号6で特定されるZ値データ0をアドレス
として、分布カウントスタート領域及び分布カウントエ
ンド領域にデータ番号6が入力される。続いて、データ
番号7で特定されるZ値データ0が出力されると、この
Z値データ0をアドレスとして、分布カウントスタート
領域及びエンド領域にデータ番号7が入力される。この
時分布カウントスタート領域には既にデータ番号が書き
込まれているために、新たなデータ番号の書き込みは行
われない。これに対して、分布カウントエンド領域には
前のデータ番号6を新たなデータ番号7に更新記録す
る。このためデータメモリ10aのNEXTポインタ領
域には更新前のデータ番号6をアドレスとして、更新後
のデータ番号7が書き込まれることになる。
【0234】次に、図63に示すように、データメモリ
10aからデータ番号8で特定されるZ値データ1が読
み出される。このZ値データ1をアドレスとして分布カ
ウントスタート領域及び分布カウントエンド領域にその
データが書き込まれる。この時分布カウントスタート領
域には既にデータ番号が書き込まれているため、新たな
データ番号の書き込みは行われず、これに対しエンド領
域には前のデータ1を新たなデータ番号8に書替え、更
新記録する。そしてデータメモリ10aのNEXTポイ
ンタ領域には更新前のデータ番号1をアドレスとして更
新後データ番号8が書き込まれる。
【0235】以下同様にして、データメモリ10aのデ
ータ番号9〜12までデータを読み出し、そして分布カ
ウントスタート領域及び分布カウントエンド領域に夫々
データを書き込むと共に、既に分布カウントスタート領
域にデータが書き込まれている場合には、そのデータは
書き替えずに更新前のデータの番号をアドレスをして、
更新後のデータ番号をNEXTポインタ領域に書き込ん
でいく。このようにH領域のみソートした結果を図64
に示す。
【0236】このような一連の書き込み作業により、Z
値データをアドレスとする分布カウントスタート領域に
は各Z値が最初に出現した時のデータ番号が書き込まれ
ることになる。
【0237】またZ値データをアドレスとする分布カウ
ントエンド領域には各Z値の値が最後に出現した時のデ
ータ番号が記憶されることになる。
【0238】更に、データ番号をアドレスとするNEX
Tポインタ領域にはカウントエンド領域のデータが更新
記憶される毎に、更新前のデータ番号をアドレスとして
更新後のデータ番号が順次書き込まれることになる。従
って、データメモリ10aから同じZ値データが複数回
出力されると、このNEXTポインタ領域にはそのZ値
データがどのようなデータ番号順に出力されたかの履歴
が記録されることになる。
【0239】次に、H領域のZ値が0の値のものに対し
て、M領域のソートを行う場合につき、図66を参照し
て説明する。まずH領域の分布カウントメモリ11aの
分布カウントスタート領域のアドレス0の領域のデータ
番号を読み出す。この場合アドレス0は、データ番号は
6であるのでソートアドレスに6が書き込まれる。
【0240】そして、Hデータ6の領域のNEXTポイ
ンタを読み出し、そのNEXTポインタ領域が7を示す
ので、そのデータ番号7のNEXTポインタを読みだ
す。この場合7のNEXTポインタには何も書かれてい
ないので、ソートアドレスにはそのデータ番号7を書き
込み、H領域0に相当する全てのデータが書き込まれる
ことになり、カウンタ値(CNTX)にソートアドレス
のH領域のデータ数2がセットされ、M領域の処理に移
る。
【0241】まずデータ番号6のデータメモリ10aで
特定されるM値のZ値データ7が読み出されると、この
Z値データ7をアドレスとする分布カウントメモリ11
aのM領域のアドレスとして分布カウントスタート領域
に6を分布カウントエンド領域に6を夫々書き込み、デ
ータ番号7のデータメモリ10aで特定されるM値のZ
値データ8が読み出されると、このZ値データ8をアド
レスとする分布カウントメモリ11aのM領域のアドレ
スとして分布カウントスタート領域に7を分布カウント
エンド領域に7を夫々書き込む。
【0242】次にソートアドレスのM領域からデータ番
号7で指定されるデータ番号が出力される。H領域0、
M領域7に対するM領域のソートを終了し、CNTX2
にソートアドレスM領域のデータ数7をセットし、L領
域の処理に移る。
【0243】L領域のソートとして、データ番号6で指
定されるZ値データ4が読み出されると、このZ値デー
タ4を分布カウントメモリ11aのL領域のアドレスと
して分布カウントスタート領域に6を分布カウントエン
ド領域に6を書き込み、ソートアドレスL領域にデータ
番号6を書き込み、H領域0、M領域7の全てのデータ
が書き込まれたことになり、CNTX3にソートアドレ
スL領域のデータ数1をセットする。次に、ソートアド
レスのM領域からデータバン号8でしていされるデータ
番号7が出力されると、NEXTポインタに何も書かれ
ていないので、H領域0、M領域8に対するM領域のソ
ートを終了し、CNTX2にソートアドレスM領域のデ
ータ数1をセットし、L領域の処理に移る。
【0244】続いて、図66に示すように、H領域0、
M領域8のL領域のソートとして、データ番号7で指定
されるZ値データ5が読み出されると、このZ値データ
5を分布カウントメモリ11aのL領域のアドレスとし
て分布カウントスタート領域に7を分布カウントエンド
領域に7を書き込み、ソートアドレスL領域にデータ番
号7を書き込み、H領域0、M領域8の全てのデータが
書き込まれたことになり、CNTX3にソートアドレス
L領域のデータ数2をセットする。
【0245】次にH領域が1の場合のM領域のソートに
つき図68を参照にして説明する。
【0246】H領域の分布カウントスタート領域のアド
レス1で指定するデータ番号1をソートアドレス1に書
き込み、そしてそのアドレス1に書き込まれているNE
XTポインタを読み出す。この場合NEXTポインタに
は10が書き込まれているので、10のアドレスをソー
トアドレスに書き込むと共にアドレス10に書き込まれ
たNEXTポインタ領域のデータ番号12を読み出す。
そしてデータ番号12をソートアドレスに書き込む。そ
して、アドレスのNEXTポインタには何も書き込まれ
ていないため、これでH領域1に相当する全てのデータ
がソートアドレスに書き込まれ、CNTXにソートアド
レスH領域のデータ数3をセットし、M領域の処理へ移
る。
【0247】そして、まずソートアドレスH領域のアド
レス1に書き込まれたデータ番号1のM領域を読み出
す。データ番号1に書き込まれたMデータ1をアドレス
とする分布カウントスタート領域1にデータ番号1を書
き込む。そして、ソートアドレスH領域のアドレス2に
書き込まれたデータ番号10のL領域を読み出す。アド
レス10を示すZ値1をアドレスとする分布カウントス
タート領域及び分布カウントエンド領域にデータ番号8
を書き込む。分布カウントスタート領域には既にデータ
が書き込まれているので書き替えられず、これに対し
て、分布カウントエンド領域には前のデータ番号1を新
たなデータ番号10に書き替える。このためデータメモ
リ10aのNEXTポインタ領域には更新前のデータ番
号1をアドレスとして、更新後のデータ番号10が書き
込まれる。
【0248】同様にL領域ソート処理を行う。
【0249】続いて、図68に示すように、ソートアド
レス12に示すM領域のデータ値を呼び出す。M領域の
データ値のデータ番号は6であるのでそれをアドレスと
して、そのデータを分布カウンタスタート領域及びエン
ド領域に書き込む。
【0250】また、ソートアドレスのM領域には、アド
レス1に分布カウントスタート領域のアドレス6に書き
込まれているデータ12を、このエンド領域は12を示
しているので、カウンタCNTX2に1がセットされ、
H領域1に対するM領域のソート処理が終了する。同様
にL領域ソート処理を行う。そして、図69には、H領
域10の場合、すなわち全てのソート処理が終了した結
果を示す。そして、ソートメモリ12aのL領域のソー
トアドレスのアドレス1から順に、データの昇順にソー
ト処理が終了して書き込まれる。すなわち、ソートメモ
リ12のL領域のアドレス1から順次読み出すことによ
り、Z値の小さい順にソーティングされたデータを読み
出すことができる。
【0251】図54は、この第2の実施例のソーティン
グ処理装置の具体的実施例を示すブロック図である。
【0252】図54において、52は第3カウンタであ
り、分布カウントメモリ11aのL領域とフラグ2のア
クセスを行う。53は第1カウンタであり、分布カウン
トメモリ11aのH領域とフラグ1のアクセスを行う。
7は第6カウンタであり、分布カウントメモリ11aの
M領域とフラグ3のアクセスを行う。54はマルチプレ
クサであり、第1、第3カウンタ53、52及びデータ
メモリ10aからマルチプレクサ68を介して入力され
るデータ入力の中から所定のデータを選択し、第1レジ
スタ58へ与える。
【0253】67は第3レジスタであり、分布カウント
メモリ11aから読み出されたH領域、M領域、L領域
からのデータが与えられる。この第3レジスタ67から
マルチプレクサ59にデータが転送される。このマルチ
プレクサ59には、第2アドレス変換部66からの出力
及びマルチプレクサ64で選択されて与えられる第2、
第4、第5カウンタ61、62、63からの出力が与え
られる。そして、マルチプレクサ59は入力された各デ
ータの中から所定のデータを選択して第2レジスタ55
に与える。
【0254】第2レジスタ55に与えられたデータはデ
ィマルチプレクサ69を介して、データメモリ10a及
びソートメモリ12の所定領域に転送される。
【0255】第1アドレス変換部56は、マリィプレク
サ60より送られてくるデータに基づきデータメモリ1
0a及びソートメモリ12のH領域(上位アドレス)、
M領域(中位アドレス)、L領域(下位アドレス)のア
ドレスを出力する。
【0256】この第1アドレス変換部56は、前述の第
1の実施例と同様に構成され、図15に示すように、レ
ジスタ71、73、74、75とマルチプレクサ72を
備え、マルチプレクサ60より送られてくるデータを下
位アドレスとして出力し、コントローラ65により、レ
ジスタ73に与えられるZ値アドレス値、レジスタ74
に与えられるNEXTポインタアドレス値、レジスタ7
5に与えられるソートアドレス値をマルチプレクサ72
で選択することにより、上位アドレスとしてZ値アドレ
ス、NEXTポインタアドレス、ソートアドレス値が選
択して出力される。
【0257】第2アドレス変換部66は、第1レジスタ
58より送られてくるデータに基づき分布カウントメモ
リ11aのH領域(上位アドレス)、M領域(中位アド
レス)、L領域(下位アドレス)のアドレスを出力す
る。
【0258】この第2アドレス変換部66は、前述した
実施例と同じく図16に示すように、レジスタ80、8
2、83とマルチプレクサ81を備え、第1レジスタ5
8より送られてくるデータを下位アドレスとして出力
し、コントローラ55により、レジスタ82に与えられ
る分布カウントスタート領域、レジスタ83に与えられ
る分布カウントエンド領域の値を上位アドレスとしてマ
ルチプレクサ81で選択して出力する。この第2アドレ
ス変換部66は第1レジスタ58から転送されたデータ
を分布カウンタメモリ11の下位アドレスとして、H/
M/L領域指定と分布カウントスタートアドレス/分布
カウントエンドアドレスの切り替えを行う。
【0259】57はフラグ検出部であり、第1レジスタ
58の出力に基づいて、分布カウントメモリ11aがフ
ラグを持っているか否か検出する。
【0260】このフラグ検出部57は,図55に示すよ
うに、0から31のフリップフロップ群153、16
3、173、183を4群持ち、0から63のフリップ
フロップ群193、203フリップフラグ群を2群持
ち、フリップフロップ群153は分布カウントメモリ1
1aのH領域のフラグ1Lに対応し、フリップフロップ
群173は分布カウントメモリ11aのM領域のフラグ
3Lに対応し、フリップフロップ群193は分布カウン
トメモリ11aのL領域のフラグ2Lに対応し、0から
31又は0から63のそれぞれの分布カウントメモリ1
1aが値を持っているかを示す。即ちコントローラ65
よりの出力C1がマルチプレクサ150を介してデコー
ダ151又は171に与えられ、デコーダ151、17
1又は191にてデコードされたフリップフロップ群1
53、173又は193がセットされているかにより、
そのフリップフロップからの出力がセレクタ152、1
72又は192にて選択され、マルチプレクサ160を
介して出力される。
【0261】また、フリップフロップ群163は分布カ
ウントメモリ11aのフラグ1Hに,フリップフロップ
群183は分布カウントメモリ11aのフラグ2Hに、
フリップフロップ群183は分布カウントメモリ11a
のフラグ3Hに対応し、そのアドレス値が1つだけか、
複数かを示す。即ちコントローラ65よりの出力C1が
マルチプレクサ150を介してデコーダ161、181
又は201に与えられ、デコーダ161、181又は2
01にてデコードされたフリップフロップ群163、1
83又は203がセットされているかにより、そのフリ
ップフロップからの出力がセレクタ162、182又は
202にて選択され、マルチプレクサ160を介して出
力される。
【0262】そして、コントローラ65からのC1信号
により、H領域を選択し、第3レジスタ67の値によ
り、上記フリップフロップを選択し、コントローラ65
からのW信号により、フリップフロップのセットが行な
われる。
【0263】61は第2カウンタであり、データメモリ
10aのH領域のZ値領域とソートメモリ12のソート
アドレス領域をアクセスする。
【0264】62は第4カウンタであり、ソートメモリ
12のH領域のソートアドレス領域をアクセスする。
【0265】63は第5カウンタであり、ソートメモリ
12のL領域のソートアドレス領域をアクセスする。
【0266】72は第7カウンタであり、ソートメモリ
12のM領域のソートアドレス領域をアクセスする。
【0267】70はクリップフラグ検出部であり、図5
6に示すように、0から31のフリップフロップ群70
3を持ち、フリップフロップにセットされるフラグHC
LはH領域の分布カウントメモリ11aに対応し、フリ
ップフロップが”1”であれば、その値に対応する領域
は処理する必要がないため、この値を持つアドレスには
M領域のソート処理を行わないように制御する。フラグ
MCLには、M領域の分布カウントメモリ11aに対応
し、フリップフロップが”1”であればその値に対応す
る領域は処理する必要がないため、この値で持ってアド
レスにはL領域のソート処理を行わないように制御す
る。即ち入力されたデータをデコーダ702でデコード
し、その対応するフリップフロップ群703のフリップ
フロップの出力がセレクタ704のより出力され、フリ
ップフロップの出力が”1”であれば、その値に対応す
る領域は処理する必要がないため、この値を持つアドレ
スにはL領域のソート処理を行わないように制御する。
【0268】
【発明の効果】この発明によれば、基準値データを2つ
以上のデータ群に分割してソート処理を行う。即ち、上
位側の基準値データに対して、分布カウントソートを行
う。基準値データのアドレスの小さいものから、同じ値
の基準値データのデータ群に対して下位側の基準値デー
タだけの分布ソートを行い、ソートされたデータをソー
トメモリのアドレスに順次書き込むことにより、大きな
ビット長のデータに対しても高速にソートが実行でき
る。
【0269】また、この発明は、上位側の基準値データ
のソートの終了後、クリッピング対応のアドレスの上位
桁の基準値データに対しては、下位桁の基準値データの
ソートを省略するように構成することができるので、、
任意の基準値データのポリゴンを除外する3Dクリッピ
ング、3Dピッキングを余分なデータ転送を行うことな
く可能となり、3Dクリッピング、3Dピッキング等を
高速にできる。基準値データを上位桁と下位桁に分割し
てソート処理を行う。
【図面の簡単な説明】
【図1】この発明が適用される3次元画像処理装置の全
体構成を示すブロック図である。
【図2】この発明のソーティング装置の第1の実施例を
示すブロック図である。
【図3】この発明の第1の実施例のソーティング処理動
作を示すフローチャートである。
【図4】ソーティング処理の概念を示す模式図である。
【図5】この発明の第1の実施例に用いられるデータメ
モリとソートメモリのアドレス領域を示す模式図であ
る。
【図6】この発明の第1の実施例に用いられる分布カウ
ントメモリのアドレス領域を示す模式図である。
【図7】この発明の第1の実施例のソーティング装置の
具体的構成例を示すブロック図である。
【図8】図7に示すこの発明のソーティング装置の動作
を説明するフローチャートである。
【図9】図7に示すこの発明のソーティング装置の動作
を説明するフローチャートである。
【図10】図7に示すこの発明のソーティング装置の動
作を説明するフローチャートである。
【図11】図7に示すこの発明のソーティング装置の動
作を説明するフローチャートである。
【図12】図7に示すこの発明のソーティング装置の動
作を説明するフローチャートである。
【図13】図7に示すこの発明のソーティング装置の動
作を説明するフローチャートである。
【図14】図7のフラグ検出部の具体的回路図である。
【図15】図7の第1アドレス変換部の具体的回路図で
ある。
【図16】図7の第2アドレス変換部の具体的回路図で
ある。
【図17】図7のクリップフラグ検出部の具体的回路図
である。
【図18】ソートデータの例を示す模式図である。
【図19】H側ソートデータ長8ビット、L側ソートデ
ータ長8ビットのデータ数16の場合のデータメモリ、
分布カウントメモリ及びソートメモリの格納状態を示す
模式図である。
【図20】H領域のデータメモリのアドレス1に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図21】H領域のデータメモリのアドレス2に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図22】H領域のデータメモリのアドレス3に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図23】H領域のデータメモリのアドレス4に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図24】H領域のデータメモリのアドレス5に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図25】H領域のデータメモリのアドレス6に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図26】H領域のデータメモリのアドレス7に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図27】H領域のデータメモリのアドレス8に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図28】H領域のデータメモリのアドレス9に格納さ
れたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図29】H領域のデータメモリのアドレス10に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図30】H領域のデータメモリのアドレス11に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図31】H領域のデータメモリのアドレス12に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図32】H領域のデータメモリのアドレス13に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図33】H領域のデータメモリのアドレス14に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図34】H領域のデータメモリのアドレス15に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図35】H領域のデータメモリのアドレス16に格納
されたデータを処理した時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図36】H領域で”0”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図37】H領域で”1”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図38】H領域で”2”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図39】H領域で”3”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図40】H領域で”4”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図41】H領域で”5”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図42】H領域で”6”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図43】H領域で”7”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図44】H領域で”9”の値を持つデータだけに対し
てL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図45】H領域で”10”の値を持つデータだけに対
してL領域でソートした時のH側ソートデータ長8ビッ
ト、L側ソートデータ長8ビットのデータ数16の場合
のデータメモリ、分布カウントメモリ及びソートメモリ
の格納状態を示す模式図である。
【図46】Z方向のクリッピングを示す模式図である。
【図47】Z方向のピッキングを示す模式図である。
【図48】Z方向のクリッピングを示す模式図である。
【図49】H領域で”0””1””2”の値を持つもの
に対してクリッピングを行ってソートした例のデータメ
モリ、分布カウントメモリ及びソートメモリの格納状態
を示す模式図である。
【図50】H領域で”0””1””2”の値を持つもの
に対してクリッピングを行ってソートした例を示す模式
図である。
【図51】クリッピングまたはピッキングを行ってソー
トした例を示す模式図である。
【図52】この発明のソーティング装置の第2の実施例
を示すブロック図である。
【図53】この発明の第2の実施例のソーティング処理
動作を示すフローチャートである。
【図54】この発明の第2の実施例のソーティング装置
の具体的構成例を示すブロック図である。
【図55】図54のフラグ検出部の具体的回路図であ
る。
【図56】図54のクリップフラグ検出部の具体的回路
図である。
【図57】この発明に用いられるデータメモリとソート
メモリのアドレス領域を示す模式図である。
【図58】この発明に用いられる分布カウントメモリの
アドレス領域を示す模式図である。
【図59】ソートデータの例を示す模式図である。
【図60】ソート処理の概念を示す模式図である。
【図61】H領域のデータメモリのアドレス1に格納さ
れたデータを処理したのみソートした時のH側ソートデ
ータ長5ビット、M側ソートデータ長5ビット、L側ソ
ートデータ長6ビットのデータ数16の場合のデータメ
モリ、分布カウントメモリ及びソートメモリの格納状態
を示す模式図である。
【図62】H領域のデータメモリのアドレス6に格納さ
れたデータを処理したのみソートした時のH側ソートデ
ータ長5ビット、M側ソートデータ長5ビット、L側ソ
ートデータ長6ビットのデータ数16の場合のデータメ
モリ、分布カウントメモリ及びソートメモリの格納状態
を示す模式図である。
【図63】H領域のデータメモリのアドレス8に格納さ
れたデータを処理したのみソートした時のH側ソートデ
ータ長5ビット、M側ソートデータ長5ビット、L側ソ
ートデータ長6ビットのデータ数16の場合のデータメ
モリ、分布カウントメモリ及びソートメモリの格納状態
を示す模式図である。
【図64】H領域のみソートした時のH側ソートデータ
長5ビット、M側ソートデータ長5ビット、L側ソート
データ長6ビットのデータ数16の場合のデータメモ
リ、分布カウントメモリ及びソートメモリの格納状態を
示す模式図である。
【図65】H領域で”0”の値を持つデータだけに対し
てM,L領域でソートした時のH側ソートデータ長5ビ
ット、M側ソートデータ長5ビット、L側ソートデータ
長6ビットのデータ数16の場合のデータメモリ、分布
カウントメモリ及びソートメモリの格納状態を示す模式
図である。
【図66】H領域で”0”の値を持つデータだけに対し
てM,L領域でソートした時のH側ソートデータ長5ビ
ット、M側ソートデータ長5ビット、L側ソートデータ
長6ビットのデータ数16の場合のデータメモリ、分布
カウントメモリ及びソートメモリの格納状態を示す模式
図である。
【図67】H領域で”1”の値を持つデータだけに対し
てM,L領域でソートした時のH側ソートデータ長5ビ
ット、M側ソートデータ長5ビット、L側ソートデータ
長6ビットのデータ数16の場合のデータメモリ、分布
カウントメモリ及びソートメモリの格納状態を示す模式
図である。
【図68】H領域で”1”の値を持つデータだけに対し
てM,L領域でソートした時のH側ソートデータ長5ビ
ット、M側ソートデータ長5ビット、L側ソートデータ
長6ビットのデータ数16の場合のデータメモリ、分布
カウントメモリ及びソートメモリの格納状態を示す模式
図である。
【図69】H領域で”12”の値を持つデータだけに対
してM,L領域でソートした時のH側ソートデータ長5
ビット、M側ソートデータ長5ビット、L側ソートデー
タ長6ビットのデータ数16の場合のデータメモリ、分
布カウントメモリ及びソートメモリの格納状態を示す模
式図である。
【符号の説明】
10 データメモリ 11 分布カウントメモリ 12 ソートメモリ 15 H領域ソート処理回路 16 L領域ソート処理回路

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 入力される複数の複数桁からなる基準値
    データをソーティングするソーティング装置であって、
    入力される各基準値データに対応したデータ番号を発生
    するデータ番号発生手段と、入力された基準値データを
    2つ以上のデータ群に分割して夫々のデータ番号に対応
    したアドレスに記憶する複数桁の基準値データ記憶領域
    と、分割された各データ群の基準値データに基づきアド
    レスが指定される指定されるデータ群に対応した記憶領
    域を有し、各領域に対応する各の基準値データが最初に
    入力されたとき、この記憶領域にデータ番号発生手段の
    発生するデータ番号を記憶するカウントスタート領域
    と、前記基準値データに基づきアドレスが指定される第
    2の記憶領域を有し、各領域に対応する前記基準値デー
    タが入力される毎に、この記憶領域にデータ番号発生手
    段の発生するデータ番号を更新記憶するカウントエンド
    領域と、データ番号に基づきアドレスが指定される次の
    アドレスを指定するためのポインタ領域と、前記カウン
    トエンド領域のデータ番号が更新される毎に、更新前の
    データ番号で指定されるポインタ領域に、更新される新
    たなデータ番後を書き込む第1の制御手段と、ソート結
    果を格納する前記分割されたデータ群に対応したソート
    アドレス領域を有するソートメモリと、前記分割された
    データ群の上位側の基準値データに従い上位側のカウン
    トスタート領域及び上位側のカウントエンド領域へのデ
    ータ番号の書き込み終了後、上位側のカウントスタート
    領域に書き込まれたデータ番号、上位側のポインタ領域
    に書き込まれたデータ番号並びに上位側のカウントエン
    ド領域に書き込まれたデータ番号を連鎖づけてソートメ
    モリに書き込む第2の制御手段と、前記上位側の基準値
    データのソートの終了後、上位側の基準値データの同値
    のデータの前記上位側の基準値データに対応する下位側
    の基準値データ記憶領域からの基準値データを下位側の
    カウントスタート領域及び下位側のカウントエンド領域
    へ書き込み終了後、下位側の桁カウントスタート領域に
    書き込まれたデータ番号、下位側のポインタ領域に書き
    込まれたデータ番号並びに下位側のカウントエンド領域
    に書き込まれたデータ番号を連鎖づけてソートメモリに
    書き込む第3の制御手段と、を備えてなるソーティング
    装置。
  2. 【請求項2】 前記カウントスタート領域に夫々対応す
    る第1のフラグ領域と、前記カウントエンド領域に夫々
    対応する第2のフラグ領域とを備え、前記第1のフラグ
    領域はカウントスタート領域にデータが格納されている
    場合にセットされ、第2のフラグ領域はカウントエンド
    領域のデータが更新されている場合にセットされること
    を特徴とする請求項1に記載のソーティング装置。
  3. 【請求項3】 上位側の基準値データに基づくアドレス
    に対応するフラグ群を有し、クリッピング又はピッキン
    グ処理を行なう領域に対応したアドレスの上記フラグ群
    のフラグを設定する手段を備え、上位側の基準値データ
    のソートの終了後、クリッピング対応のアドレスの上位
    側の基準値データに対しては、第3の制御手段は下位側
    の基準値データのソートを省略することを特徴とする請
    求項1又は2記載のソーティング装置。
  4. 【請求項4】 入力された基準値データを上位桁と下位
    桁と2つのデータ群に分割することを特徴とする請求項
    1ないし3のいずれかに記載のソーティング装置。
  5. 【請求項5】 入力された基準値データを上位桁、中位
    桁、下位桁と3つのデータ群に分割することを特徴とす
    る請求項1ないし3のいずれかに記載のソーティング装
    置。
  6. 【請求項6】 入力される複数の複数桁からなる基準値
    データをソーティングするソーティング装置であって、
    入力される各基準値データに対応したデータ番号を発生
    するデータ番号発生手段と、入力された基準値データを
    上位桁と下位桁のデータに分割して夫々のデータ番号に
    対応したアドレスに記憶する上位桁及び下位桁の基準値
    データ記憶領域と、上位桁の基準値データに基づきアド
    レスが指定される第1の記憶領域を有し、各領域に対応
    する上位桁の基準値データが最初に入力されたとき、こ
    の記憶領域にデータ番号発生手段の発生するデータ番号
    を記憶する上位桁カウントスタート領域と、前記基準値
    データに基づきアドレスが指定される第2の記憶領域を
    有し、各領域に対応する上位桁の基準値データが入力さ
    れる毎に、この記憶領域にデータ番号発生手段の発生す
    るデータ番号を更新記憶する上位桁カウントエンド領域
    と、データ番号に基づきアドレスが指定される次のアド
    レスを指定するための上位桁ポインタ領域と、下位桁の
    基準値データに基づきアドレスが指定される第3の記憶
    領域を有し、各領域に対応する下位桁の基準値データが
    最初に入力されたとき、この記憶領域にデータ番号発生
    手段の発生するデータ番号を記憶する下位桁カウントス
    タート領域と、前記基準値データに基づきアドレスが指
    定される第4の記憶領域を有し、各領域に対応する下位
    桁の基準値データが入力される毎に、この記憶領域にデ
    ータ番号発生手段の発生するデータ番号を更新記憶する
    下位桁カウントエンド領域と、データ番号に基づきアド
    レスが指定される次のアドレスを指定するための下位桁
    ポインタ領域と、前記上行桁又は下位桁カウントエンド
    領域のデータ番号が更新される毎に、更新前のデータ番
    号で指定される上位桁又は下位桁ポインタ領域に、更新
    される新たなデータ番後を書き込む第1の制御手段と、
    ソート結果を格納する上位桁及び下位桁に対応したソー
    トアドレス領域を有するソートメモリと、前記上位桁の
    基準値データに従い上位桁カウントスタート領域及び上
    位桁カウントエンド領域へのデータ番号の書き込み終了
    後、上位桁カウントスタート領域に書き込まれたデータ
    番号、上位桁ポインタ領域に書き込まれたデータ番号並
    びに上位桁カウントエンド領域に書き込まれたデータ番
    号を連鎖づけてソートメモリに書き込む第2の制御手段
    と、前記上位桁の基準値データのソートの終了後、上位
    桁の基準値データの同値のデータの前記上位桁の基準値
    データに対応する下位桁基準値データ記憶領域からの基
    準値データを下位桁カウントスタート領域及び下位桁カ
    ウントエンド領域へ書き込み終了後、下位桁カウントス
    タート領域に書き込まれたデータ番号、下位桁ポインタ
    領域に書き込まれたデータ番号並びに下位桁カウントエ
    ンド領域に書き込まれたデータ番号を連鎖づけてソート
    メモリに書き込む第3のの制御手段と、を備えてなるソ
    ーティング装置。
  7. 【請求項7】 上位桁及び下位桁カウントスタート領域
    に夫々対応する第1のフラグ領域と、上位桁及び下位桁
    カウントエンド領域に夫々対応する第2のフラグ領域と
    を備え、前記第1のフラグ領域はカウントスタート領域
    にデータが格納されている場合にセットされ、第2のフ
    ラグ領域はカウントエンド領域のデータが更新されてい
    る場合にセットされることを特徴とする請求項6に記載
    のソーティング装置。
  8. 【請求項8】 上位桁の基準値データに基づくアドレス
    に対応するフラグ群を有し、クリッピング又はピッキン
    グ処理を行なう領域に対応したアドレスの上記フラグ群
    のフラグを設定する手段を備え、上位桁の基準値データ
    のソートの終了後、クリッピング対応のアドレスの上位
    桁の基準値データに対しては、第3の制御手段は下位桁
    の基準値データのソートを省略することを特徴とする請
    求項6又は7に記載のソーティング装置。
JP03415892A 1991-01-29 1992-01-25 ソーティング装置 Expired - Fee Related JP3210053B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP03415892A JP3210053B2 (ja) 1991-01-29 1992-01-25 ソーティング装置
US07/978,925 US5465371A (en) 1991-01-29 1992-11-18 Sorter for sorting data based on a plurality of reference value data

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2930591 1991-01-29
JP3-323851 1991-11-11
JP3-29305 1991-11-11
JP32385191 1991-11-11
JP03415892A JP3210053B2 (ja) 1991-01-29 1992-01-25 ソーティング装置

Publications (2)

Publication Number Publication Date
JPH05189203A true JPH05189203A (ja) 1993-07-30
JP3210053B2 JP3210053B2 (ja) 2001-09-17

Family

ID=27286505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03415892A Expired - Fee Related JP3210053B2 (ja) 1991-01-29 1992-01-25 ソーティング装置

Country Status (1)

Country Link
JP (1) JP3210053B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07296186A (ja) * 1994-03-01 1995-11-10 Sega Enterp Ltd ポリゴンデータのソート方法及びこれを用いたゲーム装置
WO2006011307A1 (ja) * 2004-07-23 2006-02-02 Matsushita Electric Industrial Co., Ltd. 3次元形状描画装置及び3次元形状描画方法
WO2013105157A1 (ja) * 2012-01-13 2013-07-18 パナソニック株式会社 画像生成装置、画像生成方法、画像生成プログラムおよび集積回路

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07296186A (ja) * 1994-03-01 1995-11-10 Sega Enterp Ltd ポリゴンデータのソート方法及びこれを用いたゲーム装置
WO2006011307A1 (ja) * 2004-07-23 2006-02-02 Matsushita Electric Industrial Co., Ltd. 3次元形状描画装置及び3次元形状描画方法
US7999806B2 (en) 2004-07-23 2011-08-16 Panasonic Corporation Three-dimensional shape drawing device and three-dimensional shape drawing method
WO2013105157A1 (ja) * 2012-01-13 2013-07-18 パナソニック株式会社 画像生成装置、画像生成方法、画像生成プログラムおよび集積回路
US9165400B2 (en) 2012-01-13 2015-10-20 Panasonic Intellectual Property Management Co., Ltd. Image generation apparatus, image generation method, image generation program, and integrated circuit for rendering a target pixel in a target scene by using Z-buffering

Also Published As

Publication number Publication date
JP3210053B2 (ja) 2001-09-17

Similar Documents

Publication Publication Date Title
CA1212185A (en) Scrolling portion of large original memory held image in xy direction
US4648049A (en) Rapid graphics bit mapping circuit and method
JPH0785269B2 (ja) 画像表示方法および装置
JPH08161526A (ja) 画像合成装置及び画像合成方法
JPH03139777A (ja) グラフイツク表示システム及び方法
US5465371A (en) Sorter for sorting data based on a plurality of reference value data
US5551019A (en) Methods and systems for sorting multiplying indexed data
JP2762502B2 (ja) 立体表示方法およびその装置
US5459822A (en) Sorting processor
US5179717A (en) Sorting circuit using first and last buffer memories addressed by reference axis data and chain buffer memory addressed by datum number of the first and last buffer memories
JPH05189203A (ja) ソーティング装置
US5926184A (en) Polygon sorting ordered by grouping according to distances in sorting groups
JP2001209369A (ja) 3次元グラフィック用データの生成方法及び記録媒体
JPH06223199A (ja) 画像合成装置
JP2995984B2 (ja) 3次元波形表示装置
JP3195402B2 (ja) データ整列方法及び装置
JPH0544063B2 (ja)
JPS642953B2 (ja)
JP2000029383A (ja) 図形表示方法、図形表示装置及び記録媒体
JPH02224018A (ja) ソーティング回路
JPH1131236A (ja) ポリゴンデータのソート方法及びこれを用いた画像処理装置
JPH0285977A (ja) 閉領域塗りつぶし表示方法
JPH0112309Y2 (ja)
JP2719246B2 (ja) 三次元グラフィックスを利用した作業機械の重量解析システム
JPH11120376A (ja) 三次元画像処理装置及び方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070713

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees