説明

画像形成装置、画像データ処理方法及びプログラム

【課題】 半透明描画処理が設定されたPDLの中間データに対する多値描画処理を経て保存されたピクセルデータへのアクセス効率を向上させる。
【解決手段】 PDLの中間データをもとに多値描画処理で点順次のピクセルデータとして、色値を表すカラープレーン(4バイト)の他に、ピクセル属性を表すプレーン(1バイト)と半透明描画処理用の半透明値を表すディスティネーション透過プレーン(1バイト)を描画する際、ピクセル属性とディスティネーション透過の両プレーンをまとめて1ピクセルあたり2バイトで保存する統合プレーン(図9)を描画する。カラー変換、ハーフトーニング等のプリント出力用の画像データの処理に用いる各プレーンのピクセルデータを読出す時、RGB、CMYKいずれでも、1.5回の読出しコマンドで1ピクセルデータの読出しができ、処理の効率化が図れる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ページ記述言語(PDL)で表した入力データをプリント出力用のデータに処理する手段を有した画像形成装置(例えば、プリンタ、デジタル複写機、複合機等)に関し、より詳しくは、半透明描画処理が設定されたPDLの中間(ピクセル)データに対するアクセス効率を向上するための処理手段を有した画像形成装置、当該画像形成装置に用いる画像データ処理方法及びプログラムに関する。
【背景技術】
【0002】
従来から、プリンタ等の画像形成装置では、ホスト装置で作成されたページ記述言語(PDL)によって表した印刷コマンドを受取り、プリント出力用のデータとして処理し、出力に用いる。PDLとしては、PostScriptやPDF(Portable Document Format),PCL(Printer Control Language),XPS(XML(Extensible Markup Language)Paper Specification)等が使用され、画像形成装置は、これらのPDLで記述された印刷コマンドをそれぞれ解析するためのパーサを搭載する。
【0003】
PDLの1つであるXPSでは半透明描画という従来のPDLにはない処理が新たに追加されている。半透明描画処理は、半透明で画像同士を重ね合わせる処理で、設定された処理パラメータ(半透明値)に従って処理される。具体的には、重ね合わせる各画像の半透明値を1以下として、通常、重ね合わせたときに全体が1となるように、この処理パラメータが描画オブジェクト毎に設定される。
この半透明描画処理は、PDLを解析した後に得られる中間データをもとにRGB24ビットの多値のピクセルデータに対して行われる処理である。つまり、プリント出力用のデータを得るためには、描画オブジェクト毎にピクセル単位で画像処理(ハーフトーン処理、BG/UCR等)等を施すことが必要で、これらの処理は、RGB24ビットの多値で描画した後に行うが、半透明描画処理もこれらの処理と同様に、RGB24ビットの多値の描画データに対しても行う。
【0004】
ところで、PDLに設定されているオブジェクト情報は、中間データをもとにRGB24ビットの多値描画を行った後は、各ピクセルとのつながりがなくなってしまうため、その後行う画像処理に用いるために、中間データに記されていたオブジェクト情報を保存しておく必要がある。即ち、描画時にオブジェクト情報は、ピクセル毎に文字で描画されたものか、グラフィックスで描画されたものか、イメージで描画されたものか等を保存し、その後のカラー処理やハーフトーン処理で活用する必要がある。なお、画像処理に用いるために中間データに記されるオブジェクト情報を、各ピクセルに対し属性の決定に用いる情報プレーンの形で保存する方法は、従来から知られている(例えば、特許文献1、参照)。
【0005】
上記した半透明描画処理のパラメータ(半透明値)もオブジェクト情報の1つとして同様にピクセル毎に保存しておく必要がある。また、XPSの半透明描画処理では半透明描画処理の処理方法によっては、描画先の半透明描画処理の半透明値も保存しておく必要がある。この場合、重ねるデータ(「ソースデータ」という)の半透明値と描画先(「ディスティネーション」という)の半透明値を使用して描画する(下記[発明を実施するための形態]の記載、参照)ので、これもピクセル毎に保存する必要がある。
従って、RGB24ビット多値描画に必要な情報は、色値の他に、ピクセルの属性と半透明値がピクセル毎に必要になる。よって、RGBフルカラーで処理する場合は、1ピクセルあたり、RGB24ビットのほかに、ピクセルの属性と半透明値のためのそれぞれ1バイトを加えて、全部で5バイトのデータをハンドリングしながら処理を行うことになる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のように、半透明描画処理が設定されたPDLの中間(ピクセル)データに対し、RGBフルカラーで多値描画処理をする場合、1ピクセルあたり5バイト必要になるため、ピクセル単位に順番に配置すると、1ピクセルは5バイト単位のアクセスになる。コンピュータのCPU(Central Processing Unit)は、現在、通常4バイト(32ビット)のレジスタで構成されるのが普通であるから、1回の読出しで1ピクセル分(5バイトのデータ)にアクセスできないので、通常は1バイトずつアクセスすることになるので5回の命令で1ピクセルのデータの読み出しが可能になる。また、64ビットレジスタで構成されるCPUでも、5バイトずつアクセスすると、必ず境界にまたがる場合が出てくるので効率の悪さは同じである。
本発明は、上記従来技術の問題に鑑みてなされたもので、その目的は、半透明描画処理が設定されたPDLの中間データに対する多値描画処理を経て保存されたピクセルデータへのアクセス効率を向上させることにある。
【課題を解決するための手段】
【0007】
本発明は、ページ記述言語を解析して得られる中間形式の画像データを含む中間データを描画オブジェクトが識別できる状態で保存する中間データ保存手段と、中間データ保存手段に保存した中間データから、色値を表すプレーン及び描画オブジェクトを属性に含むピクセルの属性プレーンよりなるピクセルデータを描画する多値描画手段と、多値描画手段で描画したピクセルデータをもとにオブジェクト毎にカラー変換を行うカラー変換手段と、カラー変換手段によって変換された画像データを階調変換する階調処理手段を有した画像形成装置であって、前記中間データ保存手段は、半透明描画処理に用いるパラメータを中間データとして保存し、前記多値描画手段は、中間データ保存手段によって保存された中間データから描画するピクセルデータに半透明描画処理に用いるパラメータを表すプレーンを加えるとともに、描画した各プレーンのピクセルデータを保存する際に、描画した前記ピクセルの属性プレーンと半透明描画処理に用いるパラメータを表すプレーンをまとめて保存するようにしたことを特徴とする。
本発明は、ページ記述言語から中間形式の画像データを解析する工程と、解析された中間形式の画像データを含む中間データを描画オブジェクトが識別できる状態で保存する中間データ保存工程と、中間データ保存工程で保存した中間データから、色値を表すプレーン及び描画オブジェクトを属性に含むピクセルの属性プレーンよりなるピクセルデータを描画する多値描画工程と、多値描画工程で描画したピクセルデータをもとにオブジェクト毎にカラー変換を行うカラー変換工程と、カラー変換工程で変換された画像データを階調変換する階調処理工程を有した画像データ処理方法であって、前記中間データ保存工程は、半透明描画処理に用いるパラメータを中間データとして保存し、前記多値描画工程は、前記中間データ保存工程で保存された中間データから描画するピクセルデータに半透明描画処理に用いるパラメータを表すプレーンを加えるとともに、描画した各プレーンのピクセルデータを保存する際に、描画した前記ピクセルの属性プレーンと半透明描画処理に用いるパラメータをまとめて保存するようにしたことを特徴とする。
【発明の効果】
【0008】
本発明によると、半透明描画処理が設定されたPDLの中間(ピクセル)データに対する多値描画処理において、多値描画処理を経て保存されたピクセルデータへのアクセス効率の向上を図ることができる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態に係る画像形成装置のハードウェア構成の概略を示す図である。
【図2】画像形成装置(図1)のコントローラのソフトウェア構成を示すブロック図である。
【図3】描画コアモジュールを有するPDL部(図2参照)のモジュール構成を示すブロック図である。
【図4】PostScriptの描画コマンドの1例を示す図である。
【図5】描画モジュールI/Fが描画コマンド(図4)に応じて行う関数I/Fの設定例を示す図である。
【図6】描画オブジェクトに共通する、中間データの保存に用いるデータ構造を示す概念図である。
【図7】ID番号と描画コマンドの対応表の1例を示すものである。
【図8】中間データをもとに多値描画部によって描画されるピクセルデータの各プレーンのデータ構成を示す概念図である。
【図9】ピクセル属性・ディスティネーション透過の両プレーンを統合したフォーマットを示す概念図である。
【図10】バンディング処理におけるバンドデータとページデータとの関係を説明する概念図である。
【図11】バンドデータに対する描画処理の概略を示すフロー図である。
【発明を実施するための形態】
【0010】
以下に本発明に係る画像形成装置の実施形態を添付した図面を参照して説明する。
図1は、本発明の実施形態に係る画像形成装置のハードウェア構成の概略を示す図である。同図に示すように、画像形成装置は、ホストPC(Personal computer)20から印刷コマンドを受取り、受取った印刷コマンドに従いプリンタエンジン30を動作させるために画像形成装置を構成する各部を制御するコントローラ10と、用紙に画像を印刷するプリンタエンジン30と、ユーザインターフェースとして機能する操作パネル40で構成される。なお、コントローラ10は、後述するように、ホストPC20で作成されたPDLによって表した印刷コマンドを受取り、受取った印刷コマンドをもとにプリント出力用の画像データを生成し、この画像データを用いてプリンタエンジン30を動作させる。また、操作パネル40は、画像形成装置の動作状態等の機器条件をユーザに知らせる表示部と、またユーザが画像形成装置に動作条件を指示する入力を行う入力部を持つ。
【0011】
コントローラ10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、NV(Nonvolatile)RAM14、ネットワークインターフェース(I/F)15、エンジンI/F16、パネルI/F17の各要素よりなる。
CPU11は、ソフトウェアプログラムの命令を実行する。ROM12は、CPU11が動作するプログラムを格納するメモリである。RAM13は、コントローラソフトが作成するページメモリやCPU11によるソフトウェアの動作に必要なワークメモリとして利用されるメモリである。不揮発性のNVRAM14は、画像形成装置の印刷条件などの設定条件を保存しておくメモリである。
また、ネットワークI/F15は、ネットワーク上に接続されたホストPC20とデータのやり取りを行うためのI/Fである。エンジンI/F16は、プリンタエンジン30との間で印刷指示等のやり取りを行うためのI/Fである。パネルI/F17は、操作パネル40との間でデータの入出力を行うためのI/Fである。
【0012】
コントローラ10は、ROM12に格納するプログラムの一部に、受取った印刷コマンドをもとにプリント出力用の画像データを生成するためのプログラムを記録し、このプログラムをCPU11が駆動することで、後述する図2及び図3に示す機能を実現する手段を構成する。
なお、上記プログラムを記録する媒体としては、上記ROM12に限らず、HDD(Hard Disk Drive)、CD(Compact Disk)−ROM、MO(Magnet Optical Disk)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体を用いることができる。また、プログラムを、インターネット等のネットワーク(図示せず)に接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしても良い。
【0013】
図2は、画像形成装置(図1)のコントローラのソフトウェア構成を示すブロック図である。
コントローラ10内のソフトウェア構成は、プリンタコントロールシステム部104の制御下に、ホストPC20とデータの交換を行うネットワークI/F部102、操作パネル40の制御を行うパネルI/F部103、受け取った印刷コマンド(印刷データ)をもとにプリント出力用の画像データを生成するPDL部105、プリンタエンジン30に対し印刷指示等を行うエンジンI/F部106を有する。
【0014】
図3は、描画コアモジュールを有するPDL部(図2参照)のモジュール構成を示すブロック図である。
PDL部105は、プリンタコントロールシステム部104を介して受取ったPDLで記述された印刷コマンドを解析するPDLパーサ部120とPDLパーサ部120の解析結果をもとに描画処理及びプリント出力用の画像データへの変換処理を行う描画コアモジュール110よりなる。
描画コアモジュール110は、描画モジュールI/F113、中間データ保存部114、多値描画部115、カラー変換部116、CMYK2値変換部117の各部を有する。
【0015】
描画モジュールI/F113は、PDLパーサ部120から解析結果であるテキスト、イメージ、ベクターグラフィックス、描画設定情報を受け取るためのI/Fである。
中間データ保存部114は、テキスト、イメージ、ベクターグラフィックス等の描画オブジェクトを表す描画データと、色値及び半透明描画処理(後記で詳述)の設定等の描画設定情報を保存するための機能部である。
多値描画部115は、中間形式保存部114から指定されたカラースペースでピクセルデータを描画するための機能部である。
カラー変換部116は、多値描画部115によって多値で描画されたデータからデバイスカラー(機器に依存する特性)へ変換するための機能部である。
CMYK2値変換部117は、カラー変換部116で処理されたデバイスカラーをCMYK(C:シアン,M:マゼンタ,Y:イエロー,K:ブラック)2値でハーフトーン処理を行うための機能部である。
なお、多値描画部115のカラースペースは、ページの始めに描画カラースペースとして指定されたものに従う。RGBカラースペースが指定された場合は、RGB各色8ビットで描画される。
【0016】
描画コアモジュール110を有するPDL部105の構成を示す図3を参照しながら、PDLによって表した印刷コマンドの処理の流れを説明する。
先ず、PDLパーサ120は、印刷コマンドのPDLを解析する。この実施形態では、PDLパーサ120は、PostScript、PDF(Portable Document Format)、PCL(Printer Control Language)、XPS(XML(Extensible Markup Language)Paper Specification)等の各PDLの構文の違いをそれぞれ解析する機能を有し、解析したPDLに対応して、描画コアモジュール110の描画モジュールI/F113をコールする。
描画モジュールI/F113は、イメージ、グラフィックス、文字等の描画オブジェクトを表す描画データと、色値、ブラシ、半透明描画処理(後記で詳述)、線形状等の描画設定情報を得るためのI/Fとして、全てのPDLの描画に対応するI/Fとして機能する。
【0017】
描画モジュールI/F113は、PostScriptを例にすると、以下のような動作で描画コマンドに対応する。
PostScriptでは、例えば、図4に示すような描画コマンドが発行される。即ち、この描画コマンドには、RGBカラースペースで(R,G,B)=(0.5,0.0,0.0)の色で、ページの左下を原点として、左下、右上座標をそれぞれ(100,100)、(200,200)で指定して矩形を描画するコマンドが記述されている。
この描画コマンドに対し、描画モジュールI/F113は、色を設定するI/Fをコールし、その後、矩形領域を設定するために座標を設定するI/Fと塗りつぶし指定するI/Fをコールすることで、描画コマンドに従い矩形を描画することができる。
【0018】
図5は、このとき描画モジュールI/F113が描画コマンドに応じて行う関数I/Fの設定例を示す図である。
この関数I/Fは、図5に記述するように、図4の描画コマンドに応じて関数シーケンスへの変換を行う。図5の関数シーケンスにおけるsetcolorの第1引数は、RGBカラースペースを指定し、第2から第4引数でRGB各色の色値を0.0から1.0の範囲で指定する。図5の例では、図4の描画コマンドに対応する(0.5,0.0,0.0)が記述されている。
また、図5の関数シーケンスにおけるrectangleは、矩形描画関数で左上座標と右下座標が指定される。図5の例では、図4の描画コマンドに対応する(100,100、200,200)が記述されている。
なお、他の言語も同様に描画モジュールI/F113をコールすることで、描画コマンドに応じた描画が可能である。
【0019】
描画モジュールI/F113がコールされた後、中間データ保存部114により描画モジュールI/F113を介して得られる描画データと描画設定情報は、中間データとしてメモリ上またはファイル上に保存される。
上記した描画モジュールI/F113の動作例で説明すると、setcolor関数では、RGBカラースペースと色値(0.5,0.0,0.0)が設定され、これらを描画設定情報の一つとして得る。
描画データ(イメージ、グラフィックス、文字等の描画オブジェクト)を修飾するためのデータをグラフィックス状態といい、カラースペースと色値は、グラフィックス状態としてメモリ上に保存される。グラフィックス状態には、カラースペースと色値の他に、半透明描画処理のパラメータ、Raster Operation値、線幅などがある。
グラフィックス状態は、図形、イメージ、グラフィックス、文字等の描画オブジェクトを表す描画データと関連付けて保存するときに各オブジェクトに共通なデータ構造を持つ。
【0020】
図6は、各種描画オブジェクトに共通する、中間データの保存に用いるデータ構造の1例を示す概念図である。なお、図6中の(A)、(B)、(C)は、3種の描画オブジェクトに対しグラフィックス状態(Gstatus)を関連付けて保存するときのデータ構造の例を示したもので、それぞれグラフィックス状態(Gstatus)を表すデータを保存するデータ部601と描画オブジェクトを表す描画データを保存するデータ部603よりなる。
中間データのグラフィックス状態(Gstatus)を表すデータを保存するデータ部601には、描画データを修飾するためのデータとして、カラースペースと色値、線幅、半透明描画処理のパラメータ(半透明値)、Raster Operation値等の描画に共通な設定情報を保存する。図6に示す例では、固定長サイズのGstatusレコードを先頭に、次に描画オブジェクトを表す描画データのID番号がくる。
【0021】
ID番号は、描画コマンド(描画オブジェクト)と対応付けられている。
図7は、ID番号と描画コマンドの対応表の1例を示すものである。同図の例では、描画コマンドとして、5種類が示されている。ID=0x00は矩形描画(Rectangle)を、ID=0x01は直線の描画(LineDraw)を、ID=0x02は直線で囲まれた領域の塗りつぶし(LineFill)を、ID=0x03はImageの描画を、ID=0x04は文字の描画を示す。
また、ID番号に続くパッディングバイトとflagの後には、描画コマンドに対応する描画関数の引数、イメージデータ、コードデータ等が保存される。
図5に示した描画モジュールI/F113がrectangle描画コマンドに応じて行う関数I/Fによるコールの例を引くと、このときに保存される中間データ、即ち、図6中の(A)のグラフィックス状態(Gstatus)には、カラースペースと色値が保存され、rectangleの座標はleft=100,top=100,right=200,bottom=200が保存される。なお、ID番号の次のバイトは、パッディングバイトで0が入る。また、flagは、描画コマンドの属性として使われる。属性の例としてRectangleコマンドをClip(描画領域を限定するコマンド)とする場合は、Clipであることを示すビットをONにする。
【0022】
次に、多値描画部115の動作を説明する。
多値描画部115が行う描画処理は、中間データ保存部114によって保存された中間データをもとにピクセルデータを描画する処理で、プリント出力用の画像データ処理(カラー変換、ハーフトーニング等)の前段で行われる。描画結果のピクセルデータは、点順次に、即ち、ページ画像のピクセルの並び順に、メモリに保存される。
具体的には、設定されたカラースペースに従って各色8ビット(多値)の色値を表すカラープレーン、各ピクセルの属性をカラープレーンに対応付けて表すピクセル属性プレーン、半透明描画処理に用いる半透明値を表すディスティネーション透過プレーンの各プレーンのピクセルデータを点順次に描画する。
【0023】
図8は、中間データをもとに多値描画部115によって描画されるピクセルデータの各プレーンのデータ構成を示す概念図である。
図8(A)に示すカラープレーンは、ページ領域を描画するピクセルについて、点順示フォーマットで色値を保存する。同図に示す例は、カラースペースがRGB(RはRed、GはGreen、BはBlue)の場合で、RGB(各色8ビット)のピクセル色値が点順示に保存される。このカラープレーンは、同図に示すように、1ピクセル当たり4バイトを確保して実施する。なお、図8(A)中のPはパッティングバイトであり、カラースペースがRGBの場合には、Pの値は0が埋められる。なお、カラースペースがCMYKの場合4バイトを全部ピクセル色値で使用する。
【0024】
図8(B)に示すピクセル属性プレーンは、上記で説明した中間データ(図6に示したデータ構造、参照)に示される描画オブジェクトを表す描画データがピクセルデータを描画するときに消失してしまうと、各描画オブジェクトの特性をプリント出力用の画像データに反映できなくなるので、ピクセルの属性として描画オブジェクトを関連付けるために作られる。
この実施形態では、各ピクセルの属性を表すデータ値(図8(B)中に「A」として示す)を8ビットで持つ。8ビットであれば各ビットで8種類の属性値を表現できる。属性の使用用途は描画されたピクセルが文字、イメージ、グラフィックス等の描画オブジェクトのどれに属するかを区別するために使用される。
図8(C)に示す半透明描画処理に用いるディスティネーション透過プレーンは、描画先(ディスティネーション)の半透明描画処理に用いる半透明値(図8(C)中に「T」として示す)を8ビットで持つ。なお、透過プレーンの使用方法については、後記で詳細に説明する。
【0025】
図8の各プレーンは、メモリが1ページ分確保できる場合には、図6に示したデータ構造で保存された中間データを保存された順番に取り出して、指定されたアドレス(座標データ)に書込むことにより作られる。
図6に示したデータ構造では、描画コマンド(ID番号)を識別することで、ピクセル属性としての描画オブジェクトとピクセルのアドレス(座標データ)とが得られ、これらのデータに基づいて、ピクセル属性プレーンにデータを書込む。同時に、当該描画コマンドのGstatus(グラフィックス状態)からカラースペースと色値、半透明描画処理のパラメータとしての半透明値、Raster Operation値等が得られ、これらのデータに基づいて、カラープレーン、ディスティネーション透過プレーンそれぞれにデータを書込む。このとき、カラープレーン上で表す色値をindex値で表すようにする形態で実施することができる。なお、このindex値は、カラールックアップテーブルによって色値と関連付けておくことで復元できる。index値を採用することで、処理するデータ量を低減できる。
また、書き込む際に、以下に示すRaster Operation又は半透明描画処理を行う。
【0026】
ROP(Raster Operation)は、Windows(登録商標)OS(Operating System)のグラフィックスエンジンで使われる画像処理であり、同じ領域に重なる図形の色値をRGB各色毎にビット演算をする処理である。ビット演算は、OR,XOR,ANDがある。
他方、半透明描画処理は、Windows(登録商標) Vista(登録商標)でサポートされるXPSやPDFで使われる画像処理で、同じ領域に重なる色値の透過割合を0%から100%で指定することで半透明描画する処理である。
通常、ROPと半透明描画処理が同時に使われることはないが、使われていてもよい。
【0027】
ROPが行われる場合は、ディスティネーション透過プレーン(図8(C)、参照)には書込みは行わない。また、Gstatus(グラフィックス状態)から得られるRaster Operation値(ID)によって、重なる画像(ピクセル)の色値同士でOR,XOR,ANDのビット演算を実施し、演算結果をカラープレーンの当該ピクセルのRGB色値(各色8ビット)データとして書込む。
なお、Gstatus(グラフィックス状態)に保存されているROPを指定するIDは、0〜255までの256通りあり、それぞれどのようなビット演算が行うか予め定義されている。この定義に従ってRGB各色毎にソースとディスティネーションのビット演算を実施する。
また、ビット演算を実施した後に、ピクセル属性プレーンに描画したピクセルのオブジェクト情報(文字、イメージ、グラフィックス)をピクセルの属性として点順次に書込む。
【0028】
半透明描画処理は、次に示す処理方法で実施する。
この実施形態で採用する半透明描画処理は、大別すると、描画対象のソースデータに対してのみ処理条件を設定する場合と、ソースデータ(重ねるデータ)と描画後のディスティネーションデータ(描画先のデータ)の両方に処理条件を設定する場合がある。
前者の場合、ソースとディスティネーションそれぞれのピクセルの色値を、ソース:S、ディスティネーション:Dとし、ソースの半透明値(0から1の間をとる)を半透明値:αとすると、半透明描画処理後の色値:NewDは、下記式(1)に基づいて算出することができる。
NewD = S*α+(1−α)*D ・・・式(1)
この半透明描画後の色値を算出する処理は、RGBの各色毎に行う。また、上記のようにソースデータに対してのみ、ソースα処理条件を設定する場合、ディスティネーション透過プレーン(図8(C)、参照)は、使用しない。
【0029】
また、ソースデータと描画後のディスティネーションデータの両方に処理条件を設定する場合、
As:ソースの半透明値
Ad:ディスティネーション半透明値
Ad’:描画後のディスティネーション半透明値
Cs:ソース色値
Cd:ディスティネーション色値
Cd’:描画後のディスティネーション色値
とすると、Ad’及びCd’は、それぞれ例えば下記式(2)及び式(3)に基づいて算出することができる。
Ad’ = (1−As)*Ad+As ・・・式(2)
Cd’ = ((1−As)*Ad*Cd+As*Cs)/Ad’ ・・・式(3)
【0030】
上記式(2)に基づいて算出される描画後のディスティネーション半透明値Ad’は、ディスティネーション透過プレーン(図8(C)、参照)の該当ピクセルに描画されることになる。
ソースの半透明値Asは、Gstatus(グラフィックス状態)に設定されている。
多値描画部115が中間データの描画オブジェクトをページメモリに描画する場合、Gstatusに設定されている描画対象オブジェクトの半透明描画処理に用いる半透明値、色値を取り出して、またディスティネーションのカラープレーンに設定されている色値、同じくディスティネーション透過プレーンに設定されているディスティネーション半透明値を使用して、新たなディスティネーション色値とディスティネーション半透明値を計算して、算出値によりそれぞれの値を更新する。
なお、半透明描画処理の処理方法は、同一ページを処理する場合1つの方法に定められているので、複数の処理方法が混在することはない。
【0031】
以上の説明は、図8(A)に示すカラープレーンへRGBデータを書込む多値描画処理の場合を説明したが、CMYK各色8ビットで描画する場合は、図8(A)に示すカラープレーンにおける1ピクセル当たりパッディングバイトPを有するPRGB32ビットで表現していたものをCMYK32ビットで描画するように置き換えればよい。つまり、パッティングバイトPは設ける必要はない。なお、グレースケールの場合は1ピクセル当たり8ビットで描画することになる。
また、中間データのGstatusに半透明描画処理に用いる半透明値があるか否かを確認することにより半透明描画処理の有無を判定する手段を備え、この半透明描画処理判定手段によって半透明描画処理がないと判断された場合に、色値を表すプレーンとして、多値をCMYK2値形式の色値で表す描画処理を行うようにしてもよい。
【0032】
ここで、多値描画処理によって保存されるピクセルデータの保存方法について説明する。
この種の画像形成装置では、多値描画処理によって、色値の他に、ピクセルの属性と半透明値をピクセルデータとして生成し、これらのデータをプリント出力に用いるために保存する。このピクセルデータの保存方法は、従来技術のように、ピクセル単位に順番に配置すると、1ピクセルは5バイト単位のアクセスになってしまい、4バイト(32ビット)のレジスタで構成されるCPUにとってアクセス効率の低下を招くことは、先に述べたとおりである。
そこで、プリント出力に用いる際、保存したピクセルデータを読出す時のアクセス効率を高めることができる保存方法をこの実施形態では採用する。
【0033】
ピクセルデータを保存する形態として、概念的には3種の別プレーンとする例について、図8を参照して説明した。ただ、実際の各プレーンの保存形態は、別の記憶領域を利用して保存する必要はなく、プレーンを統合して保存する方法を採ることが可能である。
この実施形態では、先ず、カラープレーンには、図8(A)に示したように、1ピクセルあたり4バイトで点順次に色値を保存するので、4バイト構成のレジスタを持つCPUからのアクセスに都合がよい。よって、カラープレーンは、図8(A)に示したフォーマットで保存する方法を採用する。
【0034】
また、ピクセル属性プレーンには、ピクセル属性としてのオブジェクト情報(文字、イメージ、グラフィックス)を保存するために必要な容量として、1ピクセルあたり1バイトを確保できればよく、ディスティネーション透過プレーンには、ディスティネーション半透明値を保存するために必要な容量として、1ピクセルあたり1バイトを確保できればよい。よって、ピクセル属性とディスティネーション透過の両プレーンをまとめて1ピクセルあたり2バイトで保存する統合プレーンを用いる方法を採用する。この方法によると、1回のアクセスで、ピクセル属性としてのオブジェクト情報とディスティネーション半透明値の2ピクセル分を取得できる。
図9は、ピクセル属性とディスティネーション透過の両プレーンを統合したフォーマットの概念図を示す。同図に示すように、統合プレーンには、ページ領域を描画するピクセルについて、点順示フォーマットでピクセル属性Aとディスティネーション半透明値Tをまとめて保存する。
【0035】
上記のピクセルデータの保存方法をとることで、カラープレーンの4バイトと統合(ピクセル属性+ディスティネーション半透明値)プレーンの2バイトを1ピクセル分としてアクセスを行うことができる。つまり、1.5回の読出しコマンドで1ピクセルデータの読出しができるようになって、少ないコマンド数でピクセルデータの読出しができるために、処理効率を高めることができる。
なお、カラープレーンに4バイトを確保するので、CMYKの場合についても、1.5回の読出しコマンドで1ピクセルデータの読出しができることに変わりがなく、RGB,CMYKいずれも効率よくハンドリングでき、3種のプレーンに保存されたピクセルデータを、以後に行うカラー変換、ハーフトーニング等のプリント出力用の画像データの処理の効率化が図れる。
【0036】
次に、バンディング処理について説明する。
上記の説明で多値描画部115が処理に必要なメモリ容量として、1ページ分確保できるものとして説明したが、1ページ分のメモリ容量が確保できない場合には、バンディング処理という方法によって描画処理を行う。
図10は、バンディング処理におけるバンドデータとページデータとの関係を説明する概念図である。バンディング処理は、コントローラ10が1ページ分のメモリ容量が確保できない場合に、図10に示すように、ページデータを高さ方向に複数に分割し、分割したバンドデータ単位でメモリ容量を確保し(図10の例では、高さ1024のバンドメモリを確保)、処理を行うことで、ページデータの処理を可能にする方法である。
【0037】
バンディング処理では、多値描画部115は、描画処理に必要な中間データを取得する際に、バンド単位でメモリにアクセスし、取得した中間データを確保したバンドメモリに保存することで描画処理を実行する。バンドメモリに保存することができた中間データ以外のバンドデータは、圧縮するか、ハードディスク(不図示)等に退避しておく。圧縮した形で処理を待つバンドデータは、描画要求があった時点で圧縮を解凍してバンドメモリ上にロードする。ハードディクス退避しておいた場合にも描画要求があった時点でメモリ上にロードする。描画が終了し、次のバンド描画要求があった時点で圧縮するか、又はハードディスクへ保存するような処理を行う。
【0038】
中間データ(図6に示したデータ構造、参照)をもとにバンディング処理で描画を行う際、各描画オブジェクトの座標データから各バンドデータにクリップしてバンドメモリに描画する。
描画結果としてバンドメモリに保存するピクセルデータは、図8及び図9の例に示したフォーマットになるが、バンド毎に違うフォーマットを適用できるようにすることによりメモリ容量を節約でき、バンドメモリに保存したピクセルデータを利用する際にも無駄なアクセス操作をしなくてもすむ。例えば、バンド0がグレーデータしかない場合は、カラープレーンは、1バイト(8ビット)グレープレーンのみでよく、ピクセル属性とディスティネーション透過の統合プレーンは、変わらないのでそれぞれ1バイトずつの2バイトとなる。他方、バンド1には、カラーデータが含まれる場合は、4バイトPRGBプレーンと、ピクセル属性とディスティネーション透過の統合プレーンは、変わらず2バイトとなる。なお、各バンドで使用されている色は、中間データのGstatus(グラフィックス状態)に含まれるカラーデータを調べることにより判定することができる。
【0039】
ここで、バンドデータに対する描画処理を図11に示すフロー図に基づいて説明する。
図11のフローに示すように、バンディング動作が起動されると、先ず、描画対象となるページデータのバンドデータband0〜6から予め定められた順番に従い1つのバンドデータを取得する(ステップS101)。
次に、取得したバンドデータ内の描画対象ピクセルを点順次に指定し(ステップS102)、指定されたピクセルに対する中間データのGstatus(グラフィックス状態)を取得する(ステップS103)。
次に、指定されたピクセルのGstatusに含まれる色値を調べ、色値がモノクロかカラーかを判断する(ステップS104)。
【0040】
ステップS104で調べた色値から当該ピクセルがカラーであると判断された場合には(ステップS104-NO)、バンドメモリのカラープレーンに、PRGBフォーマット(4バイト)でRGB又はCMYKの色値を書込む(ステップS105)。
他方、色値から当該ピクセルがモノクロであると判断された場合には(ステップS104-YES)、バンドメモリのカラープレーンに、モノクロフォーマット(1バイト)で濃度値を書込む(ステップS106)。
なお、上記の書込みステップで書込む色値又は濃度値は、半透明描画処理が設定されている場合には、設定条件に従い半透明描画の色値を計算し、算出した色値を書込む。
次いで、バンドメモリのピクセル属性プレーンに当該ピクセルのピクセル属性としてのオブジェクト情報(文字、イメージ、グラフィックス)を書込む(ステップS107)。
さらに、半透明描画処理が設定されている場合には、当該ピクセルのディスティネーション半透明値を計算して(上記式(2)、参照)、算出値をバンドメモリのディスティネーション透過プレーンに書込み、バンドメモリのディスティネーション半透明値を更新する(ステップS108)。
【0041】
ステップS102で指定されたピクセルについてピクセルデータを描画した後、カレントバンドの全ピクセルの描画処理を完了したか否かを確認する(ステップS109)。
カレントバンドの中に描画が未処理のピクセルがあれば(ステップSl09-NO)、ステップS102に戻り、点順次に次のピクセルを指定して、上記と同様に描画処理を行う。
他方、カレントバンドの全ピクセルの描画処理を完了した場合には(ステップS109-YES)、描画処理後のバンドメモリ上のバンドデータを転送し、バンドメモリを開放して次の描画に備える(ステップS110)。なお、描画処理後のバンドデータは、例えば、ハードディスクに保存して、プリント出力用の画像データヘの処理を待つ。
次に、ステップS101で取得したバンドデータの全ピクセルデータを描画し、バンドメモリが利用できる状態になったところで、描画対象となるページデータの全バンドの描画処理を完了したか否かを確認する(ステップS111)。
描画対象となるページデータ中に描画が未処理のバンドデータがあれば(ステップS111-NO)、ステップS101に戻り、次のバンドデータを取得して、上記と同様に描画処理を行う。
他方、描画対象となるページデータの全バンドデータの描画処理を完了した場合には(ステップS111-YES)、この描画処理を終了する。
【0042】
描画コアモジュール110の処理に戻って、多値描画処理を行った多値描画部115の後段の画像処理部について説明する。後段の画像処理部では、多値描画部115によって描画された多値ページメモリのピクセルデータをプリント出力用の画像データに変換する処理を行う。
先ず、カラー変換部116によって行う色変換処理について説明する。
色変換処理は、カラーマッチング処理、BG/UCR(Black generation及びUnder Color remova1)処理を実施し、デバイスCMYK(プリンタエンジン30で画像出力に用いる画像データ)に変換する処理が主な処理である。
【0043】
カラー変換部116は、多値描画部115によって描画されたカラープレーン、ピクセル属性プレーン、ディスティネーション透過プレーンの各プレーンに保存されたピクセルデータを用いてカラーマッチング処理を行う。
カラーマッチングは、プリント出力しようとする画像が意図したとおりの色特性を持つ画像となるように、出力デバイス(プリンタエンジン30)に依存する特性を色変換のパラメータの調整により補正する。
本実施形態のカラー変換部116は、上記の多値描画処理で得られたPRGBカラープレーンのRGB各色8ビットのピクセルデータの入力を受け、このデータに色変換によるカラーマッチング処理を施す。カラーマッチング処理後のRGB各色8ビットのデータは、同じメモリアドレスに上書きされる。
【0044】
カラーマッチング処理をする際に、上記の多値描画処理で得られたピクセル属性プレーンのピクセルデータを参照して、文字、イメージ、グラフィックスのオブジェクトの種類に応じたマッチング処理パラメータを適用することにより、適正なカラーマッチングを行い、画質を向上することができる。また、オブジェクトの種類におけると同様に、多値描画処理で得られたディスティネーション透過プレーンについても、ディスティネーション半透明値を参照して、この半透明値に応じたマッチング処理パラメータを適用することにより、適正なカラーマッチングを行い、画質を向上することができる。
【0045】
さらに、多値描画処理で得られたPRGBカラープレーンのRGB各色8ビットのピクセルデータに対してBG/UCR処理を実施する。このBG/UCR処理の出力は、CMYKになる。ピクセル毎にBG/UCR変換されたデータは、元のPRGBカラープレーンとして保存されていたと同じメモリアドレスに上書きされる。なお、PRGBカラープレーンの色値は4バイトであるため、変換後も同じアドレスに保存できる。
このように、多値描画部115による多値描画処理で各プレーンに保存されたピクセルデータは、カラー変換部116におけるカラーマッチング処理及びBG/UCR処理によってカラースペース及びカラーデータが変換される。ただ、このデータ変換のために、余分なメモリ容量を必要とせず、メモリの取得を行うこともない。
【0046】
描画コアモジュール110の処理の終段で、カラー変換部116によって処理された多値のCMYKデータを2値に変換する。
CMYK2値変換部117は、カラー変換部116からのCMYK各色8ビットのカラープレーンデータとピクセル属性プレーンデータを受け取り、CMYK各色8ビットのピクセルデータに対するハーフトーン処理を実施し、2値でCMYK各色のページメモリに保存する。この処理の際、ピクセル属性プレーンデータは、描画オブジェクト毎に適用するハーフトーンパターンを変更するために用いる。
【符号の説明】
【0047】
10・・コントローラ、11・・CPU、30・・プリンタエンジン、40・・操作パネル、104・・プリンタコントロールシステム部、105・・PDL部、110・・描画コアモジュール、113・・描画モジュールI/F、114・・中間データ保存部、115・・多値描画部、116・・カラー変換部、117・・CMYK2値変換部、120・・PDLパーサ部。
【先行技術文献】
【特許文献】
【0048】
【特許文献1】特開2004−243569号公報

【特許請求の範囲】
【請求項1】
ページ記述言語を解析して得られる中間形式の画像データを含む中間データを描画オブジェクトが識別できる状態で保存する中間データ保存手段と、中間データ保存手段に保存した中間データから、色値を表すプレーン及び描画オブジェクトを属性に含むピクセルの属性プレーンよりなるピクセルデータを描画する多値描画手段と、多値描画手段で描画したピクセルデータをもとにオブジェクト毎にカラー変換を行うカラー変換手段と、カラー変換手段によって変換された画像データを階調変換する階調処理手段を有した画像形成装置であって、
前記中間データ保存手段は、半透明描画処理に用いるパラメータを中間データとして保存し、
前記多値描画手段は、中間データ保存手段によって保存された中間データから描画するピクセルデータに半透明描画処理に用いるパラメータを表すプレーンを加えるとともに、描画した各プレーンのピクセルデータを保存する際に、描画した前記ピクセルの属性プレーンと半透明描画処理に用いるパラメータを表すプレーンをまとめて保存するようにしたことを特徴とする画像形成装置。
【請求項2】
請求項1に記載された画像形成装置において、
前記多値描画手段が描画する色値を表すプレーンは、1ピクセルあたり4バイトからなる点順次に配置したデータであることを特徴とする画像形成装置。
【請求項3】
請求項1に記載された画像形成装置において、
前記多値描画手段が描画する色値を表すプレーンは、グレーの場合には1ピクセルあたり1バイトからなる点順次に配置したデータであることを特徴とする画像形成装置。
【請求項4】
請求項2に記載された画像形成装置において、
前記多値描画手段が描画する色値を表すプレーンは、3チャネルからなるカラースペースの場合には、1バイト目をパディングデータ用にし、2〜4バイト目を各カラー成分データ用とすることを特徴とする画像形成装置。
【請求項5】
請求項1乃至4のいずれかに記載された画像形成装置において、
前記多値描画手段が描画し、まとめて保存するピクセルの属性プレーンと半透明描画処理に用いるパラメータを表すプレーンは、1ピクセルあたり2バイトからなる点順次に配置したデータであることを特徴とする画像形成装置。
【請求項6】
請求項1乃至5のいずれかに記載された画像形成装置において、
前記多値描画手段が描画するピクセルの属性プレーン、半透明描画処理に用いるパラメータを表すプレーンは、それぞれ独立のプレーンであることを特徴とする画像形成装置。
【請求項7】
請求項5又は6のいずれかに記載された画像形成装置において、
前記多値描画手段は、描画するピクセルの属性プレーンに8ビット以上を割当てることを特徴とする画像形成装置。
【請求項8】
請求項1乃至7のいずれかに記載された画像形成装置において、
前記多値描画手段は、バンディング動作において、色値を表すプレーンのフォーマットをバンド毎に適応させるようにしたことを特徴とする画像形成装置。
【請求項9】
請求項1乃至8のいずれかに記載された画像形成装置において、
前記中間データ保存手段に保存した中間データに半透明描画処理に用いるパラメータがあるか否かを確認することにより半透明描画処理の有無を判定する半透明描画処理判定手段を備え、
前記多値描画手段は、前記半透明描画処理判定手段により半透明描画処理がないと判断した場合に、色値を表すプレーンとして、多値をCMYK2値形式の色値で表すようにしたことを特徴とする画像形成装置。
【請求項10】
ページ記述言語から中間形式の画像データを解析する工程と、解析された中間形式の画像データを含む中間データを描画オブジェクトが識別できる状態で保存する中間データ保存工程と、中間データ保存工程で保存した中間データから、色値を表すプレーン及び描画オブジェクトを属性に含むピクセルの属性プレーンよりなるピクセルデータを描画する多値描画工程と、多値描画工程で描画したピクセルデータをもとにオブジェクト毎にカラー変換を行うカラー変換工程と、カラー変換工程で変換された画像データを階調変換する階調処理工程を有した画像データ処理方法であって、
前記中間データ保存工程は、半透明描画処理に用いるパラメータを中間データとして保存し、
前記多値描画工程は、前記中間データ保存工程で保存された中間データから描画するピクセルデータに半透明描画処理に用いるパラメータを表すプレーンを加えるとともに、描画した各プレーンのピクセルデータを保存する際に、描画した前記ピクセルの属性プレーンと半透明描画処理に用いるパラメータをまとめて保存するようにしたことを特徴とする画像データ処理方法。
【請求項11】
請求項10に記載された画像データ処理方法の各工程をコンピュータに行わせるためのプログラム。
【請求項12】
請求項11に記載されたプログラムを記録したコンピュータ読取可能な記録媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2010−220075(P2010−220075A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−66723(P2009−66723)
【出願日】平成21年3月18日(2009.3.18)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】