(57)【特許請求の範囲】
【請求項１】
符号化対象の画像データをラスタースキャン順に符号化する画像符号化装置であって、
同じ画素の連続するラン長を符号化する第１の符号化手段と、
符号化対象の画素を予測符号化する第２の符号化手段と、
着目画素がラインの右端位置から当該ラインの先頭に向かって所定範囲に位置することで、前記着目画素の周囲の既符号化の複数の画素で構成される参照画素の少なくとも一つが前記符号化対象の画像の端の外に位置する場合、前記着目画素に対して前記第２の符号化手段を適用すると判定する第１の判定手段と、
前記着目画素が前記所定範囲の外に位置する場合には、前記参照画素を参照して、前記着目画素に対して前記第１の符号化手段、前記第２の符号化手段のいずれを適用するかを判定する第２の判定手段と、
を有することを特徴とする画像符号化装置。
【請求項２】
前記第２の符号化手段は、前記参照画素から前記着目画素の予測値を求め、前記着目画素と予測値との誤差を符号化する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記第２の符号化手段は、前記参照画素から前記着目画素におけるコンテキストを求め、当該コンテキストに基づき前記着目画素を予測符号化し、
前記第１の判定手段は、
前記参照画素のうちの前記ラスタースキャン順の最も先行する水平方向の座標を持つ画素と、前記着目画素の水平方向の座標との差をＲとしたとき、
前記着目画素が、ラインの右端位置から当該ラインの先頭に向かって前記Ｒが示す範囲に位置するとき、前記着目画素に対して前記第２の符号化手段を適用すると判定する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
符号化対象の画像データをラスタースキャン順に符号化する画像符号化装置であって、
同じ画素の連続するラン長を符号化する第１の符号化手段と、
符号化対象の画素を予測符号化する第２の符号化手段と、
着目画素が、当該着目画素が位置するライン上の所定範囲内に位置する場合、前記着目画素に対して前記第２の符号化手段を適用すると判定する第１の判定手段と、
前記着目画素が前記所定範囲の外に位置する場合には、前記着目画素の周囲に位置する既符号化の画素を参照して、前記着目画素に対して前記第１の符号化手段、前記第２の符号化手段のいずれを適用するかを判定する第２の判定手段とを有し、
前記第１の符号化手段は、ＭＥＬＣＯＤＥ符号化手段であり、
前記第２の符号化手段は、ゴロム・ライス符号化手段であり、
前記ＭＥＬＣＯＤＥ符号化手段で用いる符号化パラメータをｉｎｄｅｘ、当該符号化パラメータのｉｎｄｅｘで決まる符号長の最小値をＪ［ｉｎｄｅｘ］、前記ゴロム・ライス符号化手段で用いる符号化パラメータをｋとしたとき、
前記第１の判定手段は、次式に従ってＲを求め、
Ｒ＝｛Ｊ［ｉｎｄｅｘ］＋１｝／｛１＋ｋ｝
前記所定範囲を、前記着目画素が位置するラインの右端位置から当該ラインの先頭に向かって前記Ｒが示す範囲として前記判定を行う
ことを特徴とする画像符号化装置。
【請求項５】
前記符号化対象の画像データは、カラー画像データを表す１色成分の画素から構成されることを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
更に、ウェーブレット変換する変換手段を有し、
前記符号化対象の画像データは、前記変換手段で得られた複数のサブバンドのうちの１つのサブバンドであり、
前記画素は、前記サブバンド内の係数である
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像符号化装置。
【請求項７】
同じ画素の連続するラン長を符号化する第１の符号化手段、及び、符号化対象の画素を予測符号化する第２の符号化手段とを有し、符号化対象の画像データをラスタースキャン順に前記第１の符号化手段、前記第２の符号化手段のいずれかを用いて符号化する画像符号化装置の制御方法であって、
第１の判定手段が、符号化対象の着目画素がラインの右端位置から当該ラインの先頭に向かって所定範囲に位置することで、前記着目画素の周囲の既符号化の複数の画素で構成される参照画素の少なくとも一つが前記符号化対象の画像の端の外に位置する場合、前記着目画素に対して前記第２の符号化手段を適用すると判定する第１の判定工程と、
第２の判定手段が、前記着目画素が前記所定範囲の外に位置する場合には、前記参照画素を参照して、前記着目画素に対して前記第１の符号化手段、前記第２の符号化手段のいずれを適用するかを判定する第２の判定工程と、
を有することを特徴とする画像符号化装置の制御方法。
【請求項８】
請求項７に記載の画像符号化装置の制御方法の各工程を、コンピュータに実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化技術に関するものである。
【背景技術】
【０００２】
画像データの符号化方式の一つとしてＪＰＥＧ−ＬＳがある。ＪＰＥＧ−ＬＳは、ロスレス符号化とニアロスレス符号化を選択でき、符号化対象画素の周辺画素の状態に基づいて予測符号化とランレングス符号化を切り替えることで高い圧縮率を実現している（非特許文献１）。予測符号化は、符号化対象画素の画素値を周辺画素から予測し、予測誤差を符号化する。ＪＰＥＧ−ＬＳにおけるランレングス符号化は、同一画素値のラン長（連続数）を符号化する。予測符号化とランレングス符号化を用いる他の方法として、複数の予測方法をもち、一致する予測方法の識別情報と、そのラン長（連続値）の符号化と、予測誤差の符号化を選択する方法が開示されている（特許文献１）。予測符号化では、符号化対象画素の画素値を周辺画素から予測し、予測誤差をゴロム・ライス符号化する。ゴロム・ライス符号化を実施後、使用した符号化パラメタが適切であったかを評価し、更新して次回使用する符号化パラメタを決定する方法が開示されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３８８５４１３号公報
【特許文献２】特許第４７７３２０３号公報
【非特許文献】
【０００４】
【非特許文献１】ITU-T T.87 (1998) |  ISO/IEC 14495-1 : 1999,  Information Technology - Lossless and near-lossless compression of continuous-tone still images : Baseline
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像データを入力として、予測符号化とランレングス符号化を切り替えてエントロピー符号化する場合を考える。非特許文献１ではこの切り替えを、着目画素の周辺画素に基づいて行う。特許文献１では着目画素の周辺画素を用いた複数の予測値のいずれかが着目画素と一致した場合ランレングス符号化、そうでない場合に予測符号化とする。しかしこれらの先行技術は画像データの右端部分など、ランが継続しにくい位置に関しても同様の判定方法で符号化方式を切り替えており、判定に誤りが生じやすく冗長な符号化を出力する事がある。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
符号化対象の画像データをラスタースキャン順に符号化する画像符号化装置であって、
同じ画素の連続するラン長を符号化する第１の符号化手段と、
符号化対象の画素を予測符号化する第２の符号化手段と、
着目画素がラインの右端位置から当該ラインの先頭に向かって所定範囲に位置することで、前記着目画素の周囲の既符号化の複数の画素で構成される参照画素の少なくとも一つが前記符号化対象の画像の端の外に位置する場合、前記着目画素に対して前記第２の符号化手段を適用すると判定する第１の判定手段と、
前記着目画素が前記所定範囲の外に位置する場合には、前記参照画素を参照して、前記着目画素に対して前記第１の符号化手段、前記第２の符号化手段のいずれを適用するかを判定する第２の判定手段とを有する。
【発明の効果】
【０００７】
本発明によれば、符号化対象画素の位置に応じて適切な符号化方法を選択することで符号化効率を更に高め、冗長な処理の削減も可能となる。
【図面の簡単な説明】
【０００８】
【図１】撮像装置のブロック構成図。
【図２】符号化部の構成の一例を示す図。
【図３】情報処理部のハードウェア構成を示す図。
【図４】カメラの撮像部の構成の一例を示す図。
【図５】第１の実施形態における色成分符号化部の処理を示すフローチャート。
【図６】着目係数と周辺係数の位置関係を示す図。
【図７】所定の範囲を説明するための図。
【図８】ゴロム・ライス符号化を説明する図。
【図９】ＭＥＬＣＯＤＥ符号化を説明する図。
【図１０】第２の実施形態における色成分符号化部の処理を示すフローチャート。
【図１１】第３の実施形態における符号化部の構成の一例を示す図。
【図１２】ウェーブレット変換により得られるサブバンドを説明するための図。
【図１３】ＭＥＬＣＯＤＥの符号化パラメータによる所定の範囲を説明するための図。
【図１４】画像復号装置の構成の一例を示す図。
【図１５】復号部の構成の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の一つである。
【００１０】
［第１の実施形態］
第１の実施形態は、画像データを色成分毎に符号化する符号化装置、並びに、復号する画像復号装置に適用される。また、説明を具体化するため、デジタルカメラ等の撮像装置に搭載する例を説明するが、符号化対象の画像データの発生源は、画像データを記憶した記憶媒体でも良いし、ネットワーク（のサーバ）でも構わず、その種類は問わない。
【００１１】
図１は、第１の実施形態の画像符号化装置が適用する撮像装置のブロック構成図である。撮像装置１００は、操作部１０１と、撮像部１０２と、情報処理部１０９と、記憶部１０７と、Ｉ／Ｏインターフェース１０８とを有している。情報処理部１０９は、取得部１０３、画像処理部１０４、符号化部１０５、出力部１０６を有する。
【００１２】
図４（ａ）は撮像装置１００の外観を示す図である。図４（ａ）に示すように、撮像装置１００は撮像部１０２を備えている。図４（ｂ）は撮像部１０２の内部構成を示す図である。撮像部１０２は、ズームレンズ４０１、フォーカスレンズ４０２、４０３、開口絞り４０４、シャッター４０５を有している。また光学ローパスフィルタ４０６、ｉＲカットフィルタ４０７、カラーフィルタ４０８、撮像素子４０９およびＡ／Ｄ変換部４１０を有している。ユーザは絞り４０４を調整することにより、撮像部１０２に入射される入射光量を調節できる。撮像素子４０９は、ＣＭＯＳやＣＣＤなどの受光素子である。撮像素子４０９で被写体の光量を検知すると、検知された光量がＡ／Ｄ変換部４１０によってデジタル値に変換され、デジタルデータとして情報処理部１０９へと出力される。
【００１３】
撮像装置１００は、図１に示したブロック図の各構成要素を専用の回路等で実装することによって実現することもできるが、汎用ＣＰＵを利用して構成することもできる。ここでは、情報処理部１０９を汎用ＣＰＵを用いて実現する例について述べる。図３は汎用ＣＰＵを利用する場合の撮像装置１００の内部構成を示す図である。情報処理部１０９は、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３を有し、各構成部はシステムバス３０４により相互に接続されている。ＲＯＭ３０３にはＣＰＵ３０１が実行するプログラムや各種データが記憶され、ＲＡＭ３０２はＣＰＵ３０１がプログラムを実行した際のワークエリア、各種バッファとして利用される。ＣＰＵ３０１は、ＲＯＭ３０３に格納されたプログラムを実行し、ＲＡＭ３０２をワークエリアやバッファとして利用することで、取得部１０３、画像処理部１０４、符号化部１０５、出力部１０６として機能すると共に、装置全体の制御を司ることになる。なお情報処理部１０９の構成は、上記に示すもの以外に、図１に示す各構成部の役割を果たす専用の処理回路などを備えたものであっても良い。
【００１４】
操作部１０１は、撮像装置本体に備えられたボタンやダイヤル、タッチパネルなどの入力装置であり、ユーザが操作して、撮影の開始、停止および撮影条件の設定などの命令を行える。記憶部１０７は、撮像部１０２により取得されたＲＡＷ画像データ、および、画像データを保存することができる、メモリカードなどの不揮発性の記憶媒体である。Ｉ／Ｏインターフェース１０８はユニバーサルシリアルバス（ＵＳＢ）によって実装されたシリアルバス接続を利用でき、対応するＵＳＢコネクタを有する。もちろん、光ファイバーによるＬＡＮ接続や、無線接続などを利用しても良い。
【００１５】
表示部３０５は、撮影画像や文字の表示を行う。表示部３０５には一般的に液晶ディスプレイが用いられる。またタッチパネル機能を有していても良く、その場合はタッチパネルを用いたユーザ指示を操作部１０１の入力として扱うことも可能である。
【００１６】
以下、本実施形態に示す情報処理部１０９の処理について説明する。ユーザの操作部１０１に対する撮像指示に基づき、取得部１０３は、撮像部１０２から出力されたＲＡＷ画像データを取得し、画像処理部１０４にＲＡＷ画像データを出力する。画像処理部１０４は、ＲＡＷ画像データをデモザイク処理して、１画素当たりＲ、Ｇ、Ｂの３成分で構成される画像データを生成し、符号化部１０５に画像データを出力する。符号化部１０５は、画像データの符号化処理を行う。本実施形態では１画素がＲＧＢの各色成分が８ビットで表現されるものとし、色成分を単位にモノクロ画像として符号化する場合を例に説明する。つまり、符号化部１０５は、Ｒ成分のモノクロ多値画像、Ｇ成分のモノクロ多値画像、Ｂ成分のモノクロ多値画像をそれぞれ独立して符号化する。なお、符号化対象の画像データは、ＲＧＢ形式に限らず、他の色空間やＲＡＷ画像データであっても構わない。例えば、１画素がＹ、Ｃｂ、Ｃｒでそれぞれが８ビットで構成される場合には、各成分を単位にモノクロ画像として符号化すれば良い。また、ＲＡＷ画像データに適用する場合、撮像部１０２の撮像素子がベイヤ配列（Ｒ、Ｇ０、Ｇ１、Ｂの色に対応する２×２個の撮像素子の組の配列）となっている。各撮像素子からの信号を１４ビットで表現している場合、Ｒ成分、Ｇ０成分、Ｇ１成分、Ｂ成分で構成されるモノクロ多値画像をそれぞれ符号化する。従って、本願は、画像の色空間の種類、画像を構成する色成分の種類、ビット数によって限定されるものではない。符号化対象の画像がＲ、Ｇ、Ｂの３成分で各８ビット（２５６階調）とするのは、あくまで理解を容易にするためであると理解されたい。
【００１７】
本実施形態における符号化部１０５の処理について説明する。図２は符号化部１０５の内部構成であり、図５は符号化部１０５で行われる、１つの色成分（実施形態では、Ｒ，Ｇ，Ｂのいずれか）の画像データに対する符号化処理を示すフローチャートである。つまり、実際には図５の処理を３回実施する。そして、３回行った結果得られた符号データをまとめて１つのファイルが構成されることになる。
【００１８】
色成分入力部２０１は、画像処理部１０４から出力された画像データを成分毎に入力する。本実施形態では、ＲＧＢ各８ビットの画像データが色成分毎に入力される。以下、Ｒ成分、Ｇ成分、Ｂ成分を各々モノクロ画像として扱い同様の処理を行うため、以降の処理は、８ビットのモノクロ画像の処理として説明する。なお、符号化処理は、符号化対象の画像データに対してラスタースキャン順に行うものとする。
【００１９】
量子化部２０２は、色成分入力部２０１から色成分を入力し、量子化を行う。量子化された画素値を色成分符号化部２０３に送出する。尚、可逆符号化を行う場合には本処理をスキップし、色成分の画素値をそのまま色成分符号化部２０３に送出することになる。
【００２０】
色成分符号化部２０３は色成分毎に画素値を符号化し、符号化データを生成する。色成分符号化部２０３の詳細は後述する。色成分毎の符号化を終えたら、生成された符号化データを符号出力部２０４に送出する。符号出力部２０４は、これまでに符号化した色成分の符号データを統合し、圧縮画像データとして出力する。
【００２１】
図１に戻って、符号化部１０５は、圧縮画像データを出力部１０６に送出する。出力部１０６は、圧縮画像データを記憶部１０７に出力し、保存する。なお、圧縮画像データは、Ｉ／Ｏインターフェース１０８を介して、撮像装置外のデバイスに出力しても構わない。
【００２２】
ここまでで、画像データを色成分毎に符号化するときの全体処理フローについて説明した。以下では、色成分符号化部２０３が行う、１つの色成分の画像データの符号化処理を図５のフローチャートを用いて説明する。なお以降においてＳは、フローチャートにおけるステップであることを意味する。
【００２３】
Ｓ５０１にて、色成分符号化部２０３は、着目色成分の画素値（量子化値）を量子化部２０２からライン単位に入力する。色成分符号化部２０３は、色成分の画素値をライン単位に入力し、符号化対象となる着目画素をラスタスキャン順に移動させながら符号化する。
【００２４】
Ｓ５０２にて、色成分符号化部２０３は、符号化対象の着目画素をラインの左端位置に設定する。Ｓ５０３にて、コンテキスト生成部２０３１は、着目画素位置に対するコンテキスト生成処理を行う。この処理はＪＰＥＧ−ＬＳと同様着目画素と、その周囲の既符号化の周辺画素を用いて行えば良い。ここで、着目画素と周辺画素の関係について説明する。本実施形態の色成分符号化部２０３は、現在符号化処理中のラインの他に、１ラン前の符号化済みライン（以下、前ライン）をバッファで保持し参照可能としている。図６は符号化処理中の着目ラインと前ライン上の２ラインにおける、着目画素と周辺画素の位置関係を示している。ｘが着目画素であり符号化対象の画素となる。また、画素はラスタスキャン方向に順次符号化されるため、左画素ａ、左上画素ｃ、上画素ｂ、右上画素ｄは、符号化済みの画素となる。ＪＰＥＧ-ＬＳでは、図６に示すように着目画素の周囲４画素（左画素ａ、左上画素ｃ、上画素ｂ、右上画素ｄ）を参照して、画素間差分を求める。そして、これら差分に基づいて３６５個のコンテキストに分離して符号化を行っている。なお、実施形態では、符号ｘ、ａ，ｂ，ｃ，ｄをそれぞれ画素の位置を表すだけでなく、各画素の値（画素値）を示すものとしても利用するので、注意されたい。
【００２５】
実施形態におけるコンテキスト生成部２０３１は、ＪＰＥＧ−ＬＳと同様のコンテキスト生成処理を行うものとする。そこで、このコンテキストの生成の方法について、図６を用いて説明する。まず、コンテキスト生成部２０３１は、以下の式により周囲画素ａとｃ、ｃとｂ、ｂとｄの差分を求める。それぞれの差分はＤ１、Ｄ２、Ｄ３で表される。
Ｄ１＝ｄ−ｂ    …（１）
Ｄ２＝ｂ−ｃ    …（２）
Ｄ３＝ｃ−ａ    …（３）
【００２６】
この差分値Ｄ１、Ｄ２、Ｄ３を９通り(−４から４まで)に量子化し。それぞれの差分の量子化値Ｑ１、Ｑ２、Ｑ３を求める。得られたＱ１，Ｑ２，Ｑ３の組み合わせ｛Ｑ１，Ｑ２，Ｑ３｝は、Ｑ１、Ｑ２、Ｑ３がそれぞれ−４から４までの９通りの値を持つので、９×９×９＝７２９通りとなる。コンテキスト｛Ｑ１，Ｑ２，Ｑ３｝で予測誤差ｅが発生する確率はコンテキスト｛−Ｑ１，−Ｑ２，−Ｑ３｝で予測誤差−ｅが発生する確率に同じとして考えて良いので、これらのコンテキストを統合して３６５通りに縮退する。それぞれのコンテキストは予測誤差の絶対値の総和Ａとそのコンテキストの発生回数Ｎをコンテキスト情報として保持し、これらの値は後に説明するゴロム・ライス符号化のパラメータｋを設定する時に用いる。符号化の開始時点ではこれらの値に初期値を設定しておき、符号化処理の過程で随時値を更新していくことにより、動的に各コンテキストの確率分布に追従する。
【００２７】
この時、例えば符号化対象となるラインが入力画像における最初のラインの場合や、着目画素がライン左端である場合など、着目画素の位置によっては周辺画素が画像データ外に位置し、参照出来ない場合がある。その際にはＪＰＥＧ−ＬＳと同様に、不足する周辺画素の分だけ画素を画像外に外挿すればよい。
【００２８】
尚、本実施形態では参照画素をＪＰＥＧ-ＬＳと同様に着目画素の周囲４画素としたが、コンテキスト情報を保持するメモリを節約したい場合などは参照する周辺画素を減らしてもよい。例えば周囲２画素（｛ａ、ｂ｝又は｛ａ、ｄ｝など）としてもよいし、周囲３画素（｛ａ、ｂ、ｃ｝又は｛ａ、ｂ、ｄ｝等）としてもよい。逆にバッファメモリが潤沢な場合はより多くの周辺画素を参照し、コンテキストをより細分化することで符号化効率の向上を図ってもよい。以上がコンテキス生成部２０３１の処理内容である。
【００２９】
次に、第１符号化モード判定部２０３２は、Ｓ５０４にて、着目画素の水平方向の座標位置が、所定範囲内にあるか否かに応じて、強制的に予測符号化モードに遷移するか否かを判定する。本実施形態では、前述のＳ５０３のコンテキスト生成で参照した周辺画素のうちの１つでも画像右端よりも外となる場合は強制的に予測符号化モードに遷移するようにする。ここで言う所定範囲とは、図７に示すように処理中のラインにおける右端画素Ｐｅｎｄから、そのラインの先頭に向かう所定の数（Ｒ）までの範囲である。具体的には、Ｓ５０３で参照する周辺画素のうち、ラスタースキャン順の最も先行する水平方向の座標を持つ画素ｄと、着目画素ｘの水平方向の座標との差（距離）をＲとすればよい。例えば、本実施形態において参照する周辺画素は図６における画素ａ、ｂ、ｃ、ｄであり、このうち着目画素ｘに対して水平右方向に最も先行する画素が画素ｄである。この画素ｄは着目画素ｘからの水平方向の距離が１となる。よって、本実施形態においてはＲ＝１となる。このＲで規定される所定の範囲内に着目画素がある場合、着目画素は自身より右側に参照する周辺画素を持つため、コンテキストの精度が十分でない。またラインの右側は、ランも伸びにくいことから、本実施形態では強制的に予測符号化モードに遷移する事とする。よって、着目画素の位置が所定の範囲にあると判定された場合、Ｓ５０６以降の予測符号化を行う。また、そうでない場合にはＳ５０５に移る。
【００３０】
Ｓ５０５にて、第２符号化モード判定部２０３３は、先に生成したコンテキストに基づき、着目画素からランレングス符号化モードに遷移するか、着目画素を予想符号化するかを判定する。具体的には、前述の式（１）〜（３）で求めたＤ１，Ｄ２，Ｄ３が、条件：Ｄ１＝Ｄ２＝Ｄ３＝０を満たしている場合に、ランレングス符号化モードに遷移すると判定する。この際、ラン係数Ｒｃｏｅｆ＝画素ａとし、ラン長ＲＬ＝０とした上、ランレングス符号化部２０３５による符号化を開始させる。また上記条件を満たさない場合、予測符号化モードが選択され、Ｓ５０６に処理が進む。
【００３１】
Ｓ５０６、Ｓ５０７では、予測符号化部２０３４において着目画素ｘの予測値ｐを求め、その予測誤差を符号化する。以下はその詳細である。
【００３２】
まず、予測符号化部２０３４は、Ｓ５０６にて、着目画素ｘの周辺画素から予測値ｐを得て、その誤差Ｄｉｆｆを算出する。本実施形態では予測変換にＭＥＤ（Ｍｅｄｉａｎ  Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ）予測を用いて予測を行う。本実施形態における図６の周辺画素を用いた予測値ｐの算出は次式（４）の通りである。
【数１】
0006727011.tif 000002
【００３３】
尚、本実施形態では予測変換にＭＥＤ予測を用いたが、前値予測（ｐ＝ａ）などその他の予測方法を用いても良いし、ｐ＝０として予測を行わないなどとしても良い。要は、符号化側と復号側で同じ予測法を用いることである。次に予測誤差Ｄｉｆｆを求める。予測誤差は下式のように求めれば良い。
予測誤差Ｄｉｆｆ ＝ 着目画素の画素値 − 予測値＝ｘ−ｐ  …（５）
次に、予測符号化部２０３４は、Ｓ５０７にて、予測誤差Ｄｉｆｆをゴロム・ライス符号化する。本処理では、予測符号化部２０３４は、まず予測誤差（Ｄｉｆｆ）を非負の整数値（ＭＶ）に変換する。変換式は次式（６）の通りである。
【数２】
0006727011.tif 000003
【００３４】
上記式（６）からもわかるように非負の整数値ＭＶは、その値が偶数の場合には予測誤差Ｄｉｆｆが正、奇数の場合には予測誤差Ｄｉｆｆは負の値を持つことを示すことになる点に注意されたい。次に、予測符号化部２０３４は、パラメータｋを用いて非負の整数値ＭＶをゴロム・ライス符号化する。ゴロム・ライス符号化の手順は以下の通りである。
（１）ＭＶを２進数表現して、ＭＶをｋビット右シフトした値の０を並べ、その後に１を付加する。
（２）上記（１）の後ろに、ＭＶの下位ｋビットを取りだして付け加える。
【００３５】
図８に、ゴロム・ライス符号化のパラメータｋと非負の整数値ＭＶと符号語の関係を示す。ゴロム・ライス符号化の構成はこれに限定されるものではなく、例えば、０と１を反対にして符号を構成しても構わないし、上記手順で述べた（１）と（２）の順番を入れ替えて符号を構成しても良い。例えば、パラメータｋ＝０の場合を考える。予測誤差Ｄｉｆｆが“−２”のとき、非負の整数値ＭＶは“３”となり、予測誤差Ｄｉｆｆが“＋２”のとき、非負の整数値ＭＶは“４”となる。非負の整数値ＭＶが３のとき、符号語は４ビットの“０００１”となり、非負の整数値ＭＶが４のとき、符号語は５ビットの“００００１”となる。
【００３６】
ここでパラメータｋの決定方法について述べる。パラメータｋはＪＰＥＧ−ＬＳと同様に、着目画素が所属するコンテキスト情報を用いて決定すれば良い。具体的には、下式を満たすまでｋを０からインクリメントしていき、初めて満たした時点でのｋをパラメータｋとする。
コンテキストの発生回数Ｎ×２k≧予測誤差の絶対値の総和Ａ …（７）
尚、このパラメータｋの決定方法は、符号化側と復号側で同じパラメータを利用できれば良く、その他の決定方法で代替しても良い。以上のゴロム・ライス符号化を終えると、色成分符号化部２０３は処理をＳ５１１に進める。
【００３７】
Ｓ５０８〜５１０では、ランレングス符号化部２０３５は、連続する同一の画素値の長さ（ラン長）の符号化処理を行う。以下はその詳細である。
【００３８】
ランレングス符号化部２０３５は、Ｓ５０８にて、ランが継続するか否かを判定する。これは着目画素ｘが現在処理中のランの対象となっているラン係数Ｒｃｏｅｆと同値であるか否か、或いは、ランが符号化対象となるラインの右端画素に達したかに基づき判定する。具体的には図６に示される着目画素ｘが、Ｓ５０５で保持したＲｃｏｅｆ（画素ａ）と異なる場合、もしくはランが符号化対象となるラインの右端画素に達したとき、ラン終了と判定し、そうでない場合はラン継続と判定する。ランレングス符号化部２０３５は、ラン継続と判定された場合はＳ５０９へ、ラン終了と判定された場合はＳ５１０へそれぞれ処理を進める。
【００３９】
Ｓ５０９にて、ランレングス符号化部２０３５は、ラン長ＲＬを“１”だけ増加（更新）し、着目画素を次の画素に移動させる。この後、ランレングス符号化部２０３５は、処理をステップＳ５０８に戻す。
【００４０】
Ｓ５１０にて、ランレングス符号化部２０３５は、ラン長ＲＬを符号化し、その符号語を出力する。ここで、着目画素ｘがＲｃｏｅｆ（画素ａ）と異なり、着目画素ｘの左画素がラン終端となってＳ５１０に処理が進んだ場合、着目画素ｘは未符号化である。そこで、ＪＰＥＧ−ＬＳと同様に、ＭＥＬＣＯＤＥ符号化して終端処理を行う。この終端処理とは、着目画素ｘに対して周囲画素から予測符号化を行う処理である。一方、着目画素ｘがＲｃｏｅｆ（画素ａ）と同であるまま、ラインの右端に達した場合、ランの符号語には着目画素が含まれているので、この終端処理を行わない。
【００４１】
ここでＭＥＬＣＯＤＥ符号化の手順は概ね以下の通りである。なお、ＭＥＬＣＯＤＥ符号化のより正確な内容は非特許文献１を参照されたい。
（１）ＲＬ＜２J[index]となるまで０を出力、ＲＬから２J[index]を減算、ｉｎｄｅｘを１加算を繰り返す
（２）（１）の後ろに１を出力する
（３）ＲＬの下位Ｊ［ｉｎｄｅｘ］ビット出力
（４）ｉｎｄｅｘが０より大きければ、ｉｎｄｅｘを１減算
ＭＥＬＣＯＤＥ符号化により出力する符号語の一例を図９に示す。符号化の過程で動的に変化する符号化パラメータｉｎｄｅｘを引数とした、符号長の最小値を記憶する配列Ｊ［ｉｎｄｅｘ］（テーブルとして保持しているものとする）の値により、図９で示される符号語が出力される。図９において横線を引いた領域の符号語は、符号化パラメータｉｎｄｅｘを動的に変化させるアルゴリズムに依存し、一意には決定されないため、ここでは記載していない。以上、ランレングス符号化部２０３５の符号化処理を説明した。
【００４２】
次に、ランレングス符号化部２０３５は、Ｓ５１１にて、符号化対象となる着目ライン上の全画素の符号化を終えたか否かを判定する。ランレングス符号化部２０３５は、着目ライン上の全画素の処理を終えた場合はＳ５１３へ、そうでなければＳ５１２に処理を移す。
【００４３】
Ｓ５１２にて、ランレングス符号化部２０３５は、着目画素を符号化処理中の着目ラインにおける次の画素へ移動させ、処理をＳ５０３に戻す。
【００４４】
Ｓ５１３にて、ランレングス符号化部２０３５では、処理中の色成分における全てのラインの符号化を終えたか否かを判定する。全ラインの符号化処理を終えた場合は色成分符号化処理を終え、そうでない場合は処理をＳ５１４に移行する。Ｓ５１４にが、ランレングス符号化部２０３５は、次のラインを符号化対象の着目ラインとして更新する。
【００４５】
以上のように本実施形態によれば、着目画素のコンテキストを求める際に参照する周囲画素の一部（図６における画素ｄ）が画像域外になる状態にあっては、着目画素ｘについてのランレングス符号化を採用せず、予測符号化を行う。なぜなら、着目画素ｘからランレングス符号化を行ったとしても、ライン右端が近く、もはや長いランが期待できない。また、ランレングス判定のための必要な周囲画素が不足していることにより誤判定をしてしまい、逆に符号化効率が落ちるからである。かかる点、本実施形態では、上記状態にあっては、予測符号化で着目画素を符号化するので、これまでよりも符号化効率を上げることができる。昨今の撮像装置の解像度は上がる一方であり、撮像画像のライン数も増えるので係る作用効果はますます大きくなることは明らかである。
【００４６】
以上、実施形態における画像符号化装置を説明した。次に、実施形態の画像復号装置について説明する。
【００４７】
図１４は、本実施形態で画像復号を行う画像復号装置１４００の構成の一例を示す図である。画像復号装置１４００は、Ｉ／Ｏインターフェース１４０１と、記憶部１４０２と、操作部１４０３と、情報処理部１４０８と、表示部１４０７を有している。
【００４８】
画像復号装置１４００を実装する装置の種類は特に問わないが、典型的にはコンピュータ、または、撮像装置である。本実施形態における画像復号装置１４００をパーソナルコンピュータ等のコンピュータに実装するものとして説明する。Ｉ／Ｏインターフェース１４０１は、Ｉ／Ｏインターフェース１０８と同様にＵＳＢコネクタを有する。デバイス１４００は、Ｉ／Ｏインターフェース１４０１を介して、撮像装置１００から出力される圧縮画像データを取得する。
【００４９】
記憶部１４０２は、Ｉ／Ｏインターフェース１４０１から取得された圧縮画像データを保存することができるメモリカードなどの不揮発性の記憶媒体である。操作部１４０３は、コンピュータに備えられたキーボード、マウスなどの入力装置であり、ユーザが操作して復号処理などの命令を行える。表示部１４０７は、復号画像の表示等が行え、一般的に液晶ディスプレイが用いられる。情報処理部１４０８の内部構成は、図１に示す情報処理部１０９と同様である。
【００５０】
以下、本実施形態における情報処理部１４０８の処理について説明する。ユーザの操作部１４０３に対する復号指示に基づき、取得部１４０４は、記憶部１４０２から圧縮符号化画像データ（実施形態で符号化したデータファイル）を取得し、復号部１４０５に圧縮符号化画像データを供給する。
【００５１】
復号部１４０５は、圧縮符号化画像データの復号処理を行う。本実施形態では、１画素がＲＧＢ各８ビットで表現されるものとし、色成分を単位にモノクロ画像として復号する場合を例に説明する。つまり、Ｒ成分のモノクロ多値画像、Ｇ成分のモノクロ多値画像、Ｂ成分のモノクロ多値画像をそれぞれ独立して復号する。
【００５２】
次に、本実施形態に示す復号部１４０５の処理について説明する。図１５は復号部１４０５の内部構成である。以下、同図を参照して、復号部１４０５の処理内容を説明する。なお、ここでは、１つの色成分の符号化画像データの復号処理を説明する。実施形態では、色成分の数は３つであるので、実際には以下に説明する処理が３回行われることに注意されたい。
【００５３】
符号入力部１５０１は、取得部１４０４から、１つの色成分の圧縮符号化画像データを入力する。色成分復号部１５０２は符号入力部１５０１から供給出力された圧縮符号化符号データの復号処理を行う。この色成分復号部１５０２の詳細は以下の通りである。
【００５４】
コンテキスト生成部１５０２１では、復号対象の着目画素の近傍の復号済み周囲画素（図１０参照）を参照して、着目画素に対するコンテキスト生成処理を行う。本処理は撮像装置１００におけるコンテキスト生成部２０３１と同様である。
【００５５】
第１復号モード判定部１５０２２では、強制的に予測復号モードに遷移するか否かを判定する。本処理部は、撮像装置１００における第１符号化モード判定部２０３２と同様、コンテキスト生成部１５０２１が参照する周辺画素が画像右端よりも外となる場合は強制的に予測復号モードに遷移するようにする。
【００５６】
第２復号モード判定部１５０２３では、ランレングス復号モードに遷移するか否かを判定する。この処理は、撮像装置１００における第２符号化モード判定部２０３３と同様、コンテキスト生成部１５０２１から出力されたコンテキストを用いて判定を行う。
【００５７】
予測復号部１５０２４では、着目画素における予測値と、復号された予測誤差から着目画素における画素値を得る。具体的には、次の通りである。
【００５８】
まず、予測復号部１５０２４は、着目画素ｘの予測値ｐを得る。この時、当該予測方法は撮像装置１００における予測符号化部２０３４の予測変換処理で用いた方法と同じであればよい。
【００５９】
次に予測復号部１５０２４は、符号化データを、ゴロム・ライス復号に基づいてエントロピー復号し、非負の整数値ＭＶを得る。パラメータｋを用いたゴロム・ライス復号の手順は以下の通りである。
（１）符号データから１ビットずつ取り出し、取り出したビットが“０”である限り、カウントアップしていく。そして、取り出したビットが“１”の場合は次の工程（２）に移る。ここでは、ビットが“０”の数をＺＥＲＯｃｎｔと呼ぶ。
（２）ＺＥＲＯｃｎｔをｋビット左シフトする。さらに符号データからｋビット取り出した値を、シフト後のＺＥＲＯｃｎｔに加算し、シンボルＭＶを求める。
【００６０】
次に、予測復号部１５０２４は、シンボルＭＶから下式に基づいて予測誤差Ｄｉｆｆを次式（８）に基づき算出する。
【数３】
0006727011.tif 000004
【００６１】
尚、符号化パラメータｋは符号化側で用いたパラメータと同じ値を復号側で利用できれば良い。次に、予測復号部１５０２４は、着目画素ｘの画素値を次式（９）に従って算出する。
着目画素ｘ ＝ 予測誤差 ＋ 予測値＝Ｄｉｆｆ＋ｐ  …（９）
以上の処理により、着目画素ｘにおける予測値と、復号された予測誤差に基づいて着目画素における画素値を得る事ができる。
【００６２】
一方、第２復号モード判定部１５０２３の判定結果が、ランレングス復号モードを示している場合、ランレングス復号部１５０２５は、符号化データがラン長ＲＬの符号化データであるものとし、それを復号する。このラン長ＲＬはＭＥＬＣＯＤＥ復号し得ればよい。ＭＥＬＣＯＤＥ復号の詳細は非特許文献１を参照されたい。そして着目画素ｘからラン長ＲＬ分の画素の値を、着目画素ｘに対する予測値（着目画素ｘの左画素ａ）に設定する。ここで、復号された画素値を設定した画素がラインの終端位置（右端位置）に達した場合には、画素値の設定をラインの右端の画素までとする。
【００６３】
次に、ランの終端処理を行う。終端処理は、着目画素ｘに対して周囲画素から予測復号を行う処理である。ただし、終端処理は画素値を設定した画素がラインの終端（右端）位置に達した場合には、終端処理を行わない。
【００６４】
色成分復号部１５０２を上述の構成とすることで、色成分毎の復号された画素値を得ることができる。
【００６５】
逆量子化部１５０３は、色成分復号部１５０２から供給された各色成分の画素値を入力し、逆量子化する。当該逆量子化のステップ幅は符号化側と同じであればよい。そして逆量子化部１５０３は逆量子化後の画素値を色成分出力部１５０４に送出する。色成分出力部１５０４では、逆量子化部１５０３から供給された各色成分の画素値を入力し、カラー画像データとして出力部１０６へ出力する。
【００６６】
以上説明したように、本実施形態の画像復号装置によれば、コンテキストの精度が十分でなく、ランも伸びにくい範囲の画素を強制的に予測符号化とすることを特徴とした符号化装置による符号データを復号できる。
【００６７】
［第２の実施形態］
上記第１の実施形態では、ＪＰＥＧ−ＬＳと同様にコンテキスト生成を行い、該コンテキストでランレングスモードに入るか否かの決定と、ゴロム・ライス符号化における符号化パラメータｋの決定を行った。このような構成とすることで着目画素の周辺状態に応じた符号化を行えるため符号化効率の向上を図ることができるが、コンテキストの数だけ情報を保持するバッファが必要となってしまう。かかる点を解決するため、コンテキスト生成を行わない符号化の実施形態を図１０のフローチャートを用いて以下から説明する。尚、復号装置に関しても本実施形態の符号化装置と同様の変更を加えることで復号が可能となる。この図１０は、第１の実施形態における図５に代わるものである。つまり、本第２の実施形態における色成分符号化部２０３は、図２からコンテキスト生成部２０３１を省いた構成であり、それ以外は同じと理解されたい。以下は、第２の実施形態における色成分符号化部２０３による、１色成分の画像データの符号化処理である。
【００６８】
Ｓ１００１にて、色成分符号化部２０３は、着目色成分の画素値をライン単位に入力する。Ｓ１００２にて、色成分符号化部２０３は、符号化対象の着目画素を、ラインの左端位置に設定する。
【００６９】
そして、Ｓ１００３にて、着目画素の位置が所定の範囲内にあるか否かを判定する。第１の実施形態ではこの所定の範囲が、コンテキスト生成の際に参照する周辺画素に応じて決定した。しかし本第２の実施形態ではコンテキスト生成処理がない。その代わり、Ｓ１００４のランレングス符号化モード突入判定で参照する周辺画素（後述）に応じて決定する。着目画素の位置が所定の範囲にあると判定された場合、Ｓ１００５に移り、そうでない場合にＳ１００４に移る。
【００７０】
Ｓ１００４では、ランレングス符号化モードに移行するか否かを判定する。第１の実施形態では、この判定にコンテキストを用いていたが、本第２の実施形態ではこれを用いない。本第２の実施形態では、図６の周辺画素ａ、ｂ、ｃ、ｄが、次式（１０）で示す条件が満す場合にランレングス符号化に移行すると決定し、この条件が満たされない場合、着目画素を予測符号化するものとして決定する。
ａ＝ｂ＝ｃ＝ｄ  …（１０）
つまり、式（１０）を満たす場合、色成分符号化部２０３は処理をＳ１００７へ、そうでない場合はＳ１００５へ処理を移す。
【００７１】
Ｓ１００５では、予測符号化部２０３４は、着目画素の画素値を周辺画素から予測し、その誤差を算出する。本処理は第１の実施形態におけるＳ５０６と同様で良い。予測誤差を算出したら、色成分符号化部２０３は、Ｓ１００６にて、予測誤差Ｄｉｆｆをゴロム・ライス符号化する。本処理においても第１の実施形態でも述べたとおり、符号化パラメータｋを用いて符号化する。しかし第１の実施形態と違いコンテキストを持たないためパラメータｋを決定する別の方法が必要である。本実施形態ではこれをＭＥＬＣＯＤＥ符号化と同様、本Ｓで動的に更新する事とする。この方法は特許文献２と同様の方法で良い。ゴロム・ライス符号化の方法は第１の実施形態におけるＳ５０７と同様で良い。以上のゴロム・ライス符号化を終えたらＳ１０１０に移る。
【００７２】
一方、Ｓ１００７にて、ランレングス符号化部２０３５は、ランが継続するか否かの判定を行う。この処理は第１の実施形態におけるＳ５０８と同様で良い。ランが継続すると判定されて場合はＳ１００８へ、そうでない場合はＳ１００９へそれぞれ移る。
【００７３】
Ｓ１００８では、ランレングス符号化部２０３５は、ラン長ＲＬを更新する。本処理は第１の実施形態におけるＳ５０９と同様で良い。本処理を終えたらＳ１００７に移る。また、Ｓ１００９にて、ランレングス符号化部２０３５はラン長ＲＬを符号化し、その符号語を出力する。この処理、終端処理を含め、は第１の実施形態におけるＳ５１０と同様で良い。本処理を終えたらＳ１０１０に移る。
【００７４】
Ｓ１０１０にて、色成分符号化部２０３は、符号化対象となる着目ライン上の全画素の符号化を終えたか否かを判定する。着目ライン上の全画素の符号化処理を終えた場合はＳ１０１２へ、そうでなければＳ１０１１に移る。
【００７５】
Ｓ１０１１にて、色成分符号化部２０３は、着目画素を符号化処理中のラインにおける次の画素へ移動させ、処理をＳ１００３に戻す。Ｓ１０１２にて、色成分符号化部２０３は、処理中の色成分の全ラインの符号化を終えたか否かを判定する。全ラインの符号化処理を終えた場合は色成分符号化処理を終え、そうでない場合はＳ１０１３にて、着目ラインを次のラインに移動させ、その後、処理をＳ１００１に戻す。
【００７６】
以上の処理構成とすることで、コンテキスト生成処理を省略できるため、バッファメモリの削減を行うことができる。また、Ｓ１００３で着目画素の位置が所定の範囲にあると判定された場合は周辺画素を参照しないまま予測符号化へ遷移できるため、処理量が削減でき、処理の高速化が実現出来る。
【００７７】
［第３の実施形態］
第１の実施形態では、図２に示した通り、画像データにおける各色成分毎に符号化を行った。しかし本発明はこれに限らず、周波数帯域への変換後の係数に対して適用する事も出来る。この時、周波数帯域の変換の一つであるウェーブレット変換を行うと、図１２に示すように画像データが複数の分解レベルに分けられる。各分解レベルは、複数のウェーブレット係数群（以下、サブバンド）から構成される。ウェーブレット変換は、１回の変換で得られたサブバンドＬＬに対して再帰的に行うことができる。ウェーブレット変換を実行する回数が、分解レベルを表すこととなる。つまり、分解レベルが１増えると水平・垂直解像度は半分になる。そして、ウェーブレット変換で得られる複数のサブバンドのそれぞれを、第１、第２の実施形態における符号化対象の画像データと見立てて、サブバンド内の係数を画素とみなして符号化する。
【００７８】
かかるウェーブレット変換でのサブバンド毎に、符号化・復号処理を適用しても構わない。このとき、画像が複数のサブバンドに分解され、サブバンド単位で処理することになる。着目画素（正確には着目係数）がライン右端となるケースが増え、強制予測符号化モードへの遷移を判定する判定回数は多くなり、本実施形態の効果がより大きくなることが期待できる。
【００７９】
以下、上記ウェーブレット変換を用いる画像符号化装置を第３の実施形態として説明する。なお、装置構成は図１と同じであり、異なるのは、図１における符号化部１０５の構成である。図１１は、本第３の実施形態における画像符号化部１０５の構成を示している。
【００８０】
色成分入力部１１０１は、画像処理部１０４から出力された画像データを成分毎に入力する。本実施形態では、ＲＧＢ各８ビットの画像データが色成分毎に入力される。以下、Ｒ成分、Ｇ成分、Ｂ成分を各々モノクロ画像として扱い同様の処理を行うため、以降の処理は、８ビットのモノクロ画像の処理として説明する。
【００８１】
ウェーブレット変換部１１０２は色成分入力部１１０１から出力された色成分毎の画像データを入力として、ウェーブレット変換を所定回数（実施形態では２回）行う。変換の際に用いるフィルタは国際標準であるＪＰＥＧ２０００（ＩＳＯ／ＩＥＣ１５４４４｜ＩＴＵ−Ｔ  Ｔ．８００）でも利用されている実数型の９／７フィルタや整数型５／３フィルタなどどのフィルタを用いても構わない。またウェーブレット変換の処理単位については、ライン単位の処理であっても、画像単位の処理であっても構わない。
【００８２】
ウェーブレット変換部１１０２は、ウェーブレット変換で得られた各サブバンドを量子化部１１０３に供給する。量子化部１１０３は、ウェーブレット変換部１１０２からサブバンドを入力し、サブバンド毎に量子化を行う。量子化された係数をサブバンド符号化部１１０４に送出する。尚、可逆符号化を行う場合には量子化部１１０３は不要である。
【００８３】
サブバンド符号化部１１０４は、図１２で示したように各サブバンド毎の符号化を行う。符号化処理は第１の実施形態における色成分符号化部２０３と同様とする。
【００８４】
第１の実施形態における色成分符号化部２０３は、画像を構成する各色成分をモノクロ画像とみなし、符号化対象の画素の、画像中の位置によって符号化モードの選択方法を切り替えた。本第３の実施形態では、符号化対象は画素ではなく、ウェーブレット変換係数となるが、符号化処理そのものは基本的に同じでよい。具体的には、着目係数が着目サブバンドにおけるラインの右端に近い予め設定された範囲内にある場合にはランレングス符号化を選択しないようする。なお、必ずしも、各サブバンドで同一の符号化処理を適用する必要はなく、各サブバンド成分に応じて構成を変えても良い。例えば、サブバンドＬＬ以外の高周波サブバンドＨＬ，ＬＨ，ＨＨでは、値が０中心となるためランレングスモードに移行しやすいように条件を緩和し、予測方法を変更する等である。サブバンド毎の符号化を終えたら、該符号を符号出力部１１０５に送出する。
【００８５】
符号出力部１１０５は、これまでに符号化したサブバンドの符号化データを、着目色成分の符号データとし、他の色成分の符号化データと統合して、オリジナルのカラー画像データの圧縮符号化画像データとして出力する。
【００８６】
以上の符号化部の構成とすることで、ウェーブレット変換後の係数に対しても適用できるのは理解できよう。尚、復号に関しても、第１の実施形態の色成分復号部１５０２と同様の復号をサブバンドに対し行い、逆量子化、逆ウェーブレット変換を行えば本実施形態における符号化装置が出力する符号データを復号することが可能となる。
【００８７】
［第４の実施形態］
第１の実施形態では、図５のＳ５０４において強制的に予測符号化モードに移行する範囲を、コンテキスト生成で参照する周辺画素に応じて決定した。このような決定方法とすることで、コンテキストの精度が十分でない範囲の画素を強制的に予測符号化とすることができる。しかし、ランレングス符号化で用いている符号化パラメータｉｎｄｅｘによって、予測符号化モードに移行した方がよい範囲を規定する事も可能である。そこで、本第４の実施形態では、強制的に予測符号化モードに移行する範囲を、ｉｎｄｅｘで決定する例を説明する。
【００８８】
本第４の実施形態では説明のために予測変換なし、ランレングス符号化への移行条件をａ＝ｂ＝ｃ＝ｄ＝０であるとし、ゴロム・ライス符号化の符号化パラメータｋは特許文献２と同様の決定方法であるとして説明する。
【００８９】
ランレングス符号化で用いるＭＥＬＣＯＤＥ符号化では、符号化パラメータｉｎｄｅｘにより、最低で何ビット出力するかが決まる（行の最後までランが継続した場合を除く）。具体的には、第１の実施形態で述べたＭＥＬＣＯＤＥ符号化の手順（２）と（３）で、Ｊ［ｉｎｄｅｘ］＋１ビット出力することとなる。この配列Ｊは本実施形態ではＪＰＥＧ−ＬＳと同様、下記の配列とする。
Ｊ[0…31]＝{0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,5,5,6,6,7,7,8,9,10,11,12,13,14,15}
例えば、ｉｎｄｅｘ＝２８となっている場合、Ｊ[２８]＝１２である。つまりこの場合はランレングスがどの長さであっても、生成される符号語の符号長は最低でも１２＋１＝１３ビットとなる。この時、着目画素が図１３に示すようにラインの右端から５画素遡った位置でランレングスモードに移行したとする。この場合、ランは最長でも５までしか伸びない事が確定する。仮にランが３まで延びたとしても、上述の通りランレングス符号に１３ビット必要となる。しかし、この３画素分のランを仮にｋ＝０のゴロム・ライス符号化で表現すれば、３ビットで済む事となる。つまりＭＥＬＣＯＤＥ符号化のＪ［ｉｎｄｅｘ］と、ゴロム・ライス符号化のパラメータｋの関係によって、ランレングス符号化が有効な範囲を規定する事ができる。そこで、本第４の実施形態では、所定の範囲Ｒ（図７参照）を次式（１１）のように定める。
Ｒ＝(Ｊ［index］+ 1)／(1+k)  … （１１）
尚、（１１）式のｋは仮想の値として固定的に設定し、Ｊ［ｉｎｄｅｘ］のみで決定出来るよう構成しても良い。この時のｋは例えば０、２等とすればよい。上記の決定方法とすることで、実際のランレングス符号を勘案して、強制的に予測符号化モードに移行する範囲を決定する事ができるようになるため、圧縮率向上を図ることができる。
【００９０】
（その他の実施形態）
第３の実施形態ではウェーブレット変換を行ったサブバンド単位で本発明を実施することで、より効果が大きくなると述べたが、さらに画像を複数のブロックに区切り、ブロック単位で符号化・復号するようにすれば一層効果が大きくなる。
【００９１】
また、これまで述べた実施形態では符号化方式を選択するために参照した周辺係数、もしくは符号化パラメータに応じてランレングス符号化を適用する範囲を決定した。しかし、画像中の位置によってランレングス符号化が効果的か否かを判断し、それを符号化の候補とするかどうかを定めるものであれば良い。入力された画像データの特徴に合わせて該範囲を決定しても良い。例えば、ポートレート撮影やマクロ撮影した画像データにおいては、画像データ中心に焦点があい、それ以外の部分はボケた画像となる傾向にある、こうした画像データにおいては画像データ中心部分は高周波成分が集中するため同値が連続しにくい。よって、着目画素がポートレート撮影やマクロ撮影された画像データの中心部分ではランレングス符号化を適用せず、予測符号化を行うが、その他の部分ではランレングス符号化と予測符号化を選択的に適用する、などとしてもよい。
【００９２】
また、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９３】
２０１…色成分入力部、２０２…量子化部、２０３…色成分符号化部、２０４…符号出力部、２０３１…コンテキスト生成部、２０３２…第１符号化モード判定部、２０３３…第２符号化モード判定部、２０３４…予測符号化部、２０３５…ランレングス符号化部
【図１】
0006727011.tif 000005
【図２】
0006727011.tif 000006
【図３】
0006727011.tif 000007
【図４】
0006727011.tif 000008
【図５】
0006727011.tif 000009
【図６】
0006727011.tif 000010
【図７】
0006727011.tif 000011
【図８】
0006727011.tif 000012
【図９】
0006727011.tif 000013
【図１０】
0006727011.tif 000014
【図１１】
0006727011.tif 000015
【図１２】
0006727011.tif 000016
【図１３】
0006727011.tif 000017
【図１４】
0006727011.tif 000018
【図１５】
0006727011.tif 000019