(57)【要約】【課題】  計算上の複雑性を減少させた整数変換処理技術を提供する。【解決手段】  第一及び第二整数変換行列を離散コサイン変換を近似するために使用することが可能である。データの入力行列を整数の第一変換行列で乗算してデータの中間行列を生成する。該中間行列を整数の第二変換行列で乗算してデータの変換結果行列を生成する。第一及び第二変換行列による乗算は処理能力を増加させるためにパイプライン化することが可能である。複数個の変換データパスを処理能力を増加させるために並列的に設けることも可能である。【選択図】      図４
2005184829.tif 000002
【特許請求の範囲】
【請求項１】
データの入力行列の整数変換を計算する装置において、
データの入力行列を受取る入力、
前記入力へ結合している行列乗算装置、
を有しており、前記行列乗算装置が、データの第一中間行列を生成するためにデータの第一入力行列を整数の第一変換行列で乗算するための第一行列乗算器を包含しており、且つ
前記行列乗算装置が、前記第一行列乗算器へ結合されており、データの第一変換結果行列を生成するために前記第一中間行列を整数の第二変換行列で乗算するための第二行列乗算器を包含している、
ことを特徴とする装置。
【請求項２】
請求項１において、前記第一行列乗算器が、更に、データの第二中間行列を生成するためにデータの第二入力行列を前記第一変換行列で乗算するためであり、一方前記第二行列乗算器は同時的に前記第一中間行列を前記第二変換行列で乗算することを特徴とする装置。
【請求項３】
請求項２において、更に、前記行列乗算装置が前記最初に述べた行列乗算装置との並列動作のために前記入力へ結合していることを特徴とする装置。
【請求項４】
請求項１において、更に、前記行列乗算装置が、前記最初に述べた行列乗算装置との並列動作のために前記入力へ結合していることを特徴とする装置。
【請求項５】
請求項１において、前記行列乗算装置が、前記第二行列乗算器へ結合されており、データの第二中間行列を生成するために前記第一変換結果行列の転置を前記第一変換行列で乗算するための第三行列乗算器を包含しており、且つ前記行列乗算装置は、前記第三行列乗算器へ結合しており、二次元結果行列を生成するために前記第二中間行列を前記第二変換行列で乗算するための第四行列乗算器を包含していることを特徴とする装置。
【請求項６】
請求項５において、前記第二行列乗算器がデータの第二の前記変換結果行列を生成するためであり、前記第三行列乗算器は、更に、前記第四行列乗算器が同時的に前記第二中間行列を前記第二変換行列で乗算している間にデータの第三中間行列を生成するために前記第二変換結果行列の転置を前記第一変換行列で乗算するためであり、前記第一行列乗算器は、前記第二行列乗算器が同時的に前記第一中間行列を前記第二変換行列で乗算している間にデータの第四中間行列を生成するためにデータの第二入力行列を前記第一変換行列で乗算するためであることを特徴とする装置。
【請求項７】
請求項６において、前記最初に述べた行列乗算装置と並列に動作するために前記入力へ結合している更なる前記行列乗算装置を包含していることを特徴とする装置。
【請求項８】
請求項５において、前記最初に述べた行列乗算装置と並列に動作するために前記入力へ結合している更なる前記行列乗算装置を包含していることを特徴とする装置。
【請求項９】
請求項１において、前記データがＨ．２６４ビデオデータであることを特徴とする装置。
【請求項１０】
ビデオデータ処理システムにおいて、
ビデオデータプロセッサがデータの入力行列を受取るための入力とデータの前記入力行列の整数変換を計算するために前記入力へ結合している変換装置を包含しており、前記変換装置はデータの第一中間行列を生成するためにデータの第一入力行列を整数の第一変換行列で乗算するための第一行列乗算器を包含しており、且つ前記変換装置は、前記第一行列乗算器へ結合しており、データの第一変換結果行列を生成するために前記第一中間行列を整数の第二変換行列で乗算するための第二行列乗算器を包含しており、
ユーザが前記ビデオデータプロセッサと通信することを可能とさせるためにインターフェースが前記ビデオデータプロセッサへ結合されている、
ことを特徴とするシステム。
【請求項１１】
請求項１０において、前記ビデオデータプロセッサの動作を制御するために前記ビデオデータプロセッサへ結合している更なるデータプロセッサを包含していることを特徴とするシステム。
【請求項１２】
請求項１０において、高品質テレビジョンシステム及びデジタルシネマシステムのうちの１つとして提供されることを特徴とするシステム。
【請求項１３】
データの入力行列の整数変換を計算する方法において、
データの第一中間行列を生成するためにデータの第一入力行列を整数の第一変換行列で乗算し、
データの第一変換結果行列を生成するために前記第一中間行列を整数の第二変換行列で乗算する、
ことを特徴とする方法。
【請求項１４】
請求項１３において、同時的に前記第一中間行列を前記第二変換行列で乗算している間に、データの第二中間行列を生成するためにデータの第二入力行列を前記第一変換行列で乗算することを包含していることを特徴とする方法。
【請求項１５】
請求項１４において、前記第二入力行列がデータの入力行列の最初に受取ったシーケンスにおいて前記第一入力行列に続くことを特徴とする方法。
【請求項１６】
請求項１５において、同時的に前記第一入力行列を前記第一変換行列で乗算している間にデータの第三中間行列を生成するためにデータの第三入力行列を前記第一変換行列で乗算し、同時的に前記第一中間行列を前記第二変換行列で乗算している間にデータの第二変換結果行列を生成するために前記第三中間行列を前記第二変換行列で乗算し、且つ同時的に前記第三中間行列を前記第二変換行列で乗算している間及び同時的に前記第二入力行列を前記第一変換行列で乗算している間及び同時的に前記第一中間行列を前記第二変換行列で乗算している間にデータの第四中間行列を生成するためにビデオデータの第四入力行列を前記第一変換行列で乗算する、ことを包含していることを特徴とする方法。
【請求項１７】
請求項１６において、データの入力行列の第一シーケンスと並列して与えられるデータの入力行列の第二の受取ったシーケンスにおいて前記第四入力行列が前記第三入力行列に続くことを特徴とする方法。
【請求項１８】
請求項１３において、同時的に前記第一入力行列を前記第一変換行列で乗算している間にデータの第二中間行列を生成するためにデータの第三入力行列を前記第一変換行列で乗算し、且つ同時的に前記第一中間行列を前記第二変換行列で乗算している間にデータの第二変換結果行列を生成するために前記第二中間行列を前記第二変換行列で乗算することを包含していることを特徴とする方法。
【請求項１９】
請求項１３において、データの第二中間行列を生成するために前記第一変換結果行列の転置を前記第一変換行列で乗算し、且つ二次元変換結果行列を生成するために前記第二中間行列を前記第二変換行列で乗算することを包含していることを特徴とする方法。
【請求項２０】
請求項１９において、データの第二変換結果行列を生成するためにデータの第二入力行列に関して前記行列乗算ステップを実施し、同時的に前記第二中間行列を前記第二変換行列で乗算する間にデータの第三中間行列を生成するために前記第二変換結果行列の転置を前記第一変換行列で乗算することを包含しており、且つ前記実施するステップが、同時的に前記第一中間行列を前記第二変換行列で乗算している間にデータの第四中間行列を生成するために前記第二入力行列を前記第一変換行列で乗算することを包含していることを特徴とする方法。
【請求項２１】
請求項１３において、前記行列乗算ステップの各々が、（ａ）８個の夫々対応する和を生成するために８対の加数を加算すること、及び（ｂ）２つの夫々に対応する積を生成するために２対の係数を乗算することからなる複数の算術演算を包含していることを特徴とする方法。
【請求項２２】
請求項２１において、前記２対の係数を乗算するステップが、前記２対の係数の各々の係数のうちの１つのデジタル表現に関してシフト演算を実施することを包含している方法。
【請求項２３】
請求項１３において、前記行列の全てが４×４行列であることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大略、データ処理に関するものであって、更に詳細には、ビデオ圧縮処理技術に関するものである。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣは最新のビデオ圧縮スタンダードである。それはジョイントビデオチーム（ＪＶＴ）により開発されたものであり、該チームは、国際電気通信ユニオン（ＩＴＵ−Ｔ）のビデオコーディングエキスパーツグループ（ＶＣＥＧ）からのエキスパート及び国際標準化機構（ＩＳＯ）及び国際電気標準会議（ＩＥＣ）からのムービングピクチャエキスパーツグループ（ＭＰＥＧ）を包含している。ＩＴＵ−Ｔの文書において、新たなビデオ圧縮スタンダードの正式名称はＩＴＵ−ＴリコメンデーションＨ．２６４である。ＩＳＯ／ＩＥＣは、それをＩＳＯ／ＩＥＣ１４４９６−１０アドバンストビデオコーディング（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）と呼んでいる。説明の便宜上、この新たなビデオ圧縮技術は共通してＨ．２６４／ＡＶＣと呼ぶこととする。
【０００３】
Ｈ．２６４／ＡＶＣは多くのアプリケーションを有しており、ケーブル、衛星及びＤＳＬを介してのビデオブロードキャスティング、ビデオオンデマンド又はマルチメディアストリーミングサービス、ＩＳＤＮ、イーサーネット、ＬＡＮ、ワイヤレス及びモーバイルネットワークを介しての会話サービス、及びＤＶＤ等の光学装置上の対話的又はシリアル格納等を包含している。
【０００４】
Ｈ．２６４／ＡＶＣはより高いコーディング効率のために設計されている。よりよい圧縮を得るために、Ｈ．２６４／ＡＶＣスタンダードは多くの進化したビデオコーディング技術を採用している。イントラコーディングについては、Ｈ．２６４／ＡＶＣはビデオフレーム内のピクセル間においてより多くの冗長性を見付けるために指向性空間予測スキームを使用しており、インターコーディングについては、Ｈ．２６４／ＡＶＣは、マルチフレーム参照、重み付け予測、デブロッキングフィルタ、可変ブロック寸法及びクオータサンプルアキュレート（ｑｕａｒｔｅｒ  ｓａｍｐｌｅ  ａｃｃｕｒａｔｅ）動き補償を実行する。変換については、Ｈ．２６４／ＡＶＣは小さなブロックを基礎とした整数及び階層的変換を使用する。エントロピコーディングについては、Ｈ．２６４／ＡＶＣは２つの異なるコーディング技術を採用する。コンテクスト適応性ベースアリスメティックコーディング（ＣＡＢＡＣ）がメインプロファイルに対して選択され、一方コンテクスト適応性可変長コーディング（ＣＡＶＬＣ）がベースラインプロファイル、メインプロファイル、拡張プロファイルに対して使用される。Ｈ．２６４／ＡＶＣの３つのプロファイルは１５のレベルをサポートする。これらのレベルは広範囲のビデオアプリケーションに対してアルゴリズム及びパラメータのセットを特定する。
【０００５】
注意すべきことであるが、Ｈ．２６４／ＡＶＣの整数変換は以前のビデオ圧縮スタンダードにおける離散コサイン変換（ＤＣＴ）よりもより低い複雑性を有している。然しながら、Ｈ．２６４／ＡＶＣの１５個のレベルはＳＱＣＩＦ（１２８×９６）乃至１６：９（４０９６×２３０４）の広範囲のビデオフォーマットをカバーする。実時間ビデオ処理に対して、毎秒当たり処理せねばならないマクロブロックの数は非常に高く且つソフトウエアで実現するために効率的なものではない。例えば、実時間でＣＩＦ（３５２×２８８）ビデオフォーマットの３０個のフレームを処理するために、埋込み型プロセッサは１１，８８０個のマクロブロックを処理せねばならず、そのことは３６，４９５，３６０個のシフト及び加算命令を必要とする。ロード、ストア及びトランスポジション（ｔｒａｎｓｐｏｓｉｔｉｏｎ）演算なしで、この複雑性は、既に、毎秒３６００万個の命令（ＭＩＰＳ）を超えるものである。この計算上の複雑性はほとんどの埋込み型アプリケーションに対して高いものである。１６：９フォーマットはＣＩＦよりも更により大きな計算上の複雑性を有している。
【０００６】
離散コサイン変換（ＤＣＴ）は、画像及びビデオ処理における最も重要な変換のうちの１つである。それは多くの圧縮スタンダードにおいて使用されており、ＪＰＥＧ、Ｈ．２６１、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４を包含している。ＤＣＴは、最初に、１９７４年においてＡｈｍｅｄ、Ｎａｔａｒａｊａｎ、Ｒａｏによって提案されている（以下の特許文献（３）参照）。彼らのランドマーク的な文献は、２Ｎ−ポイントＦＦＴ及び幾らかの付加的な後処理で計算することが可能なＮ−ポイントＤＣＴを提示している。一次元ＤＣＴは長さＮのベクトルｘを線形変換ｚ＝Ｈｘによる変換係数の新たなベクトルｚへマップさせることが可能であり、尚Ｈは図１に示したようなＮ×Ｎ行列であり、尚、
【０００７】
【数１】
2005184829.tif 000003
【０００８】
である。ｘを４×４入力行列とし、Ｙを４×４出力行列とし、且つＨtをＨの転置行列とする。従って、二次元（２−Ｄ）４×４フォアワード（ｆｏｒｗａｒｄ）ＤＣＴはＹ＝ＨＸＨtとして定義される。
【０００９】
４×４ＤＣＴの基本的な欠点は、Ｈにおけるエントリ（図１）が無理数であるということである。従って、フォアワード４×４ＤＣＴ及び逆４×４ＤＣＴが浮動小数点実行ユニットを必要とする。浮動小数点の実行はコーディングシステムのハードウエアの複雑性を増加させる。
【００１０】
この問題を解決するために、Ｍａｌｖａｒ（以下の文献（４）参照）は、４×４ＤＣＴ行列のエントリをスケールして整数演算を得るための方法を提案している。その出力結果は４×４ＤＣＴの近似を得るために再スケールされる。Ｍａｌｖａｒはスケーリングファクタα＝２．５を使用している（以下の文献（４）及び（５）参照）。その結果得られるスケールされた行列Ｋを図２において２１に示してある。図３はベクトルｘに関して４−ポイント一次元整数変換を実施するために整数変換行列２１の使用を例示している。
【００１１】
二次元４×４ＤＣＴの近似は、
【００１２】
【数２】
2005184829.tif 000004
【００１３】
であり、尚Ｚは４×４行列であり、且つＳは４×４再スケール行列である。行列Ｓは、典型的に、量子化段階に組込まれ、それは、通常、ルックアップテーブルにより実現される。従って、二次元４×４ＤＣＴの近似は、整数演算によって完全に実現することが可能である。行列Ｓを量子化段階に組込むと、二次元４×４整数変換はＷ＝ＫＸＫtである。
【００１４】
【非特許文献１】Ｔ．  Ｗｅｉｇａｎｄ、Ｇ．  Ｓ．  Ｓｕｌｌｉｖａｎ、Ｇ．  Ｂｊｏｎｔｅｇａａｒｄ、Ａ．  Ｌｕｔｈｒａ「Ｈ．２６４／ＡＶＣビデオコーディングスタンダードの概観（Ｏｖｅｒｖｉｅｗ  ｏｆ  ｔｈｅ  Ｈ．２６４／ＡＶＣ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｓｔａｎｄａｒｄ）」、ＩＥＥＥトランズアクション・オン・サーキッツ・アンド・システムズ・フォ・ビデオ・テクノロジ、Ｖｏｌ．１３、Ｎｏ．７、ｐｐ．５６０−５７６、２００３年７月
【非特許文献２】ジョイントビデオ仕様のドラフトＩＴＵ−Ｕ推奨及び最終ドラフト国際スタンダード（Ｄｒａｆｔ  ＩＴＵ−Ｕ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ａｎｄ  Ｆｉｎａｌ  Ｄｒａｆｔ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  ｏｆ  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）（ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ．２６４  ｜  ＩＳＯ／ＩＥＣ  １４４９６−１０  ＡＶＣ）、ジュネーブ、スイス、２００３年５月
【非特許文献３】Ｎ．  Ａｈｍｅｄ、Ｔ．  Ｎａｔａｒａｊａｎ、Ｋ．  Ｂ．  Ｒａｏ「離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）」、ＩＥＥＥ・トランズアクション・オン・コンピュータズ、Ｖｏｌ．Ｃ−２３、ｐｐ．９０−９３、１９７４年１月
【非特許文献４】Ｈ．  Ｓ．  Ｍａｌｖａｒ「１６ビット演算での低複雑性レンス４変換及び量子化（Ｌｏｗ  Ｃｏｍｐｌｅｘｉｔｙ  Ｌｅｎｇｔｈ−４  Ｔｒａｎｓｆｏｒｍ  ａｎｄ  Ｑｕａｎｔｉｚａｔｉｏｎ  ｗｉｔｈ  １６−ｂｉｔ  Ａｒｉｔｈｍｅｔｉｃ）」、ＩＴＵ−Ｔ  ＳＣ  １６、２００１年９月、ＤＯＣＳ．  Ｖｃｅｇ−Ｎ４３
【非特許文献５】Ｈ．  Ｓ．  Ｍａｌｖａｒ、Ａ．  Ｈａｌｌａｐｕｒｏ、Ｍ．  Ｋａｒｃｚｅｗｉｃｚ、Ｉ．  Ｋｅｒｏｆｓｋｙ「Ｈ．２６４／ＡＶＣにおける低複雑性変換及び量子化（Ｌｏｗ  Ｃｏｍｐｌｅｘｉｔｙ  Ｔｒａｎｓｆｏｒｍ  ａｎｄ  Ｑｕａｎｔｉｚａｔｉｏｎ  ｉｎ  Ｈ．２６４／ＡＶＣ）」、ＩＥＥＥ・トランズアクション・オン・サーキッツ・アンド・システムズ・フォ・ビデオ・テクノロジ、Ｖｏｌ．１３、Ｎｏ．７、ｐｐ．５９８−６０３、２００３年７月
【非特許文献６】Ｈ．  Ｍａｌｖａｒ「離散コサイン変換及び離散ハートリ変換の高速計算（Ｆａｓｔ  Ｃｏｍｐｕｔａｔｉｏｎ  ｏｆ  ｔｈｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ  ａｎｄ  ｔｈｅ  Ｄｉｓｃｒｅｔｅ  Ｈａｒｔｌｅｙ  Ｔｒａｎｓｆｏｒｍ）」、ＩＥＥＥ・トランズアクション・オン・アクースティックス・スピーチ・アンド・シグナル・プロセシング、Ｖｏｌ．ＡＳＳＰ−３５、Ｎｏ．１０、ｐｐ．１４８４−１４８５、１９８７年１０月
【非特許文献７】Ｙ．  Ａｒａｉ、Ｔ．  Ａｇｕｙ、  Ｎａｋａｊａｍａ「画像用高速ＤＣＴ−ＳＱスキーム（Ａ  Ｆａｓｔ  ＤＣＴ−ＳＱ  Ｓｃｈｅｍｅ  ｆｏｒ  Ｉｍａｇｅｓ）」、トランズアクション・オブ・ザ・ＩＥＩＣＥＥ、Ｖｏｌ．Ｅ７１、Ｎｏ．９、ｐｐ．１０９５−１０９７、１９８８年１１月
【非特許文献８】Ｗ．  Ｂ．  Ｐｅｎｎｅｂａｋｅｒ、Ｊ．  Ｌ．  Ｍｉｔｃｈｅｌ、ＪＰＥＧ静止画圧縮スタンダード（ＪＰＥＧ  Ｓｔｉｌｌ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｓｔａｎｄａｒｄ）、ファンノストランドレインホールド、ニューヨーク（１９９２）
【非特許文献９】Ｔ．  Ｄ．  Ｔｒａｎ「ＢｉｎＤＣＴ：ＤＣＴの高速無乗算器近似（Ｔｈｅ  ＢｉｎＤＣＴ：Ｆａｓｔ  Ｍｕｌｔｉｐｌｉｅｒｌｅｓｓ  Ａｐｐｒｏｘｉｍｉｔｉｏｎ  ｏｆ  ｔｈｅ  ＤＣＴ）」、ＩＥＥＥ・シグナル・プロセシング・レター、Ｖｏｌ．７、ｐｐ．１４１−１４５、２０００年６月
【非特許文献１０】Ｊ．  Ｌｉａｎｇ、Ｔ．  Ｄ．  Ｔｒａｎ「リフティングスキームを有するＤＣＴの高速無乗算器近似（Ｆａｓｔ  Ｍｕｌｔｉｐｌｉｅｒｌｅｓｓ  Ａｐｐｒｏｘｉｍａｔｉｏｎｓ  Ｏｆ  Ｔｈｅ  ＤＣＴ  Ｗｉｔｈ  Ｔｈｅ  Ｌｉｆｔｉｎｇ  Ｓｃｈｅｍｅ）」、ＩＥＥＥ・トランズアクション・オン・シグナル・プロセシング、Ｖｏｌ．４９、ｐｐ．３０３２−３０４４、２００１年１２月
【非特許文献１１】Ｓｔｅｖｅ  Ｆｕｒｂｅｒ「ＡＲＭシステム・オン・チップアーキテクチャ（ＡＲＭ  Ｓｙｓｔｅｍ−ｏｎ−ｃｈｉｐ  Ａｒｃｈｉｔｅｃｔｕｒｅ）」、アジソンウエズリ、２０００年
【非特許文献１２】ＡＲＭリミテッド、ＡＲＭ９４６−Ｅ−Ｓ技術参照マニュアル（Ｔｅｃｈｎｉｃａｌ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ）、２００１年
【発明の開示】
【発明が解決しようとする課題】
【００１５】
Ｈ．２６４／ＡＶＣによりサポートされる種々のビデオフォーマットの整数変換処理であってもそれに関連する計算上の複雑性に鑑み、計算上の複雑性を減少させた整数変換処理を提供することが望ましい。
【課題を解決するための手段】
【００１６】
本発明の例示的実施例は、離散コサイン変換を近似するために第一及び第二整数変換行列を使用する。データの入力行列を整数の第一変換行列と乗算させてデータの中間行列を生成する。該中間行列を整数の第二変換行列と乗算させてデータの変換結果行列を生成する。該第一及び第二変換行列による乗算は処理能力を増加させるためにパイプライン化することが可能である。複数個の変換データ経路を、処理能力を増加させるために、並列的に設けることも可能である。
【００１７】
上記は以下に記載する本発明の詳細な説明を当業者がよりよく理解することが可能であるように本発明の特徴及び技術的利点をむしろ広義に概括している。本発明の付加的な特徴及び利点については以下において説明し、それは本発明の特許請求の範囲の要旨を形成する。当業者は、本発明の同一の目的を達成するためにその他の構成を設計するか又は修正するための基礎として本明細書に開示した概念及び特定の実施例を容易に利用することが可能であることを理解する。当業者は、又、このような均等な構成は本発明の最も広い技術的範囲及び精神から逸脱するものではないことを理解する。
【００１８】
次に本発明を詳細に説明する前に、本明細書に亘って使用するある単語又は用語の定義について説明しておくことが有益的である。「包含する」及び「有する」という用語は、それらの派生的な用語と共に、制限なしで包含することを意味しており、「又は」という用語は包含的であって及び／又はを意味し、「と関連する」及び「それと関連する」という用語及びそれの派生的な用語は包含する、その中に包含される、それと相互接続する、含む、その中に含まれる、それへ接続又はそれと接続、それへ結合又はそれと結合、それと通信可能、それと共同する、インターリーブする、並置する、それに近似する、それへ又はそれと結び付けられている、有している、その特性を有している等を意味する場合があり、且つ「制御器」という用語は任意の装置、システム又は少なくとも１つの動作を制御するその一部を意味しており、このような装置はハードウエア、ファームウエア、ソフトウエア又はこれらのうちの少なくとも２つの何らかの組合わせで実現される。注意すべきことであるが、どの特定の制御器に関連する機能性も集中化させるか又は局所的又は遠隔的に離散化させることが可能である。ある単語及び用語に対する定義は本明細書に亘り与えられ、且つ当業者は、このような定義がこのように定義した単語及び用語の以前の使用及び将来の使用に対するほとんどではないにしても多くの場合において適用するものであることを理解する。
【発明を実施するための最良の形態】
【００１９】
以下に説明する図１乃至１３及び本明細書において本発明の原理を説明するために使用する種々の実施例は単に例示的なものであって本発明の範囲を制限するような態様で理解されるべきではない。当業者が理解するように、本発明の原理は任意の適宜のデータ処理適用例に関して実現することが可能である。
【００２０】
図４は本発明の例示的実施例に基づいて図２及び３の整数変換行列２１の因数分解を例示している。図４において、整数変換行列２１は構成要素としての変換行列４１及び４２へ因数分解され、それらは、一体的に乗算されると、行列２１を生成する。図３に例示した４ポイント一次元整数変換を再度考慮すると、その変換は１２個の加算演算及び４個の乗算（典型的にデータシフト）演算を必要とする。このことは、図３の行列２１を使用する４×４一次元整数変換は４８個の加算演算及び１６個のシフト演算を必要とし、且つ図３の行列２１を使用する４×４二次元整数変換は９６個の加算演算及び３２個のシフト演算を必要とすることを意味する。
【００２１】
然しながら、図４の構成要素としての因数変換行列４１及び４２を使用して整数変換演算を実施する場合には、図３に例示したタイプの４ポイント一次元整数変換演算を単に８個の加算演算及び２個の乗算（シフト）演算で実施することが可能である。このことは、４×４一次元整数変換演算を３２個の加算演算と８個のシフト演算で実施することが可能であり、且つ４×４二次元整数変換演算を６４個の加算演算と１６個のシフト演算で実施することが可能であることを意味する。
【００２２】
図５は本発明に基づく図４の構成要素変換行列４１及び４２の例示的実現例を例示している。図５において、変換行列４１及び４２は、４×４変換結果行列５２を生成するために、入力データの行列５１に関して４×４一次元整数変換を実施するために使用される。入力行列５１のデータコンポーネントは図５においてｘrjにより示されており、尚ｒ及びｊは行列５１の夫々の行及び列のインデックスであり、且つｒ及びｊは各々０，１，２，３の値をとることが可能である。変換結果行列５２のデータコンポーネントは図５においてｂrjとして示してあり、尚ｒ及びｊは行列５１に関して上述したのと夫々同一の行及び列のインデックスである。
【００２３】
図６は図５の実現例と関連する第一ステージ（ステージ１）整数変換演算を例示している。図６の例において、変換行列４１は第一ステージ変換行列として使用され且つ入力データ行列５１により乗算されて中間データ行列６１を生成し、そのコンポーネントはａrjとして示されており、尚ｒ及びｊは行列５１及び５２に関して上述したのと夫々同一の行及び列のインデックスである。
【００２４】
図６は図５の実現例と関連する第一ステージ（ステージ１）整数変換演算を例示している。図６の例において、変換行列４１は第一ステージ変換行列として使用され且つ入力データ行列５１により乗算されて中間データ行列６１を生成し、そのコンポーネントはａrjとして示されており、尚ｒ及びｊは行列５１及び５２に関して上述したのと夫々同一の行及び列のインデックスである。
【００２５】
図７は図５の実現例と関連する第二ステージ（ステージ２）整数変換演算を例示している。図７において、行列４２は第二ステージ変換行列として使用され且つ中間行列６１と乗算されて変換結果行列５２を生成する（図５も参照）。
【００２６】
図８は図６及び７に関して上述した第一及び第二段演算を実施することが可能なデータ処理装置の例示的実施例を模式的に例示している。図８の装置は、図６に例示した第一段行列乗算演算を実施する行列乗算器８１を具備しており且つ図７に例示した第二段行列乗算演算を実施する行列乗算器８２を具備している行列乗算装置を包含している。図８に示したように、第一段行列乗算器８１は入力データ行列５１からデータを受取り且つ中間データ行列６１を生成するのに必要な算術演算を実施する（図６も参照）。特に、行列乗算器８１は適宜接続した４個の加算器を包含しており、且つ必要な反転を伴って、図６の行列乗算式を実行するのに必要な４個の加算演算を実施する。行列乗算器８２は中間行列６１からデータを受取り且つ変換結果行列５２を生成するのに必要な算術演算を実施する（図７も参照）。行列乗算器８２は適宜接続された４個の加算器を包含しており、且つ必要な反転及びシフタと共に、図７の行列乗算式を実行するのに必要な４個の加算演算及び２個のシフト演算を実施する。データシフタ８３及び８４は、各々、図７の式により必要とされる２個の乗算演算を実行するために単一のレフトシフト（２による乗算）演算を実施する。
【００２７】
図９は図８のデータ処理装置により実施することが可能な例示的な演算のタイミングを表の形態で例示している。特に、且つ図６及び７をも参照して、図９は、図８のデータ処理装置が単一クロックサイクルで図６の行列６１の各列を生成することが可能であり、且つ単一クロックサイクルで図７の行列５２の各列を生成することも可能であることを示している。即ち、行列乗算器８１の加算器は、単一クロックサイクルで入力行列５１の任意の与えられた列により変換行列４１の４個の行全ての乗算を実行することが可能であり、且つ行列乗算器８２の加算器は、シフタ８３及び８４と共に、単一クロックサイクルで行列６１の任意の与えられた列により行列４２の４個の行全ての乗算を実行することが可能である。従って、クロックサイクル２期間中、第一ステージ行列乗算器８１が既にクロックサイクル１期間中に中間行列６１の第一列を生成した後に、第二ステージ行列乗算器８２は中間行列６１の第一列を使用して変換結果行列５２の第一列を生成することが可能である。従って、図９のクロックサイクル１期間中に、行列乗算器８１は中間行列６１の第一列（列０）を生成する。その後に、図９のクロックサイクル２期間中に、行列乗算器８１が中間行列６１の第二列（列１）を生成している間に、第二ステージ行列乗算器８２は同時的に中間行列６１の既に発生された第一列を使用して変換結果行列５２の第一列を生成する。
【００２８】
従って、行列乗算器８１及び８２の演算は、５個のクロックサイクルで図７の完全なる変換結果行列５２を生成するために図９に示したようにパイプライン型とすることが可能である。従って、図８のデータ処理装置は４×４一次元整数変換を５個のクロックサイクルで実施することが可能である。図９に示したように、クロックサイクル５期間中に、第二ステージ行列乗算器８２が図７の変換結果行列５２の第四列（列３）を生成している間に、第一ステージ行列乗算器８１は、同時的に、その後の入力データ行列５１に関して演算を行いその後の中間データ行列６１の第一列を生成することが可能である（図６も参照）。
【００２９】
図１０は本発明に基づいて４×４二次元整数変換を実施することが可能なデータ処理装置の例示的実施例を模式的に例示している。図１０の例において、図８のアーキテクチャを使用して水平変換ＨＴを実施し且つ更に垂直変換ＶＴを実施する。図１０に例示した行列乗算装置においては、水平変換部分ＨＴは変換結果行列５２を生成するために図８に例示した演算を実施する。この変換結果行列５２は制御信号１０７の制御下でセレクタ１０３により選択されて２個のバッファ１０５及び１０６のうちの１つの中に格納される。制御信号１０８の制御下にある別のセレクタ１０４はバッファ１０５及び１０６のうちの１つのコンテントを垂直変換部分ＶＴへ供給する。幾つかの実施例においては、バッファ１０５及び１０６は、バッファ型変換結果行列５２からのデータが行毎に垂直変換部分ＶＴへ供給されるように読取ることが可能であり、従って垂直変換部分ＶＴはバッファ型変換結果行列５２の転置に関して演算を行う。このバッファ型変換結果行列５２の実効的な転置動作は参照符号５２tの使用により図１０に例示してある。水平変換部分ＨＴにより生成された結果行列の転置は、垂直変換部分ＶＴが第二次元における変換を実施することを可能とさせる。
【００３０】
図１１は、図１０のデータ処理装置により実施することが可能な例示的な演算のタイミングを表形式で例示している。クロックサイクル５において、水平変換部分ＨＴは最初の４×４入力データ行列５１（Ｂ1としても示してある）に関するその演算を完了し、且つＨＴ部分のステージ１は、既に、２番目の４×４入力データ行列５１（Ｂ2としても示してある）に関する演算を開始している。該水平変換部分はクロックサイクル５期間中に最初の変換結果行列５２を生成することを終了するので、このことは、垂直変換部分ＶＴは、クロックサイクル６期間中に最初の変換結果行列５２の転置５２tに関する演算を開始することが可能であることを意味する。転置された変換結果行列５２tの入力データ行列５１に対する対応を、符号Ｂに関する対応する添え字番号を維持することにより図１１に例示してある。
【００３１】
図１０において、セレクタ１０３及び１０４は、垂直変換部分ＶＴが、水平変換部分ＨＴが書込みをしているバッファへ決してアクセスすることがないように、論理的に相補的な制御信号１０７及び１０８により制御される。図１１に示したように、垂直変換部分ＶＴが第一入力行列５１／Ｂ1と関連する転置された変換結果行列５２t／Ｂ1を処理している間に、水平変換部分ＨＴは、同時的に、入力データ行列のシーケンスにおいて第二入力データ行列５１／Ｂ2からのデータを処理する。水平変換部分ＨＴは２５個のクロックサイクルで６個の４×４入力行列からなるシーケンスに関するその演算を完了することが可能であり、且つ図１に例示したパイプライン形態により、６個の４×４入力データ行列からなるシーケンスの完全な二次元変換を３０個のクロックサイクルで完了する。
【００３２】
図１０における垂直変換部分ＶＴの出力は、従来の再スケーリング及び量子化のために従来の量子化ステージへ供給することが可能である。
【００３３】
図１２は本発明に基づいて複数個の４×４二次元整数変換を並列的に実施することが可能なデータ処理装置の例示的な実施例を模式的に例示している。図１２の例は、概略、並列的に配列させた図１０のアーキテクチャの４個のインスタンスを使用する。従って、図１２の装置は、３０個のクロックサイクルで２４個の４×４入力行列に関する二次元変換処理を実施することが可能である（図１１も参照）。図１２の例に例示した２４個の４×４入力データブロックは従来のＨ．２６４／ＡＶＣマクロブロックのよく知られた構成要素ブロックである。４個の３２ビット入力レジスタの各々は４個の８ビット入力ピクセルを保持することが可能である。
【００３４】
図１３は本発明に基づくデータ処理システムの例示的な実施例を模式的に例示している。図１３のシステムは、例えば、ハイビジョンテレビシステム又はデジタルシネマシステムであって、それはメインプロセッサ１３１、メモリ部分１３２、ユーザインターフェース（Ｉ／Ｏ）１３３、アクセリレータコプロセッサ１３４を包含している。これらのコンポーネントはバスシステム１３５により相互接続されている。種々の実施例において、アクセリレータコプロセッサ１３４は、図８−１２に関して上述した種々の例示的な整数変換アーキテクチャを実現することが可能である。幾つかの例示的な実施例において、メインプロセッサ１３１及びコプロセッサ１３４は夫々パイプラインを実現する。コプロセッサ１３４はメインプロセッサ１３１から命令を受取り、且つパイプラインフォロワを使用してそれがどの命令を実行せねばならないかを決定する。クリチカルパスにおける渋滞を回避するために、幾つかの実施例においては、コプロセッサパイプラインがメインプロセッサパイプラインから１クロックサイクル後に動作する。与えられた命令を受取った後に、該コプロセッサは該メモリからのデータをロードし且つ必要な変換演算を実施する。
【００３５】
幾つかの例示的実施例においては、メインプロセッサ１３１はＡＲＭ９４６Ｅ−Ｓプロセッサであり、システムメモリ部分１３２は５１２キロバイトのＳＲＡＭと４メガバイトのＳＤＲＡＭとを包含しており、且つバスシステム１３５はメインプロセッサ１３１と、コプロセッサ１３４とシステムメモリ１３２との間で増加されたデータの処理能力を与えるために従来の高速ＡＭＢＡバスシステムである。
【００３６】
再度図１２の例示的なアーキテクチャを参照すると、例示したアーキテクチャのハードウエアコストは低い。それは４個の３２ビットレジスタと、４個の６４ビットレジスタと、１６個のマルチプレクサと、３２個の加算器と、２５６バイトのバッファメモリを必要とする。小型のバッファメモリは幾つかの実施例においてはＤフリップフロップで実現される。０．１８μｍＣＭＯＳ技術を使用する１つの例においては、図１２アーキテクチャのフットプリント即ち占有面積は０．０８３８ｍｍ2に過ぎない。この小さなフットプリントの場合であっても、そのアーキテクチャは未だに実時間ビデオ処理に対し充分なコンピューティング能力を提供する。１０ＭＨｚのクロックレートにおいて、例えば、該アーキテクチャは毎秒３０個のフレームで２Ｋ×１Ｋ（２０４８×１０２４）フォーマットに対する整数変換を計算することが可能である。毎秒６０個のフレームで稼動する１６：９フォーマット（４０９６×２０３４）を使用する高品質ビデオ適用例の場合には、該アーキテクチャは６６，３５５，２００個のクロックサイクルを必要とし、それは６７ＭＨｚと等価である。アーキテクチャの設計は、この実時間拘束を満足するためにスケールすることが可能である。
【００３７】
注意すべきことであるが、スイッチング電流に起因するＣＭＯＳゲートの平均電力消費はＰ＝αＣLＶdd2ｆにより与えられ、尚ｆはシステムクロック周波数であり、Ｖｄｄは供給電圧であり、ＣLは負荷容量であり、且つαはスイッチングアクティブティである。図１２のアーキテクチャの１つの例において、クロックレートは１０ＭＨｚであり、グローバル電圧は１．５５Ｖであり、且つ負荷容量は１ｐｆである。この例に対するハードウエアシミュレーションにより報告されたスイッチングパワーは５２９μＷである。
【００３８】
コンパクトな面積及び低電力消費の他に、本発明の例示的実施例は小さなデータ範囲を必要とするに過ぎない。図５−７から、各ステージの出力におけるデータ範囲は容易に決定することが可能である。最悪の場合において、且つ８ビットピクセル入力を仮定すると、第一次元変換（例えば、図１０及び１２におけるＨＴ）の出力は１１ビットであり且つ第二次元変換（例えば、図１０及び１２におけるＶＴ）の出力は１４ビットである。従って、４×４二次元整数変換は１４ビット幅のデータパスで実現することが可能である。
【００３９】
上に示したように、本発明の例示的実施例は、Ｈ．２６４ビデオ圧縮スタンダードにおける整数変換の計算上の複雑性を減少させ且つ処理能力を増加させるための方法及び装置を導入する。本方法は整数変換行列をより計算が少ない２個の整数行列へ因数分解する。更に、このアプローチは、又、整数変換を２段階で計算することを可能とし、それはパイプラインアーキテクチャにとって良好に適している。
【００４０】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【００４１】
【図１】従来技術に基づく４×４離散コサイン変換を実施するための行列を例示した概略図。
【図２】従来技術に基づいて図１の離散コサイン変換に対する整数近似を実施するための図１の行列のスケールし且つ丸めたバージョンを例示した概略図。
【図３】従来技術に基づいて図２の行列の使用を例示した概略図。
【図４】本発明の例示的実施例に基づいて図２及び３の行列の因数分解を例示した概略図。
【図５】本発明に基づく図４の因数分解の例示的実現例を例示した概略図。
【図６】本発明の例示的実施例に基づく図５の実現例の第一ステージ行列乗算演算を例示した概略図。
【図７】本発明の例示的実施例に基づく図５の実現例の第二ステージ行列乗算演算を例示した概略図。
【図８】本発明に基づく図６及び７の第一及び第二ステージ行列乗算演算を実施することが可能なデータ処理装置の例示的実施例を模式的に例示した概略図。
【図９】図８のデータ処理装置により実施することが可能な例示的な演算のタイミングを表形式で示した概略図。
【図１０】本発明に基づく二次元変換演算を実施することが可能なデータ処理装置の例示的実施例を模式的に例示した概略図。
【図１１】図１０のデータ処理装置により実施することが可能な例示的な演算のタイミングを表形式で例示した概略図。
【図１２】本発明に基づいて複数個の二次元変換を並列的に実施することが可能なデータ処理装置の例示的実施例を模式的に例示した概略図。
【図１３】本発明の例示的実施例に基づくデータ処理システムを模式的に例示した概略図。
【符号の説明】
【００４２】
２１：整数変換行列
４１，４２：構成要素変換行列
５１：入力行列
５２：変換結果行列
６１：中間データ行列
８１：行列乗算器
８２：行列乗算器
８３，８４：データシフタ
【図１】
2005184829.tif 000005
【図２】
2005184829.tif 000006
【図３】
2005184829.tif 000007
【図４】
2005184829.tif 000008
【図５】
2005184829.tif 000009
【図６】
2005184829.tif 000010
【図７】
2005184829.tif 000011
【図８】
2005184829.tif 000012
【図９】
2005184829.tif 000013
【図１０】
2005184829.tif 000014
【図１１】
2005184829.tif 000015
【図１２】
2005184829.tif 000016
【図１３】
2005184829.tif 000017