JPH07212244A - 可変長デコーダ - Google Patents
可変長デコーダInfo
- Publication number
- JPH07212244A JPH07212244A JP33228793A JP33228793A JPH07212244A JP H07212244 A JPH07212244 A JP H07212244A JP 33228793 A JP33228793 A JP 33228793A JP 33228793 A JP33228793 A JP 33228793A JP H07212244 A JPH07212244 A JP H07212244A
- Authority
- JP
- Japan
- Prior art keywords
- code
- variable length
- data
- binary data
- holding means
- 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, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【目的】 本発明の目的は、高速で動作可能な並列可変
長デコーダを提供することにある。 【構成】 本発明に係る可変長デコーダは、1又は2以
上の可変長コードの1部又は全部のバイナリデータを保
持し、該データを並列に出力可能なデータ保持手段と
(11)、可変長コードの1部又は全部を構成するコー
ドからなるコードパターンと各コードの状態を識別する
ための状態遷移情報が記憶された記憶手段と(12)、
前記データ保持手段及び記憶手段に接続され、前記デー
タ保持手段からのバイナリデータと前記複数のコードパ
ターンとを比較し、一致するコードを検知する検知手段
と(13、131)、前記検知手段に接続され、一致さ
れたコードに対応する状態遷移情報に基づき前記データ
保持手段から可変長コードを選択する選択手段(14、
15、16)とを有する。
長デコーダを提供することにある。 【構成】 本発明に係る可変長デコーダは、1又は2以
上の可変長コードの1部又は全部のバイナリデータを保
持し、該データを並列に出力可能なデータ保持手段と
(11)、可変長コードの1部又は全部を構成するコー
ドからなるコードパターンと各コードの状態を識別する
ための状態遷移情報が記憶された記憶手段と(12)、
前記データ保持手段及び記憶手段に接続され、前記デー
タ保持手段からのバイナリデータと前記複数のコードパ
ターンとを比較し、一致するコードを検知する検知手段
と(13、131)、前記検知手段に接続され、一致さ
れたコードに対応する状態遷移情報に基づき前記データ
保持手段から可変長コードを選択する選択手段(14、
15、16)とを有する。
Description
【0001】
【産業上の利用分野】本発明は、可変長コードをデコー
ドする可変長デコーダに関し、特に、画像情報の伝送
や、記録メデイアへの蓄積の際に符号化されたデイジタ
ル画像信号等をデコードするための可変長デコーダに関
する。
ドする可変長デコーダに関し、特に、画像情報の伝送
や、記録メデイアへの蓄積の際に符号化されたデイジタ
ル画像信号等をデコードするための可変長デコーダに関
する。
【0002】
【従来の技術】可変長コードのデコード(VLD)と
は、連結された可変長のバイナリコード(VLCバイナ
リストリング)をオリジナルの数値(ソースコード)へ
変換することである。このようなコードシステム及びデ
コード操作の従来例を説明する。
は、連結された可変長のバイナリコード(VLCバイナ
リストリング)をオリジナルの数値(ソースコード)へ
変換することである。このようなコードシステム及びデ
コード操作の従来例を説明する。
【0003】図6及び図7は、MPEGにおける画像信
号の符号化回路及び複合化回路の一構成例を示すブロッ
ク図である。
号の符号化回路及び複合化回路の一構成例を示すブロッ
ク図である。
【0004】図6において、処理単位である8*8画素
の画像信号が減算器101に入力される。画像信号は、
減算器101により動き予測値Pと差分をとられ、この
差分値はDCT(離散コサイン変換)102により周波
数領域の信号に変換される。変換されたDCT係数は量
子化部103により量子化コードに変換され、可変長符
号化部(VLC)104により可変長コードに符号化さ
れる。また、量子化されたコードは、逆量子化部105
及び逆DCT106により復元され、加算器107によ
り動き予測値Pと加算され、1フレーム(または1フィ
ールド)前の画像信号としてフレームメモリ108にス
トアされる。動き補償回路109は、入力された画像信
号とフレームメモリ108からの前の画像信号から動き
予測値Pを求め、これを減算器101及び加算器107
へ供給する。
の画像信号が減算器101に入力される。画像信号は、
減算器101により動き予測値Pと差分をとられ、この
差分値はDCT(離散コサイン変換)102により周波
数領域の信号に変換される。変換されたDCT係数は量
子化部103により量子化コードに変換され、可変長符
号化部(VLC)104により可変長コードに符号化さ
れる。また、量子化されたコードは、逆量子化部105
及び逆DCT106により復元され、加算器107によ
り動き予測値Pと加算され、1フレーム(または1フィ
ールド)前の画像信号としてフレームメモリ108にス
トアされる。動き補償回路109は、入力された画像信
号とフレームメモリ108からの前の画像信号から動き
予測値Pを求め、これを減算器101及び加算器107
へ供給する。
【0005】他方、可変長符号化部(VLC)104に
より符号化された伝送データは、画像信号と動き予測値
Pの差分を符号化した可変長コードであり、この可変長
コードは、図7に示すように、可変長復号化部(VL
D)110によってデコードされ、逆量子化部111及
び逆DCT112により復元される。そして、加算器1
13により動き予測値Pと加算され出力される。また、
出力信号は、フレームメモリ115に供給され、動き補
償回路114は、フレームメモリ115からの信号に基
づき動き予測値Pを求め、これを加算器113へ供給す
る。こうして、デジタル画像信号の伝送に際して、画像
データの圧縮、伸長が行われる。
より符号化された伝送データは、画像信号と動き予測値
Pの差分を符号化した可変長コードであり、この可変長
コードは、図7に示すように、可変長復号化部(VL
D)110によってデコードされ、逆量子化部111及
び逆DCT112により復元される。そして、加算器1
13により動き予測値Pと加算され出力される。また、
出力信号は、フレームメモリ115に供給され、動き補
償回路114は、フレームメモリ115からの信号に基
づき動き予測値Pを求め、これを加算器113へ供給す
る。こうして、デジタル画像信号の伝送に際して、画像
データの圧縮、伸長が行われる。
【0006】なお、動き予測スキームについては、本出
願人によって先に出願された「画像処理装置及びその処
理方法」(特願平5−206159号、発明者:山口)
に詳細に記載されている。
願人によって先に出願された「画像処理装置及びその処
理方法」(特願平5−206159号、発明者:山口)
に詳細に記載されている。
【0007】MPEGでは、量子化されたDCT係数に
ついて、もっとも大きな可変長コード表を定義してい
る。このコードは、いわゆるハフマン符号化に相当する
ものであり、連続した0の長さ(ランレングス)と、ラ
ンの最後に生じるゼロでない係数の振幅とを表すもので
ある。つまり、可変長符号化部(VLC)104は、処
理単位である8*8画素のブロックについて得られたD
CT係数をジグザグスキャンし、ランレングスとこれに
隣接する係数とを対にして符号化する。また、特別なコ
ードとして、8*8ブロックの画像信号の符号化の終わ
りをマーク付けするEOB(End of Bloc
k)コードを定義する。
ついて、もっとも大きな可変長コード表を定義してい
る。このコードは、いわゆるハフマン符号化に相当する
ものであり、連続した0の長さ(ランレングス)と、ラ
ンの最後に生じるゼロでない係数の振幅とを表すもので
ある。つまり、可変長符号化部(VLC)104は、処
理単位である8*8画素のブロックについて得られたD
CT係数をジグザグスキャンし、ランレングスとこれに
隣接する係数とを対にして符号化する。また、特別なコ
ードとして、8*8ブロックの画像信号の符号化の終わ
りをマーク付けするEOB(End of Bloc
k)コードを定義する。
【0008】一般的な4:1:0モードでの符号化で
は、画像信号の6ブロックが1グループとして符号化さ
れ、これは、全体のCCIR601解像度(704ピク
セル*480ライン)のフレームにつき1320回繰り
返されることとなる。
は、画像信号の6ブロックが1グループとして符号化さ
れ、これは、全体のCCIR601解像度(704ピク
セル*480ライン)のフレームにつき1320回繰り
返されることとなる。
【0009】DCT係数の符号化表を図8に示す。この
符号化表は、2組のコード、すなわち(1)可変長コー
ド、(2)エスケープ+固定コード(エスケープコード
表については省略)を有する。前者のコードは、前述し
たように、ランレングスとゼロでない係数の対をコード
化するものである。後者のコードは、可変長コード表に
該当しないものを対象に符号化するものであり、”00
00 01”のエスケープ(ESCAPE)コード+固
定コード(6ビット)+固定コード(8または16ビッ
ト)の最大28ビット長を有する。すなわち、図8の可
変長コード表に該当しないランレングス及び係数は、”
0000 01”のエスケープコードとして規定され、
固定コード(6ビット)によりランレングスを符号化
し、固定コード(8または16ビット)により係数を符
号化する。また、図の”s”は、係数のレベルを示すも
のであり、”s”が”0”であれば係数が正であり、”
1”であれば、負であることを定義する。
符号化表は、2組のコード、すなわち(1)可変長コー
ド、(2)エスケープ+固定コード(エスケープコード
表については省略)を有する。前者のコードは、前述し
たように、ランレングスとゼロでない係数の対をコード
化するものである。後者のコードは、可変長コード表に
該当しないものを対象に符号化するものであり、”00
00 01”のエスケープ(ESCAPE)コード+固
定コード(6ビット)+固定コード(8または16ビッ
ト)の最大28ビット長を有する。すなわち、図8の可
変長コード表に該当しないランレングス及び係数は、”
0000 01”のエスケープコードとして規定され、
固定コード(6ビット)によりランレングスを符号化
し、固定コード(8または16ビット)により係数を符
号化する。また、図の”s”は、係数のレベルを示すも
のであり、”s”が”0”であれば係数が正であり、”
1”であれば、負であることを定義する。
【0010】図9は、DCT係数からなるバイナリスト
リームと、そのデコード結果を示すものである。例え
ば、最初のコード”001101”は、図8に示すよう
に、ランレングスが”4”、係数の振幅が”1”、レベ
ル”s”が”1”であるため、デコード値は”0000
(−1)”となる。
リームと、そのデコード結果を示すものである。例え
ば、最初のコード”001101”は、図8に示すよう
に、ランレングスが”4”、係数の振幅が”1”、レベ
ル”s”が”1”であるため、デコード値は”0000
(−1)”となる。
【0011】実際に符号化されたDCT係数をデコード
する場合には、”エスケープ+固定コード”の処理に加
え、さらに、”最初”のコード及び”2回目”のコード
の識別処理を必要とする。”最初”のコードは、図8に
おいて”(1)”として示され、このコードがブロック
のDCT係数について最初に使用されるものであること
を定義し、他方、”2回目”のコードは、”(2)”と
して示され、このコードは、第2回目以降に使用される
ものであることを定義する。これは、最初にEOBコー
ドが現れることは禁止されていることから、最初のコー
ド”10”の使用はEOBでないものとし、それ以降は
EOBである可能性があるので、これと区別するよう異
なるコード”11s”としている。
する場合には、”エスケープ+固定コード”の処理に加
え、さらに、”最初”のコード及び”2回目”のコード
の識別処理を必要とする。”最初”のコードは、図8に
おいて”(1)”として示され、このコードがブロック
のDCT係数について最初に使用されるものであること
を定義し、他方、”2回目”のコードは、”(2)”と
して示され、このコードは、第2回目以降に使用される
ものであることを定義する。これは、最初にEOBコー
ドが現れることは禁止されていることから、最初のコー
ド”10”の使用はEOBでないものとし、それ以降は
EOBである可能性があるので、これと区別するよう異
なるコード”11s”としている。
【0012】こうした例外的な動作を含むため、可変長
コードのデコードは、図10に示す状態遷移に従って処
理される。図中、S0、S1、S2、S3は、各処理状
態を示し、この状態に応じて使用するコード表を切り替
える。まず、S0からスターとし、”最初”のコードで
あれば、S1に対応するコード表に従い処理され、ある
いは、エスケープコードであれば、S3に対応するエス
ケープコード表に従い処理される。S1、またはS3の
状態で、EOBコードが検知されればS0に戻り、それ
以外のコードであれば、S2に対応する可変長コード表
(例えば、図8)に従い処理される。
コードのデコードは、図10に示す状態遷移に従って処
理される。図中、S0、S1、S2、S3は、各処理状
態を示し、この状態に応じて使用するコード表を切り替
える。まず、S0からスターとし、”最初”のコードで
あれば、S1に対応するコード表に従い処理され、ある
いは、エスケープコードであれば、S3に対応するエス
ケープコード表に従い処理される。S1、またはS3の
状態で、EOBコードが検知されればS0に戻り、それ
以外のコードであれば、S2に対応する可変長コード表
(例えば、図8)に従い処理される。
【0013】こうしたコードの切り替えは、”最初”及
び”2回目”のコードについては、可変長コード表のア
ドレスにより実行することができ、エスケープコードに
ついては、可変長デコーダに取り付けられたハードウエ
アにより実行することができる。
び”2回目”のコードについては、可変長コード表のア
ドレスにより実行することができ、エスケープコードに
ついては、可変長デコーダに取り付けられたハードウエ
アにより実行することができる。
【0014】
【発明が解決しようとする課題】一般に、可変長コード
は、ソースコードの発生頻度により定義される。つま
り、発生頻度の高いソースコードには短い可変長コード
が割り当てられ、発生頻度の低いコードには長い可変長
コードが割り当てられる。そして、可変長のバイナリス
トリングをデコードするためには、可変長コードの境界
を識別することが重要なことである。従来のデコード動
作は、可変長コードのバイナリストリングをビットごと
に読み取ることによって行われていた。というのは、バ
イナリストリングが多重ビットで読み取られる場合(以
下、デコーディングウインドゥと呼ぶ)、コードの境界
は、図11に示すように、ウインドゥ境界と必ずしも一
致しないからである。そして、これを解決するための具
体的な方法は、未だ考えられていない。
は、ソースコードの発生頻度により定義される。つま
り、発生頻度の高いソースコードには短い可変長コード
が割り当てられ、発生頻度の低いコードには長い可変長
コードが割り当てられる。そして、可変長のバイナリス
トリングをデコードするためには、可変長コードの境界
を識別することが重要なことである。従来のデコード動
作は、可変長コードのバイナリストリングをビットごと
に読み取ることによって行われていた。というのは、バ
イナリストリングが多重ビットで読み取られる場合(以
下、デコーディングウインドゥと呼ぶ)、コードの境界
は、図11に示すように、ウインドゥ境界と必ずしも一
致しないからである。そして、これを解決するための具
体的な方法は、未だ考えられていない。
【0015】他方、高品位デジタルビデオ(HDTVな
ど)においては、可変長バイナリストリングを50乃至
100Mビット速度のリアルタイムでデコードすること
が求められている。これは、ビットあたり20乃至10
nS内でデコード動作しなければならないことを意味す
る。つまり、可変長コードのデコードは、ROMまたは
RAM内に参照コードデーブルを含むので、非常に高価
な高速のメモリが必要となる。
ど)においては、可変長バイナリストリングを50乃至
100Mビット速度のリアルタイムでデコードすること
が求められている。これは、ビットあたり20乃至10
nS内でデコード動作しなければならないことを意味す
る。つまり、可変長コードのデコードは、ROMまたは
RAM内に参照コードデーブルを含むので、非常に高価
な高速のメモリが必要となる。
【0016】本発明の目的は、上記課題を解決し、新規
な並列可変長デコーダを提供することにある。
な並列可変長デコーダを提供することにある。
【0017】本発明の他の目的は、シングルクロックで
高速動作可能なデコーダを提供することにある。
高速動作可能なデコーダを提供することにある。
【0018】本発明の他の目的は、高集積化可能な低コ
スト、かつ高速動作可能な可変長デコーダを提供するこ
とにある。
スト、かつ高速動作可能な可変長デコーダを提供するこ
とにある。
【0019】
【課題を解決するための手段】本発明は、上記課題を解
決するために、以下の手段を有する。本発明に係る可変
長コードをデコードするための可変長デコーダは、1又
は2以上の可変長コードの1部又は全部のバイナリデー
タを保持し、該データを並列に出力可能なデータ保持手
段と、各可変長コードの1部又は全部を構成するコード
からなるコードパターンと各コードの状態を識別するた
めの状態遷移情報が記憶された記憶手段と、前記データ
保持手段及び記憶手段に接続され、前記データ保持手段
からのバイナリデータと前記複数のコードパターンとを
比較し、一致するコードを検知する検知手段と、前記検
知手段に接続され、一致されたコードに対応する状態遷
移情報に基づき前記データ保持手段に保持されたバイナ
リデータを選択する選択手段とを有する。
決するために、以下の手段を有する。本発明に係る可変
長コードをデコードするための可変長デコーダは、1又
は2以上の可変長コードの1部又は全部のバイナリデー
タを保持し、該データを並列に出力可能なデータ保持手
段と、各可変長コードの1部又は全部を構成するコード
からなるコードパターンと各コードの状態を識別するた
めの状態遷移情報が記憶された記憶手段と、前記データ
保持手段及び記憶手段に接続され、前記データ保持手段
からのバイナリデータと前記複数のコードパターンとを
比較し、一致するコードを検知する検知手段と、前記検
知手段に接続され、一致されたコードに対応する状態遷
移情報に基づき前記データ保持手段に保持されたバイナ
リデータを選択する選択手段とを有する。
【0020】また、本発明に係る可変長デコーダは、1
又は2以上の可変長コードの1部又は全部のバイナリデ
ータを保持し、該データを並列に出力可能なデータ保持
手段と、前記データ保持手段に接続され、データ保持手
段からのバイナリデータの先頭から連続する論理”0”
または”1”のビット数をカウントし、カウント結果を
符号化して出力する符号化手段と、可変長コードの先頭
からの論理”0”または”1”のビット数に応じて複数
のテーブルを有し、該テーブルには各可変長コードのデ
コード値及び状態遷移情報がそれぞれ記憶され、前記符
号化手段の出力及び前記データ保持手段のバイナリデー
タをアドレスとして入力することにより、前記デコード
値を出力する記憶手段とを有する。
又は2以上の可変長コードの1部又は全部のバイナリデ
ータを保持し、該データを並列に出力可能なデータ保持
手段と、前記データ保持手段に接続され、データ保持手
段からのバイナリデータの先頭から連続する論理”0”
または”1”のビット数をカウントし、カウント結果を
符号化して出力する符号化手段と、可変長コードの先頭
からの論理”0”または”1”のビット数に応じて複数
のテーブルを有し、該テーブルには各可変長コードのデ
コード値及び状態遷移情報がそれぞれ記憶され、前記符
号化手段の出力及び前記データ保持手段のバイナリデー
タをアドレスとして入力することにより、前記デコード
値を出力する記憶手段とを有する。
【0021】
【作用】このように本発明によれば、可変長コードを構
成するバイナリデータを一度に並列に読み出し、このデ
コーディングウインドゥを用いてデコードを行うことに
よりデコードのクロック速度を減少させ、つまり逆に言
えば、高速動作でない論理回路を使用して等価な高速多
重転送を提供することができる。
成するバイナリデータを一度に並列に読み出し、このデ
コーディングウインドゥを用いてデコードを行うことに
よりデコードのクロック速度を減少させ、つまり逆に言
えば、高速動作でない論理回路を使用して等価な高速多
重転送を提供することができる。
【0022】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。以下の例は、MPEGにおけるDCT係数
についての可変長コード表を対象にし、入力バイナリス
トリングは、該コード表に規定された可変長コードの任
意のシーケンスからなるものと仮定する。なお、説明を
簡単にするために、実際にMPEGのデコーダに必要と
される以下の特徴を除外する。
て説明する。以下の例は、MPEGにおけるDCT係数
についての可変長コード表を対象にし、入力バイナリス
トリングは、該コード表に規定された可変長コードの任
意のシーケンスからなるものと仮定する。なお、説明を
簡単にするために、実際にMPEGのデコーダに必要と
される以下の特徴を除外する。
【0023】(1)上述した”最初”のコード及び”2
回目”のコードの2グループについては、個別的な処理
を考慮しないものとする。 (2)EOBコード(ブロックの終わりを示すコード)
を、係数コードの1つとみなし、特別なコードとしてデ
コード制御を行わないこととする。 (3)エスケープ+固定コードの特徴を含めないことと
する。 これらの特徴は、本実施例のハードウエアに特別の制御
回路を付加することにより対応でき、本発明の並列可変
長デコーダの本質的な機能に影響を及ぼすものではな
い。
回目”のコードの2グループについては、個別的な処理
を考慮しないものとする。 (2)EOBコード(ブロックの終わりを示すコード)
を、係数コードの1つとみなし、特別なコードとしてデ
コード制御を行わないこととする。 (3)エスケープ+固定コードの特徴を含めないことと
する。 これらの特徴は、本実施例のハードウエアに特別の制御
回路を付加することにより対応でき、本発明の並列可変
長デコーダの本質的な機能に影響を及ぼすものではな
い。
【0024】図1は、本実施例に係る4ビット並列可変
長デコーダの構成を示すブロック図である。本実施例に
係る並列デコーダは、1又は複数の可変長コードの1部
又は全部を構成する4ビットのバイナリデータを一度に
読み取る入力レジスタ11と、可変長コードをデコード
するために必要な情報を予め記憶したコードROM12
と、複数の一致ユニット部131を有する一致回路13
と、一致回路13に接続された選択回路14と、入力レ
ジスタ11とバレルシフタ16間の接続を制御するスイ
ッチ回路15と、入力レジスタ11からのデータをスイ
ッチ回路15を介して受け取るバレルシフタ16とを有
する。
長デコーダの構成を示すブロック図である。本実施例に
係る並列デコーダは、1又は複数の可変長コードの1部
又は全部を構成する4ビットのバイナリデータを一度に
読み取る入力レジスタ11と、可変長コードをデコード
するために必要な情報を予め記憶したコードROM12
と、複数の一致ユニット部131を有する一致回路13
と、一致回路13に接続された選択回路14と、入力レ
ジスタ11とバレルシフタ16間の接続を制御するスイ
ッチ回路15と、入力レジスタ11からのデータをスイ
ッチ回路15を介して受け取るバレルシフタ16とを有
する。
【0025】入力レジスタ11は、直並列変換可能な4
ビットシフトレジスタであり、可変長コードを構成する
バイナリデータをシリアル入力し、4ビットの並列デー
タ、すなわち4ビットのデコーディングウインドゥを保
持し、これを一致回路13へ供給する。多重ビットの読
み取りにより、2つの可能性が発生する。1つは、デコ
ーディングウインドゥ内に2以上のコードが存在し、最
後のコードがウインドゥ内に終結しないという状態であ
る。もう1つは、4ビットウインドゥ以上のコードが存
在するということである。
ビットシフトレジスタであり、可変長コードを構成する
バイナリデータをシリアル入力し、4ビットの並列デー
タ、すなわち4ビットのデコーディングウインドゥを保
持し、これを一致回路13へ供給する。多重ビットの読
み取りにより、2つの可能性が発生する。1つは、デコ
ーディングウインドゥ内に2以上のコードが存在し、最
後のコードがウインドゥ内に終結しないという状態であ
る。もう1つは、4ビットウインドゥ以上のコードが存
在するということである。
【0026】こうした問題を解決するために、本実施例
の可変長デコーダは、状態遷移情報をストアしたコード
ROM12を用いる。コードROM12は、図3及び図
4に示すように、複数のペイジを有し、各ペイジには、
マッチング用のコードパターン(バイナリビットパター
ン)と、各コード列毎に、終結フラグ、シフト長(全体
のコード長はバレルシフタで計算される)、及びコード
ROMの次アドレス、つまりページアドレスがストアさ
れる。
の可変長デコーダは、状態遷移情報をストアしたコード
ROM12を用いる。コードROM12は、図3及び図
4に示すように、複数のペイジを有し、各ペイジには、
マッチング用のコードパターン(バイナリビットパター
ン)と、各コード列毎に、終結フラグ、シフト長(全体
のコード長はバレルシフタで計算される)、及びコード
ROMの次アドレス、つまりページアドレスがストアさ
れる。
【0027】マッチングコードは4ビットであり、可変
長コード(例えば、MPEGでは2ビットないし18ビ
ット長)の1部又は全部を構成するものであり、階層的
に複数のペイジに分割されたマッチングコードを組み合
わせることで、可変長コードを特定することができる。
このため、各ペイジには、一致ユニット部131のユニ
ット数及びデコーディングウインドゥのビット長に対応
した16*4(ビット)=64ビットのコードパターン
が含まれる。
長コード(例えば、MPEGでは2ビットないし18ビ
ット長)の1部又は全部を構成するものであり、階層的
に複数のペイジに分割されたマッチングコードを組み合
わせることで、可変長コードを特定することができる。
このため、各ペイジには、一致ユニット部131のユニ
ット数及びデコーディングウインドゥのビット長に対応
した16*4(ビット)=64ビットのコードパターン
が含まれる。
【0028】終結フラグは、現在のデコーディングウイ
ンドゥがコード境界を含むか否か(入力コードが複数の
可変長コードを表すか否か)を示し、シフト長は、可変
長コードのコード長(終結フラグがアクティブ”1”の
とき)、あるいは可変長コードのシフト量(後述する)
を表す。次アドレスは、デコーディングウインドゥ内に
終結フラグが存在しない場合に、さらに可変長コードを
解読するための階層的なアドレス(ペイジアドレス)で
ある。つまり、終結フラグが”1”のときは、現在の可
変長コードのデコードは終結するので、次のアドレスは
必ず”0”となり、次の可変長コードのデコードのため
に初期ペイジアドレスが設定される。
ンドゥがコード境界を含むか否か(入力コードが複数の
可変長コードを表すか否か)を示し、シフト長は、可変
長コードのコード長(終結フラグがアクティブ”1”の
とき)、あるいは可変長コードのシフト量(後述する)
を表す。次アドレスは、デコーディングウインドゥ内に
終結フラグが存在しない場合に、さらに可変長コードを
解読するための階層的なアドレス(ペイジアドレス)で
ある。つまり、終結フラグが”1”のときは、現在の可
変長コードのデコードは終結するので、次のアドレスは
必ず”0”となり、次の可変長コードのデコードのため
に初期ペイジアドレスが設定される。
【0029】一致回路13は、コードROM12及び入
力レジスタ11に接続され、マッチングコード及びこれ
に対応する状態遷移情報(終結フラグ、シフト長、次ア
ドレス)と、デコーディングウインドゥの4ビットのバ
イナリデータを受け取る。一致回路13は、16の一致
ユニット部131を有し、これらの一致ユニット部13
1に入力レジスタ11から4ビットバイナリデータを共
通に入力する。また、コードROM12から16候補の
コードパターンが入力され、これらと4ビットバイナリ
データが並列にマッチングされる。マッチングコードの
候補数は、特定の可変長コードのセット構造により決定
され、MPEGにおけるDCT係数の場合、最大16候
補存在する。
力レジスタ11に接続され、マッチングコード及びこれ
に対応する状態遷移情報(終結フラグ、シフト長、次ア
ドレス)と、デコーディングウインドゥの4ビットのバ
イナリデータを受け取る。一致回路13は、16の一致
ユニット部131を有し、これらの一致ユニット部13
1に入力レジスタ11から4ビットバイナリデータを共
通に入力する。また、コードROM12から16候補の
コードパターンが入力され、これらと4ビットバイナリ
データが並列にマッチングされる。マッチングコードの
候補数は、特定の可変長コードのセット構造により決定
され、MPEGにおけるDCT係数の場合、最大16候
補存在する。
【0030】ここで、図2に一致ユニット部の詳細な構
成を示す。各一致ユニット部131は、デコーディング
ウインドゥに対応した複数のEXOR回路132と、E
XOR回路132に接続されたAND回路133を有す
る。各EXOR回路132は、デコーディングウインド
ゥからの4ビットデータを受け取るとともに、コードR
OM12からの4ビットマッチングコードを受け取り、
両者の比較を行う。EXOR回路132において、すべ
ての4ビットのバイナリ値が一致したとき、AND回路
133の出力は、ハイレベルとなる。
成を示す。各一致ユニット部131は、デコーディング
ウインドゥに対応した複数のEXOR回路132と、E
XOR回路132に接続されたAND回路133を有す
る。各EXOR回路132は、デコーディングウインド
ゥからの4ビットデータを受け取るとともに、コードR
OM12からの4ビットマッチングコードを受け取り、
両者の比較を行う。EXOR回路132において、すべ
ての4ビットのバイナリ値が一致したとき、AND回路
133の出力は、ハイレベルとなる。
【0031】また、各EXOR回路132には、イネー
ブル信号134が供給され、イネーブル信号の論理値に
応じて各EXOR回路をマスク、すなわち供給されたマ
ッチングコードを無効にする。イネーブル信号134
は、コードROM12のコード表に基づき出力される。
マッチングコードに対応する終結フラグがアクテイ
ブ(”1”)、すなわちデコーディングウインドゥ内に
コード境界が存在する場合には、デコード対象外の残存
コードのマッチングは不要となる。例えば、マッチング
コード”000X”であれば、終結フラグが”1”、シ
フト長が”3”であるから、先頭の3ビットがマッチン
グの対象として有効であり、残りの1ビットは一致した
ものとみなす必要がある。このため、残りの1ビットを
マスクするようイネーブル信号134が供給される。
ブル信号134が供給され、イネーブル信号の論理値に
応じて各EXOR回路をマスク、すなわち供給されたマ
ッチングコードを無効にする。イネーブル信号134
は、コードROM12のコード表に基づき出力される。
マッチングコードに対応する終結フラグがアクテイ
ブ(”1”)、すなわちデコーディングウインドゥ内に
コード境界が存在する場合には、デコード対象外の残存
コードのマッチングは不要となる。例えば、マッチング
コード”000X”であれば、終結フラグが”1”、シ
フト長が”3”であるから、先頭の3ビットがマッチン
グの対象として有効であり、残りの1ビットは一致した
ものとみなす必要がある。このため、残りの1ビットを
マスクするようイネーブル信号134が供給される。
【0032】選択回路14は、各一致ユニット部131
のAND回路133の出力に接続され、16候補のマッ
チングコードの中からヒットコードの位置を検知する
(もし、ヒットコードがなければエラーである)。ヒッ
トコードの検知により、選択回路14は、一致回路14
を介して得られた状態遷移情報(終結フラグ、シフト
長、次アドレス)の中から、ヒットコードに対応するデ
ータを選択する。なお、状態遷移情報は、AND回路1
33の出力に基づき選択されるようにしても良い。そし
て、次アドレス(終結フラグがアクテイブのときは、次
アドレス”0”)をコードROM12へ供給するととも
に、シフト長に基づく制御信号を入力レジスタ11、ス
イッチ回路15及びバレルシフタ16へ供給する。
のAND回路133の出力に接続され、16候補のマッ
チングコードの中からヒットコードの位置を検知する
(もし、ヒットコードがなければエラーである)。ヒッ
トコードの検知により、選択回路14は、一致回路14
を介して得られた状態遷移情報(終結フラグ、シフト
長、次アドレス)の中から、ヒットコードに対応するデ
ータを選択する。なお、状態遷移情報は、AND回路1
33の出力に基づき選択されるようにしても良い。そし
て、次アドレス(終結フラグがアクテイブのときは、次
アドレス”0”)をコードROM12へ供給するととも
に、シフト長に基づく制御信号を入力レジスタ11、ス
イッチ回路15及びバレルシフタ16へ供給する。
【0033】スイッチ回路15は、入力レジスタ11と
バレルシフタ16間に接続され、その入力は、入力レジ
スタの4ビット出力が接続され、出力は、バレルシフタ
16の右側の4ビット位置に各々に接続される。スイッ
チ回路15は、選択回路14からのシフト長に基づきデ
ータを出力し、一致したバイナリデータがバレルシフタ
16の右側に位置にくるようにビットをシフトさせる。
仮に、デコーディングウインドゥにコード境界が存在
し、可変長コードが3ビット長である場合には、選択回
路14からシフト長”3”を示す制御信号が供給され、
入力レジスタ11の3ビットがバレルシフタ16の右側
の位置に出力される。
バレルシフタ16間に接続され、その入力は、入力レジ
スタの4ビット出力が接続され、出力は、バレルシフタ
16の右側の4ビット位置に各々に接続される。スイッ
チ回路15は、選択回路14からのシフト長に基づきデ
ータを出力し、一致したバイナリデータがバレルシフタ
16の右側に位置にくるようにビットをシフトさせる。
仮に、デコーディングウインドゥにコード境界が存在
し、可変長コードが3ビット長である場合には、選択回
路14からシフト長”3”を示す制御信号が供給され、
入力レジスタ11の3ビットがバレルシフタ16の右側
の位置に出力される。
【0034】バレルシフタ16は、例えば18ビット長
のシフトレジスタであり、スイッチ回路15を介して一
致したバイナリデータを受け取る。バレルシフタ16の
シフト動作は、選択回路14からのシフト長に基づきク
ロック制御され、可変長コードの長さに応じてビットを
左側へシフトし、終結フラグが検知された時点で、デー
タはすべて左側の位置へシフトされるとともに、入力部
161から”0”が入力され、18ビットアドレスが完
成される。
のシフトレジスタであり、スイッチ回路15を介して一
致したバイナリデータを受け取る。バレルシフタ16の
シフト動作は、選択回路14からのシフト長に基づきク
ロック制御され、可変長コードの長さに応じてビットを
左側へシフトし、終結フラグが検知された時点で、デー
タはすべて左側の位置へシフトされるとともに、入力部
161から”0”が入力され、18ビットアドレスが完
成される。
【0035】次にデコード動作について説明する。入力
レジスタ11にバイナリデータ4ビットが読み取られ、
これらのコードは、一致回路14の各一致ユニット部1
31へ供給される。入力されたバイナリデータは、一致
回路13によって16候補のマッチングコードと比較さ
れ、いずれかのマッチングコードとヒットする。マッチ
ングにより、もし、デコーディングウインドゥ内にコー
ド境界が存在すれば、終結フラグがアクティブになり、
これが選択回路14により検知される。バイナリデー
タ、スイッチ回路15を介してシフト長により与えられ
たビット数だけ、デコーディングウインドゥからバレル
シフタ16内の右側の位置にシフトされた後、選択回路
14の制御により全部左側へシフトされる。そして、選
択回路14からのシフト長に基づくクロック制御信号に
より、入力レジスタ11の残りのバイナリデータが上位
へシフトされるとともに、コード境界位置に一致するよ
うに次のバイナリデータが入力レジスタ11に入力さ
れ、次の可変長コードのデコードが開始される。なお、
入力レジスタ11への次のバイナリデータの入力は、選
択回路14の制御により行っても良いし、あるいは、選
択回路からシフト長を他の制御部(図中省略)に供給
し、ここで行うようにしても良い。
レジスタ11にバイナリデータ4ビットが読み取られ、
これらのコードは、一致回路14の各一致ユニット部1
31へ供給される。入力されたバイナリデータは、一致
回路13によって16候補のマッチングコードと比較さ
れ、いずれかのマッチングコードとヒットする。マッチ
ングにより、もし、デコーディングウインドゥ内にコー
ド境界が存在すれば、終結フラグがアクティブになり、
これが選択回路14により検知される。バイナリデー
タ、スイッチ回路15を介してシフト長により与えられ
たビット数だけ、デコーディングウインドゥからバレル
シフタ16内の右側の位置にシフトされた後、選択回路
14の制御により全部左側へシフトされる。そして、選
択回路14からのシフト長に基づくクロック制御信号に
より、入力レジスタ11の残りのバイナリデータが上位
へシフトされるとともに、コード境界位置に一致するよ
うに次のバイナリデータが入力レジスタ11に入力さ
れ、次の可変長コードのデコードが開始される。なお、
入力レジスタ11への次のバイナリデータの入力は、選
択回路14の制御により行っても良いし、あるいは、選
択回路からシフト長を他の制御部(図中省略)に供給
し、ここで行うようにしても良い。
【0036】他方、もし、コード境界が存在しなけれ
ば、デコーディングウインドゥのすべての内容は、バレ
ルシフタ16内にシフトされ、入力レジスタ11に次の
4ビットのバイナリデータが入力される。同時に、選択
回路14から次アドレスがコードROM12へ出力さ
れ、次のデコードに使用されるペイジがアドレスされ
る。そして、コードROM12から次ペイジアドレスの
マッチングパターンが読みだされ、次のデコーディング
ウインドゥと比較される。終結フラグがアクティブにな
ると、上述したようにバレルシフタ16の内容は、ビッ
トシフト後に演算構造に従う有効な等長コードとなる。
バレルシフタ16からの等長コードは、図示しないコー
ドROMのアドレスとして供給され、ランレングス及び
係数を表すデータにデコードされる。
ば、デコーディングウインドゥのすべての内容は、バレ
ルシフタ16内にシフトされ、入力レジスタ11に次の
4ビットのバイナリデータが入力される。同時に、選択
回路14から次アドレスがコードROM12へ出力さ
れ、次のデコードに使用されるペイジがアドレスされ
る。そして、コードROM12から次ペイジアドレスの
マッチングパターンが読みだされ、次のデコーディング
ウインドゥと比較される。終結フラグがアクティブにな
ると、上述したようにバレルシフタ16の内容は、ビッ
トシフト後に演算構造に従う有効な等長コードとなる。
バレルシフタ16からの等長コードは、図示しないコー
ドROMのアドレスとして供給され、ランレングス及び
係数を表すデータにデコードされる。
【0037】例えば、10ビット長の可変長コードをデ
コードする場合には、デコーディングウインドゥが4ビ
ットであるから、3回のマッチングが行われる。つま
り、4ビットについて2回、残りの2ビットについて1
回である。まず、最初のマッチング終了後、デコーディ
ングウインドゥの4ビットコードは、選択回路14から
のシフト長に基づきスイッチ回路15を介してバレルシ
フタ16の右側の位置へすべてシフトされる。第2回目
のマッチング終了後、バレルシフタ16内のデータは、
選択回路14からのシフト長に基づき、4ビット左側へ
シフトされ、ついで、下位4ビットにはスイッチ回路1
5を介して4ビットコードが入力される。3回目のマッ
チングでは、デコーディングウインドゥの開始する2ビ
ットだけがテストされ、残りの2ビットは上述したよう
にマスクされる(図2)。このマッチングの結果によ
り、バレルシフタ16のデータは、2ビット左側へシフ
トされ、下位2ビットにはデコーディングウインドゥの
開始2ビットが入力され、入力161から”0”が押入
され、アドレスが完成される。こうして、可変長コード
の境界が識別されると、バレルシフタ16の内容がフラ
ッシュ(クリア)され、再び、次の可変長コードのデコ
ードが開始される。
コードする場合には、デコーディングウインドゥが4ビ
ットであるから、3回のマッチングが行われる。つま
り、4ビットについて2回、残りの2ビットについて1
回である。まず、最初のマッチング終了後、デコーディ
ングウインドゥの4ビットコードは、選択回路14から
のシフト長に基づきスイッチ回路15を介してバレルシ
フタ16の右側の位置へすべてシフトされる。第2回目
のマッチング終了後、バレルシフタ16内のデータは、
選択回路14からのシフト長に基づき、4ビット左側へ
シフトされ、ついで、下位4ビットにはスイッチ回路1
5を介して4ビットコードが入力される。3回目のマッ
チングでは、デコーディングウインドゥの開始する2ビ
ットだけがテストされ、残りの2ビットは上述したよう
にマスクされる(図2)。このマッチングの結果によ
り、バレルシフタ16のデータは、2ビット左側へシフ
トされ、下位2ビットにはデコーディングウインドゥの
開始2ビットが入力され、入力161から”0”が押入
され、アドレスが完成される。こうして、可変長コード
の境界が識別されると、バレルシフタ16の内容がフラ
ッシュ(クリア)され、再び、次の可変長コードのデコ
ードが開始される。
【0038】実際のデコーディング動作では、可変長デ
コーダは、いくつかの個々のグループの可変長コードを
デコードしなければならない(例えば、前述したエスケ
ープコードなど)。このため、図1に示されるテーブル
セレクト入力121は、コードROM12に上位アドレ
スを与え、使用される可変長コードのセットを選択す
る。このテーブルセレクト信号は、MPEGシンタック
スシーケンサ(図2にはない)によって供給される。そ
して、使用されるべき次の可変長コードセットを決定す
るために、デコード完了信号がシーケンサから供給され
る。
コーダは、いくつかの個々のグループの可変長コードを
デコードしなければならない(例えば、前述したエスケ
ープコードなど)。このため、図1に示されるテーブル
セレクト入力121は、コードROM12に上位アドレ
スを与え、使用される可変長コードのセットを選択す
る。このテーブルセレクト信号は、MPEGシンタック
スシーケンサ(図2にはない)によって供給される。そ
して、使用されるべき次の可変長コードセットを決定す
るために、デコード完了信号がシーケンサから供給され
る。
【0039】これらのコード表の最大長は、マッチング
するエレメントコードの総数(プライオリティEXO
R)によって決定され、MPEGにおける係数コード表
から図示した16ユニットが必要とされる。図3及び図
4に示すようなコード表は50程度あり、従って、コー
ドROMのサイズは、16*(4(コード)+1(終結
フラグ)+5(シフト長)+6(次のアドレス))*5
0=12.8Kbitsとなる。
するエレメントコードの総数(プライオリティEXO
R)によって決定され、MPEGにおける係数コード表
から図示した16ユニットが必要とされる。図3及び図
4に示すようなコード表は50程度あり、従って、コー
ドROMのサイズは、16*(4(コード)+1(終結
フラグ)+5(シフト長)+6(次のアドレス))*5
0=12.8Kbitsとなる。
【0040】次に、本発明の第2の実施例について説明
する。MPEGにおける画像信号の可変長コードは、特
有の演算構造を持つ。コードは、先頭”0”(または”
1”)の部分とそれに引き続くバイナリパターンを有
し、コードの長いものほど、先頭部分に多くの”0”を
含むという特徴がある。本実施例は、このような点に着
目してなされたものであり、デコーディングウインドゥ
による並列デコードを行う代わりに、先頭の”0”の数
をカウントすることによりシングルクロックデコードを
行うものである。
する。MPEGにおける画像信号の可変長コードは、特
有の演算構造を持つ。コードは、先頭”0”(または”
1”)の部分とそれに引き続くバイナリパターンを有
し、コードの長いものほど、先頭部分に多くの”0”を
含むという特徴がある。本実施例は、このような点に着
目してなされたものであり、デコーディングウインドゥ
による並列デコードを行う代わりに、先頭の”0”の数
をカウントすることによりシングルクロックデコードを
行うものである。
【0041】図5は、本実施例に係るシングルクロック
可変長デコーダの構成を示すブロック図である。本デコ
ーダは、1又は複数の可変長コードの1部または全部を
構成するバイナリデータを入力するバレルシフタ回路2
01と、可変長コードの先頭”0”をカウントし、カウ
ント結果を4ビットに符号して出力する12ビットプラ
イオリティエンコーダ202と、可変長コードの先頭”
0”のビット数に応じて複数のテーブルを有し、該テー
ブルにシフト長及びデコード値をストアしたコードRO
M203と、各部の制御を行うシーケンサ204とを有
する。
可変長デコーダの構成を示すブロック図である。本デコ
ーダは、1又は複数の可変長コードの1部または全部を
構成するバイナリデータを入力するバレルシフタ回路2
01と、可変長コードの先頭”0”をカウントし、カウ
ント結果を4ビットに符号して出力する12ビットプラ
イオリティエンコーダ202と、可変長コードの先頭”
0”のビット数に応じて複数のテーブルを有し、該テー
ブルにシフト長及びデコード値をストアしたコードRO
M203と、各部の制御を行うシーケンサ204とを有
する。
【0042】MPEGのデータ設計から、コードの先
頭”0”の最大数は11であり、残存するバイナリビッ
トの最大数は7である。但し、イントラDC係数では、
先頭デジットが”1”であるため、ビットは図に示すよ
うにインバータ205によって反転されなければならな
い。この切り替えは、シーケンサ204によって行われ
る。
頭”0”の最大数は11であり、残存するバイナリビッ
トの最大数は7である。但し、イントラDC係数では、
先頭デジットが”1”であるため、ビットは図に示すよ
うにインバータ205によって反転されなければならな
い。この切り替えは、シーケンサ204によって行われ
る。
【0043】このようなことから、バレルシフタ回路2
01は18ビット長のシフトレジスタを有し、可変長コ
ードのバイナリストリングをバレルシフタの左からシフ
ト入力する。入力されたバイナリデータは、バレルシフ
タ回路201から並列に変換して出力され、変換された
出力は、コードROM203のアドレスとして供給され
るとともに、先頭12ビットがプライオリティエンコー
ダ202に出力される。
01は18ビット長のシフトレジスタを有し、可変長コ
ードのバイナリストリングをバレルシフタの左からシフ
ト入力する。入力されたバイナリデータは、バレルシフ
タ回路201から並列に変換して出力され、変換された
出力は、コードROM203のアドレスとして供給され
るとともに、先頭12ビットがプライオリティエンコー
ダ202に出力される。
【0044】プライオリティエンコーダ202は、”
0”をカウントし、どこに”1”があるのかを識別す
る。その識別結果は符号化され、コードROM203の
上位4ビットアドレス、つまりペイジアドレスとして出
力され、これによって”1”に続くコードを解読するた
めのテーブルが選択される。
0”をカウントし、どこに”1”があるのかを識別す
る。その識別結果は符号化され、コードROM203の
上位4ビットアドレス、つまりペイジアドレスとして出
力され、これによって”1”に続くコードを解読するた
めのテーブルが選択される。
【0045】また、バレルシフタ回路201の”1”を
除く次の”XXXXXX”として表された残りのビット
が、そのままコードROM203の上位アドレスとして
使用される。
除く次の”XXXXXX”として表された残りのビット
が、そのままコードROM203の上位アドレスとして
使用される。
【0046】仮に可変長コードが8ビット(先頭”0”
が3ビット、次の”1”に続き4ビットの”XXX
X”)である場合、プライオリティエンコーダ202に
より先頭”0”がカウントされ、その結果、4ビットア
ドレスにより特定のテーブルが選択される。同時に、先
頭4ビット以降の4ビット(”XXXX”に相当する部
分)がデコードアドレスとして用いられ、選択されたテ
ーブルに基づきデコードされる。なお、バレルシフタ回
路201の18アドレスビットのうち該当する4ビット
(”XXXX”)の選択は、例えば、エンコーダ202
の出力に基づきアドレスを選択するスイッチ回路を設け
てもよい。
が3ビット、次の”1”に続き4ビットの”XXX
X”)である場合、プライオリティエンコーダ202に
より先頭”0”がカウントされ、その結果、4ビットア
ドレスにより特定のテーブルが選択される。同時に、先
頭4ビット以降の4ビット(”XXXX”に相当する部
分)がデコードアドレスとして用いられ、選択されたテ
ーブルに基づきデコードされる。なお、バレルシフタ回
路201の18アドレスビットのうち該当する4ビット
(”XXXX”)の選択は、例えば、エンコーダ202
の出力に基づきアドレスを選択するスイッチ回路を設け
てもよい。
【0047】また、MPEGのシンタックスは、18の
種々の可変長コード表を有するので、各表はデコードの
状態に従い適切に選択されなければならない。この情報
(EOBコードの発生、マクロブロックタイプなど)
は、シーケンサ204の制御信号206として入力さ
れ、シーケンサ204は、コードROM203からの状
態信号207に基づき、次のデコーダ動作(コードセッ
トの切り替え)を決定するため、コードROM203に
5ビットのアドレスを出力する。
種々の可変長コード表を有するので、各表はデコードの
状態に従い適切に選択されなければならない。この情報
(EOBコードの発生、マクロブロックタイプなど)
は、シーケンサ204の制御信号206として入力さ
れ、シーケンサ204は、コードROM203からの状
態信号207に基づき、次のデコーダ動作(コードセッ
トの切り替え)を決定するため、コードROM203に
5ビットのアドレスを出力する。
【0048】こうして、コードROM203は、15ビ
ットのアドレス入力を受け取り、これによって、該当す
るシフト長及びデコード値を出力する。バレルシフタ回
路201は、すべての先頭”0”(1)及び次の”1”
(0)を自動的にフラッシュするとともに、コードRO
M203からシフト長を受け取り、デコードされたビッ
トをフラッシュし、次のクロック動作により次の可変長
コードを入力し、デコードを開始する。バレルシフタ回
路201のデータは、コードROM203からのシフト
長により、先頭コード及びデコードされたビットを同時
にフラッシュしても良い。
ットのアドレス入力を受け取り、これによって、該当す
るシフト長及びデコード値を出力する。バレルシフタ回
路201は、すべての先頭”0”(1)及び次の”1”
(0)を自動的にフラッシュするとともに、コードRO
M203からシフト長を受け取り、デコードされたビッ
トをフラッシュし、次のクロック動作により次の可変長
コードを入力し、デコードを開始する。バレルシフタ回
路201のデータは、コードROM203からのシフト
長により、先頭コード及びデコードされたビットを同時
にフラッシュしても良い。
【0049】可変長デコーダのクリティカルなタイミン
グパスは、プライオリテイエンコーダ202とコードR
OM203を介したパスである。ROMのサイズは、1
28K(15bits)*11bits=1.4Mbi
tsであり、11ビットがランレングスと振幅のもっと
も長い情報である。ROMの内容の高いリダンダンシに
より、ROMの代わりに統合化されたゲートアレイロジ
ックを使用するのが好ましい。
グパスは、プライオリテイエンコーダ202とコードR
OM203を介したパスである。ROMのサイズは、1
28K(15bits)*11bits=1.4Mbi
tsであり、11ビットがランレングスと振幅のもっと
も長い情報である。ROMの内容の高いリダンダンシに
より、ROMの代わりに統合化されたゲートアレイロジ
ックを使用するのが好ましい。
【0050】以上のアプローチにより、本実施例では2
0nsec/コードを達成する可変長(VLC)デコー
ダを構成することができる。平均的なコード長は4ビッ
ト以上であると思われるので、デコード能力は200M
ビット/sとなる。
0nsec/コードを達成する可変長(VLC)デコー
ダを構成することができる。平均的なコード長は4ビッ
ト以上であると思われるので、デコード能力は200M
ビット/sとなる。
【0051】並列可変長デコーダの構成及び動作は説明
した通りである。MPEG画像の符号化に用いられる大
部分の可変長コードは、4ビット以上であり、しかも、
並列可変長デコーダを使用することにより、デコード速
度を非常に高速にすることができる。一般に、可変長コ
ードのデコード、ビデオデコーダの速度のクリティカル
な要素の1つとみなされてきたが、本実施例により、高
速デコーダを容易に実施することが可能となった。な
お、本実施例では、デコーディングウインドゥの長さを
4ビットとしたが、この値は統計的なシミュレーション
により望ましい値に決定されなければならない。
した通りである。MPEG画像の符号化に用いられる大
部分の可変長コードは、4ビット以上であり、しかも、
並列可変長デコーダを使用することにより、デコード速
度を非常に高速にすることができる。一般に、可変長コ
ードのデコード、ビデオデコーダの速度のクリティカル
な要素の1つとみなされてきたが、本実施例により、高
速デコーダを容易に実施することが可能となった。な
お、本実施例では、デコーディングウインドゥの長さを
4ビットとしたが、この値は統計的なシミュレーション
により望ましい値に決定されなければならない。
【0052】
【発明の効果】以上詳細に説明したように本発明によれ
ば、可変長コードを構成するバイナリデータを並列に読
み取り、これによって可変長コードの境界を識別し、デ
コードすることが可能となったので、ビット毎に解読を
行うデコーダと比較して非常に高速なデコード動作が可
能となる。例えば、高速で転送された画像データをリア
ルタイムで解読することが必要なMPEGに適用するこ
とができる。
ば、可変長コードを構成するバイナリデータを並列に読
み取り、これによって可変長コードの境界を識別し、デ
コードすることが可能となったので、ビット毎に解読を
行うデコーダと比較して非常に高速なデコード動作が可
能となる。例えば、高速で転送された画像データをリア
ルタイムで解読することが必要なMPEGに適用するこ
とができる。
【図1】本発明の第1の実施例に係る可変長デコーダの
構成を示すブロック図。
構成を示すブロック図。
【図2】図1の一致ユニット部の詳細を示す図。
【図3】コードROMの内容を示す図。
【図4】コードROMの内容を示す図。
【図5】本発明の第2の実施例に係る可変長デコーダの
構成を示すブロック図。
構成を示すブロック図。
【図6】従来の符号化回路の一構成例を示す図。
【図7】従来の符号化回路の一構成例を示す図。
【図8】DCT係数符号化のための可変長コードを示す
図。
図。
【図9】従来のDCT係数の可変長コードのデコード例
を示す図。
を示す図。
【図10】従来のDCT係数コードの可変長デコードの
ための状態遷移を示す図。
ための状態遷移を示す図。
【図11】デコーディングウインドゥの境界とコード境
界の関係を示す図。
界の関係を示す図。
11 入力レジスタ 12 コードROM 13 一致回路 14 選択回路 15 スイッ チ回路 16 バルシフタ 131 一致ユニット部 201 バレルシフタ回路 202 プライオリテイエンコーダ 203 コードROM 204 シーケンサ
Claims (7)
- 【請求項1】 可変長コードをデコードするための可変
長デコーダであって、(a)1又は2以上の可変長コー
ドの1部又は全部のバイナリデータを保持し、該データ
を並列に出力可能なデータ保持手段と、(b)各可変長
コードの1部又は全部を構成するコードからなるコード
パターンと各コードの状態を識別するための状態遷移情
報が記憶された記憶手段と、(c)前記データ保持手段
及び記憶手段に接続され、前記データ保持手段からのバ
イナリデータと前記複数のコードパターンとを比較し、
一致するコードを検知する検知手段と、(d)前記検知
手段に接続され、一致されたコードに対応する状態遷移
情報に基づき前記データ保持手段に保持されたバイナリ
データを選択する選択手段とを有する前記可変長デコー
ダ。 - 【請求項2】 請求項第1項において、前記記憶手段
は、複数のペイジを有し、各ペイジは、各可変長コード
を階層的に分割したコードパターンと状態遷移情報を記
憶し、前記コードパターンは、前記データ保持手段に保
持されたバイナリデータのビット数に対応したビット数
のコード列を複数含み、前記状態遷移情報は、各コード
列に対応して可変長コード長に関する情報及びペイジア
ドレスを含み、前記選択手段は、一致したコード列に対
応するペイジアドレスを前記記憶手段に供給することを
特徴とする可変長デコーダ。 - 【請求項3】 請求項第2項において、前記選択手段
は、シフトレジスタを有し、一致したコード列に対応す
る状態遷移情報により、前記データ保持手段に保持され
たバイナリデータが可変長コードの1部であるときに
は、該バイナリデータをすべて前記シフトレジスタへシ
フトさせることを特徴とする可変長デコーダ。 - 【請求項4】 請求項第3項において、前記データ保持
手段は、バイナリデータが可変長コードの1部であると
検知された場合、該可変長コードの残りを構成するバイ
ナリデータを入力することを特徴とする可変長デコー
ダ。 - 【請求項5】 請求項第3項において、前記選択手段
は、一致したコード列に対応する状態遷移情報により、
前記データ保持手段に保持されたバイナリデータに可変
長コードの境界が含まれるときには、先行する可変長コ
ードに対応する部分のバイナリデータを前記シフトレジ
スタへシフトさせ、前記データ保持手段に次の可変長コ
ードのバイナリデータを入力させることを特徴とする可
変長デコーダ。 - 【請求項6】 可変長コードをデコードするための可変
長デコーダであって、(a)1又は2以上の可変長コー
ドの1部又は全部のバイナリデータを保持し、該データ
を並列に出力可能なデータ保持手段と、(b)前記デー
タ保持手段に接続され、データ保持手段からのバイナリ
データの先頭から連続する論理”0”または”1”のビ
ット数をカウントし、カウント結果を符号化して出力す
る符号化手段と、(c)可変長コードの先頭からの論
理”0”または”1”のビット数に応じて複数のテーブ
ルを有し、該テーブルには各可変長コードのデコード値
及び状態遷移情報がそれぞれ記憶され、前記符号化手段
の出力及び前記データ保持手段のバイナリデータをアド
レスとして入力することにより、前記デコード値を出力
する記憶手段とを有することを特徴とする前記可変長デ
コーダ。 - 【請求項7】 請求項第6項において、前記データ保持
手段は、前記記憶手段から前記状態遷移情報を受取り、
前記状態遷移情報に基づきデコードされたバイナリデー
タをクリアし、次のバイナリデータを入力することを特
徴とする可変長デコーダ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33228793A JPH07212244A (ja) | 1993-12-27 | 1993-12-27 | 可変長デコーダ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33228793A JPH07212244A (ja) | 1993-12-27 | 1993-12-27 | 可変長デコーダ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07212244A true JPH07212244A (ja) | 1995-08-11 |
Family
ID=18253270
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33228793A Pending JPH07212244A (ja) | 1993-12-27 | 1993-12-27 | 可変長デコーダ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07212244A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007158698A (ja) * | 2005-12-05 | 2007-06-21 | Matsushita Electric Ind Co Ltd | 画像復号装置及び画像復号方法 |
| CN104283567A (zh) * | 2013-07-02 | 2015-01-14 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
-
1993
- 1993-12-27 JP JP33228793A patent/JPH07212244A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007158698A (ja) * | 2005-12-05 | 2007-06-21 | Matsushita Electric Ind Co Ltd | 画像復号装置及び画像復号方法 |
| CN104283567A (zh) * | 2013-07-02 | 2015-01-14 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
| CN104283567B (zh) * | 2013-07-02 | 2018-07-03 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7079057B2 (en) | Context-based adaptive binary arithmetic coding method and apparatus | |
| US5045852A (en) | Dynamic model selection during data compression | |
| KR100729270B1 (ko) | 이미지 및/또는 비디오 인코더 및 디코더에서의변환계수를 인코딩하는 방법 및 장치, 및 이에 대응하는컴퓨터 프로그램 및 컴퓨터로 읽을 수 있는 저장매체 | |
| US5208593A (en) | Method and structure for decoding Huffman codes using leading ones detection | |
| JP4886755B2 (ja) | コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法 | |
| KR100648258B1 (ko) | 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더 | |
| US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
| US6014095A (en) | Variable length encoding system | |
| US5436626A (en) | Variable-length codeword encoder | |
| JPH06252775A (ja) | 復号化装置 | |
| KR20030096443A (ko) | 부호화 방법 및 장치와 복호화 방법 및 장치 | |
| US7365660B2 (en) | Method and device for decoding syntax element in CABAC decoder | |
| US6185339B1 (en) | Bit stream analyzing method and apparatus | |
| WO1996031008A1 (en) | Syntax based arithmetic coding circuit | |
| US20030053700A1 (en) | System and method for decoding signal and method of generating lookup table for using in signal decoding | |
| KR100717055B1 (ko) | Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치 | |
| US6130631A (en) | Method and apparatus utilizing a simplified content-addressable memory for JPEG decoding | |
| KR100466455B1 (ko) | 부호변환기와가변길이부호복호장치및복호방법 | |
| US5754128A (en) | Variable-length code encoding and segmenting apparatus having a byte alignment unit | |
| JPH10271016A (ja) | 符号/復号化器 | |
| JPH07212244A (ja) | 可変長デコーダ | |
| JP4537089B2 (ja) | 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
| KR0152035B1 (ko) | 가변장복호화방법 및 그 장치 | |
| KR100207428B1 (ko) | 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법 | |
| JP2003174365A (ja) | 復号化装置及びその方法 |