JP5267147B2 - 画像処理装置、画像処理方法、及び、コンピュータプログラム - Google Patents

画像処理装置、画像処理方法、及び、コンピュータプログラム Download PDF

Info

Publication number
JP5267147B2
JP5267147B2 JP2009008089A JP2009008089A JP5267147B2 JP 5267147 B2 JP5267147 B2 JP 5267147B2 JP 2009008089 A JP2009008089 A JP 2009008089A JP 2009008089 A JP2009008089 A JP 2009008089A JP 5267147 B2 JP5267147 B2 JP 5267147B2
Authority
JP
Japan
Prior art keywords
index
image
value
index table
color
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009008089A
Other languages
English (en)
Other versions
JP2010162802A (ja
Inventor
尚人 白石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2009008089A priority Critical patent/JP5267147B2/ja
Publication of JP2010162802A publication Critical patent/JP2010162802A/ja
Application granted granted Critical
Publication of JP5267147B2 publication Critical patent/JP5267147B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Color, Gradation (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)

Description

本発明は、画像処理装置、画像処理方法、及び、コンピュータプログラムに関する。
従来から、プリンタ等において、ネットワークから受け取ったPDL(page description language,ページ記述言語)を、階調処理して1色当たりのビット数が8ビットよりも少ない少値のCMYKデータとして描画して処理する技術がある。描画された少値の画像は、JBIG等により符号化され、符号はメモリに格納され、その後プリントアウトされる。この方式では、プリンタは、画像をバンド単位に処理する。
例えば、特開平6−139364号公報(特許文献1)には、PDLを解釈する際に、カラーパレットを生成し、カラーパレットの値によりページメモリに展開するページ記述言語処理装置の発明が開示されている。
また例えば、特許第3218034号公報(特許文献2)には、ゲーム機等において、メモリを節約するためにカラーパレットを使用することが記載されている。特許文献2に記載の画像処理装置では、フルカラー色の中から256色を表示する。
また、特開平11−78126号公報(特許文献3)には、PDL解釈時に、文字データの色数が目的の色数を超えるか否かに応じて、色数を超えた場合に減色処理を行うカラープリント装置の発明が開示されている。
ところで、論理演算によるROP処理や半透明処理を高画質で対応する為に、PDLから多値画像を描画して処理する方式がある。この方式では、プリンタは、ネットワークから受け取ったPDLをバンド単位に多値のRGBデータで描画する。描画された画像は、多値画像の圧縮アルゴリズム、例えばJPEG等により符号化され、符号はメモリに格納される。プリントアウト時には、C、M、Y、Kの版毎に遅延させて、メモリから符号データを読み込み、符号化した際の圧縮アルゴリズムによりRGBデータに復号化する。その後、色変換処理により、CMYKデータに変換し、階調処理により、2値、4値、8値等の少値又は多値に変換する。この方式では、階調処理後のC,M,Y,Kの各版に対応するデータのみプリンタエンジンに転送する。プリンタは、各版専用の復号化装置と各版専用の画像処理装置を有する構成となる。
しかし、多値RGBデータを用いる場合は、例えば、24bitのRGBデータを600DPIでA4サイズを描画すると、ページ全体で約100Mバイトの容量となり、高性能なCPUと高速なメモリが必要となる。
また、近年のプリンタの印字スピードの増加と1200DPIへの高画質の要求から、さらなる高性能なCPUと高速なメモリを必要とする。特に下地、すなわち白色をページ全面に描画するクリアー処理を多値RGBにすると、単色であるにも関わらず大きな処理量となる。
しかしながら、上記特許文献1及び3に記載のページ記述言語処理装置等の発明では、PDL解析時にカラーパレットを生成し、カラーパレット値で描画することによりメモリ領域を少なくすることができるが、デジタルカメラの普及と高解像度化の流れの中で、より多い色数により写真画像をプリントする要求には応えられない。特に、特許文献3に記載のカラープリント装置では、色数がカラーパレット数を超えた際の減色処理に、多くの処理時間を費やす上に、画質の劣化を招く。
また、カラーパレット値を生成する際に、例えば、カラーパレット数が256色の場合には毎回256値と色値との比較が必要となり、演算量が多くなる。カラーパレット数が増えるとこの演算量はさらに大きくなるという課題がある。
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、減色処理を行わずとも高速に描画を行う画像処理装置、画像処理方法、及び、コンピュータプログラムを提供することを目的としている。
上記目的を達成するために、本発明の画像処理装置は次の如き構成を採用した。
本発明の画像処理装置は、入力画像の画像データを解析して、色値と該色値に対応づけられるインデックス値とを有するインデックステーブルを生成するインデックステーブル生成手段と、前記入力画像のうち、前記インデックス値に対応づけられる色値の画素からなり前記画素が前記インデックス値により表現されるインデックス画像を描画するインデックス描画手段と、前記入力画像のうち、前記インデックス値に対応づけられない色値の画素からなる多値画像を描画する多値描画手段と、前記インデックス画像の画素と前記多値画像の画素とを、前記入力画像における位置に対応づけて、一の記憶領域に格納する記憶手段と、前記インデックステーブルに基づいて、前記記憶手段に格納された前記インデックス画像のインデックス値を前記色値に変換する変換手段と、を有し、前記記憶手段に格納される画素は、前記インデックス画像と前記多値画像との何れに含まれる画素であるかを表す識別情報を有し、前記記憶領域は、前記色値の色成分毎に対応づけられる複数のプレーンからなり、前記インデックス画像は、一以上の前記プレーンに格納される。
これにより、減色処理を行わずとも高速に描画を行う画像処理装置を提供することができる。
なお、上記課題を解決するため、本発明は、上記画像処理装置における画像処理方法、及び、その画像処理方法をコンピュータに実行させるためのコンピュータプログラムとしてもよい。
本発明の画像処理装置、画像処理方法、及び、コンピュータプログラムによれば、減色処理を行わずとも高速に描画を行う画像処理装置、画像処理方法、及び、コンピュータプログラムを提供することが可能になる。
図1は、画像処理装置を実装する画像形成装置の機構部の構成例を示す図である。 図2は、カラープリンタ1における電装・制御部の装置構成を示すブロック図である。 図3は、メインメモリ600が有する各領域を説明する図である。 図4は、画像データを処理する機能の構成を説明する図である。 図5は、グラフィックス画像と写真画像とを含む画像の例を示す図である。 図6は、カラー画像フォーマットとIndexフォーマットとの例を説明する図である。 図7は、第1の実施の形態におけるIndexテーブルの例を示す図である。 図8は、Indexフォーマット1とカラー画像フォーマットとにより描画処理された画像の例を示す図である。 図9は、第1の実施の形態における画像処理方法の概念を説明する図である。 図10は、第1の実施の形態における画像処理方法を説明するフロー図である。 図11は、グラフィックス描画を説明するフロー図である。 図12は、写真描画を説明するフロー図である。 図13は、グラフィックスIndexテーブル生成処理部320の装置構成の例を示すブロック図である。 図14は、Indexテーブル1処理部323のハードウェア構成の例を説明する図である。 図15は、Indexテーブル2処理部324のハードウェア構成の例を説明する図である。 図16は、グラフィックスIndexテーブル生成処理部320の処理を説明するフロー図である。 図17は、画像処理部700のハードウェア構成の例を示す図である。 図18は、Indexテーブル変換処理部720におけるIndex値からRGB値へ変換する処理のフロー図である。 図19は、メインメモリ600aが有する各領域を説明する図である。 図20は、属性フォーマットとIndexフォーマットとの例を説明する図である。 図21は、RGBXフォーマットの例を説明する図である。 図22は、第2の実施の形態におけるIndexテーブルの例を示す図である。 図23は、描画処理された画像の例を示す図(その1)である。 図24は、描画処理された画像の例を示す図(その2)である。 図25は、第2の実施の形態におけるカラープリンタ1aが有する、画像データを処理する機能の構成を説明する図である。 図26は、グラフィックスIndex描画処理部330aにおけるグラフィックス描画処理の例を示すフロー図である。 図27は、写真画像RGBA描画処理部310aにおける写真画像の描画処理の例を示すフロー図である。 図28は、画像処理部700aのハードウェア構成の例を示す図である。 図29は、Indexテーブル変換処理部720aにおける処理を示す図である。 図30は、画像処理装置を実現するコンピュータの構成を説明する図である。
以下、本発明の実施の形態を図面に基づき説明する。なお、以下の実施の形態では、「カラーパレット」を、「Index」ともいう。
〔第1の実施の形態〕
図1は、本実施の形態に係る画像処理装置を実装する画像形成装置の機構部の構成例を示す図である。図1では、画像形成装置としてカラープリンタ1を示す。カラープリンタ1は、4色(Y、M、C、K)の画像をそれぞれ独立の作像系で形成し、この4色の画像を合成する4ドラムタンデムエンジンタイプの画像形成装置である。
(カラープリンタ1における電装・制御部のブロック)
図2は、カラープリンタ1における電装・制御部の装置構成を示すブロック図である。図2の電装・制御部100は、プリンタASIC110、プリンタエンジン180、メインメモリ600、及び、CPU190を有し、ネットワークを介してパーソナルコンピュータ(以下、「PC」という。)900に接続されている。
CPU190は、カラープリンタ1の全体の制御を行う。CPU190は、また、入力される画像データを処理し、Indexテーブルの生成等を行う。プリンタエンジン180は、画像を媒体上に形成して出力する。メインメモリ600は、CPU190が出力する描画コマンド、CPU190が実行するプログラム、及び、画像データのうちバンド毎の画像データであるバンドデータ、Indexテーブル、ページ毎の圧縮データ等の各種データ等を格納する。なお、バンドデータは、例えば、IndexとRGBAとを含むバンドデータであり、ページデータは、例えば、階調処理後CMYKページのデータである。
プリンタASIC110は、入力される画像データに対して所定の処理を行い、プリンタエンジン180に対して出力する。プリンタASIC110は、例えば、CPU インタフェース(以下、「I/F」という。)112、メインメモリアービタ113、メインメモリコントローラ114、DMA部117、エンジンコントローラ118、及び、通信処理部119を有する。
CPU I/F112は、メインメモリアービタ113を介してメインメモリコントローラ114に接続され、CPU190とメインメモリコントローラ114との間のインタフェース処理を行う。メインメモリアービタ113は、通信処理部119、及び、CPU190からの、メインメモリ600へのアクセス順等を管理する。メインメモリコントローラ114は、メインメモリ600へのデータの書き込み及び読み出しを制御する。
DMA部117は、プリンタエンジン180に同期して、メインメモリ600に格納された階調処理後のCMYKページの画像データを受け取り、エンジンコントローラ118へ転送する。
通信処理部119は、通信コントローラであり、ネットワークを介して接続されたPC900から画像データを受信する。PC900から送信される画像データは、例えば、PDLの形式を有する。通信処理部119は、受信した画像データを、メインメモリ600に対して出力する。
(メインメモリ600の構成)
図3は、メインメモリ600が有する各領域を説明する図である。メインメモリ600は、プログラム領域、PDL格納メモリ領域、画像処理パラメータメモリ領域、Index&RGBAページメモリ格納領域、階調処理後CMYKページメモリ格納領域、及び、その他のデータを格納する領域を有する。
プログラム領域はCPU190が実行するプログラムを格納する。PDL格納メモリ領域はPCからのPDLを格納する。画像処理パラメータメモリ領域はCPU190により実現される画像処理部に必要な画像処理パラメータを格納する。
Index&RGBAページメモリ格納領域は、4つのプレーンから構成され、Indexフォーマットに基づき、Index値、又は、カラー値のデータを格納する。Index&RGBAページメモリ格納領域は、プレーン0メモリ領域631、プレーン1メモリ領域632、プレーン2メモリ領域633、及び、プレーン3メモリ領域634を有する。これらの領域は、CMYKの各色を一のプレーンとするプレーン0ないしプレーン3に対応して設けられる。なお、Index&RGBAページメモリ格納領域は、Indexフォーマットによる描画を行う場合には、プレーン0ないしプレーン3のうちの、1又は2個のプレーンのみに対する描画が行われる。
階調処理後CMYKページメモリ格納領域は、画像処理後の階調処理後CMYKデータを格納する。
(画像データを処理する機能の構成)
図4は、本実施形態のカラープリンタ1が有する、画像データを処理する機能の構成を説明する図である。カラープリンタ1は、PDL記憶部130、PDL解析処理部140、描画処理部300、Index&RGBAページ画像記憶部610、画像処理部700、階調処理後CMYKページ画像記憶部620、DMA部117、プリンタエンジン180を有する。なお、PDL解析処理部140、描画処理部300、及び、画像処理部700は、例えば、CPU190がプログラムを実行することにより実現される。
また、PDL記憶部130、Index&RGBAページ画像記憶部610、及び、階調処理後CMYKページ画像記憶部620は、メインメモリ600に設けられる。PDL記憶部130は、図3のPDL格納メモリ領域に対応する。Index&RGBAページ画像記憶部610は、図3のIndex&RGBAページメモリ格納領域に対応する。階調処理後CMYKページ画像記憶部620は、図3の階調処理後CMYKページメモリ格納領域に対応する。
入力されるPDLデータは、PDL記憶部130に記憶された後に、各部で処理され、プリンタエンジン180から出力される。ここでは、画像データの処理の順にしたがって説明する。
PDL記憶部130は、通信処理部119から送られたPDLを記憶する。PDL解析処理部140は、PDL記憶部130からPDLを読み込み、PDLを解析する。
PDL解析処理部140により解析されたPDLのうち、グラフィックスコマンドに含まれるカラー情報とグラフィックス描画コマンドとは、描画処理部300が有するグラフィックスIndexテーブル生成処理部320に対して転送される。また、写真画像コマンドに含まれるカラー情報と描画コマンドとは、描画処理部300が有する写真画像RGBA描画処理部310に対して転送される。
図5は、グラフィックス画像と写真画像とを含む画像の例を示す図である。図5(a)は、RGB画像フォーマットにより描画された例である。図5(b)は、図5(a)の画像を、Indexフォーマットによる描画領域と、カラー画像フォーマットによる描画領域とに分けた例である。図5(b)では、写真画像が、カラー画像フォーマットにより描画され、グラフィックス画像が、Indexフォーマットにより描画される。グラフィックス領域は色数が少ないため、Indexフォーマットで描画するとよい。
図6は、カラー画像フォーマットとIndexフォーマットとの例を説明する図である。図6では、1つのカラー画像フォーマットと、2つのIndexフォーマットとを示す。カラー画像フォーマットは、カラー画像フォーマットであることを示す2ビットのヘッダーと、属性を表す6ビットの値、及び、R,G,Bの各色に対応する8ビットの値とからなる。図6のカラー画像フォーマットによる画像データを、メインメモリ600が有するIndex&RGBAページメモリ格納領域に格納する際には、例えば、ヘッダーと属性値とを、プレーン0メモリ領域631に格納し、プレーン1メモリ領域632ないしプレーン3メモリ領域634に、それぞれ、R,G,Bの値を格納する。
Indexフォーマット1は、Indexフォーマット1であることを示す1ビットのヘッダーと、7ビットのIndexテーブル値とからなる。Indexフォーマット1は、0から127の128個のテーブル値を表現することができる。このフォーマットによる画像データは、例えば、プレーン0メモリ領域631に格納されるとよい。
Indexフォーマット2は、Indexフォーマット2であることを示す2ビットのヘッダー、属性を表す6ビットの属性値、及び、8ビットのカラーIndexテーブル値とからなる。Indexフォーマット2は、0から255の256個のテーブル値を表現することができる。このフォーマットによる画像データは、例えば、プレーン0メモリ領域631に、ヘッダーと属性値とが格納され、プレーン1メモリ領域632に、カラーIndexテーブル値が格納されるとよい。
これらのフォーマットのヘッダーはハフマン木で構成されている。Indexフォーマット1のヘッダーは、1bitの“1”であり、Index値のダイナミックレンジをなるべく大きくし、さらに、頻度が高い色に対して割り当てることにより、効率良い割り当てを行うことができる。
カラー画像フォーマットのヘッダーとIndexフォーマット2のヘッダーとは、2bitで構成され,最初のbitが“0”であるので、Indexフォーマット1と容易に分類することができる。また、2bit目でカラー画像フォーマットとIndexフォーマット2とを分類する。
何れのフォーマットも、ヘッダー情報をプレーン0の先頭に配置する。また、頻度が高い色に用いるIndexフォーマット1は、プレーン0メモリ領域631にのみ描画することにより、描画する領域を少なくすることができ、描画処理の高速化を図ることができる。
図7は、Indexテーブルの例を示す図である。図7(a)は、Indexフォーマット1のインデックステーブル1であり、図7(b)は、Indexフォーマット2のインデックステーブル2である。図7(a)では、0から127のIndexテーブル値のそれぞれに対し、A,R,G,Bからなる色情報が1つずつ対応づけられている。図7(b)では、0から255のIndexテーブル値のそれぞれに対し、R,G,Bからなる色情報が1つずつ対応づけられている。
図4に戻り、描画処理部300は、写真画像RGBA描画処理部310、グラフィックスIndexテーブル生成処理部320、及び、グラフィックスIndex描画処理部330を有する。
グラフィックスIndexテーブル生成処理部320は、PDL解析処理部140からカラー情報とグラフィックス描画コマンドとを受け取り、Indexテーブル値を生成する。
グラフィックスIndex描画処理部330は、グラフィックスIndexテーブル生成処理部320からグラフィックス描画コマンドとIndex値とを受け取り、Index画像フォーマットによる描画を行う。グラフィックスIndex描画処理部330は、メインメモリ600の、プレーン1メモリ領域632ないしプレーン3メモリ領域634に、それぞれ、各色の画像を描画する。写真画像RGBA描画処理部310は、PDL解析処理部140から写真描画コマンドと写真画像のソース画像を受け取り、写真画像の描画処理を行う。
図8は、Indexフォーマット1とカラー画像フォーマットとにより描画処理された画像の例を示す図であって、図5(a)のRGB画像をメインメモリ600の領域に描画する際の例である。
図8では、プレーン0メモリ領域631に、Indexフォーマット1による描画が行われている。プレーン0メモリ領域631には、さらに、カラー画像フォーマットによる描画のうち、ヘッダーと属性値とによる描画が行われている。図8のプレーン1メモリ領域632ないしプレーン3メモリ領域634には、それぞれ、カラー画像フォーマットのR,G,Bの描画が行われている。
図8では、グラフィックス画像の部分が、プレーン0のみの描画となる。これにより、描画するメモリ領域が少なく、描画処理を高速にできる。
図4に戻り、Index&RGBAページ画像記憶部610は、描画処理部300により描画されたIndex値とRGBAページ画像(以下、「Index&RGBAページ画像」という。)とを記憶する。
画像処理部700は、Indexテーブル記憶部710、Indexテーブル変換処理部720、RGB→CMY色変換処理部730、UCR処理部740、及び、階調処理部750を有する。
Indexテーブル記憶部710は、グラフィックスIndexテーブル生成処理部320により生成されるIndexテーブルを格納するバッファーである。Indexテーブル変換処理部720は、Index&RGBAページ画像記憶部610からIndex&RGBAページ画像を読み込み、Indexフォーマットに基づきRGB値へ変換する。
RGB→CMY色変換処理部730は、Indexテーブル変換処理部720で変換されたデータを色変換し、UCR処理部740へ転送する。UCR処理部740は、RGB→CMY色変換処理部730で色変換した画像データに対し、UCR処理を行い、階調処理部750へ転送する。階調処理部750は、UCR処理部740でUCR処理した画像データに対し階調処理を行い、階調処理後CMYKページ画像記憶部620へ転送する。
階調処理後CMYKページ画像記憶部620は、画像処理部700により処理された階調処理後CMYKページ画像を記憶する。
DMA部117は、階調処理後CMYKページ画像記憶部620に格納された階調処理後CMYKページ画像を読み込み、プリンタエンジン180に転送する。なお、プリンタエンジン180に転送する際に、エンジンコントローラ118を介してもよい。プリンタエンジン180は、入力された画像データをプリントアウトする。
(本実施形態に係る画像処理方法の概念を説明する図)
図9は、本実施形態に係る画像処理方法の概念を説明する図である。図9では、PC900が、PDLを生成し、ネットワークを介してカラープリンタ1に転送する。
カラープリンタ1は、メインメモリ600、描画処理部300、Indexテーブル生成処理部400、Indexテーブルメモリ500、画像処理部700、DMA部117、エンジンコントローラ118、通信処理部119、及び、プリンタエンジン180を有する。
通信処理部119は、PC900からのPDLを受け取り、メインメモリ600のPDLメモリ領域へ格納する。描画処理部300は、PDLを解析し、Index&RGBAページ画像の描画処理等を行う。Indexテーブル生成処理部400は、描画処理部300から受け取ったカラー値をIndex値へ変換し、Indexテーブルを生成する。
Indexテーブルメモリ500は、Indexテーブル生成処理部400で生成されたIndexテーブルを保持する。Indexテーブルメモリ500は、画像処理部700と一の構成としてもよい。
画像処理部700は、メインメモリ600のIndex&RGBAページ画像記憶領域から画像データを読み込む。画像処理部700は、さらに、Indexテーブルメモリ500から、Indexテーブル値を読み込み、画像データの処理を行い、メインメモリの階調処理後CMYKページ画像メモリ領域へ書き込む。
DMA部117は、メインメモリ600の階調処理後CMYKページ画像メモリ領域から階調処理後のCMYK画像を読み込み、エンジンコントローラ118へ転送する。エンジンコントローラ118は、DMA部117から受け取った画像データをプリンタエンジン180へ転送する。プリンタエンジン180は、画像を媒体上に形成して出力する。
(画像処理方法のフロー)
図10は、本実施形態の画像処理方法を説明するフロー図である。図10のステップS101では、PDL解析処理部140が、PDLを解析して、描画コマンドを読み込む。ステップS102では、PDL解析処理部140が、ステップS101で読み込まれた描画コマンドが、グラフィックス描画コマンドであるか否かを判断する。グラフィックス描画コマンドの場合には、ステップS103に進み、そうではない場合には、ステップS105に進む。
ステップS103では、グラフィックスIndexテーブル生成処理部320が、Indexテーブルに基づいて、カラー値をIndex値へ変換させ、Indexフォーマットに変換する。ステップS104では、グラフィックスIndex描画処理部330が、ステップS103で変換されたIndex値により、Index&RGBAページ画像記憶部610にグラフィックス描画処理を行う。
一方、ステップS105では、写真画像RGBA描画処理部310が、カラー画像フォーマットにより、Index&RGBAページ画像記憶部610に、写真画像の描画処理を行う。
ステップS106では、PDLに含まれている全ての描画コマンドを処理したか否かの判断がなされる。全ての描画コマンドが処理されている場合には、ステップS107に進み、そうではない場合には、ステップS101に戻って処理を繰り返す。
ステップS107では、グラフィックスIndexテーブル生成処理部320が、ステップS103で生成したIndexテーブルを、Indexテーブル記憶部710に転送する。これにより、Indexテーブル記憶部710が、Indexテーブルを保持するようになる。
ステップS108では、画像処理部700が、Index&RGBAページ画像記憶部610に格納されている画像データを、Index値からRGBA値へ変換した後、色変換処理、階調変換処理等を行う。処理された画像は、階調処理後CMYKページ画像記憶部620に格納される。
ステップS109では、DMA部117が、階調処理後CMYKページ画像記憶部620に格納された画像データを、プリンタエンジン180にDMA転送し、プリンタエンジン180が、その画像データを印刷する。
(グラフィックス描画の詳細)
図11は、グラフィックス描画を説明するフロー図であって、図10のステップS104で行われる処理の詳細を説明するフロー図である。図11の処理は、グラフィックスIndex描画処理部330により、メインメモリ600のプレーン0メモリ領域631からプレーン3メモリ領域634に対して行われる。
図11のステップS201では、入力される値の、ヘッダー部分を解析することにより、そのIndex値が、Indexフォーマット1によるものであるか否かの判断がなされる。Indexフォーマット1である場合には、ステップS202に進み、そうではない場合には、ステップS203に進む。
ステップS202では、Indexテーブル1の値により、プレーン0に対する描画を行う。
一方、ステップS203では、Index値が、Indexフォーマット2によるものであるか否かの判断がなされる。Indexフォーマット2である場合には、ステップS204に進み、そうではない場合には、ステップS206に進む。
ステップS204では、Indexテーブル2の値により、プレーン0に対する描画を行う。ステップS205では、Indexテーブル2の値により、プレーン1に対する描画を行う。
ステップS206では、RGBAの属性値(以下、「A値」ともいう。)により、プレーン0に対する描画を行う。ステップS207では、RGBAのR値によりプレーン1に対する描画を行う。ステップS208では、RGBAのG値によりプレーン2に対する描画を行う。ステップS209では、RGBAのB値によりプレーン3に対する描画を行う。
(写真描画の詳細)
図12は、写真描画を説明するフロー図であって、図10のステップS105で行われる処理の詳細を説明するフロー図である。図12の処理は、写真画像RGBA描画処理部310により、メインメモリ600のプレーン0メモリ領域631からプレーン3メモリ領域634に対して行われる。
図12のステップS301では、写真画像のソース画像を読み込み、RGBA値を取得する。ステップS302では、RGBAのA値により、プレーン0に対する描画を行う。ステップS303では、RGBAのR値により、プレーン1に対する描画を行う。ステップS304では、RGBAのG値により、プレーン2に対する描画を行う。ステップS305では、RGBAのB値により、プレーン3に対する描画を行う。
(グラフィックスIndexテーブル生成処理部320の構成)
図13は、グラフィックスIndexテーブル生成処理部320の装置構成の例を示すブロック図である。図13のグラフィックスIndexテーブル生成処理部320は、バスアービタI/F321、RGBA値レジスタ322、Indexテーブル1処理部323、Indexテーブル2処理部324、Index値レジスタ325、テーブルのRGBA値レジスタ326、及び、制御部329を有する。
バスアービタI/F321は、RGBA値レジスタ322、Index値レジスタ325、及び、テーブルのRGBA値レジスタ326が、メインメモリアービタ113と信号を送受信する際の、インタフェースである。
RGBA値レジスタ322は、PDL解析処理部140により取得されたカラー値を格納する。このカラー値は、RGBA値により表現される。
Indexテーブル1処理部323は、RGBA値レジスタ322に格納されたカラー値をIndexフォーマット1によるIndex値に変換する。なお、Idnexテーブル1処理部323は、Indexフォーマット1によるIndexテーブルの生成も行う。
Indexテーブル2処理部324は、RGBA値レジスタ322に格納されたカラー値をIndexフォーマット2によるIndex値に変換する。なお、Indexテーブル2処理部324は、Indexフォーマット2によるIndexテーブルの生成も行う。
Index値レジスタ325は、Indexテーブル1処理部323及びIndexテーブル2処理部324により求められたIndex値を格納する。格納されたIndex値は、バスアービタI/F321により、画像処理部700に転送される。
テーブルのRGBA値レジスタ326は、Indexテーブル1処理部323及びIndexテーブル2処理部324で求められたIndexテーブルを格納する。格納されたIndexテーブルは、バスアービタI/F321により、画像処理部700に転送される。
(Indexテーブル1処理部323のハードウェア構成の例)
図14は、Indexテーブル1処理部323のハードウェア構成の例を説明する図である。図14のIndexテーブル1処理部323は、レジスタ30aないし30f、比較器31aないし31f、インデックス生成部33、OR演算器34、及び、マルチプレクサ35を有する。
レジスタ30aないし30fは、128個のレジスタであり、RGBA値レジスタ322から入力されるRGBA値データを受け取り、Index値に対応するデータとして記憶する。
比較器31aないし31fは、128個の比較器であり、レジスタ30aないし30fに格納されたRGBAデータを並列に比較し、比較結果を、インデックス生成部33及びOR演算器34に対して出力する。
インデックス生成部33は、比較器31aないし31fから出力される比較結果により、Index値を生成する。OR演算器34は、比較器31aないし31fからの出力に、「比較結果が一致する」旨の情報があるか否かを判定する機能を有する。すなわち、比較結果が一致する場合に値1を有する場合には、比較器31aないし31fのうち、一つでも値1を出力するものがあるときに、OR演算器34の出力が値1となる。
マルチプレクサ35は、レジスタ30aないし30fに格納されたRGBA値のうち、一の値を選択し、テーブルのRGBA値レジスタ326に対して転送する。
図15は、Indexテーブル2処理部324のハードウェア構成の例を説明する図である。図15のIndexテーブル2処理部324は、図14のIndexテーブル1処理部323に対し、Index値のダイナミックレンジが異なる。Indexテーブル1処理部323は、0から127の128個のIndex値に対応するIndexテーブル1を生成するのに対し、Indexテーブル2処理部324は、0から255の256個のIndex値に対応するIndexテーブル2を生成する。
そこで、Indexテーブル2処理部324は、レジスタ及び比較器の数が、Indexテーブル1処理部323の倍となる。その他の構成は、Indexテーブル1処理部323と同一であるので、ここでは、説明を省略する。
(グラフィックスIndexテーブル生成処理部320の処理)
図16は、グラフィックスIndexテーブル生成処理部320の処理を説明するフロー図である。図16のステップS401では、グラフィックスIndexテーブル生成処理部320が、RGBAのカラー情報を受け取り、RGBA値レジスタ322に格納する。ステップS402では、Indexテーブル1処理部323が、Indexフォーマット1のIndexテーブル1に、ステップS401で格納されたRGBA値を検索する。
ステップS403では、ステップS402での検索の結果、Indexテーブル1に検索したRGBA値があるか否かを判断する。RGBA値がある場合には、ステップS404に進み、RGBA値が無い場合には、ステップS405に進む。
ステップS404では、Indexテーブル1処理部323が、ステップS401で受け取ったRGBA値は、Indexフォーマット1に含まれる値であると判断し、対応するIndex値をIndex値レジスタ325に出力する。
ステップS405では、Indexテーブル1処理部323が、Indexテーブル1に、未だRGBA値が対応づけられていないIndex値があるか否か、すなわち、Indexテーブル1に空きレコードがあるか否かを判断する。空きがある場合には、ステップS406に進み、空きがない場合には、ステップS407に進む。
ステップS406では、Indexテーブル1処理部323が、RGBA値をIndexテーブル1に登録し、さらに、そのRGBA値をIndexフォーマット1に対応するものとして、Index値をIndex値レジスタ325に出力する。
ステップS407では、Indexテーブル2処理部324が、Indexフォーマット2のIndexテーブル2に、ステップS401で格納されたRGBA値を検索する。
ステップS408では、ステップS407での検索の結果、Indexテーブル2に検索したRGBA値があるか否かを判断する。RGBA値がある場合には、ステップS409に進み、RGBA値が無い場合には、ステップS410に進む。
ステップS409では、Indexテーブル2処理部324が、ステップS401で受け取ったRGBA値は、Indexフォーマット2に含まれる値であると判断し、対応するIndex値をIndex値レジスタ325に出力する。
ステップS410では、Indexテーブル2処理部324が、Indexテーブル2に、未だRGBA値が対応づけられていないIndex値があるか否か、すなわち、Indexテーブル2に空きレコードがあるか否かを判断する。空きがある場合には、ステップS411に進み、空きがない場合には、ステップS412に進む。
ステップS411では、Indexテーブル2処理部324が、RGBA値をIndexテーブル2に登録し、さらに、そのRGBA値をIndexフォーマット2に対応するものとして、Index値をIndex値レジスタ325に出力する。
ステップS412では、Indexフォーマット1及びIndexフォーマット2の何れでもない、カラー画像フォーマットであるとして、RGBA値を出力する。
(画像処理部700のハードウェア構成)
図17は、画像処理部700のハードウェア構成の例を示す図である。図17の画像処理部700は、Indexテーブル変換処理部720、色変換処理部735、及び、階調処理部750を有する。画像処理部700は、さらに、これらの各部に接続されるバッファー等の記憶部と、バスを介して入出力されるデータを制御する各部を有する。
画像処理部700が有する記憶部は、Indexテーブル1記憶部711、Indexテーブル2記憶部712、格子点データ記憶部736、ガンマテーブル記憶部737、ハーフトーンパラメータ記憶部751、及び、しきい値マトリックス記憶部752、である。
また、画像処理部700が有する入出力されるデータを制御する各部は、画像処理パラメータ読み込み部761、パラメータアドレス生成部762、DMAパラメータ記憶部763、Index&RGB画像読み込み部729、画像処理後画像バッファー766、画像処理後画像アドレス生成部767、画像処理後画像書き込み部768、及び、バスアービタI/F790である。
バスアービタI/F790は、画像処理パラメータ読み込み部761、Index&RGB画像読み込み部729、及び、画像処理後画像書き込み部768から、バスアービタへの要求を調停する。
画像処理パラメータ読み込み部761は、バスアービタI/F790を介してメインメモリ600の画像処理パラメータメモリ領域から各種のパラメータを読み込み、画像処理部700が有するそれぞれの記憶部へ転送する。
パラメータアドレス生成部762は、メインメモリ600の画像処理パラメータメモリ領域から各種のパラメータを読み込む際のアドレスを生成する。DMAパラメータ記憶部763は、画像処理パラメータ読み込み部761から受け取った、画像データのバンド幅、バンド高さ、バンドスタートアドレス、階調処理後CMYKバンド幅、階調処理後CMYKバンド高さ、C、M、Y、Kバンドスタートアドレス等を格納する。これらのパラメータは、画像処理後の画像データを再びメインメモリ600に格納させる際に供せられる。
Indexテーブル1記憶部711とIndexテーブル2記憶部712とは、それぞれ、グラフィックスIndexテーブル生成処理部320により生成されたIndexテーブル1とIndexテーブル2とを格納する。
格子点データ記憶部736は、色変換処理部735が用いる格子点データ等を、画像処理パラメータ読み込み部761から受け取り格納する。ガンマテーブル記憶部737は、色変換処理部735が用いるガンマデータ等を、画像処理パラメータ読み込み部761から受け取り格納する。
ハーフトーンパラメータ記憶部751は、ハーフトーンパラメータ等を、画像処理パラメータ読み込み部761から受け取り格納する。しきい値マトリックス記憶部752は、しきい値マトリックス等を、画像処理パラメータ読み込み部761から受け取り格納する。
Indexテーブル変換処理部720は、Index値変換部721、Index&RGB画像アドレス生成部722、プレーン0バッファー723、プレーン1バッファー724、プレーン2バッファー725、及び、プレーン3バッファー726を有する。
プレーン0バッファー723ないしプレーン3バッファー726の4個のバッファーは、プレーン0ないしプレーン3の4つのプレーンに対応する。なお、これらの4個のバッファーは、1画素毎に格納すると、読み込み等の効率が悪くなるため、複数の画素の情報を格納する。
Index値変換部721は、4個のバッファーから、プレーン0ないしプレーン3のRGBA画像データを読み込み、IndexテーブルによりRGB画像値へ変換し、色変換処理部735に転送する。
Index&RGB画像アドレス生成部722は、メインメモリ600のIndex&RGBAページメモリ格納領域からIndex&RGBAページ画像を読み込む際のアドレスを生成する。
Index&RGB画像読み込み部729は、バスアービタI/F790を介してIndex&RGBAページ画像を読み込み、Indexテーブル変換処理部720が有する4個のバッファーに転送する。
色変換処理部735は、Index値変換部721から出力されるRGB画像データを読み込み、RGBからCMYへの色変換処理と、下色除去処理を行う。色変換処理部735は、処理されたCMYKデータを、階調処理部750に転送する。
階調処理部750は、ハーフトーン処理を行う。階調処理部750は、しきい値マトリックス記憶部752からしきい値マトリックスを読み込み、色変換処理部735から受け取ったCMYKデータに対してハーフトーン処理を行う。階調処理部750は、メインメモリ600の読み込み及び書き込みの単位であるワード毎に、画像処理後画像バッファー766へ階調処理後のデータを転送する。
画像処理後画像バッファー766は、階調処理部750で処理された画像データを格納する。これにより、メインメモリ600に対し、複数のワードデータを効率良くバースト転送することができる。
画像処理後画像書き込み部768は、バスアービタI/F790を介して、画像処理後画像バッファー766に格納された複数ワードの画像データを、メインメモリ600の階調処理後CMYKページメモリ格納領域へ書き込む。
画像処理後画像アドレス生成部767は、メインメモリ600の階調処理後CMYKページメモリ格納領域のアドレス演算を行う。画像処理後画像アドレス生成部767は、水平ライン単位でアドレスを生成する。ここで、Index&RGBAページメモリ格納領域へのアクセスと、階調処理後CMYKページメモリ格納領域へのアクセスを、どちらも水平ライン単位にするとよい。
(Index値からRGB値へ変換する処理)
図18は、Indexテーブル変換処理部720におけるIndex値からRGB値へ変換する処理のフロー図である。図18のステップS501では、Indexフォーマットの画素データを読み込み、プレーン0バッファー723ないしプレーン3バッファー726の4つのプレーンに格納する。
ステップS502では、プレーン0に含まれるヘッダーが、”0”であるか否かを判断する。”0”である場合には、Indexテーブル1による画像データであると判断し、ステップS504に進む。”0”ではない場合には、ステップS503に進む。
ステップS504では、プレーン0に格納されている値を、Indexテーブル1のIndex値とし、対応するRGBA値を求める。
ステップS503では、プレーン0に含まれるヘッダーが、”01”であるか否かを判断する。”01”である場合には、Indexテーブル2による画像データであると判断し、ステップS505に進む。”01”ではない場合には、ステップS506に進む。
ステップS505では、プレーン1に格納されている値を、Indexテーブル2のIndex値とし、対応するRGB値を求める。また、プレーン0に格納されている値により、属性値を求める。
ステップS506では、プレーン0に格納されている値で、属性値を求め、さらに、プレーン1に格納されている値でR値、プレーン2に格納されている値でG値、プレーン3に格納されている値でB値を求める。
なお、ステップS504、ステップS505、及び、ステップS506で求められたRGBA値は、色変換処理部735に対して出力される。
ステップS507では、Index&RGBAページメモリ格納領域に格納されているプレーンの全ての画素が処理されたか否かの判断がなされる。全ての画素が処理されている場合には、処理を終了し、処理されていない画素がある場合には、ステップS501に戻って処理を繰り返す。
以上、説明した第1の実施の形態では、写真画像とグラフィックス画像とで描画処理を分離している。なお、写真画像を全てカラー画像と判断する他に、色数の少ない写真画像であると判断される場合には、グラフィックス画像と同様にIndex値への変換処理を行ってよい。
第1の実施の形態では、32bitのカラー値、8bitのIndexフォーマット1、及び、16bitのIndexフォーマット2で表現する。Indexフォーマットを用いることにより、例えば、Indexフォーマット1で描画する場合には、1つのプレーンのみ描画すればよく、処理を高速にすることができる。
また、Indexテーブル生成処理部において、RGBA値をIndexテーブルに登録する機能をハードウェアにより実現することにより、多くのIndexテーブルを生成する処理も高速化することができる。特に下地(白)をページ全面に描画するクリアー処理は、Indexフォーマットによる表現に適しているため、高速化することが可能である。
〔第2の実施の形態〕
第2の実施の形態では、第1の実施の形態と異なり、画像フォーマットを、色毎のプレーンとしない。これにより、メインメモリ600に格納する形態が、第1の実施の形態とは異なる。第2の実施の形態では、ページデータを格納する領域を、Index値又は属性値を記憶するIndex&属性ページメモリ格納領域と、RGB値を記憶するRGBXページメモリ格納領域と、に分離する。
Index値による描画は、Index&属性ページメモリ格納領域に行う。また、RGB値による描画の際は、Index&属性ページメモリ格納領域に属性値を描画し、RGBXページメモリ格納領域にRGB値を描画する。これにより、メモリアクセスを少なくし描画を高速化することができる。
(メインメモリ600aの構成)
図19は、メインメモリ600aが有する各領域を説明する図である。メインメモリ600aは、プログラム領域、PDL格納メモリ領域、画像処理パラメータメモリ領域、Index&属性ページメモリ格納領域640、RGBXページメモリ格納領域650、階調処理後CMYKページメモリ格納領域、及び、その他のデータを格納する領域を有する。
プログラム領域、PDL格納メモリ領域、画像処理パラメータメモリ領域、階調処理後CMYKページメモリ格納領域、及び、その他のデータを格納する領域は、図3のメインメモリ600と同一のデータを格納する。
Index&属性ページメモリ格納領域640は、属性値又はIndex値を記憶する。RGBXページメモリ格納領域650は、RGBX値を記憶する。
(属性フォーマットとIndexフォーマット)
図20は、属性フォーマットとIndexフォーマットとの例を説明する図である。図20の属性フォーマットは、属性フォーマットであることを示す1ビットのヘッダーと、属性値を表す7ビットの値とからなる。この例では、ヘッダーの値は”0”である。
図20のIndexフォーマットは、Indexフォーマットであることを示す1ビットのヘッダーと、Index値を表す7ビットの値とからなる。この例では、ヘッダーの値は”1”である。図20のIndexフォーマットは、128個までのIndex値を有するIndexテーブルに対応することができる。
なお、属性フォーマットによる画素とIndexフォーマットによる画素とは、何れも、Index&属性ページメモリ格納領域640に格納され、ヘッダーで区別される。
(RGBXフォーマット)
図21は、RGBXフォーマットの例を説明する図である。図21のRGBXフォーマットは、8ビットの空データと、8ビットのR値、8ビットのG値、及び、8ビットのB値とからなる計32ビットを1画素とする。
(Indexテーブルの例)
図22は、本実施形態のIndexテーブルの例を示す図である。図22では、0から127のIndexテーブル値のそれぞれに対し、R,G,Bからなる色情報が1つずつ対応づけられている。
(描画処理されたメモリ領域の例)
図23及び図24は、本実施形態により描画処理された画像の例を示す図であって、図5(a)のRGB画像をメインメモリ600aの領域に描画する際の例である。
図23では、Index&属性ページメモリ格納領域640において、グラフィックス画像の領域にIndexフォーマットによる描画が行われ、写真画像の領域に属性フォーマットによる描画が行われている。
図24では、RGBXページメモリ格納領域650において、写真画像の領域にRGBXフォーマットによる描画が行われている。
図23及び図24において、グラフィックス画像の領域は色数が少ないことから、Indexフォーマットで描画することにより、描画に供せられるメモリ領域が少なく済み、処理を高速にすることができる。
(画像データを処理する機能の構成)
図25は、本実施形態のカラープリンタ1aが有する、画像データを処理する機能の構成を説明する図である。カラープリンタ1aは、PDL記憶部130、PDL解析処理部140、描画処理部300a、RGBXページ画像記憶部611、Index&属性ページ画像記憶部612、画像処理部700a、階調処理後CMYKページ画像記憶部620、DMA部117、プリンタエンジン180を有する。なお、図4のカラープリンタ1と同一の機能及び構成を有する各部は、図4と同一の符号を付し、ここでは、説明を省略する。描画処理部300a、及び、画像処理部700aは、例えば、CPU190がプログラムを実行することにより実現される。
また、RGBXページ画像記憶部611及びIndex&属性ページ画像記憶部612は、メインメモリ600aに設けられる。RGBXページ画像記憶部611は、RGBXページメモリ格納領域650に対応する。Index&属性ページ画像記憶部612は、Index&属性ページメモリ格納領域640に対応する。
描画処理部300aは、写真画像RGBA描画処理部310a、グラフィックスIndexテーブル生成処理部320、及び、グラフィックスIndex描画処理部330aを有する。
グラフィックスIndex描画処理部330aは、グラフィックスIndexテーブル生成処理部320から、グラフィックス描画コマンドとIndex値とを受け取り、メインメモリ600aのIndex&属性ページ画像記憶部612に、Indexフォーマットによる描画を行う。
グラフィックスIndex描画処理部330aは、また、Index値が対応しないRGBA値については、Index&属性ページ画像記憶部612に、属性値による描画を行い、RGBXページ画像記憶部611に、RGBXメモリフォーマットによる描画を行う。
写真画像RGBA描画処理部310aは、PDL解析処理部140から、写真描画コマンドと、写真画像のソース画像とを受け取り、RGBXページ画像記憶部611にRGBX値による描画を行い、Index&属性ページ画像記憶部612に、属性値による描画を行う。
RGBXページ画像記憶部611は、RGBXフォーマットによる画素値を格納する。Index&属性ページ画像記憶部612は、Indexフォーマット又は属性フォーマットによる画素値を格納する。
画像処理部700aは、Indexテーブル記憶部710、Indexテーブル変換処理部720a、RGB→CMY色変換処理部730、UCR処理部740、及び、階調処理部750を有する。
Indexテーブル変換処理部720aは、Index&属性ページ画像記憶部612からIndex値又は属性値を読み込み、Indexフォーマットに基づきRGB値へ変換する。
(グラフィックスIndex描画処理部330aにおける処理)
図26は、グラフィックスIndex描画処理部330aにおけるグラフィックス描画処理の例を示すフロー図である。ステップS601では、入力された値が、Indexテーブルに含まれるIndex値であるか否かの判断がなされる。Indexテーブルに含まれる値の場合には、ステップS602に進み、Indexテーブルに含まれない値の場合には、ステップS603に進む。ステップS602では、Index&属性ページ画像記憶部612に、Indexテーブルに含まれているIndex値により、描画を行う。
一方、ステップS603では、Index&属性ページ画像記憶部612に、属性値により、描画を行う。ステップS604では、RGBXページ画像記憶部611に、RGBXの値により描画を行う。
(写真画像RGBA描画処理部310aにおける処理)
図27は、写真画像RGBA描画処理部310aにおける写真画像の描画処理の例を示すフロー図である。図27のステップS701では、写真画像RGBA描画処理部310aが、写真画像のソース画像を読み込む。ステップS702では、属性値により、Index&属性ページ画像記憶部612に描画を行う。ステップS703では、RGBXの値により、RGBXページ画像記憶部611に描画を行う。
(画像処理部700aのハードウェア構成)
図28は、画像処理部700aのハードウェア構成の例を示す図である。図28の画像処理部700aは、Indexテーブル変換処理部720a、色変換処理部735、及び、階調処理部750を有する。画像処理部700aは、さらに、これらの各部に接続されるバッファー等の記憶部と、バスを介して入出力されるデータを制御する各部を有する。
画像処理部700aが有する記憶部は、Indexテーブル記憶部710、格子点データ記憶部736、ガンマテーブル記憶部737、ハーフトーンパラメータ記憶部751、及び、しきい値マトリックス記憶部752である。
また、画像処理部700が有する入出力されるデータを制御する各部は、画像処理パラメータ読み込み部761、パラメータアドレス生成部762、DMAパラメータ記憶部763、Index&属性/RGBX画像読み込み部729a、画像処理後画像バッファー766、画像処理後画像アドレス生成部767、画像処理後画像書き込み部768、及び、バスアービタI/F790である。
なお、図28に示す画像処理部700aの構成のうち、図17の画像処理部700と同一の機能及び構成を有する各部は、図17と同一の符号を付し、ここでは説明を省略する。
Indexテーブル変換処理部720aは、Index値変換部721a、Index&属性RGB画像アドレス生成部722、Index&属性バッファー727、及び、RGBXバッファー728を有する。
Index&属性バッファー727は、複数画素のIndex値又は属性値を格納する。RGBXバッファー728は、複数画素のRGBX値を格納している。
本実施の形態では、Indexフォーマットには、RGBX画像データが付随せず、属性フォーマットには、RGBX画像データが付随する。そこで、Index値又は属性値と、RGBX画像データと、を順次読み込むと効率が悪くなる。図28の例では、Index値又は属性値とRGBX画像データとの両方を同時に読み込み、それぞれ、Index&属性バッファー727及びRGBXバッファー728へ格納する。
Index値変換部721aは、Index&属性バッファー727から、Index値又は属性値を読み込む。Index値変換部721aは、Index値を読み込んだ場合は、RGB画像データを読み込み、Index画素フォーマットに基づきRGB値へ変換する。Index値変換部721aは、また、属性値を読み込んだ場合には、付随するRGBX値を、RGBXバッファー728から読み込み、RGB値を取得する。
Index値変換部721aは、RGB値を色変換処理部735へ転送する。
Index&RGB属性RGB画像アドレス生成部722aは、メインメモリ600aのIndex&属性ページメモリ格納領域640及びRGBXページメモリ格納領域650から、それぞれ、属性値又はIndex値とRGBX値とを読み込む際のアドレスを生成する。
Index&属性/RGBX画像読み込み部729aは、バスアービタI/F790を介してIndex&RGBAページ画像を読み込み、Indexテーブル変換処理部720が有する4個のバッファーに転送する。
(Indexテーブル変換処理部720aにおける処理)
図29は、Indexテーブル変換処理部720aにおける処理を示す図である。ステップS801では、Index&属性バッファー727に格納されているIndex値又は属性値と、RGBXバッファー728に格納されたRGBX画素データとを読み込む。
ステップS802では、ステップS801で読み込んだデータのヘッダーの値が”1”であるか否かを判定する。”1”である場合、すなわち、Indexテーブルによる値の場合には、ステップS803に進む。”1”ではない場合には、ステップS804に進む。
ステップS803では、Index&属性バッファー727から読み込んだ値からIndex値を取得して、Indexテーブルにアクセスし、RGBA値を求める。一方、ステップS804では、Index&属性バッファー727から読み込んだ値から属性値を取得し、さらに、RGBX画素データから、RGB値を求める。
ステップS805では、1のページ内の全ての画素に対する処理が終了したか否かの判定がなされる。全ての画素に対する処理が終了している場合には、インデックステーブルによる変換処理を終了する。処理されていない画素がある場合には、ステップS801からの処理を繰り返す。
第2の実施の形態では、Index値又は属性値のメモリ領域とRGBX値のメモリ領域とをそれぞれ有する。これにより、Index値で描画する際に、Index値又は属性値のメモリ領域のみ描画すればよく、処理を高速にすることができる。
(コンピュータ等による実現 MFP)
図30は、第1及び第2の実施の形態に係る画像処理装置を実現するコンピュータの構成を説明する図である。図30のコンピュータは、主処理部800、入力装置810、表示装置820、スキャナ830、プロッタ840、NIC860、ドライブ装置880、ハードディスク装置(以下、「HDD」という。)890、入力I/F819、表示I/F829、スキャナI/F839、プロッタI/F849、ドライブI/F889、及び、HDDI/F899を有する。
主処理部800は、コンピュータプログラムを実行して各機能を実現する。主処理部800は、例えば、CPU801、ROM808、及び、RAM809を有する。CPU801は、コンピュータプログラムを実行することにより、コンピュータが有する各デバイス等の制御を行う。ROM808は、例えば、コンピュータプログラムやパラメータ等が格納され、CPU801にそれらが供せられる。RAM809は、例えば、CPU801がコンピュータプログラムを実行する際のワークメモリとして供せられる。
入力装置810は、例えば、キーボードやマウス等の入力デバイスとして構成され、コンピュータに対する指示等が入力される。表示装置820は、コンピュータの状態等が表示される。スキャナ830は、画像を光学的に読み取って、画像データを生成する。プロッタ840は、媒体上に画像を形成して出力する。
NIC860は、コンピュータと外部とをネットワークを介して接続する際のインタフェースの機能を実現し、その制御を行う。ドライブ装置880は、記録媒体が挿入され、その記録媒体に記録された情報を読み出し、またその記録媒体に情報を記録する。HDD890は、大容量のデータを格納する記憶手段である。
入力I/F819は、表示I/F829、スキャナI/F839、プロッタI/F849、ドライブI/F889、及び、HDD I/F899は、それぞれ、入力装置810、表示装置820、スキャナ830、プロッタ840、ドライブ装置880、及び、HDD890がバスを介して主処理部800と接続される際のインタフェースである。
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
1、1a カラープリンタ
100 電装・制御部
113 メインメモリアービタ
114 メインメモリコントローラ
117 DMA部
118 エンジンコントローラ
119 通信処理部
130 PDL記憶部
140 PDLプリンタ解析処理部
180 プリンタエンジン
300、300a 描画処理部
310、310a 写真画像RGBA描画処理部
320 グラフィックスIndexテーブル生成処理部
322 RGBA値レジスタ
323 Indexテーブル1処理部
324 Indexテーブル2処理部
325 Index値レジスタ
326 テーブルのRGBA値レジスタ
329 制御部
330、330a グラフィックスIndex描画処理部
400 Indexテーブル生成処理部
500 Indexテーブルメモリ
600、600a メインメモリ
610 Index&RGBAページ画像記憶部
611 RGBXページ画像記憶部
612 Index&属性ページ画像記憶部
620 階調処理後CMYKページ画像記憶部
700、700a 画像処理部
710 Indexテーブル記憶部
711 Indexテーブル1記憶部
712 Indexテーブル2記憶部
720、720a Indexテーブル変換処理部
721、721a Index値変換部
722 Index&RGB画像アドレス生成部
722a Index&属性RGB画像アドレス生成部
723 プレーン0バッファー
724 プレーン1バッファー
725 プレーン2バッファー
726 プレーン3バッファー
727 Index&属性バッファー
728 RGBXバッファー
729 Index&RGB画像読み込み部
729a Index&属性/RGBX画像読み込み部
730 RGB→CMY色変換処理部
735 色変換処理部
736 格子点データ記憶部
737 ガンマテーブル記憶部
740 UCR処理部
750 階調処理部
751 ハーフトーンパラメータ記憶部
752 しきい値マトリックス記憶部
761 画像処理パラメータ読み込み部
762 パラメータアドレス生成部
763 DMAパラメータ記憶部
766 画像処理後画像バッファー
767 画像処理後画像アドレス生成部
768 画像処理後画像書き込み部
800 主処理部
810 入力装置
820 表示装置
830 スキャナ
840 プロッタ
880 ドライブ装置
特開平6−139364号公報 特許第3218034号公報 特開平11−78126号公報

Claims (14)

  1. 入力画像の画像データを解析して、色値と該色値に対応づけられるインデックス値とを有するインデックステーブルを生成するインデックステーブル生成手段と、
    前記入力画像のうち、前記インデックス値に対応づけられる色値の画素からなり前記画素が前記インデックス値により表現されるインデックス画像を描画するインデックス描画手段と、
    前記入力画像のうち、前記インデックス値に対応づけられない色値の画素からなる多値画像を描画する多値描画手段と、
    前記インデックス画像の画素と前記多値画像の画素とを、前記入力画像における位置に対応づけて、一の記憶領域に格納する記憶手段と、
    前記インデックステーブルに基づいて、前記記憶手段に格納された前記インデックス画像のインデックス値を前記色値に変換する変換手段と、
    を有し、
    前記記憶手段に格納される画素は、前記インデックス画像と前記多値画像との何れに含まれる画素であるかを表す識別情報を有し、
    前記記憶領域は、前記色値の色成分毎に対応づけられる複数のプレーンからなり、
    前記インデックス画像は、一以上の前記プレーンに格納される
    ことを特徴とする画像処理装置。
  2. 前記変換手段は、一の画素に対応する色値又はインデックス値を、複数の前記プレーンから、一の読み出しコマンドにより読み出すことを特徴とする請求項記載の画像処理装置。
  3. 前記インデックス画像の画素が有する識別情報と前記多値画像の画素が有する識別情報とは、一のプレーンに格納されることを特徴とする請求項記載の画像処理装置。
  4. 前記インデックステーブル生成手段は、前記入力画像の画像データに含まれるオブジェクト毎に、該オブジェクトの色数が所定数より少ない場合に該オブジェクトを構成する画素に対するインデックステーブルを生成し、
    前記インデックス描画手段は、前記オブジェクト毎に、該オブジェクトのインデックステーブルに基づいて、インデックス画像を描画し、
    前記変換手段は、前記オブジェクト毎に、該オブジェクトのインデックステーブルに基づいて変換することを特徴とする請求項1ないし何れか一項に記載の画像処理装置。
  5. 前記インデックステーブル生成手段は、前記オブジェクトがグラフィック画像又は文字画像の場合に、該オブジェクトの色数が所定数より少ないと判断することを特徴とする請求項記載の画像処理装置。
  6. 前記インデックステーブル生成手段は、前記オブジェクトが写真画像の場合に、該オブジェクトの色数が所定数以上であると判断することを特徴とする請求項記載の画像処理装置。
  7. 前記インデックステーブル生成手段は、前記入力画像の下地色の色値を含むインデックステーブルを生成することを特徴とする請求項1ないし何れか一項に記載の画像処理装置。
  8. 前記識別情報は、ハフマン木により表現されることを特徴とする請求項記載の画像処理装置。
  9. 前記インデックステーブル生成手段は、一の画像データから複数の互いにインデックス数の異なるインデックステーブルを生成する場合に、色値毎に対応づけられる優先順に基づいて、前記画像データに含まれる画素の色値を、インデックス数の少ないインデックステーブルから順に含ませることを特徴とする請求項1ないし何れか一項に記載の画像処理装置。
  10. 入力画像の画像データを解析して、色値と該色値に対応づけられるインデックス値とを有するインデックステーブルを生成するインデックステーブル生成ステップと、
    前記入力画像のうち、前記インデックス値に対応づけられる色値の画素からなり前記画素が前記インデックス値により表現されるインデックス画像を描画するインデックス描画ステップと、
    前記入力画像のうち、前記インデックス値に対応づけられない色値の画素からなる多値画像を描画する多値描画ステップと、
    前記インデックス画像の画素と前記多値画像の画素とを、前記入力画像における位置に対応づけて、記憶手段が有する一以上の記憶領域のうちの一の記憶領域に格納する記憶ステップと、
    前記インデックステーブルに基づいて、前記記憶手段に格納された前記インデックス画像のインデックス値を前記色値に変換する変換ステップと、
    を有し、
    前記記憶手段に格納される画素は、前記インデックス画像と前記多値画像との何れに含まれる画素であるかを表す識別情報を有し、
    前記記憶領域は、前記色値の色成分毎に対応づけられる複数のプレーンからなり、
    前記インデックス画像は、一以上の前記プレーンに格納される
    ことを特徴とする画像処理方法。
  11. 前記変換ステップは、一の画素に対応する色値又はインデックス値を、複数の前記プレーンから、一の読み出しコマンドにより読み出すことを特徴とする請求項10記載の画像処理方法。
  12. 前記インデックステーブル生成ステップにおいて、前記入力画像の画像データに含まれるオブジェクト毎に、該オブジェクトの色数が所定数より少ない場合に該オブジェクトを構成する画素に対するインデックステーブルを生成し、
    前記インデックス描画ステップにおいて、前記オブジェクト毎に、該オブジェクトのインデックスデーブルに基づいて、インデックス画像を描画し、
    前記変換ステップにおいて、前記オブジェクト毎に、該オブジェクトのインデックステーブルに基づいて変換することを特徴とする請求項10または11に記載の画像処理方法。
  13. 前記インデックステーブル生成ステップにおいて、前記入力画像の下地色の色値を含むインデックステーブルを生成することを特徴とする請求項10ないし12何れか一項に記載の画像処理方法。
  14. 請求項10ないし13何れか一項に記載の画像処理方法を、コンピュータに実行させるためのコンピュータプログラム。
JP2009008089A 2009-01-16 2009-01-16 画像処理装置、画像処理方法、及び、コンピュータプログラム Expired - Fee Related JP5267147B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009008089A JP5267147B2 (ja) 2009-01-16 2009-01-16 画像処理装置、画像処理方法、及び、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009008089A JP5267147B2 (ja) 2009-01-16 2009-01-16 画像処理装置、画像処理方法、及び、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2010162802A JP2010162802A (ja) 2010-07-29
JP5267147B2 true JP5267147B2 (ja) 2013-08-21

Family

ID=42579386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009008089A Expired - Fee Related JP5267147B2 (ja) 2009-01-16 2009-01-16 画像処理装置、画像処理方法、及び、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5267147B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10348933B2 (en) 2016-11-15 2019-07-09 Ricoh Company, Ltd. Image processing apparatus, image processing method, and non-transitory recording medium
CN111930979A (zh) * 2020-07-29 2020-11-13 广州华多网络科技有限公司 图像处理方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151351A (ja) * 1991-11-29 1993-06-18 Hitachi Ltd カラー画像合成印刷出力方式
JPH07288705A (ja) * 1994-04-18 1995-10-31 Canon Inc カラー画像処理装置および方法
JP2001233913A (ja) * 2000-02-21 2001-08-28 Idemitsu Petrochem Co Ltd 線状α−オレフィンの製造方法
JP4031442B2 (ja) * 2004-01-07 2008-01-09 シャープ株式会社 画像処理装置、及びそれを備える画像形成装置
JP4623301B2 (ja) * 2005-12-17 2011-02-02 富士ゼロックス株式会社 画像処理装置、画像処理プログラム
JP5098340B2 (ja) * 2006-01-20 2012-12-12 セイコーエプソン株式会社 画像処理装置,画像処理プログラム及び画像処理方法

Also Published As

Publication number Publication date
JP2010162802A (ja) 2010-07-29

Similar Documents

Publication Publication Date Title
JP5558767B2 (ja) 画像処理装置及びその処理方法
JP5267255B2 (ja) 画像処理装置、画像処理方法及びプログラム
US20080273218A1 (en) Image Processing Apparatus, Control Method Thereof, and Program
JP2007166561A (ja) 画像処理装置および画像処理方法、画像処理プログラム、記憶媒体
JP5501041B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2015154363A (ja) 画像処理装置、画像処理方法及び画像形成装置
US8406517B2 (en) Image processing apparatus and image processing method
JP5267147B2 (ja) 画像処理装置、画像処理方法、及び、コンピュータプログラム
US20110188747A1 (en) Image processing apparatus
JP5684466B2 (ja) 複数のオブジェクト種別のオブジェクトに対応する、ラスタ画像バッファ中の少なくとも一つの画素を処理するための方法及びコンピュータで読み取り可能な媒体
JP6110708B2 (ja) 画像処理装置および画像処理方法
JP5899863B2 (ja) 印刷装置および印刷装置の印刷方法
JP5441676B2 (ja) 画像処理装置及びその処理方法
JP2009282964A (ja) 印刷データをレンダリングするシステム、方法及びコンピュータ可読媒体
JP5538996B2 (ja) 画像処理装置、画像処理方法、プログラム、および記憶媒体
JP2012169916A (ja) 画像処理装置および画像形成装置
JP4096672B2 (ja) データ変換方法およびデータ変換装置
JP5159115B2 (ja) 画像処理装置及び画像処理方法
JP2010074444A (ja) 画像圧縮装置、画像圧縮方法、画像復号装置、画像復号方法、及び、コンピュータプログラム
JP2010220131A (ja) 画像符号化装置、及び、画像符号化方法
JP2013143609A (ja) 画像処理装置、符号化方法及び復号化方法
JP5606223B2 (ja) 画像処理装置及びその処理方法
JP2007124230A (ja) 画像形成装置、色変換装置、及び色変換ルックアップテーブルの作成方法
JP2004104677A (ja) 画像処理装置、画像処理方法およびその方法を可能とする記録媒体
JP2005244748A (ja) 画像処理方法及び画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130322

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: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130422

LAPS Cancellation because of no payment of annual fees