(57)【要約】【課題】　速いデコーディングができ、かつデコーディングする対象テーブルのサイズを減らして全体的な電力消耗を減らせる可変長コード復号化装置及び方法を提供する。【解決手段】　入力されるデータビットストリームを３ビットずつ分離してデコーディングし、かつ入力されるデータビットストリームのコード値の特性によって２つのプレデコーディング方法の何れかを選択する。【選択図】　　図１
2004096735.tif 000002
【特許請求の範囲】
【請求項１】
　データビットストリームを受信し、そのデータビットストリームのコード値によって所定の第１ないし第Ｍルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１または第２選択信号を発生させるプレデコーディング部と、
　前記第１選択信号または前記第２選択信号のうち一つ及び所定の連続ノード信号に応答して前記データビットストリームを一定ビットだけ移動させるシフト部と、
　所定のメモリに保存されたＫ（Ｋは自然数）ビットのＬＯＣ(LOcal Code)テーブル値を指定するＬＯＣアドレスを各々備える第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタと、
　前記第１選択信号または前記第２選択信号に応答して前記第１ないし第Ｍルックアップテーブルアドレスレジスタの出力のうち何れか一つを選択して出力する選択部と、
　前記選択部の出力を受信し、所定の連続ノード信号に応答して前記メモリに保存されたＬＯＣテーブル値及び前記ＬＯＣテーブル値に対応して所定のシンボルアドレスを求めるためのターミナル値を選択する第３選択信号を発生させたり、所定のシンボルアドレス信号に応答して前記メモリに保存された所定の固定長コードを選択する第４選択信号を発生させるメモリ制御部と、
　前記ＬＯＣテーブル値、前記ターミナル値及び前記固定長コードを保存し、前記第３選択信号に応答して選択された前記ＬＯＣテーブル値及び前記ターミナル値を出力したり、前記第４選択信号に応答して前記固定長コードを出力する前記メモリと、
　前記メモリから出力される前記選択されたＬＯＣテーブル値、前記ターミナル値及び前記データビットストリームのＬ（Ｌは自然数）ビットを受信し、内部に保存されているＬＯＣ情報テーブルを利用して前記データビットストリームのＬビットがターミナルノードであるか、連続ノードであるかを判断して連続ノード信号またはシンボルアドレス信号を発生させたり、前記メモリから出力される前記固定長コードを受信して出力するメモリ検索部と、を備えることを特徴とする可変長コード復号化装置。
【請求項２】
　前記プレデコーディング部は、
　前記データビットストリームを受信し、そのデータビットストリームの最上位ビット側に０または１が連続する場合、０や１の数によって前記第１ないし第Ｍルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１選択信号を発生させる第１プレデコーディング部と、
　前記データビットストリームを受信し、そのデータビットストリームの最上位ビット側のＮ（Ｎは自然数）ビットを利用して前記第１ないし第Ｍルックアップテーブルアドレスレジスタのうち何れか一つを選択する第２選択信号を発生させる第２プレデコーディング部と、を備えることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項３】
　前記シフト部は、
　前記連続ノード信号に応答して前記データビットストリームを３ビットずつ移動させることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項４】
　前記メモリ制御部は、
　前記選択部の出力を受信し、前記選択部の新しい出力が受信されるまで前記選択部の出力を保存するオフセットレジスタと、
　前記オフセットレジスタの出力及び所定の次のＬＯＣアドレスを加えて前記メモリに保存されたＬＯＣテーブル値を選択する第３選択信号を発生させる合算部と、
　前記連続ノード信号に応答してＬＯＣテーブル値を選択するための前記次のＬＯＣアドレスを発生させるＬＯＣアドレスレジスタと、
　前記シンボルアドレス信号に応答して前記固定長コードを求めるための前記第４選択信号を発生させるシンボルアドレスレジスタと、を備えることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項５】
　前記次のＬＯＣアドレスは、
　現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値であることを特徴とする請求項４に記載の可変長コード復号化装置。
【請求項６】
　前記シンボルアドレスは、
　現在のＬＯＣテーブル値に対応するターミナル値及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値であることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項７】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、
　可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプを備え、
　その各々のノードタイプはＮ＊２ＬビットのＬＯＣ情報ビットを備え、
　そのＬＯＣ情報ビットは各々Ｎビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種の形態で表現されることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項８】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、
　可変長コードが０，１，００，０１，１０，１１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが０００から１１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つであり、
　前記Ｎが２ビットであり、前記Ｌが３ビットであれば、
　可変長コードが０である場合はＬＯＣ情報ビットの上位８ビットがＡＢＢＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位８ビットがＡＢＢＢで表現され、可変長コードが００である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが０１である場合はＬＯＣ情報ビットの上位５ビットから８ビット間がＡＢで表現され、可変長コードが１０である場合はＬＯＣ情報ビットの上位９ビットから１２ビット間がＡＢで表現され、可変長コードが１１である場合はＬＯＣ情報ビットの上位１３ビットから１６ビット間がＡＢで表現され、
　可変長コードが０００から１１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現されることを特徴とする請求項７に記載の可変長コード復号化装置。
【請求項９】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、
　可変長コードが０，１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが００から１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つであり、
　前記Ｎが２ビットであり、前記Ｌが２ビットであれば、
　可変長コードが０である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位４ビットがＡＢで表現され、
　可変長コードが００から１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現されることを特徴とする請求項７に記載の可変長コード復号化装置。
【請求項１０】
　前記メモリに保存されるＬＯＣテーブル値は、
　可変長コードが指示する前記ＬＯＣ情報テーブルのノードタイプに対応するＬＯＣ情報ビットよりなることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項１１】
　前記選択部は、
　マルチプレクサであることを特徴とする請求項１に記載の可変長コード復号化装置。
【請求項１２】
　所定のＬＯＣアドレスを各々備える第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタ、前記ＬＯＣアドレスに対応するＫ（Ｋは自然数）ビットのＬＯＣテーブル値、所定のターミナル値及び固定長コードを保存するメモリ及び可変長コードを復号化する基準となる情報を有するＬＯＣ情報テーブルを備えるメモリ検索部を備える可変長コード復号化装置の可変長コード復号化方法において、
　（ａ）データビットストリームを受信し、そのデータビットストリームのコード値によって前記ルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１または第２選択信号を発生させる段階と、
　（ｂ）前記第１選択信号または前記第２選択信号に応答して前記第１ないし第Ｍルックアップテーブルアドレスレジスタの出力のうち何れか一つを選択して出力する段階と、
　（ｃ）前記（ｂ）段階の出力及び所定の次のＬＯＣアドレスを加えて前記メモリに保存されたＬＯＣテーブル値及び前記ＬＯＣテーブル値に対応し、所定のシンボルアドレスを求めるためのターミナル値を選択する第３選択信号を発生させる段階と、
　（ｄ）前記第３選択信号に応答して選択されたＬＯＣテーブル値及びターミナル値を出力する段階と、
　（ｅ）前記メモリから出力される前記選択されたＬＯＣテーブル値、前記ターミナル値及び前記データビットストリームのＬビットを受信し、前記ＬＯＣ情報テーブルを利用して前記データビットストリームのＬビットがターミナルノードであるか、連続ノードであるかを判断して連続ノード信号またはシンボルアドレス信号を発生させる段階と、
　（ｆ）前記連続ノード信号に応答して前記ＬＯＣテーブル値を選択するための前記次のＬＯＣアドレスを発生させる段階と、
　（ｇ）前記シンボルアドレス信号に応答して前記固定長コードを求めるための第４選択信号を発生させる段階と、
　（ｈ）前記第４選択信号に応答して前記メモリから前記固定長コードを出力する段階と、を備えることを特徴とする可変長コード復号化装置の可変長コード復号化方法。
【請求項１３】
　前記（ａ）段階は、
　（ａ１）前記データビットストリームの最上位ビット（ＭＳＢ）側に０または１が連続する場合、０や１の数によって前記複数のルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１選択信号を発生させる段階と、
　（ａ２）前記データビットストリームの最上位ビット側のＮ（Ｎは自然数）ビットを利用して前記複数のルックアップテーブルアドレスレジスタのうち何れか一つを選択する第２選択信号を発生させる段階と、
　（ａ３）前記第１選択信号または前記第２選択信号のうち一つ及び前記連続ノード信号に応答して前記データビットストリームを一定のビットぐらい移動させる段階と、を備えることを特徴とする請求項１２に記載の可変長コード復号化装置の可変長コード復号化方法。
【請求項１４】
　前記次のＬＯＣアドレスは、
　現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値であることを特徴とする請求項１２に記載の可変長コード復号化装置の可変長コード復号化方法。
【請求項１５】
　前記シンボルアドレスは、
　現在のＬＯＣテーブル値に対応するターミナル値及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値であることを特徴とする請求項１２に記載の可変長コード復号化装置の可変長コード復号化方法。
【請求項１６】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、
　可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプを備え、
　その各々のノードタイプはＮ＊２ＬビットのＬＯＣ情報ビットを備え、
　そのＬＯＣ情報ビットは各々Ｎビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種の形態で表現されることを特徴とする請求項１２に記載の可変長コード復号化装置。
【請求項１７】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、
　可変長コードが０，１，００，０１，１０，１１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが０００から１１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つであり、
　前記Ｎが２ビットであり、前記Ｌが３ビットであれば、
　可変長コードが０である場合はＬＯＣ情報ビットの上位８ビットがＡＢＢＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位８ビットがＡＢＢＢで表現され、可変長コードが００である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが０１である場合はＬＯＣ情報ビットの上位５ビットから８ビット間がＡＢで表現され、可変長コードが１０である場合はＬＯＣ情報ビットの上位９ビットから１２ビット間がＡＢで表現され、可変長コードが１１である場合はＬＯＣ情報ビットの上位１３ビットから１６ビット間がＡＢで表現され、
　可変長コードが０００から１１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現されることを特徴とする請求項１６に記載の可変長コード復号化装置。
【請求項１８】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、
　可変長コードが０，１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが００から１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つであり、
　前記Ｎが２ビットであり、前記Ｌが２ビットなら、
　可変長コードが０である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位４ビットがＡＢで表現され、
　可変長コードが００から１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現されることを特徴とする請求項１６に記載の可変長コード復号化装置。
【請求項１９】
　前記メモリに保存されるＬＯＣテーブル値は、
　可変長コードが指示する前記ＬＯＣ情報テーブルのノードタイプに対応するＬＯＣ情報ビットよりなることを特徴とする請求項１２に記載の可変長コード復号化装置の可変長コード復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は復号化装置に係り、特に可変長符号化されたデータを復号化する可変長コード復号化装置に関する。
【背景技術】
【０００２】
　動画像専門家グループ（ＭＰＥＧ：Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔ　Ｇｒｏｕｐ、以下ＭＰＥＧと記す）２のビデオ規格の国際標準案は１９９４年４月に発表された動画像圧縮及び復元に関する規格であって、いろいろな関係者が規格の実際的具現のために努力している。
【０００３】
　デジタル映像信号の圧縮はデジタル映像データの伝送及びデジタル記憶装置のいろいろな応用分野でその需要が増加しつつある。
【０００４】
　映像圧縮アルゴリズムは一般的に最後に可変長符号化装置を使用して映像データの非損失圧縮を実施する。
【０００５】
　可変長符号化装置は、多く使われるデータのシンボルについてはそのシンボルを表現するために短いビットを割当て、相対的に少なく使われるデータのシンボルについては長いビットを割当てる。したがって、可変長符号化装置は同長のデータビットストリームを符号化する場合、固定長符号化装置よりデータビットストリームの長さが短くなる。
【０００６】
　可変長復号化装置は、入力される可変長符号化されたデータビットストリームから一つのシンボルに対応する可変長コードを分離する。分離された可変長コードからシンボルテーブルを利用して固定長コードが得られる。
【０００７】
　この場合、もし可変長符号化装置で使用する可変長符号化テーブルを使用者が設定できるべきであれば、可変長復号化装置は符号化装置で使われたテーブルに基づいて、入力されるデータビットストリームで固定長のビットを読みつつ可変長コードを分離する。
【０００８】
　最も基本的な方法は、入力されるデータビットストリームを１ビットずつ分離しつつツリーサーチアルゴリズムを利用することである。ＭＰＥＧの場合、コードの最大長が１６ビットであるので、最大１６回のツリーサーチが行われるとコード値が得られる。また、他の方法はデータビットストリームを２ビットずつ分離しつつツリーサーチアルゴリズムを利用することである。この場合、最大８回のツリーサーチが行われるとコード値が得られる。
【０００９】
　一回で分離されるデータビットストリームのビット数が多いほど復号化速度が速くなる。しかし、分離されるデータビットストリームのビット数が多いほど復号化装置の構造が複雑になるので、復号化速度及び復号化装置の面積間の適切なトレードオフが必要である。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
　本発明が解決しようとする技術的課題は、入力されるデータビットストリームをＬビットずつ分離してデコーディングし、入力されるデータビットストリームのコード値の特性によってプレデコーディング方法を選択しうる可変長コード復号化装置を提供することにある。
【００１１】
　本発明が解決しようとする他の技術的課題は、入力されるデータビットストリームをＬビットずつ分離してデコーディングし、入力されるデータビットストリームのコード値の特性によってプレデコーディング方法を選択しうる可変長コード復号化方法を提供することにある。
【００１２】
　さらに、本発明は入力されるデータビットストリームを３ビットずつ分離する復号化装置及び方法を提案する。また、入力されるデータビットストリームのコード値の特性によって２つのプレデコーディング方法の何れかを選択しうる復号化装置及び方法を提案する。
【課題を解決するための手段】
【００１３】
　前記課題を達成するための本発明の復号化装置は、プレデコーディング部、シフト部、第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタ、選択部、メモリ制御部、メモリ及びメモリ検索部を備えることを特徴とする。
　プレデコーディング部は、データビットストリームを受信し、そのデータビットストリームのコード値によって所定の第１ないし第Ｍルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１または第２選択信号を発生させる。
　シフト部は、前記第１選択信号または前記第２選択信号のうち一つ及び前記連続ノード信号に応答して前記データビットストリームを一定ビットだけ移動させる。
　第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタは、所定のメモリに保存されたＫ（Ｋは自然数）ビットのＬＯＣ（LOcal Code）テーブル値を指定するＬＯＣアドレスを各々備える。
　選択部は、前記第１選択信号または前記第２選択信号に応答して前記第１ないし第Ｍルックアップテーブルアドレスレジスタの出力のうち何れか一つを選択して出力する。
　メモリ制御部は、前記選択部の出力を受信し、所定の連続ノード信号に応答して前記メモリに保存されたＬＯＣテーブル値及び前記ＬＯＣテーブル値に対応して所定のシンボルアドレスを求めるためのターミナル値を選択する第３選択信号を発生させたり、所定のシンボルアドレス信号に応答して前記メモリに保存された所定の固定長コードを選択する第４選択信号を発生させる。
　メモリは、前記ＬＯＣテーブル値、前記ターミナル値及び前記固定長コードを保存し、前記第３選択信号に応答して選択された前記ＬＯＣテーブル値及び前記ターミナル値を出力したり、前記第４選択信号に応答して前記固定長コードを出力する。
　メモリ検索部は、前記メモリから出力される前記選択されたＬＯＣテーブル値、前記ターミナル値及び前記データビットストリームのＬ（Ｌは自然数）ビットを受信し、内部に保存されているＬＯＣ情報テーブルを利用して前記データビットストリームのＬビットがターミナルノードであるか、連続ノードであるかを判断して連続ノード信号またはシンボルアドレス信号を発生させたり、前記メモリから出力される前記固定長コードを受信して出力する。
【００１４】
　前記プレデコーディング部は、第１プレデコーディング部及び第２プレデコーディング部を備えることを特徴とする。
　第１プレデコーディング部は、前記データビットストリームを受信し、そのデータビットストリームの最上位ビット（Ｍｏｓｔ　Ｓｉｇｎｉｆｉｃａｎｔ　Ｂｉｔｓ：ＭＳＢ）側に０または１が連続する場合、０や１の数によって前記第１ないし第Ｍルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１選択信号を発生させる。
　第２プレデコーディング部は、前記データビットストリームを受信し、そのデータビットストリームのＭＳＢ側のＮ（Ｎは自然数）ビットを利用して前記第１ないし第Ｍルックアップテーブルアドレスレジスタのうち何れか一つを選択する第２選択信号を発生させる。
【００１５】
　前記シフト部は、前記連続ノード信号に応答して前記データビットストリームを３ビットずつ移動させることを特徴とする。
【００１６】
　前記メモリ制御部は、オフセットレジスタ、合算部、ＬＯＣアドレスレジスタ及びシンボルアドレスレジスタを備えることを特徴とする。
　オフセットレジスタは、前記選択部の出力を受信し、前記選択部の新しい出力が受信されるまで前記選択部の出力を保存する。
　合算部は、前記オフセットレジスタの出力及び所定の次のＬＯＣアドレスを加えて前記メモリに保存されたＬＯＣテーブル値を選択する第３選択信号を発生させる。
　ＬＯＣアドレスレジスタは、前記連続ノード信号に応答してＬＯＣテーブル値を選択するための前記次のＬＯＣアドレスを発生させる。
　シンボルアドレスレジスタは、前記シンボルアドレス信号に応答して前記固定長コードを求めるための前記第４選択信号を発生させる。
　前記次のＬＯＣアドレスは、現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値であることを特徴とする。
　前記シンボルアドレスは、現在のＬＯＣテーブル値に対応するターミナル値及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値であることを特徴とする。
【００１７】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプを備え、その各々のノードタイプはＮ＊２ＬビットのＬＯＣ情報ビットを備え、そのＬＯＣ情報ビットは各々Ｎビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種の形態で表現されることを特徴とする。
【００１８】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、可変長コードが０，１，００，０１，１０，１１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが０００から１１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つであり、前記Ｎが２ビットであり、前記Ｌが３ビットなら、可変長コードが０である場合はＬＯＣ情報ビットの上位８ビットがＡＢＢＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位８ビットがＡＢＢＢで表現され、可変長コードが００である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが０１である場合はＬＯＣ情報ビットの上位５ビットから８ビット間がＡＢで表現され、可変長コードが１０である場合はＬＯＣ情報ビットの上位９ビットから１２ビット間がＡＢで表現され、可変長コードが１１である場合はＬＯＣ情報ビットの上位１３ビットから１６ビット間がＡＢで表現され、可変長コードが０００から１１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現されることを特徴とする。
【００１９】
　また前記メモリ検索部に保存されるＬＯＣ情報テーブルは、可変長コードが０，１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが００から１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つであり、前記Ｎが２ビットであり、前記Ｌが２ビットなら、可変長コードが０である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位４ビットがＡＢで表現され、可変長コードが００から１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現されることを特徴とする。
【００２０】
　前記メモリに保存されるＬＯＣテーブル値は、可変長コードが指示する前記ＬＯＣ情報テーブルのノードタイプに対応するＬＯＣ情報ビットよりなることを特徴とする。
【００２１】
　前記他の技術的課題を達成するための本発明の可変長コード復号化方法は、所定のＬＯＣアドレスを各々備える第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタ、前記ＬＯＣアドレスに対応するＫ（Ｋは自然数）ビットのＬＯＣテーブル値、所定のターミナル値及び固定長コードを保存するメモリ及び可変長コードを復号化する基準となる情報を有するＬＯＣ情報テーブルを備えるメモリ検索部を備える可変長コード復号化装置の可変長コード復号化方法において、（ａ）データビットストリームを受信し、そのデータビットストリームのコード値によって前記ルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１または第２選択信号を発生させる段階、（ｂ）前記第１選択信号または前記第２選択信号に応答して前記第１ないし第Ｍルックアップテーブルアドレスレジスタの出力のうち何れか一つを選択して出力する段階、（ｃ）前記（ｂ）段階の出力及び所定の次のＬＯＣアドレスを加えて前記メモリに保存されたＬＯＣテーブルの値及び前記ＬＯＣテーブル値に対応して所定のシンボルアドレスを求めるためのターミナル値を選択する第３選択信号を発生させる段階、（ｄ）前記第３選択信号に応答して選択されたＬＯＣテーブル値及びターミナル値を出力する段階、（ｅ）前記メモリから出力される前記選択されたＬＯＣテーブル値、ターミナル値及び前記データビットストリームのＬビットを受信し、前記ＬＯＣ情報テーブルを利用して前記データビットストリームのＬビットがターミナルノードであるか、連続ノードであるかを判断して連続ノード信号またはシンボルアドレス信号を発生させる段階、（ｆ）前記連続ノード信号に応答して前記ＬＯＣテーブル値を選択するための前記次のＬＯＣアドレスを発生して前記（ｃ）段階に印加する段階、（ｇ）前記シンボルアドレス信号に応答して前記固定長コードを求めるための第４選択信号を発生させる段階、（ｈ）前記第４選択信号に応答して前記メモリからターミナル値を出力し、出力されたターミナル値に応答してシンボルアドレスを選択し、選択されたシンボルアドレスに対応する固定長コードを出力する段階を備えることを特徴とする。
【００２２】
　前記（ａ）段階は（ａ１）前記データビットストリームのＭＳＢ側に０または１が連続する場合、０や１の数によって前記複数のルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１選択信号を発生させる段階、（ａ２）前記データビットストリームのＭＳＢ側のＮ（Ｎは自然数）ビットを利用して前記複数のルックアップテーブルアドレスレジスタのうち何れか一つを選択する第２選択信号を発生させる段階、（ａ３）前記第１選択信号または前記第２選択信号のうち一つ及び前記連続ノード信号に応答して前記データビットストリームを一定ビットだけ移動させる段階を備える。
【００２３】
　前記次のＬＯＣアドレスは、現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値であることを特徴とする。
　前記シンボルアドレスは、現在のＬＯＣテーブル値に対応するターミナル値及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値であることを特徴とする。
【００２４】
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプを備え、その各々のノードタイプはＮ＊２ＬビットのＬＯＣ情報ビットを備え、そのＬＯＣ情報ビットは、各々Ｎビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種の形態で表現されることを特徴とする。
【００２５】
　前記メモリに保存されるＬＯＣテーブル値は、可変長コードが指示する前記ＬＯＣ情報テーブルのノードタイプに対応するＬＯＣ情報ビットよりなることを特徴とする。
【発明の効果】
【００２６】
　本発明による可変長コード復号化装置及び方法は、入力されるデータビットストリームを３ビットずつ分離してデコーディングするので速いデコーディングができ、かつ入力されるデータビットストリームのコード値の特性によってプレデコーディングすることによってデコーディングする対象テーブルのサイズを減らして全体的な電力消耗を減らせる。
【発明を実施するための最良の形態】
【００２７】
　以下、添付した図面を参照して本発明の望ましい実施形態を説明する。各図面に示された同じ参照符号は同じ部材を表す。
　図１は、本発明の実施形態による可変長コード復号化装置を示すブロック図である。
　図１を参照すれば、本発明の第１実施形態による可変長コード復号化装置１００はプレデコーディング部１０７、シフト部１３０、第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタ１４０、選択部１５０、メモリ制御部１５３、メモリ１６５及びメモリ検索部１７０を備える。
【００２８】
　プレデコーディング部１０７は、データビットストリームＤＳＴＲＥＡＭを受信し、そのデータビットストリームＤＳＴＲＥＡＭのコード値によって所定の第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する第１または第２選択信号ＳＥＬ１，ＳＥＬ２を発生させる。
【００２９】
　プレデコーディング部１０７は、第１プレデコーディング部１１０及び第２プレデコーディング部１２０を備える。
　第１プレデコーディング部１１０は、データビットストリームＤＳＴＲＥＡＭを受信し、そのデータビットストリームＤＳＴＲＥＡＭのＭＳＢ側に０または１が連続する場合、０や１の数によって第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する第１選択信号ＳＥＬ１を発生させる。
　第２プレデコーディング部１２０は、データビットストリームＤＳＴＲＥＡＭを受信し、そのデータビットストリームＤＳＴＲＥＡＭのＭＳＢ側のＮ（Ｎは自然数）ビットを利用して第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する第２選択信号ＳＥＬ２を発生させる。
【００３０】
　シフト部１３０は、第１選択信号ＳＥＬ１または第２選択信号ＳＥＬ２のうち一つ及び連続ノード信号ＮＣＯＮＳに応答してデータビットストリームＤＳＴＲＥＡＭを一定ビットだけ移動させる。さらに説明すれば、シフト部１３０は連続ノード信号ＮＣＯＮＳに応答してデータビットストリームＤＳＴＲＥＡＭをＬビットずつ移動させる。ここでＬは３である。
【００３１】
　第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタ１４０は、所定のメモリ１６５に保存されたＫ（Ｋは自然数）ビットのＬＯＣテーブル値ＬＯＣＴＶを指定するＬＯＣアドレスを各々備える。
【００３２】
　選択部１５０は、第１選択信号ＳＥＬ１または第２選択信号ＳＥＬ２に応答して第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０の出力のうち何れか一つを選択して出力する。選択部１５０はマルチプレクサである。
【００３３】
　メモリ制御部１５３は、選択部１５０の出力を受信し、所定の連続ノード信号ＮＣＯＮＳに応答してメモリ１６５に保存されたＬＯＣテーブル値ＬＯＣＴＶ及びターミナル値ＴＥＲＭＶを選択する第３選択信号ＳＥＬ３を発生させたり、所定のシンボルアドレス信号ＳＹＭＡＤＤＳに応答して前記メモリ１６５に保存された所定の固定長コードＳＦＬＣを選択する第４選択信号ＳＥＬ４を発生させる。
【００３４】
　さらに説明すれば、メモリ制御部１５３はオフセットレジスタ１５５、合算部１６０、ＬＯＣアドレスレジスタ１７５及びシンボルアドレスレジスタ１８０を備える。
【００３５】
　オフセットレジスタ１５５は、選択部１５０の出力を受信し、選択部１５０の新しい出力が受信されるまで選択部１５０の出力を保存する。
【００３６】
　合算部１６０は、オフセットレジスタ１５５の出力及び所定の次のＬＯＣアドレスＮＬＯＣＡＤＤを加えてメモリ１６５に保存されたＬＯＣテーブル値ＬＯＣＴＶ及びターミナル値ＴＥＲＭＶを選択する第３選択信号ＳＥＬ３を発生させる。
【００３７】
　ＬＯＣアドレスレジスタ１７５は、連続ノード信号ＮＣＯＮＳに応答してＬＯＣテーブル値ＬＯＣＴＶを選択するための次のＬＯＣアドレスＮＬＯＣＡＤＤを発生させる。次のＬＯＣアドレスＮＬＯＣＡＤＤは現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値である。
【００３８】
　シンボルアドレスレジスタ１８０は、シンボルアドレス信号ＳＹＭＡＤＤＳに応答して固定長コードＳＦＬＣを求めるための第４選択信号ＳＥＬ４を発生させる。シンボルアドレスは現在のＬＯＣテーブル値ＬＯＣＴＶに対応するターミナル値ＴＥＲＭＶ及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値である。
【００３９】
　メモリ１６５は、ＬＯＣテーブル値ＬＯＣＴＶ、所定のターミナル値ＴＥＲＭＶ及び固定長コードＳＦＬＣを保存し、第３選択信号ＳＥＬ３に応答して選択されたＬＯＣテーブル値ＬＯＣＴＶ及びターミナル値ＴＥＲＭＶを出力したり所定の第４選択信号ＳＥＬ４に応答して固定長コードＳＦＬＣを出力する。
　メモリ１６５に保存されるＬＯＣテーブル値ＬＯＣＴＶは、可変長コードが指示する図２に示すＬＯＣ情報テーブル２００のノードタイプに対応するＬＯＣ情報ビットよりなる。
【００４０】
　メモリ検索部１７０は、メモリ１６５から出力される選択されたＬＯＣテーブル値ＬＯＣＴＶ、ターミナル値ＴＥＲＭＶ及びデータビットストリームＤＳＴＲＥＡＭのＬ（Ｌは自然数）ビットを受信し、内部に保存されているＬＯＣ情報テーブル２００を利用してデータビットストリームＤＳＴＲＥＡＭのＬビットがターミナルノードであるか、連続ノードであるかを判断して連続ノード信号ＮＣＯＮＳまたはシンボルアドレス信号ＳＹＭＡＤＤＳを発生させる。ここでＬは３である。
　また、メモリ検索部１７０は、メモリ１６５から出力される固定長コードＳＦＬＣを受信して出力する。
【００４１】
　メモリ検索部１７０に保存されるＬＯＣ情報テーブル２００は、図２に示すように、可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプを備え、その各々のノードタイプはＮ＊２ＬビットのＬＯＣ情報ビットを備え、そのＬＯＣ情報ビットは各々Ｎビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種の形態で表現される。
【００４２】
　メモリ検索部１７０に保存されるＬＯＣ情報テーブルは、可変長コードが０，１，００，０１，１０，１１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが０００から１１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つである。もし前記Ｎが２ビットであり、前記Ｌが３ビットなら、可変長コードが０である場合はＬＯＣ情報ビットの上位８ビットがＡＢＢＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位８ビットがＡＢＢＢで表現され、可変長コードが００である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが０１である場合はＬＯＣ情報ビットの上位５ビットから８ビット間がＡＢで表現され、可変長コードが１０である場合はＬＯＣ情報ビットの上位９ビットから１２ビット間がＡＢで表現され、可変長コードが１１である場合はＬＯＣ情報ビットの上位１３ビットから１６ビット間がＡＢで表現され、可変長コードが０００から１１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現される。
【００４３】
　メモリ検索部１７０に保存されるＬＯＣ情報テーブルは、可変長コードが０，１である場合、前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが００から１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード、連続ノード及び無効ノードのうち何れか一つである。
　前記Ｎが２ビットであり、前記Ｌが２ビットなら、可変長コードが０である場合はＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位４ビットがＡＢで表現され、可変長コードが００から１１である場合、前記可変長コードが指示するノードタイプがターミナルノードである場合はＬＯＣ情報ビットがＡで表現され、連続ノードである場合はＬＯＣ情報ビットがＣで表現され、無効ノードである場合はＬＯＣ情報ビットがＤで表現される。
【００４４】
　図２は、図１のメモリ検索部に保存されるＬＯＣ情報テーブルを示す図である。
　図３は、シンボル及び可変長コードを示す図である。
　図４は、可変長コードからシンボルを求める概念図である。
　図５は、図１のメモリに保存されたＬＯＣテーブル値及びターミナル値を示す図である。
　図６は、シンボル及び固定長コードを示す図である。
【００４５】
　以下、図１ないし図６を参照して、本発明の実施形態による可変長コードの復号化装置の動作を詳細に説明する。
　データビットストリームＤＳＴＲＥＡＭは、データビットストリーム貯蔵部１０５に保存される。そして、データビットストリーム貯蔵部１０５はデータビットストリームＤＳＴＲＥＡＭをプレデコーディング部１０７に印加する。データビットストリームＤＳＴＲＥＡＭはデータが可変長コードでエンコーディングされているデータ情報である。
　図３を参照して、さらに説明する。シンボルはエンコーディング段階で固定長コードでエンコーディングされても、可変長コードでエンコーディングされても良い。
　固定長コードは、全てのシンボルが同じビット数でエンコーディングされる。可変長コードはシンボルごとに相異なるビット数でエンコーディングされる。頻繁に使われるシンボルは少ないビット数でエンコーディングし、頻繁に使われないシンボルは多くのビット数でエンコーディングすれば、エンコーディングされたデータのビット数を減らせる。
　したがって、可変長コードを利用してエンコーディングする方法が多く使われる。本発明のデータビットストリームは可変長コードでエンコーディングされたものである。
【００４６】
　プレデコーディング部１０７は、第１プレデコーディング部１１０及び第２プレデコーディング部１２０を備える。
　第１プレデコーディング部１１０は、ＭＰＥＧやＪＰＥＧのＤＣ係数テーブルのようにデータビットストリームＤＳＴＲＥＡＭのＭＳＢ側に０または１が連続する場合、０や１の数によって第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する第１選択信号ＳＥＬ１を発生させる。
　すなわち、第１選択信号ＳＥＬ１はデータビットストリームＤＳＴＲＥＡＭの最上位ビットに０や１が２個以下ある場合には第１ルックアップテーブルアドレスレジスタＬＵＴＡＤＤ０、データビットストリームＤＳＴＲＥＡＭの最上位ビットに０や１が４個以下ある場合には第２ルックアップテーブルアドレスレジスタＬＵＴＡＤＤ１のようにデータビットストリームＤＳＴＲＥＡＭの特性によって第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する。
【００４７】
　第２プレデコーディング部１２０は、ＭＰＥＧでのＡＣ係数テーブルのように連続する０や１のない場合、データビットストリームＤＳＴＲＥＡＭのＭＳＢ側のいくつかのビットを利用して第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する第２選択信号ＳＥＬ２を発生させる。
　もしＭＳＢ側の４個のビットを利用すれば、第２選択信号ＳＥＬ２はデータビットストリームＤＳＴＲＥＡＭのＭＳＢ側４ビットが００００である場合に第1ルックアップテーブルアドレスレジスタＬＵＴＡＤＤ０、０００１である場合に第２ルックアップテーブルアドレスレジスタＬＵＴＡＤＤ１、００１０である場合に第３ルックアップテーブルアドレスレジスタＬＵＴＡＤＤ２のようにデータビットストリームＤＳＴＲＥＡＭの特性によって第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０のうち何れか一つを選択する。
【００４８】
　このように第１プレデコーディング部１１０と第２プレデコーディング部１２０とを区別することによって入力されるデータビットストリームＤＳＴＲＥＡＭのコード値の特性によってデコーディング対象のサイズが少なくなって電力消耗が減り、復号化速度も速くなる。
　この時、第１プレデコーディング部１１０及び第２プレデコーディング部１２０のうち何れを選択するか否かは使用者が入力されるデータビットストリームＤＳＴＲＥＡＭを把握してあらかじめその情報を制御レジスタ（図示せず）に入力すれば、データビットストリームＤＳＴＲＥＡＭは選択されたプレデコーディング部１０７に入力される。
【００４９】
　シフト部１３０は、第１選択信号ＳＥＬ１または第２選択信号ＳＥＬ２に応答して入力されるデータビットストリームＤＳＴＲＥＡＭをシフトする。もし第２プレデコーディング部１２０が入力されるデータビットストリームＤＳＴＲＥＡＭのコード値を４ビットずつ分けてその特性を判断すれば、シフト部１３０は第２選択信号ＳＥＬ２に応答してデータビットストリームＤＳＴＲＥＡＭを４ビットずつシフトさせる。
　また、シフト部１３０は連続ノード信号ＮＣＯＮＳに応答してデータビットストリームＤＳＴＲＥＡＭをＬビットずつ移動させる。本発明の実施形態でＬは３である。これについては後述する。
【００５０】
　第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０は、メモリ１６５に保存されたＫ（Ｋは自然数）ビットのＬＯＣテーブル値ＬＯＣＴＶを指定するＬＯＣアドレスを各々備える。
　図５を参照すれば、ＬＯＣアドレスはアドレス部分で表示された０と１である。ＬＯＣテーブル値ＬＯＣＴＶは内容部分で表示された値である。すなわち、ＬＯＣアドレス０が選択されれば、ＫビットのＬＯＣテーブル値ＬＯＣＴＶは１１　１０　１１　０１　１１　１０　１１　１１の１６ビットが選択される。
　メモリ１６５にはＬＯＣテーブル値ＬＯＣＴＶが保存されており、第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０にはＬＯＣテーブル値ＬＯＣＴＶを指定するＬＯＣアドレスが保存される。
【００５１】
　選択部１５０は第１選択信号ＳＥＬ１または第２選択信号ＳＥＬ２に応答して第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０の出力のうち何れか一つを選択して出力する。選択部１５０はマルチプレクサである。
　もしデータビットストリームＤＳＴＲＥＡＭが第２プレデコーディング部１２０に入力されれば、第２選択信号ＳＥＬ２が発生され、第２選択信号ＳＥＬ２は第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０に保存されたＬＯＣアドレスのうち何れか一つを選択する。
　第２選択信号ＳＥＬ２によって選択されたＬＯＣアドレスはメモリ制御部１５３に入力される。メモリ制御部１５３は入力されるＬＯＣアドレスに対応するＬＯＣテーブル値ＬＯＣＴＶを選択する。
【００５２】
　入力されるデータビットストリームＤＳＴＲＥＡＭのコード特性によってデータビットストリームＤＳＴＲＥＡＭがプレデコーディングされ、ＬＯＣアドレスが選択されれば、ツリーサーチアルゴリズムを利用してデータビットストリームＤＳＴＲＥＡＭをデコーディングする動作が行われる。
　ツリーサーチアルゴリズムは、ＬＯＣに基づいて行われる。図４を参照してデータビットストリームＤＳＴＲＥＡＭをデコーディングする動作を詳細に説明する。
【００５３】
　ＬＯＣは、一つのノードに連結された子ノードのグループである。ノードはデコーディング動作によって出力されるデータシンボルを意味する。ノードにはターミナルノードと連続ノードとがある。ターミナルノードは最終的にデータシンボルで表すノードであり、連続ノードはターミナルノードに移動する中間過程で存在するノードである。図４で、ターミナルノードは内部に斜線を付して表示されており、連続ノードは内部に何の表示もない。
【００５４】
　プレデコーディング段階では入力されるデータビットストリームＤＳＴＲＥＡＭのコード値の特性によってプレデコーディング動作を行い、ＬＯＣアドレスを選択する。この時、データビットストリームＤＳＴＲＥＡＭの４ビットを基準にコード値の特性を判断しても、５ビットを基準にコード値の特性を判断しても良い。
　しかし、デコーディング動作はデータビットストリームＤＳＴＲＥＡＭをＬビットずつ分けて行う。ここでは、説明の便宜のためにＬが３である場合、すなわち、データビットストリームＤＳＴＲＥＡＭを３ビットずつ分けてデコーディング動作を行う場合を説明する。
【００５５】
　図１の可変長コード復号化装置１００のデコーディング動作では、データビットストリームＤＳＴＲＥＡＭを３ビットずつ受信し、図２のＬＯＣ情報テーブル２００を利用してデータビットストリームＤＳＴＲＥＡＭの３ビットがターミナルノードであるか、連続ノードであるかを判断することが行われる。
　図２のＬＯＣ情報テーブルについて説明する。メモリ検索部１７０に保存されるＬＯＣ情報テーブル２００は、可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプと、そのノードタイプを判断できるＬＯＣ情報ビットとを備える。
　ここで、可変長コードは入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットのコード値を意味する。
　図２の表において、ノードタイプを表す部分の数字は３ビットのデータビットストリームＤＳＴＲＥＡＭである。
【００５６】
　メモリ検索部１７０に保存されるＬＯＣ情報テーブル２００は、可変長コードが指示するノードがターミナルノードであるか、連続ノードであるか、あるいは無効ノードであるかを表すノードタイプを備え、その各々のノードタイプはＮ＊２ＬビットのＬＯＣ情報ビットを備える。ＬＯＣ情報ビットは各々Ｎビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種の形態で表現される。
【００５７】
　図２のＬＯＣ情報テーブル２００でＬＯＣ情報ビットは２ビットで構成されるＡ，Ｂ，Ｃ，Ｄの４種で表現されている。すなわち、前記Ａは１１、前記Ｂは１０、前記Ｃは０１、前記Ｄは００で表現されている。すなわち、Ｎは２である。これは、説明の便宜のためであり、Ｎが２と限定されることではない。また、以下ではＡ，Ｂ，Ｃ，Ｄの代わりに各々１１，１０，０１，００を利用して説明する。
　Ｎは２であり、Ｌは３であるので、結局、ノードタイプは２＊２３＝１６ビットのＬＯＣ情報ビットを備える。
【００５８】
　データビットストリームＤＳＴＲＥＡＭの３ビットのうち最上位ビットが０であり、もしメモリ１６５に保存されたＬＯＣテーブル値がＬＯＣ情報テーブル２００のＬＯＣ情報ビットと同じなら、データビットストリームＤＳＴＲＥＡＭの３ビットのうち最上位ビット０はターミナルノードとなる。
【００５９】
　メモリ検索部１７０に保存されるＬＯＣ情報テーブル２００をよく見れば、入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットが０，１，００，０１，１０，１１を含めば、０，１，００，０１，１０，１１が指示するノードはターミナルノードとなる。
　データビットストリームＤＳＴＲＥＡＭの３ビットが０００から１１１間に存在するなら、０００から１１１間に存在するデータビットストリームＤＳＴＲＥＡＭが指示するノードはＬＯＣ情報ビットによって各々ターミナルノード、連続ノード及び無効ノードを全て表せる。ターミナルノード、連続ノード及び無効ノードは、各々１６ビットのＬＯＣ情報ビットを有する。
【００６０】
　入力されるデータビットストリームＤＳＴＲＥＡＭの最上位ビットが０であり、もし０が指示するノードがターミナルノードであれば、０ターミナルノードはＬＯＣ情報ビットの上位８ビットに１１，１０，１０，１０を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの最上位ビットが１であり、もし１が指示するノードがターミナルノードであれば、１ターミナルノードはＬＯＣ情報ビットの下位８ビットに１１，１０，１０，１０を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの上位２ビットが００であり、もし００が指示するノードがターミナルノードであれば、００ターミナルノードはＬＯＣ情報ビットの上位４ビットに１１，１０を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの上位２ビットが０１であり、もし０１が指示するノードがターミナルノードであれば、０１ターミナルノードはＬＯＣ情報ビットの上位５ビットから８ビット間に１１，１０を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの上位２ビットが１０であり、もし１０が指示するノードがターミナルノードであれば、１０ターミナルノードはＬＯＣ情報ビットの上位９ビットから１２ビット間に１１，１０を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの上位２ビットが１１であり、もし１１が指示するノードがターミナルノードであれば、１１ターミナルノードはＬＯＣ情報ビットの上位１３ビットから１６ビット間に１１，１０を有する。
【００６１】
　入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットが０００から１１１のうち一つであり、もし指示するノードがターミナルノードであれば、当該３ビットが指示するターミナルノードは１１を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットが０００から１１１のうち一つであり、もし指示するノードが連続ノードであれば、当該３ビットが指示する連続ノードは０１を有する。
　入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットが０００から１１１のうち一つであり、もし指示するノードが無効ノードであれば、当該３ビットが指示する無効ノードは００を有する。
【００６２】
　メモリ１６５に保存されるＬＯＣテーブル値ＬＯＣＴＶは、図４の概念図及び図２のＬＯＣ情報テーブル２００を利用して得られる。
【００６３】
　図４を見れば、入力されるデータビットストリームＤＳＴＲＥＡＭが００である場合、図４の００を有するターミナルノードｃを指示する。この時のＬＯＣ情報ビットは、図２のＬＯＣ情報テーブル２００で１１，１０で表示されることが分かる。この値を図５のＬＯＣテーブル値ＬＯＣＴＶを表す内容部分に記録する。
　入力されるデータビットストリームＤＳＴＲＥＡＭが０１０である場合、図４の０１０を有するターミナルノードｆを指示する。この時のＬＯＣ情報ビットは図２のＬＯＣ情報テーブル２００で１１で表示されることが分かる。この値を図５のＬＯＣテーブル値ＬＯＣＴＶを表す内容部分のうち１１，１０の次に記録する。
　入力されるデータビットストリームＤＳＴＲＥＡＭが０１１である場合、図４の０１１を有する連続ノードを指示する。この時のＬＯＣ情報ビットは、図２のＬＯＣ情報テーブル２００で０１で表示されることが分かる。この値を図５のＬＯＣテーブル値ＬＯＣＴＶを表す内容部分のうち１１，１０及び１１の次に記録する。
　入力されるデータビットストリームＤＳＴＲＥＡＭが１０である場合、図４の１０を有するターミナルノードａを指示する。この時のＬＯＣ情報ビットは図２のＬＯＣ情報テーブル２００で１１，１０で表示されることが分かる。この値を図５のＬＯＣテーブル値ＬＯＣＴＶを表す内容部分のうち１１，１０，１１，０１の次に記録する。
　入力されるデータビットストリームＤＳＴＲＥＡＭが１１０である場合、図４の１１０を有するターミナルノードｇを指示する。この時のＬＯＣ情報ビットは、図２のＬＯＣ情報テーブル２００で１１で表示されることが分かる。この値を図５のＬＯＣテーブル値ＬＯＣＴＶを表す内容部分のうち１１，１０，１１，０１，１１，１０の次に記録する。
　入力されるデータビットストリームＤＳＴＲＥＡＭが１１１である場合、図４の１１１を有するターミナルノードｂを指示する。この時のＬＯＣ情報ビットは、図２のＬＯＣ情報テーブル２００で１１で表示されることが分かる。この値を図５のＬＯＣテーブル値ＬＯＣＴＶを表す内容部分のうち１１，１０，１１，０１，１１，１０，１１の次に記録する。
　そうすれば、ＬＯＣ０に対応するＬＯＣテーブル値が全て完成する。ＬＯＣアドレス０はＬＯＣ０に対応し、ＬＯＣアドレス１はＬＯＣ１に対応する。ＬＯＣ０の連続ノードからＬＯＣ１に連結されるブランチに表示された可変長コード０と１についてもＬＯＣテーブル値ＬＯＣＴＶを求められる。
【００６４】
　図４で、Ｒはルートノードである。ルートノードからＬＯＣ０にブランチが連結されており、各々のブランチには入力されるデータビットストリームＤＳＴＲＥＡＭが可変長コードの形態で表示されている。可変長コードは図３に示されている。
　可変長コードの論理値が小さいものが左側に、大きいものが右側に配置される。可変長コードが４ビットである場合は、前の３ビットが連続ノードを指示し、当該連続ノードから可変長コードの最後の１ビットがターミナルノードを指示する。
　図３に表示された可変長コードは、一例を説明しただけであるので、シンボルａを表す可変長コードが必ず００である必要はない。もし可変長コードが図３と違うなら、図４の概念図も変わる。
【００６５】
　図５の表は、メモリ１６５に保存されるＬＯＣテーブル値ＬＯＣＴＶを表す。アドレス部分で表示された値はＬＯＣアドレスを表して第１ないし第Ｍルックアップテーブルアドレスレジスタ１４０に保存されている。
【００６６】
　入力されるデータビットストリームＤＳＴＲＥＡＭは、色々なコード値を有しうる。入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットが図４の００，０１０，０１１，１０，１１０，１１１のうち一つでなければ、誤ったデータビットストリームＤＳＴＲＥＡＭであるので、インタラプトによって処理される。
【００６７】
　データビットストリームＤＳＴＲＥＡＭが０１１０００．．．．である場合を例として説明する。
　第１選択信号ＳＥＬ１または第２選択信号ＳＥＬ２によって選択部１５０からＬＯＣアドレス値０が出力されれば、その値はオフセットレジスタ１５５に保存される。
　メモリ１６５に保存されたＬＯＣテーブル値ＬＯＣＴＶのうちＬＯＣアドレスが０である場合が選択される。
【００６８】
　ＬＯＣテーブル値ＬＯＣＴＶは１１，１０，１１，０１，１１，１０，１１，１１で、入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットは０１１である。ＬＯＣテーブル値ＬＯＣＴＶを参考にすれば、入力されるデータビットストリームＤＳＴＲＥＡＭが００，０１０，０１１，１０，１１０，１１１である場合、有効な入力であることが分かり、入力されるデータビットストリームＤＳＴＲＥＡＭが０１１であるので、これは有効な入力値である。また、図４の概念図で分かるように、データビットストリームＤＳＴＲＥＡＭ０１１が指示するノードはターミナルノードではなく、連続ノードであり、ＬＯＣテーブル値ＬＯＣＴＶを検索すれば、０１１が連続ノードである時の値であるので、メモリ検索部１７０は連続ノード信号ＮＣＯＮＳを発生させる。
【００６９】
　メモリ制御部１５３のＬＯＣアドレスレジスタ１７５は、連続ノード信号ＮＣＯＮＳを受信して次のＬＯＣアドレスＮＬＯＣＡＤＤを発生させる。
　次のＬＯＣアドレスＮＬＯＣＡＤＤは、現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値である。現在のＬＯＣアドレスは０であり、現在のＬＯＣ内で０１１を表すノードを含むそれ以前の連続ノードは０１１ノードの一つしかないので、現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数は１である。したがって、次のＬＯＣアドレスＮＬＯＣＡＤＤは１である。
【００７０】
　この時、シフト部１３０は連続ノード信号ＮＣＯＮＳに応答して入力されるデータビットストリームＤＳＴＲＥＡＭを３ビットぐらい移動させる。したがって、データビットストリームＤＳＴＲＥＡＭは０００となる。合算部１６０はオフセットレジスタ１５５に保存されていた値０及び次のＬＯＣアドレス１を加えて第３選択信号ＳＥＬ３として１を出力する。
【００７１】
　オフセットレジスタ１５５に保存された最初のＬＯＣアドレス０はデータビットストリームＤＳＴＲＥＡＭがターミナルノードを指定し、シンボル値でデコーディングされる前までは同じ値を維持する。入力されるデータビットストリームＤＳＴＲＥＡＭがシンボル値でデコーディングされれば、再び新しいＬＯＣアドレスが第１または第２プレデコーディング部１２０によって選択され、新しいＬＯＣアドレスがオフセットレジスタ１５５に保存される。
【００７２】
　第３選択信号ＳＥＬ３は、メモリ１６５に保存されたＬＯＣテーブル値ＬＯＣＴＶのうちＬＯＣアドレスが１である場合を選択してメモリ検索部１７０に印加する。また、第３選択信号ＳＥＬ３はメモリ１６５に保存されたターミナル値ＴＥＲＭＶを選択してメモリ検索部１７０に印加する。
【００７３】
　メモリ検索部１７０は、メモリ１６５から出力されるＬＯＣテーブル値ＬＯＣＴＶ、ターミナル値ＴＥＲＭＶ及びデータビットストリームＤＳＴＲＥＡＭの３ビットを受信する。
　ＬＯＣテーブル値ＬＯＣＴＶは、１１，１０，１０，１０，１１，１０，１０，１０であり、入力されるデータビットストリームＤＳＴＲＥＡＭの３ビットは０００である。ＬＯＣテーブル値ＬＯＣＴＶを参照すれば、入力されるデータビットストリームＤＳＴＲＥＡＭが０，１である場合に有効な入力であることが分かり、入力されるデータビットストリームＤＳＴＲＥＡＭ０００のうち上位０値が有効な入力値である。
　また、図４の概念図から分かるように、データビットストリームＤＳＴＲＥＡＭ０が指示するノードはターミナルノードである。図５の図表で、ターミナル値ＴＥＲＭＶは５であることが分かる。ターミナル値ＴＥＲＭＶはメモリ１６５に保存されている。ターミナル値ＴＥＲＭＶはＬＯＣアドレスが１である場合に対応するＬＯＣ１以前のターミナルノードの数である。ＬＯＣアドレスが１である場合、ターミナル値は５である。ＬＯＣアドレスが０である場合、ターミナル値ＴＥＲＭＶは０である。
【００７４】
　メモリ検索部１７０は、メモリ１６５から出力されるターミナル値ＴＥＲＭＶを受信して内部に保存されたシンボルアドレスを選択し、選択されたシンボルアドレスに対応するシンボルアドレス信号ＳＹＭＡＤＤＳを発生させる。
　シンボルアドレスは、現在のＬＯＣテーブル値に対応するターミナル値及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値である。現在のＬＯＣテーブル値に対応するターミナル値ＴＥＲＭＶは５であり、現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数は０である。すなわち、シンボルアドレスは５となる。
【００７５】
　図６には、シンボルアドレスと固定長コード及びシンボルが示されている。シンボルアドレスが５であるので、メモリ検索部１７０はシンボルｅを選択するためのシンボルアドレス信号ＳＹＭＡＤＤＳを発生する。
　シンボルアドレスレジスタ１８０は、シンボルアドレス信号ＳＹＭＡＤＤＳを保存した後にシンボルアドレス信号ＳＹＭＡＤＤＳを固定長コードＳＦＬＣを求めるための第４選択信号ＳＥＬ４として発生する。
　第４選択信号ＳＥＬ４は、メモリ１６５に印加されてメモリ１６５に保存されており、シンボルｅに対応する固定長コードＳＦＬＣを出力する。
　そうすると、メモリ検索部１７０はメモリ１６５から出力される固定長コードＳＦＬＣを受信し、これを出力する。
【００７６】
　前述した過程によって、本発明の可変長コード復号化装置１００は可変長コードよりなっているデータビットストリームＤＳＴＲＥＡＭを３ビットずつ分けてデコーディングできるので、デコーディング速度が速くなる。また、第１プレデコーディング部１１０及び第２プレデコーディング部１２０を使用することによって入力されるデータビットストリームのコード値の特性によってデコーディングする対象テーブルのサイズを減らして全体的な電力消耗を減らせる。
【００７７】
　データビットストリームＤＳＴＲＥＡＭを３ビットずつデコーディングするために図２のＬＯＣ情報テーブル２００と同じ構造のテーブルが作成されなければならず、図２のＬＯＣ情報テーブル２００のＬＯＣ情報ビットを表現するＡ，Ｂ，Ｃ，Ｄが必ず２ビットのデジタル値で表現される。しかし、ＬＯＣ情報ビットを表現するＡ，Ｂ，Ｃ，Ｄが必ず２ビットに限定されるものではない。
【００７８】
　例えば、データビットストリームＤＳＴＲＥＡＭを２ビットずつデコーディングしても良い。この時、Ａ，Ｂ，Ｃ，Ｄを表現するビットが２ビットなら、すなわち、Ｎが２であれば、ＬＯＣ情報ビットは２＊２３＝８ビットを備える。
　そうすれば、図２のＬＯＣ情報テーブルは、次のように変更される。すなわち、可変長コードが０，１である場合には前記可変長コードが指示するノードタイプはターミナルノードであり、可変長コードが００から１１間に存在する場合、前記可変長コードが指示するノードタイプはターミナルノード及び連続ノード及び無効ノードのうち何れか一つとなる。
　そして、可変長コードが０である場合は、ＬＯＣ情報ビットの上位４ビットがＡＢで表現され、可変長コードが１である場合はＬＯＣ情報ビットの下位４ビットがＡＢで表現され、可変長コードが００から１１である場合、前記可変長コードが指示するノードタイプがターミナルノードの場合はＬＯＣ情報ビットがＡで表現され、連続ノードの場合はＬＯＣ情報ビットがＣで表現され、無効ノードの場合はＬＯＣ情報ビットがＤで表現される。
【００７９】
　図７は、他の技術的課題を達成するための本発明の実施形態による可変長コードの復号化方法を示すフローチャートである。
　図８は、図７の７１０段階を詳細に示すフローチャートである。
【００８０】
　図７を参照すれば、本発明の実施形態による可変長コード復号化方法７００は、所定のＬＯＣアドレスを各々備える第１ないし第Ｍ（Ｍは自然数）ルックアップテーブルアドレスレジスタ、前記ＬＯＣアドレスに対応するＫ（Ｋは自然数）ビットのＬＯＣテーブル値及び所定のターミナル値を保存するメモリ及び可変長コードを復号化する基準となる情報を有するＬＯＣ情報テーブルを備えるメモリ検索部を備える可変長コード復号化装置の可変長コード復号化方法において、第１として、データビットストリームを受信し、そのデータビットストリームのコード値によって前記ルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１または第２選択信号を発生させる（７１０段階）。
【００８１】
　さらに説明すれば、７１０段階は、前記データビットストリームのＭＳＢ側に０または１が連続する場合、０や１の数によって前記複数のルックアップテーブルアドレスレジスタのうち何れか一つを選択する第１選択信号を発生させる（８１０段階）。
　さらに、前記データビットストリームのＭＳＢ側のＮ（Ｎは自然数）ビットを利用して前記複数のルックアップテーブルアドレスレジスタのうち何れか一つを選択する第２選択信号を発生させる（８２０段階）。
　さらに、前記第１選択信号または前記第２選択信号のうち一つ及び後述連続ノード信号に応答して前記データビットストリームを一定ビットだけ移動させる（８３０段階）。
【００８２】
　このような７１０段階の後、前記第１選択信号または前記第２選択信号に応答して前記第１ないし第Ｍルックアップテーブルアドレスレジスタの出力のうち何れか一つを選択して出力する（７２０段階）。
【００８３】
　さらに、前記７２０段階の出力及び前記次のＬＯＣアドレスを加えて、前記メモリに保存されたＬＯＣテーブルの値及びそのＬＯＣテーブル値に対応し、所定のシンボルアドレスを求めるためのターミナル値を選択する第３選択信号を発生させる（７３０段階）。前記次のＬＯＣアドレスは、現在のＬＯＣアドレス及び現在のＬＯＣで現在のノードを含む現在ノード以前の非ターミナルノードの数を加えた値であることを特徴とする。
【００８４】
　その後、前記第３選択信号に応答して選択されたＬＯＣテーブル値及びターミナル値を出力する（７４０段階）。さらに、前記メモリから出力された前記選択されたＬＯＣテーブル値、ターミナル値及び前記データビットストリームのＬビットを受信し、前記ＬＯＣ情報テーブルを利用して前記データビットストリームのＬビットがターミナルノードであるか、連続ノードであるかを判断して連続ノード信号またはシンボルアドレス信号を発生させる（７５０段階）。前記連続ノード信号は前記データビットストリームを３ビットずつ移動させうる。
【００８５】
　次いで、前記連続ノード信号に応答して前記ＬＯＣテーブル値を選択するための前記次のＬＯＣアドレスを発生させて前記７３０段階に印加する（７６０段階）。さらに、前記シンボルアドレス信号に応答して固定長コードを求めるための第４選択信号を発生させる（７７０段階）。
　さらに、前記第４選択信号に応答して前記メモリから前記固定長コードを出力する（７８０段階）。
【００８６】
　前記シンボルアドレスは、現在のＬＯＣテーブル値に対応するターミナル値及び現在のＬＯＣで現在のノードを除外した現在ノード以前のターミナルノードの数を加えた値であることを特徴とする。
　前記メモリ検索部に保存されるＬＯＣ情報テーブルは、図１の装置１００のＬＯＣ情報テーブルと同じなので、ここでの詳細な説明は省略する。
　前記メモリに保存されるＬＯＣテーブル値は、可変長コードが指示する前記ＬＯＣ情報テーブルのノードタイプに対応するＬＯＣ情報ビットよりなることを特徴とする。本発明の実施形態でＬは３である。
　図７及び図８の可変長コード復号化方法７００は、図１の可変長コード復号化装置１００の動作に対応する。したがって、可変長コード復号化方法７００の動作に関する詳細な説明は省略する。
【００８７】
　以上、図面を参照して最適な実施形態が開示された。ここで、特定の用語が使われたが、これは単に本発明を説明するための目的から使われたものであって、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者なら、これから多様な変形及び均等な他の実施形態が可能であるということを理解できる。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決まらなければならない。
【産業上の利用可能性】
【００８８】
　本発明は復号化装置に関するものであって、動画像の圧縮及び復元分野のうちデジタル映像の圧縮分野に利用されうる。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施形態による可変長コード復号化装置を示すブロック図である。
【図２】図１のメモリ検索部に保存されるＬＯＣ情報テーブルを示す図である。
【図３】シンボル及び可変長コードを示す図である。
【図４】可変長コードからシンボルを求める概念図である。
【図５】図１のメモリに保存されたＬＯＣテーブル値及びターミナル値を示す図である。
【図６】シンボル及び固定長コードを示す図である。
【図７】他の技術的課題を達成するための本発明の実施形態による可変長コードの復号化方法を示すフローチャートである。
【図８】図７の７１０段階を詳細に示すフローチャートである。
【符号の説明】
【００９０】
　　　１００　　可変長コード復号化装置
　　　１０５　　データビットストリーム貯蔵部
　　　１０７　　プレデコーディング部
　　　１１０　　第１プレデコーディング部
　　　１２０　　第２プレデコーディング部
　　　１３０　　シフト部
　　　１４０　　第１ないし第Ｍルックアップテーブルアドレスレジスタ
　　　１５０　　選択部
　　　１５３　　メモリ制御部
　　　１５５　　オフセットレジスタ
　　　１６０　　合算部
　　　１６５　　メモリ
　　　１７０　　メモリ検索部
　　　１７５　　ＬＯＣアドレスレジスタ
　　　１８０　　シンボルアドレスレジスタ
【図１】
2004096735.tif 000003
【図２】
2004096735.tif 000004
【図３】
2004096735.tif 000005
【図４】
2004096735.tif 000006
【図５】
2004096735.tif 000007
【図６】
2004096735.tif 000008
【図７】
2004096735.tif 000009
【図８】
2004096735.tif 000010