(57)【要約】【課題】  少ないメモリしか実装していないプリンタにおいて、最適なバンド高さを簡便な処理によって算出する方法に係る画像形成装置の提供。【解決手段】  ディスプレイリストの描画位置及び描画範囲とを対応させて格納するリストテーブルを保持するディスプレイリストテーブル保持手段と、前記リストテーブルに前記ディスプレイリストの描画位置及び描画範囲を格納するディスプレイリスト作成手段と、１頁分のディスプレイリストが作成された後に、１頁を分割した複数の領域ごとにその領域サイズを仮決定し前記リストテーブルを参照して、前記仮決定されたバンド領域と、その次に描画されるバンド領域とにまたがるディスプレイリストの描画要素の数が最小になるように前記領域サイズを決定する手段と、そのバンド領域に属するディスプレイリストを順次イメージ展開するイメージ展開手段とから構成される。【選択図】        図１
2007030353.tif 000002
【特許請求の範囲】
【請求項１】
印刷画像の描画を行う描画処理部が認識可能なイメージデータを作成するための情報を持った中間オブジェクトであるディスプレイリストと、前記ディスプレイリストの描画位置及び描画範囲とを対応させて格納するリストテーブルを保持するディスプレイリストテーブル保持手段と、
描画命令を順次受信して前記ディスプレイリストを作成するとともに前記リストテーブルに前記ディスプレイリストの描画位置及び描画範囲を格納するディスプレイリスト作成手段と、
１頁分のディスプレイリストが作成された後に、１頁を分割した複数の領域ごとにその領域サイズを仮決定し前記リストテーブルを参照して、前記仮決定されたバンド領域と、その次に描画されるバンド領域とにまたがるディスプレイリストの描画要素の数が最小になるように前記領域サイズを決定する手段と、
前記バンドにまたがるディスプレイリスト要素数最少基準によって求められた最適なバンド領域毎にその領域に属するディスプレイリストを順次イメージ展開してイメージデータを作成するイメージ展開手段とを有することを特徴とする画像形成装置。
【請求項２】
特にイメージ展開に時間がかかる特定の描画要素がディスプレイリスト中に存在する場合には、これから処理するバンドと、次に処理するバンドとにまたがる描画要素をカウントする際にそれらの描画処理コストの逆数による重み付けをしてカウント処理を行うことにより、前記特定の描画要素が含まれている場合には前記特定描画要素のまたがりがより少なくなるところをバンドの境界として決定し、前記領域に属するディスプレイリストの情報を作成することを特徴とする請求項１記載の画像形成装置。
【請求項３】
圧縮画像やフォントデータなどの描画に必要なデータないしファイルを読み込む処理に時間がかかる特定の描画要素がディスプレイリスト中に存在する場合には、これから処理するバンドと、次に処理するバンドとにまたがる描画要素をカウントする際にそれらのデータ読み込み処理コストによる重み付けをしてカウント処理を行うことにより、前記特定の描画要素が含まれている場合には前記特定描画要素のバンドまたがりがより少なくなるところをバンドの境界として決定し、前記領域に属するディスプレイリストの情報を作成することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
圧縮画像やフォントデータなどの描画に必要なデータないしファイルを読み込む処理に時間がかかるが、直前の描画処理が同一内容のデータないしファイルを使用しており、その際に読み込まれたデータを利用することで読み込み処理を行わなくて済む場合には、これから処理するバンドと、次に処理するバンドとにまたがる描画要素をカウントする際にそれらのデータ読み込み処理コストによる重み付けを特に行わずにカウント処理を行うことにより、前記特定の描画要素が含まれている場合で、かつ、データないしファイルの読み込みを行わなくて良い場合にはこれを考慮しないで、描画要素のバンドまたがりがより少なくなるところをバンドの境界として決定し、前記領域に属するディスプレイリストの情報を作成することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
１ページないし複数ページのレイアウト情報をもとに、印刷・描画処理に先立ってこれから描画処理を行う全てのバンドについての前記最適バンド領域算出処理をあらかじめ行っておき、実際のバンド取得および描画処理時には前記最適バンド領域の算出処理を行わないことを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
バンドの取得を行うたびごとに、前記最適バンド領域の算出を行うことを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項７】
メモリ使用状況に応じて、そのとき確保できる最大のバンド高さを最大値として、その範囲内で前記バンド領域の算出を行うことを特徴とする請求項１乃至６のいずれか１項に記載の画像形成装置。
【請求項８】
最大のバンド高さからバンド高さ０に向かって順次バンド高さを減らしながら最適バンド高さを検索し、検索の過程でバンド境界にまたがる描画要素がひとつも無い場合には、最適バンド高さの検索処理を中断し、その時点のバンド高さを最適バンド高さとして出力する手順を有することを特徴とする請求項７記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置に関し、描画命令を複数のバンドに分割し、バンド毎に順次イメージ展開処理を行う画像形成装置及び方法に関する。
【背景技術】
【０００２】
従来のこの種の画像形成装置、特にフルカラー印刷が行えるプリンタは、１ページ分の描画命令もしくはイメージデータをメモリに蓄えると大量のメモリが必要となり大きな問題となるため、１ページを複数の領域（以下、バンドという）に分割し、バンド毎に順次イメージ展開処理を行うことによって印刷に必要なメモリ容量を減らしている。
【０００３】
しかし、従来は、ページを複数のバンドに分割してイメージ展開処理を行うプリンタドライバないしはプリンタコントローラで設定するバンドバッファのラスタ数（以下、バンド高さという）は、バンドに含まれる描画データとは無関係に、プリンタのメモリ容量や階調数などからあらかじめ固定的に決められていたため、描画データの集中したバンドとそうでないバンドでは展開速度に大きな差ができてしまう。さらに全てのバンドが同じ高さであるため、カラー印刷が行えるプリンタを対象としたプリンタドライバの場合、モノクロデータしか存在しないバンドでは必要以上の無駄なメモリを用意しておくことになる。
【０００４】
これに対しバンドの高さを可変する手法の一例が、特許文献１と特許文献２に記載されている。特許文献１には、ホストコンピュータから転送されたコードデータから作成されたビット展開用のコマンドデータをバンドごとにビットマップ展開するとき、コマンドデータを解析して各バンドの展開時間を導出し、前回展開済みバンドデータのビデオ信号転送をバンド展開可能時間とし、その展開可能時間内に展開できるようにバンドサイズを可変設定する技術が開示されている。
【０００５】
また、特許文献２には、レイアウト情報を用いて、バンド内における描画面積が一定の閾値を超えないことを基準として、最適なバンド高さを求める技術が開示されている。
【特許文献１】特開平７−１９５７６０号公報
【特許文献２】特開２０００−２３８３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、これらの従来の技術においては、コマンドデータを解析して各バンドの展開時間を導出し、前回展開済みバンドデータのビデオ信号転送時間であるバンド展開可能時間を求めてそれと比較して各バンドのバンドサイズを可変設定するものであり、バンドサイズ決定のために膨大な処理を行わなければならず、バンドサイズ設定のための負担が大きい。
【０００７】
また、レイアウト情報をもとにバンド内の描画面積が一定値以下になるようにスケジューリングする場合、バンドにまたがる画像をレンダリングする際に、再度その画像オブジェクトの描画処理を起動し、データをロードしなおすなど、描画そのものよりも描画のための準備処理に掛ける時間とメモリリソースの配分に大きな負荷がかかってしまい、結果的にピクセル描画処理における処理スループットは向上しても、バンド描画全体のスループットは反って低下してしまうという問題点があった。
【０００８】
特に最近では、画像処理に関する処理をハードウェア化したり特殊な画像処理プロセッサなどを搭載してピクセルオペレーションや描画処理を高速化することが一般的になりつつあり、こうした中では描画処理よりもデータロードなどの外部メモリやディスクデバイス、デジタルカメラなどの外部デバイスからのデータ読み込みにかかるインターフェースネックの方がより印刷効率を妨げる問題となっている。
【０００９】
特にフォトダイレクトプリントやネットワークダイレクトプリントを行うプリンタ内蔵型のプリンタドライバないしはプリンタコントローラでは、印刷する画像データやフォントデータなどをプリンタ内部に持たず、デジタルカメラやネットワーク上のサーバーから取得して印刷を行うため、外部デバイスとの通信におけるデータロード時間が無視できないものになってきているという現状がある。さらに、記憶デバイスとして近年おおいに普及しているメモリカードは、メモリカード上の内蔵コントローラによるデータ処理が行われるために一般にデータ読出し速度が遅く、典型的な例ではコンパクトフラッシュ（登録商標）メモリカードに於いては、１ＭＢの読み出しに０．５秒から１秒程度かかるものも存在している。
【００１０】
その一方でデジタルカメラの普及やデジタルデータの利用機会の増大に伴い、デジタル画像やフォントデータ、ベクタグラフィックスなどのデータサイズは年々増加の傾向にあり、すでにデジタルカメラによるＪＰＥＧ圧縮画像ファイルは、数ＭＢから数１０ＭＢのサイズに到達している。
【００１１】
さらに、プリンタ内蔵型のプリンタコントローラに於いてはこうした画像やフォントなどのデータファイルを保持する内蔵メモリのサイズが小さいため、一度に複数のデータをロードして確保しておくことが困難であることから、もし画像の描画が複数バンドに分離されてしまった場合で、さらに複数の画像描画を行わなければならないようなケースでは、ひとつの画像を描画するのにその画像がまたがるバンドの数だけデータのロードをやり直さなければならないなどの問題が発生している。
【００１２】
こうした背景からもこれらの既に提案されている技術では、すでに内蔵メモリ上にデータがある状態からの描画処理効率を上げたり、バンドごとの描画処理負荷を均一化することはできるが、データの読み取りを含むトータル処理スループットを上げることはできず、インターフェースにおけるデータロード処理の時間によってその効率が支配的に低下されてしまうという問題点があった。
【００１３】
また、こうした問題点は、必ずしもプリンタ内蔵型のプリンタコントローラのみの問題ではなく、描画リソースをインターネットサーバーから取得して動作する場合のホストコンピュータ上のプリンタドライバに於いても、データロードにおけるデータ量の増大と通信ネックの問題は、将来顕在化してくると考えられる。
【００１４】
特に、ＨＴＭＬやＳＶＧなどのレイアウト記述データの標準化により、画像データがあらかじめ編集されたものではなく、背景・文字列・前景・ワンポイント画像やワンポイントグラフィックスなどに部品化された場合、１ページで使用するデータファイル数が爆発的に増大することも考えられる。このような場合にも、データロード時間によって、ホストコンピュータ情報プリンタドライバの処理速度が一定の基準以下に低下するという問題が将来起きると予想される。
【００１５】
本発明は、簡便な処理で、ページを分割する各バンドの高さを調節し、１ページの描画データをバンド単位に分割してイメージ展開及び送信を行うことができ、プリンタドライバとプリンタでの並列処理、ないしは、プリンタ上のプリンタコントローラにおけるバンド描画処理を効率よく行い、イメージ展開効率が向上し、メモリの無駄も省け、総合的な印刷スループットを向上させる画像形成装置を提供することを目的としている。
【課題を解決するための手段】
【００１６】
本発明の画像形成装置は、印刷画像の描画を行う描画処理部が認識可能なイメージデータを作成するための情報を持った中間オブジェクトであるディスプレイリストと、前記ディスプレイリストの描画位置及び描画範囲とを対応させて格納するリストテーブルを保持するディスプレイリストテーブル保持手段と、描画命令を順次受信して前記ディスプレイリストを作成するとともに前記リストテーブルに前記ディスプレイリストの描画位置及び描画範囲を格納するディスプレイリスト作成手段と、１頁分のディスプレイリストが作成された後に、１頁を分割した複数の領域ごとにその領域サイズを仮決定し前記リストテーブルを参照して、前記仮決定されたバンド領域と、その次に描画されるバンド領域とにまたがるディスプレイリストの描画要素の数が最小になるように前記領域サイズを決定する手段と、前記バンドにまたがるディスプレイリスト要素数最少基準によって求められた最適なバンド領域毎にその領域に属するディスプレイリストを順次イメージ展開してイメージデータを作成するイメージ展開手段とを有する。
【００１７】
また、特にイメージ展開に時間がかかる特定の描画要素がディスプレイリスト中に存在する場合には、これから処理するバンドと、次に処理するバンドとにまたがる描画要素をカウントする際にそれらの描画処理コストの逆数による重み付けをしてカウント処理を行うことにより、前記特定の描画要素が含まれている場合には前記特定描画要素のまたがりがより少なくなるところをバンドの境界として決定し、前記領域に属するディスプレイリストの情報を作成する。
【００１８】
また、圧縮画像やフォントデータなどの描画に必要なデータないしファイルを読み込む処理に時間がかかる特定の描画要素がディスプレイリスト中に存在する場合には、これから処理するバンドと、次に処理するバンドとにまたがる描画要素をカウントする際にそれらのデータ読み込み処理コストによる重み付けをしてカウント処理を行うことにより、前記特定の描画要素が含まれている場合には前記特定描画要素のバンドまたがりがより少なくなるところをバンドの境界として決定し、前記領域に属するディスプレイリストの情報を作成する。
【００１９】
また、圧縮画像やフォントデータなどの描画に必要なデータないしファイルを読み込む処理に時間がかかるが、直前の描画処理が同一内容のデータないしファイルを使用しており、その際に読み込まれたデータを利用することで読み込み処理を行わなくて済む場合には、これから処理するバンドと、次に処理するバンドとにまたがる描画要素をカウントする際にそれらのデータ読み込み処理コストによる重み付けを特に行わずにカウント処理を行うことにより、前記特定の描画要素が含まれている場合で、かつ、データないしファイルの読み込みを行わなくて良い場合にはこれを考慮しないで、描画要素のバンドまたがりがより少なくなるところをバンドの境界として決定し、前記領域に属するディスプレイリストの情報を作成する。
【００２０】
また、１ページないし複数ページのレイアウト情報をもとに、印刷・描画処理に先立ってこれから描画処理を行う全てのバンドについての前記最適バンド領域算出処理をあらかじめ行っておき、実際のバンド取得および描画処理時には前記最適バンド領域の算出処理を行わない。
【００２１】
また、バンドの取得を行うたびごとに、前記最適バンド領域の算出を行う。
【００２２】
また、メモリ使用状況に応じて、そのとき確保できる最大のバンド高さを最大値として、その範囲内で前記バンド領域の算出を行う。
【００２３】
また、最大のバンド高さからバンド高さ０に向かって順次バンド高さを減らしながら最適バンド高さを検索し、検索の過程でバンド境界にまたがる描画要素がひとつも無い場合には、最適バンド高さの検索処理を中断し、その時点のバンド高さを最適バンド高さとして出力する手順を有する。
【発明の効果】
【００２４】
本発明によれば、１頁を分割した複数の領域ごとにその領域サイズを仮決定しそのときの領域内に含まれるディスプレイリストについてイメージ展開を行うときのバンド境界にまたがる描画要素の数ないしはその重み付け計数の総和をリストテーブルを参照して算出し、その値が最小となるようにバンド領域サイズを決定するので、簡便な処理でページを分割する各バンドの高さをそれぞれ最適値に調節できる。
【発明を実施するための最良の形態】
【００２５】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例】
【００２６】
次に、本発明の第１の実施の形態について詳細に説明する。
【００２７】
図１は、本発明の画像形成装置の構成を示すブロック図である。
【００２８】
画像形成装置は、例えばＸＭＬやＰＤＬなどの形式で記述されたレイアウト情報を保持するレイアウト情報記憶手段１と、前記レイアウト情報記憶手段から特定のページレイアウト情報を読出し、これを解析するレイアウト情報解析手段２と、解析結果として得られる例えば図２に示すようなディスプレイリストのような描画要素データを保持するディスプレイリスト保持手段３と、前記ディスプレイリスト保持手段に保持された図２に例示するような描画要素情報から、最適なバンド高さを算出する最適バンド高さ算出手段６と、前記最適バンド高さ算出手段６によって算出された最適バンド高さに従って、メモリ管理手段５からバンドバッファを確保するバンドバッファ確保手段４と、前記バンドバッファ確保手段によって確保されたバンドバッファ７に対して、前記ディスプレイリスト保持手段から得られるここの描画要素のうちバンド領域に含まれる描画要素についての描画を行うバンド描画手段８と、描画要素が例えばＪＰＥＧ画像や外部フォントデータなどの描画に必要なデータないしファイルを読み込む場合に、ストレージやデジタルカメラなどのそのファイルを保持している例えば外部に接続された描画要素データ保持デバイス９と、そこからのデータを読み込むインターフェースなどの描画要素データ読み込み手段１０と、読み込まれたデータを記録する内部ＲＡＭなどの描画要素データ記憶手段１１とから構成される。
【００２９】
図２に示すディスプレイリストは、例えばＨＴＭＬなどのドキュメント記述言語や、ＳＶＧあるいはポストスクリプトなどのＰＤＬ言語などを元に解析された中間オブジェクトであり、描画命令の種類、位置、描画する範囲を示す描画矩形、回転、クリップ、ラスターオペレーションなどの各種パラメータ、実データの参照情報などを有している。ディスプレイリストは作成される度に直前に作成されたディスプレイリストの後ろにリンクされ、図１に示したディスプレイリスト保持手段３に記憶される。
【００３０】
図３は、本発明におけるバンド境界に対する描画要素のまたがりと、その評価方法についての概念を図示したものである。
【００３１】
１〜５で示したそれぞれ異なるバンド高さの各候補に於いて、描画要素である矩形領域がどのようにまたがっているかを示している。
【００３２】
ところで、本実施例の説明に於いては、説明を簡便にするために矩形の描画領域を用いて説明しているが、実際の描画形状は、例えばベクトルグラフィックスのように必ずしも矩形である必要は無い。このような非矩形の領域を持つ描画要素であっても、バンド領域のパラメータが高さ方向のみであることを考えれば、その描画要素がページないしバンドの高さ方向にどのような範囲にまたがっているかが分かればよく、本発明に於いて描画要素の形状が矩形であるか否かは本質的な差異を生むものではない。
【００３３】
この図においてたとえば１〜２の高さのバンドを仮に確保するとした場合、２のラスタ位置がこれから処理するバンドと次回処理するバンドの境界となる。
【００３４】
この２の位置にまたがっている描画要素は図からも分かるように３つである。
【００３５】
この状況は１〜３のバンド高さを候補とした場合でも同じであるが、１〜４のバンド高さを候補とした場合は、図から分かるようにひとつも描画要素がまたがっていない。そしてふたたび１〜５のバンド高さを候補とすると、３つの描画要素がまたがっている状況になることがわかる。
【００３６】
この様子を、バンド境界にまたがる描画要素数の観点で評価関数としたものが図３の６に示すグラフである。
【００３７】
このように、バンドの境界にまたがる描画要素がある場合に、なぜ印刷処理の効率が悪くなるかを図４、図５を使って説明する。
【００３８】
図４は、バンド内の描画要素を描画する際の描画処理手順を示したものである。
【００３９】
処理が開始されると、ステップ１においてディスプレイリストから現在のバンド領域に含まれるもしくはかかる描画要素を読出す。次にステップ２においてその描画要素の描画に於いて必要なデータをロードしなければならないかどうかを判断し、必要があれば描画データをロードする（ステップ３）。
【００４０】
ここで読み込む描画データとは、例えばＪＰＥＧ画像の描画に於いてはもととなるＪＰＥＧ画像データファイルそのものであり、特定のフォントを指定した文字列描画であれば、フォントファイルデータなどがこれに相当する。
【００４１】
図５に示すように、特にプリンタ内蔵のプリントコントローラなどでは内蔵ＲＡＭの容量はそれほど多くないため、こうした外部に保持されているＪＰＥＧ画像データやフォントデータをロードする際に使用できるデータバッファはたかだか数１００ＫＢから数ＭＢのオーダーである。こうしたメモリリソース環境に於いては、１ページの描画に必要な全てのデータをメモリ上に保持することは困難であるばかりか、たかだか２つの異なるＪＰＥＧファイルを同時にメモリ上に保持することも困難であるケースがある。
【００４２】
特に最近のデジタルカメラによって撮影されたＪＰＥＧ画像は、ファイルサイズにして数ＭＢ〜数１０ＭＢのものまで存在し、こうした画像ファイルをレイアウトして印刷する場合には、一度に１つ以上のＪＰＥＧをメモリ上に読み込んで描画することは事実上不可能である。
【００４３】
同時に、メモリカードや外部ストレージなどから数ＭＢのデータを読み込む際には、インターフェースの通信レートや、メモリカードのアクセス速度などによって、十分な読み込みスピードが確保できない場合がある。さらにネットワークアクセスなどの場合には、読み込みスピードが変化することもあり、本発明の画像形成装置の外にあるデータ保持手段から画像データやフォントデータを読み出す場合には、例えばコンパクトフラッシュ（登録商標）メモリカードからの読み出しなどでは１ＭＢに０．５秒から１秒以上の時間がかかるケースもある。
【００４４】
こうしたことから、もし、図３に示したようにバンド内に少なくとも２つ以上の大容量ＪＰＥＧ圧縮画像ファイルを参照して描画を行う描画要素が存在する場合、これらの画像がバンド境界にまたがると、１度目のバンドに於いて２つのＪＰＥＧ画像データを読み込んで描画し、次のバンドで再度２つのＪＰＥＧ画像データを読み込まなければならなくなり、都合ＪＰＥＧ画像データの読み込みを４度行わなければならなくなることが分かり、データ読出し速度が遅い場合には、印刷処理を滞りなく実行するために必要な描画速度を達成することが困難になることがありうる。
【００４５】
これに対し、２つのＪＰＥＧ画像がひとつのバンド内に完全に含まれて、複数のバンドにまたがらない場合は、最低回数である２回の画像データ読み込み処理回数で済むことになり、通信速度が遅い場合でも、少なくとも最低の通信時間で描画を完了することができることになるのである。
【００４６】
このような理由により、バンド境界にまたがる描画要素が少ないという基準によってバンド高さを決定することで、印刷効率を上げることができるのである。
【００４７】
ただし、例えば、単純な場合としてはページ内に１つしか描画要素が無い場合などで、その描画要素の領域がページ全体であるばあいなどは、最終バンドを除く全てのバンドに於いて、バンド境界にまたがる描画要素は“１”となる。
【００４８】
この場合は特異点となる。この場合、描画要素がひとつしかないため、描画データバッファサイズが、必要な描画データサイズと等しいか、それよりも大きく確保できる場合には、最初のバンド描画時に読み込んだ描画データをそのまま利用することが可能となる。つまり、バンドごとに毎回描画データを読み込む必要はなく、最初のバンド描画時に内蔵ＲＡＭなどに読み込んだＪＰＥＧファイルデータなどの描画データを利用して描画処理を行えることになる。つまり、ＪＰＥＧファイルデータをキャッシュしているのと同様の状況となるため、データ読み込みによる処理負荷はページに対して１回分だけでよいことになり、バンドまたがりによる違いがなくなるのである。
【００４９】
このような特別なケースに於いては、最適なバンド高さとして、確保できる最大のサイズとするか、あらかじめ定められた固定値とすることとなる。この場合、あらかじめ定められた固定値とは、バンドバッファとして確保されたメモリ領域全部を使用しても良いし、その中の一部を固定サイズとして使用しても良い。もちろん、確保したメモリ領域内に２つのバンドを確保できるサイズを固定値として用い、交互に使用することでメモリ使用効率を上げる技術（ダブルバッファ）や、さらに３以上の領域を確保できるサイズを固定値として用い、順次使用していく技術（リングバッファ）などを採用しても良い。
【００５０】
また、本発明の技術を用いて最適なバンド高さを算出する場合、最悪のケースでは、最適なバンド高さがページ高さと同じになることがありうる。このような場合には、例えば特許文献２に開示されているような他の基準を用いて再度最適なバンド高さを求めても良い。あるいは、バンドバッファとしてあらかじめ確保されているメモリ領域で確保可能な最大バンド高さを上限としてもよい。
【００５１】
図６は、本発明の最適バンド高さを決定する処理手順の一例である。
【００５２】
バンド高さ決定処理が開始されると、ステップ１においてまずバンド高さの初期値Ｈおよび、バンド高さの検索範囲の最大値ＬｉｍＨを設定する。次にステップ２においてディスプレイリスト内の全ての描画要素をスキャンするために、描画要素番号ｎを初期化する。ステップ３に於いて現在のバンド領域の開始ラスタ位置Ｓを読出し、ステップ４においてまたがり描画要素数の最小値を確保するための変数ＭｉｎＮを初期化する。
【００５３】
次に、ステップ５において、開始ラスタに現在の仮決定されているバンド高さを足して、バンド領域の終了ラスタ位置Ｅを求め、ステップ６においてまたがり要素数カウンタＮを初期化し、ステップ７〜ステップ１１の描画要素のまたがりチェック処理に進む。
【００５４】
ステップ７でｎ番目の描画要素を読出し、ステップ８でこの描画要素の描画範囲が、先にステップ５で求められたバンド領域の終了ラスタ位置にまたがっているかどうかを判別する。もし描画要素のまたがりが検出された場合はステップ９でまたがり要素数Ｎをカウントアップする。
【００５５】
ステップ１０においてすべての描画要素をチェックしたかどうかを判別し、もしまだチェックを行っていない描画要素が残っている場合にはステップ１１で描画要素番号ｎをインクリメントした後、ステップ７からの処理を繰り返す。
【００５６】
すでに全ての描画要素のまたがりチェックを行っていた場合には、ステップ１２においてまたがり数Ｎと過去の最低のまたがり数ＭｉｎＮとを比較し、もし過去の最低またがり数よりも現在のバンド高さにおけるまたがり数が下回っていた場合には、ステップ１３においてＭｉｎＮをＮに更新するとともに最適バンド高さＢｅｓｔＨをＨに更新する。
【００５７】
その後、ステップ１４においてバンド高さＨを更新し、ステップ１５でＨがＬｉｍＨを越えていないかどうかを確認した上で、越えていない場合にはステップ５からの処理を繰り返す。
【００５８】
越えている場合には、最適バンド高さ決定処理を終了し、ＢｅｓｔＨの値を最適なバンド高さとして出力する。
【００５９】
ただし、全てのバンド境界において同じ結果であった場合には、実装の仕方によってはＢｅｓｔＨが０となったり不正な値となる場合がある。このような場合には、例えばあらかじめ設定された標準的なバンド高さを採用するなどの処理を別途おこなうことで、実際に使用するバンド高さを最終決定しても良い。もちろん、その他の実施方法として、そのときに確保できる最大のバンド高さを使用する処理を行っても良い。
【００６０】
ここで、バンド高さの検索領域を１〜ＬｉｍＨとしたが、ＬｉｍＨのひとつの値としてはページ高さがある。特にページ記述言語によって与えられる描画要素の画像形成に於いては、ページ高さより大きなバンドを取ることはありえないからである。
【００６１】
しかし、ＬｉｍＨ＝ページ高さというのは、原理的に最小から最大までの幅を取った場合の処理実装における一例であり、実際にはページメモリが確保できないためにバンドバッファを使用しているケースが多いことから、多くの場合、この制限は、ページ高さよりも小さい値によって制限することが考えられる。
【００６２】
例えば、バンドバッファとして確保できるメモリサイズがあらかじめ与えられており、これを仮にＭａｘＢバイトとするならば、１ラスタのピクセル数などのバンドバッファの幅をＷピクセルとすると、Ｈの検査領域の制限値ＬｉｍＨは、
ＬｉｍＨ＝ＩＮＴ（ＭａｘＢ／Ｗ／ＰＢ）
（ここで、ＰＢは１ピクセルのバイト数であり、ＩＮＴ（）は除算の結果を切り捨てによって整数化する関数である）
などによって表される値を用いて、１〜ＬｉｍＨまでの範囲で最適なバンド高さを求めても良い。
【００６３】
ところで、プリンタは、複数種類の用紙サイズに対応することが一般的である。この場合、例えばＡ３用紙まで対応しているプリンタに於いてＬ版や名刺カードなどの印刷を行う場合には、Ａ３ではページメモリが取れなくても、名刺などの小さいサイズの用紙を印刷する場合にはページメモリが取れることが容易に想定される。
【００６４】
このような場合には図６に示すように、バンドバッファ高さの最大値をページ高さによって制限しても何ら問題は無い。
【００６５】
さらに、ＨＴＭＬプリントなどを実現する際には、ページまたがりにおけるレイアウト整形を行わない仕様を取る場合にはページ境界というものがそもそも存在しないディスプレイリストが生成されるケースもある。このような場合は、一度に描画するメモリ領域が取れる限りにおいて、ページ高さを越える値によってバンド高さＨの検索範囲を制限してもなんら本発明の技術の優位性を損なうものではない。
【００６６】
図７に、本発明の請求項２におけるバンド高さ決定の評価関数作成の概念図を示す。
【００６７】
例えば、本発明の請求項２または３において示している描画データの読み込み処理負荷におけるコストをカウントする場合について、この図７を用いて説明する。
【００６８】
図７の６に示すのは、描画データの読み込み処理負荷が７に示す描画要素の２倍あると推定されるものである。これは例えば、６に示す描画要素が参照するＪＰＥＧ圧縮画像ファイルのサイズが７に示す描画要素が参照するＪＰＥＧファイルのサイズの２倍ある場合であったり、６に示す描画データを保持する記憶媒体の読み取り速度が、７に示す描画データを保持する記憶媒体の読み取り速度の半分（遅い）であるなどの場合に相当する。
【００６９】
このような場合、６に示す読み取り処理負荷が高い描画要素をバンドにまたがらせるよりも、７に示す描画要素がまたがる方が、処理効率に与える問題は小さいと考えられる。こうしたことから、バンドにまたがる描画要素の個数をカウントする際に、こうした読み取り処理負荷についての重み付けをした計数を足していくことで、より読み込み処理負荷の高い描画要素のあるところにバンド境界を置かないようにするような評価関数を得ることができるのである。このような評価関数を８に示す。
【００７０】
実際には、読み込み処理負荷は２倍、３倍などといった整数倍の関係ではなく、もっと連続的な値による重み付けが行われることが適切であると考えられる。従って、例えば通常の読み込み負荷の描画要素は１０としてカウントし、その１．５倍の読み込み負荷の描画要素の場合には１５とするなど、より細かな重み付けを行っても良い。
【００７１】
図８は、本発明の請求項７に記載の技術を用いたその他の実施例における画像形成装置の構成図である。
【００７２】
画像形成装置は、例えばＸＭＬやＰＤＬなどの形式で記述されたレイアウト情報を保持するレイアウト情報記憶手段１と、前記レイアウト情報記憶手段から特定のページレイアウト情報を読出し、これを解析するレイアウト情報解析手段２と、解析結果として得られる例えば図２に示すようなディスプレイリストのような描画要素データを保持するディスプレイリスト保持手段３と、前記ディスプレイリスト保持手段に保持された図２に例示するような描画要素情報と、バンドバッファなどのメモリを管理するバンドバッファ管理手段５から得られる確保可能な最大のバンド高さの情報から、最適なバンド高さを算出する最適バンド高さ算出手段６と、前記最適バンド高さ算出手段６によって算出された最適バンド高さに従って、メモリ管理手段５からバンドバッファを確保するバンドバッファ確保手段４と、前記バンドバッファ確保手段によって確保されたバンドバッファ７に対して、前記ディスプレイリスト保持手段から得られるここの描画要素のうちバンド領域に含まれる描画要素についての描画を行うバンド描画手段８と、描画要素が例えばＪＰＥＧ画像や外部フォントデータなどの描画に必要なデータないしファイルを読み込む場合に、ストレージやデジタルカメラなどのそのファイルを保持している例えば外部に接続された描画要素データ保持デバイス９と、そこからのデータを読み込むインターフェースなどの描画要素データ読み込み手段１０と、読み込まれたデータを記録する内部ＲＡＭなどの描画要素データ記憶手段１１とから構成される。
【００７３】
図９は、本発明の請求項７に記載の技術を用いて最適バンド高さを決定する処理手順の一例である。
【００７４】
バンド高さ決定処理が開始されると、ステップ１においてまず現在確保可能な最大のバンド高さＭａｘＨの情報を読み込む。次にステップ２においてバンド高さの初期値Ｈを設定する。次にステップ３においてディスプレイリスト内の全ての描画要素をスキャンするために、描画要素番号ｎを初期化する。ステップ４に於いて現在のバンド領域の開始ラスタ位置Ｓを読出し、ステップ５においてまたがり描画要素数の最小値を確保するための変数ＭｉｎＮを初期化する。
【００７５】
次に、ステップ６において、開始ラスタに現在の仮決定されているバンド高さを足して、バンド領域の終了ラスタ位置Ｅを求め、ステップ７においてまたがり要素数カウンタＮを初期化し、ステップ７〜ステップ１２の描画要素のまたがりチェック処理に進む。
【００７６】
ステップ８でｎ番目の描画要素を読出し、ステップ９でこの描画要素の描画範囲が、先にステップ６で求められたバンド領域の終了ラスタ位置にまたがっているかどうかを判別する。もし描画要素のまたがりが検出された場合はステップ１０でまたがり要素数Ｎをカウントアップする。
【００７７】
ステップ１１においてすべての描画要素をチェックしたかどうかを判別し、もしまだチェックを行っていない描画要素が残っている場合にはステップ１２で画要素番号ｎをインクリメントした後、ステップ８からの処理を繰り返す。すでに全ての描画要素のまたがりチェックを行っていた場合には、ステップまたがり数Ｎと過去の最低のまたがり数ＭｉｎＮとを比較し（ステップ１３）、もし過去の最低またがり数よりも現在のバンド高さにおけるまたがり数が下回っていた場合には、ステップ１４においてＭｉｎＮをＮに更新するとともに最適バンド高さＢｅｓｔＨをＨに更新する。その後、ステップ１５においてバンド高さＨを更新し、ステップ１６でＨが０より大きいことを確認した上で、０より大きい場合にはステップ６からの処理を繰り返す。
【００７８】
それ以外の場合には、最適バンド高さ決定処理を終了し、ＢｅｓｔＨの値を最適なバンド高さとして出力する。
【００７９】
ただし、全てのバンド境界において同じ結果であった場合には、実装の仕方によってはＢｅｓｔＨが０となったり不正な値となる場合がある。このような場合には、例えばあらかじめ設定された標準的なバンド高さを採用するなどの処理を別途おこなうことで、実際に使用するバンド高さを最終決定しても良い。もちろん、その他の実施方法として、そのときに確保できる最大のバンド高さを使用する処理を行っても良い。
【００８０】
図１０は、本発明の請求項７に記載の技術を用いて最適バンド高さを決定する処理手順の一例である。
【００８１】
バンド高さ決定処理が開始されると、ステップ１においてまず現在確保可能な最大のバンド高さＭａｘＨの情報を読み込む。次にステップ２においてバンド高さの初期値Ｈを設定する。次にステップ３においてディスプレイリスト内の全ての描画要素をスキャンするために、描画要素番号ｎを初期化する。ステップ４に於いて現在のバンド領域の開始ラスタ位置Ｓを読出し、ステップ５においてまたがり描画要素数の最小値を確保するための変数ＭｉｎＮを初期化する。
【００８２】
次に、ステップ６において、開始ラスタに現在の仮決定されているバンド高さを足して、バンド領域の終了ラスタ位置Ｅを求め、ステップ７においてまたがり要素数カウンタＮを初期化し、ステップ７〜ステップ１２の描画要素のまたがりチェック処理に進む。
【００８３】
ステップ８でｎ番目の描画要素を読出し、ステップ９でこの描画要素の描画範囲が、先にステップ６で求められたバンド領域の終了ラスタ位置にまたがっているかどうかを判別する。もし描画要素のまたがりが検出された場合はステップ１０でまたがり要素数Ｎをカウントアップする。
【００８４】
ステップ１１においてすべての描画要素をチェックしたかどうかを判別し、もしまだチェックを行っていない描画要素が残っている場合にはステップ１２で画要素番号ｎをインクリメントした後、ステップ８からの処理を繰り返す。
【００８５】
すでに全ての描画要素のまたがりチェックを行っていた場合には、ステップまたがり数Ｎと過去の最低のまたがり数ＭｉｎＮとを比較し（ステップ１３）、もし過去の最低またがり数よりも現在のバンド高さにおけるまたがり数が下回っていた場合には、ステップ１４においてＭｉｎＮをＮに更新するとともに最適バンド高さＢｅｓｔＨをＨに更新する。
【００８６】
その後、ステップ１５においてバンド高さＨを更新し、ステップ１６でＨが０より大きく、かつＮがゼロでないことを確認した上で、Ｈが０より大きくてかつＮが０でない場合にはステップ６からの処理を繰り返す。
【００８７】
それ以外の場合には、最適バンド高さ決定処理を終了し、ＢｅｓｔＨの値を最適なバンド高さとして出力する。
【００８８】
ただし、全てのバンド境界において同じ結果であった場合には、実装の仕方によってはＢｅｓｔＨが０となったり不正な値となる場合がある。このような場合には、例えばあらかじめ設定された標準的なバンド高さを採用するなどの処理を別途おこなうことで、実際に使用するバンド高さを最終決定しても良い。もちろん、その他の実施方法として、そのときに確保できる最大のバンド高さを使用する処理を行っても良い。
【００８９】
図１１は、本発明の請求項５に記載の技術を用いたその他の実施例における画像形成装置の構成図である。
【００９０】
画像形成装置は、例えばＸＭＬやＰＤＬなどの形式で記述されたレイアウト情報を保持するレイアウト情報記憶手段１と、前記レイアウト情報記憶手段から特定のページレイアウト情報を読出し、これを解析するレイアウト情報解析手段２と、解析結果として得られる例えば図２に示すようなディスプレイリストのような描画要素データを保持するディスプレイリスト保持手段３と、前記ディスプレイリスト保持手段に保持された図２に例示するような描画要素情報と、バンドバッファなどのメモリを管理するバンドバッファ管理手段５から得られる確保可能な最大のバンド高さの情報から、最適なバンド高さを算出する最適バンド高さ算出手段６と、前記最適バンド高さ算出手段によって、ページの印刷動作に先立ってあらかじめ全てのバンドについて求められたバンド高さの情報から、これから処理を行うページ内で確保する最大のバンド高さの情報を元にメモリの再配置を行い、必要十分なメモリ領域を確保して、必要ないメモリを他のワークに分配するメモリ管理手段と、前記最適バンド高さ算出手段６によって算出された最適バンド高さに従って、前記メモリ管理手段５からバンドバッファを確保するバンドバッファ確保手段４と、前記バンドバッファ確保手段によって確保されたバンドバッファ７に対して、前記ディスプレイリスト保持手段から得られるここの描画要素のうちバンド領域に含まれる描画要素についての描画を行うバンド描画手段８と、描画要素が例えばＪＰＥＧ画像や外部フォントデータなどの描画に必要なデータないしファイルを読み込む場合に、ストレージやデジタルカメラなどのそのファイルを保持している例えば外部に接続された描画要素データ保持デバイス９と、そこからのデータを読み込むインターフェースなどの描画要素データ読み込み手段１０と、読み込まれたデータを記録する内部ＲＡＭなどの描画要素データ記憶手段１１とから構成される。
【図面の簡単な説明】
【００９１】
【図１】本発明を実施する画像形成装置の一例を示す図
【図２】ディスプレイリストの例を示す図
【図３】バンドバッファ最適サイズの計算方法の概念図
【図４】バンド内に複数描画要素がある場合の描画処理手順を示すフローチャート
【図５】バンド内に複数描画要素がある場合の描画処理時のメモリ状況を示す図
【図６】最適バンド高さ推定処理の処理手順を示すフローチャート
【図７】描画または読み込み処理負荷による重み付けの概念図を示す図
【図８】本発明を実施する画像形成装置のその他の例を示す図
【図９】最適バンド高さ推定処理の処理手順を示すフローチャート
【図１０】最適バンド高さ推定処理の処理手順を示すフローチャート
【図１１】本発明を実施する画像形成装置のその他の例を示す図
【符号の説明】
【００９２】
１    レイアウト情報記憶手段
２    レイアウト情報解析手段
３    ディスプレイリスト保持手段
４    バンドバッファ確保手段
５    メモリ管理手段
６    最適バンド高さ算出手段
７    バンドバッファ
８    バンド描画手段
９    描画要素データ保持デバイス
１０  描画要素データ読み込み手段
１１  描画要素データ記憶手段
１２  印刷手段
【図１】
2007030353.tif 000003
【図２】
2007030353.tif 000004
【図３】
2007030353.tif 000005
【図４】
2007030353.tif 000006
【図５】
2007030353.tif 000007
【図６】
2007030353.tif 000008
【図７】
2007030353.tif 000009
【図８】
2007030353.tif 000010
【図９】
2007030353.tif 000011
【図１０】
2007030353.tif 000012
【図１１】
2007030353.tif 000013