JPH06152988A - 可変長符号の復号化装置 - Google Patents
可変長符号の復号化装置Info
- Publication number
- JPH06152988A JPH06152988A JP29432892A JP29432892A JPH06152988A JP H06152988 A JPH06152988 A JP H06152988A JP 29432892 A JP29432892 A JP 29432892A JP 29432892 A JP29432892 A JP 29432892A JP H06152988 A JPH06152988 A JP H06152988A
- Authority
- JP
- Japan
- Prior art keywords
- length
- code
- offset
- huffman
- level
- 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.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
(57)【要約】
【目的】 復号処理を高速に行へるともに、メモリー容
量も少なくてすむ復号化装置を提供する。 【構成】 計数回路2は、バッファメモリに蓄えられて
いるデータに対して先頭部の1の個数を計数する回路
で、この出力はテーブル4のアドレスに供給されてい
る。該テーブル4は、先頭ポインタとオフセット長から
成るエントリを蓄えている。計数回路2の出力及びテー
ブル4から読み出されたオフセット長はオフセット生成
回路3に供給される。該オフセット生成回路3は、これ
らの入力に基づきバッファメモリに格納されたハフマン
符号語の系列よりオフセットに該当する部分系列を読み
出す回路である。オフセット生成回路3からのオフセッ
トとテーブル4から読み出された先頭ポインタから加算
回路5にて(先頭ポインタ+オフセット)が計算され、
テーブル6に対するアドレスとして出力される。テーブ
ル6は、コード長、ランレングス及びレベルからなるエ
ントリを蓄えている。
量も少なくてすむ復号化装置を提供する。 【構成】 計数回路2は、バッファメモリに蓄えられて
いるデータに対して先頭部の1の個数を計数する回路
で、この出力はテーブル4のアドレスに供給されてい
る。該テーブル4は、先頭ポインタとオフセット長から
成るエントリを蓄えている。計数回路2の出力及びテー
ブル4から読み出されたオフセット長はオフセット生成
回路3に供給される。該オフセット生成回路3は、これ
らの入力に基づきバッファメモリに格納されたハフマン
符号語の系列よりオフセットに該当する部分系列を読み
出す回路である。オフセット生成回路3からのオフセッ
トとテーブル4から読み出された先頭ポインタから加算
回路5にて(先頭ポインタ+オフセット)が計算され、
テーブル6に対するアドレスとして出力される。テーブ
ル6は、コード長、ランレングス及びレベルからなるエ
ントリを蓄えている。
Description
【0001】
【産業上の利用分野】本発明はカラー及びモノクロの静
止画像や動画像のデータを符号化して得られた可変長符
号に対して、再び元の画像に復元するためのデータ復号
操作を施す復号化装置に関する。
止画像や動画像のデータを符号化して得られた可変長符
号に対して、再び元の画像に復元するためのデータ復号
操作を施す復号化装置に関する。
【0002】
【従来の技術】カラー画像を効率的に蓄積したり伝送し
たりするため、データの符号化/復号化方式が国際標準
化機構(ISO)や国際電信電話諮問委員会(CCIT
T)によって検討され、JPEG(Joint Pho
tographic Experts Group)や
MPEG(Moving Picture Exper
ts Group)の標準方式として規格化されてい
る。
たりするため、データの符号化/復号化方式が国際標準
化機構(ISO)や国際電信電話諮問委員会(CCIT
T)によって検討され、JPEG(Joint Pho
tographic Experts Group)や
MPEG(Moving Picture Exper
ts Group)の標準方式として規格化されてい
る。
【0003】これらの方式では離散コサイン変換(DC
T)を基本的操作としてデータの符号化を行っている。
入力された画像は図5に示すようにブロックB(M×M
画素、以下ではM=8の場合を例に考える)と呼ばれる
小領域に分割され、各ブロックに対して順次データ符号
化操作が繰り返し行われる。以下では、例として静止画
圧縮JPEG方式を取り上げ、また簡単のために一つの
ブロックの符号化操作についてのみ説明を行う。
T)を基本的操作としてデータの符号化を行っている。
入力された画像は図5に示すようにブロックB(M×M
画素、以下ではM=8の場合を例に考える)と呼ばれる
小領域に分割され、各ブロックに対して順次データ符号
化操作が繰り返し行われる。以下では、例として静止画
圧縮JPEG方式を取り上げ、また簡単のために一つの
ブロックの符号化操作についてのみ説明を行う。
【0004】図6に符号化装置及び復号化装置からなる
システムの概略の構成を示す。符号化装置は画像データ
が入力され、入力されたデータに対し離散コサイン変換
を施す離散コサイン変換部11と、得られた係数を量子
化する量子化部12と、量子化された係数を可変長符号
化する可変長符号化部13とを具備する。また、復号化
装置は伝送されてきた可変長符号を復号化する可変長復
号化部21と、復号された量子化信号を逆量子化する逆
量子化部22と、該逆量子化部22にて得られた信号を
逆離散コサイン変換しもとの画像データを得る逆離散コ
サイン変換部23とを具備する。
システムの概略の構成を示す。符号化装置は画像データ
が入力され、入力されたデータに対し離散コサイン変換
を施す離散コサイン変換部11と、得られた係数を量子
化する量子化部12と、量子化された係数を可変長符号
化する可変長符号化部13とを具備する。また、復号化
装置は伝送されてきた可変長符号を復号化する可変長復
号化部21と、復号された量子化信号を逆量子化する逆
量子化部22と、該逆量子化部22にて得られた信号を
逆離散コサイン変換しもとの画像データを得る逆離散コ
サイン変換部23とを具備する。
【0005】あるブロックBに注目したとき、符号化操
作は次のような手順で行われる。まず当該ブロックBに
対してDCT変換が行われ、8×8行列B′が得られ
る。次に、B′の各要素に対して量子化操作を適用し
て、8×8行列B″が得られる。図7はこのようにして
得られた8×8行列B″を示している。一般的に行列
B″の要素は、DCT変換および量子化の性質によっ
て、左上の低周波領域ではノンゼロ要素が多く、右下の
高周波領域ではゼロの要素が多く含まれるようになる。
作は次のような手順で行われる。まず当該ブロックBに
対してDCT変換が行われ、8×8行列B′が得られ
る。次に、B′の各要素に対して量子化操作を適用し
て、8×8行列B″が得られる。図7はこのようにして
得られた8×8行列B″を示している。一般的に行列
B″の要素は、DCT変換および量子化の性質によっ
て、左上の低周波領域ではノンゼロ要素が多く、右下の
高周波領域ではゼロの要素が多く含まれるようになる。
【0006】つぎに、行列B″の要素を1から64まで
順に、例えば図8(a)に示すようなジグザグスキャン
によって一次元に並べると、図8(b)に示すようなゼ
ロあるいはノンゼロ要素の系列が得られる。この系列に
対して、連続したゼロの個数の情報(ランレングス)と
その直後のノンゼロの要素の情報(レベル)とを一つの
組として取り扱うことにすると、上記行列B″は図8
(c)に示すようにランレングスとレベルの組の系列で
表現される。さらに、この組の系列に対して符号語(コ
ード)を割り当てる方法として、可変長(ハフマン)符
号化を行う。JPEGで提案されているハフマン符号は
DC係数(輝度用)、DC係数(色用)、AC係数(輝
度用)、AC係数(色用)の4種類がある。図9はこの
中のAC係数(色用)のハフマン符号のリストを例示し
ている。左欄は符号語のコード長であり、右欄はそのコ
ード長を有するハフマン符号語である。ハフマン符号
は、情報(ここではランレングスとレベルの組)の出現
頻度が高いほどコード長の短い符号語が割り当てられる
ようになっている。またJPEGの例では、ハフマン符
号語の最大長は16ビットであるので、以下では簡単の
ために最大長は16ビットとして扱うこととする。この
符号化法を適用することによって、最初のブロックBは
結局、可変長(ハフマン)符号語の系列としてもとめる
ことができ、符号化操作が完了する。
順に、例えば図8(a)に示すようなジグザグスキャン
によって一次元に並べると、図8(b)に示すようなゼ
ロあるいはノンゼロ要素の系列が得られる。この系列に
対して、連続したゼロの個数の情報(ランレングス)と
その直後のノンゼロの要素の情報(レベル)とを一つの
組として取り扱うことにすると、上記行列B″は図8
(c)に示すようにランレングスとレベルの組の系列で
表現される。さらに、この組の系列に対して符号語(コ
ード)を割り当てる方法として、可変長(ハフマン)符
号化を行う。JPEGで提案されているハフマン符号は
DC係数(輝度用)、DC係数(色用)、AC係数(輝
度用)、AC係数(色用)の4種類がある。図9はこの
中のAC係数(色用)のハフマン符号のリストを例示し
ている。左欄は符号語のコード長であり、右欄はそのコ
ード長を有するハフマン符号語である。ハフマン符号
は、情報(ここではランレングスとレベルの組)の出現
頻度が高いほどコード長の短い符号語が割り当てられる
ようになっている。またJPEGの例では、ハフマン符
号語の最大長は16ビットであるので、以下では簡単の
ために最大長は16ビットとして扱うこととする。この
符号化法を適用することによって、最初のブロックBは
結局、可変長(ハフマン)符号語の系列としてもとめる
ことができ、符号化操作が完了する。
【0007】一方、復号操作では、符号化された符号語
(コード)の系列を入力したとき、複数のハフマン符号
語への分割を行い、つぎに各ハフマン符号語からランレ
ングスとレベルの組を求め、さらに逆量子化と逆DCT
変換をおこなって画像情報を復元する。
(コード)の系列を入力したとき、複数のハフマン符号
語への分割を行い、つぎに各ハフマン符号語からランレ
ングスとレベルの組を求め、さらに逆量子化と逆DCT
変換をおこなって画像情報を復元する。
【0008】復号操作における伝達されてきた信号のハ
フマン符号語への分割、および各ハフマン符号語からラ
ンレングスとレベルの組を求める操作を行うため、従来
から提案されている手法には、図10に示すJPEG規
格での推奨方式や図11で示す方式(例えば富士通のJ
PEG用LSI(MB86356A)で採用されている
方式)がある。
フマン符号語への分割、および各ハフマン符号語からラ
ンレングスとレベルの組を求める操作を行うため、従来
から提案されている手法には、図10に示すJPEG規
格での推奨方式や図11で示す方式(例えば富士通のJ
PEG用LSI(MB86356A)で採用されている
方式)がある。
【0009】図10に示す従来方式1ではあらかじめハ
フマン符号の性質を分析して、二つのテーブル(テーブ
ル31、テーブル32)を作成している。まず、コード
長に注目してハフマン符号をグループに分割し、各グル
ープ毎にコードを2進数と解釈して最小のコード(ミニ
マムコード)と最大のコード(マックスコード)を求め
る。テーブル31のエントリーはコード長の昇順に並べ
たミニマムコードとマックスコードを含む。ここで、第
1行目には該当するコードが存在しないのでダミー情報
(−1)を入れておく。
フマン符号の性質を分析して、二つのテーブル(テーブ
ル31、テーブル32)を作成している。まず、コード
長に注目してハフマン符号をグループに分割し、各グル
ープ毎にコードを2進数と解釈して最小のコード(ミニ
マムコード)と最大のコード(マックスコード)を求め
る。テーブル31のエントリーはコード長の昇順に並べ
たミニマムコードとマックスコードを含む。ここで、第
1行目には該当するコードが存在しないのでダミー情報
(−1)を入れておく。
【0010】テーブル32のエントリは、ハフマン符号
に対応するランレングスとレベルの組である。テーブル
31におけるグループ番号i(ここで、1≦i≦16)
の先頭ポインターは、テーブル2においてグループiに
対応するランレングスとレベルの組の先頭番地を指して
いる。従って、グループiに属する符号語fが与えられ
たとき、オフセットを(f−ミニマムコード)と定義す
ると、テーブル32に対して(先頭ポインタ+オフセッ
ト)のアドレスを参照すれば、fに対応するランレング
スとレベルの組をもとめることができる。
に対応するランレングスとレベルの組である。テーブル
31におけるグループ番号i(ここで、1≦i≦16)
の先頭ポインターは、テーブル2においてグループiに
対応するランレングスとレベルの組の先頭番地を指して
いる。従って、グループiに属する符号語fが与えられ
たとき、オフセットを(f−ミニマムコード)と定義す
ると、テーブル32に対して(先頭ポインタ+オフセッ
ト)のアドレスを参照すれば、fに対応するランレング
スとレベルの組をもとめることができる。
【0011】いま例えばコード列011001011…
が入力されたと仮定する。このときの復号操作とはまず
コード列を複数のハフマン符号語に分割すること、つぎ
にそれぞれのハフマン符号語よりランレングスとレベル
の組を求めることである。復号手順は次ぎのように行わ
れる。
が入力されたと仮定する。このときの復号操作とはまず
コード列を複数のハフマン符号語に分割すること、つぎ
にそれぞれのハフマン符号語よりランレングスとレベル
の組を求めることである。復号手順は次ぎのように行わ
れる。
【0012】先頭からiビット目までの系列を符号語候
補iと呼ぶことにする(ここで、1≦i≦16)。第1
テーブル31を昇順にサーチしていき、グループiで ミニマムコード≦符号語候補i≦マックスコード が成立するものを探索する。例えば上記の入力例では、
まずグループ番号i=1とおいて符号語候補を(0)と
し、これがミニマムコード−1とマックスコード−1の
間にあるかどうかを調べる。該当しないので、グループ
番号i=2とおき符号語候補を(01)とする。これに
対してミニマムコード00とマックスコード01の間に
あるかどうかを調べる。該当するので、ここで符号長が
2であることが判明する。ここで、オフセットは(符号
語候補−ミニマムコード)=01−00=1となる。し
たがって、(先頭ポインタ+オフセット)=0+1=1
をアドレスとして第2テーブル32を参照すれば、ラン
レングスとレベルの組が(R2,L2)として求められ
る。
補iと呼ぶことにする(ここで、1≦i≦16)。第1
テーブル31を昇順にサーチしていき、グループiで ミニマムコード≦符号語候補i≦マックスコード が成立するものを探索する。例えば上記の入力例では、
まずグループ番号i=1とおいて符号語候補を(0)と
し、これがミニマムコード−1とマックスコード−1の
間にあるかどうかを調べる。該当しないので、グループ
番号i=2とおき符号語候補を(01)とする。これに
対してミニマムコード00とマックスコード01の間に
あるかどうかを調べる。該当するので、ここで符号長が
2であることが判明する。ここで、オフセットは(符号
語候補−ミニマムコード)=01−00=1となる。し
たがって、(先頭ポインタ+オフセット)=0+1=1
をアドレスとして第2テーブル32を参照すれば、ラン
レングスとレベルの組が(R2,L2)として求められ
る。
【0013】以上の操作を繰り返せば、入力系列は0
1、100、1011のようにハフマン符号語に分割さ
れ、かつそれぞれの符号語のランレングスとレベルの組
を求めることができ、復号操作が完了する。この手法で
は、各符号語毎にテーブル1の探索を最大16回づつ行
うため計算時間がかかるのが欠点である。
1、100、1011のようにハフマン符号語に分割さ
れ、かつそれぞれの符号語のランレングスとレベルの組
を求めることができ、復号操作が完了する。この手法で
は、各符号語毎にテーブル1の探索を最大16回づつ行
うため計算時間がかかるのが欠点である。
【0014】図11に示す従来方式2では、図11
(a)に示すように可変長ハフマン符号語をkビット
(JPEGの例では、k=16ビット)の固定長に拡張
することにより、テーブル探索時間の高速化を実現して
いる。全ての符号語の16ビットへの拡張は符号語の後
ろに(16ビット−符号語のコード長)分のビットを付
与することにより行われる。例えばハフマン符号語00
は00xxxxxxxxxxxxxx(ここで、xは0
または1を表す)となる。この方式では、復号操作のた
めにテーブル41を用いる。テーブル41のエントリ
は、従来方式1と同様にランレングスとレベルの組を含
んでいる。ただし、符号語を固定長に拡張したことに対
応して、多数の冗長な組が追加されている。すなわち、
図11(a)のハフマン符号語00xxxxxxxxx
xxxxx(ここで、xは0または1を表す)を例とす
れば、テーブル41のアドレス00000000000
00000から0011111111111111まで
の8,192個のエントリは同じランレングスとレベル
の情報を含んでいる。以下の符号語についても同様であ
る。
(a)に示すように可変長ハフマン符号語をkビット
(JPEGの例では、k=16ビット)の固定長に拡張
することにより、テーブル探索時間の高速化を実現して
いる。全ての符号語の16ビットへの拡張は符号語の後
ろに(16ビット−符号語のコード長)分のビットを付
与することにより行われる。例えばハフマン符号語00
は00xxxxxxxxxxxxxx(ここで、xは0
または1を表す)となる。この方式では、復号操作のた
めにテーブル41を用いる。テーブル41のエントリ
は、従来方式1と同様にランレングスとレベルの組を含
んでいる。ただし、符号語を固定長に拡張したことに対
応して、多数の冗長な組が追加されている。すなわち、
図11(a)のハフマン符号語00xxxxxxxxx
xxxxx(ここで、xは0または1を表す)を例とす
れば、テーブル41のアドレス00000000000
00000から0011111111111111まで
の8,192個のエントリは同じランレングスとレベル
の情報を含んでいる。以下の符号語についても同様であ
る。
【0015】この場合の復号操作は次のように行われ
る。すなわち、入力されたコード列に対して、図11
(b)に示すように注目するビット位置よりk(=1
6)ビット固定長のビット系列(1)を読み出す。ビッ
ト系列(1)をそのままアドレス位置情報とみなして、
テーブル41を参照するとただちにランレングスとレベ
ルの組を得ることができる。テーブル41のエントリに
は、コード長も含まれているため、次の復号語は当該コ
ード長だけずらした位置からはじまることがわかる(図
11(b)では次のビット系列はビット系列(2)のよ
うになる)。この手法では、テーブル3に大量の冗長な
情報が含まれることになり、テーブルサイズが大きくな
るという欠点がある。
る。すなわち、入力されたコード列に対して、図11
(b)に示すように注目するビット位置よりk(=1
6)ビット固定長のビット系列(1)を読み出す。ビッ
ト系列(1)をそのままアドレス位置情報とみなして、
テーブル41を参照するとただちにランレングスとレベ
ルの組を得ることができる。テーブル41のエントリに
は、コード長も含まれているため、次の復号語は当該コ
ード長だけずらした位置からはじまることがわかる(図
11(b)では次のビット系列はビット系列(2)のよ
うになる)。この手法では、テーブル3に大量の冗長な
情報が含まれることになり、テーブルサイズが大きくな
るという欠点がある。
【0016】
【発明が解決しようとする課題】図10に関連して説明
した従来方式1では、入力系列から読み出したiビット
長の比較データについて、テーブル31のグループ番号
iのミニマム/マックスコードを調べるという操作を、
i=1から最大16まで繰り返す必要があり、このため
高速な処理をする上で制限があった。
した従来方式1では、入力系列から読み出したiビット
長の比較データについて、テーブル31のグループ番号
iのミニマム/マックスコードを調べるという操作を、
i=1から最大16まで繰り返す必要があり、このため
高速な処理をする上で制限があった。
【0017】一方、図11に関連して説明した従来方式
2では、ハフマン符号語を最大長k(=16)ビットの
固定長として扱うため、216個のコード長(4ビッ
ト)、ランレングス(4ビット)、レベル(4ビット)
の情報を蓄える必要があるため、テーブル41のメモリ
容量は96Kバイト(=216×(4+4+4)ビット)
にも達するという問題があった。
2では、ハフマン符号語を最大長k(=16)ビットの
固定長として扱うため、216個のコード長(4ビッ
ト)、ランレングス(4ビット)、レベル(4ビット)
の情報を蓄える必要があるため、テーブル41のメモリ
容量は96Kバイト(=216×(4+4+4)ビット)
にも達するという問題があった。
【0018】そこで、本発明は、復号操作におけるハフ
マン符号語への分割、および各ハフマン符号語からラン
レングスとレベルの組を求める操作を効率化し、復号処
理を高速に行へるともに、メモリー容量も少なくてすむ
復号化装置を提供することを目的としている。
マン符号語への分割、および各ハフマン符号語からラン
レングスとレベルの組を求める操作を効率化し、復号処
理を高速に行へるともに、メモリー容量も少なくてすむ
復号化装置を提供することを目的としている。
【0019】
【課題を解決するための手段】上記目的は、本発明によ
れば、可変長符号化された画像を復号する装置におい
て、ハフマン符号の系列からコード表を参照しながらラ
ンレングスとレベルの組を求める手段を備え、前記コー
ド表が、ハフマン符号を各符号語の先頭部の1の個数あ
るいは0の個数に従ってカテゴリに分類した第1のテー
ブル、および第1のテーブルの情報よりハフマン符号を
ランレングスとレベルに対応させる第2のテーブル、の
二つのテーブルからなるものであることを特徴とする可
変長符号の復号化装置によって達成される。
れば、可変長符号化された画像を復号する装置におい
て、ハフマン符号の系列からコード表を参照しながらラ
ンレングスとレベルの組を求める手段を備え、前記コー
ド表が、ハフマン符号を各符号語の先頭部の1の個数あ
るいは0の個数に従ってカテゴリに分類した第1のテー
ブル、および第1のテーブルの情報よりハフマン符号を
ランレングスとレベルに対応させる第2のテーブル、の
二つのテーブルからなるものであることを特徴とする可
変長符号の復号化装置によって達成される。
【0020】
【作用】上記構成にてなる復号化装置によれば、与えら
れたハフマン符号語に対して、まず先頭部の1の個数あ
るいは0の個数を求め、次に得られた個数をアドレスと
して第1のテーブルを参照する。次いで、第1のテーブ
ルから得られた情報を用い第2のテーブルを参照し、与
えられたハフマン符号語をランレングスとレベルに対応
させる。
れたハフマン符号語に対して、まず先頭部の1の個数あ
るいは0の個数を求め、次に得られた個数をアドレスと
して第1のテーブルを参照する。次いで、第1のテーブ
ルから得られた情報を用い第2のテーブルを参照し、与
えられたハフマン符号語をランレングスとレベルに対応
させる。
【0021】
【実施例】以下、本発明の一実施例を図面に基づき詳述
する。
する。
【0022】静止画圧縮規約JPEGのハフマン符号語
はつぎのような構成になっている。
はつぎのような構成になっている。
【0023】1…10y…y (ここで、yは0または
1を表す)すなわち、先頭部にゼロ個以上の1、つぎに
0およびゼロ個以上のyが続いている。ここで、先頭部
の連続する1の系列の長さをl1 で表し、残りの部分系
列0y…yをオフセット、その長さをl0 をオフセット
長と呼ぶ。符号語の長さl=l1 +l0 をコード長と呼
ぶことにする。
1を表す)すなわち、先頭部にゼロ個以上の1、つぎに
0およびゼロ個以上のyが続いている。ここで、先頭部
の連続する1の系列の長さをl1 で表し、残りの部分系
列0y…yをオフセット、その長さをl0 をオフセット
長と呼ぶ。符号語の長さl=l1 +l0 をコード長と呼
ぶことにする。
【0024】本実施例では、ハフマン符号がもつこのよ
うな性質によって、カテゴリ分割をおこなうところに特
徴がある。すなわち図2に示すように、先頭部の長さl
1 によって、ハフマン符号をカテゴリに分割する。ここ
で、任意のカテゴリに注目したとき、それに属するハフ
マン符号語は一般にコード長が異なっている。最も大き
なコード長を最大コード長lmax という。いま、lx =
lmax −l>0である符号語1…10y…yに対して、
lx 個のdon′t care bitを付加して、拡
張された符号語1…10y…yx…xを作成する。ここ
で、xは0または1を表す。従って、この様に拡張され
た符号語の個数は2のlx 乗個となる。
うな性質によって、カテゴリ分割をおこなうところに特
徴がある。すなわち図2に示すように、先頭部の長さl
1 によって、ハフマン符号をカテゴリに分割する。ここ
で、任意のカテゴリに注目したとき、それに属するハフ
マン符号語は一般にコード長が異なっている。最も大き
なコード長を最大コード長lmax という。いま、lx =
lmax −l>0である符号語1…10y…yに対して、
lx 個のdon′t care bitを付加して、拡
張された符号語1…10y…yx…xを作成する。ここ
で、xは0または1を表す。従って、この様に拡張され
た符号語の個数は2のlx 乗個となる。
【0025】拡張された符号語をカテゴリに加えること
で、拡張されたカテゴリを構成することができる。図2
はこのような拡張されたカテゴリを示しており、例えば
カテゴリ番号1に属する符号語100x(すなわち、1
000および1001)は、拡張された符号語を表して
いる。以下では、簡単のために拡張された符号語や拡張
されたカテゴリを、単に符号語またはカテゴリと呼ぶこ
とにする。
で、拡張されたカテゴリを構成することができる。図2
はこのような拡張されたカテゴリを示しており、例えば
カテゴリ番号1に属する符号語100x(すなわち、1
000および1001)は、拡張された符号語を表して
いる。以下では、簡単のために拡張された符号語や拡張
されたカテゴリを、単に符号語またはカテゴリと呼ぶこ
とにする。
【0026】本実施例では、カテゴリ分割に対応した二
つのテーブルを用いて復号操作を行う。図3は図2のカ
テゴリ分割の例に対応する第1テーブル4と第2テーブ
ル6を示している。第1テーブル4のエントリは、各カ
テゴリのオフセット長および第2テーブル6に対する先
頭ポインタを含んでいる。
つのテーブルを用いて復号操作を行う。図3は図2のカ
テゴリ分割の例に対応する第1テーブル4と第2テーブ
ル6を示している。第1テーブル4のエントリは、各カ
テゴリのオフセット長および第2テーブル6に対する先
頭ポインタを含んでいる。
【0027】第2テーブル6のエントリは、ハフマン符
号語のコード長、およびランレングスとレベルの組(図
7のテーブル41と同様)を含んでいる。ここで、拡張
されたハフマン符号語を考えているため、ランレングス
とレベルの組には重複があることに注意する必要があ
る。この例では、カテゴリ番号1に属する符号語100
xに対応するエントリ(ランレングスとレベル)には重
複がある。尚、同一カテゴリに属するハフマンコードは
オフセットが昇順になるように第2テーブ6のアドレス
に対して割り振られている。
号語のコード長、およびランレングスとレベルの組(図
7のテーブル41と同様)を含んでいる。ここで、拡張
されたハフマン符号語を考えているため、ランレングス
とレベルの組には重複があることに注意する必要があ
る。この例では、カテゴリ番号1に属する符号語100
xに対応するエントリ(ランレングスとレベル)には重
複がある。尚、同一カテゴリに属するハフマンコードは
オフセットが昇順になるように第2テーブ6のアドレス
に対して割り振られている。
【0028】本実施例では符号語を拡張したことによっ
て、第2テーブル6におけるランレングスとレベルの組
は重複して蓄えられている。ハフマン符号の種類によっ
ては、最悪の場合は従来方法2と同程度の重複データが
生じると考えられる。
て、第2テーブル6におけるランレングスとレベルの組
は重複して蓄えられている。ハフマン符号の種類によっ
ては、最悪の場合は従来方法2と同程度の重複データが
生じると考えられる。
【0029】しかし、画像圧縮/伸長にかかわって実際
に使用されるハフマン符号の場合には、このような重複
はきわめて少ない程度に押さえられる。例えば、JPE
G(ベースライン)規格で定義されているデフォルトの
ハフマン符号について、符号語の個数と重複データの個
数を求めると以下のようになる。
に使用されるハフマン符号の場合には、このような重複
はきわめて少ない程度に押さえられる。例えば、JPE
G(ベースライン)規格で定義されているデフォルトの
ハフマン符号について、符号語の個数と重複データの個
数を求めると以下のようになる。
【0030】
【表1】
【0031】本実施例による復号操作におけるテーブル
探索の詳細について説明する。復号すべきハフマン符号
語の系列Sが与えられたと仮定し、いまSの第i番目の
ビットから始まるハフマン符号語についての復号操作を
考えよう。
探索の詳細について説明する。復号すべきハフマン符号
語の系列Sが与えられたと仮定し、いまSの第i番目の
ビットから始まるハフマン符号語についての復号操作を
考えよう。
【0032】まず先頭部の1の長さ(l1 :カテゴリ番
号)を求め、カテゴリ番号で指示される第1テーブル4
の内容(オフセット長l0 、先頭ポインタ)を求める。
このとき、復号すべきハフマン符号語の(拡張)オフセ
ットが、系列Sにおいて第(i+l1 )から第(i+l
1 +l0 −1)ビットまでに存在することがわかる。つ
ぎに、(先頭ポインタ+オフセット)を計算し、これに
より第2テーブル6の内容(コード長l、ランレング
ス、レベル)を読み出せば、ランレングスとレベルの組
を得ることができ復号が完了する。
号)を求め、カテゴリ番号で指示される第1テーブル4
の内容(オフセット長l0 、先頭ポインタ)を求める。
このとき、復号すべきハフマン符号語の(拡張)オフセ
ットが、系列Sにおいて第(i+l1 )から第(i+l
1 +l0 −1)ビットまでに存在することがわかる。つ
ぎに、(先頭ポインタ+オフセット)を計算し、これに
より第2テーブル6の内容(コード長l、ランレング
ス、レベル)を読み出せば、ランレングスとレベルの組
を得ることができ復号が完了する。
【0033】なお、つぎに復号すべきハフマン符号語の
先頭位置は、入力系列Sの第(i+l)ビット目である
ことは容易に理解される。
先頭位置は、入力系列Sの第(i+l)ビット目である
ことは容易に理解される。
【0034】図6の右側部分に示した画像復号回路にお
ける、可変長復号部21に対する、本発明の実施例を図
1に示す。
ける、可変長復号部21に対する、本発明の実施例を図
1に示す。
【0035】バッファメモリ1は、入力された可変長
(ハフマン)符号語の系列から取り出された、16ビッ
ト長の部分系列を蓄える。バッファメモリ1は1の個数
計数回路2に接続しており、該計数回路2は、バッファ
メモリに蓄えられているデータに対して先頭部の1の個
数(すなわちカテゴリ番号l1 )を計数する回路であ
る。計数回路2の出力はテーブル4のアドレスに供給さ
れている。該テーブル4は図3に基づき説明したテーブ
ル4に対応し、先頭ポインタとオフセット長から成るエ
ントリを蓄えている。計数回路2の出力及びテーブル4
から読み出されたオフセット長はオフセット生成回路3
に供給される。該オフセット生成回路3は、これらの入
力に基づきバッファメモリに格納されたハフマン符号語
の系列よりオフセットに該当する部分系列を読み出す回
路である。オフセットは、バッファメモリの第(l1 +
1)ビット目から始まり、長さがオフセット長l0 の部
分系列として求めることができる。オフセット生成回路
3からのオフセットとテーブル4から読み出された先頭
ポインタは加算回路5に供給される。該加算回路は、テ
ーブル4から読み出された先頭ポインタとオフセット生
成回路3の出力により、(先頭ポインタ+オフセット)
を計算するものであり、テーブル6に対するアドレスを
出力する。テーブル6は図3に基づき説明したテーブル
6に対応し、コード長、ランレングス及びレベルからな
るエントリを蓄えている。ランレングス/レベル生成回
路7は、テーブル6の出力として得らえるランレングス
とレベルの組みを一時バッファし、逆量子化部への入力
とするためにデータを整列する回路である。テーブル6
から読み出されたコード長lは次に復号すべきハフマン
符号語の先頭を指定するためにバファメモリ1に供給さ
れる。
(ハフマン)符号語の系列から取り出された、16ビッ
ト長の部分系列を蓄える。バッファメモリ1は1の個数
計数回路2に接続しており、該計数回路2は、バッファ
メモリに蓄えられているデータに対して先頭部の1の個
数(すなわちカテゴリ番号l1 )を計数する回路であ
る。計数回路2の出力はテーブル4のアドレスに供給さ
れている。該テーブル4は図3に基づき説明したテーブ
ル4に対応し、先頭ポインタとオフセット長から成るエ
ントリを蓄えている。計数回路2の出力及びテーブル4
から読み出されたオフセット長はオフセット生成回路3
に供給される。該オフセット生成回路3は、これらの入
力に基づきバッファメモリに格納されたハフマン符号語
の系列よりオフセットに該当する部分系列を読み出す回
路である。オフセットは、バッファメモリの第(l1 +
1)ビット目から始まり、長さがオフセット長l0 の部
分系列として求めることができる。オフセット生成回路
3からのオフセットとテーブル4から読み出された先頭
ポインタは加算回路5に供給される。該加算回路は、テ
ーブル4から読み出された先頭ポインタとオフセット生
成回路3の出力により、(先頭ポインタ+オフセット)
を計算するものであり、テーブル6に対するアドレスを
出力する。テーブル6は図3に基づき説明したテーブル
6に対応し、コード長、ランレングス及びレベルからな
るエントリを蓄えている。ランレングス/レベル生成回
路7は、テーブル6の出力として得らえるランレングス
とレベルの組みを一時バッファし、逆量子化部への入力
とするためにデータを整列する回路である。テーブル6
から読み出されたコード長lは次に復号すべきハフマン
符号語の先頭を指定するためにバファメモリ1に供給さ
れる。
【0036】復号操作のための回路の動作を、図4の処
理フローに示す。ここで、復号すべきハフマン符号語の
系列Sが与えられ、かつ最初のハフマン符号語が第iビ
ット目(本実施例では初期値として第1ビット目)から
始まることが分かっているものと仮定する。
理フローに示す。ここで、復号すべきハフマン符号語の
系列Sが与えられ、かつ最初のハフマン符号語が第iビ
ット目(本実施例では初期値として第1ビット目)から
始まることが分かっているものと仮定する。
【0037】まず、ステップS1にて入力符号系列Sの
第iビットから始まる長さ16ビットの部分系列を取り
出し、バッファメモリ1に蓄える。次に、ステップS2
にて1の個数計数回路2により先頭部の1の個数(l
1 :カテゴリ番号)を求める。ここで、l1 は0〜15
までの値をもつ。次いでステップS3にて、先頭部の1
の個数l1 をアドレスとしてテーブル4を参照し、先頭
ポインタとオフセット長l0 の組をよみだす。
第iビットから始まる長さ16ビットの部分系列を取り
出し、バッファメモリ1に蓄える。次に、ステップS2
にて1の個数計数回路2により先頭部の1の個数(l
1 :カテゴリ番号)を求める。ここで、l1 は0〜15
までの値をもつ。次いでステップS3にて、先頭部の1
の個数l1 をアドレスとしてテーブル4を参照し、先頭
ポインタとオフセット長l0 の組をよみだす。
【0038】次に、ステップS4にてバッファメモリ1
に対して第(l1 +1)ビット目から第(l1 +l0 )
ビット目までを読み出すべくオフセット生成回路3を駆
動すれば、オフセットが得られる。次に、加算回路5に
より(先頭ポインタ+オフセット)の値を求め、これを
アドレスとしてテーブル6を参照すれば、コード長、ラ
ンレングス、及びレベルの組をもとめることが出来る。
最後に、ステップS7にてランレングス/レベル生成回
路7によりデータをバッファ・整形して、逆量子化部へ
出力することができる。
に対して第(l1 +1)ビット目から第(l1 +l0 )
ビット目までを読み出すべくオフセット生成回路3を駆
動すれば、オフセットが得られる。次に、加算回路5に
より(先頭ポインタ+オフセット)の値を求め、これを
アドレスとしてテーブル6を参照すれば、コード長、ラ
ンレングス、及びレベルの組をもとめることが出来る。
最後に、ステップS7にてランレングス/レベル生成回
路7によりデータをバッファ・整形して、逆量子化部へ
出力することができる。
【0039】次に復号すべきハフマン符号語は入力符号
系列Sの第(i+l)ビット目から開始されるので、ス
テップS8にてiをi+lに置き換える。次いでステッ
プS9にて求めたiが入力符号系列Sの最終ビット位置
より大きいか否かを判断し、小さいと判断された場合は
上記の操作(ステップS1〜S9)を繰り返すことで復
号処理、すなわち入力系列Sを複数のハフマン符号語へ
分割すること、各ハフマン符号語をランレングスとレベ
ルの組に変換すること、を行うことができる。
系列Sの第(i+l)ビット目から開始されるので、ス
テップS8にてiをi+lに置き換える。次いでステッ
プS9にて求めたiが入力符号系列Sの最終ビット位置
より大きいか否かを判断し、小さいと判断された場合は
上記の操作(ステップS1〜S9)を繰り返すことで復
号処理、すなわち入力系列Sを複数のハフマン符号語へ
分割すること、各ハフマン符号語をランレングスとレベ
ルの組に変換すること、を行うことができる。
【0040】尚、ステップS9にて求めたiが入力符号
系列Sの最終ビット位置より大きいと判断された場合は
復号処理を終了する。
系列Sの最終ビット位置より大きいと判断された場合は
復号処理を終了する。
【0041】以上、詳述したように、本実施例によれ
ば、与えられたハフマン符号語に対して、まずカテゴリ
番号を求め、次にこのカテゴリ番号をアドレスとして第
1テーブル4及び第2テーブル6を一回づつ読むだけ
で、復号に必要なランレングスとレベルを求めることが
できる。
ば、与えられたハフマン符号語に対して、まずカテゴリ
番号を求め、次にこのカテゴリ番号をアドレスとして第
1テーブル4及び第2テーブル6を一回づつ読むだけ
で、復号に必要なランレングスとレベルを求めることが
できる。
【0042】図10に基づき説明した従来方法1では、
テーブル探索を最大16回繰り返す必要があったが、本
実施例では上述のようにテーブル探索は必要でないた
め、高速に復号処理を実行できる。
テーブル探索を最大16回繰り返す必要があったが、本
実施例では上述のようにテーブル探索は必要でないた
め、高速に復号処理を実行できる。
【0043】また、図11に基づき説明した従来方法2
では、テーブルの容量が極めて大きくなるという問題点
があったが、本実施例では、ハフマン符号を各符号語の
先頭部の1の個数で分類することから、第2テーブル6
の冗長を極めて少なくし得、必要なメモリ量を格段に減
少させることができる。
では、テーブルの容量が極めて大きくなるという問題点
があったが、本実施例では、ハフマン符号を各符号語の
先頭部の1の個数で分類することから、第2テーブル6
の冗長を極めて少なくし得、必要なメモリ量を格段に減
少させることができる。
【0044】
【発明の効果】以上のように本発明は、ハフマン符号の
系列からコード表を参照しながらランレングスとレベル
の組を求める手段を備え、前記コード表が、ハフマン符
号を各符号語の先頭部の1の個数あるいは0の個数に従
ってカテゴリに分類した第1のテーブル、および第1の
テーブルの情報よりハフマン符号をランレングスとレベ
ルに対応させる第2のテーブル、の二つのテーブルから
なるので、高速に復号処理を実行できる。しかもコード
表の容量、従って必要なメモリ量を格段に減少させるこ
とができる。
系列からコード表を参照しながらランレングスとレベル
の組を求める手段を備え、前記コード表が、ハフマン符
号を各符号語の先頭部の1の個数あるいは0の個数に従
ってカテゴリに分類した第1のテーブル、および第1の
テーブルの情報よりハフマン符号をランレングスとレベ
ルに対応させる第2のテーブル、の二つのテーブルから
なるので、高速に復号処理を実行できる。しかもコード
表の容量、従って必要なメモリ量を格段に減少させるこ
とができる。
【図1】本発明にてなる復号化装置の一実施例の構成を
示す概略ブロック図である。
示す概略ブロック図である。
【図2】ハフマン符号を先端部の長さl1 に基づきカテ
ゴリ分割した例を示す説明図である。
ゴリ分割した例を示す説明図である。
【図3】本発明にてなる復号化装置の一実施例に備えら
れたテーブルの構成を示す構成図である。
れたテーブルの構成を示す構成図である。
【図4】本発明にてなる復号化装置の一実施例が実行す
る復号処理の流れを示すフローチャートである。
る復号処理の流れを示すフローチャートである。
【図5】1画面の画像データとブロックBとの関係を示
す模式図である。
す模式図である。
【図6】符号化装置と復号化装置とからなる画像伝送シ
ステムの概略ブロック図である。
ステムの概略ブロック図である。
【図7】8×8行列B″の行列要素を示す説明図であ
る。
る。
【図8】ジグザグスキャンの走査順と、ランレングス及
びレベルの一例とを示す説明図である。
びレベルの一例とを示す説明図である。
【図9】ハフマンコードの一例を示す説明図である。
【図10】従来方式1を説明するための説明図である。
【図11】従来方式2を説明するための説明図である。
1 バッファメモリ 2 先頭の1の個数計数回路 3 オフセット生成回路 4 第1のテーブル 5 加算回路 6 第2のテーブル 7 ランレングス/レベル生成回路 11 DCT部 12 量子化部 13 可変長符号化部 21 可変長復号化部 22 逆量子化部 23 逆DCT部 31 第1のテーブル 32 第2のテーブル 41 テーブル
Claims (1)
- 【請求項1】 可変長符号化された画像を復号する装置
において、 ハフマン符号の系列からコード表を参照しながらランレ
ングスとレベルの組を求める手段を備え、 前記コード表が、ハフマン符号を各符号語の先頭部の1
の個数あるいは0の個数に従ってカテゴリに分類した第
1のテーブル、および第1のテーブルの情報よりハフマ
ン符号をランレングスとレベルに対応させる第2のテー
ブル、の二つのテーブルからなるものであることを特徴
とする可変長符号の復号化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29432892A JPH06152988A (ja) | 1992-11-02 | 1992-11-02 | 可変長符号の復号化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29432892A JPH06152988A (ja) | 1992-11-02 | 1992-11-02 | 可変長符号の復号化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06152988A true JPH06152988A (ja) | 1994-05-31 |
Family
ID=17806282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29432892A Pending JPH06152988A (ja) | 1992-11-02 | 1992-11-02 | 可変長符号の復号化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06152988A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006295631A (ja) * | 2005-04-12 | 2006-10-26 | Mitsubishi Electric Corp | 可変長符号の復号装置 |
US7663514B2 (en) | 2007-07-25 | 2010-02-16 | Sony Corporation | Encoding processing apparatus and decoding processing apparatus |
JP2013187904A (ja) * | 2012-03-05 | 2013-09-19 | Samsung Electronics Co Ltd | 復号化装置及び方法 |
-
1992
- 1992-11-02 JP JP29432892A patent/JPH06152988A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006295631A (ja) * | 2005-04-12 | 2006-10-26 | Mitsubishi Electric Corp | 可変長符号の復号装置 |
US7663514B2 (en) | 2007-07-25 | 2010-02-16 | Sony Corporation | Encoding processing apparatus and decoding processing apparatus |
JP2013187904A (ja) * | 2012-03-05 | 2013-09-19 | Samsung Electronics Co Ltd | 復号化装置及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5818877A (en) | Method for reducing storage requirements for grouped data values | |
US5208593A (en) | Method and structure for decoding Huffman codes using leading ones detection | |
US5801650A (en) | Decoding apparatus and method | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
US5045852A (en) | Dynamic model selection during data compression | |
US6677869B2 (en) | Arithmetic coding apparatus and image processing apparatus | |
JPH0485621A (ja) | 丸め装置 | |
JP2836467B2 (ja) | 2値シンボルの符号化・復号化回路 | |
JPH10271016A (ja) | 符号/復号化器 | |
JPH06152988A (ja) | 可変長符号の復号化装置 | |
JP2000049621A (ja) | ハフマン復号化方法及びデータ処理装置 | |
US5561422A (en) | Method and apparatus for variable length coding with reduced memory requirement | |
Bonomini et al. | Implementing an MPEG2 Video Decoder Based on TMS320C80 MVP | |
JP3260925B2 (ja) | 画像処理装置 | |
JP3073072B2 (ja) | 画像データ圧縮及び復元方式 | |
JPH10163880A (ja) | データ復号化器 | |
JPH0723238A (ja) | 画像データ圧縮及び復元装置 | |
JP2812064B2 (ja) | 画像処理装置 | |
JP2728003B2 (ja) | ゼロラン展開回路およびゼロラン展開方法 | |
JPH0884260A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
JPH11317673A (ja) | ランレングス符号化方法及び復号化方法 | |
JPH10341345A (ja) | 画像データ処理システム | |
JP3105330B2 (ja) | 画像データの圧縮復元方式 | |
JPH08316846A (ja) | 画像符号化装置、画像復号化装置、画像符号化方法および画像復号化方法 | |
JPH05176187A (ja) | データ圧縮・復元装置 |