(57)【要約】【課題】  分割された複数の描画コマンドによって構成されるオブジェクトを生成中にフォールバックが発生すると、そのオブジェクト領域周辺にノイズが乗り、画質の劣化が発生することがあり、このような画質劣化を防ぐ。【解決手段】  描画コマンドに従ってラスタイメージと属性ビットに展開可能な中間データを生成する中間データ生成手段と、中間データを解釈し画像データとしてラスタイメージと属性ビットを出力するレンダリング手段と、前記レンダリング手段が出力したラスタイメージと属性ビットの画像データを背景画像として、再度中間データに登録するフォールバック手段と、分割された複数の描画コマンドによって構成される１つの描画オブジェクトを、１つのオブジェクトとして認識する描画オブジェクト認識手段とを備え、前記フォールバック手段によるフォールバック発生時に、描画オブジェクト認識手段の認識の結果によって、背景画像となる中間データと前景画像用の中間データとを分割する境界を決定する。【選択図】        図１
2006309329.tif 000002
【特許請求の範囲】
【請求項１】
描画コマンドに従ってラスタイメージと属性ビットに展開可能な中間データを生成する中間データ生成手段と、
中間データを解釈し画像データとしてラスタイメージと属性ビットを出力するレンダリング手段と、
前記レンダリング手段が出力したラスタイメージと属性ビットの画像データを背景画像として、再度中間データに登録するフォールバック手段と、
分割された複数の描画コマンドによって構成される１つの描画オブジェクトを、１つのオブジェクトとして認識する描画オブジェクト認識手段とを備え、
前記フォールバック手段によるフォールバック発生時に、描画オブジェクト認識手段の認識の結果によって、背景画像となる中間データと前景画像用の中間データとを分割する境界を決定することを特徴とする画像形成装置。
【請求項２】
前記描画オブジェクト認識手段は、グラデーションを含むオブジェクトを認識し、グラデーションを含むオブジェクトの中間データを生成中に、前記フォールバック手段によるフォールバック発生すると、グラデーションを含むオブジェクトを生成する直前までの中間データを背景画像としてレンダリングすることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
連続するグラデーションの濃度を認識するグラデーション認識手段を備え、前記フォールバックが不可能な場合は、最も濃度の薄いグラデーションを構成するオブジェクトまでの中間データを背景画像としてレンダリングすることを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記描画オブジェクト認識手段は、連続するイメージを含むオブジェクトを認識し、連続イメージを含むオブジェクトの中間データを生成中に、前記フォールバック手段によるフォールバック発生すると、連続イメージを含むオブジェクトを生成する直前までの中間データを背景画像としてレンダリングすることを特徴とする請求項１に記載の画像形成装置。
【請求項５】
イメージの領域を認識するイメージ領域認識手段を備え、前記フォールバックが不可能な場合は、複数で構成されるイメージ全体が矩形を構成するオブジェクトまでの中間データを背景画像としてレンダリングすることを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記描画オブジェクト認識手段は、連続する同一フォントの文字列を含むオブジェクトを認識し、連続文字を含むオブジェクトの中間データを生成中に、前記フォールバック手段によるフォールバック発生すると、連続文字のオブジェクトを生成する直前までの中間データを背景画像としてレンダリングすることを特徴とする請求項１に記載の画像形成装置。
【請求項７】
文字の折り返しを認識する文字折り返し認識手段を備え、前記フォールバックが不可能な場合は、折り返した文字のオブジェクトまでの中間データを背景画像としてレンダリングすることを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記描画オブジェクト認識手段は、連続する破線を含むオブジェクトを認識し、連続破線を含むオブジェクトの中間データを生成中に、前記フォールバック手段によるフォールバック発生すると、連続破線を含むオブジェクトを生成する直前までの中間データを背景画像としてレンダリングすることを特徴とする請求項１に記載の画像形成装置。
【請求項９】
破線と破線の間隔を認識する破線間隔認識手段を備え、前記フォールバックが不可能な場合は、最も破線間隔が大きいオブジェクトまでの中間データを背景画像としてレンダリングすることを特徴とする請求項６に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画コマンドに従って中間データを生成し、生成された中間データをハードウェアでレンダリングすることでラスタデータを生成する手段を備える画像形成装置に関する。
【背景技術】
【０００２】
描画コマンドに従って中間データを生成する際、メモリオーバーフローが発生した場合、それまでに生成した中間データは一旦レンダリングされ、レンダリング後の画像は次の中間データの背景画像として登録される。このとき次の中間データを収めるメモリ領域を空ける為に、背景画像には圧縮処理がかかり、圧縮処理がｌｏｓｓｌｅｓｓの場合は画質の劣化が発生する。
【特許文献１】特開２００２−１２７５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オブジェクトが分割されて送られてくる時、オブジェクトを生成する最中にフォールバックが発生すると、そのオブジェクトの領域周辺にノイズが乗ることがあった。例えば、グラデーションを含むオブジェクトの描画は、図２のようにグラデーション用のオブジェクトとクリップによって処理される。しかし、図３のようにグラデーション用オブジェクトを生成する最中にフォールバックが発生すると、フォールバックに伴うＪＰＥＧ圧縮によってグラデーションオブジェクトのにじみが背景画像に生まれてしまう。
【０００４】
本発明は、以上の点に着目して成されたもので、フォールバック発生時における画質の劣化を抑えることが可能になる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
属性ビットの付加された画像データを使用して、印刷出力時に、前記付加された属性ビットに基づき、画像処理を施して印刷することのできる画像形成装置において、
中間言語を解釈し画像データとしてラスタイメージと属性ビットを出力するレンダリング手段と、
前記レンダリング手段が出力したラスタイメージと属性ビットの画像データを背景画像として再度中間言語に登録するフォールバック手段と、
前記レンダリング手段が出力するラスタイメージと属性ビットの画像データの総容量が一定サイズを超過した時、前記属性ビットを画像形成装置内の別メモリに退避する手段とを有することを特徴とする画像形成装置。
【０００６】
すなわち、本発明の技術内容は以下の構成を備えることにより前記課題を解決できた。
【０００７】
（１）描画コマンドに従ってラスタイメージと属性ビットに展開可能な中間データを生成する中間データ生成手段と、中間データを解釈し画像データとしてラスタイメージと属性ビットを出力するレンダリング手段と、前記レンダリング手段が出力したラスタイメージと属性ビットの画像データを背景画像として、再度中間データに登録するフォールバック手段と、分割された複数の描画コマンドによって構成される１つの描画オブジェクトを、１つのオブジェクトとして認識する描画オブジェクト認識手段とを備え、前記フォールバック手段によるフォールバック発生時に、描画オブジェクト認識手段の認識の結果によって、背景画像となる中間データと前景画像用の中間データとを分割する境界を決定することを特徴とする画像形成装置。
【発明の効果】
【０００８】
本発明によって、フォールバック発生時における画質の劣化を抑えることが可能になる。
【発明を実施するための最良の形態】
【０００９】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例１】
【００１０】
図１は実施例１、２、３の画像形成装置の内部構造を示す図である。
【００１１】
図１において、１０１は、描画コマンドに従って生成された中間データからラスタイメージを生成するレンダラ１０２と、メモリの管理を行なうメモリ管理部１０３と、メモリ領域１０４から構成される画像形成装置である。また、メモリ領域１０４は、描画コマンドを受け取る入力データ用メモリ領域１０５と、中間データを保持する中間データ用メモリ領域１０６と、最終的なラスタイメージを格納する出力データ用メモリ領域１０７と、レンダリング時に使用されるレンダリング用メモリ領域１０８で構成される。
【００１２】
レンダラ１０２は、レンダリングをハードウェアで行なうハードウェアレンダラ１０２ａと、ソフトウェアで行なうソフトウェアレンダラ１０２ｂで構成される。
【００１３】
さらに、レンダリング用メモリ領域１０８はレンダリング時ワークメモリとして使用されるワークメモリ領域１０８ａと、レンダリング時に生成されるラスタイメージを格納するラスタイメージ用領域１０８ｂと、レンダリング時に付加される属性情報を格納する領域１０８ｃで構成される。
【００１４】
本実施例における、描画コマンドを読み込んでからラスタイメージを生成するまでの手順を図１０のフローチャートを用いて説明する。
【００１５】
ステップＳ１０１において、描画コマンドを読み込む。
【００１６】
ステップＳ１０２において、読み込んだ描画コマンドを元に生成する中間データが中間データのメモリ格納領域に収まるかどうかを判断する。収まる場合はフォールバックする必要はなく、ステップＳ１０３へ進む。収まらない場合は、中間データのメモリ格納領域の確保のためにフォールバックする必要があり、ステップＳ１１３に進む。
【００１７】
ここでステップＳ１１３のフォールバックの処理について、図１１のフローチャートを用いて説明する。
【００１８】
ステップＳ２０１において、生成済の中間データをレンダリングする。
【００１９】
ステップＳ２０２において、レンダリングの出力であるラスタイメージと属性情報に圧縮をかける。この圧縮イメージが背景画像となる。
【００２０】
ステップＳ２０３において、ステップＳ２０２で圧縮された圧縮イメージ（背景画像）を中間データに登録する。
【００２１】
ステップＳ２０４において、ステップＳ２０１において中間データをレンダリングした結果、不要となった中間データを削除する。これによって新しく生成する中間データを格納するメモリ領域が確保される。
【００２２】
ステップＳ２０５において、残りの描画コマンドの中間データの生成を再開する。
【００２３】
以上がステップＳ１１３のフォールバックの処理である。
【００２４】
ステップＳ１０３において、読み込んだ描画コマンドがクリップであるかどうか判断する。クリップの場合はステップＳ１０４へ進み、クリップでない場合はステップＳ１１０へ進む。
【００２５】
ステップＳ１０４において、このクリップからイディオム（複数の描画コマンドからなる１つのオブジェクト）が開始されることを記憶する。
【００２６】
ステップＳ１０５において、クリップ用の中間データを生成する。
【００２７】
ステップＳ１０６において、次の描画コマンドを読み込む。
【００２８】
ステップＳ１０７において、フォールバックが必要かどうか判断する。
【００２９】
フォールバックが必要ない場合はステップＳ１０８へ、フォールバックが必要な場合はステップＳ１１４へ進む。
【００３０】
ここでステップＳ１１４のイディオム対応フォールバックの処理について、図１２のフローチャートを用いて説明する。
【００３１】
ステップＳ３０１において、イディオム（複数の描画コマンドからなる１つのオブジェクト）を開始したオブジェクトを参照する。
【００３２】
ステップＳ３０２において、イディオム開始前までの中間データをレンダリングする。
【００３３】
ステップＳ３０３において、レンダリングの出力であるラスタイメージと属性情報に圧縮をかける。この圧縮イメージが背景画像となる。
【００３４】
ステップＳ３０４において、ステップＳ３０３で圧縮された圧縮イメージ（背景画像）を中間データに登録する。
【００３５】
ステップＳ３０５において、ステップＳ３０２において中間データをレンダリングした結果、不要となった中間データを削除する。これによって新しく生成する中間データを格納するメモリ領域が確保される。
【００３６】
ステップＳ３０６において、生成途中だったイディオムを新しい中間データとして繰り越される。
【００３７】
ステップＳ３０７において、残りの描画コマンドの中間データの生成を再開する。
【００３８】
以上がステップＳ１１４のイディオム対応フォールバックの処理である。
【００３９】
ここでステップＳ１１３のフォールバックとＳ１１４のイディオム対応フォールバックの違いについて、図４、図５、図６を用いて説明する。
【００４０】
図４は、中間データを格納するメモリ領域４０１に、これまでに生成された中間データ４０２があり、複数の描画コマンドから構成されるオブジェクト４０４が生成する中間データ４０３を完全格納することが不可能な状態を示している。
【００４１】
図５はステップＳ１１３の通常フォールバックの動作を表している。
【００４２】
図５は、オブジェクト４０５の中間データを生成中、オブジェクト５０３の中間データ５０２を生成した時点でメモリが枯渇したことを示す。
【００４３】
メモリが枯渇すると、既に生成した中間データ５０１、５０２が一旦レンダリングされる。
【００４４】
レンダリング終了後、不要となった中間データ５０１、５０２は削除され、残りのオブジェクト５０５の中間データ５０４の生成が再開される。
【００４５】
図６がステップＳ１１４のイディオム対応フォールバックの動作を表している。
【００４６】
メモリが枯渇するまでの処理は、通常フォールバック処理（図５）と同じである。すなわち中間データ６０１、６０２は、それぞれ中間データ５０１、５０２と同一である。
【００４７】
しかし、イディオム対応フォールバックではイディオムを意識するので、メモリが枯渇すると中間データ６０１のみがレンダリングされる。
【００４８】
レンダリング終了後、不要となった中間データ６０１は削除され、中途だった中間データ６０２は次のレンダリングに繰り越される。中間データ６０２に続き、残りのオブジェクト６０３の中間データ６０４の生成が再開される。
【００４９】
ステップＳ１０８において、読み込んだ描画コマンドがクリップリセットかどうかを判断する。クリップリセットの場合はステップＳ１０９へ進み、クリップリセットでない場合はステップ１０５へ戻り、ステップＳ１０５からステップＳ１０８の処理を繰り返す。
【００５０】
ステップＳ１０９において、このクリップリセットでイディオムが終了することを記憶する。
【００５１】
ステップＳ１１０において、読み込んだ描画コマンドの中間データを生成する。
【００５２】
ステップＳ１１１において、全ての描画コマンドを読み込んだかどうか判断する。
【００５３】
全描画コマンドの読み込みが終了した場合はステップＳ１１２へ進み、そうでない場合はステップＳ１０１へ戻り、描画コマンドの読み込み処理を繰り返す。
【００５４】
ステップＳ１１２において、生成された中間データがレンダリングされる。
【００５５】
図１３は、本実施例１におけるイディオム対応フォールバックが不可能な場合の処理手順を示すフローチャートである。
【００５６】
ステップＳ４０１において、イディオムの開始オブジェクトを参照する。
【００５７】
ステップＳ４０２において、オブジェクトの色濃度を記憶する。
【００５８】
ステップＳ４０３において、参照したオブジェクトが最後のオブジェクト（最も最近に生成されたオブジェクト）かどうかをチェックする。
【００５９】
最後のオブジェクトならステップＳ４０５へ、そうでなければステップＳ４０４へ進む。
【００６０】
ステップＳ４０４において、参照したオブジェクトの次のオブジェクトを参照する。
【００６１】
ステップＳ４０５において、これまで記憶したオブジェクトの中で最も色濃度の薄いオブジェクトを含む中間データまでをレンダリングする。
【００６２】
ステップＳ４０６において、レンダリングの出力であるラスタイメージと属性情報に圧縮をかける。この圧縮イメージが背景画像となる。
【００６３】
ステップＳ４０７において、圧縮された圧縮イメージ（背景画像）を中間データに登録する。
【００６４】
ステップＳ４０８において、中間データをレンダリングした結果、不要となった中間データを削除する。これによって新しく生成する中間データを格納するメモリ領域が確保される。
【００６５】
ステップＳ４０９において、生成途中だったイディオムを新しい中間データとして繰り越される。
【００６６】
ステップＳ４１０において、残りの描画コマンドの中間データの生成を再開する。
【実施例２】
【００６７】
本実施例における、描画コマンドを読み込んでからラスタイメージを生成するまでの手順を図１４のフローチャートを用いて説明する。
【００６８】
ステップＳ５０１において、描画コマンドを読み込む。
【００６９】
ステップＳ５０２において、読み込んだ描画コマンドを元に生成する中間データが中間データのメモリ格納領域に収まるかどうかを判断する。収まる場合はフォールバックする必要はなく、ステップＳ５０３へ進む。収まらない場合は、中間データのメモリ格納領域の確保のためにフォールバックする必要があり、ステップＳ５１３に進む。
【００７０】
ステップＳ５０３において、読み込んだ描画コマンドが、１つの大きなイメージを構成する連続するイメージの集まりの１つ（以後連続イメージと呼ぶ）であるかどうか判断する。判断方法については後述する。
【００７１】
連続イメージの場合はステップＳ５０４へ進み、連続イメージでない場合はステップＳ５１０へ進む。
【００７２】
ステップＳ５０４において、連続イメージの先頭イメージをイディオム（複数の描画コマンドからなる１つのオブジェクト）の開始として記憶する。
【００７３】
ステップＳ５０５において、イメージの中間データを生成する。
【００７４】
ステップＳ５０６において、次の描画コマンドを読み込む。
【００７５】
ステップＳ５０７において、フォールバックが必要かどうか判断する。
【００７６】
フォールバックが必要ない場合はステップＳ５０８へ、フォールバックが必要な場合はステップＳ５１４へ進む。
【００７７】
ここでステップＳ５１３のフォールバックとＳ５１４のイディオム対応フォールバックの違いについて、図７、図８、図９を用いて説明する。
【００７８】
図７は、中間データを格納するメモリ領域７０１に、これまでに生成された中間データ７０２があり、複数の描画コマンドから構成されるオブジェクト７０４が生成する中間データ７０３を完全格納することが不可能な状態を示している。
【００７９】
図８はＳ５１３の通常フォールバックの動作を表している。
【００８０】
図８は、オブジェクト８０５の中間データを生成中、オブジェクト８０３の中間データ８０２を生成した時点でメモリが枯渇したことを示す。
【００８１】
メモリが枯渇すると、既に生成した中間データ８０１、８０２が一旦レンダリングされる。
【００８２】
レンダリング終了後、不要となった中間データ８０１、８０２は削除され、残りのオブジェクト８０５の中間データ８０４の生成が再開される。
【００８３】
図９はステップＳ５１４のイディオム対応フォールバックの動作を表している。
【００８４】
メモリが枯渇するまでの処理は、通常フォールバック処理（図８）と同じである。すなわち中間データ９０１、９０２は、それぞれ中間データ８０１、８０２と同一である。
【００８５】
しかし、イディオム対応フォールバックではイディオムを意識するので、メモリが枯渇すると中間データ９０１のみがレンダリングされる。
【００８６】
レンダリング終了後、不要となった中間データ９０１は削除され、中途だった中間データ９０２は次のレンダリングに繰り越される。中間データ９０２に続き、残りのオブジェクト９０５の中間データ９０４の生成が再開される。
【００８７】
ステップＳ５０８において、読み込んだ描画コマンドが連続イメージであるかどうかを判断する。連続イメージの場合はステップＳ５０９へ進み、そうでない場合はステップＳ１０５へ戻り、ステップＳ５０５からステップＳ５０８の処理を繰り返す。
【００８８】
ステップＳ５０９において、イディオムの終了を記憶する。
【００８９】
ステップＳ５１０において、読み込んだ描画コマンドの中間データを生成する。
【００９０】
ステップＳ５１１において、全ての描画コマンドを読み込んだかどうか判断する。
【００９１】
全描画コマンドの読み込みが終了した場合はステップＳ５１２へ進み、そうでない場合はステップＳ５０１へ戻り、描画コマンドの読み込み処理を繰り返す。
【００９２】
ステップＳ５１２において、生成された中間データがレンダリングされる。
【００９３】
図１６は、本実施例において連続イメージかどうかを判断する方法を示すフローチャートである。
【００９４】
ステップＳ７０１において、イメージの描画コマンドを読み込む。
【００９５】
ステップＳ７０２において、イメージの情報を記憶する。イメージの左上座標（Ｘ，Ｙ）、幅Ｗ、高さＨを記憶する。
【００９６】
ステップＳ７０３において、既に記憶されている前イメージの情報を参照し、前イメージの左上座標（ｐｒｅＸ，ｐｒｅＹ）、幅ｐｒｅＷ、高さｐｒｅＨを獲得する。
【００９７】
ステップＳ７０４において、下記の式がともに真の場合はステップＳ７０５へ進み、そうでないない場合はステップＳ７０６へ進む。
【００９８】
Ｘ＝ｐｒｅＸ＋ｐｒｅＷ
Ｈ＝ｐｒｅＨ
【００９９】
ステップＳ７０５において、読み込んだ描画コマンドのイメージは、前イメージと連続する「連続イメージ」として認識される。
【０１００】
ステップＳ７０６において、読み込んだ描画コマンドのイメージは、「連続イメージ」ではないと認識される。
【０１０１】
ステップＳ７０７において、読み込んだ描画コマンドのイメージ情報を新しい前イメージの情報とする。つまり前イメージの情報は次のように更新される。
【０１０２】
ｐｒｅＸ＝Ｘ
ｐｒｅＹ＝Ｙ
ｐｒｅＷ＝Ｗ
ｐｒｅＨ＝Ｈ
【０１０３】
図１５は、本実施例におけるイディオム対応フォールバックが不可能な場合の処理手順を示すフローチャートである。
【０１０４】
ステップＳ６０１において、イディオムの開始オブジェクトを参照する。
【０１０５】
ステップＳ６０２において、オブジェクトに含まれるイメージの左上座標と、幅、高さを記憶する。
【０１０６】
ステップＳ６０３において、参照したオブジェクトが最後のオブジェクト（最も最近に生成されたオブジェクト）かどうかをチェックする。
【０１０７】
最後のオブジェクトならステップＳ６０５へ、そうでなければステップＳ６０４へ進む。
【０１０８】
ステップＳ６０４において、参照したオブジェクトの次のオブジェクトを参照する。
【０１０９】
ステップＳ６０５において、１スキャンライン上に構成される連続イメージの幅の合計が最大になるオブジェクトまでの中間データをレンダリングする。
【０１１０】
ステップＳ６０６において、レンダリングの出力であるラスタイメージと属性情報に圧縮をかける。この圧縮イメージが背景画像となる。
【０１１１】
ステップＳ６０７において、圧縮された圧縮イメージ（背景画像）を中間データに登録する。
【０１１２】
ステップＳ６０８において、中間データをレンダリングした結果、不要となった中間データを削除する。これによって新しく生成する中間データを格納するメモリ領域が確保される。
【０１１３】
ステップＳ６０９において、生成途中だったイディオムを新しい中間データとして繰り越される。
【０１１４】
ステップＳ６１０において、残りの描画コマンドの中間データの生成を再開する。
【実施例３】
【０１１５】
本実施例における、描画コマンドを読み込んでからラスタイメージを生成するまでの手順を図１７のフローチャートを用いて説明する。
【０１１６】
ステップＳ８０１において、描画コマンドを読み込む。
【０１１７】
ステップＳ８０２において、読み込んだ描画コマンドを元に生成する中間データが中間データのメモリ格納領域に収まるかどうかを判断する。収まる場合はフォールバックする必要はなく、ステップＳ８０３へ進む。収まらない場合は、中間データのメモリ格納領域の確保のためにフォールバックする必要があり、ステップＳ８１３に進む。
【０１１８】
ステップＳ８０３において、読み込んだ描画コマンドが、同一のフォントによって文字列を構成する１つの文字（以後連続文字と呼ぶ）であるかどうか判断する。判断方法については後述する。
【０１１９】
連続イメージの場合はステップＳ８０４へ進み、連続文字でない場合はステップＳ８１０へ進む。
【０１２０】
ステップＳ８０４において、連続文字の先頭にある文字をイディオム（複数の描画コマンドからなる１つのオブジェクト）の開始として記憶する。
【０１２１】
ステップＳ８０５において、文字の中間データを生成する。
【０１２２】
ステップＳ８０６において、次の描画コマンドを読み込む。
【０１２３】
ステップＳ８０７において、フォールバックが必要かどうか判断する。
【０１２４】
フォールバックが必要ない場合はステップＳ８０８へ、フォールバックが必要な場合はステップＳ８１４へ進む。
【０１２５】
ステップＳ８０８において、読み込んだ描画コマンドが連続文字であるかどうかを判断する。連続文字の場合はステップＳ８０９へ進み、そうでない場合はステップＳ８０５へ戻り、ステップＳ８０５からステップＳ８０８の処理を繰り返す。
【０１２６】
ステップＳ８０９において、イディオムの終了を記憶する。
【０１２７】
ステップＳ８１０において、読み込んだ描画コマンドの中間データを生成する。
【０１２８】
ステップＳ８１１において、全ての描画コマンドを読み込んだかどうか判断する。
【０１２９】
全描画コマンドの読み込みが終了した場合はステップＳ８１２へ進み、そうでない場合はステップＳ８０１へ戻り、描画コマンドの読み込み処理を繰り返す。
【０１３０】
ステップＳ８１２において、生成された中間データがレンダリングされる。
【０１３１】
図１９は、本実施例において連続文字かどうかを判断する方法を示すフローチャートである。
【０１３２】
ステップＳ１００１において、文字の描画コマンドを読み込む。
【０１３３】
ステップＳ１００２において、文字のフォント情報（フォント、ポイントサイズ）を記憶する。
【０１３４】
ステップＳ１００３において、既に記憶されている前文字のフォント情報を参照し取得する。
【０１３５】
ステップＳ１００４において、新しく読み込んだ描画コマンドの文字のフォント情報と前文字のフォント情報を比較し、同じならステップＳ１００５へ進み、ステップＳ１００５において、読み込んだ描画コマンドの文字は、前文字と連続する「連続文字」として認識される。
【０１３６】
ステップＳ１００６において、読み込んだ描画コマンドの文字は、「連続文字」ではないと認識される。
【０１３７】
ステップＳ１００７において、読み込んだ描画コマンドの文字のフォント情報を新しい前文字のフォント情報とする。
【０１３８】
図１５は、本実施例におけるイディオム対応フォールバックが不可能な場合の処理手順を示すフローチャートである。
【０１３９】
ステップＳ６０１において、イディオムの開始オブジェクトを参照する。
【０１４０】
ステップＳ６０２において、オブジェクトに含まれるイメージの左上座標と、幅、高さを記憶する。
【０１４１】
ステップＳ６０３において、参照したオブジェクトが最後のオブジェクト（最も最近に生成されたオブジェクト）かどうかをチェックする。
【０１４２】
最後のオブジェクトならステップＳ６０５へ、そうでなければステップＳ６０４へ進む。
【０１４３】
ステップＳ６０４において、参照したオブジェクトの次のオブジェクトを参照する。
【０１４４】
ステップＳ６０５において、１スキャンライン上に構成される連続イメージの幅の合計が最大になるオブジェクトまでの中間データをレンダリングする。
【０１４５】
ステップＳ６０６において、レンダリングの出力であるラスタイメージと属性情報に圧縮をかける。この圧縮イメージが背景画像となる。
【０１４６】
ステップＳ６０７において、圧縮された圧縮イメージ（背景画像）を中間データに登録する。
【０１４７】
ステップＳ６０８において、中間データをレンダリングした結果、不要となった中間データを削除する。これによって新しく生成する中間データを格納するメモリ領域が確保される。
【０１４８】
ステップＳ６０９において、生成途中だったイディオムを新しい中間データとして繰り越される。
【０１４９】
ステップＳ６１０において、残りの描画コマンドの中間データの生成を再開する。
【０１５０】
図１８は、本実施例におけるイディオム対応フォールバックが不可能な場合の処理手順を示すフローチャートである。
【０１５１】
ステップＳ９０１において、イディオムの開始オブジェクトを参照する。
【０１５２】
ステップＳ９０２において、オブジェクトに含まれる文字の位置座標（Ｘ，Ｙ）を記憶する。
【０１５３】
ステップＳ９０３において、参照したオブジェクトが最後のオブジェクト（最も最近に生成されたオブジェクト）かどうかをチェックする。
【０１５４】
最後のオブジェクトならステップＳ９０５へ、そうでなければステップＳ９０４へ進む。
【０１５５】
ステップＳ９０４において、参照したオブジェクトの次のオブジェクトを参照する。
【０１５６】
ステップＳ９０５において、１行を折り返す文字のオブジェクトまでの中間データをレンダリングする。
【０１５７】
ステップＳ９０６において、レンダリングの出力であるラスタイメージと属性情報に圧縮をかける。この圧縮イメージが背景画像となる。
【０１５８】
ステップＳ９０７において、圧縮された圧縮イメージ（背景画像）を中間データに登録する。
【０１５９】
ステップＳ９０８において、中間データをレンダリングした結果、不要となった中間データを削除する。これによって新しく生成する中間データを格納するメモリ領域が確保される。
【０１６０】
ステップＳ９０９において、生成途中だったイディオムを新しい中間データとして繰り越される。
【０１６１】
ステップＳ９１０において、残りの描画コマンドの中間データの生成を再開する。
【図面の簡単な説明】
【０１６２】
【図１】画像形成装置の構成図
【図２】グラデーションを描画する例を示す図
【図３】フォールバックによる描画不正の例を示す図
【図４】実施例１におけるフォールバックの例（メモリ枯渇）を示す図
【図５】実施例１におけるフォールバックの例（通常フォールバック）を示す図
【図６】実施例１におけるフォールバックの例（イディオム対応フォールバック）を示す図
【図７】実施例２におけるフォールバックの例（メモリ枯渇）を示す図
【図８】実施例２におけるフォールバックの例（通常フォールバック）を示す図
【図９】実施例２におけるフォールバックの例（イディオム対応フォールバック）を示す図
【図１０】実施例１のフローチャート
【図１１】実施例１、２、３における通常フォールバックのフローチャート
【図１２】実施例１、２、３におけるイディオム対応フォールバックのフローチャート
【図１３】実施例１における例外的なイディオム対応フォールバックのフローチャート
【図１４】実施例２のフローチャート
【図１５】実施例２における例外的なイディオム対応フォールバックのフローチャート
【図１６】実施例２における連続イメージの判別処理を示すフローチャート
【図１７】実施例３のフローチャート
【図１８】実施例３における例外的なイディオム対応フォールバックのフローチャート
【図１９】実施例３における連続文字の判別処理を示すフローチャート
【符号の説明】
【０１６３】
１０１    画像形成装置
１０２    レンダラ部
１０３    メモリ管理部
１０４    メモリ領域
１０５    入力データ用メモリ領域
１０６    中間データ用メモリ領域
１０７    出力データ用メモリ領域
１０８    レンダリング用メモリ領域
１０８ａ  ワーク領域
１０８ｂ  ラスタイメージ格納領域
１０８ｃ  属性情報格納領域
【図１】
2006309329.tif 000003
【図１０】
2006309329.tif 000004
【図１１】
2006309329.tif 000005
【図１２】
2006309329.tif 000006
【図１３】
2006309329.tif 000007
【図１４】
2006309329.tif 000008
【図１５】
2006309329.tif 000009
【図１６】
2006309329.tif 000010
【図１７】
2006309329.tif 000011
【図１８】
2006309329.tif 000012
【図１９】
2006309329.tif 000013
【図２】
2006309329.tif 000014
【図３】
2006309329.tif 000015
【図４】
2006309329.tif 000016
【図５】
2006309329.tif 000017
【図６】
2006309329.tif 000018
【図７】
2006309329.tif 000019
【図８】
2006309329.tif 000020
【図９】
2006309329.tif 000021