(57)【要約】      （修正有）【課題】リアルタイム複雑性適応及び注目画像領域コーディング付きビデオコーデックシステム。【解決手段】複数のビデオコーデックが同時に動作しているビデオ会議システムにおいて、例えば、会議に（システムに）入ったり出たりする参加者に起因して変化するネットワーク負荷条件に合わせて、各コーデックが適応するための方法を提供する。このタイプの動的環境でビデオをサポートするために、コーデックは複雑性及び歪みを制御できるように設計されており、複雑性、レート、及び歪み間でインテリジェントなトレードオフを行なうことができる。複雑性制御の場合、コーデックはランタイム時にシステムの使用可能な計算資源をモニタし、その符号化／復号化アルゴリズムを複雑性測定結果に最良のマッチングになるように適応させる。歪み制御の場合、ユーザは選ばれた注目画像領域内のビデオ品質を向上させることができる。【選択図】図１１
2005236990.tif 000002
【特許請求の範囲】
【請求項１】
コーデックが生成する符号化済みビット数をシステムのターゲットビットレートに適応させるための方法であって、
マクロブロックあたりのビットが所定数に満たないようなシステムターゲットビットレートであるかどうか判定し、
そうでなければ、
イントラ符号化済みフレームを送る周波数を第１所定周波数範囲に設定し、
第１所定因子に従ってイントラ符号化済みフレーム及びインター符号化済みフレーム間にビットを割り当て、
イントラ符号化済みフレーム及びインター符号化済みフレームのための量子化器のステップサイズを制御し、
そうならば、
所定の割合を越えるマクロブロックに動きがある場合（この場合には、イントラ符号化フレームの送信周波数は第１所定周波数範囲に設定される）を除いて、イントラ符号化済みフレームを送る周波数を第１所定周波数範囲よりも低い第２所定周波数範囲に設定し、
選ばれたイントラ符号化済みフレーム変換係数ブロックにおいて予め設定された数以上のジグザグインデックスをもつ変換係数をゼロに設定する、
ことからなる方法。
【請求項２】
選ばれたイントラ符号化済みフレーム変換係数ブロックは、（ｉ）所定数を越える値をもつＤＣ変換係数を有する各輝度ブロックと、（ｉｉ）選ばれた変換係数における完全絶対量子化されたレベルがそのブロックの変換係数全てにおける完全絶対量子化されたレベルの予め設定された分数に満たない各高度活動性ブロックとを含む、請求項１に記載の方法。
【請求項３】
量子化器のステップサイズの制御は、ある特定のタイプのフレームのための量子化器のステップサイズをその同じタイプの最後のフレームに使用された平均値に設定し、そのフレームの部分ビットレートをビットレート範囲と比較することによってそのタイプのカレントフレームの量子化器のステップサイズを調整することからなる、請求項１に記載の方法。
【請求項４】
フレームあたり使用された実際のビット数を維持し、そして累積ビット数が典型的なインター符号化済みフレームのビットバジェットを越える場合には、次のインター符号化済みフレームのエンコーディングをスキップすることからさらになる、請求項１に記載の方法。
【請求項５】
コーデックであって、
ｘ方向探索ウィンドウ、ｙ方向探索ウィンドウ、スキップモード保護、半画素サブサンプル因子、全画素サブサンプル因子、半画素使用、変換切り捨て、及び未符号化ビデオデータに適用される符号化アルゴリズムが動作可能な複数の異なった設定を指定するための動き推定方法を含む第１複数の可変パラメータを有するエンコーダと、
変換アルゴリズム、クロマスキップ、及び符号化済みビデオデータに適用される復号化アルゴリズムが動作可能な複数の異なった設定を指定するためのフレーム表示スキップを含む第２複数の可変パラメータを有するデコーダとからなり、
コーデックは、動作時に、符号化アルゴリズム及び復号化アルゴリズムのうちの少なくとも一方がランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている、コーデック。
【請求項６】
符号化アルゴリズムが動作可能な複数の異なった設定は９である、請求項５に記載のコーデック。
【請求項７】
復号化アルゴリズムが動作可能な複数の異なった設定は５である、請求項５に記載のコーデック。
【請求項８】
エンコーダであって、
ｘ方向探索ウィンドウ、ｙ方向探索ウィンドウ、スキップモード保護、半画素サブサンプル因子、全画素サブサンプル因子、半画素使用、変換切り捨て、および未符号化ビデオデータに適用される符号化アルゴリズムが動作可能な複数の異なった設定を指定するための動き推定方法を含む複数の可変パラメータを有し、
エンコーダは、動作時に、その符号化アルゴリズムがランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている、エンコーダ。
【請求項９】
デコーダであって、
ＤＣＴアルゴリズム、クロマスキップ、及び符号化済みビデオデータに適用される復号化アルゴリズムが動作可能な複数の異なった設定を指定するためのフレーム表示スキップを含む複数の可変パラメータを有するデコーダからなり、
デコーダは、動作時に、その復号化アルゴリズムがランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている、デコーダ。
【請求項１０】
ビデオ会議システムであって、
システムの計算資源を共有するように構成された複数のコーデックを備え、各コーデックは、
ｘ方向探索ウィンドウ、ｙ方向探索ウィンドウ、スキップモード保護、半画素サブサンプル因子、全画素サブサンプル因子、半画素使用、変換切り捨て、および未符号化ビデオデータに適用される符号化アルゴリズムが動作可能な複数の異なった設定を指定するための動き推定方法を含む関連付けられたパラメータ集合を有するエンコーダと、
ＤＣＴアルゴリズム、クロマスキップ、及び符号化済みビデオデータに適用される復号化アルゴリズムが動作可能な複数の異なった設定を指定するためのフレーム表示スキップを含む関連付けられたパラメータ集合を有するデコーダとからなり、
コーデックは各々、動作時に、そのアルゴリズムがランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている、ビデオ会議システム。
【請求項１１】
複数のクライアントと少なくとも一つのサーバとからなる構成において、あるデバイスは配信対象のビデオの中に注目画像領域が識別されているある特定のクライアントに応答するように構成されており、このデバイスは、
注目画像領域内のコーディングビデオデータにより多くのビットを割り当てる一方、注目画像領域外のビデオデータのための量子化器のステップサイズを注目画像領域の中心からの距離が増すにつれて増大する値に設定することによって注目画像領域外のコーディングビデオデータにより少ないビットを割り当てるように構成された資源割り当てモジュールと、
注目画像領域外のビデオデータを処理する前に注目画像領域ビデオデータを処理するように構成されたスケーラブル複雑性モジュールと、
そのクライアントのためのビデオをそのクライアントの表示プロパティに合わせてトランスコーディングするように構成されたトランスコーディングモジュールとからなる、構成。
【請求項１２】
デバイスはさらに、注目画像領域データを先頭に配置することによって、または注目画像領域に順方向エラー修正を加えることによって、特定クライアントへの配信対象ビデオを表わすビットストリームの順序を並べ替えるように構成されている、請求項１１に記載の構成。
【請求項１３】
特定クライアントのための注目画像領域は特定クライアントのユーザが定義する一つ以上の注目画像領域からなる、請求項１１に記載の構成。
【請求項１４】
特定クライアントのユーザは、一つ以上の注目画像領域のプロパティと共に要求をバックチャネルでサーバに送ることによって、一つ以上の注目画像領域を特定する、請求項１３に記載の構成。
【請求項１５】
デバイスはサーバに組み込まれ、特定クライアントに仕える、請求項１１に記載の構成。
【請求項１６】
コーデックが生成する符号化済みビットの数をシステムのターゲットビットレートに適応させるようにコーデックに指図するための命令プログラムを実装している機械可読媒体であって、命令プログラムは、
（ａ）マクロブロックあたりのビットが所定数に満たないようなシステムターゲットビットレートであるかどうか判定するための命令と、
（ｂ）イントラ符号化済みフレームを送る周波数を第１所定周波数範囲に設定するための命令と、
（ｃ）第１所定因子に従ってイントラ符号化済みフレームとインター符号化済みフレーム間にビットを割り当てるための命令と、
（ｄ）イントラ符号化済みフレーム及びインター符号化済みフレームのための量子化器のステップサイズを制御するための命令と、
（ｅ）所定の割合を越えるマクロブロックに動きがある場合（この場合には、イントラ符号化済みフレームの送信周波数が第１所定周波数範囲に設定される）を除いて、インフラ符号化済みフレームを送る周波数を第１所定周波数範囲よりも低い第２所定周波数範囲に設定するための命令と、
（ｆ）選ばれたイントラ符号化済みフレーム変換係数ブロックにおいて予め設定された数以上のジグザグインデックスをもつ変換係数をゼロに設定するための命令とからなり、
命令（ｂ）、（ｃ）、（ｄ）は、マクロブロックあたりのビット数が少なくとも所定数に劣らないようなシステムターゲットビットレートであると判定された場合に限り実行され、
命令（ｅ）及び（ｆ）は、マクロブロックあたりのビット数が所定数に満たないようなシステムターゲットビットレートであると判定された場合に限り実行される、機械可読媒体。
【請求項１７】
選ばれたイントラ符号化済みフレーム変換係数ブロックは、（ｉ）所定数を越える値をもつＤＣ変換係数を有する各輝度ブロックと、（ｉｉ）そのブロックにおいて選ばれた変換係数における完全絶対量子化されたレベルが変換係数全てにおける完全絶対量子化されたレベルの予め設定された分数に満たない高度活動性ブロックとを含む、請求項１６に記載の機械可読媒体。
【請求項１８】
命令（ｄ）は、ある特定のタイプのフレームのための量子化器のステップサイズをその同じタイプの最後のフレームに使用された平均値に設定し、そのフレームの部分ビットレートをビットレート範囲と比較することによってそのタイプのカレントフレームのための量子化器のステップサイズを調整することからなる、請求項１６に記載の機械可読媒体。
【請求項１９】
（ｇ）フレームあたり使用された実際のビット数を維持し、もし累積ビット数が典型的なインター符号化済みフレームのビットバジェットを越えていれば、次のインター符号化済みフレームのエンコーディングをスキップするための命令、
をさらに有する、請求項１６に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオ符号化及び復号化の技法に関する。より具体的には、符号化されたビットの数をシステムターゲットビットレートに適応させ、ランタイム時に実行された複雑性測定に応じて使用可能な計算資源を適応させ、及び／又はスケーラブルな計算複雑性及びトランスコーディングを含んだ注目画像領域コーディングスキームを用いて符号化プロセス時に一つ以上の選択された注目画像領域により多くの資源を集中させることができるコーデック（エンコーダ／デコーダ）アルゴリズムに関する発明である。
【背景技術】
【０００２】
２つのサイト間で映像及び音声のリアルタイム伝送を提供するためのツールとして、ビデオ会議が現代のビジネスの世界で広く使用され、生活の他の局面でも普及してきている。システムが採用されている環境いかんによってはそうした伝送にグラフィックスやその他のデータが添付されることがある。専用の環境で時には一方向の同報通信が使用されることがあるけれども、ほとんどのビデオ会議は双方向の対話型のやりとりを伴う。総体的なビデオ会議の品質は、データキャプチャ及び表示装置の品質、使用バンド幅の量、ビデオ会議システムの基本コンポーネントであるコーデック（コーダ／デコーダ）の品質及び機能など、多数の因子によって決まる。
【０００３】
コーデックにはプロセッサが映像／画像及び音声データを管理しやすいようにそうしたデータを圧縮及び解凍するのに使用されるアルゴリズムが含まれている。コーデックはフレームレート及びサイズといったビデオ設定境並びにビット品質（bits of quality）といったオーディオ設定を定義する。ほとんどのコーデックがレート制御しかできない。すなわち、そうしたシステムは使用可能なバンド幅に適応可能である。しかしながら、複数のコーデックが共有の計算資源を使い果たすシステム（ビデオ会議サーバなど）の場合、コーデックの複雑性を適応修正できることが非常に重要である。複雑性を指定するためのパラメータを有するコーデックも中にはあるが、アルゴリズム設定の中に複雑性パラメータがグループ化されているコーデックはない。さらに、従来からのコーデックはランタイム時に複雑性を測定しないし、それに応じて自動的にアルゴリズム設定を変えることはしない。
【０００４】
コーデックによっては注目画像領域（ＲＯＩ）コーディングを含んでいるものがある。ＲＯＩコーディングにおいては、選択された注目画像領域がフレームの残りの部分よりも多くのビットでコーディングされる。そうしたＲＯＩスキームでは普通はＲＯＩが比較的にハイレベルの品質になる一方、画像の残りの部分は低品質レベルになるけれども、そうしたＲＯＩスキームはスケーラブルな計算複雑性も、非ＲＯＩのグレーデッド（graded）コーディングを可能にするトランスコーディングも提供しない。
【０００５】
【特許文献１】米国特許第6519662号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的はこれらの問題を克服することである。
【０００７】
本発明の別の目的は、ランタイムに実行された実際の複雑性測定に応じて使用可能な計算資源に合わせて動作設定を適応させるように構成されていて、複数のビデオコーデックがシステムの使用可能な資源を共用してリアルタイムで同時に動作しなければならないシステムの中に共存可能なビデオコーデックの数を増やすことのできるコーデック（エンコーダ／デコーダ）を提供することである。
【０００８】
本発明の更なる目的は改善されたＲＯＩコーディングスキームを提供することである。
【課題を解決するための手段】
【０００９】
一つの態様において、発明は、コーデックが生成する符号化されたビットの数をシステムターゲットビットレートに合うように適応させるための方法を含んでいる。そうした方法は、マクロブロックあたりのビットが所定数に満たないようなシステムターゲットビットレートであるかどうか判定することを有する。そうでなければ、この方法ではさらに、イントラ符号化済みフレーム（intra-coded frames）を送る周波数を第１所定周波数範囲に設定し、第１所定因子に従ってイントラ符号化済みフレームおよびインター符号化済みフレーム（inter-coded frames）間にビットを割り当て、イントラ符号化済みフレーム及びインター符号化済みフレームのための量子化器のステップサイズを制御する。そうならば、この方法ではさらに、所定の割合を越えるマクロブロックに動きがある場合（この場合、イントラ符号化済みフレームの送信周波数は第１所定周波数範囲に設定される）を除いて、イントラ符号化済みフレームを送る周波数を第１所定周波数範囲よりも低い第２所定周波数範囲に設定し、そして選ばれたイントラ符号化済みフレーム変換係数ブロックにおいて予め設定された数以上のジグザグインデックス（zig-zag index）をもつ変換係数をゼロに設定する。
【００１０】
選ばれたイントラ符号化済みフレーム変換係数ブロックは、（ｉ）所定数を越える値をもつＤＣ変換係数を有する各輝度（luminance）ブロックと、（ｉｉ）選ばれた変換係数における完全絶対量子化されたレベル（total absolute quantized level）がそのブロック内の全変換係数における完全絶対量子化されたレベルの予め設定された分数（preset fraction）に満たない各高度活動性（high-activity）ブロックを含んでいるのが好ましい。
【００１１】
量子化器のステップサイズの制御は、ある特定のタイプのフレームのための量子化器のステップサイズをその同じタイプの最後のフレームに使用された平均値に設定し、そのフレームの部分ビットレートをビットレート範囲と比較してそのタイプのカレントフレームのための量子化器のステップサイズを調整することからなるのが好ましい。
【００１２】
この方法ではまた、フレームあたり使用された実際のビット数を維持し、もし累積ビット数が典型的なインター符号化済みフレームのビットバジェットを超える場合には、次のインター符号化済みフレームのエンコーディングをスキップすることができる。
【００１３】
発明の別の態様によれば、エンコーダとデコーダとからなるコーデックを提供する。エンコーダは第１複数の可変パラメータを含んでおり、そうしたパラメータにはｘ方向探索ウィンドウ（x-search window）、ｙ方向探索ウィンドウ（y-search window）、スキップモード保護、半画素サブサンプル因子（half-pel subsample factor）、全画素サブサンプル因子（full-pixel subsample factor）、半画素使用（use half-pel）、変換切り捨て、及び未符号化ビデオデータに適用されるコード化アルゴリズムが動作可能な複数の異なった設定を指定するための動き推定方法が含まれる。デコーダは第２複数の可変パラメータを含んでおり、そうしたパラメータには変換アルゴリズム、クロマスキップ（chroma skipping）、及び符号化されたビデオデータに適用される復号化アルゴリズムが動作可能な複数の異なった設定を指定するためのフレーム表示スキップが含まれる。このコーデックは、動作時、少なくとも符号化アルゴリズム及び復号化アルゴリズムのうちの一方が、ランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている。
【００１４】
好適な実施例において、符号化アルゴリズムが動作可能な複数の異なった設定は９で、復号化アルゴリズムが動作可能な設定は５である。
【００１５】
個々のエンコーダ及びデコーダモジュールも提供している。エンコーダは先に説明した複数の可変パラメータを有し、動作時に、その符号化アルゴリズムがランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている。デコーダは先に説明した複数の可変パラメータを有し、動作時に、その復号化アルゴリズムがランタイム時に実行された実際の複雑性測定に応じて使用可能な計算資源に合わせてその動作設定を動的に変えられるように構成されている。
【００１６】
別の態様において、発明はビデオ会議システムを伴い、システムの計算資源を共有するように構成された複数のコーデックを備える。各コーデックは上述のエンコーダ及びデコーダを有する。コーデックは各々が、使用中のそのアルゴリズムがランタイム時に実行された実際の複雑性測定に応じてシステムの使用可能な計算資源に合わせて動作時にその動作設定を動的に適応させるように構成されている。
【００１７】
別の態様によれば、発明は、複数のクライアントと少なくとも一つのサーバとを備える構成（arrangement）に関するものである。そうした構成には、配信対象の映像の中に注目画像領域が識別されている或る特定のクライアントに応答するように構成されたデバイスがある。このデバイスをサーバに組み込み、そのクライアントに仕えるように割り当てることもできる。このデバイスは、注目画像領域内の映像データのコーディングにより多くのビットを割り当てる一方、注目画像領域外のビデオデータのための量子化器のステップサイズを注目画像領域の中心からの距離が増すにつれて増大する値に設定することによって注目画像領域外の映像データのコーディングにより少ないビットを割り当てるように構成された資源配分モジュールと、注目画像領域外のビデオデータを処理する前に注目画像領域の映像データを処理するように構成されたスケーラブル複雑性モジュールと、そのクライアントのための映像をそのクライアントの表示プロパティに合わせてトランスコーディングするように構成されたトランスコーディングモジュールとを備えている。
【００１８】
そうした構成において、デバイスはさらに、注目領域画像データを先頭に配置する又は注目画像領域に順方向エラー修正を加えることによって、特定のクライアントに配信対象の映像を表わすビットストリームの順序を並べ替えるように構成されているのが好ましい。
【００１９】
そうした構成において、ある特定のクライアントのための注目画像領域はその特定クライアントのユーザが定義できる一つ以上の注目画像領域を含んでいて構わない。
【００２０】
そうした構成において、バックチャネルでサーバに一つ以上の注目領域のプロパティと共に要求を送ることによって、特定クライアントのユーザは一つ以上の注目画像領域を特定するのが好ましい。
【００２１】
発明の別の態様において、コーデックが生成する符号化されたビット数をシステムのターゲットビットレートに合うように適応させるための方法は機械可読媒体上に命令プログラムとして実施される。この命令は、（ａ）マクロブロックあたりのビットが所定数に満たないようなシステムターゲットビットレートであるかどうか判定、（ｂ）イントラ符号化済みフレームを送る周波数を第１所定周波数範囲に設定、（ｃ）第１所定因子にしたがってイントラ符号化済みフレーム及びインター符号化済みフレーム間にビットを割り当て、（ｄ）イントラ符号化済みフレームとインター符号化済みフレームのための量子化器のステップサイズを制御、（ｅ）所定の割合を越えるマクロブロックに動きがある場合（この場合、イントラ符号化済みフレームの送信周波数は第１所定周波数範囲に設定される）を除いて、イントラ符号化済みフレームを送る周波数を第１所定周波数範囲よりも低い第２所定周波数範囲に設定、及び（ｆ）選ばれたイントラ符号化済みフレーム変換係数ブロックにおける予め設定された数以上のジグザグインデックスをもつ変換係数をゼロに設定するための命令を含んでいる。命令（ｂ）、（ｃ）、（ｄ）はマクロビットあたりのビットが少なくとも所定数に劣らないようなシステムターゲットビットレートであると判定された場合に限って実行されるのに対し、命令（ｅ）及び（ｆ）はマクロブロックあたりのビットが所定数に満たないようなシステムターゲットビットレートであると判定された場合に限り実行される。
【００２２】
この態様において、方法の態様と同様に、選ばれたイントラ符号化済みフレーム変換係数ブロックは、（ｉ）所定数を越える値をもつＤＣ変換係数を有する各輝度ブロックと、（ｉｉ）選ばれた変換係数における完全絶対量子化されたレベルがそのブロックの変換係数の全てにおける完全絶対量子化されたレベルの予め設定された分数に満たない高度活動性ブロックを含んでいるのが好ましい。
【００２３】
命令（ｄ）は、ある特定のタイプのフレームのための量子化器のステップサイズをその同じタイプの最後のフレームに使用された平均値に設定し、そのフレームの部分ビットレートをビットレート範囲と比較してそのタイプのカレントフレームのための量子化器のステップサイズを調整することからなるのが好ましい。
【００２４】
命令プログラムはさらに、フレームあたり使用された実際のビット数を維持し、もし累積ビット数が典型的なインター符号化済みフレームにビットバジェットを超える場合には、次のインター符号化済みフレームのエンコーディングをスキップするための命令（ｇ）を有するのが好ましい。
【００２５】
添付の図面と共に以下に述べる説明及び請求項を考慮することにより発明をよりよく理解できると共に他の目的及び成果が明らかになるし、理解できるようになる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施形態を図面に基づいて説明する。
【実施例１】
【００２７】
発明の態様はビデオエンコーダ／デコーダ（コーデック）を伴い、コーデックはそのアルゴリズムを動的に適応させるように構成されており、様々なプラットフォームのためのオフラインのラインテーブルではなく、ランタイム時に実行された実際の複雑性測定に応じて使用可能なネットワーク及び計算資源に合わせて動作設定を自動的に変えるように構成されている。
【００２８】
この態様によれば、符号化アルゴリズム及び復号化アルゴリズムの様々なパラメータが設定の順序付きリストに編成されている。オフライン設計段階で、各設定の計算要件及び映像品質を測定する。設定を次に、リストの最上位の設定よりも最下位の設定のほうが必要とする計算が少なくなるように順序付けてリストにする。エンコーダの場合、動き探索ウィンドウサイズ及び絶対差分和測定といったアルゴリズム用パラメータ並びに動き推定及び半画素微細化のためのアルゴリズムの選択が設定によって制御される。デコーダの場合、逆離散コサイン変換、クロマスキップ、フレーム表示スキップといったアルゴリズムのためのパラメータが設定によって制御される。
【００２９】
ランタイム動作時、本発明のコーデックはエンコーディング（又はデコーディング）設定が前のフレームに使った実時間を測定する。この値から、重み付き平均タイム値を計算し、ターゲット範囲と比較する。重み付き平均値がターゲット値の上限よりも大きければアルゴリズム設定をダウングレードし、重み付き平均値がターゲット値の下限よりも小さければアルゴリズム設定をアップグレードする。この発明の手法は、それゆえに、使用可能な計算資源に合わせてエンコーディング（又はデコーディング）アルゴリズムの動作設定を動的に適応させる。
【００３０】
本発明のコーデックは注目画像領域（ＲＯＩ）コーディングスキームもサポートしている。ユーザが手動で映像の中のＲＯＩを指定することができる、もしくはシステムが自動的に識別することもできる。そうしたＲＯＩ境界があるとして、コーデックはＲＯＩにより多くのビットを割り当てることができるので、低ビットレートで必要な領域で映像品質が良くなる。コーデックはＲＯＩに順方向エラー修正（forward error correction）を提供することができるので、パケットネットワークのエラー保護が向上する。さらに、コーデックはエンコーディングパイプラインでＲＯＩを最初に処理できるので、関連付けられたビデオサーバに１レベルの計算スケーラビリティを追加することになる。
【００３１】
発明の実施例に基づくコーデックには図１（ａ）に示したエンコーダ１１及び図１（ｂ）に示したデコーダ１２が含まれている。エンコーダ１１は入ってくる信号をデジタル化及び圧縮し、そうした信号を多重化し、組合せ信号（例えば、ベースバンドデジタル信号）をシステム内の他のコーデックに伝送するためにネットワークに引き渡す。デコーダ１２は同様に符号化された信号をネットワークから受け取り、その受け取った信号を逆多重化し、映像、音声及びその他のデータを解凍して、アナログ映像及び音声出力並びに任意の他の受信データ用出力を関連付けられたデバイスに提供する。
【００３２】
図１（ａ）に示すように、映像データに関して言えば、エンコーダ１１は画素のブロック（ＹＵＶ色空間にあるかもしれない）で表わされたカレントビデオフレームを受け取る。そのフレームを動きベクトルが生成される動き推定（ＭＥ）モジュールに送ると共に、カレントフレームの中のブロックを予測し、予測エラーを生成するために前のフレームの最良のマッチングブロックとカレントフレームにおける符号化対象のブロックとの差を計算する演算器に送る。予測エラーは動きベクトルと共に離散コサイン変換（ＤＣＴ）モジュールに送られ、そこでデータがＤＣＴ係数ブロックに変換される。これらの係数は量子化（Ｑ）モジュールにおいて量子化される。ランレングスエンコーダ（ＲＬＥ）及び可変長エンコーダ（ＶＬＣ）が伝送のためにデータを符号化する。
【００３３】
動き補償ループはＱモジュールから分岐している。予測エラー及び動きベクトルの量子化された係数は逆量子化（ＤＱ）モジュールにおいて逆量子化され、ＩＤＣＴモジュールにおいて逆ＤＣＴ操作が施される。その結果は前のフレームの動き補償されたバージョンと組み合わされ、単一フレームバッファメモリ（ＭＥＭ）に格納される。ＭＥＭに格納された結果及び動き推定（ＭＥ）モジュールに入っている未処理のカレントフレームから動きベクトルが生成される。動きベクトルは動き補償（ＭＣ）モジュールに供給され、そこで前のフレームの最良マッチングブロックが生成される。
【００３４】
デコーダ１２は基本的にエンコーダ１１とは逆の操作をする。図１（ｂ）に表示されているように、デコーダ１２は、ＶＬＤモジュール及びＲＬＤモジュールにおいてそれぞれ可変長復号化操作及びランレングス復号化操作が適用されるビットストリーム（H.263準拠しているのが好ましい）を受け取る。結果として生じるデータはＤＱモジュールにおいて逆量子化され、その結果にＩＤＣＴ操作を行なって画素表現を回復する。ＶＬＤモジュールはカレントフレームの動きベクトルも生成し、その結果はＭＣモジュールに供給される。ＭＣモジュールはそのフレームとメモリ（ＭＥＭ）に入っているその前のフレームとを取り、動き補償ベクトルを生成する。その動き補償されたベクトルはＩＤＣＴモジュールから回復された画素表現と加算されてカレントフレームが生まれる。
【００３５】
模式的ビデオ交換システム２１におけるコーデック２２間のデータの流れを概略的に図２に示した。図解したこのシステムは２ヶ所のサイトしかないが、これは単なる例にしかすぎない。普通そうであるが、システムの使用可能な資源いかんにより、システムにはさらにサイトがある。コーデック２２ａ／２２ｂは各サイトに導入され、普通はクライアントデバイスの中にインストールされる。クライアントデバイスはクライアントがシステム内の他のクライアントデバイスにメディアを送り、及び／又は他のクライアントデバイスからメディアを受け取ることを可能にする。各コーデック２２はネットワーク２３でシステム内の他のコーデックと通信している。
【００３６】
ネットワークは標準的ビデオ会議ネットワークでも、或いは図３に表示されているようなメディアハブ３３でも構わない。メディアハブ３３は、総合メディア交換（ＩＭＸ：integrated media exchange）システム３１、例えば、大規模ビデオ会議システム内の様々なクライアントデバイス間にシームレス通信を提供するサーバとしての役割を果たす。そうしたシステム３１は、メディアトランスポート、メディア管理、メディア分析の３つの主要なコンポーネントを備えている。
【００３７】
ＩＭＸシステムのリアルタイムコンポーネントはメディアトランスポートである。メディアトランスポートは概して、集合的に参照番号３２で識別した複数のクライアントと、会議セッション時にクライアント３２と相互接続しているサーバ３３とからなる。サーバ３３は、例えば、会議サーバなど分岐制御装置（ＭＣＵ）であるのが好ましい。サーバの役割はＩＭＸシステムのリアルタイムな局面を容易にすることである。サーバ３３は音声データ及び映像データの交換をサポートし、さらにクライアントによっては、その他のデータもサポートしている。各ＩＭＸクライアント３２はリアルタイム会議サーバ３３への接続に使われるデバイス認識エンドポイント（device aware endpoint）である。
【００３８】
ＩＭＸクライアントデバイス３２は、固定電話、携帯電話、デジタルプロジェクタ、デジタルカメラ、パーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、多機能プリンタなどで構わない。システムがサポートしている環境いかんによっては、ある特定のサイトに他のデバイスを用意することもできる。例えば、システムがライブビデオ会議に対応できるとしたら、サイトごとにそのサイトにいる参加者が他のクライアントを会う及び他の参加者と通信することを可能にするしかるべきデバイス（すでにクライアントデバイスに含まれていなければ）があってもいい。そうした他のデバイス（未表示）としては、カメラ、マイク、モニタ、スピーカーなどがある。
【００３９】
コーデック２２はＩＭＸメディアトランスポートコンポーネントの過酷なリアルタイム処理要件を考慮して設計されている。コーデック２２は、指定されたバンド幅の範囲内（例えば、１００ｋｂｐｓから１００Ｍｂｐｓ）で、高性能、効率性、メディア品質を提供すると共に、様々なクライアントデバイスとの互換性を提供するように設計されている。したがって、コーデック２２はその性能を、図４に示すように、デバイス機能の測定、パケット損失、ＣＰＵパワー、ネットワークバンド幅、ユーザ数、画像のプロパティなど、システムのリアルタイムステータスに適応させるように構成されている。特に、コーデック２２は、効率的なレート制御、複雑性適応、注目画像領域サポート、エラー隠し、H.263標準からの拡張機能を有する設計になっている。
【００４０】
コーデック２２は、低ビットレート通信の映像標準を定義するH.263標準をサポートしている。ソース符号化アルゴリズムは、時間的冗長性を除去するためのハイブリッドなピクチャ間予測（inter-picture prediction）と残る空間的冗長性を除去するための変換コーディングとに基づいている。ソースエンコーダ１１は、サブＱＣＩＦ、ＱＣＩＦ、ＣＩＦ、４ＣＩＦ、及び１６ＣＩＦの５つの標準化されたフォーマットをサポートすると共に、ユーザが定義するカスタムフォーマットもサポートする。デコーダ１２は動き補償機能を有すると共に半画素補間をサポートしている。これらの基本的なビデオアルゴリズムに加えて、H.263標準は１６の交渉可能なコーディングオプションを定義する。H.263標準の拡張コーディングオプションを以下に説明する。
【００４１】
H.263標準は様々なオプションのモードをサポートしている。開発支援のために、H.263標準はこれらのモードを好ましいレベルに編成している。モードを、主観的品質の向上、遅延に対する影響、計算複雑性に対する影響という性能関連の課題に基づいて、このレベル構造になっている。レベル１は次のモード：アドバンストイントラコーディング（advanced intra coding）、デブロッキングフィルタ、全フレームフリーズ、及び変形量子化（modified quantization）を含む。レベル２は次のモード：無制限動きベクトル（unrestricted motion vector）、スライス構造モード、及び参照画像リサンプリングを含む。レベル３は次のモード：アドバンスト予測、ＰＢフレーム改善、独立セグメントデコーディング、交互インターＶＬＣ（alternate Inter VLC）を含む。
【００４２】
好適な実施例において、本発明のビデオコーデックは、アドバンストイントラコーディング、デブロッキングフィルタ、全フレームフリーズ、及び変形量子化を含むレベル１の全てのモードを組み込み、レベル２では一つのモードだけ、つまり、無制限動きベクトルモードを組み込んでいる。ビデオ会議システムの場合、これらの選ばれたモードは最小量の遅延及び計算オーバヘッドでビデオ品質を向上させる大きな潜在能力をもっている。表１は、これらのモードは独立ではなく、モード間でコーディング要素を共有していることを示している。特に、無制限動きベクトル、アドバンスト予測モード、及びデブロッキングフィルタは次の５つのコーディング要素：画像境界線を越えた動きベクトル、動きベクトル範囲の拡張、マクロブロックあたり４つの動きベクトル、輝度のオーバラップ動き補償、及びデブロッキングエッジフィルタを共有している。
【００４３】
【表１】
2005236990.tif 000003
【００４４】
アドバンストイントラコーディングはＩフレーム及びＰフレーム内のＩＮＴＲＡマクロブロックのコーディング効率を向上させる。同じコンポーネントの近傍のＩＮＴＲＡブロックを用いるＩＮＴＲＡブロック予測を用いることによってコーディング効率が向上する。マクロブロック単位で示されるように、第１行のＡＣ係数を上のブロックのＡＣ係数から予測しても、或いは、第１列のＡＣ係数を左側のブロックのＡＣ係数から予測しても、或いはＤＣ係数だけを上のブロック及び左側のブロックから平均値として予測してもいい。コーディング効率はＩＮＴＲＡ係数の変形逆量子化によりさらに向上する。ＩＮＴＲＡＤＣ係数の量子化のステップサイズは可変（サイズ８に固定されない）で、量子化器の再構築スペーシングにおける不感帯は除去される。最後に、ＩＮＴＲＡ係数に別々のＶＬＣを使用することでコーディング効率が向上する。
【００４５】
デブロッキングフィルタモードはブロッキングアーティファクトを減らすためにコーディングループ内にブロックエッジフィルタを用いる。フィルタは８ｘ８ブロックのエッジを越えて動作する。フィルタは水平又は垂直エッジに４画素値の集合を使用し、フィルタリングされた出力画素の集合を生成する。実際のブロックエッジフィルタは標準的線形フィルタではなく、線形フィルタリング操作をクリッピング操作と混合する。フィルタリング操作の強度はさらにマクロブロックの量子化の値によって決まる。デブロッキングフィルタが示されていれば、将来の予測のために格納される画像を変えるフィルタリング操作がエンコーダで実行されると共に、デコーダ側でも実行される。
【００４６】
全フレームフリーズモードはインプリントするのが非常に簡単で、デコーダはその出力バッファからビデオディスプレイへのデータ転送をストップするすることができなければならない。フリーズモードはＦＴＹＰＥ関数値で全ピクチャフリーズ要求によって設定される。フリーズモードで、表示ピクチャは、現在のＰＴＹＰＥ又は後続のＰＴＹＰＥのフリーズピクチャリリースビットが１になるまで、もしくはタイムアウトが発生するまで、変わらない。
【００４７】
変形量子化モードは、マクロブロック単位でのマクロブロックに対する量子化操作への修正を許可し、且つＤＱＵＡＮＴによって指定される変更よりも大きな変更を許可する。このモードには４つの主要な機能がある：ＤＱＵＡＮＴフィールドのシンタックスを変えることによってエンコーディングのビットレート制御機能が向上する。輝度データよりもクロミナンスデータに小さなステップサイズを指定することによってクロミナンス忠実性が向上する。どんな可能な真の係数値でも表現できるように表現可能な係数値の範囲を量子化のステップサイズが許可する精度範囲内まで拡張する。エラー検出性を向上させると共にデコーディングの複雑性を最小にするために、量子化された係数レベルの範囲を無理なく発生可能なレベルに制限する。
【００４８】
無制限動きベクトルモードは、ラピッドモーション又はカメラムーブメントのあるシーケンスのビデオ品質を向上させる。第１機能の、ピクチャ境界線を越えた動きベクトルにより動きベクトルはピクチャの外を指すことができる。ピクチャの外の画素に言及すると、エッジ画素を用いて画素値を補外する。第２機能の、無制限動きベクトル値は長い動きベクトルをサポートしている。ＣＩＦピクチャの場合、動きベクトルは[-16, 15.5]から[-32, 31.5]の範囲よりも伸びる。長い動きベクトルは高いコーディング効率を提供することができる。とりわけ、大きなピクチャサイズ、ラピッドモーション、カメラムーブメント、低ピクチャレートの場合には、効率を高めることができる。
【００４９】
ＩＭＸのようなビデオ会議システム３１において、クライアント３２がセッションに出入りするに伴って、もしくはネットワーク負荷条件が変わるに伴って、ターゲットビットレートが変わる。任意のコーデック２２は、ビデオコンテンツが変わるとそれに伴って、符号化されたビット数が変わる。そうしたダイナミック環境において、コーデック２２は符号化されたビット数をターゲットビットレートに合うように適応させるために多数のレート制御スキームをインプリメントする。Ｉ／Ｐフレーム間のビット割り当て、Ｉフレームの周波数、さらにフレームレイヤスキップ制御など、スキームによってはフレームレベルで動作するものがある。他はマクロブロックレベルで動作し、量子化器のステップサイズを制御する。
【００５０】
概して、イントラ符号化された（Ｉ）フレームはインター符号化された（Ｐ）フレームよりも多くのビットを必要とする。低ビットレート通信の場合、Ｉフレームの周波数及びＩ／Ｐフレーム間のビット割り当てを制御することが効果的なレート制御方法である。コーデック２２において、Ｉフレームの周波数は、ＬＯＷＲＡＴＥモード（下記参照）を除き、３秒ごとに１に設定される。ビットレートはＩフレームはどれも7xとして配分される一方、Ｐフレームはどれもxとして配分され、xは（Ｉフレームの周波数を考慮に入れて）総体的レートが指定のターゲットレートに等しくなるように決められる。
【００５１】
ＩフレームとＰフレームのために別々の量子化器ステップサイズが維持される。フレームのスタート時、量子化器のステップサイズが同じタイプの最後のフレームに使用された平均値になるようにする。各ブロックグループ（ｇｏｂ）の前に、そのフレームの部分レートがレートバジェット−４×許容差によって設定される限界（the limit set by the rate budget minus 4*tolerance）以下ならば、量子化器のステップサイズを１つ小さくする。限界＋２×許容差ならば、量子化器のステップサイズを１つ大きくする。限界＋４×許容差ならば、量子化器のステップサイズをさらに１つ大きくする。「許容差」の値は、レートバジェットの１/５から１/１０に、最初のｇｏｂから最後のｇｏｂに線形的に小さくなる。その理論的根拠は、通常、量子化器のステップサイズは同じタイプの最後のフレームでターゲットレートを達成したものの平均値だから量子化ステップサイズを積極的に変える必要はないはずであるということである。ｇｏｂは画像／フレームサイズに依存していることに注意。
【００５２】
マクロブロックあたりのビットが３５よりも低い（１５ｆｐｓで１２８ｋｂｐｓＣＩＦの時のほぼバジェット）ようなターゲットビットレートの場合は、ＬＯＷＲＡＴＥモードになる。このモードでは、上記に比べ２つの相違点がある。
【００５３】
１．２０％を越えるＭＢに動きがある場合を除いて（この場合は３秒ごとに一回送られる）、Ｉフレームは３０秒ごとに一回送られる。この低周波数レートで挿入される各ＩフレームのビットバジェットはＰフレームと同じビットバジェットである。
【００５４】
２．イントラブロックにおいて、ジグザグインデックスが６以上（zig-zag index ≧ 6）のＤＣＴ係数は次の場合ゼロに設定される：
ａ．ＤＣが８０に満たない（DC ＜ 80）輝度ブロック、
ｂ．初めの５ジグザグ係数における完全絶対量子化されたレベルが全ての係数における完全絶対量子化されたレベルの１/４に満たない高度活動性ブロック。
【００５５】
最後に、フレーム間で異なるビット要件を利用するフレームレイヤスキップ制御スキームがインプリメントされる。ＧＯＰ（Ｉフレーム及びＰフレームのシーケンス）ごとに、ターゲットビットレート及びＩ／Ｐフレームビット割り当てに基づいてビットバジェットが計算される。符号化プロセス時、ビットバジェットに比べてフレームあたり使用された実際のビットの走行カウント数が保たれる。使用ビットがビットバジェットに満たなければ、アンダーフローが計算され、次のフレームのビットバジェットがその量だけ増やされる。使用ビットがビットバジェットを超えていれば、オーバーフローが計算される。累積オーバーフローが典型的なＰフレームのビットバジェットを超えると、次のＰフレームのエンコーディングがスキップされる（つまり、未符号化ＭＢのあるヘッダを送出する）。
【００５６】
２５６ｋｂｐｓ及び１２８ｋｂｐｓでそれぞれ２つのシーケンスを符号化するレート制御の性能を図５に示した。
【００５７】
先に述べたように、コーデック２２は複雑性適応の機能も有している。エンコーダ１１（デコーダ２２）の各インスタンスは常にリアルタイムでその性能をモニタしてており、使用しているアルゴリズムを使用可能な計算力に合わせてアップグレード又はダウングレードする。したがって、ＩＭＸ３１の文脈において、クライアント３２が会議に出入りするのに伴って、ビデオエンコーダ（デコーダ）はインテリジェントに順応する。さらに、この適応はリアルタイムの性能測定に基づいており、プラットフォーム／環境固有の表に基づいていない。システムに負担をかけすぎず且つ使用可能な計算力の変化に敏感になりすぎたり鈍感になりすぎたりすることなく、性能を測定し、アルゴリズムがスマートなやり方で自らを自動的にアップグレード／ダウングレードする。
【００５８】
エンコーダ１１は、図２に示したようなコーデックの一部であっても、或いはスタンドアローンのモジュールであっても構わない。いずれにしても、エンコーダ１１は、エンコーダのアルゴリズムが動作するいろいろ異なった設定を指定するのに使用されるパラメータを含んでいる。発明の態様によれば、各エンコーダ１１は、アルゴリズム設定０〜８で動作するように設計されている。設定０が最速で、設定８が最も低速である。表２に示すように、一つ以上のパラメータを変えて様々な中間のアルゴリズム設定を得る。
【００５９】
【表２】
2005236990.tif 000004
【００６０】
ｘ及びｙ方向探索ウィンドウの寸法によって動き推定時に探索されるグリッドの大きさが制御される。図６に、典型的なシーケンスの動きベクトル分布を示す。動きベクトルは、ほとんどの場合、起点（０，０）近くでクラスタになり、探索ウィンドウのエッジ近くで著しく衰える。分布はｙ方向と比べｘ方向のほうが範囲が広い。動き推定を加速するために、ｘ及びｙ両方向で探索範囲を小さくすることができる。ｘ方向探索ウィンドウの範囲は８〜１６で、ｙ方向探索ウィンドウの範囲は６〜１６である。探索範囲が小さくなると動き推定の計算コストは減るけれども、圧縮効率を低下させる。
【００６１】
スキップモード予測は動き推定から残差値に基づいて未符号化ＭＢモード（uncoded MB mode）を推定する。通常の処理では、未符号化モードが検出される前に量子化、逆量子化、及び逆ＤＣＴによって残差値をさらに処理する。スキップモードでは、残差値のＤＣがしきい値未満でしかも動きベクトルがゼロになっていれば、未符号化モードが検出される。図７（ａ）は、スキップモード予測によって複数の典型的なビデオのエンコーディングパイプラインが加速されることを示している。図７（ｂ）はスキップモード予測のＰＳＮＲ性能は通常処理と類似していることを示している。
【００６２】
動き推定において、探索範囲内の点ごとに差分絶対和（ＳＡＤ）が計算される。２つのマクロブロック間で、各ＳＡＤ計算には２５６の減算と２５５の加算とが必要である。全画素及び半画素のサブサンプル因子は、計算に使われる数の画素値をサブサンプリングすることで、ＳＡＤを計算するときのコストを削減する。図８に、コーデック２２に使われるサブサンプルパターン（ｐ１、ｐ２、ｐ３、ｐ４）をいくつか示した。図９から、サブサンプルパターン（ｐ１、ｐ２、ｐ３、ｐ４）のＰＳＮＲ性能は全く同じであることが明らかである。
【００６３】
パラメータ「半画素使用」は、動き推定時に半画素計算をスキップするオプションを提供する。ＤＣＴ切り捨てはＡＣ係数の数を切り捨てることによって順方向（forward）及び逆ＤＣＴを計算する際のコストを削減する。ＡＣ係数を例えば７に打ち切ると、ＤＣＴ計算が大きく加速されるが、ビデオに知覚可能な歪みが生じる。最後に、動き推定方法は複数の探索方法：フル、ダイアモンド、及び対数探索アルゴリズムを提供する。フル探索は計算的に最も費用のかかる方法ではあるが、確実に最小ＳＡＤ値を見出せる。ダイアモンド探索は、（ｉ）グリッド上の全ての点の代わりにダイアモンド形状のパターンを探索する、及び（ｉｉ）現在の最小ＳＡＤ値の方向に探索を進めるという２つの発見的方法（heuristics）に基づいた計算的にかかる費用がより少ない方法である。対数探索は計算的に一番費用のかからない探索で、バイナリ探索と非常によく似ている。
【００６４】
オフラインの設計段階に、図１０に示すように、大型集合の代表的ビデオストリームに測定を実行し、品質（ＰＳＮＲ）対複雑性（走行時間）曲線の上包絡線を識別し、ほぼ等間隔で配置された点を選ぶことによって、９つの各アルゴリズム設定に対応する特定のパラメータの選択肢が決められる。したがって、このオフライン設計段階以後、エンコーダの動作範囲全域にわたってスムーズな遷移を提供するように９つのアルゴリズム設定が選ばれる。
【００６５】
エンコーダ１１と同様に、デコーダ１２はコーデック２２の一部とするか、もしくはスタンドアローンモジュールとして提供し、類似した原理を考慮して設計されている。デコーダ１２は復号化アルゴリズム設定０〜４で動作できるようにインプリメントされる。デコーダ１２の場合、いろいろ異なった動作設定を指定するのに使用される可変パラメータは、逆離散コサイン（非常に近似、近似、実際）、クロマスキップ（オフ又はオン）、及びフレーム表示スキップ（約k％のフレーム）を含む。ここでも、５つの設定のためのパラメータ選択はオフラインで決められる。異なったアルゴリズム設定はデコーダ１２の動作範囲全域にわたってスムーズな遷移を提供するように選択され、表３に示すように、各アルゴリズム設定０〜４はある特定のパラメータ設定グループと相関しており、その特定のグループからそのアルゴリズム設定を得る。
【００６６】
【表３】
2005236990.tif 000005
【００６７】
各コーデック２２がそのアルゴリズム設定を自動的に調整する様子を次に図１１の流れ図において説明する。ランタイム時に、各エンコーダ１１及び各デコーダ１２は最後のフレームに使った時間（実時間）を測定する（ステップ１１０１）。現在のアルゴリズム設定のためにこの時間がその前に計った時間値と平均され（ステップ１１０２）、従って、使用される値(Tavg)はそのアルゴリズム設定の履歴全体を通した重み付き平均であり、一番新しい測定は重みが0.5で、その前の測定は重み0.25といった具合である。この時間値Tavgは次にターゲット時間値Tと比較される。ターゲット時間値Tは、（コンカレントビデオストリームの総数及び他の負荷に基づいて）システムが指定するか、或いはストリームの秒あたりフレーム数の速度によって決められた値の半分になるように発見的に設定されるか、いずれかである。測定値Tavgがターゲット値T＋許容差t+（Ttol+で表わされる加算和）よりも大きければ、アルゴリズム設定が１つダウングレードされる。測定値Tavgがターゲット値Tに満たなければ、普通は変化しない。但し、次の例外がある：（ａ）測定値Tavgが、Ttol-で表わされる下位境界であるターゲット値よりも若干余分の許容差t-だけ低く、しかも一定のフレーム数の間ずっとそうならば、アルゴリズムが１つダウングレードされる；及び（ｂ）様子を見てみるために、いわば、もしかしてシステムにかかる計算負荷が低下してより上の設定が可能かどうかチェックするために、周期的に、アルゴリズム設定が１つアップグレードされる。許容差値t+及びt-はターゲットTの一定の割合で構わない。一般的な選択としては、高いほうを小さな許容差にし、例えば、Tより２％高く、低いほうを適度の許容差、例えば、Tより１０％低くすることが考えられる。そうした設定は、アルゴリズムは積極的にアップグレードされないけれども走行時間がはターゲットをオーバーシュートするとほとんどすぐにダウングレードされるという意味で保守的である。
【００６８】
そこで、そうした制御を実現できる一つのやり方を以下に説明する。引き続き図１１の流れ図で、ステップ１１０３で、Tavg > Ttol+かどうか判定される。そうならば、ステップ１１０４でアルゴリズム設定が１つダウングレードされる。そうでなければ、次にステップ１１０５でTavg < Tかどうか判定される。そうならば、ステップ１１０６でTavg < Ttol-かどうか及び所定のフレーム数nの間ずっとそうだっかどうか判定される。ここで、nは一般的には約５から約１００の範囲であるが、値が小さいほうがシステムが変化に敏感になることを忘れないでおこう。ステップ１１０６で決定が「イエス」ならば、アルゴリズムはステップ１１０７で１つアップグレードされる。ステップ１１０６での決定が「ノー」ならば、つまり、TavgはTtol-とTの間かもしくはTtol-に満たないかのどちらかであるけれどもnフレーム間ずっとそうだったわけではないということになるが、その場合にはステップ１１０８でアルゴリズム設定の周期的アップグレードが必要かどうか判定される。そうならば、ステップ１１０９でアルゴリズム設定が１つアップグレードされる。そうでなければ、ステップ１１１０でアルゴリズム設定は変更なしのままである。TavgがTとTtol+の間（ステップ１１０５の答が「ノー」）の場合もアルゴリズム設定は変更なしのままである。アルゴリズム設定がダウングレード（ステップ１１０４）、又はアップグレード（ステップ１１０７又は１１０９）、もしくは変更なしのまま（ステップ１１１０）のいずれか後、制御プロセスのループはステップ１１０１に戻り、別の実時間の測定が行なわれる。プロセスはランタイム時考慮の対象となるフレームがなくなるまで続く。
【００６９】
本発明の注目画像領域（ＲＯＩ）コーディングの態様について言えば、ＲＯＩが次の空間的性質及び時間的性質：位置、持続時間、サイズ、形状、及び重要度を用いて定義される。先に述べたように、本発明のコーデックは単一ＲＯＩ又は複数のＲＯＩを有するビデオをサポートしている。複数のＲＯＩは非オーバーラップの場合もオーバーラップの場合もあり得る。ＲＯＩは、外接ボックスによって手動で定義することができるし、もしくは顔検出、テキスト検出、移動領域検出、オーディオ検出、又はスライド検出を用いて自動的に検出することができる。ＩＭＸのようなビデオ会議システムにおいて、矩形の外接ボックスを用いて顔領域及びテキスト領域をハイライトした典型的なＲＯＩを図１２（ａ）及び（ｂ）に示した。
【００７０】
ＩＭＸシステム３１において、模式的シナリオを図１３に示した。クライアントＡはビデオサーバに接続され、符号化されたビデオを２５６ｋｂｐｓで送受信する。クライアントＢはビデオサーバに接続され、符号化されたビデオを６４ｋｂｐｓで送受信する。ＣＩＦ解像度で、クライアントＢのための復号化ビデオは低スピード接続が原因で品質が貧弱になる。しかしながら、クライアントＢは図１２（ａ）の顔領域といったＲＯＩを選択し、選んだＲＯＩ内のビデオ品質を向上させるためにサーバにバックチャネルで（ＲＯＩプロパティと共に）要求を送ることができる。サーバは次にその要求をクライアントＢに仕えるコーデックに送る。発明の実施例によれば、コーデックは、次の方法：（ｉ）ＭＢレイヤ量子化器制御、（ｉｉ）ＤＣＴ係数しきい値処理、（ｉｉｉ）ＭＢスキップモード制御、及び（ｉｖ）Ｃｂ／Ｃｒチャネルドロップを用いて、選ばれたＲＯＩ内のビデオ品質を向上させる要求をサポートしている。図１４（ａ）に示したビデオのオリジナルフレームを図１４（ｂ）に示したＲＯＩ符号化されたバージョンと比較する。図１４（ｃ）及び（ｄ）のＰＳＮＲ測定結果は、これらのＲＯＩコーディング方法はオリジナルと比べＲＯＩのＰＳＮＲを＋２ｄＢから＋６ｄＢに高めることを実証している。
【００７１】
ＲＯＩ要求がなされると、コーデックがそのアルゴリズムを調整してＲＯＩ内のビデオ品質を向上させる。ランタイム時、カレントフレームに割り当てる一定のビットバジェットがエンコーダに与えられる。ビットバジェットはフレームレート及びターゲットビットレートによって設定される。先に説明したレート制御方法は基本的にそのフレーム全体にわたってビットを一様に分布するように試みる。しかしながら、ＲＯＩが定義されていると、エンコーダはそのアルゴリズムを調整してＲＯＩ内部の領域により多くのビットを割り当て、ＲＯＩの外の領域に割り当てるビットを少なくする。エンコーダは先ず各マクロブロックに内側又は外側どちらかのラベルを付ける。外側のマクロブロックの場合、数多くの方法を用いてビット割り当てを減らすことができる。これらの方法には、マクロブロックを未符号化モードに設定する、あるいは量子化器のステップサイズを大きくするなどがある。内側のマクロブロックの場合、コーデックは量子化器のステップサイズを小さくしてエンコーディングに用いるビット数を増やす。
【００７２】
ＲＯＩ内外のマクロブロックのために別々の量子化器ステップサイズ、Qin及びQoutがそれぞれ維持される。フレームのスタート時に、量子化器のステップサイズQinがビットレートに基づいて数式１の通り低い値に設定される：
【００７３】
【数１】
2005236990.tif 000006
【００７４】
内側の後続マクロブロックごとに、そのフレームの部分レートがレートバジェット−４×許容差で設定される限界よりも低ければ、量子化器のステップサイズを１つ小さくする。限界＋８×許容差ならば、量子化器のステップサイズを１つ大きくする。「許容差」の値はレートバジェットの１/５から１/１０に、ＲＯＩ内の最初のｍｂから最後のｍｂに、線形的に小さくなる。フォベアのない（non-foveated）モードでは、量子化器のステップサイズQoutをフレーム全体で２５に設定するか、外側のマクロブロックを未符号化と設定するか、いずれかである。フォベアのある（foveated）モードでは、量子化器のステップサイズQoutをＲＯＩの中心までのその距離が増えるにつれて線形的に増大する値に設定する。このようにすると、ビデオの品質がＲＯＩの中心からフレームのエッジにゆっくりと低下していく。
【００７５】
図１５のＩＭＸシステムにおいて、多数のクライアントがビデオサーバに接続されている。セッションに参加するクライアントが増えると、ビデオサーバの計算負荷が増える。それにもかかわらず、ビデオサーバはそのリアルタイム制約条件を満たし続けて、ある決まった間隔で各クライアントにビデオを配信しなければならない。事実、ＩＭＸにおいて、サーバ側の各コーデックは時間tまでに符号化済みフレームを配信するようにスケジューリングされている。時間tはクライアント数とビデオコーデック／オーディオコーデックの計算コストに基づいて推定される。その時間制約条件が満たされなければ、符号化済みフレーム（及び時間tまでの処理）はその時点で単に放棄される。
【００７６】
ＲＯＩコーディングは計算的にスケーラブルな代替えを提供するものである。ＲＯＩが指定されていれば、コーデックが入ってくるビットストリームの順序を並べ替え、ＲＯＩ内のマクロブロックを先ず最初に処理する。全てのマクロブロックが処理されたら、コーデックは残りの時間を使ってＲＯＩの外にあるマクロブロックを処理する。コーデックは時間t以前に全てのマクロブロックを処理できなくても、ＲＯＩの内側マクロブロックは処理済みで外側マクロブロックは未符号化モードに設定された符号化済みビットストリームを配信することができる。
【００７７】
図１６のＩＭＸシステム３１において、クライアントＡはビデオサーバに接続され、ＣＩＦ符号化されたビデオを２５６ｋｂｐｓで送受信する。クライアントＢはビデオサーバに接続され、ＱＣＩＦ符号化されたビデオを２５６ｋｂｐｓで送受信する。ＱＣＩＦ解像度で、クライアントＢが受け取ったビデオはサーバが送った複合ビデオ（composite video）のダウンサンプリングされたバージョンで、小さな表示の中に重要な領域と重要でない領域とが表示される（図１８（ｂ）参照）。しかしながら、クライアントＢはビデオの一部分だけをハイライトするＲＯＩ要求をサーバに送ることができる。サーバはその領域を圧縮ドメインでＱＣＩＦ符号化されたビットストリームに直接トランスコーディングする。図１７にトランスコーディング操作を示す。要求しているクライアントにビデオをそのまま配信するのではなく、サーバはＲＯＩに基づいてビデオをトランスコーディングして要求された部分を配信する。
【００７８】
どんな実用的なビデオコーデックシステムにおいても、損失（又は歪みＤ）と圧縮ストリームのビットレート（例えばＲ）とのトレードオフがある。本発明のコーデックにおいては、この概念を、複雑性（又はフレームレートＦ）を含めて複雑性・レート・歪み関数にすることによって、拡大している。これにおいて、ＤはＰＳＮＲとして測定され、Ｒは秒あたりのビット数として測定され、Ｆは秒あたりのフレーム数として測定される。ビットレート及びフレームレートに対してＰＳＮＲを様々な設定で測定して、図１８（ａ）に、本発明のコーデックの複雑性・レート・歪み曲線をグラフにした。グラフが、ビットレート及びフレームレートが上がるとＰＳＮＲが高くなることを示しているのは驚くべきことではない。図１８（ａ）に示した定数のＰＳＮＲ値（constant PSNR values）の等高線を図１８（ｂ）に描いた。任意の歪みＤがあるとして、等高線はターゲットＰＳＮＲ（ｄＢ）を達成するのに必要な最低ビットレート（ｂｐｓ）及び最低フレームレート（ｆｐｓ）を示している。
【産業上の利用可能性】
【００７９】
上記の説明からすぐ明らかになるように、本発明のコーデックは、個々のエンコーダ及びデコーダと同様に、先行技術と比べ数多くの効果を提供するものである。本発明のコーデックにはかなりの適応性がある。コーデックはレート制御を向上させる、そしてその目的のために、生成する符号化済みビットの数をシステムターゲットビットレートに適応させることができる。本発明のコーデックは複雑性を適応変更するように構成されているのも有利である。複雑性に適応変更するように構成されていることは（ビデオ会議サーバなど）複数のコーデックが共有計算資源を使い果たすシステムにおけるコーデックの非常に重要な機能である。さらに、本発明のコーデックは複雑性を指定するためのパラメータを有しているだけでなく、そうしたパラメータが先に説明したように実際の測定ランタイム複雑性に応じて自動的に変わるアルゴリズム設定の中にグループ化されている。ランタイム時の実際の測定結果があるので、変化する負荷、マルチスレッディング、ＩＯ、クライアント数などに起因したシステムのリアルタイムの変動を考慮に入れないサイクルカウントに基づく不正確な推定値を不要にする。本発明のコーデックは、スケーラブル計算複雑性及びトランスコーディングを含む改善されたＲＯＩコーディングスキームも提供している。
【００８０】
本発明のコーデック、エンコーダ、及びデコーダの機能はソフトウェアでインプリメントできるので便利である。例えば、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号処理回路機構など、しかるべき回路機構を用いて同等のハードウェアインプリメンテーションも可能である。
【００８１】
これらのインプリメンテーション変形例を考慮すれば、図及び添付の説明は当業者がプログラムコード（つまり、ソフトウェア）を書いたり、必要な処理を実行する回路（つまり、ハードウェア）を作るのに要する機能的情報を提供していると理解されるべきである。ついては、クレーム表現「機械可読媒体」には命令プログラムがハードワイヤされたハードウェアがさらに含まれる。請求項で使用している用語「モジュール」は同様にソフトウェア又はハードウェア構成を含むことを意図するものである。
【００８２】
発明を複数の具体的な実施例と共に説明してきたが、上記の説明に照らして当業者ならばさらに多数の変形例、変更例、バリエーション、及び応用例が明白であろう。したがって、本書で説明した発明は、添付の請求項の精神並びに範囲から逸脱しない限りにおいて、そうした変形例、変更例、バリレーション、及び応用例を全て含むことを意図するものである。
【図面の簡単な説明】
【００８３】
【図１】発明の実施例通りに構成されたコーデック（エンコーダ／デコーダ）のエンコーダ部及びデコーダ部それぞれの機能ブロック図。
【図２】各サイトにコーデックが設置された模式的ビデオ会議システムのブロック図。
【図３】発明の実施例に基づく、様々なクライアントデバイスを接続するメディアハブの概略図。
【図４】発明の実施例通りに構築された、複数のシステム入力に適応させたビデオコーデックのブロック図。
【図５】２５６ｋｂｐｓ及び１２８ｋｂｐｓそれぞれで２つのシーケンスを符号化する発明の実施例通りに構築されたコーデックのレート制御性能を示すグラフ。
【図６】コーデックを装備した携帯電話のビデオシーケンスのための動きベクトル分布を示すグラフ。
【図７】（ａ）はスキップモード予測の性能を、計算複雑性によって示すグラフ、及び（ｂ）はピーク信号対雑音比（ＰＳＮＲ）によって示すグラフ。
【図８】発明の実施例に基づく、ＳＡＤの計算複雑性を減らすために使用されるサブサンプルパターン（ｐ１、ｐ２、ｐ３、ｐ４）。
【図９】サブサンプル（ｐ１、ｐ２、ｐ３、ｐ４）のＰＳＮＲ性能を示すグラフ。
【図１０】発明の実施例に基づく、エンコーダアルゴリズム設定を判定するために使用される複雑性歪み曲線のグラフ。
【図１１】コーデック、エンコーダ、及び／又はデコーダのアルゴリズムがランタイム時に実行される実際の複雑性測定応じて適応（つまり、設定を変更）する様を説明する流れ図。
【図１２】矩形外接ボックスによって図の中に識別された典型的な注目画像領域を示すイメージ。
【図１３】バックチャネルでクライアントが発する注目画像領域（ＲＯＩ）品質要求を図解する概略図。
【図１４】オリジナル画像（ａ）をより良好にコーディングできるように選択されたＲＯＩを有する同じ画像との比較を示す（（ａ）及び（ｂ））、ＲＯＩコーディングのアプリケーションからより高いＰＳＮＲ値が得られることを示す（（ｃ）及び（ｄ））。
【図１５】ＲＯＩコーディングが提供する計算スケーラビリティを図解した概略図。
【図１６】映像をアップスケールするＲＯＩ要求を図解した概略図。
【図１７】ビットストリームをトランスコーディングするＲＯＩ要求を図解した概略図。
【図１８】複雑性レート歪み曲線で、（ａ）は３Ｄプロット、（ｂ）は定ＰＳＮＲをもつ等高線。
【符号の説明】
【００８４】
１１・・・エンコーダ
１２・・・デコーダ
２１・・・模式的ビデオ交換システム
２２・・・コーデック
２２ａ・・・コーデック
２２ｂ・・・コーデック
２３・・・ネットワーク
３３・・・メディアハブ
３１・・・総合メディア交換（ＩＭＸ：integrated media exchange）システム
３２・・・クライアント
３３・・・サーバ
【図１】
2005236990.tif 000007
【図２】
2005236990.tif 000008
【図４】
2005236990.tif 000009
【図１１】
2005236990.tif 000010
【図３】
2005236990.tif 000011
【図５】
2005236990.tif 000012
【図６】
2005236990.tif 000013
【図７】
2005236990.tif 000014
【図８】
2005236990.tif 000015
【図９】
2005236990.tif 000016
【図１０】
2005236990.tif 000017
【図１２】
2005236990.tif 000018
【図１３】
2005236990.tif 000019
【図１４】
2005236990.tif 000020
【図１５】
2005236990.tif 000021
【図１６】
2005236990.tif 000022
【図１７】
2005236990.tif 000023
【図１８】
2005236990.tif 000024