JPH0865171A - データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、リアルタイムビデオ装置、エンコーディング装置、及びエントロピー・デコーダ - Google Patents

データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、リアルタイムビデオ装置、エンコーディング装置、及びエントロピー・デコーダ

Info

Publication number
JPH0865171A
JPH0865171A JP19509094A JP19509094A JPH0865171A JP H0865171 A JPH0865171 A JP H0865171A JP 19509094 A JP19509094 A JP 19509094A JP 19509094 A JP19509094 A JP 19509094A JP H0865171 A JPH0865171 A JP H0865171A
Authority
JP
Japan
Prior art keywords
data
decoding
code
probability
stream
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.)
Granted
Application number
JP19509094A
Other languages
English (en)
Other versions
JP3230933B2 (ja
Inventor
Eru Shiyuwarutsu Edowaado
エル シュワルツ エドワード
Dei Aren Jieimusu
ディ アレン ジェイムス
Pii Booritsuku Maatein
ピィ ボーリック マーティン
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
Priority to JP19509094A priority Critical patent/JP3230933B2/ja
Publication of JPH0865171A publication Critical patent/JPH0865171A/ja
Application granted granted Critical
Publication of JP3230933B2 publication Critical patent/JP3230933B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【構成】 チャネル・コントロール221によりコード
化データストリームはコンテキスト・ビン別の複数のデ
ータストリームに再編成される。各ストリームはビット
ストリーム・ジェネレータ(BG)222,223,2
24...へ入力される。BG222と確率推定モジュ
ール(PEM)225の組、BG223とPEM226
の組、BG224とPET227の組等々が、それぞれ
独立して特定のコンテキスト・ビンのデータストリーム
のデコードを行ない、並列デコーディングを実現する。
コンテキスト・モデル(CM)は、適切な順序でPEM
225,226,227,...からのデコードデータ
を選択して伸長データストリームを出力する。 【効果】 並列化により高速デコーディングが可能にな
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ圧縮/伸長装置
の分野に係り、特に、圧縮/伸長装置においてデータの
並列エンコーディング及びデコーディングのための方法
及び装置に関する。
【0002】
【従来の技術】データ圧縮は、大量のデータの記憶及び
伝送のために非常に有用なツールである。例えば、圧縮
を利用してイメージ再現に必要なビット数を減らすこと
によって、文書のファクシミリ伝送のようなイメージ伝
送に要する時間は飛躍的に減少する。
【0003】従来から非常に様々なデータ圧縮手法があ
る。圧縮手法は、損失性コーディングと非損失性コーデ
ィングに大分類される。損失性コーディングは、コーデ
ィングによって情報が失われるので、オリジナル画像の
完全な再現は保証されない。損失性コーディングの目標
は、オリジナル画像に対する変化を、問題にならない、
あるいは気付かれない程度にすることである。非損失性
圧縮においては、全ての情報が保存され、データは完全
に復元できるように圧縮される。
【0004】非損失性圧縮の場合、入力シンボルは出力
符号語に変換される。圧縮がうまくいったときは、符号
語は入力シンボルより少ないビット数で表現される。非
損失性コーディング法には、辞書コーディング法(例え
ばLenpel-Ziv)、ランレングス・コーディング、計数
(enumerative)コーディング、及びエントロピー・コー
ディングがある。ランレングス・コーディングの詳細に
ついては『H.Meyr,H.G.Roskolsky,and T.S.H
uang,”Optimum Run Length Codes”,IEEE T
ransactions on Communications, Vol.COM-2
2,No.6,June 1974,pp.826-835』、
『G.G.Langdon,Jr.,”AnAdaptive Run-Len
gth Coding Algorithm”, IBM TechnicalDisclo
sure Bulletin, Vol.26,No.7B,December 1
983, pp.3783-3785』(ダイナミックに変化
するk値のR2(k)コードを使用するコーディング方式は
Langdonによる)、『S.W.Golomb,”Run-Length
Encoding,” IEEE Trans., IT-12,(July
1966),pp.399』を参照されたい。ランレング
ス・コードとそのファクシミリ伝送に関連した利用に関
する詳細については『M.Takagi and T.Tsuda,”
A Highly Efficient Run-Length Coding Scheme
For Facsimile Transmission”Electronics andC
ommunications in Japan,Vol.58-A,No.2,1
9752pp.30-38』を参照されたい。また1982
年4月13日発行米国特許第4,325,085号「Met
hod and Apparatus for Adaptive Facsimile Compr
ession Usinga Two Dimensional Maximum Likelyh
ood Predictor(R.P.Gooch)」も参照されたい。
【0005】エントロピー・コーディングは、なんらか
の非損失性(したがって完全な再現が可能な)コーディ
ング法により、既知又は推定のシンボル確率を用いてデ
ータをエントロピー限界近くまで圧縮を試みるようにし
てなるものである。エントロピー・コードには、ハフマ
ン・コード、算術コード及びバイナリ・エントロピー・
コードが含まれる。ハフマン・コーディングは、各シン
ボルに対し整数個のビットを生成する固定長−可変長コ
ードを用いる。しかし、ハフマン・コーディングは1ビ
ット未満ではシンボルを符号化できないので、確率が5
0%を超える単一シンボルを効率的に符号化できない。
算術コードは、無限精度浮動小数点数を必要とする理論
的コーディング手法を基礎としている。しかしながら、
算術コーダは有限精度の演算によってしか実現できない
のであるから、符号化効率は理論的な最大効率より下が
る。実際的な算術コーダ、例えばIBM社のQコーダ
は、付加的な手法を用いることにより、圧縮効率を犠牲
にして、ソフトウエアを高速化し、あるいはハードウエ
アを減らしている。Qコーダはバイナリ算術コーダで、
乗算は加算に置き換えられ、確率値は離散値に制限さ
れ、確率推定値はビット出力時に更新される。
【0006】バイナリ・エントロピー・コーダは非損失
性の(つまり完全な再現が可能な)符号器であり、最高
確率のシンボル(MPS)及び最低確率のシンボル(L
PS)として表現されることの多いバイナリ(yes/
no)デシジョンしか扱えない。バイナリ・エントロピ
ー・コーダの例には、IBM社のQコーダと、Bコーダ
と呼ばれるコーダがある。このBコーダは、圧縮のため
に有限状態マシンを利用するバイナリ・エントロピー・
コーダである。Bコーダについての詳細については、係
属中の米国特許出願07/931,156号(1992
年8月17日受理、” Method and Apparatus For
Entropy Coding”)を参照されたい。
【0007】図1はバイナリ・エントロピー・コーダを
用いた従来の圧縮/伸長システムのブロック図を示す。
コーディングの場合、データはコンテキスト(contex
t)モデル(CM)101に入力される。CM101は
入力データをバイナリ・デシジョンの集合または系列に
変換し、かつ各デシジョンに対するコンテキスト・ビン
(context bin)を提供する。バイナリ・デシジョンの
系列とそれらに関連したコンテキスト・ビンの両方がC
M101から確率推定モジュール(PEM)102へ出
力される。PEM102は各コンテキスト・ビンを受け
取って、各バイナリ・デシジョンの確率推定値を生成す
る。実際的な確率推定値は、通常、Pクラスと呼ばれる
クラスによって表現される。各Pクラスは、ある範囲
(range)の確率に用いられる。PEM102はまた、
バイナリ・デシジョン(結果)がその高確率の状態であ
るか否か(すなわち、そのデシジョンがMPSに相当す
るか否か)の判定もする。ビットストリーム・ジェネレ
ータ(BG)モジュール103は、その入力として、確
率推定値(すなわちPクラス)と、バイナリ・デシジョ
ンの確率が高いか否かの判定結果とを受け取る。そし
て、BGモジュール103は、オリジナル入力データを
表わす圧縮データ、すなわち0または1個以上のビット
を出力する。
【0008】デコーディングの場合、CM104はコン
テキスト・ビンをPEMに与え、PEMは該コンテキス
ト・ビンに基づき確率クラス(Pクラス)をBGモジュ
ール106に与える。BGモジュール106は、その確
率クラスを受け取るように接続されている。この確率ク
ラスに応じて、BGモジュール106はバイナリ・デシ
ジョン(すなわちイベント)がその最高確率の状態であ
るか否かを示す1ビットを返す。PEM105は、この
ビットを受け取り、同ビットに基づいて確率推定値を更
新し、その結果をCM104へ返す。CM104は、こ
の返されたビットを受け取り、それを用いてオリジナル
データを生成し、かつ次のバイナリ・デシジョンのため
のコンテキスト・ビンを更新する。
【0009】コンテキスト・モデルは通常、特定用途向
けである。どのような種類のデータもビットに分解でき
るので、バイナリ・エントロピー・コーダは、適当なコ
ンテキスト・モデルを用いることにより、どのようなデ
ータにも利用できる。コンテキスト・モデルの一例は、
JBIG規格により与えられる(ISO/IECInter
national Standard,”Coded Representation of Pi
cture and AudioInformation-Progressive Bi-leve
l Image Compresion Standard”)。
【0010】「モデル・テンプレートは、コード化しよ
うとする画素の周辺を定義する。これら周辺の画素の値
と、微分レイヤの空間位相とで、一つのコンテキストを
定義する。」 コンテキスト・モデルのもう一つの例はJPEG規格に
より与えられる (Digital Compression and Coding of Continuous
-tone Still Images.ISO/IEC internationa
l Standard)。
【0011】コンテキスト・モデルは特定用途向けであ
るので、汎用のコーダは確率推定モジュールとビットス
トリーム・ジェネレータだけを考慮して作られる。ある
種の確率推定モジュールとビットストリーム・モジュー
ルとは代替可能である。別の確率推定モジュールは、あ
る特定のビットストリーム・ジェネレータにのみ格別に
依存する。例えば、IBM社のQコーダは確率推定モジ
ュールとビットストリーム・ジェネレータとを組み合わ
せたものである。Bコーダはビットストリーム・ジェネ
レータにすぎない。したがって、Bコーダは任意の確率
推定モジュールと一緒に使用できる。
【0012】IBM社のQコーダやBコーダのような、
バイナリ・エントロピー・コードを用いるデコーダの問
題点は、ハードウエアで実現したとしても速度が遅いこ
とである。それらの動作には、単一の大きな低速フィー
ドバックループが必要になる。デコーディング・プロセ
スを書き直すために、コンテキスト・モデルは過去のデ
コードしたデータを用いてコンテキストを生成する。確
率推定モジュールは、このコンテキストを用いて確率ク
ラスを生成する。ビットストリーム・ジェネレータは、
この確率クラスと圧縮データを用いて、次のビットが、
ありそうな結果であるか、ありそうでない結果であるか
(likely or unlikely result)を判定する。確率推定
モジュールは、この「ありそうな/ありそうでない結
果」を用いて結果ビットを生成し(かつ、コンテキスト
に対する確率推定を更新する)。この結果ビットは、コ
ンテキスト・モデルによって、その過去のデータの履歴
を更新するために用いられる。これらのステップがすべ
て、1ビットのデコーディングのために必要とされる。
コンテキスト・モデルは結果ビットの履歴を更新するま
では次のコンテキストを提供できないので、次ビットの
デコーディングは待たなければならない。そのため、従
来は、単一のコードデータストリームの並列デコーディ
ングは行なわれていない。圧縮データのデコーディング
速度を上げるには、データを並列にデコードすることが
望まれる。
【0013】
【発明が解決しようとする課題】よって、本発明の主た
る目的は、高速デコーディングを実現することである
が、この目的及び他の多くの目的の詳細は以下の実施例
に関連した説明によって明白になろう。
【0014】
【課題を解決するための手段】本発明は、コード化デー
タのデコーディングに並列化を導入する。本発明の一態
様によれば、デコーディング装置は複数のコンテキスト
・ビンを並列処理する構成を持ち、コード化データスト
リームはコンテキスト・ビンに対応した複数のデータス
トリームに再編成され、独立して動作する複数組のビッ
トストリーム・ジェネレータと確率推定モジュールの組
合せに送られる。本発明のもう一つの態様によれば、デ
コーディング装置は、別々の確率クラスに対応付けられ
た複数のビットストリーム・ジェネレータにより、確率
クラスに従ってコード化データストリームが並列処理さ
れる構成とされる。
【0015】なお、課題を解決するための本発明の上記
ならびに他の手段については、実施例に関連した記述中
において詳細に説明する。
【0016】
【作用】コード化データストリームが並列処理によって
デコードされるため、従来に比べデコーディング速度を
飛躍的に増加させることができる。
【0017】なお、本発明の上記作用及び他の作用につ
いては、実施例に関連した記述中において詳細に説明す
る。
【0018】
【実施例】本発明はデータを並列にエンコード及びデコ
ードするための方法及び装置を提供する。本発明は、複
数ビットからなるデータストリームを圧縮する装置を提
供する。この装置は、データストリームを受け取る入力
チャネルを有する。この装置はまた、データストリーム
の各ビットをデコードするデコーダを有し、データスト
リーム中の符号語の少なくとも2語が同時にデコードさ
れることにより、データストリームは並列にデコードさ
れる。
【0019】本発明は、一態様においてはコンテキスト
・ビンを並列に処理し、もう一つの態様では確率クラス
を並列に処理する。
【0020】本発明において、コード化されたデータは
多数のビットストリーム・ジェネレータに与えられる。
一態様では、多数のチャネルが用いられる。もう一つの
態様では単一の非インターリーブ(non-interleaved)
チャネルが用いられる。別の態様では単一のインターリ
ーブ(interleaved)チャネルが用いられる。
【0021】本発明は、本発明の並列デコーディング/
エンコーディング装置に関連したRコーダの利用法を提
供する。本発明のRコーダは、少なくとも1種類のRn
(k)コードと一緒にR2(k)コードを使用する。ただしn
は自然数である。本発明のRコーダは、一態様におい
て、R2(k)コードとR3(k)コードを使用する。
【0022】さて、データの並列エンコーディング/デ
コーディング方法及び装置について述べる。以下の説明
において、特定のビット数、コーダ数、確率、データの
種類といった様々な具体例を提示するが、これは本発明
の好適な実施例の理解を深めるためのものである。当業
者には、これらの具体例によらずに本発明を具体化でき
ることは明白であろう。また、本発明を無用に難解にす
ることを回避するため、周知の回路については詳細には
示さずブロック図の形で示した。
【0023】〈並列デコーディングの概要〉本発明は、
エンコードされたデータを並列に非損失でデコードする
装置を提供する。本発明は、殆どのエントロピー圧縮装
置でコンテキスト・モデルとデコーダとの間のフィード
バックループがネックになっているとの認識に基づいて
いる。本発明においては、複数のコーダをある一つのコ
ンテキスト・ビンに専念させることによって、このフィ
ードバックループを分解する。その結果、コンテキスト
・モデル内のより小さな、より高速のフィードバックル
ープ及び装置に対する符号語の入力速度のみによって装
置の速度が決まってくる。本発明は、コンテキスト・モ
デルが実質的にコード化データストリームを各コンテキ
スト・ビンにつき1個ずつの、いくつかの異なったデー
タストリームに再編成することを考えることにより、複
数のコーダとコンテキスト・モデルとの間のデカップリ
ング(decoupling)を実現する。コード化データを、本
来のデータストリームの順序ではなくコンテキスト・ビ
ンの順序で取得することによって、複数のコーダはコン
テキスト・モデルからのフィードバックを待たずにコー
ド化データの任意のものまたは全部をデコードすること
ができる(これらストリームは、コンテキスト・ビン単
位で生成されるが、確率クラス毎に生成してもよい)。
【0024】ここで、従来技術と対比して、本発明の並
列デコーディングにつき説明する。図2は、入力バッフ
ァ201がコード化データとデコーダ202からのフィ
ードバック信号を受け取るように接続された従来のデコ
ーダを示している。入力バッファ201は、フィードバ
ック信号を通じてデコーダより出される要求に応答して
コード化データをデコーダ202へ送る。デコーダ20
2はコード化データを、そのコンテキストと確率推定値
に従ってデコードし、デコードデータをコンテキスト・
モデル203へ供給し、このコンテキスト・モデル20
3はデコードデータを出力する。デコーダ202がデコ
ードデータをコンテキスト・モデルへ送ったならば、コ
ンテキスト・モデル203はコンテキストを更新し、次
のビットのデコーディングを開始するために必要な情報
をフィードバック信号によりデコーダ202へ送ること
ができる。そして、デコーダ202はフィードバック信
号を用いて入力バッファ201に対してコード化データ
を要求する。このように、2つのフィードバックループ
がシーケンシャルに動作してコード化データストリーム
をデコードする。
【0025】図3は、従来の低速フィードバックループ
のない、本発明のデコーダを示している。図2における
と同様、入力バッファ204はコード化データ(すなわ
ち符号語)とデコーダ205からのフィードバック信号
を受け取り、コード化データをコンテキスト・ビン順に
本発明のデコーダ205へ供給し、このデコーダ205
はコード化データをデコードする。デコーダ250は、
各コンテキスト・ビンに対して1個ずつの、複数個のデ
コーダ205A,205B,205C,...からなる。
デコーダ205中の複数のデコーダ205A,205
B,205C,... のそれぞれは、その対応したコンテ
キスト・ビンのコード化データを入力バッファ204よ
り供給される。各デコーダ205A,205B,205
C,...は、そのコンテキスト・ビンのデコードデータ
を送出する。コンテキスト・モデルは、コード化データ
と特定のコンテキスト・ビンとを関連付ける必要がな
い。デコーダデータは、デコーダ205によってデコー
ドデータメモリ207(207A,207B,207
C,...)へ送られる。
【0026】コンテキスト・モデル206は、独立に動
作しつつ、フィードバック信号をデコードデータメモリ
207(207A,207B,207C,...)へ送出
し、この信号に応答してデコードデータメモリ207
(207A,207B,207C,...)より出る既に
デコードされたデータを受け取るように接続されてい
る。したがって、2つの独立したフィードバックループ
がある。一つはデコーダ205と入力バッファ204の
間のもので、もう一つはコンテキスト・モデル206と
デコードデータメモリ207の間のものである。大きな
フィードバックループをなくしたため、デコーダ205
内の複数のデコーダ205A,205B,205
C,...は、それぞれの関連する符号語を入力バッファ
204より受け取って直ぐにデコードすることができ
る。
【0027】コンテキスト・モデルはコーディング装置
のメモリ部を提供し、このメモリに基づいてデータの集
合(例えば画像)を種々のカテゴリ(例えばコンテキス
ト・ビン)に分割する。本発明において、コンテキスト
・ビンは独立したデータ集合と考えられる。ある実施例
では、各コンテキスト・ビンは、それ独自の確率推定モ
デルを持つ。よって、各コンテキスト・ビンは異なった
確率推定モデル及び/またはビットストリーム・ジェネ
レータを使用できる。別の実施例では、確率推定モデル
が共用され、各コンテキスト・ビンは固有の状態(stat
e)を持つことができる。
【0028】本発明において、コンテキスト・モデルは
データ(例えば画像)をいくつかのデータストリームに
分割する。言い換えれば、コンテキスト・モデルはデー
タの集合または画像を、各コンテキスト・ビン毎に一つ
ずつの、複数のデータストリームに再編成する。ある実
施例では、各コーダは、ある特定のコンテキスト・ビン
に対し専用とされる。
【0029】コーダをある特定のコンテキスト・ビンの
専用にすることにより、コンテキスト・モデルとコーダ
との間のフィードバックループを除去できる。なお、フ
ィードバックループが除去される理由は、前のビットは
次のビットと同一ビンのもので、したがって同一コンテ
キストであるので、各コーダは次のビットをデコードす
る前に前のビットのコンテキストの指示を受け取る必要
がないためである。換言すれば、次のビットのデコード
が可能になる前に完了させなければならないコンテキス
ト・フィードバックはない。
【0030】本発明は各コンテキスト・ビンより、個々
のコード化データストリームを並列に送出させるので、
全てのコンテキスト・ビンのビットがビットストリーム
・ジェネレータに並列に受け取られる。ビットストリー
ム・ジェネレータのそれぞれはバイナリ・デシジョンが
その確率の高い状態であるか否かを示す1ビットを返
し、確率推定モジュールはこのビットを用いてデコード
されたビット(すなわちバイナリ・デシジョン)を返
す。コンテキスト・モデルは、ビットストリーム・ジェ
ネレータからのデコードされたビットを適当な順序で選
択してデコードデータのストリームを出力することによ
り、オリジナルデータを再生する。すなわち、コンテキ
スト・モデルは、異なったコードストリームから、マル
チプレクサと同様の方法でデコード結果を選ぶだけであ
る。したがって、コード化データを、特殊な順序(例え
ばラスタースキャン順)でなく、コンテキスト・ビン
(またはクラス)による順序で取得することにより、コ
ーダは、コンテキスト・モデルからのフィードバックを
待つことなく、一部あるいは全部のコンテキスト・ビン
に対応したコード化データをデコードすることができ
る。なお、確率推定モデルは本発明によって除去されな
いので、確率推定値のフィードバックループは残る。
【0031】本発明の並列デコーディング装置は多様な
実施方法が存在する。ある実施例では、複数のコンテキ
スト・ビンに対応したコード化データストリームを、様
々なコーダの要求に合わせて順序付けられた一つのスト
リームにインターリーブすることができる。本発明の現
時点での好適実施例では、コード化データは、それがシ
リアルにデコーダに送られる場合であっても、各コーダ
にコンスタントにデータが供給されるように順序付けら
れる。
【0032】集積回路で安価に複製可能な、小さな単純
なコーダを使用して、コード化データを素早く並列にデ
コードすることができる。ある実施例では、フィールド
・プログラマブル・ゲートアレイ(field programmable
gate array,FPGA)チップまたは標準セル特定用
途向け集積回路(ASIC)チップを使用し、ハードウ
エアでコーダが実現される。並列化と単純なビットスト
リーム・ジェネレータの組合せによって、従来のデコー
ディング装置の圧縮効率を維持しつつ、コード化データ
のデコーディングを、従来のデコーダ以上の速度で行な
うことを可能にする。
【0033】バイナリ・エントロピー・コードは複数の
コンテキスト・ビンと確率推定状態(クラス)を用い
る。本発明の方法及び装置は、並列化によって、コンテ
キスト・ビンの並列処理、または確率クラスの並列処理
を可能にする。コンテキスト・ビンを並列処理する時に
は、各ビットストリーム・ジェネレータに一つの確率推
定モジュールが関係付けられる。確率推定モジュール
は、関係したビットストリーム・ジェネレータに対し
て、入力符号語からデータストリームを生成するために
どのコードを使用するかを指示する。かかる装置の一例
が図4に示されており、この図では、コード化データが
チャネル・コントロール221に入力される。チャネル
・コントロール221はコード化データを受け取って、
複数のビットストリーム・ジェネレータ(BG222,
BG223,BG224,...)のそれぞれに送る。こ
れらビットストリーム・ジェネレータのそれぞれは、コ
ード化データを受け取り、符号語が高確率の状態である
か否かの結果を、関係付けられた確率推定モジュールに
対し、その確率推定モジュール(PEM)により与えら
れた確率クラスに応じて提供するように接続されてい
る。PEM225,226,227,...は、BG22
2,223,224,...にそれぞれ接続されている。
各ビットストリーム・ジェネレータは、互いに独立に動
作できるが、それは常に同じコンテキスト・ビンを持つ
コード化データをデコードしているからである。コンテ
キスト・モデル228は、確率推定モジュールのそれぞ
れに接続され、アプリケーションによっ決まった順序で
デコードデータを得られるように確率推定モジュールを
選択する。このようにして、コンテキスト・ビンを並列
処理することによりデコードデータが生成される。
【0034】他方、確率クラスを並列に処理する時に
は、コンテキスト・モデルと確率推定モデルとが組み合
わされる。この場合、各ビットストリーム・ジェネレー
タは、ある特定の確率クラスに割り当てられ、その結果
の情報を受け取る。確率クラスを並列に処理する装置の
一例が図5に示されている。図5において、コード化デ
ータはチャネルコントロール231に入力され、それを
受け取るように接続された複数のビットストリーム・ジ
ェネレータ(BG232,BG233,BG23
4,...)の一つへ送られる。ビットストリーム・ジェ
ネレータのそれぞれはPEM235に接続されている。
PEM235はCM236にも接続されている。この構
成において、ビットストリーム・ジェネレータのそれぞ
れがコード化データをデコードし、デコーディングの結
果はPEM235によって(CM236によるのではな
い)選択される。ビットストリーム・ジェネレータのそ
れぞれは、ある確率クラスに関係するソースからコード
化データを受け取る(すなわち、ここでは、コード化デ
ータを任意のコンテキスト・ビンから受け取ることが可
能である)。PEM235は確率クラスを用いてビット
ストリーム・ジェネレータを選択する。確率クラスは、
それに対してCM236により与えられたコンテキスト
・ビンによって指示される。このようにして、確率クラ
スの並列処理によりデコードデータが生成される。
【0035】コンテキスト及び確率クラスを並列処理す
ることにより、従来のデコーダのようにコードストリー
ムをシリアルに並べる必要がなくなる。
【0036】なお、本発明は、画像データを含む、あら
ゆる種類のデータに適用できることに注意されたい。
【0037】〈並列デコーディング用のコード種類とビ
ットストリーム・ジェネレータ〉本発明は、Qコーダや
Bコーダといった既存のコーダを、並列構成のビットス
トリーム生成要素として使用することができる。しか
し、他のコード及びコーダを使用してもよい。本発明に
採用されるコーダとそのコードは、単純なものである。
【0038】本発明においては、複雑なコードではな
く、Qコーダに用いられている算術コードやBコーダに
用いられているマルチステート(multi-state)コード
のような単純なコードのビットストリーム・ジェネレー
タを使用して、効果をもたらす。単純なコードの利点
は、複雑なコードに比べ、ハードウエアが非常に高速・
単純になり、かつシリコンが少なくて済むことである。
もう一つの利点は、デコーディング効率を向上できるこ
とである。有限量の状態情報を用いるコードは、あらゆ
る確率に対しシャノンのエントロピー限界を完全には満
たすことはできない。単一のビットストリーム・ジェネ
レータで複数の確率またはコンテキストを扱うことを可
能にするコードは、符号化効率を下げるよう制限しなけ
ればならない。この複数のコンテキストまたは確率クラ
スのために必要な制限を取り除くならば、シャノンのエ
ントロピー限界をほぼ満足するコードを使用可能にな
る。
【0039】本発明の並列デコーディング方式に利用で
きる2つのコードが、RコードとAコードである。
【0040】〈Rコード〉本発明の現時点の好適な実施
例に採用されるコード(及びコーダ)は、Rコードと呼
ばれる。Rコードは、Golombのランレングスコード
(すなわちR2(k)コード)を含む適応的コードである。
現時点での好適実施例においては、多くの異なる確率を
一つのデコーダ・デザインにより扱うことができるよう
に、Rコードのパラメータが決められている。さらに、
本発明のRコードは単純・高速のハードウエアによって
デコードできる。
【0041】本発明においては、RコードがRコーダに
よってエンコーディングまたはデコーディングを行なう
ために用いられる。現時点の好適実施例においては、R
コーダはビットストリーム・ジェネレータと確率推定モ
ジュールを組合せたものである。例えば図1において言
うならば、Rコーダは、確率推定モジュール102とビ
ットストリーム・ジェネレータ103の組合せ、及び、
確率推定モジュール105とビットストリーム・ジェネ
レータ106の組合せから構成することができよう。
【0042】符号語は最高確率のシンボル(MPS)の
ランを表わす。MPSは確率が50%を超えるバイナリ
デシジョンの結果を表わす。他方、最低確率のシンボル
(LPS)は確率が50%未満のバイナリデシジョンの
結果を表わす。なお、2つの結果が同じ確率である時に
は、MPSに指定するかLPSに指定するかは重要では
ないが、エンコーダとデコーダの両方で同一の指定をす
る。MAXRUNと呼ばれる一定のパラメータに対し、
圧縮ファイル中に結果として得られるビットシーケンス
を表1に示す。
【0043】
【表1】
【0044】エンコードをする場合、一つのラン中のM
PSの個数が単純なカウンタによってカウントされる。
このカウント値がMUXRUNカウント値に等しい場
合、0の符号語がコードストリーム中に送出され、カウ
ンタはリセットされる。LPSに出会うと、LSPの前
のMPSシンボル個数のユニークな記述である、1にビ
ット群Nを続けたものが、コードストリーム中に送出さ
れる。(なお、ランレングスを記述するためのNビット
群の割り当て方は色々とある。) 再度、カウンタはリ
セットされる。なお、Nの必要ビット数はMAXRUN
の値に依存する。また、符号語の1の補数を用いること
もできる。
【0045】デコードする場合、コードストリームの最
初のビットが0のときに、MUXRUNの値がMPSカ
ウンタに入れられ、LPS指示がクリアされる。そし
て、その0のビットが捨てられる。最初のビットが1の
ときは、ビット群Nを抽出すべく、後続ビット群が調べ
られ、適当なカウント値(N)がMPSカウンタに入れ
られ、LSP指示がセットされる。そして、1Nの符号
語を含むコードストリームのビット群が捨てられる。
【0046】Rコードは表1のルールによって生成され
る。ある特定のRコードRx(k)の定義は、MAXRUN
によって決定されることに注意されたい。例えば MUXRUN for Rx(k) = x*2k-1 である。よって、 MUXRUN for R2(k) = 2*2k-1 MUXRUN for R3(k) = 2*2k-1 等々である。
【0047】なお、RコードはGolombのコードの拡張
であることに注意されたい。Golombコードは、R2(・)
コードしか使わない。本発明のRコードはR2(k)コード
とR3(k)コードの両方を使用でき、必要ならば他のRn
(k)コードも使うことができる。ある実施例では、R2
(k)コードとR3(k)コードが使用される。なお、Rnは、
n=2及びn=任意の奇数に対して存在する(例えば、
R2,R3,R5,R7,R9,R11,R13,R1
5)。ある実施例では、R2(k)コードの場合、ランのカ
ウント値rがNにデコードされ、ランカウント値rがk
ビットで記述され、したがって、1Nはk+1ビットで
表現される。また、ある実施例では、R3(k)コードの場
合、ビット群Nは、n<2(k-1)であるかn≧2(k-1)
あるかを示すための1のビットを含めることができ、か
つ、ランカウント値を示すためのk−1ビットまたはk
ビットを含めることができ、したがって変数Nは合計k
ビットまたはk+1ビットで表現される。他の実施例で
は、Nの1の補数が符号語に用いられる。この場合、M
PSは0の多いコードストリームを生成する傾向があ
り、LPSは1の多いコードストリームを生成する傾向
がある。
【0048】表2、表3、表4及び表5は、本発明の現
時点の好適実施例のために用いられる効率的なRコード
を示している。なお、他のランレングスコードも本発明
において使用できる。R2(k)のための他の使用可能なラ
ンレングスコードの例が表6に示されている。
【0049】
【表2】
【0050】
【表3】
【0051】
【表4】
【0052】
【表5】
【0053】
【表6】
【0054】〈Rコード用確率推定モデル〉本発明の現
時点の好適実施例において、R2(0)コードはコーディン
グを行なわない。すなわち、入力の0は0に、入力の1
は1に、それぞれエンコードされ(その逆も同様)、こ
れは確率が50%の場合に最適である。現時点の好適実
施例において、R3(0)コードは使用されない。現時点の
好適実施例においては、R2(1)コードは確率が0.70
7(つまり70.7%)の場合に最適であり、R3(1)は
確率が0.794(79.4%)の場合に最適である。R
2(2)コードは0.841(84.1%)の確率に対して最
適である。下の表7はほぼ最適なGolombのコードを示
すが、ここでは確率スキューは次の式によって定義され
る。 確率スキュー=−log2(LPS)
【0055】
【表7】
【0056】なお、最適確率が高いk値においては低い
k値における程にはばらつかないけれども、確率スキュ
ーによって示される確率レンジがほぼ均一に確率空間を
カバーしているという点で、このコードはほぼ最適であ
る。
【0057】ある一定のkに対するR2(k)はGolombの
ランレングスコードと呼ばれる。しかし、ある一定のk
は、ある一定の確率に対してほぼ最適であるに過ぎな
い。最適確率でコーディングする時に、本発明によるR
コードは0符号語と1N符号語とを同じ頻度で使用する
ことに注意されたい。言い換えれば、本発明のRコーダ
は、半分の時間に一方のコードを出力し、別の半分の時
間に他方のコードを出力する。0符号語と1N符号語の
個数を調べることによって、最適なコードが使用されて
いるか否かの判定をすることができる。つまり、IN符
号語の出力数が多過ぎるときはランレングスが長過ぎ、
他方、0符号語の出力数が多過ぎるときはランレングス
が短過ぎる。
【0058】Langdonによって用いられた確率推定モデ
ルは、ソース(source)確率が現在の推定値より高いか
低いかを判定するために各符号語の最初のビットを調べ
る。この判定結果に基づき、kが増減させられる。例え
ば、MPSを示す符号語が現われるときは、確率推定値
は低過ぎる。したがって、Langdonによれば、各0符号
語ごとにkは1ずつ増やされる。MUXRUN MPS
未満を示す符号語にLPSが続いたものが現われるとき
は、確率推定値は高過ぎる。したがって、Langdonによ
れば、各1N符号語ごとにkは1ずつ減らされる。
【0059】本発明は、符号語ごとにkを単純に1ずつ
増減させる方法よりも複雑な確率推定を可能にする。本
発明は、使用するコードを決定する、確率推定モジュー
ルの状態を含む。同一のコードを多くの状態で使用して
もよい。状態テーブルまたは状態マシンを利用してコー
ドが状態に割り当てられる。
【0060】本発明においては、符号語の出力ごとに確
率推定値は状態を変える。よって、本発明においては、
確率推定モジュールは、符号語が0で始まるか1で始ま
るかによって確率推定値を増加または減少させる。たと
えば、”0”符号語が出力されるときは、MPS確率の
推定値の増加が起こる。他方、”1”符号語が出力され
るときは、MPS確率の推定値が減少する。
【0061】従来のLangdonコーダは、R2(k)コードを
使用し、各符号語ごとにkを増減させたに過ぎない。こ
れに対し、本発明は、調整速度をアプリケーションに合
わせるため、R2(k)コードとR3(k)コードを状態テーブ
ルまたは状態マシンと組み合わせて使用する。すなわ
ち、少量の固定データがある場合には、最適なコーディ
ングをするためには調整は素早くなければならないが、
大量の固定データがある場合には、データの残り部分に
ついて圧縮率を良くすべくコーディングを選べるように
調整時間を増加させても構わない。なお、状態変化の発
生回数が可変の場合、個々のアプリケーションの性質に
よっても調整速度は影響される。Rコードの性質上、R
コードの推定は、非常で強力であるにもかかわらず、単
純でハードウエアが少なくてすむ。
【0062】R3(k)コードを組み入れることによって、
より広い確率空間をより高い分解能でカバーできるよう
になる。本発明による確率推定状態テーブルの例が図6
に示されている。図6を参照する。この確率推定状態テ
ーブルは、状態カウンタと、テーブル中の各状態に関係
付けられたコードからなる。なお、このテーブルには正
の状態と負の状態を両方含んであることに注意された
い。このテーブルは、図示のように、0の状態を含め、
37個の正の状態と37個の負の状態を持つ。負の状態
は、その正の状態とは違うMPS状態を意味する。ある
実施例では、MPSが1の時に負の状態を、MPSが0
の時に正の状態を、それぞれ使用することができ、ある
いはその逆に使用することができる。なお、図6に示し
たテーブルは一例にすぎず、状態数を増減しかつ状態割
り当ての違うテーブルを使用してもよい。
【0063】最初、コーダは状態0であり、この状態0
は確率推定値が0.50の場合のためのR2(0)コード
(すなわち、無コード)である。各符号語の処理後、状
態カウンタは、その符号語の先頭ビットに応じてインク
リメントまたはデクリメントされる。現時点の最適実施
例においては、0の符号語は状態カウンタの値を増加さ
せ、1で始まる符号語は状態カウンタの値を減少させ
る。したがって、すべての符号語は、状態カウンタによ
り状態を変化させる。別の言い方をするならば、確率推
定モジュールは状態を変える。しかしながら、連続した
状態を同一コードに関係付けることができる。この場
合、符号語ごとにコードを変化させずに、確率推定が行
なわれる。換言すると、状態は毎サイクル変化するが、
ある時間間隔で同一の確率にマッピングされる。例え
ば、状態5〜状態−5はすべてR2(0)コードを使用する
が、状態6〜状態11及び状態−6〜状態−11はR2
(1)コードを使用する。本発明の状態テーブルを利用す
ることにより、同一のコーダで非線形的な確率推定が可
能である。
【0064】注意すべきは、低確率に対しては、同一の
Rコードを持つより多くの状態が含まれる。こうする理
由は、低確率で誤ったコードを使用すると効率のロスが
大きいからである。ランレングス・コード・テーブルの
性質は、各符号語の後で状態が切り換わることである。
状態変化のたびにコードが変化するように設計された状
態テーブルにおいて、低い確率での状態切り換わり時
に、コードは、エントロピー効率限界に非常に近いコー
ドとエントロピー効率限界から遠いコードとの間を行っ
たり来たりする。よって、不利益(コード化データのビ
ット数の観点における不利益)は、状態の遷移に帰着す
る。Langdonの確率推定モジュールのような従来の確率
推定モジュールが十分な性能は発揮しないのは、この不
利益が原因である。
【0065】高い確率のランレングスコードにおいて
は、コードの誤りによる不利益はそれほど大きくない。
したがって、本発明では、低い確率に状態を追加し、2
つの正しい状態間にまたがる変化を増加させることによ
って、コーディング効率の悪化を抑える。図7は、この
ような符号化効率(エントロピーに関し正規化されたコ
ード長)対MPS確率のグラフを示す。図7は、本発明
のRコードのいくつかが確率空間をカバーする様子を表
わしている。一例として、図7から、MPS確率が約
0.55の場合、R2(0)コードの効率がエントロピー限
界の1.01倍であること(つまり、エントロピー限界
より1%だけ悪いこと)が分かる。これに対し、R2(1)
コードの効率はエントロピー限界の1.09倍である
(エントロピー限界より9%悪い)。この例は、このよ
うな低い確率に対し間違ったコードを使用すると、コー
ディング効率を8%低下させることを示している。
【0066】なお、ある実施例では、コーダに初期確率
推定状態を持たせてもよい。換言すれば、コーダを、状
態中の予め決めた状態、例えば状態18よりスタートさ
せてもよい。ある実施例では、初めのいくつかのシンボ
ルに対して、ある状態テーブルを使用することにより、
素早い調整を可能にするいくつかの状態が用いられるよ
うにし、残りのシンボルに対しては、もう一つの低速調
整用の状態テーブルを用いて、確率推定の精密な調整を
可能にする。このようにして、コーダは、コーディング
・プロセスにおいて、より最適なコードをより素早く使
用することが可能になる。他の実施例では、コードスト
リームでコンテキスト毎に初期確率推定値を指定でき
る。ある実施例においては、インクリメント及びデクリ
メントは一定数(例えば1)ずつ為されるのではない。
既に出会ったデータの量またはデータの変化量(安定
性)に応じた可変数だけ、確率推定状態がインクリメン
トされる。
【0067】図6に例示したテーブルのように、状態テ
ーブルが対称のときは、その半分(0状態を含む)だけ
記憶すれば間に合う。ある実施例では、この対称性を活
用するため、状態番号は符号付きの1の補数の形で格納
される。このようにすると、1の補数の絶対値をとって
状態を判断し、かつ、符号を調べてMPSが1であるか
0であるかを判断することによって、このテーブルを利
用することができる。こうすれば、状態の絶対値を用い
てテーブルを索引することができ、また1の補数の絶対
値の計算は簡単であることから、状態のインクリメント
またはデクリメントのために必要なハードウエアを減ら
すことができる。別の実施例においては、ハードウエア
効率を向上させるため、状態テーブルが布線論理の状態
マシンまたはプログラマブルな状態マシンに置き換えら
れる。
【0068】〈ハードウエア構成の例〉図8はRコード
を使用するデコーディング装置のブロック図を示す。図
8において、Rコード・デコーダ501はコード化入力
データと接続され、ランレングスと、LPSが出現した
か否か(例えば1Nコード)の指示を出力する。ラン・
カウンタ502は、Rコード・デコーダ501よりラン
レングスとLPS指示を受け取るように接続され、再現
したオリジナルデータを出力する。ラン・カウンタ50
2は、次のカウント値を要求する信号も出力する(この
信号を受け取るようにRコード・デコーダ501は接続
されている)。
【0069】Rコードを使用するため、デコーダ501
はコード化データ入力として受け取った符号語を調べ
て、現符号語のランレングスを判定する。Rコード・デ
コーダ501は、ランの最後にLSPがあるかの判定も
する。ランレングス(すなわちラン・カウント値)とL
PSの判定結果に応じて、ラン・カウンタ502はラン
・カウント値と同じ数だけMPSを出力し、また、デコ
ーダ501が指示するときにはLSPを出力する。LP
Sの判定結果として”no”がラン・カウンタ502に
出力された時は、ラン・カウンタ502はMPSだけを
出力する(なお、Qコーダにおいてはビットを出力する
ために演算が必要になるが、本発明においてはカウンタ
だけで足りることに注意されたい)。
【0070】ラン・カウンタ502は実際にはビット群
を出力する。ラン・カウンタ502は、部分的に図3の
デコードデータメモリ207として働くことに注意すべ
きである。ある実施例においては、ラン・カウンタ50
2は必要数のMPSビットを出力し、必要ならば、それ
に続けてLSBビットを出力する。ラン・カウンタ50
2は、符号語が終わったことを指示するための信号(ne
xt count request)を出力して次の符号語を要求する。
このように、ラン・カウンタ502は簡単かつ高速であ
る。Rコード・デコーダ501は、ラン・カウンタ50
2からの信号を受けると次の符号語のために1ビットの
シフトを行なう。Rコード・デコーダ501は確率推定
モジュールの状態の更新も行なう。
【0071】図9は本発明のRコーダの他の実施例を示
すブロック図である。図9において、Rコーダ600は
シフト・ブロック601、デコード・ブロック602、
ラン・カウンタ603及びPEM604から構成されて
いる。シフト・ブロック601は符号語のコード化デー
タ入力ストリームに接続される。シフト・ブロック60
1はまた、PEM604から現符号語の長さ(すなわち
シフトすべき量)を示すフィードバック信号を受け取る
ように接続されている。シフト・ブロック601は信号
(適当に整列されたコード化データ)を出力し、この信
号はデコード・ブロック602の入力に接続される。デ
コード・ブロック602はまた、PEM604から現コ
ードを指示するためのフィードバック信号を受け取るよ
うに接続されている。PEM604もデコード・ブロッ
ク602からの信号に接続されている。デコード・ブロ
ック602は、現ランレングスと、ランの最後にLPS
があるかを判断する。デコード・ブロック602は2つ
の信号、すなわち、ランレングス(RL)とLSP指示
とを出力し、両信号はカウンタ603の入力に接続され
る。カウンタ603はPEM604への信号出力にも接
続される。カウンタ603は再生データを発生する。カ
ウンタ603は、ランカウント・カウンタ(run count
counter)とLPSを送出すべきかであるかを管理す
る。カウンタ603はまた、デコードデータを送出し、
かつ、次の符号語を処理する時点を指示する。PEM6
04は、カウンタ603より、次の符号語の処理時点の
指示(次カウント値要求)を受け取るように接続されて
いる。
【0072】PEM604は、シフト・ブロック601
の次データを処理するためのシフト量、デコード・ブロ
ックのための現コード、内部状態を更新するための次の
状態及びMPSを決定する。現コードの形態は、デコー
ド・ブロック602に現符号語のビットだけをデコード
させるためのビット・マスクである。これら機能はそれ
ぞれ、別々のフィードバック線によって必須ブロック
(つまりシフト・ブロック601、デコード・ブロック
602及びカウンタ603)へ指示される。
【0073】Rコーダ600の動作が開始すると、コー
ドが、最初に処理すべきビット位置よりRコーダ600
へ与えらる。シフト・ブロック601は、コード化デー
タを受け取り、それをデコード・ブロック602へ供給
する。ある実施例では、シフト・ブロック601はバレ
ルシフタ(barrel shifter)からなる。ある実施例で
は、シフト・ブロック601はコード化データを並列に
デコード・ブロック602へ供給する。
【0074】デコード・ブロック602は、最初のビッ
トに基づき、符号語の種類を判定する。ある実施例で
は、符号語の種類の判定は、ランの最後にLSPがある
か確認することによる。別の実施例においては、符号語
の種類判定に、第2ビットが1であるか2であるかの確
認も含まれる。この第2ビットを確認することは、1N
のNビットの数が第2ビットで分かるような場合に重要
である(例えばR3(1)では、1に続くビットの数は1ビ
ットまたは2ビットである)。
【0075】ある実施例では、デコード・ブロック60
2は、ランレングスがMUXRUNであるか、あるい
は、1の後のNビットにランレングスがエンコードされ
ているか(例えば1Nの場合)の判定をする。PEM6
04は、1N符号語のビット数を指示するため現コード
を現コード信号線へ送る。このビット数が指示されるの
は、コードが長いと必要なビット数が増加するからであ
る。
【0076】符号語の種類の判定結果は符号語種類信号
によってPEM604へ指示される。PEM604は、
現コードと符号語種類を用いて、符号語長を判断する。
この符号語長はシフト・ブロック601へ接続される。
シフト・ブロック601は、符号語長を用いて次の符号
語のためのデータを調整する。
【0077】PEM604は、符号語の種類を用いて確
率推定モジュールの状態を更新する。更新後の確率推定
モジュールの状態は、デコード・ブロック602により
後に使用される新しい現コードを決めるために使用され
る。カウンタ603は、図8のラン・カウンタと同じ方
法でデコードデータを生成する。
【0078】コードは可変長であるので、あるコードの
長さが3ならば、次の符号語は4ビットだけ離れた位置
にある。したがって、シフト・ブロック601は、コー
ドストリーム中の4ビットだけ後方の位置へシフトし、
その位置トよりデータをデコード・ブロック602へ送
る。ある実施例では、デコード・ブロック602が現符
号語について終了したことを通知するための信号がPE
M604よりシフト・ブロック601に入力することに
よって、シフト・ブロック601にシフトを行なわせ
る。ラン・カウンタ603は、デコードデータを出力し
た後、Rコード・デコーダ500に次のカウント値を要
求する。その後、デコーディング、確率推定モジュール
及びシフトのプロセス全体が繰り返される。
【0079】圧縮が有効な時には、殆どの符号語は複数
ビットにデコードされる。複数のRコード・デコーダを
持つ装置ならば、使用頻度の少ないシフタ・モジュー
ル、デコーディング・モジュール及びフィードバック・
モジュールを、いくつかのカウンタ・モジュールで共用
できる。このような装置の例は後述する。
【0080】したがって、本発明は、R2(k)コード及び
R3(k)コードを状態テーブル/マシンPEMとともに用
いることにより、ほぼ最高の圧縮率でデコーディングを
行なうことができる。また、本発明は、状態テーブルP
EMを採用することによって、少ないハードウエアコス
トと高速のハードウエアで単純な確率推定モジュールを
実現できる。
【0081】〈FPGAによるRデコーダのハードウエ
ア構成例〉単純なRコーダの構成が図10に示されてい
る。このRコーダはConcurrentLogic社(Sunnyval
e,California)のCLi6005というブランドのF
PGAを用いて設計された。図10のRコーダに関係す
る確率推定モデルが下に示されている。
【0082】
【表8】
【0083】この例においては、R2コードだけがサポ
ートされており、R2(7)コードが最長ランレングスコー
ドである。
【0084】図10を参照する。シフトレジスタ701
は8ビットバスによりメモリからコード化データを受け
取るように接続されている。シフトレジスタ701はコ
ード化データを1ビットずつ出力し、このビットはコン
トロール703とシフトレジスタ702に接続される。
シフトレジスタ702はマルチプレクサ704に接続さ
れている。アップ/ダウン・シフトレジスタ708のロ
ーディングは、論理1の入力によって行なわれる。シフ
トレジスタ708はアップ/ダウン・シフトレジスタ7
09に接続され、同シフトレジスタ709には論理0が
入力されている。シフトレジスタ709の出力は、エン
コーダ710及びマルチプレクサ704に入力として接
続されている。マルチプレクサ704の出力はコンパレ
ータ706の一方の入力に接続されている。コンパレー
タ706のもう一方の入力は、カウンタ705の出力に
接続されている。カウンタ705はカウンタ711に接
続されている。カウンタ711はコンパレータ712の
一方の入力に接続されている。コンパレータ712のも
う一方の入力は、エンコーダ710の出力と接続されて
いる。コンパレータ712の出力はコントロール703
に接続されているが、コンパレータ706の出力も同様
である。コントロール703の出力は、シフトレジスタ
707の入力に接続されるデータとなる。このシフトレ
ジスタ707はデータを直列的に受けとって並列に出力
する。なお、コントロール703は他のブロックに接続
され、それらを制御する。
【0085】図10の回路は、図9に関して述べたと同
様に動作する。この実施例の場合、シフトレジスタ70
1,702は図9のシフト・ブロックに対応する。アッ
プ/ダウン・シフトレジスタ708,709とエンコー
ダ710の組合せ、カウンタ711及びコンパレータ7
12は図9中のRコーダの確率推定モジュールを提供す
る。Rコーダのデコード・ブロックはマルチプレクサ7
04によって実現されるが、ラン・カウンタはカウンタ
705とコンパレータ706を用いて実現される。
【0086】図10の回路構成例が図11乃至図13に
示されている。図11は、図10のRデコーダのコント
ロール・ロジックの回路図である。図12は確率推定モ
ジュールの回路図である。図13は図10のRデコーダ
のシフタ、デコーダ及びカウンタの回路図である。回路
図に示された各回路の動作は従来からよく知られてい
る。なお、図11乃至図13において、図10中の特定
のブロックと同じ要素は、括弧で括られた参照番号によ
り明示されている。括弧で括った参照番号の付されてい
ない他のブロックはすべて、従来より動作が周知のコン
トロール回路である。
【0087】〈Aコード〉本発明のAコードは、ある一
つの確率に対して最適化された可変長−可変長コード
(variable length to variable length code)であ
る。換言すれば、本発明のAコードは適応的でない。本
発明のAコードは、別々の確率クラスの並列デコーディ
ングを行なう装置に使用できる。Aコードの一例はA1
コードである。このA1コードを下に示す。 00 → 0 01 → 10 1 → 11 本発明のA1コードは、約0.71(71%)のMPS
確率に対し効率がよい。
【0088】Aコードのもう一つの例は、A2コードで
ある。本発明のA2コードを下に示す。 0000 → 0 0001 → 1000 0010 → 1001 0011 → 11111 010 → 101 011 → 11101 100 → 110 101 → 11110 11 → 11100 Aコードは、様々な確率に対応するためカスケードにす
る(cascaded)ことができる。Aコードの場合、一つの
可変長コードがビルディング・ブロックとして使用さ
れ、このビルディング・ブロックは別の確率に関するコ
ードを生成するために可変長コードと直列的にカスケー
ドにすることができる。実際には、ある確率のコードが
別のコーダに通されることにより、別の確率のコードス
トリームが生成される。例えば、上記のA1コードの出
力がもう一つのA1デコーダに入力されることにより、
一つのカスケードされたA1コードが得られる。同様
に、A2デコーダの出力をA1デコーダに入力すること
ができる。
【0089】A1コーダを使用し、多段にカスケードさ
れたコードを得る構成も実現できる。ある実施例では、
装置は複数の確率クラスを並列に処理するが、それぞれ
の確率をAコーダのチェーンの別々の部分に入力するこ
ともできる。すなわち、Aコーダのそれぞれは前段のA
コーダの出力及びあるコンテキスト・ビンのためのデー
タに対応した確率クラスを受け取り、その両方が入力し
た時に別の確率のコードが生成される。
【0090】本発明のAコードは、ハードウエアで簡単
に実現できるコードである。複数のAコーダをカスケー
ドにすることによって、装置を実現するために必要なハ
ードウエア量が少なくなる。
【0091】本発明のAコードは、小量の布線論理ある
いは小さなルックアップ・テーブルにより、高速動作で
デコードすることができる。Aコードは外部の確率推定
モジュールの使用を可能にするので、エントロピー・コ
ーディング装置で任意のPEMを使用できる。
【0092】〈並列デコーディング装置〉 非インターリーブ並列デコーディング装置 本発明は、バイナリ・エントロピー・コーダのコーディ
ング速度を上げるために非インターリーブチャネルまた
は多チャネルのコーダを並列に用いる。IBM社のQコ
ーダやBコーダのようなバイナリ・エントロピー・コー
ダは、デコーダとコンテキスト・モデルの間に単一の大
きなフィードバック・ループを必要とすることは前述の
とおりである。適当なコード化データの伝送方法と複数
のデコーダを用いることにより、コンテキスト・モデル
のフィードバック・ループは分離される。コンテキスト
・モデルのフィードバック・ループを分離することによ
り、コンテキスト・モデルを、デコード結果の選択に変
えることができる。
【0093】本発明においては、コンテキスト・モデル
とコーダの機能を分離することにより、並列化の採用を
可能にする。現時点の好適実施例においては、確率推定
モジュールは、コンテキスト・モデル(Bコーダの場
合)またはビットストリーム・ジェネレータ(Qコーダ
の場合)と結合される。各ビットストリーム・ジェネレ
ータはコードデータの一つのサブセットに割り当てられ
る。各サブセットはコンテキスト・ビンまたは確率クラ
スのいずれに関連付けてもよく、そのいずれであるかは
設計次第である。換言すると、ある実施例においては、
一群のビットストリーム・ジェネレータのそれぞれは、
一つのコンテキストあるいはコンテキスト・ビンのクラ
スに対応したコード化入力データを受け取り、また、他
の実施例では、ビットストリーム・ジェネレータのそれ
ぞれは、一つの確率クラスに対応したコード化入力デー
タを受け取る。なお、コンテキスト・、ビンの個数がコ
ーダの個数より多い場合、複数のコンテキスト・ビンの
クラスを一つのビットストリーム・ジェネレータに関連
付けてもよい。
【0094】コンテキスト・モデル及びビットストリー
ム・ジェネレータをパイプライン化することにより、デ
コーダの速度が上昇し、それら2つの動作の合計時間で
はなく、遅いほうの動作の完了に必要な時間のみによっ
て速度が制限される。ビットストリーム・ジェネレータ
はコンテキスト・モデルとは独立に動作するので、速度
を上げるため複数のビットストリーム・ジェネレータを
並列に用いることができる。
【0095】本発明は、パイプライン技法を利用して実
施し得る。なお、本発明において、ビットストリーム・
ジェネレータの部分もパイプラインにすることができ
る。図9を再度参照する。デコード・ブロック602か
らラン・カウンタ603へデータが送られる間に入力デ
ータをRコード・デコーダへ入力してもよい。同様に、
Rコード・デコーダとラン・カウンタ603の間にパイ
プライン技法を採用してもよい。Rコード・デコーダ内
部のデコード・ブロック602とPEM604の部分に
もパイプライン技法を利用してもよい。
【0096】したがって、本発明は、コンテキスト・モ
デルと同程度の速度で(デコード結果の選択時には、簡
単なマルチプレクサ動作を行なうために必要な時間をコ
ンテキスト・モデルの時間に加えた速度で)動作可能な
装置を提供する。
【0097】本発明においては、コード化データは多数
のビットストリーム・ジェネレータに供給される。ある
実施例では、複数のチャネルが使用される。他の実施例
では、単一の非インターリーブチャネルが使用される。
別の実施例では、単一のインターリーブチャネルが使用
される。
【0098】多チャネル・コーダ 本発明は、圧縮入力データの並列デコーディングを行な
う多チャネル・コーダを提供する。ある実施例の多チャ
ネル・コーダにおいては、各ビットストリーム・ジェネ
レータは一つのコンテキスト・ビンまたは一群のコンテ
キスト・ビンに割り当てられる。この多チャネル・コー
ダを実現するには、コンテキスト・ビン毎に独立のチャ
ネルが用意される。このように、各コンテキスト・ビン
は、ある特定のコンテキスト・ビンのビットをデコード
するための、専用のビットストリーム・ジェネレータ及
び確率推定モジュールに入力される、一つの独立したチ
ャネルを持つ。他の実施例は、確率クラス(Pクラス)
毎に一つの独立したチャネルを持つ。図14は、本発明
による並列確率クラス用多チャネル・コーダ装置の一実
施例のブロック図である。
【0099】図14において、オリジナルデータはエン
コーダ1101に入力される。ある実施例では、エンコ
ーダ1101はデータを受け取り、コード化データファ
イルにエンコードする。データのデコーディングは、デ
コーダ1111によって行なわれる。デコーダ1111
は、ビットストリーム・ジェネレータ1102〜110
5と、統合されたPEM/CM1106からなる。デー
タのデコーディング時には、各確率クラス(Pクラス)
に関連したデータが、別々のチャネルを介して一群のビ
ットストリーム・ジェネレータに受け取られる。Pクラ
ス1に対応したコード化データは、チャネル1107に
より送られる。チャネル1107は、ビットストリーム
・ジェネレータ1102の一つの入力に接続される。P
クラス2対応のコード化データはチャネル1108によ
り送られる。チャネル1108はビットストリーム・ジ
ェネレータ1103の一つの入力に接続される。Pクラ
ス3対応のコード化データはチャネル1109により送
られる。チャネル1109はビットストリーム・ジェネ
レータ1104の一つの入力に接続される。Pクラス4
対応のコード化データはチャネル1110により送られ
る。チャネル1110はビットストリーム・ジェネレー
タ1105の一つの入力に接続される。なお、図14に
はチャネルとビットストリーム・ジェネレータが4個し
か示されていないが、それらの実際の個数は特定のアプ
リケーションによって決まるもので、4個より増加させ
ても減少させてもかまわない。
【0100】確率推定モジュール(PEM)/コンテキ
スト・モデル(CM)1106は、ビットストリーム・
ジェネレータ1102〜1105のそれぞれの出力を受
け取るように接続され、そして、デコードデータ出力を
生成する。なお、エンコーダ1105は、圧縮/伸長装
置のデータパス全体を説明するために示されているにす
ぎない。デコーダ1111は、デコードされるデータが
予めエンコードされ記憶されている場合に、例えば、ビ
デオディスプレイ装置でグラフィック画像がメモリに格
納されている場合に、動作が可能である。
【0101】デコーダ1111が圧縮データをデコード
する時には、PEM/CM1106はビットストリーム
・ジェネレータ1102〜1105のデータ出力を選択
する。PEM/CM1106が、デコードビットとして
ビットストリーム・ジェネレータの一つを選択する時
に、データはすぐに間に合う。よって、PEM/CM1
106は、既にデコードされた結果を選ぶにすぎない。
PEM/CM1106がビットストリーム・ジェネレー
タの一つを選んでいる間、他の選択されないビットスト
リーム・ジェネレータは、それらに専用のチャネルによ
り受け取ったデータをデコーディング中である。したが
って、PEM/CM1106が次の結果を選択した時
に、データは(適当な順番で)用意されている。
【0102】この適当な順番は、自由に設計されるの
で、PEM/CM1106側で分かっている。PEM/
CM1106は、この適当な順番でビンからのデータを
選択する。例えば、データが画像データであるならば、
PEM/CM1106は画像順(つまりラスタースキャ
ン順)にビットストリーム・ジェネレータのそれぞれの
出力データをアクセスする。すなわち、ラスタースキャ
ンによって、PEM/CM1106の使用する順番の意
味が与えられる。
【0103】独立したチャネル1107〜1110がビ
ットストリーム・ジェネレータ1102〜1105に新
しいデータを絶えず供給するため、ビットストリーム・
ジェネレータ1102〜1105は全く遊ぶことがない
(常に、デコードするデータがある)。
【0104】図15は、コンテキスト・ビンを並列に処
理する、本発明による多チャネル・デコーダの一実施例
のブロック図を示す。図15において、データはエンコ
ーダ1215に入力されてエンコードされる。エンコー
ダ1215は各チャネル1201〜1204に接続され
ている。各チャネル1201〜1204は、コンテキス
ト・ビン1〜4に対応したコード化データをそれぞれ伝
達するもので、ビットストリーム・ジェネレータ120
5〜1208の入力にそれぞれ接続されている。ビット
ストリーム・ジェネレータ1205〜1208の出力
は、確率推定モジュール(PEM)1209〜1212
の入力にそれぞれ接続されている。PEM1209〜1
212のそれぞれより出力されるデコードデータはコン
テキスト・モデル1213に接続され、コンテキスト・
モデル1213はPEM1209〜1212全ての出力
を順序付ける。なお、図15はデータフロー図にすぎな
い。本発明を難解にしないために、動作に必要な他の信
号は示されていない。これらの信号とその働きは、当業
者には明白であろう。
【0105】デコーダ1214の動作は、PEM120
9〜1212を別にすれば、図14に示したデコーダ1
111と同様である。デコーダ1214においては、P
EM1209〜1212のそれぞれが別々のビットスト
リーム・ジェネレータの専用とされる。例えば、PEM
1209は、ビットストリーム・ジェネレータ1205
との関連でのみ動作する。この場合、確率推定モジュー
ルは、コンテキスト・モデル1203からのデータ・リ
クエスト信号に応答して、デコード済みデータビットを
コンテキスト・モデル1213へ送る。コンテキスト・
モデル1213は随時動作する。コンテキスト・モデル
1213があるコンテキストのデータを要求している
間、他のコンテキスト・ビンに関するデータのデコード
中であるので、データは並列処理される。したがって、
すべてのビンが専用のチャネル、ビットストリーム・ジ
ェネレータ及び確率推定モジュールを持つ多チャネル構
成において、並列化を利用できる。
【0106】データを並列にデコードする多チャネル・
コーダは、大きなバンド幅が必要となるため高コストで
ある。このバンド幅は、一つのビンだけが使用される場
合には無駄になる。
【0107】非インターリーブチャネル・コーダ 本発明は、単一のチャネルを使用して、各コンテキスト
・ビン(またはクラス)に対応したコード化データを複
数のビットストリーム・ジェネレータに供給する装置を
提供する。この単一チャネル構成を実現するために、非
インターリーブチャネルが使用される。このように、本
発明において、非インターリーブチャネルめコーダが使
用されるならば、チャネルを1つだけ使用して、ビット
ストリーム・ジェネレータをコンテキスト・ビン(また
はクラス)から独立させることができる。
【0108】図16は、確率クラスを並列に処理するた
めの、本発明による非インターリーブチャネル・コーダ
の一実施例を示す。図16において、エンコーダ130
0はオリジナルデータを受け取ってエンコードする。デ
コーダ1301は、コード化データを受け取ってオリジ
ナルデータを再現する。デコーダ1301は、メモリ・
メモリコントロール1303、ビットストリーム・ジェ
ネレータ1304〜1307、及び確率推定モジュール
(PEM)/コンテキスト・モデル(CM)1308か
らなる。メモリ・メモリコントロール1303は、コー
ド化データストリームを受け取り、各確率クラス(Pク
ラス)のデータを出力するように接続されている。ビッ
トストリーム・ジェネレータ1304〜1307は、メ
モリの単一ポートより個々の確率クラスのためのコード
化データを受け取るように接続されている。ビットスト
リーム・ジェネレータ1304〜1307それぞれの出
力は、PEM/CM1308に接続される。
【0109】ビットストリーム・ジェネレータ1304
〜1307とPEM/CM1308は、図14のビット
ストリーム・ジェネレータ及びPEM/CMと同様に動
作する。しかしながら、デコーダ1301は、様々なP
クラスのコードストリームを結合する単一のチャネルよ
り、コード化データを受け取る。
【0110】現時点の好適実施例では、単一チャネルに
より伝送されるコード化データは、各Pクラスのデータ
に対するポインタのリスト(並列にコンテキスト・ビン
を処理する場合は各コンテキスト・ビンのデータに対す
るポインタのリスト)を含み、その後に各ビンのデータ
が続く。コード化データは全て、メモリ・メモリコント
ロール1303に受け取られて記憶される。現時点の好
適実施例では、コード化データは順次に記憶される。こ
のメモリコントロール・ユニットは、ポインタを利用し
て適当なPクラスのデータを対応のビットストリーム・
ジェネレータに供給する。
【0111】PEM/CM1308は、ビットストリー
ム・ジェネレータ1304〜1307の一つにデコード
・データを要求する。ビットストリーム・ジェネレータ
1304〜1307はそれぞれ、PEM/CM1308
に要求されることになる次の符号語を持っていないない
時に、メモリコントロール1303に符号語を要求す
る。これらの動作の両方が同一速度で起こるならば、メ
モリ1303に対する要求は一度に一つしか起こりえな
い。しかし、PEM/CM1303のほうが高速に動作
すると、1メモリアクセス時間内にメモリ1303に対
し複数の要求が発生することがある。どのビットストリ
ーム・ジェネレータにメモリを使用する資格を与えるか
決定するために、調停方式を使用してもよい。なお、こ
の装置において、PEM/CM1308は、メモリ・メ
モリコントロール1303に対して、その動作を指示し
ない−ビットストリーム・ジェネレータは必要な時にメ
モリアクセスを要求する。
【0112】図17は、コンテキスト・ビンを並列処理
するための非インターリーブ単一チャネル・デコーダ1
411の一実施例のブロック図を示す。図17に示す装
置は、データを受け取ってコード化データを送出するエ
ンコーダ1412と、チャネルよりコード化データを受
け取るデコーダ1411からなる。デコーダ1411
は、メモリ・メモリコントロール1401、ビットスト
リーム・ジェネレータ1402〜1405、確率推定モ
ジュール1406〜1409、コンテキスト・モデル1
410から構成されている。ビットストリーム・ジェネ
レータ1402〜1402、確率推定モジュール140
6〜1409及びコンテキスト・モデル1410の接続
及び動作は、図15に関連して述べたビットストリーム
・ジェネレータ、確率推定モジュール及びコンテキスト
・モデルと同様である。メモリ・メモリコントロール1
401は、図16に関連して述べたメモリ・メモリコン
トロールと同じように、ビットストリーム・ジェネレー
タ1402〜1405及びコード化入力データと接続さ
れ、動作する。繰り返しになるが、各コンテキスト・ビ
ンは専用のチャネル、ビットストリーム・ジェネレータ
及び確率推定モジュールを持つ。
【0113】図18は、全てのビンのデータを含む連結
(concatinated)コードストリームの一例を示してい
る。この単一チャネル用連結コードストリームは、ヘッ
ダと、各コンテキスト・ビンのコード化データからな
る。ヘッダは、コードストリーム中の各コンテキスト・
ビンのコード化データの始まりを指すポインタからな
る。例えば、このコードストリーム中のコード化データ
1501は、コンテキスト・ビン1のコード化データに
対するポインタに相当する。このコードストリーム中の
コード化データ1502は、コンテキスト・ビン2のデ
ータに対するポインタに相当する。このコードストリー
ム中のデータ1503は、コンテキスト・ビン3のコー
ド化データに対するポインタに相当する。現時点の好適
実施例においては、各コンテキスト・ビンのコード化デ
ータは、順にコードストリーム中に格納される。例え
ば、図18において、コンテキスト・ビン1のコード化
データ1504がコードストリームのポインタ部分の後
に続く。その後にコンテキスト・ビン2のデータ150
5が続き、さらにコンテキスト・ビン3のコード化デー
タが続く、等々である。なお、コード化データ・セクシ
ョン(1504〜1506)それぞれのコード化データ
量は異なってもよい。
【0114】図16に戻る。デコーダ1301が単一チ
ャネルより圧縮データをすべてメモリ1303に取り込
み終わると、データそれぞれのスタート位置を識別する
ことができ、データをビットストリーム・ジェネレータ
へ、それより要求された時に送ることができる。
【0115】本発明において、エンコーダは、デコーダ
1308に要求されるフォーマットでデータストリーム
を生成しなければならない。これを達成する一つの方法
は、コンピュータを使用して、各コンテキスト・ビンの
データをエンコードし、各コンテキスト・ビンのデータ
を別々のファイルに格納する方法である。別々のコンテ
キスト・ビンのコード化データのエンコードを完了する
と、各ファイルの長さが決まる。この長さ情報は、ポイ
ンタ用の適当なフォーマットに変換されてチャネルに入
力される。つぎに、エンコードされたデータの各ファイ
ルが順にチャネルに入力される。
【0116】非インターリーブチャネル・コーダは多数
のビットストリーム・ジェネレータを使用するので、ハ
ードウエアコストの小さなビットストリーム・ジェネレ
ータを許容するようなコードを用いるのが有利である。
ある実施例では、非インターリーブチャネル・コーダ
が、図9に示すようなRコーダを用いて実現される。な
お、本発明の非インターリーブチャネルは、多くの他の
コードを使用して実現することも可能である。
【0117】コンテキスト・モデル1308がメモリ1
303のアクセス可能な速度より遅いと仮定すれば、デ
コーダ1301はパイプラインで動作し、データを並列
にデコードすることができる。あるビットストリーム・
ジェネレータがコード化データを取り込んでいる最中
に、コンテキスト・モデル1308によって、他のコー
ド化データのランレングスがデコードされ、LPSが判
定され、さらに別のデコードデータの選択が行なわれ、
これらが全て同時になされる。ある実施例では、メモリ
サイクル毎に1ビットが出力される。
【0118】図19は、本発明のRコーダを使用した非
インターリーブ単一チャネル並列デコーディング・アー
キテクチャの一実施例のブロック図を示す。図19にお
いて、エンコーダ1609はデータを受け取ってエンコ
ードするように接続されている。コード化データはチャ
ネルよりデコーダ1600に受け取られる。デコーダ1
600はメモリ1601、デコーダ1602、アドレス
・ジェネレータ1603、カウンタ1604〜160
7、コンテキスト・モデル1608より構成されてい
る。メモリ1601は、チャネルよりコード化データ
を、アドレス・ジェネレータ1603よりアドレスを、
それぞれ受け取るように接続されている。メモリ160
1はコード化データを記憶し、それをデコーダ1602
に出力する。デコーダ1602はメモリ1601からコ
ード化データを受け取る。デコーダ1602はカウンタ
1604〜1607の指定された一つにカウント値を出
力する。カウンタ1604〜1607はデコーダ160
2の出力を受け取り、カウントデータをコンテキスト・
モデル1608へ出力するように接続されている。コン
テキスト・モデル1608は、カウンタ1604〜16
07に接続されており、デコードデータを出力する。な
お、カウンタは4個だけ示されているが、カウンタの実
際の個数は、コンテキスト・ビンの個数に応じて、それ
より多いことも少ないこともある。
【0119】なお、デコーダ1600の並列動作を必要
とする部分はカウンタ部分だけである。デコーダ160
0の残りの部分(つまりシフタ、Rコード・デコーダ、
確率推定モジュール)は、全カウンタで共用でき、また
単一のメモリ1601をアクセスできる。
【0120】メモリ1601はデコーダ1602に接続
され、デコーダ1602にデータを供給する。メモリ1
601とデコーダ1602の間の接続線の本数は、最大
の符号語のビット数以上である。言い換えると、メモリ
幅はランレングス符号語の最大ビット数以上である。な
お、デコーダ1602がメモリバンド幅及び確率推定モ
ジュールと同じような速度で動作する場合には、複数の
ビットストリーム・ジェネレータは必要でない。その場
合でも、コンテキスト・モデル1608にデータを供給
するため、複数のカウンタ(たとえばカウンタ1604
〜1607)が利用される。
【0121】カウンタ1604〜1607はデコードさ
れたデータを出力する。本発明においては、カウンタ1
604〜1607は停止しないので、常にデコードデー
タがコンテキスト・モデル1608に与えられる。アド
レス・ジェネレータ1603によって生成されるメモリ
アドレスが分かっていさえすれば、デコーダ1600全
体をパイプライン化することができる。コンテキスト・
モデル1608によって、あるカウンタが選択されたな
らば、そのカウント値は用済みにしてよい。コンテキス
ト・モデル1608は、一つのカウンタを3回続けて選
択し、そのカウンタにデコーダ1602を3回連続して
選択させることができる。現時点の好適実施例にあって
は、コンテキスト・モデル1608からの要求は1サイ
クルにつき1回だけであり、デコーディング動作は1サ
イクルに1回だけ行なわれ、メモリアクセスも1サイク
ルに1回だけ生じる。よって、本発明のコーダがカウン
ト値の予備をFIFOに保有しているならば(すなわ
ち、各カウンタが少なくとも2つのカウント値を持って
いる)、コンテキスト・モデル1608が休止させられ
ることは絶対にない。
【0122】コンテキスト・モデル1608の無休止を
確実にするため、本発明は、初めに、デコーダ内のそれ
ぞれのカウンタに対し、何個かのランレングス、例えば
3個のランレングスのデコーディングを行なう。こうす
ることにより、メモリアドレス・ジェネレータ1603
はパイプラインのためのデータの取得を開始できる。こ
の動作を完了すると、その時点までに、いくつかのラン
・カウント値が得られているので、コンテキスト・モデ
ル1608はカウンタ選択動作を開始する。上記の初期
カウント値を使い切る時点までに、ほかのカウント値が
デコードされている。このようにして、コンテキスト・
モデル1608は決して休止しない。
【0123】コンテキスト・モデルのリクエストは1サ
イクルに1回であるから、最終コンテキスト・アクセス
はメモリ1601及びデコーダ1602をアクセスする
ことができる。1個または2個のラッチを、カウンタの
入力のバッファリングのための小さなFIFO(先入れ
/先出し)として利用すると、メモリアクセス及びデコ
ーディングをパイプラインにすることができるため、速
度制限がなくなる。
【0124】非インターリーブチャネル・デコーダで並
列化を利用すると、ビットストリーム・ジェネレータの
パイプラインステージのオーバーヘッドが減少し、装置
全体の速度制限がなくなる。これに比べ、並列カウンタ
を利用しない装置の場合、現カウント値を記憶するため
各ビンごとに1つのメモリワードが必要とにる。メモリ
速度に制限があるので、カウント値のリード−モディフ
ァイ−ライト(read-modify-write)のための時間が、
装置全体の速度にマイナスの影響を及ぼすことになる。
【0125】装置全体の速度は、コンテキスト・モデル
及び/またはコード化データ格納のためのメモリアクセ
ス時間によって制限される。並列化を十二分に利用して
装置速度を上げるためには、少なくともコンテキスト・
モデル、それに多分、デコーダ全体も、並列に動作させ
なければならない。しかし、ここで述べたビットストリ
ーム・ジェネレータの並列化によって、現在の技術水準
より高速のコーダを実現可能である。
【0126】インターリーブ並列デコーディング装置 本発明はまた、圧縮データを並列にデコーディングする
ためのインターリーブ・デコーディング装置も提供す
る。データはコンテキスト・ビン別、コンテキスト・ク
ラス別または確率クラス別に独立したストリームに分割
された後、前述のようにコード化される。これらのスト
リームは、デコーダに対して、確率クラス別に並列に分
配することができ(前述の多チャネル・コーダの場合と
同様)、あるいは、完全な連結ファイルとして分配する
ことができる(非インターリーブチャネル・コーダの場
合と同様)。しかし、並列デコーダは、これらのストリ
ームのデータを連続した、必然的順序で必要とすること
に注意されたい。デコーダがコード化データを必要とす
る順序は単純ではないが、でたらめではない。他の方法
と同様、デコーダではなくエンコーダで、この順序に符
号語を並べることにより、コード化データを単一のスト
リームにインターリーブすることができる。
【0127】なお、このインターリーブ順序付けを可変
長の符号語について行なうと、コードストリームを、正
しいビット数だけデコーダにシフトアウトする単一のシ
フタに入力しなければならない。これには、おそらく低
速のフィードバックループが必要となろう。それを避け
るために、(例えば各コンテキスト毎の)各コード化デ
ータストリームの符号語が固定長ワードにパックされ
る。しかして、各デコーダは単一のコード化データスト
リームの固定長ワード全体を受け取る。可変長符号語は
各デコーダにおいてシフトアウトされるので、デコーデ
ィングは並列に行なわれる。
【0128】インターリーブ並列アーキテクチャが図2
0に示されている。図20において、このインターリー
ブ並列アーキテクチャは、データを受け取ってコード化
データを生成するエンコーダ1713、FIFO170
1、デコーダ1711及びコンテキスト・モデル171
0からなる。FIFO1701の入力はエンコードされ
た入力データと接続されている。FIFO1701の出
力は、デコーダ1711のビットストリーム・ジェネレ
ータ1702〜1705に接続されている。ビットスト
リーム・ジェネレータ1702〜1705は確率推定モ
ジュール(PEM)1706〜1709にそれぞれ接続
されている。PEM1706〜1709のそれぞれは、
デコードされた出力データを送出するコンテキスト・モ
デル1710に接続されている。コンテキスト・モデル
1710よりデコーダ1711に対して、リクエスト信
号1712が出力される。リクエスト信号1713もデ
コーダ1711より出力され、同信号は次のエンコード
データを要求するためにFIFO1701へ接続され
る。
【0129】コード化データはFIFO1701にバッ
ファリングされる。本発明においては、FIFO170
1のサイズは任意でよい。現時点の好適実施例では、F
IFO1701はコード化ファイル全体より小さい。F
IFO1701の出力は、ビットストリーム・ジェネレ
ータと確率推定マシンからなるデコーダへ送られる。F
IFO1701は、リクエスト信号1713により、デ
ータの送出を要求される。しかし、FIFO1701
は、どのビットストリーム・ジェネレータがデータを要
求したかを予め知っているわけではない−データが要求
したビットストリーム・ジェネレータへ与えられるにす
ぎない。コンテキスト・モデル1710は、PEM17
06〜1709を介して、ある既知の順番で、ビットス
トリーム・ジェネレータ1702〜1705に対してデ
コードデータを要求する。その結果、ビットストリーム
・データ1702〜1705が必然的順番でコード化デ
ータを要求する。
【0130】なお、CM1710がFIFO1701の
データ供給速度より高速に動作するならば、FIFO1
701はビットストリーム・ジェネレータへのデータを
供給するために複数の(つまり並列的な)要求に適応で
きなければならない。並列的な要求を扱うためには、F
IFO1701は、複数の要求を受け付けることを要請
され、かつ、要求されたデータが正しいビットストリー
ム・ジェネレータへ確実に送られるように要求元を管理
することを要請される。
【0131】現時点の好適実施例では、コンテキスト・
モデル1710はFIFO1701より高速に動作す
る。FIFOが空になると、エンコーダ全体及びコンテ
キスト・モデルは、次のデータが到着するまで停止す
る。
【0132】図21は、確率クラスを並列に処理するイ
ンターリーブ並列アーキテクチャのブロック図である。
図21において、このインターリーブ並列アーキテクチ
ャは、データを受け取ってエンコードするエンコーダ1
808、FIFO1801、デコーダ1800からな
る。デコーダ1800はビットストリーム・ジェネレー
タ1802〜1805と、確率推定モジュール(PE
M)/コンテキスト・モジュール1806とからなる。
FIFO1801の入力はエンコードされた入力データ
と接続される。FIFO1801の出力は、デコーダ1
800のビットストリーム・ジェネレータ1802〜1
805に接続されている。ビットストリーム・ジェネレ
ータ1802〜1805は、デコードされた出力データ
を送出するPEM/CM1806に接続されている。リ
クエスト信号1807がデコーダ1800より出力さ
れ、これは、次のエンコードデータを要求するためにF
IFO1801に接続される。なお、ビットストリーム
・ジェネレータの実際の個数は増減する。
【0133】コード化データは、FIFO1801にバ
ッファリングされ、図20中のFIFO1701の場合
と同じように、リクエスト信号1807に応じてビット
ストリーム・ジェネレータ1802〜1805へ供給さ
れる。ビットストリーム・ジェネレータ1802〜18
05は、そのコード化データをデコードする。PEM/
CM1806は、確率クラスに従った既知の順序で、ビ
ットストリーム・ジェネレータ1802〜1805に対
してデコードデータを要求し、その結果、ビットストリ
ーム・ジェネレータ1802〜1805は必然的順序で
データを要求する。PEM/CM1806は、図16中
のPEM/CMと同じように動作をする。
【0134】コンテキスト・モデルの動作速度を活かす
ため、FIFOに対立するものとして、レジスタのシリ
ーズを、ビットストリーム・ジェネレータへデータを供
給するために使用できる。そのような方式の一実施例が
図22に示されている。図22において、データを受け
取ってエンコードするエンコーダ1912が示されてい
る。コード化データはチャネル分配部(channel delive
ry)1911に受け取られる。FIFO1901はコー
ド化データ入力を受け取るよう接続される。FIFO1
901はコントロールロジック(図示されていない)に
より制御される。FIFO1901はコード化データを
直列接続されたレジスタ1902〜1905に供給す
る。FIFO1901より出力されたコード化データは
レジスタ1902の一入力に接続される。レジスタ19
02はレジスタ1903及びビットストリーム・ジェネ
レータ1909の両方に出力される。レジスタ1903
は、レジスタ1902より出力されたコード化データを
受け取り、それをレジスタ1904及びビットストリー
ム・ジェネレータ1908へ出力するように接続されて
いる。レジスタ1904はレジスタ1903よりコード
化データを受け取り、それをレジスタ1905及びビッ
トストリーム・ジェネレータ1907へ出力するように
接続されている。レジスタ1905は、コード化データ
をビットストリーム・ジェネレータ1906へ出力す
る。ビットストリーム・ジェネレータ1906〜190
9は、デコードデータを出力する確率推定モジュール
(PEM)/コンテキスト・モデル(CM)1910に
接続されている。ビットストリーム・ジェネレータ19
06〜1909のそれぞれは、レジスタ1905〜19
02にも接続されている。すなわち、レジスタ1902
〜1905のそれぞれは、そのビットストリーム・ジェ
ネレータに対し、それからのリクエスト信号に応答して
コード化データを供給する。なお、ビットストリーム・
ジェネレータ1906〜1909及びPEM/CMは図
20中のいくつかのコンポーネントと同じように動作す
る。
【0135】FIFO1901は、レジスタ1902〜
1905を介してコード化データをビットストリーム・
ジェネレータ1906〜1909へ供給する。しかし、
レジスタ1902〜1905は直列に接続されているの
で、データはレジスタ1902からレジスタ1905へ
向かって順に供給される。あるレジスタ内のコード化デ
ータが使用される時に、それより下のレジスタから出力
されるコード化データが次のコード化データを与える。
コンテキスト・モデルが、FIFOがデータを供給でき
る速度より高速にデコード・データを要求できる場合、
複数のビットストリーム・ジェネレータが同一メモリサ
イクル中にデータを要求するかもしれない。図22に示
したレジスタ方式は、コード化データに対する複数の要
求に同時に応じることができる。例えば、レジスタ19
04及びレジスタ1905のデータが使用済みになった
時に、レジスタ1903及びレジスタ1902のコード
化データが(要求された時に)上側にシフトされ、次に
ビットストリーム・ジェネレータ1906,1907に
よりデコードされるべきコード化データとなる。また、
新しいデータがFIFO1901よりレジスタ190
3,1902に取り込まれる。
【0136】なお、そのような構成下では、コード化デ
ータが正しいビットストリーム・ジェネレータに関係付
けられたレジスタへシフトインされる必然的な順序が存
在する。したがって、コード化データが使用される順序
に並べられることによって、つぎのデータに対する各要
求の後にレジスタ1902〜1905すべてにコード化
データが入っている。この種の構成によって、Nサイク
ル毎に同時にN個のアクセスを発生させることができ
る。例えば、2個のビットストリーム・ジェネレータは
2サイクル毎に同時にアクセスすることができ、4個の
ビットストリーム・ジェネレータは4サイクル毎に同時
にアクセスすることができる。
【0137】このようなインターリーブ装置に関して付
追加される制御は、どのビットストリーム・ジェネレー
タが次のコード化データを要求したかを判断し、各メモ
リ(すなわちFIFO)サイクル後にレジスタ1902
〜1905のそれぞれにデータが入っているように、シ
フトする量を判断し、かつシフトを止める位置を判断す
る制御である。なお、レジスタ1902〜1905のそ
れぞれをFIFOにすることも可能であるが、この場合
には付加的な制御回路が必要になろう。
【0138】〈インターリーブ装置用エンコーディン
グ〉エンコーダとデコーダの主要な違いは、エンコーダ
は、一つのランのデータをカウントしている間、そのラ
ンの終わりまで、コードの送出を待たなければならない
ことである。デコーダは、ランの初めに符号語を必要と
し、その後にデコードと有効ビットの送出が可能にな
る。このようなデコーダの要求とエンコーダの能力との
間のずれは、コンテキスト・ビンが1個ならば問題には
ならない。コンテキスト・ビンが複数個の場合、データ
ストリームは多数のコンテキスト・ビンのデータストリ
ームに分割される。ストリーム毎にデータのエンコーデ
ィング速度が異なる。これが単一のストリームへと結合
された時には、上記のずれをエンコーダで幾分は修正し
なければならない。例えば、コンテキスト・ビンが1個
のエンコーダが非常に長いランの始まりの1ビットに出
会ったとすると、このランの最終的に生成する符号語
は、デコーダが次に必要とするコードである。しかし、
当該コンテキスト・ビンの当該ランが終わる前に、他の
コンテキスト・ビンのコーダによって多数の他の符号語
が生成されるかもしれない。これらの他の符号語を、最
初のコンテキスト・ビンのランが終わってコーダが符号
語を送出するまで、記憶しておかなければならない。
【0139】他のコーダにより生成される符号語を記憶
するために必要なメモリ量が分からないという問題が持
ち上がる。したがって、装置はメモリによって制約を受
ける。非リアルタイムのソフトウエアにより実現する場
合、コンピュータのメモリは通常大きいので、問題にな
ることは少ない。図23では、このメモリ記憶はビット
パッキング(bit packing)と結合されたバッファとし
て示されている。なお、これはバッファを1個だけ用い
て、あるいは他のメモリ構成を用いて、実現することが
できる。
【0140】前述したように、各コンテキスト・ビンの
可変長符号語は一定のワードサイズにパックされる。そ
うでないと、デコーダは符号語長を調べるためにフィー
ドバックループを持たざるを得ず、これは並列アーキテ
クチャの目的にそぐわない。もう一つの問題は、正しい
順番を決定するための状態マシンを作ることである。デ
ータをデコードすべき順番の決定は複雑で、様々な方法
が存在する。この順番を決めるための一つの方法は、デ
コーダのコピー(”スヌーパー”(snooper)デコー
ダ)をエンコーダ内に備える方法である。この”スヌー
パー”デコーダは、エンコーディング直後にデータをデ
コードする。したがって、この”スヌーパー”デコーダ
から出る符号語要求は、チャネルの他方の端にある実際
のデコーダの場合と全く同一である。
【0141】本発明において、エンコーダは全てのデー
タをエンコードし、コンテキスト・ビンはビット・パッ
クされる。それから、デコーダが、ある順序で符号語を
要求するが、この順序はコード化データストリームを正
しく生成するために使用される。
【0142】図16には、エンコーダ・ブロックの詳細
は示されていない。エンコーダはオリジナルデータをコ
ンテキスト・ビンにアレンジして各ビンをエンコード
し、出力を適当な順序に並べる。本発明のエンコーダの
一実施例が図23に示されている。現在、エンコーディ
ングは、非リアルタイム、シリアルストリーム、メモリ
中心のやり方で、ソフトウエアにより実行されるが、同
じブロック構成をハードウエアによる構成により説明す
ることができる。
【0143】図23を参照する。エンコーダ2000は
コンテキスト・モデル2001、エンコード/確率推定
モジュール2002〜2005、ビットパック(bit pa
ck)バッファ2006〜2009、及び順序ブロック2
010から構成される。コンテキスト・モデル2001
は、データ入力ストリームを受け取り、コンテキスト・
ビンによるデータをエンコード/確率推定モジュール2
002〜2005へ出力するように接続されている。エ
ンコード/確率推定モジュール2002〜2005のそ
れぞれは、別々のコンテキストデータストリームを受け
取ってエンコードするように接続されている。エンコー
ド/確率推定モジュール2002〜2005の出力は、
ビットパック・バッファ2006〜2009にそれぞれ
接続され、そこにエンコードデータが格納される。ビッ
トパック・バッファ2006〜2009の出力は順序ブ
ロック2010に接続され、順序ブロック2010は順
序付けられた圧縮コードストリームを出力する。
【0144】図24は、図23に示した順序ブロックを
実現する、本発明のスヌーパー・デコーダのブロック図
を示す。図24において、スヌーパー・デコーダ210
0は、ビットパック・バッファ2101〜2103に接
続されるように示されている。ビットパック・バッファ
は3個しか示されていないが、それより多い、または少
ないビットパック・バッファを使用してもよい。ビット
パック・バッファ2101〜2103は、エンコードデ
ータをスヌーパー・デコーダへ出力する。
【0145】現時点の好適実施例では、スヌーパー・デ
コーダはデコーダデータ要求調停部(arbitrator)21
04、デコーダ2105〜2107、コンテキスト・モ
デル2108からなる。なお、デコーダは3個だけ示さ
れているが、任意個数のデコーダを用いることができ
る。ビットパック・バッファ2101〜2103の出力
はデコーダデータ要求調停部2104に接続される。デ
コーダ2105〜2107は、調停部2104にデータ
を要求するように接続されている。要求されたデータ
は、順序付けられた圧縮コードストリームとしても、調
停部2104より出力される。デコーダ2105〜21
07はコンテキスト・モデル2108に接続され、この
コンテキスト・モデル2108はデコーダ2105〜2
107に対して要求すべきデータを指示する。コンテキ
スト・モデル2108はデコードデータを出力するが、
これは使用されない。
【0146】コンテキスト・モデル2108はデコーダ
2105〜2107にデータを要求し、これによってビ
ットパック・バッファよりデータが取り込まれる。調停
部2104は、二重の要求を調停し、デコーダ2105
〜2107の一つにデータが送られた時に、順序付けら
れた圧縮データとしてデータを出力する。なお、スヌー
パー・デコーダ2100は、デコーダ2105〜210
7の2つ以上で同時にデータが無くなった(コンテキス
ト・モデルより並列に出力された)時に、どのデコーダ
が最初にデータを受け取るべきか決定するために調停部
2104を備えている。また、コンテキスト・モデル
は、コンテキスト・ストリームをオリジナルデータのス
トリームに再統合し、そして順序を決定する。
【0147】ファクシミリ装置のような二重システムの
場合、デコーダはシステムの必須部分であるので、スヌ
ーパー・デコーダの機能のためにハードウエアを殆どま
たは全く追加する必要がない。
【0148】本発明のエンコーダの他の実施例が図25
に示されている。図25において、エンコーダ2200
はコンテキスト・モデル(CM)/確率推定モジュール
(PEM)2201、ビットパック・バッファ2202
〜2205、順序ジェネレータ2206からなる。CM
/PEM2201は、データ入力ストリームを受け取
り、確率クラス(Pクラス)によるデータをビットパッ
ク・バッファ2202〜2205へ出力するように接続
され、ビットパック・バッファはそのエンコードデータ
を記憶する。ビットパック・バッファ2202〜220
5は、エンコードデータを記憶し、そのデータを順序ジ
ェネレータ2206へ、それからの要求に応答して出力
する。順序ジェネレータ2206は、ビットパック・バ
ッファ2202〜2206からデータを受け取り、順序
付けた圧縮コードストリームを出力するように接続され
ている。
【0149】〈装置の応用〉全ての圧縮装置により得ら
れる効果の一つは、データの集合のために必要な記憶容
量の削減である。非損失性バイナリコーディング装置が
現在利用されているあらゆる用途に、本発明の並列装置
を使用することができる。このような用途としては、フ
ァクシミリ圧縮、データベース圧縮、ビットマップグラ
フィックイメージの圧縮、JPEGやMPEGといった
画像圧縮規格における変換係数の圧縮がある。本発明
は、小量効率的なハードウエアにより実現することもソ
フトウエアにより相当高速に実現することも可能であ
り、高速性を必要としない用途においても本発明は効果
的である。
【0150】本発明の真の効果は、従来技術を超えて、
特にデコーディングの場合に非常に高速な動作が可能で
あることである。したがって、本発明は、高速コンピュ
ータネットワーク、衛星放送チャネル、地上放送チャネ
ルといった広域高速チャネルを十二分に活用することが
できる。図26は、そのようなシステムを示しており、
放送データまたは高速コンピュータネットワークのデー
タがデコーディング装置2301に与えられ、このデコ
ーディング装置はそのデータを並列にデコードして出力
データを送出する。現在のハードウエアによるエントロ
ピー・コーダ(例えばQコーダ)では、これらのシステ
ムのスループットを低下させてしまう。これらシステム
は全て、高バンド幅を得るために非常に高コストの設計
である。デコーダによりスループットを低下させたまま
にしておくのは非生産的である。本発明の並列装置は、
これらの高バンド幅に対応できるが、実はそれだけでは
なく、データを圧縮した形で伝送できるので実効バンド
幅を増加させる。
【0151】本発明の並列装置は、ISDN、CD−R
OM、SCSIのような中速度チャネルから、より高い
実効バンド幅を得るためにも利用できる。このようなバ
ンド幅マッチングシステムが図27に示されている。C
D−ROM、イーサネット(Ethernet)、小型コンピュ
ータ標準インターフェイス(SCSI)、その他同様の
ソースからのデータはデコーディング装置2401に接
続され、デコーディング装置2401はそのデータを受
け取ってデコードし出力する。これらのチャネルは、現
在のある種のコーダより高速である。これらのチャネル
は、それ自体のバンド幅より高いバンド幅を必要とする
データソースのサービスのために使用されることも多
い。例えば、リアルタイム・ビデオシステムやコンピュ
ータベースのマルチメディアシステムである。本発明の
装置は、バンド幅マッチングの役割を果たすことができ
る。
【0152】本発明の装置は、最新の高品位テレビジョ
ン(HDTV)やMPEGビデオ規格のようなリアルタ
イム・ビデオシステムのエントロピー・コーダ部に最適
である。かかるシステムが図28に示されている。図2
8において、このリアルタイム・ビデオシステムは、デ
コーディング装置2501が圧縮画像データに接続され
る。デコーディング装置2501は、そのデータをデコ
ードして損失性デコーダ2502へ出力する。損失性デ
コーダ2502は、例えばHDTVまたはMPEGデコ
ーダの変換、色変換及びサブサンプリングの部分であ
る。モニタ2503はテレビジョンまたはビデオモニタ
である。
【0153】
【発明の効果】以上の詳細な説明から明らかなように、
本発明によれば、並列処理によって極めて高速のデコー
ディングが可能になる。複数のコンテキスト・ビンの並
列処理によって高速にデコーディングを行なう方法及び
装置を実現できる。複数の確率クラスの並列処理によつ
て高速にデコーディングを行なう方法及び装置を実現で
きる。集積回路で安価に複製可能な単純なデコーダを用
い並列処理により高速デコーディングを行なうことが可
能になる。従来のデコーディング装置の高速化のネック
の一つであった大きな低速フィードバックループを排除
することができる。単純なコードを使用し、デコーディ
ング効率を向上させ、かつ、デコーディング装置のハー
ドウエアを単純化・高速化することができる。確率推定
モジュールのハードウエアコストの削減が可能になる。
パイプライン技法を導入した高速デコーディング装置を
実現できる。並列処理による高速のエンコーディングを
行なう方法及び装置を実現できる。可変長符号語を一定
のワードサイズにパックしたコード化ストリームを生成
する、並列デコーディングの目的に好適なエンコーディ
ング装置を実現できる。スヌーパー・デコーダを備える
ことにより、デコーダ側で要求される順序に従ってコン
テキスト・ビンの符号語を並べたコード化データストリ
ームを高速に生成する、並列デコーディングの目的に好
適なエンコーディグ装置を実現できる。ファクシミリの
ような二重システムで使用するに好適なエンコーディン
グ装置を実現できる。高速コンピュータネットワーク等
での使用に最適なデコーディング装置を実現できる。リ
アルタイム・ビデオシステムのエントロピー・コーダ部
に最適なデコーディング装置を実現できる、等々の多く
の効果を得られる。
【図面の簡単な説明】
【図1】従来のバイナリエントロピー・エンコーダ及び
デコーダを示すブロック図である。
【図2】従来のデコーダのブロック図である。
【図3】本発明のデコーダのブロック図である。
【図4】コンテキスト・ビンを並列処理する本発明のデ
コーダのブロック図である。
【図5】確率クラスを並列処理する本発明のデコーダの
ブロック図である。
【図6】本発明のRコーダのための確率推定テーブル及
びビットストリーム・ジェネレータの一例を示す図であ
る。
【図7】符号化効率対MPS確率のグラフである。
【図8】本発明のRコーダ伸長装置のブロック図であ
る。
【図9】本発明のRコーダの一例のブロック図である。
【図10】本発明における一つのRコーダのブロック図
である。
【図11】本発明のRコーダの制御論理の回路構成の一
例を示す回路図である。
【図12】RコーダのためのPEMの回路構成の一例を
示す回路図である。
【図13】Rコーダのシフタ、デコーダ及びカウンタの
回路構成の一例を示す回路図である。
【図14】非インターリーブ・多チャネル並列アーキテ
クチャを示すブロック図である。
【図15】非インターリーブ・多チャネル並列デコーデ
ィング・アーキテクチャを示すブロック図である。
【図16】は非インターリーブ・単一チャネル並列アー
キテクチャを示すブロック図である。
【図17】非インターリーブ・単一チャネル並列デコー
ディング・アーキテクチャを示すブロック図である。
【図18】本発明において使用される連結コードストリ
ームの一例を示す図である。
【図19】Rコーダを使用する非インターリーブ・単一
チャネル並列デコーディング・アーキテクチャを示すブ
ロック図である。
【図20】本発明によるコンテキスト・ビンを処理する
インターリーブ・並列デコーディング装置の一例わ示す
ブロック図である。
【図21】本発明による確率クラスを処理するインター
リーブ並列デコーディング装置の一例を示すブロック図
である。
【図22】複数の要求を同時にサポートするインターリ
ーブ並列デコーディング装置のブロック図である。
【図23】本発明の並列デコーディング装置の一例のブ
ロック図である。
【図24】本発明のスヌーパー(snooper)デコーダの
一例のブロック図である。
【図25】本発明の並列エンコーディング・アーキテク
チャの一例のブロック図である。
【図26】本発明を用いた高バンド幅システムのブロッ
ク図である。
【図27】本発明を用いたバンド幅マッチングシステム
のブロック図である。
【図28】本発明を用いた実時間ビデオ装置のブロック
図である。
【符号の説明】
101,104 コンテキスト・モデル(CM) 102,105 確率推定モジュール(PEM) 103,106 ビットストリーム・ジェネレータ(B
G) 201 入力バッファ 202 デコーダ 203 コンテキスト・モデル 204 入力バッファ 205 デコーダ 207 デコードデータメモリ 206 コンテキスト・モデル 221 チャネル・コントロール 222〜224 ビットストリーム・ジェネレータ(B
G) 225〜227 確率推定モジュール(PEM) 228 コンテキスト・モデル(CM) 231 チャネル・コントロール 232〜234 ビットストリーム・ジェネレータ(B
G) 235 確率推定モジュール(PEM) 236 コンテキスト・モデル(CM) 501 Rコード・デコーダ 502 ラン・カウンタ 600 Rコード・デコーダ 601 シフトブロック 602 デコードブロック 603 ラン・カウンタ 604 確率推定モジュール(PEM) 1101 エンコーダ 1102〜1105 ビットストリーム・ジェネレータ
(BG) 1106 確率推定モジュール(PEM)/コンテキス
ト・モデル(CM) 1107〜1110 チャネル 1111 デコーダ 1201〜1204 チャネル 1205〜1208 ビットストリーム・ジェネレータ
(BG) 1209〜1212 確率推定モジュール(PEM) 1213 コンテキスト・モデル(CM) 1214 デコーダ 1215 エンコーダ 1300 エンコーダ 1301 デコーダ 1303 メモリ・メモリコントロール 1304〜1307 ビットストリーム・ジェネレータ
(BG) 1308 確率推定モジュール(PEM)/コンテキス
ト・モデル(CM) 1401 メモリ・メモリコントロール 1402〜1405 ビットストリーム・ジェネレータ
(BG) 1406〜1409 確率推定モジュール(PEM) 1410 コンテキスト・モデル(CM) 1411 デコーダ 1412 エンコーダ 1501〜1503 ポインタ 1504〜1506 コンテキストビン・データ 1600 デコーダ 1601 メモリ 1602 デコーダ/確率推定モジュール(PEM) 1603 アドレス・ジェネレータ 1604〜1607 カウンタ 1608 コンテキスト・モデル(CM) 1609 エンコーダ 1701 FIFO 1702〜1705 ビットストリーム・ジェネレータ
(BG) 1706〜1709 確率推定モジュール(ぺ) 1710 コンテキスト・モデル(CM) 1711 デコーダ 1713 エンコーダ 1800 デコーダ 1801 FIFO 1802〜1805 ビットストリーム・ジェネレータ
(BG) 1806 確率推定モジュール/コンテキスト・モデル 1808 エンコーダ 1900 デコーダ 1901 FIFO 1902〜1905 レジスタ 1906〜1909 ビットストリーム・ジェネレータ
(BG) 1910 確率推定モジュール/コンテキスト・モデル 1911 チャネル分配部 1912 エンコーダ 2000 エンコーダ 2001 コンテキスト・モデル 2002〜2005 エンコードPEM 2006〜2009 ビットパック・バッファ 2010 順序ブロック 2100 スヌーパー・デコーダ 2101〜2103 ビットパック・バッファ 2104 デコーダデータ要求調停部 2105〜2107 デコーダ 2108 コンテキスト・モデル 2200 エンコーダ 2201 コンテキスト・モデル/確率推定モジュール 2202〜2205 ビットパック・バッファ 2206 順序ジェネレータ 2301,2401,2501 デコーディング装置 2502 HDTV/MPEG損失性デコーダ 2503 テレビジョン/ビデオモニタ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06T 9/00 H04N 1/41 Z 7/30 H04N 7/133 Z (72)発明者 ジェイムス ディ アレン アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコー コーポレーション 内 (72)発明者 マーティン ピィ ボーリック アメリカ合衆国 カリフォルニア州 94025 メンローパーク サンド ヒル ロード 2882 リコー コーポレーション 内

Claims (84)

    【特許請求の範囲】
  1. 【請求項1】 複数の符号語からなるデータストリーム
    を伸長するための装置であって、 該データストリームの該複数の符号語を受け取るための
    チャネル手段;及び該データストリームの各符号語をデ
    コードするための、該チャネル手段に接続されたデコー
    ディング手段を具備し、 該デコーディング手段において、該データストリーム中
    の該符号語の少なくとも2つが同時にデコードされるこ
    とによって、該データストリームは並列にデコードされ
    るデータ伸長装置。
  2. 【請求項2】 請求項1のデータ伸長装置において、該
    デコーディング手段がコンテキスト・ビンを並列処理す
    るための手段を含むことを特徴とするデータ伸長装置。
  3. 【請求項3】 請求項1記載のデータ伸長装置におい
    て、該デコーディング手段が確率クラスを並列処理する
    ための手段を含む、ことを特徴とするデータ伸長装置。
  4. 【請求項4】 請求項1記載のデータ伸長装置におい
    て、該チャネル手段が少なくとも2つのデータストリー
    ムを並列に提供する、ことを特徴とするデータ伸長装
    置。
  5. 【請求項5】 請求項1記載のデータ伸長装置におい
    て、該チャネル手段が複数のチャネルからなる、ことを
    特徴とするデータ伸長装置。
  6. 【請求項6】 請求項4記載のデータ伸長装置におい
    て、該チャネル手段が単一の非インターリーブチャネル
    からなる、ことを特徴とするデータ伸長装置。
  7. 【請求項7】 請求項4記載のデータ伸長装置におい
    て、該チャネル手段が単一のインターリーブチャネルか
    らなる、ことを特徴とするデータ伸長装置。
  8. 【請求項8】 請求項1記載のデータ伸長装置におい
    て、該データストリームの符号語が画像データからな
    り、該デコーディング手段が画像データを並列にデコー
    ドする、ことを特徴とするデータ伸長装置。
  9. 【請求項9】 データストリームを受け取って該データ
    ストリームを複数の符号語にエンコードするためのエン
    コーディング手段をさらに具備する、ことを特徴とする
    請求項1記載のデータ伸長装置。
  10. 【請求項10】 複数の符号語からなるデータストリー
    ムを伸長するための装置であって、 該データストリームの複数の符号語を受け取るためのチ
    ャネル手段、 該データストリーム中の各符号語をデコードするため
    の、該チャネル手段に接続されたデコーディング手段を
    具備し、該デコーディング手段において該データストリ
    ーム中の少なくとも2つの符号語が同時にデコードされ
    ることにより該少なくとも2つの符号語よりデコードさ
    れたデータのビットが並列に出力され;かつ該デコード
    されたデータを記憶するための、該デコーディング手段
    に接続されたデータ記憶手段、及び該データ記憶手段よ
    りデコードされたデータを、それがその元の順序で出力
    されるように選択する、該データ記憶手段に接続された
    モデリング手段を具備するデータ伸長装置。
  11. 【請求項11】 請求項10記載のデータ伸長装置にお
    いて、該デコーディング手段が複数のデコーダからな
    る、ことを特徴とするデータ伸長装置。
  12. 【請求項12】 請求項11記載のデータ伸長装置にお
    いて、該複数のデコーダのそれぞれが、少なくとも1つ
    のコンテキスト・ビンに対応したデータをデコードする
    ことにより、コンテキスト・ビンに従って符号語が並列
    に処理される、ことを特徴とするデータ伸長装置。
  13. 【請求項13】 請求項12記載のデータ伸長装置にお
    いて、該複数のデコーダの少なくとも1つが、あるクラ
    スのコンテキスト・ビンに対応したデータをデコードす
    る、ことを特徴とするデータ伸長装置。
  14. 【請求項14】 請求項11記載のデータ伸長装置にお
    いて、該複数のデコーダのそれぞれが、少なくとも1つ
    の確率クラスに対応したデータをデコードすることによ
    り、確率クラスに従って符号語が並列にデコードされ
    る、ことを特徴とするデータ伸長装置。
  15. 【請求項15】 複数の符号語からなるデータストリー
    ムを伸長するための装置であって、 該データストリームの複数の符号語を受け取るためもの
    であって、該データストリームを複数の並列データスト
    リームとして提供する手段を含む、チャネル制御手段、 該複数の並列データストリームの一つにそれぞれ接続さ
    れた複数のビットストリーム・ジェネレータを具備し、
    該複数のビットストリーム・ジェネレータのそれぞれは
    該複数の並列データストリームの符号語のそれぞれをデ
    コードし、該複数のビットストリーム・ジェネレータの
    少なくとも2つが符号語を同時にデコードすることによ
    り、データストリームが並列にデコードされてデコード
    データが生成され、かつ該ビットストリーム・ジェネレ
    ータからのデコードデータを選択して、それをある必然
    的順序で出力するための、該複数のビットストリーム・
    ジェネレータに接続されたモデリング手段を具備するデ
    ータ伸長装置。
  16. 【請求項16】 それぞれが該モデリング手段及び該複
    数のビットストリーム・ジェネレータの一つに接続され
    た、該複数のビットストリーム・ジェネレータに対して
    確率推定値を提供するための複数の確率推定手段をさら
    に具備し、 該複数のビットストリーム・ジェネレータのそれぞれは
    少なくとも1つのコンテキスト・ビンに関係付けられる
    ことにより、異なったコンテキスト・ビンの符号語が該
    複数の確率推定手段より受け取られた確率推定値に従っ
    て並列にデコードされ、該モデリング手段は該複数の確
    率推定手段のそれぞれを該必然的順序で選択して該複数
    のビットストリーム・ジェネレータからのデコードデー
    タを出力する、ことを特徴とする請求項15記載のデー
    タ伸長装置。
  17. 【請求項17】 該モデリング手段及び該複数のビット
    ストリーム・ジェネレータのそれぞれに接続された、該
    複数のビットストリーム・ジェネレータに対して確率推
    定値を提供するための確率推定手段をさらに具備し、 該複数のビットストリーム・ジェネレータのそれぞれは
    少なくとも1つの確率クラスに関係付けられることによ
    り、異なった確率クラスの符号語が該確率推定手段より
    受け取られた確率推定値に従って並列にデコードされ、
    該モデリング手段は該確率推定手段に対し該必然的順序
    でコンテキストを提供して該複数のビットストリーム・
    ジェネレータからのデータを選択することにより、該確
    率推定手段は該複数のビットストリーム・ジェネレータ
    からのデコードデータを選択する、ことを特徴とする請
    求項15記載のデータ伸長装置。
  18. 【請求項18】 請求項15記載のデータ伸長装置にお
    いて、該チャネル制御手段が、 該データストリームを記憶するためのメモリ手段、及び
    少なくとも1つのコンテキスト・ビンに対応したデータ
    ストリームを該複数のビットストリーム・ジェネレータ
    のそれぞれに対して提供する、該メモリ手段及び該複数
    のビットストリーム・ジェネレータに接続された少なく
    とも1つのチャネルを具備する、ことを特徴とするデー
    タ伸長装置。
  19. 【請求項19】 請求項15記載のデータ伸長装置にお
    いて、該チャネル制御手段が、 該データストリームを記憶するためのメモリ手段、及び
    少なくとも1つの確率クラスに対応したデータストリー
    ムを該複数のビットストリーム・ジェネレータのそれぞ
    れに対して提供する、該メモリ手段及び該複数のビット
    ストリーム・ジェネレータに接続された少なくとも1つ
    のチャネルを具備する、ことを特徴とするデータ伸長装
    置。
  20. 【請求項20】 請求項15記載のデータ伸長装置にお
    いて、該チャネル制御手段が、 該データストリームを受け取るためのメモリ手段、 それぞれが該複数のビットストリーム・ジェネレータの
    1つに接続され、該接続されたビットストリーム・ジェ
    ネレータに対してデータを運ぶ、複数のチャネル、及び
    該メモリ手段からのデータストリーム中のデータを該複
    数のチャネルへ送るための手段を具備する、ことを特徴
    とするデータ伸長装置。
  21. 【請求項21】 請求項15記載のデータ伸長装置にお
    いて、該データストリームが連結されたコードストリー
    ムからなり、該チャネル制御手段が該連結されたコード
    ストリームの適当な部分を該複数のビットストリーム・
    ジェネレータ中の適当な1つへ送るための手段を含む、
    ことを特徴とするデータ伸長装置。
  22. 【請求項22】 請求項21記載のデータ伸長装置にお
    いて、該連結されたコードストリームが各コンテキスト
    ・ビンのデータ、及び、当該各コンテキスト・ビンのデ
    ータの位置を示すための複数のポインタからなる、こと
    を特徴とするデータ伸長装置。
  23. 【請求項23】 請求項21記載のデータ伸長装置にお
    いて、該連結されたコードストリームが各確率クラスの
    ためのデータ、及び、当該各確率クラスのためのデータ
    の位置を示すための複数のポインタからなる、ことを特
    徴とするデータ伸長装置。
  24. 【請求項24】 請求項15記載のデータ伸長装置にお
    いて、該チャネル制御手段が該データストリーム中の符
    号語を適当なビットストリーム・ジェネレータへ送るた
    めの手段を含む、ことを特徴とするデータ伸長装置。
  25. 【請求項25】 請求項15記載のデータ伸長装置にお
    いて、該チャネル制御手段がFIFOを含む、ことを特
    徴とするデータ伸長装置。
  26. 【請求項26】 請求項15記載のデータ伸長装置にお
    いて、該チャネル制御手段が、 該データストリームを受け取って、該データストリーム
    を予め決められた順序で出力するためのメモリ手段、及
    び該メモリ手段より出力されるデータに直列的に接続さ
    れた複数のレジスタ手段を具備し、 該複数のレジスタ手段がそれぞれ、該複数のビットスト
    リーム・ジェネレータの一つに接続されて該複数のビッ
    トストリーム・ジェネレータの関連した一つに対し該デ
    ータストリームの少なくとも1つの符号語を供給し、符
    号語が少なくとも2つのビットストリーム・ジェネレー
    タにより使用される時に、複数のデータ要求をすること
    が可能でかつ該複数のレジスタ手段の間でデータがシフ
    トされ、各アクセス後に該レジスタ手段全部にデータが
    保持されるように、該データストリームが順序付けられ
    る、ことを特徴とするデータ伸長装置。
  27. 【請求項27】 請求項26記載のデータ伸長装置にお
    いて、該メモリ手段がFIFOからなる、ことを特徴と
    するデータ伸長装置。
  28. 【請求項28】 請求項26記載のデータ伸長装置にお
    いて、該レジスタ手段のそれぞれがFIFOからなる、
    ことを特徴とするデータ伸長装置。
  29. 【請求項29】 該複数のビットストリーム・ジェネレ
    ータの少なくとも2つが同時にメモリ手段に対しデータ
    を要求した時に該メモリ手段に対するアクセスを調停す
    るための、該複数のビットストリーム・ジェネレータに
    接続された調停手段をさらに具備する、ことを特徴とす
    る請求項15記載のデータ伸長装置。
  30. 【請求項30】 請求項15記載のデータ伸長装置にお
    いて、該複数のビットストリーム・ジェネレータがRx
    (k)コードを使用する(ただしx及びkは整数)、こと
    を特徴とするデータ伸長装置。
  31. 【請求項31】 請求項15記載のデータ伸長装置にお
    いて、該複数のビットストリーム・ジェネレータがR2
    (k)コード及びRn(k)コードを使用する(ただしnは整
    数)、ことを特徴とするデータ伸長装置。
  32. 【請求項32】 請求項31記載のデータ伸長装置にお
    いて、n=3であり、該複数のビットストリーム・ジェ
    ネレータがR2(k)コードとR3(k)コードを使用する、こ
    とを特徴とするデータ伸長装置。
  33. 【請求項33】 請求項15記載のデータ伸長装置にお
    いて、該複数のビットストリーム・ジェネレータが可変
    長−可変長コードを使用する、ことを特徴とするデータ
    伸長装置。
  34. 【請求項34】 請求項15記載のデータ伸長装置にお
    いて、該複数のビットストリーム・ジェネレータがカス
    ケードされたコードを用いて確率クラスを並列にデコー
    ドする、ことを特徴とするデータ伸長装置。
  35. 【請求項35】 請求項15記載のデータ伸長装置にお
    いて、該コードの少なくとも1つが、該確率クラスのあ
    る1つに関し、下に示すように入力データがデコードさ
    れるコードからなる、ことを特徴とするデータ伸長装
    置。
  36. 【請求項36】 請求項15記載のデータ伸長装置にお
    いて、該複数のビットストリーム・ジェネレータのそれ
    ぞれがバイナリ算術コーダを使用する、ことを特徴する
    データ伸長装置。
  37. 【請求項37】 複数の符号語からなるデータストリー
    ムを伸長するための方法であって、 該データストリームより複数のデータストリームを供給
    するステップ、及び複数のビットストリーム・ジェネレ
    ータを使用し、該複数のデータストリーム中のデータに
    応じてデコード結果を生成するステップを有し、ここに
    おいて該デコード結果の少なくとも2つは同時に生成さ
    れることによってデコード結果は並列に生成され、かつ
    デコード結果を選択して伸長データを必然的なデータ順
    序に従って出力するステップを有し、該データストリー
    ムが並列にデコードされるデータ伸長方法。
  38. 【請求項38】 請求項37記載のデータ伸長方法にお
    いて、複数のデータストリームを供給するステップが、
    それぞれがある特定のコンテキスト・ビンに対応した複
    数のデータストリームを供給する、ことを特徴とするデ
    ータ伸長方法。
  39. 【請求項39】 請求項37記載のデータ伸長方法にお
    いて、複数のデータストリームを供給するステップが、
    それぞれがある特定の確率クラスに対応した複数のデー
    タストリームを生成する、ことを特徴とするデータ伸長
    方法。
  40. 【請求項40】 請求項37記載のデータ伸長方法にお
    いて、デコード結果を選択するステップが、デコードさ
    れたデータを並列に出力するステップを含む、ことを特
    徴とするデータ伸長方法。
  41. 【請求項41】 複数の符号語からなるデータストリー
    ムを伸長するための方法であって、 複数のデータストリームを提供するステップを有し、こ
    こにおいて複数のチャネルのそれぞれがある特定のコン
    テキスト・ビンに対応したデータを供給し;複数のビッ
    トストリーム・ジェネレータを使用し、該複数のデータ
    ストリーム中のデータに応答してデコード結果を生成す
    るステップを有し、ここにおいて、該複数のビットスト
    リーム・ジェネレータのそれぞれが、ある決まったコン
    テキスト・ビンのためのデコード結果を与え、かつ、該
    複数のビットストリーム・ジェネレータの少なくとも2
    つが同時にデコード結果を生成し、 該複数のビットストリーム・ジェネレータに対し、それ
    ぞれのデータストリームのデコーディングのためのコー
    ドを指定するステップを有し、かつ複数の確率推定手段
    を選択し、選択した確率推定手段に関係付けられたビッ
    トストリーム・ジェネレータにより生成されたデコード
    結果を受け取り伸長データを生成するステップを有し、
    該データストリームが並列にデコードされるデータ伸長
    方法。
  42. 【請求項42】 複数の符号語からなるデータストリー
    ムを伸長する方法であって、 複数のデータストリームを提供するステップを有し、こ
    こにおいて複数のチャネルのそれぞれがある特定の確率
    クラスに対応したデータを供給し、 複数のビットストリーム・ジェネレータを使用し、該複
    数のデータストリーム中のデータに応じてデコード結果
    を生成するステップを有し、ここにおいて、該複数のビ
    ットストリーム・ジェネレータのそれぞれが、ある決ま
    った確率クラスのためのデコード結果を与え、かつ、該
    複数のビットストリーム・ジェネレータの少なくとも2
    つが同時にデコード結果を生成し、 該複数のビットストリーム・ジェネレータに対し、それ
    ぞれのデータストリームのデコーディングのためのコー
    ドを指定するステップを有し、かつ複数の確率推定手段
    を選択し、選択した確率推定手段に関係付けられたビッ
    トストリームにより生成されたデコード結果を受け取っ
    て伸長データを生成するステップを有し、該データスト
    リームが並列にデコードされるデータ伸長方法。
  43. 【請求項43】 複数のビットからなるコード化された
    データストリームをデコードするための装置であって、 該データストリームの複数のビットを受け取るためのチ
    ャネル手段、 該チャネル手段に接続されており、少なくともデコード
    されたデータビットの2つのストリームが生成されるよ
    うに、該複数のビットをデコードするデコーディング手
    段、及び該デコーディング手段よりデコードされたデー
    タビットを受け取るように接続されており、該デコーデ
    ィング手段からのデコードされたデータビットを選択す
    ることにより、その出力を複数のデコードされたデータ
    ビットストリームより選択するモデリング手段、を具備
    するデコーディング装置。
  44. 【請求項44】 請求項43記載のデコーディング装置
    において、該少なくとも2つのストリームの各ストリー
    ムが、少なくとも1つのコンテキスト・ビンに対応す
    る、ことを特徴とするデコーディング装置。
  45. 【請求項45】 請求項43記載のデコーディング装置
    において、該少なくとも2つのストリームの各ストリー
    ムが、少なくとも1つの確率クラスに対応する、ことを
    特徴とするデコーディング装置。
  46. 【請求項46】 複数のビットからなるコード化データ
    ストリームをデコードする方法であって、 該データストリームの複数のビットを受け取るステッ
    プ;該複数のビットをデコードすることにより、少なく
    とも2つのデコードされたデータビットのストリームが
    生成されるステップ、及び該少なくとも2つのストリー
    ムよりデコードされたデータビットを選択することによ
    り、複数のデコードされたデータビットのストリームよ
    りデコードされたデータビットが出力されるステップ、
    を有するデコーディング方法。
  47. 【請求項47】 複数のビットからなるコード化データ
    ストリームをデコードする装置であって、 該コード化データストリームを受け取って記憶するメモ
    リ手段、 該メモリ手段に接続されており、該メモリ手段よりコー
    ド化データを受け取ってデコードするデコーディング手
    段、 該デコーディング手段よりデコードされたデータを受け
    取るように接続され、デコード結果を生成するものであ
    って、その中の少なくとも2つが同時に利用可能なデコ
    ード結果を持つ、複数のカウンタ手段、及び該複数のカ
    ウンタ手段により生成されたデコード結果を受け取るよ
    うに接続され、該複数のカウンタ手段を選択して、伸長
    データを生成するためのデコード結果を取得するモデリ
    ング手段、を具備するデコーディング装置。
  48. 【請求項48】 請求項47記載のデコーディング装置
    において、該デコーディング手段がコード化データを受
    け取りながら同時にデコードされたデータを該複数のカ
    ウンタ手段へ出力することにより、パイプライン方式で
    動作することを特徴とするデコーディング装置。
  49. 【請求項49】 複数のビットからなるコード化データ
    ストリームをデコードするための装置であって、 該コード化データストリームを受け取って記憶するメモ
    リ手段、 該メモリ手段に接続され、該メモリ手段よりコード化デ
    ータを受け取ってデコードするものであって、ランレン
    グスを判定し、かつ、ランの終わりに最低確率のシンボ
    ルがあるか判定する、デコーディング手段、 該デコーディング手段より該ランレングス及び最低確率
    シンボルの判定結果を受け取るように接続され、デコー
    ド結果を生成するものであって、その中の少なくとも2
    つが同時に利用可能なデコード結果を持つ、複数のカウ
    ンタ手段、及び該複数のカウンタ手段により生成された
    デコード結果を受け取るように接続され、該複数のカウ
    ンタ手段を選択して、伸長データを生成するためのデコ
    ード結果を取得するモデリング手段、を具備するデコー
    ディング装置。
  50. 【請求項50】 複数の符号語からなるデータストリー
    ムを伸長するリアルタイムビデオ装置であって、 該データストリームを受け取るように接続され、該デー
    タストリーム中の各符号語をデコードするものであっ
    て、該データストリーム中の符号語の少なくとも2つを
    同時にデコードすることにより該データストリームを並
    列にデコードする、第1デコーダ手段、 該デコードされたデータストリームをさらにデコードし
    て表示のためのデコードされたデータストリームを作る
    第2デコーダ手段、及び該デコードされたデータを表示
    するディスプレイ手段、を具備するリアルタイムビデオ
    装置。
  51. 【請求項51】 請求項50記載のリアルタイムビデオ
    装置において、該ディスプレイ手段がテレビジョンモニ
    ターからなる、ことを特徴とするリアルタイムビデオ装
    置。
  52. 【請求項52】 請求項50記載のリアルタイムビデオ
    装置において、該ディスプレイ手段がビデオモニターか
    らなる、ことを特徴とするリアルタイムビデオ装置。
  53. 【請求項53】 請求項50記載のリアルタイムビデオ
    装置において、該第2デコーダ手段が損失性デコーダで
    ある、ことを特徴とするリアルタイムビデオ装置。
  54. 【請求項54】 請求項53記載のリアルタイムビデオ
    装置において、該損失性デコーダが、あるデコーダの変
    換部からなることを特徴とするリアルタイムビデオ装
    置。
  55. 【請求項55】 請求項53記載のリアルタイムビデオ
    装置において、該損失性デコーダが、あるデコーダの色
    変換部からなることを特徴とするリアルタイムビデオ装
    置。
  56. 【請求項56】 請求項53記載のリアルタイムビデオ
    装置において、該損失性デコーダが、あるデコーダのサ
    ブサンプリング部からなることを特徴とするリアルタイ
    ムビデオ装置。
  57. 【請求項57】 複数のビットからなるデータストリー
    ムをエンコードする装置であって、 該データストリームを記憶するメモリ手段、 該メモリ手段に接続され、該データストリームから複数
    のデータストリームを提供するものであって、該複数の
    データストリームのそれぞれが、ある特定のコンテキス
    ト・ビンに対応したデータストリームからのデータから
    なる、手段、 該複数のデータストリームを提供する手段に接続され、
    該データを並列にエンコードするものであって、その中
    の1つが該複数のデータストリームの1つに接続され
    る、複数のエンコーディング手段、 該複数のエンコーディング手段からのエンコードされた
    データを受け取るように接続された記憶手段、及び該記
    憶手段に接続され、該記憶手段をアクセスして順序付け
    したコード化ストリームを生成する順序付け手段、を具
    備するエンコーディング装置。
  58. 【請求項58】 請求項57記載のエンコーディング装
    置において、該順序付け手段に該コード化データを要求
    するデコーダ手段が含まれることにより、該圧縮データ
    の順序が確認されることを特徴とするエンコーディング
    装置。
  59. 【請求項59】 請求項58記載のエンコーディング装
    置において、該デコーダ手段が、 該記憶手段に接続され、該記憶手段からのデータをデコ
    ードする複数のデコーダ、及び該複数のデコーダに対し
    コンテキスト・ビンを提供するモデリング手段を具備
    し、該複数のデコーダは該モデリング手段によって与え
    られた順序でデータをデコードする、ことを特徴とする
    エンコーディング装置。
  60. 【請求項60】 該複数のデコーダのそれぞれが適当な
    コンテキスト・ピンのデータを受け取るように該複数の
    デコーダからのデータ要求を調停する調停手段をさらに
    具備する、ことを特徴とする請求項59記載のエンコー
    ディング装置。
  61. 【請求項61】 請求項57のエンコーディング装置に
    おいて、該記憶手段が複数のビットパック・バッファか
    らなる、ことを特徴とするエンコーディング装置。
  62. 【請求項62】 請求項57記載のエンコーディング装
    置において、該順序付け手段が、該記憶手段からのエン
    コードされたデータを1つのデータ・シーケンスに変換
    する手段を含む、ことを特徴とするエンコーディング装
    置。
  63. 【請求項63】 複数のビットからなるデータストリー
    ムをエンコードする装置であって、 該データストリームを記憶するメモリ手段、 該メモリ手段に接続され、該データストリームから複数
    のデータストリームを提供するものであって、該複数の
    データストリームのそれぞれが、ある特定の確率クラス
    に対応したデータストリームのデータを含む、手段、 該複数のデータストリームを提供する手段に接続され、
    該データを並列にエンコードするものであって、その中
    の1つが該複数のデータストリームの1つに接続され
    る、複数のエンコーディング手段、 該複数のエンコーディング手段からエンコードされたデ
    ータを受け取るように接続された記憶手段、及び該記憶
    手段に接続され、該記憶手段をアクセスして順序付けら
    れたコード化ストリームを生成する順序付け手段、を具
    備するエンコーディング装置。
  64. 【請求項64】 請求項63記載のエンコーディング装
    置において、該順序付け手段に該コード化データを要求
    するデコーダ手段が含まれることにより、該圧縮データ
    の順序が確認される、ことを特徴とするエンコーディン
    グ装置。
  65. 【請求項65】 請求項64記載のエンコーディング装
    置において、該デコーダ手段が、 該記憶手段に接続され、該記憶手段からのデータをデコ
    ードする複数のデコーダ、及び該複数のデコーダに対し
    コンテキスト・ビンを提供するモデリング手段を具備
    し、該複数のデコーダが該モデリング手段により与えら
    れた順序でデータをデコードする、ことを特徴とするエ
    ンコーディング装置。
  66. 【請求項66】 請求項63記載のエンコーディング装
    置において、該順序付け手段が該記憶手段からのエンコ
    ードされたデータを1つのデータ・シーケンスに変換す
    る手段を含む、ことを特徴とするエンコーディング装
    置。
  67. 【請求項67】 複数の符号語からなるデータストリー
    ムをデコードするエントロピー・デコーダであって、 該データストリームを受け取るビットストリーム生成手
    段、及び該ビットストリーム生成手段に接続され、確率
    推定値を該ビットストリーム生成手段へ提供する確率推
    定手段、を具備し、 該ビットストリーム生成手段が、複数の値nに対し1つ
    のRn(k)コードを使用し、該確率推定手段から提供され
    た確率推定値に応じて該データストリーム中の各符号語
    に対するデコード結果を生成するエントロピー・デコー
    ダ。
  68. 【請求項68】 請求項67記載のエントロピー・デコ
    ーダにおいて、該ビットストリーム生成手段がR2(k)コ
    ード及びRn(k)コードを使用する(ただしnは整数)、
    ことを特徴とするエントロピー・デコーダ。
  69. 【請求項69】 請求項68記載のエントロピー・デコ
    ーダにおいて、n=3であり、該ビットストリーム生成
    手段がR2(k)コード及びR3(k)コードを使用する、こと
    を特徴とするエントロピー・デコーダ。
  70. 【請求項70】 請求項67記載のエントロピー・デコ
    ーダにおいて、該確率推定手段が状態マシンを含む、こ
    とを特徴とするエントロピー・デコーダ。
  71. 【請求項71】 請求項70記載のエントロピー・デコ
    ーダにおいて、該状態マシンが同一のRn(k)コードを持
    つ少なくとも2つの状態を含む、ことを特徴とするエン
    トロピー・デコーダ。
  72. 【請求項72】 請求項70記載のエントロピー・デコ
    ーダにおいて、少なくとも1つの状態変化は、使用する
    Rn(k)コードの変化をもたらさない、ことを特徴とする
    エントロピー・デコーダ。
  73. 【請求項73】 請求項67記載のエントロピー・デコ
    ーダにおいて、該確率推定手段が正の状態と負の状態を
    持つ状態マシンを含む、ことを特徴とするエントロピー
    ・デコーダ。
  74. 【請求項74】 請求項73記載のエントロピー・デコ
    ーダにおいて、該状態マシンが、その正状態だけ又は負
    状態だけを格納した対称の状態テーブルからなる、こと
    を特徴とするエントロピー・デコーダ。
  75. 【請求項75】 複数の符号語からなるデータストリー
    ムをデコードするエントロピー・デコーダであって、 該データストリームを受け取るビットストリーム生成手
    段、及び該ビットストリーム生成手段に接続され、該ビ
    ットストリーム生成手段に対し確率推定値を提供する状
    態テーブルを具備し、 該状態テーブルが複数の状態を含み、該複数の状態のそ
    れぞれが1つのコードに関係付けられ、該複数の状態の
    中の少なくとも2つの状態は同一コードを持つことによ
    り、該ビットストリーム生成手段が、該確率推定手段か
    らの確率推定値に応じて、該データストリーム中の各符
    号語に対するデコード結果をRn(k)コード(ただしnと
    kは整数)を用いて生成するエントロピー・デコーダ。
  76. 【請求項76】 複数ビットからなる圧縮データストリ
    ームをデコードする装置であって、 該データストリームをデコードするデコーダ手段を具備
    し、ここにおいて、該複数のビットに応じて、ランレン
    グス及び最低確率シンボル(LPS)が生じたか否かの
    指示が生成され、該デコーダ手段は複数の状態を持つ状
    態テーブルを含み、該複数の状態のそれぞれが1つのコ
    ードに関係付けられ、かつ、その少なくとも2つの状態
    は同一コードと関係付けられることにより、該少なくと
    も2つの状態の間の遷移時に該デコーダ手段が同一のコ
    ードを使用し、かつ該デコーダ手段に接続され、該LP
    S及びランレングスに応じてデコードされたデータを出
    力するカウンタ手段、を具備するデコーディング装置。
  77. 【請求項77】 請求項76記載のデコーディング装置
    において、該コードがR2(k)コード及びRn(k)コードか
    らなる(ただしnは整数)、ことを特徴とするデコーデ
    ィング装置。
  78. 【請求項78】 請求項77記載のデコーディング装置
    において、n=3であり、該コードがR2(k)コード及び
    R3(k)コードからなる、ことを特徴とするデコーディン
    グ装置。
  79. 【請求項79】 請求項76記載のデコーディング装置
    において、該デコーダ手段が、 該データストリームを符号語として受け取るように接続
    され、符号語の種類を判断するランレングス・デコーデ
    ィング手段、及び該ランレングス・デコーディング手段
    に接続された確率推定手段を具備し、 該確率推定手段が該ランレングス・デコーディング手段
    のためのコードを決定し、該ランレングス・デコーディ
    ング手段が各符号語及び該コードに応じてランレングス
    及びLPSが生じたか否かの指示を生成する、ことを特
    徴とするデコーディング装置。
  80. 【請求項80】 該データストリームを受け取って、適
    当に整列させたコード化データを該ランレングス・デコ
    ーディング手段へ出力するシフト手段をさらに具備す
    る、ことを特徴とする請求項79記載のデコーディング
    装置。
  81. 【請求項81】 請求項80記載のデコーディング装置
    において、該シフト手段が、該確率推定手段から与えら
    れる、前の符号語の長さを示す信号に応じて、コード化
    データを該ランレングス・デコーディング手段に提供す
    る、ことを特徴とするデコーディング装置。
  82. 【請求項82】 請求項76記載のデコーディング装置
    において、該カウンタ手段が、該デコーディング手段に
    対し、次の符号語を処理すべき時を指示する手段を含
    む、ことを特徴とするデコーディング装置。
  83. 【請求項83】 複数の符号語からなるデータストリー
    ムを伸長する装置であって、 該データストリームの複数の符号語を与えるためのチャ
    ネル手段、及び該チャネル手段に接続され、該データス
    トリーム中の各符号語をデコードするデコーディング手
    段を具備し、該デコーディング手段は確率クラスに従
    い、コードを使用して該データストリームをデコードす
    る複数のデコーダを含み、該複数のデコーダはカスケー
    ド接続され、該複数のデコーダのそれぞれは前段のデコ
    ーダが入力するとともに、ある確率クラスに対応したデ
    ータの入力を持ち、該複数のデコーダのそれぞれは、該
    データ入力の確率とは異なる確率のコードストリームを
    出力し、該カスケードされたデコーダのチェーン中のあ
    る入力でデータを受け取り、該データを該チェーンの残
    りの部分に伝播させることにより、該データストリーム
    がデコードされデコードされたデータが得られるデータ
    伸長装置。
  84. 【請求項84】 請求項83記載のデータ伸長装置にお
    いて、該コード中の少なくとも1つは、該確率クラスの
    ある1つに関し、下に示すように入力データがデコード
    されるコードからなる、ことを特徴とするデータ伸長装
    置。
JP19509094A 1994-08-19 1994-08-19 データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ Expired - Lifetime JP3230933B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19509094A JP3230933B2 (ja) 1994-08-19 1994-08-19 データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19509094A JP3230933B2 (ja) 1994-08-19 1994-08-19 データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ

Publications (2)

Publication Number Publication Date
JPH0865171A true JPH0865171A (ja) 1996-03-08
JP3230933B2 JP3230933B2 (ja) 2001-11-19

Family

ID=16335374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19509094A Expired - Lifetime JP3230933B2 (ja) 1994-08-19 1994-08-19 データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ

Country Status (1)

Country Link
JP (1) JP3230933B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011130854A1 (en) * 2010-04-19 2011-10-27 Research In Motion Limited Methods and devices for reordered parallel entropy coding and decoding
US8378862B2 (en) 2010-07-28 2013-02-19 Reserch In Motion Limited Method and device for compression of binary sequences by grouping multiple symbols
JP2013528025A (ja) * 2010-04-13 2013-07-04 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US8726003B2 (en) 2010-08-25 2014-05-13 Fuji Xerox Co., Ltd. Reconfigurable operation apparatus, data compression apparatus, reconfigurable operation method and computer-readable medium
US8761240B2 (en) 2010-07-13 2014-06-24 Blackberry Limited Methods and devices for data compression using context-based coding order
JP2014534677A (ja) * 2011-10-06 2014-12-18 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
KR20180095777A (ko) * 2011-02-21 2018-08-28 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
US10650293B2 (en) 2018-07-25 2020-05-12 Seiko Epson Corporation Printing apparatus, printing method, and printing system
CN112290953A (zh) * 2020-10-19 2021-01-29 华南理工大学 多道数据流的阵列编码装置和方法、阵列解码装置和方法
CN112383313A (zh) * 2020-10-10 2021-02-19 中科驭数(北京)科技有限公司 一种并行数据解码装置及方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013528025A (ja) * 2010-04-13 2013-07-04 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US8907823B2 (en) 2010-04-13 2014-12-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding
WO2011130854A1 (en) * 2010-04-19 2011-10-27 Research In Motion Limited Methods and devices for reordered parallel entropy coding and decoding
US8400336B2 (en) 2010-04-19 2013-03-19 Research In Motion Limited Methods and devices for reordered parallel entropy coding and decoding
US8761240B2 (en) 2010-07-13 2014-06-24 Blackberry Limited Methods and devices for data compression using context-based coding order
US8378862B2 (en) 2010-07-28 2013-02-19 Reserch In Motion Limited Method and device for compression of binary sequences by grouping multiple symbols
US8726003B2 (en) 2010-08-25 2014-05-13 Fuji Xerox Co., Ltd. Reconfigurable operation apparatus, data compression apparatus, reconfigurable operation method and computer-readable medium
KR20190047672A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20210088479A (ko) * 2011-02-21 2021-07-14 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20180099596A (ko) * 2011-02-21 2018-09-05 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20190047673A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20190047674A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20200012004A (ko) * 2011-02-21 2020-02-04 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20180095777A (ko) * 2011-02-21 2018-08-28 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20200126352A (ko) * 2011-02-21 2020-11-06 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20220136969A (ko) * 2011-02-21 2022-10-11 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20220026550A (ko) * 2011-02-21 2022-03-04 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
JP2014534677A (ja) * 2011-10-06 2014-12-18 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US10650293B2 (en) 2018-07-25 2020-05-12 Seiko Epson Corporation Printing apparatus, printing method, and printing system
CN112383313A (zh) * 2020-10-10 2021-02-19 中科驭数(北京)科技有限公司 一种并行数据解码装置及方法
CN112383313B (zh) * 2020-10-10 2023-08-04 中科驭数(北京)科技有限公司 一种并行数据解码装置及方法
CN112290953A (zh) * 2020-10-19 2021-01-29 华南理工大学 多道数据流的阵列编码装置和方法、阵列解码装置和方法

Also Published As

Publication number Publication date
JP3230933B2 (ja) 2001-11-19

Similar Documents

Publication Publication Date Title
US5381145A (en) Method and apparatus for parallel decoding and encoding of data
US5717394A (en) Method and apparatus for encoding and decoding data
US5583500A (en) Method and apparatus for parallel encoding and decoding of data
JP3007496B2 (ja) 可変長復号化器
US5818877A (en) Method for reducing storage requirements for grouped data values
JP5583106B2 (ja) データデコーディング
JPH08116266A (ja) 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法
US7397963B2 (en) Method and apparatus for storing bitplanes of coefficients in a reduced size memory
US5675331A (en) Decoding device for decoding a variety of code signals
JPH0685689A (ja) デコーダ
JP2831888B2 (ja) Hdtv復号化器
US7006697B1 (en) Parallel block MQ arithmetic image compression of wavelet transform coefficients
US6492916B1 (en) Method and apparatus for generating multiple selectable contexts
JP3230933B2 (ja) データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ
JP3153404B2 (ja) ディジタルビデオ・ビットストリームコーダ
Chiang et al. High-speed EBCOT with dual context-modeling coding architecture for JPEG2000
US7457473B2 (en) Method for block sequential processing
GB2306279A (en) Apparatus for decoding data
US6895120B2 (en) 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays
US6961475B2 (en) Context model access to memory based on run and skip counts and context model skipping
Boliek et al. Very high speed entropy coding
US6859563B2 (en) Method and apparatus for decoding information using late contexts
KR0180164B1 (ko) 가변길이 부호기
KR100249235B1 (ko) 에이치디티브이 비디오 디코더
Ahmadvand et al. A new pipelined architecture for JPEG2000 MQ-coder

Legal Events

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

Free format text: PAYMENT UNTIL: 20080914

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080914

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090914

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090914

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 12

EXPY Cancellation because of completion of term