本特許出願は、「算術的符号化器の計算量の抑制」と題された、Frank Bossenによる、2002年4月23日に出願された米国仮特許出願第60/374,770号の優先権を主張するものであり、当該仮特許出願は引用によって本願に組み込まれる。
本発明の一実施の形態によれば、複数のイベントを含む一つのイベントシーケンスを少なくとも一つの情報片を含む一つの情報シーケンスへと変換するために、前記イベントシーケンスのイベントを受信するための少なくとも一つの入力ポート、及び、少なくとも一つの出力ポートを含む算術的エンコーダが提供されている。一つのシーケンサが、前記少なくとも一つの入力ポート及び前記少なくとも一つの出力ポートと接続されて、前記受信イベントの少なくとも一つのコンテクスト情報を生成するための一つのコンテクスト生成器を含んでいる。前記イベントシーケンスの一つのイベント及び対応するコンテクスト情報を前記シーケンサから受信するために、及び、前記イベントがある特定の値をもつ確率の推定値を生成するために、前記シーケンサに接続された確率推定器が提供されている。前記シーケンサから前記イベントシーケンスの前記イベントを受信し、かつ、前記確率推定器から前記確率推定値を受信して、前記受信イベントおよび前記確率推定値に応じて前記情報シーケンスの0以上の片を生成するために、コアエンジンが、前記シーケンサ及び前記確率推定器に接続されている。前記コアエンジンは、イベント(群)の情報片(群)に対する比率を制限し得て、前記情報シーケンスの前記0以上の情報片を前記シーケンサへと提供する。前記生成された情報片(群)は、前記少なくとも一つの出力ポートにおいて前記情報シーケンスとして提供される。
本発明による別の実施の形態によれば、少なくとも一つの情報片を含む一つの情報シーケンスを複数のイベントを含む一つのイベントシーケンスへと変換するための、前記情報シーケンスの情報片(群)を受信するための少なくとも一つの入力ポートと、少なくとも一つの出力ポートと、前記少なくとも一つの入力ポート及び前記少なくとも一つの出力ポートと接続されて少なくとも一つの生成イベントのコンテクスト情報を生成するための一つのコンテクスト生成器を含む一つのシーケンサとを含む、算術的デコーダもまた提供される。前記確率推定器は、前記イベントシーケンスの一つの生成イベント及び対応するコンテクスト情報を受信するために、及び、確率推定値を決定するために、前記シーケンサと接続されている。コアエンジンは、前記確率推定値に応じて前記シーケンサからの前記情報シーケンスの0以上の情報片を処理して、イベント(群)の情報片(群)に対する制限された比率を考慮して一つのイベントを生成するために、前記シーケンサ及び前記確率推定器と接続されている。前記生成イベントは、前記確率推定値を更新するために前記シーケンサから対応するコンテクスト情報と共に前記確率推定器へと提供され、前記生成イベントは、前記少なくとも一つの出力ポートからの前記イベントシーケンスとしての伝送のために前記シーケンサへと提供される。
イベント(群)の情報片(群)に対する比率を制限し前記イベントシーケンスを前記情報シーケンスへと符号化する前記算術的エンコーダを有することにより、前記イベントシーケンスのリアルタイムでの利用を可能とする形式での一連のデータ(即ち、バイナリまたはM−aryのイベント)の圧縮が可能となる。更に、イベント(群)の情報片(群)に対する比率を制限して、生成された情報シーケンスの計算量を低減することにより、限定的な処理能力を持つデコーダ(例えば、携帯デコーダ)が、潜在的にリアルタイム処理機能を維持して、あるいは、少なくともこのようなデコーダが復号処理を実施する間に当該情報の利用者をかなりの時間待たせる必要なく、前記情報シーケンスをその対応するイベントシーケンスへと復号することが可能となる。
同様に、情報片あたりのイベントの制限された比率を考慮して前記情報シーケンスをイベントシーケンスへと復号するデコーダを提供することは、例えばテレビ会議通話の間のような、イベントシーケンスのリアルタイムでの利用を提供し、或いは、例えば映画のようなビデオ情報をDVD−ROMから読出して使用するために当該ビデオデータを処理するといった、記憶媒体からの情報の読出し及び処理を提供する。
本発明による別の実施の形態によれば、各々のイベントシーケンスが複数のイベントを含むとして、少なくとも一つのイベントシーケンスを、各々の情報シーケンスが少なくとも一つの情報片を含むとして、少なくとも一つの情報シーケンスへと変換するためのエントロピーコーダが提供され、それは、少なくとも一つのイベントシーケンスの少なくとも一つのイベントに応じて少なくとも一つの情報シーケンスの0以上の情報片を生成するための一つの算術的エンコーダを含んでいる。前記エントロピーエンコーダは、更に、少なくとも一つのイベントシーケンスの中のイベントの数を、少なくとも一つの情報シーケンスの中の生成された情報片の数の関数として制限するために、前記算術的エンコーダと接続された一つのコントローラを含んでいる。前記少なくとも一つのイベントシーケンスが複数のセグメントに分割された入力データを表し得て、前記コントローラが、少なくとも一つの情報シーケンスの中の生成情報片の数とセグメント数とを含む一次結合の関数として少なくとも一つのイベントシーケンスの中のイベントの最大数を制限することにより、情報片(群)の数の関数としてイベントの数を制限する。前記エントロピーエンコーダは、入力データを前記少なくとも一つのイベントシーケンスへと変換するための一つのプロセッサと接続され得て、前記エントロピーエンコーダは、少なくとも一つの情報シーケンスの生成情報片(群)の数に関する情報を前記プロセッサへと伝送することが可能である。更に、前記プロセッサは、前記エントロピーエンコーダから受信された情報に応じて少なくとも一つイベントシーケンスのイベント比率を低減することが可能であり得る。
一つの情報シーケンス内の生成情報片の数の関数として一つのイベントシーケンス内のイベントの数を制限することが可能なエントロピーエンコーダを有することは、セグメント群毎の情報片の最大数を考慮する一方で、先行技術の符号化器(エンコーダ)と比較してビデオ符号化品質を維持した状況で、ビデオデータが確実に復号されることを可能とし得る。加えて、前記エンコーダが計算量閾値が間もなく上回られるという指示を受信すると、前記エンコーダは、例えば、入力データの次のセグメントのイベントをより少なく生成して、次のセグメントの制限閾値が上回られる確率を低減し得る。更に、前記コントローラが、前記制限閾値が上回られた場合にスタッフィングビットの付加を始動させることが可能であるため、前記プロセッサは、当該プロセッサが計算量制限を考慮する必要がないまたは取り扱う必要がないというように具備され得る。前記エンコーダ及び前記デコーダは、例えば、ビデオプロセッサ(即ち、ビデオコーデック)で生成されるようなビデオデータを処理するのに用いられ得る。前記ビデオプロセッサの例では、あるビデオ画像が記録されて、当該記録画像の16×16、8×8、または、4×4のサンプルを表し得るデータのサンプルブロックへと分割される。前記ブロックは、続いて、前記ビデオプロセッサ(即ち、離散コサイン変換を用いる)により変換され、量子化されて前記サンプルブロックを表す整数値を得る。この整数値は、ビデオプロセッサによりイベントシーケンス(即ち、バイナリイベント)に変換されて、符号化のためにエンコーダに伝送される。あるいは、前記ビデオプロセッサは、個別のサンプルに直接的に作用し得て、それらを変換し量子化して、前記サンプルの特定の量子化された整数値を一連のイベントへと変換し得る。
ここで論じられたエンコーダ及びデコーダの一つの利用法は、ビデオデータを符号化し復号することであるが、当該技術に精通した者であれば認識するであろうように、ここで開示されたエンコーダ及びデコーダは、エンコーダについては一連のイベントシーケンスが一つの情報シーケンスへと圧縮されて、デコーダについてはそのような一つの情報シーケンスが復元される、というあらゆる状況において利用され得る。更に、エンコーダに係わる以下の議論が、複数のバイナリイベントを含む一連のイベントシーケンスを少なくとも一つの情報バイナリビットを含む一つの情報シーケンスへと処理することに関連しており、デコーダに関しては、少なくとも一つの情報バイナリビットを含む一連の情報シーケンスを複数のバイナリイベントを含む一連のイベントシーケンスへと処理することに関連しているものの、エンコーダ及びデコーダは、M−aryであるという特徴を持つ(即ち、各々のM−aryイベントは1より大きいビットのデータを表す)イベントを含むイベントシーケンス(群)及び情報シーケンス(群)に対しても、ここで示された教示を用いることにより、当該技術に精通した者によって理解されるであろうように、機能し得る。
図1は、本発明の一実施の形態による算術的エンコーダ100のブロック図を示す。前記算術的エンコーダ100は、シーケンサ105、確率推定器110及びコアエンジン115を含んでおり、これらはそれぞれ互いに接続されている。一つ以上の入力データ回線120が、一連のイベントシーケンス125、ここでは順序立てられた一連のバイナリイベントシーケンス、を受信するための入力ポートをエンコーダ100へと提供する。シーケンスのバイナリイベント125は、値「A」または値「B」を有し得る。当該イベントシーケンスは、少なくとも一つの情報片を含む順序立てられたシーケンスである情報シーケンス、ここではバイナリビット、を生成するために、後述のように、エンコーダによって処理される。ここで、情報シーケンスの中の情報片の数は、イベントシーケンスの中のイベントの数よりも小さい。出力データ回線130が、エンコーダ100からの情報シーケンス135を伝送するための出力ポートを提供する。情報シーケンスの順序立てられたバイナリビットシーケンスは、「0」または「1」の値を有する一つ以上のビットを含んでいる。
前記順序立てられたバイナリイベントシーケンス125を受信すると、シーケンサ105は、イベント伝送回線140及び145を介して、確率推定器110及びコアエンジン115の双方へとそれぞれ順次当該イベント群125を伝送する。イベントシーケンス125の各々のバイナリイベントについて、シーケンサ105は、また、確率推定器110へと当該バイナリイベントのコンテクスト情報をコンテクスト伝送回線150を介して伝送する。確率推定器110は、コンテクスト伝送回線150を介して受信したコンテクスト情報を用いて、確率伝送回線155を介してコアエンジン115へと伝送される確率推定値P(A)を生成する。確率推定器110は、続いて、バイナリイベント伝送回線140を介して受信したバイナリイベントの値に基づいて内部状態を更新する。コアエンジン115は、イベント伝送回線145を介して受信したバイナリイベント、及び、確率伝送回線155を介して受信した対応する確率推定値P(A)を用いて、詳細が後述されるように、イベント(群)の情報ビット(群)に対する比率を制限しつつ、0以上の情報ビットを生成する。
シーケンサ105は、イベントシーケンス125の第一のバイナリイベントを受信すると、初期化回線185及び190を介して、初期化信号を確率推定器110及びコアエンジン115へとそれぞれ伝送する。
ビット伝送回線158を通じた伝送のための0以上の情報ビットを生成する際に、コアエンジン115は、レンジレジスタ165、ロウレジスタ170、ビットアウトスタンディングレジスタ175及びカウンタレジスタ180を含む多様なレジスタを用いる。エンコーダ100の動作は、図2−図6のフロー図に関連して記述されている。
図2は、シーケンサ105から初期化信号を受信した際のコアエンジン115の動作を表すフロー図を示している。図2のフロー図に示されているように、コアエンジン115は、ステップ205に示されるように、例えば、16進数(H)で8000の値に、レンジレジスタ165を初期化する。コアエンジン115は、また、ロウレジスタ170、ビットアウトスタンディングレジスタ175及びカウンタレジスタ180の各々を、ステップ210,215及び220に示されるように、例えば0の値へと、それぞれ初期化する。
初期化の後、イベントシーケンス125の一つのバイナリイベントを受信すると、コアエンジンは、本発明の一実施の形態による図3のフロー図に示された通りに動作する。
図3のステップ305に示されるように、コアエンジン115は、ある特別なイベント値、例えばイベント値「A」、のサブレンジ値R(A)を、レンジレジスタ165の現在値及び確率伝送回線155を介して受信した当該特別なイベント値の確率推定値を用いて算出する。ここで、サブレンジ値R(A)は、レンジレジスタ値「R」を確率推定値P(A)で乗算することにより算出される。ステップ310に示されるように、コアエンジン115のコンパレータ(図示されず)は、イベント伝送回線145を介して受信されたバイナリイベントの値「X」を確率値P(A)が生成されたところの前記特定のイベント値Aと比較する。受信したイベント値XがAと等しい場合、レンジレジスタ165は、ステップ315に示されるように、サブレンジ値R(A)に設定される(即ち、R(A)の値がレンジレジスタ165に記憶される)。しかし、ステップ310において受信イベント値XがイベントAと等しくない場合、ステップ320に示されるように、サブレンジR(A)がレンジレジスタ165の値Rから差し引かれ、結果値がレンジレジスタ165に記憶される。ロウレジスタ170の値Lは、ステップ325に示されるように、サブレンジ値R(A)と合算されてロウレジスタ170に記憶される。ステップ315においてレンジレジスタ165の値を、または、ステップ325においてロウレジスタ170の値を再計算する際に、ステップ330に示されて本発明の一実施の形態による図4のフロー図に関連して更に記述されるように、コアエンジンは再正規化ルーチンを呼び出す。
図4に示されるように、再正規化は、レンジレジスタ165の値が予め定められたレンジ値、ここではステップ405に示されるように4000H、と比較されて開始する。レンジレジスタ165の値Rが4000Hより大きい場合、カウンタレジスタは、ここではステップ410に示されるように、予め定められた加算値、1だけ加算される。ステップ405でコアエンジン115において値Rが4000H以下であると判断された場合、ステップ415に示されるように、ロウレジスタ170の値Lとレンジレジスタ165の値Rとは、合算され、値8000Hと比較される。合算値が8000H以下である場合、「0」と等しいパラメータBをもち、ステップ420に示されて、後に詳述される、ビットプラスフォロールーチンが呼び出される。ロウレジスタの値は、続いて、ステップ425に示されるように倍化され、カウンタレジスタ180の値Cは、ステップ430に示されるように0と比較される。カウンタレジスタ180の値Cが0より少なくない場合、ステップ435に示されるように、減算値、ここでは4H、がカウンタレジスタ180から減算され、フローはステップ405へと戻り、前述のように動作する。しかし、ステップ430にてカウンタレジスタの値Cが0より小さいと判断される場合、レンジレジスタは、ステップ440に示されるようにレンジレジスタ165の値Rを倍加することにより再拡大され、プログラムフローは前述のステップ435へと続く。
ステップ415において値L及び値Rの合算値が8000H以下ではないと判断された場合、ロウレジスタ170の値Lは、ステップ445に示されるように8000Hと比較される。値Lが8000H以上である場合、ステップ450に示されて後に詳述されるように、パラメータBが1と等しいビットプラスフォロールーチンが呼び出される。ステップ455に示されるように値8000Hがロウレジスタ170から減算されて、フローは前述のステップ425へと継続する。しかし、ステップ445においてLが8000H以上でないと判断された場合、ビットアウトスタンディングレジスタ175はステップ460に示されるように1だけ加算され、ステップ465に示されるようにロウレジスタ170から値4000Hが減算される。フローは、続いて、前述のステップ425へと継続する。
イベントシーケンス125の最終イベントを受信すると、シーケンサ105は、終了伝送回線195を介してコアエンジン115へと終了信号を伝送する。終了信号を受信した時のコアエンジン115の動作は、本発明の一実施の形態による図5のフロー図に示されている。
図5に示されるように、ロウレジスタ170の最上位ビット(MSB)の値を有する引数Bのビットプラスフォロールーチンがステップ505で呼び出される。ロウレジスタ170の最下位ビット(LSB)は、続いて、ステップ510に示されるようにシーケンサ105へと伝送される。ビットプラスフォロールーチンは、本発明の一実施の形態による図6のフロー図においてより詳細に示される。
図6に示されるように、値Bは、ステップ605に示されるように、情報シーケンス135の一ビットとしてシーケンサ105へとビット伝送回線158を介して伝送される。ビットアウトスタンディングレジスタ175の値BOは、ステップ610において、0と比較される。ビットアウトスタンディングレジスタ175の値BOが0より大きくない場合、フローは、ビットプラスフォロールーチンを呼び出したプログラムセグメント/ルーチン(即ち、図4のボックス420またはボックス450、または、図5のボックス505)へと戻る。しかし、ステップ610において値BOが0より大きい場合、1から値Bを減算した値を有する情報シーケンス135の一ビットが、ステップ615に示されるように、ビット伝送回線158を介してシーケンサ105へと伝送される。ビットアウトスタンディングレジスタの値BOは、ステップ620に示されるように1だけ減算され、フローは、ステップ610へと戻り、前述のように継続する。
このように、カウンタ180を持つコアエンジン115を有するエンコーダ100を提供することは、イベント(群)の情報片(群)に対する比率を追跡することを考慮しており、これにより、エンコーダから提供される情報シーケンスの計算量を削減するために前記比率を制限することが可能となる。ステップ410に関連して議論されるカウンタの加算値、ステップ435に関連して議論されるカウンタの減算値、及び、ステップ430においてカウンタレジスタ180が比較されるところの値は、イベント(群)の情報片(群)に対する平均比率を決定するのに用いられる。例えば、図4に関連して前述された値で、ステップ435において4という減算値を有するとすると、イベント(群)の情報片(群)に対する平均比率が4に制限されることとなる。減算値を変化させることにより、イベント(群)の情報片(群)に対する平均比率も変化する。従って、加算値、減算値及びカウンタが比較されるところの値は、単なる典型例に過ぎない。なぜならば、このような値は、図2のボックス220においてカウンタレジスタ180が初期化された値と共に、前述の通りである必然性はなく、あらゆる整数値を取り得る。ここで、当該技術に精通した者であれば認識するであろうように、対応する値は、要求されるイベント(群)の情報片(群)に対する制限された平均比率を達成するように選択される。
図7−図10は、情報シーケンスにおけるイベント(群)の情報片(群)に対する制限された比率に応じて、少なくとも一つの情報片を含む一つの情報シーケンスを複数のイベント群を含む一つのイベントシーケンスへと復号することができる算術的デコーダ及びその動作を示している。図7は、デコーダのブロック図で、図8−図10は、当該デコーダの動作を示すフロー図である。
図7は、本発明の一実施の形態による算術的デコーダ700を示す。前記算術的デコーダ700は、シーケンサ705、確率推定器710及びコアエンジン715を含んでおり、これらは互いに接続されている。一つ以上の情報シーケンス入力データ回線720は、一連の情報725、ここでは順序立てられた一連のバイナリビット、の取込ポートをデコーダ700へと提供する。シーケンスのバイナリビット(群)725は、値「0」または「1」を有し得る。デコーダは、イベントシーケンスを生成するために、後に詳述するように、イベント(群)の情報シーケンス内の情報片(群)に対する制限された比率に応じて、情報シーケンスを処理する。前記生成されたイベントシーケンスは、「A」または「B」の値を有し得る複数のイベント、ここではバイナリイベント(群)、を含む順序立てられたイベントシーケンスである。前記イベントシーケンスは、デコーダ700からの少なくとも一つの出力ポートを提供する、出力イベントシーケンスデータ回線730へと提供される。
バイナリビット群の順序立てられたシーケンス725を受信すると、シーケンサ705は、一つ以上のビットをビット伝送回線740を介してコアエンジン715へと順次伝送する。前記一つ以上のビットを受信すると、コアエンジン715は、イベント(群)、ここではバイナリイベント(群)、を生成し始める。前記イベント(群)は、イベント伝送回線745及び750を介して、シーケンサ705及び確率推定器710へとそれぞれ伝送される。後に詳述されるように、確率推定器は、第一のバイナリイベントを生成するために、初期確率推定値をコアエンジンへと伝送する。その後、コアエンジン715により生成されてシーケンサ705へと伝送される各々のバイナリイベントに対し、シーケンサ705は、対応するコンテクストをコンテクスト伝送回線755を介して確率推定器710へと伝送する。コンテクスト伝送回線755を介して受信したコンテクストの値に基づいて、確率推定器710は、対応する確率推定値P(A)を生成する。当該確率推定値は、確率伝送回線760を介してコアエンジン715へと伝送され、コアエンジン715によって更にイベント(群)を生成するために用いられる。確率推定値P(A)を伝送した後、確率推定器710は、コアエンジン715からイベント伝送回線750を介して受信されたバイナリイベントの値に基づいて内部状態を更新する。コアエンジン715は、生成された各々のバイナリイベントに対して0以上の情報ビットを消費する。コアエンジン715は、イベントシーケンス725のイベント(群)を生成する際に、レンジレジスタ765、バリューレジスタ770及びカウンタレジスタ775を含む、様々なレジスタを用いる。初期化信号が、初期化伝送回線780及び785を介して、コアエンジン715及び確率推定器710へとそれぞれ提供される。終了信号が、終了信号回線790を介してコアエンジン715へと提供される。デコーダ700の動作は、図8―図10のフロー図に示されている。
図8は、本発明の一実施の形態による初期化信号回線780を介した初期化信号の受信の際のデコーダ700の動作を示している。図8に示されるように、コアエンジン715は、ステップ800に示されるように、レンジレジスタ765を8000Hの値へと初期化し、ステップ805に示されるように、バリューレジスタ770を16ビットで表される特定の値(後述)へと初期化する。更に、コアエンジン715は、カウンタレジスタ775を、ステップ810に示されるように0の値へと初期化する。
バリューレジスタ770は、ステップ805において、16ビット、例えば、情報シーケンスの最初の16の情報片、をバリューレジスタ770に収集することにより初期化される。この点は、Moffat等による「Arithmetic Coding Revisited」と題するACM Transactions on Information Systems, VOL. 16, NO. 3, 1998年7月, 第256-294頁に記述されており、引用によって本願に組み込まれ、当該技術に精通した者には認識されるであろう。
図9は、本発明の一実施の形態におけるイベントシーケンス725を生成する際のコアエンジン715の動作を示すフロー図である。ステップ900に示されるように、サブレンジ値R(A)は、イベント値「A」に対してコアエンジン715によって算出される。前記サブレンジ値R(A)は、レンジレジスタ765の値及び確率推定値伝送回線760を介して確率推定器710から受信された決定された確率推定値P(A)に基づいて、レンジレジスタ765の値Rを確率推定値P(A)で乗算することにより算出される。ある情報シーケンス735について始めてサブレンジ値R(A)を算出する時、確率推定器710は、確率推定値P(A)をある初期の/所定の(即ち、事前に定められた)確率推定値として決定する。その後、コアエンジン715からイベント(群)が放出されると、確率推定器710は、後述のように、放出されたイベント(群)を、コンテクスト情報回線755を介して受信される対応するコンテクスト情報と共に、確率推定値伝送回線760を介して提供される確率推定値P(A)を更新する際に用いる。
サブレンジ値R(A)は、続いて、ステップ905に示されるようにバリューレジスタ770の値Vと比較される。サブレンジ値R(A)がバリューレジスタ765の値Vよりも小さい場合、レンジレジスタ165は、ステップ910に示されるようにサブレンジ値R(A)へとセットされて、イベント「A」は、ステップ915に示されるようにイベント伝送回線745を介してシーケンサ705へと放出される。続いて、ステップ920に示されるように再正規化手続きが呼び出される。前記再正規化手続きについては、図10のフロー図に関連して詳細に記述される。
ステップ905においてサブレンジ値R(A)がバリューレジスタ770の値Vよりも小さくない場合、サブレンジ値R(A)は、ステップ925に示されるようにレンジレジスタ765から減算される。サブレンジ値R(A)は、ステップ930に示されるようにバリューレジスタ770から減算され、ステップ935に示されるようにイベント「B」がコアエンジンからイベント伝送回線745を介してシーケンサ705へと放出される。フローは、ステップ920の再正規化手続きへと継続する。
前述のように、イベント伝送回線745を介したイベントの放出の際、シーケンサ705は、コンテクスト伝送回線755を介して確率推定器210へとコンテクストを伝送して、確率推定器710は、コアエンジン715によって放出されたバイナリイベントの値に基づいて内部状態を更新する。
図10は、本発明の一実施の形態によるステップ920について前述の再正規化を実行する際のコアエンジン115の動作を示すフロー図である。ステップ1000に示されるように、レンジレジスタ765の値Rは、予め定められたレンジ値、ここでは4000H、と比較される。前記予め定められた値Rが4000H以下でない場合、ステップ1005に示されるように、カウンタレジスタ775は、予め定められた加算値、ここでは1、だけ加算され、再正規化が完結する。しかし、レンジレジスタ765の値Rが4000H以下である場合、ステップ1010に示されるようにカウンタレジスタ775の値Cが0と比較される。カウンタレジスタ775の値Cが0より小さくない場合、バリューレジスタ770の値Vが倍加されて、ビット伝送回線740を介してコアエンジン715において受信された最新のビットの値を加算される。加算の結果がステップ1015に示されるようにバリューレジスタ770に記憶される。ステップ1020に示されるように、カウンタレジスタ775の値Cは、予め定められた減算値、ここでは4H,だけ減算され、フローは、ステップ1000へと戻る。ステップ1010においてカウンタレジスタの値Cが0より小さい場合、レンジレジスタ765は、ステップ1025に示されるようにレンジレジスタの値Rを倍加することによりリスケールされ、フローは前述のステップ1015へと継続する。
情報シーケンス735の最後の情報片がコアエンジン715に伝送されて処理された後、シーケンサ705は、コアエンジン715に、終了信号伝送回線790を介して、コアエンジン715に情報シーケンス725の復号が完了したことを示す終了信号を伝送する。コアエンジン715は、終了信号に応じて何の動作も実行する必要がない。
イベント(群)の情報片(群)に対する比率を制限することによりイベントシーケンスを情報シーケンスへと符号化することが可能で、計算量が削減されたエンコーダ100は、情報シーケンスの符号化効率に著しく影響することなく、リアルタイム利用の情報の提供を支援するために復号されて用いられ得る情報シーケンスを提供するのに有利である。加えて、このように計算量が削減された符号化は、情報シーケンスを復号化するのに用いられるデコーダが限定的な処理能力を有する(例えば、携帯装置に組み込まれている)場合に、復号が完了するのを待つ際に過度な遅延なしにそうしたデコーダが情報シーケンスを復号することが可能であるため、有益である。更に、デコーダ700は、イベント(群)の情報シーケンス内の情報片(群)に対する制限された比率に応じて情報シーケンスをイベントシーケンスへと復号することが可能であり、例えばイベントシーケンスのリアルタイム利用のような利用において、情報シーケンスの効率的な復号を可能とするため有利であり得る。
図11は、本発明のもう一つの実施の形態によるエンコーダ1100を示している。図11に示されるように、前記エンコーダは、エントロピーエンコーダ1110と接続されたプロセッサ1105を含んでいる。前記エントロピーエンコーダは、コントローラ1120と接続された算術的エンコーダ1115を含んでいる。入力データ1125は、エンコーダにおいて受信され、1130に示される情報片群の一つ以上のシーケンスへと符号化される。
入力データ1125は、エンコーダ1100によって符号化される、例えばビデオデータを含む、どのようなデータでもあり得る。プロセッサ1105は、入力データを受信し、当該入力データを一つ以上のイベントシーケンス1135へと変換する。プロセッサ1105は、入力データを一つ以上の情報セグメントへと分割し得る(表示されず)。例えば、入力データ1125がビデオデータの場合、プロセッサは、当該ビデオデータをデータブロック、例えば対応するビデオイメージの16×16のサンプル、へと分割し得る。一連のイベント1135は、一つ以上のセグメント(ビデオブロック)を表し得る。
エントロピーエンコーダ1110は、算術的符号化されるイベントシーケンス1135を受信する。ここで、算術的エンコーダ1115がイベントシーケンス1135の各々のイベントに対して0以上のビットの情報シーケンス1130を生成する。コントローラ1120は、情報シーケンス1130の情報片の数をイベントシーケンス1135のイベントの数の関数として、イベントの数が生成される情報片(群)の数に対してある閾値を超えないように、制限することにより、エントロピーコーダ1110を制御し得る。前記閾値を超過すると、コントローラ1120は、前記閾値を満たすために、1つ以上のスタッフィング情報片を情報シーケンス1130へと付加するようにエントロピーコーダを制御し得る。
エントロピーエンコーダは、図1の算術的エンコーダ100に関して前述されたものと同様の態様で、イベントシーケンス1135を符号化し得る。例えば、算術的エンコーダ1115は、適切な位置において、図1に関連して記述された通り、シーケンサ及び確率推定器を含み得る。算術的エンコーダ1115は、更に、レンジ、ロウ及びビットアウトスタンディングのレジスタを有するコアエンジンを含み得る。コントローラ1120は、処理されたイベントシーケンス1135のイベントの数及び生成された情報シーケンス1130の情報片の数を追跡するための一つ以上のカウンタを含み得る。あるいは、前記一つ以上のカウンタは、エントロピーコーダ1110の中に存在し得て、コントローラ1120は、処理されるイベントと生成される情報片との間の閾値が実質的に保持されていることを保証するためにカウンタ(群)を監視することが可能である。コントローラ1120は、例えば、各々のイベントシーケンスが符号化されるところの、情報片の数を制限し得る。例えば、コントローラは、(生成された情報片の数)×(閾値)≧(処理されたイベントの数)であることを保証し得る。これは、例えば、コントローラが処理されたイベント毎にカウンタを加算し、一ビットが処理されると閾値を表すカウンタからある数、例えば「4」、を減算するという、図1−図6、特に図4、に関連して前述されたものと同様の態様で、実現される。コントローラは、続いて、カウンタの値を、例えば値0と比較し得て、カウンタの値が0より大きい場合にスタッフィングビットの挿入を始動し得る。このようにして、コントローラは、算術的エンコーダ1115が処理されたイベント(群)の生成された情報片(群)に対する比率4:1に実質的に制限される、ということを保証することが可能である。
加えて又はあるいは、コントローラは、情報片シーケンスの中の情報片の数及びイベントシーケンスに表された入力データ1125のセグメントの数の関数として、イベントシーケンス1135のイベントの数を制限し得る。例えば、前記制限は一次結合の形を取り得る:
e≦αB+βS、
ここで、
eは、情報片シーケンスの中に表されたイベントの数であり、
Bは、情報片シーケンスの中の情報片の数であり、
Sは、イベントシーケンスの中に表されたセグメントの数であり、
α及びβは、生成された情報片の数に対するイベントシーケンスのイベントの数の制限を実質的に保持するためにコントローラによって用いられるカウンタへの減算値を表す。
α及びβの値は、典型的にはコントローラ1120へと提供され、α及びβの導出については後述される。値αは、例えば、コーダにおける一つの情報片の生成時のカウンタへの減算値を表し得て、値βは、例えば、一つのセグメントの処理の完了時のカウンタへの減算値を表し得る。あるいは、当該技術に精通した者には明白であろうように、値βは、一つのセグメントを処理し始める時または一つのセグメントの処理の間の他の如何なる時においても、カウンタ値から減算され得る。
一つの比率制御回線1140が、イベントシーケンス1135のイベントの数を、情報片シーケンスの中の情報片の数、及び、イベントシーケンスの中に現れた入力データ1125のセグメントの数、の関数として制限する際に用いられ得る。例えば、比率制御回線1140は、計算量制限(MEPS及び/またはPMEPS、後記参照)に関する情報をエントロピーエンコーダ1110からプロセッサ1105へと伝えるために用いられ得る。エントロピーエンコーダは、制限された閾値が間もなく超過されるまたは超過されたことを、例えばカウンタ(群)の値に関する情報を伝送することにより、プロセッサへと指示し得る。プロセッサ1105は、従って、例えばコントローラ1120が情報シーケンス1130へのスタッフィングビットの挿入を始動する可能性を低減するために、イベント率を低減(即ち、セグメント/ブロック毎のイベントの数を低減)し得る。
ある状況において、処理されるべき入力データ1125のデータセグメントの数がエンコーダ1100において知られ得て、例えば、ある特定の通信媒体上での伝送のために、情報片シーケンスが実質的に制限される必要がないことがあり得る。これらの状況において、エンコーダ1100において生成される情報片シーケンスは、入力データ1125の既知の数のセグメントから生成された伝送のための全体の符号化イメージを表し得る。処理されるべき入力データのデータセグメントの数が既知の場合、コントローラは、例えば、イベントシーケンス1135のイベントの数を次のように制限し得る:
e−βS≦αB
セグメントの全数S及び値βが既知であるため、入力データ1125の一つ以上のセグメントの処理の間又は後に、β×Sの積がイベントシーケンス1135のイベントの数eから減算され得る。例えば、生成されたビットの数に対応したイベントの数を制限するためにカウンタが用いられる場合、当該カウンタは、β×Sの値だけ始めに減算され得て、生成された各々の情報片毎に値αだけ減算され得て、一方でエントロピーエンコーダ1110によって処理されたイベントシーケンス1135のイベント毎にカウンタが「1」だけ加算される。βの値は、どのような値でもあり得て、典型的には1から100の範囲にあり、例えば更に後述されるように決定され得る。αの値は、どのような値でもあり得て、典型的には1から10の範囲にあり、例えば更に後述されるように決定され得る。
ある状況においては、処理されるべき入力データ1125のセグメントの数は予め知られず、例えば、通信媒体が情報シーケンス1130の中に提供され得る情報片の数を制限する。これは例えば、情報シーケンス1130がインターネット上をインターネットプロトコル(IP)パケットとして伝送される場合に起こり得る。ここで、IPパケットは最大サイズの制限を有する。これらの状況において、特定のイメージの計算量に依存して、一つ以上の情報片シーケンスが入力データ1125の単一のイメージを表すことを要求され得る。しかし、一つの情報片シーケンスの最大サイズが幾つの処理されたセグメント群の後に到達されるのかが知られないことがあり得るため、情報片シーケンスの生成に用いられるセグメントの数は、予め知られないことがあり得る。処理されるべき入力データ1125のセグメントの数が予め知られていない場合、コントローラは、複数のイベントシーケンスを表す一つ以上のセグメントが符号化される時に、当該複数のイベントシーケンスを考慮し得る。例えば、生成されたビットの数に応じてイベントの数を制限するためにカウンタが用いられる場合、カウンタは、処理されるセグメント毎に値βだけ減算され得て、情報片が生成される毎に値αだけ減算され得て、一方でエントロピーエンコーダ1110によって処理されたイベントシーケンス1135のイベント毎にカウンタが「1」だけ加算され得る。
α及びβの値は、例えば、ある特定の標準(例えば、ビデオ符号化を規定する標準)により課せられる制限に応じて、及び/または、エンコーダ1100によって符号化された情報シーケンスを復号するために用いられるデコーダに関連した制限に応じて、決定され得る。こうした特定の標準によって課せられる制限は、1秒あたりの最大ビット数(MBPS)、1秒あたりのセグメント(ブロック)の最大数(MSPS)及び1秒あたりのピークの最大ビット数(PMBPS)に関する情報を含み得る。PMBPSは、例えば、符号化されるべき二つの画像の間の時間距離によって割られた画像の最大ビット数を表し得る。
MBPSは、チャンネル容量、例えば、移動体通信の利用で毎秒約64000ビット、デジタル加入者回線(DSL)で毎秒500000ビット、テレビ(TV)のような放送の利用で毎秒4000000ビットを説明し得る。MSPSは、ビデオフォーマット標準、例えば、移動体(即ち、携帯電話)利用において毎秒10又は15フレームで176×144ピクセル、DSL利用において毎秒24フレームで320×240ピクセル、標準的なTVでの利用において毎秒30フレームで720×480ピクセル、高解像度TVでの利用において毎秒30フレームで1920×1088ピクセル、を説明し得る。PMBPSはMBPSのあらゆる倍数、典型的にはMBPSの数倍、例えばPMBPS≒10×MBPSであり得る。
特定の実施の形態によって、デコーダの資源(即ち、処理能力及び/または利用できるバッファメモリ)は限定され得て、これもまたα及びβの値を決定する時に考慮され得る。このような限定は、デコーダによって処理され得る実際の又は推定された一秒あたりの最大イベント数(MEPS)の値、及び/または、デコーダによって処理され得る1秒あたりの極大の最大イベント数(PMEPS)(即ち、符号化されるべき二つの画像の間の時間距離によって割られた画像の最大イベント数)を含み得る。
前述のデコーダの制限の一つ以上に応じて、α及びβは、線形系で表され得る:
PMEPS=α*PMBPS+β*MSPS、及び
MEPS=α*MBPS+β*MSPS
α及びβの値は、例えば特定の標準によって定められたPMBPS及びMSPSの制限とデコーダのPMEPS及びMEPSの一方又は両方の制限とに応じて、α及びβの前記線形系を解くことにより決定され得る。α及びβの値は、整数値である必要性はなく、前記線形系を実質的に満たす任意の値であり得る。
α及びβの値は、エンコーダ1100のシステム設計者によって前述の一つ以上の制限に応じて予め決定され得て、コントローラ1120へと提供され得る。あるいは又は加えて、α及びβの値は、前述の一つ以上の制限に応じて又はエンコーダ1100の既定値として、コントローラ1120によって又はエンコーダ1100の他のいずれかのコンポーネントによって決定され得る。コントローラ1120がα及びβの値を標準によって又は復号装置によって課せられる制限の一方又は両方を用いて決定する場合、一つ以上の制限に関する情報は、コントローラ1120のメモリ(図示されず)に記憶され得て、α及びβの値を決定する際にコントローラ1120によって用いられ得る。加えて又はあるいは、前記制限に関する情報は、例えば、外部メモリ(例えば、デジタルビデオディスク(DVD))、DVDプレイヤ装置といった外部装置によって、又は、例えば特定の入力データ1125の符号化に関する機能の幾つかを取り扱うシステムエンジニアから、コントローラ1120へと提供され得る。後者の場合、前記システムエンジニアは、当該技術に精通した者によって理解されるであろうように、符号化の標準及び/または復号装置によって結果として課せられた制限に関する情報をコンソールもしくは他の入力装置(図示されず)へと入力し得る、または、他の方法で特定し得る。
デコーダの制限PMEPS及びMEPSの一方又は両方が知られていない場合、PMEPS及びMEPSの値は、例えばエンコーダ1100によって生成される情報シーケンス1130を復号することが可能であるためにデコーダが有すべき最低動作要求として、推定され得る。更に、PMEPS及び/またはMEPSの値を推定する時、例えば、データを算術的に復号するためにデコーダが用いる時間のパーセンテージに対する考慮がなされ得る。例えば、デコーダにおいて受信される情報シーケンスを算術的に復号するために、デコーダが30%を越えないその処理時間/能力のみを消費することが可能であると推定され得る。
更に、前記線形系を用いてα及びβの値が決定されるとしても、こうした値は要求される符号化能力を達成するために調整され得て、α及びβの調整された値が入力データ1125を情報シーケンス1130へと符号化するためにエンコーダ1100によって続いて用いられ得る。例えば、α及びβの値は、情報シーケンス1130内にスタッフされた情報片(群)に起因するビデオ画質の潜在的損失を考慮して調整され得る。例えば、良好なビデオの画質(即ち、歪が少ないか全くないビデオ)を保持するために、復号の計算量を制限しつつ、スタッフされる情報片の数を最小化することが望まれ得る。復号の計算量とビデオ画質との間のそのようなトレードオフは、実験的に決定され得て、エンコーダ1100によって用いられる特定のビデオ符号化アルゴリズムにおいて考慮され得る。
加えて、α及びβの値を決定する時、例えばα及び/またはβの値が小さ過ぎるといったように、計算量の制限が厳し過ぎるか否かという点について考慮がなされ得る。情報片シーケンスの中のスタッフィング情報片の高い比率(例えば、情報シーケンスの情報片の約1%または2%より大きいスタッフィング片の数)は、制限が厳しすぎることを示唆し得る。精通した者であれば認識するであろうように、例えば、用いられ得る特定の標準及び/またはデコーダを考慮して、他の比率もスタッフィング情報片の高い比率を示唆し得る。
例えばα及びβの値が厳しすぎると判断された場合、α及びβの値は、スタッフィングビットが付加される可能性を低減する(即ち、符号化された情報シーケンスの中の品質ペナルティの発生率を低減する)ために増加され得る。α及びβの値を増大する場合、符号化された情報シーケンスを復号するために用いられるデコーダに関連して結果として生じる計算量制限(即ち、MEPS及び/またはPMEPS)の影響に関して考慮がなされ得る。そのような考慮は、デコーダを導入するコストを含み得る。計算量制限がより大きい場合、デコーダにおいてより高い処理能力が要求され得る。要求される処理能力の増大は、より高い導入コストを生じ得る。
あるいは、α及びβは、線形回帰手法を用いて実験的に決定され得る。各々がS個のセグメント(群)を表すイベントシーケンスの数は、計算量の制限を何ら課することなく符号化され得る。各々のイベントシーケンスzについて、イベントの数e(z)に対して、結果として生成される情報片の数B(z)が知られる。線形回帰を用いて、データペア(e(z),B(z))を近似する線e=c*B+dが決定され得る。αのある初期値がcで示され得て、βのある初期値がd/Sで示され得る。α及び/またはβの値は、続いて、線e=α*B+β*Sより上方にあるデータペア(e(z),B(z))の数を最小化するというように、増加され得る。α及び/またはβの増加量は、また、MEPS及び/またはPMEPSの結果値を、例えばデコーダの導入コストを制御するために、考慮し得る。
前述の様々な手法の一つ以上によって決定されたα及びβの値を用いて、エンコーダ1100は、生成される各々の情報片に対してαの値を考慮(即ち、αの値だけカウンタを減算する)し得て、入力データ1125の一セグメントの完了時にβの値を考慮(即ち、βの値だけカウンタを減算する)し得る。例えば、α及びβが整数値である場合、そのような考慮(即ち、一つ以上のカウンタへの減算)は、直接的に遂行され得る。
例えば、α及びβの一つまたは両方が分数である場合、α及びβへ非分数値を提供するために、共通分母が決定され得る。このような状況において、例えばカウンタを情報片の生成時及びセグメント処理の完了時にα及びβの値でそれぞれ減算することにより、α及びβの新たな非分数値が前述のように考慮され得る。前記決定された共通分母は、例えば、イベントシーケンス1135の各々のイベントの処理時に前記共通分母の値をカウンタ値へと加算することにより、考慮され得る。例えば、α及びβの値が4/3及び25にそれぞれ決定された場合、共通分母は3として決定され得る。α及びβの非分数値は、従って、前記共通分母を用いて4及び75にそれぞれ決定され得る。従って、カウンタがα及びβの値を考慮するために用いられる場合、当該カウンタは、生成される情報片毎に4だけ減算され、各々のセグメントの処理の完了時に75だけ減算され、処理されるイベント毎に3だけ加算され得る。
入力データの一つ以上のセグメントにわたって情報片の数を制限することが可能なエンコーダを有することは、セグメントグループ毎の情報片の最大数を考慮して、先行技術のエンコーダと比較してビデオ符号化品質を保持しつつ、ビデオデータが確実に復号されることを可能とする。加えて、計算量閾値が間もなく超過されることを示す信号をエンコーダが比率制御回線を介して受信する場合、エンコーダは、より少ないイベント(群)、例えば入力データの次のセグメントからのβまたはβより少ないイベント(群)を、当該次のセグメント/ブロックについて前記閾値を超過することを回避するために、生成し得る。0と異なるβの値を有することは、従って、ビデオ画質を調整する際にプロセッサ1105を支援し得る。加えて、前記制限閾値が超過されるとコントローラが典型的にはスタッフィングビットの付加を始動するため、プロセッサは、当該プロセッサが計算量制限を考慮するまたは取り扱う必要がないといった態様で導入され得る。従って、プロセッサが特定の標準によって課せられる制限、例えばMSPS、MBPS及びPMBPSの一つ以上に関する制限、を満たす場合、当該プロセッサはまたMEPS及び/またはPMEPSの(即ち、前述のα及びβから派生する)計算量制限も満たし得る。
生成される情報片の数に応じてイベントの数を制限することがエンコーダ1100に関連して述べられてきたが、精通した者は、情報シーケンスの中の情報片の数に応じたイベントシーケンスのイベントの数の同様の制限が図1に関連して前述されたエンコーダ100においても説明され得る、ということを認識するであろう。更に、コントローラ1120は算術的エンコーダ1115と接続されて描かれてきたが、精通した者は、そのような接続が直接的なものまたは他の中間装置を介したものであり得ることを認識するであろう。そうした接続は、情報シーケンス1130の情報片の数をイベントシーケンス1135のイベントの数の関数として制限することによりコントローラ1120がエントロピーコーダ1110を規制することが可能であるというように、コントローラ1120と算術的エンコーダ1115との間の直接的及び/または間接的な通信を可能とする。
ここにおいて記述されるエンコーダ100及び1100並びにデコーダ700は、完全にハードウェアとして、適切なマイクロプロセッサ上で動作するソフトウェアとして、または、ハードウェアとソフトウェアの組み合わせとして、構成され得る。当該技術に精通した者によって認識されるであろうように、コアエンジン115及び715、並びに、算術的エンコーダ1115、コントローラ1120及びプロセッサ1105の機能は、適切なマイクロプロセッサ上で動作するコンピュータプログラムとして実施され得て、カウンタレジスタ180及び775は、前記マイクロプロセッサの中に実装されたレジスタである、または、例えばRAM、EEPROMもしくは磁気式、光学式や他の形式の書換可能な任意の記憶媒体といった、マイクロプロセッサと通信する外部記憶媒体上に実装され得る。前述のように、エンコーダ100及び1100並びにデコーダ700は、エンコーダの場合にはバイナリイベントシーケンスをバイナリ情報シーケンスへと処理して、デコーダの場合にはバイナリ情報シーケンスをバイナリイベントシーケンスへと処理すると記述されてきたが、当該技術に精通した者であれば認識するであろうように、ここに記述される教示を用いることにより、ここに記述される利点をなおも達成しつつ、M−aryイベントシーケンスが処理されて生成され得る。
更に、ここに記述される利点をなおも達成しつつ、カウンタレジスタ180及び775の信号は反転され得て、その場合、ステップ410及び1005において記述されたカウンタレジスタへの加算は減算へと変更され、ステップ435及び1020において記述されたカウンタレジスタへの減算は加算へと変更され、ステップ430及び1010におけるカウンタレジスタとの比較はそれぞれのカウンタレジスタの値が0より大きいかどうかを決定することへと変更され得る。
加えて、一つの代わりに二つのカウンタが用いられ得る。第一カウンタC1がイベントを数え得て、第二カウンタC2がビットを数え得る。そのような場合、イベントのビットに対する予め定められた比率が実質的に保持されているか否かを決定(考慮)するための前記二つのカウンタの間の比較は、C1<4*C2であるか否かであり得る。
加えて、エンコーダ100及びデコーダ700は別々のハードウェアとして記述されてきたが、当該技術に精通した者であれば認識するであろうように、ここに記述されたような各々が果たす機能は、一つのユニットへと統合され得る。例えば、それは、テレビ会議のために使用されるパーソナルコンピュータ(PC)において当該PCのプロセッサ及び記憶媒体がここに記述されたエンコーダ及びデコーダの機能を果たすべく用いられる場合に、有用であり得る。
ここで論じられたコアエンジンによって実現される、イベント(群)の情報片(群)に対する比率を制限すること、及び、イベント(群)の情報片(群)に対する制限された比率を考慮することは、Q-coder、MQ-coder、Z-coderのコアエンジン、並びに、Rene van der Vleutenによる「Low Complexity Arithmetic Coding Implementation」, Document JVT-B033, JVTmeeting in Geneva, Switzerland, 2002年1月、及び、Wingerによる「Low-Complexity Arithmetic Coding Engine」, Document JVT-B036, JVTmeeting in Geneva, Switzerland, 2002年1月において論じられているコアエンジン、を含む他のコアエンジン設計によっても実現され得る。前記二つの文献は、共に引用によって本願に組み込まれる。
このように、イベント(群)の情報片(群)に対する比率を制限することによりイベントシーケンスを情報シーケンスへと符号化することが可能な、計算量制限を低減されたエンコーダが記述されてきた。このようなエンコーダは、情報シーケンスの符号化効率に著しく影響することなく、リアルタイム利用のための情報の提供を支援するために復号されて用いられ得る情報シーケンスを提供するのに有利である。加えて、このように計算量を低減された符号化は、情報シーケンスを復号する際に用いられるデコーダが限定的な処理能力を有する(例えば、携帯装置に組み込まれている)場合に、復号が完了されるのを待つ際に過度な遅延なしにそうしたデコーダが情報シーケンスを復号することが可能であるため、有益である。加えて、入力データの一つ以上のセグメントにわたる情報片の数を制限することが可能なエンコーダが記述され得て、これにより、セグメント群毎の情報片の最大数を考慮しつつ、先行技術のエンコーダと比較してビデオ符号化品質を維持した状況で、ビデオデータが確実に復号されることが可能となり得る。計算量閾値が間もなく超過されることを示す信号をエンコーダが比率制御回線を介して受信する場合、エンコーダは、入力データの次のセグメントについて前記閾値を超過することを回避するために、より少ないイベント(群)を生成し得る。加えて、前記制限閾値が超過されるとコントローラが典型的にはスタッフィングビットの付加を始動するため、プロセッサは、当該プロセッサが計算量制限を考慮するまたは取り扱う必要がないといった態様で導入され得る。更に、イベント(群)の情報シーケンス内の情報片(群)に対する制限された比率に応じて情報シーケンスをイベントシーケンスへと復号することが可能であり、それによって例えばイベントシーケンスのリアルタイム利用のような利用のための情報シーケンスの効率的な復号を可能とするデコーダが記述されている。
本発明は特定の実施の形態に関連して示され記述されてきたが、前述されたものに加えての特定の変更や修正が本発明の基本的特徴からなされ得ることは明らかである。加えて、本発明を実施するために用いられ得る多数の異なるタイプのコンピュータソフトウェア及びハードウェアが存在し得て、本発明は、前述された実施例に限定されない。従って、前述の実施の形態は、あらゆる点で、単なる説明であり限定ではないと理解されるものであり、本発明の範囲は、従って、前述の説明よりも添付の特許請求の範囲によって示される。特許請求の範囲の等価物の範囲及び範疇において生じるあらゆる変化は、その範囲の中に包含される。
例えば、本発明の一つの形態では、複数のイベントを含む一つのイベントシーケンスを少なくとも一つの情報片を含む一つの情報シーケンスへと変換するための算術的エンコーダであって、前記イベントシーケンスのイベント(群)を受信するための少なくとも一つの入力ポートと、少なくとも一つの出力ポートと、前記少なくとも一つの入力ポート及び前記少なくとも一つの出力ポートと接続され、前記受信されるイベント(群)の少なくとも一つのコンテクスト情報を生成するためのコンテクスト生成器を含むシーケンサと、前記イベントシーケンスの一つのイベント及び対応するコンテクスト情報を前記シーケンサから受信するために、及び、前記イベントがある特定の値を有する確率推定値を生成するために、前記シーケンサと接続された確率推定器と、前記イベントシーケンスの前記イベントを前記シーケンサから、前記確率推定値を前記確率推定器から受信するために、イベント(群)の情報片(群)に対する比率を制限することにより前記受信されるイベント及び前記確率推定値に応じて前記情報シーケンスの0以上の片を生成するために、並びに、前記情報シーケンスの前記0以上の情報片を前記シーケンサへと提供するために、前記シーケンサ及び前記確率推定器と接続されたコアエンジンと、を備え、前記生成情報片(群)は、前記情報シーケンスとして前記少なくとも一つの出力ポートから提供されることを特徴とする算術的エンコーダが提供される。
上記算術的エンコーダでは、前記イベントシーケンスの前記イベント(群)は、バイナリイベントであって、前記情報シーケンスの前記情報片(群)は、情報のバイナリビットである、とすることができる。また、上記算術的エンコーダでは、イベント(群)の情報片(群)に対する前記比率を制限する前記コアプロセッサは、イベント(群)の情報片(群)に対する平均の比率を制限することを含む、とすることができる。また、上記算術的エンコーダでは、イベント(群)の情報片(群)に対する制限された平均は、情報片あたり4イベントである、とすることができる。また、上記算術的エンコーダでは、前記コアプロセッサは、イベント(群)の情報片(群)に対する前記平均比率を予め定められた比率の値へと制限する際に用いられる、各々の情報片のイベントの数を追跡するためのカウンタレジスタを含んでいる、とすることができる。また、上記算術的エンコーダでは、前記コアプロセッサは、イベント(群)の情報片(群)に対する比率が前記予め定められた比率の値を超えるような情報シーケンスの中に、少なくとも一つのスタッフィング情報片を生成する、とすることができる。また、上記算術的エンコーダでは、前記コアエンジンは、各々の処理されるイベント毎に予め定められた加算値だけ前記カウンタを加算する、とすることができる。また、上記算術的エンコーダでは、前記予め定められた加算値は、1である、とすることができる。また、前記コアエンジンは、前記カウンタレジスタを用いて、一つの情報片が生成される時に、前記予め定められた比率の値を前記カウンタレジスタから減算することによりイベント(群)の前記平均比率を制限する、とすることができる。また、上記算術的エンコーダでは、前記イベント(群)がM−aryである、とすることができる。また、上記算術的エンコーダでは、前記コアエンジンは、イベント(群)の情報片(群)に対する前記比率を予め定められた比率の値へと制限する際に用いられる、イベント(群)の数を追跡するための第一カウンタレジスタ、及び、情報片(群)の数を追跡するための第二カウンタレジスタを含んでいる、とすることができる。また、上記算術的エンコーダでは、前記コアエンジンは、前記第一カウンタの値を前記第二カウンタの値と比較することにより前記比率を追跡する、とすることができる。
また、本発明の他の形態では、複数のイベントを含む一つのイベントシーケンスを少なくとも一つの情報片を含む一つの情報シーケンスへと変換するためのコアエンジンであって、前記イベントシーケンスの少なくとも一つのイベント及び前記少なくとも一つのイベントの確率推定値を受信するための、並びに、イベント(群)の情報片(群)に対する比率を制限することにより前記受信イベント及び前記確率推定値に応じて情報シーケンスの0以上の片を生成するための、コントローラを備えたことを特徴とするコアエンジンが提供される。
上記コアエンジンでは、イベント(群)の情報片(群)に対する比率を制限する際に用いられる、各々の情報片のイベントの数を追跡するために前記コントローラと接続されたカウンタレジスタを更に備えた、とすることができる。また、上記コアエンジンでは、前記コントローラは、一つのイベントが処理される時、前記カウンタを予め定められた加算値だけ加算する、とすることができる。また、前記予め定められた加算値は、1である、とすることができる。また、上記コアエンジンでは、前記コアエンジンは、前記カウンタレジスタを用いて、一つの情報片が生成される時に、前記予め定められた比率の値を前記カウンタレジスタから減算することによりイベント(群)の前記比率を制限する、とすることができる。また、上記コアエンジンでは、前記イベントシーケンスの前記イベント(群)は、バイナリイベントであって、前記情報シーケンスの前記情報片(群)は、情報のバイナリビットである、とすることができる。また、上記コアエンジンでは、イベント(群)の情報片(群)に対する前記比率を制限する前記コントローラは、イベント(群)の情報片(群)に対する平均の比率を制限することを含む、とすることができる。また、上記コアエンジンでは、イベント(群)の情報片(群)に対する制限された平均は、情報片あたり4イベントである、とすることができる。また、上記コアエンジンでは、前記コアプロセッサは、イベント(群)の情報ビット(群)に対する平均の比率が前記予め定められた比率の値を超えるような情報シーケンスの中に、少なくとも一つのスタッフィング情報片を生成する、とすることができる。また、上記コアエンジンでは、イベント(群)の数を追跡するために前記コントローラと接続された第一カウンタレジスタと、情報片(群)の数を追跡するために前記コントローラと接続された第二カウンタと、を更に備え、前記コントローラは、前記第一カウンタ及び前記第二カウンタを、イベント(群)の情報片(群)に対する比率を制限する際に用いる、とすることができる。また、上記コアエンジンでは、前記比率を制限する前記コントローラは、前記第一カウンタの値を前記第二カウンタの値と比較することを含む、とすることができる。
また、本発明の更に他の形態では、複数のイベントを含む一つのイベントシーケンスを少なくとも一つの情報片を含む一つの情報シーケンスへと変換するための算術的符号化の方法であって、前記イベントシーケンスの少なくとも一つのイベントの受信と、前記少なくとも一つのイベントのコンテクスト情報の生成と、前記コンテクスト情報に対応しての、前記イベントがある特定の値を有する確率推定値の生成と、イベント(群)の情報片(群)に対する比率を制限することによる、前記受信イベント及び前記確率推定値に応じての前記情報シーケンスの0以上の情報片の生成とを備えた方法が提供される。
上記方法では、前記イベントシーケンスのイベントの前記受信は、バイナリイベント(群)の受信を含み、前記情報シーケンスの0以上の情報片の前記生成は、情報の0以上のバイナリビットの生成を含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する比率の前記制限は、イベント(群)の情報片(群)に対する平均の比率の制限を含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する比率の前記制限は、各々の生成される情報片のイベントの数の追跡を含む、とすることができる。また、上記方法では、各々の生成される情報片のイベントの数の前記追跡は、カウンタを用いての各々の生成される情報片のイベントの数の追跡を含む、とすることができる。また、上記方法では、カウンタを用いての各々の生成される情報片のイベントの数の前記追跡は、一つのイベントが処理される時に、前記カウンタを予め定められた加算値だけ加算することによる前記イベントの数の追跡を含む、とすることができる。また、上記方法では、前記カウンタの予め定められた加算値による前記加算は、前記カウンタを1だけ加算することを含む、とすることができる。また、上記方法では、各々の生成される情報片のイベントの数の前記追跡は、一つの情報片が生成される時に、前記予め定められた比率の値を前記カウンタレジスタから減算することを含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する平均の比率の前記制限は、イベント(群)の情報片(群)に対する前記平均比率を4の値に制限することを含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する平均の比率の前記制限は、更に、イベント(群)の情報片(群)に対する比率が前記予め定められた比率の値を超える時に、情報シーケンスの中に、少なくとも一つのスタッフィング情報片を生成することを含む、とすることができる。また、上記方法では、各々の生成される情報片のイベントの数の前記追跡は、第一カウンタを用いたイベント(群)の数の追跡及び第二カウンタを用いた情報片(群)の数の追跡を含む、とすることができる。また、上記方法では、各々の生成される情報片のイベントの数の前記追跡は、更に、前記第一カウンタの値の前記第二カウンタの値との比較を含む、とすることができる。
また、本発明の更に他の形態では、複数のイベントを含む一つのイベントシーケンスを少なくとも一つの情報片を含む一つの情報シーケンスへと変換するための、算術的エンコーダを用いた算術的符号化の方法であって、前記イベントシーケンスの少なくとも一つのイベント及び対応する確率推定値の受信と、前記イベント及び前記対応する確率推定値に応じての0以上の情報片の生成と、を備え、前記生成は、前記対応する確率推定値を用いたある特定のイベント値に対するサブレンジ値の算出と、前記受信イベント及び前記算出サブレンジ値に応じたレンジレジスタ及びロウレジスタの少なくとも一方の調整と、平均比率を追跡するために、一つのイベントが処理される際にカウンタレジスタを予め定められた加算値だけ加算することと、一つの情報片が生成される際に前記カウンタを予め定められた減算値だけ減算することと、によりイベント(群)の情報片(群)に対する平均比率を制限することを含む、前記算術的エンコーダの一部の再正規化と、を含んでいることを特徴とする方法が提供される。
上記方法では、前記カウンタレジスタの前記減算は、前記カウンタレジスタの値が0より小さいか否かを決定すること、前記カウンタレジスタの前記値が0より小さくない時に、前記カウンタレジスタを前記予め定められた減算値だけ減算すること、及び、前記カウンタレジスタの前記値が0より小さい時に、前記レンジレジスタの前記値を倍加して前記カウンタレジスタを前記予め定められた減算値だけ減算することを含む、とすることができる。また、上記方法では、前記少なくとも一つのイベントの前記受信は、少なくとも一つのバイナリイベントの受信を含み、0以上の情報片の前記生成は、0以上のバイナリビットの生成を含む、とすることができる。
また、本発明の更に他の形態は、少なくとも一つの情報片を含む一つの情報シーケンスを複数のイベントを含む一つのイベントシーケンスへと変換するための算術的デコーダであって、前記情報シーケンスの情報片(群)を受信するための少なくとも一つの入力ポートと、少なくとも一つの出力ポートと、少なくとも一つの受信されるイベント(群)のコンテクスト情報を生成するためのコンテクスト生成器を含み、前記少なくとも一つの入力ポート及び前記少なくとも一つの出力ポートと接続されたシーケンサと、前記イベントシーケンスの一つの生成されたイベント及び対応するコンテクスト情報を受信するために、及び、確率推定値を決定するために、前記シーケンサと接続された確率推定器と、イベント(群)の情報片(群)に対する制限された比率を考慮することにより、少なくとも一つのイベントを生成するために、前記確率推定値に応じて前記シーケンサからの前記情報シーケンスの少なくとも一つの情報片を処理するために、前記シーケンサ及び前記確率推定器と接続されたコアエンジンと、を備え、前記確率推定値を更新するために、前記生成されたイベントが対応するコンテクスト情報と共に前記シーケンサから前記確率推定器へと提供され、前記生成されたイベントは、前記少なくとも一つの出力ポートからの前記イベントシーケンスとしての伝送のために前記シーケンサへと提供されることを特徴とする算術的デコーダが提供される。
上記算術的デコーダでは、前記情報シーケンスの前記少なくとも一つの情報片は、バイナリビットであって、前記イベントシーケンスの前記イベント(群)は、バイナリイベント(群)である、とすることができる。また、イベント(群)の情報片(群)に対する制限された比率を考慮することにより少なくとも一つのイベントを生成する前記コアエンジンは、イベント(群)の情報片(群)に対する平均の制限された比率を考慮することにより少なくとも一つのイベントを生成する前記コアエンジンを含む、とすることができる。また、上記算術的デコーダでは、イベント(群)の情報片(群)に対する平均の制限された比率を考慮する前記コアエンジンは、情報片(群)に対して4つのイベントという値を有する平均の制限された比率を考慮する前記コアエンジンを含む、とすることができる。また、上記算術的デコーダでは、前記コアプロセッサは、イベント(群)の情報片(群)に対する平均の制限された前記比率が予め定められた平均の比率の値であることを考慮する際に用いられる、情報片(群)に対するイベントの数を追跡するためのカウンタレジスタを含んでいる、とすることができる。また、上記算術的デコーダでは、前記コアエンジンは、前記情報シーケンスの中のスタッフィング情報片(群)を識別するために前記カウンタレジスタを用いる、とすることができる。また、上記算術的デコーダでは、前記コアエンジンは、レンジレジスタを更に含み、前記情報シーケンスの中の前記スタッフィング情報片(群)は、前記レンジレジスタがリスケールされる場合のみ識別される、とすることができる。また、上記算術的デコーダでは、前記コアエンジンは、一つのイベントが処理される時、前記カウンタを予め定められた加算値だけ加算する、とすることができる。また、上記算術的デコーダでは、前記予め定められた加算値は、1である、とすることができる。また、上記算術的デコーダでは、前記コアエンジンは、前記カウンタレジスタを用いて、一つの情報片が処理される時に、前記予め定められた比率の値を前記カウンタレジスタから減算することにより、イベント(群)の情報片(群)に対する平均の制限された比率を考慮する、とすることができる。また、上記算術的デコーダでは、前記イベントシーケンスの前記生成イベント(群)は、M−aryである、とすることができる。また、上記算術的デコーダでは、前記コアエンジンは、情報片(群)の数を追跡するための第一カウンタレジスタ、及び、イベント(群)の数を追跡するための第二カウンタレジスタを含んでおり、前記第一及び第二カウンタは、イベント(群)の情報片(群)に対する制限された比率を考慮する際に用いられる、とすることができる。また、前記コアエンジンは、前記第一カウンタの値を前記第二カウンタの値と比較することにより前記制限された比率を考慮する、とすることができる。
また、本発明の更に他の形態では、少なくとも一つの情報片を含む一つの情報シーケンスを複数のイベントを含む一つのイベントシーケンスへと変換するためのコアエンジンであって、前記情報シーケンスの少なくとも一つの情報片及び確率推定値を受信するための、並びに、イベント(群)の情報片(群)に対する制限された比率を考慮することにより前記少なくとも一つの情報片及び確率シーケンスに応じてイベントシーケンスの0以上のイベントを生成するためのコントローラを備えたことを特徴とするコアエンジンが提供される。
上記コアエンジンでは、イベント(群)の情報片(群)に対する制限された比率を考慮する際に用いられる、各々の情報片のイベントの数を追跡するために前記コントローラと接続されたカウンタレジスタを更に備えたもの、とすることができる。また、上記コアエンジンでは、前記コントローラは、一つのイベントが処理される時、前記カウンタを予め定められた加算値だけ加算する、とすることができる。また、上記コアエンジンでは、前記予め定められた加算値は、1である、とすることができる。また、上記コアエンジンでは、前記コアエンジンは、前記カウンタレジスタを用いて、一つの情報片が処理される時に、前記予め定められた比率の値を前記カウンタレジスタから減算することにより、イベント(群)の平均の制限された比率を考慮する、とすることができる。また、上記コアエンジンでは、前記イベントシーケンスの前記イベント(群)は、バイナリイベントであって、前記情報の前記情報片(群)は、情報のバイナリビットである、とすることができる。また、上記コアエンジンでは、イベント(群)の情報片(群)に対する制限された比率を考慮する前記コントローラは、イベント(群)の情報片(群)に対する平均の制限された比率を考慮することを含む、とすることができる。また、上記コアエンジンでは、イベント(群)の情報片(群)に対する前記制限された平均は、情報片あたり4イベントである、とすることができる。また、上記コアエンジンでは、前記コアプロセッサは、イベント(群)の情報ビット(群)に対する平均の制限された比率を用いて、前記情報シーケンスの中の0以上のスタッフィング情報片を識別する、とすることができる。また、上記コアエンジンでは、情報片(群)の数を追跡するための第一カウンタと、イベント(群)の数を追跡するための第二カウンタと、を更に備え、前記第一及び第二カウンタは、イベント(群)の情報片(群)に対する制限された比率を考慮する際に用いられる、とすることができる。また、上記コアエンジンは、前記第一カウンタの値を前記第二カウンタの値と比較することにより前記制限された比率を考慮する、とすることができる。
また、本発明の更に他の形態では、少なくとも一つの情報片を含む一つの情報シーケンスを複数のイベントシーケンスを含む一つのイベントシーケンスへと変換するための算術的復号の方法であって、前記情報シーケンスの少なくとも一つの情報片の受信と、前記少なくとも一つのイベントのコンテクスト情報の生成と、前記コンテクスト情報に対応した確率推定値の生成と、前記少なくとも一つの受信された情報片及び前記確率推定値に応じた、イベント(群)の情報片(群)に対する制限された比率を考慮することによる、前記イベントシーケンスの0以上のイベントの生成とを備えたことを特徴とする方法が提供される。
上記方法では、少なくとも一つの情報片の前記受信は、少なくとも一つの情報のバイナリビットの受信を含み、0以上のイベントの前記生成は、0以上のバイナリイベントの生成を含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する制限された比率への前記考慮は、イベント(群)の情報片(群)に対する平均の制限された比率への考慮を含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する平均の制限された比率の前記考慮は、各々の情報片に対するイベントの数の追跡を含む、とすることができる。また、上記方法では、各々の情報片のイベントの数の前記追跡は、各々の生成される情報片のイベントの数のカウンタを用いた追跡を含む、とすることができる。また、上記方法では、カウンタを用いた各々の情報片のイベントの数の前記追跡は、一つのイベントが処理される時に前記カウンタを予め定められた加算値だけ加算することによる前記イベントの数の追跡を含む、とすることができる。また、上記方法では、前記カウンタの予め定められた加算値による前記加算は、前記カウンタを1だけ加算することを含む、とすることができる。また、上記方法では、各々の情報片のイベントの数の前記追跡は、一つの情報片が処理される時に前記予め定められた比率の値を前記カウンタレジスタから減算することを含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する平均の比率の前記制限は、イベント(群)の情報片(群)に対する平均の比率を4の値に制限することを含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する平均の制限された比率の前記考慮は、更に、イベント(群)の情報片(群)に対する平均の制限された比率を用いて、前記情報シーケンスの中の少なくとも一つのスタッフィング情報片を識別することを含む、とすることができる。また、上記方法では、イベント(群)の情報片(群)に対する制限された比率の前記考慮は、第一カウンタを用いた情報片(群)の数の追跡と、第二カウンタを用いたイベント(群)の数の追跡と、前記第一カウンタの値の前記第二カウンタの値との比較とを含む、とすることができる。
また、本発明の更に他の形態では、少なくとも一つの情報片を含む一つの情報シーケンスを複数のイベントを含む一つのイベントシーケンスへと変換するための、算術的デコーダを用いた算術的復号の方法であって、前記情報シーケンスの少なくとも一つの情報片及び確率推定値の受信と、前記情報片及び前記確率推定値に応じた0以上のイベントの生成と、を備え、前記生成は、前記確率推定値を用いたある特定のイベント値に対するサブレンジ値の算出と、前記少なくとも一つの情報片及び前記算出されたサブレンジ値に応じたレンジレジスタ及びバリューレジスタの少なくとも一方の調整と、前記算出されたサブレンジ値と前記バリューレジスタとの間の比較に応じたイベントの放出と、前記レンジレジスタの値が予め定められたレンジ値より大きい場合に、平均比率追跡のためのカウンタレジスタを予め定められた加算値だけ加算することと、前記レンジレジスタの前記値が前記予め定められたレンジ値以下である場合に、前記カウンタレジスタを予め定められた減算値だけ減算することと、によりイベント(群)の情報片(群)に対する平均比率を考慮することを含む、前記算術的デコーダの一部の再正規化と、を含んでいることを特徴とする方法が提供される。
上記方法では、前記カウンタレジスタの前記減算は、前記カウンタレジスタの値が0より小さいか否かを決定することと、前記カウンタレジスタの前記値が0より小さくない時に、前記バリューレジスタを倍加し、前記バリューレジスタに前記放出されたイベントの値を加算し、前記カウンタレジスタを前記予め定められた減算値だけ減算することと、前記カウンタレジスタの前記値が0より小さい時に、前記レンジレジスタを倍加し、前記バリューレジスタを倍加し、前記バリューレジスタに前記放出されたイベントの値を加算し、前記カウンタレジスタを前記予め定められた減算値だけ減算することと、を含む、とすることができる。また、上記方法では、前記少なくとも一つのイベントの前記受信は、少なくとも一つのバイナリイベントの受信を含み、0以上の情報片の前記生成は、0以上のバイナリビットの生成を含む、とすることができる。
また、本発明の更に他の形態では、一つのビデオ信号を、少なくとも一つの情報片を含む一つの情報シーケンスへと符号化するためのビデオ符号化システムであって、前記ビデオ信号を、当該ビデオ信号を表す複数のイベントを含むイベントシーケンスへと変換するビデオプロセッサと、前記イベントシーケンスの少なくとも一つのイベント及び当該少なくとも一つのイベントの確率推定値を受信するための、並びに、イベント(群)の情報片(群)に対する平均の比率を制限することにより前記受信イベント及び前記確率推定値に応じて前記情報シーケンスの0以上の片を生成するための、コントローラを有するコアエンジンを含み、前記イベントシーケンスを前記情報シーケンスへと変換するために前記ビデオプロセッサと通信するエンコーダとを備えたことを特徴とするシステムが提供される。
また、本発明の更に他の形態では、少なくとも一つの情報片を含む一つの情報シーケンスを一つのビデオ信号へと復号するためのビデオ復号システムであって、前記情報シーケンスの少なくとも一つの情報片及び確率推定値を受信するため、並びに、イベント(群)の情報片(群)に対する平均の制限された比率を考慮することにより前記少なくとも一つの情報片及び確率シーケンスに応じて前記イベントシーケンスの0以上のイベントを生成するためのコントローラを有し、前記情報シーケンスを複数のイベントを含む一つのイベントシーケンスへと変換するためのデコーダと、前記イベントシーケンスを前記ビデオ信号へと変換するために前記デコーダと通信するビデオプロセッサとを備えたことを特徴とするシステムが提供される。
上記ビデオ復号システムでは、イベント(群)の情報片(群)に対する制限された比率を考慮する前記ビデオコントローラ信号は、イベント(群)の情報片(群)に対する平均の比率のカウンタを用いての追跡を含み、各々の処理されるイベントに対して前記カウンタは加算値だけ加算される、とすることができる。また、上記ビデオ復号システムでは、イベント(群)の情報片(群)に対する制限された比率を考慮する前記コントローラは、情報片の数を追跡するための第一カウンタ、及び、イベントの数を追跡するための第二カウンタを用いて、前記第一カウンタの値を前記第二カウンタの値と比較しての、イベント(群)の情報片(群)に対する平均の比率の追跡を含む、とすることができる。また、上記ビデオ復号システムでは、前記ビデオ信号は、ビデオイメージを表す複数のサンプルを含み、前記イベントシーケンスを前記ビデオ信号へと変換する前記ビデオプロセッサは、前記イベントシーケンスを前記複数のサンプルへ変換することを含む、とすることができる。また、上記ビデオ復号システムでは、前記ビデオ信号は、ビデオイメージを表す複数のサンプルブロックを含み、前記イベントシーケンスを前記ビデオ信号へと変換する前記ビデオプロセッサは、前記イベントシーケンスを前記複数のサンプルブロックへ変換することを含む、とすることができる。また、上記ビデオ復号システムでは、前記サンプルブロック(群)は、16×16サンプル、8×8サンプル、及び、4×4サンプルの少なくとも一つを含む、とすることができる。
また、本発明を一つの側面からみた場合、本発明は、一つのイベントシーケンスから算術的エンコーダによって生成される情報片(群)の一つのシーケンスであって、イベント(群)の情報片(群)に対する比率が予め定められた比率によって制限されるように、0以上のスタッフィング情報片を含むことを特徴とする情報片(群)のシーケンスである、とすることもできる。
上記情報片(群)のシーケンスでは、前記予め定められたイベント(群)の情報片(群)に対する比率は、4である、とすることができる。また、上記情報片(群)のシーケンスでは、前記情報片(群)のシーケンスは、バイナリイベント(群)のシーケンスから算術的エンコーダによって生成されるビット(群)のシーケンスであって、当該シーケンスのビット(群)の数に対するバイナリイベント(群)の比率が予め定められた比率によって制限されるように、0以上のスタッフィングビット(群)を含む、とすることができる。また、上記情報片(群)のシーケンスでは、前記情報片(群)及び前記0以上のスタッフィング片は、M−aryである、とすることができる。
また、本発明の更に他の形態では、各々のイベントシーケンスが複数のイベントを含むとして、少なくとも一つのイベントシーケンスを、各々の情報シーケンスが少なくとも一つの情報片を含むとして、少なくとも一つの情報シーケンスへと変換するためのエントロピーコーダであって、少なくとも一つのイベントシーケンスの少なくとも一つのイベントに応じて少なくとも一つの情報シーケンスの0以上の情報片を生成するための算術的エンコーダと、少なくとも一つのイベントシーケンスの中のイベント(群)の数を、少なくとも一つの情報シーケンスの中の生成された情報片(群)の数の関数として制限するために前記算術的エンコーダと接続されたコントローラとを備えたことを特徴とするエントロピーコーダが提供される。
上記エントロピーコーダでは、少なくとも一つのイベントシーケンスが複数のセグメントに分割された入力データを表し、情報片(群)の数の関数としてイベント(群)の数を制限する前記コントローラは、少なくとも一つのイベントシーケンスの中のイベントの最大数を、少なくとも一つの情報シーケンスの中の生成情報片の数と、セグメントの数とを含む一次結合の関数として制限するコントローラを含む、とすることができる。また、上記エントロピーコーダでは、前記コントローラは、少なくとも一つの情報シーケンスの中に0以上のスタッフィング片を生成することにより、少なくとも一つのイベントシーケンスのイベントの数を少なくとも一つの情報シーケンスの情報片の数へと制限する、とすることができる。また、上記エントロピーコーダでは、前記入力データは、ビデオデータである、とすることができる。また、各々のセグメントは、前記入力データの16×16サンプルのブロックを含む、とすることができる。また、上記エントロピーコーダでは、前記コントローラは、少なくとも一つの情報シーケンスの中に0以上のスタッフィング片を生成することにより、少なくとも一つのイベントシーケンスのイベントの数を少なくとも一つの情報シーケンスの情報片の数へと制限する、とすることができる。また、上記エントロピーコーダでは、前記情報片(群)及び前記イベント(群)の少なくとも一つがM−aryである、とすることができる。
また、本発明の更に他の形態では、各々のイベントシーケンスが複数のイベントを含むとして、少なくとも一つのイベントシーケンスを、各々の情報シーケンスが少なくとも一つの情報片を含むとして、少なくとも一つの情報シーケンスへと変換するための方法であって、少なくとも一つのイベントシーケンスの少なくとも一つのイベントに応じての、少なくとも一つの情報シーケンスの0以上の情報片の生成と、少なくとも一つのイベントシーケンスの中のイベントの数の、少なくとも一つの情報シーケンスの中の生成された情報片の数の関数としての制限とを備えたことを特徴とする方法が提供される。
上記方法では、少なくとも一つのイベントシーケンスが複数のセグメントに分割された入力データを表し、前記制限は、少なくとも一つのイベントシーケンスの中のイベントの最大数を、少なくとも一つの情報シーケンスの中の生成情報片の数と、セグメントの数とを含む一次結合の関数として制限することを含む、とすることができる。
また、本発明の更に他の形態では、入力データを、各々の情報シーケンスが少なくとも一つの情報片を含むとして、少なくとも一つの情報シーケンスへと変換するためのエンコーダであって、入力データを、各々のイベントシーケンスが複数のイベントを含むとして、少なくとも一つのイベントシーケンスへと変換するためのプロセッサと、少なくとも一つのイベントシーケンスの少なくとも一つのイベントに応じて少なくとも一つの情報シーケンスの0以上の情報片を生成するための算術的エンコーダと、少なくとも一つのイベントシーケンスの中のイベント(群)の数を、少なくとも一つの情報シーケンスの中の生成された情報片(群)の数の関数として制限するために前記算術的エンコーダと接続されたコントローラとを備えたことを特徴とするエンコーダが提供される。
上記エンコーダでは、前記コントローラは、少なくとも一つの情報シーケンスの中に0以上のスタッフィング片を生成することにより、少なくとも一つのイベントシーケンスのイベントの数を少なくとも一つの情報シーケンスの情報片の数へと制限する、とすることができる。また、前記プロセッサは、前記入力データを複数のセグメントへと分割し、情報片(群)の数の関数としてイベント(群)の数を制限する前記コントローラは、少なくとも一つのイベントシーケンスの中のイベントの最大数を、少なくとも一つの情報シーケンスの中の生成情報片の数と、セグメントの数とを含む一次結合の関数として制限するコントローラを含む、とすることができる。また、上記エンコーダでは、前記算術的エンコーダ及び前記コントローラは、エントロピーエンコーダを構成し、前記エントロピーエンコーダは、前記プロセッサと接続され、少なくとも一つの情報シーケンスの中の生成された情報片の数に関する情報を前記プロセッサへと伝送することが可能である、とすることができる。また、上記エンコーダでは、前記プロセッサは、前記エントロピーエンコーダから受信される前記情報に応じて少なくとも一つのイベントシーケンスのイベントの比率を低減することが可能である、とすることができる。また、上記エンコーダでは、前記入力データは、ビデオデータである、とすることができる。また、上記エンコーダでは、各々のセグメントは、16×16サンプルの一つのブロックを含む、とすることができる。また、上記エンコーダでは、前記コントローラは、少なくとも一つの情報シーケンスの中に0以上のスタッフィング片を生成することにより、少なくとも一つのイベントシーケンスのイベントの数を少なくとも一つの情報シーケンスの情報片の数へと制限する、とすることができる。また、上記エンコーダでは、前記情報片(群)及び前記イベント(群)の少なくとも一つがM−aryである、とすることができる。
また、本発明を一つの側面からみた場合、本発明は、各々のイベントシーケンスが複数のイベントを含むとして、エントロピーエンコーダにおいて少なくとも一つのイベントシーケンスから生成される情報片(群)のシーケンスであって、前記情報シーケンスのシーケンスの中の情報片の数が、少なくとも一つイベントシーケンスの中のイベントの最大数を、前記情報片(群)のシーケンスの中の生成情報片(群)の数及びセグメントの数を含む一次結合の関数として制限するために用いられることを特徴とする情報片(群)のシーケンスである、とすることもできる。
上記情報片(群)のシーケンスでは、前記情報片(群)のシーケンスは、少なくとも一つイベントシーケンスの中のイベントの最大数の前記制限が満たされるように、0以上のスタッフィング情報片を含む、とすることができる。また、前記情報片(群)及び前記イベント(群)の少なくとも一つがM−aryである、とすることができる。
100…算術的エンコーダ,エンコーダ,105…シーケンサ、110…確率推定器、115…コアエンジン、125…イベントシーケンス、135…情報シーケンス、165…レンジレジスタ、170…ロウレジスタ、175…ビットアウトスタンディングレジスタ、180…カウンタレジスタ、700…算術的デコーダ、705…シーケンサ、710…確率推定器、715…コアエンジン、725…イベントシーケンス、735…情報シーケンス、765…レンジレジスタ、765…バリューレジスタ、765…レンジレジスタ、770…バリューレジスタ、775…カウンタレジスタ、1100…エンコーダ、1105…プロセッサ、1110…エントロピーエンコーダ、1115…算術的エンコーダ、1120…コントローラ、1125…入力データ、1130…情報シーケンス、1135…イベントシーケンス。