(57)【要約】【課題】    自然画像等の画像データについての符号化効率は、実質的にこれまでの効率を維持しつつ、且つ、ＣＧ画像やテキスト文書等の出現色数が少ない画像については、更なる圧縮率で可逆符号化する。【解決手段】  信号線２０５からはラスタ順に画素データが入力される。バッファ２０１には、既に符号化済みの位置の画素データを記憶する。近傍一致判定部１０１は着目画素と同じ色の画素が近傍画素ａ，ｂ，ｃに存在するか否かを示す情報１０５と、着目画素と同じ色を持つ画素が存在するか否か、及び、存在する場合には近傍画素を特定する情報１０６を生成する。画素一致検出部１０７は、近傍画素ａ，ｂ，ｃ間に含まれる色数を計数し、２色以下か、或いは、３色かを示す情報１０８を生成する。符号生成部１０３は、情報１０８、１０５に基づき、一致画素位置符号化部１０２、予測誤差符号化部２０５からの符号化データのいずれか一方を出力するか、両方を出力する。【選択図】  図１
2006246061.tif 000002
【特許請求の範囲】
【請求項１】
１画素が複数の色成分データで構成されている画像データを入力し、可逆符号化する画像符号化装置であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記色数計数手段より得られた色数情報、及び、前記ベクトル情報生成手段で得られたベクトル情報に基づき、前記予測符号化手段、前記ベクトル情報符号化手段で得られた符号化データから出力用の符号化データを生成する符号化データ生成手段とを備え、
当該符号化データ生成手段は、
前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力し、
前記色数計数手段で計数された色数が所定閾値を超える場合、前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力する
ことを特徴とする画像符号化装置。
【請求項２】
前記ベクトル情報生成手段は、前記色数計数手段で得られた色数情報で示される色数に応じたベクトル情報を生成し、
前記ベクトル情報符号化手段は、前記色数情報で示される色数毎に想定される確率分布に応じて構成された符号を用いて、前記ベクトル情報の符号語を生成することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
符号化済みの画素から同一色の画素の連続が予想される場合に、所定の符号化済みの画素と同一色を持つ後続入力画素の数を計数し、計数した連続数の符号化データを出力するランレングス符号化手段と、
前記ランレングス符号化手段で同一色の画素の連続性の符号化データが生成されるタイミングで、当該ランレングス符号化手段からの符号化データを選択して出力し、符号化済みの画素から画素の連続が予想されない場合には、前記符号化データ生成手段からの符号化データを選択し、出力する切り換え手段と
を更に備えることを特徴とする請求項１または２に記載の画像符号化装置。
【請求項４】
１画素が複数の色成分データで構成されている画像データを入力し、可逆符号化する画像符号化装置の制御方法であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化工程と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数工程と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成工程と、
前記ベクトル情報を符号化するベクトル情報符号化工程と、
前記色数計数工程より得られた色数情報、及び、前記ベクトル情報生成工程で得られたベクトル情報に基づき、前記予測符号化工程、前記ベクトル情報符号化工程で得られた符号化データの出力用の符号化データを生成する符号データ生成工程とを備え、
当該符号化データ生成工程は、
前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化工程で生成された符号化データを、着目画素の符号化データとして出力し、
前記色数計数工程で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化工程で生成された符号化データと前記予測符号化工程で生成された予測符号化データを、着目画素の符号化データとして出力し、
前記色数計数工程で計数された色数が所定閾値を超える場合、前記予測符号化工程で生成された予測符号化データを、着目画素の符号化データとして出力する
ことを特徴とする画像符号化装置の制御方法。
【請求項５】
コンピュータが読込み実行することで、１画素が複数の色成分データで構成されている画像データを入力し、可逆符号化する画像符号化装置として機能するコンピュータプログラムであって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記色数計数手段より得られた色数情報、及び、前記ベクトル情報生成手段で得られたベクトル情報に基づき、前記予測符号化手段、前記ベクトル情報符号化手段で得られた符号化データから出力用の符号化データを生成する符号化データ生成手段として機能し、
当該符号化データ生成手段は、
前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力し、
前記色数計数手段で計数された色数が所定閾値を超える場合、前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力する
として機能することを特徴とするコンピュータプログラム。
【請求項６】
請求項５に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項７】
１画素が複数の色成分データで構成され、所定の画素順序で符号化された符号化画像データを復号する画像復号装置であって、
復号結果を所定ライン数分だけ記憶し、復号開始に先立って所定色のデータで初期化する記憶手段と、
入力した着目画素データの近傍の、復号済みの画素の色成分データを参照して予測値を求め、予測符号化データを復号する予測復号手段と、
前記着目画素の近傍にあって、復号済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
該色数計数手段で得られた色数情報による色数が所定数を超えることを示す場合、着目画素の符号化データは予測符号化データであるとして、前記予測復号手段によって得られた復号結果を、着目画素の復号データとして出力する第１の復号データ出力手段と、
前記色数計数手段で得られた色数情報による色数が所定数以下の場合、着目画素の符号化データは、ベクトル情報であると判定し、当該ベクトル情報を復号するベクトル情報復号手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ、近傍の復号済み画素位置を示す場合、前記記憶手段中の該当する位置の画素データを選択し、着目画素の復号データとして出力する第２の復号データ出力手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ近傍の画素位置が存在しないことを示す場合、前記ベクトル情報に後続して入力される符号化データを前記予測復号手段で復号させ、着目画素の復号データとして出力する第３の復号データ出力手段と
を備えることを特徴とする画像復号装置。
【請求項８】
前記ベクトル情報復号手段は、色数情報で示される色数毎に想定される確率分布に応じて構成された符号を用いて、ベクトル情報を復号することを特徴とする請求項７に記載の記載の画像復号装置。
【請求項９】
復号済みの画素から同一色を持つ画素の連続が予想される場合に、所定の符号化済みの画素と同一色を持つ画素の連続数を復号するランレングス復号手段と、
前記ランレングス復号手段で同一色の画素データが生成されるタイミングで、当該ランレングス復号手段からの復号データを出力し、復号済みの画素から同一色を持つ画素の連続が予想されない場合には、前記第１乃至第３の復号データ生成手段からの復号データを選択し、出力する切り換え手段と
を更に備えることを特徴とする請求項７または８に記載の画像復号装置。
【請求項１０】
復号結果を所定ライン数分だけ記憶し、復号開始に先立って所定色のデータで初期化する記憶手段を備え、１画素が複数の色成分データで構成され、所定の画素順に符号化された符号化画像データを復号する画像復号装置の制御方法であって、
入力した着目画素データの近傍の、復号済みの画素の色成分データを参照して予測値を求め、予測符号化データを復号する予測復号工程と、
前記着目画素の近傍にあって、復号済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数工程と、
該色数計数工程で得られた色数情報による色数が所定数を超えることを示す場合、着目画素の符号化データは予測符号化データであるとして、前記予測復号工程によって得られた復号結果を、着目画素の復号データとして出力する第１の復号データ出力工程と、
前記色数計数工程で得られた色数情報による色数が所定数以下の場合、着目画素の符号化データは、ベクトル情報であると判定し、当該ベクトル情報を復号するベクトル情報復号工程と、
該ベクトル情報復号工程で得られたベクトル情報が、着目画素と同じ色を持つ、近傍の復号済み画素位置を示す場合、前記記憶手段中の該当する位置の画素データを選択し、着目画素の復号データとして出力する第２の復号データ出力工程と、
該ベクトル情報復号工程で得られたベクトル情報が、着目画素と同じ色を持つ近傍の画素位置が存在しないことを示す場合、前記ベクトル情報に後続して入力される符号化データを前記予測復号工程で復号させ、着目画素の復号データとして出力する第３の復号データ出力工程と
を備えることを特徴とする画像復号装置の制御方法。
【請求項１１】
コンピュータが読込み実行することで、１画素が複数の色成分データで構成され、所定の画素順で符号化された符号化画像データを復号する画像復号装置として機能するコンピュータプログラムであって、
復号結果を所定ライン数分だけ記憶し、復号開始に先立って所定色のデータで初期化するバッファメモリを確保する確保手段と、
入力した着目画素データの近傍の、復号済みの画素の色成分データを参照して予測値を求め、予測符号化データを復号する予測復号手段と、
前記着目画素の近傍にあって、復号済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
該色数計数手段で得られた色数情報による色数が所定数を超えることを示す場合、着目画素の符号化データは予測符号化データであるとして、前記予測復号手段によって得られた復号結果を、着目画素の復号データとして出力する第１の復号データ出力手段と、
前記色数計数手段で得られた色数情報による色数が所定数以下の場合、着目画素の符号化データは、ベクトル情報であると判定し、当該ベクトル情報を復号するベクトル情報復号手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ、近傍の復号済み画素位置を示す場合、前記バッファメモリ中の該当する位置の画素データを選択し、着目画素の復号データとして出力する第２の復号データ出力手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ近傍の画素位置が存在しないことを示す場合、前記ベクトル情報に後続して入力される符号化データを前記予測復号手段で復号させ、着目画素の復号データとして出力する第３の復号データ出力手段
として機能することを特徴とするコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の可逆符号化／復号する技術に関するものである。
【背景技術】
【０００２】
従来より、画像の可逆符号化、復号を行う画像処理装置を構成する一手法として予測符号化をベースとするものがある。予測符号化装置は、画像データを予測変換によって予測誤差へと変換する系列変換部と、系列変換部から出力される予測誤差を、ハフマン符号化等のエントロピー符号化を用いて、より冗長性の少ない符号化データへと変換するエントロピー符号化部とによって構成されるのが一般的である。
【０００３】
ISOとITU−Tから国際標準の静止画像符号化方式として勧告されるJPEG（ITU-T T.81 ｜ ISO/IEC１０９１８−１）では、Independent Functionとして予測符号化をベースとした可逆符号化方式が規定されている。以下、これをＪＰＥＧ可逆符号化モードと呼ぶ。ＪＰＥＧ可逆符号化モードでは、近傍画素から着目画素の値を予測する方法として７つの予測式を規定しており、画像に応じて予測方法を選択できるようになっている。
【０００４】
図２に従来の画像処理装置のブロック図を示す。同図は上述のＪＰＥＧ可逆符号化モードにより画像を可逆圧縮する装置の一例である。同図に於いて、２０１はバッファ、２０２は成分値予測部、２０３は減算器、２０４はハフマンテーブル用メモリ、２０５は予測誤差符号化部、２０９は符号列形成部、２０６，２０７，２０８は信号線である。
【０００５】
ハフマンテーブル用メモリ２０４には予測誤差符号化部２０５において使用されるハフマンテーブルが格納される。ここでは、図６に示すハフマンテーブルが格納されているものとする。
【０００６】
同図を用いて従来の画像処理装置により、ＲＧＢ各成分が８ビットで表現されたカラー画像を符号化する処理の流れを説明する。
【０００７】
まず、信号線２０８から成分値予測部２０２において用いる予測方法を選択する予測選択信号ｍが入力される。予測選択信号ｍは０〜７までの整数値であり、それぞれに異なる予測式が対応付けられる。使用される予測式と予測選択信号ｍの対応は図４の通りである。なお、予測選択信号ｍが０の場合には予測式なしとなっているが、これは予測変換を行わず、各成分をそのまま符号化することを意味する。図中、の記号ｐ，ａ，ｂ，ｃについては後述する。
【０００８】
次に、信号線２０６から画像データが順に入力される。画素データの入力順序はラスタースキャン順とし、各画素でＲ，Ｇ，Ｂの順番で成分データが入力されるものとする。Ｒ，Ｇ，Ｂをそれぞれ成分番号０，１，２と定義し、画像の左上隅を座標（０，０）として水平右方向画素位置ｘ、垂直下方向画素位置ｙにある画素の成分番号Ｃの値をＰ（ｘ，ｙ，Ｃ）と表すこととする。例えば、位置（ｘ、ｙ）＝（３，４）である画素が（Ｒ，Ｇ，Ｂ）＝（２５５，１２８，０）という値を持つ場合、Ｐ（３，４，０）＝２５５、Ｐ（３，４，１）＝１２８、Ｐ（３，４，２）＝０と表現する。
【０００９】
バッファ２０１は信号線２０６から入力される画像データを２ライン分格納する。
【００１０】
成分値予測部２０２はバッファ２０１から着目する画素の成分値ｘ＝Ｐ（ｘ，ｙ，Ｃ）について直前の画素の同一成分の値ａ＝Ｐ（ｘ−１，ｙ，Ｃ）、１ライン前の画素の同一成分の値ｂ＝Ｐ（ｘ，ｙ−１、Ｃ）、および斜め左上の画素の同一成分の値ｃ＝Ｐ（ｘ−１，ｙ−１，Ｃ）を取り出し、予測方式選択信号ｍに従って予測値ｐを生成する。着目する画素の成分値ｘとａ，ｂ，ｃの位置関係を図３に示す。なお、着目画素が画像の端部（最上位ライン、左端）に位置する場合、ａ，ｂ，ｃは存在しないので、これらａ，ｂ，ｃは“０”と見なして処理を行なう。なお、画像データの入力順は、先に説明した通りであるので、画素ａ、ｂ、ｃそれぞれの位置は、既に符号化済みの画素位置となる。
【００１１】
減算器２０３は符号化対象となる成分値ｘと予測値ｐとの差分値を求め、予測誤差ｅとして出力する。
【００１２】
予測誤差符号化部２０５は、まず、減算器２０３から入力される予測誤差ｅを複数のグループに分類して、グループ番号ＳＳＳＳと、グループごとに定められるビット長の付加ビットを生成する。図５に予測誤差ｅとグループ番号ＳＳＳＳの関係を示す。付加ビットはグループ内で予測誤差を特定するための情報であり、ビット長はグループ番号SSSSで与えられる。なお、ＳＳＳＳ＝１６である場合には例外的にビット長は０である（但し、各成分の精度が８ビットである場合にはＳＳＳＳ＝１６は発生しない）。予測誤差ｅが正であるならば予測誤差ｅの下位ＳＳＳＳビットが付加ビットとなり、負である場合にはｅ−１の下位ＳＳＳＳビットが付加ビットとなる。付加ビットの最上位ビットは予測誤差ｅが正であれば１、負であれば０でなる。符号化処理は、まず、メモリ２０４に格納されているハフマンテーブルを参照して、グループ番号SSSSに対応する符号化データを出力し、ＳＳＳＳが０または１６でない場合には続いてグループ番号により定まるビット長で付加ビットを出力するという順序で行われる。
【００１３】
符号列形成部２０９は信号線２０８を介して入力される予測選択信号ｍや、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報と、予測誤差符号化部２０５から出力される符号化データから、ＪＰＥＧの規格書に準拠したフォーマットの符号列を形成し、信号線２０７に出力する。
【００１４】
上述の従来方式による画像処理装置で、ＣＧ画像や限定色画像等、各成分の輝度の頻度分布に偏りのある様な画像データを符号化する場合には、上述した系列変換後の予測誤差の発生頻度も、いくつかの特定の予測誤差値に偏ったものとなることがある。
【００１５】
このような場合、エントロピー符号化による符号長として短い符号長が割り当てられているにも関わらず、殆どもしくは全く発生しない予測誤差が存在することがあり、圧縮率が良くならない。
【００１６】
このような問題に対して従来から、予測誤差の発生頻度分布が離散的かどうか判別し、判別の結果に応じて予測誤差に対応する符号化データを変更してエントロピー符号化する手法（例えば特許文献１を参照）や、符号化対象画像が離散的な画素値で構成されているかどうか判別し、判別の結果に応じて予測値を修正する手法（例えば特許文献２を参照）などが提案されている。また、画素毎の符号化において、近傍の画素との一致情報が符号化する方法も知られている（例えば特許文献３）。また、複数の予測符号化方法を切替える方法が知られている（特許文献４）。
【特許文献１】特開平１０−００４５５１号公報
【特許文献２】特開平１０−００４５５７号公報
【特許文献３】特開平１０−３３６４５８号公報
【特許文献４】特開平９−２２４２５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
特許文献１或いは２では、各画素の成分値の発生状況、あるいは予測誤差の発生状況を把握する必要があり、処理の負荷が増える。また、ハフマン符号のようなブロック符号を用いて各成分を予測符号化する場合には、少なくとも１成分当たり最低でも１ビットが必要になる。更に、上記予測符号化技術は、自然画（例えばデジタルカメラで自然界を撮像した画像）については高い圧縮率が期待できるが、文字、線画、ＣＧ画像などエントロピの低い画像データでは符号化効率の面でもなお改善の余地がある。かかる点は、特許文献３、４でも同様である。
【００１８】
本願発明は、上述の問題点に鑑みてなされたものであり、写真画像等の自然画は勿論のこと、比較的出現する色数が限られたコンピュータグラフィクスや、文書画像に対しも効率良く符号化する技術及びその復号技術を提供しようとするものである。
【課題を解決するための手段】
【００１９】
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
１画素が複数の色成分データで構成されている画像データを入力し、可逆符号化する画像符号化装置であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記色数計数手段より得られた色数情報、及び、前記ベクトル情報生成手段で得られたベクトル情報に基づき、前記予測符号化手段、前記ベクトル情報符号化手段で得られた符号化データから出力用の符号化データを生成する符号化データ生成手段とを備え、
当該符号化データ生成手段は、
前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力し、
前記色数計数手段で計数された色数が所定閾値を超える場合、前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力することを特徴とする。
【発明の効果】
【００２０】
本発明の構成によれば、自然画像等の画像データについての符号化効率は、実質的にこれまでの効率を維持しつつ、且つ、ＣＧ画像やテキスト文書等の出現色数が少ない画像については、更なる圧縮率で可逆符号化することが可能になる。
【００２１】
また、他の発明によれば、上記のような符号化データから可逆復号し、オリジナル画像に完全に復元することが可能になる。
【発明を実施するための最良の形態】
【００２２】
以下添付図面を参照して、本発明に係る実施の形態について詳細に説明する。
【００２３】
＜第１の実施形態＞
図１は実施形態における画像処理装置のブロック構成図である。
【００２４】
図１に示すように、本実施形態に係る画像処理装置は、近傍一致判定部１０１、一致画素位置符号化部１０２、符号生成部１０３、符号形成部１０４、バッファ２０１、成分値予測部２０２、減算器２０３、ハフマンテーブル用メモリ２０４、予測誤差符号化部２０５、画素一致検出部１０７とを備える。同図において２０６、２０７、１０５、１０６、１０８は信号線を示す。なお、背景技術で述べた図２の従来の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。
【００２５】
以下、図１を参照して、本実施形態に係る画像処理装置が行う画像符号化処理について説明する。
【００２６】
本実施形態に係る画像処理装置の符号化対象とする画像データは、ＲＧＢカラー画像データであり、各コンポーネント（色成分）は８ビットで０〜２５５の範囲の輝度値を表現した画素データにより構成されるものとする。符号化対象の画像データは水平方向Ｗ画素、垂直方向Ｈ画素のサイズとする。従って、入力される画像データはＷ×Ｈ×３バイトのデータ量である。また、水平右方向がＸ座標の正方向、垂直下方向がＹ座標の正方向と定義する。また、入力する画像データの入力順序はラスター順とし、各画素はＲ，Ｇ，Ｂの順番でデータを並べて構成されるものとする。
【００２７】
さて、符号化対象画像データは信号線２０６から順に入力される。入力する画像データの供給元は、イメージスキャナでもよいし、所定の記憶装置に格納された画像データでも良く、入力元の種類は問わない。
【００２８】
画素データの入力順序は既に説明したように、ラスタースキャン順とし、各画素でＲ，Ｇ，Ｂの順番で成分データが入力される。画素の各成分の輝度値は、Ｒ，Ｇ，Ｂをそれぞれ成分番号Ｃで表現し、Ｃ＝０はＲ、Ｃ＝１はＧ、Ｃ＝２はＢの各色成分を示すこととする。また、入力する画像の左上隅を座標（０，０）として水平方向画素位置ｘ、垂直方向画素位置ｙにある画素の成分番号Ｃの値（実施形態では輝度）をＰ（ｘ，ｙ，Ｃ）と表す。従って、水平方向画素位置「１０」、垂直方向画素位置「２５」の画素のＲ、Ｇ、Ｂ各成分の値はそれぞれＰ（１０，２５，０）、Ｐ（１０，２５，１）、Ｐ（１０，２５，２）と表して表わされる。また、成分のまとまりとして画素値を表現する場合にはＲ，Ｇ，Ｂの各成分値を要素とするベクトルＸとして表現する。例えば、Ｒ、Ｇ、Ｂ各成分の値がｒ、ｇ、ｂである画素についてはＸ=（ｒ，ｇ，ｂ）と記述する。
【００２９】
本画像処理装置は、信号線２０６から順次入力される画像データの１画素ごとに、符号列形成部１０４から対応する符号を出力する。
【００３０】
バッファ２０１は画像データを２ライン分格納する領域を持ち、信号線２０６から入力される画素データを順次格納し、２ライン分の画素データを記憶保持する。先に述べたように、画像データは各画素がラスター順に、そして各画素ではＲ，Ｇ，Ｂの順番で成分値が入力される。バッファ２０１からは、図３の着目画素ｘの周囲の３画素ａ，ｂ，ｃの同一成分値が読み出され、近傍一致判定部１０１、成分値予測部２０２に出力される。着目する成分値をＰ（ｘ，ｙ，Ｃ）とするとき、ａ＝Ｐ（ｘ−１，ｙ，Ｃ）、ｂ＝Ｐ（ｘ，ｙ−１、Ｃ）、ｃ＝Ｐ（ｘ−１，ｙ−１，Ｃ）である。なお、画像の最初のラインや各ラインの先頭／末尾などで、ａ，ｂ，ｃが画像の外側となる場合には符号化側と復号側で共通の値を持つよう仮定する。本実施形態ではａ，ｂ，ｃ＝０とする。また、着目画素ｘは符号化対象位置であり、周囲画素ａ，ｂ，ｃの位置は既に符号化済みの位置になる点に注意されたい。
【００３１】
さて、近傍一致判定部１０１は着目する画素の成分値ｘ＝Ｐ（ｘ，ｙ，Ｃ）と、バッファ２０１から読み出されるａ，ｂ，ｃを比較して、着目画素と同一画素値を持つ近傍画素の存在の有無を示す情報（以下、一致画素存在情報）１０５を後段の符号生成部１０３に、着目画素に一致する近傍画素の相対方向を示す情報（以下、ベクトル情報）１０６を後段の一致画素位置符号化部１０２にそれぞれ出力する。
【００３２】
ここで一致画素存在情報１０５を生成する場合における２つの画素が同一であるという意味は、２つの画素Ｘ１＝（ｒ１、ｇ１、ｂ１）と、Ｘ２＝（ｒ２、ｇ２、ｂ２）があるとき、ｒ１＝ｒ２、ｇ１＝ｇ２、ｂ１＝ｂ２というように全ての成分値が同じである場合を意味する。着目画素の近傍画素ａ，ｂ，ｃの中で、着目画素に一致するものが１つでも存在する場合には一致画素存在情報１０５は“０”、１つも存在しない場合には“１”となる。
【００３３】
また、ベクトル情報１０６については次の通りである。
【００３４】
着目画素値（色）をＸとして直前の画素値をＸａ、ｘ座標が同じで１ライン前の画素値をＸｂ、斜め左上の画素値をＸｃとするとき、
Ｘ＝Ｘａである場合（Ｘｂ、Ｘｃは問わない）、ベクトル情報１０６は“０”、
Ｘ≠Ｘａ、かつ、Ｘ＝Ｘｂである場合（Ｘｃは問わない）、ベクトル情報１０６は“１”、
Ｘ≠Ｘa、かつ、Ｘ≠Ｘｂ、かつ、Ｘ＝Ｘｃである場合、ベクトル情報１０６は“２”、
上記以外の場合、ベクトル情報１０６は“３”とする。
【００３５】
上記の一致画素存在情報１０５及びベクトル情報１０６を得るための着目画素の位置を（ｘ、ｙ）とし、これを用いてＸ，Ｘａ，Ｘｂ，Ｘｃを表現したとき、以下の情報を用いれば良いのは明らかである。
Ｘ＝（Ｐ（ｘ，ｙ，０）、Ｐ（ｘ，ｙ，１）、Ｐ（ｘ，ｙ，２））
Ｘａ＝（Ｐ（ｘ−１、ｙ、０）、Ｐ（ｘ−１，ｙ，１）、Ｐ（ｘ−１、ｙ、２））
Ｘｂ＝（Ｐ（ｘ、ｙ−１，０）、Ｐ（ｘ，ｙ−１，１），Ｐ（ｘ，ｙ−１，２））
Ｘｃ＝（Ｐ（ｘ−１，ｙ−１，０）、Ｐ（ｘ−１，ｙ−１，１）、Ｐ（ｘ−１，ｙ−１，２））
上記の通りなので、ベクトル情報１０６が“３”になる場合には、一致画素存在情報１０５は必ず“１”となる。逆に、一致画素存在情報１０５が“１”になる場合には、ベクトル情報１０６は必ず“３”になる。従って、一致画素存在情報１０５は、ベクトル情報１０６から得られるものであるが、実施形態では便宜的に別信号として示した。
【００３６】
一致画素位置符号化部１０２は、近傍一致判定部１０１からのベクトル情報１０６を符号化し、その結果である符号語を符号生成部１０３へと出力する。本実施形態では図７に示す符号テーブルを用いてベクトル情報１０６から符号語を生成する（ベクトル情報を符号化する）。
【００３７】
画素一致検出部１０７はバッファ２０１から読み出される着目画素の周囲のａ，ｂ，ｃの３つの画素値を比較して、それら周囲３画素（Ｘａ、Ｘｂ、Ｘｃ）の間で同一の画素値のペアが存在するか否かを調べ、同一の画素値のペアが検出された場合には“１”、検出されなかった場合には“０”を、周辺画素状態情報１０８として出力する。
【００３８】
即ち、画素一致検出部１０７は、着目画素Ｘの周囲の３画素Ｘａ、Ｘｂ、Ｘｃ間において、「Ｘａ＝Ｘｂ」、または「Ｘａ＝Ｘｃ」、または「Ｘｂ＝Ｘｃ」の場合には“１”、それ以外に場合には“０”の周辺画素状態情報１０８を出力する。なお、周囲３画素内に同一の画素値のペアが少なくとも１つ存在するというのは、周囲３画素間に含まれる色数が２色以下であることと等価である。すなわち、上記は、着目画素の周辺３画素内に存在する色の種類が２種類以下であるか否かの判定結果と考えることができる。
【００３９】
因に、画像の先頭ラインを符号化する際、少なくとも近傍画素ｂ、ｃは画像領域外であるため“０”として扱われることになる。すなわち、少なくともＸｂ＝Ｘｃであるので、先頭ラインの符号化する際の周辺画素状態情報１０８は“１”となる。
【００４０】
一方、画素の各成分は先に説明した従来方式と同様にして、成分値予測部２０２、減算器２０３、予測誤差符号化部２０５によって、信号線２０８から入力される予測選択信号ｍに応じて、各成分毎の予測符号化処理が行われる。なお、この予測選択信号ｍは、装置の設定によって任意に決めることができる信号であって、少なくとも符号化対象となる全画像データの符号化中は固定である。
【００４１】
符号生成部１０３では一致画素位置符号化部１０２から出力されるベクトル情報の符号語と、予測誤差符号化部２０５から出力される着目画素の各成分の予測符号化データを一時的に格納する。そして、符号生成部１０３は、一致画素存在情報１０５と、周辺画素状態情報１０８に応じて着目画素に対する符号データを形成し、出力する。具体的には、次の通りである。
ｉ）周辺画素状態情報１０８が“０”である場合、すなわち、着目画素Ｘの周辺の３画素Ｘａ、Ｘｂ、Ｘｃ間で同じ色がペアが１つも存在しない場合、予測誤差符号化部２０５から出力される各成分の予測符号化データを選択し、出力する。これは、通常の符号化に相当する処理である。
ii）周辺画素状態情報１０８が“１”（着目画素Ｘの周辺の３画素Ｘａ、Ｘｂ、Ｘｃ間で少なくとも同じ色のペアが１つ存在する場合）であり、且つ、一致画素存在情報１０５が“０”（着目画素の色が、周辺３画素Ｘａ，Ｘｂ，Ｘｃのいずれかと同じ場合）の場合、一致画素位置符号化部１０２から出力されるベクトル情報（ここでは必ず０乃至２のいずれかになる）の符号化データを選択し、出力する。
iii）周辺画素状態情報１０８が“１”であり、且つ、一致画素存在情報１０５が“１”（着目画素の色が、周辺３画素Ｘａ，Ｘｂ，Ｘｃのいずれとも一致しない場合）の場合、一致画素位置符号化部１０２から出力されるベクトル情報（必ず“３”）の符号化データを出力し、その後に、予測誤差符号化部２０５から出力される各成分の予測符号化データを出力する。
【００４２】
図８（ａ）乃至（ｃ）は、上記３通りの符号化データの符号の構成である。同図（ａ）は、上記条件ｉ、すなわち、周辺画素状態情報１０８が“０”である場合の着目画素の符号データを示している。同図（ｂ）は、条件iiの周辺画素状態情報１０８が“１”であり、且つ、一致画素存在情報１０５が“０”の場合の着目画素の符号データを示し、同図（ｃ）は条件iiiの周辺画素状態情報１０８が“１”であり、且つ、一致画素存在情報１０５が“１”の場合の着目画素の符号データである。
【００４３】
図８（ａ）乃至（ｃ）において注目すべき点は、図８（ｂ）の符号化データである。この符号化データが生成される条件は、要するに、着目画素近傍の色数が所定数以下であり、尚且つ、着目画素Ｘの色が近傍画素Ｘａ，Ｘｂ，Ｘｃのいずれかと一致している場合である。同図（ｂ）と、同図（ａ）或いは（ｃ）と比較すると、もはや各色成分毎の符号化データを不要になり、その符号長は図７に示すように最大でも３ビットで表現でき、更なる圧縮効率が望まれることを意味する。以下に、更に詳しく説明する。
【００４４】
一般に自然画（デジタルカメラで撮像した画像（特に風景画）等）では、近傍の画素がほぼ同じ色になる傾向が高いことが知られている。しかし、これは、近傍の画素の色が完全に一致することを意味するものではないし、むしろ微小な差を有している確率が高い。以下、かかる点を踏まえて、一例を説明する。
【００４５】
今、Ｒ成分の予測誤差が−３１乃至−１６、或いは１６乃至３１の範囲にあるものとする。この場合の予測誤差のグループ番号ＳＳＳＳは、図５を参照すると、“５”となる。グループ番号「５」の符号語は図６によると“１１０（Ｂ）”（Ｂは２進数を意味する）であり、図５から付加ビット長は“５”と判明するので、最終的に求めるＲ成分の予測符号化データは、
“１１０ＸＸＸＸＸ（Ｂ）”
となる（Ｘは、０または１のビット）。
【００４６】
一方、ベクトル情報１０５が“２”の場合の符号語は図７を参照すると、“１１０（Ｂ）”（Ｂは２進数を意味する）となり、上記Ｒ成分の符号化データの先頭３ビットと同じになってしまう。つまり、復号側の処理では、この符号語だけを参照する限りは、“１１０（Ｂ）”がベクトル情報“２”の符号語を意味するのか、グループ番号ＳＳＳＳが“５”の符号語であるのか区別できない。
【００４７】
しかし、復号する際、着目画素の近傍画素ａ，ｂ，ｃは既に復号済みである点に注意されたい。すなわち、着目画素を復号する際に、近傍画素ａ，ｂ，ｃ間に、少なくとも同じ色のペアが１つでも存在するか否かは容易に検出できる。近傍画素ａ，ｂ，ｃに同じ色のペアが存在する（色数が２以下の場合）場合、符号化データは図８（ｂ）または（ｃ）のいずれかであることが約束され、“１１０”がベクトル情報の符号語であることが判明する。逆に、近傍画素ａ，ｂ，ｃに同じ色のペアが１つも存在しない（色数が３）の場合には、符号化データは、図８（ａ）に示すように、予測誤差符号化データのみで構成されることが判明する。これはベクトル情報の他の符号語についても同様である。
【００４８】
一方、図８（ｃ）の符号化データは、予測誤差符号化データに先立って、ベクトル情報が“３”の符号語“１１１（Ｂ）”が付加される分だけ、同図（ａ）の符号化データより冗長であると言える。つまり、予測符号化データを採用する場合には、図８（ｃ）のような符号語が発生する確率を低くすることが望まれる。かかる点、本実施形態によれば、同図（ｃ）の符号化データの発生する条件とは、近傍画素ａ，ｂ，ｃ間に少なくとも同一色のペアが存在する場合（色数が２色以下）としている。換言すれば、近傍画素ａ，ｂ，ｃが全て異なる色（色数が３）の場合には、同図（ａ）の符号化データを生成することになるので、自然画等の場合には必然的に同図（ａ）の符号化データとなる確率を高めることに成功する。
【００４９】
コンピュータグラフィックスの場合、コンピュータ上で人工的に生成した色でペイントすることがほとんどである。従って、コンピュータグラフィクスで、見かけ上、自然画を模した画像を生成したとした場合に利用される色数は自然画よりは少ない。換言すれば、近傍画素間で色が完全に一致する割合は自然画より格段に多くなるので、同図（ｂ）の符号化データが生成される確率は高くなり、従来の可逆符号化である予測符号化よりも、数段優れた圧縮率が期待できる。特に、通常の文字で構成されるテキスト文書画像の場合には、色数は２色（黒と白）しか存在しないので、図８（ａ）のような符号化データが生成される確率を高めることができる。
【００５０】
一方、デジタルカメラで撮像した画像等においては、図８（ａ）に示す符号化データが多く生成されることになり、自然画についても従来と同じ符号量を維持することが可能になる。
【００５１】
図１の説明に戻る。符号列形成部１０４では信号線２０８を介して入力される予測選択信号ｍ、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報と、符号生成部１０３から出力される符号化データから、所定のフォーマットの符号列を形成し、信号線２０７を介して出力する。出力先は、記憶装置でも良いし、通信回線でも良い。記憶装置に出力する場合にはファイルとして格納することになろう。
【００５２】
図９に符号列形成部１０４から出力される符号列の構成の一例を示す。先頭のＨｅａｄｅｒ部分に付加情報（予測選択信号ｍ、画像の水平、垂直方向の画素数情報を含む）が格納され、続いてラスタースキャン順の各画素の符号化データが並ぶ。同図の各画素符号化データは図８（ａ）、（ｂ）、（ｃ）のいずれかの構造を持つことになる。
【００５３】
以上の説明のように、本実施形態に係る画像処理装置では、符号化対象の画素Ｘの周囲にある符号化済みの画素Ｘａ、Ｘｂ、Ｘｃを調べ、Ｘａ，Ｘｂ，Ｘｃ間に同一色のペアが存在する場合（２色以下の場合）には、画素Ｘと、画素Ｘａ,Ｘｂ,Ｘｃとの一致／不一致、及び、一致する場合にはその一致する近傍画素の相対位置を特定するベクトル情報を符号化する。そして、着目画素Ｘと、Ｘａ、Ｘｂ、Ｘｃ間で同じ色が存在しない場合には、後続して、着目画素の各成分を予測符号化データを生成することで、文字、線画、ＣＧ画像など、着目画素の周囲に同じ色の画素が存在する可能性の高い画像データの可逆圧縮性能を大幅に改善することができる。
【００５４】
また、Ｘａ，Ｘｂ，Ｘｃ間で同一色のペアが１つも存在しなかった場合には、ベクトル情報の符号化を行わずに、着目画素の各成分を予測符号化する。この結果、自然画像など、周囲画素値との完全一致の確率の低い画像データを符号化する場合においてもベクトル情報の符号化データの付加を避けることができる。これまでの予測符号化技術と同等の符号量を維持することができるようになる。
【００５５】
＜第１の実施形態の変形例＞
上記実施形態をソフトウェアでもって実現しても構わない。そこで、本変形例では、ソフトウェアで実現する例を説明する。
【００５６】
ソフトウェアでもって実現する場合、図１に示した近傍一致判定部１０１に代表される各種構成要素に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現するが、本変形例でも、便宜的に、図１１の各処理部の名前をそのまま使用するものとする。なお、バッファ１２０１や符号バッファ１１０３については、処理を開始するに先立って、ＣＰＵ１４０１がＲＡＭ１４０２に確保することになる。
【００５７】
図１４はソフトウェアで実現する場合の装置の基本構成を示す図である。
【００５８】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。
【００５９】
１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶するため、及び、ＣＰＵ１４０１が各種の処理を実行する際のワークエリアとして使用される。図１に示されるバッファ１２０１、ハフマンテーブル２０４等も、このＲＡＭ１４０２に確保されるものである。
【００６０】
１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。
【００６１】
１４０４、１４０５は夫々キーボード、マウス（登録商標）等のポインティングデバイスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００６２】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。
【００６３】
１４０７は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置であって、ここにＯＳや後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどが保存されており、ＣＰＵ１４０１による制御によって、これらのプログラムやデータはＲＡＭ１４０２上の所定のエリアにロードされる。
【００６４】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良く、その場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００６５】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００６６】
図１０は、本変形例に係る画像処理装置による画像符号化アプリケーションの符号化処理の流れを示すフローチャートである。なお、同図に従ったプログラムはＲＡＭ１４０２にロードされており、ＣＰＵ１４０１がこれを実行することで、図１０に示したフローチャートに従った処理を行うことができる。また、図１に示す各種処理部に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現することになるが、本変形例では、便宜的に、図１の各処理部の名前をそのまま使用するものとする。以下、同図を参照して、本変形例に係る画像処理装置が行う画像符号化処理の全体的な流れについて説明する。
【００６７】
まず、装置外部から信号線２０８を介して予測選択信号ｍが入力される（ステップＳ１０００）。続いて符号列形成部１０４において、予測選択信号ｍなど、符号化対象画像の付加情報を含めたヘッダが生成され、出力される（ステップＳ１００１）。
【００６８】
次いで、着目する画素の垂直方向位置を保持するカウンタｙを０に設定し（ステップＳ１００２）、さらに着目する画素の水平方向位置を保持するカウンタｘを０に設定する（ステップＳ１００３）。同様に着目する成分番号を保持するカウンタＣを０に設定する（ステップ１００４）。
【００６９】
信号線２０６から着目画素の成分値Ｐ（ｘ，ｙ，Ｃ）が入力され、バッファ１２０１に格納される。成分値Ｐ（ｘ，ｙ，Ｃ）は成分値予測部２０２、減算器２０３、予測誤差符号化部２０５により予測符号化されると同時に、近傍一致判定部１０１において周囲画素の同一成分値との比較が行われる（ステップＳ１００５）。
【００７０】
着目する成分番号Ｃに１を加え（ステップＳ１００６）、ＲＧＢ画像の色成分の数である３と比較してＣ＜３であればステップＳ１００５に処理を戻し、次の成分について同様に処理を行い、そうでない場合にはステップＳ１０１４へと処理を移す。
【００７１】
ステップＳ１０１４では画素一致検出部１０７により周辺３画素間で同一の画素値が存在するか否かを判定し、存在する場合（ＹＥＳ）にはステップＳ１００８へ、存在しない場合（ＮＯ）にはステップＳ１００９へと処理を移す。ステップＳ１００８では近傍一致判定部１０１で得られるベクトル情報１０５を一致画素位置符号化部１０２で符号化する。
【００７２】
ステップＳ１００９では、近傍一致判定部１０１で得られる一致画素存在情報１０５と、画素一致検出部１０７からの周辺画素状態情報１０８、並びに、一致画素位置符号化部１０２からのベクトル情報の符号化データに従って、着目する画素についての符号を形成し、符号列形成部１０４を介して出力する（ステップＳ１００９）。
【００７３】
この後、着目する画素の水平方向位置を保持するカウンタｘに１を加え（ステップＳ１０１０）、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば処理をステップＳ１００４へと戻し、次の画素の符号化処理を行う。また、ｘ＝Ｗであると判断した場合には、着目する画素の垂直方向位置を保持するカウンタｙに１を加える（ステップＳ１０１２）。そして、着目画素のｙ座標と垂直方向画素数Ｈと比較してｙ＜Ｈであるか否かを判定する（ステップＳ１０１３）。ｙ＜Ｈである場合、符号化処理は未完であるとので、処理をステップＳ１００３へと戻し、次のラインの画素について同様に処理を行う。また、ｙ＝Ｈである場合には、１つの画像についての符号化処理が終了したことになるので、本符号化処理を終了する。
【００７４】
以上説明したように、ソフトウェアでもっても、上記第１の実施形態と同様の作用効果を奏することが可能になる。
【００７５】
＜第２の実施形態＞
次に、上記第１の実施形態（或いはその変形例）で生成された符号化データの復号する例を第２の実施形態として説明する。復号処理は、基本的には、第１の実施形態の画像処理装置での符号化処理の逆の手順で実行すればよい。
【００７６】
図１１は、本第２の実施形態に係る符号化画像データを復号する画像処理装置のブロック構成図である。
【００７７】
図１１に示すように、本実施形態に係る画像処理装置は、符号バッファ１１０１、ヘッダ解析部１１０２、一致画素位置復号部１１０３、予測誤差復号部１１０４、セレクタ１１０５、スイッチ１１０６、バッファ１２０１、成分値予測部１２０２、加算器１１１１、画素一致検出部１１０７とを備える。同図において１１０７、１１０８、１１０９、１１１０、１１１２は信号線である。
【００７８】
以下、図１１を参照して、本実施形態に係る画像処理装置が行う処理について説明する。 
信号線１１０７を介して復号対象となる符号化データが本画像処理装置の符号バッファ１１０１に入力される。
【００７９】
ヘッダ解析部１１０２は符号バッファ１１０１に格納される符号化データのヘッダ部分を解析し、予測選択信号ｍや、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報を得る。これら付加情報は復号の過程で利用されるとするが、特に、予測選択信号ｍは成分値予測部２０２へと出力される。
【００８０】
最終的に、復号して得られた画素データは、スイッチ１１０６から出力されるが、この復号画素データはバッファ１２０１（２ライン分の復号画素データを格納する容量を有する）にも格納する。
【００８１】
画素一致検出部１１０７は第１の実施形態の画素一致検出部１０７と同様に、着目画素の周囲３画素（Ｘａ、Ｘｂ、Ｘｃ）内に同一色のペアが存在するか否かを調べ、検出結果を周辺画素状態情報１１１２として、一致画素位置復号部１１０３に出力する。符号化処理と同じにするため、復号対象となる着目画素が画像の先頭ラインに位置する場合には、Ｘｂ＝Ｘｃ＝０として扱う。また、着目画素が各ラインの先頭位置にある場合にはＸａ＝０として扱う。
【００８２】
周辺画素状態情報１１１２が“１”である場合、すなわち、復号しようとしている画素Ｘの周辺の既復号画素データＸａ，Ｘｂ，Ｘｃ間に少なくとも同一色のペアがある場合、入力した符号化データ構造は、図８（ｂ）、（ｃ）のいずれかである。従って、一致画素位置復号部１１０３は、復号対象の符号化データは、ベクトル情報符の号化データであることが約束されるので、図７に示すテーブルを参照してベクトル情報１１０９として復号し、セレクタ１１０５へ出力する。このとき、復号したベクトル情報が“３”である場合、信号線１１０８を介して、予測誤差復号部１１０４及びスイッチ１１０６を制御する信号１１０８を“１”にして出力し、それ以外の場合には“０”を出力する。
【００８３】
一方、周辺画素状態情報１１１２が“０”である場合には、符号化データは図８（ａ）の符号化データであることになる。従って、一致画素位置復号部１１０３では、復号処理を行なわず、信号線１１０８として“１”を出力する。
【００８４】
予測誤差復号部１１０４は、一致画素位置復号部１１０３からの制御信号１１０８が“１”である場合に、ハフマンテーブル用メモリ２０４に格納されるハフマンテーブルを参照して、着目する画素の各成分の予測誤差を復号する。
【００８５】
成分値予測部２０２では符号化時と同様にして、予測方式選択信号ｍによって選択された予測式を用いて着目する成分値に対する予測値ｐを生成し、出力する。
【００８６】
加算器１１１１は成分値予測部２０２から出力される予測値ｐに、予測誤差復号部１１０４で復号した予測誤差ｅを加え、着目する成分値を復元して出力する。
【００８７】
セレクタ１１０５は一致画素位置復号部１１０３からのベクトル情報１１０９に従って、バッファ２０１から読み出される着目画素Ｘの周囲画素Ｘａ、Ｘｂ、Ｘｃの各成分値の何れかを選択して出力する。より詳しくは、ベクトル情報が“０”である場合には、セレクタ１１０５はＸａの各成分値を選択する。また、“１”である場合にはＸｂ、“２”である場合にはＸｃの各成分値を選択して出力する。なお、ベクトル情報が“３”である場合にはセレクタ１１０５からの出力は無効とするが、何を出力しても構わない。なぜなら、スイッチ１１０６ではそのデータが選択されることはないからである。
【００８８】
スイッチ１１０６は一致画素位置復号部１１０３から信号線１１０８が“１”の場合には、入力端子ａ、すなわち、予測復号して得られた画素データを選択し出力する。また、信号１１０８が“０”である場合には、入力端子ｂ、すなわち、ベクトル情報に従って生成された画素データを選択し、出力する。
【００８９】
信号線１１１０から復号された各画素の各成分の値が出力されるが、先に説明したように、復号結果の２ライン分の画素データは、バッファ１２０１にも格納され、以降の画素の復号において周囲の画素値として利用される。
【００９０】
以上の処理により、符号化データから完全に元の画像データを復元（可逆復号）することが可能になる。
【００９１】
＜第２の実施形態の変形例＞
上記第２の実施形態は、ソフトウェアでもって実現しても構わない。その例を以下に説明する。ソフトウェアで実現する場合の装置構成は、第１の実施形態の変形例を参照した図１４と同じであるのでその説明は省略し、その装置上で実行する復号アプリケーションの処理手順を図１２のフローチャートに従って説明する。なお、図１１に示す各種処理部に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現することになるが、本変形例でも、便宜的に、図１１の各処理部の名前をそのまま使用するものとする。そして、各部の処理内容は、上記第２の実施形態で説明した処理を行なうものとする。また、当然のことながら、バッファ１２０１や符号バッファ１１０３については、処理を開始するに先立って、ＣＰＵ１４０１がＲＡＭ１４０２に確保することになる。
【００９２】
信号線１１０７から復号対象となる符号化データが符号バッファに入力され、ヘッダ解析部１１０２で符号化データのヘッダを解析して復号に必要な付加情報（予測選択信号ｍや、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度など）を取り出す（ステップＳ１２０１）。
【００９３】
次いで、着目する画素の垂直方向位置を保持するカウンタｙを０に設定し（ステップＳ１２０２）、同水平方向位置を保持するカウンタｘを０に設定する（ステップＳ１２０３）。さらに、着目する成分番号を保持するカウンタＣを０に設定する（ステップＳ１２０４）。
【００９４】
各画素の復号では、まず、画素一致検出部１０７において周辺３画素間で同一の色のペアが存在するか否かを判定する。そのようなペアが存在する場合（ＹＥＳ）にはステップＳ１２０５へ、存在しない場合（ＮＯ）にはステップＳ１２１６へと処理を移す。
【００９５】
ステップＳ１２０５では一致画素位置復号部１１０３によりベクトル情報が復号されて信号線１１０９から出力されるとともに、予測誤差復号部１１０４とスイッチ１１０６を制御する制御信号１１０８を出力する。また、ステップＳ１２０６では、復号して得られたベクトル情報が“３”であるかを判定する。この判定がＹＥＳならばステップＳ１２０７へ、ＮＯならばステップ１２０８へと処理を移す。
【００９６】
ステップＳ１２０６でＹｅｓと判定された場合（このとき信号線１１０８は“１”である点に注意されたい）、スイッチ１１０６に対して端子ａを選択させる。この結果、成分値予測部２０２、予測誤差復号部１１０４、加算器１１１１により着目する成分値Ｐ（ｘ，ｙ，Ｃ）が復号され、出力する（ステップＳ１２０７）。一方、ステップＳ１２０６の判定がＮｏである場合（このとき信号線１１０８は“０”である点に注意されたい）、スイッチ１１０６に対して端子ｂを接続させる。この結果、一致画素位置復号部１１０３で復号した近傍一致情報に基づいてバッファ２０１から読み出される周辺画素の何れか１つの成分値をセレクタ１１０５で選択し、これを着目する画素の復号結果の成分値Ｐ（ｘ，ｙ，Ｃ）として出力する（ステップＳ１２０８）。
【００９７】
ステップＳ１２０７、あるいはステップＳ１２０８で出力される成分値Ｐ（ｘ，ｙ，Ｃ）は信号線１１１０から装置外部へと出力されるとともに、バッファ２０１に格納される。
【００９８】
ステップＳ１２０９では、着目する成分番号を保持するカウンタＣに１を加え、ＲＧＢ画像の色成分の数である３と比較する。Ｃ＜３であればステップＳ１２０６に処理を戻し、次の成分について同様に処理を行い、そうでない場合にはステップＳ１２１１へと処理を移す。
【００９９】
一方、ステップＳ１２１５の分岐によりステップＳ１２１６へと処理が移された場合、画素一致検出部１０７から出力される検出結果は“０”、一致画素位置復号部１１０３から出力される制御信号は“１”となり、スイッチ１１０６が端子ａに接続され、成分値予測部２０２、予測誤差復号部１１０４、加算器１１１１により着目する成分値Ｐ（ｘ，ｙ，０）が復号される（ステップＳ１２１６）。
【０１００】
続いて同様に成分値予測部２０２、予測誤差復号部１１０４、加算器１１１１により成分値Ｐ（ｘ，ｙ，１）が復号され（ステップＳ１２１７）、さらに成分値Ｐ（ｘ，ｙ，２）が復号される（ステップＳ１２１８）。
【０１０１】
ステップＳ１２１１では、着目する画素の水平方向位置を保持するカウンタｘに１を加え、ステップＳ１２１２でｘとＷとを比較し、復号した着目画素が１ラインの終端位置の画素であるか否かを判定する。ｘ＜Ｗである場合には、１ライン分の復号処理が未完であることになるので、処理をステップＳ１２０４へと戻し、次の画素の復号処理を行う。また、ｘ＝Ｗである場合には、ステップＳ１２１３に進み、着目する画素の垂直方向位置を保持するカウンタｙに１を加える。
【０１０２】
ステップＳ１２１４では、着目画素の垂直方向座標ｙと画像の垂直方向の画素数Ｈと比較する。ｙ＜Ｈであれば処理をステップＳ１２０３へと戻し、次のラインの各画素について同様に処理を行い、ｙ＝Ｈである場合には、画像全体の復号処理が完了したことになるので、本復号処理を終了する。
【０１０３】
以上の結果、第２の実施形態と同様に、可逆復号が可能になる。
【０１０４】
＜第３の実施形態＞
上記第１の実施形態及びその変形例では、単一の符号表を用いてベクトル情報を符号化する構成とした。この構成は、簡易である反面、冗長性が残る。また、周囲の色数が少ない場合には着目画素値と周囲画素値のいずれかが同一である可能性も高く、反対に色数が多い場合には低くなる傾向にある。そこで、第３の実施形態として、周囲画素の色数に応じて適応的にベクトル情報を符号化するか否かを切り替え、さらに色数に応じてベクトル情報の符号化方法を変更することにより、符号の冗長性を除き、さらに圧縮効率を高めることを目指す技術を説明する。
【０１０５】
本第３の実施形態における画像符号化を行なう画像処理装置のブロック構成図を図１３に示す。
【０１０６】
図１３に示すように、本第３の実施形態に係る画像データの符号化を行なう画像処理装置は、色数判定部１３０１、近傍一致判定部１３０２、一致画素位置符号化部１３０３、予測誤差符号化部１３０４、符号生成部１３０５、バッファ２０１、成分値予測部２０２、減算器２０３とを備える。同図において１０５、１０６、２０６、２０７は信号線である。なお、第１の実施形態の画像処理装置の処理部と同じ動作をする処理部については同参照番号を付し、説明を省略する。
【０１０７】
以下、図１３を参照して、本第３の実施形態に係る画像処理装置が行う画像符号化処理について説明する。 
本実施形態に係る画像処理装置の符号化対象とする画像データは、第１の実施形態と同じとする。すなわち、ＲＧＢカラー画像データであり、各コンポーネント（色成分）８ビットで０〜２５５の範囲の輝度値を表現した画素データにより構成されるものとする。符号化対象の画像データの並びは点順次、即ち、ラスタースキャン順に各画素を並べ、その各画素はＲ、Ｇ、Ｂの順番でデータを並べて構成されるものとする。また、画像は水平方向Ｗ画素、垂直方向Ｈ画素により構成されるものとする。
【０１０８】
第１の実施形態の画像処理装置では装置外部から成分値予測部２０２で使用する予測方式を選択する予測選択信号ｍが入力され、これによって予測方式が切り替わる構成としたが、本第３の実施形態の画像処理装置では、成分値予測部２０２に設定する予測選択信号ｍは“４”の固定であるものとする。
【０１０９】
色数判定部１３０１は着目する画素Ｘの各成分について、バッファ２０１から図３のａ，ｂ，ｃ、ｄに示す周囲４画素の同一成分値を読み出し、画素Ｘａ、Ｘｂ、Ｘｃ、Ｘｄを得る。着目する画素の位置を（ｘ、ｙ）としたとき、Ｘａ、Ｘｂ、Ｘｃについては先に説明したと通りである。画素Ｘｄは、以下の通りである。
Ｘｄ＝（Ｐ（ｘ＋１，ｙ−１，０）、Ｐ（ｘ＋１，ｙ−１，１）、Ｐ（ｘ＋１，ｙ−１，２））
【０１１０】
色数判定部１３０１は、これら画素データＸａ、Ｘｂ、Ｘｃ、Ｘｄの集合中に何種類の色が存在するか検出して、その色数情報Ｎｃを出力する。具体的には、４画素から２画素を取り出す６通りの組み合わせ、すなわち、ＸａとＸｂ、ＸａとＸｃ、ＸａとＸｄ、ＸｂとＸｃ、ＸｂとＸｄ、ＸｃとＸｄの各ペアについて一致しているか否かを判定し、一致しているペアの数をカウントする。すなわち、一致するペアの数が０であれば４色、１であれば３色、２か３であれば２色、６であれば１色と判断し、その色数を色数情報Ｎｃとして出力する。
【０１１１】
近傍一致判定部１３０２は着目画素Ｘと同一の色を持つ画素がその周囲４画素（Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ）に存在するか否かを表す一致画素存在情報１０５と、ベクトル情報１０６を生成し、出力する。
【０１１２】
先に説明した第１の実施形態での近傍一致判定部１０１では周囲３画素を参照したが、本第３の実施形態では画素データＸｄを含めた周囲４画素との比較を行う点に注意されたい。
【０１１３】
また、本第３の実施形態での近傍一致判定部１３０２、色数判定部１３０１から出力される色数情報Ｎｃに依存したベクトル情報１０６を生成し、出力する。色数Ｎｃの値（１乃至４）の場合に分けて近傍一致判定部１３０２の処理は次の通りである。
ｉ）．色数情報Ｎｃが４である場合、即ち、Ｘａ，Ｘｂ，Ｘｃ，Ｘｄが全て異なる色である場合、近傍一致判定部１３０２は、近傍画素Ｘａ乃至Ｘｄ内での一致不一致によらず、ベクトル情報１０６として“４”を出力する。
ii）色数Ｎｃが１の場合、即ち、近傍画素Ｘａ乃至Ｘｄが全画素値（同一色）である場合には、着目画素ＸとＸａを比較してＸ＝Ｘａならば“０”、Ｘ≠Ｘａならば“１”をベクトル情報１０６として出力する。
iii）色数Ｎｃが２の場合、すなわち、近傍画素Ｘａ乃至Ｘｄ内に２種類の色が存在する場合、Ｘａ、Ｘｂ，Ｘｃ，Ｘｄの順番で第１画素値（色）Ｘ１と第２の画素値Ｘ２を求め、着目画素Ｘ＝Ｘ１ならば“０”、Ｘ＝Ｘ２ならば“１”、Ｘ≠Ｘ１かつＸ≠Ｘ２ならば“２”をベクトル情報１０６として出力する。ここで、第１、第２画素値の定義であるが、Ｘａ、Ｘｂ，Ｘｃ，Ｘｄの順番で見た場合、第１の画素Ｘ１は無条件でＸａである。また、第２の画素値はＸａと異なる値（色）を持つＸｂ，Ｘｃ，Ｘｄのいずれかである。例えば、Ｘａ＝Ｘｂ＝Ｘｃであり、ＸｄがＸａ乃至Ｘｃのいずれとも一致しない場合、第１画素値Ｘ１はＸａ、第２画素値Ｘ２はＸｄとなる。
iv）．色数Ｎｃが３の場合、すなわち、近傍画素Ｘａ乃至Ｘｄ内に３種類の色が存在する場合、Ｘａ、Ｘｂ，Ｘｃ，Ｘｄの順番で第１の画素値Ｘ１、第２の画素値Ｘ２、第３の画素値Ｘ３を求め、Ｘ＝Ｘ１ならば“０”、Ｘ＝Ｘ２ならば“１”、Ｘ＝Ｘ３ならば“２”、Ｘ≠Ｘ１かつＸ≠Ｘ２かつＸ≠Ｘ３ならば“３”をベクトル情報１０６として出力する。
【０１１４】
また、近傍一致判定部１３０２が一致画素存在情報１０５を出力する際の処理は次の通りである。
【０１１５】
近傍一致判定部１３０２は、ベクトル情報１０６として出力する情報と、色数判定部１３０１から得られる色数Ｎｃとを比較し、両者が等しい場合には信号線１０５として“１”を出力し、それ以外の場合には“０”を出力する。従って、色数Ｎｃ＝４である場合、一致画素存在情報１０５は常に“１”となる。また、色数Ｎｃが４以外の場合であり、尚且つ、着目画素Ｘが周囲４画素Ｘａ，Ｘｂ，Ｘｃ，Ｘｄのいずれとも不一致ならば“１”、着目画素Ｘは少なくとも周囲４画素の何れか１つの一致する場合には“０”を出力する。
【０１１６】
一致画素位置符号化部１３０３では、近傍一致判定部１３０２からのベクトル１０６を符号化し、その符号化結果である符号語を符号生成部１３０５へ出力する。本第３の実施形態における一致画素位置符号化部１３０３は、色数判定部１３０１から出力される色数Ｎｃによって、図１５（ａ）乃至（ｃ）の符号テーブルを切り替えて使用する。色数Ｎｃが４である場合には一致画素位置符号化部１３０３からの符号出力は行われない。
【０１１７】
なお、図１５（ａ）乃至（ｃ）における符号語中、例えば「１（バイナリ）」はＮｃ＝１，２，３の場合に存在する。しかし、復号する装置（後述）では、着目画素の符号化データがこの符号であったとしても、既復号済みの周辺画素の色数Ｎｃから同図（ａ）乃至（ｃ）のいずれの符号であるかが特定できるので、正しく復号することが約束される。
【０１１８】
一方、第１の実施形態と同様にして、着目画素の各成分は成分値予測部２０２、減算器２０３、予測誤差符号化部１３０４によって予測符号化される。本実施形態では予測選択信号ｍを固定値４としているので、全ての成分値に対して「ａ＋ｂ−ｃ」の式により予測値を求めることになる。
【０１１９】
なお、第１の実施形態では予測符号化部２０５において図６の符号表を用いたハフマン符号化を行ったが、本実施形態ではGolomb符号を用いる例について説明する。
【０１２０】
Golomb符号は非負の整数値を符号化対象とし、パラメータ変数ｋによって異なる複数の確率モデルによる符号化が可能であるという特徴を持つ。また、Golomb符号は、符号化対象シンボルとパラメータ変数ｋから符号語を導出することができるため、符号表が不要という利点がある。Golomb符号の一形態がISOとITU-Tから国際標準勧告されるJPEG-LS（ISO/IEC  １４４９５−１｜ITU-T  Recommendation T.87）において予測誤差の符号化方式として採用されている。ここでは減算器２０３から出力される予測誤差ｅを次式により非負の整数値（Ｖとする）に変換した後に，これを選択したｋパラメータでGolomb符号化する。
ｅ≧０の場合、Ｖ＝２×ｅ
ｅ＜０の場合、Ｖ＝−２×ｅ−１
【０１２１】
符号化対象の非負の整数値Ｖを符号化パラメータｋでGolomb符号化する手順は次の通りである。
【０１２２】
まず、Ｖをｋビット右シフトして整数値ｍを求める。Ｖに対する符号はｍ個の「０」に続く「１」（可変長部）とＶの下位ｋビット（固定長部）の組み合わせにて構成する。図１６にｋ＝０、１、２におけるGolomb符号の例を示しておく。ここに述べた符号の構成方法は一例であり、固定長部と可変長部の順序が逆にしても一意復号可能な符号を構成することができる。また、０と１を反対にして符号を構成することもできる。符号化パラメータｋの選択方法としては所定の単位で最適なｋパラメータの選択して符号列に含める方法など様々な手法が考えられるが、本実施形態ではＪＰＥＧ−ＬＳと同様の手法により符号化の過程で更新していく方法を用いる。以下、符号化パラメータｋの選択方法について述べる。
【０１２３】
予測誤差符号化部１３０４には、符号化済みの画素の数を保持するカウンタＮと、各成分毎に符号化済みの予測誤差の絶対値の合計を保持するカウンタＡ[Ｃ]（Ｃは成分番号であり、０〜２）を備える。符号化の開始時点でカウンタＮに１を、カウンタＡ［０］〜Ａ[２]に２を設定する。符号化対象の成分値ごとにＮ×２＾ｋ（ｘ＾ｙはｘのｙ乗を意味する）がＡ［Ｃ］を超えない最大のｋを求め、これを用いて先に説明した手順にて予測誤差ｅをGolomb符号化し、符号語を出力する。近傍一致判定部１３０２からの情報１０５が“１”である場合（着目画素Ｘと同一色が近傍画素ａ，ｂ，ｃ，ｄに存在しない場合）には、各成分の符号化処理後にＡ［Ｃ］に予測誤差の絶対値｜ｅ｜を加算して更新する。またこの場合、全成分の符号化処理後に変数Ｎに１を加えて更新する。なお、Ａ［Ｃ］とＮを所定の範囲内に限定するためにはＮが一定値（例えば３２）に達したタイミングでＡ［Ｃ］とＮを１／２にするといった処理を適用すれば良い。
【０１２４】
符号生成部１３０５は、一致画素存在情報１０５に従って、一致画素位置符号化部１３０３から出力される符号語と予測誤差符号化部１３０４から出力される各成分の予測符号化データから着目する画素に対する符号化データを生成する。一致画素存在情報１０５が“０”である場合には、図８（ｂ）のように一致画素位置符号化部１３０３から出力される符号語のみを着目画素の符号化データとする。一方、一致画素存在情報１０５が“１”である場合には同図（ｃ）のように一致画素位置符号化部１３０３から出力される符号語に、予測誤差符号化部１３０４から出力される各成分値の予測符号化データを連結させて着目画素の符号化データとする。なお、色数判定部１３０１により検出された色数Ｎｃが４であった場合には一致画素位置符号化部１３０３から出力される符号語は無い（即ち、近傍一致情報の符号語長は０である）点に注意されたい。
【０１２５】
符号列形成部１０４では予測選択信号ｍや、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報と、符号生成部１３０５から出力される符号化データから、所定のフォーマットの符号列を形成し、信号線２０７に出力する。本第３の実施形態においても第１の実施形態と同様に図９に示す構成の符号列を生成することができる。なお、本第３の実施形態の画像処理装置では予測選択信号ｍを固定値としている。従って、復号側装置での予測選択信号ｍも固定するとするなら、ヘッダには予測選択信号ｍを格納する必要はない。
【０１２６】
以上の説明のように、本第３の実施形態に係る画像処理装置では、符号化対象となる画素Ｘの周囲にある符号化済みの画素Ｘａ,Ｘｂ,Ｘｃ,Ｘｄの色数に応じてベクトル情報の符号語の有無、および、ベクトル情報の符号化における符号の割り当てを変更している。これにより、文字、線画、ＣＧ画像など、着目画素の周囲に同じ色の画素が存在する可能性の高い画像データの可逆圧縮性能を更に向上させるとともに、自然画像など、着目画素の周囲に同じ色の画素が存在する可能性の低い画像データにおいても余分な付加を発生することなく、効率的な符号化を行うことができる。
【０１２７】
＜第３の実施形態の変形例＞
上記第３の実施形態をソフトウェアでもって実現しても構わない。その例を以下に説明する。ソフトウェアで実現する場合の装置構成は、第１の実施形態の変形例を参照した図１４と同じであるのでその説明は省略し、その装置上で実行する符号化アプリケーションの処理手順を説明する。
【０１２８】
本第３の実施形態における符号化処理手順を図２２に示す。図示の様に、先に説明した第１の実施形態おける符号化処理の流れとして示した図１０のフローチャートとほぼ同様の流れにになるので、同処理については同符号を付した。異なる点としては図１０でのステップＳ１０００に示した予測選択信号ｍの入力が不要となり、ステップＳ１０１５における色数判定部１３０１による色数Ｎｃを求める処理が追加された点である。以下、本第３の実施形態の変形例を説明する。なお、各種バッファについては、処理を開始するに先立って、ＣＰＵ１４０１がＲＡＭ１４０２に確保することになる。
【０１２９】
まず、符号列形成部１０４において、符号化対象画像の付加情報を含めたヘッダが生成され、出力される（ステップＳ１００１）。次いで、着目する画素の垂直方向位置を保持するカウンタｙを０に設定し（ステップＳ１００２）、さらに着目する画素の水平方向位置を保持するカウンタｘを０に設定する（ステップＳ１００３）。同様に着目する成分番号を保持するカウンタＣを０に設定する（ステップＳ１００４）。
【０１３０】
信号線２０６から着目画素の成分値Ｐ（ｘ，ｙ，Ｃ）を入力し、バッファ２０１に格納する。成分値Ｐ（ｘ，ｙ，Ｃ）は成分値予測部２０２、減算器２０３、予測誤差符号化部１３０４により予測符号化されると同時に、近傍一致判定部１３０２において周囲画素の同一成分値との比較が行われる（ステップＳ１００５）。着目する成分番号Ｃに１を加え（ステップＳ１００６）、ＲＧＢ画像の色成分の数である３と比較してＣ＜３であればステップＳ１００５に処理を戻し、次の成分について同様に処理を行い、そうでない場合にはステップＳ１００８へと処理を移す。
【０１３１】
着目画素について全ての成分が入力されると色数判定部１３０１において色数Ｎｃが求められる（ステップＳ１０１５）。これを用いて近傍一致判定部１３０２はベクトル情報１０６と一致画素存在情報１０５を生成する。但し、Ｎｃが４である場合にはベクトル情報の符号化は行われない（ステップＳ１００８）。
【０１３２】
一致画素位置符号化部１３０３から出力される近傍一致情報の符号語と、予測誤差符号化部１３０４から出力される各成分の予測符号化データに基づき、符号生成部１３０５に対して、一致画素存在情報１０５に従って着目する画素についての符号を形成を生成させ、その結果を符号列形成部１０４を介して出力させる（ステップＳ１００９）。
【０１３３】
次いで、着目する画素の水平方向位置を保持するカウンタｘに１を加え（ステップＳ１０１０）、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば処理をステップＳ１００４へと戻し、次の画素の符号化処理を行う。また、ｘ＝Ｗである場合には、ステップＳ１０１２へと処理を進め、着目する画素の垂直方向位置を保持するカウンタｙに１を加える。そそて、着目画素の垂直方向の位置を示すｙと画像の垂直方向画素数Ｈと比較してｙ＜Ｈであれば処理をステップＳ１００３へと戻し、次のラインの画素について同様に処理を行。また、ｙ＝Ｈである場合には、画像全体に対する符号化が完了したことになるので、本符号化処理を終了する。
【０１３４】
以上の説明のように、本変形例によっても第３の実施形態と同様の作用効果を奏することが可能になる。
【０１３５】
［第４の実施形態］
次に、上記第３の実施形態及びその変形例にて生成された符号化画像データを復号する例を第４の実施形態として説明する。基本的には、上記第３の実施形態の符号化処理の逆の手順で処理を行なえばよい。
【０１３６】
図１７は、本第４の実施形態に係る画像データの復号を行なう画像処理装置の機能構成を示すブロック図である。図１７に示すように、本実施形態に係る画像処理装置は、一致画素位置復号部１７０１、予測誤差復号部１７０２、セレクタ１７０３、色数判定部１３０１、符号バッファ１１０１、ヘッダ解析部１１０２、スイッチ１１０６、バッファ２０１、成分値予測部２０２、加算器１１１１とを備える。同図において１１０７、１１０８、１１０９、１１１０は信号線である。第１から第３の実施形態の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ参照符号を付し、説明を省略する。
【０１３７】
以下、図１７を参照して、本第４の実施形態に係る画像処理装置が行う処理について、第２の実施形態で説明した画像処理装置との差異を説明する。 
第２の実施形態と同様に、復号対象となる符号化データが信号線１１０７を介して本画像処理装置に入力され、符号バッファ１１０１に適宜格納され、ヘッダ解析部１１０２により付加情報の取得が行われる。
【０１３８】
本第４の実施形態でも、最終的に復号して得られた画素データは、スイッチ１１０６より出力されるが、そのうちの２ライン分の画像データはバッファ２０１に格納される（復号処理を開始する際に零クリアされている）。
【０１３９】
色数判定部１３０１では第３の実施形態で説明した処理により、着目画素の近傍画素ａ，ｂ，ｃ，ｄ内の色数Ｎｃを求めて出力する。
【０１４０】
一致画素位置復号部１７０１は、色数判定部１３０１から出力される色数Ｎｃが１から３である場合に、各画素の符号化データについて、まず、図１５（ａ）乃至（ｃ）のいずれのテーブルを利用するかを決定し、符号語からベクトル情報に復号する。復号したベクトル情報は、信号線１１０９を介してセレクタ１７０３へ出力する。
【０１４１】
また、一致画素位置復号部１７０１は、復号したベクトル情報と色数Ncを比較して、両者が等しい場合、予測誤差復号部１７０２とスイッチ１１０６を制御する信号１１０８として“１”を出力し、異なる場合には“０”を出力する。一方、色数Ｎｃが４である場合には信号線１１０８から制御信号“１”を出力し、ベクトル情報として信号線１１０９に“４”を出力する。
【０１４２】
予測誤差復号部１７０２は、一致画素位置復号部１７０１からの制御信号１１０８が“１”である場合に、第３の実施形態で説明した予測誤差符号化部１３０４の符号化処理と対をなす復号手順により着目する画素の各成分の予測誤差を復号する。この予測誤差復号部１７０２には、予測誤差符号化部１３０４と同様、符号化済みの画素の数を保持するカウンタＮと、各成分毎に符号化済みの予測誤差の絶対値の合計を保持するカウンタＡ[Ｃ]（Cは成分番号であり、０〜２）とを備え、復号の開始時点でカウンタＮを１に、カウンタＡ［0］〜Ａ[2]を２に設定する。着目画素の着目する成分値の復号においては符号化時と同様の方法により、ＮとＡ[0]〜Ａ[2]から符号化時に用いたｋパラメータと同じ値を導出し、これを用いて非負の整数値Ｖを復号する。Golomb符号の復号は符号化と逆の手順で行われ、まず、復号開始点から「０」の連続数を調べ、整数値ｍに保持する。「０」の連続を終端させた「１」のすぐ後からｋビット取り出し、ｍをｋビット左シフトした後、取り出したｋビットとのＯＲ演算を行うことにより非負の整数値Vを復号する。この非負の整数値Vから以下の演算により予測誤差ｅを復号する。
Ｖが奇数の場合、ｅ＝−（Ｖ＋１）／２
Ｖが偶数の場合、ｅ＝Ｖ／２
第２の実施形態と同様にして成分値予測部２０２は予測値ｐを生成し、加算器１１１１で、予測値ｐと上記予測誤差ｅとを加算することで、着目画素の着目色成分を復元して出力する。各成分の復号後、カウンタＮ［Ｃ］に復号した予測誤差の絶対値｜ｅ｜を加算して更新し、着目する画素について全成分の復号が終了した時点でカウンタＮに１を加えて更新する。なお、Ａ［Ｃ］とＮを所定の範囲内に限定するためにはＮが一定値（例えば３２）に達したタイミングでＡ［Ｃ］とＮを１／２にするといった処理を適用すれば良い。但し、同じｋパラメータを得るためには、この処理は符号化側と復号側で共通に行わなければならない。
【０１４３】
セレクタ１７０３は一致画素位置復号部１７０１からのベクトル情報１１０９に従って、バッファ２０１から読み出される着目画素Ｘの周囲画素Ｘａ、Ｘｂ、Ｘｃ、Ｘｄの各成分値の何れかを選択して出力する。すなわち、ベクトル情報１１０９が“０”である場合には、Ｘａの各成分値を選択し、“１”である場合にはＸａ,Ｘｂ,Ｘｃ,Ｘｄの順番に見てＸａとは異なる第２の画素値（色）を持つ画素の各成分値を選択する。同様に“２”である場合にはＸａ，Ｘｂ，Ｘｃ，Ｘｄの順番で見て、第１の画素値（Ｘａ）および第２の画素値と異なる第３の画素値の各成分値を選択して出力する。なお、ベクトル情報１１０９が“３”、または“４”である場合、セレクタ１７０３からの出力は無効である。なお、この場合、スイッチ１１０６が端子ａ側に接続されることになるので、セレクタ１７０３からの出力は何であっても構わない。
【０１４４】
スイッチ１１０６は一致画素位置復号部１７０１から信号線１１０８が“１”である場合には端子ａを選択して予測復号して得られた画素データを出力する。また、信号１１０８が“０”である場合には端子ｂを選択し、ベクトル情報に基づいて得られた画素データを復号結果として出力する。スイッチ１１０６から出力された画素データは、先に説明したように、バッファ１２０１に格納され、後続して入力する符号化データを復号する際の周囲画素として利用される。
【０１４５】
以上の説明したように、符号化データから完全に元の画像データを復元することができる。
【０１４６】
＜第４の実施形態の変形例＞
上記第３の実施形態は、ソフトウェアでもって実現しても構わない。その例を以下に説明する。
【０１４７】
なお、図１７に示す各種処理部に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現することになるが、本変形例でも、便宜的に、図１７の各処理部の名前をそのまま使用するものとする。装置構成は、図１４と同じであるので、その説明は省略し、その装置上で実行する復号アプリケーションの処理手順を図２３のフローチャートに従って説明する。
【０１４８】
図２３に示すように、第２の実施形態の復号処理の流れとして説明した図１２のフローチャートとほぼ同様の処理手順で行われる。それ故、図１２のフローチャートと同じ処理については同参照符号を示す。また、特に異なる点としては、ステップＳ１２１９の色数Ｎｃを検出する処理が追加され、ステップＳ１２０５では色数Ｎｃに応じてベクトル情報を復号する点と、ステップＳ１２０６に代わって、ステップＳ１２２０で復号して得られたベクトル情報と色数Ｎｃが等しいかどうかを判定することである。なお、同図に従ったプログラムはＲＡＭ１４０２にロードされており、ＣＰＵ１４０１がこれを実行することになる。
【０１４９】
先ず、信号線１１０７から復号対象となる符号化データを符号バッファ１１０１に格納し、ヘッダ解析部１１０２で符号化データのヘッダを解析して復号に必要な付加情報を取り出す（ステップＳ１２０１）。着目する画素の垂直方向位置を保持するカウンタｙを０に設定し（ステップＳ１２０２）、同水平方向位置を保持するカウンタｘを０に設定する（ステップＳ１２０３）。さらに、着目する成分番号を保持するカウンタＣを０に設定する（ステップＳ１２０４）。
【０１５０】
各画素の復号では、まず、色数判定部１３０１により周囲画素の色数Ｎｃを求め、Ｎｃの値に応じたベクトル情報１１０９を一致画素位置復号部１７０１で復号させる。また、このとき、一致画素存在情報１１０８も生成し、予測誤差復号部１７０２とスイッチ１１０６に制御信号として出力する（ステップＳ１２０５）。
【０１５１】
次に、復号して得られたベクトル情報と色数Ｎｃと等しいか否かを判定し（ステップＳ１２２０）、等しい（ＹＥＳ）ならばステップＳ１２０７へ、等しくない（ＮＯ）ならばステップＳ１２０８へと処理を移す。
【０１５２】
ステップＳ１２０７に処理が移った場合（このとき信号線１１０８は“１”）、スイッチ１１０６の端子ａを選択し、成分値予測部２０２、予測誤差復号部１７０２、加算器１１１１により着目する成分値Ｐ（ｘ，ｙ，Ｃ）が復号する。一方、ステップＳ１２２０でＮＯと判定した場合（このとき信号線１１０８は“０”）、処理はステップＳ１２０８に進み、スイッチ１１０６の端子ｂを選択し、一致画素位置復号部１７０１で復号したベクトル情報に基づいてバッファ１２０１から読み出される周辺画素の何れか１つの成分値をセレクタ１７０３で選択させ、この結果を、着目する画素の成分値Ｐ（ｘ，ｙ，Ｃ）として出力する。このようにして、ステップＳ１２０７、あるいはステップＳ１２０８で出力される成分値Ｐ（ｘ，ｙ，Ｃ）は信号線１１１０から装置外部へと出力されるとともに、バッファ２０１に格納される。
【０１５３】
ステップＳ１２０９では着目する成分番号を保持するカウンタＣに１を加え、ＲＧＢ画像の色成分の数である３と比較してＣ＜３であればステップＳ１２０６に処理を戻り、次の成分について復号処理を行なう。また、Ｃ＝３であると判断した場合には、ステップＳ１２１１へと処理を移し、着目する画素の水平方向位置を保持するカウンタｘに１を加える。そして、ステップＳ１２１２で、ｘ＜Ｗであれると判断した場合には、ステップＳ１２０４へと戻し、次の画素の復号処理を行う。また、ｘ＝Ｗであると判断した場合には、ステップＳ１２１３へ処理を移し、着目する画素の垂直方向位置を保持するカウンタｙに１を加える。次いで、画像の垂直方向画素数Ｈと比較してｙ＜Ｈであれば処理をステップＳ１２０３へと戻り、次のラインの各画素について同様に処理を行う。また。ｙ＝Ｈであると判断した場合には、画像全体に対する復号処理が完了したことを意味するので、本復号処理を終了する。
【０１５４】
以上の動作により、符号化データから完全に元の画像データを復元することができることになる。
【０１５５】
＜第５の実施形態＞
第３の実施形態の画像処理装置では、着目画素に対して、符号化済みの周囲画素群の色数に応じてベクトル情報の符号化を行うか否か、及び、符号化する際のテーブルを切り替えた。これにより、自然画像など、着目画素値と同一の画素値（色）を持つ周囲画素が存在する可能性の低い画像に対しても、ベクトル情報の符号化による符号量の増加を抑制することができた。また、着目画素値と同一の画素値（色）を持つ近傍画素が存在する可能性の高いコンピュータグラフィックスの画像等については、更なる圧縮効率が期待できるものであった。更なる圧縮率を実現するためには、ランレングス符号化と組み合わせることも効果的である。そこで、本第５の実施形態として、第３の実施形態にランレングス符号化を組み合わせた例について説明する。
【０１５６】
図１８は本第５の実施形態に係る画像符号化を行なう画像処理装置の機能構成を示すブロック図である。図１８に示すように、本第５の実施形態に係る画像処理装置は、ランレングス符号化部１８０１、スイッチ１８０２、色数判定部１３０１、近傍一致情報符号化部１３０６、成分値予測符号化部１３０７、符号生成部１３０５、バッファ２０１、符号列形成部１０４から構成される。なお、１０５、２０６、２０７は信号線である。第１の実施形態の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。
【０１５７】
以下、図１８を参照して、本第５の実施形態に係る画像処理装置における画像符号化処理について説明する。
【０１５８】
本第５の実施形態の画像処理装置は、図１３に示した第３の実施形態の画像処理装置に、ランレングス符号化部１８０１、スイッチ１８０２を追加した構成と成っている。近傍一致情報符号化部１３０６は、図１３において近傍一致判定部１３０２と一致画素位置符号化部１３０３を内部に含む破線部分を一纏めにしたものであり、また、成分値予測符号化部１３０７は同図の成分値予測部２０２、減算器２０３、予測誤差符号化部１３０４を含む破線部分を一纏めにしたものである。
【０１５９】
また、本第５の実施形態では、符号化対象とする画像データは、ＣＭＹＫカラー画像データであり、各コンポーネント（色成分）８ビットで０〜２５５の範囲の濃度値を表現した画素データにより構成されるものとする。符号化対象の画像データの並びは点順次、即ち、ラスタースキャン順に各画素を並べ、その各画素はＣ，Ｍ，Ｙ，Ｋの順番でデータを並べて構成されるものとする。また、画像は水平方向Ｗ画素、垂直方向Ｈ画素により構成されるものとする。なお、色空間としてＣ（シアン）Ｍ（マゼンタ）Ｙ（イエロー）Ｋ（ブラック）にしたのは、これまでの実施形態では符号化対象画像がＲＧＢカラー画像データであり、それ以外の一例を示すためのものである。
【０１６０】
次に、本第５の実施形態の画像処理装置での各部の動作について説明する。先に説明した第３の実施形態と同じく、成分値予測部２０２（成分値予測符号化部１３０７の内部）で用いる予測方式は固定であるとし、常に予測選択信号ｍ＝４が入力されているものとする。
【０１６１】
符号化対象画像データは信号線２０６から順に入力される。画素データの入力順序はラスタースキャン順とし、各画素でＣ，Ｍ，Ｙ，Ｋの順番で成分データが入力される。画素の各成分の濃度値は、Ｃ，Ｍ，Ｙ，Ｋをそれぞれ成分番号０，１，２，３と定義し、画像の左上隅を座標（０，０）として水平方向画素位置ｘ、垂直方向画素位置ｙにある画素の成分番号Ｃの値をＰ（ｘ，ｙ，Ｃ）と表す。例えば、水平方向画素位置１０４、垂直方向画素位置３３５の画素のＣ，Ｍ，Ｙ，Ｋ各成分の値はそれぞれＰ（１０４，３３５，０）、Ｐ（１０４，３３５，１）、Ｐ（１０４，３３５，２）、Ｐ（１０４，３３５，３）と表す。また、成分のまとまりとして画素値を表現する場合にはＣ，Ｍ，Ｙ，Ｋの各成分値を要素とするベクトルＸとして表現する。例えば、Ｃ，Ｍ，Ｙ，Ｋ各成分の値がｃ、ｍ、ｙ、ｋである画素についてはＸ＝(ｃ、ｍ、ｙ、ｋ)と記述する。
【０１６２】
本画像処理装置では、基本的には信号線２０６から順次入力される画像データの１画素ごとに、符号列形成部１０４から対応する符号が出力されるが、ランレングス符号化が適用される部分では画素のラン（連続数）に対して符号が出力される。
【０１６３】
バッファ２０１は画像データを２ライン分格納する領域を持ち、信号線２０６から入力される画像データを順次格納していく。先に述べたように、画像データは各画素がラスター順に、そして各画素ではＣ，Ｍ，Ｙ，Ｋの順番で成分値が入力されるが、バッファ２０１からは、図３のａ，ｂ，ｃ，ｄに示す周囲３画素の同一成分値が読み出され、色数判定部１３０１、近傍一致情報符号化部１３０６、成分値予測符号化部１３０７へと供給される。着目する画素の成分値をＰ（ｘ，ｙ，Ｃ）とするとき、ａ＝Ｐ（ｘ−１，ｙ，Ｃ）、ｂ＝Ｐ（ｘ，ｙ−１、Ｃ）、ｃ＝Ｐ（ｘ−１，ｙ−１，Ｃ）、ｄ＝Ｐ（ｘ＋１，ｙ＋１，Ｃ）である。なお、画像の最初のラインや各ラインの先頭／末尾などで、ａ，ｂ，ｃ，ｄが画像の外側となる場合には符号化側と復号側で共通の値を仮定する。本実施形態では０とする。
【０１６４】
色数判定部１３０１は着目する画素Ｘの各成分について、バッファ２０１から図３のａ，ｂ，ｃ、ｄに示す周囲４画素の同一成分値を読み出し、画素Ｘａ，Ｘｂ，Ｘｃ，Ｘｄを得る。着目する画素の位置を（ｘ、ｙ）とし、これを用いてＸａ，Ｘｂ，Ｘｃ，Ｘｄを表現すると以下の通りである。
Ｘａ＝ （P(x-1,y,0), P(x-1,y,1), P(x-1,y,2), P(x-1,y,3)）
Ｘｂ＝ （P(x,y-1,0), P(x,y-1,1), P(x,y-1,2), P(x,y-1,3)）
Ｘｃ＝ （P(x-1,y-1,0), P(x-1,y-1,1), P(x-1,y-1,2), P(x-1,y-1,3)）
Ｘｄ＝ （P(x+1,y-1,0), P(x+1,y-1,1), P(x+1,y-1,2), P(x+1,y-1,3)）
【０１６５】
色数判定部１３０１は、これらＸａ，Ｘｂ，Ｘｃ，Ｘｄの集合中に何種類の色が存在するかを検出して、その色数Ｎｃを出力する。具体的には４画素から２画素を取り出す６通りの組み合わせについて、取り出した２画素が同一である数をカウントし、０であれば４色、１であれば３色、２か３であれば２色、６であれば１色と判断し、その色数Ｎｃを出力する。これは第３の実施形態と同じである。
【０１６６】
近傍一致情報符号化部１３０６は色数判定部１３０１から出力される周囲４画素の色数Ｎｃが１から３の場合に、第３の実施形態と同様にして、着目画素Ｘとその周囲４画素（Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ）との一致／不一致、及び、一致する場合の近傍画素を特定するベクトル情報を符号化し、その符号語を出力する。また、信号線１０５には周囲４画素に同一色を持つペアが存在するか否かを表す周辺画素状態情報を出力する。
【０１６７】
一方、第３の実施形態と同様にして、着目画素のＣ，Ｍ，Ｙ，Ｋの各成分が成分値予測符号化部１３０７により符号される。なお、成分値予測符号化部１３０７における各成分の予測符号化には国際標準方式ＪＰＥＧ−ＬＳにおけるregular modeの符号化手法などを適用しても良い。
【０１６８】
符号生成部１３０５は、信号線１０５の周辺画素状態情報に従って、近傍一致情報符号化部１３０６から出力されるベクトル情報の符号語と成分値予測符号化部１３０７から出力される各成分の予測符号化データから、着目する画素に対する符号化データを生成する。符号生成部１３０５の動作は第３の実施形態で説明の通りである。
【０１６９】
ランレングス符号化部１８０１は内部に同じ画素値の連続数を計測するカウンタＲＬを保持し、色数判定部１３０１から出力される色数Ｎｃが１になった場合に計測を開始及び継続する。但し、着目する画素Ｘが直前の画素値Ｘａと異なる値となるか、１ラインの最後の画素に到達した場合には、それまでのカウンタＲＬに保持されているランレングスを符号化して出力する。ランレングスの符号化には、例えば、様々な方法を適用することが可能であるが、ここでは国際標準方式ＪＰＥＧ−ＬＳにおけるrun modeによるランレングスの符号化と同じ手法を用いることとし、詳細については省略する。なお、ここでは説明を簡単にするために色数判定部１３０１から出力される色数Ｎｃに基づいて画素の連続数を計測開始するものとして説明したが、符号化側と復号側で同様にラン（画素値の連続）の発生が予想できる条件であれば良い。例えば、Ｘａの直前の画素をＸｅとしてＸａ＝Ｘｅである場合にランの計測を開始するといった方法を用いても良い。
【０１７０】
スイッチ１８０２は色数判定部１３０１から出力される色数Ｎｃが１である場合に端子ｂ側に接続し、ランレングス符号化部１８０１によりランレングスのカウントが行われている間はｂ側に固定する。ランレングスが終端し、ランレングス符号化部１８０１から符号が出力された後、端子ａに切り替える。
【０１７１】
以上の説明のように、本第５の実施形態に係る画像処理装置では、近傍一致情報符号化部１３０６、成分値予測符号化部１３０７、ランレングス符号化部１８０１を備えて、符号化対象となる画素Ｘの周囲にある符号化済みの画素Ｘａ,Ｘｂ，Ｘｃ，Ｘｄの色数に応じてこれらの符号化方式を選択的に動作させて符号化を行っている。これらの選択は符号化済みの画素によって行われるため、符号化方式の切り替えのための情報を伝送する必要はない。第３の実施形態と同様の効果に加えて、ランレングス符号化を導入することで、文字、線画、ＣＧ画像など可逆圧縮性能を更に向上させることができる。
【０１７２】
＜第５の実施形態の変形例＞
上記第５の実施形態をソフトウェアでもって実現しても構わない。その例を以下に説明する。ソフトウェアで実現する場合の装置構成は、第１の実施形態の変形例を参照した図１４と同じであるのでその説明は省略し、その装置上で実行する符号化アプリケーションの処理手順を説明する。
【０１７３】
本第５の実施形態における符号化処理手順を図１９のフローチャートに示す。図１９は本実施形態の画像処理装置による符号化処理の流れを示すフローチャートである。なお、同図に従ったプログラムはＲＡＭ１４０２にロードされており、ＣＰＵ１４０１がこれを実行するものである。ソフトウェアでもって実現する場合、図１８に示した各処理部に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現するが、本変形例でも、便宜的に、図１１の各処理部の名前をそのまま使用する。
【０１７４】
まず、符号列形成部１０４において、符号化対象画像の付加情報を含めたヘッダが生成され、出力される（ステップＳ１９０１）。次いで、着目する画素の垂直方向位置を保持するカウンタｙを０に設定し、ランレングス符号化部１８０１の内部に保持されるカウンタＲＬを０に設定する（ステップＳ１９０２）。さらに着目する画素の水平方向位置を保持するカウンタｘを０に設定する（ステップＳ１９０３）。
【０１７５】
次に、座標（ｘ、ｙ）座標に位置する着目画素Ｘの周辺の４画素について、色数判定部１３０１により色数Ｎｃを求める（ステップＳ１９０４）。色数Ｎｃが１、もしくはカウンタＲＬが０以外の値である場合（ＹＥＳ）にはステップＳ１９１４へと処理を移し、それ以外の場合（ＮＯ）にはステップＳ１９０６へと処理を移す（ステップＳ１９０５）。このステップＳ１９０５での判定がＹＥＳの場合にはスイッチ１８０２は端子ｂを選択し、ＮＯの場合には端子ａを選択することになる。
【０１７６】
ステップＳ１９０６では近傍一致情報符号化部１３０６により、周囲４画素との一致／不一致、及び、一致する場合には一致する周辺画素位置を特定するベクトル情報を生成して符号化すると共に、周囲４画素内に同じ色のペアが存在するか否かを示す近傍画素状態情報を生成し、信号線１０５として出力する。
【０１７７】
次いで、この制御信号１０５が“１”であるか否かを判断し（ステップＳ１９０７）、“１”である場合（ＹＥＳ）には成分値予測符号化部１３０７における成分値の予測符号化処理をＣ，Ｍ，Ｙ，Ｋの各成分に対して行い、符号を生成する（ステップＳ１９０８）。続いて符号生成部１３０５において信号線１０５からの制御信号に応じて着目画素に対する符号が生成され、スイッチ１８０２を介して符号列形成部１０４へと出力され、符号列形成部１０４で所定のフォーマットの符号列が形成される（ステップＳ１９０９）。
【０１７８】
この後、着目する画素の水平方向位置を保持するカウンタｘに１を加え（ステップＳ１９１０）、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば（ＹＥＳ）処理をステップＳ１９０４へと戻し、次の画素の符号化処理を行う。ｘ＝Ｗである場合には、ステップＳ１９１２へと処理を移す（ステップＳ１９１１）。
【０１７９】
一方、ステップＳ１９０５からステップＳ１９１４に処理が進んだ場合には、着目する画素値Ｘと直前の画素値Ｘａを比較する。Ｘ≠Ｘａである場合（ＮＯ）、処理はステップＳ１９２０へ移り、Ｘ＝Ｘａである場合（ＹＥＳ）、処理はステップＳ１９１５に進む。
【０１８０】
ステップＳ１９１５に処理が進むと、ランレングス符号化部１８０１の内部に保持するカウンタＲＬを１だけ増加させ（ステップＳ１９１５）、続いて着目画素の水平方向位置を保持するカウンタｘに１を加える（ステップＳ１９１６）。次いで、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば処理をステップＳ１９０４へと戻し、次の画素の符号化処理を行う。また、ｘ＝Ｗであると判定した場合には、ランが画像の右端まで至ったため、この時点でランレングスを確定させ、ランレングス符号化部１８０１によりカウンタＲＬに保持されるランレングスを符号化して符号を出力する。ランレングス符号化部１８０１から出力される符号は、スイッチ１８０２を介して符号列形成部１０４へと送られて所定のフォーマットの符号列が形成される（ステップＳ１９１８）。ランレングスの符号化を終了すると、カウンタＲＬが０に戻される（ステップＳ１９１９）。このとき、スイッチ１８０２は端子ａ側に接続変更される。この後、ステップＳ１９１２へと処理を移し次のラインへと符号化処理の対象を移す。
【０１８１】
また、ステップＳ１９１４からステップＳ１９２０に処理が進んだ場合、直前の画素値Ｘａと異なる画素値Ｘの出現によりランが終端された場合を意味するので、ランレングス符号化部１８０１によりカウンタＲＬに保持されるランレングスを符号化して符号を出力する。ランレングス符号化部１８０１から出力される符号はスイッチ１８０２を介して符号列形成部１０４へと送られて所定のフォーマットの符号列が形成される。ランレングスの符号化を終了すると、カウンタＲＬが０に戻される（ステップＳ１９２１）。このとき、スイッチ１８０２は端子ａ側に接続変更される。続いてステップＳ１９０６へと処理を移し、ランを終端させた着目画素Ｘについての符号化処理を継続する。
【０１８２】
こうして、１ラインの画像データの符号化が完了すると、処理はステップＳ１９１２に進み、着目する画素の垂直方向位置を保持するカウンタｙに１を加え、続いて、画像の垂直方向画素数Ｈと比較してｙ＜Ｈであれば（ＹＥＳ）処理をステップＳ１９０３へと戻し、次のラインの画素について同様に処理を行うことになる。また、ｙ＝Ｈであると判断した場合には、符号化対象とする画像データの全ての符号化が完了したことを意味するお出、本符号化処理を終了する（ステップＳ１９１３）。
【０１８３】
以上説明したように、本変形例（ソフトウェアで実現する例）によっても、第５の実施形態と同様の作用効果を奏することが可能になる。
【０１８４】
＜第６の実施形態＞
上記第５の実施形態（及びその変形例）で生成された符号化データを復号する装置を第６の実施形態として説明する。
【０１８５】
図２０は、本第６の実施形態に係る符号化画像データを復号する画像処理装置のブロック構成図である。図２０に示すように、本第６の実施形態に係る画像処理装置は、色数判定部１３０１、符号バッファ１１０１、ヘッダ解析部１１０２、スイッチ１１０６、バッファ２０１、成分値予測符号化データ復号部１７０４、近傍一致情報復号部１７０５、ランレングス復号部２００１、スイッチ２００２とを備える。同図において１１０７、１１０８、１１１０は信号線である。従来の画像処理装置、および第１から第５の実施形態の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。
【０１８６】
以下、図２０を参照して、本実施形態に係る画像処理装置が行う画像復号処理について説明する。本第６の実施形態の画像処理装置は、図１７に示した第４の実施形態の画像処理装置に、ランレングス復号部２００１、スイッチ２００２を追加した構成と成っている。近傍一致情報復号部１７０５は図１７において一致画素位置復号部１７０１とセレクタ１７０３を内部に含む破線部分を一纏めにしたものであり、また、成分値予測符号化データ復号部１７０４は同図の成分値予測部２０２、予測誤差復号部１７０２、加算器１１１１を含む破線部分を一纏めにしたものである。
【０１８７】
第４の実施形態と同様に、復号対象となる符号化データが信号線１１０７を介して本画像処理装置に入力され、符号バッファ１１０１に適宜格納される。ヘッダ解析部１１０２は符号化データの先頭のヘッダ部分を解析し、復号処理に必要な情報を取得する。
【０１８８】
色数判定部１３０１では第３の実施形態で説明した処理により、色数Ｎｃを求めて出力する。
【０１８９】
近傍一致情報復号部１７０５は色数判定部１３０１から出力される周囲４が素の色数Ncが１から３の場合に、第４の実施形態と同様にして、着目画素Ｘとその周囲４画素（Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ）との一致／不一致、一致していれば着目画素と同じ色を持つ周辺画素を特定するベクトル情報を復号する。そして、復号して得られたベクトル情報が色数Ｎｃと異なれば、ベクトル情報に従ってＸａ，Ｘｂ，Ｘｃ，Ｘｄのいずれかを出力する。近傍一致情報復号部１７０５は、着目画素の周囲の４画素内に、同一色を持つペアが存在するか否か、すなわち、即ちベクトル情報とＮｃが等しいか否かを表す近傍画素状態情報を信号線１１０８に出力する。
【０１９０】
成分値予測符号化データ復号部１７０４では第４の実施形態と同様にして、符号バッファ１１０１から符号化データを読み込み、画素のＣ，Ｍ，Ｙ，Ｋの各成分を復号する。
【０１９１】
一方、ランレングス復号部２００１は色数判定部１３０１から出力される色数Ｎｃが１である場合に、符号バッファ１１０１から符号化データを読み込み、直前の画素Ｘａと同じ画素値の連続数ＲＬを復号し、復号画素値としてＸａをＲＬ個連続して出力する。ランレングス復号部２００１の復号処理は第５の実施形態におけるランレングス符号化部１８０１での符号化処理と対をなすものである。
【０１９２】
スイッチ２００２は色数判定部１３０１から出力される色数Ｎｃが１である場合に端子ｂ側に接続する。このとき、ランレングス復号部１８０１で復号したＲＬ個のＸａの出力が行われている間はｂ側に維持し、ＲＬ個のＸａを出力し終えると、端子aに接続する。
【０１９３】
＜第６の実施形態の変形例＞
図２１は上記第６の実施形態の処理をソフトウェアで実現する場合の処理手順を示すフローチャートである。ソフトウェアで実現する場合の装置構成は、第１の実施形態の変形例を参照した図１４と同じであるのでその説明は省略し、その装置上で実行する復号アプリケーションの処理手順を説明する。
【０１９４】
なお、同図に従ったプログラムはＲＡＭ１４０２にロードされており、ＣＰＵ１４０１がこれを実行するものである。ソフトウェアでもって実現する場合、図２０に示した各処理部に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現するが、本変形例でも、便宜的に、図２０の各処理部の名前をそのまま使用する。
【０１９５】
信号線１１０７から復号対象となる符号化データが符号バッファ１１０１に入力されると、ヘッダ解析部１１０２は符号化データのヘッダを解析して復号に必要な付加情報を取り出す（ステップＳ２１０１）。次いで、着目する画素の垂直方向位置を保持するカウンタｙを０に設定し（ステップＳ２１０２）、さらに着目する画素の水平方向位置を保持するカウンタｘを０に設定する（ステップＳ２１０３）。（ｘ、ｙ）座標に位置する画素に着目し、色数判定部１３０１により復号済みの周囲画素Ｘａ乃至Ｘｄを参照して色数Ｎｃを求める（ステップＳ２１０４）。色数Ｎｃが１である場合（ＹＥＳ）にはステップＳ２１１４へと処理を移し、それ以外の場合（ＮＯ）にはステップＳ２１０６へと処理を移す（ステップＳ２１０５）。このステップＳ２１０５の判定がＹＥＳの場合にはスイッチ２００２が端子ｂに接続され、ＮＯの場合には端子ａに接続される。
【０１９６】
ステップＳ２１０６では近傍一致情報復号部１７０５により、周囲４画素との一致／不一致、及び一致していればその近傍画素を特定するベクトル情報を復号する。そして、復号して得られたベクトル情報と色数Ncとは異なる値であればベクトル情報に応じてＸａ乃至Ｘｄのいずれかを選択して出力する。また、ベクトル情報と色数Ｎｃが等しいか否かを表す情報を近傍画素状態情報として信号線１１０８に出力する。この信号線１１０８が“１”であるか否かを判断し（ステップＳ２１０７）、“１”である場合（ＹＥＳ）には成分値予測符号化データ復号部１７０４により画素のＣ，Ｍ，Ｙ，Ｋ各成分について予測符号化データからの成分値の復号処理を行う（ステップＳ２１０８）。また、信号線１１０８が“０”である場合にはスイッチ１１０６を端子ａに接続し、“１”である場合には端子ｂに接続して、近傍一致情報復号部１７０５もしくは成分値予測符号化データ復号部１７０４から出力される画素値を、スイッチ１１０６、２００２を介して信号線１１１０から位置（ｘ、ｙ）の復号画素値として出力する（ステップS２１０９）。
【０１９７】
次に、着目する画素の水平方向位置を保持するカウンタｘに１を加え（ステップＳ２１１０）、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば（ＹＥＳ）処理をステップＳ２１０４へと戻し、次の画素の復号処理を行う。また、ｘ＝Ｗである場合には、ステップＳ２１１２へと処理を移す。
【０１９８】
一方、ステップＳ２１１４に処理が移ると、ランレングス復号部２００１の内部にてランレングスＲＬが復号される。復号したＲＬを０と比較して（ステップＳ２１１５）、ＲＬ＝０である場合（ＹＥＳ）にはステップＳ２１０６に処理を移す。この場合、スイッチ２００２は端子ｂから端子ａへと接続変更される。また、ＲＬ≠０である場合（ＮＯ）、スイッチ２００２を介して信号線１１１０から、位置（ｘ、ｙ）の復号画素値としてＸａを出力する（ステップＳ２１１６）。そして、カウンタＲＬから１を減じ（ステップＳ２１１７）、着目する画素の水平方向位置を保持するカウンタｘに１を加える（ステップＳ２１１８）。そして、ステップＳ２１１９にて、カウンタｘと画像の水平方向画素数Ｗと比較する。比較結果、ｘ＜Ｗであれば（ＹＥＳ）処理をステップＳ２１１５へと戻し、ｘ＝ＷであればステップＳ２１１２へと処理を移す。
【０１９９】
上記のようにして、１ライン分の復号処理が終了すると、ステップＳ２１１２において、着目する画素の垂直方向位置を保持するカウンタｙに１を加え、続いて、ステップＳ２１１３にて画像の垂直方向画素数Ｈと比較する。ｙ＜Ｈであれば（ＹＥＳ）処理をステップＳ２１０３へと戻し、次のラインの画素について同様に処理を行うことになる。また、ｙ＝Ｈである場合には、画像全体の復号処理が完了したことを意味するので、本復号処理を終了する。
【０２００】
以上の動作により、第６の実施形態と同様の作用効果を奏することが可能になる。
【０２０１】
本発明は、上述した各実施の形態に限定されるものではない。以下にその応用例を説明する。
【０２０２】
第３から６の実施形態では周囲画素の色数Ｎｃに応じて、Ｎｃ種類の画素値との一致不一致、並びに、一致する場合にはその近傍画素の位置を特定するベクトル情報を符号化した。従ってベクトル情報としてはＮｃ＋１値のシンボルの符号化を行った。例えば色数Ｎｃが３であった場合には第１の画素値Ｘ１と一致する場合には０、第２の画素値Ｘ２と一致する場合には１、第３の画素値Ｘ３と一致する場合には２、Ｘ１〜Ｘ３のいずれとも一致しない場合には３というように４値のシンボルを図１５（ｃ）の符号表を用いて符号化した。しかしながら、Ｎｃ種類の画素値の全てを一致／不一致の判定対象とする必要はない。例えば、Ｎｃ＝３の場合に、第１の画素値Ｘ１、第２の画素値Ｘ２と一致／不一致を判定し、Ｘ＝Ｘ１の場合には０、Ｘ＝Ｘ２の場合には１、Ｘ≠Ｘ１、Ｘ≠Ｘ２の場合には３というように０，１，３の３値を取るシンボル（ベクトル情報とＮｃを比較する処理を考慮し、あえて“２”を除いた）を符号化するようにしても良い。
【０２０３】
また、第１の画素値Ｘ１、第２の画素値Ｘ２、第３の画素値Ｘ３などの求め方についても上述の実施形態に限らず、例えば、Ｘｂ，Ｘａ，Ｘｃ，Ｘｄの順など、異なる順序で第１、第２、第３の画素値を取得しても良いし、Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ間の一致状況によって変えても良い。例えば、Ｘａ，Ｘｂ，Ｘｃ，Ｘｄの順序で第１、第２、第３の画素値を取得するが、Ｘａ＝Ｘｂである場合には第２の画素値Ｘ２をＸｄとするといったやり方でも構わない。
【０２０４】
また、ベクトル情報の符号化として、あらかじめ確率分布を想定して定めた符号語を用いる方法を示したが、上述の例とは異なる符号語を用いても良いし、算術符号など、異なるアルゴリズムの符号化技術を適用しても構わない。
【０２０５】
また、着目する成分値の予測方法としては、幾つかの予測方法を用意して、適応的に切り換えても構わないし、符号化済みの各成分値に発生した予測誤差の平均値を着目する成分の予測にフィードバックするなど、非線形な予測を用いても構わない。
【０２０６】
また、ここでは成分値の予測誤差のエントロピ符号化としてハフマン符号化やＧｏｌｏｍｂ符号化を用いる例について示したが、これ以外のエントロピ符号化を用いも良い。
【０２０７】
また、着目画素Ｘの周囲画素値としてＸａ，Ｘｂ，Ｘｃ，Ｘｄを参照する例について示したが、もっと多くの画素を参照しても良いし、ＸａとＸｂだけといったように参照画素数を減らしても構わない。
【０２０８】
また、カラー画像の表色空間としてＲＧＢ画像、ＣＭＹＫ画像の符号化を例に説明したが、Ｌａｂや、ＹＣｒＣｂ画像など、複数成分から成る画像データであれば適用可能であるので、上記実施形態によって本願発明が限定されるものでもない。また、画像データの入力順序としてラスタースキャン順に入力される例について説明したが、画像を所定のライン数からなるバンドに分解し、バンド単位で垂直方向を優先して走査するような方法に適用しても構わない。このような場合にはその走査方法に合わせて、符号化済みの画素から参照画素を設定するなど変更すればよい。
【０２０９】
また、上述の実施形態では、符号化装置と復号装置を別の実施例として説明したが、一つの機器にこれら２つの機能を備え、共通部分を統合しても構わないことは言うまでもない。
【０２１０】
更に、本発明は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【０２１１】
また、上記実施形態の説明からも明らかなように、本発明は、パーソナルコンピュータ等の汎用情報処理装置上で実行するソフトウェアにも適用可能である。また、通常、ソフトウェア（アプリケーションを含む）は、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されていて、その記憶媒体をコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になるから、当然、そのようなコンピュータ可読記憶媒体も本発明の範疇にあるのは明らかである。
【図面の簡単な説明】
【０２１２】
【図１】第１の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図２】従来の画像処理装置のブロック図である。
【図３】符号化対象画素ｘに対する周辺画素ａ，ｂ，ｃの位置を示す図である。
【図４】予測選択信号ｍに対応する予測式を示す。
【図５】予測誤差eとグループ番号SSSSとの対応を示す図である。
【図６】グループ番号SSSSと符号語との対応を示す図である。
【図７】近傍一致情報と符号語の対応を示す図である。
【図８】画素符号化データの構成を示す図である。
【図９】本画像処理装置の出力符号列の構成を示す図である。
【図１０】第１の実施形態の画像処理装置による符号化対象画像データの符号化処理の流れを示すフローチャートである。
【図１１】第２の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１２】第２の実施形態の画像処理装置による復号処理の流れを示すフローチャートである。
【図１３】第３の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１４】各実施形態におけるソフトウェアで符号化、復号する際の装置構成図である。
【図１５】第３、第５の実施形態に係る画像処理装置において、近傍一致情報の符号化に用いる符号表を示す図である。
【図１６】Golomb符号の例を示す図である。
【図１７】第４の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１８】第５の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１９】第５の実施形態の画像処理装置による符号化対象画像データの符号化処理の流れを示すフローチャートである。
【図２０】第６の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図２１】第６の実施形態の画像処理装置による復号処理の流れを示すフローチャートである。
【図２２】第３の実施形態の画像処理装置による符号化対象画像データの符号化処理の流れを示すフローチャートである。
【図２３】第４の実施形態の画像処理装置による復号処理の流れを示すフローチャートである。
【図１】
2006246061.tif 000003
【図２】
2006246061.tif 000004
【図３】
2006246061.tif 000005
【図４】
2006246061.tif 000006
【図５】
2006246061.tif 000007
【図６】
2006246061.tif 000008
【図７】
2006246061.tif 000009
【図８】
2006246061.tif 000010
【図９】
2006246061.tif 000011
【図１０】
2006246061.tif 000012
【図１１】
2006246061.tif 000013
【図１２】
2006246061.tif 000014
【図１３】
2006246061.tif 000015
【図１４】
2006246061.tif 000016
【図１５】
2006246061.tif 000017
【図１６】
2006246061.tif 000018
【図１７】
2006246061.tif 000019
【図１８】
2006246061.tif 000020
【図１９】
2006246061.tif 000021
【図２０】
2006246061.tif 000022
【図２１】
2006246061.tif 000023
【図２２】
2006246061.tif 000024
【図２３】
2006246061.tif 000025