(58)【調査した分野】(Int.Cl.,DB名)
入力の符号化単位と基準の符号化単位との間の差に対応する前記入力の符号化単位の残差を決定し、前記残差に変換を施して少なくとも1つの変換係数を取得し、量子化ステップのサイズ及び丸めのオフセットを選択することで、前記少なくとも1つの変換係数を量子化することにより、前記入力の符号化単位を符号化するビデオエンコーダを備え、
第1の丸めのオフセットは、滑らかであるとして分類されたマクロブロックについてのみ選択されて適用され、そうでない場合に前記エンコーダによりデフォルトで使用される第2の丸めのオフセットは、ざらつきがあるとして分類されたマクロブロックに適用される、
ことを特徴とする装置。
前記丸めのオフセットは、前記符号化単位を含む全体のビデオ系列、前記ビデオ系列の一部、前記符号化単位に関連するピクチャ又は前記ピクチャにおける領域に適用されるように選択される、
請求項1記載の装置。
前記丸めのオフセットは、前記符号化単位を含む全体のビデオ系列、前記ビデオ系列の一部、前記符号化単位に関するピクチャ、前記ピクチャにおける領域、滑らかである領域又はざらつきがある領域の分類、のうちの少なくとも1つに応じて選択される、
請求項1記載の装置。
前記丸めのオフセットは、前記入力の符号化単位がイントラ予測を使用して符号化されたか又はインター予測を使用して符号化されたか、1以上の変換のタイプ、前記符号化単位を符号化する1以上の異なるビットレート、のうちの少なくとも1つに応じて選択される、
請求項7記載の装置。
前記丸めのオフセットは、前記符号化単位を含む全体のビデオ系列、前記ビデオ系列の一部、前記符号化単位に関連するピクチャ又は前記ピクチャにおける領域に適用されるように選択される、
請求項10記載の方法。
前記丸めのオフセットは、前記符号化単位を含む全体のビデオ系列、前記ビデオ系列の一部、前記符号化単位に関するピクチャ、前記ピクチャにおける領域、滑らかである領域又はざらつきがある領域の分類、のうちの少なくとも1つに応じて選択される、
請求項10記載の方法。
前記丸めのオフセットは、前記入力の符号化単位がイントラ予測を使用して符号化されたか又はインター予測を使用して符号化されたか、1以上の変換のタイプ、前記符号化単位を符号化する1以上の異なるビットレート、のうちの少なくとも1つに応じて選択される、
請求項16記載の方法。
オリジナルのバージョンの符号化単位と基準の符号化単位との間の変換及び量子化された残差に対応する少なくとも1つの量子化された係数を受信し、量子化ステップのサイズ及び丸めのオフセットを決定することで、前記少なくとも1つの量子化された係数に逆量子化を施して少なくとも1つの逆量子化された係数を取得し、前記少なくとも1つの逆量子化された係数に逆変換を施して再構成された残差を取得することにより、前記符号化単位を復号化するビデオデコーダを備え、
前記ビデオデコーダは、前記少なくとも1つの量子化された係数を含むビットストリームから、選択された丸めのオフセットを表す情報を取得し、
第1の丸めのオフセットは、滑らかであるとして分類されたマクロブロックについてのみ選択されて適用され、そうでない場合にエンコーダによりデフォルトで使用される第2の丸めのオフセットは、ざらつきがあるとして分類されたマクロブロックに適用される、
ことを特徴とする装置。
【背景技術】
【0002】
大部分のビデオ応用は、与えられたビットレートの制約で最も高い可能な知覚品質を求める。たとえば、テレビ電話のような低ビットレートの応用では、ビデオエンコーダは、視覚的に重要な関心のある領域で強い視覚的なアーチファクトを除くことで、高い品質を提供する。他方で、高いビットレートの応用では、視覚的に損失のない品質が画像の何れの場所においても期待され、ビデオエンコーダは、トランスペアレントな品質を達成することも必要である。高いビットレートの応用においてトランスペアレントな視覚的な品質を得る1つの課題は、人間の視覚系のテクスチャマスキング特性のため、特に、詳細の損失が滑らかでない領域よりも目に見える滑らかな領域で、詳細を保持することである。
【0003】
ビットレートを増加することは、品質を改善する最も簡単なアプローチのうちの1つである。ビットレートが与えられたとき、エンコーダは、そのビット割り当てモジュールを操作して、最も視覚的な品質の改善を得ることができる利用可能なビットを費やす。DVDオーサリングのような非実時間の応用では、ビデオエンコーダは、可変ビットレート(VBR)設計を容易にして、困難なコンテンツ及び容易なコンテンツの両者に関して時間を通して一定の品質をもつビデオを生成することができる。係る応用では、利用可能なビットは、一定の品質を得るために異なるビデオセグメントを通して適切に分散される。対照的に、固定ビットレート(CBR)システムは、符号化の困難さにもかかわらず、同じビット数を1以上のピクチャの間隔に割り当て、ビデオコンテンツにより変動する視覚的な品質を生成する。VBR及びCBR符号化システムの両者について、エンコーダは、ある画像内の知覚モデルに従ってビットを割り当てる。人間の知覚の1つの特性は、テクスチャマスキングであり、これは、ざらついた領域(textured region)よりも滑らかな領域(smooth region)において人間の目は、品質の損失に対して何故敏感なのかを説明するものである。この特性は、滑らかな領域に割り当てられるビット数を増加して、高い視覚的な品質を得るために利用される。
【0004】
ビデオエンコーダにおける量子化プロセスは、符号化ビット数及び品質を制御する。量子化パラメータを調節することで品質を調節することは一般的である。例示する目的で、ISO/IEC(International Organization for Standardization/International Electrical Commission)MPEG−4(Moving Picture Experts Group−4)Part10 AVC(Advanced Video Coding)規格/ITU−T(International Telecommunication Union, Telecommunication Sector)H.264規格(以下、「MPEG−4 AVC規格」)をベースラインの例として参照し、MPEG−4規格を通してこの原理を実現することで有される量子化プロセス及び改善を説明する。しかし、この原理は、MPEG−4 AVC規格にのみ限定されるものではなく、この原理の精神を維持しつつ、他のビデオ符号化規格、勧告及びその拡張にも適用される場合があることを理解されたい。
【0005】
数学的に、エンコーダにおいて、変換される係数は、以下のように量子化される。
【0006】
【数1】
ここで、Wは変換された係数であり、量子化レベルZに量子化される。qは、量子化ステップサイズであり、sは量子化の丸めのオフセットである。関数
<外1>
は、ある値を最も近い整数に丸め、sgn(.)は、ある信号の符号を戻す。量子化マトリクスが適用されるとき、エンコーダでの量子化プロセスの前に、はじめに係数がスケーリングされる。0に量子化されるWの範囲は、デッドゾーンと呼ばれる。この特定の場合、デッドゾーンは、Δ=(1−s)×q×2である。デコーダで、量子化レベルZは、信号W’に再構成される。これは、逆量子化と呼ばれ、以下のように数学的に記載される。
【0007】
【数2】
MPEG−4 AVC規格におけるシンタックスは、それぞれのマクロブロック(MB)についてqが異なることを可能にする。量子化ステップサイズの値qは、0…51の範囲における整数である、パラメータQPにより索引付けされる値から選択される。丸めのオフセットのパラメータsは、逆量子化において含まれず、エンコーダは、任意の値に設定する柔軟性を有する。
【発明を実施するための形態】
【0016】
本発明は、映像符号化及び復号化のための、改善された量子化の丸めのオフセットを調節する方法及び装置に向けられる。
ここでの説明は、本発明の原理を例示するものである。したがって、当業者であれば、本実施の形態で明示的に記載又は図示されないが、本発明を実施する様々な構成であって、本発明の精神及び範囲に含まれる様々な構成を考案することができることを理解されたい。
【0017】
本実施の形態で引用される全ての例及び条件付き言語は、当該技術分野を促進するために本発明者により寄与される本発明及び概念の理解において読者を支援することが意図されており、係る特に記載された例及び条件に限定されるものではないものとして解釈されるべきである。
【0018】
さらに、本発明の原理、態様及び実施の形態を示す全ての説明は、本発明の例と同様に、本発明の構造的及び機能的に等価なものを包含することが意図される。さらに、係る等価なものは、現在知られているもの等価なものと同様に、将来的に開発される等価なもの、すなわち構造に係らず、同じ機能を実行する開発されたエレメントを含むことが意図される。
【0019】
従って、たとえば、本実施の形態で与えられるブロック図は、本発明を実施する例示的な回路の概念図を表すことが当業者により理解されるであろう。同様に、フローチャート、フローダイアグラム、状態遷移図、擬似コード等は、コンピュータ読み取り可能な媒体で実質的に表され、コンピュータ又はプロセッサが明示的に示されているか否かに係らず、係るコンピュータ又はプロセッサにより実行される様々なプロセスを表すことを理解されたい。
【0020】
図面に示される様々なエレメントの機能は、適切なソフトウェアと関連してソフトウェアを実行可能なハードウェアと同様に、専用のハードウェアに関連して提供される。プロセッサにより提供されたとき、機能は、1つの専用プロセッサ、1つの共有プロセッサ、又はそのうちの幾つかが供給される複数の個別のプロセッサにより提供される。さらに、用語「プロセッサ」又は「コントローラ」の明示的な使用は、ソフトウェアを実行可能なハードウェアを排他的に示すように解釈されるべきではなく、限定されることなしに、デジタルシグナルプロセッサ(DSP)、ソフトウェアを記憶するためのリードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)及び不揮発性ストレージを暗黙に含む。
【0021】
他のハードウェア、コンベンショナル及び/又はカスタムも含まれる場合がある。同様に、図に示されるスイッチは、概念的なものである。これらの機能は、プログラムロジックの動作、専用ロジック、プログラム制御及び専用ロジックの相互作用、又は手動的に実行される場合があり、特定の技術は、文脈から詳細に理解されるように、実現者により選択可能である。
【0022】
本発明の請求項では、特定の機能を実行する手段として表現されるエレメントは、たとえばa)その機能を実行する回路エレメントの組み合わせ、又はb)機能を実行するソフトウェアを実行する適切な回路と結合される、ファームウェア、マイクロコード等を含む任意の形態のソフトウェア、を含む機能を実行する任意の方式を包含することが意図される。本発明は、様々な引用された手段により提供される機能が請求項が指示するやり方で結合及び纏められる事実にある。したがって、それらの機能を提供する任意の手段は本明細書に示されるものに等価であると見なされる。
【0023】
本発明の「1実施の形態」又は「実施の形態」に対する明細書における参照は、本発明の他の変形例と同様に、本実施の形態と共に記載される特定の特徴、構造、特性等が、本発明の少なくとも1つの実施の形態に含まれることを意味する。したがって、明細書を通して様々な場所に出現する「1実施の形態では」又は「実施の形態において」という記載の出現は、他の変形と同様に、必ずしも、同じ実施の形態を全て引用するものではない。
【0024】
以下の“/”、“及び/又は”及び“〜の少なくとも1つ”の使用、たとえば「A/B」、「A及び/又はB」及び「A及びBの少なくとも1つ」の使用は、最初の列挙されたオプション(A)のみの選択、第二の列挙されたオプション(B)のみの選択、両方のオプション(A及びB)の選択を包含することが意図される。更なる例として、「A,B及び/又はC」及び「A,B及びCの少なくとも1つ」の場合、係る記載は、最初の列挙されたオプション(A)のみの選択、又は第二の列挙されたオプション(B)のみの選択、又は第三の列挙されたオプション(C)のみの選択、又は、第一及び第二の列挙されたオプション(A及びB)のみの選択、又は第一及び第三の列挙されたオプション(A及びC)のみの選択、又は第二及び第三の列挙されたオプション(B及びC)のみの選択、又は全ての3つのオプション(A及びB及びC)の選択を包含することが意図される。これは、当業者により明らかなように、列挙される多くのアイテムについて拡張される場合がある。
【0025】
また、本明細書で使用されたとき、単語「ピクチャ」及び「画像」は、交換可能に使用され、静止画像又はビデオ系列からのピクチャを示す。知られているように、ピクチャは、フレーム又はフィールドである。
【0026】
さらに、本明細書で使用されたとき、記載「ピクチャ領域」(又は略して単に「領域」)は、たとえば1以上のブロック又は任意のサイズの任意の形状を包含するピクチャ、及び/又は1以上のブロック又は任意のサイズの任意の形状から形成されたピクチャの一部を示す。1以上のブロックは、たとえばスーパーマクロブロック、マクロブロック、マクロブロックパーティション、サブマクロブロックパーティション等に関連する。
【0027】
さらに、本明細書で使用されたとき、記載「ビデオ系列の一部」は、1以上のグループオブピクチャ(GOP)、1以上のGOPのうちの1つに含まれる1以上のピクチャ又は1以上のGOPのうちの1つとは独立な1以上のピクチャ、及び/又は1以上のシーンを示す。
【0028】
さらに、本明細書で使用されたとき、記載「入力符号化ユニット」は、ピクチャ(たとえばフレーム又はフィールド)、ピクチャ領域、及び/又はスライスの何れかを示す。
【0029】
また、本明細書で使用されたとき、記載「デフォルトの丸めのオフセット」は、たとえばビデオエンコーダ及び/又はデコーダが準拠して動作するビデオ符号化規格、勧告、その拡張に関して使用される、特定のビデオエンコーダ及び/又はデコーダにより一般に使用される丸めのオフセット(すなわち固定の丸めのオフセット)を示す。
【0030】
さらに、本明細書で使用されたとき、単語「信号」は、対応するデコーダに何かを示すことを示す。たとえば、エンコーダは、特定の丸めのオフセットがエンコーダ側で使用されたことをデコーダに知らせるため、丸めのオフセットのグループのうちの特定の1つを指示する。このように、同じ機能は、エンコーダ側及びデコーダ側の両者で使用される。従って、たとえば、エンコーダは、デコーダが同じ特定の丸めのオフセットを使用するように、特定の丸めオフセットをデコーダに送信するか、デコーダが他と同様に特定の丸めオフセットを既に有する場合、デコーダが特定の丸めのオフセットを知り、選択するのを可能にするためにシグナリングが(送信することなしに)使用される。実際の丸めのオフセットの送信を回避することで、ビットの節約が実現される。シグナリングは様々なやり方で達成されることを理解されたい。たとえば、対応するデコーダに情報を指示するために1以上のシンタックスエレメント、フラグ等が使用される。
【0031】
図1を参照して、本発明が適用される例示的なビデオエンコーダは参照符号100により示される。エンコーダ100は、フレームオーダリングバッファ105を含む。フレームオーダリングバッファ105の第一の入力は、エンコーダ100への入力として利用可能である。フレームオーダリングバッファ105の出力は、加算器110の非反転入力と信号通信において接続される。加算器110の出力は、変換器及び量子化器115の第一の入力と信号通信において接続される。変換器及び量子化器115の出力は、エントロピーコーダ120の第一の入力及び逆変換器及び量子化器135の入力と信号通信で接続される。エントロピーコーダの出力は、加算器125の第一の非反転入力と信号通信において接続される。加算器125の出力は、出力バッファ130の入力と信号通信において接続される。出力バッファ130の第一の出力は、レートコントローラ175の入力と信号通信において接続される。レートコントローラ175の出力は、変換及び量子化器115の第二の入力、ピクチャタイプ及びマクロブロック(MB)タイプの判定モジュール170の入力、及びSPS(Sequence Parameter Set)及びPPS(Picture Parameter Set)挿入器185の入力に信号通信において接続される。ピクチャタイプ及びマクロブロックタイプの判定モジュール170の第一の出力は、フレームオーダリングバッファ105の第二の入力と信号通信にいて接続される。ピクチャタイプ及びマクロブロックタイプの判定モジュール170の第二の出力は、加算器140の第一の非反転入力、加算器110の第二の非反転入力、及びスイッチ165の出力と信号通信において接続される。スイッチ165の入力は、動き補償/動き予測155の第二の出力又はイントラ予測モジュール160の出力と信号通信において接続される。加算器140の出力は、イントラ予測モジュール160の入力とデブロッキングフィルタ145の入力と信号通信において接続される。デブロッキングフィルタ145の出力は、参照ピクチャバッファ150の入力と信号通信において接続される。参照ピクチャバッファ150の出力は、動き補償/動き予測器155の入力と信号通信において接続される。動き補償/動き予測器155の第一の出力は、エントロピーコーダ120の第二の入力と信号通信で接続される。SPS及びPPS挿入器185の出力は、加算器125の第二の非反転入力と信号通信において接続される。SEI(Supplemental Enhancement Information)180の出力は、加算器125の第三の非反転入力と信号通信において接続される。SEI挿入器180の入力は、SEI挿入器180の入力は、メタデータを受信するための、エンコーダ100への入力として利用可能である。出力バッファ130の第二の出力は、ビットストリームを出力するため、エンコーダ100の出力として利用可能である。
【0032】
図2を参照して、本発明が適用される例示的なビデオデコーダは、参照符号200により示される。ビデオデコーダ200は、エントロピーデコーダ245の第一の入力と信号通信において接続される出力を有する入力バッファ210を含む。エントロピーデコーダ245の第一の出力は、逆変換器及び逆量子化器250の第一の入力と信号通信において接続される。逆変換器及び逆量子化器250の出力は、加算器225の第二の非反転入力と信号通信において接続される。加算器225の出力は、デブロッキングフィルタ265の第二の入力とイントラ予測モジュール260の第一の入力と信号通信において接続される。デブロッキングフィルタ265の第二の出力は、参照ピクチャバッファ280の第一の入力と信号通信において接続される。参照ピクチャバッファ280の出力は、動き補償器270の第二の入力と信号通信において接続される。
【0033】
エントロピーデコーダ245の第二の出力は、動き補償器270の第三の入力及びデブロッキングフィルタ265の第一の入力と信号通信において接続される。エントロピーデコーダ245の第三の出力は、デコーダコントローラ205の入力と信号通信において接続される。デコーダコントローラ205の第一の出力は、エントロピーデコーダ245の第二の入力と信号通信において接続される。デコーダコントローラ205の第二の出力は、逆変換器及び逆量子化器250の第二の入力と信号通信において接続される。デコーダコントローラ205の第三の出力は、デブロッキングフィルタ265の第三の入力と信号通信において接続される。デコーダコントローラ205の第四の出力は、イントラ予測モジュール260の第二の入力、動き補償器270の第一の入力、及び参照ピクチャバッファ280の第二の入力と信号通信において接続される。
【0034】
動き補償器270の出力は、スイッチ297の第一の入力と信号通信において接続される。イントラ予測モジュール260の出力は、スイッチ297の第二の入力と信号通信において接続される。スイッチ297の出力は、加算器225の第1の非反転入力と信号通信において更に接続される。
【0035】
入力バッファ210の入力は、入力ビットストリームを受信するため、デコーダ200の入力として利用可能である。デブロッキングフィルタ265の第一の出力は、出力ピクチャを出力するため、デコーダ200の出力として利用可能である。
【0036】
丸めのオフセットは、たとえばビデオを再構成するか又は後処理のためにデコーダ200で使用される。この状況下で、丸めのオフセットは、(たとえばエンコーダ100により)ビットストリームで埋め込まれ、デコーダ200に伝達される。1実施の形態では、それぞれのピクチャ又はグループオブピクチャについて1つの丸めのオフセットが設定される。別の実施の形態では、丸めのオフセットは、それぞれのマクロブロックについて設定され、それぞれのマクロブロックについてその実際の値又はインデックスが送出される。
【0037】
上述されたように、本発明は、映像符号化及び復号化のために、改善された丸めのオフセットの調節のための方法及び装置に向けられる。
【0038】
知覚品質の改善における1つの重要な態様は、フィルムグレイン及びコンピュータで作られた雑音のような、微細な詳細を保持することである。これは、微細な詳細の損失が非常に顕著な滑らかな領域にとって重要である。既存のアルゴリズムにおける一般的なアプローチは、固定の量子化の丸めのオフセットを使用しつつ、微細な量子化ステップのサイズで滑らかな領域を含むこれらの滑らかな領域又はビデオセグメントを符号化することである。
【0039】
式(1)から分かるように、丸めのオフセットは、小さなゼロに近い係数がどのように量子化されるかをダイレクトに制御するように、小さな係数への顕著な制御を有する。sを増加したとき、より少ない係数がゼロに量子化され、量子化ステップサイズqが与えられて小さな係数でより多くのビットが費やされる。ビットレートが与えられたとき、増加されたsは、ビットレートの制約に適合するために粗いqで動作する必要がある。したがって、丸めのオフセットを増加することは、大きな係数への多くの歪みという代償を払って、小さな係数を保持する。小さな係数を保持することは、限定されるものではないがフィルムグレイン及びコンピュータで作られた雑音を含む、再構成されたビデオにおける微細な詳細を保持するので、本発明に係る丸めのオフセット値を調節することは、トランスペアレントな視覚的な品質が期待されるBlu−Ray DVDオーサリングのような幾つかの応用にとって高い知覚品質を得ることにおいて非常に有効である。
【0040】
以下の記載では、TM5(Test Model, version 5)を使用して、あるピクチャ内の滑らかな領域について、より高い品質がどのように得られるかを例示する。テストモデルは、MPEGビデオの作業草案と並行して進化した。勿論、本発明はTM5のみに限定されるものではなく、本発明の精神を維持しつつ、他のビデオ符号化規格、勧告及び/又はその拡張と共に容易に使用される。
【0041】
さらに、以下の記載では、2パスエンコーダを使用して、より高い品質が、滑らかな領域を含むビデオセグメントにどのように割り当てられるかを示す。勿論、本発明は、2パスエンコーダに限定されず、本発明の精神を維持しつつ、2を超えるパスを使用したエンコーダと同様に、1パスエンコーダが使用される場合もある。
【0042】
TM5では、オリジナルの画素値を使用して、4つの輝度のフレーム編成されたサブブロック(n=1,...,4)及び4つの輝度のフィールド編成されたサブブロック(n=5,...,8)からのMB
jについて、空間アクティビティの測度が計算される。
【0043】
【数3】
この場合、
【数4】
及び
【数5】
である。この場合、P
knは、n番目のオリジナルの8×8ブロックにおけるサンプル値である。次いで、act
jは、以下に正規化される。
【0044】
【数6】
この場合、avg_actは、前の符号化ピクチャのact
jの平均値である。最初のピクチャに関して、avg_actは、400に設定される。mquant
jは、以下のように得られる。
【0045】
【数7】
この場合、Q
iは、基準の量子化パラメータである。mquant
jの最終値は、範囲[1...31]にクリップされ、符号化の間に量子化ステップのサイズを示すように使用される。
【0046】
したがって、TM5量子化スキームでは、小さな分散をもつ滑らかなマクロブロック(MB)は、空間アクティビティの測度act
j,N_act
jの小さな値、並びにmquant
jにより索引付けされる微細な量子化ステップのサイズを有する。滑らかなマクロブロックの微細な量子化により、より微細な詳細を保持することができ、より高い知覚品質を得ることができる。
【0047】
非実時間の応用では、エンコーダは、全体のビデオを分析し、微細な詳細を含むビデオのセグメントへの割り当てられたビット数を増加する。1つの従来技術のアプローチは、2パスエンコードシステムを提案し、この場合、第一のパスの固定ビットレート(CBR)のデータは、実際の可変ビットレート(VBR)圧縮を実行した、第二のパスの制御パラメータを準備するために処理される。特に、第二のパスでは、i番目のピクチャは、目標とするビット数b
2,iを以下のように設定する。
【0048】
【数8】
この場合、b
l,i及びQ
l,iは、第一のパスからのビット数及び量子化ステップのサイズのパラメータであり、pは定数である。
【0049】
【数9】
この場合、B
totは、全体の利用可能なビット数であり、Nは、全体のピクチャ数である。
【0050】
この2パスエンコードシステムでは、滑らかな領域をもつシーンのような低い圧縮の複雑度を持つシーンは、高い知覚品質に変換する、小さく微細な量子化ステップのサイズ及び高いピーク信号対雑音比(PSNR)で符号化される。
【0051】
前に記載されたように、既存の方法は、滑らかな領域で微細な詳細を保持するため、高い知覚品質を達成するために、エンコーダにおける量子化ステップのサイズを調節している。本発明の少なくとも1つの実施の形態によれば、滑らかな領域における知覚品質を改善するため、丸めのオフセットの調節がエンコーダに導入される。
【0052】
少なくとも1つの実施の形態によれば、丸めのオフセットを調節することで、知覚品質を効果的に改善する方法及び装置が記載される。従って、再構成されたビデオにおいて微細な詳細を保持することが意図される。これは、微細な詳細の損失が非常に顕著である滑らかな領域にとって特に重要である。好適な実施の形態では、このスキームは、エンコーダが、あるシーンレベル、あるピクチャレベル、あるマクロブロックレベル等に関して丸めのオフセットを選択するのを可能にするために十分に柔軟性がある。また、このスキームは、知覚品質を改善するために量子化ステップのサイズが調節されるエンコーダに統合される。
【0053】
[知覚品質を改善するための量子化の調節]
図3を参照して、ビデオエンコーダにおける知覚品質を改善するための量子化の調節の方法は、参照符号300により示される。係る方法において調節可能な量子化パラメータは、量子化ステップのサイズである。丸めのオフセットのパラメータは、符号化プロセスを通して固定である。本方法300は、制御を機能ブロック310に移す開始ブロック305を含む。機能ブロック310は、随意にオペレータにより、符号化のセットアップを実行し、制御を機能ブロック315に移す。機能ブロック310に関して、実行される符号化のセットアップは、目標とするビットレートの設定と同様に、符号化プロセスに含まれる任意のセットのパラメータの指定を含む。機能ブロック315は、入力ビデオコンテンツを分析し、制御をループリミットブロック320に移す。機能ブロック315及びCBR符号化の場合に関して、コンテンツ分析のタスクは、そのコンテンツに基づいて現在のピクチャの目標とするビット数の僅かな調節を含む。機能ブロック315及びVBRの場合に関して、コンテンツ分析モジュールは、符号化の複雑度を取得して、利用可能なビットをビデオに適応的に割り当てるため、全体のビデオの実際の符号化を含む。ループリミットブロック320は、ピクチャの変数j=1,...#を使用して、入力ビデオコンテンツにおけるそれぞれのピクチャを通してループ(1)を開始し、制御を機能ブロック325に移す。機能ブロック325は、目標とするビット数からピクチャjについて基準の量子化ステップのサイズqを計算し、制御をループリミットブロック330に移す。ループリミットブロック330は、ピクチャjにおけるマクロブロック(MB)の変数i=1,...,#を使用して、現在のピクチャにおけるそれぞれマクロブロックを通してループ(2)を開始し、制御を機能ブロック335に移す。機能ブロック335は、そのコンテンツ及び/又は前の符号化の結果に基づいて、MBiについて量子化ステップのサイズqを調節し、制御を機能ブロック340に移す。機能ブロック335に関して、たとえば、滑らかなMBは、知覚品質を改善するためにqを低減する。別の例では、前のMBが本来割り当てられたビット数よりも多くのビットを使用する場合、現在のMBは、本来割り当てられたビット数よりも少ないビットを消費するようにqを増加する。この計算は、2〜3例を挙げると、ρドメインレートモデル又はTMN8レートモデルに基づくことができる。機能ブロック340は、qでマクロブロックiを符号化し、制御をループリミットブロック345に移す。ループリミットブロック345は、ループ(2)を終了し、制御をループリミットブロック350に移す。ループリミットブロック350は、ループ(1)を終了し、制御を終了ブロック399に移す。
【0054】
このアプローチでは、固定された丸めのオフセットは、全ての符号化されたピクチャに適用され、量子化ステップのサイズのみが調節される。たとえば、多くのMPEG−4 AVC規格の映像符号化の応用では、丸めのオフセットは、イントラピクチャ及びインターピクチャのそれぞれについて、デフォルトの設定により、1/3.0及び1/6.0に設定される。ビットレートの制約が与えられると、量子化ステップのサイズのみを調節することは、最も高い可能な知覚品質をビデオセグメントに常に提供することはできない。さらに、固定された丸めのオフセットは、様々なビデオ特性に常に適合しない。
【0055】
[知覚品質を改善するための丸めのオフセットの調節]
少なくとも1つの実施の形態によれば、知覚品質を改善するため、量子化ステップのサイズを調節することに加えて、丸めのオフセットsを調節する方法及び装置が記載される。調節は、全体のビデオ、ビデオのセグメント、あるピクチャにおける領域等に適用される。
【0056】
図4及び
図5は、量子化の調節プロセスにおいて量子化ステップのサイズのほかに丸めオフセットを含む特定の実施の形態を例示する。ビット数がどのように割り当てられたかに依存して、例示される実施の形態は、可変ビットレート(VBR)又は固定ビットレート(CBR)のアプリケーションに役立つ。また、例示される実施の形態は、マルチパスエンコーダの一部であり、他のパスのための情報を供給する。本発明が適用される、これらの応用及びシナリオ、並びに様々な他の応用及びシナリオは、本発明の精神を維持しつつ、当業者により容易に決定される場合がある。
【0057】
[実施例1]
図4は、量子化の丸めのオフセットが知覚品質を改善するためにどのように適応的に選択されるかを例示する。この方法では、エンコーダは、コンテンツを分析して、丸めのオフセットsを自動的に決定する。決定の規則は、インター符号化及びイントラ符号化、異なる変換、異なるビットレート等について個別に設計することができる。分析は、計算上の複雑度を節約するため、符号化される全体のビデオに関して、又はビデオの一部に関して行われる。
図4におけるワークフローが全体のビデオに適用されたとき、全てのピクチャは、同じ丸めのオフセットを有し、ワークフローがあるシーンに適用されたとき、あるシーンにおける全てのピクチャは、同じ丸めのオフセットを共有し、値はあるシーンから別のシーンへと異なる。シーンに適応したソリューションが計算上の複雑度を必要とする一方で、シーンに適応したソリューションは、より柔軟であって、高い知覚品質を得ることにおいてコンテンツに良好に適合する。また、ワークフローは、1つの個々のピクチャに適用され、それぞれのピクチャは、異なる丸めのオフセットを選択する。ビデオは、通常、1つのシーン内で静止しているので、異なる丸めのオフセットで1つのシーン内のピクチャを符号化することは、そのシーン内の視覚的な品質の不一致を生じる。
【0058】
図4を参照して、知覚品質を改善するため、あるピクチャレベルに関する丸めのオフセットの調節のための例示的な方法は、参照符号400により示される。本方法400は、開始ブロック405を含み、この開始ブロックは、制御を機能ブロック410に移す。機能ブロック410は、随意にオペレータにより、符号化のセットアップを実行し、制御を機能ブロック415に移す。機能ブロック415は、入力ビデオコンテンツを分析し、制御を機能ブロック420に移す。機能ブロック420は、丸めのオフセットsを適応的に選択し、制御をループリミットブロック425に移す。ループリミットブロック425は、ピクチャの変数j=1,...,#を使用して、入力ビデオコンテンツにおけるそれぞれのピクチャを通してループ(1)を開始し、制御を機能ブロック430に移す。機能ブロック430は、ビットレートの制約及び丸めのオフセットsが与えられると、ピクチャjについて基準の量子化ステップのサイズqを計算し、制御をループリミットブロック435に移す。ループリミットブロック435は、ピクチャjにおけるマクロブロック(MB)の変数i=1,...,#を使用して、現在のピクチャにおけるそれぞれのマクロブロックを通してループ(2)を開始し、制御を機能ブロック440に移す。機能ブロック440は、そのコンテンツに基づいてMBiについて量子化ステップのサイズqを調節し、制御を機能ブロック445に移す。機能ブロック445は、qでマクロブロックiを符号化し、制御をループリミットブロック450に移す。ループリミットブロック450は、ループ(2)を終了し、制御をループリミットブロック455を移す。ループリミットブロック455は、ループ(1)を終了し、制御を終了ブロック499に移す。
【0059】
本方法400では、丸めのオフセット値は、ピクチャからピクチャへのコンテンツに適合し、1つのピクチャにおける全てのMBは、同じ丸めのオフセットを使用する。本方法400の1つの利点は、本方法はコンテンツに適合するものであって、統合するのが容易であることである。本方法400の1つの問題点は、本方法は、滑らかな領域とざらつきのある領域とを識別せず、全てのMBに同じ丸めのオフセットを無分別に割り当てる。ビットレートが制限されるとき、丸めのオフセットの調節のためにざらつきのある領域で費やされる余分のビットは、大きな量子化ステップのサイズでピクチャが符号化され、エンコーダが高い品質を得るのを妨げる。
【0060】
[実施例2]
図5は、
図4に記載される方法の変形例を例示する。
図5の提案される方法では、丸めのオフセットは、それぞれのMBについて決定される。1実施の形態では、それぞれのMBは、2つの予め定義された値のうちの1つを選択する。勿論、本発明の実施の形態は、丸めのオフセットの2つの予め定義された値のみに限定されず、本発明の精神を維持しつつ、2以外の値が使用される場合がある。この実施の形態では、それぞれのピクチャは、2つのクラスのMB、すなわちテクスチャMB及び滑らかなMBに分割される。滑らかな領域で微細な詳細を保持することは重要であるので、丸めのオフセットは、より小さい係数を保持するためにこれらの領域に割り当てられる。対照的に、微細な詳細の損失は、テクスチャマスキング効果のために、ざらつきのある領域において目えにくく、別の丸めのオフセットは、小さな係数において余りに多くのビットを費やすことなしに割り当てられる。
【0061】
図5を参照して、知覚品質を改善するため、あるマクロブロックレベルへの丸めのオフセットの調節の例示的な方法は、参照符号500により示される。本方法500は、開始ブロック505を含み、この開始ブロックは、制御を機能ブロック510に移す。機能ブロック510は、随意にオペレータにより、符号化のセットアップを実行し、制御を機能ブロック515に移す。機能ブロック515は、入力ビデオコンテンツを分析し、入力ビデオコンテンツのマクロブロックを分割し、制御をループリミットブロック520に移す。ループリミットブロック520は、ピクチャの変数j=1,...,#を使用して、入力ビデオコンテンツにおけるそれぞれのピクチャを通してループ(1)を開始し、制御を機能ブロック525に移す。機能ブロック525は、ビットレートの制約が与えられると、ピクチャjについて量子化ステップのサイズqを計算し、制御を機能ブロック530に移す。機能ブロック530は、それぞれのマクロブロックについて丸めのオフセットを決定し、制御をループリミットブロック535に移す。ループリミットブロック535は、ピクチャjにおけるマクロブロック(MB)の変数i=1,...,#を使用して、現在のピクチャにおけるそれぞれのマクロブロックを通してループ(2)を開始し、制御を機能ブロック540に移す。機能ブロック540は、そのコンテンツに基づいてMBiについて量子化ステップサイズqを調節し、制御を機能ブロック545に移す。機能ブロック545は、q及びsでマクロブロックiを符号化し、制御をループリミットブロック550に移す。ループリミットブロック550は、ループ(2)を終了し、制御をループリミットブロック55に移す。ループリミットブロック555は、ループ(1)を終了し、制御を終了ブロック599に移す。
【0062】
本方法500では、丸めのオフセットの値は、あるMBレベルでコンテンツに適合する。これは、微細な詳細が知覚的に重要である領域で高い知覚品質を提供し、エンコーダが他の領域で余りに多くのビットを費やすのを防止する。しかし、大部分の既存のレート制御アルゴリズムは、MBレベルの丸めのオフセットの調節に適合せず、これは、ターゲットビットレートを得ることにおいて、レート制御アルゴリズムに課題を与える。
【0063】
[実施例3]
図6は、
図5に記載される方法500の変形例である方法600を例示する。本方法600では、丸めのオフセットは、コンテンツの特徴及び利用可能なビットの両者を考慮することで、符号化プロセスの間にそれぞれのマクロブロックで決定される。たとえば、実施の形態では、マクロブロックの分散及び現在のマクロブロックに割り当てられるビット数に依存して、エンコーダは、マッピング関数に基づいてその丸めのオフセットを選択する。
【0064】
図6を参照して、知覚品質を改善するため、あるマクロブロックレベルに関する丸めのオフセットの調節のための別の例示的な方法は、参照符号600により示される。本方法600は、開始ブロック605を含み、この開始ブロックは、制御を機能ブロック610に移す。機能ブロック610は、随意にオペレータにより、符号化のセットアップを実行し、制御を機能ブロック615に移す。機能ブロック615は、入力ビデオコンテンツを分析し、制御をループリミットブロック625に移す。ループリミットブロック625は、ピクチャの変数j=1,...,#を使用して、入力ビデオコンテンツにおけるそれぞれのピクチャを通してループ(1)を開始し、制御を機能ブロック630に移す。機能ブロック630は、ビットレートの制約が与えられると、ピクチャjについて量子化ステップのサイズqを計算し、制御をループリミットブロック635に移す。ループリミットブロック635は、ピクチャjにおけるマクロブロック(MB)の変数i=1,...,#を使用して、現在のピクチャにおけるそれぞれのマクロブロックを通してループ(2)を開始し、制御を機能ブロック640に移す。機能ブロック640は、そのコンテンツに基づいてMBiについて量子化のステップのサイズq及び丸めのオフセットsを調節し、制御を機能ブロック645に移す。機能ブロック645は、q及びsでマクロブロックを符号化し、制御をループリミットブロック650に移す。ループリミットブロック650は、ループ(2)を終了し、制御をループリミットブロック655に移す。ループリミットブロック655は、ループ(1)を終了し、制御を終了ブロック699に移す。
【0065】
図5の方法500と比較して、本方法600は、あるマクロブロックレベルに関して丸めのオフセット値を選択することにおける更なる柔軟性を提供する。
図5における方法に類似して、本方法600は、ターゲットビットレートを得ることにおけるレート制御アルゴリズムに課題を与える。
【0066】
[丸めのオフセットを適応的に選択する方法]
図7では、丸めのオフセットが1実施の形態に従ってどのように決定されるかが例示される。この例では、ビデオにおけるマクロブロックは、テクスチャのマクロブロック又は滑らかなマクロブロックとして分類される。滑らかな領域について丸めのオフセットの調節に焦点をあてる。ざらつきのあるマクロブロックについて、デフォルトの丸めのオフセットは、レート歪みの性能を最適化するために使用される。勿論、この例は、丸めのオフセットが決定される1つの方法に関する。したがって、本発明の精神を維持しつつ、本実施の形態で提供される本発明の教示が与えられると、当業者であれば、丸めのオフセットを決定する様々な方法を創作するように、本発明は、この例のように丸めのオフセットを決定することに限定されない。
【0067】
図7を参照して、丸めのオフセットを決定する例示的な方法は、参照符号700により示される。本方法700は、開始ブロック705を含み、この開始ブロックは、制御を機能ブロック720を移す。機能ブロック720は、ピクチャを読み、制御を機能ブロック730に移す。機能ブロック730は、MBをテクスチャマクロブロック又は滑らかなマクロブロックに分類し、制御を機能ブロック740に移す。機能ブロック740は、滑らかなマクロブロックの特徴を分析し、制御を機能ブロック750に移す。機能ブロック750は、滑らかな領域について丸めのオフセットsを決定し、制御を終了ブロック799に移す。機能ブロック740に関して、1実施の形態では、画素領域又は変換領域における分散を使用して、微細な詳細の強度として特徴を分析することができる。さらに、機能ブロック740に関して、別の実施の形態では、推定される量子化ステップのサイズでのゼロ係数の数を使用して、強度を示すことができる。次いで、機能ブロック750により、特徴は丸めのオフセットにマッピングされる。たとえば、マクロブロックは、その分散が閾値T1よりも小さい場合に、丸めのオフセットs1を割り当て、分散がT2よりも小さく、T1よりも大きい場合にs2を割り当て、その他の場合にはs3を割り当てる。更に別の実施の形態では、機能又はルックアップテーブルは、分散を丸めのオフセット値にマッピングするために適用される。
【0068】
図8を参照して、丸めのオフセットが既知であって、ビットストリームで送出されない場合の、ピクチャデータを復号化する例示的な方法は、参照符号800により示される。本方法800は、開始ブロック810を含み、この開始ブロックは、制御を機能ブロック820に移す。機能ブロック820は、ビットストリームを読んで分析し、制御をループリミットブロック830に移す。ループリミットブロック830は、ピクチャの変数i=1,...,#を使用して、入力ビデオコンテンツにおけるそれぞれのピクチャを通してループを開始し、制御を機能ブロック840に移す。機能ブロック840は、ピクチャiについて量子化ステップのサイズqiを計算し、制御を機能ブロック850に移す。機能ブロック850は、qiでピクチャiを再構成し、制御をループリミットブロック860に移す。ループリミットブロック860は、ループを終了し、制御を終了ブロック899に移す。
【0069】
図9を参照して、丸めのオフセットを使用したデコーダで、符号化ユニットを再構成する例示的な方法は、参照符号900により示される。本方法900は、開始ブロック910を含み、この開始ブロックは、制御を機能ブロック920に移す。機能ブロック920は、ビットストリームを読んで分析し、制御をループリミットブロック930に移す。ループリミットブロック930は、符号化ユニットの変数i=1,...,#を使用して、入力ビデオコンテンツにおけるそれぞれのピクチャを通してループを開始し、制御を機能ブロック940に移す。機能ブロック940は、符号化ユニットiの量子化ステップのサイズqi及び丸めのオフセットsiを分析又は計算し、制御をループリミットブロック950に移す。機能ブロック950は、qi及びsiで符号化ユニットiを再構成し、制御をループリミットブロック960に移す。ループリミットブロック960は、ループを終了し、制御を終了ブロック999に移す。本方法900では、符号化ユニットは、あるピクチャ、あるグループオブピクチャ、あるマクロブロック、又はあるグループオブマクロブロックとすることができる。
【0070】
図10を参照して、丸めのオフセットを使用したエンコーダで、入力の符号化ユニットを符号化する例示的な方法は、参照符号1000により示される。本方法は、例示及び簡単さのために符号化プロセスの一部を示すものであり、全体の符号化プロセスを表すことを意味するものではないことを理解されたい。本方法1000は、開始ブロック1005を含み、この開始ブロックは、制御を機能ブロック1010に移す。機能ブロック1010は、入力の符号化ユニットと基準の符号化ユニットとの間の差に対応する入力の符号化ユニットの残差を決定し、制御を機能ブロック1015に移す。機能ブロック1015は、ある変換を残差に適用して、少なくとも1つの変換係数を取得し、制御を機能ブロック1020に移す。機能ブロック1020は、特定の量子化ステップのサイズ及び丸めのオフセットを選択し、選択された特定の量子化ステップのサイズ及び丸めのオフセットを適用することで、少なくとも1つの変換係数を量子化し、制御を終了ブロック1099に移す。
【0071】
図11を参照して、丸めのオフセットを選択する例示的な方法は、参照符号1100により示される。本方法1100は、本発明に従い、丸めのオフセットが選択される基準のうちの幾つかを示すことが意図される。
【0072】
本方法1100は、開始ブロック1105を含み、この開始ブロックは、制御を機能ブロック1110に移す。機能ブロック1110は、(符号化ユニットを含む全体のビデオ系列、系列の一部、符号化ユニットに関連するピクチャ、ピクチャにおける領域、滑らかである領域又はざらついている領域の分類、イントラ符号化が使用されたか又はインター符号化が使用されたか、1以上の変換のタイプ、1以上のビットレート、画素領域の分散、変換領域の分散、特定の又は別の量子化ステップのサイズでのゼロ係数の数、のうちの1つに応じて)丸めのオフセットを選択し、制御を終了ブロック1199に移す。
【0073】
図12を参照して、丸めのオフセットを適用する例示的な方法は、参照符号1200により示される。本方法1200は、本発明に従い、丸めのオフセットが適用されるアイテムのうちの幾つかを示すことが意図される。
【0074】
本方法1200は、開始ブロック1205を含み、この開始ブロックは、制御を機能ブロック1210に移す。機能ブロック1210は、丸めのオフセットを(符号化ユニットを含む全体のビデオ系列、系列の一部、符号化ユニットに関連するピクチャ、又はピクチャにおける領域、のうちの少なくとも1つ)に適用し、制御を終了ブロック1299に移す。
【0075】
図13を参照して、丸めのオフセットを使用したデコーダで、符号化ユニットを復号化する例示的な方法は、参照符号1300により示される。本方法は、例示及び簡単さのために復号化プロセスの一部を示すものであって、全体の復号化プロセスを表すことを意味していないことを理解されたい。本方法1300は、開始ブロック1305を含み、この開始ブロックは、制御を機能ブロック1310に移す。機能ブロック1310は、丸めのオフセットを選択することを表す情報を受け、入力の符号化ユニットと基準の符号化ユニットとの間の変換及び量子化された差に対応する少なくとも1つの量子化された係数を受け、制御を機能ブロック1315に移す。機能ブロック1315は、特定の量子化ステップのサイズ及び丸めのオフセットを選択し、選択された特定の量子化ステップのサイズ及び丸めのオフセットを適用することで、少なくとも1つの量子化された係数に逆量子化を施して、少なくとも1つの逆量子化された係数を取得し、制御を機能ブロック1320に移す。機能ブロック1320は、逆変換を少なくとも1つの逆量子化された係数に施して、再構成された残差を取得し、制御を終了ブロック1399に移す。
【0076】
本発明の多くの付随する利点/特徴の幾つかに関する説明が与えられ、そのうちの幾つかは上述された。たとえば、1つの利点/特徴は、入力の符号化単位と基準の符号化単位との間の差に対応する入力の符号化単位の残差を決定し、決定された残差に変換を施して、少なくとも1つの変換係数を取得し、特定の量子化ステップのサイズ及び丸めのオフセットを選択することで、取得された少なくとも1つの変換係数を量子化することにより、入力の符号化単位を符号化するビデオエンコーダを有する装置である。
【0077】
別の利点/特徴は、上述されたビデオエンコーダを有する装置であり、丸めのオフセットは、符号化単位を含む全体のビデオ系列、ビデオ系列の一部、符号化単位に関連するピクチャ、又はピクチャにおける領域に適用されるように選択される。
【0078】
更に別の利点/特徴は、ビデオエンコーダを有する装置であって、上述されたように、丸めのオフセットは、符号化単位を含む全体のビデオ系列、ビデオ系列の一部、符号化単位に関するピクチャ、又はピクチャにおける領域に適用されるように選択され、前記一部は、1以上のグループオブピクチャに含まれるか又は1以上のグループオブピクチャとは独立な1以上のシーン又は1以上のピクチャを含み、前記領域は、1以上のマクロブロックを含む。
【0079】
更に別の利点/特徴は、ビデオエンコーダを有する装置であり、上述されたように、前記一部は、1以上のグループオブピクチャに含まれるか又は1以上のグループオブピクチャとは独立な1以上のシーン又は1以上のピクチャを含み、前記領域は、1以上のマクロブロックを含み、異なる丸めのオフセットは、1以上のシーン、1以上のピクチャ、及び1以上のマクロブロックのうちの異なる1に適用可能である。
【0080】
さらに、別の利点/特徴は、上述されたビデオエンコーダを有する装置であり、丸めのオフセットは、画素領域の分散、変換領域の分散、及び、特定の又は別の量子化ステップサイズでのゼロ係数の数の少なくとも1つに応じて選択される。
【0081】
さらに、別の利点/特徴は、上述されたビデオエンコーダを有する装置であり、丸めのオフセットは、符号化単位を含む全体のビデオ系列、ビデオ系列の一部、符号化単位に関するピクチャ、ピクチャにおける領域、滑らかな領域又はざらつきのある領域の分類のうちの少なくとも1つに応じて選択される。
【0082】
また、別の利点/特徴は、ビデオエンコーダを有する装置であり、上述されたように、丸めのオフセットは、符号化単位を含む全体のビデオ系列、ビデオ系列の一部、符号化単位に関するピクチャ、ピクチャにおける領域、滑らかな領域又はざらつきのある領域の分類のうちの少なくとも1つに応じて選択され、領域は、1以上のマクロブロックを含み、丸めのオフセットは、滑らかであると分類されたマクロブロックについてのみ選択されて適用され、エンコーダにより一般的に使用されるデフォルトの丸めのオフセットは、ざらつきがあると分類されたマクロブロックに適用される。
【0083】
更に、別の利点/特徴は、ビデオエンコーダを有する装置であり、領域は、1以上のマクロブロックを含み、上述されたように、丸めのオフセットは、滑らかであると分類されたマクロブロックについてのみ選択されて適用され、エンコーダにより一般的に使用されるデフォルトの丸めのオフセットは、ざらつきがあると分類されたマクロブロックに適用され、丸めのオフセットは、入力の符号化単位がイントラ予測を使用して符号化されたか又はインター予測を使用して符号化されたか、1以上の変換のタイプ、及び符号化単位を符号化するための1以上の異なるビットレートの少なくとも1つに応じて選択される。
【0084】
更に、別の利点/特徴は、上述されたビデオエンコーダを有する装置であり、エンコーダは、エンコーダにより出力されるビットストリームに選択された丸めのオフセットを表す情報を埋め込む。
【0085】
本発明のこれらの特徴及び利点、並びに他の特徴及び利点は、本明細書での教示に基づいて当業者により容易に確認される場合がある。本発明の教示は、ハードウェア、ファームウェア、特定用途向けプロセッサ又はそれらの組み合わせの様々な形態で実現される。
【0086】
より好ましくは、本発明の教示は、ハードウェア及びソフトウェアの組み合わせとして実現される。更に、ソフトウェアは、プログラム記録媒体に記録されるアプリケーションプログラムとして実現される。アプリケーションプログラムは、適切なアーキテクチャを有するコンピュータにアップロードされ、該コンピュータにより実行される。好ましくは、コンピュータは、1以上の中央処理装置(CPU)、ランダムアクセスメモリ(RAM)、及び入力/出力(I/O)インターフェースのようなハードウェアを有するコンピュータプラットフォームで実現される。また、コンピュータプラットフォームは、オペレーティングシステム及びマイクロ命令コードを含む。本明細書で記載される様々なプロセス及び機能は、CPUにより実行される、マイクロ命令コードの一部又はアプリケーションプログラムの一部であるか、或いは、それらの組合せである。更に、様々な他の周辺装置は、更なるデータ記録装置及びプリンティング装置のようなコンピュータプラットフォームに接続される。
【0087】
添付図面に示されるシステム構成要素及び方法の幾つかは、ソフトウェアで好ましくは実現されるため、システム構成要素又はプロセス機能ブロック間の実際の接続は、本発明がプログラムされる方式に依存して異なることを理解されたい。本明細書での教示が与えられると、当業者は、本発明のこれらの実現又はコンフィギュレーション或いは類似の実現又はコンフィギュレーションを創作するであろう。
【0088】
例示的な実施の形態が添付図面を記載されたが、本発明はそれら正確な実施の形態に限定されるものではなく、本発明の範囲又は精神から逸脱することなしに、様々な変形及び変更が当業者により行われるであろう。全ての係る変形及び変更は、特許請求の範囲で述べられるように本発明の範囲に含まれることが意図される。