JP3025827B2 - 可変長コード化装置 - Google Patents
可変長コード化装置Info
- Publication number
- JP3025827B2 JP3025827B2 JP5227694A JP22769493A JP3025827B2 JP 3025827 B2 JP3025827 B2 JP 3025827B2 JP 5227694 A JP5227694 A JP 5227694A JP 22769493 A JP22769493 A JP 22769493A JP 3025827 B2 JP3025827 B2 JP 3025827B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- bitmap
- length
- code table
- bits
- 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 - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【産業上の利用分野】本発明は、ディジタル音声/画像
コード化装置等で使用する可変長コード化装置(「ハフ
マンコード化装置」ないし「エントロピーコード化装
置」としても知られる)に関するものである。
コード化装置等で使用する可変長コード化装置(「ハフ
マンコード化装置」ないし「エントロピーコード化装
置」としても知られる)に関するものである。
【0002】
【従来の技術】多くのディジタル画像コード化装置で
は、離散コサイン変換(DCT)に基づく有損失コード
化アルゴリズムが、可変長コード化(VLC)に基づく
無損失コード化装置に先行している。変換係数はラン−
レベル化、エントロピーコード化し、その中で最も通常
のラン−レベル組合せには最短コードを与え、あまり通
常でない組合せには長いコードを与えている。ラン−レ
ベルは1つないしそれ以上の変換係数のグループを、1
つの係数値(レベル)が後に続く0の係数の数(ラン)
として表す。例えばH. 261(「勧告H. 261−px64
kビット/sでの視聴覚サービス用の映像コーデック」
国際電信電話諮問委員会、第15研究部会、CCITT15
サブグループ文書、報告書R37、1990年8月を参照のこ
と)とMPEG−1(「CD11172−約 1.5 Mbpsま
でのディジタル記憶媒体用の関連オーディオと動画像の
コード化」国際標準化機構、ISO MPEG文書、IS
O-IEC/JTC1/SC2/WG8、1992年を参照のこと)は、可変長
コード化装置を必要とする音声/画像コーデックを説明
している。現在出現してきている標準HDTVコーデッ
クも可変長コード化装置を必要とする。
は、離散コサイン変換(DCT)に基づく有損失コード
化アルゴリズムが、可変長コード化(VLC)に基づく
無損失コード化装置に先行している。変換係数はラン−
レベル化、エントロピーコード化し、その中で最も通常
のラン−レベル組合せには最短コードを与え、あまり通
常でない組合せには長いコードを与えている。ラン−レ
ベルは1つないしそれ以上の変換係数のグループを、1
つの係数値(レベル)が後に続く0の係数の数(ラン)
として表す。例えばH. 261(「勧告H. 261−px64
kビット/sでの視聴覚サービス用の映像コーデック」
国際電信電話諮問委員会、第15研究部会、CCITT15
サブグループ文書、報告書R37、1990年8月を参照のこ
と)とMPEG−1(「CD11172−約 1.5 Mbpsま
でのディジタル記憶媒体用の関連オーディオと動画像の
コード化」国際標準化機構、ISO MPEG文書、IS
O-IEC/JTC1/SC2/WG8、1992年を参照のこと)は、可変長
コード化装置を必要とする音声/画像コーデックを説明
している。現在出現してきている標準HDTVコーデッ
クも可変長コード化装置を必要とする。
【0003】可変長コード化装置の実現は一般に、参照
用テーブル(LUT)を用いて固定長データを可変長デ
ータに変換することで行われてきた。参照用テーブルは
通常メモリ(例えばRAM又はPROM)、あるいはロ
ジック(例えばPLA)を用いて実現される。レイとサ
ン(「ディジタルHDTVアプリケーション用のエント
ロピーコード化システム」シャオミン・ライ及びミンチ
ン・サン、画像技術用の回路とシステムのIEEEトラ
ンザクション、1巻、1号、1991年3月を参照のこと)
は、PLAを用いて参照用テーブルを実現した。PLA
にはコード語ビットシーケンスとビットシーケンスの長
さを収容した。PLAへの入力はラン−レベラーからの
固定長データであり、出力はコード語ビットシーケンス
とビットシーケンスの長さである。ボーゲル(「ビット
速度を削減する方法と装置」ピーター・ボーゲル、米国
特許 4,901,075号、1990年2月13日)は参照用テーブル
を実現するためにPROMを使用した方法を記載してい
る。ラン−レベル固定長データはPROMのアドレスバ
スに直接適用し、可変長ビットシーケンスの内容をデー
タバス上に出力している。
用テーブル(LUT)を用いて固定長データを可変長デ
ータに変換することで行われてきた。参照用テーブルは
通常メモリ(例えばRAM又はPROM)、あるいはロ
ジック(例えばPLA)を用いて実現される。レイとサ
ン(「ディジタルHDTVアプリケーション用のエント
ロピーコード化システム」シャオミン・ライ及びミンチ
ン・サン、画像技術用の回路とシステムのIEEEトラ
ンザクション、1巻、1号、1991年3月を参照のこと)
は、PLAを用いて参照用テーブルを実現した。PLA
にはコード語ビットシーケンスとビットシーケンスの長
さを収容した。PLAへの入力はラン−レベラーからの
固定長データであり、出力はコード語ビットシーケンス
とビットシーケンスの長さである。ボーゲル(「ビット
速度を削減する方法と装置」ピーター・ボーゲル、米国
特許 4,901,075号、1990年2月13日)は参照用テーブル
を実現するためにPROMを使用した方法を記載してい
る。ラン−レベル固定長データはPROMのアドレスバ
スに直接適用し、可変長ビットシーケンスの内容をデー
タバス上に出力している。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
ような方法では、以下に示すような課題がある。
ような方法では、以下に示すような課題がある。
【0005】一つは、急速に変化しているディジタルA
/Vコード化技術及び応用が広範囲になっていること
で、可変長コード化に使用するハフマンテーブルの内容
が変化し、これはプログラマブル可変長コード表を必要
とする。その一方でプログラマビリティに反して、安価
なVLSIコーデックを作成できるようにするために小
型化の必要性がある。
/Vコード化技術及び応用が広範囲になっていること
で、可変長コード化に使用するハフマンテーブルの内容
が変化し、これはプログラマブル可変長コード表を必要
とする。その一方でプログラマビリティに反して、安価
なVLSIコーデックを作成できるようにするために小
型化の必要性がある。
【0006】また、MPEG−1とH.261では、ハフ
マンテーブルは連続的ではない。全てのラン−レベル組
合せは存在しておらず、存在する組合せでも、それらは
必ずしも連続的ではない。例えばラン=6、レベル=
0、1、2、3に対するコード語は存在するが、ラン=
6、レベル=4あるいはラン=7、レベル=3のコード
語は存在しない。これは従来のランとレベルの値をメモ
リのアドレスに使用した方法では、未使用のメモリとい
う「孔」、即ちコード語を持たないラン−レベル組合せ
が有用な情報を含まないメモリ部分を発生させることを
意味する。これはVLSIチップのスペースの浪費にな
っている。メモリの代わりにPLAを使用することが出
来るが、PLAはRAMに比べて融通性は限定されてい
る。
マンテーブルは連続的ではない。全てのラン−レベル組
合せは存在しておらず、存在する組合せでも、それらは
必ずしも連続的ではない。例えばラン=6、レベル=
0、1、2、3に対するコード語は存在するが、ラン=
6、レベル=4あるいはラン=7、レベル=3のコード
語は存在しない。これは従来のランとレベルの値をメモ
リのアドレスに使用した方法では、未使用のメモリとい
う「孔」、即ちコード語を持たないラン−レベル組合せ
が有用な情報を含まないメモリ部分を発生させることを
意味する。これはVLSIチップのスペースの浪費にな
っている。メモリの代わりにPLAを使用することが出
来るが、PLAはRAMに比べて融通性は限定されてい
る。
【0007】更に、ハフマンテーブルにはしばしば、可
変長ビットシーケンス内に識別可能でコード表を縮小す
るのに使用出来るパターンが含まれている。例えばMP
EG−1では、DCT係数ハフマンテーブル内の最長ビ
ットシーケンスは16ビットである(レベルの符号を無
視して)。
変長ビットシーケンス内に識別可能でコード表を縮小す
るのに使用出来るパターンが含まれている。例えばMP
EG−1では、DCT係数ハフマンテーブル内の最長ビ
ットシーケンスは16ビットである(レベルの符号を無
視して)。
【0008】しかしながら、長いビットシーケンスはす
べて0のストリングからなり、後にいくつかの1が続く
というように冗長性がある。そこで、このパターンを認
識すればコード表のサイズを削減するのに使用出来る。
べて0のストリングからなり、後にいくつかの1が続く
というように冗長性がある。そこで、このパターンを認
識すればコード表のサイズを削減するのに使用出来る。
【0009】本発明は、従来の可変長コード化のこのよ
うな課題を考慮し、可変長コード化用の小さいプログラ
マブル・アーキテクチャを実現し、コード表スペースの
浪費をなくすことができ、冗長情報により生じるコード
表のスペースの浪費をなくすことができる可変長コード
化装置を提供することを目的とするものである。
うな課題を考慮し、可変長コード化用の小さいプログラ
マブル・アーキテクチャを実現し、コード表スペースの
浪費をなくすことができ、冗長情報により生じるコード
表のスペースの浪費をなくすことができる可変長コード
化装置を提供することを目的とするものである。
【0010】
【課題を解決するための手段】本発明は、固定ビット長
データを可変ビット長データに変換する可変長コード化
装置において、ビットシーケンスとそのビットシーケン
スの長さを定義するコード語を格納するコード表と、コ
ード語のコード表内での存在を示し、固定ビット長デー
タからの1つないし複数のビットでアドレス指定するビ
ットマップと、固定ビット長データからの1つないし複
数のビットを、コード表を指標するのに使用するコード
表アドレスに変換するアドレッサとを備えた可変長コー
ド化装置である。
データを可変ビット長データに変換する可変長コード化
装置において、ビットシーケンスとそのビットシーケン
スの長さを定義するコード語を格納するコード表と、コ
ード語のコード表内での存在を示し、固定ビット長デー
タからの1つないし複数のビットでアドレス指定するビ
ットマップと、固定ビット長データからの1つないし複
数のビットを、コード表を指標するのに使用するコード
表アドレスに変換するアドレッサとを備えた可変長コー
ド化装置である。
【0011】
【作用】本発明は、例えば、固定長入力データあるいは
そのサブセットをビットマップの入力に加えたとき、ビ
ットマップからの結果出力はコード表がその固定長入力
データのハフマンコード語を含むかどうかを示す指標と
なる。ビットマップがコード語がないことを示すなら
ば、この可変長コード化装置からのビットシーケンス出
力は無効である。この場合、データを固定長ビットシー
ケンスとしてコード化するような固定長データをコード
化する別の方法が必要である。
そのサブセットをビットマップの入力に加えたとき、ビ
ットマップからの結果出力はコード表がその固定長入力
データのハフマンコード語を含むかどうかを示す指標と
なる。ビットマップがコード語がないことを示すなら
ば、この可変長コード化装置からのビットシーケンス出
力は無効である。この場合、データを固定長ビットシー
ケンスとしてコード化するような固定長データをコード
化する別の方法が必要である。
【0012】更に、固定長入力データあるいはそのサブ
セットをアドレッサの入力に加えたとき、アドレッサか
らの結果出力はその固定長入力データのコード表を指標
するのに使用するアドレスとなる。アドレッサによりコ
ード語のみをコード表内に格納することが出来るので、
無効データによるコード表内の浪費スペースはなくな
る。固定長入力データを直接使用してコード表を指標し
たならば、大部分の固定長入力データの可変長コード語
はないので、固定長入力データ語の多くはこの可変長コ
ード化装置からの無効なビットシーケンス出力となる。
この場合でも、無効なコード語のグループとは別に有効
なコード語の連続的なグループがあることがある。これ
を利用してアドレッサはハフマンテーブル内のそれらの
孔を除去する。
セットをアドレッサの入力に加えたとき、アドレッサか
らの結果出力はその固定長入力データのコード表を指標
するのに使用するアドレスとなる。アドレッサによりコ
ード語のみをコード表内に格納することが出来るので、
無効データによるコード表内の浪費スペースはなくな
る。固定長入力データを直接使用してコード表を指標し
たならば、大部分の固定長入力データの可変長コード語
はないので、固定長入力データ語の多くはこの可変長コ
ード化装置からの無効なビットシーケンス出力となる。
この場合でも、無効なコード語のグループとは別に有効
なコード語の連続的なグループがあることがある。これ
を利用してアドレッサはハフマンテーブル内のそれらの
孔を除去する。
【0013】又、コード表が可変長コード語情報をコー
ド化データとして含むならば、変換器を用いてコード表
からの出力をビットシーケンスとビットシーケンス可変
長コード語の長さに変換するのに使用する。長さとビッ
トシーケンスの代わりにコード化データを格納すること
で、コード表の語幅及びコード表の全体的なサイズを削
減できる。
ド化データとして含むならば、変換器を用いてコード表
からの出力をビットシーケンスとビットシーケンス可変
長コード語の長さに変換するのに使用する。長さとビッ
トシーケンスの代わりにコード化データを格納すること
で、コード表の語幅及びコード表の全体的なサイズを削
減できる。
【0014】
【実施例】以下に、本発明をその実施例を示す図面に基
づいて説明する。
づいて説明する。
【0015】図1は、本発明にかかる第1の実施例の可
変長コード化装置のブロック図である。図1において、
入力1は6ビットランと8ビット絶対値レベルからなる
固定長データである。そのようなデータの例として、D
CT係数のラン−レベル・コード化の後にディジタル映
像エンコーダとなるラン−レベル組合せがある。この場
合、ランは0の係数の数を示し、レベルは0の後に続く
非ゼロの係数の絶対値を示す。ビットマップ入力2はラ
ン及びレベルの14入力ビットである。ビットマップ出
力3はコード語データがコード表内に存在すれば1で、
さもなくば0である単一ビットである。ビットマップ4
は214 x1ビットメモリを用いて実現することが出来
る。
変長コード化装置のブロック図である。図1において、
入力1は6ビットランと8ビット絶対値レベルからなる
固定長データである。そのようなデータの例として、D
CT係数のラン−レベル・コード化の後にディジタル映
像エンコーダとなるラン−レベル組合せがある。この場
合、ランは0の係数の数を示し、レベルは0の後に続く
非ゼロの係数の絶対値を示す。ビットマップ入力2はラ
ン及びレベルの14入力ビットである。ビットマップ出
力3はコード語データがコード表内に存在すれば1で、
さもなくば0である単一ビットである。ビットマップ4
は214 x1ビットメモリを用いて実現することが出来
る。
【0016】アドレッサ5は、ベーステーブル6と加算
器7から構成される。ベーステーブル6は入力アドレス
線8がランの6ビットである26 x 6RAMを使用して
実現できる。ベーステーブル6の内容はコード表内の特
定のランでコード語データの連続的なグループのベース
アドレス9を示す。この開始アドレスからのオフセット
10はレベルの8ビットである。ベースアドレス9とオ
フセット10は加算器7で加算されてコード語データが
あるコード表アドレス11を決定する。例えばラン=4
でレベル=2の組合せについて、ベーステーブル6はラ
ン値4を用いて指標する。その結果、ラン=4である全
てのコード語のグループの開始位置のコード表を指標す
るベースアドレス9が出る。このベースからのオフセッ
ト10はレベル値2である。言い替えれば、ラン=4、
レベル=2に対応するコード語を求めるために使用する
指標は、ベーステーブル[4]+ 2の内容として計算さ
れる。
器7から構成される。ベーステーブル6は入力アドレス
線8がランの6ビットである26 x 6RAMを使用して
実現できる。ベーステーブル6の内容はコード表内の特
定のランでコード語データの連続的なグループのベース
アドレス9を示す。この開始アドレスからのオフセット
10はレベルの8ビットである。ベースアドレス9とオ
フセット10は加算器7で加算されてコード語データが
あるコード表アドレス11を決定する。例えばラン=4
でレベル=2の組合せについて、ベーステーブル6はラ
ン値4を用いて指標する。その結果、ラン=4である全
てのコード語のグループの開始位置のコード表を指標す
るベースアドレス9が出る。このベースからのオフセッ
ト10はレベル値2である。言い替えれば、ラン=4、
レベル=2に対応するコード語を求めるために使用する
指標は、ベーステーブル[4]+ 2の内容として計算さ
れる。
【0017】コード表12は23ビットの「ビットシー
ケンス」と5ビットの「ビットシーケンスの長さ」から
なる合計28ビットの語を含む。例えばビットシーケン
ス「001101」を格納するには、「ビットシーケンスの長
さ」は6で「ビットシーケンス」は「001101」となる。
本実施例については、ビットシーケンスの未使用のビッ
トは0に設定する。これはラン及びレベル固定長入力デ
ータに対応した可変長コード語13を示している。この
実施例の最大コード長は23ビットである。128コー
ド語までのコード表12は、128 x 28ビット・メモリを
用いて実現することが出来る。
ケンス」と5ビットの「ビットシーケンスの長さ」から
なる合計28ビットの語を含む。例えばビットシーケン
ス「001101」を格納するには、「ビットシーケンスの長
さ」は6で「ビットシーケンス」は「001101」となる。
本実施例については、ビットシーケンスの未使用のビッ
トは0に設定する。これはラン及びレベル固定長入力デ
ータに対応した可変長コード語13を示している。この
実施例の最大コード長は23ビットである。128コー
ド語までのコード表12は、128 x 28ビット・メモリを
用いて実現することが出来る。
【0018】本実施例の利点は、必要なメモリ及びロジ
ックのサイズを、単純な参照用テーブルで実現される可
変長コード化装置で必要なメモリサイズと比較すれば分
かる。本実施例では合計214 x 1 + 26 x 6 + 128 x
28= 20352ビットの記憶容量に加えて小量のロジックを
必要とする。可変長コード化装置を単純なテーブルを用
いて実現すると、テーブルのサイズは214 x 29 = 4587
52ビットとなる。これは、入力がランとレベルについて
14ビットであり、214の異なる入力組合せがある。テ
ーブルの各々の項目は、23ビットのビットシーケンス
と5ビットの長さとコード語が有効かどうかを示す単一
ビットを含む。従って単純なテーブル内の各々の項目
は、本実施例のビットマップ4に格納される可変長コー
ドと有効な指標の両方を含めて29ビットとなる。単純
なテーブルがこのように極めて大きい理由は、単純なテ
ーブルは全てのラン−レベル組合せについてコード語の
スペースを予約するからであり、それに対して本実施例
の可変長コード化装置はそれらのコード語が存在しない
メモリ内のスペースを除去する。従って本発明は可変長
コード化のメモリ記憶容量を大きく削減できるという効
果がある。
ックのサイズを、単純な参照用テーブルで実現される可
変長コード化装置で必要なメモリサイズと比較すれば分
かる。本実施例では合計214 x 1 + 26 x 6 + 128 x
28= 20352ビットの記憶容量に加えて小量のロジックを
必要とする。可変長コード化装置を単純なテーブルを用
いて実現すると、テーブルのサイズは214 x 29 = 4587
52ビットとなる。これは、入力がランとレベルについて
14ビットであり、214の異なる入力組合せがある。テ
ーブルの各々の項目は、23ビットのビットシーケンス
と5ビットの長さとコード語が有効かどうかを示す単一
ビットを含む。従って単純なテーブル内の各々の項目
は、本実施例のビットマップ4に格納される可変長コー
ドと有効な指標の両方を含めて29ビットとなる。単純
なテーブルがこのように極めて大きい理由は、単純なテ
ーブルは全てのラン−レベル組合せについてコード語の
スペースを予約するからであり、それに対して本実施例
の可変長コード化装置はそれらのコード語が存在しない
メモリ内のスペースを除去する。従って本発明は可変長
コード化のメモリ記憶容量を大きく削減できるという効
果がある。
【0019】図2は、第2の実施例の可変長コード化装
置のブロック図である。図2において、入力は6ビット
ランと8ビット絶対値レベルからなる固定長データ14
である。ビットマップ15は2つのサブビットマップ1
6,17と、若干の比較器18と有効ロジック19から
構成される。
置のブロック図である。図2において、入力は6ビット
ランと8ビット絶対値レベルからなる固定長データ14
である。ビットマップ15は2つのサブビットマップ1
6,17と、若干の比較器18と有効ロジック19から
構成される。
【0020】図3は、2つのサブビットマップ16,1
7をどの様に使用するかを示している。点線36は2次
元のビットマップアドレス・スペースを示す。水平軸は
1から256の範囲のレベルの絶対値であり、表示は
(レベル−1)、即ち0から255であるので、8ビッ
トで示される。垂直軸は0から63の範囲のランであ
り、6ビットで示される。陰影領域20はコード語がコ
ード化コード表21内に存在するラン−レベルの組合せ
を示す。言い替えると、本実施例でビットマップの値が
1となる位置である。他の位置では「0」となる。点線
内のビットマップをメモリを使用して実現したならば、
第1の実施例と同様のビットマップ、即ち214 x 1 メ
モリを用いて実現することが出来る。しかし本実施例で
は、非ゼロビットがないサブビットマップ−1及びサブ
ビットマップ−2の外側の大きなメモリスペースは、メ
モリを用いて実現しない。代わりにサブビットマップ−
1領域とサブビットマップ−2領域だけをメモリを用い
て実現する。
7をどの様に使用するかを示している。点線36は2次
元のビットマップアドレス・スペースを示す。水平軸は
1から256の範囲のレベルの絶対値であり、表示は
(レベル−1)、即ち0から255であるので、8ビッ
トで示される。垂直軸は0から63の範囲のランであ
り、6ビットで示される。陰影領域20はコード語がコ
ード化コード表21内に存在するラン−レベルの組合せ
を示す。言い替えると、本実施例でビットマップの値が
1となる位置である。他の位置では「0」となる。点線
内のビットマップをメモリを使用して実現したならば、
第1の実施例と同様のビットマップ、即ち214 x 1 メ
モリを用いて実現することが出来る。しかし本実施例で
は、非ゼロビットがないサブビットマップ−1及びサブ
ビットマップ−2の外側の大きなメモリスペースは、メ
モリを用いて実現しない。代わりにサブビットマップ−
1領域とサブビットマップ−2領域だけをメモリを用い
て実現する。
【0021】本実施例について、サブ・ビットマップ−
1への入力22は0から31の入力範囲についてはラン
の5LSビット(最下位ビット)であり、1から8のレ
ベルの有効入力範囲については(レベル−1)の3LS
ビットである。出力23は以下、有効マップ−1と称す
る単一ビットである。サブ・ビットマップ−1(16)
は28 x 1RAMを用いて実現することが出来る。サブ
・ビットマップ−2への入力24は0から7の入力範囲
についてランの3LSビットであり、1から64のレベ
ルの有効入力範囲については(レベル−1)の6LSビ
ットである。出力25は以下、有効マップ−2と称する
単一ビットである。サブ・ビットマップ−2(17)は
29 x 1RAMを用いて実現することが出来る。サブ・
ビットマップRAMの内容は、ラン/レベル・コード語
がコード表に存在するならば1であり、そうでなければ
0となる。サブ・ビットマップへの入力として使用する
ビットの選択を行い、ビットマップアドレス・スペース
36内の陰影領域20をカバーするのに必要な合計メモ
リサイズを最小にする。
1への入力22は0から31の入力範囲についてはラン
の5LSビット(最下位ビット)であり、1から8のレ
ベルの有効入力範囲については(レベル−1)の3LS
ビットである。出力23は以下、有効マップ−1と称す
る単一ビットである。サブ・ビットマップ−1(16)
は28 x 1RAMを用いて実現することが出来る。サブ
・ビットマップ−2への入力24は0から7の入力範囲
についてランの3LSビットであり、1から64のレベ
ルの有効入力範囲については(レベル−1)の6LSビ
ットである。出力25は以下、有効マップ−2と称する
単一ビットである。サブ・ビットマップ−2(17)は
29 x 1RAMを用いて実現することが出来る。サブ・
ビットマップRAMの内容は、ラン/レベル・コード語
がコード表に存在するならば1であり、そうでなければ
0となる。サブ・ビットマップへの入力として使用する
ビットの選択を行い、ビットマップアドレス・スペース
36内の陰影領域20をカバーするのに必要な合計メモ
リサイズを最小にする。
【0022】比較器18は、各々のサブ・ビットマップ
への入力が有効かどうか、以下にしたがって判定する。
への入力が有効かどうか、以下にしたがって判定する。
【0023】 ((ラン <= 31) && (レベル <= 8)) --> 範囲内マ
ップ−1 ((ラン <= 7) && (レベル <= 64)) --> 範囲内マ
ップ−2 範囲内マップ−1はラン−レベルの組合せがサブ・ビッ
トマップ−1内にあれば「真」であり、範囲内マップ−
2はラン−レベルの組合せがサブ・ビットマップ−2内
にあれば「真」である。
ップ−1 ((ラン <= 7) && (レベル <= 64)) --> 範囲内マ
ップ−2 範囲内マップ−1はラン−レベルの組合せがサブ・ビッ
トマップ−1内にあれば「真」であり、範囲内マップ−
2はラン−レベルの組合せがサブ・ビットマップ−2内
にあれば「真」である。
【0024】有効ロジック19は以下を判定する。
【0025】 ((有効マップ−1 && 範囲内マップ−1) || (有効マップ−2 && 範囲内マップ−2))--> 有効
コード語 有効コード語出力26は、コード語データがコード化コ
ード表21内に存在していれば1である。
コード語 有効コード語出力26は、コード語データがコード化コ
ード表21内に存在していれば1である。
【0026】アドレッサ27は、ベーステーブル28と
加算器29から構成される。ベーステーブル28は入力
アドレス線30がランの5LSビットである25 x 6R
AMを使用して実現できる。ベーステーブル28の内容
はコード表内の特定のランで、コード語データの連続的
なグループのベースアドレス31を示す。このベースア
ドレス31からのオフセット32はレベルの8ビットで
ある。ベースアドレス31とオフセット32は加算され
てコード語データが位置するコード化コード表アドレス
33を判定する。
加算器29から構成される。ベーステーブル28は入力
アドレス線30がランの5LSビットである25 x 6R
AMを使用して実現できる。ベーステーブル28の内容
はコード表内の特定のランで、コード語データの連続的
なグループのベースアドレス31を示す。このベースア
ドレス31からのオフセット32はレベルの8ビットで
ある。ベースアドレス31とオフセット32は加算され
てコード語データが位置するコード化コード表アドレス
33を判定する。
【0027】本実施例について、コード化コード表21
は、4ビットの「0の長さ」と、4ビットの「コードの
長さ」及び8ビットの「ビットシーケンスコード」から
なる語を含む。コード化コード語変換器34はそれらの
値を、コードの特定数のビットが後に続く特定数の0の
ビットシーケンスに変換する。コード化コード語変換器
34の出力はビットシーケンスとビットシーケンスの長
さである。
は、4ビットの「0の長さ」と、4ビットの「コードの
長さ」及び8ビットの「ビットシーケンスコード」から
なる語を含む。コード化コード語変換器34はそれらの
値を、コードの特定数のビットが後に続く特定数の0の
ビットシーケンスに変換する。コード化コード語変換器
34の出力はビットシーケンスとビットシーケンスの長
さである。
【0028】例えば、ビットシーケンス「0000001101」
は、ビットシーケンス「1101」の4ビットコードが後に
続く6つの0として示す。「0の長さ」「6」は4ビッ
トで表すことが出来、「コードの長さ」「4」は4ビッ
トで表すことが出来、「ビットシーケンス・コード」
「1101」は8ビットで表すことが出来るが、ここではそ
れらのビットのうち4ビットは使用しない。この例の変
換器からの出力は、5ビットで表す10というビットシ
ーケンス長(「0000001101」は10ビット長である)
と、23ビットで表すビットシーケンス「0000001101」
であり、その内の10ビットがこの例では有意味であ
る。本実施例の最大コード長は、8ビットまでの(「コ
ードの長さ」の範囲は1から8)「ビットシーケンス・
コード」と15個までの0があり得るので、23ビット
である。
は、ビットシーケンス「1101」の4ビットコードが後に
続く6つの0として示す。「0の長さ」「6」は4ビッ
トで表すことが出来、「コードの長さ」「4」は4ビッ
トで表すことが出来、「ビットシーケンス・コード」
「1101」は8ビットで表すことが出来るが、ここではそ
れらのビットのうち4ビットは使用しない。この例の変
換器からの出力は、5ビットで表す10というビットシ
ーケンス長(「0000001101」は10ビット長である)
と、23ビットで表すビットシーケンス「0000001101」
であり、その内の10ビットがこの例では有意味であ
る。本実施例の最大コード長は、8ビットまでの(「コ
ードの長さ」の範囲は1から8)「ビットシーケンス・
コード」と15個までの0があり得るので、23ビット
である。
【0029】本発明の本実施例の利点は、必要なメモリ
とロジックのサイズを、単純な参照用テーブルで実現さ
れる可変長コード化装置で必要なメモリサイズと比較す
ることで分かる。第2の実施例は合計28 x 1 + 29 x
1 + 25 x 6 + 128 x 16=3008 ビットの記憶容量に
加えて小量のロジックを必要とする。本実施例の可変長
コード化装置を単純なテーブルを用いて実現すると、テ
ーブルのサイズは先述のように214 x 29 = 458752ビッ
トとなる。単純なテーブルがこのように極めて大きい理
由は、単純なテーブルは全てのラン−レベル組合せにつ
いてコード語のスペースを予約するが、それに対して本
実施例の可変長コード化装置は、それらのコード語が存
在しないメモリ内のスペースを除去するからである。別
の理由は、単純なテーブルは214 x 1 ビットマップを
含んでいるのに対して、本実施例ではビットマップは2
つの小さいサブ・ビットマップといくつかのロジックで
実施するからである。更に別の理由は、単純なテーブル
は28ビットを使用してコード語を表すが、本実施例で
はコード語はそれぞれ16ビットで表し、変換器を用い
てそれらを拡大するからである。その結果、本発明は、
可変長コード化に対するメモリ記憶容量を大きく削減す
るという効果がある。
とロジックのサイズを、単純な参照用テーブルで実現さ
れる可変長コード化装置で必要なメモリサイズと比較す
ることで分かる。第2の実施例は合計28 x 1 + 29 x
1 + 25 x 6 + 128 x 16=3008 ビットの記憶容量に
加えて小量のロジックを必要とする。本実施例の可変長
コード化装置を単純なテーブルを用いて実現すると、テ
ーブルのサイズは先述のように214 x 29 = 458752ビッ
トとなる。単純なテーブルがこのように極めて大きい理
由は、単純なテーブルは全てのラン−レベル組合せにつ
いてコード語のスペースを予約するが、それに対して本
実施例の可変長コード化装置は、それらのコード語が存
在しないメモリ内のスペースを除去するからである。別
の理由は、単純なテーブルは214 x 1 ビットマップを
含んでいるのに対して、本実施例ではビットマップは2
つの小さいサブ・ビットマップといくつかのロジックで
実施するからである。更に別の理由は、単純なテーブル
は28ビットを使用してコード語を表すが、本実施例で
はコード語はそれぞれ16ビットで表し、変換器を用い
てそれらを拡大するからである。その結果、本発明は、
可変長コード化に対するメモリ記憶容量を大きく削減す
るという効果がある。
【0030】図4は、前述の実施例を固定長データコー
ド化装置37と共に使用して、データのビットシーケン
スをコード化する1つの方法を示している。ビットマッ
プ39からの有効コード語出力38がセレクタ40を用
いて可変長コード語41又は固定長コード化コード語4
2のいずれかを選択する。セレクタ40の出力43は、
コード化されたビットシーケンスである。有効コード語
出力38が可変長コードが存在しないことを示せば、固
定長コード化コード語が代わりに選択されるので、この
構成を用いてどの様な固定長コード語もコード化するこ
とが出来る。
ド化装置37と共に使用して、データのビットシーケン
スをコード化する1つの方法を示している。ビットマッ
プ39からの有効コード語出力38がセレクタ40を用
いて可変長コード語41又は固定長コード化コード語4
2のいずれかを選択する。セレクタ40の出力43は、
コード化されたビットシーケンスである。有効コード語
出力38が可変長コードが存在しないことを示せば、固
定長コード化コード語が代わりに選択されるので、この
構成を用いてどの様な固定長コード語もコード化するこ
とが出来る。
【0031】なお、別の比較器と有効ロジックを用いて
も良いし、数とサイズの両方の面で本実施例とは異なる
ビットマップを用いることもできる。また、ベーステー
ブルとコード表のサイズ及びコード化コード語変換器の
機能を変えても実現できる。それらの項目の選択によっ
て、コード化装置の融通性とプログラマビリティを犠牲
にしてコード化装置のサイズを更に小さくすることもで
きる。
も良いし、数とサイズの両方の面で本実施例とは異なる
ビットマップを用いることもできる。また、ベーステー
ブルとコード表のサイズ及びコード化コード語変換器の
機能を変えても実現できる。それらの項目の選択によっ
て、コード化装置の融通性とプログラマビリティを犠牲
にしてコード化装置のサイズを更に小さくすることもで
きる。
【0032】以上のように、コード表をそれぞれコード
語ビットシーケンスとビットシーケンスの長さを定義す
るコード語を格納するのに使用し、ビットマップを使用
して特定の固定長コード入力に対してコード表内にコー
ド語が存在することを示し、アドレッサを用いて固定長
コード入力を、コード表を指標するのに使用するアドレ
スに変換する。すなわち、ビットマップとアドレッサ
は、非連続的コード語により生じるハフマンテーブル内
の孔を除去する手段として使用し、コード語変換器を使
用してコード表内のビットシーケンス・コード語の記憶
内の一部の冗長情報を除去する。
語ビットシーケンスとビットシーケンスの長さを定義す
るコード語を格納するのに使用し、ビットマップを使用
して特定の固定長コード入力に対してコード表内にコー
ド語が存在することを示し、アドレッサを用いて固定長
コード入力を、コード表を指標するのに使用するアドレ
スに変換する。すなわち、ビットマップとアドレッサ
は、非連続的コード語により生じるハフマンテーブル内
の孔を除去する手段として使用し、コード語変換器を使
用してコード表内のビットシーケンス・コード語の記憶
内の一部の冗長情報を除去する。
【0033】従って、同一の手段で様々なハフマンコー
ド表の実現が可能になり、かなりのプログラマビリティ
を維持しつつ、可変長コード化装置のサイズを劇的に減
少できる。アドレッサとビットマップを使用することに
より、ハフマンテーブル内の孔のメモリスペースを占有
しないため、コード表のサイズを削減できる。又、サブ
・ビットマップに加えて関連比較器といくつかの追加ロ
ジックを使用することにより、固定長入力データの範囲
についてコード表内でのコードの存在を判定してビット
マップのサイズを削減できる。更に、変換器を使用する
ことにより、コード表内の多くのあるいは全てのコード
語について共通の冗長情報でメモリを占有しないため、
コード表のサイズを減少できる。
ド表の実現が可能になり、かなりのプログラマビリティ
を維持しつつ、可変長コード化装置のサイズを劇的に減
少できる。アドレッサとビットマップを使用することに
より、ハフマンテーブル内の孔のメモリスペースを占有
しないため、コード表のサイズを削減できる。又、サブ
・ビットマップに加えて関連比較器といくつかの追加ロ
ジックを使用することにより、固定長入力データの範囲
についてコード表内でのコードの存在を判定してビット
マップのサイズを削減できる。更に、変換器を使用する
ことにより、コード表内の多くのあるいは全てのコード
語について共通の冗長情報でメモリを占有しないため、
コード表のサイズを減少できる。
【0034】
【発明の効果】以上述べたところから明らかなように本
発明は、可変長コード化用の小さいプログラマブル・ア
ーキテクチャを実現し、コード表スペースの浪費をなく
すことができ、冗長情報により生じるコード表のスペー
スの浪費をなくすことができるという長所を有する。
発明は、可変長コード化用の小さいプログラマブル・ア
ーキテクチャを実現し、コード表スペースの浪費をなく
すことができ、冗長情報により生じるコード表のスペー
スの浪費をなくすことができるという長所を有する。
【図1】本発明にかかる第1の実施例の可変長コード化
装置のブロック図である。
装置のブロック図である。
【図2】本発明にかかる第2の実施例の可変長コード化
装置のブロック図である。
装置のブロック図である。
【図3】同第2の実施例におけるサブ・ビットマップの
機能を説明する図である。
機能を説明する図である。
【図4】本発明の可変長コード化装置と固定長データコ
ード化装置との組合せの一例を説明する構成図である。
ード化装置との組合せの一例を説明する構成図である。
1、14 固定長コード語 3、26 有効コード語 4、15、39 ビットマップ 5、27 アドレッサ 6、28 ベーステーブル 7、29 加算器 12 コード表 13、35 可変長コード語 18 比較器 19 有効ロジック 21 コード化コード表 34 コード化コード語変換器 37 FLCコード化装置 40 セレクタ
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 7/42
Claims (5)
- 【請求項1】 固定ビット長データを可変ビット長デー
タに変換する可変長コード化装置において、ビットシー
ケンスとそのビットシーケンスの長さを定義するコード
語を格納するコード表と、前記コード語の前記コード表
内での存在を示し、固定ビット長データからの1つない
し複数のビットでアドレス指定するビットマップと、固
定ビット長データからの1つないし複数のビットを、前
記コード表を指標するのに使用するコード表アドレスに
変換するアドレッサとを備えたことを特徴とする可変長
コード化装置。 - 【請求項2】 コード表は、前記ビットシーケンスとそ
のビットシーケンスの長さを表すコード化コード語を格
納するコード化コード表と、前記コード化コード語を前
記ビットシーケンスとそのビットシーケンスの長さに変
換するコード化コード語変換器とを有することを特徴と
する請求項1記載の可変長コード化装置。 - 【請求項3】 ビットマップは、ビットマップロジック
と共に使用したときに前記コード語が前記コード表内に
存在することを示すサブ・ビットマップを有し、前記サ
ブ・ビットマップは固定ビット長データからの1つない
し複数のビットでアドレス指定し、前記ビットマップロ
ジック入力は固定ビット長データからの1つないし複数
のビットであることを特徴とする請求項1、又は2記載
の可変長コード化装置。 - 【請求項4】 ビットマップロジックは、固定ビット長
データの範囲が前記サブ・ビットマップの入力データ範
囲を越えるかどうかを判定する比較器と、前記サブ・ビ
ットマップと前記比較器の出力が前記コード語が前記コ
ード表内に存在することを示しているかどうかを判定す
る有効ロジックを有することを特徴とする請求項3記載
の可変長コード化装置。 - 【請求項5】 アドレッサは、前記コード表内の1つな
いし複数の連続的なコード語グループの位置をアドレス
指定するベースを格納するベーステーブルと、前記ベー
スにオフセットを加算する加算器とを有し、前記加算器
の結果は前記コード表内のコード語の位置をアドレス指
定することを特徴とする請求項1、2、3、又は4記載
の可変長コード化装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5227694A JP3025827B2 (ja) | 1993-09-14 | 1993-09-14 | 可変長コード化装置 |
EP94114375A EP0644660B1 (en) | 1993-09-14 | 1994-09-13 | Variable length coder |
DE69429403T DE69429403T2 (de) | 1993-09-14 | 1994-09-13 | Variable Längen Kodierer |
US08/305,688 US5638067A (en) | 1993-09-14 | 1994-09-13 | Variable length coder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5227694A JP3025827B2 (ja) | 1993-09-14 | 1993-09-14 | 可変長コード化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0786957A JPH0786957A (ja) | 1995-03-31 |
JP3025827B2 true JP3025827B2 (ja) | 2000-03-27 |
Family
ID=16864886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5227694A Expired - Fee Related JP3025827B2 (ja) | 1993-09-14 | 1993-09-14 | 可変長コード化装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5638067A (ja) |
EP (1) | EP0644660B1 (ja) |
JP (1) | JP3025827B2 (ja) |
DE (1) | DE69429403T2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3484310B2 (ja) * | 1997-01-17 | 2004-01-06 | 松下電器産業株式会社 | 可変長符号器 |
JP3415481B2 (ja) * | 1999-05-27 | 2003-06-09 | Necエレクトロニクス株式会社 | 可変長符号の復号装置 |
US20050256722A1 (en) * | 2004-05-14 | 2005-11-17 | Clark Adam L | System and method for lossless audio encoding and decoding |
US7439887B2 (en) | 2007-02-13 | 2008-10-21 | Seiko Epson Corporation | Method and apparatus for GIF decompression using fixed-size codeword table |
US10761841B2 (en) | 2018-10-17 | 2020-09-01 | Denso International America, Inc. | Systems and methods for identifying source code from binaries using machine learning |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3717851A (en) * | 1971-03-03 | 1973-02-20 | Ibm | Processing of compacted data |
US4295124A (en) * | 1979-08-13 | 1981-10-13 | National Semiconductor Corporation | Communication method and system |
US4506325A (en) * | 1980-03-24 | 1985-03-19 | Sperry Corporation | Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded |
US4670851A (en) * | 1984-01-09 | 1987-06-02 | Mitsubishi Denki Kabushiki Kaisha | Vector quantizer |
US4899149A (en) * | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
ATE108587T1 (de) * | 1986-09-13 | 1994-07-15 | Philips Nv | Verfahren und schaltungsanordung zur bitratenreduktion. |
US4843389A (en) * | 1986-12-04 | 1989-06-27 | International Business Machines Corp. | Text compression and expansion method and apparatus |
FR2608806B1 (fr) * | 1986-12-23 | 1989-03-17 | Valero Robert | Procede et appareil programmable pour le transcodage de chaines de caracteres |
JPH0799812B2 (ja) * | 1990-03-26 | 1995-10-25 | 株式会社グラフイックス・コミュニケーション・テクノロジーズ | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 |
JPH04337926A (ja) * | 1991-05-15 | 1992-11-25 | Fujitsu Ltd | 可変長符号テーブル制御方式 |
JPH0541862A (ja) * | 1991-08-03 | 1993-02-19 | Sony Corp | 動きベクトルの可変長符号化方式 |
EP0609835B1 (en) * | 1993-02-03 | 1998-09-23 | Nec Corporation | Address generation circuit of two-dimensional coding table for Huffman code |
-
1993
- 1993-09-14 JP JP5227694A patent/JP3025827B2/ja not_active Expired - Fee Related
-
1994
- 1994-09-13 EP EP94114375A patent/EP0644660B1/en not_active Expired - Lifetime
- 1994-09-13 US US08/305,688 patent/US5638067A/en not_active Expired - Fee Related
- 1994-09-13 DE DE69429403T patent/DE69429403T2/de not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
安田 浩編、「マルチメディア符号化の国際標準」、初版、(平3−6−30)、丸善、p.83−102 |
Also Published As
Publication number | Publication date |
---|---|
EP0644660A1 (en) | 1995-03-22 |
DE69429403D1 (de) | 2002-01-24 |
DE69429403T2 (de) | 2002-04-11 |
EP0644660B1 (en) | 2001-12-12 |
JPH0786957A (ja) | 1995-03-31 |
US5638067A (en) | 1997-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3484310B2 (ja) | 可変長符号器 | |
JP2959916B2 (ja) | デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ | |
JP3349617B2 (ja) | ハフマンデコーダー | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
US5841381A (en) | Huffman coding/decoding using an intermediate code number | |
AU2002357584B2 (en) | Variable length coding method and variable length decoding method | |
JP3220598B2 (ja) | 可変長符号テーブルおよび可変長符号化装置 | |
US5254991A (en) | Method and apparatus for decoding Huffman codes | |
JP3410629B2 (ja) | 可変長符号化回路及び可変長符号化方法 | |
JP3341962B2 (ja) | 可変長復号器及び可変長符号値を復号化する方法 | |
US5808570A (en) | Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same | |
US5648774A (en) | Variable length coding with three-field codes | |
US6408102B1 (en) | Encoding/decoding device | |
US5825312A (en) | DX JPEG Huffman decoder | |
JP3025827B2 (ja) | 可変長コード化装置 | |
US6313767B1 (en) | Decoding apparatus and method | |
DE69936000D1 (de) | Präzisionsverbesserung durch einsatz von transformationskoeffizientbitebenen | |
US5648775A (en) | High speed variable length code decoding apparatus | |
JPH10271016A (ja) | 符号/復号化器 | |
US6091856A (en) | Picture encoding device for compressing picture data | |
US20010030615A1 (en) | Variable length decoding system and method | |
JPH08186723A (ja) | 画像処理装置用エンコーダ | |
US6324306B1 (en) | Variable length code decoder and moving picture decoder having variable length code decoder | |
US5754232A (en) | Zig-zag and alternate scan conversion circuit for encoding/decoding videos | |
JP2812064B2 (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |