(57)【要約】近年、専用単機能コンポーネントではなく、プログラマブルコンポーネント（１３０４）が、デジタルテレビジョンセット（１３１０）、セットトップボックス、パーソナルコンピュータ、或いは、ビデオカセットレコーダのような消費者装置において連続的なメディア処理を実行することができる。これらのプログラマブルコンポーネント（１３０４）のために記述されたメディア処理アルゴリズムは、要求された処理リソースに応じて複数の出力品質レベルを提供するよう設計する必要がある。リソースは有限であるため、メディア処理アルゴリズムは、リソース使用法及び提供する出力品質レベルの点で制御されるべきである。消費者装置のユーザは、たとえば、自分が視聴しているビデオの品質が大きく変化することを好まない。したがって、アルゴリズムを構成する機能のような典型的なアルゴリズム特性、機能毎のリソース使用法、及び、機能毎の品質レベルがより滑らかな品質変化を行なうために使用される。
2004507957.tif 000002
【特許請求の範囲】
【請求項１】
第１の機能及び第２の機能を含むアルゴリズムを実行する方法であって、
複数の出力品質レベルを与えるためアルゴリズムによってアルゴリズムリソースを要求する第１の手順と、
第１の機能が第１の複数の品質レベルを与え、第２の機能が第２の複数のレベルを与えることを判定する第２の手順と、
複数の出力品質レベルのうちの一つの出力品質レベルでアルゴリズムを動作させるため、予定使用量をアルゴリズムへ割り付ける第３の手順と、
第１の複数の品質レベルのうちの第１の品質レベルを第１の機能に割り当て、第２の複数の品質レベルのうちの第２の品質レベルを第２の機能に割り当てる第４の手順と、
を有する、アルゴリズムを実行する方法。
【請求項２】
第１の品質レベルを与える第１の機能は複数の複雑さのレベルで動作させられ得る、請求項１記載のアルゴリズムを実行する方法。
【請求項３】
出力品質レベルでアルゴリズムを動作させる第６の手順と、
第１の機能によって第１のリソース量を使用して第１の品質レベルで第１の機能を動作させ、第２の機能によって第２のリソース量を使用して第２の品質レベルで第２の機能を動作させる第７の手順と、
を更に有する請求項１記載のアルゴリズムを実行する方法。
【請求項４】
複数の複雑さのレベルの中の最小の複雑さレベルで第１の機能を動作させる第８の手順を更に有する請求項３記載のアルゴリズムを実行する方法。
【請求項５】
割り付けられた予定使用量は、要求されたアルゴリズムリソースに実質的に一致する、請求項１記載のアルゴリズムを実行する方法。
【請求項６】
第１のリソース量と第２のリソース量の合計は、割り付けられた予定使用量に実質的に一致する、請求項３記載のアルゴリズムを実行する方法。
【請求項７】
アルゴリズムリソースと複数の出力品質レベルを決定するためにアルゴリズムを実行する方法を実施するハードウェアプラットフォームを決定する第９の手順を更に有する、請求項１記載のアルゴリズムを実行する方法。
【請求項８】
アルゴリズムリソースと複数の出力品質レベルを決定するためにアルゴリズムを実行する方法を実施するソフトウェアプラットフォームを決定する第１０の手順を更に有する、請求項１記載のアルゴリズムを実行する方法。
【請求項９】
各動作状態がプログラマブル処理装置の複数の動作モードの中の少なくとも一つのモード、動作の複雑さ、及び、歪みレベルと関連付けられている、複数の動作状態を表わすデータを準備する第１の手順と、
該データを使用して、該歪みレベルに基づいて、該複雑さ毎に該動作状態のうちの一つの動作状態を選択する第２の手順と、
該プログラマブル処理装置の動作状態を判定する第３の手順と、
該選択された動作状態を用いて該判定された動作状態に応じて該複雑さ毎に該プログラマブル処理装置を動作させる動作モードを選択する第４の手順と、
を有する、出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１０】
１番目に判定された動作状態に対し選択された動作モードは、２番目に判定された動作状態に対し選択された動作モードとは異なる、請求項９記載の出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１１】
該第２の手順は、該複雑さに対する該歪みレベルを最小限に抑えるように一つの動作状態を選択する、請求項９記載の出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１２】
該第１の手順では、少なくとも一つのルックアップテーブルが使用される、請求項９記載の出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１３】
該プログラマブル装置はマルチメディア通信装置である、請求項９記載の出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１４】
該プログラマブル装置は、少なくとも一つの逆離散コサイン変換部を含むＡＴＳＣ準拠式デジタルテレビデコーダであり、
各動作モードは該少なくとも一つの逆離散コサイン変換部の別々の動作モードに対応する、
請求項９記載の出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１５】
該第４の手順は、動作モードを選択する際に、利用可能な計算用リソース量を用いてタスクを実行する他の動作モードに望ましい複雑さ−歪み特性を与える動作モードを判定する、請求項９記載の出力信号における歪みを低減するためプログラマブル処理装置を動作させる方法。
【請求項１６】
動作の複雑さ特性が異なる複数のモードで動作可能な少なくとも一つの拡張性のあるアプリケーションと、
該少なくとも一つの拡張性のあるアプリケーションが使用するために利用可能な計算用リソースの量を追跡するＱＯＳリソースマネージャーと、
該複数のモードのうちの所与のモードにおいて該利用可能な計算用リソースが該拡張性のあるアプリケーションの動作に適しているかどうかを判定する戦略マネージャーと、
該戦略マネージャーに応答し、該利用可能なリソースが該所与のモードにおいて該少なくとも一つのアプリケーションの動作に適していないという該戦略マネージャーによる判定に応じて、該少なくとも一つの拡張性のあるアプリケーションに対して別のモードを選択するローカルリソース制御部と、
を有し、
該ＱＯＳリソースマネージャー及び該戦略マネージャーは相互に応答し、
該少なくとも一つの拡張性のあるアプリケーションは該ローカルリソース制御部に応答する、
拡張性のあるプログラマブル処理装置。
【請求項１７】
該ローカルリソース制御部からアクセスできるメモリを更に有する請求項１６記載の拡張性のあるプログラマブル処理装置。
【請求項１８】
該メモリは、複数の利用可能なシステムリソース量に対する各モードの複雑さ−歪み特性を表わすデータを含む、請求項１７記載の拡張性のあるプログラマブル処理装置。
【請求項１９】
少なくとも一つの逆離散コサイン変換部を含むＡＴＳＣ準拠式デジタルテレビデコーダであり、
各モードは、該少なくとも一つの逆離散コサイン変換部の別々の動作モードに対応する、
請求項１６記載の拡張性のあるプログラマブル処理装置。
【請求項２０】
少なくとも一つの可変長デコーダと、
該可変長デコーダに接続された少なくとも一つの逆量子化器と、
該逆量子化器に接続された少なくとも一つの逆離散コサイン変換器と、
該逆離散コサイン変換器に接続された少なくとも一つの動き補償器と、
該逆離散コサイン変換器及び該動き補償器に接続された加算用接点と、
コントローラと、
を有する、拡張性のあるＭＰＥＧ２準拠式ビデオデコーダであって、
少なくとも一つの該可変長デコーダ、該逆量子化器、該逆離散コサイン変換器、及び、該動き補償器は、該コントローラに接続され、該コントローラに応答し、複数のモードの中で、該ビデオデコーダの出力の許容可能な歪みレベルに対し所定の複雑さ特性を備えた一つのモードで動作し、
該コントローラは、該所定の複雑さ特性に基づいて該一つのモードを選択する、
拡張性のあるＭＰＥＧ２準拠式ビデオデコーダ。
【請求項２１】
該コントローラは、少なくとも一つの該可変長デコーダ、該逆量子化器、該逆離散コサイン変換器、及び、該動き補償器を動作させるための利用可能な計算用リソースの量に更に基づいて、該一つのモードを選択する、請求項２０記載の拡張性のあるＭＰＥＧ２準拠式ビデオデコーダ。
【請求項２２】
該少なくとも一つの逆離散コサイン変換器は、該コントローラに応じて選択的に動作する複数の逆離散コサイン変換器を含む、請求項２０記載の拡張性のあるＭＰＥＧ２準拠式ビデオデコーダ。
【請求項２３】
該選択的に動作する逆離散コサイン変換器は、選択された該一つのモードを実施する、請求項２２記載の拡張性のあるＭＰＥＧ２準拠式ビデオデコーダ。
【請求項２４】
選択された該一つのモードの該複雑さ−歪み特性は、該複数のモードの中の他のモードの特性よりも効率的である、請求項２３記載の拡張性のあるＭＰＥＧ２準拠式ビデオデコーダ。
【請求項２５】
請求項１乃至１５のうちいずれか一項記載の方法を実行するコンピュータプログラム。
【請求項２６】
請求項２５記載のコンピュータプログラムを記録した記憶装置。
【発明の詳細な説明】
【０００１】
本発明は、第１の機能及び第２の機能を有するアルゴリズムを実行する方法に関する。
【０００２】
また、本発明は、拡張性のあるシステムに係り、特に、ＡＴＳＣ準拠式ビデオデコーダのような拡張性のあるマルチメディア通信システムに関する。
【０００３】
上記のような方法及びシステムの実施例は、文献：拡張性のあるビデオデコーダと、そのマルチチャネル・マルチキャスト・システムへの応用（Ｓｃａｌａｂｌｅ Ｖｉｄｅｏ Ｄｅｃｏｄｅｒ ａｎｄ ｉｔｓ Ａｐｐｌｉｃａｔｉｏｎ ｔｏ Ｍｕｌｔｉ−ｃｈａｎｎｅｌ Ｍｕｌｔｉｃａｓｔ ｓｙｓｔｅｍ）、ＩＥＥＥ １９ｔｈ Ｉｎｔｅｒｎａｔｉｏｎａｌ ｃｏｎｆｅｒｅｎｃｅ ｏｎ ｃｏｎｓｕｍｅｒ ｅｌｅｃｔｒｏｎｉｃｓ， ２０００， Ｐａｇｅ ２３２ − ２３３に記載されている。ここで、拡張性のあるアルゴリズムは、有限リソースと、時間が決定的な要因であるアルゴリズムとを有するリアルタイムシステムで使用される。このような特性を備えたリアルタイムシステムの一例は、マルチチャネル・マルチキャスト・システム内で使用されるビデオデコーダであり、有限リソースの例は、物理的メモリ、メインプロセッサ、及び、入出力装置である。拡張性のあるアルゴリズム、たとえば、ビデオ用の復号化アルゴリズムは、たとえば、ローパスフィルタリング及びアップサンプリングのような複数の機能を含む。機能毎に、ＣＰＵ負荷に関するリソース要件は、たとえば、１チャネル、４チャネル若しくは８チャネルのように、同時に復号化可能なビデオチャネルの数を基準にして決定される。このアルゴリズム内で使用される機能は、許容ＣＰＵ負荷から導き出され、各機能が使用を許可された予定使用量は、機能毎に個別に割り当てる必要がある。
【０００４】
さらに、一般的に知られているように、所与のシステムにおける複雑さ−歪みを測定する従来の方法は、特定のデータモデル（アルゴリズム）に対する動作曲線を測定する。一例としてＭＰＥＧ２方式デコーダの一般的なＩＤＣＴアルゴリズムを使用した場合、このアルゴリズムは、８×８型のブロック毎に全てのデータが使用されることを仮定する。乗算と加算の総回数は一定回数である。しかし、一つの特定のアルゴリズムの場合、データパターンが変化すると、計算ステップの回数が変化する可能性があるので、アルゴリズムの計算時間に関する複雑さは、たとえば、図２に示されているように異なる。複雑さレベルの変化に伴って、出力歪みも異なり、すなわち、異なる動作ポイント２０２が利用される。このアルゴリズムに対する対応した動作曲線を測定することができる。異なるＩＤＣＴアルゴリズムがデコーダに対して採用された場合、たとえば、曲線２０４、２０６のように異なる動作曲線を描くことができる。
【０００５】
マルチメディア処理産業における急速な発展は、たとえば、特定用途集積回路（ＡＳＩＣ）のような従来の専用ハードウェアによる解決策ではなく、プログラマブルマルチメディア処理装置を促進した。ソフトウェア指向装置のプログラマブル機能性は、このようなタイプのマルチメディアシステム及び通信システムのフレキシビリティを著しく向上させた。プログラマブル装置は、一般的に、機能の複雑さを、利用可能な計算用リソースに応じたある程度のレベルに調整若しくは拡大縮小するため使用される。これにより、システムの拡張性が得られる。しかし、機能の複雑さが縮小されたとき、システムの性能は、屡々、従来の専用ハードウェア解決法の場合よりも低下する。したがって、システムの全体的な性能を維持するためには、各機能複雑さレベルで、性能劣化又は歪みを最小限に抑えることが望ましい。
【０００６】
理論的に、拡張性は、情報レート及びリソース制約条件によって、機能複雑さと歪みのバランスを取り扱う。計算用リソースが減少するとき、元の機能複雑さの量を処理するための計算パワー又は処理パワーは減少するので、拡張性のあるアルゴリズムは、強制的に、より低い機能複雑さのレベルへ後退する。
【０００７】
拡張性のある設計が利用される一例は、たとえば、テレビ信号のような情報ストリームを受信し復号化するよう適合したデジタルテレビ（ＤＴＶ）ビデオデコーダである。このデコーダの処理能力は、特に、デコーダのプロセッサの制約、たとえば、利用可能な計算用リソースの制約によって制限される。デコーダの処理能力は、許容品質標準で表示する受信ビットストリームを処理するためには不十分なポイントへ制限される。したがって、プロセッサがビットストリームを復号化できるようにする一つの方法は、一つの機能の品質を低下させることである。たとえば、ピクチャー・イン・ピクチャー（ＰＩＰ）ウィンドウに表示される品質は、主チャネルに対応した主ビットストリームの復号化品質を変更することなく、ウィンドウ化されたビットストリームの処理複雑さを下げることにより、主チャネルが表示される品質よりも低い（しかし、許容可能な）レベルにセットされる。これによって、様々な処理複雑さが、夫々の動作モードに応じて、異なるビットストリームのために使用される。この結果として、デコーダの制限された処理能力を、多数のビットストリームを同時に処理できるようにするため、より効率的に利用できるようになる。
【０００８】
図１を参照するに、情報ベース複雑さ理論（ＩＢＣ）は、所与のシステム毎に、最小限の複雑さ−歪み（Ｃ−Ｄ）境界１００が存在することを示している。図１は、レート歪み境界１００が凸関数であることを表わす。この曲線１００は、達成可能な機能複雑さ−歪み（領域１０２）と、達成不可能な機能−複雑さ歪み（領域１０４）との間に理論的な境界を厳密に定義する。背景技術については、１９４８年に刊行されたＣ．Ｅ． Ｓｈａｎｎｏｎの情報理論（ＩＴ）の文献を参照のこと。情報理論の一分野として、レート歪み理論（ＲＤＴ）は、品質規準に応じてソースから最大限に冗長性を取り去る技術と関連したソース符号化（コーディング）及び圧縮の分野に分類される。すなわち、ＲＤＴは、所定の再現品質に対して実現可能である最小限のビット数でソースを表現する技術に関係する。ＲＤＴにおいて直面するトレードオフは、情報レートと出力歪みとの間のバランスである。しかし、ＲＤＴでは、典型的に、出力デコーディングシステムが実現し得る事項に対して計算の制約が無いことに注意する必要がある。
【０００９】
複雑さ−歪みのバランスと拡張性の問題を調べるべくＲＤＴを拡張するために、情報ベース複雑さ（ＩＢＣ）理論が開発された。ＩＢＣは、情報が部分的である、情報の品質が劣化している、情報に値段が付けられている、という問題を研究する計算複雑さの一分野である。ＩＢＣは、アルゴリズムの計算が、処理されるべき入力情報の量を制限することによって縮小され得ることを主張する。アルゴリズムの複雑さは、出力シーケンスを生成するため処理される情報の量の関数に一般化することができる。
【００１０】
上述の通り、曲線１００よりも上の領域１０２は、理論的にアルゴリズム達成可能であり、下の領域１０４はアルゴリズム達成不可能である。特定のシステムに対し、複雑さは制限される。換言すると、システムの複雑さは、システムを正常に働かせるために境界がある。複雑さの境界は、［Ｃｍｉｎ，Ｃｍａｘ］として示されている。また、出力品質にも限界、すなわち、歪みレンジ［Ｄｍｉｎ，Ｄｍａｘ］がある。Ｄｍｉｎはシステムが実現し得る最良の結果を表わし、Ｄｍａｘはユーザが許容できる最悪の結果を示す。したがって、実際的なシステムの動作可能領域は領域１０６である。
【００１１】
理論的に、最適設計は、設計されたシステムの性能曲線が最小のＣ−Ｄ境界１００を達成するときに得られる。しかし、実際のシステムを用いて理論的な境界１００を完全に達成することは、実際的ではない。所与のシステム及び所与のデータモデル（アルゴリズム）に対し、テストデータの各集合は、品質歪みレートを与える。図２を参照するに、このようなシステムモデルに対して、実際のシステムから得られた複雑さと歪みのペアの各ポイントは、動作ポイント２０２と呼ばれる。動作ポイント２０２のグループは、動作曲線、たとえば、曲線２０４又は２０６により構成される。異なるデータモデルに対し、たとえば、異なるアルゴリズムに対し、異なる動作曲線が存在する。動作曲線、たとえば、曲線２０４又は２０６上の各動作ポイント２０２は、選定された実装形態及び所与のテストデータを用いたシステムによって達成可能である。拡張性は、達成可能な領域１０６内で異なる複雑さの座標値を有する二つの動作ポイント２０２の間の変化として定義される。最良の拡張性のあるアルゴリズムは、最も下側のＣ−Ｄ境界１１００を略近似する動作曲線を有する。図２において、第１の所与のシステムと、データモデル、すなわち、アルゴリズムは、第１の複雑さ−歪み曲線２０４を与え、第２の所与のシステム及びデータモデルは、曲線２０６を与える。理論的に、理論的な最も下側の複雑さ−歪み境界１００から動作曲線２０４、２０６までの距離は、各システムの設計の良好さの程度を示す。屡々、現実の設計環境では、最も下側の境界１００は、利用不可能であり、動作曲線２０４と２０６は平行ではない。
【００１２】
上記の例で使用されるＭＰＥＧ２方式ビデオデコーダは、一般的に、次世代テレビジョンシステム・コミッティ（ＡＴＳＣ）準拠式のデジタルテレビジョン（ＤＴＶ）システムである。特に、図３には、文献：ＧＵＩＤ ＴＯ ＴＨＥ ＵＳＥ ＯＦ ＴＨＥ ＡＴＳＣ ＤＩＧＩＴＡＬ ＴＥＬＥＶＩＳＩＯＮ ＳＴＡＮＤＡＲＤ， ＡＴＳＣ Ｄｏｃ． Ａ／５４， Ｏｃｔｏｂｅｒ ４， １９９５に記載されているようなＡＴＳＣ方式ＤＴＶ準拠システムで使用するために好適な従来のビデオデコーダ３００のブロック図が示されている。
【００１３】
簡単に説明すると、デコーダ３００は、符号化されたビデオビットストリーム信号Ａを受信し、信号Ｂを出力するチャネルバッファ３０２を含む。可変長デコーダ（ＶＬＤ）３０４は、信号Ｂを受信し、量子化離散コサイン変換（ＤＣＴ）係数の８×８型配列を再構成し、これにより、信号Ｃとして量子化形式のＤＣＴ係数を与え、信号Ｈとして動きベクトルを与える。動き補償器３０６は、信号Ｈと、メモリ３０８に保持されたアンカーフレーム用のデータを含む信号Ｉと、を受信し、動き補償された予測画素値を信号Ｇとして生ずる。逆量子化器３１０は、信号Ｃを受信し、信号Ｄを生成するため信号Ｃを逆量子化する。信号Ｄは、量子化された予測誤差ＤＣＴ係数を標準形式で組み込む信号である。逆離散コサイン変換（ＩＤＣＴ）３１２は、信号Ｄを受信し、画素値又は予測誤差を信号Ｅとして獲得するため信号Ｄを変換する。加算器３１４は、信号Ｅ及び信号Ｇを受信し、信号Ｅ及び信号Ｇを加算して、量子化によって劣化した再構成画素値を信号Ｆとして生成する。信号Ｆは、復号化されたビデオデータとして出力されると共に、メモリ３０８へ供給される。
【００１４】
本発明の目的は、リソースの割り付け方が改良された上述の方法を提供することである。この目的を達成するため、本発明による方法は、
複数の出力品質レベルを与えるためアルゴリズムによってアルゴリズムリソースを要求する第１の手順と、
第１の機能が第１の複数の品質レベルを与え、第２の機能が第２の複数のレベルを与えることを判定する第２の手順と、
複数の出力品質レベルのうちの一つの出力品質レベルでアルゴリズムを動作させるため、予定使用量をアルゴリズムへ割り付ける第３の手順と、
第１の複数の品質レベルのうちの第１の品質レベルを第１の機能に割り当て、第２の複数の品質レベルのうちの第２の品質レベルを第２の機能に割り当てる第４の手順と、
を有する。
【００１５】
予定使用量をアルゴリズム全体に割り付けることにより、予定使用量マネージャー、すなわち、全システム制御部は、アルゴリズムが複数の機能により構成されていることを知る必要が無くなる。全システム制御部は、予定使用量を、システムで同時に動くアルゴリズムへ割り付ける一般的な目的のため使用される。予定使用量は、要求されたアルゴリズムリソースに基づいている。予定使用量をアルゴリズムへ割り付ける代わりに、全システム制御部は、出力品質レベルをアルゴリズム全体にセットすることができる。出力品質レベルは、アルゴリズムが与えることができる複数の出力品質レベルから選択され得る。アルゴリズムの各機能は、複数の品質レベルを与えることができる。アルゴリズムが予定使用量を割り付けられるか、或いは、出力品質を割り当てられたとき、品質制御部は、対応した品質レベル又は設定値を各機能へ割り当てることができる。対応した品質レベル又は設定値は、機能によって与えることができる複数の品質レベルから選択される。割り付けられた予定使用量に対してアルゴリズムの最高品質レベルを与える機能の品質レベルは、機能によって与えられ得る複数の品質レベルから優先して選択してもよい。品質制御部は、割り付けられた予定使用量をアルゴリズムに含まれる機能全体に暗黙的に配分するため、対応した品質レベル又は設定値を各機能に割り当てる。機能毎に割り当てられた品質レベルは、アルゴリズムへ割り付けられた予定使用量に基づいている。
【００１６】
本発明による方法の一実施例は、請求項２に記載されている。機能は、複数の複雑さのレベルに対する品質レベルを与えることができる。ここで、複雑さのレベルは、たとえば、機能が実行可能な数学演算の回数と、機能又は通信手段が必要とするメモリの量、機能が必要とする帯域幅などによって決定される。アルゴリズムが複数の機能により構成され、各機能が複数の品質レベルを与えるとき、複雑さのレベルと、実現可能な品質レベルとの多数の組み合わせが存在する。品質制御部は、これらの組み合わせを実行し、その組み合わせに基づいて、機能に割り当てるべき品質レベルを決定することができる。さらに、同じ品質レベルを与える機能の複雑さに関する知識を用いることによって、アルゴリズム全体としての出力品質変化をより滑らかにすることができる。
【００１７】
本発明による方法の一実施例は、請求項３に記載されている。各機能は、その固有の品質レベルで動作し得る。第１の機能と第２の機能の組み合わせは、複数の出力レベルを与える一つのアルゴリズムを生じ得る。新しい予定使用量が、異なる出力品質レベルを生じるアルゴリズムに割り付けられたとき、新しい品質レベルを上述の第１の機能及び第２の機能に割り付けることによって、同じアルゴリズムが再度動作される場合がある。同じ機能性を異なる出力品質レベルで実現し、たとえば、並列に動作させることができるアルゴリズムの数は、このようにして制限される。
【００１８】
本発明による方法の一実施例は、請求項４に記載されている。品質制御部は、たとえば、機能毎の複雑さと品質レベルの複数の組み合わせの中から、機能毎に最高品質レベルに対する最小複雑さを選択することができる。
【００１９】
本発明による方法の一実施例は、請求項５に記載されている。割り付けられた予定使用量が要求されたアルゴリズムリソースと実質的に一致する場合、アルゴリズムに割り付けられる量は、要求されたアルゴリズムリソースを実質的に上回ることが無い。これにより、リソースがアルゴリズムによって使用されないということが防止され、要求されたリソースは既にそのアルゴリズムに割り付けられているので、他のアルゴリズムを動作させることが拒絶される。
【００２０】
本発明による方法の一実施例は、請求項６に記載されている。第１のリソースの量と第２のリソースの量の合計が割り付けられた予定使用量と実質的に一致する場合、アルゴリズムが使用する量は、割り付けられた予定使用量を実質的に上回らない。これにより、他のアルゴリズムの予定使用量不足を生じさせるアルゴリズムによる予定使用量超過が阻止され、或いは、他のアルゴリズムの期限に遅れを生じさせ、全体的な出力品質の低下を招くアルゴリズムによる予定使用量超過が阻止される。
【００２１】
本発明による方法の一実施例は、請求項７に記載されている。アルゴリズムによって与えられる出力品質レベルは、アルゴリズムが実施されるハードウェアプラットフォームに依存する。たとえば、アルゴリズムの第１の機能が、ハードディスクの利用可能性のような特定のハードウェア要件を有するとき、第１の機能は、ハードウェアが利用できないときには除かれる。
【００２２】
本発明による方法の一実施例は、請求項８に記載されている。アルゴリズムによって与えられる出力品質レベルは、アルゴリズムがアクセスし得るソフトウェアプラットフォームに依存する。たとえば、アルゴリズムの第１の機能が、線形補間アルゴリズムのような特定のソフトウェアプラットフォーム要件を有する場合、線形補間アルゴリズムを利用できないとき、第１の機能は、たとえば、利用可能な３次補間アルゴリズムを用いて別に動作させられる。
【００２３】
本発明の更なる目的は、出力された信号の歪みを減少させるため、リソースの割り付け方が改良されるように、プログラマブル処理装置を動作させる方法を提供することである。この目的を達成するため、本発明による方法は、
各動作状態がプログラマブル処理装置の複数の動作モードの中の少なくとも一つの動作モード、動作の複雑さ（Ｃ）及び歪みレベル（Ｄ）と関連している複数の動作状態を表わすデータを生ずる第１の手順と、
該データを使用し、該歪みレベルに基づいて、該複雑さ毎に該動作状態のうちの一つの動作状態を選択する第２の手順と、
該プログラマブル処理装置の動作状態を判定する第３の手順と、
選択された動作状態を使用して、該判定された動作状態に応じた該複雑さ毎に、該プログラマブル処理装置を動作させる運伝モードを選択する第４の手順と、を有する。
【００２４】
本発明による出力された信号の歪みを減少させるためプログラマブル処理装置を動作させる方法の実施例は、請求項１０乃至１５に記載されている。
【００２５】
本発明の更なる目的は、リソースの割り付け方が改良された拡張性のあるプログラマブル処理装置を提供することである。この目的を達成するため、本発明による装置は、
各モードの動作の複雑さ特性が異なっている複数のモードで動作可能である少なくとも一つの拡張性のあるアプリケーションと、
該少なくとも一つの拡張性のあるアプリケーションが使用するため利用可能な計算用のリソースの量を追跡するＱＯＳリソースマネージャーと、
該利用可能なリソースが該複数のモードの中の所定のモードにおける該拡張性のあるアプリケーションの動作のため適当であるかどうかを判定する戦略マネージャーと、
該戦略マネージャーに応答し、該戦略マネージャーによって該利用可能なリソースが該所定のモードにおける該少なくとも一つのアプリケーションの動作のため適当ではないと判定された場合に、該少なくとも一つのアプリケーションに対して別のモードを選択するローカルリソース制御部と、
を具備し、
該ＱＯＳマネージャー及び該戦略マネージャーは相互に応答し、該少なくとも一つのアプリケーションは該ローカルリソース制御部に応答する。
【００２６】
本発明による拡張性のあるプログラマブル処理装置の実施例は、請求項１７乃至１９に記載されている。
【００２７】
本発明の多数の目的、特徴及び利点は、以下の詳細な説明を、例示のためだけに用いられる添付図面と共に参照することによってさらに明らかになるであろう。
【００２８】
図４は、本発明による方法の主要なステップの一実施例の説明図である。専用単一機能コンポーネントではなく、プログラマブルコンポーネントは、連続的なメディア処理を実行することができる。単一機能コンポーネントは、幾つかの単一機能コンポーネントが組み合わされ、たとえば、ＮＴＳＣ又はＰＡＬシステム用のカラーデコーディング、ノイズ圧縮、或いは、フレームレートアップコンバージョンを実行する従来のテレビ受像機で使用されている。プログラマブルコンポーネントの導入によって、連続的なメディア処理アルゴリズムが、ハードウェアではなくソフトウェアで実現できるようになる。メディア処理アルゴリズムをソフトウェアで実現することによって予想される効果には、市場に出すまでの時間短縮、ハードウェアの再利用、ソフトウェアアルゴリズムの再利用、可搬性、及び、フレキシビリティが含まれる。メディア処理アルゴリズムのソフトウェアによる実現は、システムリソースが有限であり、特定の処理アルゴリズムのために十分なシステムリソースが確保されないため、特定の処理アルゴリズムによって与えられる出力品質が変化するようなリアルタイム環境内で行なわれなければならない。出力品質レベルは、知覚測定によって、或いは、利用可能な測定手段を用いて主観的に測定される。処理アルゴリズムを動かすシステムは、５０Ｈｚを上回り、フレームレートの変動が殆ど許容されず、フレームスキップは僅かしか許容されない、かなり高いフレームレートの高品質オーディオ及びビデオを生ずることが可能である。好ましくは、システムは、フレームレート変動の許容範囲が大きく、かつ、フレームスキップの許容範囲が広い最大で３０Ｈｚの低フレームレートを実現することができる。
【００２９】
アルゴリズムには、アルゴリズムの出力品質レベルをセットすることによって、予定使用量が明示的に、或いは、暗黙的に割り付けられる。全システム制御部の一つの目的は、利用可能な全てのリソースを効率的に使用すると共に、全システムによって与えられる総合出力品質を最適化することである。システムによって与えられる総合出力品質は、特に、同時に動作するアルゴリズムの数と、アルゴリズムが処理するデータとに依存する。このシステムは、たとえば、テレビ、ＰＣ、ディスプレイ、セットトップボックス、又は、ＶＣＲである。この目的を達成するために、以下の主要なステップが実行される。
【００３０】
最初に、ステップ４００は初期化ステップであり、全システム制御部、たとえば、予定使用量マネージャーは、表１に示されるような第１のルックアップテーブルの内容にアクセスする。表１において、ＣＰＵ、コ・プロセッサ及びメモリ必要量は、アルゴリズムが使用できるリソースの例である。さらに、品質数という列に示された数字は、この数字が大きくなるほど、ユーザによって認知された出力品質レベルが良好であることを示す。この第１のルックアップテーブルの内容にアクセスすることによって、全システム制御部は、所定のリソースの量、たとえば、所定の出力品質レベルを与えるためアルゴリズムが要求するＣＰＵサイクルを決定する。
【００３１】
【表１】
2004507957.tif 000003
このアルゴリズム、又は、アルゴリズムの一部の品質制御は、表１の内容にアクセスする。アルゴリズムは、ユーザが主ウィンドウ用の別のチャネルへ切り替え、新チャネルのアナログソースが旧チャネルのデジタルソースとは異なるときに、暗黙的に開始される。アルゴリズムのスタート、又は、アルゴリズムのリソース要件の変更の他の例は、
ユーザが、たとえば、ゴールの後にリプレイを表示することによって、主ウィンドウの内容とピクチャー・イン・ピクチャー・ウィンドウの内容を交換するとき、
テレビ会議ウィンドウのサイズが変化したとき、或いは、
着呼したときに、新しいアプリケーション、たとえば、テレビ会議アプリケーションが補助ウィンドウで開始されたとき
である。アルゴリズムのリソース要件は、アルゴリズムが処理するメディアデータが変化するときにも変化する。メディアデータの変更は、たとえば、２４Ｈｚフィルムである映画が、６０Ｈｚカメラでもよいコマーシャルによって中断されるときに、サービスプロバイダによって行なわれ、或いは、モーション又はシーン変化によっても生ずる。
【００３２】
ステップ４０２では、メディア処理アルゴリズムに含まれる機能は、たとえば、この情報をコンフィギュレーションファイルから読み出すことによって判定される。コンフィギュレーションファイルは、たとえば、エッジ強調又は鮮明さ強調用のアルゴリズムが図５に概略的に示されるような機能によって構成されることを記述する。同図には、ディテールフィルタ機能５１２、非線形関数機能５０２、利得機能５０４、加算器機能５０６及びノイズ測定機能５０８が示されている。ディテールフィルタ機能は、ビデオ信号を含む入力信号から高周波成分を抽出する。これらの成分は、ビデオ信号の全体的な鮮明さの印象を高めるために入力信号に加えられる。非線形関数機能及びその後の利得機能は、ディテールフィルタ機能によって生じたアーティファクト状のクリッピングを除去することができ、ノイズ測定機能は、入力信号に含まれるノイズに依存して、鮮明さ強調を適応させることができる。
【００３３】
ステップ４０４において、要求されたリソース、及び、機能毎の品質レベルが決定される。
図５の品質制御機能５１０は、アルゴリズムに含まれアルゴリズムの一部である機能から、全システム制御機能を隠す。エッジ強調又は鮮明さ強調のアルゴリズムの場合に、ディテールフィルタ機能は、その要求するリソース、たとえば、ＣＰＵサイクル数、或いは、バイト数を変更する。要求されたリソースの変動は、フィルタの係数と、水平、垂直或いは両方のようなフィルタのタイプによって記述された品質レベルによって判定される。非線形関数機能は、要求リソース、たとえば、ＣＰＵサイクルを変更し、非線形関数の量子化によって記述された品質レベルによって判定され、入力信号と出力信号とに対して異なる場合がある。利得機能は、要求リソース、たとえば、乗算演算、シフト演算及び加算演算を、
メモリに格納されたルックアップテーブルに固定値として保持されているか、乗算によって計算されるか、シフト及び加算演算によって計算されるか、に依存して変更する。ノイズ測定機能は、たとえば、スイッチのオン・オフが切り替えられるので、要求リソース、たとえば、ＣＰＵサイクルを変更する。加算演算は、たとえば、加算精度を下げることによって、リソース要求量を変更する。しかし、リソース要求量を変更できないが、所定のリソース量、たとえば、ＣＰＵサイクルに対し所定の品質レベルを与える加算演算を使用してもよい。要求リソース及び機能毎の品質レベルに対する全ての設定値の組み合わせは、設計空間を拡大し、その設計空間では、アルゴリズムの複雑さ、アルゴリズムの機能の複雑さ、或いは、アルゴリズムの機能の組み合わせの複雑さが、その品質レベルに対してセットされる。その結果は、たとえば、以下の表２に示されている第２のルックアップテーブルにまとめられている。第２のルックアップテーブルは、行に固有の値を割り当てるバージョンと、アルゴリズムが与えることのできる出力品質レベルに関する全てのパラメータをグループ化する品質と、アルゴリズムの複雑さに関する全てのパラメータをグループ化する複雑さ、の三つの主要な列を含む。パラメータは、これらの例示的なパラメータに制限されることがなく、ストア演算、通信手段のような帯域幅、キャッシュをアルゴリズムの複雑さに関するパラメータとして使用することができる。さらに、表２において、品質及び複雑さに関して使用される数は、絶対値であるが、選択されたフォーマットとは独立に、ビデオ中の１画素当たりの演算に正規化してもよい。この考え方を用いることにより、メディアアルゴリズム設計者は、異なる出力品質レベルで正確な機能性を実現するために、メディアアルゴリズムを構成する機能を設計する。
【００３４】
【表２】
2004507957.tif 000004
ステップ４０６では、アルゴリズムがアクセスできる利用可能なソフトウェアプラットフォームに対して、ルックアップテーブルの内容が更新される。たとえば、ソフトウェアプラットフォームが「時間処理」をサポートしない場合、この列は、テーブルから除去され、影響を受ける行はそれに応じて更新される。「水平処理」がサポートされない場合、第６行及び第Ｎ行のように、何れの処理にもつながらない対応した列及び行は、このテーブルから除去される。また、表２を更新するのではなく、ソフトウェアプラットフォーム内で利用可能なソフトウェア機能から、アルゴリズムによって要求されるソフトウェア機能へのマッピングを含むランタイムルックアップテーブルを具体化することも可能である。
【００３５】
ステップ４０８では、テーブルの内容が、アルゴリズムが実施される利用可能なハードウェアプラットフォームに対して更新される。たとえば、ハードウェアプラットフォームがコ・プロセッサを提供しないとき、この列は、テーブルから削除され、コ・プロセッサだけを使用する全ての行が削除される。また、表２を更新するのではなく、ハードウェアプラットフォーム内で利用可能なハードウェア機能から、アルゴリズムによって要求されるハードウェア機能へのマッピングを含むランタイムルックアップテーブルを具体化することも可能である。
【００３６】
これらのステップの後に、アルゴリズムを構成する機能、異なる機能が与える複数の品質レベル、アルゴリズムが与える複数の出力品質レベル、並びに、アルゴリズムがハードウェアプラットフォーム及びソフトウェアプラットフォームから要求するハードウェア及びソフトウェアは、品質制御機能でわかっている。全システム制御機能は、アルゴリズム、アルゴリズムが要求するリソース、アルゴリズムが要求するハードウェア、及び、アルゴリズムが与える複数の出力品質レベルだけがわかればよい。
【００３７】
ステップ４１０において、全システム制御機能は、最良の全システムの出力品質レベルに応じて、リソース予定使用量をアルゴリズムへ割り付ける。最良の全システムの出力品質レベルは、システムが安定状態にあるとき達成される。安定状態では、動いている全てのアルゴリズムが、所定の出力品質レベルを与え、システムは完全に取り込まれている。すなわち、付加的なアルゴリズムは、実行中のアルゴリズムの出力品質レベルを調整しなければ、スタートさせることができない。割り付けられた予定使用量は、所定の出力品質レベルを得るため、アルゴリズムによって要求されたリソースと実質的に一致する。アルゴリズムに割り付けられた予定使用量が要求された量よりも少ない場合、アルゴリズムは所定の出力品質レベルを実現しない。アルゴリズムに割り付けられた予定使用量が要求された量よりも多い場合、アルゴリズムは全てのリソースを使用するわけではない。図５において全システム制御機能５１２は、表１の内容に基づいて、予定使用量をアルゴリズムに割り付ける。全システム制御機能５１２は、表２の内容に基づいて、予定使用量をアルゴリズムに割り付けることも可能である。後者の場合、全システム制御機能は、アルゴリズムによって与えられるより滑らからな出力品質レベルの変化に基づいて判定する。表２に示されるように、アルゴリズムによって与えられる出力品質レベルの急激な変化は、処理が２次元で変化するので、バージョン２からバージョン６、バージョン５からバージョン６などに現れる。バージョン２からバージョン３では、処理が１次元だけで変化するので、より滑らかな変化が予想される。品質数、或いは、ＰＳＮＲのようなその他の品質パラメータは、変化の滑らかさに関する情報を与える。ステップ４０６及びステップ４０８で導かれるようなハードウェアプラットフォーム及びソフトウェアプラットフォームに関する情報は、全システム制御機能によってアクセスすることが可能である。アルゴリズムによって与えられた出力品質レベルの選択は、たとえば、利用可能なハードウェアに基づいて行なわれる。これは、表２に示されている。表２では、バージョン１とバージョン２は、品質数が同じであるため、同じ出力レベルを生ずるが、要求されたリソースをＣＰＵとコ・プロセッサの間でそれぞれ別々に配分する。品質制御機能は、特に、ランタイムに、過負荷状況を取り扱うため、ＣＰＵとコ・プロセッサの間の配分に関する知識を利用する。過負荷状況では、品質制御機能は、配分を変更することができ、一方、アルゴリズムは、同じ出力品質を与え続ける。
【００３８】
ステップ４１２において、品質制御機能は、アルゴリズム全体として割り付けられた予定使用量、又は、出力品質レベルを、アルゴリズムに含まれる種々の機能への品質レベル割り付けに変換する。この変換は、表２の内容に基づいて行なわれ、要求されたリソースと機能毎の品質レベルに対する全ての設定値の組み合わせを考慮する。要求されたリソースに対する全ての設定値の組み合わせは、アルゴリズムの複雑さ、アルゴリズムの機能、及び、アルゴリズムの機能の組み合わせを決定する。複雑さは数で表わされる。この数は、特定のハードウェア又はソフトウェアプラットフォームに対し、単独の数を得るため重み付けされる。図６には、複雑さと、与えられた出力品質レベルの組み合わせの一例が示されている。有効な組み合わせは、図６に描かれた曲線によって示されるように、最小の複雑さに対する最高の出力品質で達成される。ステップ４０６及び４０８で導かれたようなハードウェアプラットフォーム及びソフトウェアプラットフォームに関する情報は、品質制御機能によってアクセスされる。品質制御機能は、複雑さと、与えられた出力品質レベルの最良の組み合わせを選択するため、この情報を使用する。なぜならば、最良の組み合わせと、組み合わせの個数は、機能を動かすハードウェア及び／又はソフトウェアのプラットフォームに依存するからである。たとえば、ビデオデータをサブサンプリングするか、又は、全てのフレーム、ライン又は画素を削除することによるビデオデータの解像度の変更は、上述のように表１及び表２の内容を解釈することによって抑止される。ユーザは、たとえば、映画の品質が継続的に変化するとき、システムによって与えられた低出力品質を認知するので、品質制御機能は知覚品質を最大にする。したがって、品質レベルは慎重に調整される。
【００３９】
ステップ４１４において、品質制御機能は、対応した品質レベルを機能へ割り当てることによって、割り付けられ変換された予定使用量を、アルゴリズムを構成する機能に暗黙的に再割り付けする。
【００４０】
ステップ４１６において、機能と、全体としてのアルゴリズムは、割り付けられた予定使用量、及び、セットされた品質レベルを用いて、動作を開始する。アルゴリズムの終了後、ステップ４００が再実行されるか、或いは、最終ステップ４１８に達する。
【００４１】
図７は、本発明による方法を実行するコンピュータプログラムが記録された記憶装置の概要図である。同図において、コンパクトディスク７００はコード７０２を含む。
【００４２】
さらに、本発明は、同じタスクを達成する種々のＣ−Ｄ（複雑さ−歪み）曲線を比較する。その結果として、ある複雑さレベルで複雑さと品質歪みのトレードオフに関して、利用可能な代替例よりも効率的なアルゴリズムを識別することができる。したがって、ある複雑さで最小限の品質歪みを与える最良のアルゴリズムを選択することが可能であり、大域的な最適アプローチが、仮定した複雑さと歪みのレンジの条件下で、与えられたアルゴリズムの組に対して得られる。
【００４３】
図８を参照するに、本発明の概念に従って作成された拡張性のあるビデオアルゴリズム設計制御システムは、好ましくは、サービス品質（ＱＯＳ）リソースマネージャー８００と、戦略マネージャー８０２と、ローカルリソース制御機能８０４と、拡張性のあるアルゴリズム８０６の４個の要素を含む。ＱＯＳリソースマネージャー８００は、システム全体、又は、グループ化されたサブシステムでのリソース使用量を監視する。ＱＯＳリソースマネージャー８００は、システムリソースが変化するとき、戦略マネージャー８０２に制御コマンドを送出し、サブシステムが拡大縮小されたとき、戦略マネージャー８０２からフィードバックを受け取る。戦略マネージャー８０２は、リソースレベルの変更に適合するように拡大縮小するため、ローカルコントローラ８０４を介して種々の拡張性のあるアルゴリズム８０６を駆使する権限を有するＱＯＳリソースマネージャー８００のために働く。戦略マネージャー８０２は、異なるアプリケーションのレベルの全体的な拡大縮小を制御するが、特定のアルゴリズム８０６の拡大縮小の細部は制御しない。たとえば、戦略マネージャー８０２は、ＭＰＥＧ２方式デコーダの総合複雑さレベルを制御するが、ＭＰＥＧ２方式デコーダのアルゴリズムがどのレベルまで縮小されるべきかについては制御しない。後者は、ローカルリソース制御機能８０４の仕事である。ローカルリソース制御機能８０４（復号化リソース制御機能又は複雑さ切り替え制御機能とも呼ばれる）は、ＭＰＥＧ２方式デコーダ内部の各機能ブロックが拡大縮小されるレベルが正確にわかっている。最終的に、拡張性のあるアルゴリズム８０６は、拡大縮小ジョブを履行するためのキーである。
【００４４】
一般的に、ＱＯＳは、コンピュータ品質制御／情報管理の当業者には周知である。ＱＯＳマネージャー８００は、基本的に、計算用リソースの使用、たとえば、使用中、未使用を管理し、情報フローを監視し、リソースを要求若しくは使用するアプリケーションからの要求に応答する。戦略マネージャー８０２は、ＱＯＳマネージャー８００と、図９若しくは１１の拡張性のあるＭＰＥＧ２方式デコーダのような拡張性のあるアルゴリズム８０６を使用する拡張性のあるアプリケーションとの間の通信の要求を満たす。戦略マネージャー８０２は、個別の拡張性のあるアプリケーションのリソース使用を制御し、これらのアプリケーションを調整する。
【００４５】
ローカルリソース制御機能８０４は、特定の拡張性のあるアプリケーションのためのローカルオフィスマネージャーとして利用される。たとえば、図９を参照するに、本発明による拡張性のあるＡＴＳＣ準拠式ＤＴＶビデオデコーダが記載されている。同図において、’付きの番号で指定された要素は、図３の同じ番号で示された要素と類似しているが、本発明に従って拡張性のある点で相違する。したがって、図９のデコーダ３００’のうちの一つ以上の機能ブロックは、拡張性がある。ＭＰＥＧ２方式デコーダ３００’において、たとえば、ＩＤＣＴは、一つの機能ブロックである。ローカルリソースマネージャー８０４（復号化用リソースマネージャーとも称される）は、これらのブロックの動作及び拡大縮小レベル、たとえば、個別の機能ブロックが拡大縮小されるべき程度を調整する。
多数のアルゴリズム、たとえば、２０４、２０６の切り替えが適用されるべき状況において、最小限の歪みを達成するため、多数の拡張性のあるアルゴリズム８０６が特定の機能ブロック、たとえば、ＩＤＣＴに対して利用可能である場合、これらの制御タスクは、ローカルリソースマネージャー８０４によって実行される。
【００４６】
上述の通り、基礎研究によって、複雑さ−歪み平面には、最小の複雑さ−歪み（Ｃ−Ｄ）境界１００が存在することが判明した。しかし、理想的にこの境界１００上に存在するシステムを設計することは実際的ではない。この理論的な最小の境界１００に最も巧く到達する、或いは、接近するために、システム設計者は、通常、種々の複雑さレベルに対して境界１００に接近することができる単一の最良アルゴリズムを探索する。通常、単一のアルゴリズムは、最も良く適合するアルゴリズムのグループから選択される。しかし、たとえば、図２に明瞭に示されているように、別々のアルゴリズムの動作曲線２０４及び２０６は交差することがある。これは、一方のアルゴリズムが、ある歪みレートでは他方のアルゴリズムよりも低い複雑さレベルをとるが、別の歪みレートでは複雑さレベルが低くなるとは限らないということを意味する。
【００４７】
図１０を参照するに、目標の最適Ｃ−Ｄ境界１００により良く接近するため、本発明の好ましい一実施形態では、利用可能なアルゴリズムの動作曲線が測定され、次に、実現可能なあるデータセットに対して、動作曲線内の複雑さレベル毎に最小の歪みレートを生ずるアルゴリズムが選択され、最後に、異なる動作曲線上の切り替えポイントが選択され、これにより、新しい大域的最適動作曲線が得られる。すなわち、本発明によれば、異なるアルゴリズム１００２、１００４、１００６及び１００８の間の切り替えは、個別にテストされた何れのアルゴリズム１００２、１００４、１００６及び１００８よりも優れた動作曲線１０１０を得るために利用される。
【００４８】
図１１を参照するに、本発明の実施例による別のＡＴＳＣ準拠式ＤＴＶビデオデコーダ３００”が示されている。このＤＴＶビデオデコーダ３００”は、拡張性のあるＩＤＣＴ機能ブロック３１２、３１２’及び３１２”を含む。一実施例として、ＭＰＥＧ２方式デコーダ３００”のＩＤＣＴ機能ブロック３１２、３１２’及び３１２”を使用することにより、この解決法は、計算複雑さ及び品質に関してデコーダの最適な拡張性を実現するため、多数の離散コサイン変換（ＤＣＴ）アルゴリズムを使用することを提案する。所定の複雑さレベルに対して、最小歪みレベルを与えるＤＣＴアルゴリズムが選択される。
【００４９】
理論的には、無限個のアルゴリズムが利用できるならば、最小Ｃ−Ｄ境界１００は、それらのアルゴリズムの間であらゆる比較を実行し、各複雑さレベルで最良フィットを選択することによって近似するか、若しくは、略達成することができる。しかし、実際上、利用可能なアルゴリズムの数及び計算時間は、設計規準によって制限され、動作切り替えポイントの数も制限される。したがって、本発明の解決法は、ある特定の個数の利用可能なアルゴリズムを用いて、ある特定の複雑さの下で実現可能な最小品質歪みを獲得することである。
【００５０】
図１１を参照するに、本発明の別の実施形態によるＡＴＳＣ準拠式ＤＴＶシステムのビデオデコーダ３００”のブロック図が示されている。容易に確かめられるように、デコーダ３００”は、図１のデコーダ３００と殆ど同じ要素を含むので、これらの要素についての説明は繰り返さない。図３及び９を参照して、デコーダ３００と比較すると、デコーダ３００”は、多数のＩＤＣＴ３１２、３１２’及び３１２”と、複雑さスイッチ８０４と、を含み、デコーダ３００’は、多数のアルゴリズムを実現し得るＩＤＣＴ３１２’と、スイッチ８０４と、を含む。複雑さスイッチ８０４は、戦略マネージャー８０２から得られる信号Ｊに応答する。スイッチ制御機能８０４は、ＩＤＣＴ３１２、３１２’及び３１２”のうちの一つを選択的に作動する信号Ｊに応答して出力信号Ｋを出力する。図１１に示された例の場合、ｎ台の異なるアルゴリズムを与えるため切り替えられるｎ個のＩＤＣＴ３１２、３１２’及び３１２”を含む。或いは、異なるアルゴリズムを使用するため、選択的に作動可能な１個以上のＩＤＣＴを、図９に示されるように使用してもよい。
【００５１】
図８を再度参照するに、ＱＯＳ８００は、中央処理ユニット（ＣＰＵ）サイクル、すなわち、処理パワーのうちのどの程度の量、或いは、どれ位の割合を使用する資格が与えられているかを判定する。これは、フルパワーのＭＰＥＧ２方式復号化、すなわち、拡張性の無い復号化の場合には不十分である。戦略マネージャー８０２は、他のアプリケーションのための他の予定使用量と共に、予定使用量を受け取る。戦略マネージャー８０２は、計算用若しくは処理用パワーの予定使用量が完全な復号化に十分であるかどうかを判定する。計算用パワーの予定使用量が拡張性の無い復号化に不十分であるならば、戦略マネージャー８０２は、適当な出力品質を頑強に維持するため、ローカルリソース制御機能８０４に対し拡張性のあるアルゴリズム８０６を作動させるよう通知するか、又は、ＱＯＳマネージャー８００からのより多くのリソースを要求する。ＭＰＥＧ２方式デコーダ３００”のローカルリソースマネージャー８０４の受け取る予定使用量が、予め集計された統計量に基づいて、たとえば、一つ以上のルックアップテーブルを用いて減少させられた場合、作動されるべき拡張性のあるアルゴリズム２０４と、利用可能な処理用パワーのレベルとが判定される。本発明による大域的最適ＩＤＣＴアルゴリズムが作動された場合、複雑さと歪みの関係は、予めオフラインで判定されるので、各複雑さレベルにおいて、ローカルリソースマネージャー８０４は、特定の動作ポイントに対応するような明確なアルゴリズムを呼び出して使用する。
【００５２】
アルゴリズム毎に、複雑さの拡張性は異なる。必ずしも全ての利用可能なアルゴリズムが、同じレンジの複雑さ−歪み測定及びレンジを与えるわけではない。異なるアルゴリズムに対する動作ポイントは、互いにオフセットしている。異なるアルゴリズムに対する複雑さ測定のメトリックは、一般化されるか、或いは、比較できるレベルに拡大縮小されるべきである。アルゴリズムを動かすマシーンサイクルの総数は、アルゴリズムの複雑さレベルとして定義され得る。しかし、拡張性のあるアルゴリズムの高レベルのシミュレーションの場合、マシーンサイクルを測定することは現実的ではない。なぜならば、マシーンサイクルは、プラットホーム及びＣＰＵに依存するからである。このような場合、乗算換算比が複雑さ測定量として使用される。
【００５３】
本発明の一実施例によれば、動作Ｃ−Ｄ曲線を獲得する手続は、以下の通りである。
【００５４】
ステップ１：利用可能なアルゴリズムの動作ポイントは、種々の複雑さレベルで測定される。
【００５５】
ステップ２：異なるアルゴリズムの動作ポイントを同じスケールに拡大縮小し、同じグラフ上に動作曲線を描く。
【００５６】
ステップ３：動作曲線の切り替えポイント（交差点）を検出する。
【００５７】
ステップ４：各切り替えポイントの間でＣ−Ｄ曲線１００に最も近い各動作曲線部分を選択することにより大域的最適動作曲線１０１０を決定する。
【００５８】
要約すると、上記の方法は、多数のスキーム、たとえば、アルゴリズム若しくはモードを使用する所定のシステムに対し、大域的最適複雑さ−歪み境界１００により良く接近する方法を提案する。この方法は、情報ベース複雑さ理論に基づき、実際的に達成可能である。この方法は、拡張性のあるマルチメディア／通信システム設計及び拡張性解析に使用される。
【００５９】
本発明の方法の実施例におけるステップの順序は上述の順序に限定されない。当業者は、本発明によって意図されている概念から逸脱することなく、ステップの順序を変更するか、或いは、スレッディング・モデル、マルチプロセッサシステム又はマルチプロセスを用いてステップを並列に実行することができる。さらに、導入された品質制御及び全システム制御は、本発明の方法の範囲内で使用され得る役割又はコンセプトを表わす。
【００６０】
図１２には、本発明によるシステムの一実施例の最も重要な部品が概略的に示されている。システム１２００は、所定の出力品質レベルを得るためアルゴリズムが要求するリソースの量をリソース毎に収容する第１のメモリ１２０２を含む。ＣＰＵ及びコ・プロセッサは、サイクルが要求されるタイプのリソースの例である。第２のメモリ１２０４は、アルゴリズムの第１の機能を実現するためのモジュールを格納し、第３のメモリ１２０６は、アルゴリズムの第２の機能を実現するためのモジュールを格納する。
【００６１】
図５に示されるようなエッジ強調又は鮮明さ強調アルゴリズム５１４の場合を考えるならば、第２のメモリ１２０４は、ディテールフィルタリング５００を実行するモジュールを格納し、第３のメモリ１２０６は、ノイズ測定５０８を実行するモジュールを格納する。システムは、図５に示されるようにエッジ強調又は鮮明さ強調のアルゴリズムの全機能を実行するモジュールを格納する多くのメモリを更に有する。第４のメモリ１２０８は、第１の機能が与えることができる第１の複数の品質レベルの各品質レベルに対し、第１の機能が要求するリソースの量を収容するルックアップテーブルを含む。第５のメモリ１２１０は、第２の機能が与えることができる第２の複数の品質レベルの各品質レベルに対し、第２の機能が要求するリソースの量を収容するルックアップテーブルを含む。
【００６２】
全システム制御機能が、上述の如く、リソース毎の予定使用量を割り付けた後、第６のメモリ１２１２は、リソース毎に、アルゴリズムに割り付けられた予定使用量を格納する。全システム制御機能は、アルゴリズム全体としての出力品質レベルを割り当てることができるので、リソース毎の予定使用量をアルゴリズムに暗黙的に割り付ける。さらに、メモリ１２１４及び１２１６は、それぞれ、アルゴリズムの第１及び第２の機能によって与えられる品質レベルを含む。メモリ１２１８は、アルゴリズムの第１の機能の動作の複雑さの複数のレベルを示す複数の複雑さ数値を含む。メモリ１２２０は、アルゴリズムの第１の機能の動作の最小の複雑さレベルを示す複雑さ数を含む。
【００６３】
上述のメモリ１２１４及び１２１６の内容を判定するため、品質制御機能は、メモリ１２１８及び１２２０の内容へアクセスする。メモリ１２０２、１２０８、１２１０、１２１８及び１２２０は、表２に示されるように一つのルックアップテーブルに統合してもよい。この統合されたルックアップテーブルは、多数の別個のメモリではなく一つのメモリに保持される。さらに、システムが機能及びルックアップテーブルが相互に配線接続されたシリコンで実現される場合、メモリ１２１２、１２１４及び１２１６は省略してもよい。品質制御機能は、システム内で利用可能なハードウェアに関する情報を格納するコンフィギュレーションファイルを収容するメモリ１２２６の内容へアクセスし、また、システム内で利用可能なソフトウェアアルゴリズムに関する情報を格納するコンフィギュレーションファイルを収容するメモリ１２２８の内容へアクセスする。品質制御機能は、上記の全てのメモリへアクセスし、一方、全システム制御機能は、メモリ１２０２、１２１２、１２２６及び１２２８だけにアクセスすればよい。しかし、全システム制御機能がより多数のメモリへアクセスするとき、アルゴリズムによって与えられる出力品質レベルの変化は、より小さくすることができる。
【００６４】
システムは、アルゴリズムの第１の機能が実行される第１のコ・プロセッサ１２２２と、アルゴリズムの第２の機能が実行される第２のコ・プロセッサ１２２４とを更に有する。第１の機能と第２の機能の間にはプロセス間通信が必要になるので、オプション的なＣＰＵ１２３０は、アルゴリズムを全体として動作させる。第１の機能を複数の複雑さのレベルで動作させ得るとき、第１の機能は、専用コ・プロセッサ１２３２上の最小の複雑さレベルで実行され、より大きい複雑さレベルは、コ・プロセッサ１２２２上で実行される。第１の機能は、コ・プロセッサ１２３２若しくは１２２２の何れかにおいて、複数の複雑さレベルの中の各レベルで実行することが可能であり、或いは、第１の機能は、ＣＰＵ１２３０において、複数の複雑さレベルの中の各レベルで実行することが可能である。
【００６５】
このシステムは、コンピュータ、又は、ソフトウェアを動作させることができるその他の標準的なアーキテクチャによるアプリケーションとして動作させるためのソフトウェアで実現され得る。システムは、デジタルテレビ受像機１２３４を動作させるため使用される。システムは、上述のルックアップテーブルが，相互に配線接続された論理構築ブロックによって置き換えられ、上述のプロセッサ及びコ・プロセッサが省かれたシリコンで実現することも可能である。
【００６６】
図１３は、本発明によるシステムの一実施例を構成するテレビ受像機の最も重要な部品を概略的に示す図である。同図において、アンテナ１３００は、テレビ信号を受信する。アンテナは、たとえば、衛星パラボラ、ケーブル、記憶装置、インターネット、イーサネット（Ｒ）、或いは、テレビ信号を受信することができるその他の装置でもよい。受信機１３０２は、テレビ信号を受け取る。信号は、たとえば、デジタル、アナログ、ＲＧＢ又はＹＵＶである。受信機１３０２の他に、テレビ受像機は、たとえば、プログラマブル集積回路のようなプログラマブルコンポーネント１３０４を含む。このプログラマブルコンポーネントは、本発明によるシステム１３０６を収容する。テレビ画面１３０８は、受信機１３０２によって受信され、プログラマブルコンポーネント１３０４、本発明によるシステム１３０６、及び、テレビ受像機に一般的に含まれるその他の部品（図示されない）によって処理された画像を表示する。
【００６７】
図１４は、本発明の実施例によるシステムの一実施例を含むセットトップボックスの最も重要な部品を概略的に示す図である。アンテナ１４００は、テレビジョン信号を受信する。アンテナは、たとえば、衛星パラボラ、ケーブル、記憶装置、インターネット、イーサネット（Ｒ）、又は、テレビ信号を受信することができる他の装置でもよい。セットトップボックス１４０２は信号を受信する。信号は、たとえば、デジタル、アナログ、ＲＧＢ又はＹＵＶである。セットトップボックスに収容された通常の部品（図示されない）の他に、セットトップボックスは、本発明によるシステム１４０４を含む。テレビ受像機１４０６は、セットトップボックス１４０２によって受信された信号から生成された出力信号を表わす。出力信号は、ＶＣＲ、ＤＶＤ−ＲＷ又はハードディスクのような記憶装置へ送られるか、或いは、テレビ受像機へ送られる代わりにインターネットリンクへ送られる。
【図面の簡単な説明】
【図１】
理論的に達成可能な最小の複雑さ−歪み境界の説明図である。
【図２】
システムの二つの動作モードと、理論的に達成可能な最小の境界の説明図である。
【図３】
従来のＡＴＳＣ準拠式ＤＴＶシステムのビデオデコーダのブロック図である。
【図４】
本発明による方法の主要なステップの一実施例の説明図である。
【図５】
複数の機能により構成されたアルゴリズムの一例の説明図である。
【図６】
アルゴリズムの複雑さがアルゴリズムによって与えられ得る出力品質レベルに対してセットされたグラフの一例である。
【図７】
本発明による方法を実現するため記録されたコンピュータプログラムを含む記憶装置の一実施例の概略図である。
【図８】
本発明の一実施例において使用される制御システムのブロック図である。
【図９】
本発明の一実施例によるＡＴＳＣ準拠式ＤＴＶシステムの拡張性のあるビデオレコーダのブロック図である。
【図１０】
本発明の一実施例による多数のアルゴリズムの中で最小の複雑さ−歪み（Ｃ−Ｄ）方式の説明図である。
【図１１】
本発明の他の一実施例によるＡＴＳＣ準拠式ＤＴＶシステムの拡張性のあるビデオレコーダのブロック図である。
【図１２】
本発明によるシステムの一実施例の最重要部品の略構成図である。
【図１３】
本発明によるシステムの一実施例を収容するテレビ受像機の略構成図である。
【図１４】
本発明によるシステムの一実施例を収容するセットトップボックスの略構成図である。
【図１】
2004507957.tif 000005
【図２】
2004507957.tif 000006
【図５】
2004507957.tif 000007
【図６】
2004507957.tif 000008
【図８】
2004507957.tif 000009
【図１０】
2004507957.tif 000010
【国際公開パンフレット】
2004507957.tif 000011
2004507957.tif 000012
2004507957.tif 000013
2004507957.tif 000014
2004507957.tif 000015
2004507957.tif 000016
2004507957.tif 000017
2004507957.tif 000018
2004507957.tif 000019
2004507957.tif 000020
2004507957.tif 000021
2004507957.tif 000022
2004507957.tif 000023
2004507957.tif 000024
2004507957.tif 000025
2004507957.tif 000026
2004507957.tif 000027
2004507957.tif 000028
2004507957.tif 000029
2004507957.tif 000030
2004507957.tif 000031
2004507957.tif 000032
2004507957.tif 000033
2004507957.tif 000034
2004507957.tif 000035
2004507957.tif 000036
2004507957.tif 000037
2004507957.tif 000038
2004507957.tif 000039
2004507957.tif 000040
2004507957.tif 000041
2004507957.tif 000042
2004507957.tif 000043
2004507957.tif 000044
2004507957.tif 000045
【国際公開パンフレット（コレクトバージョン）】
2004507957.tif 000046
2004507957.tif 000047
【国際調査報告】
2004507957.tif 000048
2004507957.tif 000049
2004507957.tif 000050
2004507957.tif 000051