(57)【要約】  装置は、圧縮すなわち符号化されたビデオデータを提供するソフトウェアベースのＨ．２６４ビデオ符号器を内蔵している。Ｈ．２６４符号器は、マクロブロックモード決定及び動き予測フレームワーク内でＨ．２６４符号器が利用可能な時間が制約すなわち制限されるように、計時アルゴリズムを内蔵している。そして、Ｈ．２６４符号器が利用可能な特定の時間量が、Ｈ．２６４符号器がマクロブロックを符号化するために使用し得る利用可能な符号化モードの部分集合を決定する。
2008529416.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ符号器にて使用される方法であって：
（ａ）データのマクロブロックを処理するために時間量を割り当てる割当段階；及び
（ｂ）割当て時間量の関数として、利用可能な符号化モードの部分集合を選択する選択段階；
を有し、
選択された部分集合に含まれる符号化モードの少なくとも１つが前記マクロブロックを処理するために使用される、方法。
【請求項２】
前記マクロブロックは動き補償されたビデオフレームの一部である、請求項１に記載の方法。
【請求項３】
前記マクロブロックはビデオフレームのイントラ・マクロブロックである、請求項１に記載の方法。
【請求項４】
前記マクロブロックに関して何れの符号化モードが最大の符号化効率を達成するかを決定するために、前記選択された部分集合に含まれる符号化モードを検査する検査段階；及び
前記マクロブロックを符号化するために、決定された符号化モードを使用する使用段階；
を更に有する請求項１に記載の方法。
【請求項５】
ビデオフレームに含まれる２つ以上のマクロブロックに対して段階（ａ）及び（ｂ）を繰り返す反復段階；
を更に有する請求項１に記載の方法。
【請求項６】
ビデオ符号器における或る状態の発生を調べる検査段階；及び
前記状態が発生した場合に、段階（ａ）及び（ｂ）を実行する実行段階；
を更に有し、
前記状態は不十分なビデオ符号器性能を意味する、請求項１に記載の方法。
【請求項７】
前記検査段階は、段階（ａ）及び（ｂ）を実行する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうかを調べる、請求項６に記載の方法。
【請求項８】
前記検査段階は、段階（ａ）及び（ｂ）を実行する前提条件として、出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項６に記載の方法。
【請求項９】
前記検査段階は、段階（ａ）及び（ｂ）を実行する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうか、及び出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項６に記載の方法。
【請求項１０】
前記時間量は、２つのブロック間の絶対差の和、及び不一致という、画像及びマクロブロックの複雑さの要素の少なくとも一方により決定される、請求項１に記載の方法。
【請求項１１】
動き予測のために使用される参照フレームの数を、データの前記マクロブロックを処理するために利用可能な前記割当て時間量の関数として調整する調整段階；
を更に有する請求項１に記載の方法。
【請求項１２】
ビデオ符号化に使用される装置であって：
符号化された出力データを提供するためにビデオデータの符号化に際して使用されるプロセッサ；
を有し、
前記プロセッサはビデオデータの少なくとも一部を、利用可能な符号化モードの少なくとも１つの部分集合を用いることに符号化を制約することによって符号化し、前記部分集合は、ビデオデータのマクロブロックを処理するために利用可能な時間量によって決定される、装置。
【請求項１３】
前記プロセッサは、データの少なくとも１つのマクロブロックを符号化するために、決定された部分集合を使用する、請求項１２に記載の装置。
【請求項１４】
前記マクロブロックは動き補償されたビデオフレームの一部である、請求項１３に記載の装置。
【請求項１５】
前記マクロブロックはビデオフレームのイントラ・マクロブロックである、請求項１３に記載の装置。
【請求項１６】
前記プロセッサは、前記マクロブロックに関して何れの符号化モードが最大の符号化効率を達成するかを決定するために、選択された部分集合に含まれる符号化モードを検査し、且つ前記マクロブロックを符号化するために、決定された符号化モードを使用する、請求項１３に記載の装置。
【請求項１７】
前記プロセッサは、ビデオフレームに含まれる２つ以上のマクロブロックに対して、利用可能な符号化モードの部分集合を選択する、請求項１３に記載の装置。
【請求項１８】
前記プロセッサは、動き予測のために使用される参照フレームの数を、ビデオデータの前記マクロブロックを処理するために利用可能な前記時間量の関数として動的に調整する、請求項１３に記載の装置。
【請求項１９】
前記プロセッサは先ず、ビデオ符号器における或る状態の発生を調べ、そして、前記状態が発生した場合に、前記プロセッサは、利用可能な符号化モードの前記少なくとも１つの部分集合を用いることに符号化を制約し、前記状態は不十分なビデオ符号器性能を意味する、請求項１２に記載の装置。
【請求項２０】
前記プロセッサは、符号化を制約する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうかを調べる、請求項１９に記載の装置。
【請求項２１】
前記プロセッサは、符号化を制約する前提条件として、出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項１９に記載の装置。
【請求項２２】
前記プロセッサは、符号化を制約する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうか、及び出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項１９に記載の装置。
【請求項２３】
前記時間量は、２つのブロック間の絶対差の和、及び不一致という、画像及びマクロブロックの複雑さの要素の少なくとも一方により決定される、請求項１２に記載の装置。
【請求項２４】
データを提供する入力バッファ；
データを符号化し且つ符号化されたデータを提供するビデオ符号器；及び
符号化されたデータを格納する出力バッファ；
を有し、
前記ビデオ符号器は、前記入力バッファのレベル及び前記出力バッファのレベルの内の少なくとも一方の関数として、利用可能な符号化モードの少なくとも１つの部分集合を用いることに符号化を制約することによって、実時間符号化性能を順応的に維持する、
ビデオ符号器システム。
【請求項２５】
前記ビデオ符号器は、前記入力バッファ内のデータ量が所定の閾値を上回る場合に、実時間符号化性能を順応的に維持する、請求項２４に記載のビデオ符号器システム。
【請求項２６】
前記ビデオ符号器は、前記出力バッファ内のデータ量が所定の閾値を下回る場合に、実時間符号化性能を順応的に維持する、請求項２４に記載のビデオ符号器システム。
【請求項２７】
前記ビデオ符号器は、前記入力バッファ内のデータ量が所定の閾値を上回り且つ前記出力バッファ内のデータ量が所定の閾値を下回る場合に、実時間符号化性能を順応的に維持する、請求項２４に記載のビデオ符号器システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、通信システムに関し、より具体的には、例えばビデオといった実時間データを符号化する際に使用する符号器に関する。
【背景技術】
【０００２】
実時間Ｈ．２６４符号化は計算的に非常に厳しく、かなりの量のメモリ及び計算資源を必要とする。従来、ビデオ符号器は特定用途向け集積回路（ＡＳＩＣ）の形態でハードウェアにて実装されている。しかしながら、パーソナルコンピュータ（ＰＣ）技術の進展により、最も高性能のコンピュータはもはや、実時間音声・映像圧縮を適度な解像度で実行するだけの処理能力を有している。Ｈ．２６４の場合、例えばＰｅｎｔｉｕｍ（登録商標）ＩＶ等の最新の高性能汎用ＰＣ用プロセッサは、共通中間フォーマット（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｉｎｔｅｒｆａｃｅ；ＣＩＦ）（３５２×２８８画素／フレーム、３０フレーム／秒）のビデオを実時間で符号化するのに十分な処理能力を提供することができる。
【０００３】
このビデオ符号器実装に関するハードウェアに基づくソリューションからソフトウェアに基づくソリューションへの移行は、解決されなければならない新たな課題を生じさせる。より具体的には、ソフトウェアに基づくビデオ符号器においては、各ビデオフレームが、１フレームの表示に割り当てられた時間量（ここでは、この時間量を表示時間、又は等価的に、その逆数により表示速度と参照する）以下の時間量内で符号化されることが重要である。しかしながら、Ｈ．２６４符号器の動き予測アルゴリズムは、動き検出が満足のいく閾値（すなわち、近い整合）に到達するか、取り得る全ての検出点を使い尽くすかの何れかまで、その動き検出を反復的に絞り込む反復アルゴリズムを使用している。従って、実行時間は一定ではなく、大きくバラつき得る。また、ソフトウェア実装は本質的に実行性能においてハードウェアの対応部分より決定的ではなく、実行時間の更なるバラつきを生じさせる。例えば、プロセッサ速度がソフトウェアの実行時間に直接的に影響を及ぼす。故に、ソフトウェアに基づくビデオ符号器においては、一部のフレームの符号化は表示速度より速くなり得る一方で、残りのフレームの符号化は表示速度より遅くなり得る。短い待ち時間ウィンドウ全体にわたって平均符号化速度が表示速度に等しい限り、ビデオ符号器は要求通りに機能することになる。しかしながら、平均符号化速度が短い待ち時間ウィンドウにわたって表示速度より下回ると、ビデオ符号器は要求通りに機能しなくなり、フレームの欠落及び性能低下を生じさせ得る。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本出願の発明者により、性能に悪影響を及ぼすことなく、実行時間が制限され、故に、より決定的にされるように、ビデオ符号器の演算を制約可能なことが観測された。その結果、このような制約されたビデオ符号器は要求通りに機能し、平均して、表示速度より速くとはいかないまでも、少なくとも表示速度と同じ速さでビデオフレームを符号化する。故に、そして本発明原理に従って、ビデオ符号器はデータのマクロブロックを処理するために或る時間量を割り当て；且つ割当てられた時間量の関数として、利用可能な符号化モードの部分集合を選択し；選択された部分集合に含まれる符号化モードの少なくとも１つがマクロブロックを処理するために使用される。
【０００６】
本発明の一実施形態において、装置は、圧縮又は符号化されたビデオデータを提供するソフトウェアに基づくＨ．２６４ビデオ符号器を内蔵している。Ｈ．２６４符号器は、マクロブロックモード決定及び動き予測フレームワーク内でＨ．２６４符号器が利用可能な時間が制約又は制限されるように、計時アルゴリズムを内蔵している。そして、Ｈ．２６４符号器が利用可能な特定の時間量が、Ｈ．２６４符号器がマクロブロックを符号化するために使用し得る利用可能な符号化モードの部分集合を決定する。結果として、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法が提供される。
【発明を実施するための最良の形態】
【０００７】
本発明概念を除いて、図面に示される要素は周知であり、詳細には説明されない。また、ビデオ放送、受信機及びビデオ符号化は、熟知されていることを前提とし、ここでは詳細には説明されない。例えば、本発明概念を除いて、ＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）、ＰＡＬ（Ｐｈａｓｅ  Ａｌｔｅｒｎａｔｉｏｎ  Ｌｉｎｅｓ）、ＳＥＣＡＭ（ＳＥｑｕｅｎｔｉａｌ  Ｃｏｕｌｅｕｒ  Ａｖｅｃ  Ｍｅｍｏｉｒｅ）、及びＡＴＳＣ（Ａｄｖａｎｃｅｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）等のＴＶ規格に関する現行及び提案されている勧告は熟知されていることが前提とされる。同様に、本発明概念を除いて、例えば８レベルの残留側波帯（８−ＶＳＢ）、直交振幅変調（ＱＡＭ）などの伝送概念、無線周波数（ＲＦ）フロントエンド等の受信器部品、又は、低雑音ブロック、チューナー、復調器、相関器、リーク積分器及び自乗回路などの受信器部分は熟知されていることが前提とされる。同様に、本発明概念を除いて、フォーマット及び符号化方法（例えば、ＭＰＥＧ−２システム規格（ＩＳＯ／ＩＥＣ１３８１８−１）等）、及び、特に、ビットストリームを生成するためのＨ．２６４：国際電気通信連合、“ＩＴＵ−Ｔ勧告Ｈ．２６４：オーディオビジュアルサービス全般のための高度ビデオ符号化方式”、ＩＴＵ−Ｔ、２００３年は周知であり、ここでは説明されない。これに関連し、本発明概念のうち公知のＨ．２６４符号化と異なる部分のみが以下にて説明され、また図示される。従って、ピクチャー、フレーム、マクロブロック、輝度（ｌｕｍａ）、色差（ｃｈｒｏｍａ）、フレーム内（イントラ）予測、フレーム間予測などを有するＨ．２６４ビデオ符号化の概念は前提とされ、ここでは説明されない。また、本発明概念は、従来のプログラム技術（そういうものとして、ここでは説明されない）を用いて実現されてもよい。最後に、図面における似通った参照符号は同様の要素を表している。
【０００８】
図１は、本発明原理に従った例示的な実施形態に係る装置１０５を示している。装置１０５は、例えばＰＣ、サーバ、携帯情報端末（ＰＤＡ）、携帯電話などの何らかのプロセッサベースのプラットフォームを表している。これに関連し、装置１０５は１つ以上のプロセッサをそれに付随するメモリ（図示せず）とともに含んでいる。装置１０５はＨ．２６４符号器１５０を含んでいる。本発明概念ではないが、Ｈ．２６４符号器１５０は、（例えば入力信号１０４から得られる）ビデオ信号１４９を受け取り、上述のＩＴＵ−Ｔ  Ｈ．２６４に従ってＨ．２６４符号化ビデオ信号１５１を提供する。後者の信号は、装置１０５から別の装置又はネットワーク（有線、無線など）への出力信号を表す出力信号１０６に、その一部として含められてもよい。なお、図１はＨ．２６４符号器１５０が装置１０５の一部であることを示しているが、本発明はそのように限定されるものではなく、Ｈ．２６４符号器１５０は、装置１０５がＨ．２６４符号化ビデオ信号を提供するためにＨ．２６４符号器を使用可能なように、例えば装置１０５に物理的に隣接される、あるいはネットワーク（ケーブル、インターネット、セルラーなど）内の何処かに配置されるなど、装置１０５の外部にあってもよい。単にこの例のため、ビデオ信号１４９はＣＩＦ（３５２×２８８画素／フレーム、３０フレーム／秒）ビデオフォーマットに準拠した実時間ビデオ信号であると仮定する。
【０００９】
図２は、Ｈ．２６４符号器１５０の例示的なブロック図を示している。例えば、Ｈ．２６４符号器１５０は、図２に破線のボックスの形態で示されたプロセッサ１９０及びメモリ１９５により表される、ソフトウェアに基づくビデオ符号器である。ここでは、メモリ１９５にはプロセッサ１９０による実行のためのコンピュータプログラム又はソフトウェアが格納されている。プロセッサ１９０は１つ以上の格納プログラム制御プロセッサを代表しており、ビデオ符号化機能専用である必要はない。例えば、プロセッサ１９０は装置１０５のその他の機能をも制御してもよい。メモリ１９５は、例えばランダムアクセスメモリ（ＲＡＭ）や読み出し専用メモリ（ＲＯＭ）等を代表しており、プロセッサＨ．２６４符号器１５０の内部及び／又は外部にあってもよく、必要に応じて揮発性及び／又は不揮発性である。技術的に知られているように、Ｈ．２６４符号化ビデオ信号１５１はビデオ符号化レイヤー１６０及びネットワーク・アブストラクション・レイヤー１６５により表される２つのレイヤーを有している。本発明概念ではないが、ビデオ符号化レイヤー１６０は、例えばビデオシーケンス、ピクチャー、スライス及びマクロブロックといった技術的に既知のビデオ符号化データを有する符号化信号１６１を提供する。ビデオ符号化レイヤー１６０は入力バッファ１８０、符号器１７０、及び出力バッファ１８５を有している。入力バッファ１８０はビデオ信号１４９からのビデオデータを符号器１７０による処理のために格納する。本発明概念ではないが、後述されるように、符号器１７０はビデオデータをＨ．２６４に従って圧縮し、圧縮されたビデオデータを出力バッファ１８５に供給する。出力バッファ１８５は圧縮されたビデオデータを符号化信号１６１としてネットワーク・アブストラクション・レイヤー１６５に提供する。ネットワーク・アブストラクション・レイヤー１６５は、Ｈ．２６４ビデオ符号化信号１５１を提供するための多様な通信チャンネル又は記憶チャンネル上での伝送に適するように、符号化信号１６１をフォーマットする。例えば、ネットワーク・アブストラクション・レイヤー１６５は、例えばＲＴＰ（リアルタイムプロトコル）／ＩＰ（インターネットプロトコル）、ファイル様式（例えば、記憶及びＭＭＳ用のＩＳＯ  ＭＰ４（ＭＰＥＧ−４規格（ＩＳＯ  １４４９６−１４）））、有線及び無線会話サービス用のＨ．３２Ｘ、ブロードキャストサービス用のＭＰＥＧ−２システム等の輸送レイヤーに符号化信号１６１をマッピング可能とすることを容易にする。
【００１０】
先述のように、ソフトウェアに基づくビデオ符号器は、実行時間のバラつきのために要求通りに機能しないことがある。特に、ビデオ符号器はビデオフレームを表示速度に対して速いか等しいかの何れかで符号化しなければならない。ソフトウェアに基づくビデオ符号器にて１フレームを符号化する時間は、アルゴリズム設計及びプロセッサ速度によって大きく変化し得るので、ソフトウェアに基づくビデオ符号器は要求通りに機能せずに、フレームの欠落及び性能低下を生じさせることがある。しかしながら、本出願の発明者により、性能に悪影響を及ぼすことなく、実行時間が制限され、故に、より決定的にされるように、ビデオ符号器の演算を制約可能であることが観測された。その結果、このような制約されたビデオ符号器は要求通りに機能し、平均して、表示速度より速くとはいかないまでも、少なくとも表示速度と同じ速さでビデオフレームを符号化する。故に、そして本発明原理に従って、ビデオ符号器は、データのマクロブロックを処理するための時間量を割当て、割り当てられた時間量の関数として利用可能な符号化モードの部分集合を選択し、選択された部分集合に含まれる符号化モードの少なくとも１つがマクロブロックの処理に使用される。この点で、Ｈ．２６４符号器１５０のビデオ符号化層１６０は本発明概念を内包するものである。
【００１１】
図３は、Ｈ．２６４符号器との関連で本発明概念を実施する一例を概説するフローチャートを示している。この例において、Ｈ．２６４符号器１５０のビデオ符号化層１６０はフレーム間予測に際して、すなわち、Ｈ．２６４符号化のマクロブロックモード決定及び動き予測フレームワークにおいて、計時アルゴリズムを使用する。ビデオ符号化アルゴリズムのマクロブロックモード決定部は時間制御の標的として選択され得る。何故なら、この部分はＨ．２６４の如何なる他の要素と比較して、符号化時間のより多くの部分を消費するとともに、符号化時間において最大のバラつき量を示すからである。また、Ｈ．２６４マクロブロックモード決定アルゴリズムの反復的な絞り込み性は、時間制御法がマクロブロックモード決定ループから早期に抜け出しながらも、依然として、十分な圧縮性能を有する妥当なビデオビットストリームを供給することを可能にする。結果として、モード決定及び動き予測フレームワーク内での時間制約アルゴリズムの実現は、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法を提供する。図３を更に詳細に参照するに、段階２０５にて、ビデオ符号化レイヤー１６０がビデオ信号１４９の１フレームに関してフレーム間予測を開始する。段階２１０にて、このフレームのマクロブロックを符号化するときにビデオ符号化レイヤー１６０は制約されるべきかどうかの確認が行われる。ビデオ符号化レイヤー１６０が制約される必要がない場合、段階２１５にて、ビデオ符号化レイヤー１６０は技術的に知られているようにマクロブロックを符号化する。しかしながら、ビデオ符号化レイヤー１６０が制約されなければならない場合、段階２２０にて、マクロブロックの符号化を制約するために計時アルゴリズムが有効化される。計時アルゴリズム（以下にて更に説明される）は、マクロブロックモード決定及び動き予測フレームワーク内でビデオ符号化レイヤー１６０が費やす時間量を制約するように実行される。
【００１２】
図４及び５を一時的に参照するに、符号化を制約するか否かを決定するために段階２１０にて使用される幾つかの例が示されている。図４との関連において、符号化を制約するか否かを決定する一手法は、入力バッファ１８０に格納されたデータの量すなわちレベルを使用する。具体的には、入力バッファ１８０に格納されたデータ量が（斜線部５１８により表されるように）所定の閾値５０６を上回る場合、入力バッファ１８０は“バッファ満杯”信号５０７をプロセッサ１９０に与える。“バッファ満杯”信号５０７は、実際には、ビデオデータがビデオ符号器１７０によって十分に速く処理されるか否かを表している。図５との関連において、符号化を制約するか否かを決定する他の一手法は、出力バッファ１８５に格納されたデータの量すなわちレベルを使用する。具体的には、出力バッファ１８５に格納されたデータ量が（斜線部５１９により表されるように）所定の閾値５１１を下回る場合、出力バッファ１８５は“バッファ空き”信号５１２をプロセッサ１９０に与える。“バッファ空き”信号５１２は、実際には、符号化されたビデオデータがビデオ符号器１７０によって十分に速く供給されるは否かを表している。また、図４及び５に示される技術は組み合わされてもよく、例えば、ビデオ符号化は入力バッファ１８０が満杯で、且つ出力バッファ１８５が空いている場合にのみ制約されてもよい。しかしながら、本発明概念はそのように限定されるものではなく、制約された符号化を開始することが望ましい程度に不十分である性能レベルの可能性を検出するために、その他の機構が用いられることも可能である。
【００１３】
続いて図６を参照するに、図３の段階２２０が一層詳細に示されている。段階３０５にて、時間量ＴＦがフレームの符号化に割り当てられる。このＴＦの初期値はフレーム内の全てのマクロブロックを処理するために利用可能な時間量を表している。ＴＦの値は表示時間よりも短い。ＣＩＦビデオに関しては、ＴＦは０．０３３秒よりも短い。この割当てにおいて、符号器のオーバーヘッドは、モード決定及び動き予測に関連しない処理時間をＴＦが含まないように、決定又は概算されるべきである。本発明概念ではないが、符号器オーバーヘッドは技術的に知られているようにタイマーとバッファを平均化することとを用いて、順応的に決定されることができる。なお、時間量ＴＦはまた、入力バッファ１８０及び／又は出力バッファ１８５のレベルに応じて更に調整されてもよい。段階３１０にて、フレームに含まれる１つのマクロブロックが本発明原理に従って符号化される（これについては後述される）。段階３２０にて、全てのマクロブロックが処理されたかどうかの確認が行われる。一部のマクロブロックがまだ残っている場合、段階３１５へと進み、ＴＦの値は更に、先行マクロブロックを処理するために掛かった時間量だけ小さくされる。言い換えれば、この時、ＴＦはフレームに含まれる残りのマクロブロックを処理するために残されている時間量を表す。フレームの全てのマクロブロックが処理されると、この実行は終了する。
【００１４】
段階３１０にて、１つのフレームのマクロブロックが本発明原理に従って制約的に処理される。段階３１０にて使用される例示的なフローチャートが図７に示されている。段階４０５にて、時間量ＴＭが１つのマクロブロックを処理するために割り当てられる。この時間量ＴＭはＴＦから得られる。例えば、ＴＭは単純に、処理されなければならないマクロブロック数でＴＦを割ることによって決定されてもよい。単純化のため、時間量ＴＭはここでは“時間単位”との絡みで説明される。時間単位は経験的に決定されてもよい。これを例示する目的で、約３ＧＨｚのクロック周波数を有するＰｅｎｔｉｕｍ（登録商標）ＩＶに基づくシステムでは、時間単位は２０μｓに等しく設定される。本発明原理に従って、１つのマクロブロックを処理するために利用可能な具体的な時間量ＴＭは、Ｈ．２６４符号器がマクロブロックを符号化するために使用することができる利用可能な符号化モードの部分集合を決定する。本発明概念は、結果として、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法を提供する。
【００１５】
図７のフローチャートの説明を続ける前に、一時的に、図８の表６０５に注目する。本発明原理に従って、Ｈ．２６４のマクロブロック符号化モードは、各々の部分集合が符号化時間の長さに関連付けられた多数の部分集合に分類される。これは表６０５に例示されている。例えば、表６０５から見て取れるように、部分集合Ａの符号化モードは２つの時間単位を必要とし、１６×１６マクロブロックモードを有している。従って、ビデオ符号器が部分集合Ａの符号化モードを選択すると、マクロブロックに関して１６×１６マクロブロックモードが検査される。単に例示として、表６０５に示された割当ては図７のフローチャートにて使用される。
【００１６】
図７に戻り、段階４１０にて、ビデオ符号器１７０は技術的に知られているスキップモードを確認する。具体的には、ビデオ符号器はスキップモードを選択した場合、歪み及び出力ビットを決定する。そして、この実行は段階４１５へと進み、マクロブロックを処理するために少なくともＴＡ時間単位が残されているかどうかを決定するためにＴＭの値が確認される。ＴＡ時間単位が残されていない場合、この実行は段階４５５へと進む（これについては後述される）。一方、少なくともＴＡ時間単位が残されている場合、段階４２０にて、ビデオ符号器は部分集合Ａに関連付けられた符号化モードを検査する。すなわち、ビデオ符号器は選択された部分集合に関する符号化モードを用いてマクロブロックを多数の符号化ビットに符号化する。例えば、図８の表６０５に示された関連付けを用い、ビデオ符号器は１６×１６マクロブロックモードによりマクロブロックを符号化する。符号化の後、段階４２５にて、このマクロブロックを符号化するために掛かった時間量がＴＭから減算される。
【００１７】
段階４３０にて、このマクロブロックを処理するために少なくともＴＢ時間単位が残されているかどうかを決定するためにＴＭの確認が行われる。少なくともＴＢ時間単位が残されている場合、段階４３５にて、ビデオ符号器は部分集合Ｂに関連付けられた符号化モードを検査する。すなわち、ビデオ符号器は選択された部分集合に関する符号化モードを用いてマクロブロックを多数の符号化ビットに符号化する。例えば、図８の表６０５に示された関連付けを用い、ビデオ符号器は８×８、４×８、８×４及び４×４という４つのマクロブロックモードによりマクロブロックを符号化する。
【００１８】
一方、段階４３０にてＴＢ時間単位が残されていない場合、この実行は段階４４０へと進む。段階４４０にて、このマクロブロックを処理するために少なくともＴＣ時間単位が残されているかどうかを決定するためにＴＭの確認が行われる。ＴＣ時間単位が残されていない場合、この実行は段階４５５へと進む（これについては後述される）。一方、少なくともＴＣ時間単位が残されている場合、段階４４５にて、ビデオ符号器は部分集合Ｃに関連付けられた符号化モードを検査する。例えば、図８の表６０５に示された関連付けを用い、ビデオ符号器は８×８マクロブロックモードによりマクロブロックを符号化する。部分集合Ｂ又はＣの何れかが選択された場合、段階４５０にて、このマクロブロックを符号化するために掛かった時間量がＴＭから減算される。
【００１９】
段階４５５にて、このマクロブロックを処理するために少なくともＴＤ時間単位が残されているかどうかを決定するためにＴＭの確認が行われる。ＴＤ時間単位が残されていない場合、この実行は段階４８０へと進む（これについては後述される）。一方、少なくともＴＤ時間単位が残されている場合、段階４６０にて、ビデオ符号器は部分集合Ｄに関連付けられた符号化モードを検査する。例えば、図８の表６０５に示された関連付けを用い、ビデオ符号器は１６×８マクロブロックモードによりマクロブロックを符号化する。符号化の後、段階４６５にて、このマクロブロックを符号化するために掛かった時間量がＴＭから減算される。
【００２０】
段階４７０にて、このマクロブロックを処理するために少なくともＴＥ時間単位が残されているかどうかを決定するためにＴＭの確認が行われる。ＴＥ時間単位が残されていない場合、この実行は段階４８０へと進む（これについては後述される）。一方、少なくともＴＤ時間単位が残されている場合、段階４７５にて、ビデオ符号器は部分集合Ｅに関連付けられた符号化モードを検査する。例えば、図８の表６０５に示された関連付けを用い、ビデオ符号器は８×１６マクロブロックモードによりマクロブロックを符号化する。
【００２１】
段階４８０にて、このマクロブロックを符号化するために何らかの部分集合が選択されたかどうかを決定するために確認が行われる。不十分な処理時間しか利用可能でなかったために何れの部分集合も選択されなかった場合、このマクロブロックはスキップされ、この実行は図６の段階３２０へと進む。一方、少なくとも１つの部分集合が選択された場合、段階４８５にて、ビデオ符号器は選択された部分集合から１つの符号化モードを選択する。この選択された符号化モードは、伝送及び／又は記憶のためにマクロブロックを符号化するために実際に使用されるものである。具体的には、選択された部分集合の符号化モード毎に、ビデオ符号器は出力符号化ビット数をカウントし、多数ある既知の技術の何れか１つを用いて、再構成されるマクロブロック（出力符号化ビットから得られる）と元のマクロブロックとの間の歪みを計算する。例えば、ビデオ符号器は、再構成されるマクロブロックと元のマクロブロックとの間の絶対差の和（ＳＡＤ）、再構成されるマクロブロックと元のマクロブロックとの間の自乗誤差の和（ＳＳＥ）の歪み、又は自乗平均平方根（ＲＭＳ）の測定値を用いることができる。以降では、レート歪み最適化（ｒａｔｅ−ｄｉｓｔｏｒｔｉｏｎ  ｏｐｔｉｍｉｚａｔｉｏｎ；ＲＤＯ）指標が、符号化モード毎に技術的に知られているように計算される。具体的には、ＲＤＯは出力符号化ビットと計算された歪みファクタとを符号化モード毎に結合させる。例えば、“係数Ａ”及び“係数Ｂ”を経験的に決定され得る重み付け係数、“符号化ビット数”を或る符号化モードに関する出力符号化ビットの数、そして、“歪み”をその符号化モードに関して計算された歪みファクタとして、ＲＤＯ＝係数Ａ×符号化ビット数＋係数Ｂ×歪みとされる。各々のＲＤＯ値が決定されると、ビデオ符号器は、より小さいＲＤＯを有する符号化モードを実際の符号化モードとして選択する。実際の符号化モードの選択後、この実行は段階３２０へと進む。
【００２２】
上述のように、そして本発明概念に従って、ビデオ符号器は、ビデオ符号器の演算を制約することによる、より決定的な実行時間のために符号化効率を代償とする。故に、ビデオ符号器は順応的に実時間符号化性能を維持する。具体的には、上述の時間制約アルゴリズムは、基本的に、マクロブロックを処理するために十分な時間が残されていない場合に選択を排除する。例えば、上述された実施形態との関連においては、ビデオ符号器が或るマクロブロックに対して１６×１６及び１６×８モードを検査するのに十分な時間しか有していない場合、ビデオ符号器は、その他のモードを検査する代わりに、これら２つのモードの内の最良のものを選択する。故に、そして本発明原理に従って、符号化効率を全くとは言わないまでも殆ど低下させずに、最良のフレーム符号化時間を実現することが可能である。実際、この方法を用いることにより、全フレームの９５％超が割り当てられた時間内で符号化されることになり、故に、入力に関係なく実時間性能を維持する符号器が実現される。例えば、制約されたビデオ符号器は、符号化されたビットストリームの大きさを２−３％増大させ得るが、実時間演算を保証すべく１５−２０％の時間を節約することができる。
【００２３】
なお、本発明概念はＨ．２６４フレーム間予測との関連の下で示されたが、本発明概念はそのように限定されるものではなく、Ｈ．２６４のその他の部分、及びその他の種類のビデオ符号化にも適用可能である。例えば、本発明概念はフレーム内予測にも適用可能である。また、図３の段階２１０により表されるように、制約された符号化モードを動的に選択することに関連して示されたが、この段階は排除されることができ、ビデオ符号器は単純に、本発明原理に従った制約モードで動作させられることができる。実際、制約モードはビデオ符号器における設定可能な選択肢とされてもよい。また、その他の変形例も可能である。例えば、動き予測の目的で使用される参照フレーム数は、利用可能な時間単位に基づいて調整されることができる。同様に、限られた時間単位数がマクロブロックに割り当てられている場合、時間的にすぐ前の参照ピクチャーのみが用いられてもよい。さらに、例えば２つのブロック間の絶対差の和（ＳＡＤ）及び／又は不一致（ｖａｒｉａｎｃｅ）などの、画像及びマクロブロックの既知の複雑さ指標が、時間単位及び符号化モードを割り当てるための要因として用いられてもよい。
【００２４】
以上の説明は単に本発明原理を例示するものであり、認識されるように、ここでは明示的に説明されていないが、本発明原理を具体化し且つ本発明の意図及び範囲内にある数多くの代替構成が当業者により考え出されるであろう。例えば、機能要素は、別個の機能要素であるように例示されているが、１つ以上の集積回路（ＩＣ）に具体化されてもよい。同様に、何れか又は全ての要素は、別個の要素として示されているが、例えば、図３、６及び／又は７に示された段階群の１つ以上に対応する付随のソフトウェアを実行する、格納プログラムにより制御される１つのプロセッサ、例えばデジタル信号プロセッサ、に実装されていてもよい。さらに、本発明原理は、例えば衛星、ワイヤレス・フィデリティー（Ｗｉ−Ｆｉ）、セルラーといった、その他の種類の通信システムにも適用可能である。実際に、本発明概念は静止型あるいは携帯型の受信器に適用可能である。故に、例示された実施形態には数多くの変更が為され得ること、及び添付の請求項によって定められる本発明の思想及び範囲を逸脱することなく他の構成が考え出され得ることは理解されるべきである。
【図面の簡単な説明】
【００２５】
【図１】本発明原理に従った装置を例示する図である。
【図２】本発明原理を具体化するＨ．２６４符号器を例示するブロック図である。
【図３】本発明原理に従ったビデオ符号器にて使用される方法を例示するフローチャートである。
【図４】本発明原理に従って符号化を制約すべきか否かを検出する技術を例示する図である。
【図５】本発明原理に従って符号化を制約すべきか否かを検出する技術を例示する図である。
【図６】本発明原理に従ったビデオ符号器にて使用される他の方法を例示するフローチャートである。
【図７】本発明原理に従ったビデオ符号器にて使用される他の方法を例示するフローチャートである。
【図８】本発明原理に従った符号化モードの部分集合を示す表である。
【図１】
2008529416.tif 000003
【図２】
2008529416.tif 000004
【図３】
2008529416.tif 000005
【図４】
2008529416.tif 000006
【図５】
2008529416.tif 000007
【図６】
2008529416.tif 000008
【図７】
2008529416.tif 000009
【図８】
2008529416.tif 000010
【国際調査報告】
2008529416.tif 000011
2008529416.tif 000012
2008529416.tif 000013
2008529416.tif 000014