JP3272580B2 - 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法 - Google Patents

符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法

Info

Publication number
JP3272580B2
JP3272580B2 JP25379295A JP25379295A JP3272580B2 JP 3272580 B2 JP3272580 B2 JP 3272580B2 JP 25379295 A JP25379295 A JP 25379295A JP 25379295 A JP25379295 A JP 25379295A JP 3272580 B2 JP3272580 B2 JP 3272580B2
Authority
JP
Japan
Prior art keywords
codeword
data
memory
bit
decoder
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
JP25379295A
Other languages
English (en)
Other versions
JPH08116266A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPH08116266A publication Critical patent/JPH08116266A/ja
Application granted granted Critical
Publication of JP3272580B2 publication Critical patent/JP3272580B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/4006Conversion to or from arithmetic 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
    • 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • 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

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ圧縮システ
ム及びデータ伸長システムの分野に係り、特に、データ
圧縮/伸長システムにおけるデータの並列符号化及び復
号のための方法及び装置に関する。
【0002】なお、本出願は、米国特許出願第08/0
16,035号(1993年2月10日受理,”Method
And Apparatus For Parallel Decoding and Encoding
ofData”)の一部継続出願であるところの米国特許出願
第08/172,646号(1993年12月23日受
理,”Method and Apparatus For ParallelEncoding an
d Decoding of Data”)の一部継続出願である。
【0003】
【従来の技術】今日、データ圧縮は広範囲に利用されて
おり、特に大量のデータの記憶及び伝送のために利用さ
れている。従来より、多くの様々なデータ圧縮手法が存
在している。圧縮手法は2つの大まかなカテゴリー、つ
まり損失性符号化と非損失性符号化とに分類できる。損
失性符号化とは、情報の損失を生じ、したがってオリジ
ナルデータの完全な再現が保証されない符号化のことで
ある。非損失性圧縮では、全ての情報が保存され、デー
タは完全な再現が可能な方法で圧縮される。
【0004】非損失性圧縮では、入力シンボルは出力符
号語に変換される。圧縮がうまくいけば、その符号語
は、入力シンボルのビット数より少ないビット数で表現
される。非損失性符号化法には、辞書符号化方式(例え
ば、Lempel-Ziv方式)、ランレングス符号化方式、計数
符号化方式、エントロピー符号化方式がある。
【0005】エントロピー符号化は、既知または予測の
シンボル確率を用いエントロピー限界に近づけるようデ
ータの圧縮を試みる何等かの非損失性符号化からなる。
エントロピー符号には、ハフマン符号、算術符号、バイ
ナリエントロピー符号がある。バイナリエントロピーコ
ーダは、最高確率(最尤)シンボル(MPS)と最低確
率シンボル(LPS)として表わされることのあるバイ
ナリ(yes/no)デシジョンにのみ有効な非損失性
コーダである。バイナリエントロピーコーダの例には、
IBM社のQ−コーダ、それにB−コーダと呼ばれるコ
ーダがある。B−コーダに関するこれ以上の情報につい
ては、”Method and Apparatus forEntropy Coding”な
る発明の名称で1993年12月21日に発行され、本
発明の共同譲受人に譲渡された米国特許第5,272,
478号(J.D.Allen)を参照されたい。また、M.J.Gor
mish and J.D.Allen, ”Finite State MachineBinary E
ntropy Coding,”abstract in Porc. Data Compression
Conference,30 March 1993, Snowbird,UT, pg.449 も
参照されたい。このB−コーダは、有限状態マシンを圧
縮に利用するバイナリエントロピーコーダである。
【0006】図1は、バイナリエントロピーコーダを用
いた従来の圧縮/伸長システムのブロック図を示す。符
号化の場合、データがコンテキストモデル(CM;cont
ext model)101に入力される。CM101は、入力
データをバイナリデシジョンの集合または系列に変換
し、各デシジョン(decision)毎にコンテキストビン
(context bin )を用意する。このバイナリデシジョン
の系列と、それらに関係したコンテキストビンが両方と
も、CM101より確率予測モジュール(PEM)10
2へ出力される。PEM102は、各コンテキストビン
を受け取り、各バイナリデシジヨンに対する確率予測値
を生成する。実際の確率予測値は、普通、Pクラス(PC
lass)と呼ばれるクラスによって表現される。それぞれ
のPクラスは、1つの確率区間(range)として用いら
れる。PEM102はまた、バイナリデシジョン(結
果)が、その優勢状態であるか(すなわち、デシジョン
がMPSに相当するか)否かも判定する。ビットストリ
ーム(bit-stream)ジェネレータ(BG)モジュール1
03は、確率予測値(すなわちPクラス)と、バイナリ
デシジョンが優勢であったか否かの判断結果を入力とし
て受け取る。それに応じて、BGモジュール103はオ
リジナル入力データを表現するための圧縮データストリ
ームを生成し、0ビット以上を出力する。
【0007】復号の場合、CM104がコンテキストビ
ンをPEM105に与え、PEM105がそのコンテキ
ストビンに基づいて確率クラス(Pクラス)をBGモジ
ュール106に与える。BGモジュール106は、その
確率クラスを受け取るように接続されている。BGモジ
ュール106は、その確率クラスと圧縮データに応じ
て、バイナリデシジョン(すなわち、イベント)がその
優勢状態であるかを表わすビットを返す。PEM105
は、その返されたビットを受け取り、そのビットに基づ
き確率予測値を更新して、その結果をCM104へ返
す。CM104は、返されたビットを受け取り、受け取
ったビットを用いてオリジナルデータを生成するととも
に次のバイナリデシジョンのためのコンテキストビンを
更新する。
【0008】
【発明が解決しようとする課題】 バイナリエントロピー
符号を用いるIBM社のQ−コーダやB−コーダ等の復
号器の一つの問題点は、速度が遅いこと、特にハードウ
エアで実現した時に速度が遅いことである。これら復号
器の動作には、単一の大きな低速フィードバックループ
が必要である。復号プロセスをリステート(restate)
するために、コンテキストモデルは過去の復号データを
使って1つのコンテキストを作成する。確率予測モジュ
ールは、そのコンテキストを使って1つの確率クラスを
作成する。ビットストリームジェネレータは、その確率
クラスと圧縮データを用いて次のビットが優勢(likel
y)結果であるか劣勢(unlikely)結果であるか判定す
る。確率予測モジュールは、その優勢/劣勢結果を用い
て結果ビットを生成する(かつ、該コンテキストに対す
る確率予測値を更新する)。この結果ビットは、コンテ
キストモデルによって、過去のデータの履歴を更新する
ために用いられる。これらステップ全部が、たったの1
ビットの復号のために必要とされるのである。コンテキ
ストモデルは、その履歴を更新するため結果を待った後
に初めて、次のコンテキストを用意できるのであるか
ら、次のビットの復号が遅れざるを得ない。次ビットの
復号の前にフィードバックループの完了を待たなくとも
よいようにするのが望ましい。換言すれば、圧縮データ
の復号速度を増加させるために、1度に1ビットもしく
は1符号語よりも多く復号することが望ましい。
【0009】エントロピー符号を用いる復号器のもう一
つの問題点は、可変長データを処理しなければならない
ことである。大部分のシステムは、復号すべき符号語が
可変長である。あるいは、他のシステムは可変長シンボ
ル(符号化されていないデータ)を符号化する。可変長
データを処理する時には、復号または符号化動作のため
正確な次データを用意するため、データをビットレベ
ルでシフトする必要がある。このデータストリームに対
するビットレベル操作に、高価かつ/または低速のハー
ドウエア及び/またはソフトウエアを必要とすることが
ある。さらに、従来システムは、このシフト操作を、復
号器の性能を制限するところの時間的に厳しいフィード
バックループ内で行なう必要がある。並列化を使って速
度を上げることができるように、時間的に厳しいフィー
ドバックループからデータストリームのビットレベル操
作を排除することも有利であろう。
【0010】本発明は、以上に述べた問題点に鑑みてな
されたものであり、その目的とするところは、改良され
た非損失性圧縮及び伸長の方法及び装置を提供するこ
と、また、データを並列に符号化及び復号するリアルタ
イム符号化装置及びリアルタイム復号装置を提供するこ
とにある。本発明の符号化装置と復号装置とで、リアル
タイム符号化とリアルタイム復号を高速/安価なハード
ウエアで実行する平衡(balanced)並列エントロピーシ
ステムができるが、これも本発明の目的に含まれる。本
発明の他の目的は、以下の説明によって明らかになろ
う。
【0011】
【課題を解決するための手段】本発明によれば、符号化
装置により生成された情報を復号するための復号装置を
持つ圧縮システムに用いるための符号化装置が提供され
る。本発明の符号化装置は、データに応じて符号語情報
を発生する符号化器を含む。この符号化装置はまた、符
号化器から出た符号語情報に応じて符号化データストリ
ームを生成する再配列ユニットを含む。この再配列ユニ
ットは、符号語を復号順に整列させるランカウント並べ
替えユニットと、可変長符号語を組合せて固定長のイン
ターリーブド(interleaved)語とし、その固定長イン
ターリーブド語を復号装置に要求される順序で出力する
ビットパックユニットを含む。なお、ここに述べた内容
は本発明に含まれる課題を解決するための手段の一部に
過ぎず、その全体について以下の説明中において詳細に
述べる。
【0012】
【発明の実施の形態】データの並列符号化及び並列復号
のための方法と装置について述べる。以下の説明におい
て、本発明の好適な実施例を完全に理解してもらうため
に、ビット数、符号化器数、具体的な確率値、データ種
類等々、様々な具体例が示される。しかし、当業者に
は、そのような具体例によらずに本発明を実施し得るこ
とが理解されよう。また、本発明をいたづらに難解にし
ないため、周知の回路類は詳細には示されず、ブロック
図の形で示される。
【0013】以下の詳細説明のかなりの部分が、コンピ
ュータメモリ内のデータビットに対する操作のアルゴリ
ズム及び記号表現によって与えられる。これらのアルゴ
リズム記述及び表現は、データ処理技術分野の当業者に
よって、その研究の内容を他の当業者に対し最も効率的
に伝えるために用いられる手段である。あるアルゴリズ
ムがあり、それが概して、希望する結果に至る自己矛盾
のないステップ系列だと考えられるとしよう。これらの
ステップは、物理量の物理的処理を必要とするものであ
る。必ずという訳ではないが、通常、これらの物理量は
記憶、転送、結合、比較、その他処理が可能な電気的ま
たは磁気的信号の形をとる。これらの信号をビット、
値、要素、シンボル、文字、用語、数字等で表わすの
が、主に慣用上の理由から、時に都合がよいことが分か
っている。
【0014】しかしながら、これら用語や類似の用語は
全て、適切な物理量と関係付けられるべきであって、こ
れら物理量につけた便宜上のラベルに過ぎないというこ
とを心に留めるべきである。以下の説明から明らかなよ
うに、特に断わらない限り、”処理””演算””計
算””判定””表示”等々の用語を用いて論じること
は、コンピュータシステムのレジスタ及びメモリ内の物
理的(電子的)な量として表現されたデータを処理し
て、コンピュータシステムのメモリまたはレジスタ、同
様の情報記憶装置、情報伝送装置あるいは表示装置の内
部の同様に物理量として表現された他のデータへ変換す
る、コンピュータシステムあるいは同様の電子演算装置
の作用及びプロセスを指すものである。
【0015】本発明はまた、本明細書に述べられた動作
を遂行する装置に関する。この装置は、必要な目的のた
めに専用に作られてもよいし、あるいは、汎用コンピュ
ータを内蔵プログラムにより選択的に駆動または再構成
したものでもよい。本明細書に提示されるアルゴリズム
及び表示は、本質的に、いかなる特定のコンピュータや
その他装置とも関係がない。様々な汎用マシンを本明細
書に教示したところに従ったプログラムと一緒に用いて
もよいし、あるいは、必要な方法のステップの実行のた
めにより特化した装置を作るほうが好都合であるかもし
れない。これら多様なマシンに要求される構造は以下の
説明より明らかになろう。さらに、本発明は、特定のプ
ログラミング言語と関連付けては説明されない。本明細
書において述べるように、本発明の教示するところを実
現するために、様々なプログラミング言語を用い得るこ
とが理解されるであろう。
【0016】<並列エントロピーコーディング>本発明
は、並列エントロピーコーディングシステムを提供す
る。このシステムは、符号化装置と復号装置を含む。一
実施例では、符号化装置はリアルタイムでデータの符号
化を実行する。同様に、一実施例では、本発明の復号装
置はリアルタイムでデータの復号を実行する。このリア
ルタイム符号化装置とリアルタイム復号装置が一緒にな
って平衡(balanced)コーディング化システムを形作
る。
【0017】本発明は、非損失性符号化データを並列に
復号するシステムを提供する。データは複数の復号資源
を用いて並列に復号される。複数の復号資源のそれぞれ
は、データストリームから復号すべきデータ(例えば符
号語)を割り当てられる。このデータストリームの割り
当てが復号資源が並行してデータを復号している間に素
早く行なわれ、データストリームは並列に復号される。
復号資源を効率的に利用できるようなデータの割り当て
を可能にするため、データストリームは順序付けされ
る。これはデータの並列化(parallelizing)と呼ばれ
る。このデータ順序付けにより、各復号資源はコンテキ
ストモデルからのフィードバックを待たずに、符号化デ
ータの任意のものまたは全部の復号が可能になる。
【0018】図2は、従来技術の低速フィードバックル
ープを持たない本発明の復号システムを示す。入力バッ
ファ204は、符号化データ(すなわち符号語)と復号
器205からのフィードバック信号を受け取り、符号化
データを予め定められた順序で(例えばコンテキストビ
ン順に)本発明の復号器205へ供給し、復号器205
はその符号化データを復号する。復号器205は、複数
の復号器(205A,205B,205C,....)
を含んでいる。
【0019】一実施例では、復号器205A,205
B,205C,...はそれぞれ、1グループのコンテ
キストに対するデータを与えられる。復号器205内の
各復号器は、そのグループのコンテキスト中のすべての
コンテキストビンに対する符号化データを入力バッファ
204より与えられる。このデータを使って、各復号器
205A,205B,205C,...は、そのグルー
プのコンテキストビンに対する復号データを生成する。
コンテキストモデルは、符号化データを特定のグループ
のコンテキストビンに関連付ける必要はない。
【0020】復号器205により、復号データは復号デ
ータ記憶装置205(207A,207B,207
C,...)へ送られる。なお、復号データ記憶装置2
07は、符号化データでも未符号化データでもない、ラ
ンカウント(run count)のような中間データを格納す
るかもしれない。この場合、復号データ記憶装置207
は、コンパクトではあるがエントロピー符号化されてい
ない形でデータを格納する。
【0021】独立に動作するコンテキストモデル206
は、復号データ記憶装置207へフィードバック信号を
送り、このフィードバック信号に応答して復号データ記
憶装置207(207A,207B,207
C,...)から出される、以前に復号されたデータを
受け取るように接続されている。したがって、2つのフ
ィードバックループがある。1つは復号器205と入力
バッファ204の間にあるもので、もう1つはコンテキ
ストモデル206と復号データ記憶装置207の間にあ
るものである。大きなフィードバックループが除去され
たので、復号器205内の復号器(205A,205
B,205C,...)は、関係する符号語を入力バッ
ファ204から受け取るとすぐに復号することができ
る。
【0022】コンテキストモデルは、復号システムの記
憶部分を提供し、1つのデータセット(例えば画像)を
その記憶に基づいて様々なカテゴリー(例えばコンテキ
ストビン)に分ける。本発明においては、これらのコン
テキストビンは独立した順序データセット(ordered se
ts of data)とみなされる。一実施例では、コンテキス
トビンのグループ毎に独自の確率予測モデルを持ち、各
コンテキストビンは独自の状態(state)を持つ(確率
予測モデルは共用される)。したがって、コンテキスト
ビン毎に異なった確率予測モデル及び/またはビットス
トリームジェネレータを使ってもよい。
【0023】このように、データは順序付けされ、すな
わちた並列化され、データストリームからのデータはそ
れぞれの復号器に割り当てられて復号される。
【0024】<旧来のエントロピーコーディングモデル
への並列化(parallelism)の付加>データストリーム
を並列化(parallelize)するために、データはコンテ
キスト、確率、タイリング(tiling)、符号語シーケン
ス(符号語に基づいた)等のいずれに従って分割されて
もよい。符号化データストリームの再配列は、並列化手
法、すなわちデータまたは確率を並列化するために別の
場所で用いられる方法から独立している。コンテキスト
モデル(CM)により区分されたデータを与えられる、
本発明の符号化システムの並列符号化装置部分が図3に
示されている。
【0025】図3において、コンテキスト依存(contex
t dependent)並列符号化装置部分はコンテキストモデ
ル(CM)214、確率予測モジュール(PEM)21
5〜217、ビットストリームジェネレータ(BG)2
18〜220からなる。CM214は入力データを受け
取るように接続されている。CM214はPEM215
〜217にも接続されている。PEM215〜217は
それぞれ、符号ストリーム1,2,3をそれぞれ出力す
るBG218〜220にも接続されている。PEMとB
Gの各ペアは1つの符号化器を構成する。したがって、
ここに示されている並列符号化装置は3つの符号化器を
持っている。並列の符号化器が3個だけ示されている
が、任意数の符号化器を用いて構わない。
【0026】CM214は、在来のCMと同じ方法でデ
ータストリームを様々なコンテキストに分け、複数のス
トリームを並列ハードウエア符号化資源へ送る。個々の
コンテキストまたはコンテキストグループは、別々の確
率予測モジュール(PEM)215〜217及びビット
ジェネレータ(BG)218〜220に割り当てられ
る。
【0027】図4は、本発明の復号システムの復号器部
分の一実施例のブロック図である。図4において、BG
221〜223、PEM224〜226及びCM227
を持つコンテキスト依存の並列復号装置が示されてい
る。符号ストリーム1〜3はBG221〜223にそれ
ぞれ接続される。BG221〜223はそれぞれPEM
223〜226にも接続されている。PEM224〜2
26はそれぞれ、復元した入力データを出力するCM2
27に接続されている。入力は、符号ストリーム1〜3
として示されているいくつかの符号ストリームから到来
する。それぞれのPEMとBGのペアに1つの符号スト
リームが割り当てられる。BG221〜223はそれぞ
れ、バイナリデシジョンが優勢状態であるか否かを表わ
す1ビットを返し、PEM224〜226はそのビット
を復号ビット(例えばバイナリデシジョン)を返すため
に用いる。PEM224〜226はそれぞれBG221
〜223の1つと関係付けられ、その入力符号データか
らデータストリームを生成するためにどの符号を用いる
べきか指示する。CM227は、ビットストリームジェ
ネレータから出力される復号ビットを適当な順序で選択
してオリジナルデータを再生することにより、復号デー
タストリームを生成する。このように、CM227は適
当なPEMとBGから伸長データビットを得るが、実際
には、そのデータをオリジナルの順序に並べ替える。な
お、このデザインのための制御は、データストリームと
逆の向きに流れる。BGとPEMはデータをCM227
がそれを必要とする前に復号し、CM227より1ビッ
ト以上先行し続ける。あるいは、CM227は、1つの
BG及びPEMに1ビットを要求し(受け取らない
が)、次に、その初めに要求したビットを利用する前に
別のBG及びPEMに1ビット以上を要求する。
【0028】図4に示した構成は、PEMとBGを密に
結合するよう設計されている。IBM社のQ−コーダ
は、PEMとBGを密結合したコーダの好例である。P
EMとBGの間のローカルなフィードバックループは、
システム性能を根本的に制限するものではない。
【0029】別の設計では、PEMがデータを区分して
並列の複数のBGユニットへ送るかもしれない。そうす
れば、CMとPEMは1個だけになになろう、そしてB
Gは並列接続される。適応的ハフマンコーディング及び
有限状態マシンコーディングを、このようにして利用し
てもよい。
【0030】データを区分して並列のBGへ送るPEM
を用いた同様の復号システムが図5に示されている。こ
の場合、確率クラスは並列に処理され、各ビットストリ
ームジェネレータは1つの特定の確率クラスを割り当て
られ、その結果の情報を受け取る。図5において、符号
化データストリーム1〜3は複数のビットストリームジ
ェネレータ(BG232,BG233,BG23
4,...)の1つに接続され、これらビットストリー
ムジェネレータはそれらを受け取るように接続されてい
る。各ビットストリームジェネレータはPEM235に
接続されている。PEM235はCM236にも接続さ
れている。このような構成において、各ビットストリー
ムジェネレータは符号化データを復号し、復号の結果は
PEM235によって(CM236によるのではない)
選択される。各ビットストリームジェネレータは1つの
確率クラスに関連した情報源からの符号化データを受け
取る(すなわち、符号化データはどのコンテキストビン
からも来る)。PEM235は確率クラスによってビッ
トストリームジェネレータを選択する。この確率クラス
は、CM236によってPEM235に与えられたコン
テキストビンにより指示される。このようにして、確率
クラスを並列処理することにより復号データが生成され
る。
【0031】本発明の並列復号システムは多くの実施形
態がある。一実施例では、複数のコンテキストビンに対
応した符号化ストリームを、各種コーダの要求により順
序付けられた1本のストリームにインターリーブするこ
とができる。本発明の一実施例では、符号化データが1
本のストリームとして復号器へ送られるとしても各コー
ダにコンスタントにデータが供給されるように、符号化
データは順序付けられる。なお、本発明は、画像データ
を初めとするあらゆる種類のデータに有効である。
【0032】集積回路により安価に複製可能な小型簡易
な符号化器を使用し、符化データを並列に高速復号する
ことができる。一実施例では、符号化器はフィールドプ
ログラマブルゲートアレイ(FPGA)チップや標準セ
ル特定用途向け集積回路(ASCIC)チップを用いて
ハードウエアで実現される。並列化手法と単純なビット
ストリームジェネレータを組合せることにより、圧縮効
率を従来の復号システムと同等以上にしつつ、従来の復
号器を超えるスピードで符号化データの復号を行なうこ
とが可能になる。
【0033】<複数データストリームのチャネル順序付
け>システムの性能に影響する、様々な設計上の問題点
及び課題がある。そのいくつかについて以下に述べる。
しかし、図3,図4(及び図5)に示した実施例は複数
の符号ストリームを用いる。この実施例に適合する並列
チャネルのシステムが考えられる。すなわち複数の電話
回線、ディスクドライブの複数のヘッド等々である。あ
る種の用途の場合、1チャネルだけが利用可能または好
都合である。実際、複数チャネルが要求されると、各符
号ストリームがバースト的であるために帯域幅の利用率
が悪いかもしれない。
【0034】一実施例では、符号ストリームは連結され
て連続的に復号器へ送られる。プレフィスヘッダ(pref
ace header)は各ストリームの開始ビット位置を指すポ
インタを含んでいる。図6は、このようなデータの構成
の一実施例を示している。図6において、3つのポイン
タ301〜303は、連結された符号ストリーム1,
2,3の開始位置をそれぞれ指示する。完全な圧縮デー
タファイルが復号器のためのバッファに得られる。符号
語は、必要とされる時に、適切なポインタを経由して適
切な位置より取り出される。そして、そのポインタは当
該符号ストリームの次の符号語を指すように更新され
る。
【0035】なお、この方法は、復号器において、ま
た、実際的には符号化器においても、1つの符号化フレ
ーム全体を記憶しておく必要がある。リアルタイムシス
テムまたはバースト性の小さい(less bursty)データ
フローが必要とされるときには、符号化器及び復号器の
両方において2つのフレームバッファがバンキング(ba
nking)のために使われるかもしれない。
【0036】<データ順序と符号語順序>復号器は、あ
る一意に決まる順序で符号語を復号することに注目され
たい。並列符号化の場合、符号ストリームに対する要求
の順序は一意に定まる。よって、符号化器において並列
符号ストリームの符号語を正しい順序でインターリーブ
することができるならば、単一の符号ストリームで間に
合うことになる。符号語はジャスト・イン・タイム(ju
st-in-time)ベースで同じ順序で復号器へ渡される。符
号化器では、復号器のモデルが符号語の順序を決定して
符号語を単一のストリームにパック(pack)する。この
モデルは実際の復号器のこともある。
【0037】データが可変長である場合、並列復号要素
へのデータの分配に関し1つの問題が生じる。可変長符
号語のストリームのアンパック(unpacking)のために
は、ビットシフタを使って符号語を整列しなければなら
ない。ビットシフタは、ハードウエアで実現した時に、
しばしば高価かつ/または低速である。ビットシフタの
制御は個々の符号語のサイズに依存する。この制御のフ
ィードバックループは可変長シフト操作の高速実行の妨
げになる。複数の復号器に単一のストリームを供給する
ことの効果は、そのストリームのアンパック処理が複数
の復号器に追従するには速度が不十分な単一のビットシ
フタで実行される場合には、発揮させることができな
い。
【0038】本発明において提案される解決法は、符号
化データを並列の復号器へ分配する問題と、復号のため
の可変長符号語の整列とを切り離す。それぞれ独立した
符号ストリーム中の符号語は、インターリーブド(inte
rleaved)語と呼ぶところの固定長語へパックされる。
チャネルの復号器端で、固定配線の高速データラインと
単純な制御回路によって、これらインターリーブド語を
並列の復号器ユニットへ分配することができる。
【0039】インターリーブド語の長さを符号語の最大
長より長くするのが、最低でも1符号語を完成するに足
るビットが各インターリーブド語に含まれるので都合が
よい。1つのインターリーブド語は符号語と符号語の一
部を含む。図7は、一例としての1組の並列符号ストリ
ームのインターリーブ操作を示す。
【0040】これらの語は復号器側の要求に従ってイン
ターリーブされる。個々の独立した復号器は1つのイン
ターリーブド語の全体を受け取る。ビットシフト動作が
各復号器で局所的に行なわれることにより、システムの
並列性を維持する。なお、図7において、各インターリ
ーブド語中の最初の符号語は、符号ストリームの組の中
の残っている符号語の中の最低番号の符号語である。例
えば、最初のインターリーブド語は符号ストリーム1か
ら生じ、最低番号の符号語(すなわち#1)から始ま
る。その後に、符号ストリーム2の最初のインターリー
ブド語が続き、次に符号ストリーム3の最初のインター
リーブド語が続く。しかし、次の最低番号の符号語は、
既に順序付けされたインターリーブド語中に入り切らな
かった#7である。したがって、ストリームの次の語
は、符号ストリーム2の2番目のインターリーブド語で
ある。
【0041】別の実施例においては、次のインターリー
ブド語の組(例えば、ストリーム1の符号語#8から始
まる符号語、ストリーム2の#7から始まる符号語、ス
トリーム3の#11から始まる符号語)がインターリー
ブド符号ストリームに挿入される順序は、その前のイン
ターリーブド語の組(例えばストリーム1の符号語#1
から始まる符号語、ストリーム2の符号語#2から始ま
る符号語、ストリーム3の符号語#4から始まる符号
語)の最初の符号語に基づき、先頭符号語が最低の番号
を持つインターリーブド語より先頭符号語が最高の番号
を持つインターリーブド語へと向かう順とされる。した
がって、この場合、符号語#1から始まるインターリー
ブド語が最初であったから、ストリーム1の次のインタ
ーリーブド語が次にインターリーブドストリームに挿入
される2番目のインターリーブド語のグループの最初の
インターリーブド語であり、その後にストリーム2の次
のインターリーブド語が続き、さらにストリーム3の次
のインターリーブド語が続く。なお、2番目のインター
リーブド語のグループがインターリーブドストリームに
挿入された後、ストリーム2の次のインターリーブド語
が次にストリームに挿入されるインターリーブド語であ
ろう。というのは、符号語#7は、2番目のインターリ
ーブド語の組の中で最低番号の符号語であるからである
(その後にストリーム1の符号語#8が続き、そしてス
トリーム3の符号語#11が続く)。
【0042】実際の復号器をデータストリーム用のモデ
ルとして使用すれば、インターリーブドストリームを生
成するためのあらゆる設計上の選択と遅れの大半は無用
になる。実際の復号器を使用しても、符号化器と復号器
の両方を持つデュプレックスシステムの場合には、たい
したコストではない。なお、このことは、一意的な順序
で使われる可変長の(または様々なサイズの)データ語
の並列の組すべてについて一般的に言えることである。
【0043】<並列復号のための符号とビットストリー
ムジェネレータの種類>本発明は、Q−コーダやB−コ
ーダ等の既存のコーダを、並列に接続されるビットスト
リームジェネレーション要素として利用することができ
る。しかしながら、その他の符号及び符号化器を使用し
てもよい。本発明に用いられるコーダとそれに関連した
符号は単純なものである。
【0044】本発明においては、Q−コーダに使われる
算術符号やB−コーダに使われるマルチステート(mult
i-state)符号等の複雑な符号でなく、単純な符号を使
うことにより、いくつかの利点を得られる。単純な符号
は、複雑な符号に比べ、ハードウエア構成が非常に高
速、単純であり、かつ必要なシリコンが少ないという利
点がある。
【0045】本発明のもう一つの利点は符号化効率を改
善できることである。有限量の状態情報を使う符号は、
シャノンのエントロピー限界を全ての確率について満足
することはできない。従来から知られているハードウエ
アで実現されたコーダで、単一のビットストリームジェ
ネレータで多数の確率またはコンテキストを処理できる
ものには、符号化効率を低下させるいくつかの制約があ
る。多数のコンテキストまたは確率クラスのために必要
なそれら制約を取り除けば、シャノンのエントロピー限
界の満足にさらに接近する符号の使用が可能になる。
【0046】<R−符号>本発明の一実施例に使用され
る符号(及びコーダ)は、R−符号と呼ばれる。R−符
号は、可変数の同一の入力シンボルを1つの符号語に変
換する適応的符号である。一実施例では、多くの異なっ
た確率を単一の復号器の設計で処理できるようにR−符
号はパラメタライズ(parameterize)される。さらに、
本発明のR−符号は、単純も高速なハードウエアで復号
できる。
【0047】本発明において、R−符号はR−コーダに
より符号化または復号を行なうために用いられる。一実
施例では、R−コーダはビットストリームジェネレータ
と確率予測モジュールを組み合わせたものである。例え
ば、図1において、1つのR−コーダは、確率予測モジ
ュール102とビットストリームジェネレータ103の
組合せと、確率予測モジュール105とビットストリー
ムジェネレータ106の組合せとを含むかもしれない。
【0048】符号語は最高確率(最尤)シンボル(MP
S)のラン(run)を表わす。MPSは確率が50%を
超えるバイナリデシジョンの結果を表わす。他方、最低
確率シンボル(LPS)は確率が50%未満のバイナリ
デシジョンの結果を表わす。なお、2つの結果が等確率
の時に、そのどちらをMPSまたはLPSと呼ぶかは、
符号化器と復号器の両方が同じ呼び方をする限り、重要
なことではない。圧縮ファイルに結果として得られるビ
ット系列を、あるMAXRUNと呼ばれるパラメータに
関連して図49に示す。
【0049】図49に示したテーブル1の内容に関連し
て説明する。符号化するには、ラン中のMPSの個数が
簡単なカウンタによってカウントされる。そのカウント
がMAXRUNカウント値と等しいときに、0符号語が
符号ストリームに送出され、そしてカウンタはリセット
される。LPSが見つかったときには、1つの1に続け
て、そのLPSの前のMPSシンボル数の固有の記述で
あるビット群Nが符号ストリームへ送出される(なお、
ランレングスを記述するビット群Nの割り当て方は色々
ある)。再び、カウンタはリセットされる。なお、Nの
ために必要なビット数はMAXRUNの値に依存する。
また、符号語の1の補数が使用されてもよい。
【0050】復号するには、符号ストリームの最初のビ
ットが0のときには、MUXRUNの値がMPSカウン
タにセットされ、LPS表示がクリアされる。そして、
その0のビットは捨てられる。最初のビットが1のとき
には、それに続くビットを調べてビット群Nを抽出し、
適切なカウント(N)がMPSカウンタにセットされ、
LPS表示がセットされる。そして、1N符号語を含む
符号ストリームビット群は捨てられる。
【0051】R−符号は図49のテーブル1に示した規
則によりつくられる。なお、あるR−符号Rx(k)の定義
はMAXRUNによって定められる。例えば Rx(k)のMAXRUN=X・2k-1 である。よって、 R2(k)のMAXRUN=2・2k-1 R3(k)のMAXRUN=2・2k-1 等々である。
【0052】なお、R−符号はGolomb符号のサブ
セットである。また、Rice符号はR2(*)符号しか用
いない。本発明のR−符号はR2(k)とR3(k)を両方用い
ることができ、また、望むならば他のRn(k)符号も用い
ることができる。一実施例では、R2(k)符号とR3(k)符
号が用いられる。なお、n=2または任意の奇数のnに
対するRn(すなわちR2,R3,R5,R7,R9,R11,
R13,R15)が存在する。一実施例では、R2(K)符号に
ついてランカウント(run count)rがNで符号化され
る。すなわち、ランカウントrはkビットで記述され、
したがって1Nはk+1ビットで表現される。また、一
実施例では、R3(k)符号について、ビット群Nはn<2
(k-1)であるかn≧2(k-1)であるかを示す1ビットと、
ランカウントrを示すk−1ビットまたはkビットを含
むことができ、したがって、変数Nは合計kビットまた
はk+1ビットで表現される。他の実施例では、Nの1
の補数が符号語に使われるかもしれない。この場合、M
PSは0の多い符号ストリームを発生する傾向があり、
LPSは1の多い符号ストリームを発生しがちである。
【0053】図50のテーブル2、図51のテーブル
3、図52のテーブル4及び図53のテーブル5は、本
発明の一実施例に使用される一部の効率的なR−符号を
示している。なお、本発明において他のランレングス符
号も使用してよい。R2(2)符号の代替ランレングス符号
の例が図54のテーブル6に示されている。図55のテ
ーブル7と図56のテーブル8は一実施例で用いられる
符号の例を示す。
【0054】<R−符号用確率予測モデル>一実施例で
は、R2(0)符号は、何も符号化しない。すなわち、0の
入力は0に符号化され、1の入力は1に符号化され(ま
たは、その逆に符号化され)、したがって、R2(0)符号
は50%に等しい確率に対して最適である。現時点での
好適な実施例であるR2(1)符号は0.707(70.7
%)に近い確率に対して最適であり、R3(1)符号は0.
794(79.4%)の確率に対して最適である。R2
(2)符号は0.841(84.1%)の確率に対して最
適である。図57のテーブル9はほぼ最適なランレング
ス符号を示す。ここで、確率スキューは 確率スキュー=−log2(LSP) で定義される。
【0055】なお、テーブル9に示す符号は、確率スキ
ューで表わされる確率区間が、最適確率が高いk値では
低いk値におけるほどは細分化しないとしても、確率空
間をほぼ均等に変換する点でほぼ最適である。
【0056】あるR−符号が最適である確率について述
べる。実際には、エントロピー曲線に合致するのはR2
(2)符号だけである。実際に検討することは、ある一定
のクラスの中で、ある特定のR−符号が他の全てのR−
符号に比べて優れているのはどの確率区間であるか、で
ある。図58のテーブル10はR2符号の確率区間を、
図59のテーブル11はR2符号及びR3の確率区間を示
す。
【0057】0から12までのR2符号のクラスに関
し、確率区間が図58のテーブル10に示されている。
例えば、R2符号だけが用いられる時には、R2(0)は
0.50≦確率≦0.6180の時に最適である。同様
に、R2(1)は0.6180≦確率≦0.7862の時に
最適である。
【0058】R2符号とR3符号のクラスに対する解答
は、図59のテーブル11にある。例えば、R2符号と
R3符号が用いられている時に、R2(1)は0.6180
≦確率≦0.7549の時に最適である。
【0059】ある一定のkに対するR2(k)はランレング
ス符号と呼ばれる。しかし、ある一定のkが最適である
のは、1つの確率区間についてのみである。最適確率近
傍での符号化時に、本発明のR−符号は0符号語と1N
符号語をほぼ等頻度で用いることが分かる。言い換えれ
ば、本発明のR−コーダは、一方の符号と他方の符号を
半々の時間割合で出力する。0符号語と1N符号語の数
を調べることにより、最適な符号が用いられているかを
判断できる。すなわち、1N符号語の出力が多すぎると
きはランレングスが長すぎ、他方、0符号語の出力が多
すぎるときにはランレングスが短かすぎる。
【0060】Langdonにより用いられた確率予測モデル
は、各符号語の最初のビットを調べて情報源確率が現在
の予測値より上であるか下であるか判定する。G.G.Lang
don,”An Adaptive Run-Length Coding Algorithm”, I
BM Technical DisclosureBulletin, Vol.26,No.7B,Dec.
1983 を参照されたい。この判定に基づき、kが増やさ
れまたは減らされる。例えば、MPSを示す符号語が見
つかれば、確率予測値は低すぎる。したがって、Langdo
n によれば、kは各0符号語毎に1ずつ増やされる。L
PSの前のMAXRUN個未満のMPSを示す符号語
(すなわち1N符号語)が見つかるときは、確率予測値
は高すぎる。したがって、Langdon によれば、kは各1
N符号語毎に1ずつ減らされる。
【0061】本発明は、単純に1符号語毎にkを1ずつ
増加または減少させる方法よりも複雑な確率予測が可能
である。本発明は、使用する符号を決定する、1つの確
率予測モジュール状態を含む。多くの状態が同じ符号を
使用するかもしれない。状態テーブルまたは状態マシン
を用いて、符号が状態に割り当てられる。
【0062】本発明の一実施例では、確率予測値は符号
語の出力のたびに状態を変える。そうして、確率予測モ
ジュールは、符号語が0で始まるか1で始まるかに応じ
て確率予測値を増加または減少させる。例えば、”0”
符号語が出力されると、MPS確率の予測値が増加す
る。他方、”1”符号語が出力されると、MPS確率の
予測値が減らされる。
【0063】従来技術のLangdonコーダは、R2(k)符号
だけを使用し、符号語毎にkを増減させた。これに対し
て、本発明は、適応速度(adaptation rate)を用途に
合わせるため、状態テーブルまたは状態マシンと連係し
てR2(k)符号及びR3(k)符号を用いる。すなわち、少量
の固定データがあるときには、より最適な符号化を得る
ために適応はより迅速になされなければならないが、大
量の固定データがあるときには、残りのデータについて
より良好な圧縮を達成する符号化を選べるように、適応
時間を長くしてよい。なお、可変数の状態変化が起きる
場合、用途に固有の特性によっても適応速度が影響され
るかもしれない。R−符号の性質から、R−コーダのた
めの確率予測は、簡単でありハードウエアを殆ど必要と
しないが、非常に強力である。図40は、符号化効率
(エントロピーに対し正規化された符号長)対MPS確
率のグラフを示す。図40は、いくつかの本発明のR−
コーダが確率空間をどのようにカバーするかを示してい
る。一例を挙げれば、図40は、0.55のMPS確率
では、R2(0)符号の効率はエントロピー限界の1.01
倍である(すなわち、エントロピー限界より1%だけ悪
い)ことを示している。これに比べ、R2(1)符号の効率
はエントロピー限界の1.09倍(9%悪い)である。
この例は、この特定の低確率のケースに不適切な符号を
使用することで符号化効率の8%の損失を生じることを
示している。
【0064】R3(k)符号を導入することにより、より広
い確率空間をより高い効率でカバーすることができる。
本発明による確率予測状態テーブルの一例が図8に示さ
れている。図8に示された確率予測状態テーブルは、状
態カウンタと、個々の状態に関係付けられた符号の両方
を示している。このテーブルが正と負の状態を含んでい
ることに注目されたい。このテーブルは、0状態を含め
て37の正状態と、0状態を含めて37の負状態を持つ
よう表わされている。負の状態は、正の状態とはMPS
が異なることを意味している。一実施例では、負の状態
はMPSが1の時に用いることができ、また正の状態は
MPSが0の時に用いることができ、あるいはその逆で
ある。なお、図8に示したテーブルは一例に過ぎないも
のであり、テーブルの状態数がそれより多くても少なく
ても、また、状態割り当てが異なってもよい。
【0065】最初、コーダは状態0であり、これは0.
50の確率予測値に対するR2(0)符号である。各符号語
が処理された後に、その符号語の最初のビットに応じて
状態カウンタはインクリメントまたはデクリメントされ
る。一実施例では、符号語0は状態カウンタの値を増加
させ、1で始まる符号語は状態カウンタの値を減少させ
る。したがって、すべての符号語が状態カウンタによる
状態の変化を生じさせる。言い換えれば、確率予測モジ
ュールは状態を変化させる。しかし、連続した複数の状
態が同一の符号と関係付けられることがある。この場
合、符号語毎に符号を変えることなく確率予測が行なわ
れる。別の言い方をするならば、状態は符号語毎に変更
されるけれども、ある一定の場合に状態は同一の確率へ
写像される。例えば、状態5から状態−5は全てR2(0)
符号を用い、また、状態6から状態11及び状態−6か
ら状態−11はR2(1)符号を用いる。本発明のこの状態
テーブルを利用することにより、確率予測モジュールは
同じコーダをノンリニアに動かすことができる。
【0066】低い確率ほど同じR−符号を持つ状態が多
いことに気付かれたい。このようにしたのは、低確率に
おいて誤った符号を用いた時の効率低下が大きいからで
ある。ランレングス符号の状態テーブルの特質は、符号
語毎に状態が遷移することである。状態が変化するたび
に符号を変えるように状態テーブルを設計した場合、低
い確率における状態切り替わり時に、エントロピー効率
限界に非常に近い符号と、エントロピー効率限界から非
常に遠い符号との間で符号が切り替わる。このように、
状態間遷移で不利益(符号化データビット数の観点で)
が生ずる可能性がある。Langdonの確率予測モジュール
のような従来の確率予測モジュールは、このような不利
益のために性能を損なっている。
【0067】高い確率のランレングス符号においては、
符号を誤ることによる不利益はそれほど大きくない。し
たがって、本発明では、低い確率に余分に状態が追加さ
れることにより、2つの正しい符号間で切り替わる変化
が増加し、それにより符号化の非効率性を減らす。
【0068】なお、ある実施例では、コーダは初期確率
予測状態を持つ。換言すれば、コーダは、予め決められ
1つの状態、例えば状態18でスタートする。一実施例
では、初めのいくつかのシンボルに対して、いくつかの
状態を用いて素早い適応を可能にするために別の状態テ
ーブルが使用され、そして、残りのシンボルに対して
は、確率予測値の微調整が可能な低速適応のために、も
う一つの状態テーブルが使用されるかもしれない。この
ようにすれば、コーダは、符号化プロセスにおいて、よ
り効率的な符号をより迅速に用いることができるであろ
う。別の実施例では、符号ストリームが各コンテキスト
毎に初期確率予測値を指定するかもしれない。一実施例
では、インクリメント及びデクリメントが固定した数
(例えば1)に従っては行なわれない。そうではなく
て、それまでに出会ったデータの量またはデータの変化
量(安定性)に応じた可変数だけ確率予測状態がインク
リメントされる。そのようなテーブルの例が、後述の図
69乃至図73のテーブル21〜25である。
【0069】状態テーブルが対称ならば、図8に例示し
たテーブルから分かるように、テーブルの半分(0状態
を含む)だけ、記憶するか、ハードウエア化すればよ
い。一実施例では、この対称性を利用するため、状態番
号は符号(sign)・大きさの(1の)補数の形式で記憶
される。しかして、1の補数の絶対値をとって状態を確
認し、符号(sign)を調べてMPSが1か0かを判断す
ることにより、このテーブルを利用できる。こうするこ
とにより状態のインクリメント及びデクリメントのため
に必要なハードウエアを減らすことができる。というの
は、状態の絶対値がテーブルの索引に利用され、かつ、
1の補数の絶対値の計算はとるに足らないからである。
もう一つの実施例では、ハードウエア効率を増加させる
ため、状態テーブルは固定配線の状態マシンまたはプロ
グラマブル状態マシンに置き換えられる。固定配線の状
態−符号コンバータは、状態テーブルの1つの具体化形
態である。
【0070】<平衡並列エントロピーコーディングシス
テムの概要>本発明は、平衡(balanced)並列エントロ
ピーコーディングシステムを提供する。この並列エント
ロピーコーディングシステムは、リアルタイム符号化と
リアルタイム復号の両方を高速/低コストのハードウエ
アで実行する。本発明は、書き換え可能な光ディスクま
たは磁気ディスクのデータのリアルタイム圧縮/伸長、
コンピュータネットワークデータのリアルタイム圧縮/
伸長、多機能(例えばコピア、ファクシミリ、スキャ
ナ、プリンタ等々)マシンの圧縮フレーム記憶内の画像
データのリアルタイム圧縮/伸長、音声データのリアル
タイム圧縮/伸長のような(これに限定されないが)、
様々な非損失性コーディングの用途に利用し得る。
【0071】符号化装置の性能を規定する際に多少の注
意を要する。符号化データチャネルが十分高速であると
仮定するならば、オリジナルデータに対しある速度を達
成する符号化装置を設計することは簡単である。しかし
ながら、多くの用途において目標とするところは、符号
化装置が符号化データチャネルを効率的に利用すること
である。符号化データチャネルの利用率は、オリジナル
データ・インターフェースの最高バースト速度、符号化
装置の速度、及びデータの圧縮率によって大きく左右さ
れる。これらの影響は、符号化装置におけるバッファリ
ング量に依存する、やや限定された量のデータについて
検討されなければならない。符号化データチャネルを効
率的に利用し、そのうえ符号化速度と高圧縮率を維持
し、さらには最高バースト速度を受容する符号化装置を
得ることが望ましい。
【0072】以下、本発明の符号化装置を説明する。こ
の符号化装置と一緒に使用されるであろう復号装置につ
いても説明する。
【0073】<本発明のリアルタイム符号化>図9は本
発明の符号化システムのブロック図である。一実施例で
は、この本発明の符号化装置はリアルタイムの符号化を
行なう。図9において、符号化システム600は、コン
テキストモデル(CM)・状態メモリ603と接続さ
れ、オリジナルデータ601に応じて符号化データを符
号語情報604として発生する符号化器602を含んで
いる。符号語情報604は再配列ユニット606に受け
取られ、この再配列ユニット606は再配列メモリ60
7と接続される。再配列ユニット606は再配列メモリ
607と協動し、符号語情報604に応じて符号化デー
タストリーム608を発生する。注意すべくは、この符
号化システムは符号語の処理に限定されるものでなく、
他の実施例では、本発明の教えるところを利用し、離散
的なアナログ波形、可変長ビットパターン、チャネルシ
ンボル、アルファベット、イベント等々を処理するかも
しれない。
【0074】符号化器602は、コンテキストモデル
(CM)、確率予測マシン(PEM)及びビットストリ
ームジェネレータ(BM)を含んでいる。符号化器60
2内のコンテキストモデルとPEM(確率予測マシン)
は、復号器内のそれらと本質的に同じものである(デー
タフローの向きは別であるが)。符号化器602のビッ
トストリームジェネレータは、復号器のビットストリー
ムジェネレータと同様であり、後述する。符号化器60
2による符号化の結果は、オリジナルデータを表わす0
個以上のビットである。一実施例では、ビットストリー
ムジェネレータの出力も1つ以上の制御信号を含む。こ
れらの制御信号は、ビットストリーム中のデータに対し
制御パスを提供する。一実施例では、符号語情報はラン
開始表示、ラン終了表示、符号語、この符号語のランカ
ウント(run count)(それがコンテキストによろうと
確率クラスによろうと)を特定するインデックスからな
る。本発明のビットストリームジェネレータの一実施例
は後述する。
【0075】再配列ユニット606は、符号化器602
のビットストリームジェネレータにより生成されたビッ
トと制御信号(それがあれば)を受け取って、符号化デ
ータを発生する。一実施例では、再配列ユニット606
より出力される符号化データは、インターリーブド語の
ストリームからなる。
【0076】一実施例では、再配列ユニット606は2
つの機能を遂行する。再配列ユニット606は、符号語
群を、符号化器602により生成されたランの末尾か
ら、復号器に必要とされるランの先頭へ移し、可変長の
符号語を組合せて固定長のインターリーブド語とし、そ
れらを復号器に要求される適切な順序で出力する。
【0077】再配列ユニット606はテンポラリー再配
列メモリ607を利用する。一実施例では、ワークステ
ーション上で符号化が実行される場合、テンポラリー再
配列メモリ607はサイズが100Mバイトを超えるこ
ともある。本発明の平衡システムでは、テンポラリー再
配列メモリ607は非常に小さく(例えば約1kバイ
ト)、かつ固定サイズである。このように、一実施例で
は、たとえ復号器に必要とされるメモリまたはビットレ
ートを増加させるとしても(1つのランの完了前に出力
が行なわれる時など)、リアルタイム符号化が一定量の
メモリを使用して遂行される。本発明の復号器は、例え
ば暗黙合図法、明示合図法、またはストリーム内合図法
(後述)によって、再配列ユニットが限定されたメモリ
を利用する影響を確認することができる。再配列ユニッ
ト606は再配列のために利用可能な有限のメモリを持
つが、”必要とされる”メモリは制限がない。ランの最
後から先頭までのキュー用とインターリーブド語再配列
用のメモリが限定される影響を両方考慮しなければなら
ない。
【0078】一実施例では、本発明の符号化システム
(及び対応する復号システム)は、1つの集積回路チッ
プを用いて符号化(または復号)を遂行する。別の実施
例では、1つの集積回路に、本発明の符号化装置(符号
化器、復号器、メモリ)が収容される。独立したメモリ
が、符号化を支援するために付加されてもよい。1つの
マルチチップのモジュールもしくは集積回路に、符号化
/復号のためのハードウエアとメモリを収容してもよ
い。
【0079】本発明の符号化システムは、実効帯域幅を
最高ファクターNだけ増加させようとするかもしれな
い。達成される圧縮率がN:1未満のときには、符号化
データチャネルは完全に利用されるが、圧縮率に等しい
実効帯域幅の増加が得られるにすぎない。達成される圧
縮率がN:1を超えるときには、実効帯域幅の増加が達
成され割増帯域幅は書き込み可能である。いずれの場合
も、達成される圧縮率とは、当然、符号化システム内に
存在するバッファ量により決まるデータの局部領域に対
するものである。
【0080】<本発明の符号化器用ビットジェネレータ
>図10は本発明の符号化器のビットストリームジェネ
レータ(簡略のため、ビットジェネレータとも呼ぶ)の
一実施例を示す。ビットジェネレータ701は、入力と
して、1つの確率クラスと1つの符号化前ビット(例え
ばMPSまたはLPS表示)を受け取るように接続され
る。この入力に応答して、ビットジェネレータ701は
複数の信号を出力する。この出力中の2つは、ランの開
始とランの終了を示す制御信号(各符号語は1つのラン
を表わす)、すなわち開始信号711と終了信号712
である。ランが同時に開始及び終了することもあり得
る。ランが開始または終了する時に、”インデックス”
出力713は符号化前ビットの確率クラス(またはコン
テキスト)を指示する。一実施例では、インデックス出
力713はビットの確率クラスと、各確率クラスがいく
つかのメモリバンクに再現されるシステムのためのバン
ク識別との組合せからなる。符号語出力714はランが
終わった時にビットジェネレータ701より符号語を出
力するために用いられる。
【0081】メモリ702は、ビットジェネレータ70
1と接続され、ある特定の確率クラスに関するランカウ
ントを記憶する。ビットジェネレータ701は、ビット
ストリーム生成期間に、インデックス(例えば確率クラ
ス)を利用してメモリ702を読み出す。メモリ702
の読み出し後、ビットジェネレータ701は次のように
ビット生成を行なう。まず、ランカウントが0であるな
らば、開始信号711がアサートされ、ランの開始を表
示する。そして、符号化前ビットがLPSであるなら
ば、終了信号712がアサートされランの終了を表示す
る。また、符号化前ビットがLPSならば、符号語出力
714は符号語が1N符号語であることを指示するよう
設定され、かつランカウントはクリアされる、例えば0
に設定される(それがランの終わりであるので)。符号
化前ビットがLPSでなければ、ランカウントがインク
リメントされ、そして、テストをしてランカウントが符
号の最大ランカウントと等しいか判定する。最大ランカ
ウントと等しいときには、終了信号712がアサートさ
れ、符号語出力714が0に設定され、ランカウントが
クリアされる(例えばランカウントは0に設定され
る)。テストでランカウントが符号の最大ランカウント
と等しくないと判定したときには、ランカウントがイン
クリメントされる。インデックス信号712は入力とし
て受け取った確率クラスを表わすことに注意されたい。
【0082】本発明において、1N符号語の生成は、1
N符号語の長さが余分な情報なしに確認できるような方
法で行なわれる。図60のテーブル12は、復号器及び
符号化器用のR3(2)符号語の1N符号語の説明である。
復号器は、”1N”符号語中の”1”ビットがLSB
(最下位ビット)であり、かつ、”N”カウント部が適
当なMSB...LSBの順序であると考える。復号器の
順序では、どの符号が使われているか分かっていない
と、可変長符号語を0パッドと区別することができな
い。符号化器の順序では、符号語は順序が逆になってお
り、最上位の”1”ビットの位置が”1N”符号語の長
さを示す。符号語を符号化器の順序で生成するには、カ
ウント値の補数を逆順にしなければならない。これを達
成するには、13ビットのカウントを逆順にしてから、
LSBに揃うようシフトすればよい。以下に詳細に述べ
るように、再配列ユニット606は符号語の順序を逆に
して復号器の順序に戻す。しかし、いずれにしても再配
列ユニット606はシフト操作を行なわなければならな
いので、この符号語の順序反転のために再配列ユニット
606が複雑化することはない。
【0083】R3 符号の場合、”N”符号語を生成する
には、”1”に続くビットで短いカウントと長いカウン
トのいずれが存在するか指示することも必要である。
【0084】本発明は、複数のメモリバンクを使用する
ことによりパイプライン処理が可能である。例えば、マ
ルチポートのメモリの場合、符号化前ビットのメモリ読
み出し動作が行なわれ、同時にその前の符号化前ビット
のメモリ書き込み動作が行なわれる。
【0085】<Altra AHDLサンプルデザイン
>本発明の符号化器のビットジェネレータの一実施例は
FPGA(フィールドプログラマブルゲートアレイ)か
ら構成される。本設計は、R2(12)までのR2符号,R3
符号全部を処理する。そのAHDL(Altera Hardware
DescriptionLanguage)のソースコードを図41から図
46に示す。
【0086】本設計は、図16に示すような複数の部分
からなる。第1に、”ENCBG”1301は本設計の
主要部であって、ランの開始、終了及び連続を処理する
ための論理を有する。第2に、”KEXPAND”13
02は、確率クラスを最大ラン長、可変長マスク及びR
3 符号の最初の長い符号語の長さへ展開するために使わ
れる。”KEXPAND”1302は、復号器の同名の
機能と同一である。第3に、”LPSCW”1303は
カウント値と確率クラスの情報を入力として受け取っ
て、適切な”1N”符号語を発生する。
【0087】本設計は、2つのパイプラインステージを
用いる。第1のパイプラインステージで、カウントがイ
ンクリメントされ、確率クラスが展開され、かつ、長い
R3符号語のための減算及び比較が実行される。これ以
外の操作は全て第2パイプラインステージで実行され
る。
【0088】<本発明の再配列ユニット>図11は再配
列ユニットの一実施例のブロック図である。図11にお
いて、再配列ユニット606はランカウント並べ替えユ
ニット801とビットパックユニット802からなる。
ランカウント並べ替えユニット801は、符号化器によ
り生成されたランの最後を復号器で必要とされるように
ランの先頭へ移動する。一方、ビットパックユニット8
02は可変長符号語を組合せて固定長のインターリーブ
ド語とし、それを復号器置に要求される適切な順序で出
力する。
【0089】”スヌーパー”(snooper)復号器を使っ
て、どのような復号既にも合うように並べ替えをするこ
とが可能であり、この場合、復号器が符号化装置に内蔵
され、これは実際の復号器が符号語を必要とする順序で
データ要求を出す。スヌーパー復号器をサポートするた
め、ランカウントの並べ替えが各ストリーム毎に独立し
て行なわれねばならないかもしれない。容易に模擬でき
る復号器の場合には、並べ替えを可能にするために複数
のタイムスタンプ付きキューまたは1つの併合キューが
用いられるかもしれない。一実施例では、各符号語の並
べ替えはキュー様のデータ構造を使って行なうことがで
き、また、複数の符号化データストリームの扱い方とは
独立している。並べ替えを行なう方法について以下に説
明する。
【0090】符号化器において行なわれる最初の並べ替
え操作は、各ランカウントを、それがランの先頭で指定
されるように並べ替えることである(復号器が復号のた
めににそれを要求するので)。この並べ替えが必要とな
るのは、符号化器はランの終わりまで、どのようなラン
カウント(及び符号語)か決定しないからである。この
ように、データを符号化することによって得られたラン
カウントは、復号器がそれをデータストリームへ適切に
復号できるように並べ替えられる。
【0091】図11に戻る。本発明の再配列ユニット6
06は、ランカウント並べ替えユニット801とビット
パックユニット802からなる。ランカウント並べ替え
ユニット801は複数の入力、すなわち開始信号71
1、終了信号712、インデックス信号713及び符号
語714を受け取るように接続される。これらの信号に
ついては、図12のランカウント並べ替えユニットに関
連して、より詳細に説明する。ランカウント並べ替えユ
ニット801は、その入力に応じて、符号語803と信
号804を発生する。信号804は、ランカウントを何
時リセットすべきか指示する。符号語803はビットパ
ックユニット802に受け取られる。ビットパックユニ
ット803は、符号語803に応答してインターリーブ
ド語805を発生する。
【0092】ランカウント並べ替えユニット801とビ
ットパックユニット802について、以下にさらに詳し
く説明する。
【0093】<ランカウント並べ替えユニット>前述の
ように、復号器は符号語に符号化されたデータの先頭部
分が必要となった時点で符号語を受け取る。しかし、符
号化器は、符号語の正体が、その符号語に符号化される
データの最後まで分からない。
【0094】ランカウント並べ替えユニット801の一
実施例のブロック図が図12に示されている。ここに述
べる実施例は、4本のインターリーブドストリームを収
容でき、各インターリーブド語は16ビットであり、符
号語は長さが1ビットから13ビットまで変化する。か
かるケースでは、再配列ユニット606は全ストリーム
を処理するためパイプライン化されるかもしれない。さ
らに、ランカウントを確率クラスと関係付ける符号化器
が用いられるので、任意時点でアクティブになり得るラ
ンカウントの最大数は小さく、本実施例では25と仮定
されている。なお、本発明は、4本のインターリーブド
ストリーム、16ビットのインターリーブド語、1〜1
3ビットの符号語長に限定されるものではなく、ストリ
ーム本数を増減し、インターリーブド語長を16ビット
から増減し、あるいは符号語長を1〜13ビットより拡
大した場合にも本発明を適用し得る。
【0095】図12において、ポインタメモリ901
は、インデックス入力713を受け取るよう接続され、
アドレス出力を発生する。このアドレス出力はマルチプ
レクサ(MUX)902の1つの入力に接続される。M
UX902の残りの2つの入力は、ヘッドカウンタ90
3よりヘッドポインタとして出されるアドレスと、テー
ルカウンタ904よりテールポインタとして出されるア
ドレスを受け取るように接続される。MUX902の出
力は符号語メモリ908に接続され同メモリをアクセス
するために用いられる。
【0096】インデックス入力713はMUX905の
1つの入力としても接続される。MUX905のもう1
つの入力は符号語入力714と接続される。MUX90
5の出力は有効検出モジュール906の入力及びデータ
バス907に接続される。データバス907は符号語メ
モリ908及びMUX905の入力と接続される。デー
タバス907には、制御モジュール909の出力も接続
される。開始入力711及び終了入力712は制御モジ
ュール909の別々の入力に接続される。有効検出モジ
ュール906の出力は符号語出力803と信号804
(図11)からなる。ランカウンタ並べ替えユニット8
01は、その各部分の動作を調整するためのコントロー
ラ論理(本発明を難解にしないため図示しない)も有す
る。
【0097】繰り返しになるが、インデックス入力71
3は1つのランを特定する。一実施例では、インデック
スは25の確率クラス中の1つを指示する。この場合、
インデックスの表現に5ビットを要する。なお、複数バ
ンクの確率クラスクが用いられるときは、特定のバンク
を指定するために余分なビットが必要となろう。一実施
例では、インデックス入力はランカウントの代わりに確
率クラスを特定する。符号語入力714はランの終了時
では符号語であるが、それ以外では”考慮不要”であ
る。開始入力711と終了入力712はランの始まり、
終わり、またはその両方のいずれであるかを指示する制
御信号である。ランの始まりと終わりが同時の時は、そ
のランは単一の符号化前ビットからなる。
【0098】ランカウント並べ替えユニット801は、
ビットジェネレータがその入力に応じて生成したランカ
ウントを並べ替える。符号語メモリ908は、符号語を
並べ替えの間記憶する。一実施例では、符号語メモリ9
08は、同時にアクティブになり得るランカウントの数
より大きい。これは、圧縮の向上につながる。符号語メ
モリが、同時にアクティブになり得るランカウント数よ
り小さいと、アクティブなランカウントの実際の数がメ
モリに格納できる数までに制限されることになろう。良
好な圧縮率を得るシステムでは、ランカウントの長い1
つの符号語のデータの蓄積中に、ランカウントの短い多
数の符号語が開始する(そして恐らく終了する)という
ことがしばしば起こる。このため、大きなメモリを用い
ることにより、長いランが完了前に無理に押し出されな
いようにする必要がある。
【0099】ポインタメモリ901は、1つのランの途
中にある確率クラスに関する符号語メモリロケーション
のアドレスを保持し、符号語メモリ908をランダムア
クセス方式でアドレスする。ポインタメモリ901は、
1つのランの途中にあり得る各確率クラス毎に、符号語
メモリ908のアドレスのための1つのロケーションを
持っている。1つのランがある確率クラスとして終了し
たならば、ポインタメモリ901に記憶されている当該
確率クラスに関するアドレスを用いて符号語メモリ90
8がアクセスされ、完成した符号語が符号語メモリ90
8の当該ロケーションに書き込まれる。その時点まで
は、符号語メモリ908の当該ロケーションは無効なエ
ントリーを記憶していた。このように、ポインタメモリ
901はランカウント毎に無効な符号語のロケーション
を記憶する。
【0100】ヘッドカウンタ903とテールカウンタ9
04も符号語メモリ908をアクセスするためのアドレ
スを供給する。ヘッドカウンタ903及びテールカウン
タ904を利用して、符号語メモリ908をキューもし
くは循環バッファ(例えば先入れ先出し[FIFO]メ
モリ)としてアドレスすることができる。テールポイン
タ(904)は、符号語メモリ908に符号語を挿入で
きるようにするため、符号語メモリ908の次に利用可
能なロケーションのアドレスを記憶している。ヘッドカ
ウンタ903は、符号語メモリ908の次に出力すべき
符号語のアドレスを記憶している。換言すれば、ヘッド
カウンタ903は符号語メモリ908より次に削除すべ
き符号語の符号語メモリアドレスを記憶している。ポイ
ンタメモリ901内のそれぞれの可能なインデックス
(例えば確率クラス)のためのロケーションを用いて1
つのランが始まった時にテールポインタ(904)がど
こにあったか覚えておくことにより、そのランが終わる
時に符号語メモリ908の当該ロケーションに適切な符
号語を格納できる。
【0101】制御モジュール909は、あるエントリー
が有効な符号語データを格納しているか否かを示す有効
信号を、符号語メモリ908内の格納データの一部とし
て発生する。例えば、その有効ビットが論理1ならば、
その符号語メモリロケーションは有効データを格納して
いる。しかし、その有効ビットが論理0ならば、その符
号語メモリロケーションは無効データを格納している。
有効検出モジュール906は、符号語メモリ908から
1つの符号語が読み出される度に、1つのメモリロケー
ションが有効な符号語を格納しているか判定する。一実
施例では、有効検出モジュール906は、メモリロケー
ションが有効な符号語を格納しているか、または特殊な
無効コードを格納しているか調べる。
【0102】新たなランを始める時に、無効データエン
トリーが符号語メモリ908に格納される。この無効デ
ータエントリーは、ランが完了した時にメモリの正しい
ロケーションにそのランの符号語が格納されるようにす
るため(復号器を模擬する適切な順序付けを保証するよ
うに)、符号語メモリ908に格納されたデータストリ
ーム中のスペース格納部として働く。一実施例では、こ
の無効データエントリーは、MUX905経由のインデ
ックスと、制御モジュール909からの無効表示(例え
ば無効ビット)を含む。無効エントリーが格納される符
号語メモリ908のアドレスは、テールポインタ(90
5)により与えられ、符号語メモリ908内のランカウ
ンタのためのロケーションを知る手かがりとしてポイン
タメモリ901に格納される。残りのデータは、完成し
たランカウント(e,g.,並べ替えられたランカウント)
として、符号語メモリ908内のヘッドポインタ(90
3)とテールポインタ(904)との間にある。無効メ
モリロケーションの最大数は0からL−1である(ただ
し、Lはランカウントの数)。1つのランの終わりで1
つの符号語が完成した時に、そのランカウントがポイン
タメモリ901に格納されているアドレスを使って符号
語メモリ908に格納される。
【0103】1つのランが始まる時に、そのランのため
のインデックスが符号語メモリ908に格納されるの
で、符号語メモリ908が満杯であるが、そのランが未
だ完了していないときには、そのインデックスは信号8
04と一緒に対応したランカウンタをリセットするため
に用いられる。符号語メモリ908に符号語またはイン
デックスを格納することに加え、1ビット(ここでは”
有効”ビットと呼ぶ)を用いて、これら2種類のデータ
のいずれが格納されているか指示する。
【0104】ランを開始させも終了させもしないとき
は、ランカウント並べ替えユニットはアイドル状態であ
る。ランを開始させた終了させず、かつメモリが満杯の
ときは、符号語メモリ908より1つの符号語が出力さ
れる。この出力される符号語は、ヘッドポインタ(90
3)に保持されている当該確率クラスに関するアドレス
に格納されている符号語である。次に、ランを開始させ
たが終了させないときには(メモリが満杯であるか否か
にかかわらず)、インデックス入力713が、MUX9
05を介して、テールポインタ(904)により指示さ
れる符号語メモリ908のアドレスに格納される。そし
て、テールポインタ(904)は、インデックス入力7
13上のデータにより指定されたポインタメモリ901
のアドレス(例えば当該確率クラスに関するポインタメ
モリ901内のロケーション)に書き込まれる。テール
ポインタ(904)の書き込み後、テールポインタ(9
04)はインクリメントされる。
【0105】ランを終わらせたが、ランを開始させない
ときには、ポインタメモリ901に格納されているイン
デックスに対応したアドレスが読み出され、符号語入力
714上の完成した符号語を格納するための符号語メモ
リのロケーションとして用いられる。
【0106】ランを開始させ、かつ、終了させ(すなわ
ち、1つのランが同時に始まりかつ終了する)、かつメ
モリが満杯のときには、符号語メモリ908より1つの
符号語が出力される。次に、ランを開始させ、かつ終了
させたときには(メモリが満杯であるか否かにかかわら
ず)、符号語入力714がテールポインタ(904)に
より指定された符号語メモリ908のアドレスに書き込
まれる。そして、テールカウンタ904は、次の利用可
能なロケーションを保持するようインクリメントされる
(例えば、1だけインクリメントされる)。
【0107】本発明において、ランカウンタ並べ替えユ
ニット801は符号語を様々なタイミングで出力するで
あろう。一実施例では、符号語は有効な時または無効な
時に出力されるであろう。符号語は、無効な時でも、メ
モリが満杯状態で、かつ1つのランが完了していないな
らば出力されるであろう。最低限レートを維持するため
にも(すなわちレート制御のためにも)、無効な符号語
が出力されるかもしれない。また、データ全部のランカ
ウント並べ替えが済んだ時、または、リセット操作の結
果としてランカウント並べ替えユニットが符号語メモリ
908の中央へジャンプした時に、符号語メモリ908
のフラッシュ(flush)のために無効な符号語が出力さ
れるであろう。なお、かかる場合には、符号化装置がそ
のように動作していることを復号装置が知っていなけれ
ばならない。
【0108】上述のように、符号語メモリ908が満杯
のときは何時でも符号語が出力される。符号語メモリ9
08が一旦満杯になると、符号語メモリ908への入力
(すなわち新たな符号語の開始)があるたびに、符号語
メモリ908からの出力が行なわれる。符号語メモリ9
08が満杯状態である時に、あるエントリーを更新して
も、符号語メモリ908の出力を生じさせない。すなわ
ち、1つのランを完了し、得られた符号語をその前に割
り当てられたメモリロケーションに書き込んでも、メモ
リ満杯出力を生じさせない。同様に、1つのランが終わ
り、ポインタメモリ901内の対応アドレスとヘッドカ
ウンタ903内のアドレスとが同一である時に、符号語
が直ちに出力され、そして、符号語メモリ908をアク
セスすることなくヘッドカウンタ903がインクリメン
トされるであろう。一実施例では、インクリメント後の
テールポインタ(904)がヘッドポインタ(903)
と等しい時に、メモリ満杯状態が発生する。したがっ
て、テールポインタ(904)が更新されると、ランカ
ウント並べ替えユニット801内のコントローラ論理
は、テールポインタ(904)とヘッドポインタ(90
3)を比較し、一致するときには符号語メモリ908が
満杯で1つの符号語を出力しなければならないと判断す
る。別の実施例では、メモリが満杯になる前に符号語が
出力されるであろう。例えば、ヘッドポインタ(90
3)によりアドレスされたキューの部分に有効な符号語
が入っていれば、その符号語が出力されるであろう。そ
のためには、キューの先頭部分を繰り返し調べて、その
中の符号語の状態を確認する必要がある。なお、符号語
メモリ908はファイルの符号化の終わりで空にされ
る。
【0109】ランカウント並べ替えユニット801を利
用し、まず符号語メモリ908のヘッドポインタ(90
3)に指定されたアドレスから値(例えばデータ)を読
み出すことにより、1つの符号語が出力される。符号語
の出力はコントローラ論理によって制御調整される。有
効検出モジュール906は、その値が符号語であるか判
定するためのテストをする。換言すれば、有効検出モジ
ュール906は符号語が有効であるか判定する。一実施
例では、有効検出モジュール906は、各エントリーに
記憶されている有効性ビットを調べてエントリーの有効
性を判定する。その値が符号語であれば(すなわち、そ
の符号語が有効であれば)、その値が符号語として出力
される。他方、その値が符号語でなければ(すなわち、
その符号語が無効ならば)、現在のランカウント以上の
長さのMPSのランを有する符号語が出力されであろ
う。”0”符号語が現在のランを正確に表現する唯一の
符号語であるので、それが出力されるだろう。その出力
がなされた後に、ヘッドポインタ(903)は符号語メ
モリ908の次のロケーションを指すようインクリメン
トされる。あるいは、許容最短ランレングスの”1N”
を用いて、復号器に1つの符号語がLPS送出前に押し
出されたか否かだけチェックさせる。
【0110】一実施例では、ランカウント並べ替えユニ
ット801は2クロックサイクル時間で動作する。第1
のクロックサイクルで、符号語メモリ908に入力が取
り込まれる。第2のクロックサイクルで、符号語メモリ
908の出力が生じる。
【0111】ヘッドポインタ(903)が有効な符号語
をアドレスした時には必ず符号語が出力されるであろう
が、構成によっては、バッファが満杯の時にのみ符号語
が出力されるのが望ましいかもしれない。そのようにす
ると、システムの遅延が、ある符号語数分に固定し変動
しなくなる。符号語メモリ908が、1つのランが開始
し入力される時点と出力される時点との間に、所定数の
符号語を保持することが可能であるとすると、符号語メ
モリ908が満杯になるまで出力が行なわれないので、
上記遅延はその所定符号語数となる。なお、並べ替えの
ための遅延は、例えば符号化データ量またはオリジナル
データ量等によって依然として変動する。符号語メモリ
908を出力を出す前に満杯にさせれば、出力は1サイ
クルにつき1符号語を発生する。
【0112】なお、符号語メモリ908のあるロケーシ
ョンが無効としてマークされて場合に、その不使用ビッ
トを、当該ロケーションがどのようなランカウントのも
のかの識別情報を格納するために使用してもよい(すな
わち、そのロケーションを満たすべきコンテキストビン
または確率クラスが、そこに格納される)。当該情報
は、メモリが満杯になった場合の処理に役立つ。具体的
には、当該情報は、当該ランカウントに対する符号語が
完成していないこと、及び、それがたった今完成するこ
とをビットストリームジェネレータに指示するために利
用できる。この場合、無効な符号語を出力する決定がな
されているが、これはメモリ満杯状態により生じたので
あろう。このように、システムがランカウンタをリセッ
トする際に、当該情報は、ビットジェネレータ及びラン
カウントに関し、何時システムが動作を再開すべきか明
らかにする。
【0113】インデックス入力に関してであるが、複数
バンクの確率クラスが使用されている時のパイプライン
処理のため、インデックスがバンク識別情報を含むかも
しれない。すなわち、ある1つの確率クラスに対して複
数のランカウントがあるかもしれない。例えば、80%
符号に対して2つのランカウントがあるかもしれず、こ
の場合、その一方が用いられると、次には他方が用いら
れる。
【0114】符号語は可変長であるから、符号語はその
長さを確認できるようなやり方で符号語メモリ908に
格納されなければならない。サイズを明示的に格納する
ことも可能であるかもしれないが、それではメモリ使用
量を最小にできない。R−符号では、0なる値をメモリ
に格納することで1ビットの”0”符号語を指示できる
ので、”1N”符号語を、プラオリティエンコーダによ
って最初の”1”からの長さを確認できるように格納で
きる。
【0115】符号語メモリ908がマルチポート(例え
ばデュアルポート)ならば、この設計は、1クロックあ
たり1符号語を処理するようパイプライン化することが
できる。符号語メモリ908のどのロケーションも複数
のポートからアクセスできるであろうから、符号語メモ
リ908のあるロケーションの書き込み(例えば無効ま
たは有効な符号語の格納)と、別のロケーションの読み
出し(例えば符号語の出力)とが同時に行ない得る。な
お、この場合には、複数のデータ及びアドレスバスをサ
ポートするようマルチプレクサを変更しなければならな
いであろう。
【0116】符号化器が”0”符号語を出力する時及び
符号語メモリが満杯であるためにランカウンタをリセッ
トする時には必ず、復号器は同じことをしなければなら
ない。そのためには、復号器は符号化器の符号語メモリ
キューを模擬モデル化しなければならない。その方法に
ついては後述する。
【0117】なお、CMOSデバイス類の節電のた
め、”0”符号語が無効ランとして出力される時に”1
N”符号語のためのカウンタをディセーブルしてもよ
い。というのは、復号される”1N”符号語は有効であ
るが、”0”符号語だけは無効かもしれないからであ
る。
【0118】<コンテキストベースの他の実施例>図1
3は、受け取ったデータを(確率クラスに対立するもの
としての)コンテキストに従って並べ替える、ランカウ
ント並べ替えユニットの他の実施例のブロック図であ
る。このランカウント並べ替えユニット1000は、R
−符号を使って並べ替えを行なう。図13において、ラ
ンカウント並べ替えユニット1000はポインタメモリ
1001、ヘッドカウンタ1002、テールカウンタ1
003、データマルチプレクサ(MUX)1004、ア
ドレスMUX1005、長さ計算ブロック1006、有
効検出ブロック1007及び符号語メモリ1008から
なる。符号語メモリ1008は符号語を並べ替えの間記
憶する。ポインタメモリ1001は、ランの途中のコン
テキストビンのための符号語メモリロケーションのアド
レスを格納する。ヘッドカウンタ1002とテールカウ
ンタ1003は、符号語メモリ1008をキューもしく
は循環バッファとしてアドレスさせることができるだけ
でなく、ポインタメモリ1001によりランダムアクセ
ス式にアドレスさせることができる。R−符号では、0
なる値をメモリに格納することで1ビットの”0”符号
語を指示することができるので、”1N”符号語を、プ
ラオリティエンコーダによって最初の”1”からの長さ
を確認できるように格納できる。長さ計算モジュール1
006は、プライオリティエンコーダのような働きをす
る。(もし他の可変長符号を使用するならば、符号語の
始まりをマークするために1つの”1”ビットを付加す
るほうが、符号語の長さを明示的に格納するためにlo
g2ビットを付加するよりもメモリ効率がよいであろ
う。) ランカウント並べ替えユニット1000はま
た、その要素1001〜1008の動作を調整制御する
ための不図示のコントローラ論理を有する。
【0119】ランカウント並べ替えユニット1000の
動作は、確率予測値をベースにしたランカウント並べ替
えユニットの動作に非常に似ている。新しいランを開始
すると、コンテキストビンを含む1つの無効エントリー
がテールポインタ(1003)に指定された符号語メモ
リ1008のアドレスに書き込まれる。次に、テールポ
インタ(1003)のアドレスが、ポインタメモリ10
01の、現在ランカウントのコンテキストビンのアドレ
スに格納される。そして、テールポインタ(1003)
がインクリメントされる。1つのランが完了した時に、
ポインタメモリ1001よりランカウントに対応したポ
インタが読み出され、そのポインタによって指示された
符号語メモリ1008のロケーションへ符号語が書き込
まれる。ランの開始でも終了でもなく、ヘッドポインタ
(1002)により指定された符号語メモリ1008の
ロケーションの内容が無効データであるときには、ヘッ
ドポインタ(1002)によりアドレスされた符号語が
読み出されて出力される。そして、ヘッドポインタ(1
002)がインクリメントされる。ランの開始と終了が
同時に起こる場合には、テールポインタ(1003)に
より指定された符号語メモリ1008のアドレスに符号
語が書き込まれ、それからテールポインタ(1003)
がインクリメントされる。
【0120】同様に、1つのランが終わり、対応したポ
インタメモリ1001のアドレスとヘッドカウンタ10
02のアドレスとが同一である時には、符号語を直ちに
出力することができ、また、符号語メモリ1008をア
クセスしることなくヘッドカウンタ1002の値をイン
クリメントすることができる。
【0121】”コンテキスト別”ランカウントシステム
では、それぞれのコンテキストがポインタメモリ100
1の1つのロケーションを必要とするので、BG及びP
EM状態メモリを拡張してポインタメモリ1001を実
現してもよい。ポインタメモリ1001の幅は、符号語
メモリアドレスに必要なサイズと等しい。
【0122】符号語メモリ1008のロケーション数
は、設計者が特定の構成において選べばよい。このメモ
リのサイズを制限すると圧縮効率が下がるので、コスト
/圧縮率の兼ね合いがある。符号語メモリの幅は、最大
の符号語に有効/無効表示用の1ビットを足したものに
等しい。
【0123】図61のテーブル13に示したR2(2)符号
を用いる例を使って並べ替えを説明する。図62のテー
ブル14は、コンテキスト別にラベル付けされた、並べ
替えられるべきデータを示す(0=MPS,優勢シンボ
ル;1=LPS,劣勢シンボル)。コンテキストは2つ
しかない。符号化前ビットの番号は符号化前ビットクロ
ックサイクルによる時刻を示す。ランの始まりと終わり
が示されており、ランの終わりに符号語が示されてい
る。
【0124】このデータ例に対する並べ替え動作が図6
3のテーブル15に示されている。4つのロケーション
0〜3を持つ符号語メモリが使用されるが、本例ではこ
のサイズで十分でありオーバーフローは生じない。各行
は、1つの動作、すなわち、あるコンテキストのランの
開始もしくは終了、または1つの符号語の出力を行なっ
た後のシステムの状態を示す。”x”は”考慮不要の”
メモリロケーションを示すために用いられている。いく
つかの符号化前ビットについては、ランが始まりも終わ
りもしないので、ランカウント並べ替えユニットはアイ
ドル状態である。ランを終了する符号化ビットについて
は、1つ以上の符号語が出力される可能性があり、シス
テム状態を様々に変化させるかもしれない。
【0125】図63のテーブル15において、ヘッドポ
インタとテールポインタは0に初期化されるが、これは
符号語メモリ(例えばキュー)に何も記憶されていない
ことを意味する。ポインタメモリは、各コンテキストに
つき1つ、計2つの記憶ロケーションがあるように表わ
されている。各ロケーションは、ビット番号1の前
は、”考慮不要の”値を記憶している。符号語メモリは
4符号語の深さを持つもとして示されているが、それら
は全て最初は”考慮不要の”値である。
【0126】ビット番号1について受け取られたデータ
に対し、ヘッドポインタは符号語メモリロケーション0
を指示したままである。復号器はデータを期待するの
で、次に利用可能な符号語メモリロケーション0が符号
語に割り当てられ、無効な値がメモリロケーション0に
書き込まれる。コンテキストは0であるため、符号語に
割り当てられた符号語メモリロケーションのアドレスが
0コンテキスト用のポインタメモリロケーション(ポイ
ンタメモリロケーション0)に格納される。かくし
て、”0”がポインタメモリロケーション0に格納され
る。テールポインタはインクリメントされて次の符号語
メモリロケーション1を指す。
【0127】ビット番号2に対応するデータに対して、
ヘッドカウンタは最初のメモリロケーションを指示した
ままである(それを更新するような出力がなかったた
め)。このデータは第2のコンテキスト、つまりコンテ
キスト1に対応するので、次の符号語メモリロケーショ
ン、すなわちテールポインタにより指示された符号語メ
モリロケーション1が符号語に割り当てられ、無効な値
が同ロケーションに書き込まれる。そのアドレス、すな
わち符号語メモリロケーション1が、コンテキスト1に
対応したポインタメモリロケーション1に書き込まれ
る。すなわち、2番目の符号語メモリロケーションのア
ドレスがポインタメモリロケーション1に書き込まれ
る。そして、テールポインタがインクリメントされる。
【0128】ビット番号3に対応するデータに対して、
並べ替えユニットは、ランの始まりでも終わりでもない
ので、アイドルになる。
【0129】ビット番号4に対応するデータに対して、
ランの終了がコンテキスト1に関して指示される。した
がって、符号語”101”が、コンテキスト1用ポイン
タメモリロケーションにより指示されている、コンテキ
スト1に割り当てられた符号語メモリロケーション(符
号語メモリロケーション1)に書き込まれる。ヘッドポ
インタとテールポインタはそのままであり、コンテキス
ト1用のポインタメモリロケーションの値は再度利用さ
れることはないであろうから、それは”考慮不要な”値
である。
【0130】ビット番号5に対応するデータに対して、
並べ替えユニットは、ランが始まりも終わりもしないの
で、アイドルになる。
【0131】ビット番号6に対応するデータに対して、
ビット2に関し上に述へたと同じ種類の動作が起きる。
【0132】ビット番号7に対応するデータに対して、
コンテキスト0の符号語のランが終わる。この場合、符
号語”0”が、コンテキスト0用のポインタメモリロケ
ーション(ポインタメモリロケーション0)により指示
された符号語メモリロケーション(符号語メモリロケー
ション0)に書き込まれる。そして、このポインタメモ
リロケーションの値は再び使用されないので、それは”
考慮不要な”値である。また、ヘッドポインタにより指
定された符号語メモリロケーションは有効データを格納
している。したがって、この有効データは出力され、ヘ
ッドポインタはインクリメントされる。ヘッドポインタ
をインクリメントすることにより、ヘッドポインタに有
効な符号語を格納している別の符号語メモリロケーショ
ンを指示させる。したがって、この符号語が出力され、
ヘッドポインタは再度インクリメントされる。なお、こ
の例では、符号語が出力されるのは、それが可能な時で
あり、符号語メモリが完全に一杯になった時ではない。
【0133】上述のようにして符号化前ビットの処理が
連続して行なわれる。なお、符号語メモリロケーション
は特定のコンテキスト用に専用化されていないので、デ
ータファイルの符号化の間じゅう、どのコンテキストか
らの符号語でも特定の符号語メモリロケーションに格納
できる。
【0134】<ビットパックユニット>ビットパッキン
グ(packing)について図7で説明する。図7には、ビ
ットパッキングの前と後の再配列ユニットの処理データ
が示されている。図7に16個の可変長符号語が示され
ているが、それらに復号器で利用される順番を示すため
1から16までの番号が付けられている。どの符号語も
3本の符号化ストリーム中の1本に割り当てられる。各
符号化ストリーム中のデータはインターリーブド語と呼
ばれる固定長語へ分解される。(なお、1つの可変長符
号語が2つのインターリーブド語に分解されることもあ
る。) この例では、インターリーブド語は1本のイン
ターリーブドストリームへと順序付けられるので、ある
特定のインターリーブド語中の最初の可変長符号語(ま
たはその一部)の順番で、そのインターリーブド語の順
番が決まる。他の種類の順序付け規準を採用してもよ
い。複数の符号化ストリームをインターリーブする利点
は、データ転送のために単一の符号化データチャネルを
使用できることと、可変長シフト操作をストリーム毎に
並列にまたはパイプラインで行なうことができることで
ある。
【0135】本発明のビットパックユニット802は、
ランカウント並べ替えユニット801より可変長符号語
を受け取り、それらをインターリーブド語にパックす
る。ビットパックユニット802は、可変長符号語の処
理を行なうための論理と、固定長のインターリーブド語
を正しい順序で出力するための併合キュー型の並べ替え
ユニットとからなる。一実施例では、符号語は、最高1
符号語/クロックサイクルの速度でランカウント並べ替
えユニットより受け取られる。ビットパックユニット8
02の一実施例のブロック図が図14に示されている。
次に述べる実施例においては、4本のインターリーブド
ストリームが使われ、各インターリーブド語は16ビッ
トであり、符号語の長さは1ビットから13ビットまで
変化する。一実施例では、単一のビットパックユニット
が全ストリームを処理するようパイプライン化される。
本発明のビットパックユニット802がデュアルポート
のメモリ(またはレジスタファイル)を用いるならば、
1クロックサイクルあたり1インターリーブド語を出力
可能である。この速度は、符号化器の他の部分に追従す
るために要求される速度より高速であろう。
【0136】図14において、ビットパックユニット8
02はパッキング論理1101、ストリームカウンタ1
102、メモリ1103、テールポインタ1104及び
ヘッドカウンタ1105からなる。パッキング論理11
01は、符号語を受け取るように接続され、またストリ
ームカウンタ1102と接続される。ストリームカウン
タ1102はメモリ1103とも接続される。メモリ1
103には、テールポインタ1104とヘッドカウンタ
1105も接続される。
【0137】ストリームカウンタ1102は、現在の入
力符号語が関係したインターリーブド語を監視する。一
実施例では、ストリームカウンタ1102は、0からN
−1までストリームを繰り返しカウントする。ここで、
Nはストリーム数である。ストリームカウンタ1102
は、N−1に達すると、再び0からカウントを始める。
一実施例では、ストリームカウンタ1102は2ビット
カウンタで0から3までカウントする(インターリーブ
ドストリームが4本の場合)。一実施例では、ストリー
ムカウンタ1102は0に初期化される(例えばグロー
バルリセットによって)。
【0138】パッキング論理1101は、現在の入力符
号語を前に入力した符号語と併合してインターリーブド
語を作る。各符号語の長さは変化するであろう。したが
って、パッキング論理1101は、これら可変長符号語
を固定長語へ詰め込む。パッキング論理1101によっ
て生成されたインターリーブド符号語は順番にメモリ1
103へ出力され、それを出力する時までメモリ110
3に記憶される。一実施例では、メモリ1103は64
個の16ビット語を持つスタティックRAM(SRA
M)またはレジスタファイルである。
【0139】インターリーブド語はメモリ1103に格
納される。本発明においては、メモリ1103のサイズ
は2つのケースを扱うことができるだけの大きさであ
る。一方のケースは、ある1つのインターリーブドスト
リームが最小の長さの符号語を有し、それ以外のインタ
ーリーブドストリームが最大の長さの符号語を有する通
常動作の場合である。この第1のケースは3×3=39
のメモリロケーションを必要とする。他方のケースは、
ある1つのインターリーブドストリームが最小長の、つ
まり短い符号語を有し、それ以外のインターリーブドス
トリームが最大長の、つまり長い符号語を有する初期化
の場合である。第2のケースのためには、2×3×13
=78のメモリロケーションで足りるが、PEMの動作
によって56まで絞ることが可能である。
【0140】メモリ1103とストリームカウンタ11
02及びテールポインタ1104は協動して並べ替えを
遂行する。ストリームカウンタ1102は、メモリ11
03により受け取られつつある符号語の現在ストリーム
を指示する。各インターリーブドストリームは少なくと
も1つのテールポインタと関係付けられる。テールポイ
ンタ1104とヘッドカウンタ1105は符号語の並べ
替えを行なう。1ストリームあたり2つのテールポイン
タがある理由は、インターリーブド語N−1のデータに
次の符号語の始まりが含まれている時に、インターリー
ブド語Nが復号装置により要求されるからである。一方
のテールポインタは、ある一定のインターリーブドスト
リームからの次のインターリーブド語を格納するメモリ
1103のロケーションを決定する。他方のテールポイ
ンタは、該次のインターリーブド語の次のインターリー
ブド語を格納するメモリ1103のロケーションを決定
する。こうするとで、復号器がインターリーブド語N−
1を要求する時刻が分かった時に、インターリーブド語
Nのロケーションを指定可能になる。一実施例では、テ
ールポインタは8個の6ビットレジスタである(1スト
リームにつきテールポインタ2個)。
【0141】一実施例では、符号化の初めに、テールポ
インタ1104は、初めの8個のインターリーブド語
(各ストリームから2語)が、各ストリームから1個ず
つ順にメモリ1103に格納されるように設定される。
初期化後、パッキング論理1101が、ある符号ストリ
ームの新しいインターリーブド語に着手する度に、”
次”テールポインタに”次の次”テールポインタの値が
設定され、当該符号ストリーム用の”次の次”テールポ
インタに次に利用できるメモリロケーションが設定され
る。このように、各ストリーム毎にテールポインタが2
つある。他の実施例では、各符号ストリームにつきテー
ルポインタが1個だけ使用され、テールポインタは次に
メモリ1203に格納すべきインターリーブド語を指示
する。
【0142】ヘッドカウンタ1105は、ビットパック
ユニット802より次に出力されるインターリーブド語
のメモリロケーションを決定するために利用される。説
明している実施例では、ヘッドカウンタ1105は6ビ
ットカウンタからなり、1つのインターリーブド語全体
を一度に出力するようインクリメントされる。
【0143】メモリ1103は、並べ替えのために利用
されるほか、符号化器とチャネルとの間のFIFOバッ
ファとしても利用できる。このメモリを、並べ替えに必
要とされるメモリより大きくするのが望ましく、そうす
れば、チャネルが符号化器に追従できない時に、FIF
Oがほぼ満杯であるという信号を使って符号化器を停止
させることができる。1ビット/サイクルの符号化器
は、1サイクル毎に1つのインターリーブド語を生成す
ることはできない。ある符号化器があるチャネルとよく
整合している場合、そのチャネルは毎サイクル、1つの
インターリーブド語を受け入れることはないであろうか
ら、何等かのFIFOバッファが必要である。例えば、
32クロックサイクル毎に1つの16ビットインターリ
ーブド語を受け入れ可能なチャネルは、圧縮率が2:1
以上の時に、2:1帯域幅拡大のためのに十分整合した
設計であろう。
【0144】<本発明のパッキング(packing)論理>
パッキング論理のブロック図が図15に示されている。
図15において、パッキング論理1101はサイズ(si
ze)ユニット1201、1組のアキュムレータ120
2、シフタ1203、MUX1204、1組のレジスタ
1205及びORゲート論理1206からなる。サイズ
ユニット1201は、符号語を受け取るよう接続されて
おり、またアキュムレータ1202と接続されている。
これらのアキュムレータ1202並びに符号語はシフタ
1203と接続されている。シフタ1203はMUX1
204及びORゲート論理1206と接続されている。
MUX1204はレジスタ1205及びORゲート論理
1206とも接続されている。これらレジスタ1205
はORゲート論理1206とも接続されている。
【0145】一実施例では、符号語は、未使用ビットが
0にされた13ビットバスにより入力される。これらの
0にされた未使用ビットが”1N”符号語の”1”に隣
接しているため、サイズユニット1201内部のプライ
オリティエンコーダを使って、”1N”符号語の長さを
決定し、また”0”符号語のサイズを生成することがで
きる。
【0146】アキュムレータ1202は、各インターリ
ブドストリーム毎に1個ずつの複数のアキュムレータか
らなる。各インターリーブドストリーム用のアキュムレ
ータは、現在のインターリーブド語のそれまでのビット
数の記録を保持する。一実施例では、各アキュムレータ
は各ストリームのために利用される4ビット加算器(キ
ャリー出力付)と4ビットレジスタとからなる。一実施
例では、その加算器の出力がアキュムレータの出力であ
る。他の実施例では、そのレジスタの出力がアキュムレ
ータの出力である。サイズユニット1201より受け取
った符号語サイズを利用し、アキュムレータは、現在の
符号語を当該ストリームの現在のインターリーブド語を
保持しているレジスタへ連結するためにシフトすべきビ
ット数を決定する。
【0147】アキュムレータの現在値を基づき、シフタ
1203は、現在の符号語を、それが当該インターリー
ブド語中の前の符号語の後に適切に続くように整列す
る。このようにして、符号化器内のデータは復号器の順
序へ変更される。シフタ1203の出力は28ビットで
あり、これは現在の符号語からのビットが最終的に出力
される28ビットの上位12ビットに入るようにするた
め、現在のインターリーブド語の15ビットに13ビッ
トの符号語を付加しなければならない場合を扱う。な
お、シフタ1203は、フィードバックなしに動作する
ので、パイプライン化が可能である。一実施例では、シ
フタ1203はバレル(barrel)シフタからなる。
【0148】レジスタ1205は現在のインターリーブ
ド語のビットを格納する。一実施例では、各インターリ
ーブドストリーム用の16ビットレジスタが、現在のイ
ンターリーブド語中の前のビットを保持する。
【0149】最初に、1つのストリームの1つの符号語
がシフタ1203に受け取られ、一方、サイズユニット
1201が、その符号語のサイズを当該ストリームに対
応したアキュムレータへ指示する。そのアキュムレータ
は、グローバルリセットにより初期値0が設定されてい
る。アキュムレータ値が0であるため、その符号語はシ
フトされず、OR論理1206により当該ストリーム対
応のレジスタの内容と論理和される。しかし、ある実施
例では、インターリーブド語の初めでも1N符号語を適
切に整列せしめるためシフトしなければならない。この
レジスタは0に初期設定されているので、論理和演算の
結果は、符号語をOR論理1206の最右端ビット位置
へ入れることになり、そしてMUX1204を介しレジ
スタへフィードバックされて当該ストリームの次の符号
語まで格納される。このように、初めは、シフタ120
3は通過路として作用する。なお、最初の符号語のビッ
ト数が、今現在、アキュムレータに格納されている。当
該ストリームのための次の符号語を受け取ると、アキュ
ムレータの値がシフタ1203へ送られ、符号語はその
ビット数分、左へシフトされてインターリーブド語の前
に入力したビットと結合される。シフトされた語の他の
ビットに0が設定される。当該ストリームに対応したレ
ジスタからのビットは、OR論理1206により、シフ
タ1203からのビットと結合される。アキュムレータ
がキャリー出力表示(例えば信号)を出さないときは、
現在の符号語を完成するため、さらにビットが必要であ
るので、論理和演算により得られたデータはMUX12
04を介しレジスタに戻され保存される。一実施例で
は、MUX1204は2:1マルチプレクサである。ア
キュムレータがキャリー出力を発生した時には、OR論
理1206により論理和された16ビットデータは1つ
の完成したインターリーブド語であるので、その後に出
力される。MUX1204は、レジスタへ、初めの16
ビットに続けて追加ビット(例えば、シフタ1203か
ら出力された28ビット中の上位12ビット)をロード
せしめ、残りのビット位置に0を入れる。
【0150】MUX1204及びインターリーブド語出
力のための制御は、アキュムレータからのキャリー出力
信号を利用する。一実施例では、マルチプレクサ120
4は16個の2:1マルチプレクサからなり、その中の
4個のマルチプレクサは一方の入力が常に0にされる。
【0151】<並べ替えのオプション>本発明は、デー
タの並べ替えを行なうための多様なオプションを提供す
る。例えば、複数の符号ストリームを持つシステムにお
いては、それら符号ストリームは図7に示したようなイ
ンターリーブド語に並べ替えられなければならない。本
発明は、インターリーブド語への並べ替えを遂行する様
々な方法を提供する。
【0152】データをインターリーブド語へ並べ替える
ための一つの方法は、図32に示すようにスヌーパー復
号器を利用する方法である。図32において、複数のラ
ンカウント並べ替えユニット2501a〜2501nは
符号語ストリームのほかに符号語情報を受け取るよう接
続されている。各ランカウント並べ替えユニットは符号
語出力とサイズ出力を発生する。ビットパックユニット
2502a〜2502nのような別々のビットパッキン
グ論理(1101)ユニットが、ランカウント並べ替え
ユニット2501a〜2501nのそれぞれの符号語出
力及びサイズ出力を受け取るよう接続される。ビットパ
ックユニット2502a〜2502nはインターリーブ
ド語を出力し、これらはMUX2503及びスヌーパー
復号器2504に接続される。スヌーパー復号器250
4は選択制御信号を出し、この選択制御信号はMUX2
503に受け取られ、どのインターリーブド語を符号ス
トリームへ出力すべきかをMUX2503に指示する。
【0153】各符号化データストリーム毎に1つのラン
カウント並べ替えユニットがあり、これは図11のラン
カウント並べ替えユニット801からなる。各ビットパ
ックユニットは可変長符号語を組合せて、固定サイズ
の、恐らく8ビット、16ビットまたは32ビット/語
のインターリーブド語にする。各ビットパックユニット
は、前述のようにレジスタとシフト回路を含む。スヌー
パー復号器2504は完全に動作する復号器(BG,P
EM,CMを含む)であり、全てのビットパックユニッ
トからのインターリーブド語を(図32に示すような別
々のバスにより、あるいは共通バスを通じて)アクセス
できる。スヌーパー復号器2504があるビットパック
ユニットからの1つのインターリーブド語を選択する度
に、そのインターリーブド語が符号ストリームへ送出さ
れる。受信側の復号器は、スヌーパー復号器2504と
同じ順番にデータを要求するので、インターリーブド語
は適切な順序で送出される。
【0154】スヌーパー復号器を持つ符号化器は、その
スヌーパー復号器を普通の復号器としても利用可能であ
るので、半二重システムの場合に魅力的であろう。スヌ
ーパー復号器を使う方法の1つの利点は、その方法がど
のような決定論的復号器にも適用可能であることであ
る。スヌーパー復号器によらない他の解決方法(後述)
では、ハードウエアコストを下げるため、復号器のより
単純なモデルを利用する。同一クロックサイクルで複数
の符号語を復号する復号器の場合には、復号器そのもの
より少ないハードウエアで復号器を模擬することは不可
能で、スヌーパー復号器を使う必要があろう。後述する
ように、1サイクルにつき、せいぜい1符号語しか復号
しない復号器の場合、より単純なモデルが存在する。
【0155】1クロックサイクルにつき、1符号語以下
の復号をするパイプライン化復号システムのための、も
う一つのデータ並べ替えの方法は、復号器の符号化デー
タ要求を模擬するのに必要な情報が、符号語(符号語全
部を考えている。各符号化データストリームの符号語を
独立に考えているわけではない)の順序に関する知識だ
けにすぎない、という事実に基づいている。各符号語が
ランカウント並べ替えユニットに入力した時に、その符
号語に1つのタイムスタンプ(time stamp)が付けられ
るならば、とにかく最も古いタイムスタンプを付けられ
たビットパック後のインターリーブド語が次に出力され
るべきインターリーブド語である。
【0156】符号化器の再配列ユニットの例が、ブロッ
ク図として図33に示されている。図33において、こ
の再配列ユニットは、タイムスタンプ情報も各ランカウ
ント並べ替えユニット2501a〜2501nによって
受け取られること以外は、図32に示したものと同じで
ある。このタイムスタンプ情報は、ビットパックユニッ
ト2501a〜2501nへも送られる。ビットパック
ユニット2502a〜2502nは、インターリーブド
語をMUX2503へ、また、それに関連したタイムス
タンプを論理2601へ、与える。論理2601は符号
ストリームへ出力すべきインターリーブド語を選択する
ための制御信号をMUX2503へ与える。
【0157】この実施例では、スヌーパー復号器が、ビ
ットパックユニット2502a〜2502nのどれが最
も古いタイムスタンプを付けられた符号語(または符号
語の一部)を持っているか判定する簡単な比較に置き換
えられている。このようなシステムは、MUX2503
にとっては、複数のタイムスタンプ付キューに見える。
論理2601は、キュー間の選択をするに過ぎない。各
ランカウント並べ替えユニット2501a〜2501n
の論理は、ランが開始する時にタイムスタンプを書くた
めに、ほんの少しだけ変わる(ランカウント並べ替えユ
ニット801と比べて)。各ランカウント並べ替えユニ
ット2501a〜2501nは、タイムスタンプを符号
語メモリに格納する機能が備わっている。符号化データ
ストリーム中のすべての符号語を列挙するに足りるビッ
ト数のタイムスタンプを格納することで十分であるが、
実施例によっては、それよりも少ないビット数が用いら
れるかもしれない。
【0158】複数のタイムスタンプ付キューを用いるス
テップの簡単な記述を図47に示す。この記述は当業者
には理解できるものである。これらは符号化器の動作で
ある。同一の符号語により1つのランが開始かつ終了す
る場合に関する簡略化はなされていない。各シンボルの
符号化毎に動作がチェックされる(実用上、全てのチェ
ックを行なう必要はないが)。インターリーブド語は3
2ビットのサイズであると仮定したいる。
【0159】復号器の動作は同様であるが、符号語をキ
ューにセーブする必要はない。符号語のタイムスタンプ
をキューにセーブすることは依然必要である。
【0160】前述のタイムスタンプの機能は、符号語の
順序情報を格納するために利用される。同じ概念を具現
する均等な方法は、全ての符号語のために単一のキュ
ー、すなわち併合キューを用いる方法である。併合キュ
ーのシステムにおいては、図34に示すように、単一の
ランカウント並べ替えユニット2701が全てのインタ
ーリーブドストリームに利用される。ランカウント並べ
替えユニット2701はビットパックユニット2502
a〜2502nに対し符号語出力、サイズ出力及びスト
リーム出力を出し、ビットパックユニット2502a〜
2502bはMUX2503へインターリーブド語を出
力するとともに論理2702に対し位置情報を出力し、
論理2702はMUX2503に対しインターリーブド
語を符号ストリームの一部として出力するよう合図す
る。
【0161】任意のストリームについて、ランカウント
並べ替えメモリは各符号語毎にインターリーブドストリ
ームIDを記憶する。各インターリーブドストリームは
固有のヘッドポインタを有する。あるビットパックユニ
ットがそれ以上のデータを必要とする時に、それに対応
するヘッドポインタを利用して、1つの新しいインター
リーブド語を形成するのに必要なだけの符号語を取り出
す。これには、多くの符号語メモリロケーションを調べ
て、どのロケーションが適切なストリームの部分である
か判断する必要があろう。あるいは、符号語メモリの追
加フィールドが構成する連結リストを利用する必要があ
ろう。
【0162】本発明においてストリームをインターリー
ブする他の方法は、固定ストリーム割り当ての統合キュ
ーを利用する。この方法は、単一のテールポインタを併
合キューの場合と同じように利用するので、タイムスタ
ンプは必要でない。また、前記の場合と同様に、複数の
ヘッドポインタが用いられるので、あるストリームから
データを出力する時にオーバーヘッドが生じない。これ
を行なうために、インターリーブドストリームへの符号
語の割り当ては次のルールに従って行なわれる。すなわ
ち、N本のストリームの場合に、符号語Mは、ストリー
ムM mod Nに割り当てられる。なお、この方法によ
り、インターリーブドストリームはどのコンテキストも
しくは確率クラスからも符号語を受け入れることができ
る。ストリーム数が2のべき乗ならば、上位ビットの一
部を捨てることによりM mod Nを計算できる。例え
ば、符号語並べ替えメモリが12ビットでアドレスさ
れ、4本のインターリーブドストリームが使われるとし
よう。テールポインタは12ビット長であり、その最下
位の2ビットから次の符号語のための符号語ストリーム
が明らかにされる。4個の10ビットのヘッドポインタ
はそれぞれ、その最下位2ビットの4つの可能な組合せ
のそれぞれに暗黙に割り当てられる。テールポインタと
ヘッドポインタは共に普通のバイナリカウンタとしてイ
ンクリメントされる。
【0163】復号器においては、シフタはインターリー
ブド語を格納するためのレジスタを持っている。シフタ
は適切に整列された符号化データをビットジェネレータ
に提供する。ビットジェネレータはいくつかの符号化デ
ータを使うと、シフタへ通知する。シフタは次のインタ
ーリーブドストリームのデータを適切に整列して提供す
る。符号化データ数がNのとき、シフタは使用済みデー
タをシフトアウトするのにN−1クロック使い、そして
恐らく、当該インターリーブドストリームが再び使われ
る前にもう1つのインターリーブド符号語を要求するで
あろう。
【0164】<本発明の復号器>本発明は、並べ替えメ
モリが限定されたリアルタイム符号化器をサポートする
復号器を含む。一実施例では、この復号器にもまた、縮
小メモリ条件と、各コンテキストビン毎でなく各確率ク
ラス毎にランカウントを保持するための複雑さがある。
【0165】<本発明の復号システムの一実施例>図1
7は、本発明の復号ハードウエアシステムの一実施例の
ブロック図を示す。図17において、復号システム14
00は先入れ/先出し(FIFO)構造1401、復号
器1402、メモリ1403及びコンテキストモデル1
404からなる。復号器1402は複数の復号器からな
る。符号化データ1410はFIFO構造1401に受
け取られるよう接続される。FIFO構造1401は、
その符号化データを復号器1402へ供給するよう接続
されている。復号器1402はメモリ1403とコンテ
キストモデル1404に接続されている。コンテキスト
モデル1404はメモリ1403にも接続されている。
コンテキストモデル1404の一方の出力が復号データ
1411である。
【0166】復号システム1400において、FIFO
構造1401に入力した符号化データ1410は、順序
付けされかつインターリーブされている。FIFO構造
1401はデータを適切な順番に記憶する。このストリ
ームは復号器1402に渡される。復号器1402は、
これらストリームのデータを、シリアルかつ一意に決ま
る順序で必要とする。復号器1402が符号化データを
必要とする順序は、単純ではないが、ランダムではな
い。復号装置ではなく符号化装置において符号語をこの
順序に順序付けすることにより、符号化データを単一ス
トリームへインターリーブすることができる。他の実施
例では、符号化データ1410はインターリーブされて
いないデータの単一ストリームとされるかもしれない、
そして各コンテキストビン、各コンテキストクラスまた
は各確率クラスのためのデータがデータストリームに付
加される。この場合、符号化データを適切に分割できる
ようにするため、FIFO構造1410は符号化データ
全部を受け取った後に復号器へ送る記憶領域に置き換え
られる。
【0167】符号化データ1410がFIFO構造14
01に受け取られると、コンテキストモデル1404は
現在のコンテキストビンを決定する。一実施例では、コ
ンテキストモデル1404は前の画素及び/又はビット
に基づいて現在のコンテキストビンを決定する。図示さ
れていないが、コンテキストモデル1404のためにラ
インバッファが設けられているであろう。このラインバ
ッファは、コンテキストモデル1404が現在コンテキ
ストビンを決定するために必要なデータすなわちテンプ
レート(template)を提供する。例えば、コンテキスト
が現在画素の近傍の画素値をベースにしている場合、特
定のコンテキストを得るために用いられる、それらの近
傍画素の画素値を記憶するためにラインバッファが利用
されであろう。
【0168】そのコンテキストビンに応じて、復号シス
テム1400はメモリ1403より現在コンテキストビ
ンのための復号器状態を取り出す。一実施例では、復号
器状態は、確率予測モジュール(PEM)状態及びビッ
トジェネレータ状態を含む。PEM状態は、新たな符号
語を復号するために使用すべき符号を決定する。ビット
ジェネレータ状態は、現在のラン中のビットの記録を保
存する。復号器状態は、コンテキストモデル1404に
よって与えられるアドレスに応じて、メモリ1403よ
り復号器1402へ提供される。このアドレスは、コン
テキストビンに対応した情報を格納しているメモリ14
03のロケーションをアクセスする。
【0169】現在のコンテキストビンのための復号器状
態がメモリ1403より取り出されると、復号システム
1400は次の未圧縮ビットを決め、復号器状態を処理
する。次に復号器1402は、必要ならば新しい符号語
を復号し、かつ/又はランカウントを更新する。PEM
状態が、必要ならば、ビットジェネレータ状態と同様、
更新される。そして、復号器1402は新しい復号器状
態をメモリ1403に書き込む。
【0170】図18は、本発明の復号器の一実施例を示
す。図18において、復号器1430はシフト論理14
31、ビット生成論理1432、”新k”論理143
3、PEM更新論理1434、新符号語論理1435、
PEM状態−符号論理1436、符号−マスク論理14
37、符号−最大RL/マスク/R3スプリット展開論
理1438、復号論理1439、マルチプレクサ144
0、ランカウント更新論理1441からなる。シフト論
理1431は、符号化データ入力1443並びに状態入
力(メモリからの)を受け取るよう接続されている。シ
フト論理1431の出力はビット生成論理1432、”
新k”論理1433及びPEM更新論理l434に入力
として接続されている。ビット生成論理1432はま
た、状態入力1442を受け取るように接続されてお
り、コンテキストモデルに対する復号データ出力を発生
する。新k論理1433が発生する出力は、符号−マス
ク論理1437の入力に接続される。PEM更新論理1
434は、状態入力1442にも接続され、(メモリに
対する)状態出力を発生する。状態入力1442は、新
符号語論理1435及びPEM状態−符号論理1436
の入力にも接続されている。PEM状態−符号論理14
36の出力は展開論理1438に受け取られるように接
続されてる。展開論理1438の出力は復号論理143
9及ランカウント更新論理1441に接続されている。
復号論理1439のもう1つの入力は符号−マスク論理
1437の出力と接続されている。復号論理1439の
出力はMUX1330の一方の入力に接続されている。
MUX1440の他方の入力は状態入力1442に接続
されている。MUX1440の選択入力は新符号語論理
1435の出力と接続されている。MUX1440及び
展開論理1438の出力は、符号−マスク論理1437
の出力とともに、ランカウント更新論理1441の2つ
の入力に接続されている。ランカウント更新論理144
1の出力は、メモリへの状態出力に含まれる。
【0171】シフト論理1431は符号化データストリ
ームよりデータをシフトインする。入力した符号化デー
タに基づき、ビット生成論理1432は復号データを生
成しコンテキストモデルへ送る。新k論理1433もシ
フトインデータ及び状態入力を使って新k値を発生す
る。一実施例では、新k論理1433は、新k値を発生
するためにPEM状態と符号化データの最初のビットを
使う。この新k値に基づいて、符号−マスク論理143
7は次の符号語のためのRLZマスクを生成する。この
次の符号語用のRLZマスクは、復号論理709へ送ら
れ、ついでランカウント更新論理1441へ送られる。
【0172】PEM更新論理1434はPEM状態を更
新する。一実施例では、PEM状態は現在の状態を利用
して更新される。更新後の状態はメモリへ送られる。新
符号語論理1434は、新しい符号語が必要とされてい
るか判定する。PEM状態−符号論理1436は、状態
入力1442を利用し復号のための符号を決定する。こ
の符号は、最大ラン長、現在マスク及びR3スプリット
(split)値の生成のための展開論理1438の入力へ
送られる。復号論理1439は、符号語を復号してラン
カウント出力を出す。MUX1440は、復号論理14
39の出力または状態入力1442を選択してランカウ
ント更新論理1441へ送る。ランカウント更新論理1
441はランカウントを更新する。
【0173】復号器1430を含む本発明の復号システ
ム1400は、パイプライン方式で動作する。一実施例
では、本発明の復号システム1400は、コンテキスト
ビンの決定、確率の予測、符号語の復号、ランカウント
に基づいたビット生成を全てパイプライン方式で行な
う。復号システムのパイプライン構造の一実施例を図2
0に示す。図20において、本発明のパイプライン化復
号プロセスは1番から6番までの6ステージで表わされ
ている。
【0174】第1ステージにおいて現在のコンテキスト
ビンが決定される(1501)。第2ステージにおい
て、コンテキストビン決定後に、メモリ読み出しが発生
し(1502)、コンテキストビンのための現在の復号
器状態がメモリより取り出される。前述のように復号器
状態はEMS状態とビットジェネレータ状態を含む。
【0175】本発明のパイプライン化復号プロセスの第
3ステージにおいて、1つの伸長(decompressed)ビッ
トが生成される(1503)。これにより、コンテキス
トビンがビットを利用可能できるようなる。第3ステー
ジ内で2つの異なった動作が行なわれる。PEM状態が
ある符号種類へ変換され(1504)、また、新しい符
号語を復号しなければならないかの判定が行なわれる
(1505)。
【0176】第4ステージの期間に、復号システムは1
つの符号語を処理し、かつ/またはランカウントを更新
する(1506)。符号語の処理及びランカウントの更
新には、いくつかの副動作が含まれる。例えば、符号語
が復号されて次のランカウントを決定し、あるいは、現
在符号語につきランカウントが更新される(150
6)。新しい符号語を復号する時に、必要ならば、さら
に符号化データが入力FIFOより取り出される。第4
ステージで発生するもう一つの副動作は、PEM状態の
更新である(1507)。最後に、復号パイプラインの
第5ステージにおいて、現在の符号語のためのランカウ
ントが0のときには、新PEM状態を用いて次の符号が
どのようなラン長0符号語(後述)であるか判定する
(1508)。本発明の復号パイプラインの第5ステー
ジ中に、PEM状態の更新された復号器状態がメモリに
書き込まれ(1509)、そして次の符号語のためのシ
フト動作が始まる(1510)。第6ステージにおい
て、次の符号語へのシフト動作が完了する(151
0)。
【0177】本発明のパイプライン化復号動作は、実際
には、復号プロセスを開始するか否かの判定からスター
トする。この判定は、本発明の復号器に提供するに十分
なデータがあるか否かに基づいてなされる。FIFOに
十分なデータを得られないと、復号システムは停止して
しまう。別のケースとしては、復号器の出力データ全部
を、その出力中に受け取ることが不可能な周辺機器へ復
号データを出力している時に、復号システムが止まって
しまうかもしれない。例えば、復号器がビデオディスプ
レイインターフェイスとそれに関係したビデオ回路へ出
力を出している時に、そのビデオが遅過ぎると、復号器
はビデオが追い付けるよう停止する必要がある。
【0178】復号プロセスを開始すると判定されると、
現在コンテキストビンがコンテキストモデルにより決定
される。本発明においては、この現在コンテキストビン
は前データを調べることにより決定される。この前デー
タは、ランバッファに格納されているかもしれない、ま
た現在ライン及び/又は前ラインのデータからなるかも
しれない。前データに関するテンプレートを使い、現在
データに対するコンテキストビンが、調べている前デー
タと該テンプレートとが一致するか否かに応じて選択さ
れるように、ラインバッファ(複数)から出るビットが
設計されるかもしれない。これらのラインバッファはビ
ットシフトレジスタを含むかもしれない。nビット画像
の各ビットプレーン毎に1つのテンプレートが用いられ
るかもしれない。
【0179】一実施例では、コンテキストビンは、次の
パイプラインステージ中に、あるアドレスをメモリへ出
力することにより選択される。このアドレスは、ビット
プレーンを区別するための所定数のビット、例えば3ビ
ットを含むかもしれない。これら3ビットを使って、画
素データのビット位置が識別されるかもしれない。コン
テキストを決定するために用いられるテンプレートも、
そのアドレスの一部として表現されるかもしれない。ビ
ットプレーンを識別するためのビットとテンプレートを
表現するためのビットが組み合わされて、それらビット
で定義されるコンテキストビンの状態情報を格納してい
るメモリの特定ロケーションのアドレスが作られるかも
しれない。例えば、ある特定の画素位置のビット位置を
決定するための3ビットと、テンプレート中の前画素そ
れぞれの同位置の前10ビットを用いて、13ビットの
アドレスが生成されるかもしれない。
【0180】コンテキストモデルにより生成された該ア
ドレスを使い、メモリ(例えばRAM)がアクセスされ
状態情報が得られる。この状態はPEM状態を含む。P
EM状態は現在の確率予測値を含む。2つ以上の状態で
同じ符号を使うため、PEM状態は、確率クラスや符号
の指定を含まず、図8に示したようなテーブルへのイン
デックスを含む。また、図8に示したようなテーブルを
用いる場合、PEM状態は、現在のPEM状態がテーブ
ルの正側にあるか負側にあるかを識別する手段として、
最高確率シンボル(MPS)も提供する。ビット生成状
態は、カウント値と、LPSの有無の表示を含むかもし
れない。一実施例では、現在のランに対するMPS値も
次の符号語の復号のために含まれる。本発明では、ラン
カウンタのために必要なメモリスペースを減らすため、
ビット生成状態はメモリに格納される。システムにおけ
る各コンテキストのカウンタ用スペースのコストが低い
ならば、ビット生成状態をメモリに格納する必要はな
い。
【0181】第4ステージが終了すると、新しいビット
生成状態及びPEM状態がメモリに書き込まれる。ま
た、第5ステージにおいて、符号化データストリームが
次符語までシフトされる。このシフト操作は第6ステー
ジで完了する。
【0182】図19は本発明のFIFO構造1401の
一実施例のブロック図であり、復号器が2個の場合のイ
ンターリーブド語のバッファリングを示している。な
お、復号器の数がいくつであっても、本発明の教えるこ
とによりサポートできる。図示のように、入力データ及
びFIFOは2つのインターリーブド語を保持できる幅
である。FIFO構造1401は、FIFO1460、
レジスタ1461,1462、MUX1463,146
4及び制御ブロック1465からなる。2つの入力符号
語が、入力インターリーブド語として接続される。FI
FO1460の出力はレジスタ1461,1462の入
力に接続される。MUX1463の入力はレジスタ14
61,1462の出力に接続される。制御ブロック14
65は、FIFO1460、レジスタ1461,146
2及びMUX1463,1464に制御信号を供給する
ように接続されている。2つの復号器へ供給される出力
データ(出力データ1,2)はインターリーブド語であ
る。各復号器は要求信号を使って、現在の語が使用済み
であり新たな語が次に必要であることを指示する。この
復号器からの要求信号は制御ブロック1465の入力に
接続される。制御ブロック1465も、メモリから次の
データを要求するためにFIFO要求信号を出力する。
【0183】最初に、FIFO1460及びレジスタ1
461,1462にデータが満たされ、また、制御ブロ
ック1465内の有効フリップフロップがセットされ
る。要求が生じる度に、制御ブロック1465は図64
のテーブル16に示された論理に従ってデータを供給す
る。
【0184】図21は、本発明の復号器の別の概念図を
示す。図21において、可変長(符号化)データが復号
器に入力される。復号器は固定長(復号)データを出力
する。この出力はまた遅延フィードバックとして戻さ
れ、復号器に入力として受け取られる。本発明の復号器
において、復号に使われる可変長シフトは、いくらか遅
延して得られる復号データに基づいている。このフィー
ドバックの遅延は、遅延許容型(delay-tolerant)の復
号器においてはスループットを低下させない。
【0185】入力した可変長データは、図7に関連して
述べたような固定長インターリーブド語に分割される。
復号器は固定長語を後に図22で述べるように扱う。こ
の復号器と遅延の組合せで、図20及び図39に関連し
て述べたようなパイプライン化復号器、あるいは図2乃
至図5に関連して説明したような複数の並列復号器をモ
デル化する。このように、本発明は遅延許容型復号器を
提供する。本発明の遅延許容型復号器は可変長データの
並列処理が可能である。
【0186】従来の復号器(例えばハフマン復号器)は
遅延許容型ではない。前の符号語全ての復号により決定
された情報が、次の符号語の復号に要する可変長シフト
を行なうために必要とされる。他方、本発明は遅延許容
型復号器を提供する。
【0187】<復号システムにおけるシフト操作>本発
明の復号器は、インターリーブド語を復号するために適
切なビットジェネレータへシフトするシフト論理を備え
る。本発明のシフタ(シフト論理)は、いかなる種類
の”コンテキスト別”または”確率別”の並列化(para
llelism)も必要としない。符号語Mをストリーム M m
od N (C言語ではM%N)に割り当てる符号化器を想
定しよう(Nはストリーム数)。本発明においては、現
在ストリームの符号化データが、符号語を要求されるま
で与えられる。その時にはじめて、データが次のストリ
ームへ切り替えられる。
【0188】図22は本発明の復号器用のシフタの一実
施例を示す。シフタ1600は、4本のデータストリー
ム用に設計されている。これは、各シフト操作に4クロ
ックサイクル充てる。インターリーブド語は16ビット
で、最長符号語は13ビットである。図22において、
シフタ1600はインターリーブド符号化データからの
入力を受け取るよう接続された4個のレジスタ1601
〜1604を有する。レジスタ1601〜1604のそ
れぞれの出力はMUX1605に入力として接続されて
いる。MUX1605の出力はバレル(barrel)シフタ
1606の入力に接続されている。バレルシフタ160
6の出力は、レジスタ1607、MUX及びレジスタ1
608〜1610、並びにサイズ(size)ユニット16
11の入力に接続されている。サイズユニット1611
の出力はアキュムレータ1612に接続されている。ア
キュムレータ1612の出力はバレルシフタ1606へ
フィードバックされる。レジスタ1607の出力はMU
X及びレジスタ1608に1つの入力として接続されて
いる。MUX及びレジスタ1608の出力はMUX及び
レジスタ1609に1つの入力として接続されている。
MUX及びレジスタ1609の出力はMUX及びレジス
タ1610に1つの入力として接続されている。MUX
及びレジスタ1610の出力が整列後の(aligned)符
号化データである。一実施例では、レジスタ1601〜
1604は16ビットのレジスタであり、バレルシフタ
1606は32ビット−13ビットのバレルシフタであ
り、また、アキュムレータ1612は4ビットのアキュ
ムレータである。
【0189】レジスタ1601〜1604は、FIFO
より16ビット語を受け取り、それらをバレルシフタ1
606へ入力する。少なくとも32ビットの未復号デー
タが常にバレルシフタ1606に与えられる。4つのレ
ジスタ1601〜1604は、初めに、16ビット語、
2語の符号化データを初期設定される。これにより、各
ストリーム毎に少なくとも1つの新しい符号語を常に利
用可能となる。
【0190】R−符号の場合、符号語サイズユニット1
611は”0”符号語または”1N”符号語があるか判
定し、それが”1N”符号語であるならば、”1”より
何ビットだけ後が現在の符号語の部分であるか判定す
る。同じ機能を提供するサイズユニットを、図15に関
連して述べた。他の符号の場合の符号語サイズの判定
は、従来より周知である。
【0191】シフタ1600は、4個のレジスタ160
6〜1610からなるFIFOを有し、これらレジスタ
中の3個1608〜1610は入力が多重化(multiple
xed)されている。レジスタ1607〜1610の各レ
ジスタは少なくとも1つの符号語を保持するので、これ
らレジスタ及びマルチプレクサの幅は、最長の符号語に
対応する13ビットである。各レジスタ1607〜16
10はまた、関連した1つの制御フリップフロップ(煩
雑にしないために図示されていない)を持っている。こ
の制御フリップフロップは、レジスタが符号語を保持し
ているか、あるいはバレルシフタ1606が符号語を提
供するのを待っているかを表示する。
【0192】このFIFOは空になることはない。1ク
ロックサイクルにつき扱うことができるのは1符号語だ
けであり、また、1クロックサイクルにつき1符号語を
シフトできる。システムは4符号語先にスタートするの
で、シフト操作による遅延は補償される。各符号語がシ
フトされて整列後(aligned)符号化データ出力となる
につれて、レジスタ1607〜1610内の他の符号語
が下側へシフトされる。FIFOに残っている符号語が
レジスタ1610に格納される時に、バレルシフタ16
06はレジスタ1607〜1609を満たすためMUX
1605を介しレジスタ1601〜1604より符号語
を読み出す。なお、FIFOは、レジスタ1607の符
号語がレジスタ1608へシフトされるとすぐにレジス
タ1607にデータにデータを補充するように設計され
てもよい。
【0193】バレルシフタ1606、符号語サイズユニ
ット1611及びアキュムレータ1612は、可変長シ
フトの処理をする。アキュムレータ1612は、各デー
タストリーム毎に現在符号語の整列されたものを保持す
るレジスタを、各データストリーム用に1個、計4個有
する。アキュムレータ1612は4ビットのアキュムレ
ータで、バレルシフタ1606の制御に利用される。ア
キュムレータ1612の値は、符号語サイズユニット1
611からの入力値だけ増加する。アキュムレータ16
12がオーバーフローした時に(例えば、シフトカウン
トが6以上になる都度)、レジスタ1601〜1604
はクロックされてシフトする。16ビットシフトする毎
に、FIFOから新しい32ビット語が要求される。ア
キュムレータ1611の入力は符号語のサイズであり、
これは現在の符号及び現在の符号語の最初の1または2
ビットによって決まる。なお、実施例によっては、レジ
スタ1601〜1604が符号化データを初期設定され
てからでないと復号動作を開始できない。
【0194】システムにより符号語を要求された時に、
FIFO内のレジスタがクロックされ、符号語が出力へ
送られる。バレルシフタ1606が新しい符号語を送出
できる時に、その符号語はFIFO内の初めの空きレジ
スタへ入力される。
【0195】この実施例では、ストリームの切り替えが
決定される前に、ビットジェネレータから次符号語信号
を受け取る。
【0196】このビットジェネレータからの次符号語信
号が、ストリーム切り替えの決定前に受領されることを
保証できないときには、図23に示すようなルックアヘ
ッド(look ahead)システムを利用できる。図23にお
いて、ルックアヘッドを利用するシフタ1620がブロ
ック図として示されている。シフタ1620は、現在の
符号化データと次の符号化データの出力を出すシフタ1
600を有する。現在の符号化データは符号語前処理論
理ユニット1621の入力及び符号語処理論理ユニット
1624の入力に接続される。次の符号化データは符号
語前処理論理ユニット1622の入力に接続される。両
方の前処理論理ユニット1621,1622の出力はM
UX1623の入力に接続される。MUX1623の出
力は符号語処理論理ユニット1624のもう1つの入力
に接続される。
【0197】符号語を扱う論理は2つの部分、すなわち
符号語前処理論理と符号語処理論理とに分けられてい
る。2つの同一のパイプライン化前処理ユニット162
1,1622が動作した後にインターリーブドストリー
ムがシフト可能になる。ストリームがスイッチされてい
ると前処理ユニット1621,1622の一方が適切な
情報を発生し、ストリームがスイッチされていなければ
他方が情報を発生する。ストリームがスイッチされる時
に、適切な符号語前処理の出力がMUX1623により
符号語処理論理1624へ送られ、符号語処理論理16
24は適切な符号語をもって動作を完了する。
【0198】<オフチップのメモリとコンテキストモデ
ル>一実施例では、外部メモリまたは外部コンテキスト
モデルのために複数のチップを使用するのが望ましいか
もしれない。このような実施例では、複数の集積回路が
使われる場合、ビットを生成してから、そのビットをコ
ンテキストモデルが利用できるようになるまでの遅延を
減少させることが望ましい。
【0199】図24は、外部コンテキストモデルチップ
1701と、コンテキスト毎にメモリを持つ復号器チッ
プ1702を有するシステムの一実施例のブロック図を
示す。なお、コンテキストモデルに関連した復号器チッ
プ内のユニットだけが示されている。すなわち、復号器
チップ1702がビット生成、確率予測等々を含んでい
ることは当業者には明白である。図24において、復号
器チップ1702は、0次コンテキストモデル170
3、コンテキストモデル1704,1705、選択論理
1706、メモリコントロール1707及びメモリ17
08を含む。0次コンテキストモデル1703とコンテ
キストモデル1704,1705の発生する出力は選択
論理1706の入力に接続される。選択論理1706の
もう1つの入力は、外部コンテキストモデルチップ17
01の出力と接続される。選択論理1706の出力はメ
モリ1708の1つの入力に接続される。メモリ170
8のもう1つの入力には、メモリコントロール1708
の出力が接続される。
【0200】選択論理1706は、1つの外部コンテキ
ストモデルか1つの内部コンテキストモデル(例えば、
0次コンテキストモデル1703、コンテキストモデル
1704、コンテキストモデル1705)の使用を許可
する。選択論理1706は、外部コンテキストモデルチ
ップ1701の使用時に内部の0次コンテキストモデル
1703の使用を許す。0次コンテキストモデル170
3が1ビットまたはそれ以上のビットを提供し、一方、
外部コンテキストモデルチップ1701が、その残りの
ビットを提供する。例えば、すぐ前のビットはフィード
バックされて0次コンテキストモデル1703より取り
出されるであろう、一方それより前のビットは外部コン
テキストモデルチップ1701による。このように、時
間的に厳しい情報はチップ上に留まる。これは、生成さ
れて間もないビットについて、オフチップによる通信遅
延を排除する。
【0201】図25は、外部コンテキストモデルチップ
1801、外部メモリ1803及び復号器チップ180
2を有するシステムのブロック図である。図25におい
て、一部のメモリアドレス線は外部コンテキストモデル
チップ1801に駆動され、残りのメモリアドレス線は
復号器チップ1802内の”0次”コンテキストモデル
により駆動される。すなわち、すぐ前の復号サイクルか
らのコンテキストは0次コンテキストモデルにより駆動
される。これは、復号器チップが直ぐ前の復号サイクル
からのコンテキスト情報を最小の通信遅延で提供できる
ようにする。コンテキストモデルチップ1801は、そ
れより前に復号されたビットだけを使い、そのコンテキ
スト情報の残余部分より先に進むので、通信遅延が許さ
れる。多くの場合、直ぐ前の復号サイクルからのコンテ
キスト情報は0次マルコフ状態であり、それより前から
のコンテキスト情報はより高次のマルコフ状態である。
図25に示した実施例は、外部コンテキストモデルチッ
プ1801内で0次モデルを実現する場合に避けられな
い通信遅延を排除する。しかし、それでもなお、復号器
チップ1802及びメモリ1803に起因した、生成ビ
ットに対するコンテキストビン決定の遅延はあるであろ
う。
【0202】なお、他のメモリアーキテクチャを利用し
てもよい。例えば、コンテキストモデルとメモリが1つ
のチップ上にあり、復号器が別チップ上にあるシステム
を採用してもよい。また、あるシステムは、一部のコン
テキスト用に使用される内部メモリを有する復号器チッ
プと、その他のコンテキスト用の外部メモリを含むかも
しれない。
【0203】<メモリを利用するビットジェネレータ>
図26は、メモリを利用するパイプライン化ビットジェ
ネレータを持つ復号器を示す。図26において、復号器
1900はコンテキストモデル1901、メモリ190
2、PEM状態−符号ブロック1903、パイプライン
化ビットジェネレータ1905、メモリ1804及びシ
フタ1906からなる。コンテキストモデル1901の
入力は、パイプライン化ビットストリームジェネレータ
1905からの復号データである。シフタ1906の入
力は符号化データを受け取るように接続される。コンテ
キストモデル1901の出力はメモリ1902の入力に
接続される。メモリ1902の出力はPEM状態−符号
ブロック1903に接続される。PEM状態−符号ブロ
ック1903の出力と、シフタ1906の整列後符号化
データ出力はビットジェネレータ1905の入力に接続
される。メモリ1904も、双方向バスによってビット
ジェネレータ1905に接続される。ビットジェネレー
タ1905の出力が復号データである。
【0204】コンテキストモデル1901は、その入力
の符号化データに応じて1つのコンテキストビンを出力
する。このコンテキストビンをアドレスとしてメモリ1
902がアクセスされ、1つの確率状態が得られる。こ
の確率状態がPEM状態−符号モジュール1903に受
け取られ、PEM状態−符号モジュール1903は、そ
の確率状態に応じた確率クラスを生成する。この確率ク
ラスをアドレスとしてメモリ1904がアクセスされ、
ランカウントが得られる。このランカウントがビットジ
ェネレータ1905に受け取られて復号データが生成さ
れる。
【0205】一実施例では、メモリ1902は1024
×7ビットのメモリからなり(1024は異なったコン
テキストの数である)、メモリ1904は25×14ビ
ットのメモリからなる(25は異なったランカウントの
数である)。
【0206】ビットジェネレータ状態(ランカウント等
々)は確率クラスと関連付けられ、コンテキストビンと
は関連付けられないので、コンテキストモデルがビット
を利用できるようになるまでに、さらにパイプライン遅
延がある。ビットジェネレータ状態の更新に複数クロッ
クサイクル(ビットジェネレータ状態メモリ再訪(revi
sit)遅延)かかるため、各確率クラスのために複数の
ビットジェネレータ状態が用いられるであろう。例え
ば、パイプラインが6クロックサイクルならば、ビット
ジェネレータメモリは1確率クラスあたり6エントリー
有するであろう。その適切なメモリロケーションを選択
するためにカウンタが用いられる。1確率クラスあたり
複数エントリーを持つ場合でも、このメモリのサイズは
普通、コンテキスト数より小さいであろう。このメモリ
は、複数バンクのSRAMまたはマルチポートのレジス
タファイルで実現してよい。
【0207】1つのランカウントが複数のコンテキスト
に関連するかもしれないので、ある実施例では、1つま
たは2つ以上のコンテキストの確率予測状態をアップグ
レードしなければならない。一実施例では、ランを終了
させるコンテキストのPEM状態が更新される。
【0208】ランカウントを読み出し、修正して書き込
んだ後でなければ、それを再び読み出すことができない
のではなく、ランカウントを、その修正が完了するとす
ぐに再び利用することができる。
【0209】図39は、本発明の一実施例における復号
動作のタイミング図を示す。図39には、3サイクルの
復号動作が表わされている。信号名はタイミング図の左
側に並べられている。信号があるサイクル期間有効であ
ることは、そのサイクル(またはその一部)期間にバー
をつけることによって示されている。場合によっては、
有効な信号の発生または供給を担うユニットまたは論理
が、その有効な信号の近傍に、点線で囲んで示されてい
る。時には、本明細書に開示した特定のエレメント及び
ユニットの例も提示される。なお、信号の一部が次のサ
イクルまで延びていることがあるが、これは、その別サ
イクル内へ延びているように表わされた期間の間だけ、
その信号が有効であることを意味する。また、ある信号
は、1サイクルより長い期間にわたって途切れ途切れに
有効であるかのように表わされている。そのような信号
の一例がテンポラリーランカウント(temp runcount)
信号であり、これは第2サイクルの最後の1時点で有効
であり、そしてまた、第3サイクルの間じゅう有効であ
る。これは、この信号がそのサイクルの終わりに単にレ
ジスタに保持されたことを示している。同クロックサイ
クルまたは前クロックサイクルから現時点まで信号が有
効と規定されている依存関係を明らかにする、依存関係
リストも図65のテーブル17に示されている。
【0210】<暗黙合図法>ある実施例においては、復
号器は符号化器の有限の並べ替えバッファを模擬しなけ
ればならない。一実施例ではこの模擬は暗黙合図法(im
plicit signaling)によってなされる。
【0211】符号化器に関して前に述べたように、符号
化器において1つの符号語が始まる時に、適当なバッフ
ァ内に、チャネルへ符号語が出力される順番に、その符
号語のためのスペースが確保される。あるバッファの最
後のスペースが新しい符号語のために確保されると、い
くつかの符号語が、完全に確定していようといまいと、
圧縮ビットストリームに出される。
【0212】不完全な符号語を完成させなければならな
い時には、それまでに受け取ったシンボルを正しく表わ
す、短い符号語を用いてよい。例えば、R−符号システ
ムの場合、128という最長ランレングスの1つのラン
符号中の連続した100個のMPSに対する符号語を本
来より早く完成させる必要があるときには、128個の
MPSに対する符号語を用いてよい。その符号語は、初
めの100個のMPSを正しく表わしているからであ
る。
【0213】あるいは、後に1個のLPSが続く100
個のMPSを表わす符号語を用いてよい。この符号語が
完成した時に、それを並べ替えバッファから取り除き符
号ストリームへ追加してよい。こうすることで、前に完
成された符号語を符号ストリームへ出力できるようにも
なる。1つの不完全な符号語を強制的に完成させること
で満杯のバッファから1つの符号語が取り除かれるなら
ば、符号化を続けることができる。1つのバッファが依
然として満杯のときには、次の符号語を再び完成させて
符号ストリームに追加しなければならない。このプロセ
スは、満杯であったバッファが満杯でなくなるまで続
く。復号器は、各ビットジェネレータ状態情報メモリロ
ケーション毎に1つのカウンタを使用する暗黙合図法に
合わせて符号化器を模擬してよい。
【0214】一実施例では、各ランカウンタ(本例では
各確率クラス)は、符号化器内のヘッドカウンタまたは
テールカウンタと同じサイズ(例えば6ビット)のカウ
ンタを有する。新たなランが開始される(新たな符号語
が取り出される)たびに、対応するカウンタに符号語メ
モリのサイズがロードされる。1つのランが開始される
(1つの符号語が取り出される)たびに、全てのカウン
タがデクリメントされる。いずれかのカウンタが0にな
ることにより、対応したランカウントがクリアされる
(そしてLPS有(present)フラグがクリアされ
る)。
【0215】<有限メモリ用合図法のオプション>本発
明のリアルタイム復号によれば、復号器は、LPSが後
に続かず、かつ、最大ランレングスでないMPSのラン
を処理する必要がある。このようなことが起きるのは、
符号化器がMPSのランを開始したが、有限の並べ替え
メモリが足りないために、そのランが完了するまで待て
ない時である。この状況は、次にこのコンテキストビン
が使われる時に新たな符号語が復号されることを要求す
るので、この状況は復号器に知らされなければならな
い。復号器を修正する3つのやり方について以下に述べ
る。
【0216】バッファが満杯の時に、強制的に出される
コンテキストビンまたは確率クラスのランカウントは、
リセットされねばならない。これを効率的に実現するた
めには、そのコンテキストビンまたは確率クラスを符号
語メモリに格納することが有効である。これが必要とな
るのは、まだ関係付けられた符号語を持たないランに対
してだけであるので、符号語の格納に使われるメモリは
共用可能である。なお、あるシステムでは、バッファが
満杯の時に、不完全な符号語を強制的に出すかわりに、
バッファにある未決状態の符号語のコンテキスト/確率
クラスにビットを押し込むことができる。復号器は、こ
れを検出して対応した(間違った)コンテキストビンま
たは確率クラスを扱う。
【0217】ストリーム内合図法(instream signalin
g)は、復号器への合図のために符号語を使う。一実施
例では、R2(k)、R3(k)符号の定義は、後にLPSが来
ない、最大長でないMPSのランを含むように変更され
る。これは、最低確率で発生する符号語に1ビットを追
加することにより実現できる。これは、非最大長のラン
カウントのために一義的に復号可能なプリフィックス
(prefix)を与える。図66のテーブル18はストリー
ム内合図法が可能なR2(2)符号の置き換えを示す。この
方法の欠点は、R−符号復号論理を変更しなければなら
ないことと、最低確率の符号語が発生するたびに圧縮コ
ストがかかることである。
【0218】ある実施例では、復号器はタイムスタンプ
を使って暗黙合図法を行なう。1つの符号語が要求され
るたびにカウンタをインクリメントすることにより、現
在”時刻”を監視する。また、1つの符号語が始まるた
びに、現在”時刻”は、その符号語に関連したメモリに
セーブされる。1つの符号語が初めて使用された後は常
に、それに対応した記憶されている”時刻”値に符号化
器内の並べ替えバッファのサイズを足した値が、現在”
時刻”と比較される。現在”時刻”のほうが大きけれ
ば、暗黙の合図が出されることにより1つの新たな符号
が要求される。このようにして、符号化器内の限定され
た並べ替えメモリがシミュレートされた。一実施例で
は、全ての符号語を列挙できるよう”時刻”値のための
十分なビットが使われる。
【0219】必要メモリを少なくするため、タイムスタ
ンプ用のビット数は最小に押さえられる。タイムスタン
プが使用するビット数が少ないため時刻値が再使用され
る場合、カウンタが時刻の再使用を開始する前に古いタ
イムスタンプがすべて記録されるよう配慮しなければな
らない。キュー用アドレスビットとビットジェネレータ
状態メモリ用アドレスビットの中で大きいほうのビット
数を、Nとする。N+1ビットのタイムスタンプを使用
できる。ビットジェネレータ状態メモリは多重アクセ
ス、恐らく復号された1ビットにつき2つの読み出しア
クセスと2つの書き込みアクセスをサポートしなければ
ならない。カウンタがビットジェネレータ状態メモリを
循環させるために用いられ、1ビット復号される毎に1
回インクリメントする。古すぎるメモリロケーション
は、将来使用される時に新たな符号語が取り出されるよ
うにクリアされる。これによって、タイム値が再使用さ
れる前に全てのタイムスタンプが確実にチェックされ
る。
【0220】ビットジェネレータ状態メモリがキューよ
り小さいときは、カウンティング(タイムスタンプカウ
ンタ)のレートと必要とされるメモリ帯域幅を削減でき
る。というのは、各タイムスタンプ(ビットジェネレー
タ状態メモリあたり1個)は、キュー全体を使用するの
に要するサイクル数毎に1回、チェックしなければなら
ないためである。また、タイムスタンプを別メモリに格
納すれば、必要なメモリ帯域幅が減るかもしれない。部
分ランのために”0”符号語を用いるシステムでは、”
1N”符号語に関してはタイムスタンプをチェックする
必要がない。部分ランのために”1N”符号語を用いる
システムでは、タイムスタンプをチェックしなければな
らないのはLPSを生成する前だけである。
【0221】ある実施例では、復号期間に1つのキュー
を用いて暗黙合図法が実施される。この方法は、符号化
用ハードウエアを復号期間に利用できる半二重システム
において有効であろう。このキューの動作は符号化期間
と殆ど同じである。新たな符号語が要求された時に、そ
のインデックスがキューに入れられ、無効のマークが付
けられる。1つの符号語のデータが終わった時に、その
キューエントリーは有効のマークが付けられる。新たな
符号語のための空きを作るためキューからデータが取り
出される時に、そのデータに無効のマークが付けられて
いるならば、該当インデックスからのビットジェネレー
タ状態情報はクリアされる。このクリア動作のために
は、ビットジェネレータ状態メモリが余分な書き込み動
作をサポートできることが必要になるかもしれない。
【0222】一方、明示合図法(explicit signaling)
は、バッファのオーバーフローを圧縮データとして知ら
せる。1つの例は、補助的なコンテキストビンを持ち、
この補助的なコンテキストビンをそれぞれの標準コンテ
キストビンの復号毎に1回、あるいは復号された各符号
語毎に1回、使用する方法である。補助的なコンテキス
トビンより復号されるビットは、新たな符号語を必要と
する条件が発生し、新たな符号語を対応した標準コンテ
キストビンで復号しなければならないか指示する。この
場合、この特殊なコンテキストの符号語は適切に並べ替
えられなければならない。この補助的コンテキストを使
うことは利用は並べ替えユニットに分かっている1機能
であるので(普通、それは各符号語毎に1度使用され
る)、補助的コンテキストの並べ替えのために必要とさ
れるメモリは、暗黙的に限定もしくは模擬できる。ま
た、この補助的コンテキストに対し許容し得る符号も限
定できる。
【0223】暗黙合図法は、復号時に、新たな符号語を
復号しなければならないことを示す信号を生成するた
め、符号化器の限定されたバッファを模擬する。一実施
例では、各コンテキスト毎に1つのタイムスタンプが保
持される。一実施例では、符号化器の有限サイズの並べ
替えバッファが直接的に模擬される。半二重システムで
は、符号化器の並べ替え回路が復号期間に利用可能であ
るので、その並べ替え回路は復号器のためのその信号の
生成に利用されることになろう。
【0224】正確には、暗黙合図法を実現する方法は、
符号化器がバッファ満杯状態を認識し処理する具体的な
方法によって決まる。割り当ての固定した併合キューを
使うシステムの場合、複数のヘッドポインタを用いるこ
とにより、”バッファ満杯”の意味する内容を複数種類
選択できる。符号化器としての設計が与えられれば、適
切なモデルを設計できる。
【0225】符号化器の動作と、復号器に利用される、
固定ストリーム割り当てで確率別並列方式の併合キュー
用のモデルについて、以下に述べる。この例では、並べ
替えバッファが256個のロケーションを有し、4つの
インターリーブドストリームが用いられ、各インターリ
ーブド語が16ビットであると仮定する。バッファに2
56個のエントリーが入っている時には、1つのエント
リーをビットパックを行なう部分(例えばビットパック
ユニット)へ出力した後でないと、257番目の符号語
をキューに入れることができない。必要ならば、それよ
り前にエントリーを出してもよい。
【0226】あるシステムでは、最初のエントリーを取
り除くためには、1つのインターリーブド語全体を完成
するに足るビットを取り除く必要がある。したがって、
1ビットの符号語があり得るならば、16ビットのイン
ターリーブド語の場合、符号語0を取り除くには、符号
語4,8,12,...,52,56,60をも取り除か
なければならないことになろう。これらのバッファエン
トリー全部が有効なエントリーを持つことを保証するた
め、メモリが満杯になるまで1つのエントリーを強制的
に押し込むことができるのは、新たな符号語が入れられ
るロケーションから192ロケーションはなれた、アド
レス64においてである(256−16×4=19
2)。
【0227】復号器には、各確率毎に1つのカウンタが
ある。ある符号語があるランを開始させるために使用さ
れる時に、そのカウンタは192をロードされる。1つ
の新たな符号語がどのような確率に使用される時でも常
に、全部のカウンタがデクリメントされる。どのカウン
タが0に達しても、該当確率のためのランレングスは0
に設定される(かつLPS有フラグはクリアされる)。
【0228】各符号化データストリーム毎に1バンクず
つ、複数のRAMバンク(マルチポートのメモリ、高速
メモリを使ったシミュレーション、等々)を用いると好
都合であろう。こうすれば、全てのビットパックユニッ
トが同時にデータを受け取ることができるので、あるス
トリームのための複数の符号語の読み出しが他のストリ
ームによる読み出しの妨げにならない。
【0229】他のシステムにおいては、複数のビットパ
ックユニットが、符号語のバッファへの格納順序に基づ
き、1つのメモリに対して調停をしなければならない。
このようなシステムでは、バッファから1つのエントリ
ーを取り除いても1つのインターリーブド語を完成しな
いかもしれない。各ビットパックユニットは、通常、1
つのインターリーブド語の部分を順々に受け取る。各ビ
ットパックユニットは、最低でも最短符号語長(例えば
1ビット)に相当する数のビットを受け取り、最大でも
最長符号語長(例えば13ビット)に相当する数のビッ
トを受け取る。インターリーブド語は、それらが完成す
るまで送出することはできず、また、初期化の順に送出
されねばならない。この例において、1つのビットパッ
クユニットが13個のインターリーブド語をバッファし
なければならないであろう。この13個とは、別のスト
リームが、最小長符号語を受け取りつつあるペンディン
グ中の1つのインターリーブド語を持っている時に、最
大長符号語で完成し得るインターリーブド語の最大数で
ある。
【0230】あらゆる符号語がメモリの2回の書き込み
と1回の読み出しを必要とするシステムは、2回の書き
込みと2回の読み出しを行なうシステムに比べ、ハード
ウエアで実現するためには望ましくないかもしれない。
もし、これが4ストリームの本例システムで要求される
ならば、ビットパックユニット1とビットパックユニッ
ト2が一方のメモリ読み出しサイクルを共有し、ビット
パックユニット1とビットパックユニット3が他方のメ
モリ読み出しサイクルを共有することになろう(あるい
は他の任意の組合せ)。これは必要なバッファサイズを
減少させないかもしれないが、ビットパックユニットへ
の転送レートを高めるであろう。これによって、ビット
パックユニットは符号化データチャネルの容量をより有
効に利用できるであろう。
【0231】<メモリサイズが固定されたシステム>1
確率クラスにつき複数のビットジェネレータ状態を持つ
システムの1つの利点は、固定サイズのメモリがオーバ
ーフローした時に損失性コーディングをサポートできる
ことである。このことは、フレームバッファに対する画
像圧縮や、それ以外のある決まった量のデータしか記憶
しない用途に有利であろう。
【0232】メモリが固定サイズのシステムでは、各確
率毎の複数のビットジェネレータ状態はそれぞれデータ
の一部に割り当てられる。例えば、8ビットデータの場
合、8状態中の各状態を1つの特定のビットプレーンに
割り当てることができよう。この場合にはまた、複数の
シフタが順々に次の符号語を提供するのではなく、デー
タの各部分に1つのシフタが割り当てられる。なお、デ
ータはビットプレーンに分割される必要はない。また、
符号化器においては、インターリービングは行なわれ
ず、データの各部分は単にビットパックされるだけであ
る。メモリはデータの各部分に割り当てられる。
【0233】全てのデータを固定サイズのメモリに格納
するシステム及び許容最大限の帯域幅を持つチャネルで
データを伝送するシステムのための、符号化データのメ
モリ管理方法について述べる。これらのシステムのどち
らでも、損失性システムへ緩やかに移行することが望ま
れる。十分な記憶スペースまたは帯域幅を利用できない
時に、重用度の低いデータを格納することができるか、
あるいは転送できないよう、異なった重用度のデータに
対して異なったデータストリームが使われる。
【0234】メモリを使う時に、重要なデータストリー
ムを復号する能力を損なわずに重用度の低いデータスト
リームを捨てることができるような符号化データのアク
セスが可能なように、符号化データを格納しなければな
らない。符号化データは可変長であるので、動的メモリ
割り当てを用いることができる。図38は、3つの符号
化データストリームのための動的メモリ割り当ての一例
を示す。レジスタファイル3100(または他の記憶
域)は、各ストリーム毎のポインタのほかに、次の空き
メモリロケーションを指示するためのもう1つのポイン
タを保持している。メモリ3101は固定サイズのペー
ジに分割される。
【0235】最初、1つのストリームに割り当てられた
各ポインタはメモリの1つのページの先頭を指してお
り、また空きポインタはメモリの次に利用可能なページ
を指している。ある特定のストリームの符号化データ
は、対応したポインタによりアドレスされるメモリロケ
ーションに格納される。そして、このポインタは次のメ
モリロケーションを指すようインクリメントされる。
【0236】ポインタが現在ページのための最大値に達
した時に、以下に述べる操作が行なわれる。次の空きペ
ージの先頭のアドレス(空きポインタに格納されてい
る)に現在ページが格納される。(符号化データメモリ
の一部または別のメモリもしくはレジスタファイルのい
ずれを使用してもよい。) 現在ポインタは次の空きペ
ージを指すように設定される。空きポインタはインクリ
メントされる。これらの動作で、メモリの新たな1ペー
ジを特定のストリームに割り当て、割り当て順序を復号
中に判定できるようリンクさせる。
【0237】メモリの全てのページが使用中で、メモリ
内の重用度が最低のデータよりも重用度が高い、あるス
トリームからのデータがほかにある時には、3つの動作
の中の1つが行なわれるであろう。3つのケース全てに
おいて、重用度が最低のデータストリームに割り当てら
れたメモリは、それより重用度の高いデータストリーム
に再割り当てされ、最低重用度のデータストリームから
のデータはそれ以上格納されない。
【0238】その1つは、最低重用度のストリームによ
り現在使われているページが、単に、それより高い重用
度のデータに割り当てられる。最も一般的なエントロピ
ーコーダは内部状態情報を利用するので、当該ページに
前に格納されていた最低重用度のデータは失われる。
【0239】もう1つは、最低重用度のデータにより現
在使われているページが、単に、それより高い重用度の
データに割り当てられる。しかし、前ケースと違って、
ポインタは当該ページの最後を指すように設定され、よ
り重用度の高いデータが当該ページに書き込まれるに従
い対応したポインタがデクリメントされる。これは、重
用度の高いデータストリームが当該ページ全体を必要と
しないならば、当該ページの初めの部分にある最低重用
度のデータが保存されるという利点がある。
【0240】3つめは、最低重用度データの現在ページ
を再割り当てする代わりに、最低重用度データの任意の
ページが再割り当てされる。これには全てのページにつ
き符号化データが独立に符号化される必要があるが、こ
のことは達成される圧縮率を低下させる可能性がある。
また、全ページの先頭に対応する符号化前データが識別
される必要がある。最低重用度データのどのページを捨
ててもよいので、損失性符号化へ緩やかに移行させる上
でのフレキシビリティの増加を得られる。
【0241】この3番目の選択肢は、画像の複数領域に
わたって一定の圧縮率を達成するシステムには特に魅力
的であろう。指定された数のメモリページを画像の1つ
の領域に割り当てることができる。重用度の低いデータ
が保存されるか否かを、特定の領域において達成された
圧縮率によって決めることができる。(ある領域に割り
当てられたメモリは、その割り当てメモリ量より少ない
メモリ量しか非損失性圧縮に必要としなければ、全部は
使用されないであろう。) 画像の1つの領域に対し一
定の圧縮率を達成することにより、その画像領域へのラ
ンダムアクセスをサポートできる。
【0242】各ページにその両端よりデータを書き込む
機能を、システム内で利用可能なメモリ全体の利用率を
向上させるために利用できる。全ページが割り当てられ
ている時に、一端側に十分な空きスペースのあるページ
を、その端から利用するように割り当てることができ
る。ページの両端を利用する機能は、2種類のデータが
ぶつかるロケーションの管理コストと比較衡量されなけ
ればならない。(これは、一方のデータ種類が重要でな
く単純に上書きされてよい場合は別である。) ここで、データがメモリに格納されるのではなくチャネ
ルで伝送されるシステムを考える。固定サイズのメモリ
ページが使用されるが、1ストリームにつき1ページし
か必要とされない。(あるいは、チャネルに対するバフ
ァリングを行なうため、一方のページに書き込んでいる
間に、他方のページを読み出して出力することができる
ようなピンポン動作が必要ならば、1ストリームにつき
2ページが必要となろう。) メモリの1つのページが
満杯になった時に、そのページはチャネルで伝送され、
該ページの伝送後すぐに当該メモリロケーションは再利
用可能である。ある種のアプリケーションでは、メモリ
のページサイズを、チャネルで用いられるデータパケッ
トのサイズ、あるいは、パケットサイズの何倍かにする
ことができる。
【0243】ある種の通信方式では、例えばATM(非
同期転送モード)では、パケットにプライオリティを持
たせることができる。ATMは、プライマリとセカンダ
リの2つのプライオリティレベルを有する。セカンダリ
パケットは十分な帯域幅を利用できるときだけ伝送され
る。どのストリームがプライマリであるか、どのストリ
ームがセカンダリであるかを判断するために、閾値を利
用することができる。もう一つの方法は、ある閾値より
重用度が低いストリームを伝送させないための閾値を、
符号化器において利用することであろう。
【0244】<符号毎に分離されたビットジェネレータ
>図27は、各符号毎に分離したビットジェネレータを
持つシステムのブロック図である。図27において、復
号システム2000はコンテキストモデル2001、メ
モリ2002、PEM状態−符号ブロック2003、デ
コーダ2004、ビットジェネレータ2005a〜20
05n、シフタ2006からなる。コンテキストモデル
2001の出力はメモリ2002の入力に接続される。
メモリ2002の出力はPEM状態−符号ブロック20
03の入力に接続される。PEM状態−符号ブロック2
003の出力はデコーダ2004の入力に接続される。
デコーダ2004の出力は、ビットジェネレータ200
5a〜2005n用のイネーブルとして接続される。ビ
ットジェネレータ2005a〜2005nはまた、シフ
タ2006の符号化データ出力を受け取るように接続さ
れる。
【0245】コンテキストモデル2001、メモリ20
02及びPEM状態−符号ブロック2003は、図26
中の対応部分と同じ様に作用する。コンテキストモデル
2001はコンテキストビンを発生する。メモリ200
2は、そのコンテキストビンに基づき確率状態を出力す
る。この確率状態は、各確率状態に対し1つの確率クラ
スを生成するPEM状態−符号ブロック2003に受け
取られる。デコーダ2004は、その確率クラスをデコ
ードしてビットジェネレータ2005a〜2005n中
の1つをイネーブルする。(なお、デコーダ2004は
周知の74×138 3:8デコーダに類似したM:2M
デコーダ回路である。エントロピー復号器ではな
い。) なお、各符号毎に別々のビットジェネレータが
あるので、一部のビットジェネレータはR−符号以外の
符号を用いるかもしれない。特に、60%近くの確率の
ための符号が、R2(0)とR2(1)の間の確率空間をよりよ
くカバーするために用いられるかもしれない。例えば、
図67のテーブル19はそのような符号を示している。
【0246】所要の速度を達成するために必要ならば、
復号データを迅速に利用できることを保証するため1ビ
ット以上の前復号を行なってもよい。ある実施例では、
各クロックサイクル毎に長いランカウントを更新できな
くともよいように、符号語の復号と長い符号のためのラ
ンカウンティングが両方とも分割される。
【0247】R2(0)符号用のビットジェネレータは複雑
でない。1ビットが要求される度に1つの符号語が要求
される。この生成されるビットは(MPSと論理和され
た)符号語にすぎない。
【0248】短いランレングスのための符号、例えばR
2(1),R3(1),R2(2),R3(2)は次に述べるように扱わ
れる。1つの符号語中のビット全部が復号されて、小さ
なカウンタ(1,2または3ビット)及びLPS有ビッ
トからなる状態マシンに格納される。このカウンタとL
PS有ビットはR−符号復号器のように働く。
【0249】R2(k),R3(k)(k>2)のような長い符
号については、ビットジェネレータは図28に示される
ように2つのユニットに分割される。図28において、
短ランユニット2101と長ランユニット2102を持
つ、R2(k)(k>2)用のビットジェネレータの構造が
示されている。なお、この構造はR2(k>2)符号用である
が、その動作はR3(k>2)符号に対しても同様となる
(そして、これは当業者には明白である)。
【0250】短ランユニット2101はイネーブル信号
と符号語[0..2]をビットジェネレータに対する入力
として受け取り、また長ランユニット2102より”オ
ール1”信号と”カウント0”信号(カウントが0であ
ることを表示する)を受け取るよう接続されている。こ
れらの入力に応答して、短ランユニット2101は復号
ビットと、新たな符号語が必要であることを示すnex
t信号表示とを出力する。短ランユニット2101はま
た、カウントイネーブル信号、カウントロード信号及び
カウントmax信号を発生し長ランユニット2102へ
送る。長ランユニット2102はまた、符号語[k...
3]をビットジェネレータへの入力として受け取るよう
接続されている。
【0251】短ランユニット2101は長さ4までのラ
ンを扱うもので、R2(2)ビットジェネレータに類似して
いる。一実施例では、短ランユニット2101はR2(k>
2)符号全部について同一である。長ランユニット210
2の目的は、ランの最後の1〜4ビットが何時出力され
るべきか判断することである。長ランユニット2102
は、入力、AND論理、及びkによってサイズが変わる
カウンタを有する。
【0252】長ラン(カウント)ユニット2102の一
実施例が図29に示されている。図29において、長ラ
ンユニット2102はAND論理2201を有する。こ
のAND論理2201は、符号語[k...3]を受け取
るように接続され、その符号語中のビット全部が1のと
きに論理1の”オール1”信号を出力することにより、
現在の符号語が1N符号語であって、ランカウントが4
未満であることを表示する。NOT論理2202も、そ
の符号語を受け取って反転するように接続されている。
NOT論理2202の出力はビットカウンタ2203の
1つの入力に接続される。ビットカウンタ2203はま
た、カウントイネーブル信号、カウントロード信号及び
カウントmax信号を受け取るように接続される。ビッ
トカウンタ2203は、それら入力に応じて、カウント
0信号を発生する。
【0253】一実施例では、ビットカウンタ2203は
k−2ビットのカウンタであり、長いランカウントを、
4個のMPSからなるランと、恐らくいくらかの余りと
に分解する。カウントイネーブル信号は、4個のMPS
が出力されたのでカウンタがデクリメントされるべきこ
とを指示する。カウントロード信号は、”1N”符号語
を復号する時に利用され、符号語ビットk〜3の補数を
カウンタにロードさせる。カウントmax信号は、”
0”符号語を復号する時に利用され、カウンタにその最
大値をロードする。カウント0信号は、カウンタが0で
あることを表示する。
【0254】短ラン(カウント)ユニット2101の一
実施例が図30に示されている。図30において、この
短ラン(カウント)ユニット2101は制御モジュール
2304、2ビットのカウンタ(MPSカウンタ)23
02及び3ビットのカウンタ(R2(2)カウンタ及びLP
S)2303を含む。制御モジュール2301はイネー
ブル信号、符号語「0...2」、長ラン(カウント)ユ
ニットからのオール1信号及びカウント0信号を受け取
る。2ビットカウンタ2302は、長いランの一部であ
る4ビットのMPSのランをカウントするために用いら
れる。R2(2)カウンタ及びLPSビット(合計3ビッ
ト)2303は、ランの終わりで1〜4ビットを生成す
るために用いられる。イネーブル入力は、ビット出力に
1ビットを出すよう指示する。カウント0入力は、アサ
ートされない時に、4個のMPSからなるランが出力さ
れることを表示する。MPSカウンタ2302が0にな
った時には常に、カウンタイネーブル出力がアサートさ
れる。カウント0入力がアサートされた時には、R2(2)
カウンタ及びLPS2303が使用されるか、あるいは
新たな符号語が復号されてnext出力がアサートされ
る。
【0255】その新たな符号語が復号される時に実行さ
れる動作は、符号語入力によって決定される。入力が”
0”符号語ならば、MPSカウンタ2302が用いら
れ、カウントmax出力がアサートされる。”1N”符
号語の場合には、その符号語の最初の3ビットがR2(2)
カウンタ及びLPS2303へロードされ、カウントロ
ード出力がアサートされる。オール1入力がアサートさ
れるときには、R2(2)カウンタ及びLPS2303がビ
ットを生成するために利用されるが、そうでないときに
はカウント0入力がアサートされるまでMPSカウンタ
2302が利用される。
【0256】システム全体としてみると、符号数は、シ
ステムが良好に動作するよう小さくしなければならず、
普通、25未満にしなければならない。ビット出力及び
符号語出力のために必要なマルチプレクサのサイズと、
特定のビットジェネレータをイネーブルするデコーダの
サイズは、高速動作のために制限しなければならない。
また、シフタからの符号語のファンアウトは、高速動作
のために大き過ぎてはならない。
【0257】符号語毎に分離したビットジェネレータ
は、パイプライン処理が可能である。全ての符号語が結
果として2ビット以上になるとするならば、符号語の処
理を1サイクルでなく2サイクル単位でパイプラン化で
きるであろう。そうすれば、ビットジェネレータがシス
テムの速度制限部分でるとすると、復号器の速度は2倍
になろう。これを成し遂げる1つの方法は、ランレング
ス0の符号語(単に1個のLPSを示す符号語)の後に
次の未復号ビットである1ビットを付けることである。
これらは、例えばRN(k)+1 符号と呼ばれ、常に2ビッ
ト以上を符号化することになろう。なお、R2(0)符号
と、恐らく他の短い符号語のいくつかは、高速化のため
にパイプライン化される必要はない。
【0258】分離したビットジェネレータは、暗黙合図
法で使用するのに向いている。有限のメモリを使った符
号化のための暗黙合図法は、次のような方法で達成でき
る。各ビットジェネレータは1つのカウンタを持つが、
このカウンタのサイズはキューアドレスと同じサイズで
あり、例えばサイズが512のキューが用いられる時に
は9ビットである。1つのビットジェネレータにより1
つの新たな符号語が使用される都度、そのカウンタに最
大値がロードされる。いずれかのビットジェネレータが
1つの符号語を要求すると、全てのビットジェネレータ
のカウンタがデクリメントされる。あるカウンタが0に
なると、それに対応したビットジェネレータの状態がク
リアされる(例えば、MPSカウンタ、R2(2)カウンタ
及びLPS、及び長ランカウント・カウンタがクリアさ
れる)。あるビットジェネレータがイネーブルされてい
ないときでも、このクリアは行なわれるので、状態カウ
ンタに関して全く問題はない。
【0259】<各コンテキストビン用メモリの初期化>
各コンテキストビン用メモリが確率予測情報を保持する
場合、復号器(例えば該メモリ)を極めて迅速に初期化
するためには余分なメモリ帯域幅が必要かもしれない。
復号器に多くのコンテキストがあり、かつ、これらコン
テキスト全部はクリアされなくともよい場合、復号器を
素早く初期化することが難問になりかねない。復号器が
多くのコンテキスト(1K以上)をサポートし、メモリ
を全体的にクリアできない時には、許容できないほど多
数のクロックサイクルがメモリをクリアするのに必要に
なろう。
【0260】コンテキストを素早くクリアするために、
本発明のいくつかの実施例では、各コンテキストと一緒
に格納される特別のビット(本明細書で初期化状態ビッ
トと呼ぶ)を用いる。したがって、この特別ビットは、
各コンテキストのPEM状態(例えば8ビット)と一緒
に格納される。
【0261】各コンテキストビン用のメモリと初期化制
御論理が図31に示されている。図31において、コン
テキストメモリ2401はレジスタ2402に接続され
ている。一実施例では、レジスタ2402は1ビットの
レジスタであり、これは初期化された状態ビンのための
現在適切な状態を指示する。レジスタ2402はXOR
論理2403の1つの入力に接続される。XOR論理2
403のもう1つの入力はメモリ2401の出力と接続
される。XOR論理2403の出力は、有効信号であ
り、また制御論理2404の1つの入力に接続される。
制御論理2404の他の入力は、カウンタ2405の出
力及びコンテキストビン信号と接続される。制御論理2
404の1つの出力は、MUX2406,2407の選
択入力及びカウンタ2405の入力に接続される。制御
論理2404のもう1つの出力は、MUX2408の選
択入力に接続される。MUX2406の入力はカウンタ
2405の出力及びコンテキストビン信号と接続され
る。MUX2406の出力はメモリ2401へ接続され
る。MUX2407の入力は新たなPEM状態及び0と
接続される。MUX2407の出力はメモリ2401の
入力に接続され、メモリ2401の出力及び初期PEM
状態はMUX2408の入力に接続される。MUX24
08の出力がPEM状態出力である。
【0262】1つの復号動作が行なわれる度に(すなわ
ち、各データセット毎であり、各復号ビット毎ではな
い)、レジスタ2402の値は反転される。XOR論理
2403は、アクセスされたメモリロケーションの値と
レジスタ値とを比較して、アクセスされたメモリロケー
ションが当該復号動作にとって妥当であるか判定する。
これは、XOR論理2404によって、初期化状態ビッ
トがレジスタ2402にある適切な状態と一致するか調
べることによってなされる。メモリ2401内のデータ
が妥当でなければ、制御論理2402は、そのデータを
状態−符号論理に無視させ、代わりに初期PEM状態を
使用させる。これはMUX2408によってなされる。
新たなPEM状態がメモリに書き込まれる時に初期化ビ
ットはレジスタの現在値に設定されるため、その初期化
ビットは再びアクセスされた時には妥当とみなされるこ
とになる。
【0263】全てのコンテキストビンのメモリのエント
リーの初期化状態ビットがレジスタの現在値に設定され
た後でないと、次の復号動作は開始し得ない。カウンタ
2405は、全てのメモリロケーションを、それが初期
化されたことを確認するため順に指定する。あるコンテ
キストビンが使われるが、そのPEM状態は更新されて
いない時には、利用されない書き込みサイクルをカウン
タ2405で指示されたメモリロケーションのテストま
たは更新のために利用し得る。1つの復号動作が完了し
た後、カウンタ2405が最大値に達していなければ、
次の動作を始める前に残りのコンテキストが初期化され
る。この動作を制御するために図48に示す論理が用い
られる。
【0264】<高速適応のPEM>本発明で用いられる
PEMは、利用可能なデータ量のいかんにかかわらず、
より高速な適応を可能にする適応スキームを含んでもよ
い。そうすることによって、本発明は復号動作を初めは
より迅速に適応させ、そして利用可能なデータが多くな
るに従いゆっくりと適応させて、より精度のよい予測値
を得る。さらに、このPEMは、フィールドプログラマ
ブルゲートアレイ(FPGA)またはASICで構成さ
れたPEM状態テーブル/マシン内に固定されてもよ
い。
【0265】図68乃至図73に示したテーブル20〜
25は、いくつかの確率予測状態マシンを説明するもの
である。その中のいくつかのテーブルでは、ハードウエ
アコストを削減するため、R3 符号は用いられず、また
は長い符号は用いられない。テーブル20以外のテーブ
ル21〜25では、最初のLPSが生じるまでの符号化
の初めに素早く適応させるための特別な”高速適応”状
態が利用される。これらの高速適応状態は、テーブル中
でイタリック体にされている。例えば図69のテーブル
21を参照して説明すれば、復号の開始時は、現在状態
が状態0である。MPSが出現すると、復号器は状態3
5へ遷移する。MPSが出現する限り復号器は状態35
から上の方へ遷移し、最終的に状態28へ遷移する。ど
こかでLPSが出現すると、復号器はイタリック体で示
された高速適応状態から抜け出て、それまでに受け取っ
たデータに適した確率状態を表わす状態へと遷移する。
【0266】なお、各テーブルにおいて、復号器は、あ
る数のMPSを受け取った後に高速適応状態から抜け出
す。望ましい実施例では、高速適応状態から一旦抜け出
たならば、復号動作を再開するほかには、それらの状態
へ戻る手段が全くない。他の実施例では、状態テーブル
は、より高速な適応を可能にするため、これらの高速適
応状態へ再び入るように設計されるかもしれない。本発
明は、復号器をよりスキューの大きな符号へより早く到
達できるようにするもので、これによって、恐らく圧縮
率向上による利益が得られるであろう。なお、ある特定
のテーブルに関し、入力されたデータに応じてテーブル
が1状態だけ上または下へ遷移するように、テーブルの
現在状態0のためのエントリーを変更することにより、
高速適応を省くことができる。
【0267】これらテーブル全てにおいて、各状態に対
するデータは、その状態に対する符号と、正方向更新
(上向き)時の次の状態、及び負方向更新(下向き)時
の次の状態である。アスタリスクは、MPSが負方向更
新で変更されなければならない状態を示す。
【0268】高速適応を確率予測に付加しても、これは
符号化の初めに役に立つだけである。コンテキストビン
の統計値が前述のPEM状態テーブルより素早く変化す
る場合、符号化期間における適応を向上させるため別の
方法を利用できる。
【0269】符号化動作中ずっと高速な適応を維持する
1つの方法は、PEM状態更新に対し加速条件を追加す
ることである。この加速は、それぞれの符号を一定回数
(例えば8回)繰り返すことによりPEM状態テーブル
に組み込むことができる。この場合、加速条件M(例え
ば正の整数)を更新時に現在状態に加算しあるいは現在
状態から減算することができる。Mが1の時は、システ
ムは加速なしの全く同じ動作をし、最も低速の適応が行
なわれる。Mが1より大きい時には、より高速の適応が
行なわれる。最初は、初期高速適応を行なうためMは1
より大きな値に設定されるであろう。
【0270】Mの値を更新するための本発明の一方法
は、連続した符号語の数をベースにする方法である。例
えば、ある所定数の符号語が連続的に出現したときに、
Mの値が増大させられる。例えば、連続した4個の符号
語が”0””0””0””0”であるか、あるいは”1
N””1N””1N””1N”であるきに、Mの値が増
大させられる。他方、あるパターンで”0”符号語と”
1N”符号語とが切り替わることが、Mの値を減少させ
るために利用されるかもしれない。例えば、連続した4
個の符号語が”0””1N””0””1N”であるか、
あるいは”1N””0””1N””0”であるときに、
M値が減少させられる。
【0271】もう1つの加速方法は、各符号がS回繰り
返される状態テーブルを用いる。ただし、Sは正の整数
である。Sは逆加速パラメータである。Sが1の時に適
応は高速であり、Sがそれより大きい時に適応は低速で
ある。最初は、初期高速適応を行なうため、Sの値を1
に設定してよい。上述した方法と同様の方法によって、
連続した4個の符号語が”0””0””0””0”であ
るか、あるいは”1N””1N””1N””1N”であ
るときにSの値を更新してよい。この場合、Sの値は減
少させられる。これに対し、連続した4個の符号語が”
0””1N””0””1N”であるか、”1N””
0””1N””0”であるときに、Sの値は増加させら
れる。
【0272】連続した符号語という定義は、いくつかの
意味を持ち得る。”コンテキスト別”システムでは、連
続した符号語とは同じコンテキストビンでの連続した符
号語のことを指すであろう。”確率別”システムでは、
連続した符号語とは同じ確率クラスでの連続符号語のこ
とを指すであろう。あるいは、そのどちらシステムで
も、連続した符号語とは連続した符号語を包括的に(コ
ンテキストビンか確率クラスかの区別なく)指すかもし
れない。これら3つの例の場合に、符号語の履歴を保存
するために必要なメモリビット数はそれぞれ、3×コン
テキストビン数、3×確率クラス数、そして3である。
コンテキストビン毎の加速をサポートするならば、最良
の適応が可能であろう。符号化前のデータのグローバル
な変化によりトラッキングが悪くなることが多いので、
グローバルに加速を判断することによっても良好な適応
を得られよう。
【0273】<システムの応用>圧縮システムの1つの
効果は、データセットのために必要なメモリが減ること
である。本発明の並列システムは、現在非損失性コーデ
ィングシステムにより間に合わせている全ての用途に、
代わりに用いることができ、また、音声、文書、データ
ベース、コンピュータが実行可能なまたはそれ以外のデ
ジタルデータ、信号あるいはシンボルを処理するシステ
ムに適用できる。代表的な非損失性コーディングシステ
ムには、ファクシミリ圧縮システム、データベース圧縮
システム、ビットマップグラフィックイメージ圧縮シス
テム、JPEG及びMPEGのような画像圧縮規格にお
ける変換係数の圧縮システムがある。本発明は、小規模
で効率的なハードウエアにより実施可能であり、また、
高速である必要がない用途にも最適な比較的高速なソフ
トウエアによる実施も可能である。
【0274】従来技術を超える本発明の実際的な利点
は、非常に高速な動作が可能であること、特に復号動作
がそうであることである。したがって、高速コンピュー
タネットワークや衛星または地上放送チャネルのような
費用の嵩む高速チャネルを最大限利用することができ
る。図35はこのようなシステムを表わしており、放送
データ、あるいは高速コンピュータネットワークのデー
タが復号システム2801に与えられ、同システムはデ
ータを並列的に復号して出力データを送出する。現在の
ハードウエア・エントロピー復号器(Q−コーダ等)を
用いたのでは、これらシステムのスループットは下がる
であろう。これらシステムは全て、高帯域幅を持つよう
高コストの設計となっている。復号器によってスループ
ットが下がるのでは非生産的である。本発明の並列シス
テムは、これらの高帯域幅に対応するだけでなく、デー
タを圧縮した形で伝送できるので実効帯域幅を実際に増
加させるのである。
【0275】本発明の並列システムはまた、ISDN、
CD−ROM、SCSIのようなそこそこ高速のチャネ
ルから、それ以上の実効帯域幅を得る目的に応用でき
る。このような帯域幅整合システムが図36に示されて
おり、CD−ROM、イーサネット、SCSI(Small
Computer Standard Interface)、その他同様のソース
からのデータが復号システム2901に接続され、同シ
ステムはそのデータを受け取って復号し出力を発生す
る。これらのチャネルは、いくつかの現在のコーダより
ずっと高速である。しばしば、これらのチャネルは、リ
アルタイムビデオやコンピュータベースのメディアのよ
うな、チャネルが持っている帯域幅以上の帯域を必要と
するデータソースのサービスに利用される。本発明のシ
ステムは、帯域幅を整合させる役割を果たすことができ
る。
【0276】本発明のシステムは、高解像度テレビ(H
DTV)やMPEGビデオ規格のようなリアルタイムビ
デオシステムのエントロピーコーダ部として最適なもの
である。そのようなシステムが図37に示されている。
図37において、このリアルタイムビデオシステムは、
圧縮された画像データが接続される復号システム300
1を有する。この復号システム3001は、そのデータ
を復号してから損失性復号器3002へ出力する。損失
性復号器3002は、HDYVまたはMPEG復号器の
変換、色変換及びサブサンプリングの部分であるかもし
れない。モニタ3003はテレビまたはビデオモニタで
あろう。
【0277】
【発明の効果】以上の詳細な説明から理解されるよう
に、本発明によれば、従来技術の問題点を解決し、デー
タの符号化または復号を高速に行なう装置、データの符
号化または復号を並列に行なう装置、リアルタイムの符
号化または復号を行なう装置等を提供でき、また、その
ような装置を安価なハードウエアによって実現可能にな
る等の多大な効果が得られる。
【図面の簡単な説明】
【図1】従来のバイナリエントロピー符号化装置及び復
号装置のブロック図である。
【図2】本発明の復号システムのブロック図である。
【図3】本発明の符号化システムのブロック図である。
【図4】コンテキストビンを並列に処理する本発明の並
列復号器の一実施例のブロック図である。
【図5】確率クラスを並列に処理する本発明の並列符号
化器の一実施例のブロック図である。
【図6】本発明のノンインターリーブド符号ストリーム
を示す図である。
【図7】データセットとインターリーブド符号ストリー
ムの例を示す図である。
【図8】本発明のR−コーダ用確率予測テーブルの一例
を示す図である。
【図9】本発明の符号化装置の一実施例のブロック図で
ある。
【図10】本発明のビットジェネレータの一実施例のブ
ロック図である。
【図11】本発明の再配列ユニットの一実施例のブロッ
ク図である。
【図12】本発明のランカウント並べ替えユニットの一
実施例のブロック図である。
【図13】本発明のランカウント並べ替えユニットの他
の実施例のブロック図である。
【図14】本発明のビットパックユニットの一実施例の
ブロック図である。
【図15】本発明のパッキング論理の一実施例のブロッ
ク図である。
【図16】本発明の符号化器用ビットジェネレータの一
実施例のブロック図である。
【図17】本発明の復号システムの一実施例のブロック
図である。
【図18】本発明の復号器のブロック図である。
【図19】本発明のFIFO構造の一実施例のブロック
図である。
【図20】本発明の復号用パイプラインの一実施例を示
す図である。
【図21】本発明の復号器の概念図である。
【図22】本発明のシフタの一実施例のブロック図であ
る。
【図23】本発明のシフタの他の実施例のブロック図で
ある。
【図24】外部コンテキストモデルを有するシステムの
一例のブロック図である。
【図25】外部コンテキストモデルを有するシステムの
他の例のブロック図である。
【図26】パイプライン化ビットジェネレータを有する
本発明の復号器の一実施例を示すブロック図である。
【図27】分離ビットジェネレータを持つ本発明の復号
器の一実施例を示すブロック図である。
【図28】本発明の復号器用ビットジェネレータの一実
施例のブロック図である。
【図29】本発明の長ランユニットの一実施例のブロッ
ク図である。
【図30】本発明の短ランユニットの一実施例のブロッ
ク図である。
【図31】本発明の初期化・制御論理の一実施例のブロ
ック図である。
【図32】スヌーパー復号器を使う再配列ユニットの一
実施例のブロック図である。
【図33】再配列ユニットの他の実施例のブロック図で
ある。
【図34】併合キューを使用する再配列ユニットの一実
施例のブロック図である。
【図35】本発明を利用する高帯域幅システムの説明図
である。
【図36】本発明を利用する帯域幅整合システムの説明
図である。
【図37】本発明を利用するリアルタイムビデオシステ
ムのブロック図である。
【図38】本発明の符号化データメモリの一実施例を示
す図である。
【図39】本発明の復号タイミング図である。
【図40】符号化効率対MPS確率のグラフである。
【図41】本発明の符号化器用ビットジェネレータのA
HDLソースコードを示す図である。
【図42】図41に示したAHDLソースコードの続き
を示す図である。
【図43】図42に示したAHDLソースコードの続き
を示す図である。
【図44】図43に示したAHDLソースコードの続き
を示す図である。
【図45】図44に示したAHDLソースコードの続き
を示す図である。
【図46】図45に示したAHDLソースコードの続き
を示す図である。
【図47】タイムスタンプ付キューに関連したC言語ソ
ースコードを示す図である。
【図48】コンテキスト初期化に関連したC言語ソース
コードを示す図である。
【図49】R符号による符号語とその意味を示すテーブ
ルである。
【図50】R符号のテーブルである。
【図51】R符号のテーブルである。
【図52】R符号のテーブルである。
【図53】R符号のテーブルである。
【図54】R符号のテーブルである。
【図55】R符号のテーブルである。
【図56】R符号のテーブルである。
【図57】確率、確率スキュー、最適Golomb符号
の対照テーブルである。
【図58】R2符号と確率区間の対照テーブルである。
【図59】R2符号及びR3符号と確率区間の対照テー
ブルである。
【図60】R3(2)符号の1N符号語を説明するテーブル
である。
【図61】R2(2)符号の符号語とデータの対照テーブル
である。
【図62】データの符号化動作の例を示すテーブルであ
る。
【図63】並べ替え操作の例を示すテーブルである。
【図64】復号器ようFIFO構造の制御論理を示すテ
ーブルである。
【図65】復号タイミング図に関連した信号の依存関係
リストのテーブルである。
【図66】ストリーム内合図法の可能なR2(2)符号のテ
ーブルである。
【図67】R符号以外の符号を示すテーブルである。
【図68】PEM状態テーブルである。
【図69】PEM状態テーブルである。
【図70】PEM状態テーブルである。
【図71】PEM状態テーブルである。
【図72】PEM状態テーブルである。
【図73】PEM状態テーブルである。
【符号の説明】
204 入力バッファ 205 復号器 206 コンテキストモデル 207 復号データ記憶装置 214 コンテキストモデル 215,216,217 確率予測モジュール 218,219,220 ビットストリームジェネレ
ータ 221,222,223 ビットストリームジェネレ
ータ 224,225,226 確率予測モジュール 227 コンテキストモデル(CM) 232,233,234 ビットストリームジェネレ
ータ 235 確率予測モジュール 236 コンテキストモデル 600 符号化装置 601 オリジナルデータ 602 符号化器 603 CM・状態メモリ 604 符号語情報 606 再配列ユニット 607 再配列メモリ 608 符号化データ 701 ビットジェネレータ 702 メモリ 801 ランカウント並べ替えユニット 802 ビットパックユニット 901 ポインタメモリ 902 マルチプレクサ 903 ヘッドカウンタ(ポインタ) 904 テールカウンタ(ポインタ) 905 マルチプレクサ 906 有効検出モジュール 908 符号語メモリ 909 制御モジュール 1000 ランカウント並べ替えユニット 1001 ポインタメモリ 1002 ヘッドカウンタ(ポインタ) 1003 テールカウンタ(ポインタ) 1004,1005 マルチプレクサ 1006 長さ計算ブロック 1007 有効検出ブロック 1008 符号語メモリ 1101 パッキング論理 1102 ストリームカウンタ 1103 メモリ 1104 テールポインタ 1105 ヘッドカウンタ 1201 サイズユニット 1202 アキュムレータ 1203 シフタ 1204 マルチプレクサ 1205 レジスタ 1206 OR論理 1400 復号システム 1401 FIFO構造 1402 復号器 1403 メモリ 1404 コンテキストモデル 1460 FIFO 1461,1462 レジスタ 1463,1464 マルチプレクサ 1465 制御ブロック 1600 シフタ 1601,1602,1603,1605 レジスタ 1605 マルチプレクサ 1606 バレルシフタ 1607,1608,1609,1061 レジスタ 1611 サイズユニット 1612 アキュムレータ 1620 シフタ 1621,1622 符号語前処理論理 1623 マルチプレクサ 1624 符号語処理論理 1701 CMチップ 1702 復号器チップ 1801 CMチップ 1802 復号器チップ 1803 メモリ 1900 復号器 1901 コンテキストモデル 1902 メモリ 1903 PEM状態−符号モジュール 1904 メモリ 1905 パイプライン化ビットジェネレータ 1906 シフタ 2000 復号器 2001 コンテキストモデル 2002 メモリ 2003 PEM状態−符号モジュール 2004 デコーダ 2005 ビットストリームジェネレータ 2006 シフタ 2101 短ラン(カウント)ユニット 2102 長ラン(カウント)ユニット 2201 AND論理 2202 NOT論理 2203 ビットカウンタ 2302 カウンタ(MPSカウンタ) 2303 カウンタ(R2(2)カウンタ及びLPS) 2401 コンテキストメモリ 2402 レジスタ 2403 XOR論理 2404 制御論理 2405 カウンタ 2406,2407,2408 マルチプレクサ 2501 ランカウント並べ替えユニット 2502 ビットパックユニット 2503 マルチプレクサ 2504 スヌーパー復号器 2601 論理 2701 ランカウント並べ替えユニット 2801 復号システム 2901 復号システム 3001 復号システム 3002 損失性復号器 3003 モニタ 3100 レジスタファイル 3101 メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムス ディ アレン アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコーコーポレーショ ン内 (72)発明者 マーティン ピー ボーリック アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコーコーポレーショ ン内 (56)参考文献 特開 平5−130557(JP,A) 特開 昭63−76525(JP,A) 特開 平6−224777(JP,A) 特開 平5−308290(JP,A) 特開 平5−64008(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40 G06T 9/00 H04N 1/41 H04N 7/24

Claims (121)

    (57)【特許請求の範囲】
  1. 【請求項1】 データストリームを符号化するための符
    号化方法であって、該データストリームをコンテキストモデルにより複数の
    コンテキストに分けるステップと、 該複数のコンテキストに分けられた各データストリーム
    を、それぞれ別々の確率予測モジュールとビットジェネ
    レータに割り当てて、符号語情報を構成する複数の符号
    語を並列的に生成するステップと該複数の符号語のそれぞれを復号の順序に並べ替えて結
    合し、該符号語情報に応じた符号化データを生成するス
    テップと、 を有することを特徴とする 符号化方法。
  2. 【請求項2】 請求項1記載の符号化方法において、該
    複数の符号語のそれぞれが各ランの初めに出力されるこ
    とを特徴とする符号化方法。
  3. 【請求項3】 請求項1記載の符号化方法において、該
    符号化データ生成ステップがさらに可変長符号語を組合
    せて固定長データ構造にすることを含むことを特徴とす
    る符号化方法。
  4. 【請求項4】 請求項3記載の符号化方法において、該
    固定長データ構造がそれぞれ1つのインターリーブド語
    からなることを特徴とする符号化方法。
  5. 【請求項5】 符号語が復号順に順序付けられるように
    符号化データを出力するステップをさらに有することを
    特徴とする請求項1記載の符号化方法。
  6. 【請求項6】 符号語を順序付けするステップをさらに
    有することを特徴とする請求項1記載の符号化方法。
  7. 【請求項7】 請求項1記載の符号化方法において、該
    符号語情報生成ステップが、符号語の確率状態を生成す
    るステップ、該確率状態に基づきビット生成符号を選択
    するステップ、及びメモリをアクセスして該確率状態に
    関連したランカウントを得るステップからなることを特
    徴とする符号化方法。
  8. 【請求項8】 データストリームを符号化するための符
    号化装置であって、該データストリームを複数のコンテ
    キストに分けるコンテキストモデルと該複数のコンテキストに分けられた各データストリーム
    をそれぞれ受け取り、 符号語情報を構成する複数の符号語を並列的に生成する
    ための、それぞれ確率予測モジュールとビットジエネレ
    ータからなる複数の符号化器と、 該符号化器に接続され、該複数の符号器のそれぞれを復
    号の順序に並べ替えて結合し、該符号語情報に応じた符
    号化データを生成する再配列ユニットと、 を有することを特徴とする 符号化装置。
  9. 【請求項9】 請求項8の符号化装置において、該再配
    列ユニットが該符号語を符号語サイズが分かるように格
    納することを特徴とする符号化装置。
  10. 【請求項10】 請求項9記載の符号化装置において、
    1N符号語が最上位の”1”ビットが各符号語の長さを
    表示するように並べ替えられることを特徴とする符号化
    装置。
  11. 【請求項11】 請求項8記載の符号化装置において、
    該再配列ユニットが、該符号語情報中の該複数の符号語
    のそれぞれを各ランの初めに生成する1つ以上のランカ
    ウント並べ替えユニット、及び、可変長符号語を組合せ
    て固定長データ構造にする1つ以上のビットパックユニ
    ットからなることを特徴とする符号化装置。
  12. 【請求項12】 請求項11記載の符号化装置におい
    て、該固定長データ構造がそれぞれ1つのインターリー
    ブド語からなることを特徴とする符号化装置。
  13. 【請求項13】 請求項11記載の符号化装置におい
    て、該再配列ユニットが符号語を並べ替えることを特徴
    とする符号化装置。
  14. 【請求項14】 符号語をある順番に格納するための該
    メモリに接続されたメモリをさらに有することを特徴と
    する請求項13記載の符号化装置。
  15. 【請求項15】 請求項8記載の符号化システムにおい
    て、該符号化器が、コンテキストモデルと、該コンテキ
    ストモデルに接続された確率予測マシーンと、該データ
    ストリームに応じて符号語を生成する、該確率予測マシ
    ンに接続されたビットジェネレータ構造とからなること
    を特徴とする符号化装置。
  16. 【請求項16】 請求項15記載の符号化装置におい
    て、該符号化器が複数のランカウントを格納するメモリ
    をさらに有し、該メモリが該確率予測マシンより与えら
    れる確率クラスを用いてアクセスされることにより、該
    複数のランカウント中の1つのランカウントが該符号語
    情報の一部として出力されるべく該ビットジェネレータ
    構造へ提供されることを特徴とする符号化装置。
  17. 【請求項17】 請求項15記載の符号化装置におい
    て、該ビットジェネレータ構造が、インデックス及びM
    PS/LPS表示に応じて符号語情報を提供するビット
    ジェネレータと、該ビットジェネレータにランカウント
    を与えるための該ビットジェネレータと接続されたメモ
    リとからなり、該ビットジェネレータが該インデックス
    に基づいて該メモリを読み出し、該読み出しによって得
    られたデータに基づきビット生成を行なうことを特徴と
    する符号化装置。
  18. 【請求項18】 請求項17記載の符号化装置におい
    て、該符号語情報が、MPS/LPS表示の内容がラン
    の始まりであるか否かを示す第1の信号と、MPS/L
    PS表示の内容がランの終わりであるか否かを示す第2
    の信号と、符号語出力とからなることを特徴とする符号
    化装置。
  19. 【請求項19】 請求項11記載の符号化装置におい
    て、該ビットパックユニットがインターリーブド語を並
    べ替えて符号化データストリームを、各ストリームの各
    インターリーブド語中のN個前の符号語に応じて順序付
    けられたインターリーブドストリームとして生成するこ
    とを特徴とする符号化装置。
  20. 【請求項20】 請求項11記載の符号化装置におい
    て、該再配列ユニットは符号ストリームに出力されるイ
    ンターリーブド語を選択するためのスヌーパー復号器を
    有することを特徴とする符号化装置。
  21. 【請求項21】 請求項20記載の符号化装置におい
    て、該再配列ユニットが複数のビットパックユニットに
    接続された複数のランカウント並べ替えユニットを有
    し、該複数のビットパックユニットがそれぞれインター
    リーブド語を生成し、該スヌーパー復号器が該複数のイ
    ンターリーブド語より該符号ストリームへの出力として
    のインターリーブド語を選択することを特徴とする符号
    化装置。
  22. 【請求項22】 請求項11記載の符号化装置におい
    て、該符号語情報がタイムスタンプを含み、該再配列ユ
    ニットがインターリーブド語を関連したタイムスタンプ
    に基づき出力するための論理をさらに有する、ことを特
    徴とする符号化装置。
  23. 【請求項23】 請求項22記載の符号化装置におい
    て、該再配列ユニットが複数のビットパックユニットと
    接続された複数のランカウント並べ替えユニットを有
    し、該論理がインターリーブド語を関連したタイムスタ
    ンプに基づき出力させることを特徴とする符号化装置。
  24. 【請求項24】 請求項23記載の符号化装置におい
    て、インターリーブド語が最も古いタイムスタンプに基
    づき出力されることを特徴とする符号化装置。
  25. 【請求項25】 請求項11記載の符号化装置におい
    て、単一のキューが複数のビットパックユニットへ符号
    語を供給し、該複数のビットパックユニットが該符号ス
    トリームの一部として出力されるインターリーブド語を
    生成することを特徴とする符号化装置。
  26. 【請求項26】 請求項25記載の符号化装置におい
    て、該単一のキューが単一のランカウント並べ替えユニ
    ットを含み、論理が該符号ストリームとして出力すべき
    次のインターリーブド語を決定することを特徴とする符
    号化装置。
  27. 【請求項27】 請求項11記載の符号化装置におい
    て、単一のキューが単一のビットパックユニットへ符号
    語を供給することを特徴とする符号化装置。
  28. 【請求項28】 データに応じて符号語情報を発生する
    符号化器と、該符号化器に接続された再配列ユニットを
    有し、該再配列ユニットが該符号語情報に応じて符号化
    データストリームを生成し、該再配列ユニットが各符号
    語を対応したデータの最初の部分に並べるためのランカ
    ウント並べ替えユニットと、該ランカウント並べ替えユ
    ニットから符号語を受け取り可変長符号語を組合せて複
    数の固定長インターリーブド語とし、該複数の固定長イ
    ンターリーブド語を復号器で必要とされる順番に出力す
    るように接続されたビットパックユニットとからなる、
    符号化器により生成された情報を復号するための復号器
    を持つ圧縮システム用の符号化装置。
  29. 【請求項29】 符号語を並べ替えの間記憶するための
    メモリをさらに有することを特徴とする請求項28記載
    の符号化装置。
  30. 【請求項30】 請求項28記載の符号化装置におい
    て、符号化器がさらに、コンテキストモデル、該コンテ
    キストモデルと接続された確率予測機構、及び該確率予
    測機構と接続されたビットストリームジェネレータを有
    することを特徴とする符号化装置。
  31. 【請求項31】 請求項30記載の符号化装置におい
    て、該ランカウント並べ替えユニットがさらに、符号語
    を記憶するための第1のメモリと、該第1のメモリをキ
    ューとしてアドレスするための第1のインジケータ及び
    第2のインジケータとを有し、該第1のインジケータが
    該第1のメモリの出力として指定される第1のエントリ
    ーを指し示し、該第2のインジケータが該第1のメモリ
    の次の利用可能で割り当てられていない記憶ロケーショ
    ンとして指定される第2のエントリーを指し示すことを
    特徴とする符号化装置。
  32. 【請求項32】 各インデックス毎に符号語の記憶のた
    めに現在指定されている第1のメモリ内のロケーション
    に対応するアドレス情報を記憶するためのポインタメモ
    リをさらに有することを特徴とする請求項31記載の符
    号化装置。
  33. 【請求項33】 請求項32記載の符号化装置におい
    て、各インデックスが1つの確率クラスを指示すること
    を特徴とする符号化装置。
  34. 【請求項34】 請求項32記載の符号化装置におい
    て、各インデックスが少なくとも1つのコンテキストを
    指示することを特徴とする符号化装置。
  35. 【請求項35】 請求項28記載の符号化装置におい
    て、該再配列ユニットが、符号語を記憶するための符号
    語メモリキューと、出力すべき少なくとも1つの符号語
    を指示するヘッドポインタと、該符号語メモリキューに
    符号語を挿入するための少なくとも1つのメモリロケー
    ションを指示するテールポインタとをさらに有すること
    を特徴とする符号化装置。
  36. 【請求項36】 請求項35記載の符号化装置におい
    て、該符号語メモリキューの各符号語エントリーが有効
    性表示を含み、該符号語メモリキューより1つの符号語
    が出力される時に該ヘッドポインタが当該符号語のアド
    レスを指定し当該該符号語の有効性表示が当該該符号語
    の有効性を表示することを特徴とする符号化装置。
  37. 【請求項37】 請求項28記載の符号化装置におい
    て、該ビットパックユニットが該再配列ユニットから符
    号語を受け取って符号語を複数のストリームのためのイ
    ンターリーブド語に統合するビットパック論理を有する
    ことを特徴とする符号化装置。
  38. 【請求項38】 請求項37記載の符号化装置におい
    て、該ビットパック論理が複数のアキュムレータと複数
    のレジスタを有し、該複数のレジスタのそれぞれが該複
    数のアキュムレータ中の1つのアキュムレータ及び該複
    数のストリーム中の1つのストリームに関連付けられ、
    各レジスタがそれに関連したストリームのためのインタ
    ーリーブド語を格納し、各アキュムレータが関連したレ
    ジスタ内の該ストリームのための現在符号語を格納する
    ための次のロケーションを指示することにより、該複数
    のストリーム中の1つのストリームのための各符号語
    が、該関連したアキュムレータの値に基づき、該1つの
    ストリームに関連したレジスタの内容に付加されること
    を特徴とする符号化装置。
  39. 【請求項39】 該複数のアキュムレータに接続され、
    該複数のアキュムレータからの少なくとも1つの信号に
    応答して符号語をシフトするシフタをさらに有し、1つ
    のアキュムレータ値に基づき、符号語が該複数のレジス
    タ中の1つのレジスタの内容に付加されるようにシフト
    され、少なくとも2個の符号語の部分を各インターリー
    ブド語にパックすることを特徴とする請求項38記載の
    符号化装置。
  40. 【請求項40】 該復号器により指定される順序でイン
    ターリーブド語を格納するための並べ替えメモリをさら
    に有することを特徴とする請求項37記載の符号化装
    置。
  41. 【請求項41】 複数のインターリーブドデータストリ
    ームに対応した複数のポインタをさらに有し、該複数の
    ポインタがそれぞれ該複数のストリーム中の各ストリー
    ムに対応する次のインターリーブド語のための該並べ替
    えメモリ内のロケーションを指定することを特徴とする
    請求項40記載の符号化装置。
  42. 【請求項42】 複数のランカウント並べ替えユニット
    をさらに有し、該複数のランカウント並べ替えユニット
    がそれぞれ該符号化データストリームの1つに関連付け
    られ、また、各符号化データストリームに対するインタ
    ーリーブド語を生成するための複数のビットパックユニ
    ットと、該複数のビットパックユニットから出るインタ
    ーリーブド語を該復号化出力として選択するための復号
    器とをさらに有することを特徴とする請求項28記載の
    符号化装置。
  43. 【請求項43】 複数のランカウント並べ替えユニット
    をさらに有し、該複数のランカウント並べ替えユニット
    がそれぞれ該符号化データストリームの1つに関連付け
    られ、かつ、複数の符号語及び該複数の符号語のそれぞ
    れに関連したタイムスタンプを生成し、また、各符号化
    データストリームに対するインターリーブド語を生成す
    るための複数のビットパックユニットと、該インターリ
    ーブド語それぞれを該インターリーブド語それぞれの符
    号語のタイムスタンプに基づき選択するための論理とを
    さらに有することを特徴とする請求項28記載の符号化
    装置。
  44. 【請求項44】 請求項43記載の符号化装置におい
    て、該論理が最も古いタイムスタンプを持つ符号語を含
    むインターリーブド語を選択することを特徴とする符号
    化装置。
  45. 【請求項45】 請求項28記載の符号化装置におい
    て、該ビットパックユニットが複数のストリーム中の1
    つから符号語を受け取るように接続された複数のビット
    パッキングユニットを有し、また、次のストリームに基
    づき、該複数のビットパッキングユニットのそれぞれよ
    り出力すべきインターリーブド語を選択する論理をさら
    に有することを特徴とする符号化装置。
  46. 【請求項46】 請求項28記載の符号化装置におい
    て、該再配列ユニットが有限のメモリをさらに有するこ
    とを特徴とする符号化装置。
  47. 【請求項47】 データを処理するためのコーディング
    装置であって、該データに基づきインデックスを生成す
    るインデックスジェネレータと、該インデックスに基づ
    き確率予測値を提供するように接続された状態テーブル
    とを有し、 該状態テーブルは第1の複数の状態と第2の複数の状態
    を含み、該状態はそれぞれ1つの符号に対応し、該第1
    の複数の状態の状態間の遷移時における該第1の複数の
    状態に対応する異なった符号間の遷移は、該第2の複数
    の状態の状態間の遷移時における該第2の複数の状態に
    対応する異なった符号間の遷移より高速に起こるコーデ
    ィング装置。
  48. 【請求項48】 請求項47記載のコーディング装置に
    おいて、該第1の複数の状態がある所定数のインデック
    スに対してのみ用いられることを特徴とするコーディン
    グ装置。
  49. 【請求項49】 請求項47記載のコーディング装置に
    おいて、該第1の複数の状態が、最初に該状態テーブル
    を索引する所定数のインデックスに対してのみ用いられ
    ることを特徴とするコーディング装置。
  50. 【請求項50】 請求項47記載のコーディング装置に
    おいて、該第1の複数の状態がそれぞれ1つのR2符号
    に関係付けられることを特徴とするコーディング装置。
  51. 【請求項51】 請求項48記載のコーディング装置に
    おいて、該第1の複数の状態に該第2の複数の状態への
    遷移を少なくとも1つ含むことにより、該状態テーブル
    が該所定数のインデックスの後に該第1の複数の状態か
    ら該第2の複数の状態へ遷移することを特徴とするコー
    ディング装置。
  52. 【請求項52】 請求項47記載のコーディング装置に
    おいて、該第1の複数の状態がそれぞれ1つの異なった
    符号と関係付けられることを特徴とするコーディング装
    置。
  53. 【請求項53】 請求項47記載のコーディング装置に
    おいて、該状態テーブルが、最低確率シンボルに応答し
    て、該第1の複数の状態中のある状態から該第2の複数
    の状態中のある状態へ遷移することを特徴とするコーデ
    ィング装置。
  54. 【請求項54】 請求項47記載のコーディング装置に
    おいて、該状態テーブルが最高確率シンボルに応答して
    状態を上げることを特徴とするコーディング装置。
  55. 【請求項55】 データを処理するためのコーディング
    装置であって、該データに基づきインデックスを生成す
    るインデックスジェネレータと、該インデックスに基づ
    き確率予測値を提供するように接続された状態テーブル
    とを有し、 該状態テーブルは複数の状態を含み、該状態はそれぞれ
    1つの符号に対応し、該状態テーブル中の全ての符号が
    所定回数繰り返され、 該状態テーブルの状態間遷移が修正可能な加速条件に基
    づいて起こることにより、第1の期間における状態遷移
    の第1の速度は第2の期間における遷移の第2の速度と
    異なるコーディング装置。
  56. 【請求項56】 請求項55記載のコーディング装置に
    おいて、該状態テーブルに対する更新が該加速条件の増
    減によりPEM状態を修正することを含むことを特徴と
    するコーディング装置。
  57. 【請求項57】 請求項56記載のコーディング装置に
    おいて、加速条件が所定の数である時には適応的加速が
    行なわれないことを特徴とするコーディング装置。
  58. 【請求項58】 請求項56記載のコーディング装置に
    おいて、該加速条件が連続した符号語の数に基づき更新
    されることを特徴とするコーディング装置。
  59. 【請求項59】 請求項58記載のコーディング装置に
    おいて、連続した符号語が同じコンテキストでの連続し
    た符号語であることを特徴とするコーディング装置。
  60. 【請求項60】 請求項58記載のコーディング装置に
    おいて、連続した符号語が同じ確率クラスでの連続した
    符号語であることを特徴とするコーディング装置。
  61. 【請求項61】 請求項56記載のコーディング装置に
    おいて、該加速条件が交互に替わる符号語の数に基づい
    て更新されることを特徴とするコーディング装置。
  62. 【請求項62】 複数の符号語からなるデータストリー
    ムを復号するためのエントロピー復号器であって、該デ
    ータストリームを受け取るための複数のビットストリー
    ムジェネレータと、該複数のビットストリームジェネレ
    ータに確率予測値を与えるために該複数のビットストリ
    ームジェネレータに接続された状態テーブルとを有し、 該複数のビットジェネレータは、複数のn値に対するR
    n(k)符号を用い、該確率予測値に応じて該データス
    トリーム中の各符号語に対する復号結果を生成し、ま
    た、該状態テーブルは第1の複数の状態と第2の複数の
    状態を含み、符号間遷移は、該第1の複数の状態におい
    て遷移する時のほうが、該第2の複数の状態において遷
    移する時よりも高速に起こるエントロピー復号器。
  63. 【請求項63】 請求項62記載のエントロピー復号器
    において、 該第1の複数の状態がそれぞれR2(k)
    符号を含むことを特徴とするエントロピー復号器。
  64. 【請求項64】 請求項62記載のエントロピー復号器
    において、該第1の複数の状態が初期化の間だけ利用さ
    れることを特徴とするエントロピー復号器。
  65. 【請求項65】 複数の符号語からなるデータストリー
    ムを復号するためのエントロピー復号器であって、該デ
    ータストリームを受け取るための複数のビットストリー
    ムジェネレータと、インデックスに基づいて確率予測値
    を与えるために接続された状態テーブルとを有し、 ここにおいて、該状態テーブルは複数の状態を持ち、該
    複数の状態はそれぞれ1つの符号に対応し、該状態テー
    ブル内の全ての符号が予め決められた回数繰り返され、 該状態テーブルの状態間遷移は修正可能な加速条件に基
    づいて起こることにより、第1の期間における状態間遷
    移の第1の速度は第2の期間における遷移の第2の速度
    と異なるエントロピー復号器。
  66. 【請求項66】 請求項62記載のエントロピー復号器
    において、該状態テーブル内の全ての符号が一定回数繰
    り返されることを特徴とするエントロピー復号器。
  67. 【請求項67】 請求項66記載のエントロピー復号器
    において、該状態テーブルに対する更新が加速条件によ
    りPEM状態を修正することを含むことを特徴とするエ
    ントロピー復号器。
  68. 【請求項68】 請求項67記載のエントロピー復号器
    において、該加速条件が予め決められた値である時に適
    応的加速が行なわれないことを特徴とするエントロピー
    復号器。
  69. 【請求項69】 請求項67記載のエントロピー復号器
    において、該加速条件が連続した符号語の数に基づいて
    更新されることを特徴とするエントロピー復号器。
  70. 【請求項70】 請求項67記載のエントロピー復号器
    において、該加速条件が交互に替わる符号語の数に基づ
    いて更新されることを特徴とするエントロピー復号器。
  71. 【請求項71】 複数のインターリーブド語を復号する
    ための復号器であって、 該データストリームを受け取って適切に整列された符号
    化データを出力するためのシフタ、 該適切に整列された符号化データを符号語として受け取
    って符号語種類を判定するための、該シフタに接続され
    たランレングスデコーダ、 該ランレングスデコーダが各符号語に応じてランレング
    スとLPSが出現したか否かの表示を生成するように、
    該ランレングスデコーダのための符号を決定する、該ラ
    ンレングスデコーダに接続された確率予測マシンを有
    し、 ここにおいて、該シフタは該データストリームからの符
    号語をシフトするための可変長シフト機構を有し、かつ
    整列された符号語データが符号語の1つの系列として出
    力されるように、該シフト機構に応答して該データスト
    リームから符号語を受け取るよう接続された複数のレジ
    スタを有する復号器。
  72. 【請求項72】 請求項71記載の復号器において、該
    複数のレジスタ中の一部のレジスタは、該複数のレジス
    タ中の別のレジスタから、または該データストリームか
    らデータを受け取るように接続されることを特徴とする
    復号器。
  73. 【請求項73】 請求項71記載の復号器において、該
    可変長シフト機構が該データストリームからのデータを
    該複数のレジスタへシフトするためのバレルシフタを含
    むことを特徴とする復号器。
  74. 【請求項74】 請求項71記載の復号器において、該
    シフタが複数のレジスタを持つFIFOを有し、該複数
    のレジスタのそれぞれが該インターリーフド語を入力と
    して受け取り、かつ、該複数のレジスタ中の少なくとも
    1つのレジスタが該複数のレジスタ中の他のレジスタか
    ら符号語を受け取るように接続されることを特徴とする
    復号器。
  75. 【請求項75】 請求項71記載の復号器において、該
    シフタが、 符号語データを受け取るように接続され、それぞれが複
    数のストリーム中の別個のストリームに接続された第1
    の複数のレジスタと、 該第1の複数のレジスタのそれぞれから符号語データを
    入力として受け取り、1度に該第1の複数のレジスタ中
    の1つのレジスタから符号語を出力するように接続され
    たマルチプレクサと、 該マルチプレクサからの符号語データをシフトし整列さ
    れた符号語データとして出力するための、該マルチプレ
    クサの出力に接続されたバレルシフタと、 符号語をシフトすべきビット数を指示するための、該バ
    レルシフタに接続された論理と、 該マルチプレクサから符号語を受け取るように接続され
    た複数のレジスタを持つFIFOとを有し、 該複数のレジスタのそれぞれは入力として該インターリ
    ーブド語からのデータを受け取り、かつ、該複数のレジ
    スタ中の少なくとも1つのレジスタは該複数のレジスタ
    中の別のレジスタから符号語を受け取るように接続され
    ることを特徴とする復号器。
  76. 【請求項76】 データを復号するための復号装置であ
    って、 該データを受け取るよう接続されたFIFO構造と、 コンテキストを提供するためのコンテキストモデルと、 該コンテキストモデルに接続された、状態情報を記憶す
    るためのメモリであって、該コンテキストモデルによっ
    て提供された各コンテキストに応じて状態情報を提供す
    るメモリと、 該FIFO構造から符号化データを、該メモリから状態
    情報を受け取るように接続され、該FIFO構造から与
    えられた符号語を、該メモリから与えられた状態情報を
    利用して復号する複数の復号器とを有し、該複数の復号
    器が複数の符号のためのランカウントを提供する復号装
    置。
  77. 【請求項77】 請求項76記載の復号装置において、
    該FIFO構造がコンテキスト及び確率クラスと無関係
    に符号化データを該複数の復号器に供給することを特徴
    とする復号装置。
  78. 【請求項78】 請求項76記載の復号装置において、
    該復号器がランカウントを記憶するためのランカウント
    メモリを有し、該ランカウントメモリが確率クラスに基
    づいてアクセス可能であることを特徴とする復号装置。
  79. 【請求項79】 請求項76記載の復号装置において、
    該FIFO構造が2つの復号器に対しデータを供給する
    ことを特徴とする復号装置。
  80. 【請求項80】 請求項76記載の復号装置において、
    該FIFO構造が各復号器毎に1つずつ複数の出力を有
    することを特徴とする復号装置。
  81. 【請求項81】 請求項80記載の復号装置において、
    該FIFO構造が、1対のマルチプレクサと、各復号器
    へ1つの符号語が確実に供給されるよう該1対のマルチ
    プレクサを選択するための制御論理とを有することを特
    徴とする復号装置。
  82. 【請求項82】 請求項81記載の復号装置において、
    該1対のマルチプレクサが該制御論理により該複数の復
    号器中の1つから受領した要求に基づき選択されること
    を特徴とする復号装置。
  83. 【請求項83】 入力データを符号化するための符号化
    装置であって、 該入力データを受け取るよう接続された、符号化データ
    を複数のストリームとして生成するための符号化ユニッ
    トを有し、符号化データは1組の基準に基づいて該複数
    のストリームに割り当てられ、かつ該複数の符号化デー
    タのストリームを記憶するための、該符号化ユニットに
    接続された一定サイズのメモリを有し、重用度が低い符
    号化データは該一定サイズメモリがオーバーフローする
    ときには捨てられる、符号化装置。
  84. 【請求項84】 請求項83記載の符号化装置におい
    て、該メモリが複数の記憶域を有し、該複数の記憶域の
    それぞれに格納される符号語データが異なった重用度レ
    ベルの符号化データからなることを特徴とする符号化装
    置。
  85. 【請求項85】 請求項84記載の符号化装置におい
    て、ある重用度レベルの符号化データが別の重用度レベ
    ルの符号化データを記憶している少なくとも1つの該メ
    モリの記憶域に格納されることを特徴とする符号化装
    置。
  86. 【請求項86】 請求項85記載の符号化装置におい
    て、該ある重用度レベルの符号化データが該少なくとも
    1つの記憶域内の該別の重用度レベルの符号化データの
    上に重ね書きされることを特徴とする符号化装置。
  87. 【請求項87】 データの符号化中にシステムの複数の
    コンテキストを初期化するための方法であって、 該複数のコンテキストを初期化するステップを有し、こ
    こにおいて該複数のコンテキスト中の各コンテキストは
    カウンタ値に基づいてアクセスされ、 現在コンテキストのPEM状態を取得するステップを有
    し、該PEM状態取得のステップは、 該PEM状態を指示する各コンテキストのための記憶指
    示をアクセスするステップと、 該アクセスされたメモリロケーションが現在動作のため
    に有効か否か判定するため、該現在コンテキストの番号
    を該カウンタ値と比較し、該カウンタ値が該ロケーショ
    ンが初期化済みであることを指示しているときにデータ
    が有効であると判定するステップと、 該コンテキストのために初期PEM状態を用い、該アク
    セスされたメモリロケーションが有効でない時にはコン
    テキストのための現在PEM状態を無視するステップ
    と、 該データが有効ならば該コンテキストのために現在割り
    当てられているPEM状態を用いるステップとを有す
    る、初期化方法。
  88. 【請求項88】 請求項87記載の初期化方法におい
    て、PEM状態が変わったときに新しいPEM状態を書
    き込むステップをさらに有することを特徴とする初期化
    方法。
  89. 【請求項89】 入力データを復号するための復号器で
    あって、 コンテキストビンを提供するためのコンテキストモデル
    と、 該コンテキストビンに基づいて確率状態を提供するため
    の、該コンテキストモデルに接続されたメモリと、 該確率状態に基づいて確率クラスを発生するための、該
    メモリに接続された論理と、 該確率クラスに基づきイネーブル信号を発生するデコー
    ダと、 該デコーダに接続され、かつ該符号化データを受け取る
    ように接続された複数のビットジェネレータとを有し、 該複数のビットジェネレータはそれぞれ少なくとも1つ
    の固有の符号のための専用とされ、該デコーダは該確率
    クラスに基づいて該複数のビットジェネレータ中の1つ
    のビットジェネレータをイネーブルすることにより、該
    1つのビットジェネレータが該符号化データを復号す
    る、復号器。
  90. 【請求項90】 請求項89記載の復号器において、該
    複数のビットジェネレータ中の少なくとも1つのビット
    ジェネレータがR−符号を使ってデータを復号し、該複
    数のビットジェネレータ中の少なくとも1つのビットジ
    ェネレータがR−符号以外の符号を使ってデータを復号
    することを特徴とする復号器。
  91. 【請求項91】 請求項89記載の復号器において、短
    ランレングス用ビットジェネレータがR−符号復号器と
    して働くことを特徴とする復号器。
  92. 【請求項92】 請求項89記載の復号器において、長
    ランレングス用ビットジェネレータが短ランユニットと
    長ランユニットとからなり、該短ランユニットが予め決
    められた第1の長さの符号を扱い、該長ランユニットが
    残りのビットを扱い、該残りのビットに出力すべきビッ
    トがあれば、それを決定することを特徴とする復号器。
  93. 【請求項93】 コンテキストビンを提供するステップ
    と、 該コンテキストビンを用いてメモリをアクセスし確率状
    態を得るステップと、 該確率状態に基づいて確率クラスを生成するステップ
    と、 複数のビットジェネレータ中の1つのビットジェネレー
    タをイネーブルするステップとを有し、該複数のビット
    ジェネレータはそれぞれ少なくとも1つの固有の符号の
    ための専用であって、該少なくとも1つの固有の符号だ
    けが復号に使用されて該1つのビットジェネレータが符
    号化データを復号する、入力データを復号するための復
    号方法。
  94. 【請求項94】 入力データを符号化するための符号化
    器と、 コンテキストビンを提供するためのコンテキストモデル
    と、 該コンテキストビンに基づいて確率状態を提供するため
    の、該コンテキストモデルに接続されたメモリと、 該確率状態に基づいて確率クラスを提供するための、該
    メモリに接続された論理と、 該確率クラスに基づきイネーブル信号を発生するデコー
    ダと、 該デコーダに接続され該入力データを受け取るよう接続
    された複数のビットジェネレータとを有し、該複数のビ
    ットジェネレータはそれぞれ少なくとも1つの固有の符
    号のための専用であって、該デコーダは該確率クラスに
    基づいて該複数のビットジェネレータ中の1つのビット
    ジェネレータをイネーブルすることにより、該1つのビ
    ットジェネレータが該入力データを符号化する、符号化
    器。
  95. 【請求項95】 請求項94記載の符号化器において、
    該複数のビットジェネレータ中の少なくとも1つのビッ
    トジェネレータがR−符号を用いてデータを符号化し、
    該複数のビットジェネレータ中の少なくとも1つのビッ
    トジェネレータがR−符号以外の符号を用いてデータを
    符号化することを特徴とする符号化器。
  96. 【請求項96】 請求項94記載の符号化器において、
    短ランレングス用ビットジェネレータがR−符号符号化
    器として働くことを特徴とする符号化器。
  97. 【請求項97】 請求項94記載の符号化器において、
    長ランレングス用ビットジェネレータが短ランユニット
    と長ランユニットとからなり、該短ランユニットが予め
    決められた第1の長さの符号を扱い、該長ランユニット
    が残りのビットを扱い、該残りのビットに出力すべきビ
    ットがあれば、それを決定することを特徴とする符号化
    器。
  98. 【請求項98】 入力データを符号化する方法であっ
    て、 コンテキストビンを提供するステップと、 該コンテキストビンを用いてメモリをアクセスし確率状
    態を得るステップと、 該確率クラスに基づいて確率クラスを生成するステップ
    と、 複数のビットジェネレータ中の1つのビットジェネレー
    タをイネーブルするステップとを有し、該複数のビット
    ジェネレータはそれぞれ少なくとも1つの符号のための
    専用とされており該少なくとも1つの符号だけが符号化
    に用いられ、該1つのビットジェネレータが該入力デー
    タデータを符号化する、符号化方法。
  99. 【請求項99】 複数の符号語からなる符号化データを
    復号するための方法であって、 各ランカウンタに関連したカウンタにカウント値をロー
    ドするステップを有し、ここにおいて、該カウント値は
    符号化中に新たなランが始まった時に用いられる符号語
    メモリのサイズに対応し、該カウント値は該各ランカウ
    ンタのための新たな符号語がフェッチされた時にロード
    され、かつ符号語がフェッチされるたびに該カウント値
    をデクリメントするステップと、 該カウンタが0までデクリメントした時に該新たな符号
    語に関連したビットジェネレータ状態をクリアするステ
    ップと、を有する復号方法。
  100. 【請求項100】 請求項99記載の復号方法におい
    て、各ランカウンタが1つのPEM状態に対応すること
    を特徴とする復号方法。
  101. 【請求項101】 請求項99記載の復号方法におい
    て、各ランカウンタが1つのコンテキストビンに対応す
    ることを特徴とする復号方法。
  102. 【請求項102】 複数の符号語からなる符号化データ
    を復号するための方法であって、 1つの符号語が要求される度に現在時刻表示を含むカウ
    ンタ値をインクリメントするステップと、 最初の符号語が始まった時に該カウンタ値を記憶時刻表
    示として格納するステップと、 該記憶時刻表示に符号化器メモリのサイズを足したもの
    を現在時刻表示と比較するステップとを有し、 該現在時刻表示のほうが該記憶時刻表示に該符号化器メ
    モリのサイズを足したものより大きい時に、該最初の符
    号語のためのビットジェネレータ状態がクリアされ第2
    の符号語が要求される、復号方法。
  103. 【請求項103】 請求項102記載の復号方法におい
    て、該記憶時刻表示が1つのタイムスタンプからなるこ
    とを特徴とする復号方法。
  104. 【請求項104】 該記憶時刻表示を後続の符号語のた
    めに再使用するステップをさらに有することを特徴とす
    る請求項102記載の復号方法。
  105. 【請求項105】 複数の符号語からなる符号化データ
    を復号するための方法であって、 符号語に対応したインデックスを該符号語が要求された
    時にキューに格納するステップと、 該キュー内の該インデックスのエントリーに無効のマー
    クを付けるステップ;該符号語が完成したならば該符号
    語を該エントリーに格納して該エントリーに有効のマー
    クを付けるステップと、 該キューより復号すべきデータを出力させ、該キューエ
    ントリーが有効であれば該符号語が復号のため出力され
    るステップと、 該キューエントリーからデータを出力させ、その時に該
    キューエントリーに無効のマークが付いているならば該
    データが無効であることを復号器に指示するステップと
    を有し、該無効のマークが付けられたキューからのデー
    タを受け取ると該復号器によりビットジェネレータ状態
    がクリアされる、復号方法。
  106. 【請求項106】 符号化データを復号するための復号
    装置であって、 コンテキストを提供するための、複数の集積回路からな
    るコンテキストモデル機構と、 状態情報を格納し該コンテキストモデル機構から提供さ
    れる各コンテキストに応じて状態情報を提供する、該コ
    ンテキストモデル機構に接続されたメモリと、 該メモリより提供される該状態情報を用いて符号語を復
    号するための、該メモリに接続された複数の復号器とを
    有し、該複数の復号器は複数のR−符号を用いて符号語
    を復号し、該複数のR−符号が最低確率シンボルが後に
    続かない最高確率シンボルの非最大長ランを少なくとも
    1つ含む、復号装置。
  107. 【請求項107】 請求項106記載の復号装置におい
    て、非最大長ランのカウントが一義的に復号可能なプリ
    フィックスを有する、ことを特徴とする復号装置。
  108. 【請求項108】 複数の符号語を有する符号ストリー
    ムを復号するための復号装置であって、 コンテキストを提供するための、複数の集積回路からな
    るコンテキストモデル機構と、 状態情報を格納し該コンテキストモデル機構から提供さ
    れる各コンテキストに応じて状態情報を提供する、該コ
    ンテキストモデル機構に接続されたメモリと、 該メモリより提供される該状態情報を用いて符号語を復
    号するための、該メモリに接続された複数の復号器とを
    有する復号装置。
  109. 【請求項109】 請求項108記載の復号装置におい
    て、該コンテキストモデル機構が、該複数の集積回路中
    の1つの集積回路よりコンテキストを提供する少なくと
    も1つのコンテキストモデルと、該複数の集積回路中の
    別の集積回路よりコンテキストを提供する少なくとも1
    つのコンテキストモデルとを含むことを特徴とする復号
    装置。
  110. 【請求項110】 請求項109記載の復号装置におい
    て、該複数の集積回路中の該1つの集積回路側の該少な
    くとも1つのコンテキストモデルが0次コンテキストモ
    デルを含むことを特徴とする復号装置。
  111. 【請求項111】 請求項108記載の復号装置におい
    て、該複数の集積回路より該メモリへ直接的にコンテキ
    ストが与えられることを特徴とする復号装置。
  112. 【請求項112】 請求項108記載の復号装置におい
    て、第1のコンテキストの第1の部分が1つの集積回路
    によって提供され、該第1のコンテキストの第2の部分
    が別の集積回路より提供されることを特徴とする復号装
    置。
  113. 【請求項113】 請求項17記載の符号化装置におい
    て、該ビットジェネレータのビットジェネレータ状態が
    更新され、該ビットジェネレータが更新後の状態が該メ
    モリに書き込まれる前に再使用されることを特徴とする
    符号化装置。
  114. 【請求項114】 請求項113記載の符号化装置にお
    いて、該ビットジェネレータが1つの読み出し−修正−
    書き込みサイクルの修正ステージ中に再使用されること
    を特徴とする符号化装置。
  115. 【請求項115】 請求項17記載の符号化装置におい
    て、該ビットジェネレータが更新された状態のメモリへ
    の書き込み前に再使用される時に非最小長ランカウント
    を生成することを特徴とする符号化装置。
  116. 【請求項116】 請求項17記載の符号化装置におい
    て、該ビットジェネレータが各ランレングスの後に少な
    くとも符号化されない1ビットが続くように決められた
    R−符号を用いてデータを符号化することにより、同一
    ランレングスの2つの符号語が連続して復号されること
    がないことを特徴とする符号化装置。
  117. 【請求項117】 複数の符号語を有する符号ストリー
    ムを復号するための復号装置であって、 コンテキストを提供するためのコンテキストモデル機構
    と、 状態情報を格納し該コンテキストモデル機構から提供さ
    れる各コンテキストに応じて状態情報を提供する、該コ
    ンテキストモデル機構に接続されたメモリと、 該メモリより提供される該状態情報を用いて符号語を復
    号するための、該メモリに接続された複数の復号器とを
    有し、該複数の復号器中の少なくとも1つの復号器は遅
    延許容型の復号器である復号装置。
  118. 【請求項118】 請求項117記載の復号装置におい
    て、該複数の復号器中の少なくとも1つの復号器が、あ
    る遅延の後に利用可能な復号データに基づいて可変長シ
    フトを行なうことを特徴とする復号装置。
  119. 【請求項119】 請求項117記載の復号装置におい
    て、該複数の復号器がそれぞれ入力として可変長データ
    を受け取ることを特徴とする復号装置。
  120. 【請求項120】 請求項119記載の復号装置におい
    て、該複数の復号器が可変長の入力データを並列的に復
    号することを特徴とする復号装置。
  121. 【請求項121】 請求項117記載の復号装置におい
    て、該複数の復号器の出力が固定長インターリーブド語
    に分割されることを特徴とする復号装置。
JP25379295A 1994-09-30 1995-09-29 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法 Expired - Fee Related JP3272580B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31611694A 1994-09-30 1994-09-30
US08/316116 1994-09-30

Publications (2)

Publication Number Publication Date
JPH08116266A JPH08116266A (ja) 1996-05-07
JP3272580B2 true JP3272580B2 (ja) 2002-04-08

Family

ID=23227538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25379295A Expired - Fee Related JP3272580B2 (ja) 1994-09-30 1995-09-29 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法

Country Status (10)

Country Link
JP (1) JP3272580B2 (ja)
KR (1) KR100240372B1 (ja)
CN (1) CN1136659C (ja)
CA (1) CA2156889C (ja)
DE (1) DE19536401B4 (ja)
FR (1) FR2725330B1 (ja)
GB (1) GB2293735B (ja)
NL (1) NL1001317C2 (ja)
RU (1) RU2117388C1 (ja)
TW (1) TW410311B (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2311705B (en) * 1995-08-31 1998-04-15 Ricoh Kk Method and apparatus for compressing arbitrary data
US5654703A (en) * 1996-06-17 1997-08-05 Hewlett-Packard Company Parallel data compression and decompression
US5963716A (en) * 1996-12-02 1999-10-05 Hewlett-Packard Company Bi-directional data stream decompression
US6222468B1 (en) * 1998-06-04 2001-04-24 Ricoh Company, Ltd. Adaptive coding with adaptive speed
KR100947399B1 (ko) 2001-11-22 2010-03-12 파나소닉 주식회사 부호화 방법
JP4484526B2 (ja) * 2002-04-08 2010-06-16 株式会社エイティング ネットワークゲーム方法、ネットワークゲーム端末機及びサーバー
US7555540B2 (en) * 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
US7395490B2 (en) * 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7346832B2 (en) * 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7991610B2 (en) 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US7788106B2 (en) 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
KR100818268B1 (ko) * 2005-04-14 2008-04-02 삼성전자주식회사 오디오 데이터 부호화 및 복호화 장치와 방법
US7716551B2 (en) * 2005-12-07 2010-05-11 Microsoft Corporation Feedback and frame synchronization between media encoders and decoders
KR100717587B1 (ko) * 2006-07-05 2007-05-15 주식회사 대우일렉트로닉스 광정보 검출 방법 및 장치, 광정보 처리장치
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
JP4769305B2 (ja) 2006-11-14 2011-09-07 日本電信電話株式会社 画像信号符号化方法及び復号方法、情報源符号化及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体
CN101247496B (zh) * 2007-02-13 2012-10-10 华晶科技股份有限公司 动态调整影像讯框的方法
KR100842042B1 (ko) 2007-07-16 2008-06-30 충남대학교산학협력단 암호화된 실행코드에 대하여 동적으로 복호화할 수 있게 한코드블록 암호화 방법
CA2730202C (en) * 2008-07-11 2015-01-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method for encoding a symbol using subsymbols and multiple codebooks
RU2546325C2 (ru) * 2009-05-29 2015-04-10 Мицубиси Электрик Корпорейшн Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений
CN102055483B (zh) * 2009-10-29 2013-05-08 鸿富锦精密工业(深圳)有限公司 熵解码装置
KR101631944B1 (ko) 2009-10-30 2016-06-20 삼성전자주식회사 복호화 가속화를 위한 엔트로피 부호화 방법과 그 장치 및 엔트로피 복호화 방법과 그 장치
EP2362657B1 (en) * 2010-02-18 2013-04-24 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US8769686B2 (en) 2010-02-26 2014-07-01 Futurewei Technologies, Inc. System and method for securing wireless transmissions
EP2559166B1 (en) * 2010-04-13 2017-11-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
CA2799763A1 (en) * 2010-07-13 2012-01-19 Research In Motion Limited Methods and devices for data compression using context-based coding order
KR101676477B1 (ko) * 2010-07-21 2016-11-15 삼성전자주식회사 컨텍스트 기반의 무손실 부호화 장치 및 방법, 그리고 복호화 장치 및 방법
US8650456B2 (en) * 2010-09-08 2014-02-11 Marvell World Trade Ltd. Decoder based data recovery
US8902988B2 (en) * 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
CN102457284B (zh) * 2010-10-29 2014-09-03 池勇潮 数字数据压缩/解压缩方法及其系统
JP5570437B2 (ja) * 2011-01-12 2014-08-13 三菱電機株式会社 エントロピー符号化装置、エントロピー復号装置、エントロピー符号化方法及びエントロピー復号方法
EP3349360B1 (en) 2011-01-14 2019-09-04 GE Video Compression, LLC Entropy encoding and decoding scheme
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
WO2013050612A1 (en) * 2011-10-06 2013-04-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding buffer arrangement
JP2013214832A (ja) * 2012-03-30 2013-10-17 Fujitsu Ltd 圧縮及び伸長システム、圧縮装置、伸長装置、圧縮及び伸長方法、圧縮プログラム及び伸長プログラム
JP6055548B2 (ja) * 2012-09-28 2016-12-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) データストリームにおいてデータパターンを検出する装置、方法、及びネットワークサーバ
US9990202B2 (en) 2013-06-28 2018-06-05 Intel Corporation Packed data element predication processors, methods, systems, and instructions
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
CN105828083A (zh) * 2015-01-06 2016-08-03 中兴通讯股份有限公司 数据流的解码方法及装置
GB2539239B (en) * 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
JP2019515592A (ja) 2016-05-10 2019-06-06 華為技術有限公司Huawei Technologies Co.,Ltd. データ送信方法、データ受信方法、送信デバイス、および受信デバイス
CN109075806B (zh) * 2016-05-13 2023-07-18 英特尔公司 极化码构造和编码
JP7027706B2 (ja) 2017-06-15 2022-03-02 ソニーグループ株式会社 送信装置、受信装置、送信方法、受信方法及び記録媒体
CN107623524B (zh) * 2017-07-01 2020-07-31 中山大学 一种基于硬件的Huffman编码方法及系统
CN111384963B (zh) * 2018-12-28 2022-07-12 上海寒武纪信息科技有限公司 数据压缩解压装置和数据解压方法
US11139827B2 (en) 2019-03-15 2021-10-05 Samsung Electronics Co., Ltd. Conditional transcoding for encoded data
TWI825305B (zh) * 2019-04-16 2023-12-11 南韓商三星電子股份有限公司 轉換編碼器及進行轉換編碼的方法及製品
CN110635807B (zh) * 2019-08-05 2022-10-21 湖南遥昇通信技术有限公司 一种数据编码方法及译码方法
US11146433B2 (en) * 2020-03-11 2021-10-12 Nxp B.V. High data rate transmission using minimum energy coding with ultra wide band modulation
CN112383313B (zh) * 2020-10-10 2023-08-04 中科驭数(北京)科技有限公司 一种并行数据解码装置及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3394352A (en) * 1965-07-22 1968-07-23 Electronic Image Systems Corp Method of and apparatus for code communication
CA1291820C (en) * 1986-09-15 1991-11-05 William B. Pennebaker Probability estimation based on decision history
CA1291821C (en) * 1986-09-15 1991-11-05 Glen G. Langdon, Jr. Arithmetic coding encoder and decoder system
US5097261A (en) * 1989-11-22 1992-03-17 International Business Machines Corporation Data compression for recording on a record medium
DE69111633T2 (de) * 1990-01-30 1996-04-04 Philips Electronics Nv Vorrichtungen zur variablen Längen-Kodierung und Dekodierung von digitalen Daten.
US5045852A (en) * 1990-03-30 1991-09-03 International Business Machines Corporation Dynamic model selection during data compression
KR950000286B1 (ko) * 1992-05-28 1995-01-12 삼성전자 주식회사 산술 부호화 장치 및 방법
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5475388A (en) * 1992-08-17 1995-12-12 Ricoh Corporation Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding
GB2272612B (en) * 1992-11-06 1996-05-01 Roke Manor Research Improvements in or relating to ATM signal processors
KR0134166B1 (ko) * 1992-11-24 1998-04-22 모리시타 요이찌 영상신호기록장치
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5414423A (en) * 1993-04-29 1995-05-09 International Business Machines Corporation Stabilization of probability estimates by conditioning on prior decisions of a given context

Also Published As

Publication number Publication date
FR2725330B1 (fr) 1999-01-22
JPH08116266A (ja) 1996-05-07
DE19536401B4 (de) 2006-07-20
CA2156889C (en) 1999-11-02
GB2293735B (en) 1997-10-22
NL1001317C2 (nl) 1998-01-21
GB2293735A (en) 1996-04-03
DE19536401A1 (de) 1996-04-04
RU2117388C1 (ru) 1998-08-10
CN1136659C (zh) 2004-01-28
FR2725330A1 (fr) 1996-04-05
KR100240372B1 (ko) 2000-01-15
GB9518375D0 (en) 1995-11-08
CN1133512A (zh) 1996-10-16
KR960012741A (ko) 1996-04-20
TW410311B (en) 2000-11-01
NL1001317A1 (nl) 1996-04-01
CA2156889A1 (en) 1996-03-31

Similar Documents

Publication Publication Date Title
JP3272580B2 (ja) 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法
US5717394A (en) Method and apparatus for encoding and decoding data
US5583500A (en) Method and apparatus for parallel encoding and decoding of data
US5381145A (en) Method and apparatus for parallel decoding and encoding of data
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6819271B2 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
CN114556956A (zh) 使用旁路子流和经熵编码子流的低时延编码
US6829695B1 (en) Enhanced boolean processor with parallel input
GB2306279A (en) Apparatus for decoding data
JPH07240720A (ja) チャネル変調方法、誤り訂正方法、状態マシン生成方法、コーディング方法、チャネル変調装置、誤り訂正装置
JP2831888B2 (ja) Hdtv復号化器
US5663726A (en) High speed variable-length decoder arrangement with reduced memory requirements for tag stream buffering
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
JPH08251586A (ja) ランレングス復号化装置
US5666116A (en) High speed variable-length decoder arrangement
JP3230933B2 (ja) データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ
US11431978B2 (en) Video decoding method and video decoding device for improving decoding efficiency
Boliek et al. Very high speed entropy coding
CA2273144C (en) Apparatus and system for decoding data
Howard Interleaving entropy codes
JP3032161B2 (ja) 可変長復号化器のメモリインタフェース回路
CN101213754B (zh) 用于改进的多媒体解码器的方法和设备
JP3032160B2 (ja) 可変長復号化器における出力デ−タの再配列方法及び回路
JPH11205154A (ja) 可変長コードの整列化装置
JP3293382B2 (ja) データ圧縮装置及びデータ伸長装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080125

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100125

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20140125

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees