JP2009232266A - 画像処理装置及び画像処理プログラム - Google Patents
画像処理装置及び画像処理プログラム Download PDFInfo
- Publication number
- JP2009232266A JP2009232266A JP2008076480A JP2008076480A JP2009232266A JP 2009232266 A JP2009232266 A JP 2009232266A JP 2008076480 A JP2008076480 A JP 2008076480A JP 2008076480 A JP2008076480 A JP 2008076480A JP 2009232266 A JP2009232266 A JP 2009232266A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- value
- binary
- processing
- image
- 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.)
- Withdrawn
Links
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】描画コードを画素毎の二値画像データに変換する画像処理装置であって、画像同士の合成処理を含む場合に、出力画像の品質を落とさずにかつ処理負荷を抑えることのできる画像処理装置等を提供する。
【解決手段】画像オブジェクトの描画コードを画素毎の二値画像データに変換する画像処理装置において、描画コードに画像オブジェクトの多値階調値と他の画像オブジェクトとの合成処理の有無を示す情報が含まれ、出力範囲を分割した分割領域毎に処理を実行し、合成処理が有ることを示す情報を含む描画コードがある分割領域は、描画コードを画素毎に多値画像データに変換した後に二値画像データに変換し、合成処理が有ることを示す情報を含む描画コードがない分割領域は、描画コードを二値画像データに変換する制御手段と、描画コードと多値画像データと二値画像データを格納する格納手段とを有する。
【選択図】 図6
【解決手段】画像オブジェクトの描画コードを画素毎の二値画像データに変換する画像処理装置において、描画コードに画像オブジェクトの多値階調値と他の画像オブジェクトとの合成処理の有無を示す情報が含まれ、出力範囲を分割した分割領域毎に処理を実行し、合成処理が有ることを示す情報を含む描画コードがある分割領域は、描画コードを画素毎に多値画像データに変換した後に二値画像データに変換し、合成処理が有ることを示す情報を含む描画コードがない分割領域は、描画コードを二値画像データに変換する制御手段と、描画コードと多値画像データと二値画像データを格納する格納手段とを有する。
【選択図】 図6
Description
本発明は、出力画像の描画コードを画素毎の二値画像データに変換する画像処理装置等に関し、特に、画像同士の合成処理を含む場合に、出力画像の品質を落とさずに、かつ、処理負荷を抑えることのできる画像処理装置等に関する。
従来、いわゆるモノクロプリンタなどのモノクロ・バイレベル(二値)画像の画像生成装置が用いられている。かかる画像生成装置では、例えば、PDL(ページ記述言語)で対象画像の情報を受け取り、それを一旦、装置で処理のしやすい中間コードなるものに変換する。この中間コードは、全体画像を複数の領域に分割した分割領域毎に、その領域内に描画するオブジェクトをコード化したものである。その後、この中間コードは、画素毎のデータに展開され、二値の画像データが生成される。そして、この二値画像データに基づく機構部の動作で所定の媒体に対して画像が形成される。
ところで、このようなモノクロプリンタを含む画像生成装置では、上記描画するオブジェクトが重なり合う場合があり、そのような場合のオブジェクト同士の合成処理として、各種の手法が用いられている。例えば、αブレンドとして知られる数値演算を用いるものや各種の論理演算を用いるものがある。そして、この合成処理は、一般的には、オブジェクト毎に表される描画コードを画素毎の画像データに変換する際になされる。
下記特許文献1では、描画オブジェクトの重なり領域ではRGB空間でのレンダリング処理をホストコンピュータで行い、重なりがない領域ではCMYK空間でのレンダリング処理をプリンタ側で行なうことが記載されている。
特開平11−355588号公報
上述したモノクロ・バイレベルプリンタにおいて上記オブジェクト同士の合成処理がある場合、従来の一般的な方法によれば、描画コードを、二値の画素毎の画像データに展開する過程でこの合成処理がなされる。従って、この方法では、少なくとも、合成する相手の画像は既に二値のデータになっており、すなわち、画像の再現性において精度の悪いデータになっているので、良好な合成処理の結果は得られず、生成される画像の品質を下げてしまうという課題がある。
また、良好な合成結果を得るために、画像全体について、描画コードを多値の画素毎の画像データに展開する方法が考えられるが、この場合には、データを保持するメモリ容量、データ処理量の点で処理負荷が増大してしまう。
そこで、本発明の目的は、出力画像の描画コードを画素毎の二値画像データに変換する画像処理装置であって、画像同士の合成処理を含む場合に、出力画像の品質を落とさずに、かつ、処理負荷を抑えることのできる画像処理装置、等を提供することである。
上記の目的を達成するために、本発明の一つの側面は、出力範囲について、出力する画像オブジェクトの描画コードを画素毎の二値画像データに変換する画像処理装置において、前記描画コードには、前記画像オブジェクトの出力色の濃度階調値を多値で表現した多値階調値と、他の画像オブジェクトとの合成処理の有無を示す情報が含まれ、前記二値画像データには、画素の出力色の濃度階調値を二値で表現した二値階調値が含まれ、前記出力範囲を分割した分割領域毎に前記変換処理を実行し、前記合成処理が有ることを示す情報を含む前記描画コードがある前記分割領域については、前記描画コードを、画素毎に前記多値階調値を有する多値画像データに変換した後に、当該多値画像データを前記二値画像データに変換し、前記合成処理が有ることを示す情報を含む前記描画コードがない前記分割領域については、前記描画コードを前記二値画像データに変換する、制御手段と、前記描画コードと前記多値画像データと前記二値画像データを格納する格納手段とを有する、ことである。
更に、上記の発明において、一つの態様は、前記合成処理は、αブレンド処理であり、当該αブレンド処理は、前記描画コードを前記多値画像データに変換する際に行なわれる、ことを特徴とする。
上記の目的を達成するために、本発明の別の側面は、出力範囲について、出力する画像オブジェクトの描画コードを画素毎の二値画像データに変換する処理を制御装置に実行させる画像処理プログラムにおいて、前記描画コードには、前記画像オブジェクトの出力色の濃度階調値を多値で表現した多値階調値と、他の画像オブジェクトとの合成処理の有無を示す情報が含まれ、前記二値画像データには、画素の出力色の濃度階調値を二値で表現した二値階調値が含まれ、前記出力範囲を分割した分割領域毎の前記変換処理であって、前記合成処理が有ることを示す情報を含む前記描画コードがある前記分割領域については、前記描画コードを、画素毎に前記多値階調値を有する多値画像データに変換した後に、当該多値画像データを前記二値画像データに変換し、前記合成処理が有ることを示す情報を含む前記描画コードがない前記分割領域については、前記描画コードを前記二値画像データに変換する、前記変換処理を前記制御装置に実行させる、ことである。
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
図1は、本発明を適用した画像処理装置であるコントローラを備えるプリンタの実施の形態例に係る構成図である。図1に示すコントローラ21が、本発明を適用した画像処理装置であり、印刷の1ページを分割したバンド領域毎に、描画オブジェクトの合成処理の有無により描画コード(中間コード)から画素毎の画像データに展開する処理を変更し、すなわち、当該合成処理がないバンドでは描画コードから直接二値の画像データに展開し、合成処理があるバンドでは描画コードから多値の画像データに展開した後に二値化する、ことにより、出力画像の品質を落とさずに、かつ、処理負荷を抑えたモノクロ・バイレベルでの印刷を行なおうとするものである。
図1に示すホストコンピュータ1は、プリンタ2に対して印刷要求を行なうホスト装置であり、ユーザ操作等に基づいて画像データと制御コマンドを含む印刷データをプリンタ2に送信する。なお、ホストコンピュータ1は、所謂パーソナルコンピュータなどで構成することができる。
ホストコンピュータ1内のプリンタドライバ11は、ホストコンピュータ1内のアプリケーション(図示せず)などからのデータを受け取って、プリンタ2に送信する上記印刷データを生成する部分である。なお、プリンタドライバ11は、上記機能に関する処理を指示するプログラムと当該プログラムに従って処理を実行するホストコンピュータ1の制御装置(図示せず)等によって構成される。また、プリンタドライバ11から送信される印刷データは、ここではPDL形式であり、画像の色はグレースケール(黒色の多値)で表現され、描画オブジェクトにはαブレンドを行なうか否かの情報が付加される。
次に、プリンタ2は、図1に示すように、コントローラ21及び印刷実行部22などで構成される、いわゆるモノクロのレーザプリンタである。本プリンタ2では、多値の画像データを受け取って二値の画像データに変換し、当該データに基づいて要求された画像の生成を行なう。
コントローラ21は、前記ホストコンピュータ1から送信される印刷データを受信し、当該データに含まれる制御コマンドを解釈すると共に、当該データに含まれる画像データに対して所定の処理を施して印刷実行部22側へ提供するデータを生成する。コントローラ21には、図1に示すように、I/F23、CPU24、ROM25、RAM26、エンジンI/F27等が備えられる。
I/F23は、ホストコンピュータ1から送信される前記印刷データを受信する部分である。ROM25は、プリンタ2を制御するための各種プログラムを記憶する部分である。
RAM26は、前記受信した印刷データ、コントローラ21で処理された各過程での画像データ等を格納するメモリであり、印刷実行部22で印刷処理が行われる各ページの画像データは、ここからエンジンI/F27に引き渡される。より具体的には、前記受信したPDLから生成される1ページ分の中間コード、中間コードを展開して得られる1バンド分の二値画像データ、中間コードを展開して得られる1バンド分の多値画像データ、及び、1ページ分の圧縮した上記二値画像データ等が格納される。そして、上記1バンド分の二値画像データを保持する部分(領域)を二値バンドバッファと呼び、上記1バンド分の多値画像データを保持する部分(領域)を多値バンドバッファと呼ぶ。
CPU24は、本プリンタ2において行われる各種処理を制御する部分であるが、特に、前記受信した印刷データに含まれる画像データをRAM26に格納する処理、前記印刷データに含まれる制御コマンドを解釈して印刷実行部22に対して適切な印刷処理を指示する処理、及び、ユーザとのインターフェースを形成する操作ユニットを制御する処理等を司る。本プリンタ2では、CPU24が行なう、中間コードの生成処理及び展開処理に特徴があり、その具体的な内容については後述する。なお、CPU24が実行する処理は、主に前記ROM25に記憶されたプログラムに従って行われるものである。
次に、エンジンI/F27は、印刷実行部22で印刷を実行する際に、所定のタイミングで前述したRAM26に格納されている画像データを読み出し、それらに所定の処理を施した後に印刷実行部22に引き渡す、コントローラ21と印刷実行部22とのインターフェースを司る部分である。なお、このエンジンI/F27には、図示されていないが、解凍ユニット、パルス幅変調ユニット等が備えられ、これら各部により、エンジンI/F27では、上記読み出した画像データの解凍、パルス幅変調処理などがなされ、処理後の信号が印刷実行部22へ送られる。また、エンジンI/F27は、具体的には、ASICで構成されている。
次に、印刷実行部22は、図示していないが、帯電ユニット、露光ユニット、現像ユニット、転写ユニット、定着ユニット等で構成される。当該印刷実行部22では、前記エンジンI/F27から受信する信号に基づき、CPU24からの印刷指示に従った印刷処理を実行し、所定の印刷媒体に印刷要求に従った画像が形成される。
以上説明したような構成を有する本実施の形態例に係るプリンタ2では、コントローラ21で行なわれる中間コードの生成処理及び中間コードの展開処理等に特徴があり、以下、その点を中心に印刷時の処理内容について説明する。
図2は、本プリンタ2のコントローラ21における印刷時の処理手順を例示したフローチャートである。ここには、1ページの処理について記述されており、図2に基づいて1ページ分の印刷について以下に説明する。また、図3は、印刷する1ページ分の画像を例示した図である。図3に示す例では、1ページに4つの描画対象のオブジェクト(画像オブジェクト)が含まれている。また、このケースでは、1ページの領域が4つのバンド(図中の第1バンドから第4バンド)に分割されている。
前述の通り、プリンタ2がホストコンピュータ1から印刷データを受信すると、そのPDL形式のデータがRAM26に格納されるので、CPU24は、当該印刷データについての処理を開始する。まず、処理対象ページの領域をバンド領域に分割し、全バンドについて、AlphaBlendFlagなるフラグの値を0に設定する(ステップS1)。ここで、バンドとは、1ページの領域を副走査方向(印刷実行部22において用紙が搬送される方向)に等間隔で分割した各領域のことである。また、AlphaBlendFlagはこのバンド毎に設けられるフラグであり、そのバンド内においてαブレンドによる合成処理をする画像オブジェクトがあるか否かを示すものである。
図3に示した例では、4バンドに分割され、その各バンドにおいて上記フラグが初期化され、AlphaBlendFlag=0となる。
次に、CPU24は、前記格納したPDLデータを順次読み込む(ステップS2)。PDLデータには、描画する画像オブジェクトそのものを示すものと、各種の設定や制御のためのものがあり、CPU24は、まず、読み込んだデータが画像オブジェクトにかかるものであるか否かを判断し(ステップS3)、画像オブジェクトにかかるものではない場合には(ステップS3のNo)、ステップS4に移行する。
ステップS4では、読み込んだPDLデータが改ページコマンドであるか否かが判断される。改ページコマンドとは、1ページの最後を示すコマンドであり、読み込んだPDLデータが改ページコマンドでなければ(ステップS4のNo)、そのPDLデータは、不透過率やグレイ濃度などの値を設定するコマンドであり、CPU24は、そのコマンドに従って設定を行う(ステップS5)。当該設定された各パラメータの値は、次の設定がなされるまで保持され、保持され値は、その後に来る画像オブジェクトに反映される。例えば、不透過率が100%に設定された後に、画像オブジェクトのデータが読み込まれれば、当該画像オブジェクトの不透過率は100%であるとされる。グレイ濃度(例えば、0から255の値)についても同様である。その後、処理がステップS2に戻る。
一方、前記ステップS3において、読み込んだデータが画像オブジェクトにかかるものである場合には(ステップS3のYes)、画像オブジェクトの種類が判断される。画像オブジェクトには、写真などのイメージ、文字、及び矩形(グラフィックを構成するもの)があり、上記処理では、CPU24が、読み込んだデータがどの画像オブジェクトにかかるものであるかを判断する。図3に示す例では、一つのイメージ、二つの矩形、及び五つの文字にかかる画像オブジェクトが存在する。
上記判断により、PDLデータが文字にかかるものである場合には(ステップS6のYes)、処理がステップS7へ、PDLデータがイメージにかかるものである場合には(ステップS8のNo)、処理がステップS10へ、また、PDLデータが矩形にかかるものである場合には(ステップS8のYes)、処理がステップS9へ移行する。
そして、CPU24は、それら各ステップにおいてその画像オブジェクトの中間コードを生成し、RAM26の所定箇所に登録(格納)する(ステップS7、S9、S10)。図4は、生成される中間コードを例示した図である。図4の(A)、(B)、及び(C)は、それぞれ、イメージ、矩形、及び文字の中間コードを例示している。なお、中間コード生成時の処理内容については後述する。その後、処理はステップS2に戻る。
また、前述したステップS4において、読み込んだPDLデータが改ページコマンドである場合には(ステップS4のYes)、当該ページの中間コード作成・登録処理が終了し、CPU24は、当該中間コードの展開処理を行う(ステップS11)。当該展開処理により、各バンド内において画像オブジェクト単位で表されていた描画対象のデータが、画素毎の二値画像データに変換される。なお、当該展開処理の具体的な処理手順いついては後述する。展開されたデータは、圧縮されてRAM26のページバッファに格納される。そして、対象ページの圧縮後のデータがページバッファに揃い、印刷実行部22で処理を開始するタイミングになると、当該データが読み出されて、順次、エンジンI/F27による処理が実行され、その後の信号が印刷実行部22へ出力されていく(ステップS12)。
印刷実行部22では、当該信号に基づく印刷動作を実行し、当該ページの画像が用紙などの印刷媒体上に形成されプリンタ2から排出される。
このようにして、印刷時における処理がなされるが、前述した中間コードの作成・登録処理についてより具体的な手順を説明する。図5は、矩形の中間コードを作成、登録する際の処理手順を例示したフローチャートである。図5に示す処理は、図2のステップS9に相当する。ここでは、図5に基づいて、読み込んだPDLデータが矩形の画像オブジェクトにかかるものであった場合について説明する。
まず、CPU24は、読み込んだPDLデータを解釈し、その矩形の画像オブジェクトが描画される範囲を含むバンドを決定する(ステップS91)。すなわち、当該画像オブジェクトの中間コードを登録するバンドを決定する。中間コードは、前述したバンド毎に生成されるので、画像オブジェクトが二つのバンドにかかって位置する場合には、その二つのバンドに中間コードが登録される。図3に示した例において、対象の画像オブジェクトが矩形#1であった場合には、中間コードを登録するバンドとして第1バンド及び第2バンドが決定される。
次に、上記決定したバンドの一つのバンドについて処理を行う。そして、CPU24は、矩形のそのバンドに存在する部分について、矩形の中間コードを作成し、当該バンドの中間コードとしてRAM26に登録する(ステップS92)。作成・登録される矩形の中間コードは、例えば、図4の(B)に示すようなものである。「OpCode」は、画像オブジェクトの種別を示し、ここでは矩形であるのでRECTANGLEという値になっている。「不透過率」は、αブレンドの際の係数を示し、100%である場合にはαブレンドを行わない。「グレイ濃度」は、当該矩形の色の濃度階調値を示し、例えば、0から255の256階調で表される。また、「バンド内位置」(x、y)は、矩形の左上の頂点が存在するバンド内の位置を縦横の座標で表現したものである。また、「展開幅」及び「展開高さ」は、描画する矩形の縦横の大きさを示しており、幅がw画素、高さがh画素の矩形であることを表している。
従って、この中間コードは、当該バンドの(x、y)の位置から、幅がw画素、高さがh画素の矩形を、グレイ濃度g、不透過率αで描画すべきことを示している。なお、これらの情報は前記PDLデータから取得される。図3の例では、例えば、矩形#1について、第1バンドの処理において、矩形#1の上側の第1バンドに含まれる部分についてこのような中間コードが作成される。
このようにして中間コードを登録すると、CPU24は、当該中間コードの画像オブジェクトの不透過率が100%であるか否かをチェックし(ステップS93)、100%である場合には(ステップS93のYes)、当該バンドについての処理を終了し、ステップS95に移行する。一方、100%でない場合には(ステップS93のNo)、前述したAlphaBlendFlagの値を1とする。すでに、当該バンドのAlphaBlendFlagの値が1になっていれば、そのままの値とする。図3の例において、矩形#2の不透過率は100%でないので、第2バンドについてはAlphaBlendFlag=1とされる。このフラグの値の設定後、当該バンドについての処理を終了し、ステップS95に移行する。
ステップS95では、処理中の画像オブジェクトについて、前記決定した全てのバンドについての処理が終了したかがチェックされ、終了していなければ(ステップS95のNo)、次のバンドを選択してステップS92からの処理を実行する。
そして、前記決定した全てのバンドについての処理が終了すれば(ステップS95のYes)、一つの矩形についての中間コード作成・登録処理が終了する。なお、画像オブジェクトがイメージや文字である場合についても同様に中間コードの作成・登録処理が実行される。イメージの場合には、例えば、図4の(A)に示すような中間コードが作成されて登録される。イメージの場合には、画素毎に色の濃度階調値を有する所定サイズの画像データが前記印刷データで受信されるので、その画像データをソースイメージとしてRAM26の所定アドレスに格納し、中間コードでは、そのソースイメージのアクセス(addr)及びサイズ(幅swと高さsh)の情報が収められる。
文字の場合には、例えば、図4の(C)に示すような中間コードが作成されて登録される。文字については、各文字についてプリンタ2で各サイズの文字ビットマップデータが生成され、RAM26の所定アドレスに保持されるので、中間コードでは該当する文字ビットマップデータのアドレスを示すポインタ情報が格納される。
イメージ、文字の中間コードについてその他の情報は矩形の場合と同様である。
次に、前述した中間コードの展開処理についてさらに説明する。図6は、中間コードの展開処理の手順を例示したフローチャートである。図6に示す処理は、図2のステップS11に相当する。ここでは、図6に基づいて、前記作成・登録された1ページ分の中間コードについて展開処理を行う場合を説明する。
まず、CPU24は、処理対象とするバンドの番号であるBandNoを1として第1バンドについて処理を開始する(ステップS111)。前述の中間コード作成・登録処理で説明したように、各画像オブジェクトの中間コードはバンドに分割されて作成され、バンド毎に登録されるので、1ページ分(全画像オブジェクト)の中間コードは、バンド毎に登録されている。そして、各バンドのAlphaBlendFlagフラグは、中間コードの登録終了時点で0または1の値に設定されている。従って、この展開処理では、バンド毎に処理が実行される。
CPU24は、BandNoとして設定されている番号のバンドについて、まず、中間コードが登録されておるか否かをチェックし(ステップS112)、登録されていない場合には(ステップS112のNo)、当該バンドの処理を終了して処理がS118に移行する。
一方、中間コードが登録されている場合には(ステップS112のYes)、まず、そのバンドのAlphaBlendFlagフラグの値をチェックする(ステップS113)。その結果、AlphaBlendFlagの値が0であれば(ステップS113のNo)、当該バンドの中間データについて二値バンドバッファへの展開処理を実行する(ステップS114)。一方、AlphaBlendFlagの値が1であれば(ステップS113のYes)、当該バンドの中間データについて多値バンドバッファへの展開処理を実行する(ステップS115)。すなわち、上記フラグの値が0であり、αブレンド処理を行うべき画像オブジェクトが含まれていないバンドについては、中間コードから、直接、二値の画像データ(画素が0又は1の値を有する画像データ)を生成し、上記フラグの値が1であり、αブレンド処理を行うべき画像オブジェクトが含まれているバンドについては、中間コードから、多値の画像データ(画素が、例えば、0から255のいずれかの値を有する画像データ)を生成する。そして、αブレンド処理を行うべき画像オブジェクトについてはそのαブレンド処理を行って展開後の画素の値が決定される。なお、これらステップS114及びS115の処理内容については、後で詳述する。
その後、多値バンドバッファへの展開処理が行われた場合には、その多値の画像データを二値化する(ステップS116)。そして、二値バンドバッファに保持される。
このようにして、当該バンドについて二値の画像データが生成されると(S114、S116)、CPU24は、二値バンドバッファに保持される画像データを圧縮処理し、データ容量を小さくしてRAM26のページバッファにおける所定箇所に記憶する。そして、上記使用していたバンドバッファを解放する(ステップS117)。
以上で当該バンドの処理が終了し、上記BandNoの値を1つ増やす(ステップS118)。そして、対象ページの全バンドについて処理が終了していなければ、(ステップS119のNo)、上記BandNoのバンドについてステップS112からの処理を行う。
そして、対象ページの全バンドについて処理が終了すれば、(ステップS119のYes)、中間コードの展開処理を終了する。
このように、本コントローラ21では、αブレンド処理を含まないバンドについては、二値バンドバッファのみを用い、αブレンド処理を含むバンドについては、一旦、αブレンド処理を含む多値バンドバッファへの展開処理を行い、その後に二値化する。また、そのどちらにするかの判断は、中間コード生成時に設定されるフラグの値によって行われる。図3に示す例では、αブレンド処理を含まない第1バンドでは直接二値の画像データが作成され、αブレンド処理を含む第2バンドでは多値バンドバッファへの展開処理がなされる。
次に、前記二値バンドバッファへの展開処理についてさらに説明する。図7は、二値バンドバッファへの展開処理の手順を例示したフローチャートである。図7に示す処理は、図6のステップS114に相当する。ここでは、図7に基づいて、前記作成・登録された1バンド分の中間コードについて展開処理を行う場合を説明する。
まず、CPU24は、RAM26内に二値バンドバッファを確保し(ステップS114−1)、対象バンドについて登録されている一つの中間コードを取り出す(ステップS114−2)。そして、その中間コードがイメージの画像オブジェクトにかかるものである場合には(ステップS114−3のYes)、まず、中間コードのポインタ情報により、前述したソースイメージを読み出し、バンド内に描画するサイズにスケーリングを行う。図4の(A)に例示したように、イメージの中間コードには、展開幅及び展開高さとして展開時のサイズと、ソースイメージ幅及びソースイメージ高さとしてソースイメージのサイズの情報があるので、これらの情報から上記スケーリングを行う。その後、イメージの各画素は多値で表現されているためその値を二値化して二値バンドバッファへ収める(ステップS114−4)。かかる二値化処理では、従来から使用されている所定サイズの閾値マトリックスを用いる方法などを採用することができる。
また、取り出した中間コードが文字の画像オブジェクトにかかるものである場合には(ステップS114−5のYes)、CPU24は、まず、中間コードが示すグレイ濃度に対応した二値パターンを取得する(ステップS114−6)。この二値パターンは、各グレイ濃度(例えば、0から255の256階調)を二値の画素の集合で表現するものであり、所定のサイズ(Xピクセル×Yピクセル)を有している。また、これらの二値パターンは、予め作成してプリンタ2内に保持しておく。
次に、文字の中間コードの含まれる情報から、文字を描画する領域を決定し、その領域に上記取得した二値パターンを当てはめて、各画素の二値表現での値を決定し、その値を二値バンドバッファへ収める(ステップS114−8)。なお、文字を描画する領域は、前述した文字ビットマップデータを参照して決定される。
また、取り出した中間コードが矩形の画像オブジェクトにかかるものである場合には(ステップS114−5のNo)、文字の場合と同様に、中間コードが示すグレイ濃度に対応した二値パターンを取得する(ステップS114−7)。そして、矩形の中間コードの含まれる情報から、矩形を描画する領域を決定し、その領域に上記取得した二値パターンを当てはめて、各画素の二値表現での値を決定し、その値を二値バンドバッファへ収める(ステップS114−9)。
なお、文字及び矩形の処理では上述のように予め用意しておいた二値パターンを用いたが、イメージの処理のように、グレイ濃度から対象領域の各画素の多値表現での値を求め、その値を閾値マトリックス等で二値化してもよい。
このようにして、どの画像オブジェクトであっても二値の画像データが二値バンドバッファへ収められて、当該取り出した中間コードについての処理が終了する。そして、対象バンドに登録されている全中間コードについての処理が終了するまで、各中間コードについてステップS114−2からの処理繰り返される。
そして、全中間コードについての展開処理が終了すれば(ステップS114−10のYes)、対象バンドについての処理を終了する。
次に、前記多値バンドバッファへの展開処理についてさらに説明する。図8は、多値バンドバッファへの展開処理の手順を例示したフローチャートである。図8に示す処理は、図6のステップS115に相当する。ここでは、図8に基づいて、前記作成・登録された1バンド分の中間コードについて展開処理を行う場合を説明する。
まず、CPU24は、RAM26内に多値バンドバッファを確保する(ステップS115−1)。多値が8ビットで表現される場合には、前記二値バンドバッファの8倍の領域が必要となる。その後、対象バンドについて登録されている一つの中間コードを取り出す(ステップS115−2)。そして、その中間コードがイメージの画像オブジェクトにかかるものである場合には(ステップS115−3のYes)、まず、中間コードのポインタ情報により、前述したソースイメージを読み出し、バンド内に描画するサイズにスケーリングを行う。当該スケーリングは、前述した二値バンドバッファへの展開処理の場合と同様に行われる。その後、スケーリング後のイメージデータは各画素が多値で表現される値を有しているので、不透過率が100%であれば、そのまま多値バンドバッファに格納する。また、不透過率が100%でない場合には、αブレンド処理を行って処理後の値を多値バンドバッファに格納する(ステップS115−4)。
αブレンド処理では、各画素毎に以下の式で処理後の画素値を決定する。
D2=αS+(1−α)D1
但し、
D2:処理後の値
α:不透過率(0から1の値、100%で1)
S:描画する画像オブジェクトの値
D1:元の値
また、取り出した中間コードが文字の画像オブジェクトにかかるものである場合には(ステップS115−5のYes)、CPU24は、文字の中間コードの含まれる情報から、文字を描画する領域を決定し、不透過率が100%であれば、その領域の画素の値を中間コードのグレイ濃度の値として、多値バンドバッファに格納する。なお、文字を描画する領域は、前述した文字ビットマップデータを参照して決定される。また、不透過率が100%でない場合には、上記決定した領域の各画素についてαブレンド処理を行い処理後の値を多値バンドバッファに格納する(ステップS115−6)。αブレンド処理では上述の式を用い、Sの値としては、中間コードのグレイ濃度の値が用いられる。
但し、
D2:処理後の値
α:不透過率(0から1の値、100%で1)
S:描画する画像オブジェクトの値
D1:元の値
また、取り出した中間コードが文字の画像オブジェクトにかかるものである場合には(ステップS115−5のYes)、CPU24は、文字の中間コードの含まれる情報から、文字を描画する領域を決定し、不透過率が100%であれば、その領域の画素の値を中間コードのグレイ濃度の値として、多値バンドバッファに格納する。なお、文字を描画する領域は、前述した文字ビットマップデータを参照して決定される。また、不透過率が100%でない場合には、上記決定した領域の各画素についてαブレンド処理を行い処理後の値を多値バンドバッファに格納する(ステップS115−6)。αブレンド処理では上述の式を用い、Sの値としては、中間コードのグレイ濃度の値が用いられる。
また、取り出した中間コードが矩形の画像オブジェクトにかかるものである場合には(ステップS115−5のNo)、CPU24は、矩形の中間コードの含まれる情報から、矩形を描画する領域を決定し、不透過率が100%であれば、その領域の画素の値を中間コードのグレイ濃度の値として、多値バンドバッファに格納する。また、不透過率が100%でない場合には、上記決定した領域の各画素についてαブレンド処理を行い処理後の値を多値バンドバッファに格納する(ステップS115−7)。αブレンド処理では上述の式を用い、Sの値としては、中間コードのグレイ濃度の値が用いられる。
このようにして、どの画像オブジェクトであっても多値の画像データが多値バンドバッファへ収められて、当該取り出した中間コードについての処理が終了する。そして、対象バンドに登録されている全中間コードについての処理が終了するまで、各中間コードについてステップS115−2からの処理繰り返される。
そして、全中間コードについての展開処理が終了すれば(ステップS115−8のYes)、対象バンドについての処理を終了する。
以上説明したように、本実施の形態例に係るプリンタ2のコントローラ21では、中間コードから二値画像データへ展開する際に、αブレンド処理を行う必要があるバンドについては、一旦、多値バンドバッファへ展開処理を行った後に二値化し、αブレンド処理を行う必要がないバンドについては、多値バンドバッファへ展開することなく中間コードから二値化して二値バンドバッファへ展開する。従って、αブレンド処理を行う必要があるバンドについては、そのαブレンド処理が多値バンドバッファへの展開過程で実行され、すなわち、αブレンド処理が多値のデータ同士で行われるので、画像オブジェクト同士の合成処理を精度良く行うことができ、その結果、画像の出力品質を高めることができる。また、αブレンド処理を行う必要がないバンドについては、多値バンドバッファへの展開処理を行わないので、メモリ容量や処理量の観点で負荷を抑えることができる。
なお、上述の実施の形態例では、画像オブジェクト同士の合成処理としてαブレンド処理が用いられていたが、合成処理を従来行なわれているような各種の論理演算で行なう場合にも本発明を適用することができる。なお、その論理演算において、すでにバンドバッファに展開されているデータを用いる場合に、その演算を含むバンドについては前述した多値バンドバッファへの展開処理を実行する。これにより、やはり合成処理の精度を高め出力品質を向上させることができる。また、論理演算が必要であっても、バンドバッファに展開されているデータを用いないバンドについては、直接二値バンドバッファへの展開処理を実行する。これにより、不必要に処理負荷を増やしてしまうことを防止できる。
また、上述の実施の形態例では、1ページ分の圧縮された二値画像データをページバッファに格納した後、印刷実行部22の動作と同期した処理として、当該二値画像データに対する処理が開始される場合について説明したが、前述した1ページ分の中間コードまでを作成しておき、その後の展開処理からを上述の印刷実行部22の動作と同期した処理として実行する場合にも本発明を適用することができる。この場合、αブレンドが必要であり多値バンドバッファへの展開処理を実行するバンドについては、この展開処理に時間を要し、上記印刷実行部22の動作と同期した処理でこの展開処理を行うことが難しいので、中間コードの作成時に、事前に展開処理を実施し、展開後の二値画像データをRAM26に保持し、中間コードにはそのデータへのポインタ情報を格納するようにする。そして、印刷実行部22の動作と同期した処理では、その事前展開された二値画像データが用いられる。また、αブレンドが必要でないバンドについては、印刷実行部22の動作と同期した処理の中で中間コードから直接二値画像データへ展開する。
また、上述の実施の形態例では、プリンタ2がPDLで印刷データを受信する場合について説明したが、ホストコンピュータ1側で上述の二値画像データまでを作成する場合にも本発明を適用することができる。この場合には、プリンタドライバ11が、コントローラ21に換わって前述した中間コードの展開処理までの処理を同様に実行する。そして、生成された二値画像データを圧縮してプリンタ2へ送信し、プリンタ2は受信した圧縮後の二値画像データを用いて印刷実行部22の動作と同期した処理から印刷処理を実行する。この場合にも、合成処理の精度を高めることができ、ホストコンピュータ1側の処理負荷を不必要に増やすことがない。
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
1 ホストコンピュータ、 2 プリンタ、 11 プリンタドライバ、 21 コントローラ、 22 印刷実行部、 23 I/F、 24 CPU、 25 ROM、 26 RAM、 27 エンジンI/F
Claims (3)
- 出力範囲について、出力する画像オブジェクトの描画コードを画素毎の二値画像データに変換する画像処理装置であって、
前記描画コードには、前記画像オブジェクトの出力色の濃度階調値を多値で表現した多値階調値と、他の画像オブジェクトとの合成処理の有無を示す情報が含まれ、
前記二値画像データには、画素の出力色の濃度階調値を二値で表現した二値階調値が含まれ、
前記出力範囲を分割した分割領域毎に前記変換処理を実行し、前記合成処理が有ることを示す情報を含む前記描画コードがある前記分割領域については、前記描画コードを、画素毎に前記多値階調値を有する多値画像データに変換した後に、当該多値画像データを前記二値画像データに変換し、前記合成処理が有ることを示す情報を含む前記描画コードがない前記分割領域については、前記描画コードを前記二値画像データに変換する、制御手段と、
前記描画コードと前記多値画像データと前記二値画像データを格納する格納手段とを有する
ことを特徴とする画像処理装置。 - 請求項1において、
前記合成処理は、αブレンド処理であり、
当該αブレンド処理は、前記描画コードを前記多値画像データに変換する際に行なわれる
ことを特徴とする画像処理装置。 - 出力範囲について、出力する画像オブジェクトの描画コードを画素毎の二値画像データに変換する処理を制御装置に実行させる画像処理プログラムであって、
前記描画コードには、前記画像オブジェクトの出力色の濃度階調値を多値で表現した多値階調値と、他の画像オブジェクトとの合成処理の有無を示す情報が含まれ、
前記二値画像データには、画素の出力色の濃度階調値を二値で表現した二値階調値が含まれ、
前記出力範囲を分割した分割領域毎の前記変換処理であって、前記合成処理が有ることを示す情報を含む前記描画コードがある前記分割領域については、前記描画コードを、画素毎に前記多値階調値を有する多値画像データに変換した後に、当該多値画像データを前記二値画像データに変換し、前記合成処理が有ることを示す情報を含む前記描画コードがない前記分割領域については、前記描画コードを前記二値画像データに変換する、前記変換処理を前記制御装置に実行させる
ことを特徴とする画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008076480A JP2009232266A (ja) | 2008-03-24 | 2008-03-24 | 画像処理装置及び画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008076480A JP2009232266A (ja) | 2008-03-24 | 2008-03-24 | 画像処理装置及び画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009232266A true JP2009232266A (ja) | 2009-10-08 |
Family
ID=41247136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008076480A Withdrawn JP2009232266A (ja) | 2008-03-24 | 2008-03-24 | 画像処理装置及び画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009232266A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016144033A (ja) * | 2015-02-02 | 2016-08-08 | コニカミノルタ株式会社 | 画像処理装置、画像形成装置、画像処理方法及びコンピュータープログラム |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1051636A (ja) * | 1996-07-31 | 1998-02-20 | Canon Inc | 印刷制御装置、情報処理装置、印刷装置および印刷情報処理方法 |
JP2001018455A (ja) * | 1999-07-07 | 2001-01-23 | Oki Data Corp | 階調イメージの処理装置 |
JP2001053957A (ja) * | 1999-08-09 | 2001-02-23 | Seiko Epson Corp | プリンタホスト、プリンタ、プリンタシステム、描画命令を二値化イメージデータに変換するプログラムが記憶されている記憶媒体 |
JP2006272556A (ja) * | 2005-03-28 | 2006-10-12 | Seiko Epson Corp | 画像処理装置及び画像処理プログラム |
JP2006333200A (ja) * | 2005-05-27 | 2006-12-07 | Canon Inc | カラー画像入出力装置 |
JP2007014001A (ja) * | 2006-07-31 | 2007-01-18 | Sony Corp | 印画装置及び印画方法、並びに印画システム |
JP2007140953A (ja) * | 2005-11-18 | 2007-06-07 | Canon Inc | 情報処理装置、画像形成システム及びデータ生成方法 |
JP2008001068A (ja) * | 2006-06-26 | 2008-01-10 | Brother Ind Ltd | 印刷装置 |
-
2008
- 2008-03-24 JP JP2008076480A patent/JP2009232266A/ja not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1051636A (ja) * | 1996-07-31 | 1998-02-20 | Canon Inc | 印刷制御装置、情報処理装置、印刷装置および印刷情報処理方法 |
JP2001018455A (ja) * | 1999-07-07 | 2001-01-23 | Oki Data Corp | 階調イメージの処理装置 |
JP2001053957A (ja) * | 1999-08-09 | 2001-02-23 | Seiko Epson Corp | プリンタホスト、プリンタ、プリンタシステム、描画命令を二値化イメージデータに変換するプログラムが記憶されている記憶媒体 |
JP2006272556A (ja) * | 2005-03-28 | 2006-10-12 | Seiko Epson Corp | 画像処理装置及び画像処理プログラム |
JP2006333200A (ja) * | 2005-05-27 | 2006-12-07 | Canon Inc | カラー画像入出力装置 |
JP2007140953A (ja) * | 2005-11-18 | 2007-06-07 | Canon Inc | 情報処理装置、画像形成システム及びデータ生成方法 |
JP2008001068A (ja) * | 2006-06-26 | 2008-01-10 | Brother Ind Ltd | 印刷装置 |
JP2007014001A (ja) * | 2006-07-31 | 2007-01-18 | Sony Corp | 印画装置及び印画方法、並びに印画システム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016144033A (ja) * | 2015-02-02 | 2016-08-08 | コニカミノルタ株式会社 | 画像処理装置、画像形成装置、画像処理方法及びコンピュータープログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7164493B1 (en) | Image processing method, system and apparatus, and storage medium | |
US6512595B1 (en) | Data processing apparatus, data processing method, and medium | |
US8014031B2 (en) | Formation of picture image having gradation expressed by fill area and one-line image data | |
JP4640257B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2017156852A (ja) | 画像処理装置、および、コンピュータプログラム | |
JP2004309662A (ja) | 画像処理装置及び印刷装置 | |
JP4682662B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2009232266A (ja) | 画像処理装置及び画像処理プログラム | |
US8643895B2 (en) | Image processing device capable of saving ink consumption | |
JP2007050708A (ja) | 画像処理装置及び印刷装置 | |
JP4109785B2 (ja) | 画像処理装置及びその方法、コンピュータ可読メモリ | |
JP2001293936A (ja) | 描画情報処理装置および描画情報処理方法 | |
JP3728183B2 (ja) | 印刷制御装置および描画制御装置およびデータ処理方法および記憶媒体 | |
JP4496937B2 (ja) | ドライバプログラム及び画像形成装置 | |
JP4514168B2 (ja) | 画像処理システム及び画像処理方法 | |
JP5012871B2 (ja) | 画像処理装置、画像形成装置、及び画像処理プログラム | |
JP2004334533A (ja) | 画像処理装置および画像処理方法 | |
US8390907B2 (en) | Image-processing device, image-forming device, image-processing method, and computer readable medium | |
JP5990217B2 (ja) | 画像処理装置、画像形成装置、およびそれらの制御方法 | |
JP4217332B2 (ja) | 画像処理装置及びその方法、コンピュータ可読メモリ | |
JP2005038084A (ja) | 描画データの変換方法及び変換装置 | |
JPH09167222A (ja) | 画像処理装置 | |
JP4306841B2 (ja) | 画像処理装置及びその方法、コンピュータ可読メモリ | |
US20240211713A1 (en) | Printer and non-transitory computer-readable storage medium | |
JP4072403B2 (ja) | 情報処理装置、情報処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111227 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120118 |