(57)【特許請求の範囲】
【請求項１】
レート制御を使って画像データをエンコードするビデオ・エンコーダを有する装置であって、前記レート制御は、量子化きざみサイズを推定し、丸めオフセットを調整することを含み、前記丸めオフセットは、エンコードの間、非一定であることができ、前にエンコードされたピクチャーからの情報に基づいてピクチャーとピクチャーの間に更新される、装置。
【請求項２】
前記レート制御が、一定ビットレート・アプリケーション、可変ビットレート・アプリケーションおよびトランスコード・アプリケーションのうちの少なくとも一つに適用される、請求項１記載の装置。
【請求項３】
前記レート制御のためのレート制御パラメータが、ρ領域レート・モデル、TM5レート・モデルおよびTMN8レート・モデルのうちの少なくとも一つに基づく、請求項１記載の装置。
【請求項４】
前記ビデオ・エンコーダが、前記画像データを、国際標準化機関／国際電気標準会議動画像専門家グループ４パート10の先進ビデオ符号化規格／国際電気通信連合・電気通信部門H.264勧告に準拠するビットストリームにエンコードする、請求項１記載の装置。
【請求項５】
前記ビデオ・エンコーダがマルチパス・ビデオ・エンコーダであり、前記レート制御のためのレート制御モデル・パラメータが、前のエンコード・パスおよび現在のパスの前にエンコードされたピクチャーのうちの少なくとも一つからの情報に基づいて更新される、請求項１記載の装置。
【請求項６】
前記レート制御のためのレート制御モデル・パラメータが、前にエンコードされたピクチャーからの情報に基づいて更新される、請求項１記載の装置。
【請求項７】
前記ビデオ・エンコーダが、前記画像データを、結果ビットストリームにエンコードし、前記結果ビットストリーム中に前記丸めオフセットおよび丸めオフセット情報のうちの少なくとも一つを埋め込む、請求項１記載の装置。
【請求項８】
レート制御を使って画像データをエンコードするステップを含む方法であって、前記レート制御は、量子化きざみサイズを推定し、丸めオフセットを調整することを含み、前記丸めオフセットは、エンコードの間、非一定であることができ、前にエンコードされたピクチャーからの情報に基づいてピクチャーとピクチャーの間に更新される、方法。
【請求項９】
前記レート制御が、一定ビットレート・アプリケーション、可変ビットレート・アプリケーションおよびトランスコード・アプリケーションのうちの少なくとも一つに適用される、請求項８記載の方法。
【請求項１０】
前記レート制御のためのレート制御パラメータが、ρ領域レート・モデル、TM5レート・モデルおよびTMN8レート・モデルのうちの少なくとも一つに基づく、請求項８記載の方法。
【請求項１１】
前記エンコードするステップが、前記画像データを、国際標準化機関／国際電気標準会議動画像専門家グループ４パート10の先進ビデオ符号化規格／国際電気通信連合・電気通信部門H.264勧告に準拠するビットストリームにエンコードする、請求項８記載の方法。
【請求項１２】
前記エンコードするステップがマルチパス・ビデオ・エンコーダにおいて実行され、前記レート制御のためのレート制御モデル・パラメータが、前のエンコード・パスおよび現在のパスの前にエンコードされたピクチャーのうちの少なくとも一つからの情報に基づいて更新される、請求項８記載の方法。
【請求項１３】
前記レート制御のためのレート制御モデル・パラメータが、前にエンコードされたピクチャーからの情報に基づいて更新される、請求項８記載の方法。
【請求項１４】
前記エンコードするステップが、前記画像データを、結果ビットストリームにエンコードし、前記結果ビットストリーム中に前記丸めオフセットおよび丸めオフセット情報のうちの少なくとも一つを埋め込む、請求項８記載の方法。
【請求項１５】
レート制御を使ってビットストリーム中の画像データをデコードするためのビデオ・デコーダを有する装置であって、前記レート制御は、量子化きざみサイズおよび丸めオフセットに関わり、前記丸めオフセットは、デコードの間、非一定であることができ、前にデコードされたピクチャーからの情報に基づいてピクチャーとピクチャーの間に更新され、ビットストリーム中にあるおよび前記ビットストリームに関するのうちの少なくとも一方である情報に基づいて推定されるか、前記ビットストリームから抽出されるかの一方である、装置。
【請求項１６】
前記レート制御が、一定ビットレート・アプリケーション、可変ビットレート・アプリケーションおよびトランスコード・アプリケーションのうちの少なくとも一つに適用される、請求項１５記載の装置。
【請求項１７】
前記レート制御のためのレート制御パラメータが、ρ領域レート・モデル、TM5レート・モデルおよびTMN8レート・モデルのうちの少なくとも一つに基づく、請求項１５記載の装置。
【請求項１８】
前記ビットストリームが、国際標準化機関／国際電気標準会議動画像専門家グループ４パート10の先進ビデオ符号化規格／国際電気通信連合・電気通信部門H.264勧告に準拠する、請求項１５記載の装置。
【請求項１９】
レート制御を使ってビットストリーム中の画像データをデコードする段階を含む方法であって、前記レート制御は、量子化きざみサイズおよび丸めオフセットに関わり、前記丸めオフセットは、デコード段階の間、非一定であることができ、前にデコードされたピクチャーからの情報に基づいてピクチャーとピクチャーの間で更新され、前記ビットストリーム中にあるおよび前記ビットストリームに関するのうちの少なくとも一方である情報に基づいて推定されるか、前記ビットストリームから抽出されるかの一方である、方法。
【請求項２０】
前記レート制御が、一定ビットレート・アプリケーション、可変ビットレート・アプリケーションおよびトランスコード・アプリケーションのうちの少なくとも一つに適用される、請求項１９記載の方法。
【請求項２１】
前記レート制御のためのレート制御パラメータが、ρ領域レート・モデル、TM5レート・モデルおよびTMN8レート・モデルのうちの少なくとも一つに基づく、請求項１９記載の方法。
【請求項２２】
前記ビットストリームが、国際標準化機関／国際電気標準会議動画像専門家グループ４パート10の先進ビデオ符号化規格／国際電気通信連合・電気通信部門H.264勧告に準拠する、請求項１９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〈関連出願への相互参照〉
本願は、2007年10月5日に出願され、ここにその全体において参照によって組み込まれる米国仮出願第60/977,926号の利益を主張するものである。
【０００２】
〈技術分野〉
本願の原理は、概括的にはビデオ・エンコードに、より詳細には、ビデオ・エンコードおよびデコードにおけるレート制御の精度のための方法および装置に関する。
【背景技術】
【０００３】
たいていのビデオ符号化アプリケーションは、所与の目標ビットレートで入力ビデオを圧縮するようエンコーダを制約する。これを達成するために、エンコーダはレート制御システムを使う。レート制御システムは、入力ビデオ源内の各ピクチャーに対してある数のビットを割り当て、割り当てられたビット数に合うようエンコード・パラメータを調整する。レート制御システムのパフォーマンスは、目標ビットレートを満たす精度および圧縮されたビデオの視覚的品質によって測られる。国際標準化機関／国際電気標準会議（ISO/IEC）動画像専門家グループ２規格（以下、「MPEG-2規格」）、ISO/IEC動画像専門家グループ４（MPEG-4）パート10の先進ビデオ符号化（AVC）規格／国際電気通信連合・電気通信部門（ITU-T）H.264勧告（以下、「MPEG-4  AVC規格」）および映画テレビ技術者協会（SMPTE）ビデオ・コーデック１規格（以下、「VC-1規格」）のようなビデオ符号化規格においては、量子化きざみサイズ（quantization  step  size）、丸めオフセット（rounding  offset）および量子化行列（quantization  matrix）といった、ビットレートに影響するいくつかの量子化パラメータがある。
【０００４】
例示的な目的のため、MPEG-4  AVC規格の量子化プロセスについてここで論じる。数学的には、エンコーダにおいて、変換された変数は次のように量子化される：
【０００５】
【数１】
0005411144.tif 000002
ここで、Wは変換された係数であり、量子化レベルZに量子化される。ここで、qは量子化きざみサイズであり、sは丸めオフセットである。関数└・┘は値を直近の整数に丸め、sgn(・)は信号の符号を返す。上記量子化行列が適用されるとき、係数は、エンコーダにおける量子化プロセスの前にまずスケーリングされる。0に量子化されるWの範囲は不感帯〔デッドゾーン〕と称される。この特定の場合には、不感帯はΔ＝2×(1−s)×qである。デコーダでは、量子化レベルZは信号W′に再構成される。これは逆量子化と呼ばれ、数学的には
W′＝q・Z                    (2)
と記述される。
【０００６】
レート制御アルゴリズムは、目標ビット数を得るために量子化パラメータを調整する。レート制御アルゴリズムは一般に、何らかの時間区間について使われるビット数がこの時間区間についての割り当てられたビット数に近いか実質的に等しいときに精確であると考えられる。レート制御精度を測定するために使われる特定の時間区間は、アプリケーションに依存して定義される。いくつかのアプリケーションでは、ビットレートはピクチャー・レベルで精確であることが好ましい。放送のような他のアプリケーションでは、ビットレートは、チャンネル帯域幅制約のため、数フレームで精確であることが好ましい。DVDオーサリングのような他のいくつかのアプリケーションでは、ビットレート精度はしばしば、シーケンス全体について測定され、ムービー全体によって消費されるビット数が要求を満たすときに精確であると考えられる。
【０００７】
既存のレート制御アルゴリズムは、丸めオフセットおよび量子化行列が一定であることを前提にしており、量子化きざみサイズのみを調節する。量子化きざみサイズは有限個の選択肢しかない。それらの選択肢は量子化インデックスによって表され、量子化インデックスはエンコードされたビットストリームに埋め込まれてビデオを再構成するためにデコーダに伝達される。限られた個数の量子化きざみサイズの選択肢では、既存のレート制御アルゴリズムは品質の損失なくしては非常に精確な制御を達成することはほとんどできない。レート制御アルゴリズムに起因する品質の損失はしばしば、ピクチャー内でのまたは二枚以上のピクチャーにわたる品質の非一貫性として見られる。より低品質のピクチャーは、表示されるピクチャーの一部を歪ませる目に見えるアーチファクトを含むことがありうる。
【０００８】
ピクチャーのためのレート制御精度を改善するために、既存のアルゴリズムにおける一般的なアプローチは、マクロブロック・レベル（MBレベル）のレート制御を適用することである。従来技術では、ρ領域レート制御法がこのアプローチを例示するために使われてきた。ρ領域レート制御法は、ρをエンコードされた領域についての量子化された変換された係数の間での0係数の割合、Rをその領域をエンコードするために使われるビット数として、ρとRの間の線形関係を想定する。数学的には、このことは次の線形レート・モデルによって表されうる。
【０００９】
R(ρ)＝θ(1−ρ)＋Rc            (3)
ここで、Rcは領域をエンコードするために使われる非テクスチャ・ビットの数であり、θは定数である。
【００１０】
ρが量子化きざみサイズqとともに単調に増加することを注意しておく。このことは、両者の間に一対一の対応があることを含意する。したがって、目標ビット数R、推定されるパラメータθおよびRcが与えられると、ρ領域レート制御法はρの値を得、したがって、一対一のρ‐qマッピングに基づいて量子化きざみサイズqを得る。
【００１１】
しばしば、上のようにして計算された量子化きざみサイズqは、エンコーダにおける量子化インデックスによって表せる限られた数の量子化きざみサイズのうちにはいらないことがありうる。一つのアプローチは、ピクチャー内のマクロブロックにq′のまわりの量子化きざみサイズ、qに最も近く量子化インデックスによって表せる量子化きざみサイズを使わせることである。さらに、ピクチャーによって使用される平均量子化きざみサイズは約qである。ある実施形態では、マクロブロックは量子化きざみサイズ｛q′−Δ1，q′，q′＋Δ2｝のうちから選択できる。もう一つのアプローチは、各マクロブロックがエンコードされたあとでθおよびRcを更新し、各マクロブロックについてqを計算することである。
【００１２】
TMN8と称されるもう一つのポピュラーなレート制御アルゴリズムでは、量子化きざみサイズqはまずあるピクチャーについて計算される。エンコーダはqを用いて諸マクロブロックをエンコードすることを始める。その際、より多くのマクロブロックがエンコードされていくにつれ、レート制御モデル・パラメータは更新され、量子化きざみサイズはマクロブロック・ベースで更新される。
【００１３】
MBレベルの調整の一つの問題は、量子化きざみサイズがマクロブロック（macroblock）間で変動するというこである。場合によっては、量子化パラメータ間の差が、ピクチャー内での品質の非一貫性を引き起こしうる。
【００１４】
図１に目を転じると、ビデオ・エンコードのためのレート制御方法が、参照符号１００によって概括的に示されている。
【００１５】
方法１００は、機能ブロック１１０に制御を渡す開始ブロック１０５を含む。機能ブロック１１０はエンコード・セットアップを実行するおよび／または他の仕方でこれに関わり、機能ブロック１１５に制御を渡す。機能ブロック１１５はレート制御パラメータを初期化し、制御をループ境界ブロック１２０に渡す。ループ境界ブロック１２０は、変数iを使って、処理されている現在ピクチャー内の各ブロックにわたるループを実行し、ここで、i＝1,…,ピクチャー内のマクロブロック数（＃）であり、制御を機能ブロック１２５に渡す。機能ブロック１２５はマクロブロックiについての量子化きざみサイズqiを計算し、制御を機能ブロック１３０に渡す。機能ブロック１３０は量子化きざみサイズqiでマクロブロックiをエンコードし、制御を機能ブロック１３５に渡す。機能ブロック１３５はレート制御モデル・パラメータを更新し（たとえば前にエンコードされたマクロブロックに基づいて）、制御をループ境界ブロック１４０に渡す。該ループ境界ブロックはループを終わらせ、制御を終了ブロック１９９に渡す。
【００１６】
図１の方法１００では、方法１００を適用する対象となるエンコード・プロセスを通じて丸めオフセット・パラメータが一定であることは認識しておくべきである。
【００１７】
さらに、機能ブロック１１０が任意的にオペレーターの介助を含んでいてもよいことも認識しておくべきである。さらに、機能ブロック１１０に対応するエンコーダ・セットアップは、目標ビットレートのセットアップおよびエンコード・プロセスに関わるパラメータの任意の集合の指定を含んでもよい。
【００１８】
さらに、機能ブロック１２５によって実行されるマクロブロックiについての量子化きざみサイズqiのの計算は、たとえばρ領域レート・モデルまたはTMN8レート・モデルに基づいていてもよいことは認識しておくべきである。
【００１９】
全マクロブロックによって使用される量子化きざみサイズ｛qi｝i=1,…,MB数は、有意に変動することがありえ、ピクチャー内での品質の非一貫性を引き起こしうる。ピクチャー内でのより一貫した品質を得るために、エンコーダは量子化きざみサイズのダイナミックレンジを制限することを選ぶことができる。結果として、ピクチャーが実際に使うビット数は、目標ビット数から有意に異なることがありうる。
【００２０】
こうして、上記のように、従来技術のレート制御方法は、レート制御の精確さを欠くか、品質の非一貫性を作り出すものであった。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
従来技術のこれらおよびその他の欠点および不都合な点が、本願の原理によって対処される。本願の原理は、ビデオ・エンコードおよびデコードにおけるレート制御の精確さのための方法および装置に向けられる。
【課題を解決するための手段】
【００２２】
本願の原理のある側面によれば、装置が提供される。本装置は、レート制御を使って画像データをエンコードするためのビデオ・エンコーダを含む。レート制御は、量子化きざみサイズを推定し、丸めオフセットを調整することを含む。丸めオフセットは、エンコードの間、非一定であることができる。
【００２３】
本願の原理の別の側面によれば、方法が提供される。本方法は、レート制御を使って画像データをエンコードすることを含み、ここで、レート制御は、量子化きざみサイズを推定し、丸めオフセットを調整することを含む。丸めオフセットは、エンコードの間、非一定であることができる。
【００２４】
本願の原理のさらに別の側面によれば、装置が提供される。本装置は、レート制御を使ってビットストリーム中の画像データをデコードするためのビデオ・デコーダを含む。レート制御は、量子化きざみサイズおよび丸めオフセットに関わる。丸めオフセットは、デコードの間、非一定であることができ、ビットストリーム中およびビットストリームに関するのうちの少なくとも一方である情報に基づいて推定されるか、ビットストリームから抽出されるかの一方である。
【００２５】
本願の原理のさらに別の側面によれば、方法が提供される。本方法は、レート制御を使ってビットストリーム中の画像データをデコードすることを含む。レート制御は、量子化きざみサイズおよび丸めオフセットに関わる。丸めオフセットは、デコード段階の間、非一定であることができ、ビットストリーム中およびビットストリームに関するのうちの少なくとも一方である情報に基づいて推定されるか、ビットストリームから抽出されるかの一方である。
【００２６】
本願の原理のこれらおよびその他の側面、特徴および利点は、付属の図面との関連で読まれるべき例示的な実施形態の以下の詳細な記述から明白となるであろう。
【００２７】
本願の原理は、以下の例示的な図面に従ってよりよく理解されうる。
【図面の簡単な説明】
【００２８】
【図１】従来技術に基づく、ビデオ・エンコーダにおけるレート制御方法の流れ図である。
【図２】本願の原理のある実施形態に基づく、本願の原理が適用されうる例示的なビデオ・エンコーダのブロック図である。
【図３】本願の原理のある実施形態に基づく、本願の原理が適用されうる例示的なビデオ・デコーダのブロック図である。
【図４】本願の原理のある実施形態に基づく、マルチパス・ビデオ・エンコーダにおける、非一定な丸めオフセットを含む例示的なレート制御方法の流れ図である。
【図５】本願の原理のある実施形態に基づく、マルチパス・ビデオ・エンコーダにおける、非一定な丸めオフセットを含むもう一つの例示的なレート制御方法の流れ図である。
【図６】本願の原理のある実施形態に基づく、シングルパス・ビデオ・エンコーダにおける、非一定な丸めオフセットを含む例示的なレート制御方法の流れ図である。
【図７】本願の原理のある実施形態に基づく、トランスコーダにおける例示的なレート制御方法の流れ図である。
【図８】本願の原理のある実施形態に基づく、画像データをデコードするための例示的な方法の流れ図である。
【図９】本願の原理のある実施形態に基づく、画像データをデコードするためのもう一つの例示的な方法の流れ図である。
【発明を実施するための形態】
【００２９】
本願の原理は、ビデオ・エンコードおよびデコードにおけるレート制御の精確さのための方法および装置に向けられている。
【００３０】
本記述は、本願の原理を例解する。よって、本稿に明示的に記述または図示されていなくても本願の原理を具現し、その精神および範囲内に含まれるさまざまな構成を当業者が考案できるであろうことは理解されるであろう。
【００３１】
本稿で記載されるあらゆる例および条件付きの言辞は、読者が、本願の原理および当該技術を進歩させる発明者によって寄与される概念を理解するのを支援するという教育目的のために意図されているのであって、そのような個別的に記載されている例および条件に限定することなく解釈されるものである。
【００３２】
さらに、本願の原理の原理、側面および実施形態ならびにその個別的な例を記載する本稿におけるあらゆる陳述は、その構造的および機能的な等価物の両方を包含することが意図されている。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物、すなわち構造にかかわりなく同じ機能を実行する任意の開発された要素の両方を含むことが意図されている。
【００３３】
よって、たとえば、当業者は、本稿に呈示されるブロック図が本願の原理を具現する例示的な回路の概念図を表すものであることを理解するであろう。同様に、フローチャート、流れ図、状態遷移図、擬似コードなどはいずれも、コンピュータ可読媒体において実質的に表現され、コンピュータまたはプロセッサによって実行されうるさまざまなプロセスを表すことが理解されるであろう。これはそのようなコンピュータまたはプロセッサが明示的に示されているかどうかにはよらない。
【００３４】
図面に示されるさまざまな要素の機能は、専用ハードウェアの使用を通じて提供されても、適切なソフトウェアとの関連でソフトウェアを実行することのできるハードウェアの使用を通じて提供されてもよい。プロセッサによって提供されるとき、機能は単一の専用プロセッサによって、単一の共有されるプロセッサによって、あるいは一部が共有されていてもよい複数の個別プロセッサによって提供されうる。さらに、用語「プロセッサ」または「コントローラ」の明示的な使用は、ソフトウェアを実行することのできるハードウェアのみを指すものと解釈されるべきではなく、暗黙的に、限定なしに、デジタル信号プロセッサ（「DSP」）ハードウェア、ソフトウェアを記憶するための読み出し専用メモリ（「ROM」）、ランダム・アクセス・メモリ（「RAM」）および不揮発性記憶装置を含みうる。
【００３５】
通常のものおよび／またはカスタムのものを含め他のハードウェアも含まれてもよい。同様に、図面に示されるスイッチがあったとしても、それは単に概念的なものである。その機能はプログラム論理の動作を通じて、専用論理を通じて、プログラム制御と専用論理の相互作用を通じて、あるいはさらに手動で実行されてもよい。特定の技法は、コンテキストからより個別に理解されるように実装者によって選択可能である。
【００３６】
本願の請求項では、特定の機能を実行する手段として表現されたいかなる要素も、その機能を実行するいかなる仕方をも、たとえばａ）その機能を実行する回路素子の組み合わせまたはｂ）任意の形の、したがってファームウェア、マイクロコードなどを含む、当該機能を実行するソフトウェアを実行するための適切な回路と組み合わされたソフトウェアを包含することが意図されている。そのような請求項によって定義される本願の原理は、前記さまざまな記載される手段によって提供される機能性が請求項が記載する仕方で組み合わされ、一緒にされるという事実にある。よって、これらの機能性を提供できる任意の手段が本稿で示されている手段と等価であると見なされる。
【００３７】
明細書における本願の原理の「一つの実施形態」または「ある実施形態」への言及は、その実施形態との関連で記載されている特定の特徴、構造、特性などが本願の原理の少なくとも一つの実施形態に含まれることを意味する。よって、本明細書を通じた随所に現れる「一つの実施形態では」または「ある実施形態では」といった句の出現は、必ずしもみな同じ実施形態を指すのではない。
【００３８】
本稿での用法では、画像データという句は、静止画像データならびにフレーム、フィールド、ピクチャー、画像ブロック、画像サブブロックなどを含む動画像データのうちの任意のものを指しうる。
【００３９】
たとえば「Ａおよび／またはＢ」や「ＡおよびＢのうちの少なくとも一つ」という場合における、「および／または」や「少なくとも一つ」という用語の使用は、最初に挙げられたオプション（Ａ）のみの選択、または二番目に挙げられたオプション（Ｂ）のみの選択、または両方のオプション（ＡおよびＢ）の選択を包含することが意図されていることは理解しておくべきである。さらなる例として、「Ａ、Ｂおよび／またはＣ」や「Ａ、ＢおよびＣのうちの少なくとも一つ」の場合において、そのような表現は、最初に挙げられたオプション（Ａ）のみの選択、または二番目に挙げられたオプション（Ｂ）のみの選択、または三番目に挙げられたオプション（Ｃ）のみの選択、または最初および二番目に挙げられたオプション（ＡおよびＢ）のみの選択、または最初および三番目に挙げられたオプション（ＡおよびＣ）のみの選択、または二番目および三番目に挙げられたオプション（ＢおよびＣ）のみの選択、または三つすべてのオプション（ＡおよびＢおよびＣ）の選択を包含することが意図されている。当技術分野および関連する技術分野の当業者には容易に明白となるように、このことは列挙される項目がいくつの場合についても拡張できる。
【００４０】
さらに、本願の原理の一つまたは複数の実施形態が本項ではMPEG-4  AVC規格に関して記述されているが、本願の原理はこの規格のみに限定されるものではなく、本願の原理の精神を維持しながら、MPEG-4  AVC規格の拡張を含め、他のビデオ符号化規格、勧告およびその拡張に関して利用されうることは理解しておくべきである。たとえば、本願の原理は、これに限られないが、ITU-T  H.263勧告（以下では「H.263勧告」）、MPEG-2規格、MPEG-4  AVC規格、VC-1規格などに関して使用されうる。
【００４１】
上述したように、本願の原理は、ビデオ・エンコードおよびデコードにおけるレート制御の精度のための方法および装置に向けられている。
【００４２】
図２に目を転じると、本願の原理が適用されうる例示的なビデオ・エンコーダが、参照符号２００によって概括的に示されている。
【００４３】
エンコーダ２００は、組み合わせ器２８５の第一の非反転入力と信号通信上接続されている出力をもつフレーム順序付けバッファ２１０を含む。組み合わせ器２８５の出力は、変換および量子化器２２５の入力と信号通信上接続されている。変換および量子化器２２５の出力は、エントロピー符号化器２４５の第一の入力および逆変換および量子化器２５０の入力と信号通信上接続されている。エントロピー符号化器２４５の出力は組み合わせ器２９０の第一の非反転入力と信号通信上接続されている。組み合わせ器の出力は、出力バッファ２３５の入力と信号通信上接続されている。出力バッファ２３５の第一の出力は、レート制御器２０５の入力と信号通信上接続されている。
【００４４】
補足向上情報（SEI:  Supplemental  Enhancement  Information）挿入器２３０の出力は、組み合わせ器２９０の第二の入力と信号通信上接続されている。
【００４５】
逆変換および量子化器２５０の出力は、組み合わせ器２２７の第一の非反転入力と信号通信上接続されている。組み合わせ器２２７の出力は、イントラ予測器２６０の入力およびブロック解除（deblocking）フィルタ２６５の入力と信号通信上接続されている。
【００４６】
ブロック解除フィルタ２６５の出力は、参照ピクチャー・バッファ２８０の入力と信号通信上接続されている。参照ピクチャー・バッファ２８０の出力は、動き推定器２７５の入力および動き補償器２７０の第一の入力と信号通信上接続されている。
【００４７】
動き推定器２７５の第一の出力は、動き補償器２７０の第二の入力と信号通信上接続されている。動き推定器２７５の第二の出力は、エントロピー符号化器２４５の第二の入力と信号通信上接続されている。
【００４８】
動き補償器２７０の出力は、スイッチ２９７の第一の入力と信号通信上接続されている。イントラ予測器２６０の出力は、スイッチ２９７の第二の入力と信号通信上接続されている。マクロブロック型判定モジュール２２０の出力は、スイッチ２９７の第三の入力と信号通信上接続されている。スイッチ２９７の出力は、組み合わせ器２８５の第二の非反転入力および組み合わせ器２２７の第二の非反転入力と信号通信上接続されている。
【００４９】
レート制御器２０５の出力は、ピクチャー型判定モジュール２１５の第一の入力およびシーケンス・パラメータ・セット（SPS:  sequence  parameter  set）およびピクチャー・パラメータ・セット（PPS:  picture  parameter  set）挿入器２４０の入力と信号通信上接続されている。SPSおよびPPS挿入器２４０の出力は、組み合わせ器２９０の第三の入力と信号通信上接続されている。
【００５０】
ピクチャー型判定モジュール２１５の第一の出力は、マクロブロック型判定モジュール２２０の入力と信号通信上接続されている。ピクチャー型判定モジュール２１５の第二の出力は、フレーム順序付けバッファ２１０の第二の入力と信号通信上接続されている。
【００５１】
フレーム順序付けバッファ２１０の第一の入力は、入力ピクチャー２０１を受け取るために、エンコーダ２００の入力として利用可能である。出力バッファ２３５の第一の出力は、ビットストリームを出力するために、エンコーダ２００の出力として利用可能である。
【００５２】
図３に目を転じると、本願の原理が適用されうる例示的なビデオ・デコーダが参照符号３００によって概括的に示されている。
【００５３】
ビデオ・デコーダ３００は、エントロピー・デコーダ３４５の第一の入力と信号通信上接続されている出力をもつ入力バッファ３１０を含む。エントロピー・デコーダ３４５の第一の出力は、逆変換および逆量子化器３５０の第一の入力と信号通信上接続されている。逆変換および逆量子化器３５０の出力は、組み合わせ器３２５の第二の非反転入力と信号通信上接続されている。組み合わせ器３２５の出力は、ブロック解除フィルタ３６５の第二の入力およびイントラ予測モジュール３６０の第一の入力と信号通信上接続されている。ブロック解除フィルタ３６５の第二の出力は、参照ピクチャー・バッファ３８０の第一の入力と信号通信上接続されている。参照ピクチャー・バッファ３８０の出力は、動き補償器３７０の第二の入力と信号通信上接続されている。
【００５４】
エントロピー・デコーダ３４５の第二の出力は、動き補償器３７０の第三の入力およびブロック解除フィルタ３６５の第一の入力と信号通信上接続されている。エントロピー・デコーダ３４５の第三の出力は、デコーダ制御器３０５の入力と信号通信上接続されている。デコーダ制御器３０５の第一の出力は、エントロピー・デコーダ３４５の第二の入力と信号通信上接続されている。デコーダ制御器３０５の第二の出力は、逆変換および逆量子化器３５０の第二の入力と信号通信上接続されている。デコーダ制御器３０５の第三の出力は、ブロック解除フィルタ３６５の第三の入力と信号通信上接続されている。デコーダ制御器３０５の第四の出力は、イントラ予測モジュール３６０の第二の入力と、動き補償器３７０の第一の入力と、および参照ピクチャー・バッファ３８０の第二の入力と信号通信上接続されている。
【００５５】
動き補償器３７０の出力は、スイッチ３９７の第一の入力と信号通信上接続されている。イントラ予測モジュール３６０の出力は、スイッチ３９７の第二の入力と信号通信上接続されている。スイッチ３９７の出力は、組み合わせ器３２５の第一の非反転入力と信号通信上接続されている。
【００５６】
入力バッファ３１０の入力は、入力ビットストリームを受け取るために、デコーダ３００の入力として利用可能である。ブロック解除フィルタ３６５の第一の出力は、出力ピクチャーを出力するために、デコーダ３００の出力として利用可能である。
【００５７】
本願の原理の一つまたは複数の実施形態は、ピクチャー・レベルでの、ビデオ・エンコードのための精確なレート制御に向けられている。もちろん、本願の原理はピクチャー・レベルのレート制御のみに限定されるのではなく、本稿に提供される本願の原理の教示を与えられれば、本願の原理の精神を維持しながらビデオ・エンコードに関係する他のレベルに容易に拡張されうる。にもかかわらず、レート制御方法がピクチャー・レベルでのビットレート精確さを得るとき、該レート制御方法はより長い時間区間のためのビットレート精確さを簡単に達成できることは理解しておくべきである。
【００５８】
本願の原理の諸実施形態は、ビデオ・エンコーダにおけるレート制御の精確さを改善する。上述したように、従来技術のレート制御アルゴリズムは典型的には、ビットレート精度を制御するために量子化きざみサイズ・パラメータの調節に依拠する。しかしながら、本願の原理の一つまたは複数の実施形態によれば、ビットレート制御精度を改善するために、丸めオフセットが使われる。
【００５９】
すなわち、本願の原理の一つまたは複数の実施形態は、有利にも、ビデオ・エンコーダにおいて使用されるレート制御方法に、もう一つの次元、丸めオフセットを導入し、各ピクチャーについての非常に精確なレート制御を、ピクチャー内で均一な品質とともに、達成する。本願の原理のある実施形態に基づくレート制御方法が、ビットレート精度がピクチャーよりも長い区間において測定される他の用途に適用されるとき、そのようなレート制御方法は、簡単に、そのようなより長い区間で精確なレート制御を達成できる。
【００６０】
こうして、本願の原理の一つまたは複数の実施形態によれば、我々は、ピクチャー・レベルでレート制御精度を改善するために、別の量子化パラメータ、丸めオフセットsを含めることを提案する。量子化きざみサイズおよび丸めオフセットの両方はエンコーダによって使用されるビット数Rに影響する。これは、数学的には次のように記述できる。
【００６１】
R(q,s)＝f(q,s)                      (4)
ここで、関数f(・)は、量子化きざみサイズおよび丸めオフセットがどのようにビット数に影響するかを記述する。その関数の一例は次のようなものである。
【００６２】
ln(R(q,s))＝ks×s＋kq×q＋c        (5)
ここで、ks、kqおよびcは定数である。
【００６３】
図４〜図７は、レート制御方法において量子化きざみサイズに加えて丸めオフセットを含める本願の原理のいくつかの例示的な実施形態を示している。ビット数が割り当てられる仕方に依存して、本願の原理の諸実施形態は、可変ビットレート（VBR:  variable-bit-rate）または一定ビットレート（CBR:  constant-bit-rate）用途のいずれにも役立てられる。本願の原理の諸実施形態はまた、マルチパス（multi-pass）・エンコーダの一部であって、他のパス（pass）のための情報を提供してもよい。
【実施例１】
【００６４】
図４に目を転じると、マルチパス・ビデオ・エンコーダにおける例示的なレート制御方法であって、非一定の丸めオフセットを含むものが、参照符号４００によって概括的に示されている。方法４００は、第一のパス４６６および一つまたは複数のその後のパス（まとめて参照符号４７７で示す）に関わる。
【００６５】
方法４００は、機能ブロック４１０に制御を渡す開始ブロック４０５を含む。機能ブロック４１０はエンコード・セットアップを実行するおよび／または他の仕方でこれに関わり、機能ブロック４１５に制御を渡す。機能ブロック４１５は変数nを1に初期化し、制御を機能ブロック４２０に渡す。機能ブロック４２０はパス１についてレート制御モデル・パラメータを初期化し、制御をループ境界ブロック４２５に渡す。ループ境界ブロック４２５は、変数iを使って、処理されている現在ビデオ・シーケンス内の各ピクチャーにわたるループを実行し、ここで、i＝1,…,ピクチャー数（＃）であり、制御を機能ブロック４３０に渡す。機能ブロック４３０はピクチャーiについての量子化きざみサイズq1,iを計算し（たとえば丸めオフセットs1が与えられて）、制御を機能ブロック４３５に渡す。機能ブロック４３５はq1,iおよび初期丸めオフセットs1,iでピクチャーiをエンコードし、制御をループ境界ブロック４４０に渡す。該ループ境界ブロック４４０は第一のループを終わらせ、制御を機能ブロック４４５に渡す。
【００６６】
機能ブロック４４５は、変数nを1インクリメントし（すなわち、n＝n＋1）、制御をループ境界ブロック４５０に渡す。
【００６７】
ループ境界ブロック４５０は、変数iを使って、処理されている現在ビデオ・シーケンス内の各ピクチャーにわたるn番目のループを実行し、ここで、i＝1,…,ピクチャー数（＃）であり、制御を機能ブロック４５５に渡す。機能ブロック４５５はピクチャーiについての丸めオフセット{sn,i}を計算し（任意的に以前の単数または複数のパスからの情報を使って）、制御を機能ブロック４６０に渡す。機能ブロック４６０はq1,iおよびsn,iでピクチャーiをエンコードし、制御をループ境界ブロック４６５に渡す。該ループ境界ブロック４６５はn番目のループを終わらせ、制御を機能ブロック４７０に渡す。機能ブロック４７０は、パスnについてのレート制御モデル・パラメータを更新し（たとえば以前のパスからの情報に基づいて）、制御を判定ブロック４７５に渡す。
【００６８】
判定ブロック４７５は、ビットレートが精確であるか（たとえば、一つまたは複数の閾値に基づいて）、またはパスの数nが最大パス数に達したかどうかを判定する。もしそうであれば、制御は終了ブロック４９９に渡される。そうでなければ、制御は機能ブロック４４５に返される。
【００６９】
このように、方法４００において、第一パス４６６は、あるピクチャーについて、q1ですべてのマクロブロックをエンコードする。これに限られないがTM5、TMN8、ρ領域レート制御アルゴリズムなどを含む、目標ビットレートを満たすためにqを調節する既存のレート制御アルゴリズムが使われてもよい。第一パスでは、n＝1と設定する。初期丸めオフセットs1が使われ、ks,1は、この段階ではks,1について何の事前知識もないのでデフォルト値に、たとえばks,1＝1に設定される。q1については限られた選択肢しかないので、第一パスにおける得られたビット数R1は目標（target）ビット数RTの周辺であるがしばしば用途の要求を満たすのに十分近くはないであろう。いくつかのパラメータはあらかじめ定義されており、第一パスでは不精確でありうる。その後のパスでは、R(q,s)のモデルを使って、丸めオフセットsを調節して精度を改善する。
【００７０】
各パス後、nを1インクリメントする。すなわち、n＝n＋1。n番目のパスの間、RTとRn-1との間のギャップを閉じるため、次のような式(5)における例示的な関数を使って、新しい丸めオフセットが計算される。
【００７１】
【数２】
0005411144.tif 000003
量子化きざみサイズq1およびsnは、n番目のパスのエンコードのために使われる。n番目のパスのエンコードの結果として得られるビット数がRnである。すべてのピクチャーのエンコード後、以前のパスからの情報を使って次のようにksを更新する。
【００７２】
【数３】
0005411144.tif 000004
１パスでエンコードされる複数のピクチャーがあるときは、それらのピクチャーのいくつかまたは全部からの全情報が、集合{ln(Rn/Rn-1)}と{sn−sn-1}の間の線形回帰としてksを更新するために使われることができる。
【００７３】
ビットレート精度を改善するために新しい丸めオフセットsを計算し、ksを更新するプロセスは、指定されたビットレート精度が満たされるまたは最大パス数に達するまで続くことができる。
【００７４】
図１の従来技術のレート制御方法１００に対する方法４００の利点は、ピクチャー内の全マクロブロックが同じ量子化きざみサイズおよび丸めオフセットでエンコードされ、よって全マクロブロックの品質が一貫しているということである。
【実施例２】
【００７５】
図５に目を転じると、マルチパス・ビデオ・エンコーダにおけるもう一つの例示的なレート制御方法であって、非一定の丸めオフセットを含むものが、参照符号５００によって概括的に示されている。方法５００は、第一のパス５６６および第二のパス５７７に関わる。
【００７６】
方法５００は、機能ブロック５１０に制御を渡す開始ブロック５０５を含む。機能ブロック５１０はエンコード・セットアップを実行するおよび／または他の仕方でこれに関わり、機能ブロック５１５に制御を渡す。機能ブロック５１５はパス１についてレート制御モデル・パラメータを初期化し、制御をループ境界ブロック５２０に渡す。ループ境界ブロック５２０は、変数iを使って、処理されている現在ビデオ・シーケンス内の各ピクチャーにわたるループを実行し、ここで、i＝1,…,ピクチャー数（＃）であり、制御を機能ブロック５２５に渡す。機能ブロック５２５はピクチャーiについての量子化きざみサイズq1,iを計算し（たとえば丸めオフセットs1が与えられて）、制御を機能ブロック５３０に渡す。機能ブロック５３０はq1,iおよび初期丸めオフセットs1,iでピクチャーiをエンコードし、制御をループ境界ブロック５３５に渡す。該ループ境界ブロック５３５は第一のループを終わらせ、制御を機能ブロック５４０に渡す。
【００７７】
機能ブロック５４０は、パス２のためにレート制御モデル・パラメータを初期化し、制御をループ境界ブロック５４５に渡す。ループ境界ブロック５４５は、変数iを使って、処理されている現在ビデオ・シーケンス内の各ピクチャーにわたる第二のループを実行し、ここで、i＝1,…,ピクチャー数（＃）であり、制御を機能ブロック５５０に渡す。機能ブロック５５０はピクチャーiについての丸めオフセット{s2,i}を計算し（任意的に前のパスからの情報を使って）、制御を機能ブロック５５５に渡す。機能ブロック５５５はq1,iおよびs2,iでピクチャーiをエンコードし、制御を機能ブロック５６０に渡す。機能ブロック５６０は第二のパスについてのレート制御モデル・パラメータを更新し（たとえば、第一のパスからの情報および第二のパスにおいて前にエンコードされたピクチャーに基づいて）、制御をループ境界ブロック５６５に渡す。該ループ境界ブロック５６５は第二のループを終わらせ、制御を終了ブロック５９９に渡す。
【００７８】
方法５００が方法４００の変形であることは理解しておくべきである。
【００７９】
この実施形態では、第一のパス５６６からの情報および第二のパス５７７において前にエンコードされたピクチャーを使って第二のパス内でレート制御モデル・パラメータを更新する（機能ブロック５６０）。ある実施形態では、第一のパス５６６からの情報および第二のパス５７７における前にエンコードされたピクチャーすべてを、現在ピクチャーのためのパラメータを更新するために使うことができる。別の実施形態では、第一のパス５６６からの情報および第二のパス５７７におけるn枚の前にエンコードされたピクチャーを、現在ピクチャーのためのパラメータを更新するために使うことができる。
【００８０】
図４の方法４００に対する方法５００の一つの利点は、レート制御モデル・パラメータが第二のパス５７７内で更新されるということである。第三および／またはさらなるパスを完全になくすことによって、プロセスが高速化される。
【実施例３】
【００８１】
図６に目を転じると、シングルパス・ビデオ・エンコーダにおける例示的なレート制御方法であって、非一定の丸めオフセットを含むものが、参照符号６００によって概括的に示されている。単一のパスは参照符号６６６によって示される。
【００８２】
方法６００は、機能ブロック６１０に制御を渡す開始ブロック６０５を含む。機能ブロック６１０はエンコード・セットアップを実行するおよび／または他の仕方でこれに関わり、機能ブロック６２０に制御を渡す。機能ブロック６２０はレート制御モデル・パラメータを初期化し、制御をループ境界ブロック６２５に渡す。ループ境界ブロック６２５は、変数iを使って、処理されている現在ビデオ・シーケンス内の各ピクチャーにわたるループを実行し、ここで、i＝1,…,ピクチャー数（＃）であり、制御を機能ブロック６３０に渡す。機能ブロック６３０はピクチャーiについての量子化きざみサイズq1,iおよび丸めオフセットs1,iを計算し、制御を機能ブロック６３５に渡す。機能ブロック６３５はq1,iおよび丸めオフセットs1,iでピクチャーiをエンコードし、制御を機能ブロック６３７に渡す。機能ブロック６３７はレート制御モデル・パラメータを更新し、制御をループ境界ブロック６４０に渡す。該ループ境界ブロック６４０はループを終わらせ、制御を終了ブロック６９９に渡す。
【００８３】
方法６００が方法５００の変形であることを理解しておくべきである。方法６００では、レート制御モデル・パラメータは最初のパス内で更新される（ブロック６３７）。諸ピクチャーを一度エンコードすることにより、プロセスがさらに高速化される。
【実施例４】
【００８４】
図７に目を転じると、トランスコーダにおける例示的なレート制御方法が参照符号７００によって概括的に示されている。
【００８５】
方法７００は、機能ブロック７１０に制御を渡す開始ブロック７０５を含む。機能ブロック７１０はエンコード・セットアップを実行するおよび／または他の仕方でこれに関わり、機能ブロック７１５に制御を渡す。機能ブロック７１５はビットストリームを読み、構文解析し、制御をループ境界ブロック７２０に渡す。ループ境界ブロック７２０は、変数iを使って、ビットストリーム中の各ピクチャーにわたるループを実行し、ここで、i＝1,…,ピクチャー数（＃）であり、制御を機能ブロック７２５に渡す。機能ブロック７２５はピクチャーiについての量子化きざみサイズqiおよび丸めオフセットsiを計算し、制御を機能ブロック７３０に渡す。機能ブロック７３０はqiおよびsiでピクチャーiをエンコードし、制御をループ境界ブロック７３５に渡す。該ループ境界ブロック７３５はループを終わらせ、制御を終了ブロック７９９に渡す。
【００８６】
機能ブロック７１０が、トランスコード後の目標ビットレートおよび他の任意のエンコード・パラメータの集合をセットアップすることに関わりうることは理解しておくべきである。さらに、機能ブロック７１５は、トランスコードするために入力されるビットストリームからの情報を構文解析することを理解しておくべきである。構文解析されるべき情報は、これに限られないが、各ピクチャーのために使われるビット数、ビットストリーム中の諸ピクチャー内のマクロブロックのための量子化パラメータ、動きベクトルなどを含みうる。後述するように、構文解析されるべき情報が、丸めオフセット情報を含んでいてもよいことを理解しておくべきである。ビットストリームからの構文解析された情報およびトランスコード要件に基づいて、機能ブロック７２５は、ピクチャーについての量子化きざみサイズq、丸めオフセットsを計算する。
【００８７】
（機能ブロック７１５により）前記情報を構文解析するとき、量子化きざみサイズは、ビットストリームに埋め込まれているので簡単にアクセスできる。丸めオフセットを得るために、ビットストリームに基づいて丸めオフセットを推定することが必要であることがありうる。別のアプローチは、簡単なパラメータ抽出を可能にするためにビットストリーム中に丸めオフセット情報を埋め込むことである。本稿に与えられる本願の原理の教示を与えられれば、本願の原理の精神を維持しながら、本願の原理のこれらおよびその他の変形および実装は、当技術分野および関係する技術分野の当業者によって容易に判別される。
【００８８】
図８に目を転じると、画像データをデコードするための例示的な方法が参照符号８００によって概括的に示されている。
【００８９】
方法８００は、機能ブロック８２０に制御を渡す開始ブロック８１０を含む。機能ブロック８２０はビットストリームを読み、構文解析し、制御をループ境界ブロック８３０に渡す。ループ境界ブロック８３０は、変数iを使って、ビットストリーム中の各ピクチャーにわたって開始し、ここで、i＝1,…,ビットストリーム中のピクチャー数（＃）であり、制御を機能ブロック８４０に渡す。機能ブロック８４０はピクチャーiについての量子化きざみサイズqiを計算し、制御を機能ブロック８５０に渡す。機能ブロック８５０は量子化きざみサイズqiでピクチャーiを再構成し、制御をループ境界ブロック８６０に渡す。該ループ境界ブロック８６０はループを終わらせ、制御を終了ブロック８９９に渡す。
【００９０】
図９に目を転じると、画像データをデコードするためのもう一つの例示的な方法が参照符号９００によって概括的に示されている。
【００９１】
方法９００は、機能ブロック９２０に制御を渡す開始ブロック９１０を含む。機能ブロック９２０はビットストリームを読み、構文解析し、制御をループ境界ブロック９３０に渡す。ループ境界ブロック９３０は、変数iを使って、ビットストリーム中の各ピクチャーにわたるループを開始し、ここで、i＝1,…,ビットストリーム中のピクチャー数（＃）であり、制御を機能ブロック９４０に渡す。機能ブロック９４０はピクチャーiについての量子化きざみサイズqiおよび丸めオフセットsiを計算し、制御を機能ブロック９５０に渡す。機能ブロック９５０は量子化きざみサイズqiおよび丸めオフセットsiでピクチャーiを再構成し、制御をループ境界ブロック９６０に渡す。該ループ境界ブロック９６０はループを終わらせ、制御を終了ブロック９９９に渡す。
【００９２】
ここで、本願発明の多くの付随的な利点／特徴のいくつかについて述べておく。そのいくつかは上述してある。たとえば、ある利点／特徴は、レート制御を使って画像データをエンコードするビデオ・エンコーダを有する装置である。前記レート制御は、量子化きざみサイズを推定し、丸めオフセットを調整することを含む。前記丸めオフセットは、エンコードの間、非一定であることができる。
【００９３】
もう一つの利点／特徴は、上記のようなビデオ・エンコーダを有する装置であって、前記レート制御が、一定ビットレート・アプリケーション、可変ビットレート・アプリケーションおよびトランスコード・アプリケーションのうちの少なくとも一つに適用される装置である。
【００９４】
さらにもう一つの利点／特徴は、上記のようなビデオ・エンコーダを有する装置であって、前記レート制御のためのレート制御パラメータが、ρ領域レート・モデル、TM5レート・モデルおよびTMN8レート・モデルのうちの少なくとも一つに基づく装置である。
【００９５】
さらに、もう一つの利点／特徴は、上記のようなビデオ・エンコーダを有する装置であって、前記ビデオ・エンコーダが、前記画像データを、国際標準化機関／国際電気標準会議動画像専門家グループ４パート10の先進ビデオ符号化規格／国際電気通信連合・電気通信部門H.264勧告に準拠する結果ビットストリームにエンコードする装置である。
【００９６】
さらに、もう一つの利点／特徴は、上記のようなビデオ・エンコーダを有する装置であって、前記ビデオ・エンコーダがマルチパス・ビデオ・エンコーダであり、前記レート制御のためのレート制御モデル・パラメータが、前のエンコード・パスおよび現在のパスの前にエンコードされたピクチャーのうちの少なくとも一つからの情報に基づいて更新される装置である。
【００９７】
また、もう一つの利点／特徴は、上記のようなビデオ・エンコーダを有する装置であって、前記レート制御のためのレート制御モデル・パラメータが、前にエンコードされたピクチャーからの情報に基づいて更新される装置である。
【００９８】
さらに、もう一つの利点／特徴は、上記のようなビデオ・エンコーダを有する装置であって、前記ビデオ・エンコーダが、前記画像データを、結果ビットストリームにエンコードし、前記結果ビットストリーム中に前記丸めオフセットおよび丸めオフセット情報のうちの少なくとも一つを埋め込む装置である。
【００９９】
本願の原理のこれらおよびその他の特徴および利点は、本願の教示に基づいて当業者によって容易に認識されうる。本願の原理の教示がハードウェア、ソフトウェア、ファームウェア、特殊目的プロセッサまたはそれらの組み合わせのさまざまな形で実装されうることは理解されるものである。
【０１００】
最も好ましくは、本願の原理の教示はハードウェアおよびソフトウェアの組み合わせとして実装される。さらに、ソフトウェアは、プログラム記憶ユニット上に具体的に具現されたアプリケーション・プログラムとして実装されてもよい。該アプリケーション・プログラムはいかなる好適なアーキテクチャを有する機械にアップロードされ、該機械によって実行されてもよい。好ましくは、前記機械は、一つまたは複数の中央処理ユニット（「CPU」）、ランダム・アクセス・メモリ（「RAM」）および入出力（「I/O」）インターフェースといったハードウェアをもつコンピュータ・プラットフォーム上で実装される。前記コンピュータ・プラットフォームはまた、オペレーティング・システムおよびマイクロ命令コードをも含みうる。本稿に記載されたさまざまなプロセスおよび機能はマイクロ命令コードの一部もしくはアプリケーション・プログラムの一部またはそれらの任意の組み合わせであってよく、CPUによって実行されてよい。さらに、追加的なデータ記憶ユニットおよび印刷ユニットといったさまざまな他の周辺ユニットがコンピュータ・プラットフォームに接続されていてもよい。
【０１０１】
付属の図面に描かれている構成システム・コンポーネントおよび方法のいくつかは好ましくはソフトウェアにおいて実装されるので、システム・コンポーネントまたはプロセス機能ブロックの間の実際の接続は、本願の原理がプログラムされる仕方に依存して異なることがありうる。本稿の教示を与えられれば、当業者は、本願の原理のこれらおよび同様の実装または構成を考えることができるであろう。
【０１０２】
本稿では例示的な実施形態が付属の図面を参照して記載されてきたが、本願の原理はそうした厳密な実施形態に限定されるものではなく、当業者は本願の原理の範囲や精神から外れることなくそれにさまざまな変更および修正を実施しうることは理解されるものである。そのようなすべての変更および修正は付属の請求項に記載される本発明の範囲内に含まれることが意図されている。
【図１】
0005411144.tif 000005
【図２】
0005411144.tif 000006
【図３】
0005411144.tif 000007
【図４】
0005411144.tif 000008
【図５】
0005411144.tif 000009
【図６】
0005411144.tif 000010
【図７】
0005411144.tif 000011
【図８】
0005411144.tif 000012
【図９】
0005411144.tif 000013