画像処理装置、画像処理装置の画像処理方法及びプログラム
【課題】 PDLデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減する。
【解決手段】 画像処理装置の画像処理方法であって、入力されるPDLデータ内のイメージデータをタイル単位に分割する(S802)。そして、可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、分割されたタイル毎に判定する(S804)。その際ビットマップ部に対応する画像データを回転し拡大処理を行う。そして、タイル毎のイメージデータを、判定されたタイル属性に応じて、フラットフィル部は可逆圧縮方式、ビットマップ部は非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する(S805,S806)。そして、生成された中間データを伸長しラスタ画像データを生成する際に、判定されたタイル属性に応じて、フラットフィル部に対応する色データに対して、拡大処理を行うことを特徴とする。
【解決手段】 画像処理装置の画像処理方法であって、入力されるPDLデータ内のイメージデータをタイル単位に分割する(S802)。そして、可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、分割されたタイル毎に判定する(S804)。その際ビットマップ部に対応する画像データを回転し拡大処理を行う。そして、タイル毎のイメージデータを、判定されたタイル属性に応じて、フラットフィル部は可逆圧縮方式、ビットマップ部は非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する(S805,S806)。そして、生成された中間データを伸長しラスタ画像データを生成する際に、判定されたタイル属性に応じて、フラットフィル部に対応する色データに対して、拡大処理を行うことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の画像処理方法及びプログラムに関するものである。
【背景技術】
【0002】
画像処理装置におけるレンダリング処理における拡縮処理とは、入力画像の解像度を所定の解像度に拡大または縮小する処理である。また、レンダリング処理における圧縮・伸長処理とは夫々、入力データを基に生成した中間データを圧縮する処理、圧縮した中間データを伸長する処理である。
【0003】
特許文献1には次の方法が開示されている。画像データの拡大率等に基づいて圧縮率を決定して、画像データを非可逆圧縮してバッファメモリに書き込み、バッファメモリから読み出して伸長した後にレンダリング解像度に拡大する。
【0004】
特許文献2には次の方法が開示されている。画像データをタイル単位に可逆圧縮して可逆圧縮データを生成する。このとき、タイル毎に画像データの属性に基づいて可逆圧縮すべきか非可逆圧縮すべきかを判定し、可逆/非可逆判定情報を関連付ける。非可逆圧縮すべきと判定されたタイル数が閾値を超える度に、非可逆判定情報を有する可逆圧縮データを低解像度に縮小する。1ページ分の可逆圧縮が終了すると、非可逆判定情報を有する可逆圧縮データを、非可逆圧縮して非可逆圧縮データに置き換える。そして、可逆圧縮データ及び非可逆圧縮データを伸長した後にレンダリング解像度に拡大する。
【0005】
図17及び図18は、従来の圧縮・伸長・拡大処理の例を図示化したものである。
図17の(A)は、拡大処理をした後に非可逆圧縮を行い、伸長している。結果、圧縮データのデータサイズが肥大する。圧縮データのデータサイズが増加すれば、その転送時間も増加することになる。また、図17の(B)では、圧縮データのデータサイズが制限を超えた場合における、従来技術の一対処法を図示化している。図17の(B)は、圧縮データのデータサイズが制限を超えると、一旦伸長を行い、当該ページをレンダリングして非可逆圧縮する。この手法によると、1ページ全体を非可逆圧縮するため、出力画像の画質が著しく劣化してしまう。
【0006】
上述のことから、特にバッファメモリが少ない画像処理装置において、非可逆圧縮をした後に拡大処理を行う手法が用いられている。
図18では、非可逆圧縮を行った後に、伸長してから拡大処理を行っている。これにより、前記拡大による圧縮データのサイズ増加は防げるものの、非可逆圧縮で生じた画質劣化のノイズが、後の拡大処理によって増幅される。その結果、出力画像の画質が大幅に劣化してしまう。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−313411号公報
【特許文献2】特開2008−072624号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来の画像処理装置における画像処理は上記のように構成されているので、PDLデータを解析して中間データを生成する処理において、非可逆圧縮の前に、イメージデータ全体を画一的に拡大してしまう。このため、生成された中間データのサイズが大きくなり、イメージデータに対して非可逆圧縮処理を実行する。これにより、中間データからラスタ画像データを生成する際に、画質が大幅に劣化してしまう。
一方、中間データ生成処理において拡大処理を実行せずに、中間データをレンダリングする際に拡大処理すると、中間データ生成処理で実行される非可逆圧縮で生じた画質劣化のノイズが増幅されてしまう。
本発明は上記の課題を解決するためになされたもので、本発明の目的は、PDLデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減できる仕組みを提供することである。
【課題を解決するための手段】
【0009】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割手段と、可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する判定手段と、タイル毎のイメージデータを、前記判定手段により判定されたタイル属性に応じて、可逆圧縮方式、非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成手段と、生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング手段と、前記判定手段により判定されたタイル属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大手段と、を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、PDLデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減できる。
【図面の簡単な説明】
【0011】
【図1】本実施形態を示す画像処理装置の構成を説明するブロック図である。
【図2】画像処理装置の画像処理方法を説明するフローチャートである。
【図3】ラスタ画像処理部(RIP)の各種機能を示すブロック図である。
【図4】オブジェクトとスキャンライン(水平線)との様子を示す図である。
【図5】ジョブデータ生成部が生成するジョブデータの構造を示す図である。
【図6】画像処理装置の画像処理方法を説明するフローチャートである。
【図7】ラスタ画像データのデータ構造を説明刷る図である。
【図8】画像処理装置の画像処理方法を説明するフローチャートである。
【図9】画像処理装置の画像処理方法を説明するフローチャートである。
【図10】画像処理装置の構成を説明するブロック図である。
【図11】画像処理装置の画像処理方法を説明するフローチャートである。
【図12】画像処理装置の画像処理方法を説明するフローチャートである。
【図13】画像処理装置の画像処理方法を説明するフローチャートである。
【図14】画像処理装置におけるピクセル補間の例を示す図である。
【図15】画像処理装置の画像処理方法を説明するフローチャートである。
【図16】画像処理装置の画像処理方法を説明するフローチャートである。
【図17】従来の圧縮・伸長・拡大処理の例を図示化したものである。
【図18】従来の圧縮・伸長・拡大処理の例を図示化したものである。
【発明を実施するための形態】
【0012】
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
【0013】
図1は、本実施形態を示す画像処理装置の構成を説明するブロック図である。以下、図1を参照して、入力されるPDLデータに基づく中間データを生成した後、当該中間データをレンダリングしてラスタ画像データを生成する画像処理装置を説明する。本実施形態において、オブジェクトとは、入力された描画命令から成る描画要素を指し、例えば、ビットマップグラフィックス、フラットグラフィックス、グラデーショングラフィックス、テキスト等がオブジェクトのタイプに挙げられる。
また、ラスタ画像とは、例えば、BMP、JPEG等の写真データを始めとする、ビットマップグラフィックスに分類されるオブジェクトのことを指す。後述する像域判定処理または像域分離処理を実行することで、ラスタ画像は、フラットフィル部(単一の色データ部)、ビットマップ部の2つの画像領域の内、少なくとも1つの画像領域と判定されて分離される。さらに、本実施形態において、入力されるPDLデータは、中間データ生成処理と、中間データを保持する処理、中間データレンダリング処理とを含む一連の画像処理が実行されることで、ラスタ画像データが生成される。
図1において、画像処理装置300は、描画命令に基づき画像を形成、および出力する装置であり、入力部301、解釈部(インタプリタ)302、ラスタ画像処理部(RIP)303、画像形成部304、出力部305から構成される。
入力部301は、画像処理装置300に接続されている外部装置から描画命令を受け付ける。ここで、外部装置とは、双方向通信可能なインタフェースを介して通信可能なデータ処理装置、サーバ装置等が含まれる。ここで、双方向通信可能なインタフェースには、USBインタフェースやネットワークインタフェースが含まれる。また、サーバ装置には、いわゆるクラウドコンピューティング環境に設置されるサーバ装置が含まれる。
【0014】
解釈部(インタプリタ)302は、入力部301で受け付けた描画命令を解釈する。本実施形態における描画命令の形式は、PDL(Page Description Language)である。
ラスタ画像処理部(RIP)303は、解釈部(インタプリタ)302により解釈された描画命令を基にレンダリングを行い、ラスタ画像を生成する。画像形成部304はラスタ画像処理部(RIP)303により生成されたラスタ画像に対し、ハーフトーン処理等の画像処理を施して出力画像を形成する。出力部305は、画像形成部304により形成された出力画像を出力する。なお、本実施形態における画像処理装置は、MFP(Multi Function Printer)であり、出力部305は、記録紙に印刷を行うことで出力画像を出力する。
【0015】
なお、解釈部(インタプリタ)302、ラスタ画像処理部(RIP)303、画像形成部304は、各種プログラムをRAM(Random Access Memory)にロードし、CPUが実行することで実現される。また、ラスタ画像処理部(RIP)303は、CPUではなくラスタ画像を生成するためのASIC(Application Specific Integrated Circuit)で実現されても良い。
【0016】
次に、ラスタ画像処理部(RIP)303によるラスタ画像の生成処理について詳細に説明する。
図2は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図1に示したラスタ画像処理部(RIP)303によるラスタ画像生成処理例である。以下、画像処理装置300のCPUが実行するラスタ画像処理部(RIP)303によるデータ処理を説明する。
始めに、ラスタ画像処理部(RIP)303は、図1の解釈部(インタプリタ)302で解釈した描画命令に基づき、描画オブジェクトを生成する(S401)。なお、上述の如く、描画オブジェクトの種類は複数存在し、夫々の描画オブジェクトはいずれかのオブジェクトの種類に分類される。
【0017】
続いて、ラスタ画像処理部(RIP)303は、S401において生成された描画オブジェクトの座標情報を基に、夫々のオブジェクトのエッジを検出しジョブデータを生成する(S402)。
最後に、ラスタ画像処理部(RIP)303は、S402において生成されたジョブデータを基に、ラスタ画像をレンダリングする(S403)。なお、ジョブデータについては、後述する。
【0018】
次に、ラスタ画像処理部(RIP)303の内部構成について詳細に説明する。
図3は、図1に示したラスタ画像処理部(RIP)303の各種機能を示すブロック図である。なお、後述する各部は、画像処理装置300のCPUが各部をモジュールとして構成する場合を示すが、各部の一部をハードウエアとして構成することも可能である。
図3において、ラスタ画像処理部(RIP)303は、描画オブジェクト生成部501、画像記憶部502、ジョブデータ生成部503、画像読込部504、レンダリング部505、画像記憶領域506、ジョブデータ記憶領域518から構成される。
描画オブジェクト生成部501は、解釈部(インタプリタ)302により解釈された描画命令を受け付けて、オブジェクトを生成する。以下、描画オブジェクトを解析して画像形成部304に出力する画像データを生成する処理を説明する。
【0019】
〔画像記憶部502の構成〕
画像記憶部502は、ラスタ画像タイプのオブジェクトに対して処理を行うタイル分割部507、像域判定部508、圧縮方法選択部509、ビットマップ回転拡大部510、画像圧縮部511を備える。
タイル分割部507は、ラスタ画像のオブジェクトをタイル単位に分割するモジュールとして機能する。本実施形態において、タイルは、予め定めた縦横のピクセル数(例えば64×64ピクセル単位)で区切られた画像ブロックである。
像域判定部508は、各タイルがフラットフィル部であるかビットマップ部であるか判定する処理を実行する。本実施形態において、フラットフィル部は全ての画素が同一色であるタイルであり、ビットマップ部は2色以上を有するタイルである。
圧縮方法選択部509は、夫々のタイルに適した圧縮方法を選択する。本実施形態において、ビットマップ部のタイルはJPEGが圧縮方法(非可逆圧縮)として選択されるものとする。なお、フラットフィル部の圧縮方法(可逆圧縮)については後述する。
ビットマップ回転拡大部510は、ビットマップ部のタイルを、回転及びレンダリング解像度に拡大する処理を実行する。本実施形態において、ビットマップ回転拡大部510は、アフィン変換を用いてビットマップ部の回転及び拡大を同時に行う。画像圧縮部511は、各タイルを選択した圧縮方法に従って画像圧縮する。圧縮された各タイルにおけるラスタ画像データは、画像記憶領域506に記憶される。
【0020】
〔ジョブデータ生成部503の構成〕
ジョブデータ生成部503は、エッジ検出部512、ジョブデータ構築部513から構成される。エッジ検出部512は、オブジェクトのエッジを検出する。ジョブデータ構築部513は、辺情報と、塗り合成ストアと、塗り情報とから構成されるジョブデータを生成して、ジョブデータ記憶領域518に記憶する。なお、ジョブデータ生成部503による、ジョブデータ生成処理については後述する。
【0021】
〔画像読込部504の構成〕
画像読込部504は、フラットフィル回転拡大部514、画像伸長部515から構成され、ラスタ画像タイプのオブジェクトに対して機能する。画像伸長部515は、画像記憶領域506に保存されている各タイルのラスタ画像データを伸長する。フラットフィル回転拡大部514は、画像伸長部515により伸長されたラスタ画像データのうち、フラットフィル部のタイルを、回転及びレンダリング解像度に拡大する。なお、フラットフィル部の伸長・回転・拡大の方法については後述する。
【0022】
〔レンダリング部505の構成〕
レンダリング部505は、塗り描画部516、ジョブデータ評価部517から構成される。ジョブデータ評価部517は、ジョブデータ記憶領域518からジョブデータを読み込んで、それぞれの塗り合成レコードに保持された塗りノード群を、単一の塗りノードへとするために合成演算を行う。なお、塗り合成レコードについては後述する。塗り描画部516は、塗り領域の各画素位置におけるラスタ画素値を、ジョブデータ評価部517により合成演算された値とし、対応するラスタ画像の記憶領域に書き込む。全ての塗り領域について本処理を行うことにより、ラスタ画像が生成される。
【0023】
次に、ジョブデータ生成部503によるジョブデータ生成処理について詳細に説明する。本実施形態において、ジョブデータ生成処理とは、エッジ検出処理でオブジェクトの輪郭点を抽出し、ジョブデータを生成する処理のことを指す。
図4は、オブジェクトに対してスキャンライン(水平線)が交差している様子を示す図である。
【0024】
図4において、図中の矢印で示すように(4ライン目)、4つの輪郭点が抽出されている。図4で示すように、スキャンラインとオブジェクトが交差する点(ピクセル)が、輪郭点とみなされる。なお、図4において、P601、P602、P603、P604が輪郭点として抽出されている。
図4に示すように、輪郭点P602、および輪郭点P603のように、オブジェクト同士が重なる領域についても新たな輪郭点が抽出されることになる。この輪郭点を抽出する処理を、描画範囲の各スキャンライン(図4においては、1ライン目から10ライン目まで)に対して行うことで、オブジェクトによって区分けされる領域(塗り領域)を検出することが可能となる。
【0025】
図4を基に塗り領域の具体例を述べると、左端から輪郭点P601までが一つの塗り領域になり、第1の塗り領域となる。また、輪郭点P601から輪郭点P602までが一つの塗り領域になり、第2の塗り領域となる。また、輪郭点P602から輪郭点P603までが一つの塗り領域になり、第3の塗り領域となる。また、輪郭点P603から輪郭点P604までが一つの塗り領域となり、第4の塗り領域になる。また、輪郭点P604から右端までが一つの塗り領域になり、第5の塗り領域となる。上述の如く、スキャンライン毎に塗り領域を確定していく。
【0026】
図5は、図3に示したジョブデータ生成部503により生成されたジョブデータの構造を示す図である。本実施形態では、PDLデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータ生成部503が生成する。 図5に示すように、ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とから構成される。なお、図5の画像データは、前面画像であるフラットグラフィックスオブジェクトと、背面画像であるラスタ画像に対応するイメージオブジェクトが、透過で重なっている。
【0027】
始めに、辺情報について詳細に説明する。なお、図4には説明上、ラインに対応するY方向と、Y方向に直交するX方向の座標値を数値で示す。
ジョブデータにおける辺情報には、上述の塗り領域の情報が保持されている。具体的には、夫々のY座標における、塗り領域の開始位置と終了位置の情報が保持されている。具体的に図4を用いて述べると、4ライン目(Y座標がY=4)における第1の塗り領域の開始位置は左端から1(X=1)、終了位置は2(Y=2)として保持されている。また、3ライン目の1(X=1)から2(X=2)までの領域も第1の領域として保持される。これにより、夫々の塗り領域における全ての画素位置を特定することができる。また、辺情報における各塗り領域は、後述する塗り合成ストアのレコード(塗り合成レコード)を参照する。
図5の例では、辺情報701の塗り領域は、フラットグラフィックタイプとラスタ画像タイプのオブジェクト要素が重なる塗り領域を表し、塗り合成レコード702を参照している。
【0028】
次に、図5に示す塗り合成ストアについて詳細に説明する。
塗り合成ストアは、複数の塗り合成レコードから構成される。塗り合成レコードは、1つ、または複数の塗りノードで構成される。塗りレコードは、対応する塗り領域内に存在するオブジェクトの重なりの順序をスタックで保持している。
例えば、図5における塗り合成レコード702を例に挙げると、グレーのグラフィックのオブジェクトの方が、ラスタ画像のオブジェクトよりも前面であるため、前面(左側)に保持されている。各塗りノードは、後述する塗り情報を参照している。
【0029】
次に、図5に示す塗り情報について詳細に説明する。
塗り情報は、辺情報の塗り方法を表現する。即ち、塗り情報は、色データから構成されていると言える。オブジェクトタイプがフラットグラフィックスであれば単色の色データであり、ラスタ画像であれば画像記憶領域506に記憶されているラスタ画像の色データとなる。
図5の例では、塗りノード703はグレーの色データ705を参照し、塗りノード704はラスタ画像データ706を参照している。
次に、画像記憶部502におけるタイル分割処理から画像圧縮するまでの処理について詳細に説明する。具体的には、入力されるPDLデータ内のイメージデータをタイル単位に分割し、該分割したタイル属性が可逆圧縮属性か、非可逆圧縮属性かを判定する。そして、タイル単位に中間データを生成するために圧縮処理を行う。その際、S806で圧縮前拡大処理を実行する。また、後述する図8において、保持される中間データを伸長する際に、S1006で伸長したデータに対して伸長後拡大処理を行う。
【0030】
図6は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図3に示した画像記憶部502が備えるモジュールによるタイル分割から画像圧縮するまでの処理例であり、ラスタ画像タイプのオブジェクトに対して実行される。なお、各ステップは、画像処理装置300のCPUが図3に示した画像記憶部502に記憶されるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。なお、本実施形態において、分割されるタイルが1つの色データで満たされる領域をフラットフィル部と呼び、分割されるタイル内の隣接する画素がそれぞれ異なる色値を含む領域をビットマップイメージ部と呼ぶ。また、本実施形態において、可逆圧縮方式に対応するタイル領域の属性はフラットフィル部に対応し、非可逆圧縮方式に対応するタイル領域の属性はビットマップ部に対応する。以下、タイル分割されたタイル属性がフラットフィルであるのか、フラットフィル以外であるのかを判断して異なる圧縮処理を伴って中間データを生成する処理を説明する。また、本実施形態では、後述するS807において、すなわち、中間データを生成する前のタイミングでイメージデータに対して回転または拡大処理を実行したイメージデータに対して非可逆圧縮処理する。
【0031】
始めに、描画オブジェクト生成部501が生成する描画範囲内から任意の描画オブジェクトを読み込み、ラスタ画像データのループを開始する(S801)。次に、タイル分割部507がラスタ画像データをタイル分割する(S802)。S802において、ラスタ画像データをタイル分割した場合、任意のタイルを読み込み、タイルのループを開始する(S803)。S803において、タイル分割部507が読み込んだタイルが、フラットフィル部であるか否かを像域判定部508が判定する(S804)。
【0032】
S804において、フラットフィル部であると像域判定部508が判定した場合、圧縮方法選択部509が選択する圧縮方法に従い画像圧縮部511が色データを可逆圧縮して(S805)、S808へ進む。
なお、本実施形態において、色データはチャンネル数から1引いた数値(4ビット長)と1チャンネルあたりの色値のビット長から1引いた数値(4ビット長)と各チャンネルの色値(チャンネル数×色値のビット長)とで構成される形式に可変長符号化される。
図7は、ラスタ画像データが24ビットRGB画像(RGB夫々が8ビット)であり、当該タイルが緑一色のときの例を示した図である。このため、図7に示す例では、チャンネル数から1引いた数値は2(D901)、1チャンネルあたりの色値のビット長から1引いた数値は7(D902)、各チャンネルの色値は0、255、0(D903)となる。
【0033】
S804において、フラットフィル部でないと像域判定部508が判定した場合(本実施形態においては、ビットマップ部を指す)、ビットマップ回転拡大部510が画像データを回転・拡大して(S806)、画像圧縮部511が非可逆圧縮する(S807)。上述した通り、本実施形態において、ビットマップ回転拡大部510による回転・拡大はアフィン変換、画像圧縮部511による非可逆圧縮はJPEGで行う。
【0034】
S805またはS807の処理が終了すると、タイル分割部507が次のタイルを読み込み(S808)、S803から処理を開始する。
そして、S808で、全てのタイルの読み込みを終了していると判断した場合、画像圧縮部511が圧縮したデータを画像記憶領域506に記憶する(S809)。そして、S809の処理が終了すると、描画オブジェクト生成部501が生成する次の描画オブジェクトを読み込む(S810)。次のラスタ画像データが存在すると描画オブジェクト生成部501が判断した場合は、S801から処理を開始する。
一方、S810で、次のラスタ画像データが存在しないと描画オブジェクト生成部501が判定した場合は、本処理を終了とする。
【0035】
次に、画像読込部504における画像伸長からフラットフィル部の回転・拡大までの処理について詳細に説明する。
図8は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図3に示した画像読込部504による画像伸長からフラットフィル部を回転・拡大するまでの処理例である。なお、各ステップは、画像処理装置300のCPUが図3に示した画像読込部504が備えるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。また、本実施形態では、後述するS1006において、すなわち、中間データを伸長した後のタイミングで中間データに対して回転または拡大処理を実行する。
【0036】
始めに、ジョブデータを基に描画領域内の任意のラスタ画像データを選択し、選択したラスタ画像データの参照情報を参照し、ループを開始する(S1001)。本実施形態における参照情報は、ラスタ画像データの圧縮データが存在する画像記憶領域506内のアドレスである。次に、画像読込部504が参照情報を基にラスタ画像データの圧縮データを画像記憶領域506から読み込む(S1002)。S1002において、画像伸長部515が圧縮データを読み込むと、任意のタイルを選択し、ループを開始する(S1003)。S1003において選択したタイルが、フラットフィル部であるか否かを画像読込部504が判定する(S1004)。
【0037】
S1004において、フラットフィル部でないと画像読込部504が判定した場合、即ち、選択したタイルがビットマップ部である場合、画像伸長部515がビットマップ部の伸長を行う(S1007)。本実施形態では、JPEG方式の伸長アルゴリズムで伸長することとする。このとき、伸長されたラスタ画像データは、伸長済みラスタ画像を一時記憶しておくバッファメモリにおける、当該タイルの領域に展開される。
【0038】
S1004において、フラットフィル部であると画像読込部504が判定した場合、画像伸長部515が色データの伸長を行う(S1005)。具体的には、画像伸長部515が前記色データの可逆圧縮符号を復号化して、各チャンネルの色値を得る。
図7の例では、先頭の4ビットを読込んでチャンネル数が3であることを知り、次の4ビットを読込んで1チャンネルあたりの色値のビット長が8であることを知り、最後に3チャンネル分だけ8ビットずつ読込んで、「0、255、0」という24ビットRGB値を取得する。
S1005において、画像伸長部515が色データを伸長し終えたら、フラットフィル回転拡大部514がこの色データを回転・拡大する(S1006)。
具体的には、フラットフィル回転拡大部514が画像伸長部515により伸長された色データを、伸長済みラスタ画像データを一時記憶しておくバッファメモリにおける、当該タイルの領域に複製して塗り潰す。
【0039】
画像読込部504がS1006またはS1007の処理を終えると、画像読込部504が次のタイルを選択しS1003から処理を繰り返す(S1008)。そして、タイル処理を終了したら、S1009で、画像読込部504が描画領域内のラスタ画像データの全タイルに対して、伸長済みラスタ画像データをバッファメモリに記憶して、本処理を終了とする。
【0040】
次に、レンダリング部505によるレンダリング処理について詳細に説明する。
図9は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図2に示したS403のレンダリング処理例である。なお、各ステップは、画像処理装置300のCPUが図3に示したレンダリング部505が備えるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。
始めに、ジョブデータ評価部517が描画範囲内からスキャンラインを一つ選択し、Lineに代入する(S1101)。このとき、該描画範囲内のラスタ画像データは、上述した画像読込部504の処理によって、既に伸長済みである。次に、Line上に存在する辺情報から塗り領域を一つ選択し、Edgeに代入する(S1102)。
【0041】
S1102において、ジョブデータ評価部517が塗り領域を選択した(Edgeに代入した)場合、塗り領域の参照する塗り合成レコードをRecordに読み込む(S1103)。S1103において読み込んだ塗り合成レコードに、2つ以上の塗りノードが残っているか否かをジョブデータ評価部517が判定する(S1104)。
S1104において、塗り合成レコードに2つ以上の塗りノードが残っているとジョブデータ評価部517が判定した場合、ジョブデータ評価部517がRecordから最前面の塗りノードを取り出して変数Srcへ代入する(S1105)。
【0042】
S1105において、変数Srcへ最前面の塗りノードを代入した場合、ジョブデータ評価部517が変数Recordから最前面の塗りノードをもう1つ取り出して変数Destへ代入する(S1106)。S1106において、変数Destへ塗りノードを代入した場合、ジョブデータ評価部517が変数Srcと変数Destに対して合成処理を行う。さらに、ジョブデータ評価部517が結果として生成された塗りノードを合成結果Resとして(S1107)、合成結果Resを塗りレコードの最前面に挿入する(S1108)。S1108の処理の後は、S1104に戻る。
一方、S1104において、塗りレコードに2つ以上の塗りノードが残っていないとジョブデータ評価部517が判定した場合、S1109へ処理が移る。なお、塗りノードが1つだけになっていれば、この塗りノードが最終的な合成結果となっている。
【0043】
続いて、塗り描画部516が塗り領域内の変数Line上から画素位置を一つ選択し、変数Posへ代入する(S1110)。S1110において、塗り描画部516が画素位置を選択した(Posへ代入した)場合、塗り描画部516は、選択した画素位置におけるラスタ画素値を合成結果Resから読み込み、変数Valへ代入する(S1111)。このとき、合成結果Resが単色の塗り情報を参照していれば、その単色の色データを変数Valへ代入することになり、ラスタ画像の塗り情報を参照していれば、画素位置の色データをラスタ画像データから読み込んで変数Valへ代入することになる。
【0044】
S1111において、塗り描画部516が合成結果Resを変数Valへ代入した場合、変数Posに対応するラスタ画像の画素値を変数Valにするため、ラスタ画像の記憶領域にValの値を書き込む(S1112)。
次に、塗り描画部516が塗り領域内のLine上から別の画素位置を選択する(S1113)。塗り描画部516は、別の画素位置を選択した後、S1110から処理を再び開始する。
そして、塗り描画部516が塗り領領域内のLine上の全画素位置についてラスタ画素値の書き込みが終了したと判断した場合、次の辺情報へ処理を移す(S1114)。そして、塗り描画部516が変数Line上に存在する全ての塗り領域について処理が終了したと判断した場合、次のスキャンラインへ処理に移す(S1115)。
このように全てのスキャンラインについて処理を行うことより、描画範囲におけるレンダリング処理すなわちラスタ画像の生成が完了する。以上が、レンダリング処理の説明になる。
【0045】
以上説明したように、本実施形態ではラスタ画像をフラットフィル部のタイルとビットマップ部のタイルとに分けて、フラットフィル部のタイルに対して、可逆圧縮した後に拡大処理を行っている。
一方、ビットマップ部のタイルに対して、拡大した後に非可逆圧縮を行っている。これにより、非可逆圧縮後に拡大することによる画質劣化のノイズ増幅を防ぎつつ、圧縮データのサイズ削減を図ることが可能となる。
〔第2実施形態〕
【0046】
次に第2実施形態について説明する。
第1実施形態ではラスタ画像データをタイル単位で分割してビットマップ部かフラットフィル部かどうかを判定して画像処理を行う場合について説明した。本実施形態では各タイルをビットマップ部とフラットフィル部とに像域分離して、画像処理を行う例を説明する。
【0047】
始めに、本実施形態におけるラスタ画像処理部(RIP)1200の構成について説明する。
図10は、本実施形態を示す画像処理装置の構成を説明するブロック図である。ラスタ画像処理部(RIP)1200と、図3に示したラスタ画像処理部303とで構成が異なるのは、画像記憶部1202の像域判定部が像域分離部1208に置き換わり、画像読込部1204に像域結合部1219が追加されている点である。なお、図10に示す1208と1219以外の各部は、図3に示す501〜507、509〜518に対応する図10に示す1201〜1207、1209〜1218とは同様の機能処理を実行するため、詳細な説明は省略する。
【0048】
図10において、像域分離部1208は、各タイルをビットマップ部とフラットフィル部とに像域分離するモジュールである。像域結合部1219は、分離されたビットマップ部とフラットフィル部とを結合して、タイルの形状に戻すモジュールである。なお、第1実施形態と同様に、画像処理装置300が備えるCPUが上記像域分離部1208、像域結合部1219に対応するモジュールを実行することで、本実施形態に示す画像処理が実現される。
【0049】
図11は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図10に示した画像記憶部1202に記憶される各モジュールによるタイル分割から画像圧縮するまでの処理例である。各ステップは、画像処理装置300のCPUが上述したモジュールを実行することで実現される。
第1実施形態と異なるのは、像域分離部1208によるタイル毎に像域分離する処理(S1304)が加わったことである。これに伴い、さらに像域毎にフラットフィル部か否かの判定結果に応じて圧縮処理するループ(S1305及びS1311)と、フラットフィル部と判定されなかった像域においてピクセル補間する処理(S1308)が加わったことである。具体的には、入力されるPDLデータ内のイメージデータを像域に分離し、該分離した像域が可逆圧縮領域か、非可逆圧縮領域かを判定する。そして、領域毎の中間データを生成するために圧縮処理を行う。その再、SS1309で圧縮前拡大処理を実行する。また、後述する図12において、保持される中間データを伸長する際に、S1407で伸長したデータに対して伸長後拡大処理を行う。
【0050】
図12は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、画像読込部1204による画像伸長からフラットフィル部を回転・拡大するまでの処理例である。本実施形態と異なるのは、像域毎にフラットフィル部か否かの判定結果に応じて伸長処理するループ(S1404及びS1409)と、像域を結合する処理(S1410)が加わったことである。
【0051】
次に、像域分離部1208による像域分離処理について詳細に説明する。像域分離処理は、ラスタ画像を1ライン毎に読み込むことから開始される。なお、像域分離部1208は、ラスタ画像を画像処理装置300の主走査方向に対し1ライン毎に読み込むものとする。
【0052】
図13は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図10に示した像域分離部1208による像域分離処理例である。
始めに、任意のスキャンラインを読み込み、スキャンラインのループを開始する(S1501)。S1501において、任意のスキャンラインを読み込んだ場合、スキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する(S1502)。S1502において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、左隣のランと同色か否かを像域分離部1208が判定する(S1503)。S1503において、左隣のランと同色と像域分離部1208が判定した場合、左隣のランに、読み込んだピクセルを加える(S1504)。S1503において、左隣のランと同色でない像域分離部1208が判定した場合(読み込んだピクセルがスキャンラインにおいて一番左だった場合も含む)、読み込んだピクセルを新しいランとする(S1505)。
S1504、またはS1505の処理を終えた場合、読み込んだピクセルから次のピクセルへ移動する(S1506)。像域分離部1208は、移動したピクセルの色データを読み込み、S1502から処理を開始する。S1506において、読み込んだスキャンライン上の全てのピクセルに対し、S1504、またはS1505の処理を施した場合、S1507へ処理を移す。
【0053】
S1507において、像域分離部1208は、読み込んだスキャンラインにおける任意のランを読み込み、ランのループを開始する(S1508)。S1508において、読み込んだランと同じ色のランが、一つ前のスキャンライン上に存在し、かつお互いが隣接しているか否かを判定する(S1508)。S1508において、隣接していると像域分離部1208が判定した場合、読み込んだランを一つ前のスキャンライン上のランに加え、像域を更新する(S1509)。
【0054】
S1508において、隣接していないと像域分離部1208が判定した場合、読み込んだランを新しい像域とする(S1510)。S1509、またはS1510の処理を終えた場合、像域分離部1208は読み込んだランから次のランへ移動する(S1511)。そして、像域分離部1208は、移動したランにおける色データを読み込み、S1507から処理を開始する。S1511において、像域分離部1208は、読み込んだスキャンライン上の全てのランに対し、S1510、またはS1511の処理を施した場合、S1512へ処理を移す。
【0055】
S1512へ処理を移した場合、像域分離部1208は、み込んだスキャンラインから次のスキャンラインへ移動する(S1512)。移動したラインにおけるスキャンラインを読み込み、S1501から処理を開始する。S1512において、像域分離部1208はラスタ画像における全てのスキャンラインを読み込んだ場合、S1513へ処理を移す。S1513へ処理を移した場合、像域分離部1208は、ラスタ画像の夫々の像域におけるピクセル数をカウントし、ピクセル数が閾値を越える像域をフラットフィル部、閾値を越えなかった像域をビットマップ部とする。以上、説明したように像域分離処理を行う。
【0056】
次に、各像域の圧縮方法について説明する。圧縮方法選択部1209は、夫々の像域に適した圧縮方法を選択する。本実施形態において、ビットマップ部の像域は、ピクセル補間及びJPEGが圧縮方法として選択されるものとする。なお、フラットフィル部の圧縮方法については後述する。
【0057】
図14は、本実施形態を示す画像処理装置におけるピクセル補間の例を示す図である。
図14において、ラスタ画像データのタイル1600は、フラットフィル部1601及び1602と、ビットマップ部1603とに像域分離されるものとする。このとき、ビットマップ部1603は、フラットフィル部として分離されたピクセル領域を補間されて、タイルの形状になる。
【0058】
次に、ビットマップ部1603のピクセル補間処理について詳細に説明する。ピクセル補間処理は、ラスタ画像のタイルを1ライン毎に読み込むことから開始される。
【0059】
図15は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、画像圧縮部1211による図14に示したピクセル補間処理例である。
始めに、任意のスキャンラインを読み込み、スキャンラインのループを開始する(S1701)。S1701において、画像圧縮部1211は、任意のスキャンラインを読み込んだ場合、スキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する(S1702)。S1702において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、フラットフィル部に属しているか否かを画像圧縮部1211が判定する(S1703)。
【0060】
S1703において、フラットフィル部に属していると画像圧縮部1211が判定された場合、画像圧縮部1211は、補間対象のランに、読み込んだピクセルを加える(S1704)。S1703において、フラットフィル部に属していないと画像圧縮部1211が判定した場合、画像圧縮部1211は、補間対象のランに読み込んだピクセルを複製して(S1705)、補間対象のランをクリアする(S1706)。
S1704、またはS1706の処理を終えた場合、画像圧縮部1211は、読み込んだピクセルから次のピクセルへ移動する(S1707)。画像圧縮部1211は、移動したピクセルの色データを読み込み、S1702から処理を開始する。S1707において、画像圧縮部1211は、読み込んだスキャンライン上の全てのピクセルに対し、S1704、またはS1706の処理を施した場合、S1708へ処理を移す。
【0061】
S1708において画像圧縮部1211は、補間対象のランに残っているピクセルがあるか否かを判定する。S1708において、残ピクセルがあると画像圧縮部1211が判定した場合、画像圧縮部1211は、該残ピクセルがスキャンラインであるか否かを判定する(S1709)。
【0062】
S1709において、該残ピクセルがスキャンラインであると画像圧縮部1211が判定された場合、すなわち読み込んだスキャンライン全体がフラットフィル部に属していた場合、読み込んだスキャンラインを補間対象のスキャンラインに加える(S1710)。一方、S1709において、該残ピクセルがスキャンラインでないと画像圧縮部1211が判定した場合、すなわち読み込んだスキャンラインのうち右端部分がフラットフィル部に属していた場合は、S1711へ進む。そして、S1711において、読み込んだスキャンライン上のビットマップ部のうち右端の色値を補間対象のランに複製する。
【0063】
S1710、またはS1711の処理を終えた場合、画像圧縮部1211は、補間対象のランをクリアする(S1712)。
一方、S1708において、残ピクセルがないと画像圧縮部1211が判定した場合、すなわち読み込んだスキャンライン全体がビットマップ部に属している、若しくは補間完了している場合、S1713へ進む。そして、1713において、画像圧縮部1211は、該スキャンラインの色値を補間対象のスキャンラインに複製して、補間対象のスキャンラインをクリアする(S1714)。
【0064】
S1712、またはS1714の処理を終えた場合、画像圧縮部1211は、読み込んだスキャンラインから次のスキャンラインへ移動する(S1715)。移動したスキャンラインにおける色データを読み込み、S1701から処理を開始する。S1715において、画像圧縮部1211は、タイル内の全てのスキャンラインに対し、S1712、またはS1714の処理を施した場合、S1716へ処理を移す。
【0065】
S1716において、画像圧縮部1211は、補間対象のスキャンラインに残っているスキャンラインがあるか否かを判定する。S1716において、残スキャンラインがあると画像圧縮部1211が判定した場合、S1717へ進む。そして、S1717において、補間対象でない(つまり全体がビットマップ部に属している、若しくは補間完了している)スキャンラインのうち、下端のスキャンラインの色値を、補間対象のスキャンラインに複製する。S1717の処理を終えた場合、画像圧縮部1211は、補間対象のスキャンラインをクリアする(S1718)。S1718の処理を終えた場合、またはS1716において、残スキャンラインがないと画像圧縮部1211が判定した場合、ピクセル補間の処理を完了する。
【0066】
次に、フラットフィル部の圧縮方法について説明する。
本実施形態において、フラットフィル部の各像域は、座標情報と色データとを可逆圧縮される。座標情報は、前記辺情報の塗り領域の情報と同じく、夫々のY座標における、像域の開始位置と終了位置で構成される。座標情報は、Huffman符号化によって可変長符号化される。また、色データは、本実施形態と同じ形式に可変長符号化される。
【0067】
各像域の伸長方法について説明する。ビットマップ部の像域は、JPEG伸長される。また、フラットフィル部の各像域は、座標情報のHuffman復号化及び、本実施形態と同じ方法による色データの復号化が行われる。
【0068】
伸長されたフラットフィル部の各像域は、フラットフィル回転拡大部1214で回転及び拡大される。本実施形態において、フラットフィル部の各像域は、アフィン変換によって回転・拡大されて、夫々の座標情報を更新する。
【0069】
次に、像域結合部1219による像域結合処理について説明する。
像域結合部1219は、夫々のタイルにおいて、伸長されたビットマップ部と、伸長後に回転・拡大されたフラットフィル部とを結合し、タイルの形状に戻す。本実施形態において、像域結合処理は、ピクセル補間により既にタイルと同じ形状になっているビットマップ部に、フラットフィル部のピクセルを上書きすることで行われる。
具体的には以下の手順になる。
ビットマップ部の伸長処理を実行する際に、伸長したラスタ画像データを、伸長済みラスタ画像を一時記憶しておくバッファメモリにおける、当該タイルの領域に展開しておく。そして、像域結合部1219が回転・拡大が終わったフラットフィル部の各像域について、夫々の座標情報が対応する、バッファメモリにおける当該タイルの領域に、夫々の色データを上書きで複製する。
以上説明したように、本実施形態ではラスタ画像の各タイルをフラットフィル部の像域とビットマップ部の像域とに像域分離することで、非可逆圧縮後に拡大することによる画質劣化のノイズ増幅を防ぎつつ、圧縮データのサイズ削減を図ることを実現している。
【0070】
〔第3実施形態〕
次に第3実施形態について説明する。本実施形態では、ビットマップ部と判定された像域に対して、フラットフィル部かビットマップ部かの再判定を行う。
一例では、ビットマップ部と判定された像域において、ピクセル数が閾値未満ならば該像域をフラットフィル部であるとして判定を修正する。
【0071】
また、別の一例では、ビットマップ部と判定された像域において、フラットフィル部の圧縮方法と、ビットマップ部の回転・拡大・圧縮方法の、両方で圧縮を試みる。そして、フラットフィル部かビットマップ部かの何れか、圧縮データサイズの小さい方を選択することで再判定する。これにより、画質向上及び、圧縮データのさらなるサイズ削減を図っている。
【0072】
〔第4実施形態〕
次に第4実施形態について説明する。本実施形態では、第1〜第3実施形態においてラスタ画像データの拡大率が1未満である場合、すなわちラスタ画像データを縮小する場合に、該縮小処理をタイル分割の前に行う。
【0073】
図16は、本実施形態を示す画像処理方法を説明するフローチャートである。本例は、タイル分割から画像圧縮するまでの処理例である。以下、第2実施形態と異なるステップについて説明する。
先ず、タイル分割前の処理では、ラスタ画像データの拡大率が1より小か否かを判定して(S1802)、拡大率が1より小であると判断した場合、画像データを回転・縮小する(S1803)処理が追加されている。
次に、タイル分割後の処理では、像域分離部1208がフラットフィル部でないと判定した像域において、圧縮方法選択部1209がラスタ画像データの拡大率が1より大か否かを判定する(S1811)。ここで、拡大率が1より大であると判断した場合のみ画像データをビットマップ回転拡大部1210が回転・拡大処理する(S1812)ように処理が変更されている。
【0074】
以上説明したように、実施例4ではラスタ画像の拡大率に応じて、フラットフィル部かビットマップ部かに関わらず、縮小処理をタイル分割の前に行うように変更する。これにより、圧縮データのさらなるサイズ削減を図っている。
〔その他の実施形態〕
【0075】
第1、第2実施形態におけるビットマップ部の圧縮処理を以下のように実行するように構成してもよい。
拡大してから非可逆圧縮した圧縮データ(以下、拡大済み圧縮データ)と、拡大しないで非可逆圧縮した圧縮データ(以下、未拡大圧縮データ)の、両方を生成して画像記憶領域506(第2実施形態では1206)に記憶しておく。
このような構成において、ラスタ画像データの圧縮処理及び、ジョブデータ生成部503(第2実施形態では1203)がジョブデータ生成を行う。この際、画像記憶領域506(第2実施形態では1206)を含むバッファメモリが予め定めた制限メモリ量を超えた場合には、拡大圧縮データを削除して、未拡大圧縮データをビットマップ部の圧縮データとして決定する。圧縮処理及びジョブデータ生成処理が全て終わったとき、バッファメモリが予め定めた制限メモリ量を超えていなかった場合には、未拡大圧縮データを削除し、拡大済み圧縮データをビットマップ部の圧縮データとして決定する。
【0076】
これにより、第1、第2実施形態によってビットマップ部で非可逆圧縮前に拡大処理を行うように変更したことが原因で、バッファメモリが予め定めた制限メモリ量を超えてしまう、という事態を防ぐことが可能になる。
【産業上の利用可能性】
【0077】
本発明は、プリンタやディスプレイ等の表示装置、または画像出力デバイス等に利用することができる。
【0078】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン(コンピュータ)等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【0079】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【0080】
301 入力部
302 解釈部
303 ラスタ画像処理部
304 画像形成部
305 出力部
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の画像処理方法及びプログラムに関するものである。
【背景技術】
【0002】
画像処理装置におけるレンダリング処理における拡縮処理とは、入力画像の解像度を所定の解像度に拡大または縮小する処理である。また、レンダリング処理における圧縮・伸長処理とは夫々、入力データを基に生成した中間データを圧縮する処理、圧縮した中間データを伸長する処理である。
【0003】
特許文献1には次の方法が開示されている。画像データの拡大率等に基づいて圧縮率を決定して、画像データを非可逆圧縮してバッファメモリに書き込み、バッファメモリから読み出して伸長した後にレンダリング解像度に拡大する。
【0004】
特許文献2には次の方法が開示されている。画像データをタイル単位に可逆圧縮して可逆圧縮データを生成する。このとき、タイル毎に画像データの属性に基づいて可逆圧縮すべきか非可逆圧縮すべきかを判定し、可逆/非可逆判定情報を関連付ける。非可逆圧縮すべきと判定されたタイル数が閾値を超える度に、非可逆判定情報を有する可逆圧縮データを低解像度に縮小する。1ページ分の可逆圧縮が終了すると、非可逆判定情報を有する可逆圧縮データを、非可逆圧縮して非可逆圧縮データに置き換える。そして、可逆圧縮データ及び非可逆圧縮データを伸長した後にレンダリング解像度に拡大する。
【0005】
図17及び図18は、従来の圧縮・伸長・拡大処理の例を図示化したものである。
図17の(A)は、拡大処理をした後に非可逆圧縮を行い、伸長している。結果、圧縮データのデータサイズが肥大する。圧縮データのデータサイズが増加すれば、その転送時間も増加することになる。また、図17の(B)では、圧縮データのデータサイズが制限を超えた場合における、従来技術の一対処法を図示化している。図17の(B)は、圧縮データのデータサイズが制限を超えると、一旦伸長を行い、当該ページをレンダリングして非可逆圧縮する。この手法によると、1ページ全体を非可逆圧縮するため、出力画像の画質が著しく劣化してしまう。
【0006】
上述のことから、特にバッファメモリが少ない画像処理装置において、非可逆圧縮をした後に拡大処理を行う手法が用いられている。
図18では、非可逆圧縮を行った後に、伸長してから拡大処理を行っている。これにより、前記拡大による圧縮データのサイズ増加は防げるものの、非可逆圧縮で生じた画質劣化のノイズが、後の拡大処理によって増幅される。その結果、出力画像の画質が大幅に劣化してしまう。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−313411号公報
【特許文献2】特開2008−072624号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来の画像処理装置における画像処理は上記のように構成されているので、PDLデータを解析して中間データを生成する処理において、非可逆圧縮の前に、イメージデータ全体を画一的に拡大してしまう。このため、生成された中間データのサイズが大きくなり、イメージデータに対して非可逆圧縮処理を実行する。これにより、中間データからラスタ画像データを生成する際に、画質が大幅に劣化してしまう。
一方、中間データ生成処理において拡大処理を実行せずに、中間データをレンダリングする際に拡大処理すると、中間データ生成処理で実行される非可逆圧縮で生じた画質劣化のノイズが増幅されてしまう。
本発明は上記の課題を解決するためになされたもので、本発明の目的は、PDLデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減できる仕組みを提供することである。
【課題を解決するための手段】
【0009】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割手段と、可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する判定手段と、タイル毎のイメージデータを、前記判定手段により判定されたタイル属性に応じて、可逆圧縮方式、非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成手段と、生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング手段と、前記判定手段により判定されたタイル属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大手段と、を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、PDLデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減できる。
【図面の簡単な説明】
【0011】
【図1】本実施形態を示す画像処理装置の構成を説明するブロック図である。
【図2】画像処理装置の画像処理方法を説明するフローチャートである。
【図3】ラスタ画像処理部(RIP)の各種機能を示すブロック図である。
【図4】オブジェクトとスキャンライン(水平線)との様子を示す図である。
【図5】ジョブデータ生成部が生成するジョブデータの構造を示す図である。
【図6】画像処理装置の画像処理方法を説明するフローチャートである。
【図7】ラスタ画像データのデータ構造を説明刷る図である。
【図8】画像処理装置の画像処理方法を説明するフローチャートである。
【図9】画像処理装置の画像処理方法を説明するフローチャートである。
【図10】画像処理装置の構成を説明するブロック図である。
【図11】画像処理装置の画像処理方法を説明するフローチャートである。
【図12】画像処理装置の画像処理方法を説明するフローチャートである。
【図13】画像処理装置の画像処理方法を説明するフローチャートである。
【図14】画像処理装置におけるピクセル補間の例を示す図である。
【図15】画像処理装置の画像処理方法を説明するフローチャートである。
【図16】画像処理装置の画像処理方法を説明するフローチャートである。
【図17】従来の圧縮・伸長・拡大処理の例を図示化したものである。
【図18】従来の圧縮・伸長・拡大処理の例を図示化したものである。
【発明を実施するための形態】
【0012】
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
【0013】
図1は、本実施形態を示す画像処理装置の構成を説明するブロック図である。以下、図1を参照して、入力されるPDLデータに基づく中間データを生成した後、当該中間データをレンダリングしてラスタ画像データを生成する画像処理装置を説明する。本実施形態において、オブジェクトとは、入力された描画命令から成る描画要素を指し、例えば、ビットマップグラフィックス、フラットグラフィックス、グラデーショングラフィックス、テキスト等がオブジェクトのタイプに挙げられる。
また、ラスタ画像とは、例えば、BMP、JPEG等の写真データを始めとする、ビットマップグラフィックスに分類されるオブジェクトのことを指す。後述する像域判定処理または像域分離処理を実行することで、ラスタ画像は、フラットフィル部(単一の色データ部)、ビットマップ部の2つの画像領域の内、少なくとも1つの画像領域と判定されて分離される。さらに、本実施形態において、入力されるPDLデータは、中間データ生成処理と、中間データを保持する処理、中間データレンダリング処理とを含む一連の画像処理が実行されることで、ラスタ画像データが生成される。
図1において、画像処理装置300は、描画命令に基づき画像を形成、および出力する装置であり、入力部301、解釈部(インタプリタ)302、ラスタ画像処理部(RIP)303、画像形成部304、出力部305から構成される。
入力部301は、画像処理装置300に接続されている外部装置から描画命令を受け付ける。ここで、外部装置とは、双方向通信可能なインタフェースを介して通信可能なデータ処理装置、サーバ装置等が含まれる。ここで、双方向通信可能なインタフェースには、USBインタフェースやネットワークインタフェースが含まれる。また、サーバ装置には、いわゆるクラウドコンピューティング環境に設置されるサーバ装置が含まれる。
【0014】
解釈部(インタプリタ)302は、入力部301で受け付けた描画命令を解釈する。本実施形態における描画命令の形式は、PDL(Page Description Language)である。
ラスタ画像処理部(RIP)303は、解釈部(インタプリタ)302により解釈された描画命令を基にレンダリングを行い、ラスタ画像を生成する。画像形成部304はラスタ画像処理部(RIP)303により生成されたラスタ画像に対し、ハーフトーン処理等の画像処理を施して出力画像を形成する。出力部305は、画像形成部304により形成された出力画像を出力する。なお、本実施形態における画像処理装置は、MFP(Multi Function Printer)であり、出力部305は、記録紙に印刷を行うことで出力画像を出力する。
【0015】
なお、解釈部(インタプリタ)302、ラスタ画像処理部(RIP)303、画像形成部304は、各種プログラムをRAM(Random Access Memory)にロードし、CPUが実行することで実現される。また、ラスタ画像処理部(RIP)303は、CPUではなくラスタ画像を生成するためのASIC(Application Specific Integrated Circuit)で実現されても良い。
【0016】
次に、ラスタ画像処理部(RIP)303によるラスタ画像の生成処理について詳細に説明する。
図2は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図1に示したラスタ画像処理部(RIP)303によるラスタ画像生成処理例である。以下、画像処理装置300のCPUが実行するラスタ画像処理部(RIP)303によるデータ処理を説明する。
始めに、ラスタ画像処理部(RIP)303は、図1の解釈部(インタプリタ)302で解釈した描画命令に基づき、描画オブジェクトを生成する(S401)。なお、上述の如く、描画オブジェクトの種類は複数存在し、夫々の描画オブジェクトはいずれかのオブジェクトの種類に分類される。
【0017】
続いて、ラスタ画像処理部(RIP)303は、S401において生成された描画オブジェクトの座標情報を基に、夫々のオブジェクトのエッジを検出しジョブデータを生成する(S402)。
最後に、ラスタ画像処理部(RIP)303は、S402において生成されたジョブデータを基に、ラスタ画像をレンダリングする(S403)。なお、ジョブデータについては、後述する。
【0018】
次に、ラスタ画像処理部(RIP)303の内部構成について詳細に説明する。
図3は、図1に示したラスタ画像処理部(RIP)303の各種機能を示すブロック図である。なお、後述する各部は、画像処理装置300のCPUが各部をモジュールとして構成する場合を示すが、各部の一部をハードウエアとして構成することも可能である。
図3において、ラスタ画像処理部(RIP)303は、描画オブジェクト生成部501、画像記憶部502、ジョブデータ生成部503、画像読込部504、レンダリング部505、画像記憶領域506、ジョブデータ記憶領域518から構成される。
描画オブジェクト生成部501は、解釈部(インタプリタ)302により解釈された描画命令を受け付けて、オブジェクトを生成する。以下、描画オブジェクトを解析して画像形成部304に出力する画像データを生成する処理を説明する。
【0019】
〔画像記憶部502の構成〕
画像記憶部502は、ラスタ画像タイプのオブジェクトに対して処理を行うタイル分割部507、像域判定部508、圧縮方法選択部509、ビットマップ回転拡大部510、画像圧縮部511を備える。
タイル分割部507は、ラスタ画像のオブジェクトをタイル単位に分割するモジュールとして機能する。本実施形態において、タイルは、予め定めた縦横のピクセル数(例えば64×64ピクセル単位)で区切られた画像ブロックである。
像域判定部508は、各タイルがフラットフィル部であるかビットマップ部であるか判定する処理を実行する。本実施形態において、フラットフィル部は全ての画素が同一色であるタイルであり、ビットマップ部は2色以上を有するタイルである。
圧縮方法選択部509は、夫々のタイルに適した圧縮方法を選択する。本実施形態において、ビットマップ部のタイルはJPEGが圧縮方法(非可逆圧縮)として選択されるものとする。なお、フラットフィル部の圧縮方法(可逆圧縮)については後述する。
ビットマップ回転拡大部510は、ビットマップ部のタイルを、回転及びレンダリング解像度に拡大する処理を実行する。本実施形態において、ビットマップ回転拡大部510は、アフィン変換を用いてビットマップ部の回転及び拡大を同時に行う。画像圧縮部511は、各タイルを選択した圧縮方法に従って画像圧縮する。圧縮された各タイルにおけるラスタ画像データは、画像記憶領域506に記憶される。
【0020】
〔ジョブデータ生成部503の構成〕
ジョブデータ生成部503は、エッジ検出部512、ジョブデータ構築部513から構成される。エッジ検出部512は、オブジェクトのエッジを検出する。ジョブデータ構築部513は、辺情報と、塗り合成ストアと、塗り情報とから構成されるジョブデータを生成して、ジョブデータ記憶領域518に記憶する。なお、ジョブデータ生成部503による、ジョブデータ生成処理については後述する。
【0021】
〔画像読込部504の構成〕
画像読込部504は、フラットフィル回転拡大部514、画像伸長部515から構成され、ラスタ画像タイプのオブジェクトに対して機能する。画像伸長部515は、画像記憶領域506に保存されている各タイルのラスタ画像データを伸長する。フラットフィル回転拡大部514は、画像伸長部515により伸長されたラスタ画像データのうち、フラットフィル部のタイルを、回転及びレンダリング解像度に拡大する。なお、フラットフィル部の伸長・回転・拡大の方法については後述する。
【0022】
〔レンダリング部505の構成〕
レンダリング部505は、塗り描画部516、ジョブデータ評価部517から構成される。ジョブデータ評価部517は、ジョブデータ記憶領域518からジョブデータを読み込んで、それぞれの塗り合成レコードに保持された塗りノード群を、単一の塗りノードへとするために合成演算を行う。なお、塗り合成レコードについては後述する。塗り描画部516は、塗り領域の各画素位置におけるラスタ画素値を、ジョブデータ評価部517により合成演算された値とし、対応するラスタ画像の記憶領域に書き込む。全ての塗り領域について本処理を行うことにより、ラスタ画像が生成される。
【0023】
次に、ジョブデータ生成部503によるジョブデータ生成処理について詳細に説明する。本実施形態において、ジョブデータ生成処理とは、エッジ検出処理でオブジェクトの輪郭点を抽出し、ジョブデータを生成する処理のことを指す。
図4は、オブジェクトに対してスキャンライン(水平線)が交差している様子を示す図である。
【0024】
図4において、図中の矢印で示すように(4ライン目)、4つの輪郭点が抽出されている。図4で示すように、スキャンラインとオブジェクトが交差する点(ピクセル)が、輪郭点とみなされる。なお、図4において、P601、P602、P603、P604が輪郭点として抽出されている。
図4に示すように、輪郭点P602、および輪郭点P603のように、オブジェクト同士が重なる領域についても新たな輪郭点が抽出されることになる。この輪郭点を抽出する処理を、描画範囲の各スキャンライン(図4においては、1ライン目から10ライン目まで)に対して行うことで、オブジェクトによって区分けされる領域(塗り領域)を検出することが可能となる。
【0025】
図4を基に塗り領域の具体例を述べると、左端から輪郭点P601までが一つの塗り領域になり、第1の塗り領域となる。また、輪郭点P601から輪郭点P602までが一つの塗り領域になり、第2の塗り領域となる。また、輪郭点P602から輪郭点P603までが一つの塗り領域になり、第3の塗り領域となる。また、輪郭点P603から輪郭点P604までが一つの塗り領域となり、第4の塗り領域になる。また、輪郭点P604から右端までが一つの塗り領域になり、第5の塗り領域となる。上述の如く、スキャンライン毎に塗り領域を確定していく。
【0026】
図5は、図3に示したジョブデータ生成部503により生成されたジョブデータの構造を示す図である。本実施形態では、PDLデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータ生成部503が生成する。 図5に示すように、ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とから構成される。なお、図5の画像データは、前面画像であるフラットグラフィックスオブジェクトと、背面画像であるラスタ画像に対応するイメージオブジェクトが、透過で重なっている。
【0027】
始めに、辺情報について詳細に説明する。なお、図4には説明上、ラインに対応するY方向と、Y方向に直交するX方向の座標値を数値で示す。
ジョブデータにおける辺情報には、上述の塗り領域の情報が保持されている。具体的には、夫々のY座標における、塗り領域の開始位置と終了位置の情報が保持されている。具体的に図4を用いて述べると、4ライン目(Y座標がY=4)における第1の塗り領域の開始位置は左端から1(X=1)、終了位置は2(Y=2)として保持されている。また、3ライン目の1(X=1)から2(X=2)までの領域も第1の領域として保持される。これにより、夫々の塗り領域における全ての画素位置を特定することができる。また、辺情報における各塗り領域は、後述する塗り合成ストアのレコード(塗り合成レコード)を参照する。
図5の例では、辺情報701の塗り領域は、フラットグラフィックタイプとラスタ画像タイプのオブジェクト要素が重なる塗り領域を表し、塗り合成レコード702を参照している。
【0028】
次に、図5に示す塗り合成ストアについて詳細に説明する。
塗り合成ストアは、複数の塗り合成レコードから構成される。塗り合成レコードは、1つ、または複数の塗りノードで構成される。塗りレコードは、対応する塗り領域内に存在するオブジェクトの重なりの順序をスタックで保持している。
例えば、図5における塗り合成レコード702を例に挙げると、グレーのグラフィックのオブジェクトの方が、ラスタ画像のオブジェクトよりも前面であるため、前面(左側)に保持されている。各塗りノードは、後述する塗り情報を参照している。
【0029】
次に、図5に示す塗り情報について詳細に説明する。
塗り情報は、辺情報の塗り方法を表現する。即ち、塗り情報は、色データから構成されていると言える。オブジェクトタイプがフラットグラフィックスであれば単色の色データであり、ラスタ画像であれば画像記憶領域506に記憶されているラスタ画像の色データとなる。
図5の例では、塗りノード703はグレーの色データ705を参照し、塗りノード704はラスタ画像データ706を参照している。
次に、画像記憶部502におけるタイル分割処理から画像圧縮するまでの処理について詳細に説明する。具体的には、入力されるPDLデータ内のイメージデータをタイル単位に分割し、該分割したタイル属性が可逆圧縮属性か、非可逆圧縮属性かを判定する。そして、タイル単位に中間データを生成するために圧縮処理を行う。その際、S806で圧縮前拡大処理を実行する。また、後述する図8において、保持される中間データを伸長する際に、S1006で伸長したデータに対して伸長後拡大処理を行う。
【0030】
図6は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図3に示した画像記憶部502が備えるモジュールによるタイル分割から画像圧縮するまでの処理例であり、ラスタ画像タイプのオブジェクトに対して実行される。なお、各ステップは、画像処理装置300のCPUが図3に示した画像記憶部502に記憶されるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。なお、本実施形態において、分割されるタイルが1つの色データで満たされる領域をフラットフィル部と呼び、分割されるタイル内の隣接する画素がそれぞれ異なる色値を含む領域をビットマップイメージ部と呼ぶ。また、本実施形態において、可逆圧縮方式に対応するタイル領域の属性はフラットフィル部に対応し、非可逆圧縮方式に対応するタイル領域の属性はビットマップ部に対応する。以下、タイル分割されたタイル属性がフラットフィルであるのか、フラットフィル以外であるのかを判断して異なる圧縮処理を伴って中間データを生成する処理を説明する。また、本実施形態では、後述するS807において、すなわち、中間データを生成する前のタイミングでイメージデータに対して回転または拡大処理を実行したイメージデータに対して非可逆圧縮処理する。
【0031】
始めに、描画オブジェクト生成部501が生成する描画範囲内から任意の描画オブジェクトを読み込み、ラスタ画像データのループを開始する(S801)。次に、タイル分割部507がラスタ画像データをタイル分割する(S802)。S802において、ラスタ画像データをタイル分割した場合、任意のタイルを読み込み、タイルのループを開始する(S803)。S803において、タイル分割部507が読み込んだタイルが、フラットフィル部であるか否かを像域判定部508が判定する(S804)。
【0032】
S804において、フラットフィル部であると像域判定部508が判定した場合、圧縮方法選択部509が選択する圧縮方法に従い画像圧縮部511が色データを可逆圧縮して(S805)、S808へ進む。
なお、本実施形態において、色データはチャンネル数から1引いた数値(4ビット長)と1チャンネルあたりの色値のビット長から1引いた数値(4ビット長)と各チャンネルの色値(チャンネル数×色値のビット長)とで構成される形式に可変長符号化される。
図7は、ラスタ画像データが24ビットRGB画像(RGB夫々が8ビット)であり、当該タイルが緑一色のときの例を示した図である。このため、図7に示す例では、チャンネル数から1引いた数値は2(D901)、1チャンネルあたりの色値のビット長から1引いた数値は7(D902)、各チャンネルの色値は0、255、0(D903)となる。
【0033】
S804において、フラットフィル部でないと像域判定部508が判定した場合(本実施形態においては、ビットマップ部を指す)、ビットマップ回転拡大部510が画像データを回転・拡大して(S806)、画像圧縮部511が非可逆圧縮する(S807)。上述した通り、本実施形態において、ビットマップ回転拡大部510による回転・拡大はアフィン変換、画像圧縮部511による非可逆圧縮はJPEGで行う。
【0034】
S805またはS807の処理が終了すると、タイル分割部507が次のタイルを読み込み(S808)、S803から処理を開始する。
そして、S808で、全てのタイルの読み込みを終了していると判断した場合、画像圧縮部511が圧縮したデータを画像記憶領域506に記憶する(S809)。そして、S809の処理が終了すると、描画オブジェクト生成部501が生成する次の描画オブジェクトを読み込む(S810)。次のラスタ画像データが存在すると描画オブジェクト生成部501が判断した場合は、S801から処理を開始する。
一方、S810で、次のラスタ画像データが存在しないと描画オブジェクト生成部501が判定した場合は、本処理を終了とする。
【0035】
次に、画像読込部504における画像伸長からフラットフィル部の回転・拡大までの処理について詳細に説明する。
図8は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図3に示した画像読込部504による画像伸長からフラットフィル部を回転・拡大するまでの処理例である。なお、各ステップは、画像処理装置300のCPUが図3に示した画像読込部504が備えるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。また、本実施形態では、後述するS1006において、すなわち、中間データを伸長した後のタイミングで中間データに対して回転または拡大処理を実行する。
【0036】
始めに、ジョブデータを基に描画領域内の任意のラスタ画像データを選択し、選択したラスタ画像データの参照情報を参照し、ループを開始する(S1001)。本実施形態における参照情報は、ラスタ画像データの圧縮データが存在する画像記憶領域506内のアドレスである。次に、画像読込部504が参照情報を基にラスタ画像データの圧縮データを画像記憶領域506から読み込む(S1002)。S1002において、画像伸長部515が圧縮データを読み込むと、任意のタイルを選択し、ループを開始する(S1003)。S1003において選択したタイルが、フラットフィル部であるか否かを画像読込部504が判定する(S1004)。
【0037】
S1004において、フラットフィル部でないと画像読込部504が判定した場合、即ち、選択したタイルがビットマップ部である場合、画像伸長部515がビットマップ部の伸長を行う(S1007)。本実施形態では、JPEG方式の伸長アルゴリズムで伸長することとする。このとき、伸長されたラスタ画像データは、伸長済みラスタ画像を一時記憶しておくバッファメモリにおける、当該タイルの領域に展開される。
【0038】
S1004において、フラットフィル部であると画像読込部504が判定した場合、画像伸長部515が色データの伸長を行う(S1005)。具体的には、画像伸長部515が前記色データの可逆圧縮符号を復号化して、各チャンネルの色値を得る。
図7の例では、先頭の4ビットを読込んでチャンネル数が3であることを知り、次の4ビットを読込んで1チャンネルあたりの色値のビット長が8であることを知り、最後に3チャンネル分だけ8ビットずつ読込んで、「0、255、0」という24ビットRGB値を取得する。
S1005において、画像伸長部515が色データを伸長し終えたら、フラットフィル回転拡大部514がこの色データを回転・拡大する(S1006)。
具体的には、フラットフィル回転拡大部514が画像伸長部515により伸長された色データを、伸長済みラスタ画像データを一時記憶しておくバッファメモリにおける、当該タイルの領域に複製して塗り潰す。
【0039】
画像読込部504がS1006またはS1007の処理を終えると、画像読込部504が次のタイルを選択しS1003から処理を繰り返す(S1008)。そして、タイル処理を終了したら、S1009で、画像読込部504が描画領域内のラスタ画像データの全タイルに対して、伸長済みラスタ画像データをバッファメモリに記憶して、本処理を終了とする。
【0040】
次に、レンダリング部505によるレンダリング処理について詳細に説明する。
図9は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図2に示したS403のレンダリング処理例である。なお、各ステップは、画像処理装置300のCPUが図3に示したレンダリング部505が備えるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。
始めに、ジョブデータ評価部517が描画範囲内からスキャンラインを一つ選択し、Lineに代入する(S1101)。このとき、該描画範囲内のラスタ画像データは、上述した画像読込部504の処理によって、既に伸長済みである。次に、Line上に存在する辺情報から塗り領域を一つ選択し、Edgeに代入する(S1102)。
【0041】
S1102において、ジョブデータ評価部517が塗り領域を選択した(Edgeに代入した)場合、塗り領域の参照する塗り合成レコードをRecordに読み込む(S1103)。S1103において読み込んだ塗り合成レコードに、2つ以上の塗りノードが残っているか否かをジョブデータ評価部517が判定する(S1104)。
S1104において、塗り合成レコードに2つ以上の塗りノードが残っているとジョブデータ評価部517が判定した場合、ジョブデータ評価部517がRecordから最前面の塗りノードを取り出して変数Srcへ代入する(S1105)。
【0042】
S1105において、変数Srcへ最前面の塗りノードを代入した場合、ジョブデータ評価部517が変数Recordから最前面の塗りノードをもう1つ取り出して変数Destへ代入する(S1106)。S1106において、変数Destへ塗りノードを代入した場合、ジョブデータ評価部517が変数Srcと変数Destに対して合成処理を行う。さらに、ジョブデータ評価部517が結果として生成された塗りノードを合成結果Resとして(S1107)、合成結果Resを塗りレコードの最前面に挿入する(S1108)。S1108の処理の後は、S1104に戻る。
一方、S1104において、塗りレコードに2つ以上の塗りノードが残っていないとジョブデータ評価部517が判定した場合、S1109へ処理が移る。なお、塗りノードが1つだけになっていれば、この塗りノードが最終的な合成結果となっている。
【0043】
続いて、塗り描画部516が塗り領域内の変数Line上から画素位置を一つ選択し、変数Posへ代入する(S1110)。S1110において、塗り描画部516が画素位置を選択した(Posへ代入した)場合、塗り描画部516は、選択した画素位置におけるラスタ画素値を合成結果Resから読み込み、変数Valへ代入する(S1111)。このとき、合成結果Resが単色の塗り情報を参照していれば、その単色の色データを変数Valへ代入することになり、ラスタ画像の塗り情報を参照していれば、画素位置の色データをラスタ画像データから読み込んで変数Valへ代入することになる。
【0044】
S1111において、塗り描画部516が合成結果Resを変数Valへ代入した場合、変数Posに対応するラスタ画像の画素値を変数Valにするため、ラスタ画像の記憶領域にValの値を書き込む(S1112)。
次に、塗り描画部516が塗り領域内のLine上から別の画素位置を選択する(S1113)。塗り描画部516は、別の画素位置を選択した後、S1110から処理を再び開始する。
そして、塗り描画部516が塗り領領域内のLine上の全画素位置についてラスタ画素値の書き込みが終了したと判断した場合、次の辺情報へ処理を移す(S1114)。そして、塗り描画部516が変数Line上に存在する全ての塗り領域について処理が終了したと判断した場合、次のスキャンラインへ処理に移す(S1115)。
このように全てのスキャンラインについて処理を行うことより、描画範囲におけるレンダリング処理すなわちラスタ画像の生成が完了する。以上が、レンダリング処理の説明になる。
【0045】
以上説明したように、本実施形態ではラスタ画像をフラットフィル部のタイルとビットマップ部のタイルとに分けて、フラットフィル部のタイルに対して、可逆圧縮した後に拡大処理を行っている。
一方、ビットマップ部のタイルに対して、拡大した後に非可逆圧縮を行っている。これにより、非可逆圧縮後に拡大することによる画質劣化のノイズ増幅を防ぎつつ、圧縮データのサイズ削減を図ることが可能となる。
〔第2実施形態〕
【0046】
次に第2実施形態について説明する。
第1実施形態ではラスタ画像データをタイル単位で分割してビットマップ部かフラットフィル部かどうかを判定して画像処理を行う場合について説明した。本実施形態では各タイルをビットマップ部とフラットフィル部とに像域分離して、画像処理を行う例を説明する。
【0047】
始めに、本実施形態におけるラスタ画像処理部(RIP)1200の構成について説明する。
図10は、本実施形態を示す画像処理装置の構成を説明するブロック図である。ラスタ画像処理部(RIP)1200と、図3に示したラスタ画像処理部303とで構成が異なるのは、画像記憶部1202の像域判定部が像域分離部1208に置き換わり、画像読込部1204に像域結合部1219が追加されている点である。なお、図10に示す1208と1219以外の各部は、図3に示す501〜507、509〜518に対応する図10に示す1201〜1207、1209〜1218とは同様の機能処理を実行するため、詳細な説明は省略する。
【0048】
図10において、像域分離部1208は、各タイルをビットマップ部とフラットフィル部とに像域分離するモジュールである。像域結合部1219は、分離されたビットマップ部とフラットフィル部とを結合して、タイルの形状に戻すモジュールである。なお、第1実施形態と同様に、画像処理装置300が備えるCPUが上記像域分離部1208、像域結合部1219に対応するモジュールを実行することで、本実施形態に示す画像処理が実現される。
【0049】
図11は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図10に示した画像記憶部1202に記憶される各モジュールによるタイル分割から画像圧縮するまでの処理例である。各ステップは、画像処理装置300のCPUが上述したモジュールを実行することで実現される。
第1実施形態と異なるのは、像域分離部1208によるタイル毎に像域分離する処理(S1304)が加わったことである。これに伴い、さらに像域毎にフラットフィル部か否かの判定結果に応じて圧縮処理するループ(S1305及びS1311)と、フラットフィル部と判定されなかった像域においてピクセル補間する処理(S1308)が加わったことである。具体的には、入力されるPDLデータ内のイメージデータを像域に分離し、該分離した像域が可逆圧縮領域か、非可逆圧縮領域かを判定する。そして、領域毎の中間データを生成するために圧縮処理を行う。その再、SS1309で圧縮前拡大処理を実行する。また、後述する図12において、保持される中間データを伸長する際に、S1407で伸長したデータに対して伸長後拡大処理を行う。
【0050】
図12は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、画像読込部1204による画像伸長からフラットフィル部を回転・拡大するまでの処理例である。本実施形態と異なるのは、像域毎にフラットフィル部か否かの判定結果に応じて伸長処理するループ(S1404及びS1409)と、像域を結合する処理(S1410)が加わったことである。
【0051】
次に、像域分離部1208による像域分離処理について詳細に説明する。像域分離処理は、ラスタ画像を1ライン毎に読み込むことから開始される。なお、像域分離部1208は、ラスタ画像を画像処理装置300の主走査方向に対し1ライン毎に読み込むものとする。
【0052】
図13は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図10に示した像域分離部1208による像域分離処理例である。
始めに、任意のスキャンラインを読み込み、スキャンラインのループを開始する(S1501)。S1501において、任意のスキャンラインを読み込んだ場合、スキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する(S1502)。S1502において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、左隣のランと同色か否かを像域分離部1208が判定する(S1503)。S1503において、左隣のランと同色と像域分離部1208が判定した場合、左隣のランに、読み込んだピクセルを加える(S1504)。S1503において、左隣のランと同色でない像域分離部1208が判定した場合(読み込んだピクセルがスキャンラインにおいて一番左だった場合も含む)、読み込んだピクセルを新しいランとする(S1505)。
S1504、またはS1505の処理を終えた場合、読み込んだピクセルから次のピクセルへ移動する(S1506)。像域分離部1208は、移動したピクセルの色データを読み込み、S1502から処理を開始する。S1506において、読み込んだスキャンライン上の全てのピクセルに対し、S1504、またはS1505の処理を施した場合、S1507へ処理を移す。
【0053】
S1507において、像域分離部1208は、読み込んだスキャンラインにおける任意のランを読み込み、ランのループを開始する(S1508)。S1508において、読み込んだランと同じ色のランが、一つ前のスキャンライン上に存在し、かつお互いが隣接しているか否かを判定する(S1508)。S1508において、隣接していると像域分離部1208が判定した場合、読み込んだランを一つ前のスキャンライン上のランに加え、像域を更新する(S1509)。
【0054】
S1508において、隣接していないと像域分離部1208が判定した場合、読み込んだランを新しい像域とする(S1510)。S1509、またはS1510の処理を終えた場合、像域分離部1208は読み込んだランから次のランへ移動する(S1511)。そして、像域分離部1208は、移動したランにおける色データを読み込み、S1507から処理を開始する。S1511において、像域分離部1208は、読み込んだスキャンライン上の全てのランに対し、S1510、またはS1511の処理を施した場合、S1512へ処理を移す。
【0055】
S1512へ処理を移した場合、像域分離部1208は、み込んだスキャンラインから次のスキャンラインへ移動する(S1512)。移動したラインにおけるスキャンラインを読み込み、S1501から処理を開始する。S1512において、像域分離部1208はラスタ画像における全てのスキャンラインを読み込んだ場合、S1513へ処理を移す。S1513へ処理を移した場合、像域分離部1208は、ラスタ画像の夫々の像域におけるピクセル数をカウントし、ピクセル数が閾値を越える像域をフラットフィル部、閾値を越えなかった像域をビットマップ部とする。以上、説明したように像域分離処理を行う。
【0056】
次に、各像域の圧縮方法について説明する。圧縮方法選択部1209は、夫々の像域に適した圧縮方法を選択する。本実施形態において、ビットマップ部の像域は、ピクセル補間及びJPEGが圧縮方法として選択されるものとする。なお、フラットフィル部の圧縮方法については後述する。
【0057】
図14は、本実施形態を示す画像処理装置におけるピクセル補間の例を示す図である。
図14において、ラスタ画像データのタイル1600は、フラットフィル部1601及び1602と、ビットマップ部1603とに像域分離されるものとする。このとき、ビットマップ部1603は、フラットフィル部として分離されたピクセル領域を補間されて、タイルの形状になる。
【0058】
次に、ビットマップ部1603のピクセル補間処理について詳細に説明する。ピクセル補間処理は、ラスタ画像のタイルを1ライン毎に読み込むことから開始される。
【0059】
図15は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、画像圧縮部1211による図14に示したピクセル補間処理例である。
始めに、任意のスキャンラインを読み込み、スキャンラインのループを開始する(S1701)。S1701において、画像圧縮部1211は、任意のスキャンラインを読み込んだ場合、スキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する(S1702)。S1702において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、フラットフィル部に属しているか否かを画像圧縮部1211が判定する(S1703)。
【0060】
S1703において、フラットフィル部に属していると画像圧縮部1211が判定された場合、画像圧縮部1211は、補間対象のランに、読み込んだピクセルを加える(S1704)。S1703において、フラットフィル部に属していないと画像圧縮部1211が判定した場合、画像圧縮部1211は、補間対象のランに読み込んだピクセルを複製して(S1705)、補間対象のランをクリアする(S1706)。
S1704、またはS1706の処理を終えた場合、画像圧縮部1211は、読み込んだピクセルから次のピクセルへ移動する(S1707)。画像圧縮部1211は、移動したピクセルの色データを読み込み、S1702から処理を開始する。S1707において、画像圧縮部1211は、読み込んだスキャンライン上の全てのピクセルに対し、S1704、またはS1706の処理を施した場合、S1708へ処理を移す。
【0061】
S1708において画像圧縮部1211は、補間対象のランに残っているピクセルがあるか否かを判定する。S1708において、残ピクセルがあると画像圧縮部1211が判定した場合、画像圧縮部1211は、該残ピクセルがスキャンラインであるか否かを判定する(S1709)。
【0062】
S1709において、該残ピクセルがスキャンラインであると画像圧縮部1211が判定された場合、すなわち読み込んだスキャンライン全体がフラットフィル部に属していた場合、読み込んだスキャンラインを補間対象のスキャンラインに加える(S1710)。一方、S1709において、該残ピクセルがスキャンラインでないと画像圧縮部1211が判定した場合、すなわち読み込んだスキャンラインのうち右端部分がフラットフィル部に属していた場合は、S1711へ進む。そして、S1711において、読み込んだスキャンライン上のビットマップ部のうち右端の色値を補間対象のランに複製する。
【0063】
S1710、またはS1711の処理を終えた場合、画像圧縮部1211は、補間対象のランをクリアする(S1712)。
一方、S1708において、残ピクセルがないと画像圧縮部1211が判定した場合、すなわち読み込んだスキャンライン全体がビットマップ部に属している、若しくは補間完了している場合、S1713へ進む。そして、1713において、画像圧縮部1211は、該スキャンラインの色値を補間対象のスキャンラインに複製して、補間対象のスキャンラインをクリアする(S1714)。
【0064】
S1712、またはS1714の処理を終えた場合、画像圧縮部1211は、読み込んだスキャンラインから次のスキャンラインへ移動する(S1715)。移動したスキャンラインにおける色データを読み込み、S1701から処理を開始する。S1715において、画像圧縮部1211は、タイル内の全てのスキャンラインに対し、S1712、またはS1714の処理を施した場合、S1716へ処理を移す。
【0065】
S1716において、画像圧縮部1211は、補間対象のスキャンラインに残っているスキャンラインがあるか否かを判定する。S1716において、残スキャンラインがあると画像圧縮部1211が判定した場合、S1717へ進む。そして、S1717において、補間対象でない(つまり全体がビットマップ部に属している、若しくは補間完了している)スキャンラインのうち、下端のスキャンラインの色値を、補間対象のスキャンラインに複製する。S1717の処理を終えた場合、画像圧縮部1211は、補間対象のスキャンラインをクリアする(S1718)。S1718の処理を終えた場合、またはS1716において、残スキャンラインがないと画像圧縮部1211が判定した場合、ピクセル補間の処理を完了する。
【0066】
次に、フラットフィル部の圧縮方法について説明する。
本実施形態において、フラットフィル部の各像域は、座標情報と色データとを可逆圧縮される。座標情報は、前記辺情報の塗り領域の情報と同じく、夫々のY座標における、像域の開始位置と終了位置で構成される。座標情報は、Huffman符号化によって可変長符号化される。また、色データは、本実施形態と同じ形式に可変長符号化される。
【0067】
各像域の伸長方法について説明する。ビットマップ部の像域は、JPEG伸長される。また、フラットフィル部の各像域は、座標情報のHuffman復号化及び、本実施形態と同じ方法による色データの復号化が行われる。
【0068】
伸長されたフラットフィル部の各像域は、フラットフィル回転拡大部1214で回転及び拡大される。本実施形態において、フラットフィル部の各像域は、アフィン変換によって回転・拡大されて、夫々の座標情報を更新する。
【0069】
次に、像域結合部1219による像域結合処理について説明する。
像域結合部1219は、夫々のタイルにおいて、伸長されたビットマップ部と、伸長後に回転・拡大されたフラットフィル部とを結合し、タイルの形状に戻す。本実施形態において、像域結合処理は、ピクセル補間により既にタイルと同じ形状になっているビットマップ部に、フラットフィル部のピクセルを上書きすることで行われる。
具体的には以下の手順になる。
ビットマップ部の伸長処理を実行する際に、伸長したラスタ画像データを、伸長済みラスタ画像を一時記憶しておくバッファメモリにおける、当該タイルの領域に展開しておく。そして、像域結合部1219が回転・拡大が終わったフラットフィル部の各像域について、夫々の座標情報が対応する、バッファメモリにおける当該タイルの領域に、夫々の色データを上書きで複製する。
以上説明したように、本実施形態ではラスタ画像の各タイルをフラットフィル部の像域とビットマップ部の像域とに像域分離することで、非可逆圧縮後に拡大することによる画質劣化のノイズ増幅を防ぎつつ、圧縮データのサイズ削減を図ることを実現している。
【0070】
〔第3実施形態〕
次に第3実施形態について説明する。本実施形態では、ビットマップ部と判定された像域に対して、フラットフィル部かビットマップ部かの再判定を行う。
一例では、ビットマップ部と判定された像域において、ピクセル数が閾値未満ならば該像域をフラットフィル部であるとして判定を修正する。
【0071】
また、別の一例では、ビットマップ部と判定された像域において、フラットフィル部の圧縮方法と、ビットマップ部の回転・拡大・圧縮方法の、両方で圧縮を試みる。そして、フラットフィル部かビットマップ部かの何れか、圧縮データサイズの小さい方を選択することで再判定する。これにより、画質向上及び、圧縮データのさらなるサイズ削減を図っている。
【0072】
〔第4実施形態〕
次に第4実施形態について説明する。本実施形態では、第1〜第3実施形態においてラスタ画像データの拡大率が1未満である場合、すなわちラスタ画像データを縮小する場合に、該縮小処理をタイル分割の前に行う。
【0073】
図16は、本実施形態を示す画像処理方法を説明するフローチャートである。本例は、タイル分割から画像圧縮するまでの処理例である。以下、第2実施形態と異なるステップについて説明する。
先ず、タイル分割前の処理では、ラスタ画像データの拡大率が1より小か否かを判定して(S1802)、拡大率が1より小であると判断した場合、画像データを回転・縮小する(S1803)処理が追加されている。
次に、タイル分割後の処理では、像域分離部1208がフラットフィル部でないと判定した像域において、圧縮方法選択部1209がラスタ画像データの拡大率が1より大か否かを判定する(S1811)。ここで、拡大率が1より大であると判断した場合のみ画像データをビットマップ回転拡大部1210が回転・拡大処理する(S1812)ように処理が変更されている。
【0074】
以上説明したように、実施例4ではラスタ画像の拡大率に応じて、フラットフィル部かビットマップ部かに関わらず、縮小処理をタイル分割の前に行うように変更する。これにより、圧縮データのさらなるサイズ削減を図っている。
〔その他の実施形態〕
【0075】
第1、第2実施形態におけるビットマップ部の圧縮処理を以下のように実行するように構成してもよい。
拡大してから非可逆圧縮した圧縮データ(以下、拡大済み圧縮データ)と、拡大しないで非可逆圧縮した圧縮データ(以下、未拡大圧縮データ)の、両方を生成して画像記憶領域506(第2実施形態では1206)に記憶しておく。
このような構成において、ラスタ画像データの圧縮処理及び、ジョブデータ生成部503(第2実施形態では1203)がジョブデータ生成を行う。この際、画像記憶領域506(第2実施形態では1206)を含むバッファメモリが予め定めた制限メモリ量を超えた場合には、拡大圧縮データを削除して、未拡大圧縮データをビットマップ部の圧縮データとして決定する。圧縮処理及びジョブデータ生成処理が全て終わったとき、バッファメモリが予め定めた制限メモリ量を超えていなかった場合には、未拡大圧縮データを削除し、拡大済み圧縮データをビットマップ部の圧縮データとして決定する。
【0076】
これにより、第1、第2実施形態によってビットマップ部で非可逆圧縮前に拡大処理を行うように変更したことが原因で、バッファメモリが予め定めた制限メモリ量を超えてしまう、という事態を防ぐことが可能になる。
【産業上の利用可能性】
【0077】
本発明は、プリンタやディスプレイ等の表示装置、または画像出力デバイス等に利用することができる。
【0078】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン(コンピュータ)等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【0079】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【0080】
301 入力部
302 解釈部
303 ラスタ画像処理部
304 画像形成部
305 出力部
【特許請求の範囲】
【請求項1】
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割手段と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する判定手段と、
タイル毎のイメージデータを、前記判定手段により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成手段と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング手段と、
前記判定手段により判定されたタイル属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記判定手段は、タイル毎に分割されたイメージデータがビットマップイメージ部である場合に可逆圧縮すべきタイル属性と判定し、タイル毎に分割されたイメージデータがフラットフィル部である場合に非可逆圧縮すべきタイル属性であると判定することを特徴とすることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記拡大手段は、分割されたタイル属性がフラットフィル部である場合は前記中間データを生成する前のタイミングで拡大し、分割されたタイル属性がフラットフィル部以外である場合は前記中間データを伸長した後のタイミングで前記イメージデータを拡大することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記中間データ生成手段は、中間データを生成する前に、タイル分割されたイメージデータをタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮することを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記中間データレンダリング手段は、可逆圧縮方式、または非可逆圧縮方式で圧縮された中間データからラスタ画像データを生成する前に伸長することを特徴とする請求項1記載の画像処理装置。
【請求項6】
前記PDLデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成手段を備えることを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記描画オブジェクトは、イメージオブジェクトと、グラフィックスオブジェクトとを含むことを特徴とする請求項6記載の画像処理装置。
【請求項9】
前記グラフィックスオブジェクトは、前記ジョブデータの塗り情報が色データであることを特徴とする請求項8記載の画像処理装置。
【請求項10】
前記グラフィックスオブジェクトは、イメージデータから中間データを生成する前に可逆圧縮され、当該中間データを伸長したラスタ画像データに対して回転または拡大処理を行うことを特徴とする請求項8または9記載の画像処理装置。
【請求項11】
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割手段と、
前記分割手段が分割したタイル領域を属性の異なる像域に分離する分離手段と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離手段により分離された像域毎に判定する判定手段と、
像域毎のイメージデータを、前記判定手段により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成手段と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング手段と、
前記判定手段により判定された像域の属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大手段と、
を備えることを特徴とする画像処理装置。
【請求項12】
前記判定手段は、像域毎に分離されたイメージデータがビットマップイメージ部である場合に可逆圧縮すべきタイル属性と判定し、像域毎に分離されたイメージデータがフラットフィル部である場合に非可逆圧縮すべきタイル属性であると判定することを特徴とすることを特徴とする請求項11に記載の画像処理装置。
【請求項13】
画像処理装置の画像処理方法であって、
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割工程と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割工程により分割されたタイル毎に判定する判定工程と、
タイル毎のイメージデータを、前記判定工程により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成工程と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング工程と、
前記判定工程により判定されたタイル属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大工程と、
を備えることを特徴とする画像処理装置の画像処理方法。
【請求項14】
画像処理装置の画像処理方法であって、
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割工程と、
前記分割工程が分割したタイル領域を属性の異なる像域に分離する分離工程と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離工程により分離された像域毎に判定する判定工程と、
像域毎のイメージデータを、前記判定工程により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成工程と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング工程と、
前記判定工程により判定された像域の属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大工程と、
を備えることを特徴とする画像処理装置の画像処理方法。
【請求項15】
請求項13または14に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項1】
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割手段と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する判定手段と、
タイル毎のイメージデータを、前記判定手段により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成手段と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング手段と、
前記判定手段により判定されたタイル属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記判定手段は、タイル毎に分割されたイメージデータがビットマップイメージ部である場合に可逆圧縮すべきタイル属性と判定し、タイル毎に分割されたイメージデータがフラットフィル部である場合に非可逆圧縮すべきタイル属性であると判定することを特徴とすることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記拡大手段は、分割されたタイル属性がフラットフィル部である場合は前記中間データを生成する前のタイミングで拡大し、分割されたタイル属性がフラットフィル部以外である場合は前記中間データを伸長した後のタイミングで前記イメージデータを拡大することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記中間データ生成手段は、中間データを生成する前に、タイル分割されたイメージデータをタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮することを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記中間データレンダリング手段は、可逆圧縮方式、または非可逆圧縮方式で圧縮された中間データからラスタ画像データを生成する前に伸長することを特徴とする請求項1記載の画像処理装置。
【請求項6】
前記PDLデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成手段を備えることを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記描画オブジェクトは、イメージオブジェクトと、グラフィックスオブジェクトとを含むことを特徴とする請求項6記載の画像処理装置。
【請求項9】
前記グラフィックスオブジェクトは、前記ジョブデータの塗り情報が色データであることを特徴とする請求項8記載の画像処理装置。
【請求項10】
前記グラフィックスオブジェクトは、イメージデータから中間データを生成する前に可逆圧縮され、当該中間データを伸長したラスタ画像データに対して回転または拡大処理を行うことを特徴とする請求項8または9記載の画像処理装置。
【請求項11】
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割手段と、
前記分割手段が分割したタイル領域を属性の異なる像域に分離する分離手段と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離手段により分離された像域毎に判定する判定手段と、
像域毎のイメージデータを、前記判定手段により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成手段と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング手段と、
前記判定手段により判定された像域の属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大手段と、
を備えることを特徴とする画像処理装置。
【請求項12】
前記判定手段は、像域毎に分離されたイメージデータがビットマップイメージ部である場合に可逆圧縮すべきタイル属性と判定し、像域毎に分離されたイメージデータがフラットフィル部である場合に非可逆圧縮すべきタイル属性であると判定することを特徴とすることを特徴とする請求項11に記載の画像処理装置。
【請求項13】
画像処理装置の画像処理方法であって、
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割工程と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割工程により分割されたタイル毎に判定する判定工程と、
タイル毎のイメージデータを、前記判定工程により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成工程と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング工程と、
前記判定工程により判定されたタイル属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大工程と、
を備えることを特徴とする画像処理装置の画像処理方法。
【請求項14】
画像処理装置の画像処理方法であって、
入力されるPDLデータ内のイメージデータをタイル単位に分割する分割工程と、
前記分割工程が分割したタイル領域を属性の異なる像域に分離する分離工程と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離工程により分離された像域毎に判定する判定工程と、
像域毎のイメージデータを、前記判定工程により判定されたタイル属性に応じて、可逆圧縮方式、または非可逆圧縮方式で圧縮し、属性の異なる中間データを生成する中間データ生成工程と、
生成された中間データを伸長しラスタ画像データを生成する中間データレンダリング工程と、
前記判定工程により判定された像域の属性に応じて、前記イメージデータに対して、または前記ラスタ画像データに対して拡大処理を行う拡大工程と、
を備えることを特徴とする画像処理装置の画像処理方法。
【請求項15】
請求項13または14に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−238288(P2012−238288A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−108580(P2011−108580)
【出願日】平成23年5月13日(2011.5.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願日】平成23年5月13日(2011.5.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]