(57)【特許請求の範囲】
【請求項１】
画像処理に関するデータを蓄積するストリームバッファと、
前記ストリームバッファにコピーされたデータサイズをカウントする第１カウント手段と、
前記ストリームバッファから読み出されたデータを解析する解析手段と、
前記ストリームバッファから読み出されたデータのデータサイズをカウントする第２カウント手段と、
前記解析手段においてエラーが発生した場合に、前記第１カウント手段によるカウント数と前記第２カウント手段によるカウント数との差分に基づいて、前記データ中のいずれの部分においてエラーが発生したかを特定するエラー発生部分特定手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
前記第１カウント手段および前記第２カウント手段は、バイト数をカウントするバイトカウンタであり、
前記解析手段においてエラーが発生した時点の前記第１カウント手段によるカウント数をＸ、前記第２カウント手段によるカウント数をＺとしたときに、前記エラー発生部分特定手段は、前記データの先頭からＸ−Ｚバイト目の１つ前の処理単位を、エラーが発生した部分と特定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１カウント手段および前記第２カウント手段は、インクリメンタルカウンタであることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記ストリームバッファは、ホストバッファから取得したデータを蓄積し、当該データのサイズは可変であることを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
画像処理に関するデータをストリームバッファに蓄積する蓄積ステップと、
前記蓄積ステップにおいて、前記ストリームバッファにコピーされたデータサイズをカウントする第１カウントステップと、
前記ストリームバッファから読み出されたデータを解析する解析ステップと、
前記ストリームバッファから読み出されたデータのデータサイズをカウントする第２カウントステップと、
前記解析ステップにおいてエラーが発生した場合に、前記第１カウントステップにおけるカウント数と前記第２カウントステップにおけるカウント数との差分に基づいて、前記データ中のいずれの部分においてエラーが発生したかを特定するエラー発生部分特定ステップと
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に関するデータの解析を行う画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
印刷装置(プリンタ)等の画像処理装置内部で動作するＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）処理プログラムは、印刷制御装置(プリンタドライバ等)から受信した ＰＤＬ データを、内部の一時バッファに蓄えながら、ある単位（トークン等）毎にデータを読み出して解析し、処理を行なっている。
【０００３】
また、画像処理装置におけるエラー検出技術も様々開発されており、例えば、描画家かに影響するエラーである場合にのみエラー表示を行うものが知られている（例えば、「特許文献１」参照）。
【特許文献１】特開２００４−５０５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＰＤＬ処理プログラムによるデータ処理中に何らかのエラーが発生した場合、プリンタはジョブリセットやエラー出力を行なう。しかし、これだけではユーザはエラーが発生した事実しか知ることができず、データのどの部分が原因でエラーが発生したのかを知ることができない。
【０００５】
また、ＰＤＬ処理プログラムは、処理中のあるトークンでエラーが発生しても、それがＰＤＬデータの先頭（即ち印刷ジョブの先頭）からどの部分（何バイト目）で発生したのかを知る手段が無く、それをユーザに知らせることができなかった。
【０００６】
本発明は、上記に鑑みてなされたものであって、エラー部分を特定することのできる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、画像処理装置であって、画像処理に関するデータを蓄積するストリームバッファと、前記ストリームバッファにコピーされたデータサイズをカウントする第１カウント手段と、前記ストリームバッファから読み出されたデータを解析する解析手段と、前記ストリームバッファから読み出されたデータのデータサイズをカウントする第２カウント手段と、前記解析手段においてエラーが発生した場合に、前記第１カウント手段によるカウント数と前記第２カウント手段によるカウント数との差分に基づいて、前記データ中のいずれの部分においてエラーが発生したかを特定するエラー発生部分特定手段とを備えたことを特徴とする。
【０００８】
また、請求項２にかかる発明は、請求項１に記載の画像処理装置であって、前記第１カウント手段および前記第２カウント手段は、バイト数をカウントするバイトカウンタであり、前記解析手段においてエラーが発生した時点の前記第１カウント手段によるカウント数をＸ、前記第２カウント手段によるカウント数をＺとしたときに、前記エラー発生部分特定手段は、前記データの先頭からＸ−Ｚバイト目の１つ前の処理単位を、エラーが発生した部分と特定することを特徴とする。
【０００９】
また、請求項３にかかる発明は、請求項１または２に記載の画像処理装置であって、前記第１カウント手段および前記第２カウント手段は、インクリメンタルカウンタであることを特徴とする。
【００１０】
また、請求項４にかかる発明は、請求項１から３のいずれか一項に記載の画像処理装置であって、前記ストリームバッファは、ホストバッファから取得したデータを蓄積し、当該データのサイズは可変であることを特徴とする。
【００１１】
また、請求項５にかかる発明は、画像処理方法であって、画像処理に関するデータをストリームバッファに蓄積する蓄積ステップと、前記蓄積ステップにおいて、前記ストリームバッファにコピーされたデータサイズをカウントする第１カウントステップと、前記ストリームバッファから読み出されたデータを解析する解析ステップと、前記ストリームバッファから読み出されたデータのデータサイズをカウントする第２カウントステップと、前記解析ステップにおいてエラーが発生した場合に、前記第１カウントステップにおけるカウント数と前記第２カウントステップにおけるカウント数との差分に基づいて、前記データ中のいずれの部分においてエラーが発生したかを特定するエラー発生部分特定ステップとを有することを特徴とする。
【発明の効果】
【００１２】
請求項１にかかる発明によれば、ストリームバッファが、画像処理に関するデータを蓄積し、第１カウント手段が、ストリームバッファにコピーされたデータサイズをカウントし、解析手段が、ストリームバッファから読み出されたデータを解析し、第２カウント手段が、ストリームバッファから読み出されたデータのデータサイズをカウントし、エラー発生部分特定手段が、解析手段においてエラーが発生した場合に、第１カウント手段によるカウント数と第２カウント手段によるカウント数との差分に基づいて、データ中のいずれの部分においてエラーが発生したかを特定するので、エラーが発生したことのみならずエラーが発生した部分についても通知することができるという効果を奏する。
【００１３】
また、請求項２にかかる発明によれば、第１カウント手段および第２カウント手段が、バイト数をカウントするバイトカウンタであり、解析手段においてエラーが発生した時点の第１カウント手段によるカウント数をＸ、第２カウント手段によるカウント数をＺとしたときに、エラー発生部分特定手段が、データの先頭からＸ−Ｚバイト目の１つ前の処理単位を、エラーが発生した部分と特定するので、エラーが発生したことのみならずエラーが発生した部分についても通知することができるという効果を奏する。
【００１４】
また、請求項３にかかる発明によれば、第１カウント手段および第２カウント手段が、インクリメンタルカウンタであるので、正確にエラー発生部分を特定することができるという効果を奏する。
【００１５】
また、請求項４にかかる発明によれば、ストリームバッファは、ホストバッファから取得したデータを蓄積し、当該データのサイズは可変であるので、このような場合にもエラー発生部分を特定することができるという効果を奏する。
【００１６】
また、請求項５にかかる発明によれば、蓄積ステップにおいて、画像処理に関するデータをストリームバッファに蓄積し、第１カウントステップにおいて、蓄積ステップにおいて、ストリームバッファにコピーされたデータサイズをカウントし、解析ステップにおいて、ストリームバッファから読み出されたデータを解析し、第２カウントステップにおいて、ストリームバッファから読み出されたデータのデータサイズをカウントし、エラー発生部分特定ステップにおいて、解析ステップにおいてエラーが発生した場合に、第１カウントステップにおけるカウント数と第２カウントステップにおけるカウント数との差分に基づいて、データ中のいずれの部分においてエラーが発生したかを特定するので、エラーが発生したことのみならずエラーが発生した部分についても通知することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明にかかる画像処理装置および画像処理方法の最良な実施の形態を詳細に説明する。
【００１８】
図１は、実施の形態にかかる画像処理装置１の全体構成を示すブロック図である。画像処理装置１は、パーソナルコンピュータ（ＰＣ）２とイーサネットケーブルやその他の媒体を通して接続されている。
【００１９】
画像処理装置１は、入力インターフェース（Ｉ／Ｆ）１００と、ホストバッファ１１０と、ストリームバッファ１２０と、コピーカウンタ１２２と、処理カウンタ１２４と、解析部１３０と、描画処理部１４０と、エラー発生部分特定部１５０と、通知部１６０とを備えている。
【００２０】
入力Ｉ／Ｆ１００は、ＰＣ２からＰＤＬデータを受信し、ホストバッファ１１０に蓄積する。ホストバッファ１１０は、一定サイズしか有さない。したがってホストバッファ１１０が溢れるとデータを受信できなくなる。そこで、ＰＣ２から受信したＰＤＬデータは、ホストバッファ１１０からストリームバッファ１２０に所定のサイズごとにコピーされる。
【００２１】
画像処理装置１には、単一のもしくは複数のＰＤＬ処理プログラムが搭載されており、ストリームバッファ１２０は、ＰＤＬ処理プログラムにより利用される。なお、画像処理装置１における各部の処理は、各ＰＤＬ処理プログラムにより実現される。
【００２２】
解析部１３０は、ストリームバッファ１２０から読み出されたＰＤＬデータを解析する。なお、解析部１３０は、例えばトークンなど所定の単位ごとにＰＤＬデータを解析する。描画処理部１４０は、画像描画等の処理を行う。
【００２３】
コピーカウンタ１２２および処理カウンタ１２４は、データサイズを計測、記憶するバイトカウンタである。コピーカウンタ１２２は、ホストバッファ１１０からストリームバッファ１２０にコピーされたデータサイズ(回数を含む)を例えば、バイト単位でカウントする。具体的には、データがコピーされる毎にカウンタをインクリメントする。これにより、ＰＤＬデータの先頭からどこまでのサイズがストリームバッファ１２０にコピーされたかがわかる。
【００２４】
処理カウンタ１２４は、ストリームバッファ１２０中のデータが、どの程度読み出されたか、すなわち解析部１３０により処理されたかをカウントする。具体的には、データが読み出される毎に、読み出したデータサイズ分のバイト数をカウンタでインクリメントする。
【００２５】
エラー発生部分特定部１５０は、解析部１３０または描画処理部１４０においてエラーが発生した場合に、コピーカウンタ１２２と処理カウンタ１２４のカウント数の差分を取る。これにより、ＰＤＬ処理プログラムが、現在、ＰＤＬデータの先頭からどこまで処理を行なったかを特定することができる。すなわち、ＰＤＬ処理中にエラーが発生した場合に、ＰＤＬデータのいずれの部分でエラーが発生したかを特定することができる。
【００２６】
通知部１６０は、エラーが発生した場合に、エラーが発生した旨を通知するとともに、エラー発生部分特定部１５０により特定したエラー部分を通知する。具体的には、画像処理装置１に設けられた表示画面（図示せず）にエラー発生の旨およびエラー部分を表示する。
【００２７】
図２は、画像処理装置１における処理を説明するためのフローチャートである。まず、解析部１３０は、ストリームバッファ１２０のＰＤＬデータの有無を確認する。ストリームバッファ１２０にＰＤＬデータが蓄積されていない場合には（ステップＳ１００，Ｎｏ）、ホストバッファ１１０からＰＤＬデータを取得し、ストリームバッファ１２０に書き込む（ステップＳ１０２）。次に、コピーカウンタ１２２は、取得したデータサイズをカウントする（ステップＳ１０４）。次に、解析部１３０は、ストリームバッファ１２０からＰＤＬデータを読み出し、解析を開始する（ステップＳ１１０）。ステップＳ１００において、ＰＤＬデータが蓄積されている場合には（ステップＳ１００，Ｙｅｓ）、ステップＳ１１０へ進む。
【００２８】
次に、処理カウンタ１２４は、解析部１３０が処理したＰＤＬデータのデータサイズをカウントする（ステップＳ１１２）。この間にエラーが発生した場合には（ステップＳ１１４，Ｙｅｓ）、エラー発生部分特定部１５０は、コピーカウンタ１２２によりカウントされたデータサイズと処理カウンタ１２４によりカウントされたデータサイズの差分を算出する（ステップＳ１１６）。次に、エラーが発生して旨およびエラーが発生して部分を通知する（ステップＳ１１８）。以上の処理をＰＤＬデータに対する解析が終了するまで繰り返す（ステップＳ１２０）。以上で、画像処理装置１における処理が完了する。
【００２９】
次に、画像処理装置１における処理を図３および図４を参照しつつより具体的に説明する。図３は、ＰＤＬデータの一例を示す図である。図４−１から図４−３は、エラー部分を特定する処理を説明するための図である。画像処理装置１の入力Ｉ／Ｆ１００が図３に示すＰＤＬデータを取得すると、ＰＤＬデータは、ホストバッファ１１０に蓄積される。このとき、図４−１に示すように、Ｘバイトがストリームバッファ１２０にコピーされる。このとき、コピーカウンタ１２２は、Ｘバイトとカウントする。
【００３０】
次に、解析部１３０による処理が開始されると、図４−２に示すように、ＰＤＬデータが順次ストリームバッファ１２０から読み出される。ストリームバッファ１２０からＰＤＬデータが読み出される度に処理カウンタ１２４は読み出されたデータサイズをカウントする。図４−２に示す時点では、Ｙバイトとカウントされている。図４−３に示す処理時点、すなわち処理カウンタ１２４がＺバイトとカウントした時点において、エラーが発生すると、エラー発生部分特定部１５０は、ＸバイトとＺバイトの差分を算出し、ＰＤＬデータの先頭からＸ−Ｚバイト目の１つ前のトークンをエラー発生箇所として特定する。図４−３に示す例においては、「０９０  ｌｉｎｅｔｏ」がエラー発生箇所である。
【００３１】
このように、実施の形態にかかる画像処理装置１によれば、エラーが発生した旨のみならずエラー発生箇所を通知することができる。
【００３２】
図５は、画像処理装置１のハードウェア構成を示す図である。画像処理装置１は、ハードウェア構成として、画像処理装置１における画像処理を実行する画像処理プログラムなどが格納されているＲＯＭ５２と、ＲＯＭ５２内のプログラムに従って画像処理装置１の各部を制御するＣＰＵ５１と、画像処理装置１の制御に必要な種々のデータを記憶するＲＡＭ５３と、ホストＩ／Ｆ５４と、プリンタエンジン５５と接続するエンジンＩ／Ｆ５６と、各種データを記憶するＨＤＤ５７と、各部を接続するバス６２とを備えている。
【００３３】
先に述べた画像処理装置１における画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（Ｒ）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。
【００３４】
この場合には、画像処理プログラムは、画像処理装置１において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
【００３５】
また、本実施の形態の画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００３６】
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
【００３７】
そうした第１の変更例としては、処理カウンタ１２４は、解析部１３０による処理が行われる度に、ストリームバッファ１２０中の残データサイズ分のバイト数をカウンタでデクリメントしてもよい。この場合には、エラー発生部分特定部１５０は、ストリームバッファサイズとの差分を算出し、エラー部分を特定する。
【００３８】
また、第２の変更例としては、ホストバッファからストリームバッファへのコピーは、一定のサイズで行なわれるが、これを可変サイズにしてもよい。可変サイズにした場合であっても、コピーカウンタ１２２の構成および処理等は変更を要さない。
【図面の簡単な説明】
【００３９】
【図１】実施の形態にかかる画像処理装置１の全体構成を示すブロック図である。
【図２】画像処理装置１における処理を説明するためのフローチャートである。
【図３】ＰＤＬデータの一例を示す図である。
【図４−１】エラー部分を特定する処理を説明するための図である。
【図４−２】エラー部分を特定する処理を説明するための図である。
【図４−３】エラー部分を特定する処理を説明するための図である。
【図５】画像処理装置１のハードウェア構成を示す図である。
【符号の説明】
【００４０】
１  画像処理装置
２  ＰＣ
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  ホストI／Ｆ
５５  プリンタエンジン
５６  エンジンI／Ｆ
５７  ＨＤＤ
６２  バス
１００  入力Ｉ／Ｆ
１１０  ホストバッファ
１２０  ストリームバッファ
１２２  コピーカウンタ
１２４  処理カウンタ
１３０  解析部
１４０  描画処理部
１５０  エラー発生部分特定部
１６０  通知部
【図１】
0004727440.tif 000002
【図２】
0004727440.tif 000003
【図３】
0004727440.tif 000004
【図４−１】
0004727440.tif 000005
【図４−２】
0004727440.tif 000006
【図４−３】
0004727440.tif 000007
【図５】
0004727440.tif 000008