(57)【要約】プロセッサは、クロック装置の制御に基づいて、画像処理を実行し、連続したクロックサイクルＣは所定量の画像情報の処理動作をもたらす。特に、プロセッサは、プログラム可能なスローダウンファクタＳを実行するための、上記クロックサイクル間に配置されたプログラム可能なストールクロックサイクルを実行するプログラミング手段を有する。変更された全クロックサイクルＣ＊Ｓは、上記所定量のデジタル信号情報の処理を実行する。
2005500601.tif 000002
【特許請求の範囲】
【請求項１】
連続したクロックサイクルＣによって所定量のデジタル信号情報の処理を実行する、クロック装置の制御に基づいてデジタル信号処理を実行するプロセッサであって、
プログラム可能なスローダウンファクタＳを実行するための、前記クロックサイクル間に配置されたプログラム可能なストールクロックサイクルを実行するプログラミング手段を有し、変更された全クロックサイクルＣ＊Ｓは、前記所定量のデジタル信号情報の処理を実行することを特徴とするプロセッサ。
【請求項２】
前記プログラミング手段は、少なくとも実質的に周期的に前記配置を制御することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
コプロセッサを効果的に具体化し、前記プログラミング手段としてコントロールプロセッサを備えたことを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記コプロセッサ及び前記コントロールプロセッサは共有メモリ装置に対してバスによって相互接続されたことを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記コプロセッサ、前記コントロールプロセッサ及び前記バスは、単一半導体チップに配置され、一方、前記共有メモリ装置は少なくとも実質的に前記チップから分離されたことを特徴とする請求項４に記載のプロセッサ。
【請求項６】
少なくとも２つの異なるモードを実行し、各モードは、それぞれ異なるパーセンテージのストールサイクルに基づいて処理される、それぞれ異なったデータ量を必要とすることを特徴とする請求項１に記載のプロセッサ。
【請求項７】
前記ストールサイクルは浮動小数点の整数変換によって生成されることを特徴とする請求項１に記載のプロセッサ。
【請求項８】
前記プログラミング手段は、前記ファクタＳの関数である、N=round(R*x)に従う数値Ｎの周期的な増加を介して増加可能な記憶装置を駆動し、x=(S-1/S)及びRは前記記憶装置の範囲であり、前記記憶装置の桁上がり出力信号はストールサイクルを生成することを特徴とする請求項１に記載のプロセッサ。
【請求項９】
前記プログラミング手段は、プログラムされた値に関して加算あるいは減算処理を実行する演算素子を駆動し、前記加算あるいは減算は、第１の場合ではそれぞれ桁上がりあるいは桁下がり信号を生成し、第２の場合ではそれぞれそのような桁上がりあるいは桁下がり信号を生成せず、ストールサイクルから処理サイクルへの移行は、前記第１及び第２の状態間の遷移によって制御されることを特徴とする請求項１に記載のプロセッサ。
【請求項１０】
前記コプロセッサ以外の少なくとも１つの他のバスステーションが、前記ストールサイクルの間において前記バスを獲得することを特徴とする請求項５に記載のプロセッサ。
【請求項１１】
さらに第２ストールサイクルを制御するための源（origin）を有し、また、過度な数の前記プログラム可能なストールサイクル及び結合された前記第２ストールサイクルを検出する検出装置を有し、前記プロセッサは、前記プログラム可能なストールサイクルの再帰を修正するため、前記検出装置によって駆動される制御装置を備えたことを特徴とする請求項１に記載のプロセッサ。
【請求項１２】
前記検出装置は割り込み信号を生成することを特徴とする請求項１１に記載のプロセッサ。
【請求項１３】
前記検出装置は、着目する前記コプロセッサに対してより多くの帯域幅をバスアービタに割り当てさせることを特徴とする請求項１１に記載のプロセッサ。
【請求項１４】
さらに第２ストールサイクルを制御するための源（origin）を有し、また、過度な数の前記プログラム可能なストールサイクル及び結合された前記第２ストールサイクルを検出する検出装置を有し、前記プロセッサは、その拡張性を利用して前記コプロセッサの１以上のコントロールパラメータを修正するための、前記検出装置によって駆動される制御装置を備えたことを特徴とする請求項１に記載のプロセッサ。
【発明の詳細な説明】
【発明の背景】
【０００１】
本発明は、添付されたクレーム１の前提部分に従ったプロセッサに関する。現在、種々のマルチメディア処理機能を実行するいわゆるデジタル・ビデオ・プラットフォーム（Digital Video Platform：ＤＶＰ）の構築に関し、プロセッサ設計において１つの傾向がある。そのような機能は、ハードウェア、ソフトウェア、あるいはそれらの混合で実行され得、その選択は、処理機能自体、及び／あるいは、着目する機能及び／あるいは回路の製造量に依存する。マルチメディアにはビデオ、グラフィック、オーディオあるいはその他のものが含まれ得る。
【０００２】
経済上の理由から、非常にしばしば、そのようなプロセッサは、これらの機能の限定部分だけを実行することに、さらにしばしば実に単一の機能を実行することに、奉仕させられる。この手段は、背景のメモリ、即ち、全処理システムの鍵となる機能部に、種々のプロセッサを接続する共有バスを提供する。現在、全システムを制御するために、しばしばさらに中央演算処理装置（Central Processing Unit：ＣＰＵ）が提供される。ＣＰＵは、背景のメモリの制御に次いで、種々のプロセッサにおける種々のコントロールレジスタに即時にアクセスし得る。実際のシステムにおいて、そのようなプロセッサの数は、１０〜２０に増大してきた。
【０００３】
本発明は、動き予測（Motion Estimation：ＭＥ）及び動き補償（Motion Compensation：ＭＣ）の両方を実行可能なマルチ機能コプロセッサを設計する際に直面する問題を解決する。これらの機能は、ビデオフォーマット変換システムに用いられる。そのようなシステムの例としていくつかが、G. de Haanによって、論文“３Ｄ再帰ブロックバッチを伴う真の動き予測”（IEEE Trans CSVT １９９３年１０月、p.368.388）などにおいて述べられてきた。このような複雑なシステムにおいては、共有バス上を支配する帯域幅は、最も重要な設計問題であり、種々のプロセッサが、全フィールドすなわちフレームの処理のタイムスロットレベルにおいて同期を維持すべきである。
【本発明の要約】
【０００４】
本発明の目的は、１以上のプロセッサのプログラム可能なスローダウンを簡易な手法で実現することにある。それ故、その特徴の１つに従って、本発明は、クレーム１の特徴部分によって特徴付けられる。ストールサイクルを含むことは、バス負荷をかなり低くでき、他の目的に適用され得るバス能力を残す。
【０００５】
好適には、プログラミング手段はクレーム７に従って構成される。これは、簡易で且つハードウェア効率的の良い解決手法である。
【好適な実施形態の詳細な説明】
【０００６】
以下、本発明の特徴及び有利な点について添付された図面を参照して詳細に説明する。
【０００７】
図１は、ビデオ処理システムの一般的なブロック図である。この概念的な装置において、信号源、詳細には、ビデオソース４２、４４は、入力通信装置４１での処理のためにビデオ画像を与え、この入力通信装置４１は、バス、あるいは種々のステーション間で共有される別の装置である。符号２０は、後に詳細する処理チップであり、受信した画像を処理する。この処理ために、チップ２０は、信号源４２、４４からのピークフローを、場合によってはユーザ４６、４８からのピークリクエストを円滑に対処するため、適正量の情報を記憶するＲＡＭ２２に関連づけられる。後者は、チップ２０によって処理されたビデオ画像を用いる。この処理ために、符号２０、４６、４８は、出力通信装置４５を介して相互接続され、この出力通信装置４５は、バス、あるいは別の手法によってステーション間で共有されものである。
【０００８】
図２は、処理を実行するマルチプロセッサチップを示し、本発明を具体化したものである。ランダムアクセスメモリ２２から分離して、図の残り部分が、単一半導体チップ２０に組み込まれている。このチップ内で、バスすなわちチップ上のデータハイウェイ２８と、メモリ２２との間の相互接続は、主メモリインターフェース２４とバスアービタ２６によってなされている。さらに、バス接続されたサブシステムとして、ビデオ入力インターフェース３０、メモリベーススケーラ３２、ビデオ出力インターフェース３４、中央演算処理装置３８及びプロセッサ３６があり、プロセッサ３６は、動き予測（Motion Estimation）及び動き補償（Motion Compensation）を実行する。Ｍ．Ｅ及びＭ．Ｃ自体は、フィルムあるいはアニメーションのような多数の画像シーケンスを処理する一般的な機能であり、それに関わる処理手順はここでは簡単化のため説明しない。プロセッサ３６、ハードウェア及びそれらに必要なソフトウェア機能によって供給される画像処理機能全体についても同様である。
【０００９】
バス装置上でのデータ転送の適正さを論じるために、種々のモデルを使用することが考えられる。今、プロセッサ３６が３つの主要タスクを時間多重手法で処理するとする。まず、適用画像の動きベクトルを計算し（ＭＥ）、次いで、輝度信号で動き補償を実行し（ＭＣ−Ｙ）、最後に、クロミナンス信号で動き補償を実行する（ＭＣ−ＵＶ）。基本的に、着目する処理ブロックは任意のサイズの画像を処理するけれども、実施例において、最大のスループットは、６０Ｈｚでの５１２×２４０ピクセル、あるいは代替的に、５０Ｈｚでの５１２×２８８ピクセルの２つのビデオストリームである。特定の規格化されたストリーム量は、６０Ｈｚでの７２０×２４０ピクセル、あるいは代替的に、５０Ｈｚでの７２０×２８８ピクセルである。
【００１０】
使用例は種々の操作パラメータによって定められる。実際の表示モードは、どの変換が実行されなければならないかを決定し、表示走査フォーマットの変化は多くの場合発展できないので、表示モードは一旦設計されると通常、特定のビデオプロダクトの固定特性である。表示モードは、実際の変換を決定するために以下のパラメータ値を有する。これらの全ての場合において、選択及び管理はＣＰＵによって制御され、これらの選択及び管理機能性のいくつかは動作中に動的に変更され得ることに注意する。適用可能なデータレートは以下の通りである。
【００１１】
・５０ｉ／６０ｉ＝データレートの１倍（1 times the data rate）
・１００ｉ／１２０ｉ＝入力データレートの２倍（2 times the input data rate）
・１００ｐ／１２０ｐ＝入力データレートの４倍（4 times the input data rate）
拡張モードでは、アプリケーションが、例えばハイウェイ帯域幅や背景メモリの利用可能量といった使用リソースと、画像の質との間のトレードオフを実行する。これは、得られる質と利用可能なリソースとの間を効果的に制御する。種々の可能性は以下の通りである。
【００１２】
frm-fld-fld, 前のフレーム、現在のフィールド及び次のフィールド
frm-fld, 前のフレーム及び現在のフィールド
fld-fld, 前のフィールド及び現在のフィールド
データモードでは、例えば画像中の画像画面(picture-in-picture display)に結合された背景と区別される主ウィンドウのみといった、処理しなければならないビデオ画像量を制御する。種々の可能性としては以下のものがある。
【００１３】
・７２０ピクセル幅の１つの“標準”ストリーム
・５１２ピクセル幅の２つの“小さな”ストリーム
・最大にサポートされる画像サイズ内にある他のもの
ブロック３６は以下の特性で具体化されて設計される。
【００１４】
・動き予測は、１２８×８ピクセルを処理するために１０２４サイクルを必要とする
・動き補償は１２８×８ピクセルを処理するために１６００サイクルを必要とする
・クロック周波数は１５０ＭＨｚである
図３は、本発明に従った、プログラム可能なビデオプロセッサを示す。プロセッサ５０内に、図２に示されるような他のサブシステムと通信するためのインターフェースが存在する。内部通信は、内部ローカルバス６０によって達成される。それらに接続される種々のステーションすなわち装置は、プログラムＲＯＭ５２、プログラム及び／あるいはデータを記憶するプログラマブルＰＲＯＭ５４、データＲＡＭ５８、ローカルバス６０に接続された入力と出力とを有する処理素子５６である。
【００１５】
処理素子における主要アイテムはレジスタファイル５７であり、図示のように、バス６０からロード可能である。種々のさらなるコントロール、アドレス及びデータ相互接続線は、当業者にとって簡単に分かることなので簡単化のために省略されている。図２の全体の装置に関して、データ入力及び出力は機能的にデータハイウェイ２８に接続する。レジスタファイル５７のビットセット（ベイディング：bading）を含むコントロール入力は、典型的にＣＰＵ３８によって供給される。このＣＰＵは種々のビットをレジスタファイル５７にセット可能である。データは共有メモリから受信され、コプロセシング素子によって処理され、それらの結果は、共有メモリに記憶される。典型的に、その処理は、コントロールレジスタファイルから読み出された処理パラメータを含むパラメータ化されたデータパイプを構成する。種々のコントロールビット、１以上のデータ入力及び／あるいは出力の未決のものが活性化され得る。さらに、実行される機能はそのようなコントロールビットに依存する。
【００１６】
図４は、プログラミングアキュムレータの実施例を示す。ここで、プログラミングレジスタ７２は、線７０を介して第１の番号と共にロードされる。クロック同期の下、レジスタの中身は、アキュムレータレジスタ７６の中身と加算されるため、加算器７４に転送され、その中身は、相互接続７８を介して再接続される。２つのデータの合計はアキュムレータ記憶装置７６へライトバックされる。今、レジスタ７２の中身が高くなればなる程、アキュムレータ７６からの桁上がり出力８０はますます頻繁に桁上げ信号を生成する。桁上げ信号は、本発明のプロセッサに画像処理を実行させるために、クロックサイクルを効果的に制御し得る。しかしながら、本発明の好適な実施例において、桁上げ信号は、効果的なデータ処理がなされないストールサイクルを制御する。それ故、桁上げ信号が頻繁に供給されればされる程、ストールサイクルはより多く挿入され、コプロセッサによるデータ処理を効果的にスローダウンする。後者の実施例が好ましいさらなる理由は、処理素子の出力におけるＦＩＦＯオーバーフロー、あるいは処理素子の入力におけるＦＩＦＯアンダーフローといった、ストールに対する他の原因と共に、桁上げ信号がＯＲをとられることを許容することである。
【００１７】
図５は、種々の表示モードに対する動き予測及び動き補償の間、標準サイズの拡張可能な１２８×８ピクセルのピクセルブロックに対するハイウェイ転送データを示すテーブルである。動き予測及び動き補償はおよそ同じ入力データを必要とするけれども、異なる出力データ、さらに異なる出力データ量を生成する。明らかに、全変化量は、最も右側の列で＋５０％である。
【００１８】
図６は、そのような拡張性に対するＭＥ／ＭＣの間のデータレート、特に上記種々の表示モードに対してＭＥ及びＭＣの間にデータハイウェイ帯域幅に生じた結果を示すテーブルである。典型的なシステムにおいて、メモリは１６６ＭＨｚ、３２ビットデュアルデータレートで動作し、それは、理論上最大のハイウェイ帯域幅（１６６＊２＊４）即ちおよそ１２００Ｍｂｙｔｅ／ｓｅｃをもたらす。
【００１９】
ＭＥの間、スループット要求は７３２Ｍｂｙｔｅ／ｓｅｃである。それ故、この帯域幅は、比較的遅い５０ｉ／６０ｉシステムにおいてでさえ、基本的に、絶えず入手できる。一方、そのような比較的遅いシステムは、より高い表示レートを必要とするモードに比べて、より低いデータレートで動作可能であるべきである。実際、少ない余分なクロックサイクルで、所定量の帯域幅を放棄することが望まれる。この結果、最適条件は実際の表示モードに依存することから、本発明は、プログラム可能なスローダウン機能を提供する。さらなる要求は、より小さい画像の処理に対してさらに帯域幅をセーブする機能を本発明に持たすことである。
【００２０】
それ故、本発明は、コプロセッサのデジタル回路において、プログラム可能なスローダウンファクタを提供する。何らかの１以上の実数であるＳのスローダウンファクタに対して以下のことが維持される。
【００２１】
・動き予測は１２８＊８ピクセルを処理するためにＳ＊１０２４サイクルを必要とする
・動き補償は１２８＊８ピクセルを処理するためにＳ＊１６００サイクルを必要とする
表示動作を支配するソフトウェアに基づき、スローダウンファクタは容易にこの手段でセットされる。有利な実施例は、適合したオペランドを周期的に蓄積するアキュムレータを介する。アキュムレータがオーバーフローするときはいつも、桁上げ出力が高位へ生じる。桁上げ出力は、オーバーフロー／ラップによって制御され、それによって、全体のプロセッサのストールを制御する。動き予測のために少数の実施例を以降に述べることは、動き補償用の類似の手段を提示することを不要にさせる。
【００２２】
Ｓ＝１．２１５に対して、１２８＊８ピクセルを演算するために、１０２４＊１．２１５＝１２４４サイクルを必要とする。このことは、１２４４サイクルの間に、１２４４−１０２４＝２２０回のストールを必要とすることを意味する。それ故、正確なプログラミングは、ｘ＝２２０／１２４４＝０．１７６８４８９である。
【００２３】
Ｓ＝１６に対して、１２８＊８ピクセルを演算するために、１０２４＊１６＝１６３８４サイクルを必要とする。このことは、１６３８４サイクルの間に、１６３８４−１０２４＝１５３６０回のストールを必要とすることを意味する。それ故、正確なプログラミングは、ｘ＝１５３６０／１６３８４＝０．９３７５である。明らかに、ｘ＝（Ｓ−１）／Ｓである。長いアキュムレータレジスタを実行することは、必要とされるファクタの正確なプログラミングを許容する。１０ビットアキュムレータはＣＰＵによってセットされるパラメータＮを有し、プログラム可能なスローダウン：Ｎ＝ｒｏｕｎｄ（１０２４＊ｘ）を制御する。上記２つのファクタに対して以下の結果が導かれる。
【００２４】
Ｓ＝１．２１５；  ｘ＝０．１７６８４８９；  Ｎ＝１８１
Ｓ＝１６；        ｘ＝０．９３７５；        Ｎ＝９６０
整数変換される種々の他の浮動小数点がさらにストールサイクルを生成するために用いることができる。一例として、切り捨て処理を用いる間、そのようにすることがある。
【００２５】
上記に従ったプログラム可能なストールのさらに有利なことは、例えばメモリよりも低い優先度を有する他のコプロセッサといった他のバスマスタステーションが、他の方法の場合(case otherwise)よりも比較的小さなバッファを有することを許容することである。特に、ストールしているプロセッサがバスにアクセスしない間、低い優先度のマスタステーションが周期的に一時的にバスを獲得することが許容される。実際、この特徴は、ＩＣエリアをより小さくし、そして、製造コストを実質的により低くする。
【００２６】
本発明のプログラム可能な処理のスローダウンは、さらに他の有利な特徴を許容する。上述したように、バッファオーバーフロー及び／あるいはアンダーフローといった、ストールに対する他の原因が存在し得る。さらに他の原因は、他のコプロセッサによるバスのロードの最中といった、過度なハイウェイの待ち時間によって表される。これらの後者の原因に対して、一般的に、制限時間割当量だけが利用できる。しかしながら、もしこの時間割当量が越えると、本発明に従ったコプロセッサは、従来技術システムにおいて失敗を提示しているように、時間内に終了しないこととなる。
【００２７】
それ故、本発明の好ましい実施例に従って、これらの余分なつまり現時点でプログラムされた以外のストールの数が所定の閾値を越えたとき、余分な割り込み信号が生成される。この更なる割り込みは、プログラムされたスローダウンに関連したスローダウンファクタを減少し得るフィードバックを開始する。これは、例えば図３のレジスタファイル５７における別のアイテムをアドレス指定するといったように、ストールサイクルの再帰を修正することによってなされ得る。別の解決は、本発明に従ったコプロセッサにより多くの帯域幅をバスアービタに割り当てさせることによる。
【００２８】
実際、ハードウェア自身は、プログラム可能な一定のストールレートを維持することを引き受けることによって、そのストール再帰を調整し得る。もしそれが過度なハイウェイ待ち時間によって達成できないならば、そのハードウェアはプロセッサに割り込み得る。プロセッサは、別の割当てパラメータ値へアービタを再プログラミングすることによって、より多くの帯域幅をコプロセッサに割り当て得る。更に別のアプローチは、例えば利用可能な時間スケジュール内で全てが演算されることを保証するために動き補償のための３フィールドモードへ戻るといったように、コプロセッサの全体の制御パラメータを修正してその拡張性を利用することである。
【００２９】
本発明の上述の実施例は、いくつかの例であり限定するものではない。それ故、当業者であれば、添付のクレームによって包含される本発明の範囲を超えない種々の変形及び修正が容易に分かる。特に、本発明は、オーディオ、グラフィック等など、信号処理を用いる他の分野に適用可能である。
【図面の簡単な説明】
【００３０】
【図１】ビデオ処理システムの一般的なブロック図である。
【図２】本発明を具体化したマルチプロセッサチップである。
【図３】本発明に従ったプログラム可能なビデオプロセッサである。
【図４】プログラミングアキュムレータの実施例である。
【図５】標準サイズの拡張可能なピクセルブロックに対するハイウェイ転送データを示すテーブルである。
【図６】その拡張可能性の実行に対するＭＥ／ＭＣ間におけるデータレートを示すテーブルである。
【図１】
2005500601.tif 000003
【図２】
2005500601.tif 000004
【図３】
2005500601.tif 000005
【図４】
2005500601.tif 000006
【図５】
2005500601.tif 000007
【図６】
2005500601.tif 000008
【国際公開パンフレット】
2005500601.tif 000009
2005500601.tif 000010
2005500601.tif 000011
2005500601.tif 000012
2005500601.tif 000013
2005500601.tif 000014
2005500601.tif 000015
2005500601.tif 000016
2005500601.tif 000017
2005500601.tif 000018
2005500601.tif 000019
2005500601.tif 000020
2005500601.tif 000021
【国際調査報告】
2005500601.tif 000022
2005500601.tif 000023