IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許-画像処理装置、画像処理方法 図1
  • 特許-画像処理装置、画像処理方法 図2
  • 特許-画像処理装置、画像処理方法 図3
  • 特許-画像処理装置、画像処理方法 図4
  • 特許-画像処理装置、画像処理方法 図5
  • 特許-画像処理装置、画像処理方法 図6
  • 特許-画像処理装置、画像処理方法 図7
  • 特許-画像処理装置、画像処理方法 図8
  • 特許-画像処理装置、画像処理方法 図9
  • 特許-画像処理装置、画像処理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-01
(45)【発行日】2024-08-09
(54)【発明の名称】画像処理装置、画像処理方法
(51)【国際特許分類】
   B41J 5/30 20060101AFI20240802BHJP
   B41J 29/38 20060101ALI20240802BHJP
   G06F 3/12 20060101ALI20240802BHJP
   H04N 1/21 20060101ALI20240802BHJP
【FI】
B41J5/30 Z
B41J29/38 501
G06F3/12 310
G06F3/12 345
G06F3/12 334
H04N1/21
【請求項の数】 8
(21)【出願番号】P 2020010327
(22)【出願日】2020-01-24
(65)【公開番号】P2021115764
(43)【公開日】2021-08-10
【審査請求日】2023-01-23
【前置審査】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】宮ノ前 貴士
【審査官】大関 朋子
(56)【参考文献】
【文献】米国特許出願公開第2015/0062155(US,A1)
【文献】特開2007-083608(JP,A)
【文献】特開平10-308861(JP,A)
【文献】特開2001-256016(JP,A)
【文献】特開2010-171682(JP,A)
【文献】特開2010-125713(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 5/30
B41J 29/38
G06F 3/12
H04N 1/21
(57)【特許請求の範囲】
【請求項1】
画像処理装置であって、
印刷データに基づく中間データの生成で用いる情報群を該印刷データに基づいて生成し、該情報群を、前記画像処理装置に接続されている外部記憶装置に格納する生成手段と、
前記情報群を用いて前記中間データを生成し、該生成した中間データに基づいてレンダリングを行うことでラスタ画像を生成するレンダリング手段と
を備え、
前記生成手段は、前記情報群を生成すると、該情報群を前記画像処理装置の揮発性メモリに格納し、前記レンダリング手段は、該情報群を用いて前記中間データを生成し、該生成した中間データを該揮発性メモリに格納し、
前記揮発性メモリにおけるメモリ不足が発生すると、
前記生成手段は、前記揮発性メモリをクリアしてから、前記情報群を前記外部記憶装置に格納し、前記レンダリング手段は、該情報群を用いて前記中間データを生成し、該生成した中間データを該外部記憶装置に格納する
ことを特徴とする画像処理装置。
【請求項2】
前記レンダリング手段は、前記生成した中間データを前記外部記憶装置に格納し、該格納した中間データに基づいてレンダリングを行うことでラスタ画像を生成することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記生成手段は、前記印刷データから生成した描画コマンドに基づいて前記情報群を生成することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記情報群は、ページにおける塗りに関する塗り情報、ページ上のオブジェクトの合成に係る合成情報、ページ上のオブジェクトのエッジに関するエッジ情報、を含むことを特徴とする請求項1ないし3の何れか1項に記載の画像処理装置。
【請求項5】
前記画像処理装置は、前記揮発性メモリにおけるメモリ不足が発生するまではマルチスレッドで動作し、前記揮発性メモリにおけるメモリ不足が発生するとシングルスレッドで動作する、ことを特徴とする請求項1ないし4のいずれか1項に記載の画像処理装置。
【請求項6】
さらに、
前記レンダリング手段により生成されたラスタ画像を印刷する印刷手段を備えることを特徴とする請求項1ないし5の何れか1項に記載の画像処理装置。
【請求項7】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の生成手段が、印刷データに基づく中間データの生成で用いる情報群を該印刷データに基づいて生成し、該情報群を、前記画像処理装置に接続されている外部記憶装置に格納する生成工程と、
前記画像処理装置のレンダリング手段が、前記情報群を用いて前記中間データを生成し、該生成した中間データに基づいてレンダリングを行うことでラスタ画像を生成するレンダリング工程と
を備え、
前記生成工程では、前記情報群を生成すると、該情報群を前記画像処理装置の揮発性メモリに格納し、前記レンダリング工程では、該情報群を用いて前記中間データを生成し、該生成した中間データを該揮発性メモリに格納し、
前記揮発性メモリにおけるメモリ不足が発生すると、
前記生成工程では、前記揮発性メモリをクリアしてから、前記情報群を前記外部記憶装置に格納し、前記レンダリング工程では、該情報群を用いて前記中間データを生成し、該生成した中間データを該外部記憶装置に格納する
ことを特徴とする画像処理方法。
【請求項8】
コンピュータを、請求項1ないし6の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷データに基づく中間データの生成に関するものである。
【背景技術】
【0002】
大判機等、使用する印刷用紙のサイズが特別に大きいプリンタ装置の場合は、印刷ジョブを投入しても印刷が困難なケースが存在する。特に、ジョブのページ中に極めて大きな画像が埋め込まれている場合や、非常に多くの図形データ等が含まれる場合等は、該ページを処理する途中の段階でメモリ不足に陥ってしまい、処理が続行できない場合がある。一般に、プリンタドライバやプリンタコントローラは、いずれも定められたハードウェアリソース(例えばプロセスに割り当てられるメモリには制限がある)で処理するように構成されているために、何らかの対策を講じる必要がある。
【0003】
従来、印刷ジョブの処理時にメモリが不足し、処理を継続できない場合の対策の一例として、特許文献1や特許文献4に記載の方法が知られている。特許文献1には、メモリが不足した時点(メモリアロックが出来ない等)で、処理プログラムがメモリに記録されている内部データ(中間データ等)を用いて画像形成(レンダリング)を実施することによりそれまでに蓄えたデータを解放することでデータサイズを削減する等の方法が開示されている。これらの技術に加え、合成処理によってデータサイズを削減する方法(フラット化)も提案されている(特許文献2、特許文献3)。
【0004】
従来の印刷システムの構成例について、図2(A)のブロック図を用いて説明する。図2(A)に示す印刷システムは、コンピュータ200と、画像処理装置100と、を有する。
【0005】
コンピュータ200が有する生成部201は、印刷対象データ202から印刷データ203を生成する。画像処理装置100は、入力部204と、解析部205と、処理部206と、出力部207と、を有する。入力部204は、生成部201が生成した印刷データ203を受け取る。解析部205は、入力部204が受け取った印刷データ203を解析して、描画命令を抽出する。処理部206は、生成部208と、レンダリング部209と、を有する。生成部208は、解析部205で抽出した描画命令から描画情報210と画像211とを抽出して中間データを生成する。該中間データを生成する時、生成部208は、中間データ生成のための内部データを生成する。このようなデータは、通常は、画像処理装置100内のRAMに格納されている。図4は、フラット化によってメモリが削減される様子を示す図である。フラット化を実施することでメモリが削減され、処理を継続することが可能となる。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2011-61555号公報
【文献】特開2018-152113号公報
【文献】特開2017-194932号公報
【文献】特開平06-261202号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述のように、画像処理を継続するために内部メモリの縮退処理(中間データを処理する際に利用する内部データを、最終的にスプールアウトする中間データと類似の構造として保持し、メモリが不足した場合にフラット化と呼ばれる処理で統合する処理等)によりデータ削減を実施している。しかしながら、この方式では、利用可能なメモリが徐々に少なくなってくると再びフラット化を実施する必要がある。ワーストケースではフラット化が繰り返される。
【0008】
図6は、フラット化を繰り返した結果、メモリが不足する例を示したグラフである。縦軸はメモリの使用量(GB)を示しており、横軸は処理時間(分)を示している。なお、縦軸の最大値2GBが、この例におけるメモリ最大容量としている。3回のフラット化が発生してメモリ使用量が削減されているが、処理時間T時点ではメモリ使用量が最大値2GBに到達しており、メモリ不足が発生している。このようにフラット化を実施してもメモリ不足が発生し、処理を継続出来ないケースが存在する。本発明では、メモリが不足して画像処理を継続できないような印刷データであっても、該印刷データに基づく中間データの生成を可能にする技術を提供する。
【課題を解決するための手段】
【0009】
本発明の一様態では、画像処理装置であって、
印刷データに基づく中間データの生成で用いる情報群を該印刷データに基づいて生成し、該情報群を、前記画像処理装置に接続されている外部記憶装置に格納する生成手段と、
前記情報群を用いて前記中間データを生成し、該生成した中間データに基づいてレンダリングを行うことでラスタ画像を生成するレンダリング手段と
を備え、
前記生成手段は、前記情報群を生成すると、該情報群を前記画像処理装置の揮発性メモリに格納し、前記レンダリング手段は、該情報群を用いて前記中間データを生成し、該生成した中間データを該揮発性メモリに格納し、
前記揮発性メモリにおけるメモリ不足が発生すると、
前記生成手段は、前記揮発性メモリをクリアしてから、前記情報群を前記外部記憶装置に格納し、前記レンダリング手段は、該情報群を用いて前記中間データを生成し、該生成した中間データを該外部記憶装置に格納する
ことを特徴とする。
【発明の効果】
【0010】
本発明の構成によれば、メモリが不足して画像処理を継続できないような印刷データであっても、該印刷データに基づく中間データの生成ができる。
【図面の簡単な説明】
【0011】
図1】コンピュータ装置のハードウェア構成例を示すブロック図。
図2】(A)は従来の印刷システムの構成例を示すブロック図、(B)は第1の実施形態に係る印刷システムの構成例を示すブロック図。
図3】内部データの構成例を示す図。
図4】フラット化によってメモリが削減される様子を示す図。
図5】画像処理装置100の動作を示すフローチャート。
図6】フラット化を繰り返した結果、メモリが不足する例を示したグラフ。
図7】画像処理装置100の動作を示すフローチャート。
図8】画像処理装置100の動作を示すフローチャート。
図9】ステップS2002をステップS3000に置き換えたことによる性能の改善の一例を示す図。
図10】画像処理装置100の動作を示すフローチャート。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0013】
[第1の実施形態]
まず、本実施形態に係る印刷システムの構成例について、図2(B)のブロック図を用いて説明する。図2(B)に示す如く、本実施形態に係る印刷システムは、コンピュータ200と画像処理装置100とを有する。コンピュータ200および画像処理装置100は、無線および/または有線のネットワークに接続されており、該ネットワークを介して互いにデータ通信が可能なように構成されている。
【0014】
まず、コンピュータ200について説明する。印刷対象データ202は、画像やテキストなどの印刷対象のデータである。生成部201は、このような印刷対象データ202から印刷データ203を生成し、該生成した印刷データ203を画像処理装置100に対して出力する。
【0015】
次に、画像処理装置100について説明する。入力部204は、コンピュータ200から出力された印刷データ203を取得する。解析部205は、該印刷データ203を解析して、描画命令(描画コマンド)を生成する。
【0016】
処理部250は、生成部251およびレンダリング部252を有する。生成部251は描画コマンドから描画情報210と画像211を抽出して中間データを生成するが、中間データを生成する際に用いる情報群を適宜外部記憶装置としてのHD(ハードディスク)114に格納し、該格納された情報群を用いて中間データを生成する。この情報群を以下では内部データと称する場合がある。レンダリング部252は、生成部251が生成した中間データに基づいてレンダリングを行うことでラスタ画像を生成する。
【0017】
出力部207は、レンダリング部252により生成されたラスタ画像を出力データ212として出力する。出力データの出力先は特定の出力先に限らない。例えば、出力部207は、出力データ212を、画像処理装置100内もしくは画像処理装置100外の印刷部に出力して、該出力データ212に基づく画像や文字を紙などの印刷媒体に印刷させてもよい。また、出力部207は、出力データ212を画像処理装置100内もしくは画像処理装置100外のメモリに対して出力してもよい。
【0018】
画像処理装置100の上記の各機能部はハードウェアで実装してもよいが、ソフトウェア(コンピュータプログラム)で実装してもよい。後者の場合、このコンピュータプログラムを実行可能なコンピュータ装置は、画像処理装置100に適用することができる。本実施形態では、後者のケースについて説明する。このようなコンピュータ装置のハードウェア構成例について、図1のブロック図を用いて説明する。
【0019】
CPU101は、RAM102やROM(フォントROM103、プログラムROM104、データROM105)に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU101は、画像処理装置100全体の動作制御を行うとともに、画像処理装置100が行うものとして説明する各処理を実行もしくは制御する。なお、本実施形態のCPU101は、マルチコアのCPUであるものとするが、画像処理装置100が複数のCPUを有していても良い。
【0020】
RAM102は、ROM(フォントROM103、プログラムROM104、データROM105)やHD114からロードされたコンピュータプログラムやデータを格納するためのエリアを有する。さらにRAM102は、通信部110により外部(例えば上記のコンピュータ200)から受信したコンピュータプログラムやデータを格納するためのエリアを有する。さらにRAM102は、CPU101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM102は、各種のエリアを適宜提供することができる。
【0021】
フォントROM103には、各種のフォントのデータが格納されている。プログラムROM104には、画像処理装置100が行うものとして説明する各処理をCPU101に実行もしくは制御させるためのコンピュータプログラムが格納されている。データROM105には、画像処理装置100が行うものとして説明する各処理をCPU101に実行もしくは制御させるためのデータが格納されている。
【0022】
KBC(キーボードコントローラ)107は、ユーザがKB112を操作することで入力した指示や情報をCPU101に通知する。なお、画像処理装置100において使用可能なユーザインターフェースはキーボードに限らず、マウスやタッチパネル画面なども適用可能である。
【0023】
表示制御部108は、表示部113の表示制御を行う。表示部113は液晶画面やタッチパネル画面などの表示画面を有する表示装置であり、CPU101による処理結果を画像や文字などでもって表示することができる。なお、表示部113は、画像や文字を投影するプロジェクタなどの投影装置であってもよい。
【0024】
HD制御部109は、HD114に対するコンピュータプログラムやデータの読み書きを制御する。HD114には、各種のコンピュータプログラムやデータを格納することができる。なおHD114は画像処理装置100に接続されている外部記憶装置の一例であり、他の種類のメモリ装置を用いても構わない。
【0025】
通信部110は、コンピュータ200との間のデータ通信を行う。CPU101、RAM102、フォントROM103、プログラムROM104、データROM105、KBC107、表示制御部108、HD制御部109、通信部110、は何れもバス106に接続されている。
【0026】
次に、画像処理装置100の動作について、図5のフローチャートに従って説明する。ステップS1000における処理は、解析部205において行われる。ステップS1000では、解析部205は、印刷データ203を解析して、ページごとの描画命令(描画コマンド)を生成する。
【0027】
ステップS1001~S1008における処理は、生成部251において行われる。ステップS1001では、生成部251は、ページの描画コマンドから、該ページにおける塗りに関する塗り情報を生成し、該生成した塗り情報をHD114に格納する。
【0028】
ステップS1002では、生成部251は、ステップS1001で生成したページにおける塗り情報の数が閾値を超えるか否かを判断する。この判断の結果、ステップS1001で生成したページにおける塗り情報の数が閾値を超える場合には、処理はステップS1004に進み、ステップS1001で生成したページにおける塗り情報の数が閾値を超えない場合には、処理はステップS1003に進む。
【0029】
ステップS1003では、生成部251は、まだステップS1001の対象となっていないページの描画コマンドが残っているか否かを判断する。この判断の結果、まだステップS1001の対象となっていないページの描画コマンドが残っている場合には、処理はステップS1001に進む。一方、ステップS1001の対象となっていないページの描画コマンドはもう残っていない場合には、処理はステップS1004に進む。
【0030】
ステップS1004では、生成部251は、ページの描画コマンドから、該ページ上のオブジェクトの合成に係る合成情報を生成し、該生成した合成情報をHD114に格納する。
【0031】
ステップS1005では、生成部251は、ページの描画コマンドから、該ページ上のオブジェクトのエッジに関するエッジ情報を生成し、該生成したエッジ情報をHD114に格納する。
【0032】
このように、本実施形態では、描画コマンドから中間データを生成するために用いられる情報群(塗り情報、合成情報、エッジ情報)を内部データとしてHD114に格納する。内部データの構成例を図3に示す。図3に示す如く、内部データ300は、エッジ情報213、合成情報214、塗り情報215を含む。
【0033】
ステップS1005gでは、生成部251は、HD114に格納した上記の内部データを適宜参照してページの中間データを生成し、該生成した中間データをHD114に格納する。
【0034】
ステップS1006では、生成部251は、まだステップS1001の対象となっていないページの描画コマンドが残っているか否かを判断する。この判断の結果、まだステップS1001の対象となっていないページの描画コマンドが残っている場合には、処理はステップS1001に進む。一方、ステップS1001の対象となっていないページの描画コマンドはもう残っていない場合には、処理はステップS1007に進む。
【0035】
ステップS1007では、生成部251は、生成した中間データが複数あるか否かを判断する。この判断の結果、生成した中間データが複数ある場合には、処理はステップS1008に進み、生成した中間データが1つの場合には、処理はステップS1009に進む。
【0036】
ステップS1008では、生成部251は、HD114に格納されている「複数の中間データ」を1つの中間データにマージし、該マージにより生成された1つの中間データをHD114に格納する。
【0037】
ステップS1009では、レンダリング部252は、HD114に格納されている中間データを用いてレンダリングを行うことでラスタ画像を生成する。この生成されたラスタ画像は、出力部207によって適当な出力先に出力データ212として出力される。
【0038】
[第2の実施形態]
本実施形態を含む以下の各実施形態では、第1の実施形態との差分について説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態に係る画像処理装置100は、内部データをHD114に退避させることなくメモリ(RAM102)で保持しながら中間データを生成する第1のモードと、内部データをHD114に退避させて中間データを生成する第2のモードと、を有する。そして、画像処理装置100は、最初のページから第1のモードで動作し、ジョブ処理中の途中のページでメモリが不足した場合に、該ページに関しては第2のモードに切り替えて動作する。なお、本実施形態では、RAM102を「メモリ」と称するが、「メモリ」は他の種類の揮発性メモリであってもよい。
【0039】
本実施形態に係る画像処理装置100の動作について、図7のフローチャートに従って説明する。図7のフローチャートに従った処理の開始時点では、画像処理装置100には第1のモードが設定されている。
【0040】
ステップS1000aでは、解析部205は、印刷データ203を解析して、ページごとの描画命令(描画コマンド)を生成する。ステップS1001aでは、生成部251は、ページの描画コマンドから、該ページにおける塗りに関する塗り情報を生成し、該該生成した塗り情報をRAM102で保持しておく。
【0041】
ステップS1002aでは、生成部251は、ステップS1001aで生成したページにおける塗り情報の数が閾値を超えるか否かを判断する。この判断の結果、ステップS1001aで生成したページにおける塗り情報の数が閾値を超える場合には、処理はステップS1004aに進む。一方、ステップS1001aで生成したページにおける塗り情報の数が閾値を超えない場合には、処理はステップS1003aに進む。
【0042】
ステップS1003aでは、生成部251は、まだステップS1001aの対象となっていないページの描画コマンドが残っているか否かを判断する。この判断の結果、まだステップS1001aの対象となっていないページの描画コマンドが残っている場合には、処理はステップS1001aに進む。一方、ステップS1001aの対象となっていないページの描画コマンドはもう残っていない場合には、処理はステップS1004aに進む。
【0043】
ステップS1004aでは、生成部251は、ページの描画コマンドから、該ページ上のオブジェクトの合成に係る合成情報を生成し、該生成した合成情報をRAM102で保持しておく。
【0044】
ステップS1005aでは、生成部251は、ページの描画コマンドから、該ページ上のオブジェクトのエッジに関するエッジ情報を生成し、該生成したエッジ情報をRAM102で保持しておく。
【0045】
ステップS1005gでは、生成部251は、RAM102で保持している内部データを適宜参照してページの中間データを生成し、該生成した中間データをRAM102で保持しておく。
【0046】
ステップS2000では、生成部251は、ステップS1005gで生成した中間データのサイズが閾値以上であるか否かを判断する。この判断の結果、ステップS1005gで生成した中間データのサイズが閾値以上である場合には、処理はステップS2001aに進む。一方、ステップS1005gで生成した中間データのサイズが閾値未満である場合には、処理はステップS2002aに進む。ステップS2001aでは、生成部251は、ステップS1005gで生成した中間データに対して上記のフラット化を行う。
【0047】
ステップS2002aでは、生成部251は、メモリが不足していないこと(CURRENT_USAGE)を確認する。この確認の結果、メモリ不足である場合(RAM102に割り当てられているメモリ領域に、もうこれ以上の中間データや内部データを格納することができない場合)には、処理はステップS2100に進む。ステップS2100に処理が進んだ時点で、画像処理装置100は第2のモードに設定される。
【0048】
一方、メモリ不足ではない場合(RAM102に割り当てられているメモリ領域に、まだ中間データや内部データを格納することができる場合)には、処理はステップS1006aに進む。
【0049】
ステップS1006aでは、生成部251は、まだステップS1001aの対象となっていないページの描画コマンドが残っているか否かを判断する。この判断の結果、まだステップS1001aの対象となっていないページの描画コマンドが残っている場合には、処理はステップS1001aに進む。一方、ステップS1001aの対象となっていないページの描画コマンドはもう残っていない場合には、処理はステップS1007aに進む。
【0050】
ステップS1007aでは、生成部251は、生成した中間データが複数あるか否かを判断する。この判断の結果、生成した中間データが複数ある場合には、処理はステップS1008aに進み、生成した中間データが1つの場合には、処理はステップS2003aに進む。
【0051】
ステップS1008aでは、生成部251は、HD114に格納されている「複数の中間データ」を1つの中間データにマージし、該マージにより生成された1つの中間データをHD114に格納する。
【0052】
ステップS2003aでは、生成部251は、中間データに対してフラット化を行うか否かを判断する。この判断の結果、中間データに対してフラット化を行う場合には、処理はステップS2004aに進み、中間データに対してフラット化を行わない場合には、処理はステップS1009aに進む。
【0053】
ステップS2004では、生成部251は、中間データに対してフラット化を行う。ステップS1009aでは、レンダリング部252は、HD114に格納されている中間データを用いてレンダリングを行うことでラスタ画像を生成する。この生成されたラスタ画像は、出力部207によって適当な出力先に出力データ212として出力される。
【0054】
ステップS2100では、CPU101は、画像処理の初期化を行う。この初期化は、画像処理装置100を第2のモードに設定する処理や、RAM102に保持している中間データを削除(クリア)する処理、を含む。
【0055】
ステップS2101では、CPU101は、内部データの保存先をRAM102からHD114に変更する。以降の処理は第1の実施形態(図5)と同様であるため、説明を省略する。
【0056】
[第3の実施形態]
第2の実施形態では、RAM102におけるメモリ不足が発生すると、第1のモードから第2のモードに切り替えた。本実施形態では、中間データの生成処理を開始してから閾値時間が経過すると、第1のモードから第2のモードに切り替える。
【0057】
本実施形態に係る画像処理装置100の動作について、図8のフローチャートに従って説明する。以下では、図7のフローチャートに従った処理との差分について説明し、以下で特に触れない限りは、第2の実施形態と同様である。
【0058】
ステップS3000では、生成部251は、中間データの生成処理を開始してからの経過時間(CPU101が有するタイマ機能により計時)が閾値時間(閾値)以上となったか否かを判断する。この判断の結果、中間データの生成処理を開始してからの経過時間が閾値時間以上となった場合には、処理はステップS2100に進む。一方、中間データの生成処理を開始してからの経過時間が閾値時間未満である場合には、処理はステップS1006aに進む。
【0059】
なお、「中間データの生成処理を開始してからの経過時間」の計時開始タイミングは特定のタイミングに限らず、例えば、ステップS1000aの処理を開始したタイミングであってもよいし、ステップS1001aの処理を開始したタイミングであってもよい。
【0060】
図9は、ステップS2002をステップS3000に置き換えたことによる性能の改善の一例を示す図である。図4と同様に、縦軸は、RAM102の使用量(GB)を示しており、横軸は、処理時間(分)を示している。なお、縦軸の最大値2GBがRAM102の最大容量としている。ここであらかじめ定めた閾値時間はt分としている。
【0061】
図6では処理時間がTの時点でメモリ使用量が最大値2GBに到達しており、メモリ不足が発生してステップS2100に移行していた。一方、図9では、図6の時よりも早くステップS2100に移行することが可能となり、総印刷時間を短縮することが可能となる。
【0062】
以上説明したように、あらかじめ定めた閾値時間tに応じて第1のモードから第2のモードに移行することで、フラット化によりRAM102のメモリ不足に至るまでの時間がかかる印刷データに対しても、総印刷時間を短縮することが可能となる。
【0063】
[第4の実施形態]
画像処理装置100はマルチスレッドで動作することも可能である。本実施形態に係る画像処理装置100の動作について、図10のフローチャートに従って説明する。以下では、図7のフローチャートに従った処理との差分について説明し、以下で特に触れない限りは、第2の実施形態と同様である。
【0064】
ステップS4000aでは、CPU101は、マルチスレッドを設定する。これにより、第1のモードでは、画像処理装置100はマルチスレッドで動作する。ステップS4000bでは、CPU101は、は、シングルスレッドを設定する。これにより第2のモードでは、画像処理装置100はシングルスレッドで動作する。
【0065】
マルチスレッドで動作する場合、シングルスレッドで動作するときよりもRAM102を使用する傾向がある。よって、RAM102においてメモリが不足しないように第2のモードではシングルスレッドで動作させてRAM102の容量を節約するということも可能である。
【0066】
また、内部データの保存先として、RAM102およびHD114の両方を使用しても良い。例えば、RAM102に対してメモリ不足を発生させやすい描画命令(例えば大きな画像を含むオブジェクトの描画等)はHD114へ保存し、それ以外の描画命令はRAM102に保存しても良い。
【0067】
HD114に保存するタイミングとしては、中間データの生成処理中に、RAM102の使用状況をリアルタイムに確認し、問題がないことが確認出来た場合は、内部データをRAM102に保存した上で処理を続行する。そして、メモリ不足が発生する状況になったと判断された場合に、保存先をHD114に変更する構成としても良い。
【0068】
また、上記の各実施形態において使用した数値、各処理の実行タイミング、各処理の実行順序等は、具体的な説明を行うために一例として挙げたものであり、各実施形態がこれらの一例に限定されることを意図したものではない。
【0069】
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【0070】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0071】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0072】
101:CPU 102:RAM 103:フォントROM 104:プログラムROM 105:データROM 106:バス 107:KBC 108:表示制御部 109:HD制御部 110:通信部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10