(57)【要約】【課題】量子化マトリクスの符号化効率を向上させた符号化方法を提供する。【解決手段】各々の成分が１以上であり２５５以下である整数値をとる量子化マトリクスの符号化方法であって、前記量子化マトリクスの成分を予め定められた順序に並べた数列のＩ番目の要素と前記数列のＩ−１番目の要素との差分を算出し、前記差分が−１２８より小さい場合に前記差分と＋２５６とを加算した値をオフセット差分値とし、前記差分が＋１２８と同じかそれより大きい場合に前記差分と−２５６とを加算した値をオフセット差分値とし、前記差分が−１２８と同じかそれより大きく＋１２８より小さい場合に前記差分をオフセット差分値として生成し、前記生成したオフセット差分値を可変長符号化する。【選択図】図７
2011101420.tif 000002
【特許請求の範囲】
【請求項１】
動画像を符号化する動画像符号化装置で用いられる、各々の成分が１以上であり２５５以下である整数値をとる量子化マトリクスの符号化方法であって、
前記量子化マトリクスの成分を予め定められた順序に並べた数列のＩ番目の要素と前記数列のＩ−１番目の要素との差分を算出し、
前記差分が−１２８より小さい場合に前記差分と＋２５６とを加算した値をオフセット差分値とし、
前記差分が＋１２８と同じかそれより大きい場合に前記差分と−２５６とを加算した値をオフセット差分値とし、
前記差分が−１２８と同じかそれより大きく＋１２８より小さい場合に前記差分をオフセット差分値として生成し、
前記生成したオフセット差分値を可変長符号化する量子化マトリクスの符号化方法。
【請求項２】
前記オフセット差分値を符号化する可変長符号は、前記オフセット差分値の絶対値が大きい値を符号化した符号語長が絶対値が小さい値を符号化した符号語長よりも大きいか等しくなる符号であることを特徴とする請求項１記載の量子化マトリクスの符号化方法。
【請求項３】
前記オフセット差分値は、−１２８および＋１２７を値として含む−１２８から＋１２７の範囲の整数値となる、請求項１または請求項２に記載の量子化マトリクスの符号化方法。
【請求項４】
動画像の符号化装置であって、
各々の成分が１以上であり２５５以下である整数値をとる量子化マトリクスの符号化手段を含み、
前記符号化手段は、
前記量子化マトリクスの成分を予め定められた順序に並べた数列のＩ番目の要素成分値と前記数列のＩ−１番目の要素との差分を算出する減算器と、
前記差分が−１２８より小さい場合に前記差分と＋２５６とを加算した値をオフセット差分値とし、
前記差分が＋１２８と同じかそれより大きい場合に前記差分と−２５６とを加算した値をオフセット差分値とし、
前記差分が−１２８と同じかそれより大きく＋１２８より小さい場合に前記差分をオフセット差分値としてオフセット差分値を生成するオフセット差分値生成部と、
前記生成したオフセット差分値を絶対値が大きい値を符号化した符号語長が絶対値が小さい値を符号化した符号語長よりも大きいか等しくなる可変長符号化を行う符号化部と、
を含む符号化装置。
【請求項５】
動画像を符号化した信号を含む動画像信号ストリームであって、
前記符号化は、
各々の成分が１以上であり２５５以下である整数値をとる量子化マトリクスの成分を予め定められた順序に並べた数列のＩ番目の要素と前記数列のＩ−１番目の要素との差分を算出し、
前記差分が−１２８より小さい場合に前記差分と＋２５６とを加算した値をオフセット差分値とし、
前記差分が＋１２８と同じかそれより大きい場合に前記差分と−２５６とを加算した値をオフセット差分値とし、
前記差分が−１２８と同じかそれより大きく＋１２８より小さい場合に前記差分をオフセット差分値として生成し、
前記生成したオフセット差分値を可変長符号化するものである
動画像信号ストリーム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を効率良く圧縮する画像符号化方法とそれを正しく復号化する画像復号化方法、画像符号化装置、画像復号化装置およびプログラムに関する。
【背景技術】
【０００２】
近年、音声、画像、その他の画素値を統合的に扱うマルチメディア時代を迎え、従来からの情報メディア，つまり新聞，雑誌，テレビ，ラジオ，電話等の情報を人に伝達する手段がマルチメディアの対象として取り上げられるようになってきた。一般に、マルチメディアとは、文字だけでなく、図形、音声、特に画像等を同時に関連づけて表すことをいうが、上記従来の情報メディアをマルチメディアの対象とするには、その情報をディジタル形式にして表すことが必須条件となる。
【０００３】
ところが、上記各情報メディアの持つ情報量をディジタル情報量として見積もってみると、文字の場合１文字当たりの情報量は１〜２バイトであるのに対し、音声の場合１秒当たり64Kbits（電話品質）、さらに動画については１秒当たり100Mbits（現行テレビ受信品質）以上の情報量が必要となり、上記情報メディアでその膨大な情報をディジタル形式でそのまま扱うことは現実的では無い。例えば、テレビ電話は、64Kbit/s〜1.5Mbit/sの伝送速度を持つサービス総合ディジタル網（ISDN : Integrated Services Digital Network）によってすでに実用化されているが、テレビ・カメラの映像をそのままISDNで送ることは不可能である。
【０００４】
そこで、必要となってくるのが情報の圧縮技術であり、例えば、テレビ電話の場合、ITU-T（国際電気通信連合  電気通信標準化部門）で勧告されたH.261やH.263規格の動画圧縮技術が用いられている。また、MPEG-１規格の情報圧縮技術によると、通常の音楽用ＣＤ（コンパクト・ディスク）に音声情報とともに画像情報を入れることも可能となる。
【０００５】
ここで、MPEG（Moving Picture Experts Group）とは、ISO/IEC（国際標準化機構  国際電気標準会議）で標準化された動画像信号圧縮の国際規格であり、MPEG-１は、動画像信号を１．５Mbit/sまで、つまりテレビ信号の情報を約１００分の１にまで圧縮する規格である。また、MPEG-１規格では対象とする品質を伝送速度が主として約１．５Mbit/sで実現できる程度の中程度の品質としたことから、さらなる高画質化の要求をみたすべく規格化されたMPEG-２では、動画像信号を２〜１５Mbit/sでＴＶ放送品質を実現する。さらに現状では、MPEG-１，MPEG-２と標準化を進めてきた作業グループ（ISO/IEC JTC1/SC29/WG11）によって、MPEG-１，MPEG-２を上回る圧縮率を達成し、更に物体単位で符号化・復号化・操作を可能とし、マルチメディア時代に必要な新しい機能を実現するMPEG-４が規格化された。MPEG-４では、当初、低ビットレートの符号化方法の標準化を目指して進められたが、現在はインタレース画像も含む高ビットレートも含む、より汎用的な符号化に拡張されている。更に、現在は、ISO/IECとITU-Tが共同でより高圧縮率の次世代画像符号化方式として、MPEG-４AVCおよびITU H.264 の標準化活動が進んでいる。2002年8月の時点で、次世代画像符号化方式はコミッティー・ドラフト（CD）と呼ばれるものが発行されている。
【０００６】
一般に動画像の符号化では、時間方向および空間方向の冗長性を削減することによって情報量の圧縮を行う。そこで時間的な冗長性の削減を目的とする画面間予測符号化では、前方または後方のピクチャを参照してブロック単位で動きの検出および予測画像の作成を行い、得られた予測画像と符号化対象ピクチャとの差分値に対して符号化を行う。ここで、ピクチャとは１枚の画面を表す用語であり、プログレッシブ画像ではフレームを意味し、インタレース画像ではフレームもしくはフィールドを意味する。ここで、インタレース画像とは、１つのフレームが時刻の異なる２つのフィールドから構成される画像である。インタレース画像の符号化や復号化処理においては、１つのフレームをフレームのまま処理したり、２つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。
【０００７】
参照画像を用いずに画面内予測符号化を行うピクチャをＩピクチャと呼ぶ。また、１枚のピクチャのみを参照し画面間予測符号化を行うピクチャをＰピクチャと呼ぶ。また、同時に２枚のピクチャを参照して画面間予測符号化を行うことのできるピクチャをＢピクチャと呼ぶ。Ｂピクチャは表示時間が前方もしくは後方から任意の組み合わせとして２枚のピクチャを参照することが可能である。参照画像（参照ピクチャ）は符号化および復号化の基本単位であるブロックごとに指定することができるが、符号化を行ったビットストリーム中に先に記述される方の参照ピクチャを第１参照ピクチャ、後に記述される方を第２参照ピクチャとして区別する。ただし、これらのピクチャを符号化および復号化する場合の条件として、参照するピクチャが既に符号化および復号化されている必要がある。
【０００８】
ＰピクチャまたはＢピクチャの符号化には、動き補償画面間予測符号化が用いられている。動き補償画面間予測符号化とは、画面間予測符号化に動き補償を適用した符号化方式である。動き補償とは、単純に参照フレームの画素値から予測するのではなく、ピクチャ内の各部の動き量（以下、これを動きベクトルと呼ぶ）を検出し、当該動き量を考慮した予測を行うことにより予測精度を向上すると共に、データ量を減らす方式である。例えば、符号化対象ピクチャの動きベクトルを検出し、その動きベクトルの分だけシフトした予測値と符号化対象ピクチャとの予測残差を符号化することによりデータ量を減している。この方式の場合には、復号化の際に動きベクトルの情報が必要になるため、動きベクトルも符号化されて記録又は伝送される。
【０００９】
動きベクトルはマクロブロック単位で検出されており、具体的には、符号化対象ピクチャ側のマクロブロックを固定しておき、参照ピクチャ側のマクロブロックを探索範囲内で移動させ、基準ブロックと最も似通った参照ブロックの位置を見つけることにより、動きベクトルが検出される。
【００１０】
図１はビットストリームのデータ構造の例を示した説明図である。図１に示すようにビットストリームは以下のような階層構造を有している。ビットストリーム（Stream）は複数のグループ・オブ・ピクチャ（Group Of Picture）から構成される。グループ・オブ・ピクチャを符号化処理の基本単位とすることで動画像の編集やランダムアクセスが可能になっている。グループ・オブ・ピクチャは、複数のピクチャから構成され、各ピクチャは、Ｉピクチャ、ＰピクチャまたはＢピクチャがある。各ピクチャはさらに複数のスライスから構成されている。スライスは、各ピクチャ内の帯状の領域であり、複数のマクロブロックから構成されている。ストリーム、GOP、ピクチャおよびスライスはさらにそれぞれの単位の区切りを示す同期信号（sync）と当該単位に共通のデータであるヘッダ（header）から構成されている。
【００１１】
また、ストリームが連続したビットストリームでなく、細切れのデータの単位であるパケット等で伝送する場合はヘッダ部とヘッダ以外のデータ部を分離して別に伝送してもよい。その場合は、図１のようにヘッダ部とデータ部が１つのビットストリームとなることはない。しかしながら、パケットの場合は、ヘッダ部とデータ部の伝送する順序が連続しなくても、対応するデータ部に対応するヘッダ部が別のパケットで伝送されるだけであり、１つのビットストリームとなっていなくても、概念は図１で説明した符号化ビットストリームの場合と同じである。
【００１２】
一般に人間の視覚特性は画像中の低周波数成分に敏感であり、高周波数成分は低周波数成分ほど感度が高くないといわれている。更に、画像信号は低周波数成分のエネルギーが高周波数成分のエネルギーよりも大きいことから、画像符号化は低周波数成分から高周波数成分の順序で行われる。その結果、低周波数成分の符号化に必要なビット数よりも高周波数成分の符号化に必要なビット数の方が多くなる。
【００１３】
以上の観点から、従来の符号化方法では、直交変換により得られる周波数毎の変換係数の量子化において、低周波数成分よりも高周波数成分に対応する量子化ステップを粗くしている。これにより、主観画質の劣化はわずかでありながら大幅に圧縮率を向上する方法が従来採用されている。
【００１４】
さて、低周波数成分に対して高周波数成分の量子化ステップをどの程度粗くするかについては画像信号に依存するため、画像に応じて各周波数成分の量子化ステップの大きさを変更する手法が採用されている。各周波数成分の量子化ステップを導出するために量子化マトリクスが用いられる。量子化マトリクスの例を図２に示す。図２の量子化マトリクスの例において、左上がDC成分、右方が水平高周波数成分、下方が垂直高周波数成分に対応する。また、数値が大きいほど量子化ステップが粗くなることを示す。量子化マトリクスは、通常各ピクチャ単位で変更可能となっている。各周波数成分の量子化ステップの大きさを示す値が固定長で符号化される。なお、量子化マトリクスの各成分と量子化ステップの値はほぼ比例関係にあるのが一般的であるが、必ずしもこれにこだわる必要は無く、両者の対応が明確に規定されていれば良い。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平０２−２１６９１７号公報
【特許文献２】特開平０４−３４３５７６号公報
【特許文献３】特開平０５−２３５７７８号公報
【特許文献４】特開平１１−０８８８８０号公報
【特許文献５】特開２００１−２５８０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、量子化マトリクスの各周波数成分の値は一定の範囲に集中していることから単純に固定長符号化を行うと符号化効率がよくないという問題がある。
【００１７】
本発明の目的は、量子化マトリクスの符号化効率を向上させた画像符号化方法、画像復号化方法、画像符号化装置、画像復号化装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するため本発明の画像符号化方法は、画像をブロック単位の直交変換および量子化によって符号化するとともに、直交変換係数の各周波数に応じた量子化ステップを導出するための量子化マトリクスを符号化する画像符号化方法であって、前記量子化マトリクスの周波数成分毎に、周波数成分とその周波数成分に応じた所定値との差分値を求め、前記差分値を可変長符号に符号化し、前記可変長符号は、前記差分値が小さいほど短いか同じ長さの符号長を有する。ここで、所定値は、例えば最も出現頻度の高い周波数成分の値でもよいし、周波数成分の平均的な値を示す定数でもよいし、周波数成分毎に予め定められた値でもよい。
【００１９】
この構成によれば、周波数成分と所定値との差分値をとるので差分値は周波数成分よりも小さい値になり、周波数成分そのものを符号化するのではなく、差分値を符号化するので、可変長符号の符号長を短くし符号化効率を向上させることができる。
【００２０】
ここで、前記所定値は、直前に求められた差分値に対応する周波数成分の値としてもよい。
【００２１】
この構成によれば、周波数成分と直前の周波数成分とは通常は相関関係があるので、各差分値をより小さい値にすることができ、さらに符号化効率を向上させることができる。
【００２２】
ここで、前記差分値は、前記量子化マトリクスに含まれる周波数成分の低周波数から高周波数の順に求めてもよい。
【００２３】
この構成によれば、低周波数から高周波数の順に周波数成分が符号化されるので、周波数成分と直前の周波数成分とは同じくらいの値をとる確率が高く、より確実に各差分値を小さい値にすることができ、より一層符号化効率を向上させることができる。
【００２４】
ここで、前記差分値は、２のｋ乗（ｋは定数）で除算した剰余として求めてもよい。
【００２５】
この構成によれば、例えば、２の８乗（ｋ＝８）で割った剰余として差分値が表現される場合には、差分値を実質的に８ビットで表現できる値に小さくすることができ、さらに可変長符号のビット数を減らすことができる。
【００２６】
ここで、前記画像符号化方法は、さらに、連続する差分値０が量子化マトリクスの末尾に存在するかどうかを判定し、連続する差分値０が存在すると判定された場合に、前記連続する差分値０を可変長符号化しないようにしてもよい。
【００２７】
ここで、前記符号化方法は、さらに、前記可変長符号化した最後に終了符号を付加し、それ以降が符号化されていない連続する差分値０であることを示すようにしてもよい。
【００２８】
この構成によれば、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続している場合に、同じビット列をもつ複数の可変長符号を生成するのではなく、複数の周波数成分に対して可変長符号が１つだけ生成されるので、符号化効率をさらに向上させることができる。また、この場合、終了符号を付加することにより、画像復号化装置の復号処理の効率を向上させることができる。
【００２９】
また、記目的を達成するため本発明の画像復号化方法は、符号化された画像をブロック単位に逆量子化および逆直交変換によって復号化するとともに、符号化された量子化マトリクスを復号化する画像復号化方法であって、可変長符号化された量子化マトリクスを、周波数成分毎の差分値に可変長復号し、前記差分値と、周波数成分に応じた所定値とを加算することにより、量子化マトリクスの周波数成分を求め、前記可変長符号は、前記差分値が小さいほど短いか同じ長さの符号長を有する。
【００３０】
ここで、前記所定値は、直前の加算により求められた周波数成分の値としてもよい。
【００３１】
ここで、前記加算の順序は、周波数成分の低周波数から高周波数の順としてもよい。
【００３２】
ここで、前記周波数成分は、２のｋ乗（ｋは定数）で除算した剰余として求めてもよい。
【００３３】
この構成によれば、上記符号化方法によって符号化効率を向上させた可変長符号列を容易に復号化することができる。
【００３４】
ここで、前記画像復号化方法において、可変長符号化された量子化マトリクスから終了符号が検出された場合に、それ以降に後続する各周波数成分の値として、終了符号の直前の周波数成分と同じ値を出力してもよい。
【００３５】
この構成によれば、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続している場合に、１つの可変長符号から複数の周波数成分を復号化することができる。また、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続していることを、終了符号によって容易に判別することができる。
【００３６】
また、本発明の画像符号化装置、画像復号化装置、プログラムについても上記と同様の構成および効果を有する。
【図面の簡単な説明】
【００３７】
【図１】図１は、ビットストリームのデータ構造の例を示した説明図である。
【図２】図２は、量子化マトリクスの例を示す図である。
【図３】図３は、画像符号化装置の構成を示すブロック図である。
【図４】図４は、ＷＭ符号化部のブロック図である。
【図５Ａ】図５Ａは、量子化マトリクスの符号化順序を示す図である。
【図５Ｂ】図５Ｂは、量子化マトリクスの符号化順序を示す図である。
【図５Ｃ】図５Ｃは、量子化マトリクスの符号化順序を示す図である。
【図５Ｄ】図５Ｄは、量子化マトリクスの符号化順序を示す図である。
【図６Ａ】図６Ａは、量子化マトリクスの成分値の具体例を示す図である。
【図６Ｂ】図６Ｂは、量子化マトリクスの符号化過程における差分値の具体例を示す図である。
【図６Ｃ】図６Ｃは、周波数成分値から差分値および可変長符号までの符号化過程の具体例を示す図である。
【図７】図７は、ＷＭ符号化部におけるＷＭ符号化処理を示すフローチャートである。
【図８Ａ】図８Ａは、正数の場合の可変長符号化の具体例を示す図である。
【図８Ｂ】図８Ｂは、符号付きの場合の可変長符号化の具体例を示す図である。
【図８Ｃ】図８Ｃは、可変長符号化の具体例を示す図である。
【図９Ａ】図９Ａは、量子化マトリクスの周波数成分の配列を示す図である。
【図９Ｂ】図９Ｂは、量子化マトリクスの各成分の符号化されたデータがヘッダ部にどのように配置されているかを示す図である。
【図９Ｃ】図９Ｃは、量子化マトリクスの各成分の符号化されたデータがヘッダ部にどのように配置されているかを示す図である。
【図１０】図１０は、画像復号化装置の構成を示すブロック図である。
【図１１】図１１は、ＷＭ復号化部の構成を示すブロック図である。
【図１２】図１２は、ＷＭ復号化部におけるＷＭ復号化処理を示すフローチャートである。
【図１３Ａ】図１３Ａは、上記実施形態における画像符号化方法及び画像復号化方法をコンピュータシステムによって実現するプログラムを格納するための記録媒体についての説明図である。
【図１３Ｂ】図１３Ｂは、上記実施形態における画像符号化方法及び画像復号化方法をコンピュータシステムによって実現するプログラムを格納するための記録媒体についての説明図である。
【図１３Ｃ】図１３Ｃは、上記実施形態における画像符号化方法及び画像復号化方法をコンピュータシステムによって実現するプログラムを格納するための記録媒体についての説明図である。
【図１４】図１４は、コンテンツ供給システムの全体構成を示すブロック図である。
【図１５】図１５は、画像符号化方法および画像復号化方法を用いた携帯電話の具体例を示す図である。
【図１６】図１６は、携帯電話のブロック図である。
【図１７】図１７は、ディジタル放送用システムの例を示す図である。
【発明を実施するための形態】
【００３８】
以下、本発明の実施の形態１について、図３から図１７を用いて説明する。
【００３９】
図３は実施の形態１における画像符号化装置の構成を示すブロック図である。
【００４０】
動画像符号化装置１は、入力される画像信号Vin を圧縮符号化して可変長符号等のビットストリームに変換した画像符号化信号Str を出力する装置であり、動き検出ユニットＭＥ、動き補償ユニットＭＣ、減算ユニットＳｕｂ、直交変換ユニットＴ、量子化ユニットＱ、逆量子化ユニットＩＱ、逆直交変換ユニットＩＴ、加算ユニットＡｄｄ、ピクチャメモリPicMem、スイッチＳＷ、および可変長符号化ユニットＶＬＣを備えている。
【００４１】
画像信号Vin は、減算ユニットＳｕｂおよび動き検出ユニットＭＥに入力される。減算ユニットＳｕｂは、入力された画像信号Vin と予測画像の差分値を計算し、直交変換ユニットＴに出力する。直交変換ユニットＴは、差分値を周波数係数に変換し、量子化ユニットＱに出力する。
【００４２】
量子化ユニットＱは、減算ユニットＳｕｂ入力されたブロック単位の周波数係数を外部から入力された量子化マトリクスWMを参照して導出した量子化ステップで量子化し、量子化値Qcoefを可変長符号化ユニットに出力する。
【００４３】
逆量子化ユニットＩＱは、量子化マトリクスWMを参照して導出した量子化ステップで量子化値Qcoefを逆量子化して周波数係数に復元し、逆直交変換ユニットＩＴに出力する。
【００４４】
逆直交変換ユニットＩＴは、周波数係数から画素差分値に逆周波数変換し、加算ユニットＡｄｄに出力する。加算ユニットＡｄｄは、画素差分値と動き補償ユニットＭＣから出力される予測画像とを加算して復号化画像とする。スイッチＳＷは、当該復号化画像の保存が指示された場合にＯＮになり、復号化画像はピクチャメモリPicMemに保存される。
【００４５】
一方、画像信号Vinがマクロブロック単位で入力された動き検出ユニットＭＥは、ピクチャメモリPicMemに格納されている復号化画像を探索対象とし、最も入力画像信号に近い画像領域を検出することによってその位置を指し示す動きベクトルＭＶを決定する。動きベクトル検出はマクロブロックをさらに分割したブロック単位で行われる。このとき、複数のピクチャを参照ピクチャとして使用することができるため、参照するピクチャを指定するための識別番号（参照インデックスIndex）がブロックごとに必要となる。参照インデックスIndexによって、ピクチャメモリPicMem中の各ピクチャが有するピクチャ番号との対応を取ることにより参照ピクチャを指定することが可能となる。
【００４６】
動き補償ユニットＭＣでは、上記処理によって検出された動きベクトルおよび参照インデックスIndexを用いて、ピクチャメモリPicMemに格納されている復号化画像から予測画像に最適な画像領域を取り出す。
【００４７】
可変長符号化ユニットＶＬＣは、量子化マトリクスWM、量子化値Qcoef、参照インデックスIndexおよび動きベクトルＭＶを可変長符号化して符号化ストリームStrとする。そのため、可変長符号化ユニットＶＬＣは、第１符号化部と第２符号化部とを内部に有する。第１符号化部（以下ＷＭ符号化部と呼ぶ。）は、量子化マトリクスＷＭを可変長符号化する。第２符号化部は、量子化マトリクスＷＭ以外の、量子化値Qcoef、参照インデックスIndexおよび動きベクトルＭＶ等を可変長符号化する。ＷＭ符号化部は、前記量子化マトリクスの周波数成分毎に、周波数成分とその周波数成分に応じた所定値との差分値を求め、前記差分値を可変長符号に符号化する。この可変長符号は、一部を除いて前記差分値が小さいほど短い符号長を有している。
【００４８】
図４は、ＷＭ符号化部の構成を示すブロック図である。同図のようにＷＭ符号化部は、減算器４１、Ｗバッファ４２、オフセット決定部４３、加算器４４、ブロックバッファ４５、個数判定部４６、終了符号保持部４７、スイッチ４８、可変長符号化部４９を備える。
【００４９】
減算器４１は、前記量子化マトリクスの周波数成分毎に、周波数成分とその周波数成分に応じた所定値との差分値を求める。所定値は、例えば最も出現頻度の高い周波数成分の値でもよいし、周波数成分の平均的な値を示す定数でもよいし、周波数成分毎に予め定められた値でもよい。本実施の形態では、所定値は、直前に求められた差分値に対応する周波数成分の値である。この場合、減算器４１は、外部から入力された現在の周波数成分Ｗ[i]と、Ｗバッファ４２に保持された直前の周波数成分Ｗ[i-1]との差分値を求める。周波数成分Ｗ[i]と直前の周波数成分Ｗ[i-1]とは通常は相関関係があるので、各差分値をより小さい値とすることができる。なお、Ｗ[i]は符号化順序がｉ番目の周波数成分を表す。
【００５０】
図５Ａ〜図５Ｄは、減算器４１に入力される量子化マトリクスの周波数成分の順序例を示す図である。この順序は、減算器４１に入力される量子化マトリクスのスキャン順序である。画像符号化の直交変換では、4ｘ4画素単位と8ｘ8画素単位の２通りが最もよく使用される。そこで、図５Ａと図５Ｂに4x4画素単位の例、図５Ｃと図５Ｄに8x8画素単位の例を示す。本実施の形態では量子化マトリクスの各成分を個別に図８Ａ〜図８Ｃの何れかで符号化することから、図５Ａや図５Ｃのように低周波数成分から高周波数成分の順番に符号化したとしても、図５Ｂや図５Ｂのように単純に水平順序で符号化したとしても符号化効率に差は無い。
【００５１】
図６Ａは、減算器４１に入力される量子化マトリクスの周波数成分の一部を示す。同図のＷ［０］、Ｗ［１］、Ｗ［２］、Ｗ［３］、・・・は図５Ｂの符号化順序に従っている。
【００５２】
Ｗバッファ４２は、直前の周波数成分Ｗ[i-1]を保持するバッファである。符号化開始前に、Ｗバッファ４２は、ＤＣ成分として最も取り得る代表的な値を初期値Ｗ［−１］として保持している。本実施形態では初期値Ｗ［−１］は８とする。なお、Ｗバッファ４２は、直前の周波数成分Ｗ[i-1]を保持する代わりに、周波数成分に応じた所定値Ｋを予め保持するようにしてもよい。
【００５３】
オフセット決定部４３は、減算器４１からの差分（Ｗ[i]−Ｗ[i-1]）を２のｋ乗（ここではｋ＝８）で除算した剰余に変換するためのオフセット値を決定する。すなわち、（Ｗ[i]−Ｗ[i-1]）にオフセットを加算した結果が-128から127までの値となるように、-256、0もしくは256のいずれかの値を出力する。
【００５４】
加算器４４は、減算器４１からの差分値（Ｗ[i]−Ｗ[i-1]）とオフセット決定部４３からのオフセット値とを加算することにより差分値Ｄ[i]を算出する。なお、Ｄ[i]は符号化順序がｉ番目の差分値を表す。
【００５５】
図６Ｂは、加算器４４により算出された差分値Ｄ[i]の一例を示す。同図の差分値Ｄ［０］、Ｄ［１］、Ｄ［２］、Ｄ［３］・・・は、図６Ａの周波数成分Ｗ［０］、Ｗ［１］、Ｗ［２］、Ｗ［３］・・・に対応する例である。
【００５６】
ブロックバッファ４５は、加算器４４から入力される差分値Ｄ[i]を１ブロック分（１量子化マトリクス分）保持するバッファである。
【００５７】
個数判定部４６は、スキャン順序の最後（ブロックの最後）に連続して存在する差分値０（Ｗ[i]−Ｗ[i-1]＝０）の個数をカウントし、ブロックバッファ４５に保持されたＤ［０］〜Ｄ［Ｍ］を出力させるように４８を制御する。ここで、Ｄ［Ｍ］は、上記連続して存在する差分値０の先頭の差分値０の直前の差分値である。
【００５８】
終了符号保持部４７は、量子化マトリクスの可変長符号の終端を示す終了符号を保持する。終了符号は、差分値Ｄ[i]がとり得ない値であればよい。
【００５９】
スイッチ４８は、ブロックバッファ４５に保持されたＤ［０］〜Ｄ［Ｍ］を出力させるようにブロックバッファ４５出力を選択した後、１個の終了符号を出力させるように終了符号保持部４７出力を選択する。つまり、スイッチ４８の出力は、量子化マトリクスの先頭に対応する差分値Ｄ［０］から最後に連続して存在する差分値０の直前の差分値Ｄ［Ｍ］までと、１つの終了符号である。なお、個数判定部４６でカウントされた、スキャン順序の最後（ブロックの最後）に連続して存在する差分値０（Ｗ[i]−Ｗ[i-1]＝０）の個数が0の場合には、スイッチ４８は終了符号を出力しない。
【００６０】
可変長符号化部４９は、ブロックバッファ４５からスイッチ４８を介して入力される差分値と、終了符号とを、差分値が小さいほど短いか同じ長さの符号長となるように可変長符号化する。
【００６１】
図６Ｃは、可変長符号化部４９により図８Ｃの符号を用いて符号化された符号の具体例を示す。同図において、Ｗ［０］〜Ｗ［４］、Ｄ［０］〜Ｄ［４］は図６Ａ、図６Ｂに対応している。可変長符号化部４９による符号は、例えば、差分値が０のとき符号長が１ビットであり、差分値が１のとき符号長が３ビットである。このように、可変長符号化部４９による可変長符号は、差分値が小さいほど短い符号長となっている。また、周波数成分Ｗ［３０］〜Ｗ［６３］まではいずれも同じ値６４となっている。この場合、差分値Ｄ［３０］〜Ｄ［６３］は連続して０になる。この場合、差分値Ｄ［３０］〜Ｄ［６３］は符号化されない。差分値Ｄ［３０］の0に対する符号”１”の代わりに終了符号が可変長符号化されることになる。
【００６２】
図７は、ＷＭ符号化部における量子化マトリクスの詳細な符号化処理を示すフローチャートである。同図においてNumは量子化マトリクス中の周波数成分の個数（１６、６４など）、ｉ、ｊはそれぞれ０から（Num-1）までをカウントするための変数である。
【００６３】
ＷＭ符号化部は、まず、Ｗバッファ４２に初期値Ｗ［−１］（例えば８）を保持させ（Ｓ７１）、ループ１に示す処理（Ｓ７２〜Ｓ７７）で量子化マトリクスの各周波数成分について差分値を求めてブロックバッファ４５に格納し、その後ループ２（Ｓ７８〜Ｓ８１）に示す処理で差分値の可変長符号化を行う。
【００６４】
ループ１において、減算器４１は、外部から入力された現在の周波数成分Ｗ[i]と、Ｗバッファ４２に保持された直前の周波数成分Ｗ[i-1]との差分値Ｄを求める（Ｓ７３）。オフセット決定部４３は、減算器４１からの差分Ｄを２のｋ乗（ここではｋ＝８）をで除算した剰余に変換するためのオフセット値を決定する（Ｓ７４）。例えばＷ[i]が−２５６〜＋２５４の値を取り得る場合、オフセット決定部４３は、Ｄが１２８以上の場合にオフセット値は−２５６、Ｄが−１２８よりも小さいときオフセット値は２５６、Ｄがそれ以外のときオフセット値は０と決定する。これにより、オフセット値加算後のＤ（つまりＤ[i]）は、−１２８〜＋１２７の範囲内の、正の値だけでなく負の値も含めた剰余となる。これにより、差分値Ｄ[i]の取り得る値が小さくなるので、図８Ｃの符号を用いて符号化した場合のＤ[i]の可変長符号も短くなる。
【００６５】
加算器４４は、減算器４１からの差分値Ｄ（＝Ｗ[i]−Ｗ[i-1]）とオフセット決定部４３からのオフセット値とを加算することにより差分値Ｄ［ｉ］を算出する（Ｓ７５〜７６）。
【００６６】
ループ２において、個数判定部４６は、Ｄ[i]列の最後に連続して存在する差分値０の個数を判定し（Ｓ７９）、その連続する差分値０の直前の差分値Ｄ［Ｍ］までをスイッチ４８をブロックバッファ４５出力に接続し、その後終了符号保持部４７出力に接続する。
【００６７】
可変長符号化部４９は、ブロックバッファ４５からスイッチ４８を介して入力される差分値Ｄ[i]と、終了符号保持部４７からスイッチ４８から入力される終了符号を符号化する（Ｓ８２）。終了符号を、Ｄ[i]の取り得ない値であればよく、ここでは−Ｗ［Ｍ］つまりＷ[M]＝０としている。量子化マトリクスの周波数成分は正数であるため、W[M]が０であることを終了符号として識別できるのである。
【００６８】
図８Ａ〜図８Ｃは可変長符号化部４９における可変長符号化の例を示す説明図である。いずれも指数ゴロム符号(Exponential Golom code)を利用している。
【００６９】
図８Ａは、可変長符号の第１の例を示す。同図では、符号語（code）と、符号化前の差分値（value）の関係を示す。この例は、差分値が取り得る値が正数である場合に利用可能である。大きな差分値ほど生起頻度が小さく符号長が長い。従って小さな差分値には短い符号語が割り当てられている。符号語と各成分の値との変換は図８Ａに示す算術式で容易に導出できる。例えば、差分値valueが７の場合、７＝４＋３＝（２の2乗＋二進数”１１” ）と表現される。これに対する符号語codeは、”０００（３個の０）”と”１”と”１１”を並べたビット列になる。図８ＡにおけるＮはvalueを超えない直近の２のべき乗のべき数である。Ｘ0Ｘ1Ｘ2・・・ＸN-1は、valueから直近の２のべき乗を減じた値を示すビット列である。
【００７０】
図８Ｂは、可変長符号の第２の例を示す。同図では、value欄に量子化マトリクスの周波数成分Ｗ[i]（つまり、所定値Ｋ＋差分値）を記してある。量子化マトリクスの成分Ｗ[i]の値が所定値Ｋを最も取りやすい場合に適している。所定値Ｋの生起頻度が高いことから成分の値がＫの場合に符号長が最短になり、成分の値がＫから離れると符号長が長くなる。所定値Ｋは例えばＷ[i-1]でよいが、予め定められた定数でもよい。
【００７１】
図８Ｃは、可変長符号化の第３の例を示す。同図では、符号語（code）と、符号化前の差分値（value）の関係を示す。この例は、差分値が取り得る値が正数だけでなく負数である場合に利用可能である。図５Ａ〜図５Ｄに示した順序で量子化マトリクスの各成分を符号化する際に、隣接する周波数成分Ｗ[i-1]の値は相関が大きい。従って、図５Ａ〜図５Ｄの何れか順序で符号化する際に、直前に符号化した成分の値Ｗ[i-1]との差分値を符号化することで、差分値が０近傍に集中する。その結果、図８Ｃに示すように０近傍の値の符号化には短い符号長で０から離れた値は長い符号長の符号語を用いることで、可変長符号のビット数が更に削減できる。
【００７２】
図９Ａ〜図９Ｃは、量子化マトリクスおよびストリーム中に符号化された量子化マトリクスのデータ構造を示す図である。同図において、Headerは図１のStream、GOP、もしくはピクチャのヘッダに相当する。図９Ａは量子化マトリクスの周波数成分の配列を示す図である。Ｗi,jはi行ｊ列の量子化マトリクスの成分を表している。図９Ｂと図９Ｃは量子化マトリクスの各成分の符号化されたデータがヘッダ部にどのように配置されているかを示している。量子化マトリクスを符号化したビットストリームがWeightingMatrixである。図９Ｂが図５Ｃの順序で符号化されたストリームであり、図９Ｃが図５Ｄの順序で符号化されたストリームである。なお、図９Ｂと図９Ｃのストリーム中でWi,jと記載されているのはWi,jに相当する符号化された可変長符号という意味である。
【００７３】
以上説明してきたように本実施の形態におけるＷＭ符号化部によれば、周波数成分Ｗ[i]と所定値Ｋとの差分値Ｄ[i]をとるので、差分値Ｄ[i]は周波数成分Ｗ[i]よりも小さい値になる。Ｗ符号化部は、周波数成分Ｗ[i]そのものを符号化するのではなく、差分値Ｄ[i]を符号化するので、可変長符号の符号長を短くし符号化効率を向上させることができる。
【００７４】
また、所定値Ｋとして直前の周波数成分Ｗ[i-1]を用いることにより、各差分値Ｄ[i]をより小さい値にすることができ、さらに符号化効率を向上させることができる。周波数成分Ｗ[i]と直前の周波数成分Ｗ[i-1]とは通常は相関関係があるからである。
【００７５】
また、周波数成分Ｗ[i]は、低周波数から高周波数の順に周波数成分が符号化されるので、周波数成分Ｗ[i]と直前の周波数成分Ｗ[i-1]とは同じくらいの値をとる確率が高く、より確実に各差分値Ｄ[i]を小さい値にすることができ、より一層符号化効率を向上させることができる。
【００７６】
さらに、差分値Ｄ[i]が２の８乗（ｋ＝８）で割った剰余として表現される場合には、差分値を実質的に８ビットで表現できる値に小さくすることができ、さらに可変長符号のビット数を減らすことができる。
【００７７】
また、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続している場合に、同じビット列をもつ複数の可変長符号を生成するのではなく、複数の周波数成分に対して可変長符号が１つも生成されないので、符号化効率をさらに向上させることができる。また、この場合、終了符号を付加することにより、画像復号化装置の復号処理の効率を向上させることができる。
【００７８】
図１０は本実施の形態１における画像復号化装置のブロック図である。同図において、図３の画像符号化装置のブロック図と同じ動作をするユニットは同じ番号を付し、説明を省略する。
【００７９】
可変長復号化ユニットVLDは、符号化ストリームStrを復号化し、量子化マトリクスWM、量子化値Qcoef、参照インデックスIndexおよび動きベクトルＭＶを出力する。
【００８０】
そのため、可変長復号ユニットＶＬＤは、第１復号化部と第２復号化部とを内部に有する。第１復号化部（以下ＷＭ復号化部と呼ぶ。）は、符号化された量子化マトリクスＷＭを可変長復号化する。第２復号化部は、符号化された量子化マトリクスＷＭ以外の、符号化された量子化値Qcoef、参照インデックスIndexおよび動きベクトルＭＶ等を可変長復号化する。ＷＭ復号化部は、可変長符号化された量子化マトリクスを、周波数成分毎の差分値に可変長復号し、前記差分値と周波数成分に応じた所定値とを加算することにより、量子化マトリクスの周波数成分を求める。
【００８１】
量子化マトリクスQM、量子化値Qcoef、参照インデックスIndexおよび動きベクトルＭＶは、ピクチャメモリPicMem、動き補償ユニットＭＣおよび逆量子化ユニットＩＱに入力され復号化処理が行われるが、その動作は図３の画像復号化装置のブロック図で説明済みである。
【００８２】
図１１は、ＷＭ復号化部の構成を示すブロック図である。ＷＭ復号化部は、可変長復号化部５１、加算器５２、乗余計算部５３、スイッチ５４、Ｗバッファ５５、スイッチ５６、最終係数判定部５７を備える。
【００８３】
可変長復号化部５１は、可変長符号化された周波数成分の可変長符号を、周波数成分毎の差分値Ｄ[i]に復号化する。
【００８４】
加算器５２は、可変長復号化部５１からの差分値Ｄ[i]と、Ｗバッファ５５からの直前の周波数成分Ｗ[i-1]の値とを加算する。
【００８５】
乗余計算部５３は、加算器５２からの加算結果に２のｋ乗を加算し、さらに２のｋ乗の剰余を算出することにより、周波数成分Ｗ[i]を求める。具体的には、乗余計算部５３は、（Ｄ[i]＋Ｗ[i-1]＋２５６）％２５６を算出する。ここで、％は（２５６で）除算した剰余を得る演算を示す。
【００８６】
スイッチ５４は、乗余計算部５３から終了符号が出力されていない間はオン、終了符号が出力されるとオフする。
【００８７】
Ｗバッファ５５は、乗余計算部５３からスイッチ５４を介して入力される周波数成分Ｗ[i]を保持し、次のサイクルで周波数成分Ｗ[i-1]として加算器５２に出力する。また、Ｗバッファ５５は初期値としてＷ[i-1]（例えば８）を保持している。
【００８８】
スイッチ５６は、乗余計算部５３から終了符号が出力されていない間は、乗余計算部５３からスイッチ５４を介して入力される周波数成分Ｗ[i]を選択し、終了符号が出力された後は、Ｗバッファ５５を選択する。
【００８９】
最終係数判定部５７は、乗余計算部５３から終了符号が出力されたか否かを判定し、判定結果に応じてスイッチ５４およびスイッチ５６を制御する。
【００９０】
以上のようにして、全ての周波数成分に対応W[i]を復号できる。なお、終了符号が検出されなくても、ブロックに含まれる全ての周波数成分と同数の差分値D[i]を復号化した場合にはその時点で量子化マトリクスの復号化を終了する。
【００９１】
図１２は、ＷＭ復号化部におけるＷＭ復号化処理を示すフローチャートである。同図においてNumは量子化マトリクス中の周波数成分の個数（１６、６４など）、ｉは０から（Num-1）までをカウントするための変数、ｊはｉから（Num-1）までをカウントするための変数である。同図のように、ＷＭ復号化部は、まず初期値Ｗ[i-1]をＷバッファ５５に保持させ（Ｓ１２１）、ループ１（Ｓ１２２〜１２７）において可変長復号および出力し、終了符号が検出された後はループ２（Ｓ１２８〜１３０）において同じ値をもつ連続する周波数係数を出力する。
【００９２】
ループ１において、可変長復号化部５１は入力された可変長符号を差分値Ｄ[i]に復号化する（Ｓ１２３）。さらに、加算器５２は可変長復号化部５１からの差分値と、Ｗバッファ５５からの直前の周波数成分とを加算し、乗余計算部５３は、剰余Ｗ＝（Ｄ[i]＋Ｗ[i-1]＋２５６）％２５６を算出する（Ｓ１２４）。最終係数判定部５７は、この剰余Ｗが終了符号であるか否か（ここでは正であるか否か）を判定する（Ｓ１２５）。終了符号でないと判定された場合には、剰余Ｗは周波数成分Ｗ[i-1]として乗余計算部５３からスイッチ５６を介して出力され、同時にスイッチ５４を介してＷバッファ５５に保持される（Ｓ１２６）。終了符号であると判定された場合には、ループ２の処理が実行される。
【００９３】
ループ２では、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続している場合に、周波数成分Ｗ[i-1]を周波数成分Ｗ[i]として連続して出力する。すなわち、後続する各周波数成分Ｗ[i]〜Ｗ[Num-1]として、Ｗバッファ５５に保持されたＷ[i-1]をスイッチ５６を介して出力する（Ｓ１２９）。
【００９４】
以上説明してきたように本実施の形態におけるＷＭ復号化部によれば、ＷＭ符号化部によって差分符号化された可変長符号を正しく復号する。さらに、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続している場合に、ＷＭ復号化部は、その複数の周波数成分を１つの可変長符号から復号化することができる。その際、同じ値をもつ複数の周波数成分が量子化マトリクスの末尾に連続していることを、終了符号によって容易に判別することができる。
【００９５】
さらに、上記各実施の形態で示した画像符号化方法および画像復号化方法を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【００９６】
図１３Ａ〜Ｃは、上記各実施の形態の画像符号化方法および画像復号化方法を、フレキシブルディスク等の記録媒体に記録されたプログラムを用いて、コンピュータシステムにより実施する場合の説明図である。
【００９７】
図１３Ｂは、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図１３Ａは、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムが記録されている。
【００９８】
また、図１３Ｃは、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。画像符号化方法および画像復号化方法を実現する上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムをフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより画像符号化方法および画像復号化方法を実現する上記画像符号化方法および画像復号化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【００９９】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。
【０１００】
さらにここで、上記実施の形態で示した画像符号化方法および画像復号化方法の応用例とそれを用いたシステムを説明する。
【０１０１】
図１４は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０７〜ex１１０が設置されている。
【０１０２】
このコンテンツ供給システムex１００は、例えば、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０７〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（personal digital assistant）ex１１２、カメラex１１３、携帯電話ex１１４、カメラ付きの携帯電話ex１１５などの各機器が接続される。
【０１０３】
しかし、コンテンツ供給システムex１００は図１４のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex１０７〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。
【０１０４】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、ＰＤＣ（Personal Digital Communications）方式、ＣＤＭＡ（Code Division Multiple Access）方式、Ｗ−ＣＤＭＡ（Wideband-Code Division Multiple Access）方式、若しくはＧＳＭ（Global System for Mobile Communications）方式の携帯電話機、またはＰＨＳ（Personal Handyphone System）等であり、いずれでも構わない。
【０１０５】
また、ストリーミングサーバex１０３は、カメラex１１３から基地局ex１０９、電話網ex１０４を通じて接続されており、カメラex１１３を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラ１１６で撮影した動画データはコンピュータex１１１を介してストリーミングサーバex１０３に送信されてもよい。カメラex１１６はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex１１６で行ってもコンピュータex１１１で行ってもどちらでもよい。また、符号化処理はコンピュータex１１１やカメラex１１６が有するＬＳＩex１１７において処理することになる。なお、画像符号化・復号化用のソフトウェアをコンピュータex１１１等で読み取り可能な記録媒体である何らかの蓄積メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込んでもよい。さらに、カメラ付きの携帯電話ex１１５で動画データを送信してもよい。このときの動画データは携帯電話ex１１５が有するＬＳＩで符号化処理されたデータである。
【０１０６】
このコンテンツ供給システムex１００では、ユーザがカメラex１１３、カメラex１１６等で撮影しているコンテンツ（例えば、音楽ライブを撮影した映像等）を上記実施の形態同様に符号化処理してストリーミングサーバex１０３に送信する一方で、ストリーミングサーバex１０３は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４等がある。このようにすることでコンテンツ供給システムex１００は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【０１０７】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した画像符号化装置あるいは画像復号化装置を用いるようにすればよい。
【０１０８】
その一例として携帯電話について説明する。
【０１０９】
図１５は、上記実施の形態で説明した画像符号化方法および画像復号化方法を用いた携帯電話ex１１５を示す図である。携帯電話ex１１５は、基地局ex１１０との間で電波を送受信するためのアンテナex２０１、ＣＣＤカメラ等の映像、静止画を撮ることが可能なカメラ部ex２０３、カメラ部ex２０３で撮影した映像、アンテナex２０１で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex２０２、操作キーex２０４群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex２０８、音声入力をするためのマイク等の音声入力部ex２０５、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex２０７、携帯電話ex１１５に記録メディアex２０７を装着可能とするためのスロット部ex２０６を有している。記録メディアex２０７はＳＤカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）の一種であるフラッシュメモリ素子を格納したものである。
【０１１０】
さらに、携帯電話ex１１５について図１６を用いて説明する。携帯電話ex１１５は表示部ex２０２及び操作キーex２０４を備えた本体部の各部を統括的に制御するようになされた主制御部ex３１１に対して、電源回路部ex３１０、操作入力制御部ex３０４、画像符号化部ex３１２、カメラインターフェース部ex３０３、ＬＣＤ（Liquid Crystal Display）制御部ex３０２、画像復号化部ex３０９、多重分離部ex３０８、記録再生部ex３０７、変復調回路部ex３０６及び音声処理部ex３０５が同期バスex３１３を介して互いに接続されている。
【０１１１】
電源回路部ex３１０は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex１１５を動作可能な状態に起動する。
【０１１２】
携帯電話ex１１５は、ＣＰＵ、ＲＯＭ及びＲＡＭ等でなる主制御部ex３１１の制御に基づいて、音声通話モード時に音声入力部ex２０５で集音した音声信号を音声処理部ex３０５によってディジタル音声データに変換し、これを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して送信する。また携帯電話機ex１１５は、音声通話モード時にアンテナex２０１で受信した受信信号を増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex３０６でスペクトラム逆拡散処理し、音声処理部ex３０５によってアナログ音声信号に変換した後、これを音声出力部ex２０８を介して出力する。
【０１１３】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex２０４の操作によって入力された電子メールのテキストデータは操作入力制御部ex３０４を介して主制御部ex３１１に送出される。主制御部ex３１１は、テキストデータを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して基地局ex１１０へ送信する。
【０１１４】
データ通信モード時に画像データを送信する場合、カメラ部ex２０３で撮像された画像データをカメラインターフェース部ex３０３を介して画像符号化部ex３１２に供給する。また、画像データを送信しない場合には、カメラ部ex２０３で撮像した画像データをカメラインターフェース部ex３０３及びＬＣＤ制御部ex３０２を介して表示部ex２０２に直接表示することも可能である。
【０１１５】
画像符号化部ex３１２は、本願発明で説明した画像符号化装置を備えた構成であり、カメラ部ex２０３から供給された画像データを上記実施の形態で示した画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex３０８に送出する。また、このとき同時に携帯電話機ex１１５は、カメラ部ex２０３で撮像中に音声入力部ex２０５で集音した音声を音声処理部ex３０５を介してディジタルの音声データとして多重分離部ex３０８に送出する。
【０１１６】
多重分離部ex３０８は、画像符号化部ex３１２から供給された符号化画像データと音声処理部ex３０５から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して送信する。
【０１１７】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex２０１を介して基地局ex１１０から受信した受信信号を変復調回路部ex３０６でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex３０８に送出する。
【０１１８】
また、アンテナex２０１を介して受信された多重化データを復号化するには、多重分離部ex３０８は、多重化データを分離することにより画像データの符号化ビットストリームと音声データの符号化ビットストリームとに分け、同期バスex３１３を介して当該符号化画像データを画像復号化部ex３０９に供給すると共に当該音声データを音声処理部ex３０５に供給する。
【０１１９】
次に、画像復号化部ex３０９は、本願発明で説明した画像復号化装置を備えた構成であり、画像データの符号化ビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをＬＣＤ制御部ex３０２を介して表示部ex２０２に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex３０５は、音声データをアナログ音声信号に変換した後、これを音声出力部ex２０８に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【０１２０】
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図１７に示すようにディジタル放送用システムにも上記実施の形態の少なくとも画像符号化装置または画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex４０９では映像情報の符号化ビットストリームが電波を介して通信または放送衛星ex４１０に伝送される。これを受けた放送衛星ex４１０は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex４０６で受信し、テレビ（受信機）ex４０１またはセットトップボックス（ＳＴＢ）ex４０７などの装置により符号化ビットストリームを復号化してこれを再生する。また、記録媒体であるＣＤやＤＶＤ等の蓄積メディアex４０２に記録した符号化ビットストリームを読み取り、復号化する再生装置ex４０３にも上記実施の形態で示した画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex４０４に表示される。また、ケーブルテレビ用のケーブルex４０５または衛星／地上波放送のアンテナex４０６に接続されたセットトップボックスex４０７内に画像復号化装置を実装し、これをテレビのモニタex４０８で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでも良い。また、アンテナex４１１を有する車ex４１２で衛星ex４１０からまたは基地局ex１０７等から信号を受信し、車ex４１２が有するカーナビゲーションex４１３等の表示装置に動画を再生することも可能である。
【０１２１】
更に、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、ＤＶＤディスクex４２１に画像信号を記録するＤＶＤレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex４２０がある。更にＳＤカードex４２２に記録することもできる。レコーダex４２０が上記実施の形態で示した画像復号化装置を備えていれば、ＤＶＤディスクex４２１やＳＤカードex４２２に記録した画像信号を再生し、モニタex４０８で表示することができる。
【０１２２】
なお、カーナビゲーションex４１３の構成は例えば図１６に示す構成のうち、カメラ部ex２０３とカメラインターフェース部ex３０３、画像符号化部ex３１２を除いた構成が考えられ、同様なことがコンピュータex１１１やテレビ（受信機）ex４０１等でも考えられる。
【０１２３】
また、上記携帯電話ex１１４等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式が考えられる。
【０１２４】
なお、図３、図４、図１０、図１１に示したブロック図の各機能ブロックは典型的には集積回路装置であるＬＳＩとして実現される。このＬＳＩは１チップ化されても良いし、複数チップ化されても良い。（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１２５】
集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１２６】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【０１２７】
また、各機能ブロックのうち、データを格納するユニットだけ１チップ化せずに、本実施形態の記録媒体１１５のように別構成としても良い。
【０１２８】
なお、図３、図４、図１０、図１１に示したブロック図の各機能ブロックおよび図７、図１２に示したフローチャートにおいて、中心的な部分はプロセッサおよびプログラムによっても実現される。
【０１２９】
このように、上記実施の形態で示した画像符号化方法および画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【０１３０】
以下では、本発明の実施の形態２について説明する。
【０１３１】
本発明は、画面内予測を用いる動画像符号化システムにおけるマトリクスの量子化を可能にするものであり、量子化したマトリクスの表現を可能にするものである。特に、符号付き指数ゴロム符号に適した巡回差分値の生成に関する。
【０１３２】
従来、動画像符号化において量子化マトリクスが用いられており、Exp-Golomb符号が適用できることも知られている。また従来から、動画像の圧縮処理において、動画像符号は対応するセマンティクスとともに階層構造を持つシンタクス構造で表現され、ロッシー符号化およびロスレス符号化、または可変長符号化を用いている。さらに、変換ドメイン量子化も知られており活用されてきた。
【０１３３】
ここでは量子化重み付けマトリクスを用いて動画像圧縮を表現、実行し、可能にする方法およびプログラムについて説明する。本発明の特徴は以下に挙げるとおりである。
【０１３４】
１. 画面内符号化を用いる動画像符号化システムにおいて量子化マトリクスを伝送し、表現することを可能にする。
【０１３５】
２. 整数に基づき、かつ除算を必要としない演算によって実現される量子化重み付けマトリクスを定義し、実行する。
【０１３６】
３. 量子化マトリクスを、符号化効率を上げることが可能な巡回差分符号および指数ゴロム符号化する。
【０１３７】
４. 冗長な重み付け値を通信伝送データで伝送せず、デコーダ側で導出できるような量子化マトリクスとして表現する。
【０１３８】
０. 量子化マトリクスの差分符号化とは
量子化マトリクスの各成分を符号化するため、まずマトリクス成分を１次元の配列にマップさせる。このマッピングでは、MPEG-４ Part 10 (MPEG-２およびMPEG-４ Part 2にも同様の定義がある)に記述されているジグザグパターンを用いる。図５(a)および図５(b)にジグザグパターンの例を示す。変換により得られた１次元の配列は、８×８の量子化マトリクスの場合64個の要素を含み、４×４の量子化マトリクスの場合１６個の要素を含む。上記規格の定義によれば、含まれる要素は1以上255以下の正の整数である。
【０１３９】
従来の差分符号化では、１次元の各配列要素から当該各配列要素の直前の要素の値を減算することで差分符号を求める。ただし、先頭の配列要素からは８を減算する（先頭の要素の値はDCの重みであり、通常８の値をとるからである）。続いて各差分符号は、MPEG-４ Part 10. (lSO/IEC JTC1/SC29WG11, 14496-10)に定義されるように、さらにExp-Golomb符号を用いて符号化される。
【０１４０】
従来の量子化マトリクスの差分符号化方法は以下のような問題を持つ。
【０１４１】
１. 量子化マトリクスにおける各値と当該値の直前の値との差分は、-254〜＋254の範囲内の値となる。差分値が取りうる値の範囲が大きくなると、Exp-Golombを用いた可変長符号化の効率が悪くなる。
【０１４２】
２．符号化の対象のマトリクスの値の数を抑えるために"切捨て"を行う場合、一連のデータの終りを通知するために用いられる特別な値は、適切な値である必要がある。さもなければ"切捨て"方法は不適切となる。
【０１４３】
本発明では、差分がとりうる値の範囲が-128〜＋128となるように巡回差分値を生成することで上記問題を解決する。これによって、符号付きExp-Golomb符号により適した符号化を行うことができる。また本発明は、"切捨て"方法を用いる場合の符号配列の終りの通知に関する問題も解決することができる。
【０１４４】
本発明では、"切捨て"方法を用いながらも連続する符号の終りを通知するためのメカニズムを改善するため、終りを通知するために必要となるビット数を9ビット以下にする。これを実現するため、複数の信号を用いて連続する符号を押さえるさせる。これは、64個の要素を持つ符号配列に適用可能であるが、16個の要素を持つ符号配列にも適用できるかもしれない。
【０１４５】
１. 巡回差分符号化の逆処理
本処理では、D[i]を入力としW[i]を出力とする。ここで、D[i]は差分符号を表わし、W[i]はジグザグスキャンでサンプリングされた量子化マトリクスの各値を表わす。
【０１４６】
入力されたW[i]に対し、以下の演算を行う。
【０１４７】
Define: M=16, for 4x4 block; M=64, for 8x8 block
Define M=16, for 4x4 matrix or M=64, for 8x8 matrix
W[0] = (D[0] + 8+256)%256
k=0;
for(i=1; (i<M)&&(W[i-1] + D[i] +256) % 256>0;i++)
[
W[i] = (W[i-1] + D[i] +256)%256
]
for(j =I;j<M;j++)[
W[j] = W[i-1]
]
【０１４８】
２. 差分符号生成処理
本処理では、W[i]を入力としD[i]を出力とする。ここで、W[i]はジグザグスキャンでサンプリングされた量子化マトリクスの各値を表わし、D[i]はW[i]から求められた差分符号を表わす。
【０１４９】
入力されたW[i]に対し、以下の演算を行う。
【０１５０】
Define M=16, for 4x4 matrix or M=64, for 8x8 matrix
D[0] =W[0]-8
k=M;
for(i=1; i<M; i++)
[
D[i] = W[i] -W[i-1]
if( D[i]>128)
D[i] = D[i]-256
else if (D[i]<-128)
D[i] = D[i] +256
else if(D[i]== 0) && (k== M)
k=i
else if(D[i]!=0)
k=M
]
// これはW[k]＝０を満たす終り信号D[k]の挿入を目的とする
if(k!=M)[
if (W[k-1]>128)
D[k] = 256-W[k-1]
else
D[k] = -W[k-1]
]
// これは最適化を目的とする
if(Length_of-ExpGlomb_code (D[k]) > M-k-i ) [
for(i=k; i<M; i++)
D[k]=0
]
【０１５１】
上記演算により、差分符号列の終りを示す値も含め、絶対値が１２８以下となる差分値D[i]が生成される。よって、上記演算により求められる差分符号は、符号付きExp-Golomb符号化により適したものとなる。
【０１５２】
３.差分符号列の終りを通知するためのメカニズム
差分符号列の終りを示すためにWやDといった信号値を用いる代わりに、本発明では２つ以上の符号を用い、出力すべき符号をその中からエンコーダに選択させる。
【０１５３】
符号列の終りを通知するため、エンコーダは以下の設定を行うことができる。ここで、デコーダはエンコーダが行った設定を認識できる必要がある。
【０１５４】
符号化対象となる符号列の終りがｋにある（すなわち、W[k] = W[k-1]）と仮定する（ここで、W[i]は０〜Mの値をとる。またMは、４×４変換ブロックの場合１６であり、８×８変換ブロックの場合６４である）。
【０１５５】
−  W[k]の値を0に設定する。これは差分値D[k]に対応する。D[k]の絶対値は128以下である。
【０１５６】
−  D[k]の値を255を超える値、もしくは-255より小さい値に設定する。これにより、最初の9ビットが０になる符号付きExp-Golomb符号0000000001xxxxxxxxxが生成される。エンコーダは最初の10ビットのみを出力すればよい（ここで、"１"を出力せずに９ビットだけを出力することもできる）。復号処理後、デコーダは符号付きGolomb符号として255を超える値を得る。デコーダが不正なGolomb符号に対応可能な場合、連続する9ビットの0を出力するだけでよい。
【０１５７】
これに対応して、復号処理は以下の手順で行われる。（以下に挙げる擬似符号では、D[k]が＋255〜−255の値をとるか否かをチェックする代わりに、D[k]が適切な範囲内の値となっているかを単にチェックする。D[k]が適切な範囲内の値をとらない場合、D[k]が連続する符号の終りであると判断する。いずれの場合もチェックは必要であるため、条件付き演算を2つ省略することができる。）
【０１５８】
Define: M=16, for 4x4 block; M=64, for 8x8 block
Define M=16, for 4x4 matrix or M=64, for 8x8 matrix
D[0] = (W[0] + 8+256)%256
k=0;
for (i=1; (i<M) &&(Golombcode Legal) && (-129<D[i]<129) && (W[i-1] +256)% 256>0; i++)
W[i] = (W[i-1] + D[i] +256)%256
[
for(j = i;j<M;j++)[
W[j] = W[i-1]
]
【０１５９】
４. まとめ
符号化効率を向上させるため、必要に応じて固定長符号とExp-Golomb符号とを組み合わせて用いる。
【０１６０】
−   巡回差分の生成
−   固定長符号を用いた2ビット (もしくは4ビット)のLSB
−   Exp-Golomb符号を用いた6ビット (もしくは4ビット)のMSB
【０１６１】
これらを用いることで、ビット数全体をさらに削減することができる。
【０１６２】
なお、上記"1. 巡回差分符号化の逆処理"を以下のような量子化重み付けマトリクス導出処理として表現することもできる。
【０１６３】
本処理では、Exp−Golomb符号化された連続する量子化重み付けマトリクスの値を入力とし、２次元配列として表現された量子化重み付けマトリクスの値を出力とする。
【０１６４】
−  指数ゴロム符号化された連続する量子化重み付けマトリクスの値を復号するため、復号処理を呼び出す。
【０１６５】
−   復号化値d(i)を用いて量子化重み付けマトリクスの各成分W(i)を導出する。その際、以下に示す数式を用いて処理を行う。以下の数式で、Mは４×４変換ブロックの場合１６であり、８×８変換ブロックの場合６４である。
【０１６６】
W(0)=d(0)+8
If ((d(i)<128) && (d(i)>-128) && ((W(i-1) + d(i)+256)%256!=0))
・W(i)=(W(i-1) + d(i)+256)%256, for 0<i<M
それ以外の場合
・W(i)=W(k-1), for i=k, …<M, where D(k)>128 or D(k)<-128, or W(k)=0, and 0<i, 
k<M
[W[I] は０の値をとることができない]
【０１６７】
−  量子化重み付けマトリクスW(i, j)は、逆ブロックスキャン処理を用いてW(i)から求められる。4×4変換ブロックでのスキャン順序を図５(a)に、８×８変換ブロックでのスキャン順序を図５(b)に示す。
【０１６８】
さらに、上記"1. 巡回差分符号化の逆処理"は以下のような量子化重み付けマトリクス導出処理として実現することも可能である。ここで "ScalingList"は量子化マトリクスWMを示し、"lastScale"はW[i-1]を示し、 "delta_scaling"はD[i]を示している。
【０１６９】
scaling_list( scalingList, sizeOfScalingList, useDefaultScalingMatrixFlag ) [
lastScale = 8
nextScale = 8
for( j = 0; j < sizeOfScalingList; j++ ) [
if( nextScale != 0 ) [
delta_scale
nextScale = ( lastScale + delta_scale + 256 ) % 256
useDefaultScalingMatrixFlag = ( j = = 0 && nextScale = = 0 )
]
scalingList[ j ] = ( nextScale = = 0 ) ? lastScale : nextScale
lastScale = scalingList[ j ]
]
]
【産業上の利用可能性】
【０１７０】
本発明は、画像を符号化又は復号化するする符号化装置、復号化装置に適しており、動画配信するウェブサーバー、それを受信するネットワーク端末、動画の記録再生可能なデジタルカメラ、カメラ付き携帯電話機、ＤＶＤ録画／再生機、ＰＤＡ、パーソナルコンピュータ等に適している。
【図１】
2011101420.tif 000003
【図２】
2011101420.tif 000004
【図３】
2011101420.tif 000005
【図４】
2011101420.tif 000006
【図５Ａ】
2011101420.tif 000007
【図５Ｂ】
2011101420.tif 000008
【図５Ｃ】
2011101420.tif 000009
【図５Ｄ】
2011101420.tif 000010
【図６Ａ】
2011101420.tif 000011
【図６Ｂ】
2011101420.tif 000012
【図６Ｃ】
2011101420.tif 000013
【図７】
2011101420.tif 000014
【図８Ａ】
2011101420.tif 000015
【図８Ｂ】
2011101420.tif 000016
【図８Ｃ】
2011101420.tif 000017
【図９Ａ】
2011101420.tif 000018
【図９Ｂ】
2011101420.tif 000019
【図９Ｃ】
2011101420.tif 000020
【図１０】
2011101420.tif 000021
【図１１】
2011101420.tif 000022
【図１２】
2011101420.tif 000023
【図１３Ａ】
2011101420.tif 000024
【図１３Ｂ】
2011101420.tif 000025
【図１３Ｃ】
2011101420.tif 000026
【図１４】
2011101420.tif 000027
【図１５】
2011101420.tif 000028
【図１６】
2011101420.tif 000029
【図１７】
2011101420.tif 000030