"ビデオ復号中に動的周波数調整を行う方法であって、ビデオクリップの複数のフレームを有する前記ビデオクリップの一部に対してハードウェア可変長復号VLDをプロセッサにおいて実行する復号時間を測定するステップと、前記複数のフレームについての前記復号時間を平均化することによって、前記複数のフレームそれぞれの平均復号時間を決定するステップと、前記平均復号時間に少なくとも部分的に基づいて、前記ビデオクリップの前記ビデオ復号中に前記プロセッサを制御する周波数を調整するステップと、を含み、前記周波数を調整する前記ステップは、最大周波数調整制限を有する条件下で前記周波数を調整することと、前記平均復号時間に応じて前記周波数を直線的にスケーリングすることとを含む、方法。前記平均復号時間に基づいて前記プロセッサを制御する周波数を調整する前記ステップは、前記平均復号時間を前記周波数に基づく割当復号時間と比較し、前記平均復号時間が前記割当復号時間と異なる場合に、前記周波数を調整する請求項1記載の方法。前記平均復号時間が前記割当復号時間よりも大きい場合は、前記周波数を増加させ、前記平均復号時間が前記割当復号時間よりも小さい場合は、前記周波数を減少させることを更に含む請求項2記載の方法。ビデオクリップの一部に対して可変長復号VLDを実行するオーディオ/ビデオプロセッサと、前記一部に関して、前記VLDオペレーションを実行する復号時間を測定する復号タイマと、前記オーディオ/ビデオプロセッサが前記VLDオペレーションを実行する周波数を生成するクロックと、前記復号時間に少なくとも一部に基づいて、前記周波数を調整する適応クロック周波数コントロールと、を備え、前記一部は、前記ビデオクリップの複数のフレームを有しており、前記適応クロック周波数コントロールは、前記複数のフレームについての前記復号時間を平均化することによって、前記複数のフレームそれぞれに関する平均復号時間を決定するように作動すると共に、最大周波数調整制限を有する条件下で前記周波数を調整するように作動し、前記適応クロック周波数コントロールは、前記平均復号時間に応じて前記周波数を直線的にスケールするように作動する、ビデオ復号システム。前記適応クロック周波数コントロールは、前記平均復号時間を前記周波数に基づく割当復号時間と比較し、前記平均復号時間が前記割当復号時間と異なる場合に、前記周波数を調整するように作動する請求項4記載のビデオ復号システム。前記適応クロック周波数コントロールは、前記平均復号時間が前記割当復号時間よりも大きい場合は、前記周波数を増加させるように作動し、前記平均復号時間が前記割当復号時間よりも小さい場合は、前記周波数を減少させるように作動する請求項5記載のビデオ復号システム。0017添付図面に例を示し、本発明の好適な実施形態を説明する。発明は好適な実施形態に関連して説明するが、発明をこれらの実施形態に制限する意図ではないことが理解される。一方、発明は代替、修正及び均等の範囲を包含し、これらは特許請求の範囲の精神と範囲に含まれる。更に、本発明の実施形態に関する以下の詳細な説明において、多くの具体的な詳細が本発明の充分な理解を提供するために述べられる。しかしながら、当業者であれば、これらの具体的な詳細が無くても本発明を実施することができる。他の形態では、公知の方法、手順、要素、及び回路は、本発明の実施形態の形態を不必要に曖昧にしないようにするために、詳細には述べていない。[表記及び用語]0018以下の詳細な説明の幾つかの箇所は、手順、ステップ、論理ブロック、処理、及び、コンピュータメモリ内のデータビットに対する動作の他のシンボル表示である。これらの説明及び表示は、データ処理技術分野の当業者が他の当業者に彼らの業務の実態を最大の効率で伝えるために用いられる手段である。ここに説明する手順、コンピュータ実行ステップ、論理ブロック、処理等は、一般的に、所望の結果に導くステップ又は命令のセルフコンシステントのシーケンスとして考えられる。必ずではないが通常は、これらの数量は、コンピュータシステムにおいて、格納、伝送、結合、比較、及び他の操作可能な電気信号又は磁気信号の形態を採っている。これらの信号をビット、値、要素、記号、特性、用語、番号等として証することがしばしば便利であると立証されており、主に共通使用の理由によるものである。0019しかしながら、これらの用語及び類似の用語のすべては、適切な物理的数量に関するものであり、これらの数量に適用される単に便利なラベルである。以下の記述と具体的に反することを述べない限り、本発明の全体を通じて、実行、測定、調整、決定、比較、増加、減少、制御、スケーリング、バッファ、オーダー、転送、解析、インタリーブ、ロテート、再配置、又は格納などの用語を用いた説明は、動作及びビデオ復号システムのプロセッサに言及する。このプロセッサは、例えば、図1,2のホストプロセッサ101、及び、図1,3の画像処理ユニットGPU109、又は、類似の電子コンピューティング装置であり、これらは、コンピュータシステムのレジスタ内で物理的電子的数量として示されるデータを操作し、コンピュータシステムのメモリ又はレジスタ、或いは、他のそのような情報ストレージ、伝送、又は表示装置内の物理的数量として同様に示される他のデータに変換する。[コンピュータシステムプラットフォーム]0020図1は、本発明の実施形態を実現する典型的なコンピュータシステム100を示す。一般的に、コンピュータシステム100は、情報を伝達するバス110と、バス110と結合され情報及び命令を処理するプロセッサ101と、バス110に結合されプロセッサ101のための情報及び命令を格納しランダムアクセスメモリRAMとしても呼ばれる揮発性メモリ102と、バス110に結合されプロセッサ101のための固定の情報及び命令を格納しリードオンリーメモリROMとしても呼ばれる不揮発性メモリ103とを備える。0021ある実施形態においては、コンピュータシステム100は、バス110に結合された情報及び命令を格納するための磁気又は光学ディスク及びディスク装置のような任意のデータストレージ装置104を有する。ある実施形態では、コンピュータシステム100は、コンピュータのユーザに対して情報を表示するバス110に結合されたディスプレイ装置105などの任意のユーザ出力装置、情報とコマンド選択をプロセッサ101と通信するバス110に結合された英数字及びファンクションキーを含む英数字入力装置106などの任意のユーザ入力装置、及び/又は、プロセッサ101に対してユーザ入力情報及びコマンド選択を通信するバス110に結合されたカーソル制御装置107などの任意のユーザ入力装置を備える。更に、任意の入力/出力I/O装置108がコンピュータシステム100を例えばネットワークに接続するために用いられる。0022ある実施形態において、コンピュータシステム100は、専用画像レンダリング機能のためのGPU120も含む。GPU120は、復号オペレーションのための複数のハードウェア復号ブロックを有し、この復号オペレーションは可変長復号VLDオペレーションと逆分散コサイン変換iDCTオペレーションなどの逆変換オペレーションとを備える。GPU120は、ビデオを復号するVLDオペレーションを用いた如何なるビデオ復号標準規格にも従ってビデオを復号するように構成することができる。例えば、GPU120は、ムービングピクチャエキスパートグループMPEG標準規格MPEG3、MPEG4など、又はH.264標準規格を用いて符号化されたビデオを復号化するように構成できる。0023GPU120は、分散コンポーネント、コネクタAGPスロット、PCI-EXPRESSスロット等を介してコンピュータシステム100に結合されるように設計された分散画像カード、分散集積回路ダイ例えば、マザーボードに直接搭載される、又は、コンピュータシステムチップセットコンポーネントの集積回路ダイ内に含まれる集積復号装置として実装することができる。更に、ローカル画像メモリは、データストレージのためにGPU120に含まれる。[ビデオ復号中の動的周波数調整]0024図2は、本発明の一実施形態に従った、クロック周波数を動的に制御するホストプロセッサ101のブロック図である。ある実施形態では、ホストプロセッサ101は、ハードウェアVLDオペレーションを実行するためにプロセッサ例えば図3のAVP310が要する時間に基づいて、クロック225の周波数228を調整できる適応クロック周波数制御装置220を備える。ある実施形態では、ホストプロセッサ101は、縮小命令セットコンピュータRISCプロセッサである。しかしながら、ホストプロセッサ101は、ハードウェアビデオデコーダを制御する周波数を計算する如何なるマイクロプロセッサでもよい。0025ホストプロセッサ101のクロック225は、周波数信号228を生成する。周波数228は、ビデオクリップを復号するハードウェアビデオ復号システム例えばGPU120のコンポーネントによって用いられる。クロック225は、動的に制御可能であり、ホストプロセッサ101のハードリセットを必要とすることなく、周波数228をホストプロセッサ101の動作中に調整することができる。特に、周波数228は、ハードウェアビデオ復号システムのビデオ復号オペレーションの最中に調整することができる。ある実施形態では、クロック225は増加するように調整され、例えば、0.5倍、2.0倍、2.5倍となる。他の実施形態では、クロック225は複数の特定の周波数で作動し、動作周波数はこれらの間、例えば333MHz、666MHz、1.0GHz、1.33GHzの間でスイッチされる。0026ビデオフォワーダ205は、ビデオクリップ又はビデオストリームなどのビデオ206の部分を、復号のためにハードウェアビデオ復号システムに転送するように作動する。ある実施形態では、その部分は、ビデオクリップのフレームである。他の実施形態では、その部分は、ビデオクリップのマクロブロックである。その部分はビデオクリップの如何なるユニットでもよいことを理解すべきである。一般的に、その部分が小さくなると、処理を必要とする部分の数が大きくなり、ビデオ復号を実行するのに必要な処理スピードが高くなる。本発明の実施形態をビデオクリップのフレームを用いて説明するが、当業者であれば、この実施形態がビデオストリームの他の部分、例えばマクロブロックにもどのように適用されるかを理解することができる。また、ビデオフォワーダ205は、ホストプロセッサ101のハードウェアコンポーネント、ファームウェアコンポーネント、ソフトウェアコンポーネント、又はこれらの如何なる組み合わせとして実装されることも理解される。0027ビデオフォワーダ205は、表示のためのフレームに時間的に先立ち、復号のためのフレームを転送するように作動する。例えば、適応クロック周波数調整は、3つのフレームの平均復号時間に基づいて周波数228を調整するように作動し、3つのフレームは復号され、復号時間は、フレームが表示されるのに先立って決定される。0028タイマ210は、ハードウェアビデオ復号システム上でVLDオペレーションを実行するのに必要な復号時間を測定するように作動する。ある実施形態では、ビデオフォワーダ205は、ハードウェアビデオ復号システムにビデオを転送する際に、タイマ210に通知する。タイマ210は、ビデオフォワーダ205からビデオ転送時刻208を受け取る。ある実施形態では、ビデオ転送時刻208はミリセコンドの時間であり、この間に特別の部分がハードウェアビデオ復号システムに転送される。しかしながら、ビデオ転送時刻208の形式は、オペレーティングシステムに依存することがあり、このため、オペレーティングシステムによって異なるかもしれない。0029ある実施形態では、タイマ210は、特定のフレームに関してVLDオペレーションが完了した際に、ハードウェアビデオ復号システムからVLD完了時刻213の情報を受け取る。タイマ210は、特定のフレームに関する復号時間を、そのフレームに関するVLD完了時刻213からそのフレームに関するビデオ転送時刻208を差し引くことによって求める。ある実施形態では、フレームに関する復号時間は、タイマ210に関連するレジスタに格納される。タイマ210は、複数のフレームについての復号時間のいかなる情報をも格納できるように構成され、タイマ210は、レジスタをいくつ備えてもよい。ある実施形態では、タイマ210は、複数のフレームに関する復号時間のヒストグラムを維持するように作動する。0030適応クロック周波数制御装置220は、ホストプロセッサ101の動作中に、フレームの復号時間に少なくとも一部は基づいて、クロック225の周波数228を調整する。ある実施形態では、適応クロック周波数制御装置220は、平均復号時間モジュール230、例えば平均化器を備え、これは複数のビデオフレームの平均復号時間を求める。ある実施形態では、平均復号時間モジュール230は、移動平均フィルタ、例えばボックスフィルタである。平均復号時間モジュール230は、他のタイプのフィルタでもよいことが理解される。しかしながら、フィルタの選択は、典型的には、ホストプロセッサの処理能力に部分的に依存する設計選択である。0031平均復号時間は、複数のビデオフレームについての合計復号時間を、複数のフレームを含むフレームの数で割ったものである。例えば、タイマ210は、13、14、及び18ミリセコンドの復号時間をそれぞれ持った3つのフレームに関する復号時間を格納し、その平均時間が15ミリセコンドとなるかもしれない。0032適応周波数アジャスタ235は、フレームの復号時間に少なくとも部分的に基づいて、クロック225の周波数228を調整する。ある実施形態では、適応周波数アジャスタ235は、複数のビデオフレームについての平均復号時間に少なくとも部分的に基づいてクロック225の周波数228を調整するように作動する。ある実施形態では、適応周波数アジャスタ235は、周波数228の現在の値に基づいて、平均復号時間を割り当てられた復号時間割当復号時間と比較する。割当復号時間は、VLDオペレーションを実行するために割り当てられた時間であり、周波数228に基づいている。例えば、毎秒30フレームを復号するための割当復号時間は、フレームあたり30ミリセコンドである。0033適応周波数アジャスタ235は、割当復号時間が平均復号時間と異なる場合に、周波数228を調整するように作動する。ある実施形態では、適応周波数アジャスタ235は、復号時間が割当復号時間よりも長い場合に、周波数を増加するように作動する。これは、その割り当てられた時間がそのフレームを充分に復号するのに充分でないからである。或いは、復号時間が割当復号時間よりも短い場合に、適応周波数アジャスタ235は、周波数228を減少させるように作動し、これにより、VLDオペレーションを実行するのに必要でない過度の処理スピードを減少させる。ある実施形態では、適応周波数アジャスタ235は、次の最も低い周波数インクリメントが低すぎてフレームを復号できない場合に、周波数を減少する。0034ある実施形態では、適応周波数アジャスタ235は、平均復号時間に従って周波数228を直線的にスケールするように作動する。ある実施形態では、周波数は、平均使用時間、例えば、割当復号時間で平均復号時間を除したものに基づいて直線的にスケールされる。例えば、割当復号時間がフレーム当たり30ミリセコンドであって、平均復号時間が15ミリセコンドである場合に、周波数228は半分にスケールダウンされる。ある実施形態では、周波数228の新しい値は、線形補間を実行することで定められ、以前の複数のフレームを復号するためにプロセッサをどの程度速く又は遅く作動させるかを決定する。0035ある実施形態では、適応周波数アジャスタは、最大周波数調整制限を有する条件下で、周波数228を調整するように作動する。最大周波数調整制限は、周波数が復号中に変動しすぎないことを確実にするために用いられる。ある実施形態では、最大周波数調整制限は、パーセンテージ変化への周波数調整を制限する。ある実施形態では、最大周波数調整制限は周波数の減少を制限し、周波数228が遅くなり過ぎないようにする。例えば、周波数調整は、周波数228の25パーセントの減少までに制限することができる。最大周波数調整制限は、周波数228がそれよりも低くなることができない最小周波数を含むようにもできる。0036図3は、本発明の一実施形態に係る、画像処理ユニットGPU120のブロック図を示す。GPU120は、ビデオ復号オペレーションを実行するためのハードウェアコンポーネントを有する。ある実施形態では、GPU120はハードウェアVLD315を有するAVP310を備える。GPU120が他のビデオ復号オペレーション、例えば、逆変換オペレーションを実行する他のコンポーネントを備えてもよい。これらの他のコンポーネントは、当業者によって十分に理解されており、本発明の実施形態の態様を不明確にするようには述べられていない。0037AVP310は、上述のようにホストプロセッサ101からビデオ206を受け取る。VLD315は、クロック225により生成された周波数228に従ってビデオ206に対してハードウェアVLDオペレーションを実行する。VLD315は、動的周波数に従ってVLDオペレーションを実行するように構成されていることを理解すべきである。VLDオペレーションが完了すると、AVP310は、VLD完了時刻213をホストプロセッサ101に転送する。0038ある実施形態では、GPU120は、フレームをバッファするためのフレームバッファを有する。AVP310は、表示する前にフレームを復号するため、フレームバッファはフレームをバッファする。ある実施形態では、ビデオは、AVP310においてオーディオ復号の前に復号される。復号されたフレームは、表示するのに先立ち、復号されたオーディオと合わせられる。フレームバッファは、フレームが現在の周波数よりも復号するのに時間を要するならば、インパクトを減少するためにも役立つ。ある実施形態では、フレームバッファは、複数のフレームをバッファすることができ、これらのための復号時間はホストプロセッサ101に定数として格納される。例えば、4つのフレームについて復号時間が格納されている場合に、フレームバッファは2つのフレームをバッファするように構成することができる。0039図4は、本発明の実施形態に従った、ビデオ復号中の動的周波数調整のプロセス400のフローチャートを示す。特定のステップがプロセス400に開示されているが、各ステップは例示的なものである。すなわち、本発明の実施形態は、図4に示された各ステップの他のステップ又は変形を実行するようにもできる。ある実施形態では、プロセス400は、ビデオ復号システム、例えば図3のGPU120を制御する図2のホストプロセッサ101を制御するプロセッサによって実行することができる。0040プロセス400のステップ405において、プロセッサにおいてビデオクリップの一部に対してハードウェア可変長復号VLDを実行するための復号時間が測定される。ある実施形態では、ステップ410に示すように、フレームが復号のために転送される時刻の情報が記憶される例えばフレーム転送時刻208。ある実施形態では、ステップ412に示すように、各フレームについてVLDが完了した時刻の情報を受け取る例えばVLD完了時刻213。本実施形態では、各フレームの復号時間は、復号のためにフレームが転送された時刻から、VLDが完了した時刻を引くことによって、各フレームの復号時間が決定される。ステップ410,412は任意であり、フレームについてVLDを実行する復号時間は他の方法で実行可能であることが理解される。0041ある実施形態では、ステップ415に示すように、複数のフレームに関する平均復号時間は、複数のフレームの復号時間を平均することによって決定される。本発明の各実施形態は、如何なる正の数のフレームを用いて実行してもよく、平均復号時間は、割当復号時間と比較するために用いられることが理解される。0042ステップ420において、復号時間、例えば平均復号時間は、割当復号時間と比較される。割当復号時間は、VLDを制御する周波数に基づいてVLDを実行するために割り当てられた時間である。復号時間が割当復号時間と異なる場合は、周波数が調整される。ある実施形態では、周波数は、平均使用時間、例えば複合時間を割当復号時間で除したものに基づいて、直線的にスケールされる。ある実施形態では、ステップ425に示すように、復号時間が割当復号時間よりも大きい場合に、周波数が増加される。ステップ430に示すように、復号時間が割当復号時間よりも小さい場合は、周波数は減少される。0043ステップ428に示すように、復号時間が割当復号時間と実質的に等しい場合は、周波数は維持され変更されない。復号時間及び割当復号時間は、特定のインクリメントで周波数を与えるように作動するクロックの同一の最小周波数インクリメントを両者が必要とするなら、実質的に同一である。例えば、割当復号時間が800MHzの周波数を必要とし、復号時間が750MHzであり、クロックが666MHz及び1.0GHzで作動するなら、割当復号時間及び復号時間はともに周波数1.0GHzを必要とするため、実質的に同一である。0044ステップ435において、調整が最大周波数調整制限以内であるか否かを判定する。例えば、最大周波数調整制限は、25パーセントよりも大きく周波数を増加することを制限するようにできる。周波数が最大周波数調整制限以内であれば例えば、25パーセントよりも大きくない、プロセス400はステップ445に進む。調整が最大周波数調整制限以内でないなら例えば25パーセントよりも大きい、ステップ440に示すように、調整は最大周波数調整制限に従って制限される。0045ステップ445において、周波数は、調整を受けて、ホストプロセッサンクロックで生成される。0046本発明の実施形態は、ビデオ復号中の動的周波数調整のための方法及びシステムを提供する。本発明の各実施形態は、ビデオ復号中のハードウェアVLDを制御する周波数を適応的に調整することができる。本発明の各実施形態は、フレームレベル精度において周波数を調整することができる。本発明の他の実施形態は、マクロブロックレベル精度において周波数を調整することができる。VLDを実行するのに要した時間に関する最近の履歴に基づいてビデオ復号中に周波数を適応的に調整することにより、使用されない処理スピードにより引き起こされる過剰の電力ロスが抑えられる。必要な速度よりも速く復号が起こる場合、周波数はVLDを遅くするように減少され、電力消費を図ることができる。0047以上の本発明の具体的な各実施形態は、例示及び説明のために開示したものである。これらがすべての実施形態ではなく、また、本発明を開示した形態と同じものに限定するものでもなく、多くの修正及び変形が上記の教示に基づいて可能である。各実施形態は、本発明の原理を説明する上で最善となるように選択及び説明されており、これにより、目的とする特定の使用に適切となるように、本発明及び各実施形態に様々な修正を施したものを当業者が最善に実施することが可能となる。本発明の範囲は、特許請求の範囲及びその均等物によって定められる。"