(57)【要約】【課題】計算が強制されるビデオ符号化。【解決手段】ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、そして符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、動き推定技術を使用することなしにビデオフレームを符号化することを伴うビデオ符号化技術が記述される。たとえば、しきい値は与えられたビデオフレームの符号化に対して利用可能な処理サイクルの数を定義することが可能であり、そして決定された処理サイクルの数は、与えられたビデオフレームの符号化処理の期間中に使用されたサイクルの計数された数であることが可能である。もしも符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、動き推定技術は、テクスチャ符号化等の計算的により少なく強力な符号化技術を選択して中断されることが可能である。
2005531979.tif 000002
【特許請求の範囲】
【請求項１】
デバイスであって、
与えられたビデオフレームが符号化されるときに使用された処理サイクルの数を決定し、そして決定された処理サイクルの数に基づいて符号化モードを選択することによって、ビデオフレームを符号化する符号化器と、
そして符号化されたビデオフレームを送信する送信機と
を含むデバイス。
【請求項２】
ここで、符号化器は、符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、与えられたビデオフレームを動き推定技術を使用することなしに符号化する符号化モードを選択する、請求項１記載のデバイス。
【請求項３】
ここで、符号化器は、符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は、与えられたビデオフレームを、動き推定技術を使用して符号化する符号化モードを選択する、請求項２記載のデバイス。
【請求項４】
ここで、符号化器は、与えられたビデオフレームの符号化のための計算処理上の予定を定義するためにしきい値を確立する、請求項２記載のデバイス。
【請求項５】
ここで、符号化器は、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義する、請求項２記載のデバイス。
【請求項６】
ここで、処理サイクルの数の決定は、与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することを含む、請求項１記載のデバイス。
【請求項７】
さらに、ビデオフレームをリアルタイムで捕捉するための画像センサを含む、ここで、符号化器はビデオフレームをリアルタイムで符号化し、そしてここで送信機は符号化されたビデオフレームをリアルタイムで送信する、請求項１記載のデバイス。
【請求項８】
ここで、ビデオフレームはＭＰＥＧ‐４標準に従って符号化される、請求項１記載のデバイス。
【請求項９】
ここで、デバイスは無線デバイスである、請求項１記載のデバイス。
【請求項１０】
ここで、デバイスは電池を電源とするデバイスである、請求項１記載のデバイス。
【請求項１１】
ここで、符号化器は、機械により読み出し可能な命令を実行するディジタル信号処理装置を含む、請求項１記載の装置。
【請求項１２】
方法であって、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、そして
決定された処理サイクルの数に基づいてビデオフレームを選択的に符号化する
ことを含む方法。
【請求項１３】
さらに、符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、動き推定技術を用いることを使用しないビデオフレームに対する符号化モードを選択することを含む、請求項１２記載の方法。
【請求項１４】
さらに、符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は、動き推定技術を使用するビデオフレームに対する符号化モードを選択することを含む、請求項１３記載の方法。
【請求項１５】
さらに、ビデオフレームの符号化のための計算処理上の予定を定義するためにしきい値を確立することを含む、請求項１３記載の方法。
【請求項１６】
ここで、しきい値を確立することは、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義することを含む、請求項１５記載の方法。
【請求項１７】
ここで、処理サイクルの数を決定することは、ビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することを含む、請求項１２記載の方法。
【請求項１８】
ここで、ビデオフレームを選択的に符号化することは、実行されるべき計算の数を動的に調整することを含む、請求項１２記載の方法。
【請求項１９】
方法であって、
ビデオフレームの符号化に対する利用可能な処理サイクルの数を定義するためにしきい値を確立し、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、
符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は動き推定技術を使用してビデオフレームを符号化し、そして
符号化の期間中に使用された処理サイクルの数がしきい値よりも大きい場合は動き推定技術を使用することなしにビデオフレームを符号化する
ことを含む方法。
【請求項２０】
ここで、処理サイクルの数を決定することは、ビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することを含む、請求項１９記載の方法。
【請求項２１】
ここで、しきい値を確立することは、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義することを含む、請求項１９記載の方法。
【請求項２２】
デバイスであって、
与えられたビデオフレームを符号化するための計算処理上の予定を定義するためにしきい値を確立し、与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は動き推定技術を使用して与えられたビデオフレームを符号化し、そして符号化の期間中に使用された処理サイクルの数がしきい値よりも大きい場合は動き推定技術を使用することなしに与えられたビデオフレームを符号化することによってビデオフレームを符号化する符号化器と、そして
符号化されたビデオフレームを送信する送信機と
を含むデバイス。
【請求項２３】
ここで、デバイスは、ディジタルテレビジョン、無線通信デバイス、パーソナルディジタルアシスタント、ラップトップコンピュータ、デスクトップコンピュータ、ディジタルカメラ、ディジタル記録デバイス、ビデオ能力を有するセルラ無線電話、およびビデオ能力を有する衛星無線電話を含むグループから選択される、請求項２２記載のデバイス。
【請求項２４】
装置であって、
計算機によって実行可能な命令を記憶するメモリと、そして
与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、そして決定された処理サイクルの数に基づいて与えられたビデオフレームを符号化するための符号化モードを選択するための、命令を実行する処理装置と
を含む装置。
【請求項２５】
ここで、メモリはビデオ符号化ルーチンに対する計算処理上の予定を定義するしきい値を記憶し、そしてここで処理装置は、符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、動き推定技術を使用することなしに与えられたビデオフレームを符号化する符号化モードを選択するための命令を実行する、請求項２４記載の装置。
【請求項２６】
ここで、処理装置はさらに、符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は、動き推定技術を使用して与えられたビデオフレームを符号化する符号化モードを選択するための命令を実行する、請求項２５記載の装置。
【請求項２７】
ここで、処理装置はさらに、与えられたビデオフレームの符号化のための計算処理上の予定を定義するためにしきい値を確立するための命令を実行する、請求項２５記載の装置。
【請求項２８】
ここで、処理装置は、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義することによってしきい値を確立するための命令を実行する、請求項２７記載の装置。
【請求項２９】
ここで、処理装置は与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数を計数するための命令を実行することによって、処理サイクルの数を決定するための命令を実行する、請求項２４記載の装置。
【請求項３０】
装置であって、
計算機により実行可能な命令を記憶するためのメモリと、そしてビデオ符号化ルーチンに対する計算処理上の予定を定義するしきい値と、そして
メモリ内に記憶されたしきい値を確立し、与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は動き推定技術を使用して与えられたビデオフレームを符号化し、そして符号化の期間中に使用された処理サイクルの数がしきい値よりも大きい場合は動き推定技術を使用することなしに与えられたビデオフレームを符号化するための命令を実行する処理装置と
を含む装置。
【請求項３１】
ここで、処理装置は、与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数を計数するための命令を実行することによって、処理サイクルの数を決定するための命令を実行する、請求項３０記載の装置。
【請求項３２】
ここで、処理装置は、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義するための命令を実行することによって、しきい値を確立するための命令を実行する、請求項３０記載の装置。
【請求項３３】
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、そして
決定された処理サイクルの数に基づいて異なった符号化モードを使用してビデオフレームを選択的に符号化する
ことによって、ＭＰＥＧ‐４標準に従ったビデオブロックを符号化する装置。
【請求項３４】
ここで、装置は、符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、動き推定技術を使用することなしにビデオフレームを符号化する、請求項３３記載の装置。
【請求項３５】
ここで、処理サイクルの数を決定することは、ビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することを含む、請求項３３記載の装置。
【請求項３６】
処理サイクルのしきい値数を確立し、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、
符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は動き推定技術を使用してビデオフレームを符号化し、そして
符号化の期間中に使用された処理サイクルの数がしきい値よりも大きい場合は動き推定技術を使用することなしにビデオフレームを符号化する
ことによってＭＰＥＧ‐４に従ったビデオブロックを符号化する装置。
【請求項３７】
ここで、処理サイクルの数を決定することは、ビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することを含む、請求項３６記載の装置。
【請求項３８】
ここで、しきい値を確立することは、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義することを含む請求項３６記載の装置。
【請求項３９】
ＭＰＥＧ‐４標準に従ったビデオストリームを符号化するデバイスにおける実行にあたって、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、そして
決定された処理サイクルの数に基づいて異なった符号化モードを使用してビデオフレームを選択的に符号化する
命令を含む、計算機によって読み出し可能な媒体。
【請求項４０】
ここで、実行にあたっての命令は、符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は動き推定技術を使用することなしにビデオフレームを符号化することである、請求項３９記載の計算機により読み出し可能な媒体。
【請求項４１】
ここで、実行にあたっての命令は、符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は動き推定技術を使用してビデオフレームを符号化することである、請求項４０記載の計算機により読み出し可能な媒体。
【請求項４２】
ここで、実行にあたっての命令は、ビデオフレームの符号化のための計算処理上の予定を定義するためにしきい値を確立することである、請求項４０記載の計算機により読み出し可能な媒体。
【請求項４３】
ここで、実行にあたっての命令は、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算することによってしきい値を確立し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義することである、請求項４２記載の計算機により読み出し可能な媒体。
【請求項４４】
ここで、実行にあたっての命令は、ビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することによって処理サイクルの数を決定することである、請求項３９記載の計算機により読み出し可能な媒体。
【請求項４５】
ＭＰＥＧ‐４標準に従ったビデオストリームを符号化するデバイスにおける実行にあたって、
ビデオフレームの符号化のための計算処理上の予定を定義するためにしきい値を確立し、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、
符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は、動き推定技術を使用してビデオフレームを符号化し、そして
符号化の期間中に使用された処理サイクルの数がしきい値よりも大きい場合は、動き推定技術を使用することなしにビデオフレームを符号化する
命令を含む、計算機によって読み出し可能な媒体。
【請求項４６】
ここで、実行にあたっての命令は、ビデオフレームの符号化の期間中に使用された処理サイクルの数を計数することによって処理サイクルの数を決定することである、請求項４５記載の計算機によって読み出し可能な媒体。
【請求項４７】
ここで、実行にあたっての命令は、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルの平均数を計算することによってしきい値を確立し、そして少なくとも一部は計算された処理サイクルの平均数に基づいてしきい値を定義することである、請求項４５記載の計算機によって読み出し可能な媒体。
【請求項４８】
装置であって、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定するための手段と、そして
符号化の期間中に使用された処理サイクルの数がしきい値を超える場合は、動き推定技術を使用することなしにビデオフレームを符号化するための手段と
を含む装置。
【請求項４９】
装置であって、
ビデオフレームを符号化するための計算処理上の予定を定義するためにしきい値を確立するための手段と、
ビデオフレームの符号化の期間中に使用された処理サイクルの数を決定するための手段と、
符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は動き推定技術を使用してビデオフレームを符号化するための手段と、そして
符号化の期間中に使用された処理サイクルの数がしきい値よりも大きい場合は動き推定技術を使用することなしにビデオフレームを符号化するための手段と
を含む装置。
【請求項５０】
方法であって、
ビデオフレームを符号化するための計算処理上の予定を定義するためにしきい値を確立し、
ビデオフレームが符号化されるときに使用される処理サイクルの数を決定し、そして
決定された処理サイクルの数に基づいてしきい値に関して符号化ルーチンを調整する
ことを含む方法。
【請求項５１】
ＭＰＥＧ‐４標準に従ったビデオストリームを符号化するデバイスにおける実行にあたって、
ビデオフレームを符号化するための計算処理上の予定を定義するためにしきい値を確立し、
ビデオフレームが符号化されるときに使用された処理サイクルの数を決定し、そして
決定された処理サイクルの数に基づいてしきい値に関して符号化ルーチンを調整する
命令を含む計算機によって読み出し可能な媒体。
【請求項５２】
装置であって、
計算機によって実行可能な命令およびビデオ符号化ルーチンに対する計算処理上の予定を定義するしきい値を記憶するメモリと、そして
しきい値を確立し、ビデオフレームが符号化されるときに使用された処理サイクルの数を決定し、そして決定された処理サイクルの数に基づいて、しきい値に関して符号化ルーチンを調整するための命令を実行する処理装置と
を含む装置。
【請求項５３】
方法であって、
第１の符号化技術を使用してビデオフレームの第１の部分を符号化し、
第２の符号化技術を使用してビデオフレームの第２の部分を符号化する
ことを含む方法。
【請求項５４】
ここで、第１の符号化技術は動きおよびテクスチャに基づいた符号化技術を含み、そして第２の符号化技術は動きに基づかない(a non-motion based)符号化技術を含む、請求項５３記載の方法。
【請求項５５】
方法であって、
ビデオフレームの符号化の期間中に使用された処理サイクルの数がしきい値よりも小さい場合は第１の符号化モードに従ってビデオフレームのビデオブロックの第１の組み合わせを符号化し、そして
処理サイクルの数がしきい値を超える場合は第２の符号化モードに従ってビデオフレームのビデオブロックの第２の組み合わせを符号化する
ことを含む方法。
【請求項５６】
ここで、第１の符号化モードは動きに基づいた符号化を含み、そして第２の符号化モードは動きに基づいた符号化を含まない、請求項５５記載の方法。
【請求項５７】
ＭＰＥＧ‐４標準に従って符号化されたビデオフレームを含む、計算機によって読み出し可能な媒体であって、ここでビデオフレームは（Ｎ）個のビデオブロックを含み、ここでビデオブロックの第１のシーケンス（１からＭ）は実質上動きベクトルを使用して符号化され、そしてここでビデオブロック（Ｍ＋１からＮ）は動きベクトルを使用することなしに符号化される、
媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタルビデオ処理、そしてより特定的にはビデオシーケンスの符号化に関する。
【背景技術】
【０００２】
ディジタルビデオの能力は、ディジタルテレビジョン、ディジタル直接放送システム、無線通信デバイス、パーソナルディジタルアシスタント（ＰＤＡｓ：personal digital assistants）、ラップトップコンピュータ、デスクトップコンピュータ、ディジタルカメラ、ディジタル記録デバイス、セルラあるいは衛星無線電話等を含む、広範囲のデバイスと結合することが可能である。これらの、そして他のディジタルビデオデバイスは、フルモーションビデオシーケンスの創造、修正、送信、記憶、記録、および再生において、従来のアナログビデオシステムに勝る十分な改善を与えることが可能である。
【０００３】
いくつかの異なったビデオ符号化標準が、ディジタルビデオシーケンスの通信に対して確立されてきている。たとえば、動画像符号化専門家会合(ＭＰＥＧ：Moving Picture Experts Group)は、ＭＰＥＧ‐１、ＭＰＥＧ‐２、およびＭＰＥＧ‐４を含むいくつかの標準を開発してきている。他の標準は、ＩＴＵ  Ｈ．２６３、Cupertino  CaliforniaのApple  Computerによって開発されたQuick TimeTM技術、Redmond，Washingtonの  Microsoft  Corporationによって開発されたVideo for WindowsTM  技術、Intel  Corporationによって開発されたIndeoＴＭ、Seattle，WashingtonのRealNetworks，Inc.からのRealVideoTM、およびSuperMac,Inc.によって開発されたCinepakTMを含む。なお開発されるべき標準を含んでいるこれらのおよび他の標準は、開発を続けるであろう。
【０００４】
多くのビデオ符号化標準は、圧縮された形態でデータを符号化することによって伝送レートの増加を達成している。圧縮は画像フレームの効率的な伝送のために送信されるべき必要のあるデータの総量を減少することが可能である。たとえば、ＭＰＥＧ標準は圧縮なしに達成され得るよりもより狭い帯域幅上に、ビデオおよび画像伝送を容易にするために設計されたグラフィックスおよびビデオ圧縮技術を利用している。とくにＭＰＥＧ標準は、フレーム間圧縮を与えるために、時間的な、あるいはフレーム間相関として参照される、連続した画像フレーム間の類似性を利用するビデオ符号化技術をサポートしている。フレーム間圧縮技術は、画像フレームのピクセルに基づいた表現を動きの表現に変換することによってフレームを越えるデータの冗長性を用いている。さらに、ビデオ符号化技術は、画像フレーム内の動きの表現をさらに圧縮することが可能なフレーム内圧縮を達成するために、空間的なあるいはフレーム内相関として参照される画像フレーム内の類似性を利用することが可能である。フレーム内圧縮は典型的には、離散コサイン変換（ＤＣＴ：discrete cosine transform）符号化等の静止画像を圧縮するためのテクスチャ符号化処理を基にしている。
【０００５】
圧縮技術をサポートするために、多くのディジタルビデオデバイスは、ディジタルビデオシーケンスを圧縮するための符号化器、およびディジタルビデオシーケンスをデコンプレスするための復号器を含んでいる。多くの場合符号化器および復号器は、ビデオ画像のシーケンスを定義するフレーム内のピクセルのブロック上で動作する、統合された符号化器／復号器（ＣＯＤＥＣ）を含む。たとえば、ＭＰＥＧ‐４標準においては、送出デバイスの符号化器は、典型的には送信すべきビデオ画像フレームを１６×１６ピクセルアレイを含むマクロブロックに分割する。画像フレーム内の各マクロブロックに対して、符号化器は最も類似したマクロブロックを識別するために、すぐ先に立つビデオフレームのマクロブロックを探索し、そして伝送のために、マクロブロック間の差を前のフレームからのいずれのマクロブロックが符号化のために使用されたを示す動きベクトル(motion vector)とともに符号化する。受信デバイスの復号器は、動きベクトルおよび符号化された差を受信し、そしてビデオシーケンスを発生するために動き補償(motion compensation)を実行する。
【０００６】
ビデオ符号化処理は、特に動き推定技術が使用される場合は計算的に強力である。たとえば、ビデオブロックを前に送信されたフレームのビデオブロックと比較する処理は多数の計算を必要とする。改善された符号化技術は、無線デバイスあるいはとくに計算上の資源がより限定されそして電力消費が問題となる、他の可搬型ビデオデバイスにおける使用に対して非常に望ましいものである。さらに、技術はこのような無線デバイスにおいてはリアルタイムでの符号化を容易にすることが望まれる。
【発明の開示】
【課題を解決するための手段】
【０００７】
この開示はビデオ符号化技術を記述する。ビデオ符号化技術はビデオフレームの符号化の期間中に使用された処理サイクルの数を決定し、そして決定された処理サイクルの数に基づいて、異なった符号化モードを用いてビデオフレームを選択的に符号化することを含むことが可能である。もしも決定された処理サイクルの数がしきい値を超えない場合は、ビデオフレームの符号化は動き推定技術(motion estimation)を使用して第１の符号化モードにおいて実行することが可能である。しかしながら、動き推定技術を使用しないビデオフレームの符号化に関する第２のモードは、もしも決定された処理サイクルの数がしきい値を超える場合に使用されることが可能である。
【０００８】
しきい値は、与えられたビデオフレームの符号化に対して利用可能な処理サイクルの数を定義することが可能であり、そして決定された処理サイクルの数は、与えられたビデオフレームの符号化処理の期間中に使用された計数されたサイクルの数であることが可能である。もしも決定された処理サイクルの数がしきい値を超える場合は、動き推定技術は、フレームの次のビデオブロックに対する、あるいは１個あるいはそれ以上の後のフレームに対するテクスチャ符号化等の、計算的により少なく強力な(less computationally intensive)符号化技術を選択して中止されることが可能である。したがって、計算上の特性を向上するために、異なった符号化モードが選択的な基準で使用されることが可能である。このように、ビデオ符号化は比較的限定された処理能力を有するデバイスにおいて実現されるべきリアルタイム符号化を可能として、加速されることが可能である。
【０００９】
この技術はハードウエア、ソフトウエア、ファームウエア、あるいはこれらの任意の組み合わせの中で実行されることが可能である。ソフトウエア内で実行される場合は、この技術は実行されるときにこの中に記述された１個あるいはそれ以上の符号化技術を実行するプログラムコードを含む、計算機によって読み出し可能な媒体に向けられることが可能である。種々の実施例に関するさらなる詳細が以下の添付図面および記述の中に示される。他の特徴、目的および利点は、記述および図面からそして特許請求の範囲から明白となるであろう。
【発明を実施するための最良の形態】
【００１０】
一般的に、この開示は、圧縮比におけるトレードオフを用いて、資源の限定された基盤の中に、ビデオ符号化方式を適合させるために使用することが可能な符号化技術に向けられている。技術は、あるシナリオにおける計算を減少し、処理時間を加速し、そして多分ビデオ符号化期間中の電力消費を減少する目的のために、ディジタルビデオデバイスの符号化器によって実行されることが可能である。このようにして、符号化技術はＭＰＥＧ‐４等の標準に従ったビデオ符号化を改善し、そして計算処理上の資源（computational resource）がさらに限定され、そして電力消費が問題とされる無線デバイスにおけるビデオ符号化の実行をさらに容易にすることが可能である。さらに、技術はＭＰＥＧ‐４復号標準等の復号標準との共働性(interoperability)能力を維持するように配置することが可能である。
【００１１】
この中に記述されたビデオ符号化技術は、与えられたビデオフレームの符号化の中にある計算処理上のメトリック（computational metric）に応じた選択的な符号化技術を適用している。技術は計算処理上のメトリックがしきい値を超えるまでは第１の符号化モードを、そしてその後は第２の符号化モードを適用することが可能である。このようにして、このビデオ符号化技術はそれぞれのフレームの符号化に向けられる計算処理上の資源を抑制することが可能である。
【００１２】
より特定的には、ビデオ符号化技術はビデオフレームの符号化のための計算処理上の予定(computational budget)を確立する。計算的に強力な動き推定技術（あるいは任意の他の、ビデオ符号化における計算的に高価なモジュール）は、計算処理上の予定が使用し切られていない限りは使用が可能である。しかしながら、もしも計算処理上の予定が与えられたビデオフレームの符号化の期間中に使用し切られる場合は、計算的に強力な技術は、フレーム内テクスチャ符号化、あるいはより狭い探索領域上の動き推定符号化等の計算的な強力性のより小さい符号化技術を選択して中断されることが可能である。テクスチャ符号化あるいは減少された探索領域上の動き推定は、より少ない圧縮にも拘らず、よりずっと速く実行することが可能である。このようにして、任意の与えられたビデオフレームに対する符号化処理は過度の時間量を必要としないことが保証可能である。そしてそれは、そうでない場合はリアルタイムでのビデオシーケンスの伝送を損なうことが可能である。さらに、与えられたビデオフレームの符号化を動的に定義することによって、計算処理上の資源が十分である場合は動き推定と組み合わせられたデータ圧縮を利用しながら、計算処理上の資源をより効率的に使用することが可能である。
【００１３】
ＭＰＥＧ‐４標準等の標準に従ったディジタルビデオデータを符号化するディジタルビデオデバイスは、符号化アルゴリズムを実行するためにディジタル信号処理装置（ＤＳＰ：digital signal processor）等の処理装置を実現するかも知れない。符号化アルゴリズムは、ビデオフレームを構成する個々のビデオブロックを符号化するために動き推定技術を実現するかも知れない。指摘したように、動き推定技術は非常に計算的に強力である。とくに、動き推定技術は典型的には、動きベクトルを定義するときの使用に対して許容可能な整合を識別するために、前に送信されたフレーム（あるいは次のフレーム）に関するビデオブロックの若干あるいはすべてに対する、符号化されるべきビデオブロックの比較を含む。さらに、一つのブロックの他に対する個々の比較の各々は、ピクセルに関する比較を実行するためにいくらかの計算を必要とするかも知れない。しかしながら、アルゴリズムを実行しているＤＳＰの処理速度は一般に固定されている。換言すれば、ＤＳＰは典型的にはサイクル／秒（Ｈｚ）で定義された周波数で動作する。たとえば、５０メガヘルツのクロック速度で動作しているＤＳＰは、毎秒ほぼ５，０００万インストラクションを実行する。
【００１４】
許容可能な動き推定符号化に対して必要とされる計算の数は任意の与えられたビデオフレームに対して未知であるかも知れない。たとえば、動き推定技術を使用している任意の与えられたビデオフレームを符号化するために必要とされる計算の数は、ビデオフレームの内容および含まれる探索アルゴリズムによって変化するかも知れない。しかしながら、必要とされる分解能を有するビデオシーケンスに関するリアルタイム伝送を促進するためには、画像フレームは与えられた時間量の内に符号化されることが必要であるかも知れない。とくに、約１５フレーム／秒あるいはそれ以上が、ビデオシーケンスに関する必要とされる分解能を保証するために典型的に必要とされる。
【００１５】
若干のフレームは、動き推定技術を使用する他のフレームよりも符号化するためにより長いことを必要とするために、ＤＳＰが許容可能な符号化をサポート可能であることを保証するための一つの方法は、ＤＳＰのクロック速度を増加することであり、そしてそれによってＤＳＰが常に“最悪の場合”を符号化可能であることを保証することである。それは、もしもＤＳＰが１５フレーム／秒が符号化されることを保証するために必要とされる時間内に大部分の計算を必要とするビデオフレームを符号化するのに十分に速い場合は、リアルタイムビデオシーケンスはサポートされることが可能である、ということである。しかしながら、ＤＳＰのクロック速度の増加は、実行上の観点および動作上の観点の両者から、非常に高価であるかも知れない。とくに、増加されたクロック速度は、さらなる設計の複雑性と同様に、ＤＳＰによるさらなる電力消費を必要とするかも知れない。したがって、ビデオシーケンスのリアルタイム伝送によって課せられる時間制約の範囲内における、”最悪の場合”を符号化するのに必ずしも十分な速さではないかも知れないクロック速度で動作するＤＳＰによってサポートされるべき、リアルタイムビデオ符号化を可能とすることが大いに望まれる。
【００１６】
与えられたビデオフレームの符号化のための計算処理上の予定を定義することによって、ＤＳＰに関する必要とされる速度は与えられた符号化のシナリオに対して減少することが可能である。若干の場合、計算処理上の予定は少なくとも一部は、前のビデオフレームを符号化するために使用された平均サイクル数によって定義されることが可能である。換言すれば、もしも前のビデオフレームが非常に速く符号化される場合は、計算処理上の節約は、多分次のビデオフレームを符号化するために実行されるべき計算数の増加を可能にして、次のフレームの計算処理上の予定の中に組み入れられることが可能である。以下により詳細に概説される一つの例においては、一部は次のビデオフレームを符号化するための計算処理上の予定を定義するために、いくつかの前に符号化されたビデオフレームと組み合わせられた処理サイクルを定義する移動平均が使用されるかも知れない。したがって、前に送信されたビデオフレームの符号化の期間中の計算処理上の節約は、もしも必要な場合は、次のビデオフレームの符号化が前の計算処理上の節約を利用することが可能なようにリサイクルされるかも知れない。換言すれば、もしもより早いフレームの符号化が計算処理上の節約を生じている場合は、すなわちより早いフレームの符号化がその時存在するしきい値よりもより少ない処理サイクルのうちに実行される場合は、しきい値はより後のフレームに対して増加されることが可能である。他方、前のフレームにおける計算処理上の予定の使用し過ぎはまた、識別されることが可能でありそしてその場合、後のフレームに対するしきい値は従って減少されることが可能である。他の場合においては、計算処理上の予定は各フレームに対して適用されそして時間に対して変化しない、固定されたしきい値によって定義されるかも知れない。
【００１７】
この中に記述された技術はある利益を与えることが可能であるかも知れない。たとえば、この技術はビデオ符号化期間中の電力消費の減少を促進することが可能であり、そして、リアルタイム符号化に対して必要とされる時間制約の中の“最悪の場合”を符号化するのに必ずしも十分な速さではないクロック速度で動作するＤＳＰを用いて、効率的なリアルタイムビデオ符号化を促進することが可能である。この技術はとくに、無線ディジタルビデオデバイスあるいは計算処理上の資源がさらに制限されそして電力消費が問題となる他の可搬型ビデオデバイスの場合に有用であることが可能である。
【００１８】
ＤＳＰ技術における将来の進歩によって、ＤＳＰクロック速度は常に増加するであろうし、そして電力消費は与えられたクロック速度に対して減少するであろう。より速い、そしてより電力効率のよいＤＳＰをもってさえもなお、この中に記述された技術は非常に有用であることが可能である。たとえば、より速いクロック速度は、毎秒より多いフレームの符号化をサポートすることによって、あるいは３次元像等のより複雑な像をサポートすることによって、改善されたリアルタイム分解能を許容することが可能である。同様に、より速いクロック速度は、より大きいビデオフレームがリアルタイムで符号化されることを許容することが可能である。要するに、この中に記述された技術は、任意の与えられたクロック速度で動作するＤＳＰとの使用に限定されるものではなく、そして信号処理技術が発展を続けるのに伴ってよりずっと速いＤＳＰとの使用に対して等しく有用であることが可能である。同様に、もしもハードウエア内で実行される場合は、ハードウエア速度はそれに応じて減少することが可能である。
【００１９】
図１は、ソースデバイス４がビデオデータの符号化されたシーケンスを、通信リンク６上で受信デバイス８に送信している、例となるシステム２を示しているブロック線図である。ソースデバイス４および受信デバイス８は、ともにディジタルビデオデバイスである。とくに、ソースデバイス４は、動画像符号化専門家会合によって開発されたＭＰＥＧ‐４等の種々のビデオ圧縮標準の任意の一つを用いてビデオデータを符号化しそして送信する。他の標準は動画像符号化専門家会合によって開発された、ＭＰＥＧ‐１、ＭＰＥＧ‐２、あるいは他のＭＰＥＧ標準、ＩＴＵ  Ｈ．２６３、モーションＪＰＥＧ２０００、Cupertino  California  のApple  Computerによって開発されたQuickTimeＴＭ技術、Redmond、WashingtonのMicrosoft  Corporationによって開発されたVideo  for  WindowsＴＭ、Intel  Corporationによって開発されたIndeoＴＭ、およびSuperMac  Inc.によって開発されたCinepakＴＭを含むことが可能である。
【００２０】
通信リンク６は、無線リンク、物理的伝送ライン、ローカルエリアネットワーク、ワイドエリアネットワーク、あるいはインターネット等のグローバルネットワーク、公衆交換電話ネットワーク（ＰＳＴＮ）、あるいは種々のリンクおよびネットワークの組み合わせを含むことが可能である。換言すれば、通信リンク６は、任意の適切な通信媒体、あるいは多分ソースデバイス４から受信デバイス８へのビデオデータを送信するための異なったネットワークおよびリンクの集合を表している。
【００２１】
ソースデバイス４は、ビデオデータを符号化しそして送信することが可能な任意のディジタルビデオデバイスであることが可能である。たとえば、ソースデバイス４は、ディジタルビデオシーケンスを記憶するためのメモリ２２、シーケンスを符号化するためのビデオ符号化器２０、および符号化されたシーケンスを通信リンク６上に送信するための送信機１４を含むかも知れない。たとえば、ビデオ符号化器２０は、ＤＳＰおよび／あるいは、符号化技術を定義するプログラマブルソフトウエアモジュールを実行するマイクロ処理装置を含むことが可能である。
【００２２】
ソースデバイス４はまた、ビデオシーケンスを捕捉しそして捕捉されたシーケンスをメモリ２２内に記憶するためのビデオカメラ等の画像センサ２３を含むかも知れない。若干の場合、ソースデバイス４は、リアルタイムビデオシーケンスを通信リンク６上に送信するかも知れない。これらの場合、受信デバイス８は、リアルタイムビデオシーケンスを受信しそしてビデオシーケンスをユーザに表示することが可能である。
【００２３】
受信デバイス８は、ビデオデータを受信しそして復号することが可能な任意のディジタルビデオデバイスであることが可能である。たとえば、受信デバイス８は、符号化されたディジタルビデオシーケンスを受信するための受信機１５、シーケンスを復号するための復号器１６、およびシーケンスをユーザに表示するためのディスプレー１８を含むかも知れない。
【００２４】
ソースデバイス４および受信デバイス８に対する例となるデバイスは、計算機ネットワーク上におかれたサーバ、ワークステーションあるいは他のデスクトップ計算デバイス、およびラップトップコンピュータ等の移動計算デバイスを含む。他の例は、ディジタルテレビジョン放送衛星、およびディジタルテレビジョン、ディジタルカメラ、ディジタルビデオカメラあるいは他のディジタル記録デバイス、ビデオ能力を有するセルラ無線電話および衛星無線電話等のディジタルビデオ電話、他の無線ビデオデバイス、および類似のものを含む。
【００２５】
若干の場合、ソースデバイス４および受信デバイス８は各々、ディジタルビデオデータを符号化しそして復号するための、符号化器／復号器（ＣＯＤＥＣ）（図示せず）を含む。その場合、ソースデバイス４および受信デバイス８の両者はメモリおよびディスプレーと同様に送信機および受信機を含むことが可能である。以下に概説される符号化技術の多くは、符号化器を含むディジタルビデオデバイスの環境で記述される。しかしながら、符号化器は、ＣＯＤＥＣの部分を形成することが可能であることは了解される。その場合、ＣＯＤＥＣは、ＤＳＰ、マイクロ処理装置、特定用途向け集積回路（ＡＳＩＣ）、ディスクリートハードウエアコンポーネント、あるいはこれらの種々の組み合わせとして実現されることが可能である。
【００２６】
たとえば、ソースデバイス４は、ビデオデータを符号化するためにビデオ画像のシーケンス内のピクセルのブロック上で動作する。たとえば、ソースデバイス４の符号化器２０は、送信されるべきビデオ画像フレームがいくつかのより小さい画像ブロックを含むマクロブロックに分割される、動き推定符号化技術を実行することが可能である。画像フレーム内の各マクロブロックに対してソースデバイス４のビデオ符号化器２０は、類似のマクロブロックを識別するために、すでに送信された先のビデオフレーム（あるいは次のビデオフレーム）に対する、メモリ２２内に記憶されたマクロブロックを探索し、そしてマクロブロック間の差を、符号化に対して使用された前のフレームからマクロブロックを識別する動きベクトルとともに符号化する。若干の場合、ソースデバイス４は、計算の数を減少しそして電力を節約するために、符号化処理期間中種々のタスクあるいは反復の終了をもたらすことが可能なプログラマブルしきい値をサポートすることが可能である。
【００２７】
動き推定において、用語“タスク”は、現在のビデオブロックを探索空間内にある異なったビデオブロックと比較するために使用される、計算処理上の共通のセットを示している。換言すれば、タスクは、現在のビデオブロックおよび探索空間内の異なったビデオブロック間の比較を示している。たとえば、１個のタスクは現在のビデオブロックのいくつかのピクセルを異なったビデオブロックのそれらと比較するために、いくつかの計算を行うことを含むかも知れない。たとえば、（画像ブロックの場合における）６４回の計算あるいは（マクロブロックの場合における）２５６回の計算は、１個のタスクに含まれることが可能である。各タスクの期間中、計算はそのタスクに対する進行中の差の値（時としては差のメトリックとして参照される）を定義するために累算されることが可能である。何れかの与えられたタスクを終了するか否かの決定は各計算の後に、あるいは代わりに計算のサブセット、すなわちタスクのサブセットを定義する計算の整数値の後に、なされることが可能である。後者の場合、計算の整数値は、符号化ルーチンに対して付加的な柔軟性を与えるために、プログラム可能であるかも知れない。
【００２８】
動き推定において、用語“反復”は、ビデオ符号化の期間中実行されるタスクに関する共通のセットを示している。現在のビデオブロックと組み合わせられたタスクの完全なシリーズが１個の反復である。換言すれば、１個の反復は、現在のビデオブロックが探索空間内の１組の前のビデオブロック（あるいは次のビデオブロック）のセットと比較される、比較のセットである。各個々の比較は、いくつかの計算を伴う１個のタスクである。したがって、探索空間は、反復の期間中現在のビデオブロックと比較されるビデオブロックのセットを定義する。１個の反復に関する各々の比較は、１個のタスクとして参照され、そして各タスク、すなわち各比較はいくつかの計算を伴うかも知れない。反復は、たとえば、もしも反復の途中で(during the coarse of an iteration)許容できる整合が識別される場合は、早くに終了されるかも知れない。
【００２９】
画像フレームを符号化するために動き推定を実行する場合に、反復は各ビデオブロック、たとえばフレームのマクロブロックあるいは画像ブロックに対して実行されることが可能である。いくつかのタスクは各反復に対して実行され、そして各タスクはいくつかの計算を含む。したがって、動き推定技術を用いて画像フレームを符号化するためには、非常に大きい数の計算が必要とされるかも知れない。以下に、非常に詳細に記述されるように、画像フレームを符号化するための計算処理上の予定の確立は、動き推定が、効率的なリアルタイムビデオ伝送を害するかも知れない程度まで計算処理上の予定を使用し切る原因とならないことを保証することが可能である。
【００３０】
受信デバイス８の受信機１５は、動きベクトルおよび符号化された差の形態等で符号化されたビデオデータを受信することが可能である。この場合、復号器１６は、ディスプレー１８によってユーザに表示するためのビデオシーケンスを発生するために、テクスチャ復号および動き補償技術を実行する。受信デバイス８の復号器１６はまた、符号化器／復号器（ＣＯＤＥＣ）として実現されるかも知れない。その場合、ソースデバイスおよび受信デバイスの両者は、符号化、送信、受信、およびディジタルビデオシーケンスの復号が可能であるかも知れない。
【００３１】
任意の与えられたビデオフレームの符号化の期間中、動き推定技術が計算的により少なく強力な符号化技術を選択して中断されるべきか否かを決定することが可能である。換言すれば、動き推定を使用する符号化の第１のモードは最初に使用されることが可能であり、しかし、もしも使用された処理サイクルの数がしきい値を超える場合は、動的に終了されることが可能である。この場合、動き推定を使用しない符号化の第２のモードが、フレームの符号化を完了するために必要とされる計算の数を減少するために、第１のモードの代わりに使用されることが可能である。指摘したように、計算処理上の予定は、動き推定が任意の与えられた瞬間において中断されるべきか否かを決定するために、確立されそしてモニタされることが可能である。もしもその場合は、静止画像の圧縮に対して広く使用されているフレーム内圧縮技術が、動き推定の代わりに使用されることが可能である。
【００３２】
計算的により少なく強力な符号化技術の一つの例は、当業界において知られる離散コサイン変換（ＤＣＴ）技術を使用するテクスチャ符号化である。テクスチャ符号化は、動き推定符号化よりもよりずっと速く、そしてより少ない計算をもって実行されることが可能である。しかしながらテクスチャ符号化は、データ圧縮の点では同じ利点を与えないかも知れない。動き推定が使用される場合は、テクスチャ符号化はまた動き推定技術に加えて使用されることが可能である。しかしながら、動き推定が回避される場合は、テクスチャ符号化あるいは他の計算的により少なく強力な符号化技術が、計算処理上の節約をもたらして動き推定の代わりに使用されるかも知れない。
【００３３】
図２は、この中に記述された技術に従ってディジタルビデオシーケンスを圧縮するビデオ符号化器２０を組み入れているソースデバイス４等の、例となるディジタルビデオデバイス１０を示しているブロック線図である。典型的なディジタルビデオデバイス１０は、移動計算デバイス、パーソナルディジタルアシスタント（ＰＤＡ）、無線通信デバイス、無線電話、および類似のもの等として示される。しかしながら、本開示における技術は、無線デバイスに限定されておらずそして、無線でないデバイスを含む他のディジタルビデオデバイスに容易に適用されることが可能である。
【００３４】
図２の例において、ディジタルビデオデバイス１０は送信機１４およびアンテナ１２を経て圧縮されたディジタルビデオシーケンスを送信する。ビデオ符号化器２０は、ビデオシーケンスを符号化し、そして伝送に先立ち符号化されたディジタルビデオシーケンスをビデオメモリ２２の中にバッファする。たとえば、ビデオ符号化器２０は、プログラマブルディジタル信号処理装置（ＤＳＰ）、マイクロ処理装置、１個あるいはそれ以上の特定用途向け集積回路（ＡＳＩＣｓ）、特別なハードウエアコンポーネント、あるいはこれらのデバイスおよびコンポーネントの種々の組み合わせを含むかも知れない。メモリ２２は、符号化処理の期間中ビデオ符号化器２０による使用のために、計算機により読み出し可能な命令およびデータを記憶することが可能である。たとえば、メモリ２２は同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ＦＬＡＳＨメモリ、電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、あるいは同様なものを含むかも知れない。
【００３５】
若干の場合、ディジタルビデオデバイス１０は、ビデオシーケンスを捕捉するための画像センサ２３を含む。たとえば、画像センサ２３は、ビデオシーケンスを捕捉し、そしてそれを符号化のためにメモリ２２内に記憶するかも知れない。画像センサ２３はまた、リアルタイムでのビデオ符号化を改善するためにビデオ符号化器２０に直接に結合されるかも知れない。各フレームのための計算処理上の予定を使用する符号化技術は、もしもビデオ符号化器２０が比較的遅いクロック速度で動作する場合においても、符号化は実行されるべきビデオシーケンスのリアルタイム伝送を許容する時間の総量内に生起することを保証することが可能である。
【００３６】
例として、画像センサ２３はカメラを含むかも知れない。特に、画像センサ２３は、電荷結合デバイス（ＣＣＤ）、電荷注入デバイス、光ダイオードのアレイ、相補型金属酸化膜半導体（ＣＭＯＳ）デバイス、あるいは任意の他のビデオ画像あるいはディジタルビデオシーケンスの捕捉が可能な感光性デバイスを含むかも知れない。
【００３７】
例として、ビデオ符号化器２０はＤＳＰを含むかも知れない。ビデオ符号化器２０は、動き符号化器２６およびテクスチャ符号化器２８を選択的に制御するために、符号化制御器２４を含むかも知れない。換言すれば、これらのコンポーネントの各々は、ＤＳＰ上で実行するソフトウエアモジュールを含むかも知れない。あるいは、ビデオ符号化器２０の１個あるいはそれ以上のコンポーネントは、この中に記述された１個あるいはそれ以上の技術に関する観点を実行する、特別に設計されたハードウエアコンポーネント、あるいは、１個あるいはそれ以上のＡＳＩＣｓを含むかも知れない。いずれの場合も、符号化制御器２４は動き符号化器２６、およびテクスチャ符号化器２８を選択的に呼び出すことによってビデオフレームの符号化を制御する。多くの場合、動き符号化器２６およびテクスチャ符号化器２８の両者は、ビデオフレームと組み合わせられた符号化処理の期間中に使用される。
【００３８】
動き符号化器２６は、以下に非常に詳細に記述されるそれらのように、計算的に強力な動き推定符号化技術を実行する。他方、テクスチャ符号化器２８は、静止画像の圧縮に広く使用されるフレーム内圧縮等の、計算的により少なく強力な符号化を実行する。たとえば、テクスチャ符号化器２８は、当業界において知られるように離散コサイン変換（ＤＣＴ）符号化を実行することが可能である。テクスチャ符号化器２８は、動き推定技術が使用される場合は第１のモードにおいて動き符号化器２６に加えて、あるいは、動き推定技術が回避される場合は、第２のモードにおいて動き推定器２６の代わりに呼び出されるかも知れない。
【００３９】
符号化制御器２４は、与えられたビデオフレームの符号化のための計算処理上の予定を定義するために、しきい値を確立することが可能である。符号化制御器２４は、しきい値をメモリ２２内に記憶することが可能であり、そして計算処理上の予定が使用し切られているか否かを評価するために符号化ルーチンの期間中しきい値にアクセスする。符号化制御器２４は、計算処理上の予定が使用し切られていない限り、動き符号化器２６が動き推定技術を実行することを可能とする。しかしながら、もしも計算処理上の予定が使用し切られている場合は、符号化制御器２４は動き符号化器２６を無力とするであろう。その場合、ビデオフレームの何れか残っている符号化は、意味を持ってより少ない計算、そしてその結果より少ない処理サイクルを必要とする、テクスチャ符号化器２８を使用して単純に実行することが可能である。このようにして、符号化制御器２４は、ビデオフレームの符号化が割り当てられた時間量内に、リアルタイムビデオシーケンスが送信されうることを保証しながら実行されることを保証することが可能である。
【００４０】
符号化制御器２４は、ビデオ符号化器２０と組み合わせられた既知の周波数に部分的に基づいてしきい値を確立するかも知れない。指摘したように、ビデオ符号化器２０は、符号化制御器２４、テクスチャ符号化器２８、および動き制御器２６に対応する種々のソフトウエアモジュールを実行するディジタル信号処理装置（ＤＳＰ）を含むかも知れない。ビデオ符号化器２０の速度は一般に固定されている。換言すれば、ビデオ符号化器２０は、典型的にはサイクル／秒によって定義された周波数で動作する。一つの例においては、ビデオ符号化器２０は、ほぼ毎秒５，０００万インストラクションを実行することが可能であるように、５０メガヘルツのクロック速度で動作することが可能である。より速い、あるいはより遅いクロック速度もまた使用されるかも知れない。いずれにしても、しきい値は一部はビデオ符号化器２０の既知のクロック速度に基づいて確立されることが可能である。若干の場合は、しきい値は符号化制御器２４の中にプログラムされた固定された値であるかも知れず、そして他の場合においてはしきい値は１個あるいはそれ以上の前のビデオフレームを符号化するために使用された処理サイクルの数に基づいて調整される動的な値であるかも知れない。
【００４１】
たとえば、符号化制御器２４は、１個あるいはそれ以上の前のビデオフレームを符号化するために使用された処理サイクルの数に基づいて、フレームごとの基準(frame-by-frame basis)でしきい値を確立することが可能である。若干のフレームは動き推定技術を使用している他のフレームよりも符号化のためにより長く必要とするかも知れない。その結果、計算処理上の予定は少なくとも一部は、前のビデオフレームを符号化するために使用された平均サイクル数によって定義されることが可能である。換言すれば、もしも前のビデオフレームが非常に速く符号化される場合は、計算処理上の節約は、多分後のビデオフレームを符号化するために実行されるべき計算数の増加を可能として、後のフレームのための計算処理上の予定の中に組み入れられることが可能である。一つの例においては、前に符号化されたビデオフレームの数と組み合わせられた処理サイクルを定義する移動平均は、後のビデオフレームを符号化するための計算処理上の予定を定義するために使用することが可能である。このようにして、前に送信されたビデオフレームの符号化の期間中の計算処理上の節約は、後のビデオフレームの符号化が、もしも必要とされる場合は、前の計算処理上の節約を利用可能であるようにリサイクルされることが可能である。
【００４２】
符号化制御器２４は、使用されたクロックサイクルの数を正確に計数することによって、あるいはビデオフレームの符号化と組み合わせられたタイミングを追跡することによって、与えられたビデオフレームの符号化期間中に使用された処理サイクルの数を決定することが可能である。いずれの場合においても、符号化制御器２４は与えられたビデオフレームの符号化の期間中に使用された処理サイクルの数をモニターし、そして使用されたサイクルの数を、計算処理上の予定が使用し切られているか否かを決定するためにしきい値と比較する。もしもその場合は、符号化制御器２４は、動き符号化器２６を無力とし、そしてテクスチャ符号化器２８のみを使用してフレームの残っている符号化を実行する。しかしながら、計算処理上の予定が使用し切られている限り、動き符号化器２６は、動き推定技術は一般的に増加された圧縮、そして従ってビデオシーケンスの伝送期間中の減少された帯域幅の消費を考慮に入れることから、使用されるかも知れない。
【００４３】
動き推定符号化の期間中、動き符号化器２６は、符号化されるべき現在のビデオフレームと組み合わせられた現在のビデオブロックを、前の画像フレームあるいはそのサブセット（あるいは次の画像フレームあるいはそのサブセット）に関する種々のビデオブロックと比較する。類似のビデオブロックを識別する場合は、動き符号化器２６は、現在のビデオブロックおよび類似のビデオブロック間の差を決定する。符号化制御器２４は、この情報を動き符号化器２６から受信することが可能であり、そしてこの情報を送信機１４に進めることが可能である。送信機はそこで、動き符号化器２６によって識別された差と同様に、類似のビデオブロックを識別する動きベクトルを送信することが可能である。送信機１４は各画像ブロックに対する符号化された情報を送信するかも知れず、あるいは一度そのフレームは符号化されている、完全な画像フレームに対する情報を送信するかも知れない。動きベクトルを使用している画像ブロックを符号化することによって、ビデオデータのストリームの伝送のために必要とされる帯域幅は意味を持って減少されることが可能である。しかしながら、ある例においては動き推定の使用を回避することによって、リアルタイム伝送が保証されるかも知れない。
【００４４】
図３は、メモリ２２内に記憶されることが可能な、例となるマクロブロック３１を示している。ＭＰＥＧ標準および他のビデオ符号化方式は、動き推定ビデオ符号化の期間中マクロブロックを使用する。ＭＰＥＧ標準においては、用語マクロブロックは、ビデオ画像フレームのサブセットを形成するピクセル値の１６×１６集合を指す。より大きいあるいはより小さいビットの数が、必要とされる画像品質を得るために、各ピクセルを定義するためにまた使用されることが可能であるが、各ピクセル値は、データの１バイトによって表されることが可能である。マクロブロックはいくつかのより小さい８×８ピクセル画像ブロック３２を含むかも知れない。しかしながら、一般的にこの中に記述される符号化技術は、１６バイト×１６バイトマクロブロック、８バイト×８バイト画像ブロック、あるいはもしも必要とされる場合は、異なったサイズのビデオブロック等の任意の定義されたサイズのブロックを使用して動作することが可能である。
【００４５】
図４は、メモリ内に記憶されることが可能な、例となる探索空間４１を示している。探索空間４１は、前に送信された画像フレーム（あるいはフレームのシーケンスにおける次の画像フレーム）に対応するビデオブロックのバッファされた集合である。探索空間は、そのエンティティ内の前のあるいは次の画像フレーム、あるいはもしも必要とされる場合は画像フレームのサブセットを含むかも知れない。一般的に、より大きい探索空間は符号化されるべき現在のブロックに比較されることが可能なより多いブロックを、すなわち反復当たりのより多いタスクを定義するであろうことから、より大きい探索空間は、動き推定符号化の期間中のより多い計算をもたらすであろう。さらに、現在の画像フレームは、現在のブロックおよび前のフレーム内の類似の画像ブロック間の差が、前のフレームの類似の画像ブロックを識別する動きベクトルとともに送信されるように、適切な整合を識別するために探索空間４１内のブロックと比較される。
【００４６】
より特別には、動き推定ビデオ符号化の期間中、動き符号化器２６は、符号化されるべき現在のビデオブロックをビデオ符号化に関して当業界においてよく知られているような、絶対差の総計(Sum of Absolute Difference)（ＳＡＤ）技術あるいは二乗差の総計(Sum of Squared Difference)（ＳＳＤ）技術等の比較技術を使用して、前のビデオブロックと比較することが可能である。他の比較技術もまた使用可能である。
【００４７】
ＳＡＤ技術は、符号化されるべき現在のブロックに関するピクセル値と、現在のブロックが比較されつつある前のブロックに関するピクセル値間の、絶対差計算を実行するタスクを伴っている。これらの絶対差計算の結果は、現在のビデオブロックおよび、現在のビデオブロックが比較されつつある前のビデオブロック間の差を表している差値を定義するために、合計されすなわち累算される。１個の８×８ピクセル画像ブロックに対しては、６４個の差が計算されそして合計されるであろうし、そして１個の１６×１６ピクセルマクロブロックに対しては２５６個の差が計算されそして合計されるであろう。若干の場合には、タスク計算は累算された差値がタスクしきい値を超える場合に終了されるかも知れない。その場合さらなる計算は不必要であるかも知れない。
【００４８】
ＳＳＤ技術もまた、符号化されるべき現在のブロックに関するピクセル値と、現在のブロックが計算されつつある前のブロックに関するピクセル値間の、差計算を実行するタスクを伴っている。ＳＳＤ技術においては、絶対差計算の結果は二乗され、そしてそこで二乗された値は現在のビデオブロックおよび現在のビデオブロックが比較されつつある前のビデオブロック間の差を示している差値を定義するために、合計されすなわち累算される。
【００４９】
あるいは、平均二乗誤差（ＭＳＥ：Mean Square Error）、正規化相互相関関数（ＮＣＣＦ：Normalized Cross Correlation Function）、あるいは他の適切な比較アルゴリズム等の他の比較技術が実行されるかも知れない。しかしながら、いずれの場合においても動き推定技術は、動きベクトルを使用するビデオ符号化に対して受け入れ可能な整合を識別するために、非常に多数の計算を必要とする。したがって、動き推定技術は、計算処理上の予定が割り当てられた時間内に実行されるべき動き推定技術を可能とするのに不十分であることが決定されるあるシナリオにおいては回避されるかも知れない。
【００５０】
図５は、この開示の原理に従ったビデオ符号化技術を示しているフロー線図である。示されるように、ビデオフレームの符号化の期間中、符号化制御器２４は、それらが発生したときに処理サイクルの数を計数しあるいは合計すること等によって 、あるいは符号化処理の時間を計ることによって計算の総量をモニターする（５１）。もしも計算処理上の予定が超過される場合は（５２のはいブランチ）、たとえば計数された処理サイクルの数が確立されたしきい値を超える場合は、符号化処理は動き推定技術を使用することなしに進む（５４）。たとえば、計算処理上の予定が超過される場合は（５２のはいブランチ）、テクスチャ符号化、あるいは他の計算的により少なく強力な符号化技術が使用されるかも知れない。しかしながら、計算処理上の予定が超過されない限り（５２のいいえブランチ）、そこで動き推定技術は符号化のために使用される（５３）。動き推定は、もしも計算処理上の資源が利用可能である場合は、動き推定符号化は増加されたデータ圧縮、およびしたがってビデオシーケンスの伝送期間における減少された帯域幅消費をもたらすことが可能であるために選択されるかも知れない。
【００５１】
代わりに、動き推定技術は残っている計算処理上の資源の程度に基づいて修正されることが可能である。換言すれば、使用された処理サイクルの数がしきい値に近づくにつれて、符号化制御器は、動き符号化器２６によって実行された動き推定技術を、任意の与えられた反復に対する探索空間のサイズを減少すること等によって、動的に変化させることが可能である。このようにして、動き推定は、計算処理上の制約の中でより容易に利用されることが可能である。
【００５２】
図６は、この開示の原理に従ったビデオ符号化技術を示しているより詳細なフロー線図である。図６に示されるように、ディジタルビデオデバイス１０の符号化制御器２４は、フレーム当たりのサイクルの移動平均を計算することによって、ビデオフレームの符号化を開始する（６１）。換言すれば、符号化制御器２４は、いくつかの前のビデオフレームを符号化するために使用されたフレーム当たりのサイクルの平均数を決定する。符号化制御器２４はそこで、現在のビデオフレームの符号化のための計算処理上の予定をセットする。とくに、符号化制御器２４は、動き推定に対して使用することが可能な処理サイクルの数を定義するために、しきい値を定義することが可能である。しきい値はビデオ符号化器２０のクロック速度によって定義されることが可能であり、そして一部は計算された移動平均によってさらに定義されるかも知れない。たとえば、もしも、いくつかの前のビデオフレームを符号化するために必要とされたフレーム当たりのサイクルの平均数が予想されたよりも意味をもって少なかった場合は、計算処理上の節約はしきい値の中に、さらなる計算が実行され得るように組み込まれることが可能である。同様に、もしも、いくつかの前のビデオフレームを符号化するために必要とされたフレーム当たりのサイクルの平均数が予想されたよりも意味をもって多かった場合は、計算処理上の超過は、以後のフレームに対しては、しきい値の中により少ない計算が実行されうるように組み込まれることが可能である。符号化制御器２４は、しきい値が符号化ルーチンの期間中アクセスされることが可能なように、メモリ２２内にしきい値を記憶することが可能である。
【００５３】
符号化制御器２４は、上に概説されたそれらのように（６３）、動き符号化器２６が動き推定技術を使用して画像ブロックを符号化することを可能にする。符号化の期間中、符号化制御器２４は、ビデオ符号化器２０によって使用された処理サイクルの数を計数することによって、あるいは現在のビデオブロックの符号化の期間中経過した時間の総量を追跡すること等によって、使用された処理サイクルの数をモニターしそして決定する。他の推定技術もまた、使用されたサイクルの数を決定するために用いられるかも知れない。符号化制御器２４はそこで、現在のビデオフレームの符号化の期間中に使用された処理サイクルの数をメモリ２２内に記憶されたしきい値と比較することによって等で、計算処理上の予定が超過されているか否かを決定する（６４）。もしも計算処理上の予定が超過されていない場合（６４のいいえブランチ）は、ビデオブロックを符号化するために動き推定が使用される（６５）。若干の場合、もしも動き推定が使用される場合は、動き推定符号化技術に加えてテクスチャ符号化技術が使用されるかも知れない。フレームのさらなるビデオブロックがなお符号化されることを必要とされる限り（６６のはいブランチ）、計算処理上の予定をモニターする処理は反復される（６４）。
【００５４】
もしも符号化制御器２４が、現在のビデオフレームの符号化の期間中に使用された処理サイクルの数がメモリ２２内に記憶されたしきい値を超えると決定すること等によって、計算処理上の予定が超過されていると決定する場合は（６４のはいブランチ）、符号化制御器は動き符号化器２６を無力とする（６７）。この場合、ビデオ符号化器２０は、動き推定技術を使用することなしに何れかの残っているビデオブロックを符号化する（６８）。たとえば、符号化制御器２４は、動き符号化器２６を無力にし、そしてテクスチャ符号化器２８のみを、テクスチャ符号化技術を使用して残っているビデオブロックが符号化されうるように可能とするかも知れない。他の符号化技術を実行する付加的な符号化器は、テクスチャ符号化器２８に加えて、あるいはその代わりに加えられるかも知れない。若干の場合、動き推定が無力とされる場合に、フルビデオフレームは、計算された動きベクトルを捨てて、テクスチャ符号化技術のみを使用して符号化されるかも知れない。しかしながら、大部分の場合、動き符号化器２６が可能であった間に計算された動きベクトルは使用可能である。後者の場合、動き推定技術を使用して符号化されなかった残っているビデオブロックのみが、テクスチャ符号化技術のみを使用して符号化される必要があるかも知れない。
【００５５】
図７は、図６におけるビデオ符号化技術の変形を示しているフロー線図である。この場合符号化制御器２４は、現在のビデオフレームを符号化するための計算処理上の予定をセットする（７１）。たとえば、符号化制御器はフレーム当たりのサイクルの移動平均を計算し、そして符号化に対して使用することが可能な処理サイクルの数を定義するためにしきい値を定義するかも知れない。しきい値はビデオ符号化器２０のクロック速度によって定義されるかも知れず、そしてさらに一部は計算された移動平均によって定義されるかも知れない。
【００５６】
符号化制御器２４はそこで、現在のビデオフレームを符号化する期間中に使用された処理サイクルの数をメモリ２２内に記憶されたしきい値と比較すること等によって、計算処理上の予定が超過されていないか否かを決定する（７２）。もしも計算処理上の予定が超過されていない場合は（７２におけるいいえブランチ）、前のフレームに関する少ない使用を考慮に入れるために、しきい値は増加されるかも知れず（７４）、そしてビデオブロックを符号化するために動き推定を使用することが可能である（７５）。他方、もしも計算処理上の予定が超過されている場合は（７２のはいブランチ）、後のビデオブロックに関する動き推定のために使用される探索サイズは減少されることが可能であり、そして動き推定が使用されることが可能である（７５）。換言すれば、図７において、計算処理上の予定が超過されている（図６に示されるように）と決定される場合に、この技術は動き推定全体を終了するよりはむしろ、実行される動き推定の範囲を動的な基準で修正する。このようにして、この技術は実行されるべき計算の数を動的に調整することが可能である。確立された計算処理上の予定に関する測定されたあるいは推定された計算処理上の使用は、符号化アルゴリズムを動的に調整するために一定した基準で周期的に点検されることが可能である。この技術は、とくに資源が限定された基盤において、圧縮比内のトレードオフをもってリアルタイム符号化を改善することが可能である。
【００５７】
一度フレームが符号化されているときは、符号化制御器２４は、符号化されたフレームをメモリ２２から送信機１４に進める。送信機１４はそこで、符号化されたフレームを送信することが可能である（７７）。図７に示された技術はそこで、さらなるビデオフレームを符号化するために反復されることが可能である（７０）。なお他の例においては、図７に示された技術は２個あるいはそれ以上のビデオフレームの符号化を超えて拡張されることが可能である。換言すれば、１個のフレームと組み合わせられた計算処理上の節約、あるいは超過は、後のフレームに対して予定されたしきい値の確立および／あるいは修正の中で、あるいは任意の与えられたフレーム、あるいは任意の個々のフレームのビデオブロックに対して実行される探索に関する定義されたサイズの中で、考慮に入れることが可能である。
【００５８】
若干の場合、この中に記述された技術に従って符号化されたフレームは、ＭＰＥＧ‐４標準等の１個あるいはそれ以上のＭＰＥＧ標準に従う独自のフォーマットを有するかも知れない。たとえば、もしもビデオフレームが（Ｎ）個のビデオブロックを定義する場合は、ブロックのシーケンス（１からＭ）を定義しているビデオブロックの第１のセットは、事実上動きベクトルを使用して符号化されるかも知れない。若干の場合、たとえば、もしも受け入れ可能な動きベクトルが１個あるいはそれ以上のブロックに対して識別されない場合は、第１のシーケンス内のビデオブロックのいくらかは、動きベクトルを使用することなしに符号化されるかも知れない。そして、他の場合においては、第１のシーケンス内のビデオブロックのすべては動きベクトルを使用して符号化されるかも知れない。ブロックのシーケンス（Ｍ＋１からＮ）を定義しているビデオブロックの第２の組み合わせは、動きベクトルを使用することなしに符号化されるかも知れない。たとえば、動き推定器２６が上に概説したように無力にされる場合、残っているビデオブロックは、テクスチャ符号化器２８のみを使用して符号化されるかも知れない。このフォーマットに従って定義されたフレームは、デバイス１０のメモリ２２等の計算機により読み出し可能な媒体上に記憶されるかも知れない。さらに、このフォーマットに従って定義されたフレームは、符号化されたデータで変調された搬送波の形態で、計算機によって読み出し可能な媒体上に記憶されるかも知れない。たとえば、変調された搬送波は、フレームをデバイス１０から送信機１４およびアンテナ１２を経由して送信するために使用された媒体であるかも知れない。いずれの場合においても、計算機により読み出し可能な媒体はその中に記憶された画像フレームを含むかも知れない。
【００５９】
いくつかの異なった実施例が記述されてきている。たとえば、ビデオ符号化技術は、ビデオフレームの符号化のための計算処理上の予定を確立するものとして記述されている。記述された技術は、あるシナリオにおいては計算を回避し、符号化処理を加速し、そして多分ビデオ符号化期間中の電力消費を減らすことによって、ビデオ符号化を改善することが可能であるかも知れない。このようにして、技術はＭＰＥＧ‐４等の標準に従ったビデオ符号化を改善することが可能であり、そして計算処理上の予定がさらに限定され、そして電力消費が問題となる無線デバイス内におけるビデオ符号化の実行をより容易にすることが可能である。さらに、この技術はＭＰＥＧ‐４復号標準等の復号標準との共働性に影響を与えないことが可能である。
【００６０】
それにも拘らず、種々の修正が特許請求の精神および範囲から逸脱することなしに実施されることが可能である。たとえば、若干の場合、動き推定技術は現在利用可能な計算処理上の資源に基づいて修正されることが可能である。たとえば、探索技術は何れかの与えられたビデオフレームの符号化の期間中利用可能な計算処理上の資源に基づいて修正されることが可能である。換言すれば、若干の場合、計算処理上の予定は使用される動き推定技術の範囲を動的に定義するためにより厳密にモニターされるかも知れない。とくに、動き推定の期間中に使用される比較および探索の数は、使用されてきているしきい値に関する計算の数によって決定されたとして利用可能な計算の総量に基づいて、動的に調整され、あるいは定義されるかも知れない。たとえば、もしもさらなる計算処理上の資源が利用可能である場合は、動き推定の期間中より徹底的な探索が使用されるかも知れない。しかしながら、計算処理上の資源は、任意の与えられたビデオフレームの符号化の期間中、より制限されてくるために、より少なく徹底的な探索が使用されるかも知れない。ある点で動き推定は、上に概説したように全く回避されることが可能である。いくつかの異なったしきい値が、いつ動き推定技術が変更され、調整され、あるいは終了されるべきであるかを定義するために確立されるかも知れない。上に記述された技術に対するこれらのあるいは他の修正および拡張が、符号化処理を改善するために実現されるかも知れない。
【００６１】
この技術は、ハードウエア、ソフトウエア、ファームウエア、あるいはこれらの任意の組み合わせ内で実現されることが可能である。もしもソフトウエア内で実現される場合は、技術は、ＭＰＥＧ‐４標準に従ったビデオストリームを符号化するデバイス内で実行されるときに、１個あるいはそれ以上の上に述べた方法を実行するプログラムコードを含む、計算機により読み出し可能な媒体に向けられることが可能である。その場合、計算機により読み出し可能な媒体は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、非揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、および類似なものを含むかも知れない。
【００６２】
プログラムコードは、メモリ上に計算機により読み出し可能な命令の形態で記憶されることが可能である。その場合、ＤＳＰ等の処理装置はこの中に記述された１個あるいはそれ以上の技術を実行するためにメモリ内に記憶された命令を実行することが可能である。若干の場合、技術は、符号化処理を加速するために種々のハードウエアコンポーネントを呼び出すＤＳＰによって実行されるかも知れない。他の場合においては、ビデオ符号化器はマイクロ処理装置、１個あるいはそれ以上の特定用途向け集積回路（ＡＳＩＣｓ）、１個あるいはそれ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）、あるいは若干の他のハードウエア‐ソフトウエア組み合わせとして実現されることが可能である。これらの、そして他の実施例は請求項の範囲内にある。
【図面の簡単な説明】
【００６３】
【図１】図１は、この中でソースデバイスは符号化されたビデオデータのシーケンスを受信デバイスに送信する、例となるシステムを示しているブロック線図である。
【図２】図２は、ディジタルビデオシーケンスを圧縮するビデオ符号化器と合体している、例となるディジタルビデオデバイスを示しているブロック線図である。
【図３】図３は、ビデオデータに関する例となるマイクロブロックの概念的説明である。
【図４】図４は、例となる探索空間の概念的説明である。
【図５】図５〜７は、ディジタルビデオデバイス内で実現することが可能な、ビデオ符号化技術を示しているフローチャートである。
【図６】図５〜７は、ディジタルビデオデバイス内で実現することが可能な、ビデオ符号化技術を示しているフローチャートである。
【図７】図５〜７は、ディジタルビデオデバイス内で実現することが可能な、ビデオ符号化技術を示しているフローチャートである。
【符号の説明】
【００６４】
４…ソースデバイス  ６…通信リンク、  ８…受信デバイス、  １０…ディジタルビデオデバイス、  １２…アンテナ、  １４…送信機、  １５…受信機、  １６…復号器、  １８…ディスプレー、  ２０…ビデオ符号化器、  ２２…ビデオメモリ、  ２３…画像センサ、  ２４…符号化制御器、  ２６…動き符号化器、  ２８…テクスチャ符号化器、  ３１…マクロブロック、  ３２…ピクセル画像ブロック、  ４１…探索空間、
【図１】
2005531979.tif 000003
【図２】
2005531979.tif 000004
【図３】
2005531979.tif 000005
【図４】
2005531979.tif 000006
【図５】
2005531979.tif 000007
【図６】
2005531979.tif 000008
【図７】
2005531979.tif 000009
【国際調査報告】
2005531979.tif 000010
2005531979.tif 000011
2005531979.tif 000012