(57)【特許請求の範囲】
【請求項１】
複数のマクロブロックに分割可能な双予測（Ｂ）スライスのためのビデオ・データを符号化する装置であって、
前記Ｂスライス内の現在のマクロブロックを符号化する際に、モード選択を実行する符号化器であって、前記モード選択の実行は、ダイレクト・モードで符号化される隣接マクロブロックの数が第１の閾値よりも小さい場合に、前記現在のマクロブロック内のブロック変換係数の数を使用して前記現在のマクロブロックの残差エネルギーを算出し、前記残差エネルギーの値を第２の閾値と比較し、前記残差エネルギーの値が前記第２の閾値よりも小さい場合にモード選択に対してインター・モードのみを考慮することによって行われる、前記モード選択を実行する符号化器を含む、前記装置。
【請求項２】
前記残差エネルギーの値が零である場合は、前記モード選択に対してインター・モードのみが考慮される、請求項１記載の装置。
【請求項３】
複数のマクロブロックに分割可能な双予測（Ｂ）スライスのためのビデオ・データを装置が符号化する方法であって、
前記Ｂスライス内の現在のマクロブロックを符号化する際に、モード選択を実行するステップを含み、前記実行するステップは、
ダイレクト・モードで符号化される隣接マクロブロックの数が第１の閾値よりも小さい場合に、前記現在のマクロブロック内のブロック変換係数の数を使用して前記現在のマクロブロックの残差エネルギーを算出するステップと、
前記残差エネルギーの値を第２の閾値と比較するステップと、
前記残差エネルギーの値が前記第２の閾値よりも小さい場合に前記モード選択に対してインター・モードのみを考慮するステップと、
を含む、前記方法。
【請求項４】
前記残差エネルギーの値が零である場合は、前記モード選択に対してインター・モードのみが考慮される、請求項３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願とのクロスリファレンス）
本出願は、２００４年１１月４日付で出願され、「Ｈ．２６４符合器のためのＢフレームの高速モード決定（ＦＡＳＴ  ＭＯＤＥ  ＤＥＣＩＳＩＯＮ  ＯＦ  Ｂ−ＦＲＡＭＥＳ  ＦＯＲ  ＡＮ  Ｈ．２６４  ＥＮＣＯＤＥＲ）」と題された米国仮特許出願第６０／６２４，８７０の利益を主張するものであり、その開示内容全体を本明細書中に盛り込むものとする。
【０００２】
本発明は、ビデオ符号器に関し、より具体的には、符号器におけるＢフレームのための高速モード決定ための方法および装置に関する。
【背景技術】
【０００３】
ビデオ圧縮規格においては、インターフレーム（ＰフレームおよびＢフレーム）を符号化するためにインター符号化およびイントラ符号化の双方を使用することができる。イントラ符号化は、空間相関を使用し、インター符号化は、前に符号化されたフレームからの時間相関を使用する。一般に、インター符号化は、前のピクチャから良好に予測されるマクロブロックのために使用され、イントラ符号化は、前のピクチャからは良好に予測されないマクロブロック、または、空間アクティビティの低い（ｌｏｗ  ｓｐａｔｉａｌ  ａｃｔｉｖｉｔｙ）マクロブロックのために使用される。通常、符号器は、符号化効率および主観的品質を考慮して各マクロブロック、スライス、ピクチャ、フィールド、および／またはフレームに対するインター／イントラ符号化決定を行うであろう。ＪＶＴ／Ｈ．２６４／ＭＰＥＧ  ＡＶＣ（「Ｈ．２６４」）規格においては、インター符号化は、マクロブロックを予測するために様々なブロック・パーティションおよび複数のリファレンス・ピクチャを使用することを可能にする。
【０００４】
Ｈ．２６４規格は、ツリー構造の階層型マクロブロック・パーティションを使用する。インター符号化された１６×１６画素のマクロブロックはさらに１６×１６、８×１６、または８×８画素のサイズのマクロブロック・パーティションに分割することができる。８×８のマクロブロック・パーティションは、サブマクロブロックとしても知られる。サブマクロブロックはさらに８×４、４×８、または４×４のサイズのサブマクロブロック・パーティションに分割することができる。符号器は、マクロブロックをどのように各パーティションまたはサブマクロブロックの各パーティションに分割するかを、圧縮効率および主観的品質を最高にするために、特定のマクロブロックの特性に基づいて、選定してもよい。
【０００５】
さらに、Ｈ．２６４規格は、イントラ（ＩＮＴＲＡ）・モード、ＳＫＩＰモード、およびダイレクト・モードもサポートしている。イントラ・モードには、ＩＮＴＲＡ４×４、ＩＮＴＲＡ１６×１６、および高忠実度化（ＦＲＥｘｔ：  ｆｉｄｅｌｉｔｙ  ｒａｎｇｅ  ｅｘｔｅｎｓｉｏｎｓ）モードのみのＩＮＴＲＡ８×８の３つのモードが存在する。ＩＮＴＲＡ４×４およびＩＮＴＲＡ８×８は、９つの予測モード、即ち、垂直（ｖｅｒｔｉｃａｌ）予測、水平（ｈｏｒｉｚｏｎｔａｌ）予測、ＤＣ予測、斜め下方左（ｄｉａｇｏｎａｌ  ｄｏｗｎ／ｌｅｆｔ）予測、斜め下方右（ｄｉａｇｏｎａｌ  ｄｏｗｎ／ｒｉｇｈｔ）予測、垂直左（ｖｅｒｔｉｃａｌ‐ｌｅｆｔ）予測、水平下方（ｈｏｒｉｚｏｎｔａｌ‐ｄｏｗｎ）予測、垂直右（ｖｅｒｔｉｃａｌ‐ｒｉｇｈｔ）予測、および水平上方（ｈｏｒｉｚｏｎｔａｌ‐ｕｐ）予測をサポートしている。ＩＮＴＲＡ１６×１６は、４つの予測モード、即ち、垂直予測、水平予測、ＤＣ予測、および平面（ｐｌａｎｅ）予測をサポートしている。
【０００６】
インター予測には複数のリファレンス・ピクチャを使用することができ、リファレンス・ピクチャ・インデックスは符号化され、複数のリファレンス・ピクチャのうちのどれが使用されるのかを示す。Ｐピクチャ（またはＰスライス）においては、単一の方向予測のみが使用され、許容されるリファレンス・ピクチャは、リスト０において管理される。Ｂピクチャ（またはＢスライス）においては、リファレンス・ピクチャの２つのリスト、即ち、リスト０およびリスト１が管理される。Ｂピクチャ（またはＢスライス）においては、リスト０またはリスト１を使用した単一の方向予測を使用することができ、さらに、リスト０およびリスト１の双方を使用した双予測（ｂｉ‐ｐｒｅｄｉｃｔｉｏｎ）を使用することができる。双予測が使用される場合には、リスト０の予測値（ｐｒｅｄｉｃｔｏｒ）およびリスト１の予測値は、平均化されて最終予測値を形成する。
【０００７】
従って、Ｈ．２６４規格においては、Ｂスライスのために４つの異なるタイプのインター・ピクチャ予測、即ち、リスト０の予測、リスト１の予測、双予測、およびダイレクト予測がサポートされる。リスト０の予測は、この予測が第１のリファレンス・ピクチャ・バッファのピクチャに基づくものであることを示し、リスト１の予測が使用される場合には、予測のために第２のリファレンス・ピクチャ・バッファのピクチャが使用される。双予測モードでは、予測信号は、リスト０およびリスト１の双方の予測信号を使用することによって予測信号が構築される。ダイレクト予測モードは、前に伝送されたシンタックス要素から推定されるものであり、リスト０の予測、リスト１の予測、あるいは、双予測でもよい。Ｂスライスにより、様々なブロック・パーティション（より具体的には、マクロブロックのための１６×１６、１６×８、８×１６、および８×８）が１６×１６のマクロブロックを予測するために使用される。さらに、各ブロック・パーティションのために、予測モード（リスト０、リスト１、双予測）が別個に選択される。ダイレクト予測モードにおいて符号化されたブロックのために、エラー信号が伝送されない場合には、符号化は、ＳＫＩＰモードとしても参照され、ブロックは、非常に効率的に符号化される。
【０００８】
Ｈ．２６４規格のために、各マクロブロック・パーティションは、独立リファレンス・ピクチャ・インデックス、予測タイプ（リスト０、リスト１、双予測）、さらに、独立動きベクトルを有するようにしてもよい。各サブマクロブロック・パーティションは、独立動きベクトルを有するようにしてもよいが、同一のサブマクロブロックにおける全てのサブマクロブロック・パーティションは、同一のリファレンス・ピクチャ・インデックスおよび予測タイプを使用する。
【０００９】
インター符号化マクロブロックでは、上記マクロブロック・パーティションの他に、Ｐフレームは、さらに、ＳＫＩＰモードをサポートし、Ｂフレームは、ＳＫＩＰモードとダイレクト・モードの双方をサポートしている。ＳＫＩＰモードでは、動きや残差情報は符号化されない。ＳＫＩＰマクロブロックに対する動き情報は、ピクチャ／スライス・タイプ（ＰまたはＢ）によって特定される動きベクトル予測値、さらに、シーケンスやスライス・レベルの各パラメータなどの他の情報と同一である。さらに、動き情報は、他の時間的、または空間的に隣接するマクロブロック、さらにスライス内のマクロブロックの位置に関する。これに対し、ダイレクト・モードでは、動き情報は符号化されず、予測残差が符号化される。マクロブロックおよびサブマクロブロックのいずれもダイレクト・モードをサポートしている。
【００１０】
モード決定では、インター・ピクチャは、インター・モードおよびイントラ・モードの双方をサポートする必要がある。イントラ・モードは、ＩＮＴＲＡ４×４およびＩＮＴＲＡ１６×１６を含む。Ｐピクチャでは、インター・モードは、ＳＫＩＰおよび１６×１６、１６×８、８×１６、およびサブマクロブロックの８×８のパーティションを含む。８×８は、さらに、８×８、８×４、４×８、および４×４のパーティションをサポートする。Ｂピクチャでは、マクロブロックおよびサブマクロブロックの双方のために、リスト０およびリスト１の双方、さらに、ダイレクト・モードが考慮される。
【００１１】
従来技術においては、レート歪み最適化（ＲＤＯ：Ｒａｔｅ‐Ｄｉｓｔｏｒｔｉｏｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ）フレームワークがモード決定に使用される。インター・モードでは、動き推定がモード決定とは別個に考慮される。動き推定は、まず、インター・モードの全てのブロック・タイプについて実行される。次に、モード決定は、インター・モードおよびイントラ・モードの各々のコストを比較することによって行われる。最小のコストのモードが最良のモードとして選択される。
【００１２】
ＰピクチャまたはＢピクチャにおける１つのマクロブロックｓを符号化する従来の処理（以下、「従来のマクロブロック符号化処理」と呼ぶ）を以下に要約する。
【００１３】
従来のマクロブロック符号化処理の第１のステップにおいて、最後に復号化されたピクチャ、ラグランジュ乗数λＭＯＤＥ、λＭＯＴＩＯＮ、およびマクロブロック量子化特性値（ｍａｃｒｏｂｌｏｃｋ  ｑｕａｎｔｉｚｅｒ）ＱＰが与えられる。
【００１４】
従来のマクロブロック符号化処理の第２のステップにおいて、使用する可能性のあるマクロブロック・モードのリファレンス・ピクチャおよび動きベクトルの各々に対し、以下の値が最小になるように動き推定およびリファレンス・ピクチャの選択を行う。
【数１】
0005602710.tif 000002
【００１５】
この等式において、ｍは、現在考慮されている動きベクトルである。ＲＥＦは、リファレンス・ピクチャを示し、ｐは、動きベクトル符号化の間の予測に使用される動きベクトルである。ｃ（ＲＥＦ，ｍ（ＲＥＦ））は、ＲＥＦ，ｍ（ＲＥＦ）によって決定される候補マクロブロックである。Ｒ（ｍ‐ｐ）は、動きベクトルを符号化するために使用されるビットを表す。Ｒ（ＲＥＦ）は、リファレンス・ピクチャを符号化するためのビットである。ＳＡ（Ｔ）Ｄは、当初の信号と動きベクトルによって予測されたリファレンス信号との間の（変換）差の絶対値の和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  （Ｔｒａｎｓｆｏｒｍ）  Ｄｉｆｆｅｒｅｎｃｅｓ）である。
【００１６】
従来のマクロブロック符号化処理の第３のステップにおいて、以下の値が最小になるようにマクロブロック予測モードを選択する。
【数２】
0005602710.tif 000003
ＱＰおよびλＭＯＤＥが与えられ、ＭＯＤＥは可変である。ＳＳＤは、当初の信号および再構築された信号との間の自乗差の和（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）である。Ｒ（ｓ，ｃ，ＭＯＤＥ）は、マクロブロック・ヘッダ、動き係数、および全てのＤＣＴ係数を含むＭＯＤＥの選択に関連するビットの数である。ＭＯＤＥは、使用する可能性のあるマクロブロック・モードのセット（集合）の中のモードを示す。
【数３】
0005602710.tif 000004
ＩＮＴＲＡ４×４は次のモードを含む。
【数４】
0005602710.tif 000005
ＩＮＴＲＡ１６×１６は次のモードを含む。
【数５】
0005602710.tif 000006
【００１７】
従来のマクロブロック符号化処理に関し、従来の高速モード選択の導入により、モード決定のエラー表面が恐らく単調変化であることを考慮して、品質にほとんど影響を与えることなくモード決定の演算量を大幅に軽減することが可能であり、従って、まず特定のモードが調べられる場合には、最良のモードを発見することがより容易になるであろう。所与のモードに対するモード決定が行われない場合には、これは、本質的に、動き推定が実行されないことを意味する。後者は、高速動き推定アルゴリズムが使用された場合であっても、符号化において最も演算量が大きくなる部分となるであろう。より具体的には、このアプローチにおいて、まず、ＳＫＩＰモードおよび１６×１６モードが調べられた。これらのモードの歪み関係（即ち、Ｊ（ＳＫＩＰ）＜（１６×１６）および残差の利用可能性に従って、サーチを終了するかどうかに関するさらなる決定がなされていた。あるいは、Ｊ（８×８）およびＪ（４×４）がさらに計算された。Ｊ（１６×１６）、Ｊ（８×８）、およびＪ（４×４）の関係に基づき、どの残っているブロック・サイズをテストするべきかを判定するために、追加の決定が行われた。例えば、歪みが単調（即ち、Ｊ（１６×１６）＞Ｊ（８×８）＞Ｊ（４×４）またはＪ（１６×１６）＜Ｊ（８×８）＜Ｊ（４×４））であれば、どのパーティションを調べるべきかを簡単に判定することができる。最初のケースでは、例えば、小さなパーティション（８×４および４×８）のみがテストされ、２番目のケースでは、１６×８および８×１６のみが調べられる。歪みが単調でない場合には、想定可能な全てのモードがテストされる。
【００１８】
別の従来の高速モード決定の手法においては、歪み値（図１参照）および複数の異なるモード間の関係（図２参照）に基づいて追加の条件が導入され、品質により影響を与えることなく、より早くサーチを完了させることが可能である。
【００１９】
図１を参照すると、歪み値に基づく動きベクトルおよびモードの決定方法が概ね参照符号１００を用いて示されている。方法１００は、制御を機能ブロック１０４に受け渡す開始ブロック１０２を含む。機能ブロック１０４は、ＳＫＩＰモードおよび１６×１６モードをチェックし、制御を決定ブロック１０６に受け渡す。決定ブロック１０６は、ＳＫＩＰモードにおける歪み、Ｊ（ＳＫＩＰ）が、１６×１６モードにおける歪み、Ｊ（１６×１６）よりも小さいかどうか、さらに、１６×１６モードが残差を有するかどうかを判定する。ＳＫＩＰモードにおける歪みが１６×１６モードにおける歪みよりも小さくない場合、さらに／または、１６×１６モードが残差を有する場合には、制御が機能ブロック１０８に受け渡される。そうでない場合、ＳＫＩＰモードにおける歪みが１６×１６モードにおける歪みより小さく、１６×１６モードが残差を有さない場合には、制御が決定ブロック１２６に受け渡される。
【００２０】
機能ブロック１０８は、現在の（即ち、現在評価されている）８×８サブパーティションのための８×８モードをチェックし、制御を決定ブロック１１０および機能ブロック１１４に受け渡す。決定ブロック１１０は、８×８モードが現在の８×８のサブパーティションのための１６×１６モードと同一であるかどうかを判定する。８×８モードが当該サブパーティションのための１６×１６モードと同一の動き情報を有さない場合には、制御は機能ブロック１１２に受け渡される。そうでない場合、８×８モードが現在の８×８サブパーティションのための１６×１６モードと同じ動き情報を有する場合には、制御が機能ブロック１１４に受け渡される。
【００２１】
機能ブロック１１２は、１６×８および８×１６のサブパーティションをチェックし、制御を機能ブロック１１４に受け渡す。
【００２２】
機能ブロック１１４は、現在の４×４サブパーティションのために４×４モードをチェックし、制御を決定ブロック１１６および機能ブロック１２０に受け渡す。決定ブロック１１６は、４×４モードが現在の４×４サブパーティションのための８×８モードと同一の動き情報を有するかどうかを判定する。４×４モードが現在の４×４サブパーティションのための８×８モードと同一の動き情報を有さない場合には、制御が機能ブロック１１８に受け渡される。そうでない場合、４×４モードが現在の４×４サブパーティションのための８×８モードと同一の動き情報を有する場合には、制御が機能ブロック１２０に受け渡される。
【００２３】
機能ブロック１１８は、８×４および４×８のサブパーティションをチェックし、制御を機能ブロック１２０に受け渡す。
【００２４】
機能ブロック１２０は、各イントラ・モードをチェックし、制御を機能ブロック１２２に受け渡す。機能ブロック１２２は、評価された各モードの中から最良のモードを選択し、制御を終了ブロック１２４に受け渡す。終了ブロック１２４は、マクロブロック符号化を終了させる。
【００２５】
決定ブロック１２６は、ＳＫＩＰモードが現在の（即ち、現在評価されている）１６×１６のマクロブロック（ＭＢ）のための１６×１６モードと同一の動き情報を有するかどうかを判定する。ＳＫＩＰモードが現在の１６×１６のＭＢのための１６×１６モードと同一の動き情報を有さない場合には、制御が決定ブロック１０８に受け渡される。そうでない場合、ＳＫＩＰモードが現在の１６×１６ＭＢのための１６×１６モードと同一の動き情報を有する場合には、制御が機能ブロック１２０に受け渡される。
【００２６】
図２を参照すると、複数の異なるモードの間の関係に基づく動きベクトルおよびモードの決定方法が概ね参照符号２００を用いて示されている。方法２００は、制御を機能ブロック２０４に受け渡す開始ブロック２０２を含む。機能ブロック２０４は、ＳＫＩＰモードおよび１６×１６モードをチェックし、制御を決定ブロック２０６に受け渡す。決定ブロック２０６は、ＭＣ２＞Ｔ１であるかどうかを判定する。ここで、ＭＣ２＝ｍｉｎ（Ｊ（ＳＫＩＰ）、Ｊ（１６×１６））、即ち、ＳＫＩＰモードおよび１６×１６モードの間の最小の歪みであり、Ｔ１は、第１の閾値である。ＭＣ２≦Ｔ１である場合には、制御が決定ブロック２０８に受け渡される。そうでない場合、ＭＣ＝ｍｉｎ（Ｊ（ＳＫＩＰ）、Ｊ（１６×１６））＞Ｔ１である場合には、制御が機能ブロック２１０に受け渡される。
【００２７】
制御ブロック２０８は、ＭＣ２がＴ２（第２の閾値）よりも大きいかどうかを判定する。ＭＣ２がＴ２よりも大きくない場合には、制御が機能ブロック２１０に受け渡される。そうでない場合、ＭＣ２がＴ２よりも大きい場合には、制御が機能ブロック２１８に受け渡される。
【００２８】
機能ブロック２１０は、他の各インター・モードをチェックし、制御を機能ブロック２１２に受け渡す。機能ブロック２１２は、他のテストされていない各イントラ・モードをチェックし、制御を機能ブロック２１４に受け渡す。機能ブロック２１４は、評価された各モードの中から最良のモードを選択し、制御を終了ブロック２１６に受け渡す。終了ブロック２１６は、マクロブロック符号化を終了させる。
【００２９】
機能ブロック２１８は、イントラ（ＩＮＴＲＡ）４×４ＤＣをチェックし、制御を決定ブロック２２０に受け渡す。決定ブロック２２０は、Ｊ（ＩＮＴＲＡ４×４ＤＣ）がａ＊ＭＣ２＋ｂよりも小さいかどうかを判定する。ここで、ａおよびｂは定数である。Ｊ（ＩＮＴＲＡ４×４ＤＣ）がａ＊ＭＣ２＋ｂよりも小さくない場合には、制御が機能ブロック２１０および機能ブロック２１２に受け渡される。そうでない場合、Ｊ（ＩＮＴＲＡ４×４ＤＣ）がａ＊ＭＣ２＋ｂよりも小さい場合には、制御が機能ブロック２１２に受け渡される。
【００３０】
インター・モード決定は、動き推定、様々なブロック・サイズ、およびマルチプル・リファレンス・ピクチャの選択に関連する。イントラ・モード決定は、様々なブロック・タイプおよびマルチプル空間予測モードの選択に関連する。このため、インターフレームのためのモード決定は、符合器に大きな負荷を与えるものである。
【００３１】
従って、符号器に与える負荷を軽減するインターフレームのための高速モード決定を実行するための方法および装置を有することが望ましく、非常に有用である。
【発明の概要】
【００３２】
本発明は、従来技術の欠点や不利な点、および他の欠点や不利な点を解決するビデオ符号器用のＢフレームの高速モード決定のための方法および装置を提供する。
【００３３】
本発明の一態様によれば、複数のマクロブロックに分割可能なＢスライスのためのビデオ・データを符号化するビデオ符号器が提供される。ビデオ符号器は、Ｂスライス内の現在のマクロブロックを符号化する際に、ダイレクト・モードで符号化されるＢスライス内の隣接マクロブロックの数をカウントし、ダイレクト・モードで符号化される隣接マクロブロックの数が所定の閾値を超えている場合にダイレクト・モードまたは現在のマクロブロックのための１６×１６モードの一方のみをチェックすることによって、モード選択を実行する符号器を含む。
【００３４】
本発明の別の態様によれば、複数のマクロブロックに分割可能なＢスライスのためのビデオ・データを符号化するビデオ符号器が提供される。ビデオ符号器は、Ｂスライス内の現在のマクロブロックを符号化する際に、現在のマクロブロック内のブロック変換係数の数を使用して現在のマクロブロックの残差エネルギーを算出し、残差エネルギーの値を所定の閾値と比較し、残差エネルギーの値が所定の閾値よりも小さい場合にモード選択のためのインター・モードのみを考慮することによって、モード選択を実行する符号器を含む。
【００３５】
本発明のさらに別の態様によれば、複数のマクロブロックに分割可能なＢスライスのためのビデオ・データを符号化するビデオ符号器が提供される。ビデオ符号器は、Ｂスライス内の現在のマクロブロックを符号化する際に、複数の、マルチプル・ビデオ・シーケンスを用いて選定され（ｔｒａｉｎｅｄ）、量子化パラメータに依存するλＭＯＤＥに対して線形であるモデルに適した閾値を用いて、ダイレクト・モードでの符号化の場合に複数の選定された閾値に対してレート歪み（ＲＤ：Ｒａｔｅ-Ｄｉｓｔｏｒｔｉｏｎ）コストを比較して、マルチステージのモード選択を実行し、レート歪みコストに基づいて複数の異なるステージでモード選択を終了する符号器を含む。
【００３６】
本発明のさらに別の態様によれば、複数のマクロブロックに分割可能なＢスライスのためのビデオ・データを符号化するビデオ符号器が提供される。ビデオ符号器は、Ｂスライス内の現在のマクロブロックを符号化する際に、最初にリスト０およびリスト１のための単一の予測を実行することによって、モード選択を実行し、リスト０およびリスト１のために最良のモードの決定に基づいて現在のマクロブロックのための双予測モードをテストするかどうかを判定する符号器を含む。
【００３７】
本発明のさらに別の態様によれば、複数のマクロブロックに分割可能なＢスライスのためのビデオ・データを符号化するビデオ符号器が提供される。ビデオ符号器は、Ｂスライス内の現在のマクロブロックを符号化する際に、サブマクロブロックのモード選択のためのＤＩＲＥＣＴ８×８モードをテストすることのみによりモード選択を実行する符号器を含む。
【００３８】
本発明のこれらの態様、特徴および利点、また、その他の態様、特徴および利点は、添付図面を参照して以下の本発明の例示的な実施の形態の説明を読むことによって明らかになるであろう。
【００３９】
本発明は、例示的な図面に従って良好に理解できるであろう。
【図面の簡単な説明】
【００４０】
【図１】歪み値に基づく動きベクトルおよびモード決定のための方法のフロー図である。
【図２】複数の異なるモードの間の関係に基づく動きベクトルおよびモード決定のための方法のフロー図である。
【図３】本発明の原理に従ったビデオ符号器を示す図である。
【図４】本発明の原理に従って、隣接マクロブロックおよび残差のモード情報を使用した高速モード決定のための方法を示すフロー図である。
【図５】本発明の原理に従って、歪み情報を使用した高速モード決定のための方法を示すフロー図である。
【図６】本発明の原理に従って、リスト情報を使用した高速モード決定のための方法を示すフロー図である。
【発明を実施するための形態】
【００４１】
本発明は、符号器のための、Ｂフレームの高速モード決定のための方法および装置に関する。本発明により、符号化効率を維持しながらモード決定の演算量が軽減されるという利点が得られる。
【００４２】
この説明は、発明の原理を例示するものである。従って、当業者であれば、本明細書に明確に記載、図示されていなくとも、本発明の原理を実施する様々な構成を考案することが可能であり、このような構成の各々が本発明の精神および範囲に包含されることが理解できるであろう。
【００４３】
本明細書に記載された全ての例および条件付の文言は、本発明の原理を読者が理解するのを助けるための教示目的のものであり、発明者によって寄与された概念は、技術を発展させるものであり、このような具体的に記載された例や条件に限定されるように解釈されるべきではない。
【００４４】
また、本明細書における本発明の原理、態様、および、実施の形態についての全ての記載、さらに、その特定の例は、構造的、機能的な均等物を包含するように意図したものである。さらに、このような均等物は、現在公知の均等物だけでなく、将来において開発される均等物、即ち、構造に係らず、同一の機能を実行するように開発された全ての要素を包含するように意図されている。
【００４５】
従って、例えば、当業者であれば、本明細書において示されたブロック図は、本発明の原理を実施する回路を例示する概念図であることが理解できよう。同様に、フローチャート、フロー図、状態遷移図、擬似コードなどは、いずれも様々な処理を表す。これらの処理は、実質的にコンピュータによって読み取り可能なメディアにおいて表すことができ、コンピュータまたはプロセッサにより実行され、このようなコンピュータまたはプロセッサがはっきりと図示されているかどうかに係るものではない。
【００４６】
各図面において示される様々な要素の機能は、専用のハードウエアの使用により提供されてもよく、適切なソフトウエアと関連付けてソフトウエアを実行することが可能なハードウエアの使用によって提供されてもよい。機能が、プロセッサによって提供される場合にも、単一の専用プロセッサによって提供されてもよく、単一の共有プロセッサによって提供されてもよく、複数の別個のプロセッサによって提供されてもよく、幾つかのプロセッサが共有されていてもよい。さらに、用語「プロセッサ」または「コントローラ」を明示的に使用した場合であっても、ソフトウエアを実行することが可能なハードウエアのみを意味するように解釈されるべきではなく、限定するものではないが、ディジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）・ハードウエア、ソフトウエアを格納する読み出し専用メモリ（ＲＯＭ：ｒｅａｄ‐ｏｎｌｙ  ｍｅｍｏｒｙ）、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、および不揮発性の記憶装置を暗示的に含むことがある。
【００４７】
また、従来のおよび／または慣習的な他のハードウエアを含むこともある。同様に、図面に示されたどのスイッチも概念的なものに過ぎない。これらの機能はプログラム・ロジックの動作を介して、専用のロジックを介して、プログラム制御と専用のロジックとのインタラクションを介して、または、手動でも実行されることがある。文脈からより具体的に理解できるように、実施者により、特定の技術を選択可能である。
【００４８】
請求の範囲において、特定の機能を実施するための手段として表現されたいずれの要素も、この機能をどのような方法で実行するものも包含するように意図している。例えば、ａ）機能を実行する回路要素を組み合わせたもの、または、ｂ）いかなる形態のソフトウエア、つまり、ファームウエア、マイクロコード等を含むもの、機能を実施するためにソフトウエアを実行する適当な回路と組み合わせたものも包含する。このような請求の範囲によって定義される発明は、請求の範囲によって要求されているように、様々な記載された手段によって提供される機能が組み合わされ、まとめられるという事実に基づいたものである。従って、出願人は、このような機能を提供することが可能な手段はどのようなものであっても、本願において示されているものと均等であるとみなす。
【００４９】
本発明により、符号化効率を維持しながら、モード決定の演算量を軽減する符号器のためのＢフレーム（またはＢスライス）の高速モード決定のための方法および装置が提供されるという利点が得られる。
【００５０】
例えば、本発明の例示的な一実施の形態においては、前に符号化されたマクロブロックから得ることのできる情報、限定するものではないが、歪み、モードおよび残差（ｒｅｓｉｄｕｅ）を使用して現在のマクロブロックのためにどのモードをチェックすることが必要であるかを判定することにより、Ｂフレーム（またはＢスライス）のためのモード決定の演算量が軽減される。テストされる各モードの順序は、オプションとしては、ＤＩＲＥＣＴ、１６×１６、８×８、１６×８、８×１６、８×８サブマクロブロック・パーティション、およびイントラ（ＩＮＴＲＡ）の各モードである。
【００５１】
図３を参照すると、例示的なビデオ符号器が概ね参照符号３００によって示されている。符号器３００に対する入力は、加算接合部（ｓｕｍｍｉｎｇ  ｊｕｎｃｔｉｏｎ）３１０の非反転入力と信号通信するように結合されている。加算結合部３１０の出力はブロック変換器３２０と信号通信するように結合されている。変換器３２０は、量子化器３３０と信号通信するように結合されている。量子化器３３０の出力は、可変長符号器（ＶＬＣ：  ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｅｒ）３４０と信号通信するように結合され、ＶＬＣ３４０の出力は、符号器３００の外部的に利用可能な出力である。レート・コントローラ３７７の第１の入力は加算接合部３１０の出力と信号通信するように結合されている。レート・コントローラ３７７の第２の入力は、ＶＬＣ３４０の出力と信号通信するように結合されている。レート・コントローラ３７７の出力は、量子化器３３０の第２の入力と信号通信するように結合されている。
【００５２】
さらに、量子化器３３０の出力は、逆量子化器３５０と信号通信するように結合される。逆量子化器３５０は、逆ブロック変換器３６０と信号通信するように結合される。また、逆ブロック変換器３６０は、リファレンス・ピクチャ記憶装置３７０と信号通信するように結合される。リファレンス・ピクチャ記憶装置３７０の第１の出力は、動き推定器３８０の第１の入力と信号通信するように結合される。さらに、符号器３００への入力は、動き推定器３８０の第２の入力と信号通信するように結合される。動き推定器３８０の出力は、動き補償器３９０の第１の入力と信号通信するように結合される。リファレンス・ピクチャ記憶装置３７０の第２の出力は、動き補償器３９０の第２の入力と信号通信するように結合される。動き補償されたリファレンス・ピクチャを示す動き補償器３９０の出力は、加算結合部３１０の反転入力と信号通信するように結合される。
【００５３】
次に、本発明の原理に従った高速モード決定が施される現在のマクロブロックの隣接マクロブロックのためのモード情報を使用する場合に関して説明する。
【００５４】
Ｂフレームのために、全ての隣接マクロブロックがダイレクト・モードで符号化されている場合には、現在のマクロブロックは恐らくダイレクト・モードまたは１６×１６モードで符号化されている。このような実施態様を図４に示し、本明細書において以下に説明する。また、この方法は、Ｐフレームにも適用可能である。ＳＫＩＰモードで全ての隣接マクロブロックが符号化されると、Ｐフレームにおけるマクロブロックは、ＳＫＩＰモードおよび１６×１６モードをテストすることのみ必要とする。
【００５５】
上述のアプローチは、閾値Ｔｄｉｒｅｃｔを設定することによって、異なる符号化性能に適合するように、容易に変更することが可能である。この適合性を有するアプローチを実施するためには、ダイレクト・モードで符号化される隣接ブロックの数がカウントされ、ダイレクト・モードで符号化される隣接ブロックの数が閾値を超えている場合には、現在のマクロブロックのためにダイレクト・モードおよび１６×１６モードしかチェックされない。高速符号化が望ましい場合には、小さな閾値が設定される。また、損失の少ない符号器を設計する場合には、全ての利用可能な隣接ブロックの数に閾値が設定される。
【００５６】
次に、本発明の原理に従った高速モード決定のための残差情報を用いる場合に関して説明する。
【００５７】
ダイレクト・モードのパフォーマンスを測定するために残差エネルギーが使用される。残差エネルギーは、オリジナルの信号とリファレンス信号との間の差であり、ブロック変換係数の絶対値の和、または現在のマクロブロックにおけるブロック変換係数の数として単純に算出される。ダイレクト・モードがテストされた後、残差エネルギーが零であるか閾値Ｔｒｅｓｉｄｕｅよりも小さい場合には、このマクロブロックは、前のピクチャより良好に予測され、各ＩＮＴＲＡモードをチェックする必要はない。
【００５８】
図４を参照すると、隣接マクロブロックおよび残差エネルギーのモード情報を使用してモード決定を実行する方法が概ね参照符号４００によって示されている。
【００５９】
方法４００は、制御を機能ブロック４１０に受け渡す開始ブロック４０５を含む。
機能ブロック４１０は、ＤＩＲＥＴモードをチェックし、制御を機能ブロック４１５に受け渡す。機能ブロック４１５は１６×１６モードをチェックし、制御を決定ブロック４２０に受け渡す。決定ブロック４２０は、ダイレクト・モードで符号化された隣接ブロックの数がＴｄｉｒｅｃｔ以上であるかどうかを判定する。ダイレクト・モードで符号化された隣接ブロックの数がＴｄｉｒｅｃｔ以上でない場合には、制御が機能ブロック４２５に受け渡される。そうでない場合、ダイレクト・モードで符号化された隣接ブロックの数がＴｄｉｒｅｃｔ以上である場合には、制御が機能ブロック４４０に受け渡される。
【００６０】
機能ブロック４２５は、１６×８モード、８×１６モード、および８×８モードをチェックし、制御を決定ブロック４３０に受け渡す。決定ブロック４３０は、ダイレクト・モードの後の残差エネルギーがＴｒｅｓｉｄｕｅよりも小さいかどうかを判定する。ダイレクト・モードの後の残差エネルギーがＴｒｅｓｉｄｕｅよりも小さくない場合には、制御は機能ブロック４３５に受け渡される。しかしながら、ダイレクト・モードの後の残差エネルギーがＴｒｅｓｉｄｕｅよりも小さい場合には、制御が機能ブロック４４０に受け渡される。
【００６１】
機能ブロック４３５は各ＩＮＴＲＡモードをチェックし、制御を機能ブロック４４０に受け渡す。
【００６２】
機能ブロック４４０は、テストされる各モードの中から最良のモードを選択し、制御を終了ブロック４４５に受け渡す。
【００６３】
次に、本発明の原理に従った高速モード決定のために歪み情報を用いる場合に関して説明する。
【００６４】
なお、本明細書において、用語「エラー」および「レート歪みコスト」は同じ意味で使用され、文字「Ｊ」で始まるものによって表されることもある。文字Ｊの後の括弧内に対応するモードが示されている。
【００６５】
ダイレクト・モードがテストされた後のエラー、Ｊ（ダイレクト）は、現在のマクロブロックがダイレクト・モードを使用して前のピクチャから良好に予測されるかどうかを示すインジケータとして使用される。Ｊ（ダイレクト）が閾値ＴＢ１よりも小さい場合には、現在のマクロブロックはダイレクト・モードによって効率的に表される可能性が高いため、他のモードを調べる必要はない。そうでない場合、Ｊ（ダイレクト）がＴＢ２よりも小さい場合には、モード１６×１６がさらにテストされる。あるいは、Ｊ（ダイレクト）がＴＢ３よりも小さい場合には、モード１６×１６、モード１６×８、モード８×１６がテストされる。あるいは、Ｊ（ダイレクト）がＴＢ４よりも小さい場合には、モード１６×１６、モード１６×８、モード８×１６、およびモード８×８がテストされる。Ｊ（ダイレクト）がＴＢ４よりも大きい場合には、全てのモードがテストされる。これは図５に示されており、本明細書において以下に説明する。
【００６６】
閾値は、複数の異なるタイプのビデオ・コンテンツを現すマルチプル・ビデオ・シーケンスを用いることによって選定（ｔｒａｉｎ）される。全てのシーケンスが良好な符号化効率を維持することを保証するためには、最も厳密な閾値が選択される。異なる量子化パラメータでビデオ・シーケンスが符号化される際に閾値が変更される。例えば、より高い量子化パラメータ（ＱＰ）が使用される場合には、再構築されたマクロブロックとオリジナルのマクロブロックとの間の歪みが大きいため、閾値もまた、大きくするべきである。この理由から、閾値は、ＱＰに依存している。さらに、閾値は、λＭＯＤＥに対してほぼ線形であり、λＭＯＤＥはＱＰに依存していることが観察される。この線形性は、ＴＢｉ＝ａｉ＋ｂｉλＭＯＤＥ、ｉ＝１，２，３，４と記載される。
【００６７】
各閾値は、モード１６×１６およびモード８×８がテストされた後、Ｊ（１６×１６）およびＪ（８×８）にも適用される。さらに、｜Ｊ（ダイレクト）−Ｊ（１６×１６）｜および｜Ｊ（１６×１６）−Ｊ（８×８）｜など、異なるモード間の差の絶対値が考慮される。他の条件と共に、この差が非常に小さい場合には、幾らかのモードの検査がスキップしてもよい。例えば、｜Ｊ（ダイレクト）−Ｊ（１６×１６）｜、さらに、ダイレクト・モードおよび１６×１６モードの双方からの動き情報が同一である場合には、モード決定処理が終了し、ダイレクト・モードと１６×１６モードとから最良のモードが選択される。他方、｜Ｊ（１６×１６）−Ｊ（８×８）｜が小さい場合、１６×８モードおよび８×１６モードをスキップしてもよく、ダイレクト・モード（ＰスライスのためのＳＫＩＰモード）、１６×１６モード、および８×８モードのうちから最良のモードが選択される。
【００６８】
Ｂスライスは、複数の異なるタイプのインター・ピクチャ予測、リスト０、リスト１、双予測、およびダイレクト予測をサポートする。１つ以上のタイプの予測を減らすために、歪み情報を使用することもできる。例えば、リスト０またはリスト１による歪みが既に閾値Ｔｂｉ−ｐｒｅｄよりも小さい場合、これは、単方向予測が非常に良好に実施されることを意味し、双予測のためのテストをスキップし、モード決定処理を終了してもよい。さらに、リスト０およびリスト１の双方が調べられた後、リスト０およびリスト１の双方のために最良のマクロブロック・パーティションが得られる。パーティションが同一である場合には、このパーティション上で双予測が調べられる。そうでない場合には、このパーティション上で双予測がスキップされる。
【００６９】
幾つかの符号器がコンテンツ分析などの処理要素、または、トランスコーディング・アーキテクチャにおけるＭＰＥＧ２符合器をさらに含む場合があることを考慮すると、このような要素を利用可能である場合、最も符号化が困難なシーケンスに基づいて閾値を選択する代わりに、複数の異なるコンテンツ・テクスチャを有する複数の異なるシーケンスに閾値を適合させる。
【００７０】
図５を参照すると、歪み情報を用いてモード決定を実行する方法が概ね参照符号５００を用いて示されている。
【００７１】
方法５００は、制御を機能ブロック５１０に受け渡す開始ブロック５０５を含む。機能ブロック５１０は、「１６×１６ＤＩＲＥＣＴ」、Ｊ（ダイレクト）によってＲＤコストを算出し、制御を決定ブロック５１５に受け渡す。決定ブロック５１５は、Ｊ（ダイレクト）がＴＢ１よりも小さいかどうかを判定する。Ｊ（ダイレクト）がＴＢ１よりも小さくない場合には、制御が機能ブロック５２０に受け渡される。そうでない場合、Ｊ（ダイレクト）がＴＢ１よりも小さい場合には、制御が終了ブロック５６０に受け渡される。
【００７２】
機能ブロック５２０は１６×１６モードをチェックし、制御を決定ブロック５２５に受け渡す。決定ブロック５２５は、Ｊ（ダイレクト）がＴＢ２よりも小さいかどうかを判定する。Ｊ（ダイレクト）がＴＢ２よりも小さくない場合には、制御が機能ブロック５３０に受け渡される。そうでない場合、Ｊ（ダイレクト）がＴＢ２よりも小さい場合には、制御が終了ブロック５６０に受け渡される。
【００７３】
機能ブロック５３０は、１６×８モードおよび８×１６モードをチェックし、制御を決定ブロック５３５に受け渡す。決定ブロック５３５は、Ｊ（ダイレクト）がＴＢ３よりも小さいかどうかを判定する。Ｊ（ダイレクト）がＴＢ３よりも小さくない場合には、制御が機能ブロック５４０に受け渡される。そうでない場合、Ｊ（ダイレクト）がＴＢ３よりも小さい場合には、制御が終了ブロック５６０に受け渡される。
【００７４】
機能ブロック５４０は、８×８モードをチェックし、制御を決定ブロック５４５に受け渡す。決定ブロック５４５は、Ｊ（ダイレクト）がＴＢ４よりも小さいかどうかを判定する。Ｊ（ダイレクト）がＴＢ４よりも小さくない場合には、制御が機能ブロック５５０に受け渡される。そうでない場合、Ｊ（ダイレクト）がＴＢ４よりも小さい場合には、制御が終了ブロック５６０に受け渡される。
【００７５】
機能ブロック５５０は、各ＩＮＴＲＡモードをチェックし、制御を機能ブロック５５５に受け渡す。機能ブロック５５５は、各テスト・モードのうちから最良のモードを選択し、制御を終了ブロック５６０に受け渡す。
【００７６】
本発明の原理に従って、高速モード決定のための８×８モードの統計値を用いた場合に関する説明を行う。
【００７７】
Ｂスライス・マクロブロックの８×８のパーティションは、ダイレクト・モードで符号化することもができる。このモードは、ダイレクト８×８モードとも呼ばれる。統計値より、８×８モードでマクロブロックが符号化される可能性が非常に小さいことが観察され、８×８モードで符号化される場合、ダイレクト・モードで符号化が行われる可能性が大きい。従って、符号化効率が大きく損なわれることなく、全ての８×８パーティションをダイレクト・モードで符号化することができる。
【００７８】
図４および図５に関して本明細書中で説明した方法、さらに、従来のマクロブロック符号化処理に関して説明した方法や本明細書中で上述した歪み値および異なるモード間の関係に基づく追加的な条件を用いた別の従来のアプローチは別個に用いてもよいし、一緒に用いてもよいことが理解できよう。
【００７９】
図６を参照すると、リスト情報を用いた高速モード決定のための方法が概ね参照符号６００によって示されている。
【００８０】
開始ブロック６０２は、制御を機能ブロック６０５に受け渡す。機能ブロック６０５は、ダイレクト・モードをチェックし、制御を決定ブロック６１０に受け渡す。決定ブロック６１０は、Ｊ（ダイレクト）がＴ１よりも小さいかどうかを判定する。Ｊ（ダイレクト）がＴ１よりも小さくない場合には、制御を機能ブロック６１５および機能ブロック６２０に受け渡す。そうでない場合、Ｊ（ダイレクト）がＴ１よりも小さい場合には、制御が機能ブロック６５０に受け渡される。
【００８１】
機能ブロック６１５は、リスト０から最良のインター・モードｍ０を選択し、制御を決定ブロック６２５に受け渡す。機能ブロック６２０は、リスト１から最良のインター・モードｍ１を選択し、制御を決定ブロック６２５に受け渡す。
【００８２】
決定ブロック６２５は、インター・モードｍ０およびインター・モードｍ１が同じパーティションを有するかどうかを判定する。インター・モードｍ０がインター・モードｍ１と同じパーティションを有さない場合には、制御が機能ブロック６３０に受け渡される。そうでない場合、インター・モードｍ０がインター・モードｍ１と同じパーティションを有さない場合には、制御が機能ブロック６５５に受け渡される。
【００８３】
機能ブロック６３０は、ｍ０、ｍ１、およびｍ０１から最良のインター・モードを選択し、制御を機能ブロック６３５に受け渡す。
【００８４】
機能ブロック６３５は、イントラ・モードをチェックし、制御を機能ブロック６４０に受け渡す。機能ブロック６４０は、テストされた各モードから最良のモードを選択し、制御を終了ブロック６４５に受け渡す。
【００８５】
機能ブロック６５５は、双予測モードｍ０１がｍ０およびｍ１と同じパーティションを有するかをチェックし、制御を機能ブロック６６０に受け渡す。機能ブロックは、ｍ０、ｍ１、ｍ０１から最良のインター・モードを選択し、制御を機能ブロック６３５に受け渡す。
【００８６】
次に、本発明の多くの付随する利点／特徴のうちの幾つかについて説明する。例えば、１つの利点／特徴は、Ｂスライス内のマクロブロックを符号化する際に、ダイレクト・モードで符号化されるＢスライス内の隣接マクロブロックの数をカウントし、ダイレクト・モードとして符号化される隣接マクロブロックの数が所定の閾値を超えている場合にダイレクト・モードまたは現在のマクロブロックのための１６×１６モードの一方のみをチェックすることによって、モード選択を実行するビデオ符号器である。別の利点／特徴は、上述したビデオ符号器であり、このビデオ符号器において、考慮される隣接マクロブロックが左、左上、上および右上の隣接マクロブロックである。さらに別の利点／特徴は、上述したビデオ符号器であり、このビデオ符号器において、所定の閾値は、全ての隣接マクロブロックがダイレクト・モードで符号化されていなければならない。さらに別の利点／特徴は、上述したビデオ符号器であり、このビデオ符号器において、所定の閾値を超えていない場合にさらなるモード選択が実行される。また、別の利点／特徴は、Ｂスライス内のマクロブロックを符号化する際に、現在のマクロブロック内のブロック変換係数の数を使用して残差エネルギーを算出し、残差エネルギーの値を閾値と比較し、残差エネルギーの値が閾値よりも小さい場合にモード選択処理においてＩＮＴＲＡモードを考慮しないビデオ符合器である。さらに別の利点／特徴は、上述した残差エネルギーを使用してモード選択を実行するビデオ符号器であり、この符号器において、所定の閾値の値は零である。また、別の利点／特徴は、Ｂスライス内のマクロブロックを符号化する際に、マルチプル・ビデオ・シーケンスを用いて閾値であるＴＢ１、ＴＢ２、ＴＢ３、およびＴＢ４を選定し、これらの閾値ＴＢ１、ＴＢ２、ＴＢ３、およびＴＢ４を量子化パラメータ（ＱＰ）に依存するλＭＯＤＥに対して線形であるモデルに適合させ、ダイレクト・モードでの符号化の場合に各閾値に対してレート歪み（ＲＤ）コストを比較することによりマルチステージのモード選択を実行し、ＲＤコストに基づいて複数の異なるステージでモード選択を終了するビデオ符号器である。さらに、別の利点／特徴は、Ｂスライス内の現在のマクロブロックを符号化する際に、最初にリスト０およびリスト１のための単一の予測を実行することによりモード選択を実行するビデオ符号器であり、このビデオ符号器において、リスト０およびリスト１のために最良のモードの決定に現在のマクロブロックのための双予測モードをテストするかどうかの選択が依存する。さらにまた別の利点／特徴は、最初にリスト０およびリスト１のための単一予測を実施するビデオ符号器であり、このビデオ符号器において、リスト０およびリスト１のためのモード選択が同じパーティションを有する場合に、当該パーティション上で双予測モードがテストされ、そうでない場合には、双予測が実行されない。さらに、別の利点／特徴は、Ｂスライス内のマクロブロックを符号化する際に、サブマクロブロックのモード選択のためのダイレクト８×８モードをテストすることのみによりモード選択を実行するビデオ符号器である。
【００８７】
本発明のこれらの特徴および利点、また、その他の特徴および利点は、本明細書の開示内容に基づいて関連する技術分野における当業者であれば容易に確認することができるであろう。本発明の原理が、ハードウエア、ソフトウエア、ファームウエア、特定用途プロセッサ、またはこれらを組み合わせた様々な形態で実施可能であることが理解できよう。
【００８８】
最も好ましくは、本発明の原理は、ハードウエアとソフトウエアとを組み合わせることによって実行される。さらに、ソフトウエアは、プログラム記憶装置に具体的な形態に実装されたアプリケーション・プログラムとして実施されることが好ましい。アプリケーション・プログラムは、好ましいアーキテクチャーを有するマシンに対してアップロードされ、このマシンによって実行可能なものであってもよい。好ましくは、マシンは、１つ以上の中央処理装置（ＣＰＵ）、ランダム・アクセス・メモリ（ＲＡＭ）、入出力（Ｉ／Ｏ）インターフェースを備えるコンピュータ・プラットフォーム上で実施される。このコンピュータ・プラットフォームは、オペレーション・システムとマイクロインストラクション・コードをさらに備えるものであってもよい。本明細書において記載された様々な処理および機能は、マイクロインストラクション・コードの一部であってもよいし、アプリケーション・プログラムの一部であってもよいし、これらを組み合わせたものであってもよく、ＣＰＵによって実行されるものでもよい。さらに、コンピュータ・プラットフォームには、追加のデータ記憶装置や、印刷機等、周辺機器を接続するようにしてもよい。
【００８９】
さらに、添付図面に描かれた構成要素としてのシステム・コンポーネントおよび方法の幾つかは、好ましくはソフトウエアの形態で実施されるため、システム・コンポーネントまたは処理機能ブロック間の実際の接続は、本発明の実施の形態のプログラムの仕方によって異なるものであることが理解できよう。本明細書の開示内容に基づいて、関連する技術分野の当業者であれば、これらの本発明の実施例、構成例、また、同様の構成例、実施例を企図することも可能であろう。
【００９０】
添付図面を参照して例示的な実施の形態を説明したが、本発明はこのような具体的な実施の形態に限定されるものではなく、関連する技術分野の当業者であれば、このような実施の形態に対し、本発明の範囲または精神を逸脱することなく、様々な変形、改変が可能であることが理解できるであろう。このような変形、改変は全て、付随する請求の範囲に記載された本発明の範囲に含まれるように意図されたものである。
【図１】
0005602710.tif 000007
【図２】
0005602710.tif 000008
【図３】
0005602710.tif 000009
【図４】
0005602710.tif 000010
【図５】
0005602710.tif 000011
【図６】
0005602710.tif 000012