(57)【要約】  【課題】  画像圧縮処理に伴う画質劣化を抑制する画像圧縮装置を提供する。  【解決手段】  画像処理装置２は、互いに隣接するブロックが互いにずれた状態となるように、入力画像を複数のブロックに分割し、分割されたブロック毎に、一部の色成分に対する解像度変換処理を行い、解像度変換処理がなされた複数のブロックの相関関係に基づいて、予測符号化方式により符号化する。これにより、解像度変換処理に伴う画質劣化の位置が分散されて、顕在化しにくくなる。【選択図】図３
2007088685.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を既定サイズの画像ブロックに分割するブロック分割手段と、
前記ブロック分割手段により分割された画像ブロック毎に、複数の色成分の一部に対して解像度変換を行う解像度変換手段と
を有し、
前記ブロック分割手段は、互いに隣接する画像ブロックが主走査方向及び副走査方向の少なくとも一方にずれた状態となるように、入力画像を分割する
画像圧縮装置。
【請求項２】
画像ブロックの配列に応じて、画像ブロック列の端部に画素を追加する画素追加手段
をさらに有する請求項１に記載の画像圧縮装置。
【請求項３】
前記解像度変換手段は、色相成分及び彩度成分又はこれらのいずれか一方について、解像度を低下させる
請求項１に記載の画像圧縮装置。
【請求項４】
前記解像度変換手段により解像度変換がなされた複数の画像ブロックを比較して、これらの画像ブロックの一致度合いを示す一致データを符号化する符号化手段
をさらに有する請求項１に記載の画像圧縮装置。
【請求項５】
画像の圧縮データを伸長する画像伸長装置であって、
圧縮データのうち、一部の色成分の階調値に対して、解像度変換処理を施す解像度変換手段と、
前記解像度変換手段により解像度変換された色成分の階調値を、画像における位置に応じて変位させる領域変位手段と
を有する画像伸長装置。
【請求項６】
データセット間の相関関係に基づいて、各データセットの値を生成するデータセット値生成手段と、
前記データセット値生成手段により生成されたデータセット値の中から、複数の画素の階調値を切り出す切出し手段と
をさらに有し、
前記解像度変換手段は、前記切出し手段により切り出された各画素の階調値のうち、一部の色成分の階調値に対して解像度変換処理を施す
請求項５に記載の画像伸長装置。
【請求項７】
互いに隣接する既定サイズの画像ブロックが主走査方向及び副走査方向の少なくとも一方にずれた状態となるように、入力画像を複数の画像ブロックに分割し、
分割された画像ブロック毎に、複数の色成分の一部に対して解像度変換を行う
画像処理方法。
【請求項８】
画像の圧縮データを伸長する画像処理方法であって、
圧縮データのうち、一部の色成分の階調値に対して、解像度変換処理を行い、
解像度変換が行われた色成分の階調値を、画像における位置に応じて変位させる
画像処理方法。
【請求項９】
互いに隣接する既定サイズの画像ブロックが主走査方向及び副走査方向の少なくとも一方にずれた状態となるように、入力画像を複数の画像ブロックに分割するステップと、
分割された画像ブロック毎に、複数の色成分の一部に対して解像度変換を行うステップと
をコンピュータに実行させるプログラム。
【請求項１０】
画像の圧縮データを伸長するコンピュータにおいて、
圧縮データのうち、一部の色成分の階調値に対して、解像度変換処理を行うステップと、
解像度変換が行われた色成分の階調値を、画像における位置に応じて変位させるステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮又は伸長する画像処理方法に関する。
【背景技術】
【０００２】
例えば、ＪＰＥＧ符号化方式では、入力された画像データ（ＲＧＢ）をＹＣｂＣｒ空間の画像データに変換し、色差ＣｂＣｒ成分をサブサンプリング（ダウンサンプリング）することにより、高圧縮率を実現している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、画像圧縮処理に伴う画質劣化を抑制する画像圧縮装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［画像圧縮装置］
上記目的を達成するために、本発明にかかる画像圧縮装置は、入力画像を既定サイズの画像ブロックに分割するブロック分割手段と、前記ブロック分割手段により分割された画像ブロック毎に、複数の色成分の一部に対して解像度変換を行う解像度変換手段とを有し、前記ブロック分割手段は、互いに隣接する画像ブロックが主走査方向及び副走査方向の少なくとも一方にずれた状態となるように、入力画像を分割する。
【０００５】
好適には、画像ブロックの配列に応じて、画像ブロック列の端部に画素を追加する画素追加手段をさらに有する。
【０００６】
好適には、前記解像度変換手段は、色相成分及び彩度成分又はこれらのいずれか一方について、解像度を低下させる。
【０００７】
好適には、前記解像度変換手段により解像度変換がなされた複数の画像ブロックを比較して、これらの画像ブロックの一致度合いを示す一致データを符号化する符号化手段をさらに有する。
【０００８】
［画像伸長装置］
また、本発明にかかる画像伸長装置は、画像の圧縮データを伸長する画像伸長装置であって、圧縮データのうち、一部の色成分の階調値に対して、解像度変換処理を施す解像度変換手段と、前記解像度変換手段により解像度変換された色成分の階調値を、画像における位置に応じて変位させる領域変位手段とを有する。
【０００９】
好適には、データセット間の相関関係に基づいて、各データセットの値を生成するデータセット値生成手段と、前記データセット値生成手段により生成されたデータセット値の中から、複数の画素の階調値を切り出す切出し手段とをさらに有し、前記解像度変換手段は、前記切出し手段により切り出された各画素の階調値のうち、一部の色成分の階調値に対して解像度変換処理を施す。
【００１０】
［画像処理方法］
また、本発明にかかる画像処理方法は、互いに隣接する既定サイズの画像ブロックが主走査方向及び副走査方向の少なくとも一方にずれた状態となるように、入力画像を複数の画像ブロックに分割し、分割された画像ブロック毎に、複数の色成分の一部に対して解像度変換を行う。
【００１１】
また、本発明にかかる画像処理方法は、画像の圧縮データを伸長する画像処理方法であって、圧縮データのうち、一部の色成分の階調値に対して、解像度変換処理を行い、解像度変換が行われた色成分の階調値を、画像における位置に応じて変位させる。
【００１２】
［プログラム］
また、本発明にかかるプログラムは、互いに隣接する既定サイズの画像ブロックが主走査方向及び副走査方向の少なくとも一方にずれた状態となるように、入力画像を複数の画像ブロックに分割するステップと、分割された画像ブロック毎に、複数の色成分の一部に対して解像度変換を行うステップとをコンピュータに実行させる。
【００１３】
また、本発明にかかるプログラムは、画像の圧縮データを伸長するコンピュータにおいて、圧縮データのうち、一部の色成分の階調値に対して、解像度変換処理を行うステップと、解像度変換が行われた色成分の階調値を、画像における位置に応じて変位させるステップとをコンピュータに実行させる。
【発明の効果】
【００１４】
本発明の画像圧縮装置によれば、高速に画像データを圧縮することができる。
【発明を実施するための最良の形態】
【００１５】
［背景と概略］
まず、本発明の理解を助けるために、その背景及び概略を説明する。
例えば、ＬＺ符号化方式などの予測符号化方式では、既定の参照位置の画素値を参照して予測データを生成し、生成された予測データと注目画素の画像データとが一致する場合に、一致した予測データの参照位置など（以下、参照情報）が注目画素の符号データとして符号化される。
そのため、各画素毎に、注目画素の画像データと予測データとの一致判定を行う必要がある。
【００１６】
そこで、一致判定処理に効率化などを目的として、入力された画像を既定サイズのブロック（既定数の画素からなる画素群）に分割し、各ブロック間の相関関係を用いて、入力画像を符号化することが考えられる。この場合には、ブロック毎に一致判定処理が行われる。すなわち、複数の画素についてまとめて一致判定処理が行われることになる。
【００１７】
また、カラー画像では、階調値（画素値）の変更による影響が顕在化しやすい色成分と、顕在化しにくい色成分とが存在する。例えば、ＹＣｂＣｒ色空間の画像データでは、Ｙ成分の階調値の変更は、Ｃｂ成分及びＣｒ成分よりも顕在化しやすい傾向にある。また、ＲＧＢ色空間の画像データでは、Ｒ成分及びＧ成分の階調値の変更は、Ｂ成分よりも顕在化しやすい傾向にある。
そこで、より高い圧縮率の実現を目的として、上記各ブロックに含まれる複数の画素の一部の色成分の解像度を、他の色成分の解像度よりも低くして符号化することが考えられる。より具体的には、画素値の変更による影響が顕在化しにくい色成分（例えば、Ｃｂ成分及びＣｒ成分）の解像度を低下させる。
【００１８】
色差ＣｒＣｂの解像度変換（サブサンプリング）を行う場合、単純に間引く方法と、ローパスフィルタなどを通して高域を抑制してから間引く方法とがある。いずれの方法を適用しても、格子状に間引くと入力画像と干渉を起こす可能性がある。
例えば、最近傍補間法で拡大された画像である。このような拡大では、もとの１画素がＮ画素又はＮ＋１画素に拡大される。そのような画像に対して、格子状に色差を間引くと、干渉が生じ画質劣化として顕在化する場合がある。
【００１９】
このような画質劣化は、全てのラインにおいて同じ方向に間引きを行うことが、原因で発生する。
しかし、色差の間引き（サブサンプリング）は、本来情報量を削減するのが目的であり、上述のように格子状に行う必要は必ずしもない。
【００２０】
そこで、本実施形態における画像処理装置２は、互いに隣接するブロックが互いにずれた状態となるように、入力画像を複数のブロックに分割し、分割されたブロック毎に、一部の色成分に対する解像度変換処理を行い、解像度変換処理がなされた複数のブロックの相関関係に基づいて、予測符号化方式により符号化する。
【００２１】
［ハードウェア構成］
次に、画像処理装置２のハードウェア構成を説明する。
図１は、本発明にかかる画像処理方法が適応される画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
図１に例示するように、画像処理装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
画像処理装置２は、例えば、本発明にかかる符号化プログラム５（後述）及び復号化プログラム６（後述）がプリンタドライバの一部としてインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して画像データを取得し、取得された画像データを符号化又は復号化してプリンタ装置３に送信する。
【００２２】
［符号化プログラム］
図２は、制御装置２１（図１）により実行され、本発明にかかる画像処理方法を実現する符号化プログラム５の機能構成を例示する図である。
図２に例示するように、符号化プログラム５は、色変換部５００、画像位置判定部５１０、ブロック抽出部５２０、端部処理部５３０、解像度低減部５４０、及び予測符号化部５５０を有する。
【００２３】
符号化プログラム５において、色変換部５００は、入力された画像データの色空間を変換する。
例えば、色変換部５００は、画像読取りまたは画像出力に用いられる色空間（例えば、ＲＧＢ色空間、ＣＭＹＫ色空間など）の画像データを、輝度成分（または明度成分）と他の色成分（例えば、色差成分）とが分離された色空間（ＹＣｂＣｒ色空間、Ｌａｂ色空間、Ｌｕｖ色空間、マンセル色空間など）の画像データに変換する。
本例の色変換部５００は、ＲＧＢ色空間で表現された画像データを、ＹＣｂＣｒ色空間の画像データに変換する。
【００２４】
画像位置判定部５１０は、処理対象である画素群の画像上の位置を判定し、判定された画像上の位置の情報（位置情報）をブロック抽出部５２０に出力する。画像上の位置は、例えば、画素それぞれの座標、画素群が属するライン（主走査ライン及び副走査ライン又はこれらの一方）の識別情報、又は、ブロックの配列方向における順序などである。
本例の画像位置判定部５１０は、処理対象である注目ラインが奇数番目のライン（以下、奇数ライン）であるか偶数番目のライン（以下、偶数ライン）であるかを判定し、奇数ラインであるか偶数ラインであるかを示すフラグをブロック抽出部５２０に出力する。
【００２５】
ブロック抽出部５２０は、入力された画像を既定サイズのブロックに分割する。より具体的には、ブロック抽出部５２０は、互いに隣接するブロックが互いにずれた状態となるように、入力画像を複数のブロックに分割し、分割されたブロックを端部処理部５３０に出力する。
例えば、ブロック抽出部５２０は、画像位置判定部５１０から入力された位置情報に応じて、ブロックの切出し位置を変位させる。
本例のブロック抽出部５２０は、画像位置判定部５１０から入力された位置情報（奇数ラインであるか偶数ラインであるか）に基づいて、処理対象である注目ラインが奇数ラインであるか偶数ラインであるかを判定し、注目ラインが奇数ラインである場合には、ラインの始端（最初に処理する部分）から、２×１サイズのブロックを順に切り出し、注目ラインが複数ラインである場合には、注目ラインの始端の次の画素から、２×１サイズのブロックを順に切り出す。すなわち、本例のブロック抽出部５２０は、副走査ライン毎にブロックの切出し開始位置を１画素分に変位させて、ブロックの切出し周期が隣接するライン間で一致しないようにしている。なお、２×１サイズのブロックとは、主走査方向に２画素、かつ、副走査方向に１画素からなる矩形領域である。
ブロック抽出部５２０は、ブロックに分割された画像データ（ブロックとして分割されなかった端部の画素を含む）を端部処理部５３０に出力する。
【００２６】
端部処理部５３０は、ブロック抽出部５２０から入力された画像の端部に対して、画素の追加又は削除を行う。
より具体的には、端部処理部５３０は、ブロック抽出部５２０による分割処理によりブロックの一部となれなかった画素に対して、同一の画素値又は既定画素値（例えば、最小階調値又は最大階調値など）の画素（以下、追加画素）を追加して、この端部の画素と追加画素とからなるブロックを生成する。
また、端部処理部５３０は、ブロック抽出部５２０による分割処理によりブロックの一部となれなかった画素を削除してもよいし、入力画像の両端の画素をまとめて１つのブロックを生成してもよい。
本例の端部処理部５３０は、偶数ラインの両端（始端及び終端）にそれぞれ、始端の画素と同一画素値の追加画素、及び、終端の画素と同一画素値の追加画素を追加して、偶数ラインの両端にブロックを生成する。
端部処理部５３０は、ブロック抽出部５２０により分割されたブロックと、端部で生成したブロックとを解像度変換部５４０に出力する。
【００２７】
解像度低減部５４０は、ブロック抽出部５２０により分割されたブロック毎に、入力された画像データ（本例では、ＹＣｂＣｒの画像データ）のうち、一部の色成分の画像データに対して解像度変換処理を施す。
例えば、解像度低減部５４０は、他の色成分と比較して、画素値の変更が顕在化しにくい色成分の画像データに対して、ブロック毎に解像度を低下させる解像度変換処理を施す。
【００２８】
本例の解像度低減部５４０は、端部処理部５３０から入力されたＹＣｂＣｒ色空間の画像データ（ブロックに分割されたもの）を、ブロック毎に階調値（２つのＹ値、２つのＣｂ値、及び２つのＣｒ値）を並び替えてデータセットを生成し、生成されたデータセット（すなわち、ブロックに含まれる複数の画素の階調値）のうち、Ｃｂ成分及びＣｒ成分の画像データに対して、主走査方向の解像度を半分にする解像度変換処理を施す。
例えば、解像度低減部５４０は、解像度変換処理として、ブロックに含まれる複数の画素の平均値（階調値の平均）、最頻値、又は中央値を算出してもよいし、単に、ブロックの最初の画素の画素値を適用してもよい。
解像度低減部５４０により解像度変換が行われたデータセットは、予測号株５４０に出力される。
【００２９】
予測符号化部５５０は、解像度低減部５４０から入力される複数のブロックのデータセット値を比較して、予測符号化処理を行う。本例の予測符号化処理は、注目ブロックのデータセット値を符号化する場合に、この注目ブロックのデータセット値と、他のブロックのデータセット値との相関関係を利用する符号化方式である。したがって、予測符号化処理は、例えば、ブロック毎に順次符号化（点順符号化）することが可能であり、各色成分の画像毎に符号化（面順符号化）するＪＰＥＧ等とは異なる。
【００３０】
図３は、ブロック抽出部５２０により抽出されるブロックを例示する図であり、図３（Ａ）は、主走査方向にずらして抽出されたＭ×Ｎサイズのブロックを例示し、図３（Ｂ）は、副走査方向にずらして抽出されたＭ×Ｎサイズのブロックを例示し、図３（Ｃ）は、本例における２×１サイズのブロックを例示する。なお、Ｍ及びＮは自然数である。また、本図の左右方向が画像の主走査方向に相当し、上下方向が画像の副走査方向に相当する。
図３（Ａ）に例示するように、ブロック抽出部５２０（図２）は、互いに副走査方向で隣接するブロックが主走査方向にずれるように、Ｍ×Ｎサイズのブロックを抽出してもよい。
解像度低減部５４０による解像度変換処理（間引き処理）は、画質劣化の原因となりうるが、図３（Ａ）に例示するように、処理単位であるブロックを処理方向（画素の配列方向）にずらすことにより、画質劣化を顕在化しにくくすることができる。
また、図３（Ｂ）に例示するように、ブロック抽出部５００（図２）は、互いに主走査方向で隣接するブロックが副走査方向にずれるように、Ｍ×Ｎサイズのブロックを抽出してもよい。
本例のブロック抽出部５２０は、副走査ライン毎に、ブロックの切出し位置を１画素変位させることにより、図３（Ｃ）に例示するように、互いに副走査方向で隣接するブロックが主走査方向に１画素ずれるように、２×１サイズのブロックを抽出することができる。
なお、切出し位置を変位させることにより、図３（Ｃ）に示されているように、偶数ラインの両端には、ブロックに含まれなかった画素（端数画素）が残ることになる。
【００３１】
図４は、端部処理部５３０による処理を説明する図である。
図４（Ａ）に例示するように、ライン毎に切出し位置を変位させてブロックを切り出すことにより、偶数ラインの両端には、ブロックに含まれなかった端数画素が残るが、本例の端部処理部５３０は、この端数画素と同じ画素値の画素を追加画素として端部に追加することにより、図４（Ｂ）に例示するように、左端ブロック、及び、右端ブロックを生成することができる。
なお、この場合には、奇数ラインと偶数ラインとで、画素数及びブロック数が異なることになるので、図４（Ｃ）に例示するように、端部処理部５３０は、偶数ラインの一方の端部の端数画素（本例では左端の画素）を削除し、他方の端部の端数画素（本例では右端の画素）に、同一画素値の追加画素を追加して右端ブロックを生成してもよい。この場合には、奇数ラインと偶数ラインとで、画素値及びブロック数が一致する。
また、端部処理部５３０は、偶数ラインの両端の端数画素をまとめて１つのブロックとしてもよい。
【００３２】
図５は、解像度低減部５４０の処理を説明する図であり、図５（Ａ）は、２×１サイズのブロックに含まれる階調値を例示し、図５（Ｂ）は、２×１サイズのブロックのデータセット９００（解像度変換前）を例示し、図５（Ｃ）は、解像度変換後のデータセット９０２を例示する。
図５（Ａ）に例示するように、２×１サイズのブロックには、２つの画素が含まれており、それぞれの画素には、ＹＣｂＣｒ色空間のＹ成分、Ｃｂ成分、及びＣｒ成分が含まれている。本例では、説明の便宜上、ブロックに含まれる一方の画素を「画素０」とし、他方の画素を「画素１」と表す。また、画素０に含まれるＹ成分、Ｃｂ成分及びＣｒ成分を、それぞれＹ０、Ｃｂ０及びＣｒ０と表し、画素１に含まれるＹ成分、Ｃｂ成分及びＣｒ成分を、それぞれＹ１、Ｃｂ１及びＣｒ１と表す。
【００３３】
解像度低減部５４０は、各ブロックに含まれる画素群の画素値を、色成分毎に分類し、図５（Ｂ）に例示するように、色成分毎にまとめて配置してデータセット９００を生成する。
本例では、まず、ブロックに含まれる画素群のＹ成分（Ｙ０及びＹ１）が配置され、この後ろに、Ｃｂ成分（Ｃｂ０及びＣｂ１）が配置され、さらにこの後ろに、Ｃｒ成分（Ｃｒ０及びＣｒ１）が配置される。
なお、Ｙ０からＣｒ１までの各値は、本例では、８ビットで表現されている。従って、解像度変換前のデータセット９００は、４８ビットのビット列である。
【００３４】
解像度低減部５４０は、図５（Ｃ）に例示するように、生成されたデータセット９００のうち、Ｃｂ成分に相当する部分、及び、Ｃｒ成分に相当する部分を、それぞれ１つのＣｂ値及びＣｒ値に変換する。本例では、Ｃｂ０及びＣｂ２の平均値が図５（Ｃ）に例示する「Ｃｂ」となり、Ｃｒ０及びＣｒ１の平均値が図５（Ｃ）に例示する「Ｃｒ」となる。
これにより、解像度変換後のデータセット９０２は、３２ビットのビット列となる。
【００３５】
図６は、予測符号化部５５０（図２）の構成をより詳細に説明する図である。
図６に例示するように、予測符号化部５５０は、複数の予測部５５２（第１予測部５５２ａ、第２予測部５５２ｂ、第３予測部５５２ｃ、第４予測部５５２ｄ）、予測誤差算出部５５４、ラン計数部５５６、選択部５５８、及び符号生成部５６０を含む。
【００３６】
予測部５５２は、注目ブロックのデータセット値（データセットを１つのビット列とした場合の値）を符号化する場合に、他のブロックのデータセット値に基づいて、注目ブロックの予測データを生成し、生成された予測データと、注目ブロックのデータセット値とを比較して、比較結果をラン計数部５５６に出力する。
より具体的には、第１予測部５５２ａ〜第４予測部５５２ｄは、それぞれ参照ブロックＡ〜Ｄ（図７を参照して後述）のデータセット値（本例における予測データ）と、注目ブロックＸ（図７を参照して後述）のデータセット値とを比較して、データセット値が一致した場合（すなわち、予測が的中した場合）に、自己を識別する予測部ＩＤをラン計数部５５６に対して出力し、これ以外の場合に、一致しなかった旨をラン計数部５５６に対して出力する。
なお、予測部５５２は、１種類以上であればよく、例えば、参照ブロックＡを参照する第１予測部５５２ａのみを設けてもよい。
【００３７】
予測誤差算出部５５４は、予め定められた予測方法で注目ブロックの予測データを生成し、生成された予測データと、この注目ブロックのデータセット値との差分を算出し、算出された差分を予測誤差として選択部５５８に出力する。
より具体的には、予測誤差算出部５５４は、既定の参照位置にあるブロックのデータセット値に基づいて、注目ブロックのデータセット値を予測し、その予測値を注目ブロックの実際のデータセット値から減算し、予測誤差値として選択部５５８に対して出力する。予測誤差算出部５５４の予測方法は、符号データの復号化処理における予測方法と対応していればよい。
本例の予測誤差算出部５５４は、第１予測部５５２ａと同じ参照位置（参照ブロックＡ）のデータセット値を予測値とし、この予測値と実際のデータセット値（注目ブロックＸのデータセット値）との差分をコンポーネント毎（Ｙ０、Ｙ１、Ｃｂ、及び、Ｃｒのそれぞれについて）算出する。
なお、注目ブロックが最左端である場合のように、参照ブロックＡが実在しない場合に、予測誤差算出部５５４は、デフォルトブロックのデータセット値（既定の値）を予測値として、予測誤差を算出する。デフォルトブロックのデータセット値のうち、色差成分に相当する値は、例えば０に設定されている。
【００３８】
ラン計数部５５６は、同一の予測部ＩＤが連続する数をカウントし、予測部ＩＤ及びその連続数を選択部５５８に対して出力する。
本例のラン計数部５５６は、全ての予測部５５２において予測値が注目画素の画素値と一致しなかった場合に、内部カウンタでカウントされている予測部ＩＤ及びその連続数を出力する。
【００３９】
選択部５５８は、ラン計数部５５６から入力された予測部ＩＤ及び連続数、並びに、予測誤差算出部５５４から入力された予測誤差値に基づいて、最も長く連続した予測部ＩＤを選択し、この予測部ＩＤ及びその連続数並びに予測誤差値を被符号化シンボル（予測データ）として符号生成部５６０に対して出力する。なお、予測部ＩＤ、その連続数、及び、予測誤差値は、本発明にかかる一致データの具体例であり、データセット間の相関関係を示す情報の具体例でもある。
【００４０】
符号生成部５６０は、選択部５５８から入力された被符号化シンボル（予測部ＩＤ、連続数及び予測誤差値）を符号化し、通信装置２２（図１）又は記録装置２４（図１）などに出力する。
【００４１】
図７は、予測符号化部５５０（図２、図６）によりなされる符号化処理を説明する図であり、図７（Ａ）は、予測部５５２により参照されるブロックの位置を例示し、図７（Ｂ）は、それぞれの参照位置に対応付けられた符号を例示し、図７（Ｃ）は、符号生成部５６０により生成される符号データを例示する。
図７（Ａ）に例示するように、複数の予測部５５２それぞれの参照位置は、注目ブロックＸとの相対位置として設定されている。具体的には、第１予測部５５２ａの参照ブロックＡは、注目ブロックＸの主走査方向上流に設定され、第２予測部５５２ｂから第４予測部５５２ｄの参照ブロックＢ〜Ｄは、注目ブロックＸの上方（副走査方向上流）の主走査ライン上に設定されている。
【００４２】
また、図７（Ｂ）に例示するように、それぞれの参照ブロックＡ〜Ｅには符号が対応付けられている。
いずれかの予測部５５２（参照ブロック）で予測が的中した場合には、ラン計数部５５６（図６）は、予測が的中した予測部５５２（参照ブロック）について、予測部ＩＤの連続数を増加させ、全ての予測部５５２（参照ブロック）で予測が的中しなかった場合に、カウントしていた予測部ＩＤの連続数を選択部５５８に出力する。
符号生成部５６０は、図７（Ｂ）に例示するように、各予測部５５２（参照位置）と符号とを互いに対応付けており、注目ブロックＸとデータセット値が一致した参照位置に対応する符号を出力する。なお、それぞれの参照位置に対応付けられている符号は、例えば、各参照位置の的中率に応じて設定されたエントロピー符号であり、的中率に応じた符号長となる。
【００４３】
また、符号生成部５６０は、同一の参照位置で連続してデータセット値が一致する場合には、ラン計数部５５６によりカウントされたその連続数を符号化する。これにより、符号量が少なくなる。このように、符号化プログラム５は、図７（Ｃ）に例示するように、いずれかの参照位置で画素値が一致した場合には、その参照位置に対応する符号と、この参照位置でデータセット値が一致する連続数とを符号化し、いずれの参照位置でもデータセット値が一致しなかった場合には、既定の参照位置（参照ブロック）のデータセット値と注目ブロックＸのデータセット値との差分（予測誤差値）を符号化する。
【００４４】
図８は、符号化プログラム５（図２）による符号化処理（Ｓ１０）のフローチャートである。
図８に示すように、ステップ１００（Ｓ１００）において、色変換部５００（図２）は、入力された画像データ（ＲＧＢ色空間の画像データ）を、ＹＣｂＣｒ色空間の画像データに変換する。
【００４５】
ステップ１０５（Ｓ１０５）において、符号化プログラム５は、色変換された画像データの中から、走査順に注目ラインを設定する。
色変換部５００は、色変換した画像データ（ＹＣｂＣｒ色空間の画像データ）の中から、注目ラインの画像データをブロック抽出部５２０に出力する。
【００４６】
ステップ１１０（Ｓ１１０）において、画素位置判定部５１０（図２）は、設定された注目ラインが奇数ラインであるか偶数ラインであるかを判定し、判定結果を、ブロック抽出部５２０を介して、端部処理部５３０に出力する。
符号化プログラム５は、注目ラインが奇数ラインである場合に、Ｓ１２０の処理に移行し、注目ラインが偶数ラインである場合に、Ｓ１１５の処理に移行する。
【００４７】
ステップ１１５（Ｓ１１５）において、端部処理部５３０は、ブロック抽出部５２０を介して、注目ラインが偶数ラインである旨が画素位置判定部５１０から入力されると、図４（Ｂ）に示すように、注目ラインの両端に、両端それぞれと同一の画素値を有する追加画素をそれぞれ追加する。
【００４８】
ステップ１２０（Ｓ１２０）において、ブロック抽出部５２０（図２）は、色変換部５００から入力された注目ライン（偶数ラインの場合、端部処理部５３０により追加画素が追加されたライン）の中から、図３（Ｃ）に示すように、読込み順に２×１サイズのブロックを抽出し、抽出されたブロックを、解像度低減部５４０に出力する。ここで、抽出されるブロックは、注目ブロックＸであり、２つの画素を含み、それぞれの画素は、Ｙ成分の画素値、Ｃｂ成分の画素値、及びＣｒ成分の画素値を有する。
【００４９】
ステップ１２５（Ｓ１２５）において、解像後低減部５４０（図２）は、ブロック抽出部５２０から入力された注目ブロックＸの画素値（２つの画素のＹ成分、Ｃｂ成分、及びＣｒ成分）を色成分毎に分類して配列し、解像度変換前のデータセット９００（図５（Ｂ））を作成する。
次に、解像度低減部５４０は、作成された注目ブロックＸのデータセット９００（解像度変換前）のうち、Ｃｂ成分及びＣｒ成分に相当する部分（本例では、下位の３２ビット）に基づいて、解像度低減後のＣｂ成分及びＣｒ成分を生成する。すなわち、解像度低減部５４０は、解像度変換前のデータセット９００のＣｂ成分及びＣｒ成分について、それぞれ平均値を算出し、算出されたＣｂ成分の平均値及びＣｒ成分の平均値で置換して、解像度変換後のデータセット９０２（図５（Ｃ））を生成し、生成されたデータセット９０２を予測符号化部５５０に対して出力する。
【００５０】
ステップ１３０（Ｓ１３０）において、予測符号化部５５０に設けられた複数の予測部５５２（図６）は、解像度低減部５４０から以前に入力された注目ブロックのデータセット９０２（すなわち、バッファに記憶されているデータセット値（既に処理されたブロックのデータセット値））に基づいて、現在の注目ブロックＸの予測データ（データセット値）を生成する。
また、予測誤差算出部５５４（図６）は、新たに入力された注目ブロックＸのデータセットと、参照ブロックＡのデータセットとの差分を、８ビット毎（すなわち、コンポーネント毎）に算出し、算出された差分を予測誤差として選択部５５８に出力する。すなわち、本例の予測誤差は、４つの誤差値を含む。
【００５１】
ステップ１３５（Ｓ１３５）において、各予測部５５２（図６）は、生成された予測データ（参照ブロックのデータセット値）と、注目ブロックＸのデータセット値とを比較し、一致するか否かを判定し、判定結果（一致した予測部の予測部ＩＤ、又は、一致しなかった旨）をラン計数部５５６に出力する。
符号化プログラム５は、いずれかの予測部５５２において注目ブロックＸのデータセット値と予測データとが一致した場合に、Ｓ１４０の処理に移行し、いずれの予測部５５２においても注目ブロックＸのデータセット値と予測データとが一致しなかった場合に、Ｓ１４５の処理に移行する。
【００５２】
ステップ１４０（Ｓ１４０）において、ラン計数部５５６（図６）は、いずれかの予測部５５２から入力された予測部ＩＤに基づいて、この予測部ＩＤに対応するカウント値を１つ増加させる。
なお、符号化プログラム５は、次のブロックに対する処理を行うべくＳ１２０に戻る。
【００５３】
ステップ１４５（Ｓ１４５）において、ラン計数部５５６は、予測部５５２から入力された判定結果に基づいて、いずれの予測部５５２においても予測が的中しなかった旨を検知すると、各予測部ＩＤに対応するカウント値を選択部５５８に出力する。
選択部５５８は、ラン計数部５５６から各予測部ＩＤのカウント値が入力されると、入力されたカウント値に基づいて、予測部ＩＤの最長連続数を算出し、算出された最長連続数及び予測部ＩＤを符号生成部５６０に出力する。
その後に、選択部５５８は、予測誤差算出部５５４から入力された最新の予測誤差（すなわち、全ての予測部５５２において予測が的中しなかった注目ブロックＸに関する予測誤差）を符号生成部５６０に出力する。
【００５４】
ステップ１５０（Ｓ１５０）において、符号化プログラム５は、注目ブロックが注目ラインの終端に位置するか否かを判定し、注目ブロックが注目ラインの終端に位置しない場合に、Ｓ１２０の処理に戻って、同じ注目ライン上の次のブロックに対する処理を行い、注目ブロックが注目ラインの終端に位置する場合に、Ｓ１５５の処理に移行する。
【００５５】
ステップ１５５（Ｓ１５５）において、符号化プログラム５は、入力された画像データの全てについて処理が終了したか否かを判定し、未処理のラインが存在する場合に、Ｓ１０５の処理に戻って、次のラインを注目ブロックとして処理し、これ以外の場合に、Ｓ１６０の処理に移行する。
【００５６】
ステップ１６０（Ｓ１６０）において、符号生成部５６０（図６）は、選択部５５８から入力される予測部ＩＤ、連続数、及び予測誤差を、入力順に符号化し、符号データを通信装置２２（図１）又は記録装置２４（図１）に出力する。
【００５７】
なお、上記フローチャートでは、偶数ラインの両端に追加画素を追加してからブロックを切り出しているが、これに限定されるものではなく、偶数ラインでは、２画素目からブロックを切り出していき、両端の端数画素に対しては、後で追加画素を追加してブロックとしてもよい。
【００５８】
［復号化プログラム］
次に、上記のように符号化された符号データの復号化方法について説明する。
図９は、制御装置２１（図１）により実行され、本発明にかかる画像処理方法を実現する復号化プログラム６の機能構成を例示する図である。
図９に例示するように、復号化プログラム６は、復号値生成部６００、復号値分割部６１０、補間処理部６２０、ブロック変位部６３０、データ出力部６４０、及び画像位置判断部６５０を有する。
【００５９】
復号化プログラム６において、復号値生成部６００は、図７（Ｂ）に例示したものと同様に、符号と予測部ＩＤ（参照位置）とを互いに対応付けるテーブルを有し、入力された符号データに基づいて、参照位置を特定する。また、復号値生成部６００は、例えば、ハフマン符号の符号表などを用いて、入力された符号データ（連続数又は予測誤差の符号）に対応する、予測部ＩＤの連続数、及び、予測誤差などの数値も復号化する。
【００６０】
さらに、復号値生成部６００は、このように復号化された参照位置、連続数及び予測誤差に基づいて、各ブロックのデータセット値を生成する。
より具体的には、復号値生成部６００は、予測部ＩＤ及びその連続数が復号化された場合に、この予測部ＩＤに対応する参照ブロック（既に復号化されたブロック、又は、画像の上流端に設定されたデフォルトブロック）のデータセット値を読み出し、そのデータセット値を連続数だけ繰り返し出力する。
また、復号値生成部６００は、予測誤差が復号化された場合に、既定の予測データと、この予測誤差との和を、データセット値として出力する。本例の復号値生成部６００は、復号化された予測誤差値と、直前に復号化されたデータセット値（すなわち、参照ブロックＡのデータセット値）との和を、この注目ブロックのデータセット値として出力する。
【００６１】
復号値分割部６１０は、復号値生成部６００から入力されるデータセット値を、既定のビット位置で分割して、各画素及び各色成分の階調値（画素値）を抽出する。
本例の復号値分割部６１０は、順に入力されるデータセット値９０２（図５（Ｃ））を８ビットずつ分割して、Ｙ０、Ｙ１、Ｃｂ及びＣｒとする。
【００６２】
補間処理部６２０は、復号化されたデータセット９０２の一部の色成分（Ｃｂ成分及びＣｒ成分）に対して、解像度変換処理を行う。例えば、補間処理部６２０は、Ｃｂ成分及びＣｒ成分を、Ｙ成分の個数だけ（すなわち、各ブロックに含まれる画素数だけ）単純に複製してもよいし、近傍ブロックのＣｂ成分又はＣｒ成分に基づいて、例えば線形補間法又はキュービックコンボリューション法などにより補間してもよい。
すなわち、補間処理部６２０は、復号化されたデータセット９０２のＣｂ成分及びＣｒ成分に対して解像度変換処理を行って、データセット９００を生成し、生成されたデータセット９００を並び替えて、ブロックに含まれる画素（図５（Ａ））を再現させる。
【００６３】
ブロック変位部６３０は、画像位置判断部６５０により判断される画像内の位置（すなわち、復号画像における位置）に応じて、補間処理部６２０により再現されたブロックを変位させる。
より具体的には、ブロック変位部６３０は、復号画像内の位置に応じて、ブロックを変位させることにより、符号化処理におけるブロックの変位を相殺する。
本例のブロック変位部６３０は、例えば復号画像のラインの先頭が一致するよう配置されている場合には、復号化される偶数ラインのみを走査上流方向に１画素分変位させる。
【００６４】
データ出力部６４０は、ブロック変位部６３０から入力されたブロックをまとめて１つの画像データとして外部に出力する。
より具体的には、データ出力部６４０は、ブロック変位部６３０から入力されたブロックのうち、偶数ラインの両端にあるブロックに対して追加画素を削除する処理を行い、奇数ライン及び偶数ラインのブロックをまとめて１つの画像データとして外部に出力する。
【００６５】
画像位置判断部６５０は、データ出力部６４０に入力されるブロックの画像内の位置を判断し、判断結果をブロック変位部６３０に出力する。
本例の画像位置判断部６５０は、データ出力部６４０から入力されるブロックが奇数ライン上のブロックであるか偶数ライン上のブロックであるかを判断し、判断結果をブロック変位部６３０に出力する。
【００６６】
図１０は、復号化プログラム６（図９）による復号化処理（Ｓ２０）のフローチャートである。
図１０に示すように、ステップ２００（Ｓ２００）において、復号値生成部６００は、既定の符号表を参照して、入力された符号データに対応する被符号化シンボル（参照位置（予測部ＩＤ）、連続数及び予測誤差）を生成し、生成された被符号化シンボルに基づいて、各ブロックのデータセット９０２（図５（Ｃ））を生成する。
【００６７】
ステップ２０５（Ｓ２０５）において、復号化プログラム６は、復号化されたデータセット９０２の中から、入力順に注目データセットを設定する。
復号値生成部６００は、注目データセットを復号値分割部６１０に出力する。
【００６８】
ステップ２１０（Ｓ２１０）において、復号値分割部６１０は、復号値生成部６００から入力される注目データセットを８ビット毎に分割して、分割されたビット列のうち、上位２つのビット列を、図５（Ｃ）に示すように、Ｙ０及びＹ１としてブロック変位部６３０に出力し、下位の２つのビット列をＣｂ及びＣｒとして補間処理部６２０に出力する。
【００６９】
ステップ２１５（Ｓ２１５）において、補間処理部６２０は、復号値分割部６１０から入力された注目データセット９０２のＣｂ成分とＣｒ成分とをそれぞれ複製することにより、Ｃｂ０及びＣｂ１と、Ｃｒ０及びＣｒ１とを生成し、生成されたＣｂ０、Ｃｂ１、Ｃｒ０及びＣｒ１をブロック変位部６３０に出力する。
補間処理部６２０から出力されるＣｒ成分及びＣｂ成分と、復号値分割部６１０から出力されるＹ成分とが統合されることにより、ブロックの画素が再現される。
【００７０】
ステップ２２０（Ｓ２２０）において、復号化プログラム６は、注目データセットがラインの終端に相当するか否かを判定し、注目データセットがラインの終端に相当しない場合に、Ｓ２０５の処理に戻って、次のデータセットを注目データセットして処理を行い、注目データセットがラインの終端に相当する場合に、このラインのブロックをまとめて注目ラインの画像データとし、Ｓ２２５の処理に移行する。
なお、注目データセットがラインの終端に相当するか否かの判断は、例えば、ライン終端のデータセットに既定のフラグを付加しておいてもよいし、ライン毎にデータセット数をカウントして行ってもよい。
【００７１】
ステップ２２５（Ｓ２２５）において、画像位置判断部６５０は、データ出力部６４０から入力されるライン（すなわち、これまでに復号化されたライン）が奇数ラインであるか偶数ラインであるかを記録し、直前ラインの奇数ラインであるか偶数ラインであるかに基づいて、注目ラインが奇数ラインであるか偶数ラインであるかを判断し、判断結果をブロック変位部６３０に出力する。
復号化プログラム６は、注目ラインが奇数ラインである場合に、Ｓ２４０の処理に移行し、注目ラインが偶数ラインである場合に、Ｓ２３０の処理に移行する。
なお、奇数ラインの画像データは、そのままデータ出力部６４０に入力される。
【００７２】
ステップ２３０（Ｓ２３０）において、ブロック変位部６３０は、注目ライン（すなわち、偶数ライン）を、走査上流方向に１画素だけ変位させて、データ出力部６４０に出力する。
【００７３】
ステップ２３５（Ｓ２３５）において、データ出力部６４０は、ブロック変位部６３０から入力された注目ライン（すなわち、偶数ライン）の両端にある画素（すなわち、追加画素）を削除する。
【００７４】
ステップ２４０（Ｓ２４０）において、復号化プログラム６は、全てのデータセットが処理されたか否かを判定し、未処理のデータセットが存在する場合に、Ｓ２０５の処理に戻って、次のデータセットを注目データセットとして処理し、これ以外の場合に、ブロック変位部６３０から入力されたライン（奇数ライン及び偶数ライン）をまとめて１つの画像データとして外部に出力する。
なお、データ出力部６４０は、復号化された画像データ（ＹＣｂＣｒ色空間の画像データ）を、ＲＧＢ色空間の画像データに変換してもよい。
【００７５】
以上説明したように、本実施形態の画像処理装置２は、入力画像から抽出されるブロックを主走査方向にずらすことにより、ＣｂＣｒ成分の解像度変換に伴う画質劣化が特定の列に集中させず分散させるので、画像全体の画質を向上することができる。
【００７６】
［変形例］
次に、上記実施形態の変形例を説明する。
上記実施形態では、Ｙ成分、Ｃｂ成分及びＣｒ成分全てをブロックとして切り出しているが、Ｃｂ成分及びＣｒ成分（すなわち、解像度変換の対象となる色成分）のみをブロックとして切り出してもよい。この場合には、符号化プログラム５は、例えば、Ｃｂ成分及びＣｒ成分からデータセットを作成し、Ｙ成分とは別に予測符号化する。
【図面の簡単な説明】
【００７７】
【図１】本発明にかかる画像処理方法が適応される画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
【図２】制御装置２１（図１）により実行され、本発明にかかる画像処理方法を実現する符号化プログラム５の機能構成を例示する図である。
【図３】ブロック抽出部５２０により抽出されるブロックを例示する図であり、（Ａ）は、主走査方向にずらして抽出されたＭ×Ｎサイズのブロックを例示し、（Ｂ）は、副走査方向にずらして抽出されたＭ×Ｎサイズのブロックを例示し、（Ｃ）は、本例における２×１サイズのブロックを例示する。
【図４】端部処理部５３０による処理を説明する図である。
【図５】解像度低減部５４０の処理を説明する図であり、（Ａ）は、２×１サイズのブロックに含まれる階調値を例示し、（Ｂ）は、２×１サイズのブロックのデータセット９００（解像度変換前）を例示し、（Ｃ）は、解像度変換後のデータセット９０２を例示する。
【図６】予測符号化部５５０（図２）の構成をより詳細に説明する図である。
【図７】予測符号化部５５０（図２、図６）によりなされる符号化処理を説明する図であり、（Ａ）は、予測部５５２により参照されるブロックの位置を例示し、（Ｂ）は、それぞれの参照位置に対応付けられた符号を例示し、（Ｃ）は、符号生成部５６０により生成される符号データを例示する。
【図８】符号化プログラム５（図２）による符号化処理（Ｓ１０）のフローチャートである。
【図９】制御装置２１（図１）により実行され、本発明にかかる画像処理方法を実現する復号化プログラム６の機能構成を例示する図である。
【図１０】復号化プログラム６（図９）による復号化処理（Ｓ２０）のフローチャートである。
【符号の説明】
【００７８】
２・・・画像処理装置
５・・・符号化プログラム
５００・・・色変換部
５１０・・・画像位置判定部
５２０・・・ブロック抽出部
５３０・・・端部処理部
５４０・・・解像度低減部
５５０・・・予測符号化部
５５２・・・予測部（第１予測部〜第４予測部）
５５４・・・予測誤差算出部
５５６・・・ラン計数部
５５８・・・選択部
５６０・・・符号生成部
６・・・復号化プログラム
６００・・・復号値生成部
６１０・・・復号値分割部
６２０・・・補間処理部
６３０・・・ブロック変位部
６４０・・・データ出力部
６５０・・・画像位置判断部
【図１】
2007088685.tif 000003
【図２】
2007088685.tif 000004
【図３】
2007088685.tif 000005
【図４】
2007088685.tif 000006
【図５】
2007088685.tif 000007
【図６】
2007088685.tif 000008
【図７】
2007088685.tif 000009
【図８】
2007088685.tif 000010
【図９】
2007088685.tif 000011
【図１０】
2007088685.tif 000012