(57)【特許請求の範囲】
【請求項１】
画像データを符号化する画像符号化装置であって、
符号化対象の画像データをウェーブレット変換し、複数のサブバンドの係数を生成する変換手段と、
変換して得られたサブバンドごとに、ラスタスキャン順に係数を予測符号化する予測符号化手段とを有し、
当該予測符号化手段は、
着目サブバンドにおける着目係数に対応する予測値を、当該着目係数の周囲の符号化が完了した位置にある係数から求め、前記着目係数の値と前記予測値との差分である予測誤差から符号化対象のシンボルを生成するシンボル生成手段と、
生成したシンボルを、前記着目係数の直前の係数の符号化処理にて決定したパラメタを用いてエントロピー符号化する符号化手段と、
前記着目係数に対応するシンボルに基づき、当該着目係数の次に符号化することになる後続係数に対応する仮シンボルを推定する推定手段と、
該推定手段で推定した仮シンボルを、前記着目係数のシンボルの符号化時に利用したパラメタで符号化したと仮定した場合の符号長から、前記後続係数のためのパラメタを決定する決定手段とを有する
ことを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、ゴロム・ライス符号化手段であり、前記パラメタはゴロム・ライス符号化を行う際のＫパラメタであることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記推定手段は、
前記着目係数がサブバンドＬＬに属するか、サブバンドＬＬ以外のＨＬ，ＬＨ、ＨＨのいずれに属するのかを判定する判定手段と、
前記着目係数がサブバンドＬＬに属する場合、前記着目係数の直前に符号化された係数のシンボルと、前記着目係数が位置する着目ライン上の位置と同じあって、前記着目ラインの直前のライン上の係数のシンボルとの平均値を、前記後続係数に対する仮シンボルとして推定し、
前記着目係数がサブバンドＬＬ以外のサブバンドＨＬ，ＬＨ、ＨＨのいずれに属する場合、前記着目係数のシンボルを、前記後続係数に対する仮シンボルとして推定するシンボル推定手段と、
を有することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記後続係数が位置する着目ライン上の位置と同じあって、前記着目ラインの直前のライン上の係数を第１の係数と定義したとき、
前記推定手段は、
前記着目係数がサブバンドＬＬに属する場合には、前記第１の係数の予測値が当該第１の係数の直前の係数であるものとして、前記第１の係数に対応するシンボルを算出することを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
前記決定手段は、
前記着目係数がサブバンドＬＬ以外のサブバンドＨＬ，ＬＨ、ＨＨのいずれに属する場合であり、且つ、前記着目係数が位置する着目ライン上の位置と同じあって、前記着目ラインの直前のライン上の係数のシンボルを符号化した際のパラメタが、前記推定手段で推定したパラメタよりも所定値より大きい場合、前記推定手段で推定したパラメタに所定値を加算することで補正する補正手段を有する
ことを特徴とする請求項３に記載の画像符号化装置。
【請求項６】
着目係数が直前の係数と同じである場合にランを計数し、直前の係数と前記着目係数とが異なるとき、或いは、前記着目係数がライン終端に達したとき、計数したランの符号語を出力するランレングス符号化手段と、
前記着目係数の周囲の既に符号化済みの位置にある複数の係数から、前記着目係数を前記予測符号化手段で符号化すべきか、前記着目係数をランの起点として前記ランレングス符号化手段で符号化すべきかを判定するモード判定手段とを更に有し、
前記推定手段は、
前記着目係数がサブバンドＨＬに属するか、サブバンドＨＬ以外のＬＬ、ＬＨ、ＨＨのいずれに属するのかを判定する判定手段と、
前記着目係数がサブバンドＨＬ以外のサブバンドＬＬ、ＬＨ、ＨＨのいずれに属するに属する場合、前記着目係数に対応するシンボルと、前記後続係数が位置する着目ライン上の位置と同じあって、前記着目ラインの直前のライン上に位置する係数のシンボルとの平均値を、前記後続係数に対する仮シンボルとして推定し、
前記着目係数がサブバンドＨＬに属する場合であり、且つ、前記後続係数が位置する着目ライン上の位置と同じあって、前記着目ラインの直前のライン上に位置する係数のシンボルを符号化した際のパラメタが、前記着目係数の符号化時に用いたパラメタよりも所定値より大きくない場合であるとき、前記着目係数の符号化時に用いたパラメタを前記後続係数の符号化時のパラメタとして推定し、
前記着目係数がサブバンドＨＬに属する場合であり、且つ、前記後続係数が位置する着目ライン上の位置と同じあって、前記着目ラインの直前のライン上に位置する係数のシンボルを符号化した際のパラメタが、前記着目係数の符号化時に用いたパラメタよりも所定値より大きい場合であるとき、前記着目係数の符号化時に用いたパラメタに所定値を加算した値を、前記後続係数の符号化時にパラメタとして推定する
ことを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項７】
コンピュータが読み込み実行することで、前記コンピュータに、請求項１乃至６のいずれか１項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【請求項８】
コンピュータが読み込み実行することで、前記コンピュータに、請求項７に記載のプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【請求項９】
画像データを符号化する画像符号化装置の制御方法であって、
変換手段が、符号化対象の画像データをウェーブレット変換し、複数のサブバンドの係数を生成する変換工程と、
予測符号化手段が、変換して得られたサブバンドごとに、ラスタスキャン順に係数を予測符号化する予測符号化工程とを有し、
当該予測符号化工程は、
着目サブバンドにおける着目係数に対応する予測値を、当該着目係数の周囲の符号化が完了した位置にある係数から求め、前記着目係数の値と前記予測値との差分である予測誤差から符号化対象のシンボルを生成するシンボル生成工程と、
生成したシンボルを、前記着目係数の直前の係数の符号化処理にて決定したパラメタを用いてエントロピー符号化する符号化工程と、
前記着目係数に対応するシンボルに基づき、当該着目係数の次に符号化することになる後続係数に対応する仮シンボルを推定する推定工程と、
該推定工程で推定した仮シンボルを、前記着目係数のシンボルの符号化時に利用したパラメタで符号化したと仮定した場合の符号長から、前記後続係数のためのパラメタを決定する決定工程とを有する
ことを特徴とする画像符号化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化技術に関するものである。
【背景技術】
【０００２】
画像データの符号化方式の一つとしてＪＰＥＧ−ＬＳがある。ＪＰＥＧ−ＬＳは、ロスレス符号化とニアロスレス符号化を選択でき、符号化対象画素の周囲画素の状態に基づいて予測符号化とランレングス符号化を切り替えることで高い圧縮率を実現している。予測符号化では、符号化対象画素の画素値を周囲画素から予測し、予測誤差をゴロム・ライス符号化する。ゴロム・ライス符号化を実施後、使用した符号化パラメタが適切であったかを評価し、更新して次回使用する符号化パラメタを決定する方法も知られている（たとえば特許文献１）。
【０００３】
また、ＪＰＥＧ−ＬＳのような符号化方式をウェーブレット変換後の係数に適用する符号化方式も存在している。ウェーブレット変換により生じた各サブバンド成分間の相関と、周囲のウェーブレット係数の相関を用いて符号化パラメタを決定する方法も知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４７３２２０３号公報
【特許文献２】特許第５２１８３１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像データを周波数変換した係数値を入力として、符号化対象係数の係数値を周囲係数から予測し、予測誤差をエントロピー符号化する場合を考える。符号化対象となる予測誤差の符号化パラメタを決定する際、特許文献１による方法だと、直近で生成した符号の符号長のみで符号化パラメタを評価しているため、適切に状態分離を行わないと更新の精度が不十分となる場合がある。特許文献２による方法だと各サブバンド成分において１ライン分の係数バッファを要するため、メモリコストが大きい。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを符号化する画像符号化装置であって、
符号化対象の画像データをウェーブレット変換し、複数のサブバンドの係数を生成する変換手段と、
変換して得られたサブバンドごとに、ラスタスキャン順に係数を予測符号化する予測符号化手段とを有し、
当該予測符号化手段は、
着目サブバンドにおける着目係数に対応する予測値を、当該着目係数の周囲の符号化が完了した位置にある係数から求め、前記着目係数の値と前記予測値との差分である予測誤差から符号化対象のシンボルを生成するシンボル生成手段と、
生成したシンボルを、前記着目係数の直前の係数の符号化処理にて決定したパラメタを用いてエントロピー符号化する符号化手段と、
前記着目係数に対応するシンボルに基づき、当該着目係数の次に符号化することになる後続係数に対応する仮シンボルを推定する推定手段と、
該推定手段で推定した仮シンボルを、前記着目係数のシンボルの符号化時に利用したパラメタで符号化したと仮定した場合の符号長から、前記後続係数のためのパラメタを決定する決定手段とを有する。
【発明の効果】
【０００７】
本発明によれば、メモリコストを抑えながら効率的な画像符号化処理を実行することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】画像符号化装置の構成の一例を示す図。
【図２】第１の実施形態の符号化部の構成の一例を示す図。
【図３】情報処理部のハードウェア構成を示す図。
【図４】カメラの撮像部の構成の一例を示す図。
【図５】第１の実施形態の符号化部で行われる処理のフローチャート。
【図６】第１の実施形態の予測符号化部におけるデータフローダイアグラム。
【図７】ウェーブレット変換によるサブバンド分割の概念と、生成する符号例を説明する図。
【図８】着目係数と参照係数の位置関係を示す図。
【図９】第１の実施形態の予測処理に必要な係数の数を説明するための図。
【図１０】ゴロム・ライス符号化を説明する図。
【図１１】ウェーブレット係数と、シンボルと、Ｋパラメタそれぞれの位置関係を示す図。
【図１２】第１の実施形態のＫパラメタ更新処理の詳細を示すフローチャート。
【図１３】第１の実施形態のＫパラメタ更新処理の所要Ｋパラメタ数を説明するための図。
【図１４】第２の実施形態の予測処理に必要な係数の数を説明するための図。
【図１５】第３の実施形態の符号化部の構成の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の一つである。
【００１０】
［第１の実施形態］
第１の実施形態は、画像データをウェーブレット変換で複数のサブバンドに分割し、サブバンド分割されたウェーブレット係数を予測符号化で符号化する画像符号化装置に適用される。以下、本第１の実施形態における画像符号化装置について説明する。
【００１１】
図１は、第１の実施形態の画像符号化装置をカメラ１００に適用した場合のブロック構成図である。カメラ１００は、操作部１０１と、撮像部１０２と、情報処理部１０９と、記憶部１０７と、Ｉ／Ｏインターフェース１０８とを有している。
【００１２】
図４（ａ）はカメラ１００の外観（正面）を示す図である。図４（ａ）に示すように、カメラ１００は撮像部１０２を備えている。図４（ｂ）は撮像部１０２の内部構成を示す図である。撮像部１０２は、ズームレンズ４０１、フォーカスレンズ４０２、４０３、開口絞り４０４、シャッター４０５を有している。また光学ローパスフィルタ４０６、ｉＲカットフィルタ４０７、カラーフィルタ４０８、撮像素子４０９およびＡ／Ｄ変換部４１０を有している。ユーザは絞り４０４を調整することにより、撮像部１０２に入射される入射光量を調節できる。撮像素子４０９は、ＣＭＯＳやＣＣＤなどの受光素子である。撮像素子４０９で被写体の光量を検知すると、検知された光量がＡ／Ｄ変換部４１０によってデジタル値に変換される。このデジタル値（デジタルデータ）は、情報処理部１０９へと供給されることになる。
【００１３】
図３は情報処理部１０９の内部構成を示す図である。情報処理部１０９は、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３を有し、各構成部はシステムバス３０４により相互に接続されている。
【００１４】
ＣＰＵ３０１はカメラ１００内の各部を統括的に制御するプロセッサである。ＲＡＭ３０２は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。ＲＯＭ３０３は、図１に示す情報処理部１０９の各構成部を実行するプログラムを格納している。ＣＰＵ３０１は、ＲＯＭ３０３に格納されたプログラムを読み込み実行することで、情報処理部１０９が図１に示す各構成部としての役割を実現する。なお情報処理部１０９の構成は、上記に示すもの以外に、図１に示す各構成部の役割を果たす専用の処理回路などを備えたものであっても良い。
【００１５】
操作部１０１は、カメラ本体に備えられたボタンやダイヤル、タッチパネルなどの入力装置であり、ユーザが操作して、撮影の開始、停止および撮影条件の設定などの命令を行える。記憶部１０７は、撮像部１０２により取得されたＲＡＷ画像データ、および、画像データを保存することができる、メモリカードなどの不揮発性の記憶媒体である。Ｉ／Ｏインターフェース１０８はユニバーサルシリアルバス（ＵＳＢ）によって実装されたシリアルバス接続を利用でき、対応するＵＳＢコネクタを有する。もちろん、光ファイバーによるＬＡＮ接続や、無線接続などを利用しても良い。表示部３０５は、撮影画像や文字の表示を行う。表示部３０５には一般的に液晶ディスプレイが用いられる。またタッチパネル機能を有していても良く、その場合はタッチパネルを用いたユーザ指示を操作部１０１の入力として扱うことも可能である。
【００１６】
以下、本実施形態に示す情報処理部１０９の処理を更に詳しく説明する。まず取得部１０３は、撮像部１０２から出力されたＲＡＷ画像データを取得し、画像処理部１０４にＲＡＷ画像データを出力する。画像処理部１０４はＲＡＷ画像データを入力し、デモザイク処理して画像データを生成し、符号化部１０５に画像データを出力する。
【００１７】
符号化部１０５は、画像データのエントロピー符号化処理を行う。本実施形態では１画素がＲＧＢ各８ビットで表現されるものとし、色成分を単位にモノクロ画像として符号化する場合を例に説明する。つまり、符号化部１０５はＲ成分のモノクロ多値画像、Ｇ成分のモノクロ多値画像、Ｂ成分のモノクロ多値画像をそれぞれ独立して符号化する。なお、符号化対象の画像データはＲＧＢ形式に限らず、他の色空間やＲＡＷ画像データであっても構わない。例えば、１画素がＹ、Ｃｂ、Ｃｒでそれぞれが８ビットで構成される場合には、各成分を単位にモノクロ画像として符号化すれば良い。また、ＲＡＷ画像データに適用する場合、撮像部１０２の撮像素子はベイヤ配列（Ｒ，Ｇ０、Ｇ１，Ｂの色に対応する２×２個の撮像素子の組の配列）となっている。また、各撮像素子からの信号を１４ビットで表現しているとする。この場合、Ｒ成分で構成されるモノクロ多値画像、Ｇ０成分で構成されるモノクロ多値画像、Ｇ１成分で構成されるモノクロ多値画像、Ｂ成分で構成されるモノクロ多値画像をそれぞれ符号化する。従って、本願は、画像の色空間の種類、画像を構成する色成分の種類、ビット数によって限定されるものではない。符号化対象の画像がＲ，Ｇ，Ｂの３成分で各８ビット（２５６階調）とするのは、あくまで具体例を示すことで理解を容易にするためであると理解されたい。
【００１８】
本実施形態に示す符号化部１０５の処理について説明する。図２は符号化部１０５の内部構成である。図５は符号化部１０５で行われる１つの色成分（実施形態では、Ｒ，Ｇ、Ｂのいずれか）の画像データに対する符号化処理を示すフローチャートである。つまり、実際には図５の処理を３回実行する。そして、３回行った結果得られた符号データをまとめて１つのファイルが構成されることになる。
【００１９】
画像入力部２０１は、画像処理部１０４から出力された画像データにおける１つの色成分の画像データをモノクロ多値画像データとして入力する（ステップＳ５０１）。
【００２０】
ウェーブレット変換部２０２は、画像入力部２０１からのモノクロ多値画像データを入力として、ウェーブレット変換を予め設定された回数だけ行う。この結果、画像データは複数段階の分解レベルに分けられる。各分解レベルは複数のサブバンドから構成される。分解レベルは、低周波成分のサブバンド（ＬＬ）を再帰的に水平・垂直方向に２分割した分割回数を示しており、分解レベルが１増えると水平、垂直解像度は半分になる。
【００２１】
図７（ａ）は、ウェーブレット変換で３回分解したときの例を説明する。分解レベル１のサブバンドはＬＬ１、ＨＬ１、ＬＨ１、ＨＨ１、分解レベル２のサブバンドはＬＬ２、ＨＬ２、ＬＨ２、ＨＨ２、分解レベル３のサブバンドはＬＬ３、ＨＬ３、ＬＨ３、ＨＨ３と表される。なお、２回目以降のウェーブレット変換では、直前のウェーブレット変換で得られたサブバンドＬＬをその変換対象としているので、サブバンドＬＬ１、ＬＬ２は省略され、最後のウェーブレット変換で得られたサブバンドＬＬが残ることになる。また、例えば、ＨＬ２の水平・垂直解像度はＨＬ１の半分となる。サブバンドＬＨは、ウェーブレット変換が適用された局所領域の水平方向の周波数特性（水平方向成分）を示す。またサブバンドＨＬは垂直方向の周波数特性（垂直方向成分）、サブバンドＨＨは斜め方向の周波数特性（斜め方向成分）を示す。サブバンドＬＬは低周波成分である。本実施形態では、整数型の５／３フィルタを用いるものとするが、これに限定されるものではない。国際標準であるＪＰＥＧ２０００（ＩＳＯ／ＩＥＣ１５４４４｜ＩＴＵ−Ｔ  Ｔ．８００）でも利用されている実数型の９／７フィルタ等、この他のウェーブレット変換フィルタを用いても構わない。またウェーブレット変換の処理単位については、ライン単位の処理であっても、画像単位の処理であっても構わない。
【００２２】
ウェーブレット変換部２０２は、ウェーブレット変換された各サブバンドのウェーブレット係数を予測符号化部２０３に出力する（ステップＳ５０２）。予測符号化部２０３は、サブバンド毎にウェーブレット係数を予測符号化する。予測符号化部２０３の詳細は後述する。
【００２３】
ステップＳ５０３で、ウェーブレット変換で分解した回数を示す変数ｉを設定する。本実施形態ではｉ＝３と設定したときの例を説明する。なお、ウェーブレット変換回数はユーザが適宜、操作部１０１より変更できるものとする。また、図５のフローチャートでは、変数ｉを用いてサブバンドＬＬ（ｉ）、ＨＬ（ｉ）、ＬＨ（ｉ）、ＨＨ（ｉ）を一般化しているが、例えばＨＬ（３）は図９におけるＨＬ３と同じサブバンドを示しているものと理解されたい。
【００２４】
ステップＳ５０４で、予測符号化部２０３はサブバンドＬＬ３の予測符号化処理を実行する。符号化部２１６は、この符号化処理で得られた符号化データをＲＡＭ３０２に予め確保されたバッファ領域に格納する。
【００２５】
ステップＳ５０５で、変数ｉが０であるか否かを判定する。ここでは、初期段階、すなわち、ｉ＝３であるものとする。従って処理はステップＳ５０６に進む。
【００２６】
ステップＳ５０６にて、予測符号化部２０３はサブバンドＨＬ（３）の予測符号化処理を実行する。また、符号化部２１６は、この符号化処理で得られた符号化データをＲＡＭ３０２に予め確保されたバッファ領域に格納する。ステップＳ５０７で、予測符号化部２０３はサブバンドＬＨ（３）の予測符号化処理を実行する。また、符号化部２１６は、この符号化処理で得られた符号化データをＲＡＭ３０２に予め確保されたバッファ領域に格納する。そして、ステップＳ５０８で、予測符号化部２０３はサブバンドＨＨ（３）の予測符号化処理を実行する。また、符号化部２１６は、この符号化処理で得られた符号化データをＲＡＭ３０２に予め確保されたバッファ領域に格納する。
【００２７】
この後、ステップＳ５０９にて、変数ｉを１だけ減じられる。この結果、変数ｉ＝２となる。そしてステップＳ５０５に処理を戻す。ステップＳ５０５において、変数ｉ＝０であると判定されるまで、上記処理を行う。
【００２８】
変数ｉ＝０になったと判定された場合、ＲＡＭ３０２のバッファ領域には、ＬＬ（３）、ＨＬ（３）、ＬＨ（３）、ＨＨ（３）、ＨＬ（２）、…、ＨＨ（１）の計１０個のサブバンドの符号化データが格納される。そこで、予測符号化部２０３は、これらを統合して、着目色成分のモノクロ多値画像データの符号化データを生成する（ステップＳ５１０）。
【００２９】
上記は１つの色成分の符号化処理であったが、先に説明したように、実施形態ではＲ、Ｇ、Ｂの各色成分を単位に符号化するので、符号化部１０５は上記処理を３回実行することになる。図１に戻って、符号化部１０５は、全色成分の符号化データを出力部１０６に送出する。出力部１０６は、供給された各成分ごとの符号化データに、適当なヘッダを付加して画像ファイルを構成し、圧縮画像データファイルとして記憶部１０７に出力し、保存する。図７（ｂ）は、圧縮画像データファイルのデータ構造の一例を示している。同図におけるヘッダは、符号化対象の画像データのサイズ（水平方向画素数、垂直方向画素数）、ウェーブレット変換の回数、色空間名や色成分のビット数等、復号に必要な情報が含む。
【００３０】
以上、画像データをウェーブレット変換でサブバンド分割し、サブバンド毎に予測符号化するときの全体的な処理フローについて説明した。次に、各サブバンドのウェーブレット係数をラスタスキャン順に予測符号化する予測符号化部２０３の詳細について説明する。
【００３１】
図６は、第１の実施形態における予測符号化部２０３のデータフローダイアグラムを示している。なお、同図における各種バッファは、ＲＡＭ３０２に確保されるものと理解されたい。
【００３２】
まずウェーブレット係数格納先６０１（ＲＡＭ３０２に確保される）には、ウェーブレット変換部２０２で得たウェーブレット係数が、サブバンド毎に、ラスタスキャン順で格納される。またサブバンドの属性情報も同様に格納されているものとする。「サブバンド属性情報」はサブバンド幅、サブバンド高さ、および、ＬＬ，ＨＬ，ＬＨ，ＨＨのいずれのサブバンドであるかを示す情報を含むものである。
【００３３】
次にウェーブレット係数情報バッファ６０２は、予測符号化で必要なウェーブレット係数情報をウェーブレット係数格納先６０１から読み出し、保持するためのものである。このウェーブレット係数情報バッファ６０２は、符号化時に頻繁にアクセスが発生するため、ＳＲＡＭなどの高速なメモリで実現されていることが望ましい。ウェーブレット係数情報バッファ６０２が保持するウェーブレット係数情報は、処理６０３、６０４、６０６で必要な分のウェーブレット係数と、前述のサブバンド属性情報からなる。尚、この「必要な分のウェーブレット係数」については次節で述べる。また、ウェーブレット係数のビットレンジは入力画像のビットレンジ、ウェーブレット変換回数や、ウェーブレットフィルタの種類による。例えば１４ビットの入力画像を整数型の５／３フィルタでウェーブレット変換を３回行うと、生成されるウェーブレット係数のビットレンジは２０ビットとなる。
【００３４】
予測処理６０３は、着目ウェーブレット係数の値を予測する処理である。本実施形態では、ウェーブレット係数情報バッファ６０２に格納されているウェーブレット係数と、サブバンド属性情報を用いて予測が行われる。本処理の詳細を下記から説明する。
【００３５】
まず予測符号化部２０３はサブバンド属性情報から、符号化対象の着目ウェーブレット係数がサブバンドＬＬ、ＨＬ、ＬＨ、ＨＨのうち何れに属するかを識別する。
【００３６】
次に各サブバンドに応じた予測を実施する。この予測は符号化対象となる着目ウェーブレット係数（以下、着目係数）の周辺の、既に符号化済み位置のウェーブレット係数（以下、参照係数）を参照して行う。各サブバンドにおける予測を説明するため、着目係数と、参照係数の位置関係を図８に示す。図８では、ｘが着目係数であり、ａ、ｂ、ｃ、ｄは参照係数である。本第１の実施形態では処理をラスタスキャン順に行う事を想定しているため、参照係数ａ、ｂ、ｃ、ｄは、既に符号化済み位置になっている。なお、着目係数ｘが或るサブバンドの最初のラインに位置するとき、係数ｂ乃至ｄは実在しない。特に、着目係数ｘが或るサブバンドの最初のラインの左端に位置するとき、係数ａ乃至ｄは実在しない。更に、着目係数ｘがサブバンドの２ライン目以降のラインの左端に位置するときには、係数ａ、ｃも実在しない。このように実在しない係数については、所定の値を持つものと見なすものとする。この所定値は、符号化側、復号化側で共通であれば良いので特に問わないが、実施形態では０であるものとする。以下から各サブバンドの予測方法について述べる。
【００３７】
符号化処理中の着目サブバンドがＬＬの場合は、ＭＥＤ（Ｍｅｄｉａｎ  Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ）予測を用いて係数の予測値ｐを求め、予測符号化する。図８の参照係数を用いた予測値ｐの算出式は以下の通りである。
【数１】
0006512927.tif 000002
ここで予測誤差（差分）は以下のようにして算出する。
【００３８】
また、処理中のサブバンドがＨＬの場合は、垂直方向の予測を用いる。サブバンドＨＬは垂直方向の周波数特性を有することから、垂直方向予測が符号化効率の向上に有効である。図８の参照係数を用いた予測値ｐの算出式は以下の通りである。
ｐ＝ｂ
【００３９】
また、処理中のサブバンドがＬＨの場合は、水平方向の予測を行う。サブバンドＬＨは水平方向の周波数特性を有することから、水平方向予測が符号化効率の向上に有効である。図８の参照係数を用いた予測値ｐの予測式は以下の通りである。
ｐ＝ａ
【００４０】
そして、処理中のサブバンドがＨＨの場合は、予測を行わない。即ち予測値ｐは以下の通りである。
ｐ＝０
【００４１】
以上の処理により、予測符号化部２０３は、符号化対象の着目ウェーブレット係数がいずれのサブバンドに属するかに応じた予測値ｐを出力する。このとき、上述した通りの予測処理を実施する場合、必要となる参照係数の範囲は異なる。この予測処理における参照係数の範囲に基づいて、ウェーブレット係数情報バッファ６０２が設計されることが望ましい。例えばサブバンドＬＬのウェーブレット係数を符号化する場合の予測処理では、参照係数ａ、ｂ、ｃを用いる。この中で、着目ウェーブレット係数ｘから配列上最も離れている参照係数はｃである。この係数ｃに位置する係数を参照するためには、サブバンド幅＋１で表される数だけ、ウェーブレット係数を保持しておく必要がある。サブバンドＬＨ、ＨＬ、ＨＨも同様の考え方で、予測に用いる参照係数から保持しておくべきウェーブレット係数の数を求めることができる。ここで、各サブバンドの予測処理で使用する参照係数と、該参照を実現するために保持しておくべきウェーブレット係数の数の関係を示すと図９のようになる。
【００４２】
予測符号化部２０３は、次に予測誤差・シンボル生成処理６０４を行う。この処理では、予測処理６０３で求めた予測値ｐと、ウェーブレット係数情報バッファ６０２から着目ウェーブレット係数ｘを受け取る。そして予測値ｐと着目係数ｘから予測誤差Ｄｉｆｆを求め、この予測誤差Ｄｉｆｆから実際に符号化するシンボルを生成する。予測誤差Ｄｉｆｆ、着目係数ｘ、予測値ｐの関係は次式の通りである。
Ｄｉｆｆ＝ｘ − ｐ
【００４３】
次に、予測符号化部２０３は、予測誤差Ｄｉｆｆを下式に基づき非負の整数値とし、この値を符号化するシンボルＳとして決定する。
【数２】
0006512927.tif 000003
【００４４】
上記の結果、シンボルＳは非負の整数となり、それが偶数か奇数かでもって予測誤差Ｄｉｆｆと、その正負の符号も識別できる。
【００４５】
次に、予測符号化部２０３は、予測誤差・シンボル生成処理６０４から出力されたシンボルＳを、Ｋパラメタバッファ６０７から読出したＫパラメタを用いてゴロム・ライス符号化処理６０５を行う。尚、シンボルＳ，Ｋパラメタは共に非負の整数である。また、このＫパラメタバッファ６０７の更新処理であるＫパラメタ更新処理６０６については後述する。
【００４６】
ゴロム・ライス符号化の手順は以下の通りである。
工程１：シンボルＳ（２進数表現）をＫビット右シフトした値の０を並べ、その後に１を付加したバイナリデータを生成する。
工程２：工程１で生成されたバイナリデータの後ろに、シンボルＳの下位Ｋビットを取りだして付け加える。
【００４７】
図１０（ａ）にゴロム・ライス符号化のＫパラメタとシンボルＳと符号語（２進表記）の関係を示す。例えば、シンボルＳが３であり、Ｋ＝１のとき、ゴロム・ライス符号化処理で生成される符号語は、２進表記で“０１１”となることを示している。ゴロム・ライス符号化はこれに限定されるものではなく、例えば、０と１を反対にして符号を構成しても構わないし、上記手順で述べた（１）と（２）の順番を入れ替えて符号語を構成しても良い。
【００４８】
図１０（ｂ）は、ゴロム・ライス符号化のＫパラメタとシンボルＳと、生成される符号語の符号長（ビット数）の関係を示しておる。例えば、上記にならって、シンボルＳが３であり、Ｋパラメタが１のときの符号語は“０１１”となるので、その符号長は“３（ビット）”となる。同図からわかるように、シンボルＳを固定して見るとＫパラメタによって生成される符号語の符号長（ビット数）が変化する。そして、例えばシンボルＳ＝６について着目すると、Ｋパラメタは２，３のとき最小符号長の４となる。Ｋパラメタが１以下の場合、又は、４以上の場合の符号長は大きくなる。つまり、符号語が最小符号長となるためのＫパラメタの範囲が存在すること、そして、その範囲を下回る、又は、その範囲を上回るＫパラメタを用いた場合には、最小符号長とはならないことがわかる。これは、Ｋパラメタは非負の整数であるという条件があるものの、６以外のシンボルについても同様のことが言える。なお、図示の斜線部分は、最小符号長とはならない領域を示している。故に、高い符号化効率を実現するためには、このＫパラメタを適切に決定する必要があることも理解できよう。このＫパラメタを決定するのが、Ｋパラメタ更新処理６０６であり、以下、この処理の詳細を次に述べる。
【００４９】
予測符号化部２０３のＫパラメタ更新処理６０６の基本とする処理は、着目係数ｘのゴロム・ライス符号化処理６０５で使用したＫパラメタを、次に符号化することになる係数のゴロム・ライス符号化で使用するために更新することである。このＫパラメタ更新処理６０６では、ウェーブレット係数情報バッファ６０２からウェーブレット係数、サブバンド属性情報、予測誤差・シンボル生成処理６０４からシンボルＳ、Ｋパラメタバッファ６０７から参照する過去のＫパラメタをそれぞれ受け取り、実施することになる。
【００５０】
先に述べたとおり、シンボルＳに対するＫパラメタには、符号長が最小となる最適な値が存在するが、次回の符号化対象であるシンボルは未知である。故に、次回の符号化対象であるシンボルを予測し、これに即した更新Ｋパラメタを決定することが、このＫパラメタ更新処理６０６の骨子である。
【００５１】
本処理を説明するために、本処理で用いるウェーブレット係数と、シンボルと、Ｋパラメタそれぞれの位置関係を図１１（ａ）乃至（ｃ）に示す。
【００５２】
図１１（ａ）はウェーブレット係数の位置関係を示す図である。ｘは直近にて符号化処理を終えたウェーブレット係数であり、ａ、ｂ、ｃ、ｄはウェーブレット係数ｘの周辺の、符号化済の係数である。ｎは、次回の符号化対象の係数を示しており、係数ｘの符号化完了直後の段階では未知である。この図１１（ａ）における係数の配置は図８のそれと同等であるが、図１１（ａ）のｘは符号化処理が完了した着目係数であることに注意されたい。
【００５３】
これに対し図１１（ｂ）はウェーブレット係数に対応したシンボルの位置関係を示す図である。Ｓｘは直近で符号化を終えた係数ｘに対応するシンボルであり、シンボル生成処理６０４から受け取った、実際に符号化したシンボルＳそのものである。Ｓｎは、次に符号化対象の係数ｎのシンボルであり、本処理中で予測を行う対象でもある。Ｓｄはウェーブレット係数ｄを符号化した際のシンボルである。
【００５４】
そして図１１（ｃ）はウェーブレット係数に対応したＫパラメタの位置関係を示す図である。Ｋｘは直近で符号化を終えた係数ｘに対応するＫパラメタである。Ｋｎは本処理の目的変数であり、次回の係数ｎを符号化する際にゴロム・ライス符号化で使用するＫパラメタである。Ｋｄはウェーブレット係数ｄのゴロム・ライス符号化時に使用したＫパラメタである。
【００５５】
以上を踏まえ、着目係数ｘを符号化処理を終えたときの、予測符号化部２０３における次回の符号化時に用いるＫパラメタの決定処理を、図１２のフローチャートを用いて説明する。
【００５６】
まずステップＳ１２０１で、予測符号化部２０３は、サブバンド属性情報から、着目係数ｘが符号化処理中のウェーブレット係数がサブバンドＬＬに属するか否かを識別する。サブバンドＬＬに属する係数の処理を行っていると判定した場合にはステップＳ１２０２へ、そうでない場合、すなわち、サブバンドＬＨ，ＨＬ，ＨＨの処理中であると判定した場合にはステップＳ１２０５へ進む。
【００５７】
ステップＳ１２０２にて、予測符号化部２０３はシンボルＳｄを算出する。シンボルＳｄは、既に符号化を終えたウェーブレット係数ｄの位置に対応するので、シンボルそのものを１ライン分バッファに保持しても実現出来る。しかし、これではメモリコストが増大してしまう。そのため本実施形態ではシンボルＳｄをバッファリングせず、Ｓｄを算出することとしている。まずＳｄを算出するために、係数ｄの予測値ｐを得る。このステップＳ１２０２で処理対象となるサブバンドはＬＬであるため、本来の予測方式は先述のとおりＭＥＤである。しかし、係数ｄの位置でＭＥＤをそのまま実施しようとすると、さらにもう１ライン分のウェーブレット係数のバッファを要してしまう。これを防ぐために、本実施形態では係数ｄの予測値ｐを下式により疑似的に求めることとしている。
ｐ＝ｂ
ｄの予測値ｐを得たら、予測誤差・シンボル生成処理６０４と同様の方法でシンボルＳｄを求める。シンボルＳｄを求めたら、ステップＳ１２０３に進む。
【００５８】
ステップＳ１２０３にて、予測符号化部２０３は、シンボルＳｎを予測する（シンボル推定処理）。この段階で、次に符号化すべき係数ｎは未知であるものの、その未知の係数ｎに対応するシンボルＳｎを、直近の符号化で決定したシンボルＳｘと上隣であるＳｄとの平均値として予測する。よって予測シンボルＳｎは下式により求める。
Ｓｎ＝（Ｓｘ＋Ｓｄ）／２
こうして、予測シンボルＳｎを求めたら、処理をステップＳ１２０４に進める。このステップＳ１２０４にて、予測符号化部２０３は、予測シンボルＳｎに基づき、次回の符号化時に用いるＫパラメタ“Ｋｎ”を算出する。
【００５９】
本実施形態では、この次回の符号化時に用いるＫパラメタ“Ｋｎ”を、係数ｘの符号化時に使用したＫパラメタ“Ｋｘ”で予測シンボルＳｎをゴロム・ライス符号化した際の符号長を導出し、この導出した符号長に応じてＫｎを決定することとした。この処理は特許文献１と同様の方法を用いるものとした。以下、ステップＳ１２０４の具体例を説明する。
【００６０】
先の図１０（ｂ）を参照するとわかるように、シンボルＳをゴロム・ライス符号化した際の符号語の符号長が最小となるＫパラメタの範囲が存在する。最小符号長となるＫパラメタの範囲の下限値をＫｍｉｎ（Ｓ）、その上限値をＫｍａｘ（Ｓ）と表現する。例えば、シンボルＳが“２”の場合、Ｋパラメタが０〜２の範囲内にあるときに、その符号語が最小符号長の“３”となるので、Ｋｍｉｎ（２）＝０、Ｋｍａｘ（２）＝２となる。また、シンボルＳが“４”の場合には、同様にＫｍｉｎ（４）＝１、Ｋｍａｘ（４）＝３となる。このＳ，Ｋｍｉｎ（Ｓ）、Ｋｍａｘ（Ｓ）は予めテーブルとしてメモリなどに用意しておく。
【００６１】
上記の通りなので、予測シンボルＳｎに対応する符号語が最小符号長となるＫパラメタの範囲の下限値はＫmin（Ｓｎ）、上限値はＫmax(Ｓｎ）と表せる。
（１）Ｋｘ＜Ｋmin（Ｓｎ）の場合
これは、Ｋｘを次回の符号化対象のシンボルを符号化したと仮定した場合、Ｋｘは最小符号長となる範囲の下限値を下回る可能性が高いと推定する。従って、次回の符号化時に利用するＫパラメタ「Ｋｎ」を、Ｋｘを所定値だけ増加させた値とする。具体的には、次式の通りである。
Ｋｎ＝Ｋｘ＋１
（２）Ｋmin（Ｓｎ）≦Ｋｘ≦Ｋmax（Ｓｎ)の場合
これは、Ｋｘが、次回の符号化対象のシンボルを符号化したと仮定した場合、Ｋｘは符号語の最小符号長となる範囲内にある可能性が高いこと推定する。従って、次回の符号化時に利用するＫパラメタ「Ｋｎ」は、直近の係数ｘを符号化する際に用いたＫパラメタ「Ｋｘ」で良いと判定する。
Ｋｎ＝Ｋｘ
（３）Ｋmax（Ｓｎ）＜Ｋｘの場合
これは、Ｋｘを次回の符号化対象のシンボルを符号化したと仮定した場合、Ｋｘは最小符号長となる範囲の上限値を上回る可能性が高いと推定する。従って、次回の符号化時に利用するＫパラメタ「Ｋｎ」を、Ｋｘを所定値だけ減少させた値として決定する。具体的には次式の通りである。
Ｋｎ＝Ｋｘ−１
このようにＫｎを決定したら、次回ゴロム・ライス符号化時に使用するＫパラメタとして保持し、不要となるＫパラメタを削除するようＫパラメタバッファ６０７を更新し、処理を終える。この結果、次回の係数ｎを符号化する際には、Ｋパラメタバッファ６０７に保持されたＫパラメタ（上記のＫｎ）を用いられることとなる。
【００６２】
一方、着目係数ｘがサブバンドＬＬ以外の、サブバンドＬＨ，ＨＬ，ＨＨのいずれかに属する場合、予測符号化部２０３は処理をステップＳ１２０５に進める。
【００６３】
このステップＳ１２０５に処理を進めた場合、予測符号化部２０３は、シンボルＳｎを予測する。このステップＳ１２０５は、ステップＳ１２０３と違って、サブバンドＬＬ以外のサブバンド（ＨＬ，ＬＨ，ＨＨ）のＳｎ予測を行うためのステップである。サブバンドＬＬ以外のサブバンドでＳｄを算出する事ができない。これはサブバンドＬＨ、ＨＨにおいてはウェーブレット係数情報バッファ６０２にｄの位置にある係数のバッファを保持していないためである。またサブバンドＨＬにおいてはその予測方式が垂直方向であり、Ｓｄを算出するためにはもう１ライン分のウェーブレット係数のバッファを要してしまうためである。よって本処理ではシンボルＳｎを下式により予測する。
Ｓｎ＝Ｓｘ
つまり、着目係数ｘを符号化した祭のシンボルＳｘが、未知の係数ｎのシンボルであるものとして推定する。
【００６４】
予測シンボルＳｎを求めたら、予測符号化部２０３は処理をステップＳ１２０６に進める。このステップＳ１２０６にて、予測符号化部２０３は、予測シンボルＳｎによってＫｎを算出する。この処理は、先に説明したステップＳ１２０４と同様の方法を用いるものとし、その説明は省略する。
【００６５】
次にステップＳ１２０７では、ＫｄによってＫｎを補正する。ステップＳ１２０５の説明で述べたとおり、サブバンドＨＬ，ＬＨ，ＨＨにおいてはサブバンドＬＬの時のようにＳｄを使用したＳｎ予測ができない。このためサブバンドＬＬの場合と比してＫｎの精度が劣る。これを補うため、本処理ではＫｄを参照し、Ｋｎを補正する。本実施形態においては、Ｋｎの補正を下記式に基づいて行う。
【数３】
0006512927.tif 000004
【００６６】
Ｋｎを補正したら、次回ゴロム・ライス符号化時に使用するＫパラメタとして保持し、不要となるＫパラメタを削除するようＫパラメタバッファ６０７を更新し、処理を終了する。
【００６７】
以上の処理により、いずれのサブバンドの係数の符号化処理においても、直近での符号化条件（シンボルＳｘとＫパラメタＫｘ）だけによらず、周囲の符号化条件（シンボルＳｄ、もしくはＫパラメタＫｄ）を参照してＫｎを決定する事ができる。これにより、符号化効率の向上を図ることができる。
【００６８】
図６に戻る。Ｋパラメタバッファ６０７は、次回の係数ｎの符号化時に使用する過去のＫパラメタと、Ｋパラメタ更新処理６０６で用いる参照Ｋパラメタを保持しておくバッファである。Ｋパラメタの取りうる値のレンジは概ね０〜１５程度であるため、Ｋパラメタのビットレンジとしては４ビット程度でよい。またここで保持するＫパラメタの数は、Ｋパラメタ更新処理６０６の説明で述べたとおり、サブバンドによって異なる。次回符号化時に使用するＫパラメタと、各サブバンドのＫパラメタ更新処理で使用する過去のＫパラメタとの位置関係と、保持しておくべきＫパラメタの数の関係を図１３に示す。また本バッファは頻繁にアクセスが発生するため、ＳＲＡＭなどの高速なメモリで実現されていることが望ましい。
【００６９】
以上のような構成とすることで、ビットレンジの大きいウェーブレット係数のバッファの増加を抑えながら、ビットレンジが比較的小さいＫパラメタのバッファを使用してＫパラメタの更新を行うことができる。これによりメモリコストの増大を抑えつつ予測誤差をゴロム・ライス符号化するときの符号量を削減することができる。
【００７０】
［第２の実施形態］
上記の第１の実施形態では、ウェーブレット変換後の各サブバンドに応じ、４種の予測方式を切り替えて、予測符号化部２０３が予測処理６０３を行うことにより予測精度の向上を図った。しかし、その分処理は分岐が多くなり複雑となる上、図９で示したように、サブバンドＨＬについてはサブバンド幅分のウェーブレット係数のバッファが必要となる。ウェーブレット変換は複数回実施すると、サブバンドＬＬのサイズは小さくなり、その他のサブバンドのサイズは大きくなる特徴がある。例えば図７（ａ）はウェーブレット変換を３回実施した例であるが、サブバンドＬＬは分解レベル３のみであるので、その幅は入力画像の幅と比して１／８となる。それと比して、例えばサブバンドＨＬ１は分解レベル１〜３それぞれ存在し、その長さは入力画像の幅比で１／８＋２／８＋４／８＝７／８である。よって、第１の実施形態では、ウェーブレット変換を３回実施した場合、サブバンドＨＬにおいてバッファリングするウェーブレット係数の数はサブバンドＬＬのそれの７倍に及ぶ。本第２の実施形態では、この予測処理を簡易化することで、分岐を減らすとともに必要なバッファの削減を図る。以下から、本第２の実施形態における予測処理について説明する。尚、予測処理以外の部分に関しては第１の実施形態と同じとし、その説明は省略する。
【００７１】
本第２の実施形態の予測処理においても、まず本処理ではサブバンド属性情報から、処理中のウェーブレット係数がサブバンドＬＬ、ＨＬ、ＬＨ、ＨＨのうち何れに属するかを識別する。
【００７２】
次に処理中のサブバンドがＬＬの場合は、第１の実施形態と同様、ＭＥＤ（Ｍｅｄｉａｎ  Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ）予測を用いて係数ｘの予測値ｐを決定する。
【００７３】
一方、次に処理中のサブバンドがＬＬ以外の場合（サブバンドＨＬ，ＬＨ，ＨＨのいずれかの場合）は、係数ｘの予測を行わない。即ち予測値ｐは以下の通りである。
ｐ＝０
以上の処理により、各サブバンドに応じた予測値を出力することができる。このときの各サブバンドの予測処理で使用する参照係数と、該参照を実現するために保持しておくべきウェーブレット係数の数の関係を図１４に示す。図１４を見るとわかるとおり、第１の実施形態と比して、本第２の実施形態ではサブバンドＨＬ，ＬＨ，ＨＨに関しては予測を行わないようにしたため、所要ウェーブレット係数の数が減少していることが分かる。本第２の実施形態におけるＫパラメタ更新処理では第１の実施形態と同様に、処理中のウェーブレット係数がサブバンドＬＬに属するか否かで分岐し、更新方法を切り替えるよう構成すればよい。
【００７４】
以上の構成とすることにより所要バッファを削減するとともに、サブバンドＬＬ以外のサブバンドは、予測処理もＫパラメタ更新処理も同一となるため処理を簡易化することが可能になる。
【００７５】
［第３の実施形態］
上記第１の実施形態では、処理中のウェーブレット係数がサブバンドＬＬに属するか否かでＫパラメタ更新処理の方法を切り替えた。これはサブバンドＬＬが予測処理において図９で示したようにウェーブレット係数をサブバンド幅＋１分保持しており、この保持範囲内で図１１（ｂ）におけるシンボルＳｄを算出可能だからである。よってＫパラメタ更新処理以外の理由で、シンボルＳｄを生成するためのウェーブレット係数が保持範囲内である場合はシンボルＳｄを用いればＫパラメタのバッファを節約できる。本実施形態ではＪＰＥＧ−ＬＳのように予測符号化と、ランレングス符号化を周辺画素の状態に基づいて切り替えるような構成とする。ランレングス符号化を導入する事により、同値の連続が頻発するような画像に対し符号化効率はより高まる。
【００７６】
本第３の実施形態における符号化部１０５の内部構成を図１５に示す。画像入力部１５０１は、画像入力部１５０１、ウェーブレット変換部１５０２、モード選択部１５０３、予測符号化部１５０４、ランレングス符号化部１５０５、符号出力部１５０６を有する。画像入力部１５０１は、画像処理部１０４から出力された画像データを色成分毎に入力する。これは第１の実施形態と同様でよい。
【００７７】
ウェーブレット変換部１５０２は、画像入力部１５０１から出力されたモノクロ画像データを入力として、ウェーブレット変換を行う。これは実施形態１と同様でよい。
【００７８】
モード選択部１５０２は、着目係数ｘについて予測符号化モードを実行するべきか、着目係数ｘを起点とするランレングス符号化モードを実行すべきかのモード判定を行い、符号化モードの選択処理を行う。初期設定ではラン長ＲＬ＝０が設定されている。ラン長ＲＬが０以外、または、周囲係数の状態がランレングス符号化条件を満たしている場合に、符号化モードはランレングスに設定され、ランレングス符号化部１５０５で符号化を行う事となる。そして満たしていない場合は予測符号化部１５０４で符号化を行う。
【００７９】
具体的には、図８に示す如く、着目係数ｘに対して左係数をａ、左上係数をｃ、上係数をｂ、右上係数をｄと定義したとき、条件」『ａ＝ｃ、かつ、ｃ＝ｂ、かつ、ｂ＝ｄ』を満たすとき、モード選択部１５０２は、ランレングス符号化部１５０５によるランレングス符号化を開始させせる。この結果、ランレングス符号化部１５０５は、着目係数ｘを起点とするランレングス符号化を開始する。このとき、ランを計数する変数ＲＬを０で初期化する。そして、ランレングス符号化部１５０５は、着目係数ｘを起点とし、直前の係数ａと同じある限り、変数ＲＬを１だけ増加しては、右隣の係数を新たな着目係数する処理を繰り返す。ただし、着目係数ｘが直前の係数ａと異なったとき、又は、着目係数ｘが直前の係数ａと同じままライン終端（右端位置）に到達したとき、ランレングス符号化部１５０５はそれまで計数した変数ＲＬの値（ラン）の符号語を出力し、モード選択部１５０２に、ランレングス符号の終了を通知する。これを受けて、モード選択部１５０２は符号化モードを予測符号化部１５０４による符号化に切り換える。
【００８０】
上記の通り、ランレングス符号化を開始する条件を満たすためには、着目係数ｘの周囲のａ，ｂ，ｃ，ｄの係数を参照することとなる。それ故、本処理を実施するにあたり、いずれのサブバンドにおいてもサブバンド幅＋１だけウェーブレット係数がメモリに保持されている事が必要となる。
【００８１】
なお、本第３の実施形態における予測符号化部１５０４における処理は、Ｋパラメタ更新処理以外は第１の実施形態と同様でよい。本第３の実施形態におけるＫパラメタ更新処理は、第１の実施形態のように処理中のウェーブレット係数がサブバンドＬＬに属するのか否かで処理を分岐するのではなく、サブバンドＨＬに属するのか否かで処理を分岐する。サブバンドＨＬに属する場合、Ｋｄを用いたＫパラメタ更新を実施する。このＫパラメタ更新は第１の実施形態におけるサブバンドＬＬ以外のサブバンドに対する処理と同様である。一方、着目係数がサブバンドＨＬ以外のサブバンドに属する場合、シンボルＳｄを用いたＫパラメタ更新を実施する。
【００８２】
つまり、着目係数ｘがサブバンドＨＬ以外のサブバンドＬＬ、ＬＨ、ＨＨのいずれかに属する場合、着目係数ｘに対応するシンボルと係数ｄのシンボルとの平均値を、後続係数に対する仮シンボルとして推定する。また、着目係数ｘがサブバンドＨＬに属する場合であり、且つ、係数ｄを符号化した際のパラメタが、着目係数ｘの符号化時に用いたパラメタよりも所定値より大きくない場合であるとき、着目係数ｘの符号化時に用いたパラメタを後続係数ｎの符号化時のパラメタとして推定する。そして、着目係数ｘがサブバンドＨＬに属する場合であり、且つ、係数ｄのシンボルを符号化した際のパラメタが、着目係数ｘの符号化時に用いたパラメタよりも所定値より大きい場合であるとき、着目係数ｘの符号化時に用いたパラメタに所定値を加算した値を、後続係数ｎの符号化時にパラメタとして推定する。
【００８３】
上記のような構成とする理由は、全てのサブバンドにおいてサブバンド幅＋１だけウェーブレット係数を保持しているためである。このことにより、サブバンドＨＬ以外のサブバンドはウェーブレット係数の保持範囲内で図１１（ｂ）におけるシンボルＳｄを算出でき、Ｋパラメタのバッファは不要となる。
【００８４】
ランレングス符号化部１５０５における処理は、ＪＰＥＧ−ＬＳと同様の処理のため、ここでの詳細説明は割愛する。
【００８５】
以上のような構成とすることでランレングス符号化と予測符号化を導入した場合の符号化処理においても、Ｋパラメタの更新処理をメモリコストの増大を抑えながら実施する事ができる。
【００８６】
第１の実施形態では図２に示した通り、ウェーブレット変換後のウェーブレット係数をそのまま予測符号化に直接入力している。このためウェーブレット変換に用いるフィルタを５／３フィルタとすればロスレス符号化が実現出来るが、より圧縮率の上げるために量子化を実施してロッシー符号化としてもよい。その場合はウェーブレット変換後のウェーブレット係数を量子化し、量子化後の係数を予測符号化に入力すればよい。
【００８７】
また第３の実施形態のように周囲画素の状態に基づいて予測符号化とランレングス符号化を切り替えるような構成としてもよい。上記量子化を実施する場合は符号化対象となる係数が連続した値を取りやすくなるため効果的である。
【００８８】
また、第１から第３の実施形態ではシンボルＳｄを生成するためのウェーブレット係数が保持範囲内ではない場合、代わりにＫパラメタバッファによるＫパラメタ更新を行った。これよりさらにメモリコストを削減したい場合は、当該Kパラメタバッファを持たず、図１２のステップ１２０７にあたる処理を行わないよう構成すればよい。
【００８９】
また、実施形態では画像符号化装置を実装する装置としてカメラを例にしたが、あくまで画像データを符号化する装置の代表例として示したに過ぎない。符号化対象の画像データの入力源は撮像部に限られるものではなく、その画像データはファイルとして記憶された記憶媒体であっても良く、入力源は問わない。
【００９０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９１】
１００…カメラ、１０１…操作部、１０２…撮像部、１０３…取得部、１０４…画像処理部、１０５…符号化部、１０６…出力部、１０７…記憶部、１０８…Ｉ／Ｏ、２０１…画像入力部、２０２…ウェーブレット変換部、２０３…予測符号化部、２０４…符号出力部
【図１】
0006512927.tif 000005
【図２】
0006512927.tif 000006
【図３】
0006512927.tif 000007
【図４】
0006512927.tif 000008
【図５】
0006512927.tif 000009
【図６】
0006512927.tif 000010
【図７】
0006512927.tif 000011
【図８】
0006512927.tif 000012
【図９】
0006512927.tif 000013
【図１０】
0006512927.tif 000014
【図１１】
0006512927.tif 000015
【図１２】
0006512927.tif 000016
【図１３】
0006512927.tif 000017
【図１４】
0006512927.tif 000018
【図１５】
0006512927.tif 000019