(57)【要約】【課題】  目標符号量までの残りの符号量に応じて符号語を切り替えることで、符号語を目標符号量内に収め、係数の復元を可能とする。【解決手段】  画像を符号化する際に、画像が直交変換され、量子化された直交変換係数と、ゼロのランレングスデータとを入力し、直交変換係数とゼロのランレングスデータとに基づいて符号化を行い、符号の符号量を出力する。符号量から目標符号量までの残りの符号量を算出し、符号化では、その残りの符号量に応じて、予め定められた符号量の符号に符号化する。【選択図】      図１
2010166170.tif 000002
【特許請求の範囲】
【請求項１】
画像を符号化する画像符号化装置であって、
前記画像が直交変換され、量子化された直交変換係数と、ゼロのランレングスデータとを入力する入力手段と、
前記入力された直交変換係数とゼロのランレングスデータとに基づいて符号化を行い、符号の符号量を出力する符号化手段と、
前記符号量から目標符号量までの残りの符号量を算出する算出手段とを有し、
前記符号化手段は、前記残りの符号量に応じて、予め定められた符号量の符号に符号化することを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、
前記残りの符号量がＮビット（ここで、Ｎは１≦Ｎ≦Ｍを満たす全ての正の整数、Ｍはテーブルを切り替える際の閾値となる１以上の正の整数）の場合、前記Ｎビットで表される符号に対して、前記直交変換係数と前記ゼロのランレングスデータとの組み合わせから２N −１通りを選択したテーブルを用いて予め定められた符号量の符号に符号化することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記符号化手段は、前記残りの符号量が前記目標符号量を超えた場合に、前記テーブルに切り替えることを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
符号を復号化する画像復号化装置であって、
入力された符号に基づいて復号化を行い、直交変換係数とゼロのランレングスデータとを出力する復号化手段と、
前記符号の符号量を加算していき、目標符号量までの残りの符号量を算出する算出手段とを有し、
前記復号化手段は、前記残りの符号量に応じて、予め定められた直交変換係数とゼロのランレングスデータとを出力することを特徴とする画像復号化装置。
【請求項５】
前記復号化手段は、
前記残りの符号量がＮビット（ここで、Ｎは１≦Ｎ≦Ｍを満たす全ての正の整数、Ｍはテーブルを切り替える際の閾値となる１以上の正の整数）の場合、前記Ｎビットで表される符号に対して、前記直交変換係数と前記ゼロのランレングスデータとの組み合わせから２N −１通りを選択したテーブルを用いて予め定められた符号量の符号に符号化することを特徴とする請求項４に記載の画像復号化装置。
【請求項６】
前記復号化手段は、前記残りの符号量が前記目標符号量を超えた場合に、前記テーブルに切り替えることを特徴とする請求項５に記載の画像復号化装置。
【請求項７】
画像を符号化する画像符号化方法であって、
前記画像が直交変換され、量子化された直交変換係数と、ゼロのランレングスデータとを入力する入力工程と、
前記入力された直交変換係数とゼロのランレングスデータとに基づいて符号化を行い、符号の符号量を出力する符号化工程と、
前記符号量から目標符号量までの残りの符号量を算出する算出工程とを有し、
前記符号化工程では、前記残りの符号量に応じて、予め定められた符号量の符号に符号化することを特徴とする画像符号化方法。
【請求項８】
符号を復号化する画像復号化方法であって、
入力された符号に基づいて復号化を行い、直交変換係数とゼロのランレングスデータとを出力する復号化工程と、
前記符号の符号量を加算していき、目標符号量までの残りの符号量を算出する算出工程とを有し、
前記復号化工程では、前記残りの符号量に応じて、予め定められた直交変換係数とゼロのランレングスデータとを出力することを特徴とする画像復号化方法。
【請求項９】
請求項７に記載の画像符号化方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項８に記載の画像復号化方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項９又は１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を符号化する技術及び符号を復号化する技術に関する。
【背景技術】
【０００２】
従来、画像を圧縮する画像圧縮技術としては、直交変換を利用したものが多く使われている。例えば、直交変換する際の単位で画像をブロック化し、直交変換をかけて直交変換係数を算出する。そして、直交変換係数に対して量子化を行い、直交変換係数の絶対値を小さくする。このようにして算出した値を、以降、単に係数と呼ぶ。
【０００３】
ゼロのランレングスデータ（ゼロランと呼ぶ）と係数を表わすビットの符号量を符号化のインデックスとしたエントロピー符号化を行い、結果を符号化データとして出力する。このような方法で符号化されたデータは可変長符号であり、同じ処理を同じサイズの画像に施したとしても、結果として画像の傾向によって出力される符号量は異なり、メモリへの格納やデータの転送などの扱いが非常に難しくなるという問題があった。
【０００４】
このような画像によって異なる符号量を揃えるために、符号量制御が行われている。この符号量制御の一つとして「打ち切り」というものがある。例えば、特許文献１に記載の符号量制御を、図９を用いて説明する。
【０００５】
図９は、１ブロック毎の画像符号化データの構造を示す図である。最初の符号語と付加ビットがＤＣ成分を表わし、符号語０と付加ビット０から符号語２と付加ビット２までがＡＣ成分を表わしている。最後にＥＯＢがついて１ブロックのデータが終了する。
【０００６】
従来例では、平均符号長と呼ばれる累積の符号量と目標符号量とを比較して、ＥＯＢを付ける場所を制御することで符号量を制御している。例えば、符号語１や付加ビット１の途中で目標符号量に到達した場合、９０１の部分にＥＯＢを配置し、ＥＯＢ以降の符号語と付加ビットの符号化を打ち切ることで符号量を制御している。また逆に、１ブロックの符号量が目標符号量よりも小さい場合、特に符号量を制御せず、９０２の位置にＥＯＢを配置している。
【特許文献１】特開平０５−３０４６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来例では、符号語や付加ビットの途中で目標符号量に到達した場合、符号語の先頭まで遡ってＥＯＢに変更していた。そのため、たとえ符号語が目標符号量内に収まったとしても、その後に続く付加ビットが目標符号量を超えてしまった場合には、有意なはずの符号語まで無駄になっていた。
【０００８】
本発明は、目標符号量までの残りの符号量に応じて符号語を切り替えることで、符号語を目標符号量内に収め、係数の復元を可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、画像を符号化する画像符号化装置であって、
前記画像が直交変換され、量子化された直交変換係数と、ゼロのランレングスデータとを入力する入力手段と、
前記入力された直交変換係数とゼロのランレングスデータとに基づいて符号化を行い、符号の符号量を出力する符号化手段と、
前記符号量から目標符号量までの残りの符号量を算出する算出手段とを有し、
前記符号化手段は、前記残りの符号量に応じて、予め定められた符号量の符号に符号化することを特徴とする。
【００１０】
また、本発明は、符号を復号化する画像復号化装置であって、
入力された符号に基づいて復号化を行い、直交変換係数とゼロのランレングスデータとを出力する復号化手段と、
前記符号の符号量を加算していき、目標符号量までの残りの符号量を算出する算出手段とを有し、
前記復号化手段は、前記残りの符号量に応じて、予め定められた直交変換係数とゼロのランレングスデータとを出力することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、目標符号量までの残りの符号量に応じて符号語を切り替えることで、符号語を目標符号量内に収められる係数の数を増やすことが可能となり、画像品質の向上を図ることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１３】
［第一の実施形態］
図１は、第一の実施形態における画像符号化装置の構成の一例を示す図である。第一の実施形態では、画像符号化装置として可変長符号化装置を例に説明する。また、直交変換や量子化までの処理は公知の処理と同一であるため、ここでの説明は省略する。以下では、直交変換され、量子化された画像データの直交変換係数（係数）とゼロのランレングスデータ（ゼロラン）が入力された以降の部分のみを説明する。
【００１４】
図１において、１０１はサイズ検出部であり、入力された係数から付加ビットの符号量（付加ビットサイズ）を計算し、ゼロランと付加ビットの符号量とをセットにしたデータ（シンボルデータ）を出力する。１０２は第一のシンボルエンコーダであり、サイズ検出部１０１が出力したシンボルデータから符号語と、符号語長及び付加ビットの符号量とを出力する。１０３は第二のシンボルエンコーダであり、後述する制御部１０４が出力した残りの符号量と、上述のゼロランと係数とに基づき、符号語へ変換して出力する。
【００１５】
１０４は制御部であり、第一のシンボルエンコーダ１０２からの符号語長と付加ビットサイズから目標符号量までの残りの符号量を計算し、第二のシンボルエンコーダ１０３へ出力する。また、計算した符号量に応じた制御信号を選択部１０５へ出力する。１０５は選択部であり、制御部１０４からの制御信号に応じて、第一のシンボルエンコーダ１０２からの符号語か、第二のシンボルエンコーダ１０３からの符号語の何れかを選択して出力する。１０６は係数処理部であり、入力された係数を予め定められた方法で付加ビットに変換して出力する。
【００１６】
ここで、図１に示す各構成要素について詳細に説明する。サイズ検出部１０１は、入力された量子化後の係数を予め定められた方法に従って付加ビットの符号量を算出して出力する。第一のシンボルエンコーダ１０２は、サイズ検出部１０１からのシンボルデータに基づいて符号語を得て出力する。その時に用いる符号語表は、第一のシンボルエンコーダ１０２の内部に論理回路で構成しても良いし、記憶装置を参照して得る構成にしても良い。ここでは、符号語表として、ＪＰＥＧ標準のハフマン符号表と同一の物を使用するものとする。
【００１７】
第二のシンボルエンコーダ１０３は、上述のゼロランと係数と目標符号量までの残りの符号量から符号語を得て出力する。ここで、第二のシンボルエンコーダ１０３が参照する符号語表を、図２を用いて説明する。
【００１８】
図２は、第一の実施形態における第二のシンボルエンコーダが参照する符号語表の一例を示す図である。この符号語表では、残りの符号量を示すビット数とゼロラン及び係数をインデックスとして、右側の符号語が出力される。ここで、残りの符号量とゼロラン及び係数の組み合わせが表中に存在しない場合は、その他の部分に該当するものとし、符号語としてビットが全て“１”の符号語が出力される。また、図２に示す例では、残り符号量が３ビットまでの場合を示したが、残り符号量は特に規定されるものではなく、２ビット以下であっても４ビット以上であっても良い。
【００１９】
尚、図２に示す符号語表の場合、残り符号量が１と２と３の場合を別のテーブルとして構成したり、要素を増やしたりする必要はない。その場合、残りの符号量が３のテーブルを参照して符号語を得た後、入力された残りの符号量分だけ符号語の下位ビットから切り出して出力する構成にしても良い。
【００２０】
制御部１０４は、内部に符号量をカウントする符号量カウンタを備え、ブロックが入力されると最初に符号量カウンタを初期化する。まず、目標符号量からカウンタ値を減算した値を残りの符号量として出力する。次に、カウンタ値に応じて以下に示す条件で制御信号を選択部１０５へ出力する。制御信号の出力後、第一のシンボルエンコーダ１０２から入力された符号語長と付加ビットの符号量を加算して新たなカウンタ値を得る。
１．（目標符号量）≦（カウンタ値）の時、制御信号は“０”
２．（目標符号量−３）≦（カウンタ値）＜（目標符号量）の時、制御信号は“１”
３．（カウンタ値）＜（目標符号量−３）の時、制御信号は“０”
条件１に該当するのは、目標符号量までの残りの符号量が無い場合である。
【００２１】
条件２に該当するのは、目標符号量までの残りの符号量が少なくなり、第二のシンボルエンコーダを使用する範囲に入った場合である。
【００２２】
条件３に該当するのは、目標符号量までの残りの符号量がまだ大きく、第一のシンボルエンコーダを用いてＪＰＥＧ標準の符号化を行う場合である。
【００２３】
選択部１０５は、制御部１０４からの制御信号に応じて、符号語を選択する。この例では制御信号が“０”であれば、第一のシンボルエンコーダ１０２からの符号語を出力し、また、制御信号が“１”であれば、第二のシンボルエンコーダ１０３からの符号語を出力する。
【００２４】
即ち、残りの符号量がＮビットの場合、Ｎビットで表される符号に対して、係数とゼロランとの組み合わせから２N −１通りを選択したテーブルを用いて予め定められた符号量の符号に符号化することに相当する。ここで、Ｎは１≦Ｎ≦Ｍを満たす全ての正の整数、Ｍはテーブルを用いる際の閾値となる１以上の正の整数である。
【００２５】
係数処理部１０６は、入力された係数を付加ビットの形に変換して出力する。この変換の方法はＪＰＥＧ標準の方法を用いる。
【００２６】
次に、上述の可変長符号化装置で符号化された符号を復号化する画像復号化装置の構成を、図３を用いて説明する。
【００２７】
図３は、第一の実施形態における画像復号化装置の構成の一例を示す図である。尚、逆直交変換や逆量子化の処理は公知の処理と同様であるため、ここでの説明は省略する。
【００２８】
図３において、３０１は頭出し部であり、後述する制御部３０５が出力するシフト量に応じて符号をシフトして頭出しを行う。３０２は第一のシンボルデコーダであり、頭出し部３０１が出力した符号に対応するシンボルデータを出力する。同時に、第一のシンボルデコーダ３０２は符号語長と付加ビットの符号量（付加ビットサイズ）を制御部３０５へ出力する。３０３は付加ビット処理部であり、第一のシンボルデコーダ３０２が出力したシンボルデータに基づき、符号から付加ビットを切り出し、係数に変換してゼロランと共に出力する。
【００２９】
３０４は第二のシンボルデコーダであり、頭出し部３０１が出力した符号と、後述する制御部３０５が出力する目標符号量までの残りのビット数とに基づき、対応するゼロランと係数を出力する。３０５は制御部であり、第二のシンボルデコーダへ残り符号量を出力し、入力された符号語長と付加ビットの符号量より符号量を計算して、それに応じた制御信号とシフト量を出力する。３０６は選択部であり、制御部３０５からの制御信号に応じて、付加ビット処理部３０３からのゼロランと係数か、第二のシンボルデコーダ３０４からのゼロランと係数の何れかを選択して出力する。
【００３０】
ここで、図３に示す各構成要素について詳細に説明する。頭出し部３０１は、ビット単位でシフトが可能なシフタで構成され、入力されたシフト量の分だけ符号に対してシフト処理を行い、符号の頭出しを行う。第一のシンボルデコーダ３０２は、頭出し部３０１が出力した符号に対して符号語表を参照し、合致した符号語があれば、対応するシンボルデータを出力する。符号語表としては論理回路で構成したものを参照しても良いし、ＬＵＴにアクセスして参照する方式でも良い。また、シンボルデータの出力と同時に符号語長も出力する。
【００３１】
また、第一のシンボルデコーダ３０２に入力される符号は符号語や付加ビットのデータが目標符号量に達したことによって打ち切られている場合があるが、その場合は、従来例と同様に該当する係数とそれ以降の係数を全て０にするものとする。
【００３２】
付加ビット処理部３０３は、第一のシンボルデコーダ３０２が出力したシンボルデータの付加ビットの符号量に基づき、符号から付加ビットを切り出し、係数に変換してゼロランとセットにして出力する。
【００３３】
第二のシンボルデコーダ３０４は、制御部３０５からの残りの符号量と頭だし部３０１からの符号に基づき、図４に示す符号語表を参照し、合致した符号語があれば、対応するゼロランと係数を出力する。
【００３４】
図４は、第一の実施形態における第二のシンボルデコーダが参照する符号語表の一例を示す図である。ここで、第二のシンボルデコーダ３０４は、ビットが全て“１”の符号語（図４に示すＥＯＢの部分）を復号した場合は、ＥＯＢと同様の意味を持つ符号語であると解釈し、以降の係数は全て０にするものとする。
【００３５】
制御部３０５は、内部に符号量をカウントする符号量カウンタを備え、符号量カウンタをブロックの最初で初期化する。第一のシンボルデコーダから入力された符号語長と付加ビットサイズを加算する前の値を単にカウンタ値、加算後のカウンタ値を加算後のカウンタ値と呼ぶ。ここで、符号語か付加ビットに打ち切りが起こっている場合、第一のシンボルエンコーダの中に合致するパターンは存在しない。従ってこの場合は加算後のカウンタ値に（目標符号量＋１）をセットする。制御部３０５はまず、目標符号量からカウンタ値を減算した値を残りの符号量として第二のシンボルデコーダ３０４へ出力する。そして、カウンタ値に応じて以下に示す条件で制御信号を選択部３０６へ出力する。制御信号の出力後、第一のシンボルデコーダ２０２から入力された符号語長と付加ビットサイズをカウンタ値に加算して、加算後のカウンタ値を得る。
１．（目標符号量−３）≦（カウンタ値）の時、制御信号は“１”
２．（カウンタ値）＜（目標符号量−３）であって、
（加算後のカウンタ値）≦（目標符号量）の時、制御信号は“０”
（加算後のカウンタ値）＞（目標符号量）の時、制御信号は“２”
条件１に該当するのは、目標符号量までの残りの符号量が少なくなり、第二のシンボルデコーダを使用する範囲に入った場合である。
【００３６】
条件２の制御信号“０”に該当するのは、目標符号量までの残りの符号量がまだ大きく、第一のシンボルデコーダを用いてＪＰＥＧ標準の復号化を行う場合である。
【００３７】
条件２の制御信号“２”に該当するのは、目標符号量までの残りの符号量がまだ大きかったが、打ち切りが起こっていたために第一のシンボルデコーダに合致するシンボルデータが存在せず、復号化が出来なかった場合である。
【００３８】
その後、制御部３０５は符号語長と付加ビットの符号量との合計値であるシフト量を、頭出し部２０１へ出力する。
【００３９】
選択部３０６は、制御部３０５からの制御信号に応じて、ゼロランと係数を選択する。この例では、制御信号が“０”の時は、付加ビット処理部３０３からの出力を、制御信号が“１”の時は、第二のシンボルデコーダ２０４からの出力をゼロランと係数として出力する。制御信号が“２”の時は、残りの係数が全てゼロとなるゼロランを出力する。
【００４０】
第一の実施形態によれば、第二のシンボルエンコーダ、第二のシンボルデコーダを追加し、目標符号量までの残りの符号量に応じて符号語を切り替え、符号語を目標符号量内に収めることのできる係数の数を増やし、画像品質の向上を図ることができる。
【００４１】
［第二の実施形態］
次に、図面を参照しながら本発明に係る第二の実施形態を詳細に説明する。第一の実施形態では、目標符号量までの残りのビット数がある一定数（説明では３ビット）以下になった時に、必ず標準とは別の第二のシンボルエンコーダを用いて符号化するという構成を説明した。第二の実施形態では、目標符号量までの残りビット数がある一定数以下になり、且つ、第一のシンボルエンコーダでは符号量が目標符号量を超えてしまう場合にのみ、第二のシンボルエンコーダへ切り替える構成を説明する。
【００４２】
図５は、第二の実施形態における可変長符号化装置の構成の一例を示す図である。尚、構成要素は第一の実施形態と変わらないが、図５に示す第二のシンボルエンコーダ５０３と制御部５０４の動作が異なる。以下、この２つの処理に関してのみ説明する。
【００４３】
第二のシンボルエンコーダ５０３で使用する符号語表は、残りの符号量が４ビット以上の場合の符号語についても作成されている。図６は、第二の実施形態における第二のシンボルエンコーダが参照する符号語表の一例を示す図である。図６に示す例は、残り符号量が６ビットまでの符号語表である。この範囲は、特に規定されるものではなく、５ビットまでであっても、７ビット以上まであっても良い。
【００４４】
また、本符号語表の作成時には、第一のシンボルエンコーダでも表現可能なゼロランと係数の組み合わせや、ＪＰＥＧ標準の符号語と混同する符号語を除外して符号語表を作成している。例えば、ゼロランが０で係数が１の時に、残りの符号量が３ビット以上の場合、第一のシンボルエンコーダ１０２でも符号化することが可能であるので除外している。また、“００”から始まる符号語は、付加ビットとして１ビットを伴うＪＰＥＧ標準の符号語が存在するので、このような符号も除外している。
【００４５】
例えば、４ビットの符号語を作成する場合、符号語“００”や“０１”はＪＰＥＧ標準に存在するので、それらを除くと全部で８通りの係数とゼロランの組み合わせを設定することができる。また、ゼロランと係数の組み合わせでは、ゼロランが０で係数が１ビットか２ビットの値の場合、ＪＰＥＧ標準の符号語でも４ビットで表わすことが可能であるので、それらの組み合わせも表から除外している。また、図６に示す符号語は、ゼロランが４以上となるより、絶対値の大きい係数が使用される可能性の方が高いものと仮定し、その符号語表を作成したが、ゼロランを優先にする符号語表を作成しても良い。
【００４６】
制御部５０４は、第一の実施形態と同様に、内部に符号量カウンタを備え、ブロックが入力されると最初に符号量カウンタを初期化する。ここで、符号語長と付加ビットの符号量を加算する前のカウンタ値を単にカウンタ値、加算後のカウンタ値を加算後のカウンタ値と呼ぶ。制御部５０４は、まず目標符号量から符号量カウンタ値を減算した値を残りの符号量として出力する。次に、カウンタ値に応じて以下に示す条件で制御信号を出力する。制御信号の出力後、第一のシンボルエンコーダ１０２から入力された符号語長と付加ビットの符号量を加算して新たなカウンタ値を得る。
１．（目標符号量）≦（カウンタ値）の時、制御信号は“０”
２．（目標符号量−６）≦（カウンタ値）＜（目標符号量）であって、
（加算後のカウンタ値）≦（目標符号量）の時、制御信号は“０”
（加算後のカウンタ値）＞（目標符号量）の時、制御信号は“１”
３．（カウンタ値）＜（目標符号量−６）の時、制御信号は“０”
条件１に該当するのは、目標符号量までの残りの符号量が無い場合である。
【００４７】
条件２の制御信号“０”に該当するのは、目標符号量までの残りの符号量が少なくなり、第二のシンボルエンコーダを使用する範囲に入ったが、第一のシンボルエンコーダを用いた符号化でも目標符号量内に収まった場合である。
【００４８】
条件２の制御信号“１”に該当するのは、目標符号量までの残りの符号量が少なくなり、第二のシンボルエンコーダを使用する範囲に入り、第一のシンボルエンコーダを用いたＪＰＥＧ標準の符号化では目標符号量をオーバーしてしまう場合である。
【００４９】
条件３に該当するのは、目標符号量までの残りの符号量がまだ大きく、第一のシンボルエンコーダを用いて符号化を行う場合である。
【００５０】
第一の実施形態と符号化の条件が異なるのは、第二の実施形態では残りの符号量がＮＮ以下になった時でも第一のシンボルエンコーダ／デコーダを用いて符号化が可能な時は、第一のシンボルエンコーダを優先的に用いて符号化を行うためである。一方、第一の実施形態では残りの符号量がある一定の範囲内に入った時は必ず第二のシンボルエンコーダを使用していた。
【００５１】
次に、上述した可変長符号化装置で符号化された符号を復号化する復号化装置の構成を、図７を用いて説明する。
【００５２】
図７は、第二の実施形態における復号化装置の構成の一例を示す図である。復号化装置で第一の実施形態と異なるのは、第二のシンボルデコーダ７０４と制御部７０５の動作である。以下、これら２つの構成要素についてのみ説明する。
【００５３】
第二のシンボルデコーダ７０４は、制御部７０５が出力する残りの符号量と、頭出し部３０１が出力した符号とに基づき、符号語表を参照し、合致した符号語があれば対応するゼロランと係数を出力する。第二のシンボルデコーダ７０４で参照する符号語表を図８に示す。
【００５４】
制御部７０５は、第一の実施形態と同様に、内部に符号量カウンタを備え、符号量カウンタをブロックの最初で初期化する。第一のシンボルデコーダから入力される符号語長と付加ビットの符号量を加算する前のカウンタ値を単にカウンタ値、加算後のカウンタ値を加算後のカウンタ値と呼ぶ。ここで、符号語か付加ビットに打ち切りが起こっている場合、第一の実施形態の時と同様に、第一のシンボルエンコーダの中に合致するパターンは存在しない。従ってこの場合は加算後のカウンタ値に（目標符号量＋１）をセットする。制御部７０５はまず、目標符号量からカウンタの値を減算した値を残りの符号量として、第二のシンボルデコーダ７０４へ出力する。そして、カウンタ値に応じて以下に示す条件で制御信号を選択部３０６へ出力する。制御信号の出力後、第一のシンボルデコーダ３０２から入力された符号語長と付加ビットサイズをカウンタ値に加算して、加算後のカウンタ値を得る。
１．（目標符号量−６）≦（カウンタ値）であって、
（加算後のカウンタ値）≦（目標符号量）の時、制御信号は“０”
（加算後のカウンタ値）＞（目標符号量）の時、制御信号は“１”
２．（カウンタ値）＜（目標符号量−６）であって、
（加算後のカウンタ値）≦（目標符号量）の時、制御信号は“０”
（加算後のカウンタ値）＞（目標符号量）の時、制御信号は“２”
条件１の制御信号“０”に該当するのは、目標符号量までの残りの符号量が少なくなり、第二のシンボルデコーダを使用する範囲に入ったが、第一のシンボルデコーダを用いた符号化でも目標符号量内に収まった場合である。
【００５５】
条件１の制御信号“１”に該当するのは、目標符号量までの残りの符号量が少なくなり、第二のシンボルデコーダを使用する範囲に入り、第一のシンボルデコーダを用いたＪＰＥＧ標準の復号化では目標符号量をオーバーしてしまう場合である。
【００５６】
条件２の制御信号“０”に該当するのは、目標符号量までの残りの符号量がまだ大きく、第一のシンボルデコーダを用いて符号化を行う場合である。
【００５７】
条件２の制御信号“２”に該当するのは、目標符号量までの残りの符号量がまだ大きかったが、第一のシンボルデコーダに合致するシンボルデータが存在せず、復号化が出来なかった場合である。
【００５８】
第一の実施形態と復号化の条件が異なるのは、第二の実施形態では残りの符号量が一定値以下になった時でも第一のシンボルデコーダを用いて復号化が可能な時は、第一のシンボルデコーダを優先的に用いて復号化を行うためである。一方、第一の実施形態では残りの符号量がある一定の範囲内に入った時は必ず第二のシンボルデコーダを使用していた。
【００５９】
その後、制御部７０５は符号語長と付加ビットの符号量との合計値であるシフト量を、頭出し部２０１へ出力する。
【００６０】
第二の実施形態によれば、符号量が目標符号量を超えた時に、参照する符号語テーブルを切り替えることで、残りの符号量が多ビットの場合でも、目標符号量内に収めることができる係数の数を増やすことができ、更なる画像品質の向上を図ることができる。
【００６１】
尚、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００６２】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００６３】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００６４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００６５】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６６】
【図１】第一の実施形態における画像符号化装置の構成の一例を示す図である。
【図２】第一の実施形態における第二のシンボルエンコーダが参照する符号語表の一例を示す図である。
【図３】第一の実施形態における画像復号化装置の構成の一例を示す図である。
【図４】第一の実施形態における第二のシンボルデコーダが参照する符号語表の一例を示す図である。
【図５】第二の実施形態における可変長符号化装置の構成の一例を示す図である。
【図６】第二の実施形態における第二のシンボルエンコーダが参照する符号語表の一例を示す図である。
【図７】第二の実施形態における復号化装置の構成の一例を示す図である。
【図８】第二の実施形態における第二のシンボルデコーダが参照する符号語表の一例を示す図である。
【図９】１ブロック毎の画像符号化データの構造を示す図である。
【符号の説明】
【００６７】
１０１  サイズ検出部
１０２  第一のシンボルエンコーダ
１０３  第二のシンボルエンコーダ
１０４  制御部
１０５  選択部
１０６  係数処理部
３０１  頭出し部
３０２  第一のシンボルデコーダ
３０３  付加ビット処理部
３０４  第二のシンボルデコーダ
３０５  制御部
３０６  選択部
【図１】
2010166170.tif 000003
【図２】
2010166170.tif 000004
【図３】
2010166170.tif 000005
【図４】
2010166170.tif 000006
【図５】
2010166170.tif 000007
【図６】
2010166170.tif 000008
【図７】
2010166170.tif 000009
【図８】
2010166170.tif 000010
【図９】
2010166170.tif 000011