JP4197262B2 - Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream - Google Patents

Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream Download PDF

Info

Publication number
JP4197262B2
JP4197262B2 JP2003068850A JP2003068850A JP4197262B2 JP 4197262 B2 JP4197262 B2 JP 4197262B2 JP 2003068850 A JP2003068850 A JP 2003068850A JP 2003068850 A JP2003068850 A JP 2003068850A JP 4197262 B2 JP4197262 B2 JP 4197262B2
Authority
JP
Japan
Prior art keywords
data
encoding
encoded
variable length
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003068850A
Other languages
Japanese (ja)
Other versions
JP2004007473A5 (en
JP2004007473A (en
Inventor
眞也 角野
義徳 松井
敏志 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003068850A priority Critical patent/JP4197262B2/en
Publication of JP2004007473A publication Critical patent/JP2004007473A/en
Publication of JP2004007473A5 publication Critical patent/JP2004007473A5/ja
Application granted granted Critical
Publication of JP4197262B2 publication Critical patent/JP4197262B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、可変長符号化方法、それに対応した可変長復号化方法、それら処理をコンピュータに行わせるプログラムを格納する記憶媒体、可変長符号化装置及びそれに対応した可変長復号化装置に関する。本発明は、特に、符号化済みのデータによって符号化方法を最適化する動的な可変長符号化方法、それに対応した可変長復号化方法、それら処理をコンピュータに行わせるプログラムを格納する記憶媒体、符号化済みのデータによって符号化方法を最適化する動的な可変長符号化装置、及びそれに対応した可変長復号化装置に関する。
【0002】
【従来の技術】
近年、画像符号化方式の国際標準化活動により、画像の圧縮、復元の技術として、静止画のJPEGや動画のMPEGなどが規格化されている。
MPEG(Moving Picture Experts Group)符号化方式は、主に、動き補償フレーム間予測ユニットと、DCT(離散コサイン変換)ユニットと、可変長符号化ユニットとから構成されている。動き補償フレーム間予測ユニットは、入力画像と前画像データとから動きベクトルを検出し、動きベクトルと前画像データとから予測誤差データを作成する。DCTユニットは予測誤差データをDCT変換する。量子化ユニットは、DCT係数を量子化し、可変長符号化ユニットは、量子化されたDCT係数や動きベクトルに符号語を割り当てていく。
【0003】
MPEG符号化方式における画像符号化データは、シーケンス、GOP(Group Of Picture)、ピクチャ、スライス、マクロブロック、ブロックの6層の階層構造を有している。ピクチャは、一枚の画像に対応する基本的符号化単位であり、複数のスライスから構成されている。スライスは、同期復帰単位であり、一つ又は複数のマクロブロックからなる帯状の領域である。
【0004】
可変長符号化とは、エントロピー符号化の一種であり、DCT変換後の係数(DCT係数)値や動きベクトル値等は生起確率に偏りがあることから、これらの値のうち生起確率が高い値には短い符号語を割り当て、生起確率が低い値には長い符号語を割り当てることにより、平均情報量を減らすものである。
可変長符号化の主な種類としては、ハフマン符号化や算術符号化がある。
【0005】
ハフマン符号化は、各シンボルを葉としたハフマン符号木により符号語を決定する方法であり、各符号に対応する符号語(ビット列)の対応表(符号表)を用いる。
ハフマン符号化では、圧縮率向上のために、変化する動画像の統計的性質に応じて符号表を作成する方法や、複数の符号表を用意しておき画像の統計的性質に応じて符号表を切り換える方法が用いられている。情報理論では、生起確率pの符号にlog2(1/p)ビットを割り当てる符号表が最も平均情報量が少ないことが証明されている。そこで、複数の符号表を切り換える方法では、符号化済みのデータから生起確率を計算し、生起確率pの符号にlog2(1/p)ビットに近いビット数が割り当てられるような符号表を選択する。
【0006】
算術符号化は、シンボルの系列を生起確率に応じて区間[0,1)に射影し、数直線上の確率空間を区間内の適当な数でバイナリ表現する手法である。算術符号化は、常に統計的性質を監視しながら符号化を行い、具体的には、画像内容に応じて確率表を書き換えつつ、確率表を参照しながら符号語を決定する。より具体的には、算術符号化では、生起確率pの符号にlog2(1/p)ビットが割り当てられるように、算術演算で用いる確率を符号化済みのデータから生起確率を逐次更新する。
【0007】
算術符号化では、ハフマン符号化とは異なり、算術演算(加減乗除)のみで符号語に相当するビット列を取得できるために、ハフマン符号化に比べて符号表を記憶するために必要なメモリ量を削減できる。また、符号化の途中で統計的性質が変わっても確率表を書き換えることで対応できる。しかしながら、算術演算、特に乗除算は高い演算能力が必要であり、低演算能力の機器では実現が困難であるという欠点も有する。
【0008】
以上に述べた動的な符号化方法では、符号化済みのデータによって動的に符号化方法を最適化していくため、固定的な符号化方法に比べて圧縮効率を向上させることができる。
【0009】
【発明が解決しようとする課題】
しかし、符号化済みデータによって動的に符号化方法を最適化する場合には、下記の問題点がある。
学習による動的符号化は、例えば、ピクチャのヘッダ以降すなわち各スライスやマクロブロック、ブロック毎に行われる。その場合には、算術符号化では各ピクチャにおける初期値に固定の確率表が用いられ、ハフマン符号化では各ピクチャにおける初期の符号表として固定の可変長符号表が用いられている。このように固定の初期値が用いられるため、初期化された後、学習によって最適な確率表や符号表が得られるまでは、符号化の圧縮効率が良いとは言えない。特に、全体のデータ数が小さい場合は、学習するために必要なデータ数の割合が大きくなり、圧縮率がそれほど高くない。
【0010】
一方、符号化済みのデータのうち学習に使用される部分が伝送路において損なわれると、復号化器において正しい学習が行えなくて復号化不能になり、画像データの場合は伝送路誤りによる画質劣化が発生する。伝送路誤りに強くするためには、定期的に学習結果をリセットすることになるが、リセット間隔を長くすると誤りに弱くなるため、リセット間隔はある程度短くならざるを得ない。
【0011】
以上のように、伝送路誤りの問題を解決することを前提とすると、現状の動的な符号化方法では、圧縮効率が十分に向上しない。
本発明の課題は、画像圧縮等に使用する可変長符号化方法の圧縮効率を向上することにある。
本発明の他の課題は、圧縮効率を向上させた可変長符号化方法により符号化されたデータを正しく復号化することにある。
【0012】
【課題を解決するための手段】
請求項1に記載の可変長符号化方法は、パラメータ表を参照しながら各所定単位データを符号化する可変長符号化方法であって、以下のステップを備えている。
◎パラメータ表を初期値に設定する初期化ステップ
◎初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号化ステップ
◎所定単位データを構成する各サブデータの符号化に用いられる符号化パラメータをパラメータ表から取得するパラメータ取得ステップ
◎サブデータを、取得された符号化パラメータを参照して可変長符号化するサブデータ符号化ステップ
◎符号化された情報を符号化された所定単位データより先に取得できる位置に配置して出力する情報符号化データ配置ステップ
また、請求項1に記載の可変長符号化方法では、符号化したサブデータの値に基づいてパラメータ表を更新し、符号化パラメータをパラメータ表から取得する。
なお、符号化パラメータとは、データの発生頻度を表すものであり、パラメータ表から取得されて、各サブデータの符号化の際に参照される。算術符号化の場合にはパラメータ表は確率表に対応し、さらに符号化パラメータは確率に対応することになるが、それらに限定されない。
【0013】
この符号化方法では、各サブデータの符号化においてパラメータ表から取得した符号化パラメータを利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化されたパラメータ表に関する情報は符号化され、符号化された所定単位データより先に取得できる位置に配置されているため、復号化の際にはそのパラメータ表を初期値として符号化された所定単位データを正しく復号化することができる。
【0014】
この符号化方法では、符号化したサブデータの値に基づいてパラメータ表を更新しているため、所定単位データを符号化する際の圧縮効率が向上する。
【0017】
請求項に記載の可変長符号化方法では、請求項において、サブデータ符号化ステップでは、サブデータを、符号化パラメータを参照して算術符号化する。
この符号化方法では、サブデータの符号化方法として算術符号化を用いているため、圧縮効率がよい。なお、パラメータ表は確率表に対応しており、符号化パラメータは確率に対応している。
【0018】
請求項に記載の可変長符号化方法では、請求項1又は2において、パラメータ表に関する情報はパラメータ表そのものである。
請求項に記載の可変長符号化方法では、請求項において、パラメータ表情報符号化ステップでは、パラメータ表の一部のみを符号化する。
この符号化方法では、初期化されたパラメータ表の全てではなく、一部のみが符号化されるため、符号化量を削減できる。
【0019】
請求項に記載の可変長符号化方法では、請求項において、パラメータ表の一部は、生起確率が高い符号化済みデータに対応するパラメータ部分である。
この符号化方法では、初期化されたパラメータ表のうち生起確率が高い符号化済みデータに対応する部分のみを符号化するため、符号化量を削減しつつも、復号化の際に十分に正しく復号化できる。
【0020】
請求項に記載の可変長符号化方法では、請求項1又は2において、パラメータ表に関する情報はパラメータ表を示す情報である。
この符号化方法では、パラメータ表を示す情報を符号化するのであってパラメータ表そのものを符号化するのではないため、符号化量を削減できる。
請求項に記載の可変長符号化方法では、請求項において、情報符号化データ配置ステップでは、符号化されたパラメータ表を示す情報は所定単位データに対する共通データの一部として配置される。
【0021】
この符号化方法では、パラメータ表に関する情報は所定単位データに対する共通データの一部として配置されており、その一部としての機能も有しているため、符号化量が削減できる。
請求項に記載の可変長符号化方法では、請求項1〜7のいずれかにおいて、情報符号化ステップでは、パラメータ表に関する情報を固定的な符号化方法で符号化する。
【0022】
この符号化方法では、固定的な符号化方法を用いているため、初期化されたパラメータ表に関する情報は静的に符号化される。そのため、初期化されたパラメータ表に関する情報は確実に復号化される。
請求項に記載の可変長符号化方法は、請求項1〜8のいずれかにおいて、初期化されたパラメータ表に関する情報を符号化するか否かを判断する符号化判断ステップと、判断結果を識別するフラグを符号化された所定単位データより先に取得できる位置に配置して出力するフラグ配置ステップとをさらに備えている。
【0023】
この符号化方法では、初期化されたパラメータ表に関する情報が符号化されたか否かは、符号化された所定単位データより先に取得できる位置に配置されたフラグによって判断できる。なお、初期値として使われたパラメータ表に関する情報が符号化されないのは、例えば、次にパラメータ表が初期化されるまでのデータ数が十分に多い(つまり十分に学習するのに必要なデータ数が全体のデータ数に占める割合が小さく、そのため学習効率がよい)場合や、又は、初期値として使われたパラメータ表が学習によって得られる最適なパラメータ表とほとんど一致する場合などである。
【0024】
請求項10に記載の可変長符号化方法では、請求項1〜9のいずれかにおいて、所定単位データは画像データにおけるピクチャである。
この符号化方法では、全画像データ内でパラメータ表を符号化する頻度が適切であり、そのため、伝送路誤りで学習すべき符号化データの一部が欠落し、符号化時と同じパラメータ表が復号化時に再現できなくなった場合でも、高頻度で符号化されたパラメータ表を復号化することで数秒以上画像が再生不可能となる状態が生じることがなく、またパラメータ表のデータ量の冗長が大きくなることもない。
【0025】
請求項11に記載の可変長符号化方法では、請求項1〜9のいずれかにおいて、所定単位データは画像データにおけるスライスである。
この符号化方法では、全画像データ内でパラメータ表を符号化する頻度が適切であり、そのため、伝送路誤りで学習すべき符号化データの一部が欠落し、符号化時と同じパラメータ表が復号化時に再現できなくなった場合でも、高頻度で符号化されたパラメータ表を復号化することで数秒以上画像が再生不可能となる状態が生じることがなく、またパラメータ表のデータ量の冗長が大きくなることもない。
【0028】
請求項12に記載の記憶媒体は、コンピュータに可変長符号化処理を行わせるためのプログラムを格納したものである。可変長符号化処理は、パラメータ表を参照しながら各所定単位データを符号化する可変長符号化方法であって、以下のステップを備えている。
【0029】
◎パラメータ表を初期値に設定する初期化ステップ
◎初期化されたパラメータ表に関する情報を符号化するパラメータ表情報符号化ステップ
◎所定単位データを構成する各サブデータの符号化に用いられる符号化パラメータをパラメータ表から取得するパラメータ取得ステップ
◎サブデータを、取得された符号化パラメータを参照して可変長符号化するサブデータ符号化ステップ
◎符号化された情報を符号化された所定単位データより先に取得できる位置に配置して出力する情報符号化データ配置ステップ
この記憶媒体では、格納されたプログラムをコンピュータにロードすることにより、コンピュータに可変長符号化処理を行わせる。その処理において、各サブデータの符号化においてパラメータ表から取得した符号化パラメータを利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化されたパラメータ表に関する情報は符号化され、符号化された所定単位データ符号化された所定単位データより先に取得できる位置に配置されているため、復号化の際にはそのパラメータ表を初期値として符号化された所定単位データを正しく復号化することができる。
【0031】
請求項13に記載の可変長符号化方法は、可変長符号表を切り換えながら各所定単位データを符号化する可変長符号化方法であって、以下のステップを備えている。
◎可変長符号表を初期値に設定する初期化ステップ
◎初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化ステップ
◎所定単位データを構成する各サブデータの符号化に用いられる可変長符号表を選択する可変長符号表選択ステップ
◎サブデータを、選択された可変長符号表を参照して符号化するサブデータ符号化ステップ
◎符号化された可変長符号表を示す情報を符号化された所定単位データより先に取得できる位置に配置して出力する情報符号化データ配置ステップ
この符号化方法では、各サブデータの符号化において選択された可変長符号表を利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化された可変長符号表を示す情報は符号化され、符号化された所定単位データより先に取得できる位置に配置されているため、復号化の際にはその情報が示す可変長符号表を初期値として符号化された所定単位データを正しく復号化することができる。
【0032】
請求項14に記載の可変長符号化方法では、請求項13において、符号化したサブデータの値に基づいて可変長符号表を選択する。
この符号化方法では、符号化したサブデータの値に基づいて可変長符号表を選択しているため、所定単位データを符号化する際の圧縮効率が向上する。
【0034】
請求項15に記載の可変長符号化方法では、請求項13又は14において、可変長符号表情報符号化ステップでは、固定的な符号化方法で符号化する。
【0035】
この符号化方法では、固定的な符号化方法を用いているため、初期化された可変長符号表を示す情報は確実に復号化される。
請求項16に記載の可変長符号化方法は、請求項13〜15のいずれかにおいて、初期化された可変長符号表を示す情報を符号化するか否かを判断する符号化判断ステップと、判断結果を識別するフラグを符号化された所定単位データより先に取得できる位置に配置して出力するフラグ配置ステップとをさらに備えている。
【0036】
この符号化方法では、初期化された可変長符号表を示す情報が符号化されたか否かは、符号化所定単位データより先に取得できる位置に配置されたフラグによって判断できる。なお、初期値として使われた可変長符号表を示す情報が符号化されないのは、例えば、次に可変長符号表が初期化されるまでのデータ数が十分に多い(つまり十分に学習するのに必要なデータ数が全体のデータ数に占める割合が小さく、そのため学習効率がよい)場合や、又は、初期値として使われた可変長符号表が学習によって得られる最適な可変長符号表と一致する場合などである。
【0037】
請求項17に記載の可変長符号化方法では、請求項13〜16のいずれかにおいて、所定単位データは画像データにおけるピクチャである。
この符号化方法では、全画像データ内で可変長符号表を示す情報を符号化する頻度が適切であり、そのため、伝送路誤りで情報符号化データが破壊された場合でも数秒以上画像が再生不可能となる状態が生じることがなく、また情報符号化データの量の冗長が大きくなることもない。
【0038】
請求項18に記載の可変長符号化方法では、請求項13〜16のいずれかにおいて、所定単位データは画像データにおけるスライスである。
この符号化方法では、全画像データ内で可変長符号表を示す情報を符号化する頻度が適切であり、そのため、伝送路誤りで情報符号化データが破壊された場合でも数秒以上画像が再生不可能となる状態が生じることがなく、また情報符号化データの量の冗長が大きくなることもない。
【0039】
請求項19に記載の可変長符号化方法では、請求項13〜18のいずれかにおいて、サブデータの複数のシンタックス要素は、可変長符号表を切り換える可変長符号化方法によって符号化される部分と、固定的な符号化方法によって符号化される部分とを含んでいる。
この符号化方法では、例えば画像データにおいて、可変長符号表を切り換える可変長符号化方法によってサブデータを符号化することで高い圧縮効率を得ることができるとともに、固定的な符号化方法によって共通データであるヘッダを符号化することで処理を簡単にできる。なお、ヘッダはもともと圧縮効果が少ないため、固定的な符号化方法を用いても特に支障はない。
【0041】
請求項20に記載の記憶媒体は、コンピュータに可変長符号化処理を行わせるためのプログラムを格納したものである。可変長符号化処理は、可変長符号表を切り換えながら各所定単位データを符号化する可変長符号化方法であって、以下のステップを備えている。
◎可変長符号表を初期値に設定する初期化ステップ
◎初期化された可変長符号表を示す情報を符号化する可変長符号表情報符号化ステップ
◎所定単位データを構成する各サブデータの符号化に用いられる可変長符号表を選択する可変長符号表選択ステップ
◎サブデータを、選択された可変長符号表を参照して符号化するサブデータ符号化ステップ
◎符号化された可変長符号表を示す情報を符号化された所定単位データより先に取得できる位置に配置して出力する情報符号化データ配置ステップ
この記憶媒体では、格納されたプログラムがコンピュータに行わせる符号化処理において、各サブデータの符号化において選択された可変長符号表を利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化された可変長符号表を示す情報は符号化され、符号化された所定単位データより先に取得できる位置に配置されるため、復号化の際にはその情報が示す可変長符号表を初期値として符号化された所定単位データを正しく復号化することができる。
【0043】
請求項21に記載の可変長符号化装置は、パラメータ表を参照しながら各所定単位データを符号化する可変長符号化装置であって、初期化手段と、パラメータ表情報取得手段と、パラメータ表情報符号化手段と、パラメータ取得手段と、サブデータ符号化手段と、情報符号化データ配置手段とを備えている。初期化手段は、パラメータ表を初期値に設定する。パラメータ表情報符号化手段は、初期化されたパラメータ表に関する情報を符号化する。パラメータ取得手段は、所定単位データを構成する各サブデータの符号化に用いられる符号化パラメータをパラメータ表から取得する。サブデータ符号化手段は、サブデータを、取得された符号化パラメータを参照して可変長符号化する。情報符号化データ配置手段は、符号化されたパラメータ表に関する情報を符号化された所定単位データより先に取得できる位置に配置して出力する。
【0044】
この符号化装置では、サブデータ符号化手段がサブデータを符号化する際にパラメータ表から取得した符号化パラメータを利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化されたパラメータ表に関する情報は、パラメータ表情報符号化手段によって符号化され、さらに情報符号化データ配置手段によって符号化された所定単位データより先に取得できる位置に配置されるため、復号化の際にはその情報に基づきパラメータ表を取得し、そのパラメータ表を初期値として符号化された所定単位データを正しく復号化することができる。
【0046】
請求項22に記載の可変長符号化装置は、可変長符号表を切り換えながら各所定単位データを符号化する可変長符号化装置であって、初期化手段と、可変長符号表情報符号化手段と、可変長符号表選択手段と、サブデータ符号化手段と、情報符号化データ配置手段とを備えている。初期化手段は、可変長符号表を初期値に設定する。可変長符号表情報符号化手段は、初期化された可変長符号表を示す情報を符号化する。可変長符号表選択手段は、所定単位データを構成する各サブデータの符号化に用いられる可変長符号表を選択する。サブデータ符号化手段は、サブデータを、選択された可変長符号表を参照して符号化する。情報符号化データ配置手段は、符号化された可変長符号表を示す情報を符号化された所定単位データより先に取得できる位置に配置して出力する。
【0047】
この符号化装置では、サブデータ符号化手段がサブデータを符号化する際に選択した可変長符号表を利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化された可変長符号表を示す情報は、可変長符号表情報符号化手段によって符号化され、さらに情報符号化データ配置手段によって符号化された所定単位データより先に取得できる位置に配置されるため、復号化の際にはその情報が示す可変長符号表を取得し、その可変長符号表を初期値として符号化された所定単位データを正しく復号化することができる。
【0049】
請求項23に記載のビットストリームは、パラメータ表を参照しながら各所定単位データを符号化する可変長符号化方法によって生成されたビットストリームである。この可変長符号化方法は請求項1〜11又は13〜19のいずれかに記載の可変長符号化方法である。
【0050】
このビットストリームでは、所定単位データを符号化する際の圧縮効率が向上するなど、各可変長符号化方法による効果が得られる。
【0051】
【発明の実施の形態】
1.第1実施形態
(1)可変長符号化装置の構成
▲1▼本発明に係る可変長符号化装置
図1は、本発明の一実施形態としての可変長符号化装置1の概略構成ブロック図である。可変長符号化装置1は、入力されたデータを可変長符号化し、ビットストリームを生成するための装置である。特に、この可変長符号化装置1は、主たる符号化方法として算術符号化を採用していることを特徴としている。なお、算術符号化とは、実際に発生したシンボルの生起確率に応じて動的に確率表を更新することにより符号化効率を高める符号化方法をいう。
【0052】
可変長符号化装置1に入力されるデータは、様々な種類があり得るが、この実施形態では画像データが入力されるものとして説明する。すなわち、可変長符号化装置1は、情報変換された画像信号をエントロピー符号化する機能を有している。特にMPEG方式においては、この可変長符号化装置1に入力される画像データは、量子化されたDCT係数や動きベクトルなどである。
【0053】
可変長符号化装置1は、主に、データ符号化部2と、ヘッダ符号化器3とを備えている。
データ符号化部2は、所定単位データごとにヘッダ以外のデータを算術符号化するための装置であり、算術符号化器7と、確率表更新器8と、初期化部9とを備えている。なお、ここでいう所定単位データとは、画像データの場合はピクチャ又はスライスを意味する。また、各所定単位データは複数のサブデータから構成されており、所定単位データがピクチャの場合にサブデータはスライス、マクロブロック又はブロックであり、所定単位データがスライスの場合にサブデータはマクロブロック又はブロックである。
【0054】
算術符号化器7は、データが入力されると、発生データを確率表更新器8に出力するとともに、確率表更新器8から出力される確率表すなわち符号語に基づいてデータを符号化するための装置である。
確率表更新器8は、確率表を更新する機能を有しており、算術符号化器7から出力されてきた発生データの生起確率に応じて確率表を更新しながら、その確率表すなわち符号語を算術符号化器7に出力するための装置である。
【0055】
初期化部9は、確率表更新器8に対して確率表の初期化指令を出力するための装置である。
ヘッダ符号化器3は、ヘッダデータを固定的な符号化方法で符号化するための装置である。固定的な符号化方法とは、符号化の途中で各符号に対応する符号語が変化しない方法をいい、固定長符号化方法や固定の可変長符号表を用いる可変長符号化方法を含む。固定的な符号化方法を用いているため、ヘッダデータは容易に符号化できる。
【0056】
一方、各符号に対応する符号語が変化する符号化方法を適応的な符号化方法と呼ぶ。更に適応的な符号化方法には、単純に符号と符号に対応する符号語の関係を表すテーブルを切り換える静的な符号化方法と、符号語自体を逐次更新する動的符号化がある。言い換えると、静的符号化方法とは、動的な符号化方法(動的に符号とそれに対応する符号語の対応関係を変更する算術符号化等の符号化方法)ではないことを意味する。従って、静的符号化方法よりも動的符号化方法の方が圧縮率を向上することができる。
【0057】
可変長符号化装置1は、さらに、確率表符号化器6を備えている。確率表符号化器6は、確率表更新器8から出力されてきた確率表を固定的な符号化方法で符号化するための装置である。固定的な符号化方法を用いているため、確率表は容易に符号化される。
多重化器4は、ヘッダ符号化器3から出力されてくるヘッダ符号化データと、算術符号化器7から出力されてくるヘッダ以外の符号化データと、確率表符号化器6から出力されてくる確率表符号化データとを多重化して符号列(ビットストリーム)を生成し、さらにそれを伝送路に出力するための装置である。
【0058】
▲2▼一般的な画像符号化装置
ここで、図2のブロック図を用いて、一般的な画像符号化装置100の構成を示す。画像符号化装置100は、主に、動き推定/補償部(ME/MC)102と、減算器103と、変換符号化部104と、変換復号化部105と、加算器106と、エントロピー符号化部107とから構成されている。なお、前述のデータ符号化部2はエントロピー符号化部107に対応している。
【0059】
動き推定/補償部102は、入力画像データPicInを受け、符号化対象ピクチャにおける符号化対象ブロックに対する予測ブロックのデータを生成する。動き推定/補償部102は、動き検出器(ME)111と、動き補償器(MC)112と、ピクチャメモリ113とから構成されている。
動き検出器111は、入力画像PicInが入力され、ピクチャメモリ113内の再構成画像に対する入力画像PicInの動きである動きベクトルMVを算出する。動き検出器111は、動きベクトルMVを、動き補償器112とピクチャメモリ113とエントロピー符号化部107に出力する。動き補償器112は、動き検出器111からの動きベクトルMVに基づいて、ピクチャメモリ113に格納されている再構成画像から動きに対応する画像データを参照画像として作成し(動き補償)、それを減算器103と加算器106とに出力する。ピクチャメモリ113は、再構成画像を貯え、動き検出器111や動き補償器112によって再構成画像を読み出される。なお、画面内符号化の場合は動き補償された参照画像の画素値を0とし、減算器103および加算器106では減算および加算を行わないで入力されたデータをそのまま出力する。
【0060】
減算器103は、入力画像PicInの対象データと、動き補償器112からの参照画像との差分値を求め、その差分値である差分データを変換符号化部104に出力する。
変換符号化部104は、減算器103からの差分データにデータ圧縮処理を施して、圧縮データを出力する。変換符号化部104は直交変換器114と量子化器115とから構成されている。直交変換器114は、減算器103からの差分データに対して、直交変換処理の一種である空間領域のデータを周波数領域のデータに変換する離散コサイン変換処理(DCT処理)を施し、そのデータを量子化器115に出力する。量子化器115は、直交変換器114からのDCTデータを所定の量子化ステップでもって量子化して、量子化係数を変換復号化部105とエントロピー符号化部107に出力する。
【0061】
変換復号化部105は、変換符号化部104からの出力にデータ伸長処理を施して伸長データを出力する。変換復号化部105は逆量子化器116と逆直交変換器117とから構成されている。逆量子化器116は、変換符号化部104からの出力を上記量子化ステップでもって逆量子化し、それを逆直交変換器117に出力する。逆直交変換器117は、逆量子化器116からの出力に対して、周波数領域のデータを空間領域のデータに変換する逆離散コサイン変換処理(IDCT処理)を施して、伸長データを予測残差信号として加算器106に出力する。
【0062】
加算器106は、当該マクロブロックが画面間動き補償予測符号化されている場合は、変換復号化部105からの予測残差信号と動き補償器112からの参照画像とを加算した画像データを再構成画像としてピクチャメモリ113に出力する。
エントロピー符号化部107は、DCT符号化部104からの量子化されたDCT後のデータに対してエントロピー符号化を施す。エントロピー符号化とは、0と1のビット列に対してそのビット列の統計的な性質を利用してより少ないビット列に変換する符号化のことである。
【0063】
(2)可変長符号化装置の動作
▲1▼データ符号化部及び確率表符号化器の動作
図3は、データ符号化部2及び確率表符号化器6の概略動作を示すフローチャートである。
ステップS1では、初期化部9が確率表更新器8に初期化指令を出力し、確率表更新器8は所定の確率表を所定単位データ毎に初期値に設定する。この初期化動作において、初期化部9及び確率表更新器8は、ヘッダ内の初期化情報に基づいて確率表の初期化を行う。確率表の初期化情報としては、所定単位データ全体の共通データが用いられることがある。初期化に有効な共通データの例としては、例えば、所定単位データがピクチャの場合は、ピクチャ符号化タイプ(画面内符号化ピクチャと、画面間予測符号化ピクチャ、双画面間予測符号化ピクチャの区別)、ピクチャの量子化パラメータの初期値などがある。なお、初期化にはあまり関係がない共通データとしては、ピクチャの符号化順序、ピクチャの表示順序、動きベクトルや画像サイズ等のパラメータがある。所定単位データがスライスの場合は、スライス符号化タイプ(画面内符号化スライスと、画面間予測符号化スライス、双画面間予測符号化スライスの区別)、スライスの量子化パラメータの初期値などがある。
【0064】
ステップS2では、算術符号化器7と確率表更新器8とが協働して、サブデータを算術符号化する。より具体的には、算術符号化器7は確率表更新器8から出力した確率表に基づいて、サブデータの符号化に用いられる確率を確率表から取得し、さらに、その確率を参照してデータを符号化する。具体的には所定単位データはピクチャ又はスライスであり、サブデータであるマクロブロック又はブロックが符号化される。
【0065】
ステップS3では、発生データにより、確率表更新器8で発生データの確率表を更新する。この実施形態では、この更新された確率表が、次のサブデータを算術符号化する際に用いられることになる。
ステップS4では、全てのサブデータの符号化が終了したか否かを判断する。全て終了していないと判断するとステップS2に戻り、前述の動作を繰り返す。
【0066】
ステップS5では、確率表を符号化するか否かを判定し、符号化する場合はステップS6に進み、符号化しない場合はステップS6をスキップする。算術符号化器7は、その判定結果を識別するための初期値フラグを作成し、それを符号化データとともに多重化器4に出力する。なお、初期値として使われた確率表が符号化されないのは、例えば、次に確率表が初期化されるまでのデータ数が十分に多い(つまり十分に学習するのに必要なデータ数が全体のデータ数に占める割合が小さく、そのため学習効率がよい)場合や、又は、初期値として使われた確率表が学習によって得られる最適な確率表とほとんど一致する場合、または完全に一致する場合などである。
【0067】
ステップS6では、確率表更新器8の確率表を確率表符号化器6で符号化する。
以上に述べた符号化方法では、最初のサブデータの符号化を除いて、符号化したサブデータの値に基づいて確率表が更新され、確率を確率表から取得しているため、圧縮効率が向上する。特に、サブデータの符号化に用いられる確率表は、直前のサブデータの算術符号化により更新された確率表であるため、リアルタイムで符号化ができ、符号化が高速化する。しかも画像の空間的又は時間的相関により十分な圧縮効率が得られる。
【0068】
なお、所定単位データの初期値を自らの算術符号化により得られた確率表を用いて算術符号化してもよい。その場合は、当該所定単位データと直前の所定単位データの内容が大きく異なる場合でも、圧縮効率が高い。
図4に示すフローチャートは、図3に示すフローチャートの変形例であり、ステップS6において確率表更新器8の符号表を確率表符号化器6で符号化する際に、確率表の一部のみを符号化する場合を示している。この場合は、符号量を削減することができ、さらに取得された確率表のうち生起確率が高い符号化済みデータに対応する部分のみを符号化する方法を採用することで、復号化の際に十分に正しく復号化できる。生起確率の低いデータに対応する部分は、所定の初期値で初期化する。ステップS7では、確率表で符号化されていなかった部分を所定の初期値で初期化する。すなわち、確率表の重要な部分だけを符号化した場合は、符号化していない部分を所定の初期値で初期化することで、確率表の符号化が指示された場合に確率表の全ての確率をそれまでの確率表の値に依らず特定の値にすることができ、符号化装置と復号化装置で確率表を一致させることができる。
【0069】
▲2▼ヘッダ符号化器の動作
ヘッダ符号化器3は、入力されたヘッダデータを符号化し、ヘッダ符号化データを多重化器4に出力する。
▲3▼多重化器の動作
多重化器4は、算術符号化器7、ヘッダ符号化器3、確率表符号化器6から出力されてくるデータから所定のビットストリームを生成し、それを伝送路に出力する。
【0070】
図5は、画像データのストリーム構造の一例を示す図である。図5に示されるように、ストリームは、ヘッダ等の共通情報領域とGOP(Group Of Picture)領域から構成されている。GOP領域は、ヘッダ等の共通情報領域と複数のピクチャ(picture )領域から構成されている。ピクチャ領域は、ヘッダ等の共通情報領域と複数のスライス(slice)データ領域から構成される。スライスデータ領域は、ヘッダ等の共通情報領域と複数のマクロブロック(macro block)データ領域から構成される。
【0071】
また、ストリームが連続したビットストリームでなく、細切れのデータの単位であるパケット等で伝送する場合はヘッダ部とヘッダ以外のデータ部を分離して別に伝送してもよい。その場合は、図5のようにヘッダ部とデータ部が1つのビットストリームとなることはない。しかしながら、パケットの場合は、ヘッダ部とデータ部の伝送する順序が連続しなくても、対応するデータ部に対応するヘッダ部が別のパケットで伝送されるだけであり、1つのビットストリームとなっていなくても、概念は図5で説明したビットストリームの場合と同じである。
【0072】
図6は、画像データのストリーム構造の他の例を示す図である。このストリーム構造は図5に示したストリーム構造とは基本的な構造は同じである。そこで、以下、異なる点のみを説明する。このストリーム構造は、GOPとピクチャはそれぞれヘッダを有しておらず、スライスのみがヘッダを有している。GOPとピクチャは、共通情報としての各種パラメータ(parameter)を先頭に有している。パラメータはヘッダに相当するものであるが、パラメータが更新されない限りはそのパラメータが後続のピクチャでも有効な点が異なっている。例えば、ピクチャ・ヘッダに相当するパラメータは、次にピクチャ・ヘッダに相当するパラメータが伝送されるまでのピクチャの全てのピクチャ・ヘッダという意味を有している。
【0073】
図7は、前述の所定単位データが画像データのピクチャである場合に多重化器4から出力されるビットストリームのデータ構造を示す。ピクチャは、一般に、ヘッダと、符号化サブデータとしての複数のスライスとから構成されている。ヘッダは、1ピクチャ内の符号化データの開始を表すものであり、各スライスに共通のデータ(例えば、ピクチャ符号化タイプ(画面内符号化ピクチャと、画面間予測符号化ピクチャの区別)、ピクチャの符号化順序もしくは表示順序を示す番号等のパラメータ)から主に構成されている。
【0074】
ヘッダ内には初期値フラグが配置されている。初期値フラグは、初期値として用いられた確率表が符号化されたか否かを識別するためのフラグであり、確率表が符号化された場合は”1”となり、符号化されていない場合は”0”となる。
さらに、ヘッダ内には、図7(a)に示すように、確率表初期値としての確率表符号化データが配置されている。確率表が符号化されなかった場合は、確率表符号化データは確率表符号化器6から多重化器4には出力されておらず、その結果図7(b)に示すようにビットストリームには確率表符号化データは配置されていない。
【0075】
以上に述べたように、ヘッダ内には、本来のヘッダを意味しヘッダ符号化器3によって符号化される共通データ部分と、算術符号化器7によって生成された初期値フラグと、確率表符号化器6により符号化された確率表符号化データとが存在する。さらに詳細には、共通データ部分は先頭側と画像データ側とに分かれ、その間に初期値フラグと確率表符号化データがその順番で挿入されている。
【0076】
図8は、所定単位データが画像データのスライスである場合に多重化器4から出力されるビットストリームのデータ構造を示す。スライスは、一般に、ヘッダと、符号化サブデータとしての複数のブロック(又はマクロブロック)とから構成されている。ヘッダは、1スライス内の符号化データの開始を表すものであり、各スライスに共通のデータ(開始符号、量子化スケール等のパラメータ)から主に構成されている。さらに、ヘッダ内には初期値フラグが配置されている。初期値フラグは、初期値として用いられた確率表が符号化されたか否かを識別するためのフラグであり、確率表が符号化された場合は”1”となり、符号化されていない場合は”0”となる。
【0077】
さらに、ヘッダ内には、図8(a)に示すように、確率表初期値としての確率表符号化データが配置されている。確率表が符号化されなかった場合は確率表符号化器6からは確率表符号化データは多重化器4には出力されておらず、その結果図8(b)に示すようにビットストリームには確率表符号化データは配置されていない。
【0078】
以上に述べたように、ヘッダ内には、本来のヘッダを意味しヘッダ符号化器3によって符号化された共通データ部分と、算術符号化器7によって生成された初期値フラグと、確率表符号化器6により符号化された確率表符号化データとが存在する。さらに詳細には、共通データ部分は先頭側と画像データ側とに分かれ、その間に初期値フラグと確率表符号化データがその順番で挿入されている。
【0079】
なお、前記実施形態では、確率表に関する情報として、確率表自体を符号化してヘッダ内に埋め込んでいたが、代わりに、取得された確率表を示す情報(例えば、計算式、確率表を示すフラグ、これらの組合せを示す情報)を符号化してヘッダ内に埋め込んでもよい。その場合は、確率表そのものを符号化するのではないため、符号化量を削減できる。
【0080】
さらに、取得された確率表を示す情報としては、例えば、ヘッダ内の共通データの一部を利用することができる。その場合は、その情報は所定単位データに対する共通データの一部としての機能も有しているため、符号化量をさらに削減できる。共通データの例としては、例えば、所定単位データがピクチャの場合は、ピクチャ符号化タイプ(画面内符号化ピクチャと、画面間予測符号化ピクチャ、双画面間予測符号化ピクチャの区別)、ピクチャの量子化パラメータの初期値などがある。なお、初期化にはあまり関係がない共通データとしては、ピクチャの符号化順序、ピクチャの表示順序、動きベクトルや画像サイズ等のパラメータがある。所定単位データがスライスの場合は、スライス符号化タイプ(画面内符号化スライスと、画面間予測符号化スライス、双画面間予測符号化スライスの区別)、スライスの量子化パラメータの初期値などがある。
【0081】
更に、初期値を必ず更新するようにして、つまり、必ず初期値を送るようにして初期値フラグを省略しても良い。
(3)可変長復号化装置の構成
▲1▼本発明に係る可変長復号化装置
図9は、本発明の一実施形態としての可変長復号化装置11の概略構成ブロック図である。可変長復号化装置11は、例えば可変長符号化装置1によって符号化されたデータを復号化するための装置である。画像データを対象としている場合は、可変長復号化装置11は、データをエントロピー復号化し、変換画像情報を得る機能を有している。
【0082】
可変長復号化装置11は、主に、データ復号化部12と、ヘッダ復号化器13とを備えている。
データ復号化部12は、ヘッダ以外のデータを所定単位データごとに算術復号化するための装置であり、算術復号化器17と、確率表更新器18と、初期化部19とを備えている。なお、ここでいう所定単位データとは、画像データの場合はピクチャ又はスライスを意味する。
【0083】
算術復号化器17は、符号化データが入力されると、発生データを確率表更新器18に出力するとともに、データを確率表更新器18から出力される確率表すなわち符号語に基づいて符号化データを復号化するための装置である。
確率表更新器18は、確率表を更新する機能を有しており、算術復号化器17から出力された発生データの生起確率に応じて確率表を更新しながら、その確率表すなわち符号語を算術復号化器17に出力するための装置である。
【0084】
初期化部19は、確率表の初期化指令を確率表更新器18に対して出力するための装置である。
ヘッダ復号化器13は、ヘッダ符号化データを固定的な復号化方法で復号化するための装置である。
可変長復号化装置11は、さらに、確率表復号化器16を備えている。確率表復号化器16は、確率表符号化データを固定的な復号化方法で復号化するための装置である。
【0085】
分離化器14は、ビットストリームを、ヘッダ符号化データと、ヘッダ以外の符号化データと、確率表符号化データとに分離し出力するための装置である。
▲2▼一般的な画像復号化装置
ここで、図10のブロック図を用いて、一般的な画像復号化装置200の内部構成を説明する。画像復号化装置200は、主に、予測データ生成部202と、変換復号化部204と、加算器206と、エントロピー復号化部207とから構成されている。なお、前述のデータ復号化部12はエントロピー復号化部207に対応している。
【0086】
エントロピー復号化部207は、確率表に基づいて、入力されたストリームのデータに対してエントロピー復号化を施し、そのデータを変換復号化部204および予測データ生成部202に出力する。エントロピー復号化とは、エントロピー符号化の逆方向の処理であり、この実施形態では算術復号化である。
予測データ生成部202は、動き補償器212と、ピクチャメモリ213とを有している。ピクチャメモリ213には、加算器206から出力画像が参照画像として出力され、貯えられている。動き補償器212は、エントロピー復号化部207で復号化された動きベクトルMVに基づいて、ピクチャメモリ213に格納されている参照画像から動きベクトルMVに対応する画像データを予測画像として作成し(動き補償)、それを加算器206に出力する。なお、画面内符号化の場合は動き補償された参照画像の画素値を0とし、加算器206では加算を行わないで入力されたデータをそのまま出力する。また、復号化された動きベクトルはピクチャメモリ213に格納される。
【0087】
変換復号化部204は、エントロピー復号化部207からの出力にデータ伸長処理を施して、伸長データを出力する。変換復号化部204は逆量子化器214と逆直交変換器215とから構成されている。逆量子化器214は、エントロピー復号化部207からの出力を逆量子化し、それを逆直交変換器215に出力する。逆直交変換器215は、逆量子化器214からの出力に対して、周波数領域のデータを空間領域のデータに変換する逆離散コサイン変換処理(IDCT処理)を施して、伸長データを加算器206に出力する。
【0088】
加算器206は、変換復号化部204からの画像データと動き補償器212からの予測画像とを加算した画像データを出力画像として外部に出力し、さらにピクチャメモリ213にも出力する。
(4)可変長復号化装置の動作
▲1▼分離化器の動作
分離化器14は、ビットストリームを分離し、ヘッダ符号化データをヘッダ復号化器13に出力し、ヘッダ以外の符号化データを算術復号化器17に出力し、確率表符号化データがある場合はそれを確率表復号化器16に出力する。なお、ヘッダ復号化器13は、復号化されたヘッダ内の初期値フラグを初期化部19に出力する。
【0089】
▲2▼ヘッダ復号化器の動作
ヘッダ復号化器13は、分離化器14から出力されたヘッダ符号化データを復号化し、ヘッダデータを出力する。
▲3▼データ復号化部及び確率表符号化器の動作
図11は、データ復号化部12及び確率表復号化器16の概略動作を示すフローチャートである。
【0090】
ステップS21では、初期化部19が確率表更新器18を初期化し、所定の確率表が初期値に設定される。
ステップS22では、初期化部19が、ヘッダ内に埋め込まれていた初期値フラグによって、確率表が符号化されているか否かを判定する。確率表が符号化されていると判定するとステップS23に移行し、確率表が符号化されていないと判定するステップS23をスキップしてステップS24に移行する。
【0091】
ステップS23では、確率表更新器18が、確率表復号化器16から出力されてきた確率表で、確率表を更新する。確率表復号化器16に入力される確率表符号化データは、確率表の全ての場合もあれば、確率表の一部のみの場合もある。確率表の一部のみが符号化されている場合でも、取得された確率表のうち生起確率が高い符号化済みデータに対応する部分が符号化されていれば、後述する復号化作業において正しく復号化できる。なお、符号表の一部のみが符号化されていた場合には、符号化されていない確率表はステップS21と同じ値で初期化する。
【0092】
なお、確率表そのものではなく確率表を示す情報を符号化している場合は、最初にその情報を復号化し、次に確率表更新器18がその情報の示す確率表を選択する。
ステップS24では、算術復号化器17と確率表更新器18とが協働して、サブデータを算術復号化する。具体的には、算術復号化器17は、確率表更新器18からの確率表に基づいて符号化サブデータを復号化して、データを出力する。所定単位データが例えばピクチャである場合は、スライスが復号化される。ステップS26では、算術復号化器17の発生データを確率表更新器18に出力し、確率表更新器18は発生データにより確率表を書き換える。この更新された確率表は、次のサブデータをステップS24で復号化する際に利用される。
【0093】
ステップS25では、全てのサブデータの復号化が終了したか否かを判断する。全て終了していないと判断するとステップS24に戻り、前述の動作を繰り返す。
(5)上記符号化方法及び復号化方法の効果
▲1▼前述の符号化及び復号化方法では、各サブデータは算術符号化により取得された確率表に基づいて符号化されているため、圧縮効率が向上している。言い換えると、この符号化及び復号化方法では、全体のデータ数が小さくそのため従来であれば学習によって最適な符号化が得られるまでの符号化済みのデータ数の割合を無視できないようなデータであっても、高い学習効率によって圧縮効率を高めることができる。
【0094】
また、初期化された確率表は符号化され、符号化された所定単位データのヘッダ内に配置されているため、復号化の際にはその確率表を初期値として、符号化された所定単位データを正しく復号化することができる。
▲2▼前述の符号化及び復号化方法では、ピクチャ又はスライス単位で確率表を符号化しているため、確率表を符号化する頻度が適切である。第1に、伝送路誤りで学習すべき符号化データの一部が欠落し、符号化時と同じ確率表が復号化時に再現できなくなった場合でも、高頻度で符号化された確率表を復号化することで数秒以上画像が再生不可能となる状態が生じることがない。これがストリームやGOP単位である場合は、確率表の符号化の頻度が低く、学習すべき符号化データの一部が伝送路で欠落し確率表が再現できない場合には数秒以上画像が再生不可能となる状態が生じてしまう。第2に、確率表のデータ量の冗長が大きくなることもない。これがブロック(又はマクロブロック)単位である場合は、初期化のデータの冗長が大きくなりすぎる。
【0095】
▲3▼前述の符号化及び復号化方法では、画像データの本体は算術符号化によって圧縮効率が高くなっている。その一方、共通データであるヘッダは固定的な符号化方法で簡単にかつ静的に符号化されている。より詳細には、ヘッダのうち、本来のヘッダである部分は固定的な符号化方法で符号化され、挿入された確率表初期値も固定的な符号化方法で符号化されている。もともとヘッダは画像データの本体に比べて圧縮効果が低いため、固定的な符号化方法を使用しても全体の圧縮効率の点からは特に大きな問題にはならない。
【0096】
2.第2実施形態
(1)可変長符号化装置の構成
図12は、本発明の一実施形態としての可変長符号化装置21の概略構成ブロック図である。可変長符号化装置21は、入力されたデータを可変長符号化し、ビットストリームを生成するための装置である。特に、この可変長符号化装置21は、主たる符号化方法として複数の可変長符号表を切り換えることを特徴としている。可変長符号化の代表例としては、ハフマン符号化がある。以下、説明ではハフマン符号化を例として説明する。
【0097】
可変長符号化装置21に入力されるデータは、様々な種類があり得るが、この実施形態では画像データが入力されるものとして説明する。すなわち、可変長符号化装置21は、情報変換された画像信号をエントロピー符号化する機能を有している。特にMPEG方式においては、この可変長符号化装置21に入力される画像データは、量子化されたDCT係数や動きベクトルなどである。
【0098】
可変長符号化装置21は、主に、データ符号化部22と、ヘッダ符号化器23とを備えている。
データ符号化部22は、ヘッダ以外のデータを所定単位データごとにハフマン符号化するための装置であり、可変長符号化器27と、符号表選択部28と、初期化部29とを備えている。なお、各所定単位データは複数のサブデータから構成されており、所定単位データがピクチャの場合にサブデータはスライス、マクロブロック又はブロックであり、所定単位データがスライスの場合にサブデータはマクロブロック又はブロックである。また、データ符号化部22は、前述の図2で示した一般的な画像符号化装置100においては、エントロピー符号化部107に対応している。
【0099】
可変長符号化器27は、データが入力されると、発生データを符号表選択部28に出力するとともに、符号表選択部28によって切り換えられた可変長符号表30すなわち符号語に基づいてデータを符号化するための装置である。
符号表選択部28は、可変長符号化器27から出力された発生データの生起確率に応じて、スイッチ25に対して符号表選択信号を出力するための装置である。
【0100】
スイッチ25は、符号表選択部28から出力される符号表選択信号に従って、可変長符号化器27が符号化の際に使用する可変長符号表30を切り換えるための装置である。
初期化部29は、符号表選択部28に対して符号表選択信号の初期化指令を出力するための装置である。
【0101】
図13に、可変長符号表30の具体例を示す。各可変長符号表30a〜30cは、データとそれに対応するビット列との組み合わせから構成されている。これら可変長符号表30a〜30cは、白地部分(符号表30aにおいてはデータ1以降、符号表30bにおいてはデータ2以降、符号表30cにおいてはデータ4以降)に、共通のビット列が採用されている。また、網掛け部分(符号表30aにおいてはデータ0、符号表30bにおいてはデータ0,1、符号表30cにおいてはデータ0〜3)には異なるビット列が採用されている。網掛け部分のデータは生起確率が比較的高いものであり、生起確率が高いデータを1ビットで処理できるならば符号表30aが選択され、生起確率が高いデータを2ビットで処理できるならば符号表30bが選択され、生起確率が高い符号を3ビットで処理できるならば符号表30cが選択される。それに対して、白地部分の符号は生起確率が比較的低いものである。このように、生起確率の比較的低いデータに対して共通のビット列を配置することで、異なる可変長符号表を少ないデータ量で用意することができてメモリを削減でき、さらに符号化作業も簡単になる。
【0102】
ヘッダ符号化器23は、ヘッダデータを固定的な符号化方法で符号化するための装置である。
可変長符号化装置21は、さらに、選択信号符号化器26を備えている。選択信号符号化器26は、符号表選択部28から出力されてきた符号表選択信号を固定的な符号化方法で符号化するための装置である。
【0103】
多重化器24は、ヘッダ符号化器23から出力されてくるヘッダ符号化データと、可変長符号化器27から出力されてくるヘッダ以外の符号化データと、選択信号符号化器26から出力されてくる選択信号符号化データとを多重化して、符号列(ビットストリーム)を生成し、さらにそれを伝送路に出力するための装置である。
【0104】
(2)可変長符号化装置の動作
▲1▼データ符号化部及び選択信号符号化器の動作
図14は、データ符号化部22及び選択信号符号化器26の概略動作を示すフローチャートである。
ステップS31では、初期化部29が符号表選択部28に初期化指令を出力し、符号表選択部28が所定の選択表符号信号をスイッチ25に出力する。この結果、スイッチ25は所定の可変長符号表30を所定単位データ符号化の初期値として選択する。この初期化動作において、初期化部29及び符号表選択部28は、ヘッダ内の初期化情報に基づいて所定の可変長符号表30を選択する。なお、図12において、ヘッダデータが初期化部29及び符号表選択部28に送られる線はは省略されている。
【0105】
ステップS32では、可変長符号化器27と符号表選択部28とが協働して、サブデータをハフマン符号化する。より具体的には、符号表選択部28はこれまでの発生データにより符号表選択信号をスイッチ25に出力する。スイッチ25は、符号表選択信号に基づいて可変長符号表30を切り換え、可変長符号化器27は選択された可変長符号表30の符号語によってサブデータを符号化する。また、各所定単位データは複数のサブデータから構成されており、具体的には所定単位データがピクチャである場合はスライス、マクロブロック又はブロックが符号化され、所定単位データがスライスである場合はマクロブロック又はブロックが符号化される。
【0106】
ステップS33では、サブデータを符号表選択部28に出力し、符号表選択部28はサブデータの発生頻度を更新して次にスイッチ25を切り換える際に、どの符号表を選択すべきかの指標とする。この実施形態では、この符号表が次のサブデータを可変長符号化する際に用いられることになる。
ステップS34では、全てのサブデータの符号化が終了したか否かを判断する。全て終了していないと判断するとステップS32に戻り、前述の動作を繰り返す。
【0107】
ステップS35では、初期値として用いた可変長符号表30を示す情報(すなわち符号表選択信号)を符号化するか否かが判定される。符号化する場合はステップS36に進み、符号化しない場合はステップS36をスキップする。なお、初期値として使われた可変長符号表が符号化されないのは、例えば、次に可変長符号表が初期化されるまでのデータ数が十分に多い(つまり十分に学習するのに必要なデータ数が全体のデータ数に占める割合が小さく、そのため学習効率がよい)場合や、又は、初期値として使われた可変長符号表が学習によって選択される最適な符号表と一致する場合などである。可変長符号化器27は、その判定結果を識別するための初期値フラグを作成し、それを符号化データとともに多重化器24に出力する。
【0108】
ステップS36では、符号表選択部28が当該可変長符号表を示す符号表選択信号を選択信号符号化器26に出力する。
以上に述べた符号化方法では、最初のサブデータの符号化を除いて、符号化したサブデータの値に基づいて可変長符号表が選択されているため、サブデータの圧縮効率が向上する。特に、サブデータの符号化に用いられる可変長符号表は、直前のサブデータのハフマン符号化により選択された可変長符号表であるため、リアルタイムで符号化ができ、符号化が高速化になり、しかも画像の空間的又は時間的相関により十分な圧縮効率が得られる。
【0109】
▲2▼ヘッダ符号化器の動作
ヘッダ符号化器23は、入力されたヘッダデータを符号化し、それを多重化器24に出力する。
▲3▼多重化器の動作
多重化器24は、可変長符号化器27、ヘッダ符号化器23及び選択信号符号化器26から出力されてくるデータから所定のビットストリームを生成し、伝送路に出力する
図15は、前述の所定単位データが画像データのピクチャである場合に多重化器24から出力されるビットストリームのデータ構造を示す。ピクチャは、一般に、ヘッダと、符号化サブデータとしての複数のスライスとから構成されている。ヘッダは、1ピクチャ内の符号化データの開始を表すものであり、各スライスに共通のデータ(例えば、ピクチャ符号化タイプ(画面内符号化ピクチャと、画面間予測符号化ピクチャ、双画面間予測符号化ピクチャの区別)、ピクチャの量子化パラメータの初期値など)がある。なお、初期化にはあまり関係がない共通データとしては、ピクチャの符号化順序、ピクチャの表示順序動きベクトルや画像サイズ等のパラメータがある。
【0110】
ヘッダ内には初期値フラグが配置されている。初期値フラグは、可変長符号表を示す情報が符号化されたか否かを識別するためのフラグであり、可変長符号表を示す情報が符号化された場合は”1”となり、符号化されていない場合は”0”となる。
さらに、ヘッダ内には、図15(a)に示すように、使用する可変長符号表を示す選択信号符号化データ(例えば、計算式、確率表を示すフラグ、これらの組合せを示す情報)が配置されている。なお、可変長符号表を示す情報が符号化されなかった場合は、選択信号符号化データは選択信号符号化器26から多重化器24には出力されておらず、その結果図15(b)に示すようにビットストリームには選択信号符号化データは配置されていない。
【0111】
以上に述べたように、ヘッダ内には、本来のヘッダを意味しヘッダ符号化器23によって符号化された共通データ部分と、可変長符号化器27によって生成された初期値フラグと、選択信号符号化器26により符号化された選択信号符号化データとが存在する。さらに詳細には、共通データ部分は先頭側と画像データ側とに分かれ、その間に初期値フラグと選択信号符号化データがその順番で挿入されている。
【0112】
図16は、所定単位データが画像データのスライスである場合に多重化器24から出力されるビットストリームデータ構造を示す。スライスは、一般に、ヘッダと、複数のブロック(又はマクロブロック)とから構成されている。ヘッダは、1スライス内の符号化データの開始を表すものであり、各スライスに共通のデータ(開始符号、量子化スケール等のパラメータ)から主に構成されている。
【0113】
共通のデータとしては、スライス符号化タイプ(画面内符号化スライスと、画面間予測符号化スライス、双画面間予測符号化スライスの区別)、スライスの量子化パラメータの初期値などがある。
さらに、ヘッダ内には初期値フラグが配置されている。初期値フラグは、可変長符号表を示す情報が符号化されたか否かを識別するためのフラグであり、情報が符号化された場合は”1”となり、符号化されていない場合は”0”となる。
【0114】
さらに、ヘッダ内には、図16(a)に示すように、使用する可変長符号表を示す選択信号符号化データが配置されている。なお、可変長符号表が符号化されなかった場合は選択信号符号化器26からは選択信号符号化データは多重化器24には出力されておらず、その結果図16(b)に示すようにビットストストリームには選択信号符号化データは配置されていない。
【0115】
以上に述べたように、ヘッダ内には、本来のヘッダを意味しヘッダ符号化器23によって符号化された共通データ部分と、可変長符号化器27によって生成された初期値フラグと、選択信号符号化器26により符号化された選択信号符号化データとが存在する。さらに詳細には、共通データ部分は先頭側と画像データ側とに分かれ、その間に初期値フラグと選択信号符号化データがその順番で挿入されている。
【0116】
なお、本実施形態では、可変長符号表自体を符号化してヘッダ内に埋め込むのではなく、使用する可変長符号表を示す選択信号符号化データをヘッダ内に埋め込んでいる。したがって、可変長符号表そのものを符号化するのではないため、符号化量を削減できる。
さらに、使用する可変長符号表を示す選択信号符号化データとしては、例えば、ヘッダ内の共通データの一部を利用することができる。その場合は、そのデータは所定単位データに対する共通データの一部としての機能も有しているため、符号化量をさらに削減できる。共通データの例としては、例えば、所定単位データがピクチャの場合は、ピクチャ符号化タイプ(画面内符号化ピクチャと、画面間予測符号化ピクチャ、双画面間予測符号化ピクチャの区別)、ピクチャの量子化パラメータの初期値などがある。なお、初期化にはあまり関係がない共通データとしては、ピクチャの符号化順序、ピクチャの表示順序、動きベクトルや画像サイズ等のパラメータがある。所定単位データがスライスの場合は、スライス符号化タイプ(画面内符号化スライスと、画面間予測符号化スライス、双画面間予測符号化スライスの区別)、スライスの量子化パラメータの初期値などがある。
【0117】
更に、初期値を必ず更新するようにして、初期値フラグを省略しても良い。
(3)可変長復号化装置の構成
図17は、本発明の一実施形態としての可変長復号化装置31の概略構成ブロック図である。可変長復号化装置31は、例えば可変長符号化装置21によって符号化されたデータを復号化するための装置である。画像データを対象としている場合は、可変長復号化装置31は、データをエントロピー復号化し、変換画像情報を得る機能を有している。
【0118】
可変長復号化装置31は、主に、データ復号化部32と、ヘッダ復号化器33とを備えている。
データ復号化部32は、ヘッダ以外のデータを所定単位データごとにハフマン復号化するための装置であり、可変長復号化器37と、選択信号復号化器36とを備えている。なお、ここでいう所定単位データとは、画像データの場合はピクチャ又はスライスを意味する。また、データ復号化部32は、前述の図10で示した一般的な画像復号化装置200においては、エントロピー復号化部207に対応している。
【0119】
可変長復号化器37は、スイッチ35によって、切り換えられた可変長符号表30の符号語に基づいて、符号化データを復号化するための装置である。
選択信号復号化器36は、分離化器34から出力される選択信号符号化データを固定的な復号化方法で復号化し、それをスイッチ35に出力するための装置である。
【0120】
スイッチ35は、選択信号復号化器36から出力される符号表選択信号に従って、可変長復号化器37が復号化の際に使用する可変長符号表30を切り換えるための装置である。
初期化部39は、初期化指令を選択信号復号化器36に対して出力するための装置である。
【0121】
ヘッダ復号化器33は、ヘッダ符号化データを固定的な復号化方法で復号化するための装置である
分離化器34は、ビットストリームを、ヘッダ符号化データと、ヘッダ以外の符号化データと、選択信号符号化データとに分離し出力するための装置である。
(4)可変長復号化装置の動作
▲1▼分離化器の動作
分離化器34は、ビットストリームを分離し、ヘッダ符号化データをヘッダ復号化器33に出力し、ヘッダ以外の符号化データを可変長復号化器37に出力し、選択信号符号化データがある場合はそれを選択信号復号化器36に出力する。なお、ヘッダ復号化器33は、ヘッダ内の初期値フラグについては初期化部39に出力する。
【0122】
▲2▼ヘッダ復号化器の動作
ヘッダ復号化器33は、分離化器34から出力されたヘッダ符号化データを復号化し、ヘッダデータを出力する。
▲3▼データ復号化部の動作
図18は、データ復号化部32の概略動作を示すフローチャートである。
【0123】
ステップS51では、初期化部39が選択信号復号化器36に初期化指令を出力し、選択信号復号化器36が所定の選択表符号信号をスイッチ35に出力する。この結果、スイッチ35が所定の可変長符号表30を所定単位データの復号化の初期値として選択する。
ステップS52では、可変長復号化器37が、ヘッダ内に埋め込まれていた初期値フラグによって、使用する可変長符号表を示す情報が符号化されているか否かを判断する。可変長符号表を示す情報が符号化されていると判断するとステップS53に移行し、符号化されていないと判断するステップS53をスキップしてステップS54に移行する。
【0124】
ステップS53では、スイッチ35が、選択信号復号化器36から出力されてきた選択信号に基づいて、それが示す可変長符号表30を選択する。
ステップS54では、可変長復号化器37がサブデータをハフマン復号化する。より具体的には、可変長復号化器37は、スイッチ35によって選択された可変長符号表30に基づいて、符号化サブデータを復号化して、データを出力する。所定単位データが例えばピクチャである場合は、スライスが復号化される。ステップS56では、可変長復号化器37は発生データによりスイッチ35を介して可変長符号表30を選択する。この選択された可変長符号表30は、次のサブデータをステップS54で復号化する際に利用される。
【0125】
ステップS55では、全てのサブデータの復号化が終了したか否かを判断する。全て終了していないと判断するとステップS52に戻り、前述の動作を繰り返す。
(5)上記符号化方法及び復号化方法の効果
▲1▼前述の符号化及び復号化方法では、各サブデータはハフマン符号化により取得された可変長符号表に基づいて符号化されているため、圧縮効率が向上している。言い換えると、この符号化及び復号化方法では、全体のデータ数が小さくそのため従来であれば学習によって最適な符号化が得られるまでの符号化済みのデータ数の割合を無視できないようなデータであっても、高い学習効率によって圧縮効率を高めることができる。
【0126】
また、初期化された可変長符号表を示す情報は符号化され、符号化された所定単位データのヘッダ内に配置されているため、復号化の際にはその情報が示す可変長符号表を初期値として、符号化された所定単位データを正しく復号化することができる。
▲2▼前述の符号化及び復号化方法では、ピクチャ又はスライス単位で可変長符号表を符号化しているため、可変長符号表を示す情報を符号化する頻度が適切である。第1に、伝送路誤りで選択信号符号化データが破壊された場合でも数秒以上画像が再生不可能となる状態が生じることがない。これがストリームやGOP単位である場合は、可変長符号表を示す情報の符号化の頻度が低く、伝送路で選択信号符号化データ破壊された場合には数秒以上画像が再生不可能となる状態が生じてしまう。第2に、可変長符号表を示す情報のデータ量の冗長が大きくなることもない。これがブロック(又はマクロブロック)単位である場合は、初期化のデータの冗長が大きくなりすぎる。
【0127】
▲3▼前述の符号化及び復号化方法では、画像データの本体は複数の可変長符号表を切り換えるハフマン符号化によって圧縮効率が高くなっている。その一方、共通データであるヘッダは固定的な符号化方法で符号化されている。より詳細には、ヘッダのうち、本来のヘッダである部分は固定的な符号化方法で符号化され、挿入された可変長符号表を示す情報も固定的な符号化方法で符号化されている。もともとヘッダは画像データの本体に比べて圧縮効果が低いため、固定的な符号化方法を使用しても全体の圧縮効率の点からは特に大きな問題にはならない。
【0128】
3.記録媒体の実施の形態
さらに、上記各実施の形態で示した可変長符号化方法または可変長復号化方法の構成を実現するためのプログラムを、フロッピーディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【0129】
図19は、上記第実施形態の可変長符号化方法または可変長復号化方法を格納したフロッピーディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
図19(b)は、フロッピーディスクの正面からみた外観、断面構造、及びフロッピーディスクを示し、図19(a)は、記録媒体本体であるフロッピーディスクの物理フォーマットの例を示している。フロッピーディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフロッピーディスクでは、上記フロッピーディスクFD上に割り当てられた領域に、上記プログラムとしての可変長符号化方法または可変長復号化方法が記録されている。
【0130】
また、図19(c)は、フロッピーディスクFDに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフロッピーディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしての可変長符号化方法または可変長復号化方法をフロッピーディスクドライブを介して書き込む。また、フロッピーディスク内のプログラムにより上記可変長符号化方法または可変長復号化方法をコンピュータシステム中に構築する場合は、フロッピーディスクドライブによりプログラムをフロッピーディスクから読み出し、コンピュータシステムに転送する。
【0131】
なお、上記説明では、記録媒体としてフロッピーディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、CD−ROM、メモリカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
4.本願発明の応用例とそれを用いたシステム
さらにここで、上記実施の形態で示した動画像符号化方法や動画像復号化方法の応用例とそれを用いたシステムを説明する。
【0132】
図20は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
このコンテンツ供給システムex100は、例えば、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex107〜ex110を介して、コンピュータex111、PDA(personal digital assistant)ex112、カメラex113、携帯電話ex114、カメラ付きの携帯電話ex115などの各機器が接続される。
【0133】
しかし、コンテンツ供給システムex100は図17のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex107〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、PDC(Personal Digital Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはGSM(Global System for Mobile Communications)方式の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
【0134】
また、ストリーミングサーバex103は、カメラex113から基地局ex109、電話網ex104を通じて接続されており、カメラex113を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラ116で撮影した動画データはコンピュータex111を介してストリーミングサーバex103に送信されてもよい。カメラex116はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex116で行ってもコンピュータex111で行ってもどちらでもよい。また、符号化処理はコンピュータex111やカメラex116が有するLSIex117において処理することになる。なお、画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込んでもよい。さらに、カメラ付きの携帯電話ex115で動画データを送信してもよい。このときの動画データは携帯電話ex115が有するLSIで符号化処理されたデータである。
【0135】
このコンテンツ供給システムex100では、ユーザがカメラex113、カメラex116等で撮影しているコンテンツ(例えば、音楽ライブを撮影した映像等)を上記実施の形態同様に符号化処理してストリーミングサーバex103に送信する一方で、ストリーミングサーバex103は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等がある。このようにすることでコンテンツ供給システムex100は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【0136】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した動画像符号化装置あるいは動画像復号化装置を用いるようにすればよい。
その一例として携帯電話について説明する。
図21は、上記実施の形態で説明した動画像符号化方法と動画像復号化方法を用いた携帯電話ex115を示す図である。携帯電話ex115は、基地局ex110との間で電波を送受信するためのアンテナex201、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex203、カメラ部ex203で撮影した映像、アンテナex201で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex202、操作キーex204群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex208、音声入力をするためのマイク等の音声入力部ex205、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex207、携帯電話ex115に記録メディアex207を装着可能とするためのスロット部ex206を有している。記録メディアex207はSDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものである。
【0137】
さらに、携帯電話ex115について図22を用いて説明する。携帯電話ex115は表示部ex202及び操作キーex204を備えた本体部の各部を統括的に制御するようになされた主制御部ex311に対して、電源回路部ex310、操作入力制御部ex304、画像符号化部ex312、カメラインターフェース部ex303、LCD(Liquid Crystal Display)制御部ex302、画像復号化部ex309、多重分離部ex308、記録再生部ex307、変復調回路部ex306及び音声処理部ex305が同期バスex313を介して互いに接続されている。
【0138】
電源回路部ex310は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex115を動作可能な状態に起動する。
携帯電話ex115は、CPU、ROM及びRAM等でなる主制御部ex311の制御に基づいて、音声通話モード時に音声入力部ex205で集音した音声信号を音声処理部ex305によってディジタル音声データに変換し、これを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。また携帯電話機ex115は、音声通話モード時にアンテナex201で受信した受信信号を増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex306でスペクトラム逆拡散処理し、音声処理部ex305によってアナログ音声信号に変換した後、これを音声出力部ex208を介して出力する。
【0139】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex204の操作によって入力された電子メールのテキストデータは操作入力制御部ex304を介して主制御部ex311に送出される。主制御部ex311は、テキストデータを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して基地局ex110へ送信する。
【0140】
データ通信モード時に画像データを送信する場合、カメラ部ex203で撮像された画像データをカメラインターフェース部ex303を介して画像符号化部ex312に供給する。また、画像データを送信しない場合には、カメラ部ex203で撮像した画像データをカメラインターフェース部ex303及びLCD制御部ex302を介して表示部ex202に直接表示することも可能である。
【0141】
画像符号化部ex312は、本願発明で説明した画像符号化装置を備えた構成であり、カメラ部ex203から供給された画像データを上記実施の形態で示した画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex308に送出する。また、このとき同時に携帯電話機ex115は、カメラ部ex203で撮像中に音声入力部ex205で集音した音声を音声処理部ex305を介してディジタルの音声データとして多重分離部ex308に送出する。
【0142】
多重分離部ex308は、画像符号化部ex312から供給された符号化画像データと音声処理部ex305から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。
【0143】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex201を介して基地局ex110から受信した受信信号を変復調回路部ex306でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex308に送出する。
また、アンテナex201を介して受信された多重化データを復号化するには、多重分離部ex308は、多重化データを分離することにより画像データの符号化ビットストリームと音声データの符号化ビットストリームとに分け、同期バスex313を介して当該符号化画像データを画像復号化部ex309に供給すると共に当該音声データを音声処理部ex305に供給する。
【0144】
次に、画像復号化部ex309は、本願発明で説明した画像復号化装置を備えた構成であり、画像データの符号化ビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをLCD制御部ex302を介して表示部ex202に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex305は、音声データをアナログ音声信号に変換した後、これを音声出力部ex208に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【0145】
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図23に示すようにディジタル放送用システムにも上記実施の形態の少なくとも画像符号化装置または画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex409では映像情報の符号化ビットストリームが電波を介して通信または放送衛星ex410に伝送される。これを受けた放送衛星ex410は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex406で受信し、テレビ(受信機)ex401またはセットトップボックス(STB)ex407などの装置により符号化ビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex402に記録した符号化ビットストリームを読み取り、復号化する再生装置ex403にも上記実施の形態で示した画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex404に表示される。また、ケーブルテレビ用のケーブルex405または衛星/地上波放送のアンテナex406に接続されたセットトップボックスex407内に画像復号化装置を実装し、これをテレビのモニタex408で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでも良い。また、アンテナex411を有する車ex412で衛星ex410からまたは基地局ex107等から信号を受信し、車ex412が有するカーナビゲーションex413等の表示装置に動画を再生することも可能である。
【0146】
更に、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex421に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex420がある。更にSDカードex422に記録することもできる。レコーダex420が上記実施の形態で示した画像復号化装置を備えていれば、DVDディスクex421やSDカードex422に記録した画像信号を再生し、モニタex408で表示することができる。
【0147】
なお、カーナビゲーションex413の構成は例えば図19に示す構成のうち、カメラ部ex203とカメラインターフェース部ex303、画像符号化部ex312を除いた構成が考えられ、同様なことがコンピュータex111やテレビ(受信機)ex401等でも考えられる。
また、上記携帯電話ex114等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
【0148】
このように、上記実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
5.他の実施形態
本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形又は修正が可能である。
【0149】
【発明の効果】
請求項1に記載の可変長符号化方法では、各サブデータの符号化においてパラメータ表から取得した符号化パラメータを利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化されたパラメータ表に関する情報は符号化され、符号化された所定単位データより先に取得できる位置に配置されているため、復号化の際にはそのパラメータ表を初期値として符号化された所定単位データを正しく復号化することができる。
【0150】
また、符号化したサブデータの値に基づいてパラメータ表を更新しているため、所定単位データを符号化する際の圧縮効率が向上する。
【0151】
請求項に記載の可変長符号化方法では、請求項において、サブデータの符号化方法として算術符号化を用いているため、圧縮効率がよい。なお、パラメータ表は確率表に対応しており、符号化パラメータは確率に対応している。
【0152】
請求項に記載の可変長符号化方法では、請求項1又は2において、パラメータ表に関する情報はパラメータ表そのものである。
請求項に記載の可変長符号化方法では、請求項において、初期化されたパラメータ表の全てではなく、一部のみが符号化されるため、符号化量を削減できる。
【0153】
請求項に記載の可変長符号化方法では、請求項において、初期化されたパラメータ表のうち生起確率が高い符号化済みデータに対応する部分のみを符号化するため、符号化量を削減しつつも、復号化の際に十分に正しく復号化できる。
請求項に記載の可変長符号化方法では、請求項1又は2において、パラメータ表を示す情報を符号化するのであってパラメータ表そのものを符号化するのではないため、符号化量を削減できる。
【0154】
請求項に記載の可変長符号化方法では、請求項において、パラメータ表を示す情報は所定単位データに対する共通データの一部として配置されており、その一部としての機能も有しているため、符号化量が削減できる。
請求項に記載の可変長符号化方法では、請求項1〜7のいずれかにおいて、固定的な符号化方法を用いているため、初期化されたパラメータ表に関する情報は静的に符号化される。そのため、初期化されたパラメータ表に関する情報は確実に復号化される。
【0155】
請求項に記載の可変長符号化方法では、請求項1〜8のいずれかにおいて、パラメータ表に関する情報が符号化されたか否かは、符号化された所定単位データより先に取得できる位置に配置されたフラグによって判断できる。
請求項10に記載の可変長符号化方法では、請求項1〜9のいずれかにおいて、所定単位データは画像データにおけるピクチャであるため、全画像データ内でパラメータ表を符号化する頻度が適切であり、そのため、伝送路誤りで学習すべき符号化データの一部が欠落し、符号化時と同じパラメータ表が復号化時に再現できなくなった場合でも、高頻度で符号化されたパラメータ表を復号化することで数秒以上画像が再生不可能となる状態が生じることがなく、またパラメータ表のデータ量の冗長が大きくなることもない。
【0156】
請求項11に記載の可変長符号化方法では、請求項1〜10のいずれかにおいて、所定単位データは画像データにおけるスライスであるため、全画像データ内でパラメータ表を符号化する頻度が適切であり、そのため、伝送路誤りで学習すべき符号化データの一部が欠落し、符号化時と同じパラメータ表が復号化時に再現できなくなった場合でも、高頻度で符号化されたパラメータ表を復号化することで数秒以上画像が再生不可能となる状態が生じることがなく、またパラメータ表のデータ量の冗長が大きくなることもない。
【0159】
請求項12に記載の記憶媒体では、格納されたプログラムをコンピュータにロードすることにより、コンピュータに可変長符号化処理を行わせる。その処理において、各サブデータの符号化においてパラメータ表から取得した符号化パラメータを利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化されたパラメータ表に関する情報は符号化され、符号化された所定単位データ符号化された所定単位データより先に取得できる位置に配置されているため、復号化の際にはそのパラメータ表を初期値として符号化された所定単位データを正しく復号化することができる。
【0161】
請求項13に記載の可変長符号化方法では、各サブデータの符号化において選択された可変長符号表を利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化された可変長符号表を示す情報は符号化され、符号化された所定単位データより先に取得できる位置に配置されているため、復号化の際にはその情報が示す可変長符号表を初期値として符号化された所定単位データを正しく復号化することができる。
【0162】
請求項14に記載の可変長符号化方法では、請求項13において、符号化したサブデータの値に基づいて可変長符号表を選択しているため、所定単位データを符号化する際の圧縮効率が向上する。
【0163】
請求項15に記載の可変長符号化方法では、請求項13又は14において、固定的な符号化方法を用いているため、選択された可変長符号表を示す情報は確実に復号化される。
【0164】
請求項16に記載の可変長符号化方法では、請求項13〜15のいずれかにおいて、可変長符号表を示す情報が符号化されたか否かは、符号化所定単位データより先に取得できる位置に配置されたフラグによって判断できる。
請求項17に記載の可変長符号化方法では、請求項13〜16のいずれかにおいて、所定単位データは画像データにおけるピクチャであるため、全画像データ内で情報を符号化する頻度が適切であり、そのため、伝送路誤りで情報符号化データが破壊された場合でも数秒以上画像が再生不可能となる状態が生じることがなく、また情報符号化データの量の冗長が大きくなることもない。
【0165】
請求項18に記載の可変長符号化方法では、請求項13〜16のいずれかにおいて、所定単位データは画像データにおけるスライスであるため、全画像データ内で可変長符号表を示す情報を符号化する頻度が適切であり、そのため、伝送路誤りで情報符号化データが破壊された場合でも数秒以上画像が再生不可能となる状態が生じることがなく、また情報符号化データの量の冗長が大きくなることもない。
【0166】
請求項19に記載の可変長符号化方法では、請求項13〜18のいずれかにおいて、例えば画像データにおいて、可変長符号表を切り換える可変長符号化方法によってサブデータを符号化することで高い圧縮効率を得ることができるとともに、固定的な符号化方法によって共通データであるヘッダを符号化することで処理を簡単にできる。なお、ヘッダはもともと圧縮効果が少ないため、固定的な符号化方法を用いても特に支障はない。
【0167】
請求項20に記載の記憶媒体では、格納されたプログラムがコンピュータに行わせる符号化処理において、各サブデータの符号化において選択された可変長符号表を利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化された可変長符号表を示す情報は符号化され、符号化された所定単位データより先に取得できる位置に配置されるため、復号化の際にはその情報が示す可変長符号表を初期値として符号化された所定単位データを正しく復号化することができる。
【0168】
請求項21に記載の可変長符号化装置では、サブデータ符号化手段がサブデータを符号化する際にパラメータ表から取得した符号化パラメータを利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化されたパラメータ表に関する情報は、パラメータ表情報符号化手段によって符号化され、さらに情報符号化データ配置手段によって符号化された所定単位データより先に取得できる位置に配置されるため、復号化の際にはその情報に基づきパラメータ表を取得し、そのパラメータ表を初期値として符号化された所定単位データを正しく復号化することができる。
【0169】
請求項22に記載の可変長符号化装置では、サブデータ符号化手段がサブデータを符号化する際に選択した可変長符号表を利用しているため、所定単位データを符号化する際の圧縮効率が向上する。また、初期化された可変長符号表を示す情報は、可変長符号表情報符号化手段によって符号化され、さらに情報符号化データ配置手段によって符号化された所定単位データより先に取得できる位置に配置されるため、復号化の際にはその情報に基づき可変長符号表を取得し、その可変長符号表を初期値として符号化された所定単位データを正しく復号化することができる。
【0170】
請求項23に記載のビットストリームでは、所定単位データを符号化する際の圧縮効率が向上するなど、各可変長符号化方法による効果が得られる。
【図面の簡単な説明】
【図1】本発明の第1実施形態における可変長符号化装置の概略構成を示すブロック図。
【図2】一般的な画像符号化装置の概略構成を示すブロック図。
【図3】データ符号化部の概略動作を示すフローチャート。
【図4】データ符号化部の概略動作を示す、変形例のフローチャート。
【図5】画像データのストリーム構造の一例を示す図。
【図6】画像データのストリーム構造の他の例を示す図。
【図7】可変長符号化装置によって生成されるビットストリームのデータ構造。
【図8】可変長符号化装置によって生成されるビットストリームのデータ構造。
【図9】本発明の第1実施形態における可変長復号化装置の概略構成を示すブロック図。
【図10】一般的な画像復号化装置の概略構成を示すブロック図。
【図11】データ復号化部の概略動作を示すフローチャート。
【図12】本発明の第2実施形態における可変長符号化装置の概略構成を示すブロック図。
【図13】複数の可変長符号表の構成を示す図。
【図14】データ符号化部の概略動作を示すフローチャート。
【図15】可変長符号化装置によって生成されるビットストリームのデータ構造。
【図16】可変長符号化装置によって生成されるビットストリームのデータ構造。
【図17】本発明の第2実施形態における可変長復号化装置の概略構成を示すブロック図。
【図18】データ復号化部の概略動作を示すフローチャート。
【図19】第1及び第2実施形態の可変長符号化方法又は可変長復号化方法を格納したフロッピーディスクを用いて、コンピュータシステムにより実施する場合の説明図。
【図20】コンテンツ供給システムの全体構成を示すブロック図。
【図21】動画像符号化方法、動画像復号化方法を用いた携帯電話の例。
【図22】携帯電話のブロック図。
【図23】ディジタル放送用システムの例。
【符号の説明】
1 可変長符号化装置
2 データ符号化部
3 ヘッダ符号化器
4 多重化器(情報符号化データ配置手段)
6 確率表符号化器(パラメータ表情報符号化手段)
7 算術符号化器(サブデータ符号化手段)
8 確率表更新器(パラメータ取得手段)
9 初期化部(初期化手段)
11 可変長復号化装置
12 データ復号化部
13 ヘッダ復号化器
14 分離化器
16 確率表復号化器(パラメータ表情報復号化手段)
17 算術復号化器(サブデータ復号化手段)
18 確率表更新器(パラメータ取得手段)
19 初期化部(パラメータ表初期化手段)
21 可変長符号化装置
22 データ符号化部
23 ヘッダ符号化器
24 多重化器(可変長符号表情報符号化データ配置手段)
26 選択信号符号化器(情報符号化手段)
27 可変長符号化器(サブデータ符号化手段)
28 符号表選択部(可変長符号表選択手段)
29 初期化部(初期化手段)
30 符号表
31 可変長復号化装置
32 データ復号化部
33 ヘッダ復号化器
34 分離化器
36 選択信号復号化器(可変長符号表情報復号化手段)
37 可変長復号化器(サブデータ復号化手段)
39 初期化部(可変長符号表初期化手段)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a variable-length encoding method, a variable-length decoding method corresponding to the variable-length encoding method, a storage medium for storing a program for causing a computer to perform these processes, a variable-length encoding device, and a variable-length decoding device corresponding to the storage medium. The present invention particularly relates to a dynamic variable-length encoding method that optimizes an encoding method based on encoded data, a variable-length decoding method corresponding to the dynamic variable-length encoding method, and a storage medium that stores a program that causes a computer to perform these processes. The present invention relates to a dynamic variable-length encoding device that optimizes an encoding method using encoded data, and a variable-length decoding device corresponding to the dynamic variable-length encoding device.
[0002]
[Prior art]
In recent years, as a technique for compressing and restoring images, JPEG for still images, MPEG for moving images, and the like have been standardized by international standardization activities for image coding methods.
The MPEG (Moving Picture Experts Group) coding system mainly includes a motion compensation inter-frame prediction unit, a DCT (Discrete Cosine Transform) unit, and a variable length coding unit. The motion compensation inter-frame prediction unit detects a motion vector from the input image and the previous image data, and creates prediction error data from the motion vector and the previous image data. The DCT unit performs DCT conversion on the prediction error data. The quantization unit quantizes the DCT coefficients, and the variable length coding unit assigns codewords to the quantized DCT coefficients and motion vectors.
[0003]
Image encoded data in the MPEG encoding system has a six-layer hierarchical structure of a sequence, a GOP (Group Of Picture), a picture, a slice, a macroblock, and a block. A picture is a basic coding unit corresponding to one image, and is composed of a plurality of slices. A slice is a unit of synchronization return and is a band-like region composed of one or a plurality of macroblocks.
[0004]
Variable length coding is a kind of entropy coding, and the coefficient (DCT coefficient) value after DCT conversion, motion vector value, etc. are biased in the occurrence probability. Is assigned a short code word, and a long code word is assigned to a value with a low occurrence probability, thereby reducing the average amount of information.
The main types of variable length coding include Huffman coding and arithmetic coding.
[0005]
Huffman coding is a method of determining a code word using a Huffman code tree with each symbol as a leaf, and uses a correspondence table (code table) of code words (bit strings) corresponding to each code.
In Huffman coding, in order to improve the compression ratio, a method of creating a code table according to the statistical properties of moving images, or a plurality of code tables prepared and the code table according to the statistical properties of the image are prepared. The method of switching is used. In information theory, the sign of the occurrence probability p is log2It has been proved that the code table to which (1 / p) bits are allocated has the smallest average amount of information. Therefore, in the method of switching a plurality of code tables, the occurrence probability is calculated from the encoded data, and the log of the occurrence probability p is logged.2A code table is selected so that the number of bits close to (1 / p) bits is allocated.
[0006]
Arithmetic coding is a technique in which a symbol sequence is projected onto an interval [0, 1) in accordance with the occurrence probability, and a probability space on a number line is represented in binary with an appropriate number within the interval. Arithmetic coding always performs coding while monitoring statistical properties. Specifically, the codeword is determined while referring to the probability table while rewriting the probability table according to the image contents. More specifically, in arithmetic coding, the log of the occurrence probability p is log.2The occurrence probabilities are sequentially updated from the encoded data with the probabilities used in arithmetic operations so that (1 / p) bits are allocated.
[0007]
In arithmetic coding, unlike Huffman coding, a bit string corresponding to a code word can be obtained only by arithmetic operations (addition / subtraction / division / division). Can be reduced. In addition, even if the statistical properties change during encoding, it can be dealt with by rewriting the probability table. However, arithmetic operations, particularly multiplication and division, require high computing power, and have the disadvantage that it is difficult to realize them with low computing power equipment.
[0008]
In the dynamic encoding method described above, since the encoding method is dynamically optimized based on the encoded data, the compression efficiency can be improved compared to the fixed encoding method.
[0009]
[Problems to be solved by the invention]
However, when the encoding method is dynamically optimized based on the encoded data, there are the following problems.
Dynamic coding by learning is performed, for example, after the picture header, that is, for each slice, macroblock, or block. In that case, a fixed probability table is used as an initial value in each picture in arithmetic coding, and a fixed variable-length code table is used as an initial code table in each picture in Huffman coding. Since a fixed initial value is used in this way, it cannot be said that the encoding compression efficiency is good until the optimal probability table or code table is obtained by learning after initialization. In particular, when the total number of data is small, the ratio of the number of data necessary for learning becomes large and the compression rate is not so high.
[0010]
On the other hand, if the portion of the encoded data used for learning is lost in the transmission path, the decoder cannot perform correct learning and cannot be decoded. In the case of image data, the image quality deteriorates due to a transmission path error. Will occur. In order to make it strong against transmission line errors, the learning result is periodically reset. However, if the reset interval is lengthened, the error is weakened by errors, so the reset interval must be shortened to some extent.
[0011]
As described above, assuming that the problem of transmission path errors is solved, the current dynamic encoding method does not sufficiently improve the compression efficiency.
An object of the present invention is to improve the compression efficiency of a variable-length encoding method used for image compression or the like.
Another object of the present invention is to correctly decode data encoded by a variable-length encoding method with improved compression efficiency.
[0012]
[Means for Solving the Problems]
  The variable length encoding method according to claim 1 is a variable length encoding method for encoding each predetermined unit data with reference to a parameter table, and includes the following steps.
  ◎ Initialization step to set parameter table to initial value
  ◎ Parameter table information encoding step for encoding information about the initialized parameter table
  ◎ Parameter acquisition step for acquiring, from the parameter table, encoding parameters used for encoding each sub-data constituting the predetermined unit data
  ◎ Sub-data encoding step for variable-length encoding sub-data with reference to the acquired encoding parameter
  ◎ Information encoded data arrangement step for arranging and outputting the encoded information at a position where it can be acquired prior to the encoded predetermined unit data
In the variable length encoding method according to the first aspect, the parameter table is updated based on the value of the encoded sub data, and the encoding parameter is acquired from the parameter table.
  The encoding parameter represents the frequency of data generation, is acquired from the parameter table, and is referred to when encoding each sub data. In the case of arithmetic coding, the parameter table corresponds to the probability table, and the encoding parameter corresponds to the probability, but is not limited thereto.
[0013]
In this encoding method, since the encoding parameter acquired from the parameter table is used in encoding each sub data, the compression efficiency when encoding predetermined unit data is improved. Also, since the information about the initialized parameter table is encoded and placed at a position where it can be obtained prior to the encoded predetermined unit data, the parameter table is encoded as an initial value at the time of decoding. The predetermined unit data can be correctly decoded.
[0014]
  In this encoding method, the parameter table is updated based on the value of the encoded sub-data, so that the compression efficiency when encoding predetermined unit data is improved.
[0017]
  Claim2In the variable length coding method described in claim 1,1In the sub-data encoding step, the sub-data is arithmetically encoded with reference to the encoding parameter.
  In this encoding method, since the arithmetic encoding is used as the sub-data encoding method, the compression efficiency is good. The parameter table corresponds to the probability table, and the encoding parameter corresponds to the probability.
[0018]
  Claim3In the variable length coding method described in claim 1,1 or 2The information regarding the parameter table is the parameter table itself.
  Claim4In the variable length coding method described in claim 1,3In the parameter table information encoding step, only a part of the parameter table is encoded.
  In this encoding method, since not all of the initialized parameter table is encoded, only a part is encoded, so that the amount of encoding can be reduced.
[0019]
  Claim5In the variable length coding method described in claim 1,4The part of the parameter table is a parameter part corresponding to encoded data with a high occurrence probability.
  In this encoding method, only the portion corresponding to the encoded data having a high occurrence probability in the initialized parameter table is encoded. Can be decrypted.
[0020]
  Claim6In the variable length coding method described in claim 1,1 or 2The information regarding the parameter table is information indicating the parameter table.
  In this encoding method, since the information indicating the parameter table is encoded and not the parameter table itself, the amount of encoding can be reduced.
  Claim7In the variable length coding method described in claim 1,6In the information encoded data arrangement step, information indicating the encoded parameter table is arranged as a part of common data for the predetermined unit data.
[0021]
  In this encoding method, the information regarding the parameter table is arranged as a part of common data for the predetermined unit data, and also has a function as a part thereof, so that the encoding amount can be reduced.
  Claim8In the variable length coding method described in claim 1,1-7In any of the above, in the information encoding step, information on the parameter table is encoded by a fixed encoding method.
[0022]
  Since this encoding method uses a fixed encoding method, information on the initialized parameter table is statically encoded. Therefore, the information regarding the initialized parameter table is reliably decoded.
  Claim9The variable length coding method described in claim1-8In any of the above, an encoding determination step for determining whether or not to encode information on the initialized parameter table, and a flag for identifying the determination result at a position where the flag can be acquired before the encoded predetermined unit data. And a flag placement step for placing and outputting.
[0023]
In this encoding method, whether or not the information related to the initialized parameter table has been encoded can be determined by a flag arranged at a position that can be acquired prior to the encoded predetermined unit data. Note that the information related to the parameter table used as the initial value is not encoded, for example, because the number of data until the parameter table is initialized next is sufficiently large (that is, the number of data necessary for sufficient learning). Is small in proportion to the total number of data, so that the learning efficiency is good), or the parameter table used as the initial value almost coincides with the optimum parameter table obtained by learning.
[0024]
  Claim10In the variable length coding method described in claim 1,1-9In any of the above, the predetermined unit data is a picture in the image data.
  In this encoding method, the frequency with which the parameter table is encoded in all the image data is appropriate. Therefore, a part of the encoded data to be learned due to transmission path error is missing, and the same parameter table as that at the time of encoding is obtained. Even if it becomes impossible to reproduce at the time of decoding, decoding the parameter table encoded at high frequency does not cause a state in which an image cannot be reproduced for several seconds or more, and the data amount of the parameter table is redundant. It won't grow.
[0025]
  Claim11In the variable length coding method described in claim 1,1-9In any of the above, the predetermined unit data is a slice in the image data.
  In this encoding method, the frequency with which the parameter table is encoded in all the image data is appropriate. Therefore, a part of the encoded data to be learned due to transmission path error is missing, and the same parameter table as that at the time of encoding is obtained. Even if it becomes impossible to reproduce at the time of decoding, there will be no situation in which the image cannot be reproduced for more than a few seconds by decoding the parameter table encoded at high frequency, and the data amount of the parameter table is redundant. It won't grow.
[0028]
  Claim12The storage medium described in 1 stores a program for causing a computer to perform variable-length encoding processing. The variable-length encoding process is a variable-length encoding method that encodes each predetermined unit data with reference to a parameter table, and includes the following steps.
[0029]
◎ Initialization step to set parameter table to initial value
◎ Parameter table information encoding step for encoding information about the initialized parameter table
◎ Parameter acquisition step for acquiring, from the parameter table, encoding parameters used for encoding each sub-data constituting the predetermined unit data
◎ Sub-data encoding step for variable-length encoding sub-data with reference to the acquired encoding parameter
◎ Information encoded data arrangement step for arranging and outputting the encoded information at a position where it can be acquired prior to the encoded predetermined unit data
In this storage medium, the stored program is loaded into the computer, thereby causing the computer to perform variable-length encoding processing. In the process, since the encoding parameter acquired from the parameter table is used for encoding each sub-data, the compression efficiency when encoding the predetermined unit data is improved. In addition, since the information regarding the initialized parameter table is encoded and arranged at a position where the encoded predetermined unit data can be obtained prior to the encoded predetermined unit data, the parameter is set at the time of decoding. It is possible to correctly decode the predetermined unit data encoded using the table as an initial value.
[0031]
  Claim13The variable-length encoding method described in 1 is a variable-length encoding method for encoding each predetermined unit data while switching the variable-length code table, and includes the following steps.
  ◎ Initialization step to set variable length code table to initial value
  A variable length code table information encoding step for encoding information indicating an initialized variable length code table
  ◎ Variable length code table selection step for selecting a variable length code table used for encoding each sub-data constituting the predetermined unit data
  ◎ Sub data encoding step for encoding sub data with reference to the selected variable length code table
  ◎ Information encoded data arrangement step of arranging and outputting information indicating the encoded variable-length code table at a position where it can be acquired prior to the encoded predetermined unit data
  In this encoding method, since the variable length code table selected in the encoding of each sub data is used, the compression efficiency when encoding predetermined unit data is improved. In addition, since the information indicating the initialized variable length code table is encoded and arranged at a position where it can be acquired prior to the encoded predetermined unit data, the variable length indicated by the information at the time of decoding is It is possible to correctly decode the predetermined unit data encoded using the code table as an initial value.
[0032]
  Claim14In the variable length coding method described in claim 1,13The variable length code table is selected based on the value of the encoded sub data.
  In this encoding method, since the variable length code table is selected based on the value of the encoded sub data, the compression efficiency when encoding predetermined unit data is improved.
[0034]
  Claim15In the variable length coding method described in claim 1,13 or 14In the variable length code table information encoding step, encoding is performed by a fixed encoding method.
[0035]
  Since this encoding method uses a fixed encoding method, information indicating the initialized variable-length code table is reliably decoded.
  Claim16The variable length coding method described in claim13-15In any of the above, an encoding determination step for determining whether or not information indicating the initialized variable-length code table is encoded, and a flag for identifying the determination result is acquired prior to the encoded predetermined unit data. A flag arrangement step of arranging and outputting at a possible position.
[0036]
In this encoding method, whether or not the information indicating the initialized variable-length code table has been encoded can be determined by a flag arranged at a position that can be acquired prior to the predetermined encoding unit data. The information indicating the variable length code table used as the initial value is not encoded, for example, because the number of data until the variable length code table is initialized next is sufficiently large (that is, sufficient learning is performed). The ratio of the number of data necessary for the total data is small, so learning efficiency is good), or the variable length code table used as the initial value matches the optimal variable length code table obtained by learning This is the case.
[0037]
  Claim17In the variable length coding method described in claim 1,13-16In any of the above, the predetermined unit data is a picture in the image data.
  In this encoding method, the information indicating the variable-length code table in the entire image data is appropriately encoded. Therefore, even if the information encoded data is destroyed due to a transmission path error, the image cannot be reproduced for several seconds or more. There will be no possible situation, and the amount of information encoded data will not be redundant.
[0038]
  Claim18In the variable length coding method described in claim 1,13-16In any of the above, the predetermined unit data is a slice in the image data.
  In this encoding method, the information indicating the variable-length code table in the entire image data is appropriately encoded. Therefore, even if the information encoded data is destroyed due to a transmission path error, the image cannot be reproduced for several seconds or more. There will be no possible situation, and the amount of information encoded data will not be redundant.
[0039]
  Claim19In the variable length coding method described in claim 1,13-18In any of the above, the plurality of syntax elements of the sub-data include a portion encoded by the variable length encoding method for switching the variable length code table and a portion encoded by the fixed encoding method. Yes.
  In this encoding method, for example, in image data, high compression efficiency can be obtained by encoding sub-data by a variable-length encoding method for switching a variable-length code table, and common data can be obtained by a fixed encoding method. The process can be simplified by encoding the header. In addition, since the header originally has little compression effect, there is no particular problem even if a fixed encoding method is used.
[0041]
  Claim20The storage medium described in 1 stores a program for causing a computer to perform variable-length encoding processing. The variable length coding process is a variable length coding method for coding each predetermined unit data while switching the variable length code table, and includes the following steps.
  ◎ Initialization step to set variable length code table to initial value
  A variable length code table information encoding step for encoding information indicating an initialized variable length code table
  ◎ Variable length code table selection step for selecting a variable length code table used for encoding each sub-data constituting the predetermined unit data
  ◎ Sub data encoding step for encoding sub data with reference to the selected variable length code table
  ◎ Information encoded data arrangement step of arranging and outputting information indicating the encoded variable-length code table at a position where it can be acquired prior to the encoded predetermined unit data
  Since this storage medium uses the variable length code table selected in the encoding of each sub-data in the encoding process that the stored program performs on the computer, compression when encoding predetermined unit data Efficiency is improved. In addition, since the information indicating the initialized variable length code table is encoded and placed at a position where it can be obtained prior to the encoded predetermined unit data, the variable length code indicated by the information is obtained at the time of decoding. It is possible to correctly decode the predetermined unit data encoded using the table as an initial value.
[0043]
  Claim21The variable length coding device described in 1 is a variable length coding device that codes each predetermined unit data with reference to a parameter table, and includes initialization means, parameter table information acquisition means, and parameter table information coding. Means, parameter acquisition means, sub data encoding means, and information encoded data arrangement means. The initialization means sets the parameter table to initial values. The parameter table information encoding means encodes information relating to the initialized parameter table. The parameter acquisition unit acquires an encoding parameter used for encoding each sub data constituting the predetermined unit data from the parameter table. The sub data encoding means performs variable length encoding on the sub data with reference to the acquired encoding parameter. The information encoded data arrangement means arranges and outputs the information related to the encoded parameter table at a position where it can be acquired prior to the encoded predetermined unit data.
[0044]
In this encoding apparatus, since the sub data encoding unit uses the encoding parameter acquired from the parameter table when encoding the sub data, the compression efficiency when encoding the predetermined unit data is improved. Further, since the information regarding the initialized parameter table is encoded by the parameter table information encoding unit, and further arranged at a position that can be acquired before the predetermined unit data encoded by the information encoded data arrangement unit, At the time of decoding, a parameter table is acquired based on the information, and predetermined unit data encoded using the parameter table as an initial value can be correctly decoded.
[0046]
  Claim22The variable length coding device described in 1 is a variable length coding device that codes each predetermined unit data while switching the variable length code table, and includes an initialization unit, a variable length code table information coding unit, Long code table selection means, sub-data encoding means, and information encoded data arrangement means are provided. The initialization means sets the variable length code table to an initial value. The variable length code table information encoding means encodes information indicating the initialized variable length code table. The variable length code table selection means selects a variable length code table used for encoding each sub data constituting the predetermined unit data. The sub data encoding means encodes the sub data with reference to the selected variable length code table. The information encoded data arrangement means arranges and outputs the information indicating the encoded variable length code table at a position where it can be acquired before the encoded predetermined unit data.
[0047]
In this encoding apparatus, since the variable length code table selected when the sub data encoding unit encodes the sub data is used, the compression efficiency when encoding the predetermined unit data is improved. The information indicating the initialized variable-length code table is encoded by the variable-length code table information encoding means, and is further obtained at a position that can be acquired before the predetermined unit data encoded by the information encoded data arrangement means. Therefore, at the time of decoding, the variable length code table indicated by the information can be acquired, and the predetermined unit data encoded using the variable length code table as an initial value can be correctly decoded.
[0049]
  Claim23Is a bit stream generated by a variable-length encoding method that encodes each predetermined unit data with reference to the parameter table. The variable length encoding method is claimed in claim1-11 or 13-19The variable length encoding method according to any one of the above.
[0050]
In this bit stream, the effect of each variable-length encoding method can be obtained, such as improvement in compression efficiency when encoding predetermined unit data.
[0051]
DETAILED DESCRIPTION OF THE INVENTION
1. First embodiment
(1) Configuration of variable length coding device
(1) Variable length coding apparatus according to the present invention
FIG. 1 is a schematic block diagram of a variable length coding apparatus 1 as an embodiment of the present invention. The variable length coding device 1 is a device for performing variable length coding on input data and generating a bit stream. In particular, the variable-length coding apparatus 1 is characterized in that arithmetic coding is adopted as a main coding method. Arithmetic coding refers to a coding method that improves coding efficiency by dynamically updating a probability table in accordance with the occurrence probability of an actually generated symbol.
[0052]
Although various types of data can be input to the variable length coding apparatus 1, in this embodiment, description will be made assuming that image data is input. That is, the variable-length encoding device 1 has a function of entropy encoding the information-converted image signal. Particularly in the MPEG system, the image data input to the variable length coding apparatus 1 is a quantized DCT coefficient, a motion vector, or the like.
[0053]
The variable length encoding device 1 mainly includes a data encoding unit 2 and a header encoder 3.
The data encoding unit 2 is a device for arithmetically encoding data other than the header for each predetermined unit data, and includes an arithmetic encoder 7, a probability table updater 8, and an initialization unit 9. . Note that the predetermined unit data here means a picture or a slice in the case of image data. Each predetermined unit data is composed of a plurality of sub data. When the predetermined unit data is a picture, the sub data is a slice, a macro block or a block. When the predetermined unit data is a slice, the sub data is a macro block. Or it is a block.
[0054]
When the data is input, the arithmetic encoder 7 outputs the generated data to the probability table updater 8 and encodes the data based on the probability table or codeword output from the probability table updater 8. It is a device.
The probability table updater 8 has a function of updating the probability table. While updating the probability table according to the occurrence probability of the generated data output from the arithmetic encoder 7, the probability table, that is, the code word Is output to the arithmetic encoder 7.
[0055]
The initialization unit 9 is a device for outputting a probability table initialization command to the probability table updater 8.
The header encoder 3 is a device for encoding header data by a fixed encoding method. The fixed encoding method refers to a method in which a code word corresponding to each code does not change during encoding, and includes a fixed-length encoding method and a variable-length encoding method using a fixed variable-length code table. Since a fixed encoding method is used, the header data can be easily encoded.
[0056]
On the other hand, an encoding method in which a code word corresponding to each code changes is called an adaptive encoding method. Further, adaptive coding methods include a static coding method that simply switches a table representing a relationship between codes and codewords corresponding to the codes, and dynamic coding that sequentially updates the codewords themselves. In other words, the static encoding method means that it is not a dynamic encoding method (an encoding method such as arithmetic encoding that dynamically changes the correspondence between codes and codewords corresponding thereto). Therefore, the compression rate can be improved by the dynamic coding method than by the static coding method.
[0057]
The variable length encoding apparatus 1 further includes a probability table encoder 6. The probability table encoder 6 is a device for encoding the probability table output from the probability table updater 8 by a fixed encoding method. Since a fixed encoding method is used, the probability table is easily encoded.
The multiplexer 4 outputs the header encoded data output from the header encoder 3, the encoded data other than the header output from the arithmetic encoder 7, and the probability table encoder 6. It is an apparatus for generating a code string (bit stream) by multiplexing the coming probability table encoded data and outputting it to a transmission path.
[0058]
(2) General image encoding device
Here, the configuration of a general image encoding apparatus 100 is shown using the block diagram of FIG. The image coding apparatus 100 mainly includes a motion estimation / compensation unit (ME / MC) 102, a subtractor 103, a transform coding unit 104, a transform decoding unit 105, an adder 106, and entropy coding. Part 107. The above-described data encoding unit 2 corresponds to the entropy encoding unit 107.
[0059]
The motion estimation / compensation unit 102 receives the input image data PicIn and generates prediction block data for the encoding target block in the encoding target picture. The motion estimation / compensation unit 102 includes a motion detector (ME) 111, a motion compensator (MC) 112, and a picture memory 113.
The motion detector 111 receives the input image PicIn and calculates a motion vector MV that is the motion of the input image PicIn with respect to the reconstructed image in the picture memory 113. The motion detector 111 outputs the motion vector MV to the motion compensator 112, the picture memory 113, and the entropy encoding unit 107. The motion compensator 112 creates image data corresponding to motion as a reference image from the reconstructed image stored in the picture memory 113 based on the motion vector MV from the motion detector 111 (motion compensation), The result is output to the subtracter 103 and the adder 106. The picture memory 113 stores the reconstructed image, and the reconstructed image is read by the motion detector 111 and the motion compensator 112. In the case of intra-screen coding, the pixel value of the motion-compensated reference image is set to 0, and the subtracter 103 and the adder 106 output the input data as it is without performing subtraction and addition.
[0060]
The subtractor 103 obtains a difference value between the target data of the input image PicIn and the reference image from the motion compensator 112, and outputs the difference data that is the difference value to the transform coding unit 104.
The transform coding unit 104 performs data compression processing on the difference data from the subtractor 103 and outputs compressed data. The transform coding unit 104 includes an orthogonal transformer 114 and a quantizer 115. The orthogonal transformer 114 performs a discrete cosine transform process (DCT process) for transforming spatial domain data, which is a type of orthogonal transform process, into frequency domain data on the difference data from the subtractor 103, and converts the data into Output to the quantizer 115. The quantizer 115 quantizes the DCT data from the orthogonal transformer 114 in a predetermined quantization step, and outputs the quantized coefficients to the transform decoding unit 105 and the entropy coding unit 107.
[0061]
The transform decoding unit 105 performs data decompression processing on the output from the transform coding unit 104 and outputs decompressed data. The transform decoding unit 105 includes an inverse quantizer 116 and an inverse orthogonal transformer 117. The inverse quantizer 116 inversely quantizes the output from the transform coding unit 104 in the quantization step and outputs it to the inverse orthogonal transformer 117. The inverse orthogonal transformer 117 performs an inverse discrete cosine transform process (IDCT process) for transforming the frequency domain data into the spatial domain data on the output from the inverse quantizer 116 to convert the expanded data into a prediction residual. The signal is output to the adder 106 as a signal.
[0062]
When the macroblock is subjected to inter-frame motion compensation prediction encoding, the adder 106 re-generates image data obtained by adding the prediction residual signal from the transform decoding unit 105 and the reference image from the motion compensator 112. The image is output to the picture memory 113 as a constituent image.
The entropy encoding unit 107 performs entropy encoding on the quantized data after DCT from the DCT encoding unit 104. Entropy coding is coding that converts 0 and 1 bit strings into fewer bit strings using the statistical properties of the bit strings.
[0063]
(2) Operation of variable length coding device
(1) Operation of data encoder and probability table encoder
FIG. 3 is a flowchart showing a schematic operation of the data encoding unit 2 and the probability table encoder 6.
In step S1, the initialization unit 9 outputs an initialization command to the probability table updater 8, and the probability table updater 8 sets a predetermined probability table to an initial value for each predetermined unit data. In this initialization operation, the initialization unit 9 and the probability table updater 8 initialize the probability table based on the initialization information in the header. As initialization information of the probability table, common data of the entire predetermined unit data may be used. As an example of common data effective for initialization, for example, when the predetermined unit data is a picture, a picture coding type (an intra-picture coded picture, an inter-picture predictive coded picture, an inter-picture predictive coded picture) Distinction), and the initial value of the quantization parameter of the picture. Note that common data that has little relation to initialization includes parameters such as picture encoding order, picture display order, motion vector, and image size. When the predetermined unit data is a slice, there are a slice encoding type (discrimination between an intra-screen encoded slice, an inter-frame prediction encoded slice, and an inter-screen predictive encoded slice), an initial value of a slice quantization parameter, and the like. .
[0064]
In step S2, the arithmetic encoder 7 and the probability table updater 8 cooperate to encode sub-data arithmetically. More specifically, the arithmetic encoder 7 acquires the probability used for encoding the sub-data from the probability table based on the probability table output from the probability table updater 8, and further refers to the probability. Encode the data. Specifically, the predetermined unit data is a picture or a slice, and a macroblock or block that is sub-data is encoded.
[0065]
In step S3, the probability table updater 8 updates the probability table of the generated data with the generated data. In this embodiment, this updated probability table is used when arithmetically encoding the next sub-data.
In step S4, it is determined whether or not encoding of all sub data has been completed. If it is determined that all have not been completed, the process returns to step S2, and the above-described operation is repeated.
[0066]
In step S5, it is determined whether or not the probability table is to be encoded. If the probability table is to be encoded, the process proceeds to step S6. If not, step S6 is skipped. The arithmetic encoder 7 creates an initial value flag for identifying the determination result, and outputs it to the multiplexer 4 together with the encoded data. Note that the probability table used as the initial value is not encoded because, for example, the number of data until the next probability table is initialized is sufficiently large (that is, the total number of data required for sufficient learning is The ratio of the data to the number of data is small, so learning efficiency is good), or the probability table used as the initial value almost matches the optimal probability table obtained by learning, or completely matches It is.
[0067]
In step S6, the probability table of the probability table updater 8 is encoded by the probability table encoder 6.
In the encoding method described above, the probability table is updated based on the value of the encoded sub data except for the encoding of the first sub data, and the probability is obtained from the probability table. improves. In particular, since the probability table used for encoding the sub data is a probability table updated by arithmetic encoding of the immediately preceding sub data, it can be encoded in real time, and the encoding speeds up. Moreover, sufficient compression efficiency can be obtained by the spatial or temporal correlation of images.
[0068]
The initial value of the predetermined unit data may be arithmetically encoded using a probability table obtained by its own arithmetic encoding. In that case, even when the contents of the predetermined unit data and the immediately preceding predetermined unit data are greatly different, the compression efficiency is high.
The flowchart shown in FIG. 4 is a modification of the flowchart shown in FIG. 3. When the code table of the probability table updater 8 is encoded by the probability table encoder 6 in step S 6, only a part of the probability table is displayed. The case of encoding is shown. In this case, the amount of code can be reduced, and further, by adopting a method of encoding only a portion corresponding to encoded data having a high occurrence probability in the acquired probability table, the decoding is performed. It can decrypt correctly enough. A portion corresponding to data having a low occurrence probability is initialized with a predetermined initial value. In step S7, a portion that has not been encoded in the probability table is initialized with a predetermined initial value. In other words, when only the important part of the probability table is encoded, all the probabilities in the probability table are specified when the encoding of the probability table is instructed by initializing the unencoded part with a predetermined initial value. Can be set to a specific value regardless of the values in the probability table so far, and the probability tables can be matched between the encoding device and the decoding device.
[0069]
(2) Header encoder operation
The header encoder 3 encodes the input header data and outputs the header encoded data to the multiplexer 4.
(3) Multiplexer operation
The multiplexer 4 generates a predetermined bit stream from the data output from the arithmetic encoder 7, the header encoder 3, and the probability table encoder 6, and outputs it to the transmission path.
[0070]
FIG. 5 is a diagram illustrating an example of a stream structure of image data. As shown in FIG. 5, the stream is composed of a common information area such as a header and a GOP (Group Of Picture) area. The GOP area is composed of a common information area such as a header and a plurality of picture areas. The picture area is composed of a common information area such as a header and a plurality of slice data areas. The slice data area includes a common information area such as a header and a plurality of macro block data areas.
[0071]
In addition, when the stream is transmitted not by a continuous bit stream but by a packet or the like which is a unit of chopped data, the header part and the data part other than the header may be separated and transmitted separately. In that case, the header part and the data part do not become one bit stream as shown in FIG. However, in the case of a packet, even if the transmission order of the header part and the data part is not continuous, only the header part corresponding to the corresponding data part is transmitted in another packet, and it becomes one bit stream. Even if not, the concept is the same as the case of the bit stream described in FIG.
[0072]
FIG. 6 is a diagram illustrating another example of the stream structure of image data. This stream structure has the same basic structure as the stream structure shown in FIG. Therefore, only different points will be described below. In this stream structure, each GOP and picture has no header, and only a slice has a header. The GOP and the picture have various parameters as common information at the head. The parameter corresponds to the header, but the difference is that the parameter is effective even in the subsequent picture unless the parameter is updated. For example, the parameter corresponding to the picture header means all the picture headers of the picture until the parameter corresponding to the picture header is transmitted next.
[0073]
FIG. 7 shows a data structure of a bit stream output from the multiplexer 4 when the predetermined unit data is a picture of image data. A picture is generally composed of a header and a plurality of slices as encoded sub data. The header represents the start of encoded data in one picture, and is common to each slice (for example, picture encoding type (discrimination between intra-picture encoded picture and inter-picture predictive encoded picture), picture Are mainly composed of parameters such as numbers indicating the encoding order or display order.
[0074]
An initial value flag is arranged in the header. The initial value flag is a flag for identifying whether or not the probability table used as the initial value is encoded. When the probability table is encoded, the flag is “1”. When the probability table is not encoded, It becomes “0”.
Further, as shown in FIG. 7A, probability table encoded data as a probability table initial value is arranged in the header. When the probability table is not encoded, the probability table encoded data is not output from the probability table encoder 6 to the multiplexer 4, and as a result, as shown in FIG. The probability table encoded data is not arranged.
[0075]
As described above, in the header, the common data part which means the original header and is encoded by the header encoder 3, the initial value flag generated by the arithmetic encoder 7, the probability table code There is probability table encoded data encoded by the encoder 6. More specifically, the common data portion is divided into a head side and an image data side, and an initial value flag and probability table encoded data are inserted in that order.
[0076]
FIG. 8 shows a data structure of a bit stream output from the multiplexer 4 when the predetermined unit data is a slice of image data. A slice is generally composed of a header and a plurality of blocks (or macroblocks) as encoded sub data. The header represents the start of encoded data in one slice, and is mainly composed of data common to each slice (parameters such as a start code and a quantization scale). Further, an initial value flag is arranged in the header. The initial value flag is a flag for identifying whether or not the probability table used as the initial value is encoded. When the probability table is encoded, the flag is “1”. When the probability table is not encoded, It becomes “0”.
[0077]
Furthermore, as shown in FIG. 8A, probability table encoded data as a probability table initial value is arranged in the header. When the probability table is not encoded, the probability table encoder 6 does not output the probability table encoded data to the multiplexer 4, and as a result, as shown in FIG. The probability table encoded data is not arranged.
[0078]
As described above, in the header, the common data portion which means the original header and is encoded by the header encoder 3, the initial value flag generated by the arithmetic encoder 7, and the probability table code There is probability table encoded data encoded by the encoder 6. More specifically, the common data portion is divided into a head side and an image data side, and an initial value flag and probability table encoded data are inserted in that order.
[0079]
In the embodiment, the probability table itself is encoded and embedded in the header as information on the probability table. Instead, information indicating the acquired probability table (for example, a calculation formula, a flag indicating the probability table) Information indicating these combinations) may be encoded and embedded in the header. In that case, since the probability table itself is not encoded, the amount of encoding can be reduced.
[0080]
Furthermore, as the information indicating the acquired probability table, for example, a part of the common data in the header can be used. In that case, since the information also has a function as a part of common data for the predetermined unit data, the amount of encoding can be further reduced. As an example of the common data, for example, when the predetermined unit data is a picture, the picture coding type (the distinction between the intra-picture coded picture, the inter-picture predictive coded picture, and the inter-picture predictive coded picture), the picture There are initial values of quantization parameters. Note that common data that has little relation to initialization includes parameters such as picture encoding order, picture display order, motion vector, and image size. When the predetermined unit data is a slice, there are a slice encoding type (discrimination between an intra-screen encoded slice, an inter-frame prediction encoded slice, and an inter-screen predictive encoded slice), an initial value of a slice quantization parameter, and the like. .
[0081]
Furthermore, the initial value flag may be omitted by always updating the initial value, that is, by always sending the initial value.
(3) Configuration of variable length decoding device
(1) Variable length decoding apparatus according to the present invention
FIG. 9 is a schematic block diagram of the variable length decoding device 11 as an embodiment of the present invention. The variable length decoding device 11 is a device for decoding data encoded by the variable length encoding device 1, for example. When image data is targeted, the variable length decoding device 11 has a function of entropy decoding the data to obtain converted image information.
[0082]
The variable length decoding device 11 mainly includes a data decoding unit 12 and a header decoder 13.
The data decoder 12 is a device for arithmetically decoding data other than the header for each predetermined unit data, and includes an arithmetic decoder 17, a probability table updater 18, and an initialization unit 19. . Note that the predetermined unit data here means a picture or a slice in the case of image data.
[0083]
When the encoded data is input, the arithmetic decoder 17 outputs the generated data to the probability table updater 18 and encodes the data based on the probability table or codeword output from the probability table updater 18. An apparatus for decoding data.
The probability table updater 18 has a function of updating the probability table. While updating the probability table according to the occurrence probability of the generated data output from the arithmetic decoder 17, the probability table, that is, the code word is updated. It is a device for outputting to the arithmetic decoder 17.
[0084]
The initialization unit 19 is a device for outputting a probability table initialization command to the probability table updater 18.
The header decoder 13 is a device for decoding the header encoded data by a fixed decoding method.
The variable length decoding device 11 further includes a probability table decoder 16. The probability table decoder 16 is a device for decoding probability table encoded data by a fixed decoding method.
[0085]
The separator 14 is a device for separating and outputting the bit stream into header encoded data, encoded data other than the header, and probability table encoded data.
(2) General image decoding apparatus
Here, the internal configuration of a general image decoding apparatus 200 will be described using the block diagram of FIG. The image decoding apparatus 200 mainly includes a prediction data generation unit 202, a transform decoding unit 204, an adder 206, and an entropy decoding unit 207. The data decoding unit 12 described above corresponds to the entropy decoding unit 207.
[0086]
The entropy decoding unit 207 performs entropy decoding on the input stream data based on the probability table, and outputs the data to the transform decoding unit 204 and the prediction data generation unit 202. Entropy decoding is processing in the reverse direction of entropy encoding, and in this embodiment is arithmetic decoding.
The prediction data generation unit 202 includes a motion compensator 212 and a picture memory 213. In the picture memory 213, the output image is output from the adder 206 as a reference image and stored. Based on the motion vector MV decoded by the entropy decoding unit 207, the motion compensator 212 creates image data corresponding to the motion vector MV from the reference image stored in the picture memory 213 as a predicted image (motion Compensation), and outputs it to the adder 206. In the case of intra-screen coding, the pixel value of the motion-compensated reference image is set to 0, and the adder 206 outputs the input data without performing addition. The decoded motion vector is stored in the picture memory 213.
[0087]
The transform decoding unit 204 performs a data expansion process on the output from the entropy decoding unit 207 and outputs the expanded data. The transform decoding unit 204 includes an inverse quantizer 214 and an inverse orthogonal transformer 215. The inverse quantizer 214 inversely quantizes the output from the entropy decoding unit 207 and outputs it to the inverse orthogonal transformer 215. The inverse orthogonal transformer 215 subjects the output from the inverse quantizer 214 to inverse discrete cosine transform processing (IDCT processing) that converts frequency domain data into spatial domain data, and adds the expanded data to the adder 206. Output to.
[0088]
The adder 206 outputs image data obtained by adding the image data from the transform decoding unit 204 and the predicted image from the motion compensator 212 to the outside as an output image, and further outputs it to the picture memory 213.
(4) Operation of variable length decoding device
(1) Operation of separator
The separator 14 separates the bit stream, outputs the header encoded data to the header decoder 13, outputs the encoded data other than the header to the arithmetic decoder 17, and there is probability table encoded data Outputs it to the probability table decoder 16. The header decoder 13 outputs the initial value flag in the decoded header to the initialization unit 19.
[0089]
(2) Operation of header decoder
The header decoder 13 decodes the header encoded data output from the separator 14 and outputs header data.
(3) Operation of data decoder and probability table encoder
FIG. 11 is a flowchart showing a schematic operation of the data decoding unit 12 and the probability table decoder 16.
[0090]
In step S21, the initialization unit 19 initializes the probability table updater 18, and a predetermined probability table is set to an initial value.
In step S22, the initialization unit 19 determines whether or not the probability table is encoded by the initial value flag embedded in the header. If it is determined that the probability table is encoded, the process proceeds to step S23, and step S23, in which it is determined that the probability table is not encoded, is skipped and the process proceeds to step S24.
[0091]
In step S23, the probability table updater 18 updates the probability table with the probability table output from the probability table decoder 16. The probability table encoded data input to the probability table decoder 16 may be all of the probability table or only a part of the probability table. Even if only a part of the probability table is encoded, if the part corresponding to the encoded data having a high occurrence probability is encoded in the acquired probability table, it is correctly decoded in the decoding operation described later. Can be When only a part of the code table is encoded, the unencoded probability table is initialized with the same value as in step S21.
[0092]
If the information indicating the probability table is encoded instead of the probability table itself, the information is first decoded, and then the probability table updater 18 selects the probability table indicated by the information.
In step S24, the arithmetic decoder 17 and the probability table updater 18 cooperate to arithmetically decode the sub data. Specifically, the arithmetic decoder 17 decodes the encoded sub-data based on the probability table from the probability table updater 18 and outputs data. When the predetermined unit data is, for example, a picture, the slice is decoded. In step S26, the generated data of the arithmetic decoder 17 is output to the probability table updater 18, and the probability table updater 18 rewrites the probability table with the generated data. This updated probability table is used when the next sub-data is decoded in step S24.
[0093]
In step S25, it is determined whether or not the decoding of all the sub data has been completed. If it is determined that all have not been completed, the process returns to step S24 and the above-described operation is repeated.
(5) Effects of the above encoding method and decoding method
(1) In the encoding and decoding methods described above, each sub-data is encoded based on a probability table obtained by arithmetic encoding, so that the compression efficiency is improved. In other words, with this encoding and decoding method, the total number of data is so small that the ratio of the number of encoded data until the optimal encoding can be obtained by learning cannot be ignored. However, the compression efficiency can be increased by high learning efficiency.
[0094]
In addition, since the initialized probability table is encoded and arranged in the header of the encoded predetermined unit data, the encoded predetermined unit with the probability table as an initial value at the time of decoding Data can be correctly decrypted.
(2) In the encoding and decoding methods described above, the probability table is encoded in units of pictures or slices, and therefore the frequency with which the probability table is encoded is appropriate. First, even if a part of the encoded data to be learned due to transmission path error is missing and the same probability table as that at the time of encoding cannot be reproduced at the time of decoding, the probability table encoded at high frequency is decoded. By doing so, there is no case where an image cannot be reproduced for more than a few seconds. When this is in units of streams or GOPs, the probability table encoding frequency is low, and if a part of the encoded data to be learned is lost in the transmission path and the probability table cannot be reproduced, the image cannot be reproduced for several seconds or more. The state which becomes will arise. Second, the redundancy of the data amount of the probability table does not increase. When this is a block (or macroblock) unit, the redundancy of data for initialization becomes too large.
[0095]
(3) In the encoding and decoding methods described above, the compression efficiency of the main body of image data is increased by arithmetic encoding. On the other hand, the header which is common data is simply and statically encoded by a fixed encoding method. More specifically, the original header portion of the header is encoded by a fixed encoding method, and the inserted probability table initial value is also encoded by a fixed encoding method. Originally, the header has a lower compression effect than the main body of the image data, so even if a fixed encoding method is used, there is no particular problem in terms of overall compression efficiency.
[0096]
2. Second embodiment
(1) Configuration of variable length coding device
FIG. 12 is a block diagram of a schematic configuration of a variable length coding device 21 as an embodiment of the present invention. The variable length coding device 21 is a device for variable length coding of input data and generating a bit stream. In particular, the variable length coding device 21 is characterized by switching a plurality of variable length code tables as a main coding method. A typical example of variable length coding is Huffman coding. In the following description, Huffman coding will be described as an example.
[0097]
There are various types of data input to the variable-length encoding device 21. In this embodiment, description will be made assuming that image data is input. That is, the variable length encoding device 21 has a function of entropy encoding the information-converted image signal. Particularly in the MPEG system, the image data input to the variable length coding device 21 is a quantized DCT coefficient, a motion vector, or the like.
[0098]
The variable length encoding device 21 mainly includes a data encoding unit 22 and a header encoder 23.
The data encoding unit 22 is a device for Huffman encoding data other than the header for each predetermined unit data, and includes a variable length encoder 27, a code table selection unit 28, and an initialization unit 29. Yes. Each predetermined unit data is composed of a plurality of sub data. When the predetermined unit data is a picture, the sub data is a slice, a macro block or a block. When the predetermined unit data is a slice, the sub data is a macro block. Or it is a block. The data encoding unit 22 corresponds to the entropy encoding unit 107 in the general image encoding apparatus 100 shown in FIG.
[0099]
When the data is input, the variable length encoder 27 outputs the generated data to the code table selection unit 28, and also outputs the data based on the variable length code table 30 switched by the code table selection unit 28, that is, the code word. An apparatus for encoding.
The code table selection unit 28 is a device for outputting a code table selection signal to the switch 25 in accordance with the occurrence probability of the generated data output from the variable length encoder 27.
[0100]
The switch 25 is a device for switching the variable length code table 30 used by the variable length encoder 27 in encoding according to the code table selection signal output from the code table selection unit 28.
The initialization unit 29 is a device for outputting a code table selection signal initialization command to the code table selection unit 28.
[0101]
FIG. 13 shows a specific example of the variable length code table 30. Each of the variable length code tables 30a to 30c is composed of a combination of data and a corresponding bit string. In these variable length code tables 30a to 30c, a common bit string is adopted for the white background portion (data 1 and later in the code table 30a, data 2 and later in the code table 30b, and data 4 and later in the code table 30c). . Further, different bit strings are employed for the shaded portions (data 0 in the code table 30a, data 0 and 1 in the code table 30b, and data 0 to 3 in the code table 30c). The shaded portion data has a relatively high occurrence probability. If the data with a high occurrence probability can be processed with 1 bit, the code table 30a is selected. If the data with a high occurrence probability can be processed with 2 bits, a code is selected. If the table 30b is selected and a code having a high occurrence probability can be processed with 3 bits, the code table 30c is selected. On the other hand, the white background code has a relatively low occurrence probability. In this way, by arranging a common bit string for data with a relatively low probability of occurrence, it is possible to prepare different variable-length code tables with a small amount of data, reduce the memory, and simplify the encoding work. become.
[0102]
The header encoder 23 is an apparatus for encoding header data by a fixed encoding method.
The variable length encoding device 21 further includes a selection signal encoder 26. The selection signal encoder 26 is a device for encoding the code table selection signal output from the code table selection unit 28 using a fixed encoding method.
[0103]
The multiplexer 24 outputs the header encoded data output from the header encoder 23, the encoded data other than the header output from the variable length encoder 27, and the selection signal encoder 26. This is a device for multiplexing the selection signal encoded data and generating a code string (bit stream) and outputting it to the transmission line.
[0104]
(2) Operation of variable length coding device
(1) Operation of data encoder and selection signal encoder
FIG. 14 is a flowchart showing a schematic operation of the data encoder 22 and the selection signal encoder 26.
In step S31, the initialization unit 29 outputs an initialization command to the code table selection unit 28, and the code table selection unit 28 outputs a predetermined selection table code signal to the switch 25. As a result, the switch 25 selects the predetermined variable length code table 30 as the initial value of the predetermined unit data encoding. In this initialization operation, the initialization unit 29 and the code table selection unit 28 select a predetermined variable length code table 30 based on the initialization information in the header. In FIG. 12, the lines through which the header data is sent to the initialization unit 29 and the code table selection unit 28 are omitted.
[0105]
In step S32, the variable length encoder 27 and the code table selector 28 cooperate to perform Huffman encoding of the sub data. More specifically, the code table selection unit 28 outputs a code table selection signal to the switch 25 based on the data generated so far. The switch 25 switches the variable length code table 30 based on the code table selection signal, and the variable length encoder 27 encodes the sub-data with the code word of the selected variable length code table 30. Each predetermined unit data is composed of a plurality of sub-data. Specifically, when the predetermined unit data is a picture, a slice, a macroblock or a block is encoded, and when the predetermined unit data is a slice, A macroblock or block is encoded.
[0106]
In step S33, the sub data is output to the code table selection unit 28, and the code table selection unit 28 updates the frequency of occurrence of the sub data and next switches the switch 25 to indicate which code table should be selected. To do. In this embodiment, this code table is used when the next sub-data is variable-length encoded.
In step S34, it is determined whether or not encoding of all sub data has been completed. If it is determined that all have not been completed, the process returns to step S32 and the above-described operation is repeated.
[0107]
In step S35, it is determined whether or not the information (that is, the code table selection signal) indicating the variable length code table 30 used as the initial value is to be encoded. When encoding, it progresses to step S36, and when not encoding, step S36 is skipped. Note that the variable length code table used as the initial value is not encoded, for example, because the number of data until the variable length code table is initialized next is sufficiently large (that is, necessary for sufficient learning). When the ratio of the number of data to the total number of data is small and learning efficiency is good), or when the variable length code table used as the initial value matches the optimal code table selected by learning is there. The variable length encoder 27 creates an initial value flag for identifying the determination result, and outputs it to the multiplexer 24 together with the encoded data.
[0108]
In step S 36, the code table selection unit 28 outputs a code table selection signal indicating the variable length code table to the selection signal encoder 26.
In the encoding method described above, since the variable length code table is selected based on the value of the encoded sub data except for the encoding of the first sub data, the compression efficiency of the sub data is improved. In particular, the variable-length code table used for sub-data encoding is a variable-length code table selected by the Huffman encoding of the immediately preceding sub-data, so that it can be encoded in real time and the encoding speeds up. In addition, sufficient compression efficiency can be obtained by spatial or temporal correlation of images.
[0109]
(2) Header encoder operation
The header encoder 23 encodes the input header data and outputs it to the multiplexer 24.
(3) Multiplexer operation
The multiplexer 24 generates a predetermined bit stream from the data output from the variable length encoder 27, the header encoder 23, and the selection signal encoder 26, and outputs it to the transmission path.
FIG. 15 shows a data structure of a bit stream output from the multiplexer 24 when the predetermined unit data is a picture of image data. A picture is generally composed of a header and a plurality of slices as encoded sub data. The header represents the start of encoded data in one picture, and data common to each slice (for example, picture encoding type (intra-picture encoded picture, inter-picture predictive encoded picture, and inter-picture prediction). (Encoded picture distinction) and picture quantization parameter initial value). Note that common data that has little relation to initialization includes parameters such as picture coding order, picture display order motion vector, and image size.
[0110]
An initial value flag is arranged in the header. The initial value flag is a flag for identifying whether or not the information indicating the variable length code table is encoded. When the information indicating the variable length code table is encoded, the initial value flag is “1” and is encoded. If not, it will be “0”.
Further, in the header, as shown in FIG. 15A, selection signal encoded data indicating a variable-length code table to be used (for example, a calculation formula, a flag indicating a probability table, and information indicating a combination thereof). Has been placed. When the information indicating the variable length code table is not encoded, the selection signal encoded data is not output from the selection signal encoder 26 to the multiplexer 24, and as a result, FIG. As shown in FIG. 5, selection signal encoded data is not arranged in the bit stream.
[0111]
As described above, in the header, the common data portion which means the original header and is encoded by the header encoder 23, the initial value flag generated by the variable length encoder 27, the selection signal There is selection signal encoded data encoded by the encoder 26. More specifically, the common data portion is divided into a head side and an image data side, and an initial value flag and selection signal encoded data are inserted in that order.
[0112]
FIG. 16 shows a bit stream data structure output from the multiplexer 24 when the predetermined unit data is a slice of image data. A slice is generally composed of a header and a plurality of blocks (or macro blocks). The header represents the start of encoded data in one slice, and is mainly composed of data common to each slice (parameters such as a start code and a quantization scale).
[0113]
Common data includes a slice coding type (discrimination between an intra-picture coded slice, an inter-picture predictive coded slice, and an inter-picture predictive coded slice), an initial value of a quantization parameter of the slice, and the like.
Further, an initial value flag is arranged in the header. The initial value flag is a flag for identifying whether or not the information indicating the variable-length code table is encoded, and is “1” when the information is encoded, and “0” when the information is not encoded. "
[0114]
Further, as shown in FIG. 16A, selection signal encoded data indicating a variable length code table to be used is arranged in the header. When the variable length code table is not encoded, the selection signal encoded data is not output from the selection signal encoder 26 to the multiplexer 24. As a result, as shown in FIG. In the bitstream, no selection signal encoded data is arranged.
[0115]
As described above, in the header, the common data portion which means the original header and is encoded by the header encoder 23, the initial value flag generated by the variable length encoder 27, the selection signal There is selection signal encoded data encoded by the encoder 26. More specifically, the common data portion is divided into a head side and an image data side, and an initial value flag and selection signal encoded data are inserted in that order.
[0116]
In this embodiment, the variable length code table itself is not encoded and embedded in the header, but selection signal encoded data indicating the variable length code table to be used is embedded in the header. Therefore, since the variable length code table itself is not encoded, the amount of encoding can be reduced.
Furthermore, as the selection signal encoded data indicating the variable length code table to be used, for example, a part of the common data in the header can be used. In that case, since the data also has a function as a part of common data for the predetermined unit data, the amount of encoding can be further reduced. As an example of the common data, for example, when the predetermined unit data is a picture, the picture coding type (the distinction between the intra-picture coded picture, the inter-picture predictive coded picture, and the inter-picture predictive coded picture), the picture There are initial values of quantization parameters. Note that common data that has little relation to initialization includes parameters such as picture encoding order, picture display order, motion vector, and image size. When the predetermined unit data is a slice, there are a slice encoding type (discrimination between an intra-screen encoded slice, an inter-frame prediction encoded slice, and an inter-screen predictive encoded slice), an initial value of a slice quantization parameter, and the like. .
[0117]
Furthermore, the initial value flag may be omitted by always updating the initial value.
(3) Configuration of variable length decoding device
FIG. 17 is a schematic block diagram of the variable length decoding device 31 as an embodiment of the present invention. The variable length decoding device 31 is a device for decoding the data encoded by the variable length encoding device 21, for example. When image data is targeted, the variable length decoding device 31 has a function of entropy decoding the data to obtain converted image information.
[0118]
The variable length decoding device 31 mainly includes a data decoding unit 32 and a header decoder 33.
The data decoding unit 32 is a device for Huffman decoding data other than the header for each predetermined unit data, and includes a variable length decoder 37 and a selection signal decoder 36. Note that the predetermined unit data here means a picture or a slice in the case of image data. The data decoding unit 32 corresponds to the entropy decoding unit 207 in the general image decoding apparatus 200 shown in FIG. 10 described above.
[0119]
The variable length decoder 37 is a device for decoding encoded data based on the codeword of the variable length code table 30 switched by the switch 35.
The selection signal decoder 36 is a device for decoding the selection signal encoded data output from the separator 34 by a fixed decoding method and outputting it to the switch 35.
[0120]
The switch 35 is a device for switching the variable length code table 30 used by the variable length decoder 37 in decoding according to the code table selection signal output from the selection signal decoder 36.
The initialization unit 39 is a device for outputting an initialization command to the selection signal decoder 36.
[0121]
The header decoder 33 is a device for decoding the header encoded data by a fixed decoding method.
The separator 34 is a device for separating and outputting the bit stream into header encoded data, encoded data other than the header, and selection signal encoded data.
(4) Operation of variable length decoding device
(1) Operation of separator
The separator 34 separates the bit stream, outputs the header encoded data to the header decoder 33, outputs the encoded data other than the header to the variable length decoder 37, and has the selection signal encoded data. If so, it is output to the selection signal decoder 36. The header decoder 33 outputs the initial value flag in the header to the initialization unit 39.
[0122]
(2) Operation of header decoder
The header decoder 33 decodes the header encoded data output from the separator 34 and outputs header data.
(3) Operation of the data decryption unit
FIG. 18 is a flowchart showing a schematic operation of the data decoding unit 32.
[0123]
In step S51, the initialization unit 39 outputs an initialization command to the selection signal decoder 36, and the selection signal decoder 36 outputs a predetermined selection table code signal to the switch 35. As a result, the switch 35 selects the predetermined variable length code table 30 as the initial value for decoding the predetermined unit data.
In step S52, the variable length decoder 37 determines whether or not the information indicating the variable length code table to be used is encoded by the initial value flag embedded in the header. If it is determined that the information indicating the variable-length code table is encoded, the process proceeds to step S53, and step S53, which is determined not to be encoded, is skipped, and the process proceeds to step S54.
[0124]
In step S53, the switch 35 selects the variable length code table 30 indicated by the switch 35 based on the selection signal output from the selection signal decoder 36.
In step S54, the variable length decoder 37 performs Huffman decoding on the sub data. More specifically, the variable length decoder 37 decodes the encoded sub data based on the variable length code table 30 selected by the switch 35 and outputs the data. When the predetermined unit data is, for example, a picture, the slice is decoded. In step S56, the variable length decoder 37 selects the variable length code table 30 via the switch 35 based on the generated data. The selected variable length code table 30 is used when the next sub-data is decoded in step S54.
[0125]
In step S55, it is determined whether or not the decoding of all the sub data has been completed. If it is determined that all have not been completed, the process returns to step S52 to repeat the above-described operation.
(5) Effects of the above encoding method and decoding method
(1) In the encoding and decoding methods described above, each sub-data is encoded based on a variable length code table obtained by Huffman encoding, so that the compression efficiency is improved. In other words, with this encoding and decoding method, the total number of data is so small that the ratio of the number of encoded data until the optimal encoding can be obtained by learning cannot be ignored. However, the compression efficiency can be increased by high learning efficiency.
[0126]
Also, since the information indicating the initialized variable length code table is encoded and placed in the header of the encoded predetermined unit data, the variable length code table indicated by the information is displayed at the time of decoding. The encoded predetermined unit data can be correctly decoded as the initial value.
{Circle around (2)} In the encoding and decoding methods described above, since the variable length code table is encoded in units of pictures or slices, the frequency with which the information indicating the variable length code table is encoded is appropriate. First, even when the selection signal encoded data is destroyed due to a transmission path error, a state in which an image cannot be reproduced for several seconds or more does not occur. When this is in units of streams or GOPs, the frequency of encoding the information indicating the variable length code table is low, and when the selection signal encoded data is destroyed in the transmission path, the image cannot be reproduced for several seconds or more. It will occur. Second, the redundancy of the data amount of information indicating the variable length code table does not increase. When this is a block (or macroblock) unit, the redundancy of data for initialization becomes too large.
[0127]
(3) In the encoding and decoding methods described above, the compression efficiency of the main body of image data is increased by Huffman encoding that switches between a plurality of variable length code tables. On the other hand, the header which is common data is encoded by a fixed encoding method. More specifically, the original header portion of the header is encoded by a fixed encoding method, and information indicating the inserted variable-length code table is also encoded by a fixed encoding method. . Originally, the header has a lower compression effect than the main body of the image data, so even if a fixed encoding method is used, there is no particular problem in terms of overall compression efficiency.
[0128]
3. Embodiment of recording medium
Further, by recording a program for realizing the configuration of the variable length encoding method or variable length decoding method shown in each of the above embodiments on a storage medium such as a floppy disk, The processing shown in the form can be easily performed in an independent computer system.
[0129]
FIG. 19 is an explanatory diagram when the computer system is implemented using a floppy disk storing the variable-length encoding method or variable-length decoding method of the first embodiment.
FIG. 19B shows an external appearance, a cross-sectional structure, and a floppy disk when viewed from the front of the floppy disk, and FIG. 19A shows an example of a physical format of the floppy disk that is a recording medium body. The floppy disk FD is built in the case F, and on the surface of the disk, a plurality of tracks Tr are formed concentrically from the outer periphery toward the inner periphery, and each track is divided into 16 sectors Se in the angular direction. ing. Therefore, in the floppy disk storing the program, a variable length encoding method or a variable length decoding method as the program is recorded in an area allocated on the floppy disk FD.
[0130]
FIG. 19C shows a configuration for recording and reproducing the program on the floppy disk FD. When recording the program on the floppy disk FD, the variable length encoding method or variable length decoding method as the program is written from the computer system Cs via the floppy disk drive. When the variable length encoding method or variable length decoding method is constructed in a computer system by a program in a floppy disk, the program is read from the floppy disk by a floppy disk drive and transferred to the computer system.
[0131]
In the above description, a floppy disk is used as the recording medium, but the same can be done using an optical disk. Further, the recording medium is not limited to this, and any recording medium such as a CD-ROM, a memory card, and a ROM cassette that can record a program can be similarly implemented.
4). Application example of the present invention and system using the same
Furthermore, application examples of the moving picture coding method and the moving picture decoding method shown in the above embodiment and a system using the same will be described.
[0132]
FIG. 20 is a block diagram showing an overall configuration of a content supply system ex100 that implements a content distribution service. The communication service providing area is divided into desired sizes, and base stations ex107 to ex110, which are fixed radio stations, are installed in each cell.
The content supply system ex100 includes, for example, a computer ex111, a PDA (personal digital assistant) ex112, a camera ex113, a mobile phone ex114, a camera via the Internet ex101, the Internet service provider ex102, the telephone network ex104, and the base stations ex107 to ex110. Each device such as the attached mobile phone ex115 is connected.
[0133]
However, the content supply system ex100 is not limited to the combination as shown in FIG. 17, and any combination may be connected. Further, each device may be directly connected to the telephone network ex104 without going through the base stations ex107 to ex110 which are fixed wireless stations.
The camera ex113 is a device capable of shooting a moving image such as a digital video camera. The mobile phone is a PDC (Personal Digital Communications), CDMA (Code Division Multiple Access), W-CDMA (Wideband-Code Division Multiple Access), or GSM (Global System for Mobile Communications) mobile phone, Alternatively, PHS (Personal Handyphone System) or the like may be used.
[0134]
In addition, the streaming server ex103 is connected from the camera ex113 through the base station ex109 and the telephone network ex104, and live distribution or the like based on the encoded data transmitted by the user using the camera ex113 becomes possible. The encoded processing of the captured data may be performed by the camera ex113 or may be performed by a server or the like that performs data transmission processing. Further, the moving image data shot by the camera 116 may be transmitted to the streaming server ex103 via the computer ex111. The camera ex116 is a device that can shoot still images and moving images, such as a digital camera. In this case, the encoding of the moving image data may be performed by the camera ex116 or the computer ex111. The encoding process is performed in the LSI ex117 included in the computer ex111 and the camera ex116. Note that image encoding / decoding software may be incorporated in some storage medium (CD-ROM, flexible disk, hard disk, etc.) that is a recording medium readable by the computer ex111 or the like. Furthermore, you may transmit moving image data with the mobile telephone ex115 with a camera. The moving image data at this time is data encoded by the LSI included in the mobile phone ex115.
[0135]
In this content supply system ex100, the content (for example, video shot of music live) captured by the user with the camera ex113, camera ex116, etc. is encoded and transmitted to the streaming server ex103 as in the above embodiment. On the other hand, the streaming server ex103 distributes the content data to the requested client. Examples of the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, and the like that can decode the encoded data. In this way, the content supply system ex100 can receive and reproduce the encoded data at the client, and also realize personal broadcasting by receiving, decoding, and reproducing in real time at the client. It is a system that becomes possible.
[0136]
For the encoding and decoding of each device constituting this system, the moving image encoding device or the moving image decoding device described in the above embodiments may be used.
A mobile phone will be described as an example.
FIG. 21 is a diagram showing the mobile phone ex115 using the moving picture encoding method and the moving picture decoding method described in the above embodiment. The cellular phone ex115 includes an antenna ex201 for transmitting and receiving radio waves to and from the base station ex110, a camera such as a CCD camera, a camera unit ex203 capable of taking a still image, a video shot by the camera unit ex203, and an antenna ex201. A display unit ex202 such as a liquid crystal display that displays data obtained by decoding received video and the like, a main body unit composed of a group of operation keys ex204, an audio output unit ex208 such as a speaker for audio output, and audio input To store encoded data or decoded data such as a voice input unit ex205 such as a microphone, captured video or still image data, received mail data, video data or still image data, etc. Recording medium ex207, and slot portion ex20 for enabling recording medium ex207 to be attached to mobile phone ex115 The has. The recording medium ex207 stores a flash memory element, which is a kind of EEPROM (Electrically Erasable and Programmable Read Only Memory), which is a nonvolatile memory that can be electrically rewritten and erased, in a plastic case such as an SD card.
[0137]
Further, the cellular phone ex115 will be described with reference to FIG. The cellular phone ex115 controls the power supply circuit ex310, the operation input control unit ex304, and the image coding for the main control unit ex311 which is configured to control the respective units of the main body unit including the display unit ex202 and the operation key ex204. Unit ex312, camera interface unit ex303, LCD (Liquid Crystal Display) control unit ex302, image decoding unit ex309, demultiplexing unit ex308, recording / reproducing unit ex307, modulation / demodulation circuit unit ex306, and audio processing unit ex305 via a synchronization bus ex313 Are connected to each other.
[0138]
When the end of call and the power key are turned on by the user's operation, the power supply circuit unit ex310 starts up the camera-equipped digital cellular phone ex115 in an operable state by supplying power from the battery pack to each unit. .
The mobile phone ex115 converts the voice signal collected by the voice input unit ex205 in the voice call mode into digital voice data by the voice processing unit ex305 based on the control of the main control unit ex311 including a CPU, a ROM, a RAM, and the like. The modulation / demodulation circuit unit ex306 performs spread spectrum processing, the transmission / reception circuit unit ex301 performs digital analog conversion processing and frequency conversion processing, and then transmits the result via the antenna ex201. In addition, the cellular phone ex115 amplifies the received signal received by the antenna ex201 in the voice call mode, performs frequency conversion processing and analog-digital conversion processing, performs spectrum despreading processing by the modulation / demodulation circuit unit ex306, and analog audio by the voice processing unit ex305. After conversion into a signal, this is output via the audio output unit ex208.
[0139]
Further, when an e-mail is transmitted in the data communication mode, text data of the e-mail input by operating the operation key ex204 of the main body is sent to the main control unit ex311 via the operation input control unit ex304. The main control unit ex311 performs spread spectrum processing on the text data in the modulation / demodulation circuit unit ex306, performs digital analog conversion processing and frequency conversion processing in the transmission / reception circuit unit ex301, and then transmits the text data to the base station ex110 via the antenna ex201.
[0140]
When transmitting image data in the data communication mode, the image data captured by the camera unit ex203 is supplied to the image encoding unit ex312 via the camera interface unit ex303. When image data is not transmitted, the image data captured by the camera unit ex203 can be directly displayed on the display unit ex202 via the camera interface unit ex303 and the LCD control unit ex302.
[0141]
The image encoding unit ex312 has a configuration including the image encoding device described in the present invention, and an encoding method using the image data supplied from the camera unit ex203 in the image encoding device described in the above embodiment. The encoded image data is converted into encoded image data by compression encoding and is sent to the demultiplexing unit ex308. At the same time, the cellular phone ex115 sends the sound collected by the audio input unit ex205 during imaging by the camera unit ex203 to the demultiplexing unit ex308 as digital audio data via the audio processing unit ex305.
[0142]
The demultiplexing unit ex308 multiplexes the encoded image data supplied from the image encoding unit ex312 and the audio data supplied from the audio processing unit ex305 by a predetermined method, and the multiplexed data obtained as a result is a modulation / demodulation circuit unit A spectrum spread process is performed at ex306, a digital-analog conversion process and a frequency conversion process are performed at the transmission / reception circuit unit ex301, and then transmitted through the antenna ex201.
[0143]
When receiving data of a moving image file linked to a home page or the like in the data communication mode, the received signal received from the base station ex110 via the antenna ex201 is subjected to spectrum despreading processing by the modulation / demodulation circuit unit ex306, and the resulting multiplexing is obtained. Is sent to the demultiplexing unit ex308.
In addition, in order to decode the multiplexed data received via the antenna ex201, the demultiplexing unit ex308 separates the multiplexed data to generate an encoded bit stream of image data and an encoded bit stream of audio data. The encoded image data is supplied to the image decoding unit ex309 via the synchronization bus ex313 and the audio data is supplied to the audio processing unit ex305.
[0144]
Next, the image decoding unit ex309 is configured to include the image decoding device described in the present invention, and a decoding method corresponding to the encoding method described in the above embodiment for an encoded bit stream of image data. To generate playback moving image data, which is supplied to the display unit ex202 via the LCD control unit ex302, thereby displaying, for example, moving image data included in the moving image file linked to the homepage . At the same time, the audio processing unit ex305 converts the audio data into an analog audio signal, and then supplies the analog audio signal to the audio output unit ex208. Thus, for example, the audio data included in the moving image file linked to the home page is reproduced. The
[0145]
Note that the present invention is not limited to the above-described system, and recently, digital broadcasting by satellite and terrestrial has become a hot topic. As shown in FIG. Any of the decoding devices can be incorporated. Specifically, in the broadcasting station ex409, the encoded bit stream of the video information is transmitted to the communication or broadcasting satellite ex410 via radio waves. Receiving this, the broadcasting satellite ex410 transmits a radio wave for broadcasting, and receives the radio wave with a home antenna ex406 having a satellite broadcasting receiving facility, such as a television (receiver) ex401 or a set top box (STB) ex407. The device decodes the encoded bit stream and reproduces it. In addition, the image decoding apparatus described in the above embodiment can also be implemented in a playback apparatus ex403 that reads and decodes an encoded bitstream recorded on a storage medium ex402 such as a CD or DVD that is a recording medium. is there. In this case, the reproduced video signal is displayed on the monitor ex404. Further, a configuration in which an image decoding device is mounted in a set-top box ex407 connected to a cable ex405 for cable television or an antenna ex406 for satellite / terrestrial broadcasting, and this is reproduced on a monitor ex408 of the television is also conceivable. At this time, the image decoding apparatus may be incorporated in the television instead of the set top box. It is also possible to receive a signal from the satellite ex410 or the base station ex107 by the car ex412 having the antenna ex411 and reproduce a moving image on a display device such as the car navigation ex413 that the car ex412 has.
[0146]
Further, the image signal can be encoded by the image encoding device shown in the above embodiment and recorded on a recording medium. As a specific example, there is a recorder ex420 such as a DVD recorder that records an image signal on a DVD disk ex421 or a disk recorder that records on a hard disk. Further, it can be recorded on the SD card ex422. If the recorder ex420 includes the image decoding device described in the above embodiment, the image signal recorded on the DVD disc ex421 or the SD card ex422 can be reproduced and displayed on the monitor ex408.
[0147]
For example, the configuration of the car navigation ex413 may be a configuration excluding the camera unit ex203, the camera interface unit ex303, and the image encoding unit ex312 in the configuration illustrated in FIG. ) Ex401 can also be considered.
In addition to the transmission / reception type terminal having both the encoder and the decoder, the terminal such as the mobile phone ex114 has three mounting formats: a transmitting terminal having only an encoder and a receiving terminal having only a decoder. Can be considered.
[0148]
As described above, the moving picture encoding method or the moving picture decoding method described in the above embodiment can be used in any of the above-described devices and systems, and as a result, the above-described embodiment has been described. An effect can be obtained.
5. Other embodiments
The present invention is not limited to the above-described embodiment, and various changes or modifications can be made without departing from the scope of the present invention.
[0149]
【The invention's effect】
In the variable length encoding method according to the first aspect, since the encoding parameter acquired from the parameter table is used in encoding each sub-data, the compression efficiency when encoding the predetermined unit data is improved. Also, since the information about the initialized parameter table is encoded and placed at a position where it can be obtained prior to the encoded predetermined unit data, the parameter table is encoded as an initial value at the time of decoding. The predetermined unit data can be correctly decoded.
[0150]
  Also,Since the parameter table is updated based on the value of the encoded sub data, the compression efficiency when encoding the predetermined unit data is improved.
[0151]
  Claim2In the variable length coding method described in claim 1,12 uses arithmetic coding as a sub-data coding method, so that compression efficiency is good. The parameter table corresponds to the probability table, and the encoding parameter corresponds to the probability.
[0152]
  Claim3In the variable length coding method described in claim 1,1 or 2The information regarding the parameter table is the parameter table itself.
  Claim4In the variable length coding method described in claim 1,3Since only a part of the initialized parameter table is encoded, the amount of encoding can be reduced.
[0153]
  Claim5In the variable length coding method described in claim 1,4Since only the portion corresponding to the encoded data having a high occurrence probability in the initialized parameter table is encoded, it is possible to perform the decoding sufficiently sufficiently at the time of decoding while reducing the amount of encoding.
  Claim6In the variable length coding method described in claim 1,1 or 2However, since the information indicating the parameter table is encoded and not the parameter table itself, the amount of encoding can be reduced.
[0154]
  Claim7In the variable length coding method described in claim 1,6The information indicating the parameter table is arranged as a part of the common data for the predetermined unit data, and also has a function as a part thereof, so that the coding amount can be reduced.
  Claim8In the variable length coding method described in claim 1,1-7In any of the above, since a fixed encoding method is used, information on the initialized parameter table is statically encoded. Therefore, the information regarding the initialized parameter table is reliably decoded.
[0155]
  Claim9In the variable length coding method described in claim 1,1-8In any of the above, whether or not the information relating to the parameter table is encoded can be determined by a flag arranged at a position that can be acquired prior to the encoded predetermined unit data.
  Claim10In the variable length coding method described in claim 1,1-9In any of the above, since the predetermined unit data is a picture in the image data, the frequency of encoding the parameter table in all the image data is appropriate, and therefore, part of the encoded data to be learned by the transmission path error is Even if the same parameter table as that at the time of encoding is lost and cannot be reproduced at the time of decoding, a state in which an image cannot be reproduced for several seconds or more may occur by decoding the parameter table encoded at high frequency. In addition, the redundancy of the data amount of the parameter table does not increase.
[0156]
  Claim11In the variable length coding method described in claim 1,1-10In any of the above, since the predetermined unit data is a slice in the image data, the frequency of encoding the parameter table in all the image data is appropriate, so that a part of the encoded data to be learned by the transmission path error is Even if the same parameter table as that at the time of encoding is lost and cannot be reproduced at the time of decoding, a state in which an image cannot be reproduced for several seconds or more may occur by decoding the parameter table encoded at high frequency. In addition, the redundancy of the data amount of the parameter table does not increase.
[0159]
  Claim12In the storage medium described in (1), the stored program is loaded into the computer to cause the computer to perform variable-length encoding processing. In the process, since the encoding parameter acquired from the parameter table is used for encoding each sub-data, the compression efficiency when encoding the predetermined unit data is improved. In addition, since the information regarding the initialized parameter table is encoded and arranged at a position where the encoded predetermined unit data can be obtained prior to the encoded predetermined unit data, the parameter is set at the time of decoding. It is possible to correctly decode the predetermined unit data encoded using the table as an initial value.
[0161]
  Claim13In the variable length coding method described in (2), since the variable length code table selected in the coding of each sub data is used, the compression efficiency when coding predetermined unit data is improved. In addition, since the information indicating the initialized variable length code table is encoded and arranged at a position where it can be acquired prior to the encoded predetermined unit data, the variable length indicated by the information at the time of decoding is It is possible to correctly decode the predetermined unit data encoded using the code table as an initial value.
[0162]
  Claim14In the variable length coding method described in claim 1,13Since the variable length code table is selected based on the value of the encoded sub data, the compression efficiency when encoding the predetermined unit data is improved.
[0163]
  Claim15In the variable length coding method described in claim 1,13 or 14In FIG. 2, since a fixed encoding method is used, information indicating the selected variable-length code table is reliably decoded.
[0164]
  Claim16In the variable length coding method described in claim 1,13-15In any of the above, whether or not the information indicating the variable-length code table has been encoded can be determined by a flag arranged at a position that can be acquired prior to the encoded predetermined unit data.
  Claim17In the variable length coding method described in claim 1,13-16In any of the above, since the predetermined unit data is a picture in the image data, the frequency of encoding the information in all the image data is appropriate, and therefore, even when the information encoded data is destroyed due to a transmission path error, it takes several seconds. As described above, the state in which the image cannot be reproduced does not occur, and the amount of information encoded data does not become redundant.
[0165]
  Claim18In the variable length coding method described in claim 1,13-16In this case, since the predetermined unit data is a slice in the image data, the frequency of encoding the information indicating the variable length code table in the entire image data is appropriate. Therefore, the information encoded data is transmitted due to a transmission path error. Even when the image is destroyed, there is no situation in which an image cannot be reproduced for several seconds or more, and the amount of information encoded data does not become redundant.
[0166]
  Claim19In the variable length coding method described in claim 1,13-18In either of the above, for example, in image data, it is possible to obtain high compression efficiency by encoding sub-data by a variable-length encoding method that switches a variable-length code table, and at the same time, by using a fixed encoding method, Processing can be simplified by encoding a certain header. In addition, since the header originally has little compression effect, there is no particular problem even if a fixed encoding method is used.
[0167]
  Claim20In the storage medium described in the above, since the variable length code table selected in the encoding of each sub-data is used in the encoding process that the stored program performs on the computer, the predetermined unit data is encoded. The compression efficiency is improved. In addition, since the information indicating the initialized variable length code table is encoded and placed at a position where it can be obtained prior to the encoded predetermined unit data, the variable length code indicated by the information is obtained at the time of decoding. It is possible to correctly decode the predetermined unit data encoded using the table as an initial value.
[0168]
  Claim21In the variable length coding device described in 1), since the sub data encoding means uses the encoding parameter acquired from the parameter table when encoding the sub data, the compression efficiency when encoding the predetermined unit data Will improve. Further, since the information regarding the initialized parameter table is encoded by the parameter table information encoding unit, and further arranged at a position that can be acquired before the predetermined unit data encoded by the information encoded data arrangement unit, At the time of decoding, a parameter table is acquired based on the information, and predetermined unit data encoded using the parameter table as an initial value can be correctly decoded.
[0169]
  Claim22In the variable-length encoding device described in (2), since the sub-data encoding unit uses the variable-length code table selected when encoding the sub-data, the compression efficiency when encoding the predetermined unit data is improved. To do. The information indicating the initialized variable-length code table is encoded by the variable-length code table information encoding means, and is further obtained at a position that can be acquired before the predetermined unit data encoded by the information encoded data arrangement means. Therefore, at the time of decoding, a variable length code table is acquired based on the information, and predetermined unit data encoded using the variable length code table as an initial value can be correctly decoded.
[0170]
  Claim23In the bit stream described in (1), the effect of each variable-length encoding method can be obtained, for example, the compression efficiency when encoding predetermined unit data is improved.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of a variable length coding apparatus according to a first embodiment of the present invention.
FIG. 2 is a block diagram showing a schematic configuration of a general image encoding device.
FIG. 3 is a flowchart showing a schematic operation of a data encoding unit.
FIG. 4 is a flowchart of a modification showing a schematic operation of the data encoding unit.
FIG. 5 is a diagram illustrating an example of a stream structure of image data.
FIG. 6 is a diagram showing another example of the stream structure of image data.
FIG. 7 shows a data structure of a bit stream generated by a variable length coding device.
FIG. 8 shows a data structure of a bit stream generated by a variable length coding device.
FIG. 9 is a block diagram showing a schematic configuration of a variable length decoding device according to the first embodiment of the present invention.
FIG. 10 is a block diagram showing a schematic configuration of a general image decoding apparatus.
FIG. 11 is a flowchart showing a schematic operation of a data decoding unit.
FIG. 12 is a block diagram showing a schematic configuration of a variable length coding apparatus according to the second embodiment of the present invention.
FIG. 13 is a diagram showing a configuration of a plurality of variable length code tables.
FIG. 14 is a flowchart showing a schematic operation of a data encoding unit.
FIG. 15 shows a data structure of a bit stream generated by a variable length coding device.
FIG. 16 shows a data structure of a bit stream generated by a variable length encoding device.
FIG. 17 is a block diagram showing a schematic configuration of a variable length decoding device according to the second embodiment of the present invention.
FIG. 18 is a flowchart showing a schematic operation of a data decoding unit.
FIG. 19 is an explanatory diagram when the computer system uses a floppy disk storing the variable length encoding method or variable length decoding method of the first and second embodiments.
FIG. 20 is a block diagram showing the overall configuration of a content supply system.
FIG. 21 shows an example of a mobile phone using a moving image encoding method and a moving image decoding method.
FIG. 22 is a block diagram of a mobile phone.
FIG. 23 shows an example of a digital broadcasting system.
[Explanation of symbols]
1 Variable length coding device
2 Data encoding part
3 Header encoder
4. Multiplexer (information encoded data arrangement means)
6 Probability table encoder (parameter table information encoding means)
7 Arithmetic encoder (sub-data encoding means)
8 Probability table updater (parameter acquisition means)
9 Initialization unit (initialization means)
11 Variable length decoding device
12 Data decryption unit
13 Header decoder
14 Separator
16 Probability table decoder (parameter table information decoding means)
17 Arithmetic decoder (sub-data decoding means)
18 Probability table updater (parameter acquisition means)
19 Initialization section (parameter table initialization means)
21 Variable length coding device
22 Data encoding unit
23 Header Encoder
24 Multiplexer (variable length code table information encoded data arrangement means)
26 Selection signal encoder (information encoding means)
27 Variable length encoder (sub-data encoding means)
28 Code table selection unit (variable length code table selection means)
29 Initialization unit (initialization means)
30 Code table
31 Variable length decoding device
32 Data decryption unit
33 Header decoder
34 Separator
36 Selection signal decoder (variable length code table information decoding means)
37 Variable length decoder (sub data decoding means)
39 Initialization unit (variable length code table initialization means)

Claims (5)

パラメータ表を参照しながら各所定単位データを符号化する可変長符号化方法であって、
前記所定単位データの量子化パラメータの初期値に基づいてパラメータ表を初期値に設定する初期化ステップと、
前記量子化パラメータの初期値に関する情報を符号化する量子化パラメータ初期値符号化ステップと、
前記所定単位データを構成する各サブデータの符号化に用いられる符号化パラメータを前記パラメータ表から取得するパラメータ取得ステップと、
前記サブデータを、取得された符号化パラメータを参照して可変長符号化するサブデータ符号化ステップと、
を備え、
符号化したサブデータの値に基づいて前記パラメータ表を更新し、前記符号化パラメータを更新した前記パラメータ表から取得する、
可変長符号化方法。
A variable length encoding method for encoding each predetermined unit data with reference to a parameter table,
An initialization step of setting a parameter table to an initial value based on an initial value of a quantization parameter of the predetermined unit data ;
A quantization parameter initial value encoding step for encoding information on the initial value of the quantization parameter ;
A parameter acquisition step of acquiring, from the parameter table, an encoding parameter used for encoding each sub-data constituting the predetermined unit data;
A sub-data encoding step for variable-length encoding the sub-data with reference to the acquired encoding parameter;
With
Updating the parameter table based on the value of the encoded sub-data, and obtaining the encoded parameter from the updated parameter table;
Variable length coding method.
前記サブデータ符号化ステップでは、前記サブデータを、前記符号化パラメータを参照して算術符号化する、請求項1に記載の可変長符号化方法。  The variable-length encoding method according to claim 1, wherein in the sub-data encoding step, the sub-data is arithmetically encoded with reference to the encoding parameter. 前記所定単位データは画像データにおけるピクチャである、請求項1のいずれかに記載の可変長符号化方法。  The variable length encoding method according to claim 1, wherein the predetermined unit data is a picture in image data. 前記所定単位データは画像データにおけるスライスである、請求項1のいずれかに記載の可変長符号化方法。  The variable length encoding method according to claim 1, wherein the predetermined unit data is a slice in image data. パラメータ表を参照しながら各所定単位データを符号化する可変長符号化装置であって、
前記所定単位データの量子化パラメータの初期値に基づいてパラメータ表を初期値に設定する初期化手段と、
前記量子化パラメータの初期値に関する情報を符号化する量子化パラメータ初期値符号化手段と、
前記所定単位データを構成する各サブデータの符号化に用いられる符号化パラメータを前記パラメータ表から取得するパラメータ取得手段と、
前記サブデータを、取得された符号化パラメータを参照して可変長符号化するサブデータ符号化手段と、
を備えている可変長符号化装置。
A variable length encoding device that encodes each predetermined unit data with reference to a parameter table,
Initialization means for setting a parameter table to an initial value based on an initial value of a quantization parameter of the predetermined unit data ;
Quantization parameter initial value encoding means for encoding information on the initial value of the quantization parameter ;
Parameter acquisition means for acquiring, from the parameter table, an encoding parameter used for encoding each sub-data constituting the predetermined unit data;
Sub-data encoding means for variable-length encoding the sub-data with reference to the acquired encoding parameter;
A variable-length encoding device.
JP2003068850A 2002-03-27 2003-03-13 Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream Expired - Lifetime JP4197262B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003068850A JP4197262B2 (en) 2002-03-27 2003-03-13 Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002088345 2002-03-27
JP2003068850A JP4197262B2 (en) 2002-03-27 2003-03-13 Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006052928A Division JP4197345B2 (en) 2002-03-27 2006-02-28 Variable length decoding method, storage medium, and variable length decoding device

Publications (3)

Publication Number Publication Date
JP2004007473A JP2004007473A (en) 2004-01-08
JP2004007473A5 JP2004007473A5 (en) 2006-04-13
JP4197262B2 true JP4197262B2 (en) 2008-12-17

Family

ID=30446108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003068850A Expired - Lifetime JP4197262B2 (en) 2002-03-27 2003-03-13 Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream

Country Status (1)

Country Link
JP (1) JP4197262B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4997243B2 (en) * 2006-08-08 2012-08-08 パナソニック株式会社 Image coding apparatus, method thereof and integrated circuit thereof
US7545293B2 (en) * 2006-11-14 2009-06-09 Qualcomm Incorporated Memory efficient coding of variable length codes
JP2010103969A (en) * 2008-09-25 2010-05-06 Renesas Technology Corp Image-decoding method, image decoder, image encoding method, and image encoder
GB2586517B (en) * 2019-08-23 2022-06-15 Imagination Tech Ltd Methods and decompression units for decompressing a compressed block of image data

Also Published As

Publication number Publication date
JP2004007473A (en) 2004-01-08

Similar Documents

Publication Publication Date Title
KR100927510B1 (en) Variable length coding method, variable length coding apparatus and storage medium
JP5401530B2 (en) Encoding / decoding device
JP2007520948A (en) Image encoding method, image decoding method, image encoding device, image decoding device, and program
JP4197262B2 (en) Variable length coding method, variable length decoding method, storage medium, variable length coding device, variable length decoding device, and bitstream
JP4197345B2 (en) Variable length decoding method, storage medium, and variable length decoding device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060228

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080902

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080925

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4197262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term