(57)【要約】【課題】  画像形成装置において、ページ記述言語を解析して描画データを作成する描画処理において、マスクイメージを作成するための描画図形を中間言語であるディスプレイリスト（ＤＬ）で保持する場合に、描画図形によっては、ＤＬのサイズが大きくなりすぎてメモリ等のリソース不足を発生してしまう問題を解決すること。【解決手段】  本発明の画像形成装置では、マスクプレーンに描画するＤＬのサイズと、同ＤＬを描画するマスクプレーンをビットマップ化した際のサイズとを比較して、サイズの少ない方の形式によりデータを保持することにより、リソース不足を解消した。【選択図】図３
2010099973.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語により記載された印刷データを解析して中間言語に変換処理するデータ解析処理部と、
前記データ解析処理部により変換された中間言語データのデータサイズを計数する中間言語サイズ計数部と、
前記中間言語データのビットマップデータのデータサイズを計数するビットマップサイズ計数部と、
前記中間言語サイズ計数部により計数された中間言語データのデータサイズと、前記ビットマップサイズ計数部により計数されたビットマップデータのデータサイズとの大小を判断するデータサイズ判断部と、
前記データサイズ判断部により、中間言語データのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記中間言語データをビットマップデータに変換してデータを保持する小サイズデータ選択部と、
前記小サイズデータ選択部により選択された中間言語データ及びビットマップデータをレンダリングバッファに展開するレンダリング処理部とを有する
ことを特徴とする画像形成装置。
【請求項２】
請求項１の画像形成装置であって、
前記中間言語サイズ計数部及び前記ビットマップサイズ計数部は、マスクプレーン毎にデータサイズを計数し、
前記データサイズ判断部は、マスクプレーン毎にデータサイズを計数して判断する
ことを特徴とする画像形成装置。
【請求項３】
請求項１又は２の画像形成装置であって、
前記ビットマップサイズ計数部が計数するビットマップデータのデータサイズは、前記マスクプレーンを内包する前記マスクプレーンの外接矩形状の幅、高さ及びカラー深度に基づいて定まる
ことを特徴とする画像形成装置。
【請求項４】
コンピュータに
ページ記述言語により記載された印刷データを解析して中間言語に変換処理するデータ解析処理機能と、
前記データ解析処理部により変換された中間言語データのデータサイズを計数する中間言語サイズ計数機能と、
前記中間言語データのビットマップデータのデータサイズを計数するビットマップサイズ計数機能と、
前記中間言語サイズ計数部により計数された中間言語データのデータサイズと、前記ビットマップサイズ計数部により計数されたビットマップデータのデータサイズとの大小を判断するデータサイズ判断機能と、
前記データサイズ判断部により、中間言語データのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記中間言語データをビットマップデータに変換してデータを保持する小サイズデータ選択機能と、
前記小サイズデータ選択部により選択された中間言語データ及びビットマップデータをレンダリングバッファに展開するレンダリング処理機能とを実現させる
ことを特徴とする画像形成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
画像形成装置において、ページ記述言語を中間言語を経て印刷データに変換する過程で、メモリの消費を抑制する技術に関するものである。
【背景技術】
【０００２】
ページ記述言語を解釈して印刷するときの描画処理において、図形のクリッピング処理を実行するときがある。そのときは、マスクイメージを作成するための図形を出力バッファと別のバッファにイメージを展開する必要がある。また、このマスクイメージを形成する図形データはページ記述言語を変換した中間言語であるＤＬ（ディスプレイリスト）で構成される。このマスクイメージを形成するＤＬはマスクデータが不要になるまでメモリ上に保持する必要がある。このＤＬは出力ページイメージを構成するＤＬと異なり、メモリが不足したときに実行するプリディスクリプションでも解放しない。
【０００３】
また、図形データによっては、ＤＬで保持する際に必要とされるメモリ量がそのイメージデータのビットマップでのメモリ量よりも多くなる場合がある。そのため、マスクイメージ用のＤＬによってメモリが消費され、メモリ・リソースが不足し、レンダリング処理の続行が困難になる可能性がある。
【０００４】
従来技術として、符号化に際し縮小された絵柄情報のプレーンを複合時に拡大することに起因する境界の周辺のボケを解消するため、入力画像を画像分離部によって、非絵柄部からなる背景プレーン画像と、絵柄プレーン画像と、絵柄部の場所を示すマスクプレーン画像の３つのプレーンに分解して、絵柄部分については低解像度の縮小による符号化を行い、境界部分については解像度を犠牲にせず符号化処理を行う方法がある（特許文献１参照）。
【０００５】
しかし、この方法は境界周辺のボケ解消を目的とするものであって、マスクイメージ作成の際のメモリ・リソースの不足を解消するものではなかった。
【特許文献１】特開２００３−８７５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
解決しようとする問題点は、画像形成装置及び画像形成プログラムにおいて、ページ記述言語を中間言語を経て印刷データに変換する際に、複雑な描画図形により中間言語データのサイズが大きくなり、メモリ・リソースを消費してしまう点である。
【課題を解決するための手段】
【０００７】
本発明の画像形成装置は、ページ記述言語により記載された印刷データを解析して中間言語に変換処理するデータ解析処理部と、前記データ解析処理部により変換された中間言語データのデータサイズを計数する中間言語サイズ計数部と、前記中間言語データのビットマップデータのデータサイズを計数するビットマップサイズ計数部と、前記中間言語サイズ計数部により計数された中間言語データのデータサイズと、前記ビットマップサイズ計数部により計数されたビットマップデータのデータサイズとの大小を判断するデータサイズ判断部と、前記データサイズ判断部により、中間言語データのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記中間言語データをビットマップデータに変換してデータを保持する小サイズデータ選択部と、前記小サイズデータ選択部により選択された中間言語データ及びビットマップデータをレンダリングバッファに展開するレンダリング処理部とを有することを特徴とする。
【０００８】
また、本発明の画像形成装置の前記中間言語サイズ計数部及び前記ビットマップサイズ計数部は、マスクプレーン毎にデータサイズを計数し、前記データサイズ判断部は、マスクプレーン毎にデータサイズを計数して判断することを特徴としてもよい。
【０００９】
また、本発明の画像形成装置の前記ビットマップサイズ計数部が計数するビットマップデータのデータサイズは、前記マスクプレーンを内包する前記マスクプレーンの外接矩形状の幅、高さ及びカラー深度に基づいて定まることを特徴としてもよい。
【００１０】
本発明の画像形成プログラムは、コンピュータにページ記述言語により記載された印刷データを解析して中間言語に変換処理するデータ解析処理機能と、前記データ解析処理部により変換された中間言語データのデータサイズを計数する中間言語サイズ計数機能と、前記中間言語データのビットマップデータのデータサイズを計数するビットマップサイズ計数機能と、前記中間言語サイズ計数部により計数された中間言語データのデータサイズと、前記ビットマップサイズ計数部により計数されたビットマップデータのデータサイズとの大小を判断するデータサイズ判断機能と、前記データサイズ判断部により、中間言語データのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記中間言語データをビットマップデータに変換してデータを保持する小サイズデータ選択機能と、前記小サイズデータ選択部により選択された中間言語データ及びビットマップデータをレンダリングバッファに展開するレンダリング処理機能とを実現させることを特徴とする。
【発明の効果】
【００１１】
本発明の画像形成装置は、ページ記述言語により記載された印刷データを解析して中間言語に変換処理するデータ解析処理部と、前記データ解析処理部により変換された中間言語データのデータサイズを計数する中間言語サイズ計数部と、前記中間言語データのビットマップデータのデータサイズを計数するビットマップサイズ計数部と、前記中間言語サイズ計数部により計数された中間言語データのデータサイズと、前記ビットマップサイズ計数部により計数されたビットマップデータのデータサイズとの大小を判断するデータサイズ判断部と、前記データサイズ判断部により、中間言語データのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記中間言語データをビットマップデータに変換してデータを保持する小サイズデータ選択部と、前記小サイズデータ選択部により選択された中間言語データ及びビットマップデータをレンダリングバッファに展開するレンダリング処理部とを有することを特徴とする。
【００１２】
このため、複雑な描画データのために中間言語のデータサイズが大きくなってメモリ・リソースを消費してしまい、描画データ処理が停止してしまうことを抑制することが可能となる。
【００１３】
また、本発明の画像形成装置の前記中間言語サイズ計数部及び前記ビットマップサイズ計数部は、マスクプレーン毎にデータサイズを計数し、前記データサイズ判断部は、マスクプレーン毎にデータサイズを計数して判断することを特徴としてもよい。
【００１４】
このため、マスクプレーン単位での細かなデータサイズの消費の抑制を制御可能となる。
【００１５】
また、本発明の画像形成装置の前記ビットマップサイズ計数部が計数するビットマップデータのデータサイズは、前記マスクプレーンを内包する前記マスクプレーンの外接矩形状の幅、高さ及びカラー深度に基づいて定まることを特徴としてもよい。
【００１６】
このため、ビットマップのデータサイズの計算は単純な外接矩形の形状を求めることでよいので、処理速度が向上する。
【００１７】
本発明の画像形成プログラムは、コンピュータにページ記述言語により記載された印刷データを解析して中間言語に変換処理するデータ解析処理機能と、前記データ解析処理部により変換された中間言語データのデータサイズを計数する中間言語サイズ計数機能と、前記中間言語データのビットマップデータのデータサイズを計数するビットマップサイズ計数機能と、前記中間言語サイズ計数部により計数された中間言語データのデータサイズと、前記ビットマップサイズ計数部により計数されたビットマップデータのデータサイズとの大小を判断するデータサイズ判断機能と、前記データサイズ判断部により、中間言語データのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記中間言語データをビットマップデータに変換してデータを保持する小サイズデータ選択機能と、前記小サイズデータ選択部により選択された中間言語データ及びビットマップデータをレンダリングバッファに展開するレンダリング処理機能とを実現させることを特徴とする。
【００１８】
このため、複雑な描画データのために中間言語のデータサイズが大きくなってメモリ・リソースを消費してしまい、描画データ処理が停止してしまうことを抑制することが可能となる。
【発明を実施するための最良の形態】
【００１９】
画像形成装置及び画像形成プログラムにおいて、複雑な描画図形等によってページ記述言語から変換された中間言語データサイズが大きくなることにより、メモリ・リソースが消費されてしまい、描画処理が出来なくなってしまうという問題点を解消するために、中間言語データをビットマップデータに変換したほうがデータ・サイズが小さくなる場合には、ビットマップ化を行って、当該ビットマップデータを保持する方法により解決した。
【実施例】
【００２０】
［マスクプレーン上の描画図形、レンダリング］
図１（Ａ）に、印刷データ中に記載されている描画図形を示す。この描画図形は、図１（Ｂ）に示すマスクプレーン上に載っている。マスクプレーンとは、レンダリングでどのピクセルを描画するか、描画しないかの０／１の情報を持つ（０：描画しない／１：描画する）描画ためのマスクデータである。マスクプレーンは、レンダリングバッファの幅、高さで存在する。マスクプレーンバッファは予め確保しておき、高階層のマスク時は追加して確保する。マスクプレーンに描画するイメージの内容は、ディスプレイリストとして専用の管理構造体に登録しておき、該当するバンドのレンダリング内容の図形を示すディスプレイリストにリンクさせる。
【００２１】
図１（Ｃ）に最終的に描画されるレンダリングバッファについての図を示す。レンダリングバッファ上には、描画図形がマスクプレーンで指定された枠内で描画されているのが示されている。
【００２２】
［レンダリングバッファ及びマスクプレーン上のＤＬ管理構造体］
図２（Ａ）は、従来技術におけるページデータを中間言語であるディスプレイリストに変換した際のデータの構造を示す。左側に示してあるのはページデータをバンド幅毎に区切ってある様子である。右側には、そのバンド毎にディスプレイリストがリンクリスト上に並んだディスプレイリストの管理構造体を示す。
【００２３】
図２（Ｂ）に示すのは、同様に従来技術でのマスクプレーン上のディスプレイリストの管理構造体である。図２（Ａ）と同様に左側にページがバンド幅毎に区切られた様子を示す。また、右側にはそのバンド毎にマスクプレーン上に描画する描画図形を記載したディスプレイリストがリンクリスト上に並んだディスプレイリストの管理構造体を示す。
【００２４】
以上のように、従来はページ単位でページ記述言語を中間言語であるディスプレイリストに一旦全て変換してから、その後にラスタライズ処理を行ってディスプレイリストをビットマップ変換していた。
【００２５】
［ディスプレイリストのマスクイメージへの変換］
本発明の画像形成装置においては、印刷データであるページ記述言語をプリンタでバンド単位にレンダリングする過程において、マスクプレーンに描画する中間言語であるディスプレイリスト（ＤＬ）の合計サイズがマスクプレーンのバッファサイズより大きくなったときには、一旦、ラスタライズ（マスクイメージにビットマップ展開）する。場合によってはラスタライズしたデータを圧縮してもよい。このディスプレイリストで描画図形を保持する代わりにマスクイメージで保持するように切替える。図３に、マスクプレーンに描画するＤＬ管理構造体をマスクイメージ（データを圧縮した場合は、圧縮マスクイメージ）で置き換える様子を示す。マスクイメージに置き換えられたＤＬ管理構造体のデータは、メモリから消去する。
【００２６】
図３のように、ＤＬ管理構造体をバンド毎に存在するマスクプレーンのイメージとして置換して保持できるようにすることで、マスクプレーンに描画するためのディスプレイリストが増えすぎて、それらのデータを解放できずにメモリが圧迫されることを回避可能となる。
【００２７】
［構成］
図４は、本発明の実施例に係わる画像形成装置１０の機能ブロック図である。
【００２８】
画像形成装置１０は、通信インターフェース１１、データ受信部１２、データ解析部１３、描画データ処理部１４、マスクプレーンラスタライズ部１５、レンダリング処理部１６、出力部１７、メモリ管理部１８の各機能部を有する。
【００２９】
マスクプレーンラスタライズ部１５は、さらにディスプレイリストサイズ計数部２１（中間言語サイズ計数部）、ビットマップサイズ計数部２３、データサイズ判断部２５、小サイズデータ選択部２７の各機能部を内包する。
【００３０】
通信インターフェース１１は、ホストコンピュータ等との通信を行う機能部である。ページ記述言語で記載された印刷データは、本通信インターフェース１１を介してデータ受信部１２に渡される。
【００３１】
データ受信部１２は、通信インターフェース１１を介してデータを受信する機能部である。
【００３２】
データ解析部１３（データ解析処理部）は、送られてきた印刷データの解析を行なう機能部である。印刷データはページ記述言語で記載されており、該ページ記述言語の解析を行う。
【００３３】
描画データ処理部１４（データ解析処理部）は、データ解析部１３での解析に基づいて、ページ記述言語を中間言語であるディスプレイリスト（ＤＬ）に変換する。
【００３４】
データ解析部１３と描画データ処理部１４とは、協調してデータ解析処理部として働き、ページ記述言語により記載された印刷データを解析して中間言語に変換する。
【００３５】
データ解析部１３によってページ記述言語を解析し、描画データ処理部１４によってディスプレイリストを作成する際に、各バンドに対するディスプレイリストのリンクリストに生成されたディスプレイリストを追加していくが、マスクプレーンに描画する図形のときは、同時にマスクプレーンに描画するＤＬ管理構造体にディスプレイリストを格納していく。マスクプレーンに描画するためのディスプレイリストは、レンダリング後も不要になるまではメモリ上に存在する。マスクプレーンに描画するディスプレイリストの合計サイズが、マスクプレーンサイズより大きくなった時点で、バンドに対するマスクプレーンバッファを確保してディスプレイリストを展開する。また、この際にデータを圧縮するとしても良い。
【００３６】
マスクプレーンラスタライズ部１５は、ディスプレイリストで記載された描画図形のマスクプレーン上でのビットマップ化した際のサイズを計数して、ディスプレイリストとのサイズの小さい方を選択して保持する機能部である。マスクプレーンラスタライズ部１５の内部の各機能部について、以下により詳細に説明する。
【００３７】
ディスプレイリストサイズ計数部２１（中間言語サイズ計数部）は、描画データ処理部１４によりページ記述言語から変換された中間言語データであるディスプレイリストのデータサイズを計数する。データサイズの計数は、マスクプレーン単位毎に行う。
【００３８】
ビットマップサイズ計数部２３は、前記ディスプレイリストのマスクプレーン単位毎にビットマップ化した際のマスクプレーンバッファのサイズを計数する。計数の際には、マスクプレーン状の描画図形を内包する外接矩形状にデータを切り取る。このため、ビットマップ化した際のサイズの計数は、外接矩形の幅、高さ及びカラー深度から簡単に求まる。
【００３９】
データサイズ判断部２５は、前記ディスプレイリストサイズ計数部２１及びビットマップサイズ計数部２３により計数されたデータサイズの大小を判断する。
【００４０】
小サイズデータ選択部２７は、前記データサイズ判断部２５により、ディスプレイリストのデータサイズが小さいと判断された場合には、中間言語データのままデータを保持し、ビットマップデータのデータサイズが小さいと判断された場合には、前記ディスプレイリストデータをビットマップデータに変換してデータを保持する。ビットマップデータに変換する際には、レンダリング処理部１６により変換を行うとしても良い。
【００４１】
レンダリング処理部１６は、小サイズデータ選択部２７により選択された中間言語データであるディスプレイリスト及びビットマップデータについて、レンダリングバッファにビットマップ展開を行うレンダリング処理する機能部である。描画データ処理部１４で作成されたディスプレイリストからＶＲＡＭ（Video Random Access Memory）にビットマップを作成する処理を行う機能部である。レンダリング処理部１６でレンダリングする際は、小サイズデータ選択部２７により、すでにビットマップ化されたデータが選択されてマスクプレーンバッファに途中まで展開されているかどうかは意識せずに、指定プレーンバッファに、指定ディスプレイリストを展開するだけである。
【００４２】
出力部１７は、印刷エンジンを有して実際に記録媒体（用紙やＯＨＰ等）に印刷を行なう機能部である。
【００４３】
メモリ管理部１８は、システムのメモリを管理する機能部であり、上記の各機能部が使用する主メモリの利用を管理する。メモリ・リソースが不足した場合には、各機能部に通知して動作を停止させたりする。
【００４４】
［フローチャート］
図５のフローチャートを用いて動作の流れについて説明する。
【００４５】
Ｓ２０１：データ受信部１２は、ページ記述言語により記載されている印刷データを受信する。
【００４６】
Ｓ２０２：受信した印刷データについて、ジョブの終端、ファイルの終端に至るまでループを繰り返す。
【００４７】
Ｓ２０３：データ解析部１３でページ記述言語を解析し、描画データ処理部１４によりディスプレイリストへの変換を行う。
【００４８】
Ｓ２０４：描画データ処理部１４は、マスクプレーンに描画する図形かどうかを判断する。マスクプレーンに描画する場合は、動作をＳ２０５に移行する。そうでない場合は、動作をループ終端に移行する。
【００４９】
Ｓ２０５：ディスプレイリストサイズ計数部２１は、マスクプレーンに描画する図形について、ディスプレイリストのサイズを計数する。また、ビットマップサイズ計数部２３は、マスクプレーンに描画する図形について、マスクプレーンを内包する外接矩形状に切り取る方法により、マスクプレーンバッファサイズを計数する。
【００５０】
Ｓ２０６：Ｓ２０４でマスクプレーンに描画する図形と判断したとき、データサイズ判断部２５は、Ｓ２０５で計数されたマスクプレーンに描画するディスプレイリストの管理構造体で対応するバンドがもつディスプレイリストサイズが、同じくＳ２０５で計数されたマスクプレーンバッファサイズを越えているか、いないかを判断する。ディスプレイリストのサイズの方が大きければ動作をＳ２０７に移行する。そうでなければ、ループの終端に動作を移行する。
【００５１】
ここで、ディスプレイリストのサイズがマスクプレーンのバッファサイズより大きい例を図６に示す。このような複数のサイズの異なる円が重なっているような図形をディスプレイリストで表現すると、円を複数の細かい台形状に区切ってそれぞれの台形毎にひとつひとつのディスプレイリストとして記載されるために、そのサイズが大きくなり、結果としてマスクプレーンバッファのサイズでビットマップ化したデータを保持するほうが小さくなる。
【００５２】
Ｓ２０７：小サイズデータ選択部２７は、ディスプレイリストのサイズがマスクプレーンバッファのサイズより大きいので小サイズのデータとしてビットマップデータを選択し、レンダリング処理部１６は、マスクプレーンバッファをメモリ上に確保して、ディスプレイリストをマスクプレーンバッファ上にビットマップデータに展開する。
【００５３】
上記のフローチャート動作が終了した段階では、データサイズによって、ディスプレイリスト形式で保持されたバンドとビットマップ展開済みのバンドが混在する（データサイズの条件によっては、全てがディスプレイリスト又はビットマップの場合も有り得る）。
【００５４】
そして、上記フローチャート動作後、レンダリング処理部１６により、ディスプレイリスト及びマスクプレーンバッファ上のデータをレンダリングバッファにビットマップ展開するレンダリング処理を行って、描画データを生成し、該描画データを出力部１７に渡して印刷を実行する。
【００５５】
上記のフローチャートの動作とその後のレンダリング動作については、並列処理を行うことも可能である。バンド毎にフローチャートの処理を終了したものについてのレンダリング動作を次バンドのフローチャート動作が行われている間に、並列に処理する方法としても良い。
【００５６】
以上の一連の動作により、画像形成装置１０においてページ記述言語を中間言語であるディスプレイリストに変換し、レンダリング処理を行ってビットマップ化して印刷データにする際に、ディスプレイリストのサイズとそのイメージ展開（ビットマップ展開）したデータのサイズを比較して、データサイズの小さいほうを保持する方法によって、メモリ・リソースの消費を抑制することが可能となる。
【００５７】
［実施例の効果］
本発明実施例の画像形成装置により以下のことが可能となる。
【００５８】
マスクプレーンに描画するディスプレイリストは、プリディスクリプション時にも解放しないため、例えば、典型的な例である図６に示した図形のようにディスプレイリストのサイズがマスクプレーンバッファのサイズより大きい場合は、ディスプレイリストをマスクプレーンバッファにイメージ展開して保持する方法により、マスクプレーンに描画するディスプレイリストサイズが大きくなり、レンダリングのためのメモリが圧迫されてしまうことを回避可能となり、メモリ効率のよいレンダリングシステムを実現できる。
【図面の簡単な説明】
【００５９】
【図１】描画図形、マスクプレーン、レンダリングバッファの説明図である。
【図２】従来技術におけるＤＬ管理構造体の構造図である。
【図３】本発明実施例におけるＤＬ管理構造体とイメージバッファの説明図である。
【図４】本発明実施例の画像形成装置の機能ブロック図である。
【図５】本発明実施例の画像形成装置のフローチャートである。
【図６】ディスプレイリストで表記した場合に、ビットマップイメージで表記するよりもサイズが大きくなってしまう場合の描画図形の例である。
【符号の説明】
【００６０】
１０  画像形成装置
１１  通信インターフェース
１２  データ受信部
１３  データ解析部（データ解析処理部）
１４  描画データ処理部（データ解析処理部）
１５  マスクプレーンラスタライズ部
１６  レンダリング処理部
１７  出力部
１８  メモリ管理部
２１  ディスプレイリストサイズ計数部（中間言語サイズ計数部）
２３  ビットマップサイズ計数部
２５  データサイズ判断部
２７  小サイズデータ選択部
【図１】
2010099973.tif 000003
【図２】
2010099973.tif 000004
【図３】
2010099973.tif 000005
【図４】
2010099973.tif 000006
【図５】
2010099973.tif 000007
【図６】
2010099973.tif 000008