(57)【要約】【課題】  画像形成装置において、トナー残量を適切に表示する。【解決手段】  受信した印刷データが所定の印刷条件を満たさない場合、所定のトナー残量値を印刷データのトナー残量値とする。【選択図】  図１０
2015049324.tif 000002
【特許請求の範囲】
【請求項１】
印刷データのドット数をカウント可能なドットカウント手段と、
受信した印刷データが印刷条件を満たした場合、前記ドットカウント手段で取得したドット数から前記印刷データのトナー残量値を算出する第１のトナー残量値算出手段と、
受信した印刷データが前記印刷条件を満たさない場合、所定のトナー残量値を前記印刷データのトナー残量値とする第２のトナー残量値算出手段とを備えることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
画像形成装置は、トナー等の記録材を用いて、シートに画像形成を行う。一般的に、記録材は、カートリッジ等の収容部に収容されている。そして、画像形成装置の中には、収容部に残っている記録材の残量を検出して、その値をＵＩ等の表示部に表示するものがある。
【０００３】
従来、センサーを設け、それによって検知された値をそのまま記録材の残量として表示していた。センサーは、コスト面等を考慮して、残量がある程度低くなるまで正確な検知精度が発揮できないものが採用される場合が多い。その場合、センサーでは、例えば１００％、２０％、０％というように、記録材の残量の検知が離散的に行われる。その結果、表示部においても、例えば１００％、２０％、０％というように、記録材の残量の表示が離散的に行われることになる。
【０００４】
これに対して、残量の検知を離散的に行うセンサーを採用しつつも、表示部においては記録材の残量を連続的に表示する技術が存在する（特許文献１）。例えば、画像形成を行った際に、ラスタデータのドットカウント値に基づいて、トナー残量の予測値を算出し、その値をトナー残量のカレント値として表示する。そして、センサーからトナー残量のセンサー値を取得した場合に、そのセンサー値でカレント値を更新する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３４３６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ドットカウント機能のように印刷に必須の機能でないものは、コストダウンのため、代表的なデータパスのみ対応して、それ以外の特定のデータパスに対応しないケースがある。そのようなハードウェア構成を持つ画像形成装置では、ドットカウント機能の対応していないデータパスを通る印刷データでは、ドットカウント機能を用いたトナー残量値を算出できない。
【０００７】
このような画像形成装置では、ドットカウント機構のないデータパスを通る印刷データはトナー残量値の算出を諦めるか、データパスによらずドットカウント機構を用いず、ページ毎に固定のトナー残量値を算出するしかなかった。その結果、ドットカウントを使用したトナー残量値が物理的なトナー残量値の推移と大きく乖離した推移になってしまうことがあった。
【０００８】
本発明は、画像形成装置において、トナー残量を適切に表示することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る画像形成装置は、印刷データのドット数をカウント可能なドットカウント手段と、受信した印刷データが印刷条件を満たした場合、前記ドットカウント手段で取得したドット数から前記印刷データのトナー残量値を算出する第１のトナー残量値算出手段と、受信した印刷データが前記印刷条件を満たさない場合、所定のトナー残量値を前記印刷データのトナー残量値とする第２のトナー残量値算出手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明は、画像形成装置において、トナー残量を適切に表示することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明における画像形成装置１０２のシステム構成の概略を示す図である。
【図２】本発明におけるコントローラ３０２の構成例を示すブロック図である。
【図３】本発明におけるプリントエンジン３０３の構成例を示すブロック図である。
【図４】本発明におけるＤＭＡＣ４０７の構成例を示すブロック図である。
【図５】本発明におけるトナーの残量検知の制御を示すフローチャート（前半）である。
【図６】本発明におけるトナーの残量検知の制御を示すフローチャート（後半）である。
【図７】本発明の実施例１におけるトナー残量更新処理を示すフローチャートである。
【図８】本発明の実施例１における受信した印刷ジョブのヘッダ解析処理手順を示すフローチャートである。
【図９】本発明の実施例１における受信した印刷ジョブのデータ解析処理手順を示すフローチャートである。
【図１０】本発明の実施例１における受信した印刷ジョブのデータ処理手順を示すフローチャートである。
【図１１】本発明における印刷ジョブのデータ構成例及びコントローラ３０２に保持しているジョブの設定値及びページの設定値の構成例を示すブロック図である。
【図１２】トナー残量算出値の推移を説明する図である。
【図１３】本発明の実施例１におけるトナー残量算出の効果を説明する図である。
【図１４】本発明の実施例２におけるトナー残量更新処理を示すフローチャートである。
【図１５】本発明の実施例２における受信した印刷ジョブのデータ処理手順を示すフローチャートである。
【図１６】本発明の実施例２におけるトナー残量算出の効果を説明する図である。
【図１７】本発明の実施例３における保存ジョブの処理手順を示すフローチャートである。
【図１８】本発明の実施例３における受信した印刷データの保存ジョブのデータ解析処理手順を示すフローチャートである。
【図１９】本発明の実施例３における受信した印刷データの保存ジョブのデータ処理手順を示すフローチャートである。
【図２０】本発明の実施例３における保存ジョブの印刷実行時のトナー残量更新処理手順を示すフローチャートである。
【図２１】本発明の実施例３における保存ジョブの印刷実行時のデータ処理手順を示すフローチャートである。
【図２２】本発明の実施例３におけるトナー残量算出の効果を説明する図である。
【図２３】本発明の実施例４におけるトナー残量更新処理を示すフローチャートである。
【図２４】本発明の実施例４における受信した印刷ジョブのデータ解析処理手順を示すフローチャートである。
【図２５】本発明の実施例４におけるトナー残量算出の効果を説明する図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１３】
〔第１の実施形態〕
（プリンタのシステム構成の説明）
図１は、画像形成装置の構成を示すブロック図である。
【００１４】
データ処理装置１０１（例えばＰＣ）は、画像データを生成し、当該画像データを画像形成装置１０２に送信する。
【００１５】
画像形成装置１０２（例えばレーザープリンタ）は、データ処理装置１０１から画像データを受信し、当該画像データに基づいてシートに画像形成を行う。なお、画像形成装置１０２は、スキャナ機能やＦＡＸ機能等を有する複合機であってもよい。
【００１６】
ＵＩ３０１は、ユーザインターフェースであり、ユーザに様々な情報を伝える表示部や、ユーザから様々な操作を受け付ける操作部を有する。表示部には、後述するトナー残量のカレント値が表示される。なお、トナー残量のカレント値は、外部Ｉ／Ｆを介してデータ処理装置１０１等の外部装置に送信し、データ処理装置１０１等の外部装置が有する表示部に表示してもよい。
【００１７】
コントローラ３０２は、ＰＤＬデータに基づいてビットマップデータを生成し、当該ビットマップデータをプリントエンジン３０３に送信する。コントローラ３０２の詳細は、図２を用いて後述する。
【００１８】
プリントエンジン３０３は、コントローラ３０２から受信したビットマップデータに基づいて、電子写真方式でトナーを用いてシートに画像形成を行う。なお、画像形成の方式は、電子写真方式以外の、例えばインクジェット方式等でもよい。この場合、電子写真方式の記録材はトナーであるが、インクジェット方式の記録材はインクである。
【００１９】
なお、コントローラ３０２とプリントエンジン３０３は、別体としているが、一体であってもよい。
【００２０】
（コントローラのシステム構成の説明）
図２は、コントローラの構成を示すブロック図である。
【００２１】
ＣＰＵ４０１は、ＲＯＭ４０２に格納されたプログラムをＲＡＭ４０３に展開し、当該プログラムを実行して画像形成装置１０２の制御を行う。また、ＣＰＵ４０１は、後述するように、ドットカウント部６０４でカウントされるドットカウントから換算されるトナー消費量の予測値や、プリントエンジン３０３から通知されるトナー残量のセンサー値に基づいて、トナー残量を算出する。そして、ＣＰＵ４０１は、算出したトナー残量を、パネルＩ／Ｆ４０５を介してＵＩ３０１に表示したり、外部Ｉ／Ｆ４０４を介してデータ処理装置１０１に通知したりする。
【００２２】
ＲＯＭ４０２は、ＣＰＵ４０１が実行するプログラム等を記憶する。
【００２３】
ＲＡＭ４０３は、ＲＯＭ４０２から展開されたプログラム等を記憶する。また、ＲＡＭ４０３は、ＰＤＬデータ、ＰＤＬデータを解釈して生成される中間データ、中間データをレンダリングして生成されるビットマップデータ、その他の処理に必要な一時的な各種処理ステータスやログ情報等も記憶する。
【００２４】
外部Ｉ／Ｆ４０４は、データ処理装置１０１とコントローラ３０２とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継する。
【００２５】
パネルＩ／Ｆ４０５は、ＵＩ３０１とコントローラ３０２とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継する。
【００２６】
エンジンＩ／Ｆ４０６は、プリントエンジン３０３とコントローラ３０２とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継する。
【００２７】
ＤＭＡＣ４０７は、ＣＰＵ４０１から命令を受け、ＲＡＭ４０３に対してデータアクセスすなわちデータの書き込みや読み出しを行う。
【００２８】
レンダリング部４０８は、中間データをビットマップデータに展開する。
【００２９】
ＥＥＰＲＯＭ４１０は、画像形成装置１０２の設定情報等を記憶する。
【００３０】
バス４１１は、コントローラ３０２内の各構成を相互に接続する。
【００３１】
（プリンタエンジンのシステム構成の説明）
図３は、プリントエンジンの構成を示すブロック図である。
【００３２】
ＣＰＵ５０１は、ＲＯＭ５０２に格納されたプログラムをＲＡＭ５０３に展開し、当該プログラムを実行してプリントエンジン３０３の制御を行う。
【００３３】
ＲＯＭ５０２は、ＣＰＵ５０１が実行するプログラム等を記憶する。
【００３４】
ＲＡＭ５０３は、ＲＯＭ５０２から展開されたプログラム等を記憶する。
【００３５】
トナー残量センサー５０４は、カートリッジ５０９に含まれるトナー残量を計測する。センサーにおけるトナー残量の検知方式としては、例えば、透磁率検知式、マグネット式、圧電振動式、透過光式等が存在する。センサーは、例えば、トナー残量が２０％、０％等の所定値に達した場合に、その値をセンサー値として検知する。つまり、トナー残量が１００％〜２１％であるときは１００％、トナー残量が２０％〜１％であるときは２０％、トナー残量が０％であるときは０％として検知する。なお、センサーは、カートリッジ５０９の中に備えられることとしてもよい。
【００３６】
駆動制御部５０５は、画像形成部５０８が画像形成を行う際に必要な各種モーターを駆動させる。
【００３７】
ステータス変化検知部５０６は、画像形成装置におけるジャムやカバーオープン等のステータス変化を検知する。また、ステータス変化検知部５０６は、カートリッジ５０９の交換も検知する。なお、テータス変化の検知は、ＣＰＵ５０１が行うこととしてもよい。
【００３８】
コントローラＩ／Ｆ５０７は、コントローラ３０２とプリントエンジン３０３とを相互に接続し、双方間のデータ通信すなわちデータの送信や受信を中継する。
【００３９】
画像形成部５０８は、コントローラ３０２から受信したビットマップデータに基づいて、電子写真方式でトナーを用いてシートに画像形成を行う。
【００４０】
カートリッジ５０９は、トナーを収容する収容部として、画像形成装置１０２に装着可能な所謂プロセスカートリッジであり、画像形成部５０８が画像形成を行う際に使用するトナー等を格納する。また、カートリッジ５０９は、不揮発性の記憶媒体を有し、その中にはカートリッジ情報が記憶される。カートリッジ情報には、例えば、カートリッジが新品か否かを示す情報、カートリッジの色を示す色情報、カートリッジの現在のトナー残量を示すトナー残量情報等が含まれる。なお、カートリッジ５０９は、バス５１０には接続されているが、専用線を介してＣＰＵ５０１と接続されることとしてもよい。
【００４１】
バス５１０は、プリントエンジン３０３内の各構成を相互に接続する。
【００４２】
図４は、本発明におけるＤＭＡＣ４０７の構成例を示すブロック図である。
ＤＭＡ部６０１は、信号線４２０に接続されているハードウェアから、データを入力して、予めＤＭＡ部に設定された値に基づき、スムージング部６０２、ＰＷＭ部６０３へデータを出力する。
【００４３】
スムージング部６０２は、入力データに対して、スムージング処理を行い、ドットカウント部６０４、ＰＷＭ部６０３へデータを出力する。
【００４４】
ＰＷＭ部６０３は、入力されたデータをＰＷＭ形式に変換して、信号線４２０、エンジンＩ／Ｆ４０６、プリントエンジン３０３へデータを出力する。
【００４５】
ドットカウント部６０４は、展開されたビットマップデータに含まれるドットのうち、画像形成を行う際にトナーを消費するドットの数をカウントする。具体的には、白以外の色のドット数がカウントされる。例えば、モノクロ印刷の場合は、Ｋ（黒）に対応するドット数である。また、カラー印刷の場合は、Ｙ（イエロー）・Ｍ（マゼンダ）・Ｃ（シアン）・Ｋ（黒）の何れかに対応するドットの数である。なお、ドット数のカウントは、ＣＰＵ４０１やレンダリング部４０８が行ってもよい。
【００４６】
（トナーの残量検知の制御処理の説明）
図５及び図６は、トナーの残量検知の制御を示すフローチャートである。
【００４７】
左側のフローチャートに示す制御は、コントローラ３０２において、ＣＰＵ４０１がＲＯＭ４０２に格納された制御プログラムをＲＡＭ４０３に展開して実行することにより実現される。また、右側のフローチャートに示す制御は、プリントエンジン３０３において、ＣＰＵ５０１がＲＯＭ５０２に格納された制御プログラムをＲＡＭ５０３に展開して実行することにより実現される。
【００４８】
まず、ＣＰＵ５０１は、カートリッジ５０９が交換されたか否か判断する（Ｓ２０１）。カートリッジ５０９が交換されたことは、ステータス変化検知部５０６がカートリッジ５０９の交換を検知しＣＰＵ５０１に通知することによって認識される。カートリッジ５０９の交換は、部品の着脱に応じてハード的にオン／オフ状態が変化するボタンやスイッチやスイッチによって検知することとするが、他の方法で検知してもよい。Ｓ２０１でＹＥＳの場合、Ｓ２０２に進む。Ｓ２０１でＮＯの場合、待機する。
【００４９】
次に、ＣＰＵ５０１は、カートリッジ５０９が交換された旨を示すカートリッジ交換通知を、コントローラＩ／Ｆ５０７を介してコントローラ３０２へ送信する（Ｓ２０２）。
【００５０】
次に、ＣＰＵ４０１は、カートリッジ交換通知を、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３から受信したか否か判断する（Ｓ１０１）。Ｓ１０１でＹＥＳの場合、Ｓ１０２に進む。Ｓ１０１でＮＯの場合、待機する。
【００５１】
次に、ＣＰＵ４０１は、カートリッジ５０９のカートリッジ情報を要求するカートリッジ情報要求を、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３へ送信する（Ｓ１０２）。
【００５２】
次に、ＣＰＵ５０１は、カートリッジ情報要求を、コントローラＩ／Ｆ５０７を介してコントローラ３０２から受信したか否か判断する（Ｓ２０３）。Ｓ２０３でＹＥＳの場合、Ｓ２０４に進む。Ｓ２０３でＮＯの場合、待機する。
【００５３】
次に、ＣＰＵ５０１は、カートリッジ５０９のカートリッジ情報を、コントローラＩ／Ｆ５０７を介してコントローラ３０２へ送信する（Ｓ２０４）。
【００５４】
次に、ＣＰＵ４０１は、カートリッジ情報を、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３から受信したか否か判断する（Ｓ１０３）。Ｓ１０３でＹＥＳの場合、Ｓ１０４に進む。Ｓ１０３でＮＯの場合、待機する。
【００５５】
次に、ＣＰＵ４０１は、カートリッジ情報に基づいて、トナー残量のカレント値の初期化を行う（Ｓ１０４）。ここで、トナー残量のカレント値とは、コントローラ３０２がカートリッジ５０９のトナー残量として認識している値であり、ＵＩ３０１を介してユーザに表示される値である。トナー残量のカレント値の初期化は、具体的には、カートリッジ情報を参照し、カートリッジが新品であることが分かれば、トナー残量のカレント値を１００％に設定する。また、カートリッジが新品であることが分からなければ、トナー残量のカレント値を前述したカートリッジ情報に含まれるトナー残量情報に対応する値に設定する。
【００５６】
次に、ＣＰＵ４０１は、画像形成を実行すべきジョブを、ホストＩ／Ｆ４０４を介してデータ処理装置１０１から入力したか否か判断する（Ｓ１０５）。ここで、ジョブには、ＰＤＬデータが含まれている。Ｓ１０５でＹＥＳの場合、Ｓ１０６に進む。Ｓ１０５でＮＯの場合、待機する。
【００５７】
次に、ＣＰＵ４０１は、印刷ジョブに基づいて、画像形成に必要な画像処理を実行する（Ｓ１０６）。ここで、画像処理の中には、レンダリング部４０８を制御して、ＰＤＬデータを展開しラスタデータを生成する処理が含まれる。
【００５８】
次に、ＣＰＵ４０１は、画像処理によって生成されたラスタデータを、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３へ送信する（Ｓ１０７）。
【００５９】
次に、ＣＰＵ４０１は、ドットカウント部６０４から、ラスタデータの生成時に計測されたドットカウント値を取得する（Ｓ１０８）。なお、ドットカウント値は、ページ単位で取得してもよいし、ジョブ単位で取得してもよい。
【００６０】
次に、ＣＰＵ４０１は、ドットカウント値に基づいて、画像形成を実行した後におけるトナー残量の予測値を算出する（Ｓ１０９）。具体的には、まず、（今回のジョブ又はページの印刷実行時におけるドットカウント値〔ｄｏｔ〕）×（ドット毎のトナー消費量〔ｇ／ｄｏｔ〕）＝（今回のジョブ実行によるトナー消費量〔ｇ〕）という計算を行う。次に、（現在のトナー残量〔ｇ〕）―（今回のジョブ実行によるトナー消費量〔ｇ〕）＝（新たなトナー残量〔ｇ〕）という計算を行う。次に、（新たなトナー残量〔ｇ〕）／（カートリッジの未使用状態におけるトナー残量〔ｇ〕）＝（新たなトナー残量の予測値〔％〕）という計算を行う。
【００６１】
次に、ＣＰＵ４０１は、算出した予測値で、トナー残量のカレント値を更新する（Ｓ１１０）。
【００６２】
一方、ＣＰＵ５０１は、ラスタデータを、コントローラＩ／Ｆ５０７を介してコントローラ３０２から受信したか否か判断する（Ｓ２０５）。Ｓ２０５でＹＥＳの場合、Ｓ２０６に進む。Ｓ２０５でＮＯの場合、待機する。
【００６３】
次に、ＣＰＵ５０１は、画像形成部５０８を制御することにより、ラスタデータに基づいて画像形成を実行する（Ｓ２０６）。
【００６４】
次に、ＣＰＵ５０１は、トナー残量センサー５０４から、トナー残量のセンサー値を取得する（Ｓ２０７）。なお、センサー値取得のタイミングは、ページ単位で画像形成が完了したタイミングでもよいし、ジョブ単位で画像形成が完了したタイミングでもよい。また、センサー値取得のタイミングは、所定の時間が経過する度としてもよい。
【００６５】
次に、ＣＰＵ５０１は、今回取得したセンサー値が、前回取得したセンサー値から変化したか否か判断する（Ｓ２０８）。Ｓ２０８でＹＥＳの場合、Ｓ２０９に進む。Ｓ２０８でＮＯの場合、Ｓ２０５に戻る。
【００６６】
次に、ＣＰＵ５０１は、センサー値が変化した旨を示すセンサー値変化通知を、コントローラＩ／Ｆ５０７を介してコントローラ３０２へ送信する（Ｓ２０９）。
【００６７】
次に、ＣＰＵ４０１は、センサー値変化通知を、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３から受信したか否か判断する（Ｓ１１１）。Ｓ１１１でＹＥＳの場合、Ｓ１１２に進む。Ｓ１１１でＮＯの場合、Ｓ１０５に戻る。
【００６８】
次に、ＣＰＵ４０１は、センサー値を要求するセンサー値要求を、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３へ送信する（Ｓ１１２）。
【００６９】
次に、ＣＰＵ５０１は、センサー値要求を、コントローラＩ／Ｆ５０７を介してコントローラ３０２から受信したか否か判断する（Ｓ２１０）。Ｓ２１０でＹＥＳの場合、Ｓ２１１に進む。Ｓ２１０でＮＯの場合、待機する。
【００７０】
次に、ＣＰＵ５０１は、センサー値を、コントローラＩ／Ｆ５０７を介してコントローラ３０２へ送信する（Ｓ２１１）。
【００７１】
次に、ＣＰＵ４０１は、センサー値を、エンジンＩ／Ｆ４０６を介してプリントエンジン３０３から受信したか否か判断する（Ｓ１１３）。Ｓ１１３でＹＥＳの場合、Ｓ１１４に進む。Ｓ１１３でＮＯの場合、待機する。
【００７２】
次に、ＣＰＵ４０１は、センサー値でトナー残量のカレント値を更新する（Ｓ１１４）。
【００７３】
次に、ＣＰＵ４０１は、トナー残量のカレント値を参照して、トナー残量がゼロになったか否か判断する（Ｓ１１５）。Ｓ１１５でＹＥＳの場合、処理を終了する。Ｓ１１５でＮＯの場合、Ｓ１０５に戻る。
【００７４】
一方、ＣＰＵ５０１は、トナー残量のセンサー値を参照して、トナー残量がゼロになったか否か判断する（Ｓ２１２）。Ｓ２１２でＹＥＳの場合、処理を終了する。Ｓ２１２でＮＯの場合、Ｓ２０５に戻る。
【００７５】
（トナー残量更新処理の説明）
図７は、本発明の実施例１におけるトナー残量更新処理を示すフローチャートである。
【００７６】
データ処理装置から送信された印刷ジョブデータをホストＩ／Ｆ４０２で受信したら、ＣＰＵ４０１が、印刷ジョブデータをＲＡＭ４０３に保存する（Ｓ３０１）。
【００７７】
印刷ジョブデータをＲＡＭ４０３に保存した後、ＣＰＵ４０１が、印刷ジョブデータのヘッダ部の解析を行う（Ｓ３０２）。
【００７８】
印刷ジョブデータは、ヘッダ部７０１とデータ部７０２で構成されている（図１１（ａ））。ヘッダ部７０１には、印刷ジョブの解像度やスムージングの設定値のように印刷ジョブ全体に関わる設定値７０３が格納されている。データ部７０２には、ＰＤＬ言語で記述された画像データが格納されている。
【００７９】
印刷ジョブデータのヘッダ部７０１の解析の後、ＣＰＵ４０１が、印刷ジョブデータのデータ部７０２の解析を行う（Ｓ３０３）。
【００８０】
印刷ジョブデータのデータ部７０２の解析の後、ＣＰＵ４０１が、ヘッダ部７０１の解析結果とデータ部７０２の解析結果に基づいて、印刷ジョブデータのデータ処理を行う（Ｓ３０４）。
【００８１】
図８は、本発明の実施例１における受信した印刷ジョブのヘッダ解析処理手順を示すフローチャートである。
【００８２】
ＣＰＵ４０１が、ＲＡＭ４０３に保存した印刷ジョブデータに、ヘッダ部７０１がついているか否かチェックを行う（Ｓ４０１）。
【００８３】
ＲＡＭ４０３に保存した印刷ジョブデータにヘッダ部７０１が付いていれば、ＣＰＵ４０１が、ヘッダ部７０１にある解像度、スムージングの設定値を含む設定値７０３を取得する（Ｓ４０２）。
【００８４】
ＣＰＵ４０１が、ヘッダ部７０１から取得した解像度、スムージングの設定値を含む設定値７０３をＲＡＭ４０３に保存する（Ｓ４０３）。
【００８５】
図１１（ｂ）のように、前述の設定値７０３は印刷ジョブを特定するためのジョブＩＤ７１２と紐づけてＲＡＭ４０３に保存されている。
【００８６】
図９は、本発明の実施例１における受信した印刷ジョブのデータ解析処理手順を示すフローチャートである。
【００８７】
印刷ジョブデータのデータ部７０２に複数ページ含まれる場合があるため、データ解析開始時は、ページＩＤ＝０として、ＣＰＵ４０１が以下の処理を行う（Ｓ５０１）。
【００８８】
ＥＥＰＲＯＭ４１０に保存されている画像形成装置１０２の解像度及びスムージングを含む設定値を、印刷ジョブデータのカレントページの設定値として、ＣＰＵ４０１がＲＡＭ４０３に保存する（Ｓ５０２）。
【００８９】
図１１（ｃ）のように、前述のカレントページの設定値７２１は印刷ジョブを特定するためのジョブＩＤ７２２とページＩＤ７２３を紐づけてＲＡＭ４０３に保存されている。
【００９０】
ＲＡＭ４０３に保存しているジョブの設定値７１１を参照する（Ｓ５０３）。
【００９１】
ＲＡＭ４０３中にデータ解析中のジョブＩＤと一致するジョブの設定値７１１がＲＡＭ４０３に保存してあれば、その設定値７１１を取得する（Ｓ５０４、Ｓ５０５）。
【００９２】
取得した設定値をＲＡＭ４０３にある印刷ジョブデータのカレントページの設定値７２１にＣＰＵ４０１が上書き保存する（Ｓ５０６）。
【００９３】
ＣＰＵ４０１は、ＲＡＭ４０３に保存してある印刷ジョブデータのデータ部７０２について１ページ分ＰＤＬ解析を行う（Ｓ５０７）。
【００９４】
解析の結果、カレントページの設定値が含まれていれば、その設定値を、ＲＡＭ４０３にある印刷ジョブデータのカレントページの設定値７２１にＣＰＵ４０１が上書き保存する（Ｓ５０８、５４０９、５４１０）。
【００９５】
ＲＡＭ４０３に保存されている中間データから、レンダリング部４０８は、カレントページの印刷画像データを生成して、ＲＡＭ４０３に保存する（Ｓ５１１）。
ＲＡＭ４０３に印刷ジョブデータのデータ部７０２で未解析の部分があれば、ステップＳ５１３へ進む。ＲＡＭ４０３に印刷ジョブデータのデータ部７０２の解析が残っていなければ、ＣＰＵ４０１が印刷ジョブデータの解析を終了する（Ｓ５１２）。
【００９６】
ステップＳ５１１では、ＣＰＵ４０１がカレントページを１ページ加算した上で、Ｓ５０３のフローへ進む（Ｓ５１１）。
【００９７】
図１０は、本発明の実施例１における受信した印刷ジョブのデータ処理手順を示すフローチャートである。
【００９８】
印刷ジョブデータのデータ部７０２に複数ページ含まれる場合があるため、データ処理開始時は、ページＩＤ＝０として、ＣＰＵ４０１が以下の処理を行う（Ｓ６０１）。
【００９９】
ＣＰＵ４０１が、ドットカウント部６０４の機能を有効にする。次に、ＲＡＭ４０３に保存しているカレントページの設定情報に従い、ＤＭＡ部６０１、スムージング部６０２、ＰＷＭ部６０３の設定を行う。そして、ＣＰＵ４０１が、ＤＭＡ部６０１に対して、ＲＡＭ４０３に保存した印刷画像データの出力実行を行う（Ｓ６０２）。
【０１００】
解像度が１２００ＤＰＩか、もしくは、スムージングがＯＦＦに設定されていた場合、印刷画像データは、ＤＭＡＣ４０７内のＤＭＡ部６０１、スムージング部６０２を経由して、ドットカウント部６０４、ＰＷＭ部６０３へ出力される。印刷画像データがドットカウント部６０４へ入力されると、ドットカウント部６０４は印刷画像データのドット数をカウントする。印刷画像データがＰＷＭ部６０３へ入力されると、ＰＷＭ部６０３は、印刷画像データをＰＷＭ形式に変換して、エンジンＩ／Ｆ４０６を経由して、プリントエンジン３０３へ出力する。
【０１０１】
解像度が１２００ＤＰＩか、もしくは、スムージングがＯＦＦに設定されていた場合、印刷画像データは、ＤＭＡＣ４０７内のＤＭＡ部６０１を経由して、ＰＷＭ部６０３へ出力される。印刷画像データがドットカウント部６０４へ入力されないので、ドットカウント部６０４は印刷画像データのドット数をカウントしない。印刷画像データがＰＷＭ部６０３へ入力されると、ＰＷＭ部６０３は、印刷画像データをＰＷＭ形式に変換して、エンジンＩ／Ｆ４０６を経由して、プリントエンジン３０３へ出力する。
【０１０２】
カレントページの印刷画像出力後、ＣＰＵ４０１が、ＲＡＭ４０３に保存しているカレントページの設定値７２１を参照する（Ｓ６０３）。
【０１０３】
参照の結果、解像度が６００ＤＰＩであれば、ステップＳ３０５へ進む。解像度が６００ＤＰＩ以外であればステップＳ３０８へ進む（Ｓ６０４）。
【０１０４】
ステップＳ６０５では、カレントページの設定情報において、スムージングがＯＮであれば、ステップＳ６０６へ進む。スムージングがＯＮ以外であればステップＳ６０８へ進む（Ｓ６０５）。
【０１０５】
ステップＳ６０６では、ＣＰＵ４０１がドットカウント部６０４からカレントページの印刷画像のドット数を取得する（Ｓ６０６）。
【０１０６】
そして、ＣＰＵ４０１が、取得したドット数と予め保持している係数Ａを用いて演算を行い、カレントページのトナー残量値を算出して、ＲＡＭ４０３に保存する（Ｓ６０７）。
【０１０７】
ステップＳ６０８では、ＣＰＵ４０１が、予め保持している係数Ｂをカレントページのトナー残量値として、ＲＡＭ４０３に保存する（Ｓ６０８）。
【０１０８】
ＲＡＭ４０３に印刷ジョブデータの未出力の印刷画像データがまだ残っていれば、ステップＳ３１０へ進む。ＲＡＭ４０３に印刷ジョブデータの印刷画像データが残っていなければ、ＣＰＵ４０１が印刷ジョブデータのデータ処理を終了する（Ｓ６０９）。
【０１０９】
ステップＳ６１０では、ＣＰＵ４０１がカレントページを１ページ加算した上で、Ｓ６０２のフローへ進む（Ｓ６１０）。
【０１１０】
（トナー残量算出値の基本的な推移の説明）
図１２は、トナー残量の推移を示す図である。
【０１１１】
Ｌ１００は、現実のトナー残量の推移である。ここで、現実のトナー残量とは、実際に存在しているトナー残量の正確な値であり、例えばセンサーが全体域に渡って非常に精度の良いものでない限り、直接的に取得することは非常に困難である。
Ｌ２００は、トナー残量のセンサー値の推移である。
【０１１２】
Ｌ２１０は、トナー残量のセンサー値がとり得る値である。この例において、とり得る値は、１００％、２０％、０％であり、２０％をＬｏｗレベル（カートリッジを交換する目安となるトナー無しに近い状態）の閾値とする。
【０１１３】
Ｌ３００は、トナー残量のカレント値の推移である。
【０１１４】
Ｐ１００〜Ｐ１０２は、物理量のポイントである。各ポイントとカレント値との関係は、以下のとおりである。
【０１１５】
Ｐ１００は、カートリッジが交換された際に、Ｓ１０４で、トナー残量のカレント値を１００％に初期化した時に対応する。
【０１１６】
Ｐ１００〜Ｐ１０１の区間は、トナー残量のセンサー値が１００％から２０％に変化するまでの間に、Ｓ１０５〜Ｓ１１１のループを繰り返して、トナー残量の予測値を算出しトナー残量のカレント値を更新し続けている区間に対応する。
【０１１７】
Ｐ１０１は、トナー残量のカレント値が急に変化する時であり、トナー残量のセンサー値が１００％から２０％に変化した際に、Ｓ１１４で、トナー残量のセンサー値によりトナー残量のカレント値を２０％に更新した時に対応する。
【０１１８】
Ｐ１０１〜Ｐ１０２の区間は、トナー残量のセンサー値が２０％から０％に変化するまでの間に、Ｓ１０５〜Ｓ１１１のループを繰り返して、トナー残量の予測値を算出しトナー残量のカレント値を更新し続けている区間に対応する。
【０１１９】
Ｐ１０２は、トナー残量のカレント値が急に変化する時であり、トナー残量のセンサー値が２０％から０％に変化した際に、Ｓ１１４で、トナー残量のセンサー値によりトナー残量のカレント値を０％に更新した時に対応する。
【０１２０】
（実施例１でのトナー残量算出の効果説明）
図１３は、本発明の実施例１におけるトナー残量算出の効果を説明する図である。
【０１２１】
図１３（ａ）は、従来技術であるドットカウント値が得られた印刷ジョブのみトナー残量値の算出を行った場合の、トナー残量算出値の推移を説明する図である。
【０１２２】
８００は、物理消費と同じ消費量を取得できる仮定した場合の理想的な通知残量値の推移を示す線である。
【０１２３】
８１０は、プリントエンジン３０３から通知され得るセンサー残量値（％）のポイントの例である。この例では、プリントエンジン３０３から通知され得るセンサー残量値は、１００％、２０％、０％であり、２０％をＬｏｗレベルのしきい値とする。
【０１２４】
８２０は、ドットカウント値が得られた印刷ジョブのみトナー残量値の算出を行った場合の通知残量値の推移を示す線である。
【０１２５】
Ｐ８２１からＰ８２２の区間及びＰ８２３からＰ８２４の区間は、ドットカウント値が得られる印刷ジョブが実行されている区間である。この区間では、印刷ジョブ実行時に得られるドットカウント値に基づいて算出されたトナー残量値に従って推移する。
【０１２６】
Ｐ８２２からＰ８２３の区間は、ドットカウント値が得られない印刷ジョブが実行されている区間である。そのため、Ｐ８２２からＰ８２３の区間のトナー残量値の変化がない状態となる。
【０１２７】
Ｐ８２４からＰ８２５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、トナー残量値は急激な推移が発生する。
【０１２８】
８２１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、ドットカウント値が得られた印刷ジョブのみトナー残量値の算出を行った場合の通知残量値と、理想的な通知残量値の差を示している。
【０１２９】
図１３（ｂ）は、従来技術であるドットカウント値が得られた印刷ジョブのみトナー残量値の算出を行った場合の、トナー残量算出値の推移を説明する図である。
【０１３０】
８２０は、ページが加算される毎に一律係数Ｂを計上することによって、トナー残量値の算出を行った場合の通知残量値の推移を示す線である。
【０１３１】
Ｐ８３２からＰ３２４の区間は、印刷ジョブによらず、ページが加算される毎に一律係数Ｂを計上しているため、理想的な通知残量値との乖離が大きくなる。
【０１３２】
Ｐ８３４からＰ８３５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、トナー残量値は急激な推移が発生する。
【０１３３】
８３１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、ページが加算される毎に一律係数Ｂを計上することによって、トナー残量値の算出を行った場合の通知残量値と、理想的な通知残量値の差を示している。
【０１３４】
図１３（ｃ）は、本発明の実施例１におけるトナー残量更新処理を行った場合のトナー残量算出値の推移を説明する図である。
【０１３５】
８４０は、本発明の実施例１におけるトナー残量更新処理を行った場合のトナー残量算出値の推移を示す線である。
【０１３６】
Ｐ８４１からＰ８４２の区間及びＰ８４３からＰ８４４の区間は、ドットカウント値が得られる印刷ジョブが実行されている区間である。この区間では、図１３（ａ）の８２０と同じようにトナー残量値が推移する。
【０１３７】
Ｐ８４２からＰ８４３の区間は、ドットカウント値が得られない印刷ジョブが実行されている区間である。この区間では、ページが加算される毎に一律係数Ｂをトナー残量値として計上しているため、図１３（ｂ）の８３０と同じようにトナー残量値が推移する。
Ｐ８２４からＰ８２５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、トナー残量値は緩やかな推移が発生する。
【０１３８】
８４１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、本発明の実施例１におけるトナー残量更新処理を行った場合の通知残量値と、理想的な通知残量値の差を示している。
【０１３９】
図１３（ａ）８２１、図１３（ｂ）８３１、図１３（ｂ）８４１から、本発明の実施例１におけるトナー残量更新処理を行った場合の通知残量値と理想的な通知残量値の差が、従来技術による通知残量値と理想的な通知残量値の差より小さいことがわかる。
【０１４０】
以上のように、本発明の実施例１におけるトナー残量更新処理を行うことにより、特定のデータパスのみしかドットカウント機能を使用することができないハードウェア構成を持つ画像形成装置でも、精度の高いトナー残量量を算出することができる。
【０１４１】
〔第２の実施形態〕
実施例１において、印刷ジョブのデータ処理において、カレントページの設定情報がドットカウント部６０４にデータが入力できない値だった場合、一律係数Ｂをトナー残量値として算出していた。ところが、ドラフトモード設定時や通常より低い濃度で出力するような設定情報がなされていた場合、カレントページのトナー残量値として一律係数Ｂを用いて算出すると、実際のトナー残量値から乖離してしまう。
【０１４２】
そこで、実施例１の印刷ジョブのデータ処理手順を一部変更することによって、前述の設定情報を加味したトナー残量値の算出を行う。
【０１４３】
（トナー残量更新処理）
図１４は、本発明の実施例２におけるトナー残量更新処理を示すフローチャートである。
【０１４４】
本フローは、図７で説明したフローと同じであり、データ処理の中身が異なる。
【０１４５】
図１５は、本発明の実施例２における受信した印刷ジョブのデータ処理手順を示すフローチャートである。
【０１４６】
印刷ジョブデータのデータ部７０２に複数ページ含まれる場合があるため、データ処理開始時は、ページＩＤ＝０として、ＣＰＵ４０１が以下の処理を行う（Ｓ８０１）。
【０１４７】
ＣＰＵ４０１が、ドットカウント部６０４の機能を有効にする。次に、ＲＡＭ４０３に保存しているカレントページの設定情報に従い、ＤＭＡ部６０１、スムージング部６０２、ＰＷＭ部６０３の設定を行う。そして、ＣＰＵ４０１が、ＤＭＡ部６０１に対して、ＲＡＭ４０３に保存した印刷画像データの出力実行を行う（Ｓ８０２）。
【０１４８】
解像度が１２００ＤＰＩか、もしくは、スムージングがＯＦＦに設定されていた場合、印刷画像データは、ＤＭＡＣ４０７内のＤＭＡ部６０１、スムージング部６０２を経由して、ドットカウント部６０４、ＰＷＭ部６０３へ出力される。印刷画像データがドットカウント部６０４へ入力されると、ドットカウント部６０４は印刷画像データのドット数をカウントする。印刷画像データがＰＷＭ部６０３へ入力されると、ＰＷＭ部６０３は、印刷画像データをＰＷＭ形式に変換して、エンジンＩ／Ｆ４０６を経由して、プリントエンジン３０３へ出力する。
【０１４９】
解像度が１２００ＤＰＩか、もしくは、スムージングがＯＦＦに設定されていた場合、印刷画像データは、ＤＭＡＣ４０７内のＤＭＡ部６０１を経由して、ＰＷＭ部６０３へ出力される。印刷画像データがドットカウント部６０４へ入力されないので、ドットカウント部６０４は印刷画像データのドット数をカウントしない。印刷画像データがＰＷＭ部６０３へ入力されると、ＰＷＭ部６０３は、印刷画像データをＰＷＭ形式に変換して、エンジンＩ／Ｆ４０６を経由して、プリントエンジン３０３へ出力する。
【０１５０】
カレントページの印刷画像出力後、ＣＰＵ４０１が、ＲＡＭ４０３に保存しているカレントページの設定値７２１を参照する（Ｓ８０３）。
【０１５１】
参照の結果、解像度が６００ＤＰＩであれば、ステップＳ５０５へ進む。解像度が６００ＤＰＩ以外であればステップＳ８０８へ進む（Ｓ８０４）。
【０１５２】
ステップＳ８０５では、カレントページの設定情報において、スムージングがＯＮであれば、ステップＳ８０６へ進む。スムージングがＯＮ以外であればステップＳ８０８へ進む（Ｓ８０５）。
【０１５３】
ステップＳ８０６では、ＣＰＵ４０１がドットカウント部６０４からカレントページの印刷画像のドット数を取得する（Ｓ８０６）。
【０１５４】
そして、ＣＰＵ４０１が、取得したドット数と予め保持している係数Ａを用いて演算を行い、カレントページのトナー残量値を算出して、ＲＡＭ４０３に保存する（Ｓ８０７）。
【０１５５】
参照の結果、ドラフトモードがＯＦＦであれば、ステップＳ８０９へ進む。ドラフトモードがＯＦＦ以外であればステップＳ８１１へ進む（Ｓ８０８）。
【０１５６】
ステップＳ８０９では、カレントページの設定値において、トナー濃度レベルが標準値以上であれば、ステップＳ８１０へ進む。トナー濃度レベルが標準値未満であればステップＳ８１１へ進む（Ｓ８１１）。
【０１５７】
ステップＳ８１０では、ＣＰＵ４０１が、予め保持している係数Ｂをカレントページのトナー残量値として、ＲＡＭ４０３に保存する（Ｓ８１０）。
【０１５８】
ステップＳ８１１では、ＣＰＵ４０１が、カレントページのトナー残量値を０として、ＲＡＭ４０３に保存する（Ｓ８１１）。
【０１５９】
ＲＡＭ４０３に印刷ジョブデータの未出力の印刷画像データがまだ残っていれば、ステップＳ４１０へ進む。ＲＡＭ４０３に印刷ジョブデータの印刷画像データが残っていなければ、ＣＰＵ４０１が印刷ジョブデータのデータ処理を終了する（Ｓ８０９）。
【０１６０】
ステップＳ８１０では、ＣＰＵ４０１がカレントページを１ページ加算した上で、Ｓ８０２のフローへ進む（Ｓ８１０）。
【０１６１】
（実施例２でのトナー残量算出の効果説明）
図１６は、本発明の実施例２におけるトナー残量算出の効果を説明する図である。
【０１６２】
図１６（ａ）は、低濃度で印刷される印刷ジョブが実行されたときに、実施例１におけるトナー残量更新処理行った場合の、トナー残量算出値の推移の一例を説明する図である。
【０１６３】
８００は、物理消費と同じ消費量を取得できる仮定した場合の理想的な通知残量値の推移を示す線である。
【０１６４】
８１０は、プリントエンジン３０３から通知され得るセンサー残量値（％）のポイントの例である。この例では、プリントエンジン３０３から通知され得るセンサー残量値は、１００％、２０％、０％であり、２０％をＬｏｗレベルのしきい値とする。
【０１６５】
８５０は、実施例１におけるトナー残量更新処理行った場合の通知残量値の推移を示す線である。
【０１６６】
Ｐ８５１からＰ８５２の区間及びＰ８５３からＰ８５４の区間は、ドットカウント値が得られる印刷ジョブが実行されている区間である。この区間では、印刷ジョブ実行時に得られるドットカウント値に基づいて算出されたトナー残量値に従って推移する。
【０１６７】
Ｐ８５２からＰ８５３の区間は、ドットカウント値が得られない印刷ジョブが実行されている区間である。この区間では、ページが加算される毎に一律係数Ｂをトナー残量値として計上しているため、図１３（ｃ）の８３０と同じようにトナー残量値が推移する。
【０１６８】
ただし、実際には、低濃度で印刷される印刷ジョブが実行されているため、実際には理想的な通知残量値の推移を示す線８００からは乖離してしまう。
【０１６９】
Ｐ８５４からＰ８５５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、理想的な通知残量値との差異が判明して、トナー残量値を極端に緩やかに推移させる必要が発生する。
【０１７０】
８５１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、低濃度で印刷される印刷ジョブが実行されたときに、実施例１におけるトナー残量更新処理行った場合の、トナー残量算出値と、理想的な通知残量値の差を示している。
【０１７１】
図１６（ｂ）は、本発明の実施例２におけるトナー残量更新処理を行った場合のトナー残量算出値の推移を説明する図である。
【０１７２】
８６０は、本発明の実施例１におけるトナー残量更新処理を行った場合のトナー残量算出値の推移を示す線である。
【０１７３】
Ｐ８６１からＰ８６２の区間及びＰ８６３からＰ８６４の区間は、ドットカウント値が得られる印刷ジョブが実行されている区間である。この区間では、図１６（ａ）の８５０と同じようにトナー残量値が推移する。
【０１７４】
Ｐ８６２からＰ８６３の区間は、ドットカウント値が得られない印刷ジョブが実行されている区間である。印刷するページの設定値から低濃度で印刷されるジョブであることが判断できるので、この区間ではトナー残量値に加算を行わない状態となる。
【０１７５】
Ｐ８６４からＰ８６５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、トナー残量値は緩やかな推移が発生する。
【０１７６】
８６１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、本発明の実施例２におけるトナー残量更新処理を行った場合の通知残量値と、理想的な通知残量値の差を示している。
【０１７７】
図１６（ａ）８５１、図１６（ｂ）８６１から、本発明の実施例１のトナー残量更新処理と比較して、本実施例２のトナー残量更新処理の方が理想的な通知残量値の差が小さいことがわかる。
【０１７８】
以上のように、本発明の実施例２におけるトナー残量更新処理を行うことにより、低濃度で印刷される印刷ジョブが実行されているときでも、精度の高いトナー残量量を算出することができる。
【０１７９】
〔第３の実施形態〕
実施例１において、印刷ジョブのデータ解析処理において、保存ジョブのように印刷までに時間がある場合でも、ハードウェアのドットカウント機能が使用できない場合は、カレントページのトナー残量値として一律係数Ｂを用いて算出していた。印刷までに時間がある場合、ＣＰＵ４０１によるドットカウントを行い、その結果を、トナー残量値に使う方法も考えられる。そこで、実施例１のトナー残量更新処理の手順を一部変更することによって実現する。
【０１８０】
（保存ジョブの処理手順の説明）
図１７は、本発明の実施例３における受信した印刷データの保存ジョブの処理手順を示すフローチャートである。
【０１８１】
本フローは、図７で説明したフローと同じであり、データ解析処理、データ処理の中身が異なる。
【０１８２】
図１８は、本発明の実施例３における受信した印刷データの保存ジョブのデータ解析処理手順を示すフローチャートである。
【０１８３】
ＲＡＭ４０３に保存したヘッダ部７０１から取得したジョブ種の設定値を参照して、保存ジョブか否かを確認する（Ｓ１００１）。
【０１８４】
ステップＳ１００２の結果、ジョブ種が保存ジョブであれば、ステップＳ１００３に進む（Ｓ１００２）。
【０１８５】
ステップＳ１００２の結果、ジョブ種が保存ジョブ以外であれば、図７で示した実施例１のデータ解析処理と同じフローを通す（Ｓ１０１０）。
【０１８６】
ステップＳ１００３では、印刷ジョブデータのデータ部７０２に複数ページ含まれる場合があるため、データ解析開始時は、ページＩＤ＝０として、ＣＰＵ４０１が以下の処理を行う（Ｓ１００３）。
【０１８７】
ＣＰＵ４０１は、ＲＡＭ４０３に保存してある印刷ジョブデータのデータ部７０２について１ページ分ＰＤＬ解析を行う（Ｓ１００４）。
【０１８８】
ＲＡＭ４０３に保存されている中間データから、レンダリング部４０８は、カレントページの印刷画像データを生成して、ＲＡＭ４０３に保存する（Ｓ１００５）。
【０１８９】
カレントページの印刷画像データ生成後、ＣＰＵ４０１が印刷画像データのドット数をカウントする（Ｓ１００６）。
【０１９０】
印刷画像データのドット数をカウントした後、ＣＰＵ４０１が印刷画像データのドット数を図１１（ｂ）のようにページの設定値７２１の構造でＲＡＭ４０３に保存する（Ｓ１００７）。
【０１９１】
ＲＡＭ４０３に印刷ジョブデータのデータ部７０２で未解析の部分があれば、ステップＳ１００９へ進む。ＲＡＭ４０３に印刷ジョブデータのデータ部７０２の解析が残っていなければ、ＣＰＵ４０１が印刷ジョブデータの解析を終了する（Ｓ１００８）。
【０１９２】
ステップＳ１００９では、ＣＰＵ４０１がカレントページを１ページ加算した上で、Ｓ１００４のフローへ進む（Ｓ１００９）。
【０１９３】
図１９は、本発明の実施例３における受信した印刷データの保存ジョブのデータ処理手順を示すフローチャートである。
【０１９４】
ＲＡＭ４０３に保存したヘッダ部７０１から取得したジョブ種の設定値を参照して、保存ジョブか否かを確認する（Ｓ１１０１）。
【０１９５】
ステップＳ１１０１の結果、ジョブ種が保存ジョブ以外であれば、図９で示した実施例１のデータ解析処理と同じフローを通す（Ｓ１１０３）。
【０１９６】
ステップＳ１１０１の結果、ジョブ種が保存ジョブであれば、ＣＰＵ４０１が、ＲＡＭ４０３に保存した印刷ジョブデータ及び全ページ分のページの設定値を、リムーバブルメディアに保存する。（Ｓ１１０２）。
【０１９７】
（保存ジョブの印刷実行時のトナー残量更新処理手順の説明）
図２０は、本発明の実施例３における保存ジョブの印刷実行時のトナー残量更新処理手順を示すフローチャートである。
【０１９８】
保存ジョブの印刷指示を受けたら、ＣＰＵ４０１が、リムーバブルメディア３０４に保存されている印刷ジョブデータ及び全ページ分の設定値を、ＲＡＭ４０３に保存する。（Ｓ１２０１）。
【０１９９】
ステップＳ１２０２以降のフローは、図７で説明したトナー残量更新処理手順フローのステップＳ３０２以降と同じであり、データ処理の中身のみ異なる。
【０２００】
図２１は、本発明の実施例３における保存ジョブの印刷実行時のデータ処理手順を示すフローチャートである。
【０２０１】
印刷ジョブデータのデータ部７０２に複数ページ含まれる場合があるため、データ処理開始時は、ページＩＤ＝０として、ＣＰＵ４０１が以下の処理を行う（Ｓ１３０１）。
【０２０２】
ＣＰＵ４０１が、ドットカウント部６０４の機能を有効にする。次に、ＲＡＭ４０３に保存しているカレントページの設定情報に従い、ＤＭＡ部６０１、スムージング部６０２、ＰＷＭ部６０３の設定を行う。そして、ＣＰＵ４０１が、ＤＭＡ部６０１に対して、ＲＡＭ４０３に保存した印刷画像データの出力実行を行う（Ｓ１３０２）。
【０２０３】
解像度が１２００ＤＰＩか、もしくは、スムージングがＯＦＦに設定されていた場合、印刷画像データは、ＤＭＡＣ４０７内のＤＭＡ部６０１、スムージング部６０２を経由して、ドットカウント部６０４、ＰＷＭ部６０３へ出力される。印刷画像データがドットカウント部６０４へ入力されると、ドットカウント部６０４は印刷画像データのドット数をカウントする。印刷画像データがＰＷＭ部６０３へ入力されると、ＰＷＭ部６０３は、印刷画像データをＰＷＭ形式に変換して、エンジンＩ／Ｆ４０６を経由して、プリントエンジン３０３へ出力する。
【０２０４】
解像度が１２００ＤＰＩか、もしくは、スムージングがＯＦＦに設定されていた場合、印刷画像データは、ＤＭＡＣ４０７内のＤＭＡ部６０１を経由して、ＰＷＭ部６０３へ出力される。印刷画像データがドットカウント部６０４へ入力されないので、ドットカウント部６０４は印刷画像データのドット数をカウントしない。印刷画像データがＰＷＭ部６０３へ入力されると、ＰＷＭ部６０３は、印刷画像データをＰＷＭ形式に変換して、エンジンＩ／Ｆ４０６を経由して、プリントエンジン３０３へ出力する。
【０２０５】
カレントページの印刷画像出力後、ＣＰＵ４０１が、ＲＡＭ４０３に保存しているカレントページの設定値７２１を参照する（Ｓ１３０３）。
【０２０６】
カレントページの印刷画像出力後、ＣＰＵ４０１が、ＲＡＭ４０３に保存されているページの設定値のうち、カレントページのドット数が保存されているか確認する。カレントページのドット数が保存されていた場合、ＣＰＵ４０１が、取得したドット数と予め保持している係数Ａを用いて演算を行い、カレントページのトナー残量値を算出して、ＲＡＭ４０３に保存する（１３０８）。
【０２０７】
カレントページのドット数が保存されていなかった場合は、ステップＳ１３０５へ進む。
【０２０８】
ステップＳ１３０５では、参照の結果、解像度が６００ＤＰＩであれば、ステップＳ１３０５へ進む。解像度が６００ＤＰＩ以外であればステップＳ１３０９へ進む（Ｓ１３０５）。
【０２０９】
ステップＳ１３０６では、カレントページの設定値において、スムージングがＯＮであれば、ステップＳ１３０７へ進む。スムージングがＯＮ以外であればステップＳ１３０９へ進む（Ｓ１３０６）。
【０２１０】
ステップＳ１３０７では、ＣＰＵ４０１がドットカウント部６０４からカレントページの印刷画像のドット数を取得する（Ｓ１３０７）。
【０２１１】
そして、ＣＰＵ４０１が、取得したドット数と予め保持している係数Ａを用いて演算を行い、カレントページのトナー残量値を算出して、ＲＡＭ４０３に保存する（Ｓ１３０８）。
【０２１２】
ステップＳ１３０９では、ＣＰＵ４０１が、予め保持している係数Ｂをカレントページのトナー残量値として、ＲＡＭ４０３に保存する（Ｓ１３０９）。
【０２１３】
ＲＡＭ４０３に印刷ジョブデータの未出力の印刷画像データがまだ残っていれば、ステップＳ１３１１へ進む。ＲＡＭ４０３に印刷ジョブデータの印刷画像データが残っていなければ、ＣＰＵ４０１が印刷ジョブデータのデータ処理を終了する（Ｓ１３１０）。
【０２１４】
ステップＳ１３１１では、ＣＰＵ４０１がカレントページを１ページ加算した上で、Ｓ１３０２のフローへ進む（Ｓ１３１１）。
【０２１５】
（実施例３でのトナー残量算出の効果説明）
図２２は、本発明の実施例３におけるトナー残量算出の効果を説明する図である。
【０２１６】
８００は、物理消費と同じ消費量を取得できる仮定した場合の理想的な通知残量値の推移を示す線である。
【０２１７】
８１０は、プリントエンジン３０３から通知され得るセンサー残量値（％）のポイントの例である。この例では、プリントエンジン３０３から通知され得るセンサー残量値は、１００％、２０％、０％であり、２０％をＬｏｗレベルのしきい値とする。
【０２１８】
８７０は、本発明の実施例１におけるトナー残量更新処理を行った場合のトナー残量算出値の推移を示す線である。
【０２１９】
Ｐ８７１からＰ８７２の区間及びＰ８７３からＰ８７４の区間は、ドットカウント値が得られる印刷ジョブが実行されている区間である。この区間では、図１３（ａ）の８２０と同じようにトナー残量値が推移する。
【０２２０】
Ｐ８７２からＰ８７３の区間は、保存ジョブの受信時にドットカウント値を取得しているため、Ｐ８７１からＰ８７２の区間及びＰ８７３からＰ８７４の区間と同じようにトナー残量値が推移する。
【０２２１】
Ｐ８７４からＰ８７５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、トナー残量値は緩やかな推移が発生する。
【０２２２】
８７１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、本発明の実施例１におけるトナー残量更新処理を行った場合の通知残量値と、理想的な通知残量値の差を示している。
【０２２３】
図１３（ｃ）８４１、図２２  ８７１から、本発明の実施例１のトナー残量更新処理と比較して、本実施例３のトナー残量更新処理の方が理想的な通知残量値の差が小さいことがわかる。
【０２２４】
以上のように、本発明の実施例３におけるトナー残量更新処理を行うことにより、保存ジョブ印刷実行時に精度の高いトナー残量量を算出することができる。
【０２２５】
〔第４の実施形態〕
実施例１において、印刷ジョブのデータ解析処理において、データ解析済みで且つ未印刷の印刷画像データが相当量残っている場合も、保存ジョブと同様に印刷までに時間をある程度確保できる。この場合も、ＣＰＵ４０１によるドットカウントを行い、その結果を、トナー残量値に使う方法も考えられる。そこで、実施例１のトナー残量更新処理手順を一部変更することによって実現する。
【０２２６】
（印刷ジョブの処理手順の説明）
図２３は、本発明の実施例４における受信した印刷ジョブの処理手順を示すフローチャートである。
【０２２７】
本フローは、図７で説明したフローと同じであり、データ解析処理、データ処理の中身のみ異なる。データ処理の中身は、実施例３で示した保存ジョブの印刷実行時のデータ処理手順のフローと同じである。
【０２２８】
図２４は、本発明の実施例４における受信した印刷ジョブのデータ解析処理手順を示すフローチャートである。
【０２２９】
印刷ジョブデータのデータ部７０２に複数ページ含まれる場合があるため、データ解析開始時は、ページＩＤ＝０として、ＣＰＵ４０１が以下の処理を行う（Ｓ１５０１）。
【０２３０】
ＥＥＰＲＯＭ４１０に保存されている画像形成装置１０２の解像度及びスムージングを含む設定値を、印刷ジョブデータのカレントページの設定値として、ＣＰＵ４０１がＲＡＭ４０３に保存する（Ｓ１５０２）。
【０２３１】
図１１（ｃ）のように、前述のカレントページの設定値７２１は印刷ジョブを特定するためのジョブＩＤ７２２とページＩＤ７２３を紐づけてＲＡＭ４０３に保存されている。
【０２３２】
ＲＡＭ４０３に保存しているジョブの設定値７１１を参照する（Ｓ１５０３）。
【０２３３】
ＲＡＭ４０３中にデータ解析中のジョブＩＤと一致するジョブの設定値７１１がＲＡＭ４０３に保存してあれば、その設定値７１１を取得する（Ｓ１５０４、Ｓ１５０５）。
取得した設定値をＲＡＭ４０３にある印刷ジョブデータのカレントページの設定値７２１にＣＰＵ４０１が上書き保存する（Ｓ１５０６）。
【０２３４】
ＣＰＵ４０１は、ＲＡＭ４０３に保存してある印刷ジョブデータのデータ部７０２について１ページ分ＰＤＬ解析を行う（Ｓ１５０７）。
【０２３５】
解析の結果、カレントページの設定値が含まれていれば、その設定値を、ＲＡＭ４０３にある印刷ジョブデータのカレントページの設定値７２１にＣＰＵ４０１が上書き保存する（Ｓ１５０８、Ｓ１５０９、Ｓ１５１０）。
【０２３６】
ＲＡＭ４０３に保存されている中間データから、レンダリング部４０８は、カレントページの印刷画像データを生成して、ＲＡＭ４０３に保存する（Ｓ１５１１）。
【０２３７】
印刷画像データ生成後、ＣＰＵ４０１が、ＲＡＭ４０３に保存されているカレントページの設定値７２１を参照する（Ｓ１５１２）。
【０２３８】
ステップＳ１５１３では、参照の結果、解像度が６００ＤＰＩであれば、ステップＳ１５１３へ進む。解像度が６００ＤＰＩ以外であればステップＳ１５１８へ進む（Ｓ１５１３）。
【０２３９】
ステップＳ１５１４では、カレントページの設定値において、スムージングがＯＮであれば、ステップＳ１５１５へ進む。スムージングがＯＮ以外であればステップＳ１５１８へ進む（Ｓ１５１４）。
【０２４０】
ステップＳ１５１５では、ＲＡＭ４０３に保存されている未出力の印刷画像データを確認する。未出力の印刷画像データが予め定めた所定ページ未満であれば、ステップＳ１５１６へ進む。未出力の印刷画像データが予め定めた所定ページ以上あれば、ステップＳ１５１５へ進む。
【０２４１】
ステップＳ１５１６では、ＣＰＵ４０１がカレントページの印刷画像のドット数をカウントする（Ｓ１５１６）。
【０２４２】
印刷画像データのドット数をカウントした後、ＣＰＵ４０１が印刷画像データのドット数をＲＡＭ４０３に保存する（Ｓ１５１７）。
【０２４３】
ＲＡＭ４０３に印刷ジョブデータのデータ部７０２で未解析の部分があれば、ステップＳ４１３へ進む。ＲＡＭ４０３に印刷ジョブデータのデータ部７０２の解析が残っていなければ、ＣＰＵ４０１が印刷ジョブデータの解析を終了する（Ｓ１５１８）。
【０２４４】
ステップＳ１５１９では、ＣＰＵ４０１がカレントページを１ページ加算した上で、Ｓ１５０２のフローへ進む（Ｓ１５１９）。
【０２４５】
（実施例４でのトナー残量算出の効果説明）
図２５は、本発明の実施例４におけるトナー残量算出の効果を説明する図である。
【０２４６】
８００は、物理消費と同じ消費量を取得できる仮定した場合の理想的な通知残量値の推移を示す線である。
【０２４７】
８１０は、プリントエンジン３０３から通知され得るセンサー残量値（％）のポイントの例である。この例では、プリントエンジン３０３から通知され得るセンサー残量値は、１００％、２０％、０％であり、２０％をＬｏｗレベルのしきい値とする。
【０２４８】
８８０は、本発明の実施例１におけるトナー残量更新処理を行った場合のトナー残量算出値の推移を示す線である。
【０２４９】
Ｐ８８１からＰ８８２の区間及びＰ８８３からＰ８８４の区間は、ドットカウント値が得られる印刷ジョブが実行されている区間である。この区間では、図１３（ａ）の８２０と同じようにトナー残量値が推移する。
【０２５０】
Ｐ８８２からＰ８８３の区間は、データ処理よりデータ解析処理が所定ページ以上進んでいる場合、データ解析時にドットカウント値を取得しているため、Ｐ８８１からＰ８８２の区間及びＰ８８３からＰ８８４の区間と同じようにトナー残量値が推移する。
【０２５１】
Ｐ８８４からＰ８８５の区間は、プリントエンジン３０３から通知され得るセンサー残量値の通知により、トナー残量値は緩やかな推移が発生する。
【０２５２】
８８１は、プリントエンジン３０３から通知され得るセンサー残量値の通知時の、本発明の実施例１におけるトナー残量更新処理を行った場合の通知残量値と、理想的な通知残量値の差を示している。
【０２５３】
図１３（ｃ）８４１、図２５  ８８１から、本発明の実施例１のトナー残量更新処理と比較して、本実施例４のトナー残量更新処理の方が理想的な通知残量値の差が小さいことがわかる。
【０２５４】
以上のように、本発明の実施例４におけるトナー残量更新処理を行うことにより、データ処理よりデータ解析処理が所定ページ以上進んでいる場合に精度の高いトナー残量量を算出することができる。
【０２５５】
このように、本実施形態では、ドットカウントをカウント可能とするとともに、印刷条件によりトナー残量値算出を制御する。
【０２５６】
なお、上述した各実施形態では、ハードウェアのドットカウント機能を使用できないケースとして、解像度やスムージングの設定値による場合を挙げたが、本特許はこれらに限定するものではない。
【０２５７】
また、上述した各実施形態では、通常より低濃度で印刷する設定方法として、ドラフトモードやトナー濃度の設定を挙げたが、本特許はこれらに限定するものではない。
【０２５８】
〔他の実施形態〕
本発明は、以下の処理を実行することによっても実現される。
【０２５９】
即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは情報処理装置に供給し、そのシステム或いは情報処理装置のＣＰＵ等がプログラムを読み出して実行する処理である。
【図１】
2015049324.tif 000003
【図２】
2015049324.tif 000004
【図３】
2015049324.tif 000005
【図４】
2015049324.tif 000006
【図５】
2015049324.tif 000007
【図６】
2015049324.tif 000008
【図７】
2015049324.tif 000009
【図８】
2015049324.tif 000010
【図９】
2015049324.tif 000011
【図１０】
2015049324.tif 000012
【図１１】
2015049324.tif 000013
【図１２】
2015049324.tif 000014
【図１３】
2015049324.tif 000015
【図１４】
2015049324.tif 000016
【図１５】
2015049324.tif 000017
【図１６】
2015049324.tif 000018
【図１７】
2015049324.tif 000019
【図１８】
2015049324.tif 000020
【図１９】
2015049324.tif 000021
【図２０】
2015049324.tif 000022
【図２１】
2015049324.tif 000023
【図２２】
2015049324.tif 000024
【図２３】
2015049324.tif 000025
【図２４】
2015049324.tif 000026
【図２５】
2015049324.tif 000027