JP2000156643A - 可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体 - Google Patents
可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体Info
- Publication number
- JP2000156643A JP2000156643A JP10328697A JP32869798A JP2000156643A JP 2000156643 A JP2000156643 A JP 2000156643A JP 10328697 A JP10328697 A JP 10328697A JP 32869798 A JP32869798 A JP 32869798A JP 2000156643 A JP2000156643 A JP 2000156643A
- Authority
- JP
- Japan
- Prior art keywords
- code
- length
- bits
- variable
- value
- 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, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【課題】 可変長符号からなる符号語列に対して復号を
行う際に必要なテーブルサイズを低減させて、キャッシ
ュミスを低減させ、また分岐命令に起因したプロセッサ
の予測ミスによる処理の遅延を防止させるようにする。 【解決手段】 1符号語あたりの最大の符号長がk(た
だしkは自然数)ビットであり、符号語の上位n(ただ
しnは自然数)ビット以内で符号長が一意に定まるとと
もに、符号語の下位m(ただしmは自然数)ビット以内
と符号長とで符号値が一意に定まる符号語に関して、前
記符号語列の先頭からnビットを取得し、前記取得した
nビットデータを入力として符号長テーブル参照するこ
とで符号語の符号長sを出力し、前記符号長sと符号語
の下位mビットとを入力として符号値テーブルを参照す
ることで符号値を出力する。
行う際に必要なテーブルサイズを低減させて、キャッシ
ュミスを低減させ、また分岐命令に起因したプロセッサ
の予測ミスによる処理の遅延を防止させるようにする。 【解決手段】 1符号語あたりの最大の符号長がk(た
だしkは自然数)ビットであり、符号語の上位n(ただ
しnは自然数)ビット以内で符号長が一意に定まるとと
もに、符号語の下位m(ただしmは自然数)ビット以内
と符号長とで符号値が一意に定まる符号語に関して、前
記符号語列の先頭からnビットを取得し、前記取得した
nビットデータを入力として符号長テーブル参照するこ
とで符号語の符号長sを出力し、前記符号長sと符号語
の下位mビットとを入力として符号値テーブルを参照す
ることで符号値を出力する。
Description
【0001】
【発明の属する技術分野】本発明は、映像データなどの
可変長符号化されたデータを復元する可変長符号の復号
化方法および可変長符号の復号化プログラムを記録した
記録媒体に関するものである。
可変長符号化されたデータを復元する可変長符号の復号
化方法および可変長符号の復号化プログラムを記録した
記録媒体に関するものである。
【0002】
【従来の技術】一般に映像データを記録もしくは伝送す
るときに、可変長符号を用いて高能率符号化を実現して
いる。現在最も多く用いられている画像圧縮方法の1つ
として、MPEG(Moving Picture C
oding ExpertsGroup)規格として、
ISO/IEC13818−2に記載されたMPEG2
がある。MPEG2の可変長符号では、離散コサイン変
換され適応的に量子化された係数列に対し、連続する
「0」の個数である「ラン」と、連続する「0」に続く
0ではない係数値である「レベル」との組み合わせを可
変長符号化している。図11にMPEG2の可変長符号
テーブルの一部を示す。MPEG2の可変長符号は、2
ビット以上17ビット以下の符号長で構成された、一意
復号可能な瞬時符号であり、符号語の上位11ビット以
下でその符号長が一意に定まり、同一符号長においては
符号語の下位5ビット以内で符号値が定まる。またラ
ン、レベルの組み合わせの出現確率が高いほど短い符号
語が割り当てられていることを特徴とする。以下、MP
EG2の可変長符号を復号する場合を例として説明を行
う。
るときに、可変長符号を用いて高能率符号化を実現して
いる。現在最も多く用いられている画像圧縮方法の1つ
として、MPEG(Moving Picture C
oding ExpertsGroup)規格として、
ISO/IEC13818−2に記載されたMPEG2
がある。MPEG2の可変長符号では、離散コサイン変
換され適応的に量子化された係数列に対し、連続する
「0」の個数である「ラン」と、連続する「0」に続く
0ではない係数値である「レベル」との組み合わせを可
変長符号化している。図11にMPEG2の可変長符号
テーブルの一部を示す。MPEG2の可変長符号は、2
ビット以上17ビット以下の符号長で構成された、一意
復号可能な瞬時符号であり、符号語の上位11ビット以
下でその符号長が一意に定まり、同一符号長においては
符号語の下位5ビット以内で符号値が定まる。またラ
ン、レベルの組み合わせの出現確率が高いほど短い符号
語が割り当てられていることを特徴とする。以下、MP
EG2の可変長符号を復号する場合を例として説明を行
う。
【0003】可変長符号を復号する従来方法は、大きく
分けて次の2種類が考えられる。第一に、符号語の連続
した符号語列から1ビットずつ取得し、符号語が確定す
るまで可変長符号テーブルと比較を行い、ラン、レベル
を出力する方法がある(従来の技術1)。図12は、こ
の従来の技術1を説明するものである。MPEG2の可
変長符号は、符号語列の先頭から1ビットずつ符号木を
たどることで、符号語の復元が可能である。そのため、
例えば符号語列「001010・・・」が与えられた時
に、まず最初の1ビット「0」を取得し、符号木をたど
るとノードに符号値が存在しないため、次の1ビット
「0」を取得する。以後同様の操作を行い、6ビット取
得した「001010」で、符号木をたどると符号値が
存在するため、符号語が確定し、符号値(ラン、レベ
ル)=(0、3)を出力する。次に確定した符号語を符
号語列の先頭より削除する。以下、終端符号が出現する
まで同様の操作を繰り返す。
分けて次の2種類が考えられる。第一に、符号語の連続
した符号語列から1ビットずつ取得し、符号語が確定す
るまで可変長符号テーブルと比較を行い、ラン、レベル
を出力する方法がある(従来の技術1)。図12は、こ
の従来の技術1を説明するものである。MPEG2の可
変長符号は、符号語列の先頭から1ビットずつ符号木を
たどることで、符号語の復元が可能である。そのため、
例えば符号語列「001010・・・」が与えられた時
に、まず最初の1ビット「0」を取得し、符号木をたど
るとノードに符号値が存在しないため、次の1ビット
「0」を取得する。以後同様の操作を行い、6ビット取
得した「001010」で、符号木をたどると符号値が
存在するため、符号語が確定し、符号値(ラン、レベ
ル)=(0、3)を出力する。次に確定した符号語を符
号語列の先頭より削除する。以下、終端符号が出現する
まで同様の操作を繰り返す。
【0004】第二に、符号語の最大符号長を入力とし
て、可変長符号テーブルを参照し、符号語のラン、レベ
ルを出力する方法がある(従来の技術2)。図13は、
この従来の技術2を説明するものである。MPEG2の
可変長符号では、図11に示したように最大符号長は1
7ビットなので、17ビットを入力データとして可変長
符号テーブルを参照し、「符号長、ラン、レベル」を出
力する。例えば符号語列「0000001010000
000000110111001000100」が得ら
れた時、符号語列の先頭から17ビットの固定長データ
A「00000010100000000」を取得し、
可変長符号テーブルを参照することで符号語が確定し、
(符号長、ラン、レベル)=(11、0、7)を出力す
る。次に、確定した符号語を符号語列の先頭から削除
し、次の17ビットデータB「00000000110
111001」を取得する。以下、終端符号が出現する
まで同様の操作を行う。
て、可変長符号テーブルを参照し、符号語のラン、レベ
ルを出力する方法がある(従来の技術2)。図13は、
この従来の技術2を説明するものである。MPEG2の
可変長符号では、図11に示したように最大符号長は1
7ビットなので、17ビットを入力データとして可変長
符号テーブルを参照し、「符号長、ラン、レベル」を出
力する。例えば符号語列「0000001010000
000000110111001000100」が得ら
れた時、符号語列の先頭から17ビットの固定長データ
A「00000010100000000」を取得し、
可変長符号テーブルを参照することで符号語が確定し、
(符号長、ラン、レベル)=(11、0、7)を出力す
る。次に、確定した符号語を符号語列の先頭から削除
し、次の17ビットデータB「00000000110
111001」を取得する。以下、終端符号が出現する
まで同様の操作を行う。
【0005】また、これらを改良した方法も数多く提案
されている。例えば特開平7−307675号公報に記
載された「可変長復号器及び可変長復号値を復号化する
方法」(従来の技術3)では、符号語列の先頭から可変
長符号の最大符号長kビットを取得し、上位(k−j)
ビット(ただしjは自然数でk以下の数)を入力として
符号長テーブルを参照し、符号長sを出力する。またk
ビットを入力として符号値テーブルを参照し、符号語を
出力する。
されている。例えば特開平7−307675号公報に記
載された「可変長復号器及び可変長復号値を復号化する
方法」(従来の技術3)では、符号語列の先頭から可変
長符号の最大符号長kビットを取得し、上位(k−j)
ビット(ただしjは自然数でk以下の数)を入力として
符号長テーブルを参照し、符号長sを出力する。またk
ビットを入力として符号値テーブルを参照し、符号語を
出力する。
【0006】図14は、この従来の技術3を説明するも
のである。この従来の技術3では、符号長を復号するた
めの符号長テーブル1301と、「ラン、レベル」を復
号するための符号値テーブル1302とを用意してお
き、符号語列の先頭から17ビットの固定長データを取
得し、その上位11ビットを入力として符号長テーブル
1301を参照することで、符号長を出力する。また、
先ほど取得した17ビットを入力として符号値テーブル
1302を参照し、「ラン、レベル」を出力する。この
ように、可変長符号を復号するテーブル1301、13
02を分離することによって、符号長の検出、符号語列
のシフト、符号値の出力を並列に実行することができ
る。また必要とするテーブルサイズを、上述の従来の技
術2に比べ小さくできる。
のである。この従来の技術3では、符号長を復号するた
めの符号長テーブル1301と、「ラン、レベル」を復
号するための符号値テーブル1302とを用意してお
き、符号語列の先頭から17ビットの固定長データを取
得し、その上位11ビットを入力として符号長テーブル
1301を参照することで、符号長を出力する。また、
先ほど取得した17ビットを入力として符号値テーブル
1302を参照し、「ラン、レベル」を出力する。この
ように、可変長符号を復号するテーブル1301、13
02を分離することによって、符号長の検出、符号語列
のシフト、符号値の出力を並列に実行することができ
る。また必要とするテーブルサイズを、上述の従来の技
術2に比べ小さくできる。
【0007】
【発明が解決しようとする課題】図15は、可変長符号
の復号を実現するために従来から用いられているコンピ
ュータの構成を簡略化して模式的に示した図である。
の復号を実現するために従来から用いられているコンピ
ュータの構成を簡略化して模式的に示した図である。
【0008】図15において、1401はキャッシュ、
1402はレジスタ、1403は演算ユニット、141
1は外部メモリ、1412はデータバスである。なお、
一般的に、キャッシュ1401、レジスタ1402、演
算ユニット1403によってプロセッサが構成されてい
る。一般的に、レジスタ1402とキャッシュ1401
との間のアクセス時間は、レジスタ1402またはキャ
ッシュ1401と外部メモリ1411との間のアクセス
時間より十分小さい。
1402はレジスタ、1403は演算ユニット、141
1は外部メモリ、1412はデータバスである。なお、
一般的に、キャッシュ1401、レジスタ1402、演
算ユニット1403によってプロセッサが構成されてい
る。一般的に、レジスタ1402とキャッシュ1401
との間のアクセス時間は、レジスタ1402またはキャ
ッシュ1401と外部メモリ1411との間のアクセス
時間より十分小さい。
【0009】最近のプロセッサの多くはキャッシュを備
え、キャッシュ内にデータが存在する場合には、高速に
データアクセスすることが可能になっている。しかし、
キャッシュ内にデータがない場合(キャッシュミスヒッ
ト)には、プロセッサの外部に存在する2次キャッシ
ュ、または外部メモリのデータにアクセスするため、デ
ータにアクセスしている間はプロセッサの動作が止まっ
てしまう。また、多くのプロセッサは、処理速度を向上
させるために、命令を実行する前にプログラムの流れを
予測し、その予測に基づき前もってメモリから命令を読
み出しておく、投機実行のアルゴリズムを採用してい
る。このため、分岐命令においてはプロセッサの予測し
た流れと実際のプログラムの流れとが異なることがある
(予測ミス)。その際、プロセッサは前もってメモリか
ら読み込んでおいた命令をすべて破棄し、新たに命令を
取得する必要があり、その間は処理が止まってしまう。
え、キャッシュ内にデータが存在する場合には、高速に
データアクセスすることが可能になっている。しかし、
キャッシュ内にデータがない場合(キャッシュミスヒッ
ト)には、プロセッサの外部に存在する2次キャッシ
ュ、または外部メモリのデータにアクセスするため、デ
ータにアクセスしている間はプロセッサの動作が止まっ
てしまう。また、多くのプロセッサは、処理速度を向上
させるために、命令を実行する前にプログラムの流れを
予測し、その予測に基づき前もってメモリから命令を読
み出しておく、投機実行のアルゴリズムを採用してい
る。このため、分岐命令においてはプロセッサの予測し
た流れと実際のプログラムの流れとが異なることがある
(予測ミス)。その際、プロセッサは前もってメモリか
ら読み込んでおいた命令をすべて破棄し、新たに命令を
取得する必要があり、その間は処理が止まってしまう。
【0010】そこで、従来の技術をそのままプログラム
化し、コンピュータにより実行させた場合の問題点は、
次の通りである。すなわち従来の技術1では、符号語列
から1ビットずつ読み出しを行い、符号語との比較、分
岐を行うため、プロセッサの投機実行の予測ミスが起こ
りやすい。つまりMPEG2の可変長符号の復号化にお
いては、最大17回の比較、分岐が発生するため、プロ
セッサの予測ミスが生じ易い。
化し、コンピュータにより実行させた場合の問題点は、
次の通りである。すなわち従来の技術1では、符号語列
から1ビットずつ読み出しを行い、符号語との比較、分
岐を行うため、プロセッサの投機実行の予測ミスが起こ
りやすい。つまりMPEG2の可変長符号の復号化にお
いては、最大17回の比較、分岐が発生するため、プロ
セッサの予測ミスが生じ易い。
【0011】また従来の技術2では、必要な可変長符号
テーブルの要素数は217個であり、各要素がそれぞれ
「符号長、ラン、バイト」の3データを保持し、各デー
タを1バイトで表現すると、217×3バイト=3932
16バイトにもなる。例えばIntel社のPenti
umプロセッサの場合では、キャッシュサイズは327
68バイトであり、上記テーブルサイズでは、キャッシ
ュに収まりきらないために、キャッシュミスヒットが生
じる確率が高くなり、外部メモリにアクセスする回数が
多くなる。
テーブルの要素数は217個であり、各要素がそれぞれ
「符号長、ラン、バイト」の3データを保持し、各デー
タを1バイトで表現すると、217×3バイト=3932
16バイトにもなる。例えばIntel社のPenti
umプロセッサの場合では、キャッシュサイズは327
68バイトであり、上記テーブルサイズでは、キャッシ
ュに収まりきらないために、キャッシュミスヒットが生
じる確率が高くなり、外部メモリにアクセスする回数が
多くなる。
【0012】従来の技術3では、11ビットの固定長デ
ータを入力とする符号長テーブル1301と17ビット
の固定長データを入力とする符号値テーブル1302と
の2種類が必要である。それぞれのテーブルサイズは、
「符号長、ラン、レベル」の各要素を1バイトで表現す
る時、符号長テーブル1301は211バイトであり、ま
た符号値テーブル1302は217×2バイトである。こ
のため合計では264192バイト必要である。この従
来の技術3によると、従来の技術2に比べてテーブルサ
イズは少なくて済むが、やはりキャッシュサイズに比べ
て大きく、キャッシュミスを生じる確率が高くなる。
ータを入力とする符号長テーブル1301と17ビット
の固定長データを入力とする符号値テーブル1302と
の2種類が必要である。それぞれのテーブルサイズは、
「符号長、ラン、レベル」の各要素を1バイトで表現す
る時、符号長テーブル1301は211バイトであり、ま
た符号値テーブル1302は217×2バイトである。こ
のため合計では264192バイト必要である。この従
来の技術3によると、従来の技術2に比べてテーブルサ
イズは少なくて済むが、やはりキャッシュサイズに比べ
て大きく、キャッシュミスを生じる確率が高くなる。
【0013】そこで本発明は、可変長符号化されたデー
タの復号を実現する際に必要なテーブルサイズを低減さ
せて、キャッシュミスを低減させ、また分岐命令に起因
したプロセッサの予測ミスによる処理の遅延を防止させ
るようにすることを目的とする。
タの復号を実現する際に必要なテーブルサイズを低減さ
せて、キャッシュミスを低減させ、また分岐命令に起因
したプロセッサの予測ミスによる処理の遅延を防止させ
るようにすることを目的とする。
【0014】
【課題を解決するための手段】このような課題を解決す
るために、本発明の、可変長符号からなる符号語列に対
して復号を行う可変長符号の復号化方法は、1符号語あ
たりの最大の符号長がk(ただしkは自然数)ビットで
あり、符号語の上位n(ただしnは自然数)ビット以内
で符号長が一意に定まるとともに、符号語の下位m(た
だしmは自然数)ビット以内と符号長とで符号値が一意
に定まる符号語に関して、前記符号語列の先頭からnビ
ットを取得し、前記取得したnビットデータを入力とし
て符号長テーブルを参照することで符号語の符号長sを
出力し、前記符号長sと符号語の下位mビットとを入力
として符号値テーブルを参照することで符号値を出力す
る。
るために、本発明の、可変長符号からなる符号語列に対
して復号を行う可変長符号の復号化方法は、1符号語あ
たりの最大の符号長がk(ただしkは自然数)ビットで
あり、符号語の上位n(ただしnは自然数)ビット以内
で符号長が一意に定まるとともに、符号語の下位m(た
だしmは自然数)ビット以内と符号長とで符号値が一意
に定まる符号語に関して、前記符号語列の先頭からnビ
ットを取得し、前記取得したnビットデータを入力とし
て符号長テーブルを参照することで符号語の符号長sを
出力し、前記符号長sと符号語の下位mビットとを入力
として符号値テーブルを参照することで符号値を出力す
る。
【0015】
【発明の実施の形態】請求項1記載の本発明は、可変長
符号からなる符号語列に対して復号を行うに際し、1 符
号語あたりの最大の符号長がk(ただしkは自然数)で
あり、符号語の上位n(ただしnは自然数)ビット以内
の値で符号長が一意に定まるとともに、符号語の下位m
(ただしmは自然数)ビット以内の値と符号長とで符号
値が一意に定まる符号語に関して、前記符号語列の先頭
からnビットを取得し、前記取得したnビットを入力と
して符号長テーブルを参照することで符号語の符号長s
を出力し、前記符号長sと符号語の下位mビットを入力
として符号値テーブルを参照することで符号値を出力す
るものである。
符号からなる符号語列に対して復号を行うに際し、1 符
号語あたりの最大の符号長がk(ただしkは自然数)で
あり、符号語の上位n(ただしnは自然数)ビット以内
の値で符号長が一意に定まるとともに、符号語の下位m
(ただしmは自然数)ビット以内の値と符号長とで符号
値が一意に定まる符号語に関して、前記符号語列の先頭
からnビットを取得し、前記取得したnビットを入力と
して符号長テーブルを参照することで符号語の符号長s
を出力し、前記符号長sと符号語の下位mビットを入力
として符号値テーブルを参照することで符号値を出力す
るものである。
【0016】こうすると、可変長符号をコンピュータ上
で実行させる時に必要とするテーブルサイズが従来の方
法に比べて大幅に低減され、それによりキャッシュミス
が減り、またテーブル参照を2回に減らすことで分岐命
令に起因したプロセッサの予測ミスによる処理の遅延が
防止され、可変長符号の復元を行う際の処理時間が大幅
に短縮されることになる。
で実行させる時に必要とするテーブルサイズが従来の方
法に比べて大幅に低減され、それによりキャッシュミス
が減り、またテーブル参照を2回に減らすことで分岐命
令に起因したプロセッサの予測ミスによる処理の遅延が
防止され、可変長符号の復元を行う際の処理時間が大幅
に短縮されることになる。
【0017】請求項2記載の本発明は、k=17、n=
11、m=5とするものである。
11、m=5とするものである。
【0018】請求項3記載の本発明は、可変長符号から
なる符号語列に対して復号を行うに際し、1符号語あた
りの最大の符号長がk(ただしkは自然数)であり、符
号語の上位n(ただしnは自然数)ビット以内の値で符
号長が一意に定まるとともに、符号語の下位m(ただし
mは自然数)ビット以内の値と符号長とで符号値が一意
に定まる符号語に関して、前記符号語列の先頭からnビ
ットを取得し、前記取得したnビットを入力として符号
長テーブルを参照し、連続したr個の符号語のそれぞれ
の符号長が得られたときに、それらの符号長を出力し、
また、それぞれの符号語の符号長と、対応する符号語の
下位mビットとを入力として符号値テーブルを参照する
ことで、それぞれの符号値を出力するものである。
なる符号語列に対して復号を行うに際し、1符号語あた
りの最大の符号長がk(ただしkは自然数)であり、符
号語の上位n(ただしnは自然数)ビット以内の値で符
号長が一意に定まるとともに、符号語の下位m(ただし
mは自然数)ビット以内の値と符号長とで符号値が一意
に定まる符号語に関して、前記符号語列の先頭からnビ
ットを取得し、前記取得したnビットを入力として符号
長テーブルを参照し、連続したr個の符号語のそれぞれ
の符号長が得られたときに、それらの符号長を出力し、
また、それぞれの符号語の符号長と、対応する符号語の
下位mビットとを入力として符号値テーブルを参照する
ことで、それぞれの符号値を出力するものである。
【0019】こうすると、短い符号語が連続する場合に
は、連続する複数の符号語の符号長を1回の符号長テー
ブル参照で出力できるテーブルを設定することで、可変
長符号復号処理の高速化が図られることになる。
は、連続する複数の符号語の符号長を1回の符号長テー
ブル参照で出力できるテーブルを設定することで、可変
長符号復号処理の高速化が図られることになる。
【0020】請求項4記載の本発明は、k=17、n=
11、m=5、r=2とするものである。
11、m=5、r=2とするものである。
【0021】請求項5記載の本発明は、可変長符号から
なる符号語列に対して順次復号を行い、そのときに符号
長と符号値とを出力した後に符号語列の先頭からそれぞ
れの符号語を削除し、終端符号が出現するまでこの削除
のための操作を繰り返すものである。
なる符号語列に対して順次復号を行い、そのときに符号
長と符号値とを出力した後に符号語列の先頭からそれぞ
れの符号語を削除し、終端符号が出現するまでこの削除
のための操作を繰り返すものである。
【0022】こうすると、データが終了するまで同様に
復号化が行われることになる。
復号化が行われることになる。
【0023】請求項6記載の本発明は、符号語の下位m
ビットを取得する際に、mが符号長よりも大きい場合に
は、符号語の先頭からmビットを取得するものである。
こうすると、符号長がm未満の符号語についても、符号
値を出力することが可能となる。
ビットを取得する際に、mが符号長よりも大きい場合に
は、符号語の先頭からmビットを取得するものである。
こうすると、符号長がm未満の符号語についても、符号
値を出力することが可能となる。
【0024】請求項7〜請求項12記載の本発明は、そ
れぞれ、請求項1〜請求項6記載の本発明の可変長符号
の復号化方法をコンピュータに実現させるためのプログ
ラムを記録した、可変長符号の復号化プログラムを記録
した記録媒体に関するものである。
れぞれ、請求項1〜請求項6記載の本発明の可変長符号
の復号化方法をコンピュータに実現させるためのプログ
ラムを記録した、可変長符号の復号化プログラムを記録
した記録媒体に関するものである。
【0025】以下に、本発明の実施の形態を、図面に基
づいて説明する。なお、以下に示す本発明の実施の形態
における可変長符号は、図11に示されているような符
号であるとする。すなわち、1符号あたりの符号長の最
小値を2ビット、最大値を17ビットとし、符号語の先
頭から11ビット以内で符号長sが一意に定まり、同一
符号長においては、符号語の下位5ビット以内で符号語
「ラン、レベル」が一意に定まるような符号であるとす
る。 (第1の実施の形態)図1は、本発明の第1の実施の形
態を説明するフローチャートである。
づいて説明する。なお、以下に示す本発明の実施の形態
における可変長符号は、図11に示されているような符
号であるとする。すなわち、1符号あたりの符号長の最
小値を2ビット、最大値を17ビットとし、符号語の先
頭から11ビット以内で符号長sが一意に定まり、同一
符号長においては、符号語の下位5ビット以内で符号語
「ラン、レベル」が一意に定まるような符号であるとす
る。 (第1の実施の形態)図1は、本発明の第1の実施の形
態を説明するフローチャートである。
【0026】ステップS101で処理が開始され、可変
長符号語列が入力されたときに、先頭からnビットを入
力として(ステップS102)、ステップS103でエ
スケープ符号でないと判定されたなら、符号長テーブル
を参照する(ステップS104)。符号長テーブルは入
力したnビットデータに対して符号長sを出力し(ステ
ップS105)、符号語の長さが確定する。次に、符号
語の下位mビット、すなわち符号語列の先頭から(s−
m+1)ビット目よりmビットを取得し(ステップS1
06)、(s×2m )をオフセット、mビットの値をア
ドレスとして、符号値テーブルを参照する(ステップS
107)。符語値テーブルでは、符号長sおよび先ほど
取得したmビットの値に対して符号値「ラン、レベル」
が一意に定まる。次に、符号値「ラン、レベル」を出力
し、確定した符号語を符号語列の先頭から削除する(ス
テップS108)。以下、同様の操作を終端符号が出現
するまで繰り返す(ステップS109、S110)。
長符号語列が入力されたときに、先頭からnビットを入
力として(ステップS102)、ステップS103でエ
スケープ符号でないと判定されたなら、符号長テーブル
を参照する(ステップS104)。符号長テーブルは入
力したnビットデータに対して符号長sを出力し(ステ
ップS105)、符号語の長さが確定する。次に、符号
語の下位mビット、すなわち符号語列の先頭から(s−
m+1)ビット目よりmビットを取得し(ステップS1
06)、(s×2m )をオフセット、mビットの値をア
ドレスとして、符号値テーブルを参照する(ステップS
107)。符語値テーブルでは、符号長sおよび先ほど
取得したmビットの値に対して符号値「ラン、レベル」
が一意に定まる。次に、符号値「ラン、レベル」を出力
し、確定した符号語を符号語列の先頭から削除する(ス
テップS108)。以下、同様の操作を終端符号が出現
するまで繰り返す(ステップS109、S110)。
【0027】例えば、図2に示すように、符号語列「0
000000101100000000111011
…」が入力された時に、先頭から11ビット「0000
0001011」を取得し、図4に示した符号長テーブ
ルを参照することによって、符号長13が出力され、符
号語の長さが確定する。次に図3に示すように符号語の
下位5ビット、すなわち符号語列の先頭から9ビット目
より5ビット取得することで、「01100」が得ら
れ、(13×25 )をオフセット、12をアドレスとし
て図5に示した符号値テーブルを参照すると(ラン、レ
ベル)=(21、1)の値が出力され、符号値が確定す
る。確定した符号語を符号語列の先頭から削除し、終端
符号が出現するまで同様の操作を行う。
000000101100000000111011
…」が入力された時に、先頭から11ビット「0000
0001011」を取得し、図4に示した符号長テーブ
ルを参照することによって、符号長13が出力され、符
号語の長さが確定する。次に図3に示すように符号語の
下位5ビット、すなわち符号語列の先頭から9ビット目
より5ビット取得することで、「01100」が得ら
れ、(13×25 )をオフセット、12をアドレスとし
て図5に示した符号値テーブルを参照すると(ラン、レ
ベル)=(21、1)の値が出力され、符号値が確定す
る。確定した符号語を符号語列の先頭から削除し、終端
符号が出現するまで同様の操作を行う。
【0028】なお、図11における符号語は出現確率の
高い組み合わせのみが可変長符号化され、出現確率の低
いものは、図1のステップS103にもとづき、エスケ
ープ記号「000001」に続く6ビットの固定長符号
でラン、それに続く12ビットの固定長符号でレベルを
それぞれ表わしている。そのため、エスケープ記号が出
現したときには、符号値テーブルを参照して「ラン、レ
ベル」を出力するのではなく、直接6ビットおよびそれ
に続く12ビットを取得し(ステップS111)、その
値を「ラン、レベル」として出力するものとする(ステ
ップS112、S108)。
高い組み合わせのみが可変長符号化され、出現確率の低
いものは、図1のステップS103にもとづき、エスケ
ープ記号「000001」に続く6ビットの固定長符号
でラン、それに続く12ビットの固定長符号でレベルを
それぞれ表わしている。そのため、エスケープ記号が出
現したときには、符号値テーブルを参照して「ラン、レ
ベル」を出力するのではなく、直接6ビットおよびそれ
に続く12ビットを取得し(ステップS111)、その
値を「ラン、レベル」として出力するものとする(ステ
ップS112、S108)。
【0029】また、符号長sがm未満の符号語について
は、(s−m+1)が0以下の値になるが、(s−m)
の計算に0以下の値は全て0にする飽和演算を適用する
事により、(s−m+1)の値は、s>=mの時は(s
−m+1)、s<mの時は1となり、符号長sがm未満
の符号語については符号語列の先頭からmビット取得
し、符号値を出力することが可能である。
は、(s−m+1)が0以下の値になるが、(s−m)
の計算に0以下の値は全て0にする飽和演算を適用する
事により、(s−m+1)の値は、s>=mの時は(s
−m+1)、s<mの時は1となり、符号長sがm未満
の符号語については符号語列の先頭からmビット取得
し、符号値を出力することが可能である。
【0030】この第1の実施の形態において必要なテー
ブルサイズについて説明する。「符号長、ラン、レベ
ル」の各値が1バイトで表現できると考えた場合、入力
データが11ビットであり、それぞれが1バイトの値を
持っているため、符号長テーブルは211バイト必要であ
る。符号値テーブルは、入力データが符号長および5ビ
ットであり、符号長は2から17なので4ビットで表現
できるため、合計9ビットが入力データとなり、それぞ
れが2バイトの値を持っているため、29 ×2バイト必
要である。このため、符号長テーブルと符号値テーブル
とを合わせたテーブルサイズの合計は3072バイトで
あり、上述の従来の技術2に比べ約1/131、従来の
技術3に比べ約1/88と、小さいテーブルサイズで復
元が可能である。また、この第1の実施の形態では、従
来の技術1とは相違して比較、分岐を必要としないた
め、プロセッサの動作を止めることなく復号を行うこと
が可能である。
ブルサイズについて説明する。「符号長、ラン、レベ
ル」の各値が1バイトで表現できると考えた場合、入力
データが11ビットであり、それぞれが1バイトの値を
持っているため、符号長テーブルは211バイト必要であ
る。符号値テーブルは、入力データが符号長および5ビ
ットであり、符号長は2から17なので4ビットで表現
できるため、合計9ビットが入力データとなり、それぞ
れが2バイトの値を持っているため、29 ×2バイト必
要である。このため、符号長テーブルと符号値テーブル
とを合わせたテーブルサイズの合計は3072バイトで
あり、上述の従来の技術2に比べ約1/131、従来の
技術3に比べ約1/88と、小さいテーブルサイズで復
元が可能である。また、この第1の実施の形態では、従
来の技術1とは相違して比較、分岐を必要としないた
め、プロセッサの動作を止めることなく復号を行うこと
が可能である。
【0031】(第2の実施の形態)上述の第1の実施の
形態をコンピュータで実行する場合の一例を第2の実施
の形態として説明する。図6は本発明の第2の実施の形
態の動作を説明するフローチャートである。なお、この
第2の実施の形態において、コンピュータは図15に記
載されている構造を持つものとし、レジスタ1402の
大きさは32ビットとする。
形態をコンピュータで実行する場合の一例を第2の実施
の形態として説明する。図6は本発明の第2の実施の形
態の動作を説明するフローチャートである。なお、この
第2の実施の形態において、コンピュータは図15に記
載されている構造を持つものとし、レジスタ1402の
大きさは32ビットとする。
【0032】ステップS601で処理が開始されたな
ら、まず、外部メモリ1411に保持されている符号語
列に対し、先頭から32ビットを、符号語列の先頭がM
SB(Most Significant Bit)に
なるようにレジスタAにロードし、レジスタLを32に
セットする(ステップS602)。続いてレジスタAの
内容をレジスタBにコピーし(ステップS603)、レ
ジスタBをLSB(Least Significan
t Bit)方向に21ビット論理シフトする。この操
作によって、符号語列の先頭から11ビットが取得され
る(ステップS604)。
ら、まず、外部メモリ1411に保持されている符号語
列に対し、先頭から32ビットを、符号語列の先頭がM
SB(Most Significant Bit)に
なるようにレジスタAにロードし、レジスタLを32に
セットする(ステップS602)。続いてレジスタAの
内容をレジスタBにコピーし(ステップS603)、レ
ジスタBをLSB(Least Significan
t Bit)方向に21ビット論理シフトする。この操
作によって、符号語列の先頭から11ビットが取得され
る(ステップS604)。
【0033】次に、ステップS605の復号処理を行
う。この復号処理は、図7に詳細に示される。すなわ
ち、図7のステップS620(S605)で復号処理が
開始されたなら、取得した11ビットデータがエスケー
プ符号でない場合は(ステップS621)、この11ビ
ットデータをアドレスとして、図8に示した符号長テー
ブルを参照し(ステップS622)、符号長sを得る
(ステップS623)。続いてレジスタAの内容をレジ
スタCにコピーし(ステップS624)、レジスタCに
対してMSB方向に(s−m)ビット論理シフトを行
い、次にレジスタCに対してLSB方向に27ビット論
理シフトを行う。この操作で、符号語列から符号語の下
位5ビットを得る(ステップS625)。さらに、第1
の実施の形態の場合と同様に、符号長sと先ほど取得し
た5ビットの値とにより、(s×25 )をオフセット、
5ビットの値をアドレスとして、図5に示した符号値テ
ーブルを参照することで(ステップS626)、符号値
を出力する(ステップS627、S606)。このと
き、ステップS621において取得した11ビットデー
タがエスケープ符号である場合は、第1の実施の形態の
場合と同様に直接にビットを取得し(ステップS62
8)、その値を「ラン、レベル」として出力するものと
する(ステップS627、S606)。
う。この復号処理は、図7に詳細に示される。すなわ
ち、図7のステップS620(S605)で復号処理が
開始されたなら、取得した11ビットデータがエスケー
プ符号でない場合は(ステップS621)、この11ビ
ットデータをアドレスとして、図8に示した符号長テー
ブルを参照し(ステップS622)、符号長sを得る
(ステップS623)。続いてレジスタAの内容をレジ
スタCにコピーし(ステップS624)、レジスタCに
対してMSB方向に(s−m)ビット論理シフトを行
い、次にレジスタCに対してLSB方向に27ビット論
理シフトを行う。この操作で、符号語列から符号語の下
位5ビットを得る(ステップS625)。さらに、第1
の実施の形態の場合と同様に、符号長sと先ほど取得し
た5ビットの値とにより、(s×25 )をオフセット、
5ビットの値をアドレスとして、図5に示した符号値テ
ーブルを参照することで(ステップS626)、符号値
を出力する(ステップS627、S606)。このと
き、ステップS621において取得した11ビットデー
タがエスケープ符号である場合は、第1の実施の形態の
場合と同様に直接にビットを取得し(ステップS62
8)、その値を「ラン、レベル」として出力するものと
する(ステップS627、S606)。
【0034】図6に戻って、ステップS606で符号値
を出力した後、レジスタAに対しMSB方向にsビット
論理シフトすることで次の符号語の先頭をレジスタのM
SBにセットし、復号した符号語の符号長sをレジスタ
Lから減じる(ステップS607)。
を出力した後、レジスタAに対しMSB方向にsビット
論理シフトすることで次の符号語の先頭をレジスタのM
SBにセットし、復号した符号語の符号長sをレジスタ
Lから減じる(ステップS607)。
【0035】この操作を繰り返し、レジスタLが17未
満ならば、外部メモリより可変長符号語列の続きをレジ
スタAに補充する。この操作を終端符号が出現するまで
繰り返す(ステップS608、S609、S610、S
611)。
満ならば、外部メモリより可変長符号語列の続きをレジ
スタAに補充する。この操作を終端符号が出現するまで
繰り返す(ステップS608、S609、S610、S
611)。
【0036】以上説明したように、本発明の第2の実施
の形態によれば、第1の実施の形態で述べた可変長符号
復号化方法をプログラムし、容易にコンピュータで実現
することが可能である。
の形態によれば、第1の実施の形態で述べた可変長符号
復号化方法をプログラムし、容易にコンピュータで実現
することが可能である。
【0037】なお、この第2の実施の形態ではレジスタ
の大きさを32ビットとしたが、この限りではない。例
えばIntel社のPentiumwithMMXプロ
セッサやPentiumIIプロセッサにおいては、MM
Xレジスタと呼ばれる64ビットレジスタが存在するた
め、64ビットレジスタを使用することも可能である。
64ビットレジスタを用いた場合には、レジスタへ外部
メモリから可変長符号列を補充する回数が減り、外部メ
モリよりデータを読み込む際のタイムロスが減り、32
ビットレジスタを用いた場合よりも高速に復号を行うこ
とが可能となる。また、使用するレジスタ名はこれに限
定されるものではない。
の大きさを32ビットとしたが、この限りではない。例
えばIntel社のPentiumwithMMXプロ
セッサやPentiumIIプロセッサにおいては、MM
Xレジスタと呼ばれる64ビットレジスタが存在するた
め、64ビットレジスタを使用することも可能である。
64ビットレジスタを用いた場合には、レジスタへ外部
メモリから可変長符号列を補充する回数が減り、外部メ
モリよりデータを読み込む際のタイムロスが減り、32
ビットレジスタを用いた場合よりも高速に復号を行うこ
とが可能となる。また、使用するレジスタ名はこれに限
定されるものではない。
【0038】本発明によれば、この第2の実施の形態の
方法をコンピュータに実現させるための可変長符号の復
号化プログラムを記録した記録媒体を提供することがで
きる。
方法をコンピュータに実現させるための可変長符号の復
号化プログラムを記録した記録媒体を提供することがで
きる。
【0039】(第3の実施形態)図9は本発明の第3の
実施の形態の動作を説明するフローチャートである。こ
の第3の実施の形態において、第1の実施の形態と異な
る点は、ステップS801にて処理が開始されたなら、
符号語列から11ビットを取得し(ステップS80
2)、エスケープ符号でない場合において(ステップS
803)、符号長テーブルを参照するときに(ステップ
S804)、11ビットの入力データで、連続する2符
号語C1、C2の符号長が一意に定まる組み合わせに対
しては、符号語C1の符号長および符号語C2の符号長
を出力する(ステップS805)。そして、符号語C1
に対して第1の実施の形態で述べたものと同様の復号処
理を行い、符号語C1を符号語列から削除する(ステッ
プS806)。次に符号語C2に対しても同様の復号処
理を行う(ステップS807、S808)。この操作に
より、連続する2符号語の復号に関して符号長テーブル
の参照は1回で済む。以下、同様の操作を終端符号が出
現するまで繰り返す(ステップS809、S810)。
ステップS802において取得した11ビットデータが
エスケープ符号である場合は(ステップS803)、直
接にビットを取得し(ステップS811)、その値を
「ラン、レベル」として出力する(ステップS81
2)。
実施の形態の動作を説明するフローチャートである。こ
の第3の実施の形態において、第1の実施の形態と異な
る点は、ステップS801にて処理が開始されたなら、
符号語列から11ビットを取得し(ステップS80
2)、エスケープ符号でない場合において(ステップS
803)、符号長テーブルを参照するときに(ステップ
S804)、11ビットの入力データで、連続する2符
号語C1、C2の符号長が一意に定まる組み合わせに対
しては、符号語C1の符号長および符号語C2の符号長
を出力する(ステップS805)。そして、符号語C1
に対して第1の実施の形態で述べたものと同様の復号処
理を行い、符号語C1を符号語列から削除する(ステッ
プS806)。次に符号語C2に対しても同様の復号処
理を行う(ステップS807、S808)。この操作に
より、連続する2符号語の復号に関して符号長テーブル
の参照は1回で済む。以下、同様の操作を終端符号が出
現するまで繰り返す(ステップS809、S810)。
ステップS802において取得した11ビットデータが
エスケープ符号である場合は(ステップS803)、直
接にビットを取得し(ステップS811)、その値を
「ラン、レベル」として出力する(ステップS81
2)。
【0040】図10に示したように、符号語列「010
1000001101…」より11ビットデータ「01
010000011」を取得し符号長テーブルを参照す
ると、連続する2符号語C1、C2の符号長5、8が得
られる。このため、符号語列の先頭から5ビット「01
010」を取得し、符号値テーブルを参照することで、
符号語C1の符号値である(ラン、レベル)=(2、
1)を出力する。次に符号語列から符号語C1を削除
し、符号語列の先頭から4ビット目より5ビット「01
101」を取得し、符号値テーブルを参照することで、
符号語C2の符号値である(ラン、レベル)=(0、−
4)を出力する。その他の動作は第1の実施の形態の場
合と同様である。
1000001101…」より11ビットデータ「01
010000011」を取得し符号長テーブルを参照す
ると、連続する2符号語C1、C2の符号長5、8が得
られる。このため、符号語列の先頭から5ビット「01
010」を取得し、符号値テーブルを参照することで、
符号語C1の符号値である(ラン、レベル)=(2、
1)を出力する。次に符号語列から符号語C1を削除
し、符号語列の先頭から4ビット目より5ビット「01
101」を取得し、符号値テーブルを参照することで、
符号語C2の符号値である(ラン、レベル)=(0、−
4)を出力する。その他の動作は第1の実施の形態の場
合と同様である。
【0041】また、入力データに対して1符号語C1の
符号長のみが得られた場合には、C2の符号長として−
1を出力する。この場合には、符号語C1を復号したあ
とは、再び符号語列の先頭より11ビット取得し、同様
の操作を行う。なお、この場合のC2の符号長は−1に
限るものではなく、識別ができれば他の値でも構わな
い。
符号長のみが得られた場合には、C2の符号長として−
1を出力する。この場合には、符号語C1を復号したあ
とは、再び符号語列の先頭より11ビット取得し、同様
の操作を行う。なお、この場合のC2の符号長は−1に
限るものではなく、識別ができれば他の値でも構わな
い。
【0042】以上説明したように、この第3の実施の形
態によれば、符号長の短い符号語が連続するときに、こ
の連続する2符号語の復号において、符号長テーブルの
参照は1回でよい。また、この実施の形態をコンピュー
タで実現する場合は、第2の実施の形態における図6、
図7の復号処理の部分を第3の実施の形態で説明した復
号処理に置き換えればよい。さらに、この実施の形態を
コンピュータで実現させるための可変長符号の復号化プ
ログラムを記録した記録媒体を提供することができる。
態によれば、符号長の短い符号語が連続するときに、こ
の連続する2符号語の復号において、符号長テーブルの
参照は1回でよい。また、この実施の形態をコンピュー
タで実現する場合は、第2の実施の形態における図6、
図7の復号処理の部分を第3の実施の形態で説明した復
号処理に置き換えればよい。さらに、この実施の形態を
コンピュータで実現させるための可変長符号の復号化プ
ログラムを記録した記録媒体を提供することができる。
【0043】
【発明の効果】以上説明したように本発明によれば、可
変長符号をコンピュータ上で実行させる時に必要とする
テーブルサイズを従来の方法に比べて大幅に低減でき、
これによりキャッシュミスを減らすことができ、またテ
ーブル参照を2回に減らすことで分岐命令に起因したプ
ロセッサの予測ミスによる処理の遅延を防止でき、可変
長符号の復元を行う際の処理時間の大幅な短縮を行うこ
とができる。
変長符号をコンピュータ上で実行させる時に必要とする
テーブルサイズを従来の方法に比べて大幅に低減でき、
これによりキャッシュミスを減らすことができ、またテ
ーブル参照を2回に減らすことで分岐命令に起因したプ
ロセッサの予測ミスによる処理の遅延を防止でき、可変
長符号の復元を行う際の処理時間の大幅な短縮を行うこ
とができる。
【0044】さらに、短い符号語が連続する場合には、
連続する複数の符号語の符号長を1回の符号長テーブル
参照で出力できるテーブルを設定することで、可変長符
号復号処理の高速化を図ることができる。
連続する複数の符号語の符号長を1回の符号長テーブル
参照で出力できるテーブルを設定することで、可変長符
号復号処理の高速化を図ることができる。
【図1】本発明の実施の形態1の復号化方法を示すフロ
ーチャートである。
ーチャートである。
【図2】図1の方法に基づくデータ処理の方法を示す図
である。
である。
【図3】図1の方法に基づくさらなるデータ処理の方法
を示す図である。
を示す図である。
【図4】本発明の実施の形態1で用いられる符号長テー
ブルを示す図である。
ブルを示す図である。
【図5】本発明の実施の形態1で用いられる符号値テー
ブルを示す図である。
ブルを示す図である。
【図6】本発明の実施の形態2の復号化方法を示すフロ
ーチャートである。
ーチャートである。
【図7】図6における要部の詳細を示すフローチャート
である。
である。
【図8】本発明の実施の形態2で用いられる符号長テー
ブルを示す図である。
ブルを示す図である。
【図9】本発明の実施の形態3の復号化方法を示すフロ
ーチャートである。
ーチャートである。
【図10】図9の方法に基づくデータ処理の方法を示す
図である。
図である。
【図11】従来のMPEG2で用いられる可変長符号テ
ーブルを示す図である。
ーブルを示す図である。
【図12】従来の技術1について説明するための図であ
る。
る。
【図13】従来の技術2について説明するための図であ
る。
る。
【図14】従来の技術3について説明するための図であ
る。
る。
【図15】可変長符号の復号を実現するために従来から
用いられているコンピュータの構成を簡略化して模式的
に示した図である。
用いられているコンピュータの構成を簡略化して模式的
に示した図である。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5C059 KK08 ME01 ME17 SS20 UA05 UA38 5J064 AA03 AA04 BA09 BB05 BC01 BC29 BD03
Claims (12)
- 【請求項1】 可変長符号からなる符号語列に対して復
号を行う可変長符号の復号化方法であって、1 符号語あ
たりの最大の符号長がk(ただしkは自然数)であり、
符号語の上位n(ただしnは自然数)ビット以内の値で
符号長が一意に定まるとともに、符号語の下位m(ただ
しmは自然数)ビット以内の値と符号長とで符号値が一
意に定まる符号語に関して、前記符号語列の先頭からn
ビットを取得し、前記取得したnビットを入力として符
号長テーブルを参照することで符号語の符号長sを出力
し、前記符号長sと符号語の下位mビットを入力として
符号値テーブルを参照することで符号値を出力すること
を特徴とする可変長符号の復号化方法。 - 【請求項2】 k=17、n=11、m=5とすること
を特徴とする請求項1記載の可変長符号の復号化方法。 - 【請求項3】 可変長符号からなる符号語列に対して復
号を行う可変長符号の復号化方法であって、1符号語あ
たりの最大の符号長がk(ただしkは自然数)であり、
符号語の上位n(ただしnは自然数)ビット以内の値で
符号長が一意に定まるとともに、符号語の下位m(ただ
しmは自然数)ビット以内の値と符号長とで符号値が一
意に定まる符号語に関して、前記符号語列の先頭からn
ビットを取得し、前記取得したnビットを入力として符
号長テーブルを参照し、連続したr個の符号語のそれぞ
れの符号長が得られたときに、それらの符号長を出力
し、また、それぞれの符号語の符号長と、対応する符号
語の下位mビットとを入力として符号値テーブルを参照
することで、それぞれの符号値を出力することを特徴と
する可変長符号の復号化方法。 - 【請求項4】 k=17、n=11、m=5、r=2と
することを特徴とする請求項3記載の可変長符号の復号
化方法。 - 【請求項5】 可変長符号からなる符号語列に対して順
次復号を行い、そのときに符号長と符号値とを出力した
後に符号語列の先頭からそれぞれの符号語を削除し、終
端符号が出現するまでこの削除のための操作を繰り返す
ことを特徴とする請求項1から4までのいずれか1項記
載の可変長符号の復号化方法。 - 【請求項6】 符号語の下位mビットを取得する際に、
mが符号長よりも大きい場合には、符号語の先頭からm
ビットを取得することを特徴とする請求項1から5まで
のいずれか1項記載の可変長符号の復号化方法。 - 【請求項7】 可変長符号からなる符号語列に対して復
号を行う可変長符号の復号化方法であって、1 符号語あ
たりの最大の符号長がk(ただしkは自然数)であり、
符号語の上位n(ただしnは自然数)ビット以内の値で
符号長が一意に定まるとともに、符号語の下位m(ただ
しmは自然数)ビット以内の値と符号長とで符号値が一
意に定まる符号語に関して、前記符号語列の先頭からn
ビットを取得し、前記取得したnビットを入力として符
号長テーブルを参照することで符号語の符号長sを出力
し、前記符号長sと符号語の下位mビットを入力として
符号値テーブルを参照することで符号値を出力すること
を特徴とする可変長の符号復号化方法をコンピュータに
実現させるためのプログラムを記録した、可変長符号の
復号化プログラムを記録した記録媒体。 - 【請求項8】 k=17、n=11、m=5とすること
を特徴とする可変長符号の復号化方法をコンピュータに
実現させるためのプログラムを記録した、請求項7記載
の可変長符号の復号化プログラムを記録した記録媒体。 - 【請求項9】 可変長符号からなる符号語列に対して復
号を行う可変長符号の復号化方法であって、1符号語あ
たりの最大の符号長がk(ただしkは自然数)であり、
符号語の上位n(ただしnは自然数)ビット以内の値で
符号長が一意に定まるとともに、符号語の下位m(ただ
しmは自然数)ビット以内の値と符号長とで符号値が一
意に定まる符号語に関して、前記符号語列の先頭からn
ビットを取得し、前記取得したnビットを入力として符
号長テーブルを参照し、連続したr個の符号語のそれぞ
れの符号長が得られたときに、それらの符号長を出力
し、また、それぞれの符号語の符号長と、対応する符号
語の下位mビットとを入力として符号値テーブルを参照
することで、それぞれの符号値を出力することを特徴と
する可変長符号の復号化方法をコンピュータに実現させ
るためのプログラムを記録した、可変長符号の復号化プ
ログラムを記録した記録媒体。 - 【請求項10】 k=17、n=11、m=5、r=2
とすることを特徴とする可変長符号の復号化方法をコン
ピュータに実現させるためのプログラムを記録した、請
求項9記載の可変長符号の復号化プログラムを記録した
記録媒体。 - 【請求項11】 可変長符号からなる符号語列に対して
順次復号を行い、そのときに符号長と符号値とを出力し
た後に符号語列の先頭からそれぞれの符号語を削除し、
終端符号が出現するまでこの削除のための操作を繰り返
すことを特徴とする可変長符号の復号化方法をコンピュ
ータに実現させるためのプログラムを記録した、請求項
7から10までのいずれか1項記載の可変長符号の復号
化プログラムを記録した記録媒体。 - 【請求項12】 符号語の下位mビットを取得する際
に、mが符号長よりも大きい場合には、符号語の先頭か
らmビットを取得することを特徴とする可変長符号の復
号化方法をコンピュータに実現させるためのプログラム
を記録した、請求項7から11までのいずれか1項記載
の可変長符号の復号化プログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10328697A JP2000156643A (ja) | 1998-11-19 | 1998-11-19 | 可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10328697A JP2000156643A (ja) | 1998-11-19 | 1998-11-19 | 可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000156643A true JP2000156643A (ja) | 2000-06-06 |
Family
ID=18213173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10328697A Pending JP2000156643A (ja) | 1998-11-19 | 1998-11-19 | 可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000156643A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016512004A (ja) * | 2013-03-01 | 2016-04-21 | グルロジック マイクロシステムズ オーワイGurulogic Microsystems Oy | データエンコーダ、データデコーダ及び方法 |
-
1998
- 1998-11-19 JP JP10328697A patent/JP2000156643A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016512004A (ja) * | 2013-03-01 | 2016-04-21 | グルロジック マイクロシステムズ オーワイGurulogic Microsystems Oy | データエンコーダ、データデコーダ及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6624762B1 (en) | Hardware-based, LZW data compression co-processor | |
US5150430A (en) | Lossless data compression circuit and method | |
US5525982A (en) | Method and means for character string pattern matching for compression and the like using minimal cycles per character | |
US7403136B2 (en) | Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search | |
US10862513B2 (en) | Data processing unit having hardware-based parallel variable-length codeword decoding | |
US5087913A (en) | Short-record data compression and decompression system | |
US6819271B2 (en) | Parallel compression and decompression system and method having multiple parallel compression and decompression engines | |
US6587057B2 (en) | High performance memory efficient variable-length coding decoder | |
US5339076A (en) | Data compression using content addressable memory | |
US6885319B2 (en) | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms | |
US4464650A (en) | Apparatus and method for compressing data signals and restoring the compressed data signals | |
US7262722B1 (en) | Hardware-based CABAC decoder with parallel binary arithmetic decoding | |
US5675332A (en) | Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type | |
RU2117388C1 (ru) | Способ и устройство кодирования и декодирования данных | |
JP3294026B2 (ja) | 高速可変長復号化装置 | |
KR20030022896A (ko) | 동작 코드용 듀얼 모드 데이타 압축 방법 | |
US20200394066A1 (en) | Context value retrieval prior to or parallel with expansion of previous symbol for context-decoding in range decoder | |
US9419646B2 (en) | Hardware compression to find backward references with multi-level hashes | |
JP2004507858A (ja) | 圧縮アルゴリズムのハードウエアにおける実現 | |
US6094151A (en) | Apparatus and method for finite state machine coding of information selecting most probable state subintervals | |
JPH0750592A (ja) | シンボルの統計的復号化方法 | |
JPH0563582A (ja) | 辞書編集的に符号化/復号化する方法と装置 | |
JP2000156643A (ja) | 可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体 | |
JP2000209095A (ja) | 変調エンコ―ダ、変調デコ―ダ、およびデ―タストリ―ムを変調するためのコンピュ―タプログラムプロダクト | |
KR100509009B1 (ko) | 소프트웨어 및 하드웨어 루프 압축 기능을 갖는 선입선출기록/후입선출 판독 트레이스 버퍼 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040420 |