(57)【要約】      （修正有）【課題】受信した印刷ジョブデータは、記憶装置に書き込まれる場合に、複数回送信された、同じ内容の印刷ジョブデータ（或いはその一部）が、重複して記憶装置に記憶されるということが起こり得てしまい、このような重複した記憶は、書き込み量を無駄に増やしてしまうことになる。【解決手段】記憶装置１４が搭載されたジョブ処理装置１が、記憶装置１４へのジョブデータ３の書き込み量を抑える。ジョブ処理装置１が、ジョブデータ３を受信する受信手段１１，１３１と、受信したジョブデータ３を記憶する記憶手段１４と、受信したジョブデータ３の記憶手段１４への記憶処理を制御する記憶制御手段１３２，１３３と、を備え、記憶制御手段１３２，１３３は、受信したジョブデータ３と記憶手段１４に記憶済みのジョブデータ３とを比較して一致した場合には、受信したジョブデータ３の記憶手段１４への記憶処理を省略する。【選択図】図１
2010221476.tif 000002
【特許請求の範囲】
【請求項１】
ジョブデータを受信する受信手段と、
受信したジョブデータを記憶する記憶手段と、
前記受信したジョブデータの前記記憶手段への記憶処理を制御する記憶制御手段と、を備え、
前記記憶制御手段は、受信したジョブデータと前記記憶手段に記憶済みのジョブデータとを比較して一致した場合には、前記受信したジョブデータの前記記憶手段への記憶処理を省略する、
ジョブ処理装置。
【請求項２】
前記記憶制御手段は、受信したジョブデータの比較部分と前記記憶手段に記憶済みのジョブデータの比較部分とを比較して一致した場合には、前記受信したジョブデータの比較部分の前記記憶手段への記憶処理を省略する、
請求項１記載のジョブ処理装置。
【請求項３】
前記ジョブデータには、ジョブデータごとに異なる固有データが含まれており、
前記ジョブデータの比較部分は、前記ジョブデータから前記固有データを除いた部分である、
請求項２記載のジョブ処理装置。
【請求項４】
前記ジョブデータは、印刷ジョブデータであり、
前記ジョブデータの比較部分は、描画データである、
請求項２記載のジョブ処理装置。
【請求項５】
前記記憶制御手段は、
前記受信したジョブデータについて、前記受信したジョブデータの比較部分の記憶位置と、前記受信したジョブデータの比較部分以外の部分の記憶位置とを管理する管理データを生成し、
前記受信したジョブデータの比較部分と前記記憶手段に記憶済みのジョブデータの比較部分とを比較して一致した場合、
前記受信したジョブデータの比較部分以外の部分を記憶手段へ記憶させるとともに、前記記憶させた比較部分以外の部分の記憶位置を、前記生成した管理データに管理させ、
前記記憶済みのジョブデータの比較部分の記憶位置を、前記受信したジョブデータの比較部分の記憶位置として、前記生成した管理データに管理させる、
請求項２記載のジョブ処理装置。
【請求項６】
前記記憶制御手段は、前記受信したジョブデータのハッシュ値と前記記憶済みのジョブデータのハッシュ値とが一致しているか否かにより、前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとが一致しているか否かを判定する、
請求項１〜５のうちのいずれかに記載のジョブ処理装置。
【請求項７】
前記記憶手段には、複数のジョブデータが記憶されており、
前記記憶制御手段は、前記記憶手段に記憶済みの複数のジョブデータの中から一以上のジョブデータを選択し、前記受信したジョブデータと前記選択されたジョブデータのそれぞれとを比較し、前記受信したジョブデータと前記選択されたジョブデータのうちのいずれかとが一致した場合には、前記受信したジョブデータの前記記憶手段への記憶処理を省略する、
請求項１〜６のうちのいずれかに記載のジョブ処理装置。
【請求項８】
ジョブデータが記憶されている記憶手段を備えたジョブ処理装置が行う記憶制御方法であって、
ジョブデータを受信し、
前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとを比較し、
前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとが一致しなかった場合には、前記受信したジョブデータを前記記憶手段へ記憶し、
前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとが一致した場合には、前記受信したジョブデータの前記記憶手段への記憶処理を省略する、
記憶制御方法。
【請求項９】
ジョブデータが記憶されている記憶手段を備えたジョブ処理装置が行う記憶制御方法を実現するコンピュータプログラムであって、
ジョブデータを受信し、
前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとを比較し、
前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとが一致しなかった場合には、前記受信したジョブデータを前記記憶手段へ記憶し、
前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとが一致した場合には、前記受信したジョブデータの前記記憶手段への記憶処理を省略する、
記憶制御方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ処理装置に関し、特に、外部から受信したジョブデータを処理する装置に関する。
【背景技術】
【０００２】
ジョブ処理装置の一例として印刷装置をとりあげて説明する。従来、不揮発性の記憶装置（例えば、ハードディスクドライブやフラッシュメモリー等であり、以下、単に「記憶装置」という）が搭載された印刷装置が知られている。この種の印刷装置は、ホスト装置等から受信した印刷ジョブデータを記憶装置に記憶しておくことができる。これにより、印刷装置は、例えば、ホスト装置から再度同一内容の印刷ジョブデータを受信することなくリプリントを行ったり、印刷ジョブデータを受信したタイミングではなくその後にユーザーが指示したタイミング等で印刷を行ったりすることができる。
【０００３】
印刷装置に搭載された記憶装置への記憶の方法として、例えば、ホスト装置から受信した印刷ジョブデータをそのままの形式（例えば、ＰＤＬ（Page Description Language）形式）で記憶する方法と、ホスト装置から受信した印刷ジョブデータをラスターライズして得られたラスターデータを記憶する方法とがある。ＰＤＬ形式のデータは、ラスターデータよりもデータサイズが小さいため、ＰＤＬ形式で記憶したほうが、ラスターデータで記憶するよりも書き込み量を抑えることができる。一方で、ラスターデータで記憶した場合は、印刷する度にＰＤＬ形式からラスターデータへの変換処理を行う必要がなくなるので、計算コストを抑えることができる。
【０００４】
印刷装置に搭載された記憶装置への記憶の方法に関する技術としては、例えば、特許文献１、２等が知られている。特許文献１に開示されている技術は、ラスターデータで記憶する方法において、空白のバンドについては保存しないようにすることで、計算コスト及び書き込み量を抑えるというものである。一方、特許文献２に開示されている技術は、リプリントが行われる頻度が高いものについてラスターデータとして記憶しそれ以外はＰＤＬ形式で記憶することで、計算コスト及び書き込み量を抑えるというものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−５９５９６号公報
【特許文献２】特開平１１−１９１０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記記憶装置（ハードディスクドライブやフラッシュメモリー）は、その大容量化が進んでいるが、それでもなお記憶装置への書き込み量を抑える技術が求められている。その理由として、より多くの印刷ジョブデータを記憶できるようにすることに加えて、フラッシュメモリーの場合、その書き込み回数に上限があるからである。即ち、書き込み量を抑えることによって、書き込み回数に上限がある記憶装置（例えば、フラッシュメモリー）の延命を図ることが求められている。
【０００７】
この点、上述した特許文献１、２に開示の技術も、書き込み量を抑えることが図られているが、それでも未だ、書き込み量を抑えること（即ち、記憶装置の延命を図ること）を主目的とした場合は、不十分である。理由は以下のとおりである。
【０００８】
即ち、通常、ユーザーは、例えば、印刷命令を送信した後に印刷部数が足りなかったことに気づいて、或いは印刷してみて失敗したので若干設定変更して、同じ内容のデータを再度印刷することがしばしばある。即ち、ある程度時間が経過した後にリプリントするのではなく、連続的に同じ内容のデータを印刷することがしばしばある。このような場合、大抵は、複数回送信された印刷ジョブデータ（或いはその一部）が一致する。上述した特許文献１、２に開示の技術は、受信した印刷ジョブデータを小さいサイズで（ＰＤＬ形式で或いは不必要な部分は取り除いて）書き込むことにより書き込み量を抑えるといったものであり、原則として、受信した印刷ジョブデータは、記憶装置に書き込まれる。従って、特許文献１、２に開示の技術では、このような場合に、複数回送信された、同じ内容の印刷ジョブデータ（或いはその一部）が、重複して記憶装置に記憶されるということが起こり得てしまう。このような重複した記憶は、書き込み量を無駄に増やしてしまうことになる。
【０００９】
また、上述した特許文献１及び２に開示の技術は、そもそもデータサイズの大きいラスターデータで、記憶対象の印刷データの全部或いは一部を記憶するものであるため、書き込み量を抑えることを主目的とした場合は、あまり効果的ではない。
【００１０】
書き込み量を抑えることは、印刷装置だけに限らず、記憶装置が搭載された装置であって、外部から受信したジョブデータを記憶装置に記憶しつつそのジョブデータを処理するといったジョブ処理装置（例えば、入力されたデータを記憶装置に記憶した後そのデータを発信するファクシミリ、或いは、受信したE-Mailを記憶装置に記憶した後そのE-mailの内容を画面に表示するE-Mail処理装置等）についても、同様に求められる。
【００１１】
従って、本発明の目的は、記憶装置が搭載されたジョブ処理装置において、記憶装置へのジョブデータの書き込み量を抑えることにある。
【課題を解決するための手段】
【００１２】
本発明の一つの実施態様に従うジョブ処理装置は、ジョブデータを受信する受信手段と、受信したジョブデータを記憶する記憶手段と、前記受信したジョブデータの前記記憶手段への記憶処理を制御する記憶制御手段と、を備え、前記記憶制御手段は、受信したジョブデータと前記記憶手段に記憶済みのジョブデータとを比較して一致した場合には、前記受信したジョブデータの前記記憶手段への記憶処理を省略する。
【００１３】
上記構成によれば、受信したジョブデータが記憶済みのジョブデータと一致している場合はその書き込みが省略されるので、記憶手段への書き込み量を抑えることができる。その結果、記憶手段の書き込み回数に制限がある場合には、記憶手段の寿命を延ばすことができるようになる。また、同じ内容のデータについて重複した記憶を回避できるので、より多くのジョブデータを記憶できるようになる。更に、書き込み速度の遅い記憶手段が採用されている場合は、書き込み量が抑えられるので、書き込みに要する計算コストを削減できる。
【００１４】
本発明に係る好適な実施形態では、前記記憶制御手段は、受信したジョブデータの比較部分と前記記憶手段に記憶済みのジョブデータの比較部分とを比較して一致した場合には、前記受信したジョブデータの比較部分の前記記憶手段への記憶処理を省略するようにしてもよい。
【００１５】
例えば、ジョブデータごとに異なる固有データが含まれている場合は、受信したジョブデータと記憶手段に記憶済みのジョブデータとは必ず不一致となってしまい、書き込みを省略することができなくなってしまう。そこで、上記構成のように、比較部分（ジョブデータごとに異なる固有データを除いた部分）を比較するようにすることで、書き込みを省略し、書き込み量を抑えることをより効果的にしている。
【００１６】
本発明に係る好適な実施形態では、前記ジョブデータには、ジョブデータごとに異なる固有データが含まれており、前記ジョブデータの比較部分は、前記ジョブデータから前記固有データを除いた部分であってもよい。
【００１７】
上述したように、ジョブデータごとに異なる固有データが含まれている場合は、受信したジョブデータと記憶手段に記憶済みのジョブデータとは必ず不一致となってしまい、書き込みを省略することができなくなってしまう。そこで、上記構成のように、比較部分（ジョブデータごとに異なる固有データを除いた部分）を比較するようにすることで、書き込みを省略し、書き込み量を抑えることをより効果的にしている。
【００１８】
本発明に係る好適な実施形態では、前記ジョブデータは、印刷ジョブデータであり、前記ジョブデータの比較部分は、描画データであってもよい。
【００１９】
印刷処理においては、例えば、ユーザーは、印刷命令を送信した後に印刷部数が足りなかったことに気づいて、或いは印刷してみて失敗したので若干設定変更して、同じ内容のデータを再度印刷することがしばしばある。このような場合、大抵は、複数回送信された印刷ジョブデータのそれぞれの描画データが一致している。また、描画データは、それ以外の部分（例えば、ヘッダー）に比較してデータサイズが大きい。従って、上記構成のように、ジョブデータが印刷ジョブデータである場合は、比較部分を描画データとすることで、効果的に書き込み量を抑えることが可能となる。
【００２０】
本発明に係る好適な実施形態では、前記記憶制御手段は、前記受信したジョブデータについて、前記受信したジョブデータの比較部分の記憶位置と、前記受信したジョブデータの比較部分以外の部分の記憶位置とを管理する管理データを生成し、前記受信したジョブデータの比較部分と前記記憶手段に記憶済みのジョブデータの比較部分とを比較して一致した場合、前記受信したジョブデータの比較部分以外の部分を記憶手段へ記憶させるとともに、前記記憶させた比較部分以外の部分の記憶位置を、前記生成した管理データに管理させ、前記記憶済みのジョブデータの比較部分の記憶位置を、前記受信したジョブデータの比較部分の記憶位置として、前記生成した管理データに管理させてもよい。
【００２１】
上記構成によれば、受信したジョブデータの比較部分以外の部分（例えば、ヘッダー）の記憶位置と、受信したジョブデータの比較部分（例えば、描画データ）の記憶位置とが、管理データによって管理される。そして、比較部分の記憶位置としては、記憶手段に記憶済みのジョブデータの比較部分（受信ジョブデータの比較部分と一致したもの）の記憶位置が設定される。これにより、受信ジョブデータの比較部分を記憶手段に記憶させることなく、受信ジョブデータの比較部分を管理データに管理させることができ、比較部分の重複記憶を回避することができる。
【００２２】
本発明に係る好適な実施形態では、前記記憶制御手段は、前記受信したジョブデータのハッシュ値と前記記憶済みのジョブデータのハッシュ値とが一致しているか否かにより、前記受信したジョブデータと前記記憶手段に記憶済みのジョブデータとが一致しているか否かを判定してもよい。
【００２３】
上記構成によれば、ハッシュ値が一致しているか否かを見るだけで、受信したジョブデータと記憶済みのジョブデータとが一致しているか否かを判定できるので、ジョブデータ自体が一致しているか否かを判定するよりも、判定処理に要する計算コストを削減することができる。
【００２４】
本発明に係る好適な実施形態では、前記記憶手段には、複数のジョブデータが記憶されており、前記記憶制御手段は、前記記憶手段に記憶済みの複数のジョブデータの中から一以上のジョブデータを選択し、前記受信したジョブデータと前記選択されたジョブデータのそれぞれとを比較し、前記受信したジョブデータと前記選択されたジョブデータのうちのいずれかとが一致した場合には、前記受信したジョブデータの前記記憶手段への記憶処理を省略してもよい。
【００２５】
上記構成によれば、比較の対象となるジョブデータを自由に選択できるようになる。通常、比較の対象となるジョブデータの数が少ないほど、比較処理に要する計算コストが小さくなる。従って、ＣＰＵの処理能力に合わせて比較の対象となるジョブデータの数を選択することができ、ＣＰＵ１３に過度の処理負荷をかけないようにすることができる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態に係る印刷装置の構成例を示す図である。
【図２】印刷データの構造の一例を示す図である。
【図３】管理データの構造の一例を示す図である。
【図４】本実施形態に係る印刷装置のＣＰＵが行う処理のフローチャートである。
【図５】一致フラグの一例を示す図である。
【図６】記憶ジョブデータを記憶装置から削除する処理のフローチャートである。
【発明を実施するための形態】
【００２７】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。
【００２８】
図１は、本実施形態に係るジョブ処理装置の一例としての印刷装置１の構成例を示す図である。
【００２９】
印刷装置１は、例えば、入出力Ｉ／Ｆ（インターフェース）１１と、ＲＡＭ（Random Access Memory）１２と、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１３と、記憶装置１４とを備える。
【００３０】
入出力Ｉ／Ｆ１１は、ホスト装置２とデータ通信を行うためのインターフェース装置である。入出力Ｉ／Ｆ１１は、ホスト装置２から印刷ジョブデータ３を受信し、その受信した印刷ジョブデータ３をＣＰＵ１３の構造解析部１３１へ渡す。
【００３１】
ＲＯＭ１５には、例えば、ＣＰＵ１３により実行される各種のコンピュータプログラムが格納される。ＲＡＭ１２は、ＣＰＵ１３が処理するデータ、例えば、出力対象の印刷ジョブデータ３（以下、「出力対象ジョブデータ」）等を、一時的に格納しておくためのバッファとして利用される。
【００３２】
記憶装置１４は、不揮発性の記憶装置である。記憶装置１４としては、例えば、ハードディスクドライブやフラッシュメモリー等が採用される。記憶装置１４には、ホスト装置２から受信した印刷ジョブデータ３（以下、「受信ジョブデータ」）が記憶される。また、記憶装置１４には、記憶装置１４に記憶されている印刷ジョブデータ３（以下、「記憶ジョブデータ」）を管理するための管理データ４が記憶される。
【００３３】
ＣＰＵ１３は、ＲＯＭ１５に格納されている各種のコンピュータプログラムを実行することにより、例えば、構造解析部１３１、比較処理部１３２、保存処理部１３３、選択部１３４、画像処理部１３５と及び画像出力部１３６として機能する。
【００３４】
構造解析部１３１は、受信ジョブデータ３（ホスト装置２から受信した印刷ジョブデータ３）の解析を行う処理部である。印刷装置１は、印刷ジョブデータ３を、それを構成するセグメント単位で受信する。構造解析部１３１は、受信ジョブデータ３を構成するセグメント（以下、「受信データ」）を解析し、受信データが、受信ジョブデータ３のどの部分に相当するものであるか（受信ジョブデータ３のどのデータ要素を構成するものであるか）を特定する。
【００３５】
ここで、図２を参照して、印刷ジョブデータ３の構造を説明する。本実施形態における印刷ジョブデータ３は、例えば、ESC/PageやPCL等のＰＤＬ形式のデータである。図２に示されるように、印刷ジョブデータ３には、例えば、ヘッダー３１と、描画データ３２とが含まれる。ヘッダー３１には、この印刷ジョブデータ３が示す印刷ジョブに関する種々のデータ（例えば、ジョブＩＤやユーザー名や印刷設定に関するデータ（部数や解像度等）等）が含まれる。描画データ３２は、この印刷ジョブデータ３が示す印刷ジョブによって出力される画像の基となるデータである。本実施形態において、構造解析部１３１は、受信データを解析し、受信データが、ヘッダー３１を構成するものであるか、描画データ３２を構成するものであるか、或いはヘッダー３１及び描画データ３２の両者を構成するものであるかを特定することになる。
【００３６】
再び図１を参照する。比較処理部１３２は、受信ジョブデータ３と記憶ジョブデータ３（記憶装置１４に記憶されている印刷ジョブデータ３）とを比較し、両印刷ジョブデータ３が一致するか否かを判定する処理部である。以下、この比較処理部１３２が行う処理を「比較処理」と呼ぶ。比較処理の判定結果を基に、保存処理部１３３が、受信ジョブデータ３（或いは、受信ジョブデータ３の一部）を記憶装置１４に記憶するか否かを決定することになる。
【００３７】
比較処理において、記憶ジョブデータ３が複数ある場合は、複数の記憶ジョブデータ３のうちの全てが比較の対象とされてもよいし、複数の記憶ジョブデータ３のうちの一部が比較の対象とされてもよい。例えば、比較処理部１３２は、複数の記憶ジョブデータ３の中から、記憶された日時が新しいものを順に所定数だけ選択し、その選択された記憶ジョブデータ３を比較の対象とすることができる。以下、比較の対象とされる記憶ジョブデータ３を「比較対象ジョブデータ」と呼ぶ。
【００３８】
また、比較処理において、印刷ジョブデータ３のデータ全体が比較の対象とされてもよいし、印刷ジョブデータ３の一部分が比較の対象とされてもよい。一般に、印刷ジョブデータ３には、印刷ジョブごとに異なるデータ（例えば、ヘッダー３１に含まれるジョブＩＤやタイムスタンプ等であり、以下、「ジョブ固有データ」）が含まれるので、通常は、印刷ジョブデータ３の一部分（ジョブ固有データを除く部分）が比較の対象とされることになる。
【００３９】
保存処理部１３３は、受信ジョブデータ３を記憶装置１４に記憶する処理部である。具体的には、保存処理部１３３は、比較処理の判定結果に基づいて受信ジョブデータ３（或いは受信ジョブデータ３の一部）を記憶するか否かを決定し、記憶すると決定された場合にその受信ジョブデータ３を記憶装置１４に記憶する。例えば、保存処理部１３３は、比較処理において、受信ジョブデータ３と比較対象ジョブデータ３とが一致しないとの判定結果が得られた場合（即ち、複数の記憶ジョブデータ３のうちの全てが比較対象ジョブデータ３とされているときは、受信ジョブデータ３と同じ内容の印刷ジョブデータ３が記憶装置１４に記憶されていないと判定された場合）に、受信ジョブデータ３を記憶装置１４に記憶することができる。
【００４０】
本実施形態では、印刷ジョブデータ３の一部分（具体的には、描画データ３２）が、比較処理における比較の対象とされる。従って、本実施形態では、比較処理部１３２は、受信ジョブデータ３の描画データ３２（以下、「受信描画データ」）を、一以上の比較対象ジョブデータ３のそれぞれの描画データ３２と比較し、受信描画データ３２が、比較対象ジョブデータ３の描画データ３２（以下、「比較対象描画データ」）のいずれかと一致するか否かを判定する。そして、保存処理部１３３は、比較対象描画データ３２のいずれとも一致しなかった場合に、受信描画データ３２を記憶装置１４に記憶する。一方、比較対象描画データ３２のいずれかと一致した場合は、受信描画データ３２を記憶装置１４に記憶しないようにする。即ち、比較処理部１３２及び保存処理部１３３は、このように処理することで、同じ内容の描画データ３２が重複して記憶装置１４に記憶されないようにしている。これにより、重複した記憶がされない分、無駄な書き込みを抑えることができるので、書き込み量を抑えることができるようになる。そして、記憶装置１４の書き込み回数に上限がある場合は、記憶装置１４の延命を図ることができるようになる。尚、複数の記憶済みの描画データ３２のうちの一部が比較対象描画データ３とされた場合は、受信描画データ３２が、比較の対象とはされなかった記憶済みの描画データ３２と一致する場合があるので、完全に重複した記憶を回避することはできないが、この場合でも、重複して記憶される可能性を減らすことができる。
【００４１】
尚、受信ジョブデータ３のヘッダー３１（以下、「受信ヘッダー」）については、本実施形態では、書き込みが省略されることなく記憶装置１４に記憶される。上述したように、ヘッダー３１には、ジョブ固有データ（印刷ジョブごとに異なるデータ（ジョブＩＤやタイムスタンプ等））が含まれ、比較対象ジョブデータ３のヘッダー３１とは一致しないと考えられるからである。ただし、本実施形態では、受信ヘッダー３１を比較の対象とせずに無条件に記憶するようにしているが、次のようにしてもよい。即ち、受信ジョブデータ３のうちのジョブ固有データを除いた部分（即ち、描画データ３２及びヘッダー３１の一部分）を比較の対象とし、そのジョブ固有データを除いた部分を一単位として記憶するか否かを判定するようにしてもよい。
【００４２】
選択部１３４は、出力対象の印刷ジョブデータ３（出力対象ジョブデータ）をＲＡＭ１２へ格納する処理部である。具体的には、選択部１３４は、記憶ジョブデータ３の中から出力対象ジョブデータ３を選択し、その選択した出力対象ジョブデータ３を記憶装置１４から読み出し、その読み出した出力対象ジョブデータ３をＲＡＭ１２に格納する。
【００４３】
画像処理部１３５は、出力対象ジョブデータ３に対して画像処理（ラスターライズ）を行い、出力対象ジョブデータ３に対応したラスターデータを生成する処理部である。画像処理部１３５は、ＲＡＭ１２に格納されている出力対象ジョブデータ３を読み出し、それをラスターライズすることで、出力対象ジョブデータ３に対応したラスターデータを生成する。
【００４４】
画像出力部１３６は、画像処理部１３５が生成したラスターデータ（出力対象ジョブデータ３に対応したラスターデータ）に基づく画像を出力する処理部である。以下、選択部１３４、画像処理部１３５及び画像出力部１３６によって行われる、印刷ジョブデータ３の出力（印刷ジョブデータ３に対応したラスターデータの出力）を行う処理を「出力処理」と呼ぶ。
【００４５】
図３は、管理データ４（記憶ジョブデータ３を管理するためのデータ）の構造の一例を示す図である。
【００４６】
上述したように、本実施形態では、受信描画データ３２については、比較処理において比較対象描画データ３２と一致しなかった場合に記憶され、受信ヘッダー３１については無条件に記憶される。従って、本実施形態では、受信ジョブデータ３は、一つの連続したデータとして記憶装置１４に記憶されるのではなく、図３に示されるように、そのヘッダー３１とその描画データ３２とに分けられて別々に記憶装置１４に記憶される。
【００４７】
管理データ４は、例えば、記憶ジョブデータ３ごとに生成される。図３に示されるように、管理データ４には、例えば、ヘッダーポインター４１と、描画データポインター４２とが含まれる。ヘッダーポインター４１は、管理データ４が管理対象としている記憶ジョブデータ３のヘッダー３１の記憶位置（ヘッダー３１が記憶されている記憶領域上の位置）を示すデータである。描画データポインター４２は、管理データ４が管理対象としている記憶ジョブデータ３の描画データ３２の記憶位置（描画データ３２が記憶されている記憶領域上の位置）を示すデータである。即ち、管理データ４は、そのヘッダーポインター４１により管理対象の記憶ジョブデータ３のヘッダー３２の位置を管理し、その描画データポインター４２により管理対象の記憶ジョブデータ３の描画データ３２の位置を管理している。
【００４８】
図３の例では、記憶ジョブデータＡを管理する管理データ４Ａの描画データポインター４２と、記憶ジョブデータＢを管理する管理データ４Ｂの描画データポインター４２とが、同一の描画データ３２（描画データＡ）を指している。これは、記憶ジョブデータＡの描画データ３２と記憶ジョブデータＢの描画データ３２とが同じであることを意味している。このように、本実施形態では、同一の描画データ３２を持つ複数の記憶ジョブデータ３間で、記憶装置１４に記憶された一つの描画データ３２を、共有することができる（言い換えると、同一の描画データ３２を持つ複数の記憶ジョブデータ３のそれぞれの管理データ４が、記憶装置１４に記憶された一つの描画データ３２を、共通して参照することができる）。描画データ３２には、図３に示されるように、参照数５が付与される。参照数５は、その描画データ３２を参照している管理データ４の数を示している。図３の例では、描画データＡの参照数５の値は“２”である。これは、記憶ジョブデータＡを管理する管理データ４及び記憶ジョブデータＢを管理する管理データ４の二つが、描画データＡを参照しているからである。
【００４９】
以上が、本実施形態に係る印刷装置１の構成の説明である。以下、印刷装置１のＣＰＵ１３によって行われる処理（ホスト装置２から印刷ジョブデータ３を受信した際に行われる処理）の詳細について説明する。
【００５０】
図４は、本実施形態に係る印刷装置１のＣＰＵ１３が行う処理のフローチャートである。この処理は、ＣＰＵ１３がホスト装置２から受信データ（受信ジョブデータ３を構成するセグメント）を受信したことを契機として開始される。
【００５１】
ＣＰＵ１３が受信データを受信すると（Ｓ１）、保存処理部１３３は、受信ジョブデータ３を管理するための管理データ４を作成する（Ｓ２）。以下、ステップＳ２で作成された管理データ４を「対象管理データ４」と呼ぶ。ここでは、対象管理データ４のヘッダーポインター４１及び描画データポインター４２のそれぞれには、空の値（例えば、ＮＵＬＬ）が設定される。
【００５２】
次に、構造解析部１３１は、受信データを解析し、受信データが、受信ジョブデータ３のどのデータ要素を構成するものであるかを特定する（Ｓ３）。即ち、構造解析部１３１は、受信データが、ヘッダー３１を構成するものであるか、描画データ３２を構成するものであるか、或いはヘッダー３１及び描画データ３２の両者を構成するものであるかを特定する。
【００５３】
ステップＳ３において、受信データがヘッダー３１及び描画データ３２の両者を構成するものと判定された場合は（Ｓ３：ヘッダー及び描画データ）、保存処理部１３３は、受信データのうちの描画データ３２を構成する部分を、次回の受信データ（後続の受信データ）とし（Ｓ４）、受信データのうちのヘッダー３１を構成する部分について、ステップＳ５の処理を行う。
【００５４】
ステップＳ３において、受信データがヘッダー３１を構成するものと判定された場合は（Ｓ３：ヘッダー）、保存処理部１３３は、今回の受信データの記憶が、受信ヘッダー３１（受信ジョブデータ３のヘッダー３１）の初回の記憶となるか否か（即ち、受信ヘッダー３１（受信ヘッダー３１の一部）が未だ記憶装置１４に記憶されていないかどうか）を判定する（Ｓ５）。具体的には、例えば、保存処理部１３３は、対象管理データ４のヘッダーポインター４１がＮＵＬＬであるか否かを判定することにより、今回の受信データの記憶が、受信ヘッダー３１の初回の記憶となるか否かを判定することができる。
【００５５】
受信ヘッダー３１の初回の記憶となる場合（即ち、ヘッダーポインター４１がＮＵＬＬである場合）は（Ｓ３：ＹＥＳ）、保存処理部１３３は、受信データを記憶装置１４に記憶する（Ｓ６）。そして、保存処理部１３３は、その記憶された受信データを、受信ヘッダー３１として、対象管理データ４に関連付ける（Ｓ７）。具体的には、保存処理部１３３は、その記憶された受信データの記憶領域上の位置を、対象管理データ４のヘッダーポインター４１に設定する。その後、ステップＳ１７の処理が行われる。
【００５６】
一方、受信ヘッダー３１の初回の記憶とはならない場合（即ち、既に受信ヘッダー３１（受信ヘッダー３１の一部）が記憶済みである場合であり、ヘッダーポインター４１がＮＵＬＬでない場合）は、保存処理部１３３は、その記憶済みの受信ヘッダー３１（受信ヘッダー３１の一部）に受信データを追加して記憶する（Ｓ８）。このステップＳ８の処理が、受信ヘッダー３１を構成する全ての受信データ（正確には、初回に記憶されたもの（ステップＳ６で記憶されたもの）を除く）について行われることにより、対象管理データ４のヘッダーポインター４１が指しているデータが、受信ヘッダー３１として完成する。その後、ステップＳ１７の処理が行われる。
【００５７】
ステップＳ３において、受信データが描画データ３２を構成するものと判定された場合は（Ｓ３：描画データ）、比較処理部１３２は、所定の一致フラグが一致していることを示す値（本実施形態ではＯＮ）となっているか否かを判定する（Ｓ９）。ここで、一致フラグとは、受信描画データ３２（受信ジョブデータ３の描画データ３２）と、比較対象描画データ３２（比較の対象とされる記憶ジョブデータ３の描画データ３２）とが一致しているか否かを示すフラグである。より正確には、一致フラグとは、現時点において両描画データ３２が一致していると判定されているか否かを示すフラグである。つまり、本実施形態では、受信描画データ３２を構成する受信データごと（即ち、受信描画データ３２の一部分ごと）に、比較対象描画データ３２との比較が行われる。従って、受信描画データ３２のうちの受信済みの部分と、比較対象描画データ３２の一部（上記受信済みの部分に対応する部分）とが一致していれば、一致フラグはＯＮとされている。そして、例えば、その後、上記受信済み以外の残りの部分が、上記比較対象描画データ３２の一部以外の部分と比較され、その結果一致しなかった場合は、一致フラグはＯＦＦに変更される。従って、受信描画データ３２を構成する受信データの全てについて比較処理が行われ、最終的に一致フラグがＯＮである場合に、受信描画データ３２は、比較対象描画データ３２と一致していると判定されたことになる。
【００５８】
比較対象描画データ３２が複数ある場合の一致フラグは、例えば、図５に示されるように、それぞれの比較対象描画データ３２について受信描画データ３２と一致しているか否か（ＯＮかＯＦＦか）を示すデータとされる。そして、この図５のような一致フラグが採用される場合は、複数の比較対象描画データ３２のそれぞれのフラグ６のいずれかがＯＮのときに、ステップＳ９の判定において“ＯＮ”と判定され、複数の比較対象描画データ３２のそれぞれのフラグ６の全てがＯＦＦのときに、ステップＳ９の判定において“ＯＦＦ”と判定される。尚、本実施形態において、一致フラグの初期値は、ＯＮである。以下の説明においては、説明の簡単のため、比較対象描画データ３２は１つであるとする。
【００５９】
ステップＳ９において、一致フラグがＯＮである場合（即ち、受信描画データ３２と比較対象描画データ３２とが現時点において一致していると判定されている場合）は（Ｓ９：ＹＥＳ）、比較処理部１３２は、比較対象描画データ３２を記憶装置３２から読み出す（Ｓ１０）。
【００６０】
そして、比較処理部１３２は、受信データと比較対象描画データ３２の対応部分とを比較し、それらが一致しているか否かを判定する（Ｓ１１、Ｓ１２）。比較対象描画データ３２の対応部分は、例えば、これまでの一致部分と、受信データのサイズとに基づいて特定することができる。即ち、比較処理部１３２は、比較対象描画データ３２からこれまでの一致部分を除いたデータのうちの先頭から受信データのサイズ分のデータを、対応部分と特定することができる。
【００６１】
受信データと比較対象描画データ３２の対応部分とが一致した場合は（Ｓ１２：ＹＥＳ）、一致フラグはＯＮのままとされ、ステップＳ１７の処理が行われる。
【００６２】
一方、受信データと比較対象描画データ３２の対応部分とが一致しなかった場合は（Ｓ１２：ＮＯ）、保存処理部１３３は、これまでに受信した、受信描画データ３２を構成する受信データを結合し、その結合データを記憶装置１４に記憶する（Ｓ１３）。そして、保存処理部１３３は、その記憶された結合データを、受信ジョブデータ３の描画データ３２として、対象管理データ４に関連付ける（Ｓ１４）。具体的には、保存処理部１３３は、その記憶された結合データの記憶領域上の位置を、対象管理データ４の描画データポインター４２に設定する。このように、受信データと比較対象描画データ３２の対応部分とが一致しなかった場合は、受信描画データ３２と比較対象描画データ３２とは一致しないことになるので、受信描画データ３２が、新規に記憶装置１４に記憶される。
【００６３】
その後、比較処理部１３２は、一致フラグをＯＦＦに変更する（Ｓ１５）。その後、ステップＳ１７の処理が行われる。
【００６４】
ステップＳ９において、一致フラグがＯＦＦである場合（即ち、受信描画データ３２と比較対象描画データ３２とが一致しないと判定されている場合）は（Ｓ９：ＮＯ）、保存処理部１３３は、ステップＳ１３で記憶された、記憶済みの受信描画データ３２（受信描画データ３２の一部）に受信データを追加して記憶する（Ｓ１６）。
【００６５】
ステップＳ１７では、後続の受信データがあるかどうかが判定される（Ｓ１７）。
【００６６】
後続の受信データがある場合は（Ｓ１７：ＹＥＳ）、その後続の受信データが受信され、その受信データについて、再度ステップＳ３〜Ｓ１６の処理が行われる。
【００６７】
一方、後続の受信データがない場合（即ち、受信ジョブデータ３を構成する全ての受信データが受信された場合）は（Ｓ１７：ＮＯ）、保存処理部１３３は、最終的に一致フラグがＯＮとなっているか否かを判定する（Ｓ１９）。
【００６８】
最終的に一致フラグがＯＮとなっている場合（即ち、受信描画データ３２と比較対象描画データ３２とが一致すると判定された場合）は（Ｓ１９：ＹＥＳ）、保存処理部１３３は、比較対象描画データ３２を、受信ジョブデータ３の描画データ３２として、対象管理データ４に関連付ける（Ｓ２０）。具体的には、保存処理部１３３は、比較対象描画データ３２の記憶領域上の位置を、対象管理データ４の描画データポインター４２に設定する。その後、保存処理部１３３は、比較対象描画データ３２に付与されている参照数５の値を１増やす。これにより、受信ジョブデータ３と比較対象ジョブデータ３とが、記憶装置１４上において、同じ描画データ３２（比較対象描画データ３２）を共有することになる。その後、受信ジョブデータ３について出力処理が行われる。
【００６９】
一方、最終的に一致フラグがＯＦＦとなっている場合（即ち、受信描画データ３２と比較対象描画データ３２とが一致しないと判定された場合）は（Ｓ１９：ＮＯ）、受信ジョブデータ３について出力処理が行われる。尚、この場合は、既にステップＳ１３及びステップＳ１６において、受信描画データ３２が記憶装置１４に記憶されている。
【００７０】
以上説明したように、本実施形態では、受信ジョブデータ３を記憶装置１４に記憶する際、受信描画データ３２が比較対象描画データ３２のいずれかと一致するか否かが判定されて、一致すると判定された場合に受信描画データ３２の記憶装置１４への記憶が省略される。これにより、記憶装置１４への書き込み量が抑えられ、記憶装置１４の書き込み回数に上限がある場合は、記憶装置１４の延命が図られる。
【００７１】
本実施形態の変形例として、受信描画データ３２と比較対象描画データ３２とが一致するか否かの判定は、それぞれの描画データ３２から生成されたハッシュ値が一致するか否かを判定することにより行われてもよい。このようにすることで、描画データ３２自体が一致しているか否かを判定するよりも、比較処理に要する計算コストを削減することができる。
【００７２】
また、上述したように、複数の記憶済みの描画データ３２の中から、幾つかの描画データ３２を選択し（例えば、記憶された日時が新しいものを順に所定数だけ選択し、或いは、参照数５の値の大きいもの（即ち、一致する頻度が高いもの）を順に所定数だけ選択し）、その選択された描画データ３２を比較の対象（比較対象描画データ３２）とすることができる。比較の対象数を減らすことにより、比較処理に要する計算コストを削減することができる。従って、ＣＰＵ１３の処理能力に合わせて比較の対象数を減らすことができるので、ＣＰＵ１３に過度の処理負荷をかけないようにすることができる。
【００７３】
また、ヘッダー３１の一部をも比較の対象とすることができる。即ち、上述したように、受信ジョブデータ３のうちのジョブ固有データ（ジョブＩＤやタイムスタンプ等）を除いた部分が比較の対象とされ、そのジョブ固有データを除いた部分を一単位として記憶するか否かが判定されてもよい。このようにすることで、ヘッダー３１の一部についても、記憶済みのものと一致する場合は、その書き込みを省略することができるので、描画データ３２だけを比較の対象とする場合よりも更に書き込み量を抑えることが可能となる。
【００７４】
図６は、記憶ジョブデータ３を記憶装置１４から削除する処理のフローチャートである。この処理は、例えば、保存処理部１３３によって行われる。保存処理部１３３は、例えば、受信ジョブデータ３等を記憶装置１４に記憶する際に記憶装置１４の空き容量をチェックし、データを書き込むだけの空き容量が得られない場合に、この図６の処理を実行することができる。
【００７５】
まず、保存処理部１３３は、書き込もうとしているデータの量が記憶装置１４の空き容量よりも大きいか否かを判定する（Ｓ３０）。
【００７６】
ステップＳ３０において、書き込もうとしているデータの量が記憶装置１４の空き容量よりも大きいと判定された場合は（Ｓ３０：ＹＥＳ）、保存処理部１３３は、記憶装置１４に記憶された日時が最古の管理データ４を検索する（Ｓ３１）。
【００７７】
次に、保存処理部１３３は、ステップＳ３１で検索された管理データ４（最古の管理データ４）が参照しているヘッダー３１を、記憶装置１４から削除する（Ｓ３２）。
【００７８】
次に、保存処理部１３３は、最古の管理データ４が参照している描画データ３２（以下、「参照描画データ」）に付与されている参照数５の値を１減らす（Ｓ３３）。
【００７９】
その後、保存処理部１３３は、参照描画データ３２に付与されている参照数５の値が“０”となっているか否か（即ち、参照描画データ３２を参照している管理データ４が存在しなくなったか否か）を判定する（Ｓ３４）。
【００８０】
参照描画データ３２に付与されている参照数５の値が“０”となっていない場合は（Ｓ３４：ＮＯ）、ステップＳ３６の処理が行われる。
【００８１】
一方、参照描画データ３２に付与されている参照数５の値が“０”となっている場合は（Ｓ３４：ＹＥＳ）、保存処理部１３３は、参照描画データ３２を記憶装置１４から削除する（Ｓ３５）。
【００８２】
その後、保存処理部１３３は、最古の管理データ４を記憶装置１４から削除する（Ｓ３６）。
【００８３】
ステップＳ３０〜ステップＳ３６の処理が、書き込もうとしているデータの量が記憶装置１４の空き容量よりも小さくなるまで、繰り返して行われる。
【００８４】
ステップＳ３０において、書き込もうとしているデータの量が記憶装置１４の空き容量よりも小さいと判定された場合は（Ｓ３０：ＮＯ）、保存処理部１３３は、データを記憶装置１４に記憶する（Ｓ３７）。
【００８５】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【符号の説明】
【００８６】
１…印刷装置、１１…入出力Ｉ／Ｆ、１２…ＲＡＭ、１３…ＣＰＵ、１３１…構造解析部、１３２…比較処理部、１３３…保存処理部、１３４…選択部、１３５…画像処理部、１３６…画像出力部、１４…記憶装置、１５…ＲＯＭ、２…ホスト装置、３…印刷ジョブデータ、３１…ヘッダー、３２…描画データ、４…管理データ、４１…ヘッダーポインター、４２…描画データポインター、５…参照数
【図１】
2010221476.tif 000003
【図２】
2010221476.tif 000004
【図３】
2010221476.tif 000005
【図４】
2010221476.tif 000006
【図５】
2010221476.tif 000007
【図６】
2010221476.tif 000008