(57)【要約】【課題】  圧縮データ格納領域からあふれた圧縮データにより、他のメモリ領域が壊されることがあっても、壊された部分を確実に回復できるようにする。【解決手段】  画像データから１バンド単位毎にビットマップデータを作成し、該ビットマップデータを圧縮処理して圧縮データ格納領域に格納する。また、圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢ（メモリコントロールブロック）と格納データとを複製してＣＰＵキャッシュ（３）に格納しておく。そして、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを判定し、ＭＣＢが破壊されていたとき、ＣＰＵキャッシュ（３）に格納しておいたＭＣＢとデータとを元の領域に戻す。【選択図】      図１
2006150704.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵキャッシュを有し、装置全体の制御を行うＣＰＵと、各種データを記憶するメモリと、バンド単位に分割された画像データからビットマップデータを作成するビットマップデータ生成手段と、前記メモリの空き領域にデータ格納領域を確保するとともに該データ格納領域の管理情報であるＭＣＢ（メモリコントロールブロック）を生成して該データ格納領域の直前に配置するＭＣＢ生成手段と、前記ビットマップデータを圧縮処理して前記ＭＣＢ生成手段が確保した圧縮データ格納領域に格納するデータ圧縮手段と、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを判定する境界判定手段と、前記圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢとデータとを複製して前記ＣＰＵキャッシュに格納し、前記境界判定手段がＭＣＢの破壊を判定したときにＣＰＵキャッシュに格納しておいたＭＣＢとデータとを元の領域に戻すＣＰＵキャッシュ制御手段とを具えたことを特徴とする画像形成装置。
【請求項２】
前記ＣＰＵキャッシュ制御手段により、ＣＰＵキャッシュに格納したＭＣＢとデータをＣＰＵキャッシュ内に保持し続けるように制御するメモリ管理部を備えたことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
ＣＰＵキャッシュを有し、装置全体の制御を行うＣＰＵと、各種データを記憶するメモリと、を具えた画像形成装置を構成するコンピュータの制御プログラムであって、
バンド単位に分割された画像データからビットマップデータを作成するビットマップデータ生成ステップと、前記メモリの空き領域にデータ格納領域を確保するとともに該データ格納領域の管理情報であるＭＣＢを生成して該データ格納領域の直前に配置するＭＣＢ生成ステップと、前記ビットマップデータを圧縮処理して前記ＭＣＢ生成手段が確保した圧縮データ格納領域に格納するデータ圧縮ステップと、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを判定する境界判定ステップと、前記圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢとデータとを複製して前記ＣＰＵキャッシュに格納し、前記境界判定手段がＭＣＢの破壊を判定したときにＣＰＵキャッシュに格納しておいたＭＣＢとデータを元の領域に戻すＣＰＵキャッシュ制御ステップとを具えたことを特徴とする制御プログラム。
【請求項４】
前記ＣＰＵキャッシュ制御ステップにより、ＣＰＵキャッシュに格納したＭＣＢとデータをＣＰＵキャッシュ内に保持し続けるように制御することを特徴とする請求項３に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、複合機等、印刷エンジン部へ画像データを出力する前に、画像のビットマップデータを一旦圧縮してメモリに記憶するようにした画像形成装置及びその制御プログラムに関するものである。
【背景技術】
【０００２】
従来、画像形成装置では、メモリの使用量を削減するため、画像を複数のバンドに分割し、それぞれのバンド毎にビットマップデータに展開した後、そのビットマップデータを圧縮処理して所定のメモリ領域に格納するようにしていた。そして、それを印刷する際には、圧縮したデータを復号（伸長）することにより出力画像データを得るようにしていた。
【０００３】
このような従来の画像形成装置では、圧縮処理して作成された圧縮データが上記所定のメモリ領域に格納しきれないほど大きなサイズになってしまったとき、上記所定のメモリ領域からあふれたデータが、他のデータの格納領域に書き込まれてしまい、その領域に書き込まれていた他のデータを壊してしまう。
【０００４】
そのため、例えば、特許文献１（特開２０００−１６５６３３号公報）に示されるように、当該画像形成装置が有するデータ圧縮器の最大圧縮率、すなわち、圧縮データのサイズが最大になるような圧縮率で換算したサイズの領域を圧縮データ記憶領域内に確保し、そのサイズの領域を確保できない場合は、圧縮後のデータが圧縮記憶領域内に確実に収まるようにデータの間引き処理を行った上で圧縮処理を行うようにする技術が提案されている。そのようにすれば、圧縮データが圧縮記憶領域内に確実に収まるため、他の領域に書き込まれていた別のデータを壊してしまうことを回避できる。
【０００５】
【特許文献１】特開２０００−１６５６３３号公報（図１、段落［００３２］〜［００３５］）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に開示された従来の技術によれば、最大の圧縮率で換算したサイズの領域を圧縮データ記憶領域内に確保できない場合にデータの間引き処理を行うためのハードウェアが別途必要になるという問題点があった。また、データの間引き処理を行えば、出力画像の画質を確実に劣化させてしまうという問題点があった。
【０００７】
本発明は、そのような問題点に鑑み、所定のメモリ領域からあふれた圧縮データにより、圧縮データ記憶領域以外の領域が壊されることがあっても、壊された部分を確実に回復でき、データの間引き処理のような特別な処理を行うハードウェアも必要なく、しかも，良好な出力画像が得られる画像形成装置及びその制御プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本願の請求項１に記載の画像形成装置は、ＣＰＵキャッシュを有し、装置全体の制御を行うＣＰＵと、各種データを記憶するメモリと、バンド単位に分割された画像データからビットマップデータを作成するビットマップデータ生成手段と、前記メモリの空き領域にデータ格納領域を確保するとともに該データ格納領域の管理情報であるＭＣＢ（メモリコントロールブロック）を生成して該データ格納領域の直前に配置するＭＣＢ生成手段と、前記ビットマップデータを圧縮処理して前記ＭＣＢ生成手段が確保した圧縮データ格納領域に格納するデータ圧縮手段と、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを判定する境界判定手段と、前記圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢとデータとを複製して前記ＣＰＵキャッシュに格納し、前記境界判定手段がＭＣＢの破壊を判定したときにＣＰＵキャッシュに格納しておいたＭＣＢとデータとを元の領域に戻すＣＰＵキャッシュ制御手段とを具えたことを特徴とする。
【０００９】
また、本願の請求項２に記載の発明は、請求項１に記載の画像形成装置に係り、前記ＣＰＵキャッシュ制御手段により、ＣＰＵキャッシュに格納したＭＣＢとデータをＣＰＵキャッシュ内に保持し続けるように制御するメモリ管理部を備えたことを特徴とする。
【００１０】
また、本願の請求項３に記載の制御プログラムは、ＣＰＵキャッシュを有し、装置全体の制御を行うＣＰＵと、各種データを記憶するメモリとを具えた画像形成装置を構成するコンピュータの制御プログラムであって、バンド単位に分割された画像データからビットマップデータを作成するビットマップデータ生成ステップと、前記メモリの空き領域にデータ格納領域を確保するとともに該データ格納領域の管理情報であるＭＣＢを生成して該データ格納領域の直前に配置するＭＣＢ生成ステップと、前記ビットマップデータを圧縮処理して前記ＭＣＢ生成手段が確保した圧縮データ格納領域に格納するデータ圧縮ステップと、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを判定する境界判定ステップと、前記圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢとデータとを複製して前記ＣＰＵキャッシュに格納し、前記境界判定手段がＭＣＢの破壊を判定したときにＣＰＵキャッシュに格納しておいたＭＣＢとデータを元の領域に戻すＣＰＵキャッシュ制御ステップとを具えたことを特徴とする。
【００１１】
また、本願の請求項４に記載の発明は、請求項３に記載の制御プログラムに係り、前記ＣＰＵキャッシュ制御ステップにより、ＣＰＵキャッシュに格納したＭＣＢとデータをＣＰＵキャッシュ内に保持し続けるように制御することを特徴とする。
【発明の効果】
【００１２】
本発明の画像形成装置及び制御プログラムは、次のような効果を奏する。
すなわち、請求項１に記載の画像形成装置は、圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢとデータとを複製して前記ＣＰＵキャッシュに格納しておき、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを境界判定手段で判定し、前記境界判定手段がＭＣＢの破壊を判定したときにＣＰＵキャッシュに格納しておいたＭＣＢとデータとを元の領域に戻すようにした。その結果、圧縮データ格納領域からあふれた圧縮データにより、圧縮データ記憶領域以外の領域が壊されることがあっても、壊された部分を確実に回復でき、データの間引き処理のような特別な処理を行うハードウェアも必要なく、しかも，良好な出力画像が得られる画像形成装置を提供することができる。
【００１３】
また、請求項２に記載の画像形成装置は、前記ＣＰＵキャッシュ制御手段により、ＣＰＵキャッシュに格納したＭＣＢとデータをＣＰＵキャッシュ内に保持し続けるように制御するようにしたので、ＣＰＵキャッシュに格納したＭＣＢとデータを確実に保持し、破壊されたときは、確実に復元できるようになる。
【００１４】
また、請求項３に記載の制御プログラムは、圧縮処理の開始前に前記圧縮データ格納領域の次に位置するメモリ領域のＭＣＢとデータとを複製して前記ＣＰＵキャッシュに格納しておき、１バンド分のビットマップデータの圧縮処理完了後、当該圧縮データ格納領域とその次に位置するメモリ領域との境界に配置されたＭＣＢが破壊されているか否かを境界判定ステップで判定し、前記境界判定ステップでＭＣＢの破壊が判定されたときにＣＰＵキャッシュに格納しておいたＭＣＢとデータとを元の領域に戻すようにした。その結果、圧縮データ格納領域からあふれた圧縮データにより、圧縮データ記憶領域以外の領域が壊されることがあっても、壊された部分を確実に回復でき、データの間引き処理のような特別な処理を行うハードウェアも必要なく、しかも，良好な出力画像が得られる画像形成装置用の制御プログラムを提供することができる。
【００１５】
また、請求項４に記載の制御プログラムは、前記ＣＰＵキャッシュ制御ステップにより、ＣＰＵキャッシュに格納したＭＣＢとデータをＣＰＵキャッシュ内に保持し続けるように制御するようにしたので、ＣＰＵキャッシュに格納したＭＣＢとデータを確実に保持し、破壊されたときは、確実に復元できるようになる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の具体例を実施例及び図面を用いて詳細に説明する。図１は、本発明の実施例にかかるプリンタ制御部の概略構成図である。図２は、メモリ管理部のブロック図である。図３は、メモリ管理部の処理手順を示すフローチャートである。図４は、ＭＣＢの構成図である。図５は、ビットマップデータ生成開始前のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を示す模式図である。図６は、圧縮データによりメモリ領域が破壊された時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を示す模式図である。図７は、破壊された領域を回復した時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を示す模式図である。
【実施例】
【００１７】
本発明の実施例にかかるプリンタ制御部は、図１の概略構成図に示す構成である。すなわち、プリンタ制御部１は、全体の制御を実行するＣＰＵ２と、ＣＰＵ２を動作させる制御プログラムやフォントデータ等を格納するＲＯＭ４と、各種処理中に発生したデータを記憶するＲＡＭ５と、符号化により画像データの圧縮及び復号を行う圧縮・復号器６と、パソコン等からなるホスト１１とのインターフェース７と、印刷エンジン１２とのインターフェース８と、外部記憶装置１３とのインターフェース９と、操作パネル１４とのインターフェース１０とを具えている。
【００１８】
ＲＡＭ５は、圧縮データの記憶領域や、バンド単位に分割された画像のビットマップデータを展開するための展開領域や、ホスト１１から受信したデータを格納する入力バッファの領域や、システムワーク領域等の領域から構成される。ＣＰＵ２は、ＣＰＵキャッシュ３を有しており、バンド単位に分割された画像のビットマップデータをＲＡＭ５の展開領域に展開し、圧縮・復号器６の圧縮器は、展開されたバンド単位のビットマップデータを圧縮する。そして、その結果生成された圧縮データは、ＲＡＭ５の所定の領域にＤＭＡ転送されて格納される。また、図１に示すような構成のプリンタ装置においては、複数のタスクの実行にあたって、ＲＡＭ５を共有して使用する。従ってＲＡＭ５には前述のビットマップデータの他にも別タスクのデータが記憶される。
【００１９】
その際、圧縮データは、メモリコントロールブロック（以下、「ＭＣＢ」と記す）によって管理される単位領域に、順次格納されていく。そして、圧縮データの格納に当たっては、ＣＰＵ２によって実現されるメモリ管理部１６（図２参照）により管理されながら、所定のメモリ領域からあふれた圧縮データにより、圧縮データ記憶領域以外の領域が壊されることがあっても、壊された部分を確実に回復できるようにする。
【００２０】
図２は、メモリ管理部のブロック図である。ＲＡＭ５，圧縮・復号器６は、図１のＲＡＭ５，圧縮・復号器６に対応している。ビットマップデータ生成部１５は、処理の対象とする画像データを小さなバンド単位に複数に分割し、順次、１バンド分の画像データをビットマップに展開してＲＡＭ５の所定の展開領域に格納する。その際、格納するメモリ領域は、メモリ管理部１６を通じて確保される。
【００２１】
メモリ管理部１６は、ＭＣＢ生成部１７とＭＣＢ管理部１８と境界判定部１９を具えていて、ＭＣＢ生成部１７は、ＲＡＭ５に格納すべきデータが発生したら、空き領域を確保するとともに、その領域を管理するためのＭＣＢを作成する。ＭＣＢは、図４に示すように、ＭＣＢを識別するためのプリアンブル、確保した領域のサイズ、その領域が使用しているか否か等を示す属性情報、そして前後のＭＣＢポインタからなっている。
【００２２】
ＭＣＢ管理部１８は、ＭＣＢ生成部１７で生成したＭＣＢを、その領域の先頭部分に配置するとともに、それに続く領域のＭＣＢと該当領域に格納されているデータをＣＰＵキャッシュ制御部２０を通して、ＣＰＵ２のＣＰＵキャッシュ３に書き込む。境界判定部１９は、後述するように、格納領域に圧縮データを格納した際に、後段のメモリ領域のＭＣＢの状態を調べて、後段のメモリ領域のデータが破壊されたか否かを判定する。データ圧縮処理部２１は、ビットマップデータ生成部１５からビットマップデータの生成完了通知を受けて、圧縮・復号器６にビットマップデータの圧縮処理を実行させる。
【００２３】
次に、図３のフローチャートを参照しながら、圧縮データ格納の処理手順を説明する。まず、ＭＣＢ生成部１７により、ＲＡＭ５の中で、１バンド分の画像データを最大の圧縮率で換算したサイズの空き領域を圧縮データ格納領域として確保してその領域のＭＣＢを生成し、生成したＭＣＢを、上記領域の先頭部分に配置する（ステップＳ１）。そして、上記領域に続く領域のＭＣＢと該当領域に格納されているデータをＣＰＵキャッシュ制御部２０を通して、ＣＰＵ２のＣＰＵキャッシュ３に読み込み、それらのデータをＣＰＵキャッシュ３内に保持し続けるようにロックする制御を行う（ステップＳ２）。その時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を図５に示す。
【００２４】
図５は、メモリ内データ領域のＭＣＢ＃２の領域に別タスクデータが記憶され、そのデータが、ＣＰＵキャッシュ３のキャッシュ内データ領域のＭＣＢ＃２の領域にコピーされた状態を示している。
【００２５】
次に、ビットマップデータ生成部１５は、１バンド分の画像データをビットマップ化してＲＡＭ５の所定の展開領域に格納し（ステップ３Ｓ）、ビットマップデータの格納が完了したら、データ圧縮処理部２１に完了したことを通知する（ステップＳ４）。
【００２６】
完了通知を受けて、データ圧縮処理部２１は、圧縮・復号器６により、ビットマップデータの圧縮処理を実行させ、その結果生成された圧縮データを、ステップＳ１で確保した圧縮データ格納領域に格納する（ステップＳ５）。圧縮処理が完了したら、データ圧縮処理部２１は、メモリ管理部１６に圧縮完了を通知し、メモリ管理部１６は、境界判定部１９により、圧縮データを格納した領域と、次の領域との境界にあるＭＣＢのプリアンブルの状態を調べ、初期状態から破壊された状態になっているか否かを判定する（ステップＳ６）。その結果、破壊されていなかったら処理をステップＳ１に戻して次のバンドの処理を行い、破壊されていたら次のステップＳ８に移行する（ステップＳ７）。圧縮データによりメモリ領域が破壊された時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を図６に示す。
【００２７】
図６は、メモリ内データ領域のＭＣＢ＃２の領域に別タスクデータが記憶され、ＭＣＢ＃２のＭＣＢデータが破壊されている様子を示している。
【００２８】
ステップＳ７でＭＣＢが破壊されていたら、ＣＰＵキャッシュ３に保持させていたＭＣＢを破壊されたＭＣＢに代えて書き込む（ステップＳ８）。さらに、それに続くメモリ領域に、ＣＰＵキャッシュ３に保持させていたデータを書き込む（ステップＳ９）。その結果、圧縮データ格納領域からあふれた圧縮データにより破壊された、ＭＣＢ及びデータが完全に復元されたことになる。
【００２９】
そして、そのバンドの圧縮データは、圧縮効率が低くすぎて圧縮データのサイズが大きくなって圧縮データ格納領域に入りきれないため、ステップＳ３で、ＲＡＭ５の所定の展開領域に格納したビットマップデータを圧縮せずに圧縮データ格納領域に格納する（ステップＳ１０）。破壊された領域を回復した時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を図７に示す。
【００３０】
図７は、メモリ内データ領域のＭＣＢ＃２の領域に別タスクデータが記憶され、ＭＣＢ＃２のＭＣＢデータが回復（復元）された状態を示している。
【００３１】
その後、画像データの全バンドの圧縮データ格納処理が完了したか否かを判定し、完了していなかったら、ステップＳ１に戻って次のバンドの処理を行い、全バンドの処理が完了したら処理を終了させる（ステップＳ１１）。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施例にかかるプリンタ制御部の概略構成図である。
【図２】メモリ管理部のブロック図である。
【図３】メモリ管理部の処理手順を示すフローチャートである。
【図４】ＭＣＢの構成図である。
【図５】ビットマップデータ生成開始前のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を示す模式図である。
【図６】圧縮データによりメモリ領域が破壊された時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を示す模式図である。
【図７】破壊された領域を回復した時のキャッシュ内データ領域及びメモリの圧縮データ格納領域の状態を示す模式図である。
【符号の説明】
【００３３】
１…プリンタ制御部
２…ＣＰＵ
３…ＣＰＵキャッシュ（キャッシュ）
４…ＲＯＭ
５…ＲＡＭ
６…圧縮・復号器
７〜１０…インターフェース
１１…ホスト
１２…印刷エンジン
１３…外部記憶装置
１４…操作パネル
１５…ビットマップデータ（ＢＭＰ）生成部
１６…メモリ管理部
１７…ＭＣＢ生成部
１８…ＭＣＢ管理部
１９…境界判定部
２０…ＣＰＵキャッシュ制御部
２１…データ圧縮処理部
【図１】
2006150704.tif 000003
【図２】
2006150704.tif 000004
【図３】
2006150704.tif 000005
【図４】
2006150704.tif 000006
【図５】
2006150704.tif 000007
【図６】
2006150704.tif 000008
【図７】
2006150704.tif 000009