JP4023548B2 - 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法 - Google Patents

可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法 Download PDF

Info

Publication number
JP4023548B2
JP4023548B2 JP2005209307A JP2005209307A JP4023548B2 JP 4023548 B2 JP4023548 B2 JP 4023548B2 JP 2005209307 A JP2005209307 A JP 2005209307A JP 2005209307 A JP2005209307 A JP 2005209307A JP 4023548 B2 JP4023548 B2 JP 4023548B2
Authority
JP
Japan
Prior art keywords
length
encoded data
value
data values
signal
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
Application number
JP2005209307A
Other languages
English (en)
Other versions
JP2006042336A (ja
Inventor
シタ リチャード
エム. ブロズ エドワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JP2006042336A publication Critical patent/JP2006042336A/ja
Application granted granted Critical
Publication of JP4023548B2 publication Critical patent/JP4023548B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion 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
    • H03M7/425Conversion 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 for the decoding process only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、可変長デコーダ(VLD)に関しており、具体的には、圧縮されたイメージデータを復号化するのに適した可変長符号用のデコーダに関している。
近年、イメージデータ圧縮技術には目覚ましい進歩が見られる。このような技術の目的は、符号化されていないイメージデータに必要となるビットレートよりも低いビットレートでイメージデータを符号化することにより、例えばディジタル送信や記録の能率を高めることにある。このような符号化能率を得るために用いられている技術としては、例えば、予測符号化や変換符号化などがある。
また、圧縮された符号に対して可変長符号化をおこなうことによって、さらなるイメージデータ圧縮が達成される。可変長符号化は、符号化されたビット幅を、符号化される値の出現頻度に従って変化させることを含む。典型的には、より高い頻度で出現する値には、より低い頻度で出現する値よりも短い符号が割り当てられる。よって、固定長符号化の場合に比べて、より低いビットレートが得られる。可変長符号としては、例えば、ハフマン符号がある。
可変長コードワード(VLC)は、典型的には、ルックアップテーブル(LUT)を用いて復号化される。nビットのパラメータデータ信号が、LUTに結合される。このnビット信号は、LUTに格納されているデータに対するアドレスとして用いられる可変長コードワード(その長さはnビットでよい)を含んでいる。LUTに格納されているデータは、符号長および符号値に対応している。符号長は、nビット信号において識別された可変長コードワードの長さを具体的に示す。符号値は、可変長符号の復号化された(つまり固定長の)値である。LUTの出力は、符号長および符号値である。
米国では、ディジタル的に符号化された高精細度テレビジョン信号についてある規格が提案されている。この規格は、国際標準化機構(ISO)のムービング・ピクチャ・エキスパート・グループ(MPEG)により提案されているMPEG−2規格と本質的には同じである。以下、この規格を「MPEG規格」と称する。この規格は、「情報技術−動画およびそれに付随する音声の生成符号化、勧告H.262」(ISO/IEC13818−2、1995年(E))と題された国際規格案(DIS)公報中に記載されている。この公報はISOから入手可能であり、本願明細書も、そのMPEG−2ディジタルビデオ符号化規格に関する教示については参考として援用している。
MPEG規格が可変長符号化をどのように用いているかを知るための例として、MPEG−2規格の付録Bで規定されているコードテーブルB−14およびB−15を考える。このコードテーブルでは、最大17ビットのサイズの可変長コードワードが復号化されることになる。それぞれの符号は、「ラン」値と「レベル」値との互いに異なる組み合わせに対応している。ここで、ランは、スキャンオーダーにおける非ゼロ係数に先行するゼロ係数の個数であり、レベルは、非ゼロ係数の絶対値である。
MPEG−2高精細度テレビジョン(HDTV)ビデオデコーダは、非常に高い復号化レートを必要とする。圧縮されたビットストリーム内の多数のフィールドは可変長符号化されてはいるものの、このビットストリームのうちのおよそ85%は、離散コサイン変換(DCT)係数復号化を含んでいる。HDTVビットストリームは、1秒当たり1憶個のオーダーの可変長符号の復号化を必要とする。よって、ある時刻における1個の符号は、100MHzのクロックを必要とする。このような高クロックレートは、現在利用可能な高密度ASICの実用的限界を超えている。その代わりに用いられる手段としては、1クロックサイクルにつき多数の符号を復号化することが挙げられる。
多数の符号を復号化するためのある方法では、互いに協調して動作する2つのVLDを使用することが要求される。このようなアプローチの欠点としては、データはスライスフォーマットであり、それぞれのスライスの長さは復号化の前には分かっていないので、2つのパラレルパスが別々のスライスを対象として動作しなければならないことがある。このような場合には、1個1個のスライスを分離するための前処理とメモリとが必要になる。
本願明細書は、所定の優先順位のつけられた復号化構成を用いたVLDに関するその教示については、Ozakiに付与された米国特許第5,428,356号を明示的に参考として援用する。OzakiのVLDは、ハフマン符号列の先頭ハフマン符号を復号化する第1のデコーダ回路と、ハフマン符号列の先頭部分から選択された2つの所定のハフマン符号からなる連続符号列を復号化する第2のデコーダ回路とを備えている。第1のデコーダは、上述したようにLUTを用いる。第2のデコーダは、一定数の所定のコードワードペアのそれぞれ1つのペアが、LUTに格納されているデータに対するアドレスとして用いられる、LUTを用いる。LUTに格納されているデータは、符号長と符号値のシーケンスのペアに対応している。入力ストリームにおいて所定のコードワードペアのうちのあるペアに遭遇したとき、対応する符号値ペアおよび符号値ペアは、第2のデコーダにより出力される。第2のデコーダが2つの復号化された値を出力するとき、選択器は第2のデコーダの出力を選択する。第2のデコーダが2つの復号化された値を生成できなかったとき、選択器は、第1のデコーダの出力を選択する。
Ozakiの特許のVLDは、第2のデコーダが限られた数の所定の2列の組み合わせしか復号化できないという点で限定されたものである。より詳細には、第2のデコーダは、選択された符号ペアしか復号化できない。そのため、そのペアは、全長が短くなる。より大きな長さの列に遭遇した時には、多数のクロックサイクルが必要になる。ハフマン符号は、一般に、低い周波数の符号がより大きな長さをもつように選択されるので、Ozakiの第2のデコーダは、概略的には、より低い周波数の符号を含む符号ペアを復号化できない。よって、多数のクロックサイクルが必要になる。
さらに、OzakiのVLDは、大きなメモリを必要とする。なぜなら、nビットアドレスが、LUTに対する入力として供給されなければならないからである。また、LUTにおけるそれぞれのメモリ位置は、zビットの符号長とvビットの符号値とを格納する。その結果、符号長および符号値とを格納するためには、合計z+vビットが必要になる。1個のLUTに必要とされる合計ビット数は、2n×(z+v)となる。
よって、変換テーブルのサイズを制限することによって、その変換テーブルに必要とされるメモリサイズを小さくしようとする提案がなされている。しかし、このような技術によれば、復号化処理の速度が遅くなってしまう。
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、データストリーム内に含まれる複数の可変長符号化されたデータ値の長さを1クロックサイクル内に決定する装置および方法を提供することにある。
本発明による装置は、データストリーム内に含まれる複数の可変長符号化されたデータ値の長さを1クロックサイクル内に決定する装置であって、該データストリームを受け取り、シフト制御信号に応答して、該複数の可変長符号化されたデータ値のうちの1サブセットを伝送するシフト手段と、該複数の符号化されたデータ値の該サブセットを受け取るように結合されており、第1の復号化動作をおこなうことによって、該サブセットにおける該複数の符号化されたデータ値のうちの第1のデータ値の長さを決定する、第1の長さ復号化手段と、該複数の符号化されたデータ値の該サブセットを受け取るように結合されており、第2の復号化動作をおこなうことによって、該サブセットにおける該複数の符号化されたデータ値のうちの第2のデータ値の長さを個別に決定する、第2の長さ復号化手段であって、該サブセットにおいて、該第2の符号化されたデータ値が、該第1の符号化されたデータ値の直後に続いており、該第1および該第2の復号化動作が同時におこなわれる、第2の長さ復号化手段と、該第1および該第2の符号化されたデータ値の該長さに応答して、該第1および該第2のデータ値の組み合わされた長さを出力する、組み合わされた長さ復号化手段と、該第1および該第2のデータ値の該組み合わされた長さに応答して該シフト制御信号を形成し、それにより、該シフト手段内で次に符号化されたデータ値の位置を識別するシフト制御手段であって、該次の符号化されたデータ値が、該第2の符号化されたデータ値の直後に続いており、該シフト制御信号を該シフト手段に伝送する、シフト制御手段と、を備えており、そのことにより上記目的が達成される。
ある実施形態では、前記第2の長さ復号化手段が、複数の長さデコーダであって、それぞれが、前記第1の符号化されたデータ値の可能なさまざまな長さの1つに対応しており、前記複数の符号化されたデータ値の前記サブセットの互いに異なる部分を同時に復号化する、複数の長さデコーダを備えている、装置であって、該複数の長さデコーダのそれぞれが、該第1の符号化されたデータ値の該対応する可能な長さの1つに基づいて、前記第2の符号化されたデータ値の長さの対応するそれぞれの値を決定する。
ある実施形態では、前記第1の長さ復号化手段が、前記第1の符号化されたデータ値の前記長さを示す第1の長さ信号を発生して伝送し、かつ前記第2の長さ復号化手段の前記複数の長さデコーダのそれぞれが、それぞれに対応する出力信号を発生して伝送する、装置であって、該第1の長さ信号に応答して、該第1の長さ信号により示された該第1の符号化されたデータ値の該長さに対応する、該長さデコーダの1つの出力信号を選択する手段であって、該選択された出力信号が、前記第2の符号化されたデータ値の長さを示している、手段をさらに備えている。
ある実施形態では、前記第1の長さ復号化手段が、前記第1の符号化されたデータ値の前記可能なさまざまなの長さに対応する複数のビットを出力し、該第1の長さ復号化手段により出力された該複数のビットのうちの単一のビットが設定され、該設定されたビットは、該第1の長さ復号化手段により決定された該第1の符号化されたデータ値の該長さに対応しており、前記第2の長さ復号化手段の前記複数の長さデコーダがそれぞれ、該それぞれの長さデコーダにより決定される前記第2の符号化されたデータ値の長さを表す対応する対応する出力信号を発生し、かつ、前記組み合わされた長さ復号化手段が、該単一の設定されたビットに応答して、該ビットが該第1の長さ復号化手段により設定される対象である、該第1の符号化されたデータ値の該長さに対応する、該複数の長さデコーダの1つによる該出力信号の伝送をイネーブルする。
ある実施形態では、前記シフト制御手段が、前記第1および前記第2の符号化されたデータ値の前記組み合わされた長さの可能なさまざまな値に対応する複数の加算器を備えており、該複数の加算器のそれぞれが、候補シフト制御信号を形成し、前記組み合わされた長さ復号化手段が、該第1および該第2の符号化されたデータ値の該組み合わされた長さの該可能なさまざまな値に対応する複数のビットを出力し、該組み合わされた長さ復号化手段により出力された該複数のビットの1つが設定され、該設定されたビットは、該第1および該第2の符号化されたデータの該組み合わされた長さに対応しており、かつ該シフト制御手段が、該組み合わされた長さ復号化手段により出力された該設定されたビットを用いて、該複数の加算器の1つにより出力された該候補シフト制御信号の伝送をイネーブルし、該1つの加算器が、該第1および該第2の符号化されたデータ値の該組み合わされた長さに対応している。
ある実施形態では、前記シフト手段が、前記データストリームを受け取り、固定された数のデータビットを前記第1および前記第2の長さ復号化手段に伝送するシフタ/マルチプレクサを備えており、かつ前記シフト制御信号が、該シフタ/マルチプレクサ内の該固定された数のデータビットのうちの第1のデータビットの位置を識別する。
ある実施形態では、前記シフト制御手段が、前記第1および前記第2の符号化されたデータ値の前記組み合わされた長さの前記可能なさまざまな値に対応する複数の加算器であって、それぞれが対応する候補シフト制御信号を同時に形成し伝送する、複数の加算器と、該第1および前記第2の符号化されたデータ値の該組み合わされた長さに応答して、該第1および前記第2の符号化されたデータ値の該組み合わされた長さに対応する該候補シフト制御信号を選択し、該選択された候補を該シフト制御信号として前記シフト手段に伝送する、和選択手段と、を備えている。
ある実施形態では、前記複数の加算器がそれぞれ、対応するモジュロ算術演算をおこなうことによって、該それぞれの加算器の前記候補シフト制御信号を形成する。
ある実施形態では、前記シフト手段が、前記データストリームを受け取り、固定された数の連続するデータビットを前記第1および前記第2の長さ復号化手段に伝送するシフタ/マルチプレクサを備えており、かつ前記シフト制御信号が、該シフタ/マルチプレクサ内の該固定された数の連続するデータビットのうちの第1のデータビットの位置を識別する。
ある実施形態では、前記データストリームが符号化されたビデオ信号を含んでおり、前記第1および前記第2の符号化されたデータ値が、該ビデオ信号の離散コサイン変換係数を表現する。
本発明による装置は、複数の可変長符号化されたデータ値から構成されるデータストリームを1クロックサイクル内に復号化する装置であって、該データストリームを受け取り、シフト制御信号に応答して、該複数の可変長符号化されたデータ値のうちのサブセットを伝送するシフト手段と、該複数の符号化されたデータ値の該サブセットを受け取るように結合されており、第1の復号化動作をおこなうことによって、該サブセットにおける該複数の符号化されたデータ値のうちの第1のデータ値の長さを決定する、第1の長さ復号化手段と、該複数の符号化されたデータ値の該サブセットを受け取るように結合されており、第2の復号化動作をおこなうことによって、該サブセットにおける該複数の符号化されたデータ値のうちの第2のデータ値の長さを個別に決定する、第2の長さ復号化手段であって、該サブセットにおいて、該第2の符号化されたデータ値が、該第1の符号化されたデータ値の直後に続いており、該第1および該第2の復号化動作が同時におこなわれる、第2の長さ復号化手段と、該第1および該第2の符号化されたデータ値の該長さに応答して、該第1および該第2のデータ値の組み合わされた長さを出力する、組み合わされた長さ復号化手段と、該第1および該第2のデータ値の該組み合わされた長さに応答して、該シフト制御信号を形成し、それにより、該シフト手段内で次に符号化されたデータ値の位置を識別するシフト制御手段であって、該次の符号化されたデータ値が、該第2の符号化されたデータ値の直後に続いており、該シフト制御信号を該シフト手段に伝送する、シフト制御手段と、該複数の符号化されたデータ値の該サブセット、該第1の符号化されたデータ値の該長さ、ならびに該第1および該第2の符号化されたデータ値の該組み合わされた長さを受け取るように結合されており、該第1および該第2の符号化されたデータ値を第1および第2の復号化された値にそれぞれ変換する、値復号化手段と、を備えており、そのことにより上記目的が達成される。
本発明による方法は、データストリーム内に含まれる複数の可変長符号化されたデータ値の長さを1クロックサイクル内に決定する方法であって、該データストリームおよびシフト制御信号を受け取るステップと、第1の復号化動作をおこなうことによって、該サブセットにおける該複数の符号化されたデータ値のうちの第1のデータ値の長さを決定するステップと、第2の復号化動作をおこなうことによって、該サブセットにおける該符号化されたデータ値のうちの第2のデータ値の長さを個別に決定するステップであって、該サブセットにおいて、該第2の符号化されたデータ値が、該第1の符号化されたデータ値の直後に続いており、該第1および該第2の復号化動作が同時におこなわれる、ステップと、該第1および該第2のデータ値の組み合わされた長さを出力するステップと、該シフト制御信号を形成することによって、該サブセット内に含まれている該複数の符号化されたデータ値のうちのいくつかを決定するステップと、該シフト制御信号をシフト手段に伝送するステップと、を含んでおり、そのことにより上記目的が達成される。
以下に作用を説明する。本発明によれば、データストリーム内に含まれる複数の可変長符号化されたデータ値の長さを1クロックサイクル内に決定する装置および方法が提供される。
この装置は、データストリームを受け取るシフタを備えている。シフタは、シフト制御信号に応答して、複数の可変長符号化されたデータ値のサブセットを伝送する。
第1の長さ復号化メカニズムが、複数の符号化されたデータ値のサブセットを受け取るように結合される。第1の長さ復号化メカニズムは、第1の復号化動作をおこなうことによって、そのサブセットにおける複数の符号化されたデータ値のうちの第1のデータ値の長さを決定する。
第2の長さ復号化メカニズムが、複数の符号化されたデータ値のサブセットを受け取るように結合される。第2の長さ復号化メカニズムは、第2の復号化動作をおこなうことによって、そのサブセットにおける複数の符号化されたデータ値のうちの第2のデータ値の長さを決定する。第2の符号化されたデータ値は、そのサブセット内では、第1の符号化されたデータ値の直後に続いている。第1および第2の復号化動作は、同時におこなわれる。
組み合わされた長さデコーダは、第1および第2の符号化されたデータ値の長さに応答して、第1および第2のデータ値の組み合わされた長さを出力する。
シフトコントローラは、第1および第2のデータ値の組み合わされた長さに応答して、シフト制御信号をつくる。このシフト制御信号は、シフタ内で次に符号化されるデータ値の位置を識別する。次に符号化されるデータは、第2の符号化されたデータ値の直後に続いている。シフトコントローラは、シフト制御信号をシフタに伝送する。
本発明によれば、データストリーム内に含まれる複数の可変長符号化されたデータ値の長さを1クロックサイクル内に決定する装置および方法が提供することができる。
(概観)
図1は、本発明を適用可能な可変長デコーダ(VLD)係数デコーダ100の一例を示すブロック図である。本発明によれば、可能なあらゆる組み合わせによる2つの連続する符号化されたデータ値を1クロックサイクル内に復号化できる、改善された可変長デコーダ(VLD)長さ復号化ループ110が実現される。図1の例では、本発明は、DCT係数(これらの係数は、符号化されたデータストリームの85%を占めている)の長さを復号化するために用いられる。しかし、本発明がその他の可変長符号化されたデータ値(例えば、高レベルシンタクスあるいはその他の可変長符号化値)を復号化するのにも用いることができることは、当業者には理解できるであろう。
図2は、図1に示されているVLD長さ復号化ループ110を示すブロック図である。本実施例の長さ復号化ループ装置110は、可変長符号化されたデータ値を第1の長さデコーダ210に伝送するシフタ206を備えている。第1の長さデコーダ210は、第1の復号化動作をおこなうことによって、複数の符号化されたデータ値のうちの第1のデータ値の長さ211を決定する。
第2の長さ復号化手段212は、シフタ/マルチプレクサ206から複数の符号化されたデータ値を受け取り、第2の復号化動作をおこなうことによって、第1の符号化されたデータ値の直後に続く第2のデータ値の長さを決定するように結合されている。第1および第2の復号化動作は、同時におこなわれる。第2の長さ復号化手段212は、複数のデコーダ212a〜212pを備えている。これら複数のデコーダはそれぞれ、第1の符号化されたデータ値の可能なさまざまな長さの1つに対応している。デコーダ212a〜212pはそれぞれ、第2の符号化されたデータ値の対応する長さ213a〜213pを同時に決定し、それぞれは、第1の符号化されたデータ値とは異なる長さをもつとする。組み合わされた長さデコーダ214は、第1のデータ値の実際に復号化された長さ211を用いて、デコーダ212a〜212pにより出力された復号化された長さ213a〜213pのうちから1つを選択し、組み合わされた長さ信号L3を出力する。
ブロック218、222、234および236を含むシフトコントローラは、組み合わされた長さデコーダ214から組み合わされた長さを受け取るように結合されており、複数の符号化されたデータ値のうちのどれが、第1および第2の長さ復号化手段に伝送されるかを決定するのに用いられるシフト制御信号235をつくる。シフト制御信号235は、シフタ206に伝送される。
以下に、図2を参照して、本実施例によるVLD長さ復号化ループ110についてさらに詳しく説明する。
(詳細な説明)
ここでは、「情報技術−動画およびそれに付随する音声情報の生成符号化:ビデオ」の勧告H.262(ISO/IEC13818−2、1995年(E))(以下では、「MPEG規格」と称する)の実際に用いられている知識を用いるものとし、その詳細については割愛する。
再び図1を参照すると、VLD長さ復号化ループ110は、48ビットの圧縮された入力データストリームDATA_IN111を受け取る。このデータス
トリームは、符号化されたデータを含んでいる。VLD長さ復号化ループ110に与えられるその他の入力信号(MACROBLOCK_INTRA、LUMA/CHROMA、INTRA_VLC_FORMAT、TEST_MODE、HOLD、RESTARTおよびEXTERNAL_MUX_POSITION)について、以下に図3を参照して詳細に説明する。MACROBLOCK_INTRAフラグは、MPEG規格のパラグラフ6.3.17.1およびテーブルB−2〜B−8に規定されている。LUMA/CHROMAフラグは、受け取られたブロックが輝度ブロックであるか、あるいはクロミナンスブロックであるかを示す。INTRA_VLC_FORMATは、MPEG規格のパラグラフ6.2.3.1の「ピクチャ符号化拡張」に詳述されている。
VLD長さ復号化ループ110は、1クロックサイクルのあいだに、2つの連続する符号化されたデータ値の長さを決定する。第1の符号化されたデータ値の長さは、L1で表され、第1および第2の符号化されたデータ値の組み合わされた長さは、L3で表される。入力データ111のサブセット112ならびに復号化された長さ値L1およびL3は、VLDラン/レベル復号化ブロック120、VLDイントラDC係数復号化ブロック130および出力制御ブロック140に伝送される。
VLD長さ復号化ループ110は、B14信号およびB15信号をVLDラン/レベル復号化機能120に与えることによって、ラン/レベル復号化においてどのLUTを用いるべきか識別する。B14信号は、DCT係数テーブル、0、LUT(MPEG規格、付録B、テーブルB−14に詳述されている)が用いられることを示す。B15信号は、DCT係数テーブル、1、情報(MPEG規格、付録B、テーブルB−15に詳述されている)が用いられることを示す。これらのテーブルを、本明細書では、それぞれ「テーブルB−14」および「テーブルB−15」と称する。これらのB−14およびB−15テーブルは、それぞれのVLCについてランおよびレベルを指定する(ただし、エスケープ符号化された値は別である。この符号の場合、ランおよびレベルは、テーブルB−16にその詳細が述べられている)。
係数(テーブルB−14またはB−15で識別された)の復号化された値が、「エンドオブブロック」シーケンスであるとき、そのブロックには、それ以上の係数はない。VLD長さ復号化ループ110は、エンドオブブロックシーケンスを検出すると、END_OF_BLOCK信号を出力制御機能140に与える。
VLDラン/レベル復号化ブロック120は、入力データと、長さL1およびL3と、テーブルB14およびテーブルB15とを受け取る。VLDラン/レベル復号化ブロック120は、この情報を用いて、復号化された値を決定する。DCイントラ係数以外のDCT係数については、VLDラン/レベル復号化ブロック120は、入力データにおける2つのVLCのそれぞれについて(MPEG規格、パラグラフ3.79および3.119に規定されているように)ランおよびレベルを決定する。これらの値は、それぞれRUN_1、LEVEL_1、RUN_2およびLEVEL_2と表される。復号化された値の決定は、テーブルB14またはB15に基づいているので、ある所与のブロックに適用可能なテーブルは、MPEG規格のテーブル7−3に従って決定される。
ランおよびレベルの可能な多数の組み合わせは、それらを表す可変長符号(VLC)をもっていない。これらの統計的には稀である組み合わせを符号化するためには、MPEG規格のパラグラフ7.2.2.3に詳述されているエスケープ符号化方法が用いられる。この方法によれば、エスケープVLCの後には、ラン値に対応する6ビットの固定長符号が続く。そして、この固定長符号の後には、正負の符号つきレベルの値を表す12ビットの固定長符号が続く。もし符号化されたデータが「エスケープ符号」を含んでいれば、VLDラン/レベル復号化ブロック120は、ランおよびレベル値を、MPEG規格、付録B、テーブルB−16に規定されているように与える。エスケープ符号の検出は、図1では信号ESC_1およびESC_2により表されており、復号化された値は、変数RUN_1_ESC、LEVEL_1_ESC、RUN_2_ESCおよびLEVEL_2_ESCにより与えられている。なお、エスケープ符号は依然としてVLCであり、エスケープ符号は、B14およびB15のLUTのそれぞれに現れる。エスケープ符号化された値のランおよびレベル値は固定長ではあるが、ランおよびレベルに先行するエスケープ符号は、VLCである。
本実施例の係数デコーダでは、別個のVLDイントラDC係数復号化機能130は、イントラ符号化されたブロックの第1のVLC(すなわち、周波数が両方の次元でゼロになるDC係数)を復号化する。あるブロックにおける第1のVLCがVLD長さ復号化ループ110により受け取られると、COEF_1出力信号がセットされる。COEF_1およびMACROBLOCK_INTRAが共にセットされると、VLDイントラDC係数復号化機能130がイネーブルされる。VLDイントラDC係数復号化機能130は、選択されたデータと、長さ復号化ループ110により与えられた第1の符号化されたデータ値の長さとを用いて、DC係数を復号化する。VLDイントラDC係数復号化機能130により復号化されたdct_dc_size値は、MPEG規格、付録B、テーブルB−12およびB−13に詳述されている。もしブロックが輝度ブロックであるなら、テーブルB−12のdct_dc_size値が用いられる。もしブロックがクロミナンスブロックであるなら、テーブルB−13のdct_dc_size値が用いられる。
もしdct_dc_sizeの復号化された値がゼロであるなら、VLCの後には、固定長符号dc_dct_differentialが続く。dc_dct_differentialの長さは、dc_dct_sizeビット長である。微分値は、まず符号化されたデータから復元される。この微分値は予測器に加えられ、最後に復号化された係数を復元する。イントラDC係数復号化機能130は、当業者であれば容易に作成できるであろう。
出力コントローラ140は、VLD長さ復号化ループ110から、組み合わされた長さビットL3(113)の2つと、END_OF_BLOCK信号およびERROR信号とを受け取る。また、出力コントローラ140は、INTRA_VLC_FORMAT信号も受け取る。出力コントローラ140は、2つの信号ENABLE_1およびENABLE_2を発生する。これらの信号は、いつRUN信号およびLEVEL信号が有効な情報を含んでいるかを示す。出力コントローラ140は、ブロックのはじめにENABLE_1信号およびENABLE_2信号をセットし、ブロックの終わりにENABLE_1信号およびENABLE_2信号をリセットする。どちらのテーブル(B14かB15か)が用いられる(INTRA_VLC_FORMATにより示される)か、また、END_OF_BLOCKが発生する時にL3(0)がセットされるか、L3(2)がセットされるかによって、出力コントローラ140は、ブロックの最後の符号が、RUN_1/LEVEL_1であるか、あるいはRUN_2/LEVEL_2であるか判定する。もしエラーが検出されれば(ERROR信号が論理ハイに設定されると)、ENABLE_1およびENABLE_2はリセットされる。
VLDラン/レベル復号化ブロック120およびイントラDC係数復号化機能130からの出力信号は、出力mux150に与えられる。出力mux150は、ESC_1信号を用いて、RUN_1およびLEVEL_1の値(121および122)か、または、RUN_1_ESCおよびLEVEL_1_ESCの値(123および124)のいずれかを選択する。同様に、出力mux150は、ESC_2信号を用いて、RUN_2およびLEVEL_2の値(125および126)か、または、RUN_2_ESCおよびLEVEL_2_ESCの値(127および128)のいずれかを選択する。選択された値は、RUN_1値151、LEVEL_1値152、RUN_2値153、およびLEVEL_2値154として出力される。また、FC_FLAGおよびMACROBLOCK_INTRA信号は、イントラ符号化されたブロックの係数が第1の係数の場合(つまり、DC係数であるとき)、DC_LEVELを選択する。出力mux150は、DC係数をRUN_1/LEVEL_1チャネル上に伝送する。
図2は、VLD長さ復号化ループ110の一実施形態を示すブロック図である。
シフトメカニズムが、データストリームDATA_INを受け取るように設けられている。この実施形態例では、シフトメカニズムは、シフタ/マルチプレクサ206と、2つのレジスタ202および204とを備えている。シフタ/マルチプレクサ206は、シフト制御信号235に応答して、複数の可変長符号化されたデータ値のサブセットを伝送し、長さを復号化する。
レジスタ202および204はそれぞれ、可能な最大長のVLCを2つ格納できるサイズである。この実施形態例では、最大長のVLCは、24ビット長である。よって、各レジスタは48ビットを保持できる。シフタ/マルチプレクサ206は、レジスタ202と204とを合わせた(1未満)ビットと同数のビットを保持する。本実施例のレジスタ202は、新しいデータの48ビットを受け取り、受け取ったデータをレジスタ204とシフタ/マルチプレクサ206とに出力する。よって、レジスタ204は、レジスタ202よりも常に1サイクルだけ遅れている。レジスタ202および204の内容がレジスタ206に伝えられると、レジスタ202の内容は、レジスタ204にシフトダウンされ、新しい48ビットがレジスタ202に伝えられ、それらの両方がシフタ/マルチプレクサ206に伝えられる。その結果、レジスタ202および204がイネーブルされ、新しい48ビットワードをシフトすると、これらのレジスタは、シフタ/マルチプレクサ206の内容の48ビットの下向きのシフトをおこなう。このことは、現在シフタ/マルチプレクサ206に格納されている95ビットのうちの48ビット以上が、既に長さ復号化機能208に伝えられて(おり、後述するように、「48よりも大きい」信号238を伝送して、レジスタ202および204をイネーブルして)いる時に起こる。本実施例のシフタ/マルチプレクサ206は、その内容の48ビットのサブセットを、デュアル長さ復号化機能208に伝送する。
長さ復号化機能208は、第1および第2の符号長復号化手段の両方を備えている。本実施形態例では、第1の長さ復号化手段は、複数の符号化されたデータ値のサブセットをシフタ/マルチプレクサ206から受け取るように結合された従来のデコーダ回路210である。デコーダ210は、第1の復号化動作をおこなうことによって、そのサブセットにおける複数の符号化されたデータ値のうちの第1のデータ値の長さを決定する。
これらの係数が、テーブルB−14およびB−15で符号化されるやりかたが原因で、VLCの長さを決定するには、(少なくとも1ビットは必要であるが)最高でも12ビットが必要になるだけである(24ビット長の符号の場合でも同様である)。よって、第1の符号が24ビット符号であり、第2の符号が17ビット符号である場合、両方の長さを決定するのには、36ビットを処理することが必要である。この場合、最初の6ビットが第1の符号の長さを識別し、第25〜第36のビットが、第2の符号の長さを識別する。本実施形態例では、符号がLSBからMSBへと復号化されるように、レジスタはロードされる。また、それぞれのVLCのうち(最高でも)12個のLSBが、VLCの長さを識別するのに用いられる。
デコーダ回路210は、例えば、読み出し専用メモリ(ROM)、プログラマブル論理アレイ(PLA)、論理ゲート(不図示)などを備えていてもよい。第1の符号化された値を構成する入力列内のmビットのうち、最初のnビット(ただし、n<m。nおよびmは共に整数)が符号の長さを決定するのに用いられる。例えば、もしmが24に等しく、nが12に等しいのなら、最初の12ビットが符号の長さを示し、残りのビットが符号および正負を規定するようにすることができる。
デコーダ210は、DC係数およびAC係数の両方の長さを復号化する。DC係数の長さは、B12(輝度)LUTまたはB13(クロミナンス)LUTのいずれかを用いて復号化され、AC係数は、B14のLUT(非イントラ符号化されたブロックおよびintra_vlc_formatを有するイントラ符号化されたブロックがゼロに等しい場合)またはB15のLUT(intra_vlc_formatを有するイントラ符号化されたブロックが1に等しい場合)のいずれかを用いて復号化される。したがって、デコーダ210は、いずれの係数が現在復号化されているにせよ、その係数に対して用いるべきルックアップテーブルを決定するためには、制御ロジック216からの信号B12、B13、B14、B15、B14−B15、COEF_1を必要とする。これらの信号は、適切なLUTを用いるようにデコーダ210を構成する。
デコーダ回路210は、長さを決定するのに用いられるnビットに対応する符号を格納する。符号化されたデータ値のサブセットの第1の部分(最高nビット長)が、デコーダ回路210に格納されている符号と一致するようになるとき、デコーダ210は、第1の符号化された値の長さを識別する第1のヒット信号211を出力する。
第1の長さデコーダ210は、第1の符号化されたデータ値の可能なさまざまな長さのそれぞれに対応するビットを出力する。長さデコーダ210により出力された複数のビットのうちの単一のビットが、値1に設定される。設定されたこのビットは、第1の長さデコーダ210により決定された第1の符号化されたデータ値の長さに対応する。20ビット信号211が、VLD長さ復号化ループ110から、図2の信号L1として出力される。
本実施形態例では、第1の可変長符号は、2〜20のそれぞれの値および値24に対応する20種のそれぞれ異なる長さ値を有しうる。可能なこれらの長さは、MPEG規格のテーブルB12〜B15により決定される。長さ信号211は、20ビット信号であり、それぞれのビットは、符号化された値の20種の可能な長さのそれぞれ1つに対応している。信号211における20のビットのうちの19のビットは、値0を有しており、第1の符号の復号化された長さに対応する、20のビットのうちの残りの1つのビットは、1に設定される。出力信号211のこのフォームの利点は、出力信号211が復号化を必要としない点にある。出力信号211の設定された単一のビットは、後述するように、それ以上復号化をおこなわなくても、イネーブル信号として用いることができる。
本実施形態例では、21ビット長のDC係数を復号化する必要がない。なぜなら、本実施例の装置は、メインプロファイルMPEG−2デコーダにおいて用いられているので、ビットストリーム中で21ビット符号に遭遇することはないからである。ただし、その他のタイプのデータストリームの場合、異なるさまざまな符号長に遭遇する可能性があること、また、適切なLUTにおいてどのような長さが追加的に必要になっても、第1の長さデコーダはそれらの長さをすべて受け入れることができることは、当業者には認識できるであろう。
第2の長さ復号化手段212は、複数の符号化されたデータ値のサブセットを受け取るように、シフタ/マルチプレクサ206に結合されている。第2の長さ復号化手段212は、複数の長さデコーダ212a〜212pを備えている。これら複数のデコーダはそれぞれ、第1の符号化されたデータ値の可能なさまざまな長さの1つに対応している。長さデコーダ212a〜212pはそれぞれ、複数の符号化されたデータ値のサブセットの互いに異なる対応部分を同時に復号化する。第2の長さ復号化手段212は、第2の復号化動作をおこなうことによって、そのサブセットにおける複数の符号化されたデータ値のうちの第2のデータ値の長さを個別に決定する。この第2のデータ値は、そのサブセットでは、第1の符号化されたデータ値の直後に続いている。第1および第2の復号化動作は、同時におこなわれる。
なお、本願明細書で用いられている用語「個別に識別する」とは、第2の符号を第1の符号とは別個の符号として扱うことによって、第2の符号の長さが決定されることを意味する。第1の符号の長さは、第1のデコーダ210により決定され、第2の符号の長さは、第2の長さ復号化手段212により決定される。よって、第1および第2の符号は、米国特許第5,428,356号に記載の内容とは異なり、復号化を目的として1個の2倍長符号に結合されることはない。米国特許第5,428,356号では、2倍長符号はそれぞれ、単一のデコーダにより単一のテーブルルックアップ動作で復号化され、所定のペアの復号化された値を識別する。
例えば、本実施形態例では、第1の符号は、2〜20ビット長または24ビット長である。このサブセットにおけるビットは、通常のかたちでナンバリングされた0〜47である。デコーダ212aは、データ値のサブセットにおいて第3のビット(ビットNo.2)で始まる列の長さを復号化しようと試みる。このビットは、第1の可変長符号の長さが2であれば(そして、2でありさえすれば)、第2の符号化されたデータ値の第1のビットとなる。デコーダ212bは、データ値のサブセットにおいて第4のビット(ビットNo.3)で始まる列を復号化しようと試みる。このビットは、第1の可変長符号の長さが3であれば(そして、3でありさえすれば)、第2の符号化されたデータ値の第1のビットとなる。複数のデコーダ212c〜212rは、当業者には容易に理解できるように、第1の符号化された値の連続する複数の長さに対応している。デコーダ212sは、データ値のサブセットにおいて第21のビット(ビットNo.20)で始まる列を復号化しようと試みる。このビットは、第1の可変長符号の長さが20であれば(そして、20でありさえすれば)、第2の符号化されたデータ値の第1のビットとなる。最後に、デコーダ212pは、データ値のサブセットにおいて第25のビット(ビットNo.24)で始まる列を復号化しようと試みる。このビットは、第1の可変長符号の長さが可能な最大の長さ(つまり24)であれば(そして、24でありさえすれば)、第2の符号化されたデータ値の第1のビットとなる。
図2に示す実施形態例では、第1のデコーダ210がイントラDC係数を処理しているサイクルのあいだは、1個の符号長のみが処理される。第1および第2のAC係数は、DC係数が復号化されるサイクルに後続するサイクルで復号化される。この設計の利点は、長さ復号化機能208が、同一のクロックサイクル内にDC係数およびAC係数を両方とも復号化する必要はないことである。よって、第2の長さ復号化手段212は、16種の可能なAC係数長のそれぞれに対応するデコーダ212a〜212pを備えていさえすればよい。DC係数には発生するが、AC係数には発生しない4種の長さ(12ビット、18ビット、19ビットおよび20ビット)についてデコーダ212q〜212tをさらに追加して設ける必要はない。なお、代わりに選択可能な実施形態では(図5を参照して後述される)、復号化機能508は、第1のAC係数が第2の長さデコーダ512で復号化されるのと同時に、イントラDC係数を長さデコーダ510で復号化できるが、そのような実施形態では、第2の長さ復号化手段にデコーダを追加して設ける必要があることは、当業者には理解できるであろう。
再び図2を参照すると、このブロックに対する第2の符号化された係数は決してDC係数ではありえないので、デコーダ212a〜212pは、AC係数にはB14およびB15のLUTを用いさえすればよい。デコーダ212a〜212pは、制御ロジック216から受け取られたB14、B15およびB14−B15信号により(適切なLUTを与えるように)構成される。
本発明のある局面では、長さデコーダ212a〜212pはそれぞれ、第1の符号化されたデータ値の対応する可能な長さに基づいて、第2の符号化されたデータ値の長さのそれぞれの値を同時に決定する。デコーダ212a〜212pにより決定されたこれらの長さのうちの1つだけが、第2の値の正しい長さである。従来技術では遭遇する遅延(第1の符号化された値の復号化を待って、第2の値の復号化をどこから始めるかを決定する)をなくすために、本発明では、第1の値の長さの復号化をおこなうのと並行して、第2の値の可能なすべての長さを同時に決定する(第2の符号の可能な長さはそれぞれ、第1の符号の互いに異なる可能な長さのうちの対応する1つに基づいている)。その後、第1の値の復号化された長さが、既に発生されている復号化された第2の長さ値のうちの正しい1つの値を選択するのに用いられる。
信号211の単一の設定されたビットをイネーブルビットとして用いることによって、組み合わされた長さデコーダは、第1の長さをそれ以上復号化することなく、デコーダ212a〜212pのうちの単一のデコーダの出力の伝送をすみやかにイネーブルする。第2の長さデコーダ212a〜212pのうちの1つを選択する、組み合わされた長さデコーダ内の論理を構成することは、当業者には容易であろう。
第2の長さ復号化手段の長さデコーダ212a〜212pはそれぞれ、長さデコーダ212a〜212pにより決定された第2の符号化されたデータ値のそれぞれの長さを表す、対応する出力信号213a〜213pを発生する。本実施形態例では、出力信号213a〜213pはそれぞれ、16ビット信号であり、第2の符号化された値の16種の可能な長さ(2〜11、13〜17および24)に対応している。長さ12および18〜20は、DC係数についてのみ用いられ、第2の符号化された値の長さに対応することは決してない。16ビット信号は、第1のデコーダ210により出力される20ビット信号と同様に、15個の「0」と1個の「1」とを含んでいる。
組み合わされた長さデコーダ214は、信号211(第1の長さを示す信号)のこの単一のビットを用いて、出力信号213a〜213pのうちの1つの、長さデコーダ212a〜212pのうちの対応する1つによる伝送をイネーブルする。イネーブルされたこの1つの出力信号は、信号211におけるビットが設定された対象である、第1の符号化されたデータ値の長さに対応するデコーダの出力信号である。換言すれば、組み合わされた長さデコーダ214は、第1の長さ信号211に応答して、長さデコーダ212a〜212pのうちの1つの出力信号を選択する。選択された出力信号(信号213a〜213pのうちの1つ)を有する長さデコーダ(デコーダ212a〜212pのうちの1つ)は、第1の長さ信号211により示された第1の符号化されたデータ値の長さに対応する長さデコーダである。選択された出力信号は、第2の符号化されたデータ値の実際の長さを示す。
例えば、第1の符号化された値が3ビット長であり、第2の符号化された値が17ビット長である場合を考える。もし第1の符号の長さが3であるのなら、信号211の第2のビットの値は「1」に設定され、信号211の第1のビットおよび第3〜第20のビットはすべて、値「0」をもつことになる。第1の値が復号化されるのと同時に、デコーダ212aは、第1の符号化された値の長さが2であると(誤って)仮定して、第2の符号化された値の長さを復号化しようと試み、デコーダ212bは、第1の符号化された値の長さが3であると(正しく)仮定して、第2の符号化された値の長さを復号化する。以下も同様である。組み合わされた長さデコーダ214は、信号211の設定された(第2の)ビットを用いて、デコーダ212b(第2の復号化手段212のデコーダ212a〜212pのうちの第2のデコーダ)の出力信号の伝送をイネーブルする。イネーブルされた出力信号213bは、16ビットをもっている。この場合、第2の符号化された値の長さは17に等しく、出力信号213bの第15のビットの値は「1」に設定され、信号213bの第1〜第14のビットおよび第16のビットの値は「0」に設定される。
本実施形態例では、組み合わされた長さデコーダ214は、40ビットの信号215を出力する。第1の符号化された値の可能な長さ(図2の実施形態におけるAC係数については、2〜11、13〜17および24)は、第2の符号化された値の可能な長さ(MPEG規格のテーブルB14およびB15に規定されているように、2〜11、13〜17および24)と組み合わせることができる。その結果、組み合わされた長さ2〜35、37〜41および48に対応する40種の異なる組み合わされた長さができる。40のビットのうちの1つが設定されることによって、第1および第2の符号化された値の組み合わされた長さを識別する。信号215のその他39のビットの値は、すべて「0」に設定される。40ビットの出力信号L3は、2つの符号化されたデータ値の組み合わされた長さを識別する。信号L1およびL3は、VLDラン/レベル復号化機能120(図1に示されている)に伝送される。
VLD長さ復号化ループはまた、第1および第2の符号化されたデータ値の組み合わされた長さ215を受け取るように結合されたシフト制御メカニズム(機能218、222、234および236を含む)も備えている。シフト制御メカニズムは、シフト制御信号235をつくり、符号化されたデータ値のどれが、長さ復号化機能208に伝送されるサブセットに含まれているかを決定し、シフト制御信号235をシフタ/マルチプレクサ206に伝送する。シフト制御メカニズムはまた、シフトイネーブル信号238をつくり、レジスタ202および204に伝送することによって、新しいデータを時々刻々とシフタ/マルチプレクサ206にロードし、シフタ/マルチプレクサ206における「パイプライン」に十分な符号化されたデータを保持することによって、長さ復号化における割り込みを避ける。
シフト制御メカニズムの2つのレジスタ234および236には、シフタ/マルチプレクサ206のある位置の6つの最下位ビット(LSB)が与えられる。これらのLSBは、第1の符号化されたデータ値のLSBが位置している、1〜48の間のビット位置を示している。
レジスタ234における値は、信号235を介して、シフタ/マルチプレクサ206のmux選択端子206aに与えられることによって、シフタ/マルチプレクサ206に、信号235において識別されたビットに始まる48ビットを供給させる。
レジスタ236における値は、信号237を介して、和発生ブロック218の入力に与えられる。和発生ブロック218の目的は、次の開始ビット位置をシフタ/マルチプレクサ206内で、データストリームDATA_INにおける第3および第4の符号化されたデータ値(つまり、第1および第2の符号化されたデータ値の直後に続く2つの値)について計算することにある。この計算は、長さデコーダ210および第2の長さ復号化手段212によりおこなわれる長さ復号化動作とパラレルにおこなわれる。和発生ブロック218は、複数の加算器2201〜22040を含んでいる。加算器2201〜22040のそれぞれは、組み合わされた長さ215の互いに異なる値の1つに対応している(すなわち、それぞれの加算器は、組み合わされた長さの可能なそれぞれの値に対応している)。それぞれの加算器は、それに対応する候補シフト制御信号を同時につくる。それぞれの加算器は、長さデコーダ212a〜212pが第2の符号化されたデータ値の長さを復号化するのと同一のクロックサイクル内に、第1の符号化されたデータ値の位置に対して、それぞれ異なる定数を加算する(これにより、加算器の複雑さが緩和される。なぜなら、それぞれの加算器は、単一の定数を加算するだけだからである)。よって、40種の異なる候補位置が同時に計算される。ここで、それらの位置の1つ1つは、可能な組み合わされた長さのそれぞれに対応している。それぞれの加算器における各定数は、その加算器の対応する組み合わされた長さである。それぞれの加算器は、モジュロ48加算をおこなう。それぞれの加算器の出力は、7ビット信号2211〜22140である。加算器出力信号の6つのLSBが、加算器により計算されたモジュロ48の和を識別し、最上位ビット(MSB)は、その和が48以上であるときに設定されるフラグである。加算器2201〜22040の出力信号2211〜22140は、和選択機能222に伝送される。
和選択器222の出力信号223のMSB238が「1」に設定されるとき、第2の符号化されたデータ値のMSBは、シフタ/マルチプレクサ206の48のMSBの中からその位置が特定される。シフタ/マルチプレクサ206を、まだ復号化されていないデータで満たしたままにするために、出力信号223のMSB238が、レジスタ202および204からシフタ/マルチプレクサ206への新しいデータのロードをイネーブルするために用いられる。上述したように、このロード演算の結果、シフタ/マルチプレクサ206内のデータは下向きにシフトされる。その結果、以前は47のMSBであったものが、今では47のLSBになっている。新しいデータの48の追加ビットは、シフタ/マルチプレクサ206のMSB位置に移動される。
和選択器222は、40の候補位置を表す40の候補シフト制御信号を受け取る。和選択器222はまた、レジスタ236から現在のmux位置237を受け取り、外部から与えられたmux位置240も受け取る。これらの位置については、共に後述する。組み合わされた長さデコーダ214の出力信号215は、和選択器222を制御するのに用いられる。組み合わされた長さ信号215の単一の設定されたビットは、イネーブル信号として、加算器2201〜22040の出力のうちの1つの、和選択器222からの伝送をイネーブルする。
図2の実施形態では、イントラDC係数が第1の長さデコーダ210において処理されているときに、組み合わされた長さデコーダ214は、DC係数の長さに等しい組み合わされた長さ215を出力する。その結果、第1および第2のAC係数は、次のサイクルで処理される。よって、イントラDC係数の長さを別個のサイクルで復号化することによって、第2の長さ復号化手段212をわずか16個のデコーダ212a〜212pで実現することができる。
40の出力信号2211〜22140のうちどれも和選択器222により選択されない状況は2つある。第1の状況は、再開信号を制御ロジック216に伝送することによりシステムが初期化される時、制御ロジック216がロード外部信号を和選択器222に発して、和選択器222に、外部から供給されたmux位置240を出力させる状況である。制御ロジック216については、図3を参照して後でもっと詳しく説明する。
加算器出力信号2211〜22140のうちどれも用いられないもう1つの状況は、ブロックの処理が完了した時に、ブロックの終わりが検出される状況である。制御ロジック216は、バイパス信号を和選択器222に発する。和選択器222は、バイパス入力端子222aにおいて検出されて出力値223として用いられる、現在のmux位置237を選択する。よって、シフタ/マルチプレクサ206は、それ以上のインデックスを与えなくても、現在の状態にとどまる。
図3は、VLD長さ復号化制御ロジック216のためのロジックの一例を示すブロック図である。制御ロジックは、外部から指定されたいくつかのパラメータを受け取る。このようなパラメータとしては、例えば、BP_OVRD(HOLD)、RESTART、TEST_MODE、MACROBLOCK_INTRA、LUMA/CHROMAおよびINTRA_VLC_FORMATなどがある。復号化機能208は、制御ロジック216に、ブロックの終わりまたはエラー状態のいずれが検出されたかの表示を与える。制御ロジック216は、デコーダ210および212a〜212pに対する以下のパラメータを識別する。(1)係数はDC係数であるか、あるいはその他のタイプであるか、および(2)第1および第2の符号化された値に対して、係数テーブルB12〜B15のいずれが用いられているか、の2つである。
ORゲート314は、もしBP_OVRD(HOLD)信号が論理ハイの状態に設定されるか、ブロックの終わりが検出される(END_OF_BLOCKが論理ハイの状態にある)か、誤りが検出される(ERR_FLAGが論理ハイの状態にある)か、または、BYPASSフラグが以前に論理ハイの状態に設定されていたのなら、BYPASSフラグを論理ハイの状態に設定する。いったんBYPASSフラグが論理ハイの状態に設定されると、このフラグは、RESTART信号が論理ハイの状態に設定されるまで、その状態にとどまる。BYPASSフラグは和選択器222に伝送され(図2に示す)、RESET信号が論理ハイの状態に設定されるまで、シフタ/マルチプレクサ206を同じ状態にとどまらせる。
END_OF_BLOCK信号が論理ハイの状態であるとき、ORゲート316は、フリップフロップ318(出力EOB_FLAG)を論理ハイの状態に設定し、フリップフロップ318は、RESTART信号が論理ハイの状態に設定されるまでその状態にとどまる。END_OF_BLOCK信号は、出力コントローラ140(図1に示す)に与えられる。
ORゲート324は、ERROR信号が論理ハイの状態にあるとき、フリップフロップ326のD端子を論理ハイに設定する(ことにより、ERR_FLAG信号を論理ハイに設定する)と、END_OF_BLOCK信号もフリップフロップ312のBYPASS出力も論理ハイの状態ではなくなる。ERR_FLAG信号は、出力コントローラ140(図1)に与えられる。いったんERR_FLAGが論理ハイの状態に設定されると、このフラグは、フリップフロップ326がRESTART信号によりリセットされるまで、論理ハイのままとなる。
ORゲート328は、TEST_MODE信号またはRESTART信号が論理ハイの状態にあるときには、論理ハイの状態であるLOAD_EXTERNAL信号を出力する。LOAD_EXTERNAL信号は、和選択器222(図2に示されている)に与えられる。LOAD_EXTERNALが論理ハイの状態にあるとき、外部から指定されたmux位置がシフタ/マルチプレクサ206(図2に示されている)により用いられる。
RESTARTが論理ハイの状態にあるとき、フリップフロップ330のD端子は論理ハイの状態に設定される(これにより、COEFF_1信号を論理ハイの状態に設定する)。よって、COEFF_1信号は、(DC係数が処理されている)ブロック処理動作のスタート時に論理ハイの状態に設定される。COEFF_1信号は、長さデコーダ機能210に伝送され(ることにより、DC係数の長さを決定するデコーダ210を構成し)、VLDイントラDC係数復号化機能130にも与えられる。
ANDゲート322は、RESTARTおよびMACROBLOCK_INTRA信号が論理ハイの状態にあり、LUMA/CHROMA信号が論理ローの状態にあるとき、フリップフロップ334のD端子を論理ハイの状態に設定することにより、B12出力信号を論理ハイの状態に設定する。このことは、イントラ符号化された輝度ブロックの最初の(DC)係数を処理する際に起こる。B12信号は、長さデコーダ210(図2)に伝送される。
ANDゲート336は、RESTART、MACROBLOCK_INTRAおよびLUMA/CHROMA信号がすべて論理ハイの状態にあるとき、フリップフロップ338のD端子を論理ハイの状態に設定し、B13フラグを論理ハイの状態に設定する。このことは、イントラ符号化されたクロミナンスブロックの最初の(DC)係数を処理するときに起こる。B13信号は、長さデコーダ210に伝送される(図2)。
図3において参照番号340〜354の付けられた論理要素は、MPEG規格のテーブル7−3に詳述されている「DCT係数VLCテーブルの選択」を実現する。ORゲート342は、MACRO_BLOCK_INTRAフラグが論理ローの状態にあるとき、またはMACRO_BLOCK_INTRAフラグが論理ハイであり、RESTARTおよびINTRA_VLC_FORMATが共に論理ローの状態であるときには、フリップフロップ344のD端子を論理ハイの状態に設定することによって、B14フラグを論理ハイの状態に設定する。これにより、非イントラ符号化されたブロックの係数、および、INTRA_VLC_FORMAT値がゼロとなる、DC係数以外のイントラ符号化されたブロックの係数については、デコーダ212a〜212pがB14テーブルを用いるように、B14フラグを設定する。
ANDゲート346は、MACRO_BLOCK_INTRAおよびINTRA_VLC_FORMATフラグが論理ハイの状態であり、RESARTが論理ローの状態であるときには、フリップフロップ348のD端子を論理ハイの状態に設定することにより、B15フラグを論理ハイの状態に設定する。これにより、INTRA_VLC_FORMATの値が1になるイントラ符号化されたブロックの(DC係数以外の)係数については、デコーダ212a〜212pがB15テーブルを用いるように、B15フラグを設定する。
ORゲート352は、MACROBLOCK_INTRAフラグが論理ローに設定される時、または、MACROBLOCK_INTRAが論理ハイに設定され、かつRESTART信号が論理ローに設定される時には、フリップフロップ354のD端子を論理ハイの状態に設定することにより、B14_B15フラグを論理ハイの状態に設定する。よって、デコーダ212a〜212pが(非イントラ符号化されたマクロブロックについて、さらにはイントラ符号化されたマクロブロックのAC係数について)B14テーブルまたはB15テーブルを用いるべきときにはいつも、B14_B15フラグは、論理ハイの状態に設定される。
図4は、図1に示されているVLDラン/レベルデコーダ120の一例を示すブロック図である。DC係数には別個の機能(VLDイントラDC係数デコーダ130)が用いられるので、イントラ符号化されたブロックの場合には、ブロック120はDC係数を処理しない。この回路は、長さ2〜11、13〜17および24をもつ符号を処理しさえすればよい。VLDラン/レベル復号化機能120内でそれぞれ第1の符号化されたデータ値および第2の符号化されたデータ値に対応する各ラン/レベル復号化回路は、以下に説明する部分的な相違点を別にすれば、非常によく似ている。よって、L1信号(図1に示されている)の16のビット(ビット0〜9、11〜15および19)のみが用いられる。これら16のビットは、図4の左上隅にL1(15:0)として示されている。
符号1/データ2選択器410は、第1の符号の長さL1を処理する。もし長さL1が24ビットなら(すなわち、もし16ビット信号の最後のビットがセットされれば)、第1の値はエスケープ符号化される。16ビットL1信号の最後のビットは、ESC_1信号として出力される。エスケープ符号化された値については、最初の6ビットがエスケープ符号を示し、次の6ビットがラン値を示し、最後の12ビットがレベル値を示す。よって長さが24ビットであるとき、ESC_1フラグは論理ハイの値に設定される。DATA_IN信号のビットNo.6〜11(第7〜第12のビット)は、RUN1_ESC値として伝送される。この値は、ESC_1フラグがセットされるとき、出力mux150(図1)により出力される。DATA_IN信号のビットNo.12〜23(第13〜第24のビット)は、LEVEL_1_ESC値として伝送される。この値は、ESC_1フラグがセットされる時に出力mux150(図1)により出力される。
その他すべてのVLC(非エスケープ符号化された値)については、VLCの長さは既に(最高で)12のLSBにより識別されているので、図4でCode_1(4:0)およびCode_2(4:0)により示されている最高5ビットを用いてランおよびレベルを決定することが可能である。例えば、テーブルB−14では、17ビット長であるVLCは16個ある。これらのVLCの16個すべてが同じ12のLSBをもっており、次の5ビットは、17ビットのVLCのそれぞれについてランおよびレベル値の互いに異なる組み合わせを識別する。
Code_1(4:0)の5ビットは、ランデコーダ420およびレベルデコーダ430に伝送される。デコーダ420および430は、テーブルB−14およびB−15からランおよびレベルの値を格納するLUTを含んでいる。B14信号が論理ハイの値をもっているときは、テーブルB14を用いることができる。B15信号が論理ハイの値をもっているときは、(図2および図3を参照して既に述べたように)テーブルB15を用いることができる。Code_1(4:0)のビットと、L1と、B14およびB15信号とが与えられたとき、ランデコーダ420およびレベルデコーダ430は、それぞれランおよびレベルを決定する。
符号1/データ2選択器410はまた、第2の符号化されたデータ値Data_2を(L1の値に基づいて)パーシングし、
(1)第2の符号化されたデータ値Data_2の最初の17ビット[Data_2(16:0)]を符号2選択器450へと伝送し、
(2)Data_2の第7〜第12のビット[Data_2(11:6)]をレジスタ480へと、信号RUN_2_ESCとして伝送し、かつ
(3)Data_2の第13〜第24のビット[Data_2(23:12)]をレジスタ480へと、信号LEVEL_2_ESCとして伝送する。
VLDラン/レベルデコーダ120は、長さ2デコーダ440を備えている。このデコーダ440は、L1(15:0)信号とL3(37:0)信号との組み合わされた長さを処理することによって、第2の符号化されたデータ値の長さを決定する。L1およびL3は、それぞれ、値「1」に対して単一のビットが設定されたマルチビット信号のかたちで与えられるので、長さ2デコーダ440は、第2の符号化されたデータ値の長さを効率よく識別し、その長さを、単一のビットのみが値「1」に設定された16ビット値のかたちで出力するのに、除算器ではなく論理ゲーティングを用いることができる。符号1/データ2選択器410と同様に、第16のビットL2(15)は、エスケープ符号化された24ビットの符号化されたデータ値について論理ローの状態に設定される。長さ2デコーダ440を構成することは、当業者には容易であろう。
符号2選択器は、選択器410と同様にL2信号を処理し、非エスケープ符号化された値についてランおよびレベルを識別するのに必要とされる5ビットのData_2(4:0)をパーシングする。符号2選択器は、符号1選択器410がこの情報をデコーダ420および430へと伝送するのと同様に、符号2(4:0)の値をランデコーダ460およびレベルデコーダ470へと伝送する。ランデコーダ460およびレベルデコーダ470は、それぞれランデコーダ420およびレベルデコーダ430と同じであるので、その説明はここでは省略する。
図5は、長さ復号化機能510の別の実施形態を示すブロック図である。図5では、図2に示されている要素および信号と同様の要素および信号には、同一の参照番号を付している。そのような要素および信号については、ここでは説明を省略する。
長さ復号化機能510は、第1のAC係数が第2の長さ復号化手段512において復号化されているのと同時に、イントラDC係数の長さを長さ1デコーダ510において復号化することができる。この能力を実現するために、デコーダ512q〜512tがさらに設けられる。その結果、第2の長さ復号化手段512は、イントラDC係数の可能な長さ(2〜4、6〜20)あるいはAC係数の可能な長さ(2〜11、13〜17、24)のそれぞれに対応する長さデコーダを備えている。すなわち、第1の値がDC係数を表していようが、AC係数を表していようが、第1の符号化された値のすべての可能な長さ(2〜20、24)に対応する20個のデコーダ512a〜512tがある。
この構成では、組み合わされた長さL3は、組み合わされた長さ2〜44および48に対応する44種の値をとることができる。よって、44種の可能な組み合わされた長さに対応する44個の加算器5201〜52044が(図2の40個の加算器の代わりに)設けられる。よって、和選択器522は、46個の値(44種の可能な長さ、バイパス、および外部から与えられた位置)のうちの一つを選択しなければならない。
以上の説明では、可変長デコーダがDCT係数長さデコーダである例を述べた。係数デコーダ100(図1)に類似した回路構成(不図示)を、MPEG規格のパラグラフ6.1〜6.13に規定されている高レベルシンタクスエレメントを復号化するのに用いることができる。係数デコーダ100においてブロックの終わりに到達したとき、BYPASSフラグ(図3を参照して既に述べた)が論理ハイに設定され、制御は、次の符号の位置と共に、高レベルシンタクスデコーダへと転送される。よって、高レベル符号が復号化されるとき、RESTART信号が論理ハイの状態に設定され、次の2つのDCT係数を復号化する。
また、以上の説明では、一例として、MPEG符号化されたビデオデータビットストリームを用いる実施形態について本発明を説明したが、本発明は、その他のタイプの可変長デコーダにおいても実施可能である。
以上に本発明を、その実施形態例に言及しながら説明したが、本発明はこれに限定されるわけではない。逆に、添付の請求の範囲は、当業者が本発明の真の精神および範囲からはずれることなくなしうる、本発明のその他の変形および実施形態を含むものと解釈されるべきものである。
可変長デコーダ係数デコーダの一例を示すブロック図である。 図1に示されている可変長デコーダのVLD長さ復号化ループを示すブロック図である。 図2に示されている制御ロジックを示すブロック図である。 図1に示されているラン/レベルデコーダを示すブロック図である。 図1に示されている可変長デコーダにおいて用いることができるVLD長さ復号化ループの別の例を示すブロック図である。
符号の説明
100 可変長デコーダ係数デコーダ
110 VLD長さ復号化ループ
111 入力データ
112 サブセット
120 VLDラン/レベル復号化ブロック
121 RUN_1
122 LEVEL_1
123 RUN_1_ESC
124 LEVEL_1_ESC
125 RUN_2
126 LEVEL_2
127 RUN_2_ESC
128 LEVEL_2_ESC
130 VLDイントラDC係数復号化ブロック
140 出力制御ブロック
150 出力マルチプレクサ
151 RUN_1
152 LEVEL_1
153 RUN_2
154 LEVEL_2

Claims (11)

  1. 複数の可変長符号化されたデータ値のデータストリームを1クロックサイクル内に復号化する装置であって、
    該データストリームを受け取り、シフト制御信号に応答して、該複数の可変長符号化されたデータ値のサブセットを伝送するシフト手段と、
    該複数の可変長符号化されたデータ値の最大符号長の数より少ない数のアドレス入力を有するルックアップテーブルを含む第1の長さ決定手段であって、該ルックアップテーブルは、該複数の符号化されたデータ値のサブセットを受け取るように結合されており、第1の長さ決定動作を実行して、該サブセットにおける該複数の符号化されたデータ値の第1の符号化されたデータ値の長さを決定する、第1の長さ決定手段と、
    複数のルックアップテーブルを含む第2の長さ決定手段であって、該複数のルックアップテーブルのそれぞれは、該複数の可変長符号化されたデータ値の最大符号長の数より少ない数のアドレス入力を有し、該複数のルックアップテーブルは該複数の符号化されたデータ値のサブセットを受け取るように結合されており、第2の長さ決定動作を実行して、該サブセットにおける該複数の符号化されたデータ値のうちの第2の符号化されたデータ値の長さを個別に決定し、該サブセットにおいて、該第2符号化されたデータ値は該第1の符号化された値の直後に続き、該第1および第2の長さ決定動作が同時に実行される、第2の長さ決定手段と、
    該第1および第2の符号化されたデータ値の長さに応答して、該第1および第2のデータ値の組み合わせられた長さをシフト制御手段と値復号化手段に同時に出力する組み合わせられた長さ決定手段と
    を備え、
    該シフト制御手段は該第1および第2のデータ値の組み合わせられた長さに応答して、該シフト制御信号を形成して、該シフト手段内で次に符号化されたデータ値の位置を識別し、該次に符号化されたデータ値は、該第2の符号化されたデータ値の直後に続き、該シフト制御手段は該シフト制御信号を該シフト手段に伝送し、
    該値復号化手段は、該複数の符号化されたデータ値のサブセットと、該第1の符号化されたデータ値の長さと、該第1および第2の符号化されたデータ値の組み合わせられた長さとを受け取るように結合されており、該次に符号化されたデータ値が該シフト手段によって処理しながら、該第1および第2の符号化されたデータ値を第1および第2の復号化された値にそれぞれ変換する、装置。
  2. 前記第2の長さ決定手段は、前記第1の符号化されたデータ値のそれぞれの可能な長さに対するそれぞれの長さ決定ルックアップテーブルを含み、該それぞれの長さ決定ルックアップテーブルは、前記複数の符号化されたデータ値のサブセットのそれぞれ異なる部分の符号長を同時に決定し、かつ、該第2の符号化されたデータ値のそれぞれの値を、該第1の符号化されたデータ値の対応する可能な長さに基づいて同時に決定する、請求項1に記載の装置。
  3. 前記第1の長さ決定手段は、前記第1の符号化されたデータ値の長さを示す第1の長さ信号を生成して伝送し、前記第2の長さ決定手段の前記長さ決定ルックアップテーブルのそれぞれは、それぞれの出力信号を生成して伝送し、前記組み合わせられた長さ決定手段は、該第1の長さ信号に応答して、該第1の長さ信号によって示される該第1の符号化されたデータ値の長さに対応する該長さ決定ルックアップテーブルの出力信号を選択し、該選択された出力信号は該第2の符号化されたデータ値の長さを示す、請求項2に記載の装置。
  4. 前記第1の長さ決定手段は、前記第1の符号化されたデータ値のそれぞれの可能な長さ
    に対するそれぞれのビットを出力し、
    該第1の長さ決定手段によって出力される複数のビットのうちの単一のビットが設定され、該設定されたビットは該第1の長さ決定手段によって決定された該第1の符号化されたデータ値の長さに対応し、
    前記第2の長さ決定手段の長さ決定ルックアップテーブルのそれぞれは、それぞれの出力信号を生成し、該それぞれの出力信号は該長さ決定ルックアップテーブルによって決定された前記第2の符号化されたデータ値の長さを表し、
    前記組み合わせられた長さ決定手段は、該設定された単一のビットに応答して、該第1の長さ決定手段によって設定されたビットに対する該第1の符号化されたデータ値の長さに対応する該それぞれの長さ決定ルックアップテーブルによる出力信号の伝送を有効にする、請求項2に記載の装置。
  5. 前記シフト制御手段は、前記第1および第2の符号化されたデータ値の前記組み合わせられた長さのそれぞれの可能な値のためのそれぞれの加算器を含み、それぞれの加算器はそれぞれの候補シフト制御信号を形成し、
    前記組み合わせられた長さ決定手段は、該第1および第2の符号化されたデータ値のそれぞれの可能な組み合わせられた長さに対するそれぞれのビットを出力し、
    該組み合わせられた長さ決定手段によって出力された複数のビットのうちの1つが設定され、該設定されたビットは該第1および第2の符号化されたデータの組み合わせられた長さに対応し、
    該シフト制御手段は、該組み合わせられた長さ決定手段によって出力された該設定されたビットを用いて前記複数の加算器のうちの1つによって出力された該候補シフト制御信号の伝送を有効にし、該1つの加算器は該第1および第2の符号化されたデータ値の組み合わせられた長さに対応する、請求項4に記載の装置。
  6. 前記シフト手段はシフタ/マルチプレクサを含み、該シフタ/マルチプレクサは前記データストリームを受け取り、固定された数のデータビットを前記第1および第2の長さ決定手段に伝送し、
    前記シフト制御信号は該シフタ/マルチプレクサ内で該固定された数のデータビットのうちの第1のデータビットの位置を識別する、請求項1に記載の装置。
  7. 前記シフト制御手段は前記第1および第2の符号化されたデータ値の組み合わせられた長さのそれぞれの可能な値のためのそれぞれの加算器であって、各加算器はそれぞれの候補シフト制御信号を同時に形成して伝送する、それぞれの加算器と、
    該第1および第2の符号化されたデータ値の組み合わせられた長さに応答して、該第1および第2の符号化されたデータ値の組み合わせられた値に対応する候補シフト制御信号を選択し、該選択された候補を該シフト手段に該信号制御信号として伝送する和選択手段とを備えた、請求項1に記載の装置。
  8. 前記それぞれの加算器は、それぞれのモジュロ算術演算を実行して該加算器の前記候補シフト制御信号を形成する、請求項7に記載の装置。
  9. 前記シフト手段はシフタ/マルチプレクサを含み、該シフタ/マルチプレクサは前記データストリームを受け取り、固定された数の連続するデータビットを前記第1および第2の長さ決定手段に伝送し、
    前記シフト制御信号は該シフタ/マルチプレクサ内で該固定された数の連続するデータビットうちの第1の位置を識別する、請求項8に記載の装置。
  10. 前記データストリームは符号化されたビデオ信号を含み、前記第1および第2の符号化されたデータ値は前記ビデオ信号の離散コサイン変換係数を表す、請求項1に記載の装置。
  11. データストリームに含まれる複数の可変長符号化されたデータ値を1クロックサイクル内に復号化する方法であって、
    該データストリームおよびシフト制御信号を受け取るステップと、
    第1の長さ決定動作を行うステップであって、該複数の可変長符号化されたデータ値の最大符号長の数より少ない数のデータストリームのビットを処理することによってサブセットにおける該複数の符号化されたデータ値のうちの第1の符号化されたデータ値の長さを決定する、ステップと、
    第2の長さ決定動作を行うステップであって、複数のルックアップテーブルにおける該データストリームを同時に処理することによって該サブセットにおける該複数の符号化されたデータ値の第2の符号化されたデータ値の長さを個別に決定し、それぞれのルックアップテーブルは、該複数の可変長符号化されたデータ値の最大符号値の数より少ない数のビット処理し、該第2の長さ決定動作は、該第2の符号化されたデータ値の長さを決定し、該サブセットにおいて該第2の符号化されたデータ値は該第1の符号化されたデータ値の直後に続き、該第1および第2の長さ決定動作が同時に行われる、ステップと、
    該第1および第2のデータ値の組み合わせられた長さをシフトコントローラとデコーダに同時に出力するステップと、
    該シフト制御信号を形成して、該組み合わせられた長さ値に応答して、該シフトコントローラにおいて、該サブセットに含まれる該複数の復号化されたデータ値のいくつかを決定するステップと、
    該シフト制御信号を該シフト制御手段に伝送して、該第1および第2の可変長符号値に続く該シフト手段に第3の可変長符号値を処理させる、ステップと、
    該シフト手段が該第3の可変長符号値を処理しながら該組み合わせられた長さ値に応答して該デコーダにおいて該第1および第2の可変長符号値を復号化するステップと
    を包含する、方法。
JP2005209307A 1996-03-29 2005-07-19 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法 Expired - Fee Related JP4023548B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/623,651 US5841380A (en) 1996-03-29 1996-03-29 Variable length decoder and method for decoding two codes per clock cycle

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP07617097A Division JP3737599B2 (ja) 1996-03-29 1997-03-27 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法

Publications (2)

Publication Number Publication Date
JP2006042336A JP2006042336A (ja) 2006-02-09
JP4023548B2 true JP4023548B2 (ja) 2007-12-19

Family

ID=24498899

Family Applications (2)

Application Number Title Priority Date Filing Date
JP07617097A Expired - Fee Related JP3737599B2 (ja) 1996-03-29 1997-03-27 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
JP2005209307A Expired - Fee Related JP4023548B2 (ja) 1996-03-29 2005-07-19 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP07617097A Expired - Fee Related JP3737599B2 (ja) 1996-03-29 1997-03-27 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法

Country Status (6)

Country Link
US (1) US5841380A (ja)
EP (1) EP0798931B1 (ja)
JP (2) JP3737599B2 (ja)
KR (1) KR100276037B1 (ja)
CN (1) CN1135846C (ja)
DE (1) DE69735835T2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU728882B2 (en) * 1997-04-30 2001-01-18 Canon Kabushiki Kaisha Compression
US6215424B1 (en) * 1998-12-16 2001-04-10 Thomson Licensing S.A. System for variable length codeword processing suitable for video and other applications
US6771824B1 (en) * 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
DE60100416T2 (de) * 2000-04-28 2004-06-09 Matsushita Electric Industrial Co., Ltd., Kadoma Dekoder für Kode variabler Länge
GB0124882D0 (en) * 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder
KR100486251B1 (ko) * 2002-08-03 2005-05-03 삼성전자주식회사 가변 길이 코드 복호화 장치 및 방법
US7283591B2 (en) * 2003-03-28 2007-10-16 Tarari, Inc. Parallelized dynamic Huffman decoder
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US6956511B2 (en) * 2004-01-06 2005-10-18 Sharp Laboratories Of America, Inc. Multi-symbol/coefficient decode operation for Huffman codes
US7830964B2 (en) * 2004-11-24 2010-11-09 Lsi Corporation Method and/or apparatus for parsing compressed video bitstreams
US8630354B2 (en) * 2006-06-16 2014-01-14 Intel Corporation Hardware accelerated compressed video bitstream escape code handling
JP5075136B2 (ja) * 2009-01-16 2012-11-14 キヤノン株式会社 復号装置及びその制御方法
JP5075135B2 (ja) * 2009-01-16 2012-11-14 キヤノン株式会社 復号装置及びその制御方法
US20110149338A1 (en) * 2009-12-22 2011-06-23 Holley Michael J Parallel decode for run length limited encoded datastreams
JP2011139128A (ja) * 2009-12-25 2011-07-14 Samsung Electronics Co Ltd 可変長符号復号装置
CN102740066B (zh) * 2011-04-01 2015-06-17 富士通株式会社 Cavlc解码方法和系统
JP2013016897A (ja) 2011-06-30 2013-01-24 Toshiba Corp 可変長符号復号装置、符号システムおよび可変長符号復号方法
US9252805B1 (en) * 2015-03-28 2016-02-02 International Business Machines Corporation Parallel huffman decoder
CN110383844A (zh) * 2018-05-30 2019-10-25 深圳市大疆创新科技有限公司 变长解码方法与装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03145223A (ja) * 1989-10-30 1991-06-20 Toshiba Corp 可変長符号復調装置
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
US5225832A (en) * 1992-02-13 1993-07-06 Industrial Technology Research Institute High speed variable length decoder
US5245338A (en) * 1992-06-04 1993-09-14 Bell Communications Research, Inc. High-speed variable-length decoder
US5325092A (en) * 1992-07-07 1994-06-28 Ricoh Company, Ltd. Huffman decoder architecture for high speed operation and reduced memory
JP3136796B2 (ja) * 1992-09-24 2001-02-19 ソニー株式会社 可変長符号デコーダ
JP2746109B2 (ja) * 1994-03-09 1998-04-28 日本電気株式会社 ハフマン符号復号化回路

Also Published As

Publication number Publication date
JPH1065549A (ja) 1998-03-06
JP2006042336A (ja) 2006-02-09
CN1135846C (zh) 2004-01-21
CN1171699A (zh) 1998-01-28
EP0798931A2 (en) 1997-10-01
DE69735835D1 (de) 2006-06-14
JP3737599B2 (ja) 2006-01-18
KR970068648A (ko) 1997-10-13
DE69735835T2 (de) 2006-10-19
EP0798931A3 (en) 2000-11-15
EP0798931B1 (en) 2006-05-10
US5841380A (en) 1998-11-24
KR100276037B1 (ko) 2000-12-15

Similar Documents

Publication Publication Date Title
JP4023548B2 (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
US6219457B1 (en) Method and system for decoding data encoded in a variable length code word
JP4886755B2 (ja) コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法
US5675382A (en) Spatial compression and decompression for video
US5675332A (en) Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
JP4540585B2 (ja) 符号化装置及び復号化装置
US6008745A (en) Variable length decoding using lookup tables
JPH0818460A (ja) ハフマンデコーダー
JPH0685689A (ja) デコーダ
US10419781B2 (en) Storing and retrieving high bit depth image data
JPH06252775A (ja) 復号化装置
US7343542B2 (en) Methods and apparatuses for variable length encoding
JP3688297B2 (ja) ビデオ画像カラーエンコーディング
US20190068981A1 (en) Storing and retrieving lossy-compressed high bit depth image data
US5812074A (en) High speed data syntax parsing apparatus
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
JP2001308715A (ja) 可変長符号化装置および可変長復号装置
US5621405A (en) Variable-length decoding apparatus using relative address
JP4098187B2 (ja) 可変長コード復号化装置及び方法
US6285789B1 (en) Variable length code decoder for MPEG
US6222467B1 (en) Bitstream decoding apparatus
US5767799A (en) Low power high speed MPEG video variable length decoder
US6987811B2 (en) Image processor and image processing method
TW202013969A (zh) 在顯示介面壓縮技術中形成熵編碼組的方法和系統
JP2000261324A (ja) ハフマン復号化回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070925

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees