(57)【要約】【課題】画像データ端部だけでなく、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができる画像処理装置および画像処理装置の制御方法を提供することを目的とする。【解決手段】入力した画像データ中に存在する画像矩形の端部と、符号化処理における符号化ブロックの端部とが一致するように、符号化ブロックを設定し、この設定した符号化ブロックに関する情報を生成し、上記設定した符号化ブロックを符号化し、上記符号化ブロック情報と上記符号化した符号化データとに基づいて、上記符号化データのうちで重複した領域を削除して、上記符号化データを復号化する画像処理装置である。【選択図】図４
2008109389.tif 000002
【特許請求の範囲】
【請求項１】
符号化と復号化とを行う画像処理装置において、
画像データを入力する画像データ入力手段と；
上記画像データ入力手段を介して入力した画像データ中に存在する画像矩形の端部と、符号化処理における符号化ブロックの端部とが一致するように、符号化ブロックが重複して設定されることも許容して、符号化ブロックを設定する符号化ブロック設定手段と；
上記符号化ブロック設定手段が設定した符号化ブロックに関する情報を生成する符号化ブロック情報生成手段と；
上記符号化ブロック設定手段が設定した符号化ブロックを符号化する符号化手段と；
上記符号化ブロック情報と上記符号化手段が符号化した符号化データとに基づいて、上記符号化データのうちで重複した領域を削除して、上記符号化データを復号化する復号化手段と；
を有することを特徴とする画像処理装置。
【請求項２】
請求項１において、
上記符号化ブロックは、複数の画素によって構成されている符号化ブロックであることを特徴とする画像処理装置。
【請求項３】
請求項１において、
上記符号化ブロック情報は、符号化ブロック識別子と重複領域情報とが含まれている情報であることを特徴とする画像処理装置。
【請求項４】
請求項１において、
上記符号化データは、ＪＰＥＧ形式に符号化されたデータであることを特徴とする画像処理装置。
【請求項５】
符号化と復号化とを行う画像処理装置の制御方法において、
画像データを入力する画像データ入力工程と；
上記画像データ入力工程で入力した画像データ中に存在する画像矩形の端部と、符号化処理における符号化ブロックの端部とが一致するように、符号化ブロックが重複して設定されることも許容して、符号化ブロックを設定する符号化ブロック設定工程と；
上記符号化ブロック設定工程で設定された符号化ブロックに関する情報を生成する符号化ブロック情報生成工程と；
上記符号化ブロック設定工程で設定された符号化ブロックを符号化する符号化工程と；
上記符号化ブロック情報と上記符号化工程で符号化された符号化データとに基づいて、上記符号化データのうちで重複した領域を削除して、上記符号化データを復号化する復号化工程と；
を有することを特徴とする画像処理装置の制御方法。
【請求項６】
画像データを入力する画像データ入力手段と、上記画像データ入力手段を介して入力した画像データ中に存在する画像矩形の端部と、符号化処理における符号化ブロックの端部とが一致するように、符号化ブロックが重複して設定されることも許容して、符号化ブロックを設定する符号化ブロック設定手段と、上記符号化ブロック設定手段が設定した符号化ブロックに関する情報を生成する符号化ブロック情報生成手段と、上記符号化ブロック設定手段が設定した符号化ブロックを符号化する符号化手段と、上記符号化ブロック情報と上記符号化手段が符号化した符号化データとに基づいて、上記符号化データのうちで重複した領域を削除して、上記符号化データを復号化する復号化手段とを具備する画像処理装置と；
印刷装置と；
を有することを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置と復号化装置とを有し、上記符号化装置から供給される符号化データに基づいて、復号化装置が符号化データを復号化する画像処理装置および画像処理装置の制御方法に関する。
【背景技術】
【０００２】
従来、ホスト端末等に保存されているデータを、プリンタで印刷する場合、ホスト端末でプリンタ処理が可能なデータ形式に変換し、この変換後のデータをプリンタに送信し、プリンタは、必要があれば、データ列の並べ替えや解像度変換を行い、印刷する。
【０００３】
この場合、ホスト端末が行う処理として、色空間変換処理や量子化処理等があり、用紙の種類や、印刷品位等の印刷設定に応じて、上記ホスト端末が行う処理は、互いに異なることが一般的である。
【０００４】
しかし、近年、プリンタの高性能化や高機能化に伴い、プリンタが、色空間変換処理や量子化処理等を実行することが可能である。
【０００５】
そこで、ホスト端末が、データの符号化処理のみを実行し、符号化後のデータを、プリンタに送信し、プリンタが、復号化処理や色空間変換処理、量子化処理、解像度変換処理等を実行し、印刷するシステムも存在している。
【０００６】
この場合、ホスト端末が符号化処理する際の符号化方式として、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）が用いられることがある。このＪＰＥＧは、デジタルカメラ等の記録方式として広く普及し、一般的なデータ形式であり、また、圧縮率が高く、転送するデータサイズを小さくすることができる。さらに、プリンタにはコピー機能を実現するために、ハードウェアのＪＰＥＧデコーダを搭載しているものがあり、ＪＰＥＧは、高速に復号化処理が可能である。
【０００７】
このＪＰＥＧは、高周波成分に関して敏感でないという人間の視覚特性に着目し、画像信号を、空間領域から周波数領域に変換した後に、高周波成分を削減することによって、高圧縮を実現している。なお、周波数領域への変換処理は、ＭＣＵと呼ばれるブロック単位で行われる。
【０００８】
このようなブロック単位で符号化処理を行う際に画質劣化を低減するシステムが知られている（たとえば、特許文献１、特許文献２参照）。
【０００９】
特許文献１には、ブロック単位で行う符号化処理において、画像データ端部でブロック内の画像データが不足する場合、画像データの端部を繰り返し用いることによって、画像データ端部の画質劣化を低減するシステムが記載されている。
【００１０】
特許文献２には、ブロック単位で行う符号化処理において、画像データの端部でブロック内の画像データが不足する場合、画像データ外に存在するデータを用いることによって、画像データ端部の画質劣化を低減するシステムが記載されている。
【特許文献１】特開２０００−６９２９３号公報
【特許文献２】特開２００３−２８９４４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、上記特許文献１記載の発明では、画像データ端部の画質劣化を低減することはできるが、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができないという問題がある。
【００１２】
つまり、相関のない複数の画像矩形から構成されるブロックに対して、周波数領域への変換を行うと、このブロックに高周波成分を持たせることになり、この結果、高周波成分を削減する符号処理において、画質が劣化するという問題がある。
【００１３】
また、上記特許文献２記載の発明では、特許文献１記載の発明と同様に、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができないという問題がある。さらに、画像データの外側に有効なデータがない場合、画像データ端部の画質劣化を低減することができないという問題がある。
【００１４】
本発明は、画像データ端部だけでなく、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができる画像処理装置および画像処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、画像データ入力手段を介して入力した画像データ中に存在する画像矩形の端部と、符号化処理における符号化ブロックの端部とが一致するように、符号化ブロックを設定する符号化ブロック設定手段を有する。また、本発明は、上記符号化ブロック設定手段が設定した符号化ブロックに関する情報を生成する符号化ブロック情報生成手段と、上記符号化ブロック設定手段が設定した符号化ブロックを符号化する符号化手段とを有する。さらに、本発明は、上記符号化ブロック情報と上記符号化手段が符号化した符号化データとに基づいて、上記符号化データのうちで重複した領域を削除して、上記符号化データを復号化する復号化手段を有する画像処理装置である。
【発明の効果】
【００１６】
本発明によれば、符号化処理部と復号化処理部とを連携して処理するので、画像データの端部だけでなく、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができるという効果を奏する。
【００１７】
つまり、本発明によれば、符号化時に画質が劣化しないように、符号化ブロックを移動して符号化し、復号化時に、符号化データを重複した領域を削除して復号化するので、画像データの端部の画質劣化を低減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
発明を実施するための最良の形態は、次の実施例である。
【実施例１】
【００１９】
図１は、本発明の実施例１である画像処理システムにおけるホスト端末１００の構成を示すブロック図である。
【００２０】
ホスト端末１００は、画像処理装置の例であり、ＣＰＵ１０１と、表示部１０２と、操作指示入力手段としてのマウス１０３と、キーボード１０４と、ＲＯＭ１０５と、ＲＡＭ１０６と、外部記憶装置１０７とを有する。また、ホスト端末１００は、インタフェース部１０８を有し、プリンタ２００と接続されている。
【００２１】
外部記憶装置１０７は、ハードディスクやＦｌｕｓｈ  ＲＯＭによって構成され、印刷データの生成と、プリンタ２００を制御するプリンタドライバプログラム１０９とを格納している。
【００２２】
なお、外部記憶装置がなければ、プリンタドライバプログラム１０９を、ＲＯＭ１０５に格納するようにしてもよい。
【００２３】
プリンタドライバプログラム１０９は、直交変換方式の１つであるＤＣＴ変換、量子化、およびハフマン符号化等を用いてＪＰＥＧ符号化処理を行い、符号化されたデータとその他付加情報をプリントデータとして、プリンタ２００に転送する。なお、上記符号化処理は、ＭＣＵ（Ｍｉｎｉｍｕｍ  Ｃｏｄｅｄ  Ｕｎｉｔ）と呼ばれる８ライン×８画素のブロック単位で行われる。
【００２４】
図２は、実施例１である画像処理システムにおけるプリンタ２００の構成を示すブロック図である。
【００２５】
プリンタ２００は、ＣＰＵ２０１と、表示部２０２と、操作指示入力手段としての操作部２０３と、ＲＯＭ２０４と、ＲＡＭ２０５と、不揮発性ＲＡＭ２０６と、記録部２０７と、読取部２０８と、駆動部２０９と、センサ部２１０とを有する。また、プリンタ２００は、インタフェース部２１１を有し、インタフェース部２１１を介して、ホスト端末１００と接続されている。
【００２６】
ＲＯＭ２０４は、符号化された印刷データを復号化するための復号化処理と、色空間変換、量子化処理等を行う画像処理プログラム２１２とを格納している。
【００２７】
画像処理プログラム２１２は、複数の画素によって構成されているブロック単位で、ＪＰＥＧ符号化された印刷データを、ハフマン復号化、逆量子化、逆ＤＣＴ変換等を用いて画像データを復号化する。この復号化された画像データを、色空間変換と、量子化処理等の変換処理とを行い、この変換処理された印刷データを、記録部２０７に供給する。
【００２８】
不揮発性ＲＡＭ２０６は、バッテリバックアップされたＳＲＡＭ等であり、画像記録装置２００に固有のデータ等を記憶する。記録部２０７は、画像処理プログラム２１２が生成した印刷データが、記録動作するために必要な所定量に達すると、記録動作を実行する。読取部２０８は、原稿画像を読み取り、赤（Ｒ）、緑（Ｇ）および青（Ｂ）色の輝度データを出力する。
【００２９】
駆動部２０９は、記録部２０７、読取部２０８のそれぞれの動作において、給排紙ローラを駆動するためのステッピングモータ、ステッピングモータの駆動力を伝達するギヤと、ステッピングモータとを制御するドライバ回路等によって構成されている。
【００３０】
センサ部２１０は、記録紙幅センサ、記録紙有無センサ、原稿幅センサ、原稿有無センサ、記録媒体検知センサ等によって構成されている。ＣＰＵ２０１は、これらセンサ部２１０が出力した情報に基づいて、原稿と記録紙との状態を検知する。
【００３１】
次に、ホスト端末１００のプリンタドライバプログラム１０９が実行する符号化処理について説明する。
【００３２】
図３は、ホスト端末１００のプリンタドライバプログラム１０９が実行する符号化処理を示すフローチャートである。
【００３３】
まず、Ｓ３０１で、プリンタドライバプログラム１０９の符号化処理部に画像データを供給する。Ｓ３０２で、画等データを符号化するために、画像データに対して符号化ブロック設定処理を行う。なお、この符号化ブロック設定処理について、図４を用いて後述する。Ｓ３０３では、Ｓ３０２で設定された縦方向の符号化ブロックに対する符号化処理が全て終了したかどうかを判断する。Ｓ３０３で、縦方向の符号化ブロックに対する符号化処理が全て終了したと判断すると、Ｓ３０６に進む。
【００３４】
一方、Ｓ３０３で縦方向の符号化ブロックに対する符号化処理が全て終了していないと判断すると、Ｓ３０４に進む。Ｓ３０４では、Ｓ３０２で設定された横方向の符号化ブロックに対する符号化処理が全て終了したかどうかを判断する。Ｓ３０４で、横方向の符号化ブロックに対する符号化処理が全て終了したと判断すると、Ｓ３０３に戻る。
【００３５】
Ｓ３０４で横方向の符号化ブロックに対する符号化処理が全て終了していないと判断すると、Ｓ３０５に進む。Ｓ３０５でその符号化ブロックに対して、ＤＣＴ変換、量子化処理、ハフマン符号化が行われ符号化処理が実行され、Ｓ３０４に戻る。
【００３６】
Ｓ３０３〜Ｓ３０５の処理が繰り返され、全ての符号化ブロックに対する符号化処理が終了すると、Ｓ３０６に進む。Ｓ３０６では、Ｓ３０５で生成した符号化データの先頭にＪＰＥＧヘッダデータを挿入し、ＪＰＥＧ形式の符号化データとする。
【００３７】
このヘッダデータには、ハフマン符号化時に使用したハフマンテーブル、量子化処理時に使用した量子化テーブル等、ＪＰＥＧ復号化処理に必要なデータが含まれている。
【００３８】
最後に、Ｓ３０７で、ＪＰＥＧデータと、後述する重複領域情報７００とを出力し、処理を終了する。
【００３９】
図４は、符号化ブロック設定処理（Ｓ３０２）を示すフローチャートである。
【００４０】
なお、符号化ブロックは、８ライン×８画素によって構成され、画像データの左上端から右方向に順に設定される。横方向の設定が終了すると、下方向に移動し、左端から右方向に順に設定される。最後は、画像データの右下端に設定される。
【００４１】
まず、Ｓ４０１で、符号化ブロックカウンタに１が設定される。このように、符号化ブロックカウンタに１が設定されるのは、現在処理している符号化ブロックが、画像データに対して何番目に設定した符号化ブロックであるかを管理するためである。
【００４２】
Ｓ４０２で、画像データに対する縦方向の符号化ブロック設定が全て終了したかどうかを判断する。Ｓ４０２で縦方向の符号化ブロック設定が全て終了したと判断すると、Ｓ４０９に進む。
【００４３】
一方、Ｓ４０２で縦方向の符号化ブロック設定が全て終了していないと判断すると、Ｓ４０３に進む。Ｓ４０３で、画像データに対する横方向の符号化ブロック設定が全て終了したかどうかを判断する。Ｓ４０３で横方向の符号化ブロック設定が全て終了したと判断すると、Ｓ４０２に戻る。
【００４４】
一方、Ｓ４０３で横方向の符号化ブロック設定が全て終了していないと判断すると、Ｓ４０４に進む。Ｓ４０４で、符号化ブロックが設定されていない領域に対して、８ライン×８画素の符号化ブロックが設定される。Ｓ４０５で、符号化ブロックカウンタの値を１加算する。
【００４５】
Ｓ４０６では、Ｓ４０４で設定された符号化ブロックに、画像矩形の端部が含まれているかどうかを判断する。つまり、符号化ブロックが複数の画像矩形から構成されているかどうかを判断する。
【００４６】
Ｓ４０６で画像矩形の端部が含まれていないと判断すると、つまり、符号化ブロックが単一の画像矩形から構成されていると判断すると、Ｓ４０３に戻る。
【００４７】
一方、Ｓ４０６で画像矩形の端部が含まれていると判断すると、つまり、符号化ブロックが複数の画像矩形から構成されていると判断すると、Ｓ４０７に進む。Ｓ４０７で、符号化ブロックの端部と画像矩形の端部とが一致するように、符号化ブロックを再設定する。このときに、符号化ブロックの端部と画像矩形の端部とが一致するまで、左方向または上方向に符号化ブロックを移動し（符号化ブロックの符号化対象画素を変更し）、符号化ブロックが既に設定されている領域を含むように再設定する。
【００４８】
つまり、画像データを構成する全ての画素に対して、符号化ブロックを設定する必要があり、右方向または下方向に符号化ブロックを移動すると、符号化ブロックが設定されない領域が発生する。したがって、この領域を含むように、左方向または上方向に符号化ブロックを移動して、符号化ブロックを再設定する。
【００４９】
なお、符号化ブロックの再設定については、図５、図６を用いて後述する。
【００５０】
Ｓ４０８で、重複領域情報７００を生成する。重複領域情報７００については、図７に関して説明する。
【００５１】
Ｓ４０２〜Ｓ４０８の処理が繰り返され、全ての領域に対して符号化ブロック設定処理が終了すると、Ｓ４０９で、符号化ブロック設定情報、重複領域情報７００が出力され、処理を終了する。
【００５２】
図５は、Ｓ４０７で行われる符号化ブロック再設定処理を説明する図であり、画像データからある領域を切り出した状態を示す図である。
【００５３】
図５に示す領域に接する上方向および左方向の領域には、既に符号化ブロックが設定されているとする。
【００５４】
図５に示す領域には、画素（０、０）、（１１、０）、（０、７）、（１１、７）で囲まれた画像矩形Ａと、画素（１２、０）、（１９、０）、（１２、７）、（１９、７）で囲まれた画像矩形Ｂとが含まれている。画像矩形Ａは、たとえば黒や他の色のついた文字や線の画像であり、全白画像のような背景部分ではない画像である。矩形領域Ｂは、たとえば全白画像や淡い色のついた背景部分である。
【００５５】
まず、画素（０、０）、（７、０）、（０、７）、（７、７）で囲まれている領域に対して、符号化ブロックを設定する。この符号化ブロックは、画像矩形Ａのデータのみによって構成されているので、符号化ブロックの再設定を行わない。
【００５６】
次に、画素（８、０）、（１５、０）、（８、７）、（１５、７）で囲まれている領域５０１に、符号化ブロックを設定する。この符号化ブロック５０１は、画像矩形Ａのデータと画像矩形Ｂのデータとによって構成されているので、符号化ブロックを再設定する。すなわち、符号化ブロックを移動する（符号化ブロックの符号化対象の画素を変更する）。つまり、符号化ブロックの端部と、画像矩形Ａの端部とが一致するように、符号化ブロック５０１を左方向に４画素、移動する。
【００５７】
これによって、画素（４、０）、（１１、０）、（４、７）、（１１、７）で囲まれている領域５０２に、符号化ブロックを再設定する。
【００５８】
最後に、まだ、符号化ブロックが設定されていない領域、つまり画素（１２、０）、（１９、０）、（１２、７）、（１９、７）で囲まれている領域について、符号化ブロックを設定する。この符号化ブロックは、画像矩形Ｂのデータのみによって構成されるので、符号化ブロックを再設定する必要がない。
【００５９】
図６は、Ｓ４０７で行われる符号化ブロック再設定処理を説明する図であり、画像データからある領域を切り出した状態を示す図である。
【００６０】
画素（０、０）、（７、０）、（０、７）、（７、７）で囲まれている領域と、この領域に接する左方向の領域とには、符号化ブロックが既に設定されているとする。
【００６１】
また、この領域には、画素（０、０）、（７、０）、（０、１１）、（７、１１）で囲まれている画像矩形Ｃと、画素（０、１２）、（７、１２）、（０、１５）、（７、１５）で囲まれている画像矩形Ｄとが含まれている。画像矩形Ｃは、たとえば黒や他の色のついた文字や線の画像であり、全白画像のような背景部分ではない画像である。矩形領域Ｄは、たとえば全白画像や淡い色のついた背景部分である。
【００６２】
まず、画素（０、８）、（７、８）、（０、１５）、（７、１５）で囲まれている領域６０１に、符号化ブロックを設定する。
【００６３】
この符号化ブロック６０１は、画像矩形Ｃと画像矩形Ｄとのデータによって構成されているので、符号化ブロックを再設定する。つまり、符号化ブロックの端部と画像矩形Ｃの端部とが一致するように、符号化ブロックを、上方向に４画素移動する（符号化ブロックの設定対象を、上方向に、４画素変更する）。
【００６４】
これによって、画素（０、４）、（７、４）、（０、１１）、（７、１１）で囲まれている領域６０２に対して、符号化ブロックを再設定する。なお、画素（０、１２）、（７、１２）、（０、１５）、（７、１５）で囲まれている領域に対しては、次回の横方向の符号化ブロック設定処理で設定される。
【００６５】
図７は、Ｓ４０８で生成される重複領域情報７００のデータ構造を示す図である。
【００６６】
重複領域情報７００は、符号化ブロック識別子７１０と、重複領域特定情報７２０とを有する。符号化ブロック識別子７１０は、重複領域（符号化ブロックが重複して設定されている領域）を符号化の対象としている符号化ブロックを識別する識別子である。
【００６７】
符号化ブロック識別子７１０は、画像データ左上端の符号化ブロックを１とし、次に設定した符号化ブロックの識別子を２というように、符号化ブロックを設定する毎に、１ずつ加算する。つまり、符号化ブロックカウンタが、上記加算を実行する。
【００６８】
この符号化ブロック識別子７１０の後に、重複領域特定情報７２０が格納される。重複領域特定情報７２０は、重複領域開始Ｘ座標７２１と、重複領域開始Ｙ座標７２２と、重複領域横画素数７２３と、重複領域縦画素数７２４とによって構成されている。なお、符号化ブロックの左上端の画素を（Ｘ、Ｙ）＝（０、０）とする。
【００６９】
図８は、重複領域情報７００の具体例を示す図である。
【００７０】
画像データにおいて、重複領域（符号化ブロックが重複して設定されている領域）を符号化の対象としている符号化ブロックが、１０番目に設定された符号化ブロックであれば、符号化ブロック識別子７１０に「１０」が格納される。
【００７１】
重複領域開始Ｘ座標値７２１、Ｙ座標値７２２として、それぞれ０を格納し、また、重複領域横画素数７２３として、４を格納し、縦画素数７２４として、８を格納する。
【００７２】
図９は、ホスト端末１００のプリンタドライバプログラム１０９で行われる印刷データ制御を示すフローチャートである。
【００７３】
まず、Ｓ９０１で、ホスト端末１００上で動作する不図示のオペレーティングシステムやアプリケーションプログラムから、プリンタドライバプログラム１０９に、印刷対象となる画像データが供給される。
【００７４】
Ｓ９０２で、図３に示す画像データ符号化処理を実行する。符号化処理を行った結果、ＪＰＥＧデータと重複領域情報７００とが生成される。
【００７５】
Ｓ９０３で、インタフェース部１０８を介して、オペレーティングシステムやアプリケーションプログラムから指定された印刷設定情報を、プリンタ２００へ転送する。この印刷設定情報は、たとえば、印刷用紙や印刷品位等の情報である。
【００７６】
Ｓ９０４で、インタフェース部１０８を介して、重複領域情報７００を、プリンタ２００へ転送する。重複領域情報７００は、重複領域を特定する情報であり、具体的には、符号化ブロック識別子と、符号化ブロック内の重複領域開始Ｘ座標と、符号化ブロック内の重複領域開始Ｙ座標と、重複領域横画素数と、重複領域縦画素数とを有する。Ｓ９０５で、インタフェース部１０８を介して、ＪＰＥＧデータをプリンタ２００へ転送し、処理を終了する。
【００７７】
図１０は、印刷設定情報と重複領域情報７００とＪＰＥＧデータとを、プリンタ２００に転送する際のコマンド形式を示す図である。
【００７８】
プリンタ２００に転送されるコマンドは、コマンドヘッダ部１００１と、コマンドデータ部１００２とによって構成されている。
【００７９】
コマンドヘッダ部１００１には、コマンドデータ部１００２に格納されているデータの種類（印刷設定情報、重複領域情報７００、ＪＰＥＧデータ）の何れであるかを判別する識別子や、データのサイズ等が格納されている。
【００８０】
コマンドデータ部１００２には、コマンドヘッダの種類に応じて、印刷設定情報、重複領域情報７００、ＪＰＥＧデータが格納されている。
【００８１】
図１１は、プリンタ２００で行われる復号化処理を示すフローチャートである。
【００８２】
Ｓ１１０１で、プリンタ２００のインタフェース部２１１を介して、画像処理プログラム２１２の復号化処理部に、ＪＰＥＧデータと重複領域情報７００とが供給される。
【００８３】
Ｓ１１０２で、符号化ブロックカウンタに１を設定する。この「符号化ブロックカウンタ」は、現在処理している符号化ブロックが、ＪＰＥＧデータにおける何番目の符号化ブロックであるかを管理するカウンタである。
【００８４】
復号化処理は、符号化ブロックが格納されている順に処理するので、上記符号化ブロックカウンタを用いて、重複領域情報７００を検索することができる。
【００８５】
Ｓ１１０３で、ＪＰＥＧデータのヘッダを解析する。この「ＪＰＥＧヘッダ」には、復号化に必要な情報が含まれている。
【００８６】
Ｓ１１０４で、縦方向の全ての符号化ブロックに対する復号化処理が終了したかどうかを判断する。Ｓ１１０４で縦方向の全ての符号化ブロックに対する復号化処理が終了したと判断すると、処理を終了する。
【００８７】
一方、Ｓ１１０４で縦方向の全ての符号化ブロックに対する復号化処理が終了していないと判断すると、Ｓ１１０５で、横方向の全ての符号化ブロックに対する復号化処理が終了したかどうかを判断する。Ｓ１１０５で横方向の全ての符号化ブロックに対する復号化処理が終了したと判断すると、Ｓ１１０４に戻る。
【００８８】
一方、Ｓ１１０５で、横方向の全ての符号化ブロックに対する復号化処理が終了していないと判断すると、Ｓ１１０６で、ハフマン復号化、逆量子化、逆ＤＣＴ変換等の復号化処理を実行し、Ｓ１１０７に進む。
【００８９】
Ｓ１１０７で、今回処理した符号化ブロックに対する重複領域情報７００があるかどうかを判定する。つまり、現在の符号化ブロックカウンタと一致する符号化ブロック識別子を検索し、重複領域情報７００を検索する。
【００９０】
Ｓ１１０７で重複領域情報７００が存在しないと判断すると、Ｓ１１１０に進む。
【００９１】
一方、Ｓ１１０７で重複領域情報７００が存在していると判断すると、Ｓ１１０８で、重複領域情報７００を取得する。取得する重複領域情報７００は、Ｓ１１０７で検索した「今回処理した符号化ブロックに対する重複領域情報」である。
【００９２】
Ｓ１１０９で、Ｓ１１０８で取得した重複領域情報７００に従い、符号化ブロックを復号化したデータのうちで、重複領域を削除する。
【００９３】
重複領域の削除については、図１２を用いて後述する。
【００９４】
最後に、Ｓ１１１０で、符号化ブロックカウンタの値に１が加算される。
【００９５】
Ｓ１１０４〜Ｓ１１１０の処理が繰り返され、全ての符号化ブロックに対する復号化処理が終了すると、処理が終了する。
【００９６】
次に、Ｓ１１０９で行われる重複領域削除処理について説明する。
【００９７】
図１２は、図５で説明した領域を符号化した符号化データを示す図である。
【００９８】
まず、符号化ブロック１２０１を復号化処理する。この符号化ブロック１２０１については、重複領域が設定されていないので、全てのデータを出力する。
【００９９】
次に、符号化ブロック１２０２を復号化処理する。この符号化ブロック１２０２には、図８に示す重複領域情報７００が設定されているので、この設定されている重複領域情報７００に従って、重複領域に対応する符号化データを削除する。
【０１００】
つまり、重複領域情報７００に、符号化ブロック内の重複領域開始Ｘ座標値として、「０」が格納され、符号化ブロック内の重複領域開始Ｙ座標値として、「０」が格納されている。そして、重複領域横画素数として、「４」が格納され、重複領域縦画素数として、「８」が格納されている。
【０１０１】
よって、符号化ブロック１２０２において、符号化ブロック内の重複領域開始の座標は、符号化ブロック内の左上の画素位置である（０、０）であり、横に４画素分、縦に８画素分が、重複領域である。これは、図１２の符号化ブロック１２０２内の画素（４、０）、（７、０）、（４、７）、（７、７）で囲まれた領域であるので、この領域を削除し、画素（８、０）、（１１、０）、（８、７）、（１１、７）で囲まれた領域のデータのみを出力する。
【０１０２】
最後に、符号化ブロック１２０３の復号化処理を行う。この符号化ブロック１２０３について、重複領域が設定されていないので、全てのデータを出力する。
【０１０３】
図１３は、プリンタ２００の画像処理プログラム２１２に基づいて行われる印刷データ制御を示すフローチャートである。
【０１０４】
まず、Ｓ１３０１で、画像処理プログラム２１２に、印刷設定情報、重複領域情報７００、ＪＰＥＧデータが入力される。Ｓ１３０２で、図１１に示すＪＰＥＧデータの復号化処理を実行する。Ｓ１３０３で、印刷設定情報に従って復号化されたデータについて、色空間変換処理を実行する。
【０１０５】
Ｓ１３０４で、印刷設定情報に従い、量子化処理を実行する。最後に、Ｓ１３０５で、記録部２０７に量子化データを転送し、処理を終了する。
【０１０６】
上記実施例１では、符号化時に、画質が劣化しないように、符号化ブロックを移動して符号化し、復号化時に、符号化ブロックの移動を考慮して復号化処理するので、画像データの端部の画質劣化を低減することができる。
【０１０７】
また、上記実施例１によれば、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができる。
【実施例２】
【０１０８】
次に、本発明の実施例２について説明する。
【０１０９】
実施例２は、ＪＰＥＧヘッダのアプリケーションデータセグメント、またはコメントセグメントに、重複領域情報７００を格納する実施例である。
【０１１０】
実施例２において、ホスト端末１００の構成を示すブロック図、プリンタ２００の構成を示すブロック図は、実施例１と同様であるので、その説明を省略する。
【０１１１】
また、実施例２に係わる符号化ブロック設定処理についても、実施例１と同様であるので、図４を引用し、その説明を省略する。
【０１１２】
図１４は、実施例２において、ホスト端末１００のプリンタドライバプログラム１０９で行われる符号化処理を示すフローチャートである。
【０１１３】
まず、Ｓ１４０１で、プリンタドライバプログラム１０９の符号化処理部に、画像データが供給される。Ｓ１４０２で、画等データを符号化するために、画像データに、符号化ブロック設定処理を行う。
【０１１４】
Ｓ１４０３では、Ｓ１４０２で設定された縦方向の符号化ブロックに対する符号化処理が全て終了したかどうかを判断する。Ｓ１４０３で縦方向の全ての符号化ブロックについて、符号化処理が終了していないと判断すると、Ｓ１４０４では、Ｓ１４０２で設定された横方向の全ての符号化ブロックに対する符号化処理が終了したかどうかを判断する。Ｓ１４０４で横方向の全ての符号化ブロックに対する符号化処理が終了したと判断すると、Ｓ１４０３に戻る。
【０１１５】
一方、Ｓ１４０４で横方向の全ての符号化ブロックに対する符号化処理が終了していないと判断すると、Ｓ１４０５で、その符号化ブロックについて、ＤＣＴ変換、量子化処理、ハフマン符号化が行われ、符号化処理を実行し、Ｓ１４０４に戻る。
【０１１６】
Ｓ１４０３〜Ｓ１４０５の処理が繰り返され、全ての符号化ブロックに対する符号化処理を終了すると、Ｓ１４０６で、ＪＰＥＧヘッダのアプリケーションデータセグメント、またはコメントセグメントに、重複領域情報７００を格納する。上記アプリケーションデータセグメント、コメントセグメントは、アプリケーション固有の情報を自由に格納できる領域である。
【０１１７】
Ｓ１４０７では、Ｓ１４０５で生成した全符号化データの先頭に、ＪＰＥＧヘッダデータを挿入し、ＪＰＥＧ形式の符号化データとする。上記ＪＰＥＧヘッダデータには、ハフマン符号化時に使用したハフマンテーブル、量子化処理時に使用した量子化テーブル等、ＪＰＥＧ復号化処理に必要なデータが含まれている。また、上記ＪＰＥＧヘッダデータには、Ｓ１４０６で格納した重複領域情報７００をも含んでいる。
【０１１８】
最後に、Ｓ１４０８で、ＪＰＥＧデータを出力し、処理を終了する。
【０１１９】
図１５は、ホスト端末１００のプリンタドライバプログラム１０９が実行する印刷データ制御を示すフローチャートである。
【０１２０】
まず、Ｓ１５０１で、ホスト端末１００上で動作する不図示のオペレーティングシステムやアプリケーションプログラムから、プリンタドライバプログラム１０９に、印刷対象である画像データが供給される。Ｓ１５０２で、図３に示す画像データ符号化処理が実行され、符号化処理を行った結果、ＪＰＥＧデータが生成される。
【０１２１】
Ｓ１５０３で、インタフェース部１０８を介して、オペレーティングシステムやアプリケーションプログラムから指定された印刷設定情報を、プリンタ２００へ転送する。印刷設定情報として、たとえば、印刷用紙や印刷品位等の情報を転送する。
【０１２２】
最後に、Ｓ１５０４で、インタフェース部１０８を介して、ＪＰＥＧデータをプリンタ２００へ転送し、処理を終了する。このときに、ＪＰＥＧデータのヘッダに格納されている重複領域情報７００をも転送する。
【０１２３】
図１６は、プリンタ２００で行われる復号化処理を示すフローチャートである。
【０１２４】
Ｓ１６０１で、プリンタ２００のインタフェース部２１１を介して、画像処理プログラム２１２の復号化処理部にＪＰＥＧデータを供給する。
【０１２５】
Ｓ１６０２で、符号化ブロックカウンタに「１」を設定する。つまり、現在処理している符号化ブロックが、ＪＰＥＧデータにおける１番目の符号化ブロックであることを管理するために、符号化ブロックカウンタに「１」を設定する。
【０１２６】
符号化ブロックが格納された順に、復号化処理するので、この符号化ブロックカウンタの値に基づいて、重複領域情報７００を検索することができる。
【０１２７】
Ｓ１６０３で、ＪＰＥＧデータのヘッダを解析し、このＪＰＥＧヘッダには、復号化に必要な情報が含まれている。Ｓ１６０４では、Ｓ１６０３で解析したＪＰＥＧヘッダから、重複領域情報７００を抽出する。なお、重複領域情報７００は、コメントセグメント、またはアプリケーションデータセグメントに格納されている。
【０１２８】
Ｓ１６０５で、縦方向の全ての符号化ブロックに対する復号化処理が終了したかどうかを判断する。Ｓ１６０５で縦方向の全ての符号化ブロックに対する復号化処理が終了したと判断すると、処理を終了する。
【０１２９】
一方、Ｓ１６０５で縦方向の全ての符号化ブロックに対する復号化処理が終了していないと判断すると、Ｓ１６０６で、横方向の全ての符号化ブロックに対する復号化処理が終了したかどうかを判断する。Ｓ１６０６で横方向の全ての符号化ブロックに対する復号化処理が終了したと判断すると、Ｓ１６０５に戻る。
【０１３０】
一方、Ｓ１６０６で横方向の全ての符号化ブロックに対する復号化処理が終了していないと判断すると、Ｓ１６０７で、ハフマン復号化、逆量子化、逆ＤＣＴ変換等の復号化処理を実行し、Ｓ１６０８に進む。Ｓ１６０８で、今回処理した符号化ブロックに対する重複領域情報７００があるかどうかを判定する。つまり、現在の符号化ブロックカウンタと一致する符号化ブロック識別子があるかどうかを調べるために、重複領域情報７００を検索する。
【０１３１】
Ｓ１６０８で重複領域情報７００がないと判断すると、Ｓ１６１１に進む。
【０１３２】
一方、Ｓ１６０８で、重複領域情報７００があると判断すると、Ｓ１６０９で、重複領域情報７００を取得する。取得する重複領域情報７００は、Ｓ１６０８で検索した情報である。
【０１３３】
Ｓ１６１０で、符号化ブロックを復号化したデータについて、Ｓ１６０９で取得した重複領域情報７００に基づいて、重複領域を削除する。
【０１３４】
最後に、Ｓ１６１１で、符号化ブロックカウンタの値に１を加算する。
【０１３５】
上記Ｓ１６０５〜Ｓ１６１１の処理を繰り返し、全ての符号化ブロックに対する復号化処理が終了すると、処理が終了する。
【０１３６】
図１７は、プリンタ２００の画像処理プログラム２１２が実行する印刷データ制御を示すフローチャートである。
【０１３７】
まず、Ｓ１７０１で、画像処理プログラム２１２に、印刷設定情報、ＪＰＥＧデータを入力する。このＪＰＥＧデータのヘッダには、重複領域情報７００が格納されている。Ｓ１７０２で、図１６に示すＪＰＥＧデータの復号化処理を実行する。
【０１３８】
Ｓ１７０３で、印刷設定情報に応じて復号化されたデータを、色空間変換処理する。Ｓ１７０４で、印刷設定情報に基づいて、量子化処理を実行する。
【０１３９】
最後に、Ｓ１７０５で、記録部２０７に量子化データを転送し、処理を終了する。
【０１４０】
なお、実施例１、実施例２では、符号化処理と復号化処理とを、異なる機器上で実行するが、符号化処理と復号化処理とを、同一の機器上で動作させるようにしてもよい。たとえば、コピー機において、読み取り時に、原稿データに符号化処理し、内部メモリ上に蓄積し、記録時に、内部メモリ上の符号化されたデータに復号化処理を行い、印刷を行うシステムに、上記実施例を適用するようにしてもよい。
【０１４１】
上記実施例によれば、符号化処理部と復号化処理部とを連携して処理するので、画像データの端部だけでなく、画像データ中に存在する画像矩形の端部に発生する画質劣化を低減することができる。つまり、上記実施例によれば、符号化時に画質が劣化しないように、符号化ブロックを移動して符号化し、復号化時に、符号化データを重複した領域を削除して復号化するので、画像データの端部の画質劣化を低減することができる。
【０１４２】
また、上記実施例によれば、画像データや、画像データ中に存在する画像矩形の端部の画質劣化を低減するために、特殊な符号化処理装置や復号化処理装置を準備する必要がないので、容易かつ安価にシステムを構築することができる。
【図面の簡単な説明】
【０１４３】
【図１】本発明の実施例１である画像処理システムにおけるホスト端末１００の構成を示すブロック図である。
【図２】実施例１である画像処理システムにおけるプリンタ２００の構成を示すブロック図である。
【図３】ホスト端末１００のプリンタドライバプログラム１０９が実行する符号化処理を示すフローチャートである。
【図４】符号化ブロック設定処理（Ｓ３０２）を示すフローチャートである。
【図５】Ｓ４０７で行われる符号化ブロック再設定処理を説明する図であり、画像データからある領域を切り出した状態を示す図である。
【図６】Ｓ４０７で行われる符号化ブロック再設定処理を説明する図であり、画像データからある領域を切り出した状態を示す図である。
【図７】Ｓ４０８で生成される重複領域情報７００のデータ構造を示す図である。
【図８】重複領域情報７００の具体例を示す図である。
【図９】ホスト端末１００のプリンタドライバプログラム１０９で行われる印刷データ制御を示すフローチャートである。
【図１０】印刷設定情報と重複領域情報７００とＪＰＥＧデータとを、プリンタ２００に転送する際のコマンド形式を示す図である。
【図１１】プリンタ２００で行われる復号化処理を示すフローチャートである。
【図１２】図５で説明した領域を符号化した符号化データを示す図である。
【図１３】プリンタ２００の画像処理プログラム２１２で行われる印刷データ制御を示すフローチャートである。
【図１４】実施例２において、ホスト端末１００のプリンタドライバプログラム１０９で行われる符号化処理を示すフローチャートである。
【図１５】ホスト端末１００のプリンタドライバプログラム１０９が実行する印刷データ制御を示すフローチャートである。
【図１６】プリンタ２００で行われる復号化処理を示すフローチャートである。
【図１７】プリンタ２００の画像処理プログラム２１２が実行する印刷データ制御を示すフローチャートである。
【符号の説明】
【０１４４】
１００…ホスト端末、
２００…プリンタ、
５０１、５０２…符号化ブロック、
Ａ、Ｂ、Ｃ、Ｄ…画像矩形、
７１０…符号化ブロック識別子、
７２０…重複領域特定情報、
１００１…コマンドヘッダ部、
１００２…コマンドデータ部、
１２０１、１２０２、１２０３…符号化ブロック。
【図１】
2008109389.tif 000003
【図２】
2008109389.tif 000004
【図３】
2008109389.tif 000005
【図４】
2008109389.tif 000006
【図５】
2008109389.tif 000007
【図６】
2008109389.tif 000008
【図７】
2008109389.tif 000009
【図８】
2008109389.tif 000010
【図９】
2008109389.tif 000011
【図１０】
2008109389.tif 000012
【図１１】
2008109389.tif 000013
【図１２】
2008109389.tif 000014
【図１３】
2008109389.tif 000015
【図１４】
2008109389.tif 000016
【図１５】
2008109389.tif 000017
【図１６】
2008109389.tif 000018
【図１７】
2008109389.tif 000019