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