JP3652754B2 - 減色画像処理装置 - Google Patents
減色画像処理装置 Download PDFInfo
- Publication number
- JP3652754B2 JP3652754B2 JP29679495A JP29679495A JP3652754B2 JP 3652754 B2 JP3652754 B2 JP 3652754B2 JP 29679495 A JP29679495 A JP 29679495A JP 29679495 A JP29679495 A JP 29679495A JP 3652754 B2 JP3652754 B2 JP 3652754B2
- Authority
- JP
- Japan
- Prior art keywords
- color
- replacement
- image processing
- processing apparatus
- pixel 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、画像データの減色処理を実行する減色画像処理装置に関し、特に、高速に減色処理を実行できるようにする減色画像処理装置に関する。
【0002】
減色画像処理装置は、表示色の限られているカラーディスプレイへの画像データの表示を実現するために用意されるものであって、多数の色を用いて表現される画像データの画素値を、用意される代表色の内の最も近いものに置換することで減色処理を実行する。
【0003】
この減色画像処理装置の実用性を高めていくためには、高速に減色処理を実行できるようにする構成を構築していく必要がある。
【0004】
【従来の技術】
原画像の各画素値に最も近い色を代表色の中から選択する方法として、最近隣探索法がある。この最近隣探索法は、原画像の各画素の色を全ての代表色と比較し、その差の最も小さい代表色、すなわち、色空間内でのユークリッド距離が最小となる代表色を置換色として選択する方法である。
【0005】
ここで、図21に示すようなRGB色空間を想定するならば、点x(Rx,Gx,Bx )と点y( Ry,Gy,By ) とのユークリッド距離D(x,y) としては、
D(x,y) =[(Rx −Ry )2+(Gx −Gy )2+(Bx −By )2]1/2
や、
D(x,y) =(Rx −Ry )2+(Gx −Gy )2+(Bx −By )2
や、
D(x,y) =|Rx −Ry |+|Gx −Gy |+|Bx −By |
といったものが用いられている。
【0006】
図22に、最近隣探索法の処理手順を図示する。
すなわち、最近隣探索法では、この処理手順に示すように、n番目の代表色p(n) を選択すると、その代表色p(n) と原画像の画素値sとのユークリッド距離D(s,p(n))を算出し、その新たに算出したユークリッド距離が、変数dmin に格納されるそれまでに算出した最も小さいユークリッド距離よりも小さいのか否かを判断して、小さいことを判断するときには、その新たに算出したユークリッド距離を変数dmin に格納するとともに、そのときのn値を変数nmin に格納してから変数nの値を1つインクリメントし、小さくないことを判断するときには、変数dmin /nmin を更新せずに直ちに変数nの値を1つインクリメントすることを繰り返していくことで、原画像の画素値に最も近い色を代表色の中から選択していくことになる。
【0007】
このような最近隣探索法を使って、原画像の各画素値に最も近い色を代表色の中から選択する処理を行う減色画像処理装置では、従来、原画像の全画素値について、最近隣探索法を使って最も近い色を代表色の中から選択して置換していくという構成を採っていた。
【0008】
すなわち、図23に示すように、原画像の中から処理対象となる画素値を取得すると、最近隣探索法を使って代表色の中から置換色を選択し、その処理対象の画素値をその置換色に置き換えてから、原画像の全画素値の処理を終了したのか否かを判断して、未終了を判断するときには、次の処理対象となる画素値を取得することを繰り返していくことで、原画像の各画素値を代表色に置換していくという構成を採っていたのである。
【0009】
【発明が解決しようとする課題】
しかしながら、このような従来構成の減色画像処理装置に従っていると、原画像の減色処理に膨大な時間がかかるという問題点があった。すなわち、最近隣探索法では、全ての代表色と原画像の各画素値との距離を計算すことから、計算量が膨大なものとなって、原画像の減色処理に膨大な時間がかかるという問題点があったのである。
【0010】
本発明はかかる事情に鑑みてなされたものであって、高速に減色処理を実行できるようにする新たな減色画像処理装置の提供を目的とする。
【0011】
【課題を解決するための手段】
図1に本発明の原理構成を図示する。
図中、1は本発明を具備する減色画像処理装置であって、多数の色を用いて表現される画像データの画素値を、用意される代表色の内の最も近いものに置換することで減色処理を実行するものである。
【0012】
この減色画像処理装置1は、原画像ファイル10と、置換画像ファイル11と、入力手段12と、置換手段13と、キャッシュメモリ手段14と、判断手段15と、変換手段16と、起動手段17とを備える。
【0013】
この原画像ファイル10は、減色対象となる原画像を格納する。置換画像ファイル11は、減色された置換画像を格納する。
入力手段12は、原画像ファイル10から画素値を1つずつ読み出して置換要求を発行する。ここで、入力手段12は、読み出した画素値の下位ビットに対して、強制的にゼロ値をセットしてから置換要求を発行したり、強制的に下位ビットのとり得る値の中間値をセットしてから置換要求を発行することがある。
置換手段13は、置換要求のある画素値と用意される複数の代表色との間の距離を算出し、それに基づいて、その画素値を用意される代表色の内の最も近いものに置換することで、置換要求のある画素値の置換色を求めて置換する。
【0014】
キャッシュメモリ手段14は、置換手段13の求めた画素値と置換色との対応関係を一時的に保存する。ここで、キャッシュメモリ手段14は、置換色の画素値そのものを使って対応関係を保存するのではなくて、置換色を指すインデックス値を使って対応関係を保存することがある。判断手段15は、置換要求のある画素値がキャッシュメモリ手段14に登録されているのか否かを判断する。変換手段16は、置換要求のある画素値をキャッシュメモリ手段14に登録されているその画素値の指す置換色に置換する。起動手段17は、置換要求のある画素値を指定して置換手段13を起動する。
【0015】
このように構成される本発明の減色画像処理装置1では、入力手段12は、例えば、原画像ファイル10に格納される原画像を複数の矩形ブロックで区画して、その矩形ブロックを走査単位として画素値を1つずつ読み出して置換要求を発行する。この置換要求を受け取ると、判断手段15は、キャッシュメモリ手段14を参照することで、置換要求のある画素値がキャッシュメモリ手段14に登録されているのか否かを判断するとともに、登録されているときには、その画素値の指す置換色を特定する。
【0016】
この判断手段15の処理を受けて、変換手段16は、判断手段15が登録を判断するときには、置換要求のある画素値を判断手段15の特定した置換色に変換して置換画像ファイル11に格納する。一方、起動手段17は、判断手段15が未登録を判断するときには、置換要求のある画素値を指定して置換手段13を起動する。
【0017】
そして、置換手段13は、起動手段17から起動されると、最近隣探索法等を用いて、置換要求のある画素値の置換色を求めることで置換処理を実行して置換画像ファイル11に格納するとともに、その求めた画素値と置換色との対応関係をキャッシュメモリ手段14に登録する。
【0018】
このように、本発明では、最近隣探索法等を用いて減色処理を実行する構成を採るときにあって、キャッシュメモリを利用することで、その減色処理計算の回数を減らす構成を採るので、多色画像の減色を高速に実行できるようになる。
【0019】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
図2に、本発明を具備する減色画像処理装置1の一実施例を図示する。
【0020】
この図に示すように、本発明を具備する減色画像処理装置1は、減色対象となる原画像を格納する原画像ファイル20と、原画像ファイル20から画像値を読み出す画像入力プログラム21と、画像入力プログラム21の読み出した画素値に対して減色処理を施すことでその画素値の置換色を求める減色処理プログラム22と、減色処理プログラム22の処理用に用意されて、置換色となる代表色を管理するカラーパレット23と、減色処理プログラム22の処理用に用意されて、減色処理プログラム22の求めた画素値と置換色との対応関係を管理するキャッシュ機構24と、減色処理プログラム22の求めた置換画像を格納する置換画像ファイル25と、置換画像ファイル25から画像値を読み出して外部に出力する画像出力プログラム26とを備える。
【0021】
図3に、カラーパレット23の管理データの一実施例、図4に、キャッシュ機構24の管理データの一実施例を図示する。
カラーパレット23は、図3に示すように、例えば、256個用意される代表色のインデックス値と、それらの代表色の画素値となるRGB値との対応関係を管理することになる。
【0022】
一方、キャッシュ機構24は、例えばM個のエントリを有して、図4(a)に示すように、カラーパレット23の管理するインデックス値を使いつつ、減色処理プログラム22の求めた画素値と置換色との対応関係を管理したり、図4(b)に示すように、そのインデックス値を用いずに置換色の画素値を直接使いつつ、減色処理プログラム22の求めた画素値と置換色との対応関係を管理する。ここで、この2つの管理構成の内、インデックス値を用いる前者の管理構成を採ると、メモリを大幅に削減できるという利点がある。
【0023】
このキャッシュ機構24は、減色処理プログラム22の求めた画素値と置換色との対応関係を一時的に保持するものであるが、後述するように、この対応関係を保持するにあたって、参照された対応関係を先頭にしつつ、登録順序の新しい対応関係が先頭側となる管理構成を採っている。この管理構成は、参照された対応関係を先頭に並び換えつつ、減色処理プログラム22により新たな対応関係が求まると、最後のエントリに管理される最も古く登録された対応関係を削除し、それ以外のエントリに管理される対応関係を1つずつ古いものを管理するエントリに移動させながら、その新たに求められた対応関係を先頭のエントリに登録することで実現されることになるが、これでは、データを移動させなければならず時間がかかってしまう。
【0024】
そこで、本発明では、リンク構造を採用する構成を採って、データの物理的な移動を行わずにリンクを張り換えることで、データの並び換えを行う構成を採っている。すなわち、キャッシュ機構24は、図5に示すように、各エントリ対応に、1つ前の対応関係がどのエントリに登録されているのかを管理する管理域prev(m) と、1つ後の対応関係がどのエントリに登録されているのかを管理する管理域next(m) とで構成されるリンク構造を持って、それらのリンクを張り換えていくことで、データの移動を行わずに、参照された対応関係を先頭に並び換えつつ、登録順序の新しい対応関係が先頭側となる形式に従って対応関係を管理する構成を採っている。
【0025】
図6に、本発明の減色画像処理装置1が画像入力プログラム21/減色処理プログラム22を起動することで実行する処理フローの一実施例を図示する。
本発明の減色画像処理装置1は、この図6の処理フローに示すように、先ず最初に、ステップ1で、画素の参照位置を原画像の先頭画素に設定すると、続くステップ2で、原画像ファイル20から現在の画素値(設定されている参照画素の画素値)を取得し、続くステップ3で、その取得した現在の画素値をキャッシュ機構24から検索する。
【0026】
続くステップ4で、現在の画素値がキャッシュ機構24に登録されているのか否かを判断して、登録されていないことを判断するときには、ステップ5に進んで、最近隣探索法を使って、カラーパレット23に登録される代表色の中から置換色を選択し、続くステップ6で、その求めた画素値と置換色との対応関係をキャッシュ機構24に登録する。
【0027】
一方、ステップ4で登録されていることを判断するときには、ステップ7に進んで、その登録されている対応関係から現在の画素値に対応付けられる置換色を得て、続くステップ8で、その対応関係をキャッシュ機構24の先頭のエントリへ移動する。
【0028】
ステップ5/ステップ7で置換色を特定すると、ステップ9に進んで、現在の画素値を置換色に置き換えてから置換画像ファイル25に格納し、続くステップ10で、原画像ファイル20に格納される全画素について処理を終了したのか否かを判断して、画素が残っていないことを判断するときには、処理を終了し、画素が残っていることを判断するときには、ステップ11に進んで、画素の参照位置を次の画素に設定してからステップ2に戻っていく。
【0029】
このようにして、本発明の減色画像処理装置1は、キャッシュ機構24を利用することで、減色処理計算の回数を減らす構成を採るのである。
画像入力プログラム21は、この図6の処理フローのステップ1/ステップ2/ステップ10/ステップ11の処理を実行するものである。
【0030】
すなわち、画像入力プログラム21は、図7の処理フローに示すように、先ず最初に、ステップ1で、入力位置を画素の先頭に設定し、続くステップ2で、減色処理プログラム22からの画像入力要求を待って、入力要求があることを検出すると、ステップ3に進んで、原画像ファイル20の全画素について処理を終了したのか否かを判断して、全画素の終了を判断するときには、ステップ4に進んで、減色処理プログラム22に対して入力終了を通知する。
【0031】
一方、ステップ3で全画素の未終了を判断するときには、ステップ5に進んで、設定される入力位置から3バイト分の画素値を読み出して減色処理プログラム22に渡し、続くステップ6で、入力位置を3バイト分後ろに設定してからステップ2に戻っていく。ここで、ステップ5で、入力位置から3バイト分の画素値を読み出して減色処理プログラム22に渡すのは、図8に示すように、画素値がRGBの各3バイトで表されているからである。
【0032】
このように、画像入力プログラム21は、原画像ファイル20から画素値を読み出して、減色処理プログラム22に渡していくことになるが、キャッシュヒット率の向上を図るために、通常のラスタスキャン走査による画素値の読み出し方法を採らずに、原画像を複数の矩形ブロックで区画して、その矩形ブロックを走査単位として画素値を読み出していく方法を採ることが好ましい。
【0033】
すなわち、通常の画像では、2次元的な広がりを持つ比較的狭い範囲に同一の色を持つ画素が集中するので、画像入力プログラム21は、図9(a)に示すような通常のラスタスキャン走査による画素値の読み出し方法を採らずに、図9(b)に示すような原画像を複数の矩形ブロックで区画して、その矩形ブロックを走査単位として画素値を読み出していく方法を採ることで、キャッシュヒット率の向上を実現する構成を採ることが好ましい。
【0034】
図10に、この図9(b)に示す画素値読出方法を実現するために画像入力プログラム21が実行する処理フローの一実施例を図示する。
ここで、この処理フローでは、原画像は、図11に示すように、左上の画素を原点(0,0)として、水平方向にX個の画素を持ち、垂直方向にY個の画素を持つことを想定するとともに、図12に示すように、水平方向にBX個の画素、垂直方向にBY個の画素を持つ矩形ブロックで区画されていることを想定する。また、xは読出対象画素の水平方向の画素位置、yは読出対象画素の垂直方向の画素位置、bxは図12中に示す矩形ブロックの水平方向のブロック番号、byは図12中に示す矩形ブロックの垂直方向のブロック番号を表し、これらの初期値は全てゼロであるとする。なお、画素値が図8に示すような1次元のメモリ展開形態を採る場合には、画素座標(x,y)の画素値の展開されるアドレスAi は、「Ai =(X・y+x)・3」で求められることになる。
【0035】
画像入力プログラム21は、図10の処理フローに従って原画像から画素値を読み出す場合には、先ず最初に、ステップ1で、読出対象画素の水平画素位置を示す変数xの値を1つインクリメントし、続くステップ2で、xをBXで割り算した余り(x%BX)が“0”になったのか否かを判断する。この余りが“0”になるということは、水平方向の次の矩形ブロックの画素に入ったということを意味するので、このステップ2では、変数xの指す画素が右隣の矩形ブロックに入ることになるのか否かを判断するのである。
【0036】
このステップ2で、右隣の矩形ブロックまで到達していないことを判断するときには、ステップ3に進んで、変数xの値がXに到達したのか否かを判断する。すなわち、水平方向の最終画素位置まで到達したのか否かを判断するのである。この判断処理により、水平方向の最終画素位置まで到達していないことを判断するときには、ステップ1で更新した変数xの値を有効なものとして扱って、変数xと変数yの指定する画素を読出対象として、その画素の画素値を読み出していく処理に入る。
【0037】
一方、ステップ2で右隣の矩形ブロックに入ることを判断するときと、ステップ3で水平方向の最終画素位置に到達したことを判断するときには、ステップ4進んで、読出対象画素の垂直画素位置を示す変数yの値を1つインクリメントし、続くステップ5で、yをBYで割り算した余り(y%BY)が“0”になったのか否かを判断する。この余りが“0”になるということは、垂直方向の次の矩形ブロックの画素に入ったということを意味するので、このステップ5では、変数yの指す画素が下隣の矩形ブロックに入ることになるのか否かを判断するのである。
【0038】
このステップ5で、下隣の矩形ブロックまで到達していないことを判断するときには、ステップ6に進んで、変数yの値がYに到達したのか否かを判断する。すなわち、垂直方向の最終画素位置まで到達したのか否かを判断するのである。このステップ6の判断処理により、垂直方向の最終画素位置まで到達していないことを判断するときには、ステップ7に進んで、変数bxと変数BXとの乗算値を変数xに代入することで、変数xの値が自矩形ブロックの水平方向の先頭画素位置を指すように設定してから、変数xと変数yの指定する画素を読出対象として、その画素の画素値を読み出していく処理に入る。
【0039】
一方、ステップ5で下隣の矩形ブロックに入ることを判断するときと、ステップ6で垂直方向の最終画素位置に到達したことを判断するときには、ステップ8に進んで、変数bxの値を1つインクリメントし、続くステップ9で、「bx×BX>X」の条件式が成立するのか否かを判断する。この条件式が成立するということは、水平方向の最終矩形ブロックを超えることになったということを意味するので、このステップ9では、そのような状態になったのか否かを判断するのである。
【0040】
このステップ9で、「bx×BX>X」の条件式の成立を判断するときには、ステップ10に進んで、読出対象画素の属する矩形ブロックの垂直ブロック番号を示す変数byの値を1つインクリメントし、続くステップ11で、読出対象画素の属する矩形ブロックの水平ブロック番号を示す変数bxの値を“0”に設定し、続いて、ステップ12で、変数byと変数BYとの乗算値を変数yに設定してから、ステップ7に進んで、変数xと変数yの指定する画素を読出対象として、その画素の画素値を読み出していく処理に入る。
【0041】
一方、このステップ9で、「bx×BX>X」の条件式の不成立を判断するときには、ステップ10及びステップ11の処理を省略して、直ちにステップ12に進んで、変数byと変数BYとの乗算値を変数yに設定してから、ステップ7に進んで、変数xと変数yの指定する画素を読出対象として、その画素の画素値を読み出していく処理に入る。
【0042】
このようにして、画像入力プログラム21は、この図10の処理フローを実行することで、図9(b)に示す走査形式に従って、原画像ファイル20から画素値を読み出していくことになる。これにより、キャッシュヒット率の向上を実現できるようになる。
【0043】
次に、減色処理プログラム22の実行する処理について説明する。
減色処理プログラム22は、上述した図6の処理フローのステップ3ないしステップ9の処理を実行することになる。
【0044】
図13に、減色処理プログラム22の実行する処理フローの一実施例を図示する。
すなわち、減色処理プログラム22は、起動されると、図13の処理フローに示すように、先ず最初に、ステップ1で、画像入力プログラム21に対して画像の入力要求を発行し、続くステップ2で、この入力要求に対する応答して、画像入力プログラム21から入力終了が通知されるのか否かを判断して、入力終了通知を受け取るときには、ステップ2に進んで、置換画像ファイル25に対して、処理終了を通知する。
【0045】
一方、ステップ2で、画像入力プログラム21から受け取るものが入力終了通知でないことを判断するとき、すなわち、画像入力プログラム21から受け取るものが画素値であることを判断するときには、ステップ3に進んで、その画素値を受け取り、続くステップ5で、その画素値を使ってキャッシュ機構24を検索する。
【0046】
続いて、ステップ6で、ステップ5での検索処理によりキャッシュヒットしたのか否かを判断して、キャッシュヒットしないことを判断するときには、ステップ7に進んで、最近隣探索法を使って、カラーパレット23に登録される代表色の中から、ステップ3で受け取った画素値の置換色とそのインデックス値を選択し、続くステップ8で、その画素値とインデックス値との対応関係をキャッシュ機構24の先頭のエントリに登録する。
【0047】
一方、ステップ6でキャッシュヒットしたことを判断するときには、ステップ9に進んで、キャッシュヒット先のインデックス値の指す置換色を特定し、続くステップ10で、そのキャッシュヒットした対応関係をキャッシュ機構24の先頭のエントリへ移動する。
【0048】
ステップ7/ステップ9で置換色を特定すると、ステップ11に進んで、置換画像ファイル25に対して出力要求を発行し、続くステップ12で、ステップ3で受け取った画素値をその置換色に置き換えて、置換画像ファイル25に格納(置換色そのものを格納することもあるし、インデックス値を格納することもある)してからステップ1に戻っていく。
【0049】
このようにして、減色処理プログラム22は、キャッシュ機構24を利用することで、減色処理計算の回数を減らす構成を採るのである。
次に、キャッシュ機構24の構成について詳細に説明する。
【0050】
キャッシュ機構24は、図5に示したように、各エントリ対応に、1つ前の対応関係がどのエントリに登録されているのかを管理する管理域prev(m) と、1つ後の対応関係がどのエントリに登録されているのかを管理する管理域next(m) とで構成されるリンク構造を持って、それらのリンクを張り換えていくことで、データの移動を行わずに、参照された対応関係を先頭に並び換えつつ、登録順序の新しい対応関係が先頭側となる形式に従って対応関係を管理する構成を採っている。
【0051】
すなわち、キャッシュ機構24に対応関係が登録されていないときには、図14(a)に示すように、先頭のエントリを指すTopが、最後のエントリを指すLast をポイントしている。この状態にあるときに、対応関係の登録要求があると、図14(b)に示すように、先頭のエントリである0番のエントリに登録要求のある対応関係を登録するとともに、0番のエントリの持つprev(m) がTopを指し、next(m) がLast を指すように設定するとともに、Topが0番のエントリを指し、Last が0番のエントリを指すように設定する。
【0052】
続いて、対応関係の登録要求があると、空いているエントリの先頭のものに登録要求の対応関係を登録するとともに、その格納先エントリの持つprev(m) がTopを指し、next(m) がそれまでTopを指していたエントリを指すように設定するとともに、それまでTopを指していたエントリの持つprev(m) が格納先エントリを指すように設定し、更に、Topが格納先エントリを指すように設定する。
【0053】
このようにして、図15(a)(b)に示すように、エントリが一杯になるまで、登録要求のある対応関係がキャッシュ機構24に登録されていく。
続いて、対応関係の登録要求があると、図16(a)に示すように、Last の指すエントリに登録要求のある対応関係を登録し、その格納先エントリの持つprev(m) がTopを指し、next(m) がそれまでTopを指していたエントリを指すように設定するとともに、それまでTopを指していたエントリの持つprev(m) が格納先エントリを指すように設定し、更に、その格納先エントリの持つprev(m) の指していたエントリの持つnext(m) がLast を指すように設定し、更に、Topが格納先エントリを指し、Last がその格納先エントリの持つprev(m) の指していたエントリを指すように設定する。
【0054】
このような状態にあるときに、(M−1)番のエントリに格納される対応関係が参照されると、図16(b)に示すように、(M−1)番のエントリの持つprev(m) がTopを指し、next(m) がそれまでTopを指していたエントリを指すように設定するとともに、それまでTopを指していたエントリの持つprev(m) が(M−1)番のエントリを指し、next(m) が(M−1)番のエントリの持つnext(m) の指していたエントリを指すように設定し、更に、Topが(M−1)番のエントリを指すように設定する。
【0055】
このようにして、キャッシュ機構24は、リンク構造を持って、そのリンクを張り換えていくことで、データの移動を行わずに、参照された対応関係を先頭に並び換えつつ、登録順序の新しい対応関係が先頭側となる形式に従って対応関係を管理する構成を採っている。
【0056】
この構成に従い、減色処理プログラム22は、図13に示した処理フローのステップ6でキャッシュ検索処理に入ると、図17の処理フローに示すように、リンクを辿りながら、検索対象となる画素値の指すインデックス値を検索していくのである。ここで、図中、sは検索対象の画素値、c(m)はm番のエントリに格納されている画素値、n(m)はm番のエントリに格納されているインデックス値を表している。
【0057】
減色処理プログラム22の処理に従って、置換画像ファイル25に置換色のインデックス値(カラーパレット23が256 個の代表色を管理することから、このインデックス値は1バイトで表される)に置き換えられた画像が格納されると、画像出力プログラム26は、図18に示す処理フローに従って、置換画像ファイル25から画像値を読み出して外部に出力する処理を実行する。
【0058】
すなわち、画像出力プログラム26は、図18の処理フローに示すように、先ず最初に、ステップ1で、出力位置を画素の先頭に設定し、続くステップ2で、置換画像ファイル25から終了通知が発行されたのか否かを判断して、終了通知が発行されたときには処理を終了し、終了通知が発行されないときには、続いて、ステップ3で、出力先から置換画像の出力要求が発行されたのか否かを判断して、出力要求の発行を検出すると、ステップ4に進んで、置換画像ファイル25から受け取るインデックス値の指す代表色を出力位置に出力し、続くステップ5で、出力位置を更新してからステップ2に戻っていくことを繰り返していくことで、置換画像ファイル25から画像値を読み出して外部に出力していくのである。
【0059】
上述したように、画像入力プログラム21は、原画像ファイル20から画素値を読み出して減色処理プログラム22に渡していくときに、図9(b)に示す走査形式に従って画素値を読み出していくことで、キャッシュヒット率の向上を実現する構成を採ったが、これと組み合わせて、あるいは単独に、原画像ファイル20から読み出した画素値の下位ビットを強制的にゼロ値に設定することで、キャッシュヒット率の向上を実現する構成を採ることもできる。
【0060】
RGB各8ビットの合計24ビットで表される画素値は約1600万色にもなるが、肉眼ではこのような多数の色を識別できない。そこで、例えば、RGBの各下位4ビットを無視することで4096色に縮退させても実用上は何も問題は起こらない。そこで、画像入力プログラム21は、例えば、原画像ファイル20から読み出した画素値の下位4ビットを強制的にゼロ値に設定することで、原画像の色を4096色に縮退させ、これにより、キャッシュヒット率を向上を実現することが可能である。
【0061】
このとき、下位4ビットをオールゼロとすると、本来“1111”から“0000”の間の値をとり得るものが、“0000”に統一されてしまうことで画像が暗くなってしまうことになる。そこで、下位4ビットを“0000”に強制的に設定するのではなくて、図19に示すように、“1111”から“0000”の中間値である“1000”に強制的に設定する方法を採ることが好ましい。
【0062】
このような下位ビットを縮退させる方法を採るときには、減色画像処理装置1は、図20の処理フローのステップ20に示すように、図6の処理フローのステップ2とステップ3の間に、原画像ファイル20から取得した現在の画素値の下位ビットを無視することでビット数を削減する処理を実行することになる。
【0063】
図示実施例に従って本発明を詳細に説明したが、本発明はこれに限られるものではない。例えば、実施例ではRGB表色系で表される画素値を用いたが、本発明はこれに限られるものではない。また、実施例では最近隣探索法に従って減色処理を実行する構成を採ったが、本発明はこれに限られるものではない。
【0064】
【発明の効果】
以上説明したように、本発明では、最近隣探索法等を用いて減色処理を実行する構成を採るときにあって、キャッシュメモリを利用することで、その減色処理計算の回数を減らす構成を採るので、多色画像の減色を高速に実行できるようになる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の一実施例である。
【図3】カラーパレットの管理データの一実施例である。
【図4】キャッシュ機構の管理データの一実施例である。
【図5】キャッシュ機構の管理データの一実施例である。
【図6】本発明の実行する処理フローの一実施例である。
【図7】画像入力プログラムの処理フローの一実施例である。
【図8】画素値の格納形態の説明図である。
【図9】画像入力プログラムの画素値読出方法の説明図である。
【図10】画像入力プログラムの処理フローの一実施例である。
【図11】画素値の座標系の説明図である。
【図12】矩形ブロックの説明図である。
【図13】減色処理プログラムの処理フローの一実施例である。
【図14】キャッシュ機構の動作説明図である。
【図15】キャッシュ機構の動作説明図である。
【図16】キャッシュ機構の動作説明図である。
【図17】減色処理プログラムの処理フローの一実施例である。
【図18】画像出力プログラムの処理フローの一実施例である。
【図19】画像入力プログラムの実行する処理の説明図である。
【図20】本発明の実行する処理フローの他の実施例である。
【図21】色空間の説明図である。
【図22】最近隣探索法の説明図である。
【図23】従来技術の説明図である。
【符号の説明】
1 減色画像処理装置
10 原画像ファイル
11 置換画像ファイル
12 入力手段
13 置換手段
14 キャッシュメモリ手段
15 判断手段
16 変換手段
17 起動手段
Claims (7)
- 画像データの減色処理を実行する減色画像処理装置において、
減色処理の対象となる画像データから画素値を1つずつ読み出して入力する入力手段と、
上記入力手段の入力した画素値を置換対象として、該画素値と用意される複数の代表色との間の距離を算出し、それに基づいて、該画素値を該代表色の内の最も近いものに置換する置換手段と、
上記置換手段の求めた画素値と置換色との対応関係を一時的に保存するキャッシュメモリ手段と、
上記入力手段の入力した画素値が上記キャッシュメモリ手段に登録されているのか否かを判断する判断手段と、
上記判断手段が登録を判断する場合に、上記入力手段の入力した画素値を上記キャッシュメモリ手段に登録されている該画素値の指す置換色に置換する変換手段と、
上記判断手段が未登録を判断する場合に、上記入力手段の入力した画素値を指定して上記置換手段を起動する起動手段とを備えることを、
特徴とする減色画像処理装置。 - 請求項1記載の減色画像処理装置において、
上記キャッシュメモリ手段は、リンク構造に従って、参照された対応関係を先頭にしつつ、登録順序の新しい対応関係が先頭側となるようにと対応関係を保存することを、
特徴とする減色画像処理装置。 - 請求項1又は2記載の減色画像処理装置において、
上記キャッシュメモリ手段は、置換色の画素値そのものを使って対応関係を保存することを、
特徴とする減色画像処理装置。 - 請求項1又は2記載の減色画像処理装置において、
上記キャッシュメモリ手段は、置換色を指すインデックス値を使って対応関係を保存することを、
特徴とする減色画像処理装置。 - 請求項1記載の減色画像処理装置において、
上記入力手段は、減色処理の対象となる画像データを複数の矩形ブロックで区画して、その矩形ブロックを走査単位として画素値を読み出していくことを、
特徴とする減色画像処理装置。 - 請求項1又は5記載の減色画像処理装置において、
上記入力手段は、読み出した画素値の下位ビットに対して、強制的にゼロ値をセットすることを、
特徴とする減色画像処理装置。 - 請求項1又は5記載の減色画像処理装置において、
上記入力手段は、読み出した画素値の下位ビットに対して、強制的に該下位ビットのとり得る値の中間値をセットすることを、
特徴とする減色画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29679495A JP3652754B2 (ja) | 1995-11-15 | 1995-11-15 | 減色画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29679495A JP3652754B2 (ja) | 1995-11-15 | 1995-11-15 | 減色画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09138676A JPH09138676A (ja) | 1997-05-27 |
JP3652754B2 true JP3652754B2 (ja) | 2005-05-25 |
Family
ID=17838227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29679495A Expired - Fee Related JP3652754B2 (ja) | 1995-11-15 | 1995-11-15 | 減色画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3652754B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4641959B2 (ja) * | 2006-03-29 | 2011-03-02 | 京セラミタ株式会社 | 画像処理装置 |
JP5511468B2 (ja) * | 2009-04-13 | 2014-06-04 | キヤノン株式会社 | 画像処理装置およびその制御方法、並びにプログラム |
JP2015143946A (ja) * | 2014-01-31 | 2015-08-06 | 富士通株式会社 | 移動物体検知・追跡装置、移動物体検知・追跡システム、移動物体検知・追跡方法、及び、プログラム |
-
1995
- 1995-11-15 JP JP29679495A patent/JP3652754B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09138676A (ja) | 1997-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69314536T2 (de) | Schnittstelle für ein Terminal zur Ausgabe von vollfarbigen Bildern | |
KR910000545B1 (ko) | 컬러 화상 표시 시스템 | |
JP5835879B2 (ja) | メモリからのデータの配列の読み込みを制御する方法および装置 | |
US5332995A (en) | Graphic pattern processing apparatus | |
JP2523222B2 (ja) | 画像縮小/拡大方法及び装置 | |
JP6403430B2 (ja) | 画像処理装置および画像処理方法 | |
JP2002171401A (ja) | 間引き演算命令を備えたsimd型演算装置 | |
EP1143696A2 (en) | Image processing apparatus, image processing circuit, and image processing method | |
JP3652754B2 (ja) | 減色画像処理装置 | |
JP2009037348A (ja) | 画像処理装置及び方法 | |
JP4481343B2 (ja) | 高速でfm格子点の発生を可能にする方法および装置 | |
JP4164257B2 (ja) | 画像処理装置、画像処理方法、プログラム、及び記憶媒体 | |
JPH0553909A (ja) | 画像データ処理におけるキヤツシユメモリ制御方式 | |
JPH01291387A (ja) | 画像処理装置 | |
JP4156194B2 (ja) | 第1の解像度のラスタのデジタルデータを第2の解像度のデジタルデータに変換する方法 | |
US20100253699A1 (en) | Methods and Systems for Improved Processing of Digital Image Data | |
JP5731816B2 (ja) | 画像処理装置、画像処理方法 | |
JPH06326876A (ja) | 予測符号化方式の画情報の処理方法 | |
JP3227222B2 (ja) | 画像処理装置 | |
JPH09135348A (ja) | 多値データ変換装置 | |
JPH09326920A (ja) | サブピクセル単位でのデジタル画像処理方法 | |
JP3162918B2 (ja) | 画像処理装置および方法 | |
JPS59167748A (ja) | 情報記憶装置 | |
JP2008281536A (ja) | 画像処理装置、画像処理プログラム、及び撮像装置 | |
WO2019003610A1 (ja) | 処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040809 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050224 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080304 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090304 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110304 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110304 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120304 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130304 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130304 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140304 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |