JPH09288722A - 高性能バンド結合機能 - Google Patents
高性能バンド結合機能Info
- Publication number
- JPH09288722A JPH09288722A JP8330229A JP33022996A JPH09288722A JP H09288722 A JPH09288722 A JP H09288722A JP 8330229 A JP8330229 A JP 8330229A JP 33022996 A JP33022996 A JP 33022996A JP H09288722 A JPH09288722 A JP H09288722A
- Authority
- JP
- Japan
- Prior art keywords
- band
- computer
- register
- value
- product
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
(57)【要約】
【課題】 nバンドのソース画像をmバンドの目的画像
に変換するさいに、その結合機能を向上させる。 【解決手段】 ソース画像ベクトルに、n+1列、m行
の変換行列を乗じる。変換行列内の値はユーザ選択が可
能である。ソース画像と変換行列の積は目的画像ベクト
ルである。目的画像ベクトルはコンピュータ・モニタに
表示することができる。ディジタル・システムでこの機
能を実行するために、ソース画像の画素を区分形式に変
換する。区分算術演算を使用してソース画像に変換行列
値を乗じる。ディジタル・システムで、複数の区分算術
演算を並行して実行することができる。
に変換するさいに、その結合機能を向上させる。 【解決手段】 ソース画像ベクトルに、n+1列、m行
の変換行列を乗じる。変換行列内の値はユーザ選択が可
能である。ソース画像と変換行列の積は目的画像ベクト
ルである。目的画像ベクトルはコンピュータ・モニタに
表示することができる。ディジタル・システムでこの機
能を実行するために、ソース画像の画素を区分形式に変
換する。区分算術演算を使用してソース画像に変換行列
値を乗じる。ディジタル・システムで、複数の区分算術
演算を並行して実行することができる。
Description
【0001】
【発明の属する技術分野】本発明は、ディジタル・シス
テムで行うグラフィックスおよび画像処理の分野に関す
る。具体的には、本発明は、特に並列処理システムで行
う場合の、nバンドのソース画像をmバンドの目的画像
に変換するバンド結合機能である。
テムで行うグラフィックスおよび画像処理の分野に関す
る。具体的には、本発明は、特に並列処理システムで行
う場合の、nバンドのソース画像をmバンドの目的画像
に変換するバンド結合機能である。
【0002】著作権表示 本特許文書の開示の一部には、著作権保護の対象となる
題材が含まれている。著作権保有者は特許商標庁の特許
ファイルまたは記録に記載された厳密にそのままの形で
の何人による本特許文書または特許開示の電子写真複製
に対しても異議を持たないが、それ以外のものについて
はいかなる著作権もすべて保有する。
題材が含まれている。著作権保有者は特許商標庁の特許
ファイルまたは記録に記載された厳密にそのままの形で
の何人による本特許文書または特許開示の電子写真複製
に対しても異議を持たないが、それ以外のものについて
はいかなる著作権もすべて保有する。
【0003】付属文書 付属文書Aは、サン・マイクロシステムズ社によって開
発されたUltraSPARC−Iスーパースカラ・プ
ロセッサの「ビジュアル命令セット・ユーザーズ・ガイ
ド」の準備原稿の(1995年10月4日)の複写であ
る。
発されたUltraSPARC−Iスーパースカラ・プ
ロセッサの「ビジュアル命令セット・ユーザーズ・ガイ
ド」の準備原稿の(1995年10月4日)の複写であ
る。
【0004】
【従来の技術】ディジタルシステムでは、画像は画像の
画素によって記憶される。1画素はディジタル・システ
ム内の数ビットまたは数バイトのメモリで表される。画
像は一般に画素の二次元配列で表される。画像は多数の
画素の二次元配列である。1つの配列、すなわち「バン
ド」は、画像の特定の特徴を表す。たとえば、画像がR
GB形式のカラー画像である場合、画像の第1のバンド
は赤色成分を表す。第2のバンドは緑色成分を表す。さ
らに、第3のバンドは青色成分を表す。
画素によって記憶される。1画素はディジタル・システ
ム内の数ビットまたは数バイトのメモリで表される。画
像は一般に画素の二次元配列で表される。画像は多数の
画素の二次元配列である。1つの配列、すなわち「バン
ド」は、画像の特定の特徴を表す。たとえば、画像がR
GB形式のカラー画像である場合、画像の第1のバンド
は赤色成分を表す。第2のバンドは緑色成分を表す。さ
らに、第3のバンドは青色成分を表す。
【0005】画像処理では多様な目的のためにバンド結
合を使用する。たとえば、バンド結合を使用して、モニ
タ上に表示するためにYUV形式のビデオ画像をRGB
形式に変換するなど、画像を1つの色空間から他の色空
間に変換することができる。その逆に、バンド結合を使
用して、画像をRGB形式からYUV形式に変換するこ
とができる。さらに、バンド結合を使用して、カラー画
像から輝度情報を抽出し、それを使用して白黒画像を作
成することができる。バンド結合を使用して、所望のバ
イアス値に従って画像の特定の特徴を強調することもで
きる。たとえば、地形画像の特定の特徴を特定の色で示
すことができる。
合を使用する。たとえば、バンド結合を使用して、モニ
タ上に表示するためにYUV形式のビデオ画像をRGB
形式に変換するなど、画像を1つの色空間から他の色空
間に変換することができる。その逆に、バンド結合を使
用して、画像をRGB形式からYUV形式に変換するこ
とができる。さらに、バンド結合を使用して、カラー画
像から輝度情報を抽出し、それを使用して白黒画像を作
成することができる。バンド結合を使用して、所望のバ
イアス値に従って画像の特定の特徴を強調することもで
きる。たとえば、地形画像の特定の特徴を特定の色で示
すことができる。
【0006】バンド結合機能は、D=A*Sという行列
乗算によって行うことができる。Sはソース画素を表す
ベクトルである。Dは目的画素を表すベクトルである。
Aは変換行列であり、バイアス値も含む。行列Aはユー
ザ定義値を含むことができる。さらに、ユーザはバイア
ス値を選択または定義することができる。たとえば、3
バンド・ソース画像をバンド結合して3バンド目的画像
を得る場合、行列表現は以下のようになる。 変換行列内の値は、浮動小数点数とすることができる。
変数d、h、およびlはバイアス値である。行列乗算を
使用すると、画像の各画素に対して行うその結果の計算
は次のようになる。 d0=a*s0+b*s1+c*s2+d、 d1=e*s0+f*s1+g*s2+h、および d2=i*s0+j*s1+k*s2+1
乗算によって行うことができる。Sはソース画素を表す
ベクトルである。Dは目的画素を表すベクトルである。
Aは変換行列であり、バイアス値も含む。行列Aはユー
ザ定義値を含むことができる。さらに、ユーザはバイア
ス値を選択または定義することができる。たとえば、3
バンド・ソース画像をバンド結合して3バンド目的画像
を得る場合、行列表現は以下のようになる。 変換行列内の値は、浮動小数点数とすることができる。
変数d、h、およびlはバイアス値である。行列乗算を
使用すると、画像の各画素に対して行うその結果の計算
は次のようになる。 d0=a*s0+b*s1+c*s2+d、 d1=e*s0+f*s1+g*s2+h、および d2=i*s0+j*s1+k*s2+1
【0007】ディジタル処理技術の向上にもかかわら
ず、乗算や加算などの数学演算には依然として比較的時
間がかかる。したがって、バンド結合機能のような計算
を多用する機能は、相当な量の計算資源と時間を必要と
する。さらに、ディジタル処理技術に対するユーザの要
求が大きくなるにつれて、このようなタイプの画像処理
演算はさらに複雑化する。たとえば、画像の解像度が一
般に高くなり、それによって1画像当たりの画素数が増
える。したがって、バンド結合機能の実行は、画像の解
像度が高くなるほどそれに比例して長い時間を要するこ
とになる。したがって、バンド結合機能を生成するため
に使用する技法を向上させて、その機能をより迅速でよ
り効率的に実行することができるようにすることがます
ます重要になる。
ず、乗算や加算などの数学演算には依然として比較的時
間がかかる。したがって、バンド結合機能のような計算
を多用する機能は、相当な量の計算資源と時間を必要と
する。さらに、ディジタル処理技術に対するユーザの要
求が大きくなるにつれて、このようなタイプの画像処理
演算はさらに複雑化する。たとえば、画像の解像度が一
般に高くなり、それによって1画像当たりの画素数が増
える。したがって、バンド結合機能の実行は、画像の解
像度が高くなるほどそれに比例して長い時間を要するこ
とになる。したがって、バンド結合機能を生成するため
に使用する技法を向上させて、その機能をより迅速でよ
り効率的に実行することができるようにすることがます
ます重要になる。
【0008】
【発明が解決しようとする課題】以上からわかるよう
に、バンド結合機能を生成する改良された技法が必要で
ある。
に、バンド結合機能を生成する改良された技法が必要で
ある。
【0009】
【課題を解決するための手段】本発明は、nバンドのソ
ース画像をmバンドの目的画像に変換する高性能のバン
ド結合機能である。具体的には、この機能は変換行列を
使用してソース画像の任意のバンド間線形結合を行う。
変換行列は、任意の大きさとすることができ、それを使
用してソース画像から異なるバンド数を有する目的画像
を生成することができる。たとえば、RGB画像を白黒
画像に変換することができる。
ース画像をmバンドの目的画像に変換する高性能のバン
ド結合機能である。具体的には、この機能は変換行列を
使用してソース画像の任意のバンド間線形結合を行う。
変換行列は、任意の大きさとすることができ、それを使
用してソース画像から異なるバンド数を有する目的画像
を生成することができる。たとえば、RGB画像を白黒
画像に変換することができる。
【0010】本発明のバンド結合機能では、画像のソー
ス画像ベクトルを、n+1列、m行の変換行列で乗算す
ることができる。変換行列内の値はユーザ選択可能であ
る。変換行列内の値は浮動小数点数とすることができ
る。ソース画像ベクトルと変換行列の積は、目的画像ベ
クトルである。バンド結合機能の結果である目的画像の
画素は、コンピュータ・モニタ上に表示することができ
る。
ス画像ベクトルを、n+1列、m行の変換行列で乗算す
ることができる。変換行列内の値はユーザ選択可能であ
る。変換行列内の値は浮動小数点数とすることができ
る。ソース画像ベクトルと変換行列の積は、目的画像ベ
クトルである。バンド結合機能の結果である目的画像の
画素は、コンピュータ・モニタ上に表示することができ
る。
【0011】本発明では、バンド結合機能を迅速に評価
することができるようにディジタル・システムを最適化
する。本発明は、計算を多様するタスクの多くが同時に
並行して実行されるバンド結合機能を評価する技法を提
供する。ディジタル・システムでこの機能を実行するた
めに、ソース画像の画素を区分形式に変換する。区分算
術演算を使用して、ソース画素バンドに変換行列値を乗
じる。ディジタル・システムでは、複数の区分算術演算
を並行して実行することができる。たとえば、ディジタ
ル・システム内の浮動小数点/グラフィックス・ユニッ
トは、1クロック・サイクルで複数を実行することがで
きる。さらに、本発明の一実施態様では、一度に1画素
の少なくとも2つのバンドに対して行列乗算を行うこと
ができる。実際に、これによってバンド結合機能の演算
速度が向上する。さらに、実行速度をさらに向上させる
ために、バンド結合機能の演算を他のプロセッサ演算と
共にパイプライン化することができる。
することができるようにディジタル・システムを最適化
する。本発明は、計算を多様するタスクの多くが同時に
並行して実行されるバンド結合機能を評価する技法を提
供する。ディジタル・システムでこの機能を実行するた
めに、ソース画像の画素を区分形式に変換する。区分算
術演算を使用して、ソース画素バンドに変換行列値を乗
じる。ディジタル・システムでは、複数の区分算術演算
を並行して実行することができる。たとえば、ディジタ
ル・システム内の浮動小数点/グラフィックス・ユニッ
トは、1クロック・サイクルで複数を実行することがで
きる。さらに、本発明の一実施態様では、一度に1画素
の少なくとも2つのバンドに対して行列乗算を行うこと
ができる。実際に、これによってバンド結合機能の演算
速度が向上する。さらに、実行速度をさらに向上させる
ために、バンド結合機能の演算を他のプロセッサ演算と
共にパイプライン化することができる。
【0012】具体的には、本発明のバンド結合機能は以
下のステップを含む。画素の第1のバンドを第1のレジ
スタの第1の部分に格納する。画素の第2のバンドを第
1のレジスタの第2の部分に格納する。変換行列の第1
の値を第2のレジスタの第1の部分に格納する。さら
に、変換行列の第2の値を第2のレジスタの第2の部分
に格納する。本発明の他の実施態様では、第1のレジス
タの第1の部分と第2のレジスタの第1の部分を乗算し
て第1の積を求める。第1のレジスタの第2の部分と第
2のレジスタの第2の部分を乗算して第2の積を求め
る。これらの乗算ステップは、ディジタル・システムで
並列実行することができる。
下のステップを含む。画素の第1のバンドを第1のレジ
スタの第1の部分に格納する。画素の第2のバンドを第
1のレジスタの第2の部分に格納する。変換行列の第1
の値を第2のレジスタの第1の部分に格納する。さら
に、変換行列の第2の値を第2のレジスタの第2の部分
に格納する。本発明の他の実施態様では、第1のレジス
タの第1の部分と第2のレジスタの第1の部分を乗算し
て第1の積を求める。第1のレジスタの第2の部分と第
2のレジスタの第2の部分を乗算して第2の積を求め
る。これらの乗算ステップは、ディジタル・システムで
並列実行することができる。
【0013】本発明のその他の目的、特徴、および利点
は、以下の詳細な説明と添付図面を検討すれば明らかに
なろう。全図を通して同様の参照符号は同様の機構を表
す。
は、以下の詳細な説明と添付図面を検討すれば明らかに
なろう。全図を通して同様の参照符号は同様の機構を表
す。
【0014】
【発明の実施の形態】図1に、本発明のバンド結合機能
を実行するシステムを示す。具体的には、図1は本発明
のソフトウェアを実行するために使用するコンピュータ
またはディジタル・システムを含んでいる。たとえば、
本発明のバンド結合機能は、Sunワークステーション
で実行することができる。図1には、モニタ3と画面5
とキャビネット7とキーボード9とマウス11とを備え
るコンピュータ・システムが図示されている。マウス1
1は、マウス・ボタン13などの1つまたは複数のボタ
ンを有する。キャビネット7には、プロセッサ、メモ
リ、大容量記憶装置17、および同様のものなどの周知
のコンピュータ構成要素(図示せず)が収容されてい
る。大容量記憶装置17は、大容量ディスク・ドライ
ブ、フロッピィ・ディスク、磁気ディスク、固定ディス
ク、ハード・ディスク、CD−ROM、CD−WOR
M、テープ記憶装置、リーダ、およびその他の同様の媒
体と、それらの組合せを含むことができる。大容量記憶
装置17には、本発明のソフトウェアの2進機械実行可
能バージョンを格納、すなわち常駐させることができ
る。さらに、本発明のソフトウェアのソース・コード
も、(たとえば磁気ディスク、CD−ROM、およびリ
ーダを含む)大容量記憶装置17に記憶または常駐させ
ることができる。
を実行するシステムを示す。具体的には、図1は本発明
のソフトウェアを実行するために使用するコンピュータ
またはディジタル・システムを含んでいる。たとえば、
本発明のバンド結合機能は、Sunワークステーション
で実行することができる。図1には、モニタ3と画面5
とキャビネット7とキーボード9とマウス11とを備え
るコンピュータ・システムが図示されている。マウス1
1は、マウス・ボタン13などの1つまたは複数のボタ
ンを有する。キャビネット7には、プロセッサ、メモ
リ、大容量記憶装置17、および同様のものなどの周知
のコンピュータ構成要素(図示せず)が収容されてい
る。大容量記憶装置17は、大容量ディスク・ドライ
ブ、フロッピィ・ディスク、磁気ディスク、固定ディス
ク、ハード・ディスク、CD−ROM、CD−WOR
M、テープ記憶装置、リーダ、およびその他の同様の媒
体と、それらの組合せを含むことができる。大容量記憶
装置17には、本発明のソフトウェアの2進機械実行可
能バージョンを格納、すなわち常駐させることができ
る。さらに、本発明のソフトウェアのソース・コード
も、(たとえば磁気ディスク、CD−ROM、およびリ
ーダを含む)大容量記憶装置17に記憶または常駐させ
ることができる。
【0015】図2に、本発明のソフトウェアを実行する
ために使用するコンピュータ・システムのシステム・ブ
ロック図を示す。図1と同様に、コンピュータ・システ
ム1は、モニタ3、キーボード9、および大容量記憶装
置17を備える。コンピュータ・システム1はさらに、
中央演算処理装置102、システム・メモリ104、入
出力制御装置106、ディスプレイ・アダプタ108、
シリアル・ポート112、ネットワーク・インタフェー
ス118、およびスピーカ120などのサブシステムを
備える。本発明と共に使用するのに適したその他のコン
ピュータ・システムは、追加のサブシステムまたはこれ
より少ないサブシステムを備えることもできる。たとえ
ば、他のコンピュータ・システムは、複数のプロセッサ
102を備えることもでき(すなわちマルチプロセッサ
・システム)、システムがキャッシュ・メモリを備える
こともできる。
ために使用するコンピュータ・システムのシステム・ブ
ロック図を示す。図1と同様に、コンピュータ・システ
ム1は、モニタ3、キーボード9、および大容量記憶装
置17を備える。コンピュータ・システム1はさらに、
中央演算処理装置102、システム・メモリ104、入
出力制御装置106、ディスプレイ・アダプタ108、
シリアル・ポート112、ネットワーク・インタフェー
ス118、およびスピーカ120などのサブシステムを
備える。本発明と共に使用するのに適したその他のコン
ピュータ・システムは、追加のサブシステムまたはこれ
より少ないサブシステムを備えることもできる。たとえ
ば、他のコンピュータ・システムは、複数のプロセッサ
102を備えることもでき(すなわちマルチプロセッサ
・システム)、システムがキャッシュ・メモリを備える
こともできる。
【0016】122などの矢印は、コンピュータ・シス
テム1のシステム・バス・アーキテクチャを表す。しか
し、これらの矢印はサブシステムをリンクする機能を果
たす任意の相互接続方式を例示するものである。たとえ
ば、スピーカ120は、ポートを介して他のサブシステ
ムに接続したり、中央演算処理装置102への内部直接
接続を有することもできる。しかし、図2に示すコンピ
ュータ・システム1は、本発明と共に使用するのに適し
たコンピュータ・システムの例である。当業者なら、本
発明と共に使用するのに適したサブシステムのその他の
構成も容易にわかるであろう。
テム1のシステム・バス・アーキテクチャを表す。しか
し、これらの矢印はサブシステムをリンクする機能を果
たす任意の相互接続方式を例示するものである。たとえ
ば、スピーカ120は、ポートを介して他のサブシステ
ムに接続したり、中央演算処理装置102への内部直接
接続を有することもできる。しかし、図2に示すコンピ
ュータ・システム1は、本発明と共に使用するのに適し
たコンピュータ・システムの例である。当業者なら、本
発明と共に使用するのに適したサブシステムのその他の
構成も容易にわかるであろう。
【0017】図3は、図1および図2に示すディジタル
・システムで実施することができるスーパースカラ・プ
ロセッサの略ブロック図である。具体的には、図3に
は、サン・マイクロシステムズ社によって開発および製
造されたUltraSPARC−Iプロセッサが図示さ
れている。このプロセッサについては、以下で簡単に説
明し、付属文書Aで詳述されている。このプロセッサに
ついては、1994年4月29日に出願されたティモシ
ー・ジェイ・ヴァン・フック、レスリー・ディーン・コ
ーン、およびロバート・ヤングによる米国特許出願第0
8/236572号にも記載されており、これは参照に
よりその全体が本明細書に組み込まれる。
・システムで実施することができるスーパースカラ・プ
ロセッサの略ブロック図である。具体的には、図3に
は、サン・マイクロシステムズ社によって開発および製
造されたUltraSPARC−Iプロセッサが図示さ
れている。このプロセッサについては、以下で簡単に説
明し、付属文書Aで詳述されている。このプロセッサに
ついては、1994年4月29日に出願されたティモシ
ー・ジェイ・ヴァン・フック、レスリー・ディーン・コ
ーン、およびロバート・ヤングによる米国特許出願第0
8/236572号にも記載されており、これは参照に
よりその全体が本明細書に組み込まれる。
【0018】プロセッサ102は、高集積スーパースカ
ラRISCプロセッサである。このプロセッサは、条件
付き分岐やキャッシュ・ミスがある場合でも1サイクル
に4命令を高クロック・レートで実行することができ
る。プリフェッチおよびディスパッチ・ユニット(PD
U)315と分岐ユニット320は分岐命令を処理す
る。整数実行ユニット(IEU)325はすべての算術
演算と論理演算を処理する。ロード/ストア・ユニット
(LSU)330は、プロセッサの様々な構成要素間の
データ転送を処理する。浮動小数点/グラフィックス・
ユニット(FPU)335は、浮動小数点演算とグラフ
ィックス演算を処理する。プロセッサは、複数のレジス
タ、キャッシュ、バッファ、およびその他の構成要素も
備える。
ラRISCプロセッサである。このプロセッサは、条件
付き分岐やキャッシュ・ミスがある場合でも1サイクル
に4命令を高クロック・レートで実行することができ
る。プリフェッチおよびディスパッチ・ユニット(PD
U)315と分岐ユニット320は分岐命令を処理す
る。整数実行ユニット(IEU)325はすべての算術
演算と論理演算を処理する。ロード/ストア・ユニット
(LSU)330は、プロセッサの様々な構成要素間の
データ転送を処理する。浮動小数点/グラフィックス・
ユニット(FPU)335は、浮動小数点演算とグラフ
ィックス演算を処理する。プロセッサは、複数のレジス
タ、キャッシュ、バッファ、およびその他の構成要素も
備える。
【0019】図4はFPU335のブロック図である。
FPU335は以下の機能ブロックを組み込んでいる。
すなわち、浮動小数点加算器410、浮動小数点乗算器
415、浮動小数点除算器(および平方根演算器)41
8、グラフィックス加算器420、グラフィックス乗算
器425、およびレジスタ・ファイル430である。F
PU335とPDU315とLSU330の間の相互接
続が図示されている。
FPU335は以下の機能ブロックを組み込んでいる。
すなわち、浮動小数点加算器410、浮動小数点乗算器
415、浮動小数点除算器(および平方根演算器)41
8、グラフィックス加算器420、グラフィックス乗算
器425、およびレジスタ・ファイル430である。F
PU335とPDU315とLSU330の間の相互接
続が図示されている。
【0020】FPU335は、毎サイクルに2つの浮動
小数点/グラフィックス演算(FGops)と1つのF
Pロード/ストア演算を実行することができる。演算は
完全にパイプライン化されている。FPU335は、グ
ラフィックス・アプリケーションに必要と考えられる区
分算術演算を行う機能を備えるように強化されたデータ
経路を有する。たとえば、この機能は、グラフィックス
加算器、グラフィックス乗算器、および画素距離論理実
施によって実現される。グラフィックス加算器は、加算
を同時に並行して実行することができる4つの独立した
16ビット加算器として構成されている。グラフィック
ス乗算器は、乗算を同時に並行して実行することができ
る4つの独立した8×16乗算器から成る。形式変換と
メモリ位置合わせをサポートするように、スケール・フ
ァクタ・フィールドと位置合わせオフセットフィールド
を有するグラフィクス状態レジスタ(GSR)(図示せ
ず)が組み込まれている。
小数点/グラフィックス演算(FGops)と1つのF
Pロード/ストア演算を実行することができる。演算は
完全にパイプライン化されている。FPU335は、グ
ラフィックス・アプリケーションに必要と考えられる区
分算術演算を行う機能を備えるように強化されたデータ
経路を有する。たとえば、この機能は、グラフィックス
加算器、グラフィックス乗算器、および画素距離論理実
施によって実現される。グラフィックス加算器は、加算
を同時に並行して実行することができる4つの独立した
16ビット加算器として構成されている。グラフィック
ス乗算器は、乗算を同時に並行して実行することができ
る4つの独立した8×16乗算器から成る。形式変換と
メモリ位置合わせをサポートするように、スケール・フ
ァクタ・フィールドと位置合わせオフセットフィールド
を有するグラフィクス状態レジスタ(GSR)(図示せ
ず)が組み込まれている。
【0021】図5Aに、区分算術の例を示す。具体的に
は、図5Aには、8ビット×16ビットの区分乗算演算
が示されている。たとえば、画素A、B、C、およびD
を記憶場所510に区分化形式で格納することができ
る。記憶場所510は、2進データを記憶し、たとえば
RAM記憶場所、レジスタ、一時レジスタ、ラッチ、お
よびその他の同様の構成要素と、それらの組合せを使用
して実装することができる。
は、図5Aには、8ビット×16ビットの区分乗算演算
が示されている。たとえば、画素A、B、C、およびD
を記憶場所510に区分化形式で格納することができ
る。記憶場所510は、2進データを記憶し、たとえば
RAM記憶場所、レジスタ、一時レジスタ、ラッチ、お
よびその他の同様の構成要素と、それらの組合せを使用
して実装することができる。
【0022】区分形式では、記憶場所の第1の部分が画
素Aを、第2の部分が画素Bを、第3の部分が画素C
を、第4の部分が画素Dを保持する。たとえば、画素は
8ビットで表すことができる。記憶場所510は32ビ
ット幅となる。その場合、画素Dは0から7までのビッ
ト位置に格納される。画素Cは8から15までのビット
位置に格納される。画素Bは16から23までのビット
位置に格納される。さらに、画素Aは24から31まで
のビット位置に格納される。
素Aを、第2の部分が画素Bを、第3の部分が画素C
を、第4の部分が画素Dを保持する。たとえば、画素は
8ビットで表すことができる。記憶場所510は32ビ
ット幅となる。その場合、画素Dは0から7までのビッ
ト位置に格納される。画素Cは8から15までのビット
位置に格納される。画素Bは16から23までのビット
位置に格納される。さらに、画素Aは24から31まで
のビット位置に格納される。
【0023】乗数W、X、Y、およびZは、記憶場所5
20に区分形式で記憶される。乗数は整数形式とするこ
とができる。乗数は16ビット幅である。本発明の他の
実施形態では、乗数は浮動小数点表現などの他の形式と
することもできる。記憶場所520は、64ビットの記
憶場所とすることができる。区分形式で、乗数Zは記憶
場所520の0から15までのビット位置に格納するこ
とができる。乗数Yは16から31までのビット位置に
格納することができる。乗数Xは32から47までのビ
ット位置に格納することができる。乗数Wは48から6
3までのビット位置に格納することができる。
20に区分形式で記憶される。乗数は整数形式とするこ
とができる。乗数は16ビット幅である。本発明の他の
実施形態では、乗数は浮動小数点表現などの他の形式と
することもできる。記憶場所520は、64ビットの記
憶場所とすることができる。区分形式で、乗数Zは記憶
場所520の0から15までのビット位置に格納するこ
とができる。乗数Yは16から31までのビット位置に
格納することができる。乗数Xは32から47までのビ
ット位置に格納することができる。乗数Wは48から6
3までのビット位置に格納することができる。
【0024】本発明の一実施形態では、乗数W、X、
Y、およびZが浮動小数点値の場合、それらの値は変換
されて記憶場所520に整数形式で格納される。たとえ
ば、浮動小数点値を整数形式に変換する1つの技法は、
浮動小数点値に、2の累乗である大きな整数(たとえば
4096、65536)を乗じる(すなわち「スケール
・アップ」する)ことである。この積の整数部分がその
後の区分算術計算に使用される。整数演算は一般に浮動
小数点演算よりもはるかに速いため、浮動小数点値を整
数形式に変換することによって、区分算術計算の実行速
度が高速化する。さらに、一般に必要なのは浮動小数点
値の最上位ビットのみであるため、この変換の結果、確
度と精度の損失が比較的小さくなる。
Y、およびZが浮動小数点値の場合、それらの値は変換
されて記憶場所520に整数形式で格納される。たとえ
ば、浮動小数点値を整数形式に変換する1つの技法は、
浮動小数点値に、2の累乗である大きな整数(たとえば
4096、65536)を乗じる(すなわち「スケール
・アップ」する)ことである。この積の整数部分がその
後の区分算術計算に使用される。整数演算は一般に浮動
小数点演算よりもはるかに速いため、浮動小数点値を整
数形式に変換することによって、区分算術計算の実行速
度が高速化する。さらに、一般に必要なのは浮動小数点
値の最上位ビットのみであるため、この変換の結果、確
度と精度の損失が比較的小さくなる。
【0025】区分乗算の場合、画素DにZを乗じ、画素
CにYを乗じ、画素BにXを乗じ、画素AにWを乗じ
る。これらの乗算の積を区分形式で64ビットの記憶場
所530に格納する。D*Zの積は、記憶場所530の
ビット位置0から15に格納される。C*Yの積はビッ
ト位置16から31に格納される。B*Xの積はビット
位置32から47に格納される。A*Wの積はビット位
置48から63に格納される。
CにYを乗じ、画素BにXを乗じ、画素AにWを乗じ
る。これらの乗算の積を区分形式で64ビットの記憶場
所530に格納する。D*Zの積は、記憶場所530の
ビット位置0から15に格納される。C*Yの積はビッ
ト位置16から31に格納される。B*Xの積はビット
位置32から47に格納される。A*Wの積はビット位
置48から63に格納される。
【0026】区分乗算などの区分算術は、図4に示すよ
うなプロセッサで実行することができる。演算は同時に
並行して実行される。例えば、図5Aの4個の画素の乗
算は、グラフィックス乗算器425によって同時に並列
して行われることになる。さらに、この区分算術演算は
1つのクロック・サイクルで実行することができる。
うなプロセッサで実行することができる。演算は同時に
並行して実行される。例えば、図5Aの4個の画素の乗
算は、グラフィックス乗算器425によって同時に並列
して行われることになる。さらに、この区分算術演算は
1つのクロック・サイクルで実行することができる。
【0027】同じ期間により多くのデータに対する演算
が行われるため、区分算術演算の結果、パフォーマンス
が向上する。図5Aに示す例では、4つの乗算が同時に
実行されるため、区分乗算によってパフォーマンスが4
倍に向上する。区分算術演算は、加算、減算、除算、お
よびその他の機能の場合も同様に実行することができ
る。その場合も同様のパフォーマンス向上が実現される
ことになる。区分化、区分データ形式、および区分算術
の詳細については付属文書Aに記載されている。
が行われるため、区分算術演算の結果、パフォーマンス
が向上する。図5Aに示す例では、4つの乗算が同時に
実行されるため、区分乗算によってパフォーマンスが4
倍に向上する。区分算術演算は、加算、減算、除算、お
よびその他の機能の場合も同様に実行することができ
る。その場合も同様のパフォーマンス向上が実現される
ことになる。区分化、区分データ形式、および区分算術
の詳細については付属文書Aに記載されている。
【0028】図5Bは、区分算術の他の例である。図5
Aと同様に、図5Bにも区分乗算が示されている。区分
算術のこの例では、2つの乗算が同時に並行して実行さ
れる。さらに、データ・オペランドは、図5Aに示すも
のとは多少異なる方式で格納される。4個の8ビット画
素E、F、G、およびHは、区分形式で32ビットの記
憶場所550に格納される。16ビットの乗数Uおよび
Vは区分形式で32ビットの記憶場所560に格納され
る。これらの乗数は、前述のように整数形式に変される
浮動小数点値とすることができる。U*FおよびV*H
の積は区分形式で64ビットの記憶場所570に格納さ
れる。U*Fの積が32ビットを使用して格納される。
V*Hの積が32ビットを使用して格納される。
Aと同様に、図5Bにも区分乗算が示されている。区分
算術のこの例では、2つの乗算が同時に並行して実行さ
れる。さらに、データ・オペランドは、図5Aに示すも
のとは多少異なる方式で格納される。4個の8ビット画
素E、F、G、およびHは、区分形式で32ビットの記
憶場所550に格納される。16ビットの乗数Uおよび
Vは区分形式で32ビットの記憶場所560に格納され
る。これらの乗数は、前述のように整数形式に変される
浮動小数点値とすることができる。U*FおよびV*H
の積は区分形式で64ビットの記憶場所570に格納さ
れる。U*Fの積が32ビットを使用して格納される。
V*Hの積が32ビットを使用して格納される。
【0029】図6Aに本発明の流れ図を示す。本発明
は、バンド結合機能を実行する。バンド結合機能は、変
換行列で指定された値に従ってnバンドのソース画像を
mバンドの目的画像に変換する。従来の技術の項で説明
したように、バンド結合演算はD=A*Sの行列乗算を
必要とする。Dは目的画像の画素のバンドのベクトルで
ある。Aはバイアス値を含む変換行列である。Sはソー
ス画像の画素のバンドのベクトルである。
は、バンド結合機能を実行する。バンド結合機能は、変
換行列で指定された値に従ってnバンドのソース画像を
mバンドの目的画像に変換する。従来の技術の項で説明
したように、バンド結合演算はD=A*Sの行列乗算を
必要とする。Dは目的画像の画素のバンドのベクトルで
ある。Aはバイアス値を含む変換行列である。Sはソー
ス画像の画素のバンドのベクトルである。
【0030】図6Aに示す技法は、前述のように画像処
理用に特別に調整されたディジタル・システムまたは機
械で実行することができる。たとえば、本発明の実施形
態の実施のためのソース・コードは、UltraSPA
RC−Iプロセッサ用のビジュアル命令セット(VI
S)言語を使用して作成することができる。VIS言語
については、付属文書Aの「ビジュアル命令セット・ユ
ーザーズ・ガイド」に記載されている。
理用に特別に調整されたディジタル・システムまたは機
械で実行することができる。たとえば、本発明の実施形
態の実施のためのソース・コードは、UltraSPA
RC−Iプロセッサ用のビジュアル命令セット(VI
S)言語を使用して作成することができる。VIS言語
については、付属文書Aの「ビジュアル命令セット・ユ
ーザーズ・ガイド」に記載されている。
【0031】図6Aの流れ図に、3バンド(n=3)ソ
ース画像と3バンド(m=3)目的画像の場合のバンド
結合演算を示す。特定の例について説明するが、ソース
画像および目的画像は、任意の大きなバンド数または小
さなバンド数を有することができる。たとえば、バンド
結合機能の一実施形態では、ソース画像は1〜4バンド
を有することができ、目的画像は1〜4バンドを有する
ことができる。しかし他の実施形態では、ソース画像と
目的画像は4バンドを超える数のバンド数を有すること
ができる。ただし典型的にはバンド数が増えるにつれて
必要な計算数も増える。
ース画像と3バンド(m=3)目的画像の場合のバンド
結合演算を示す。特定の例について説明するが、ソース
画像および目的画像は、任意の大きなバンド数または小
さなバンド数を有することができる。たとえば、バンド
結合機能の一実施形態では、ソース画像は1〜4バンド
を有することができ、目的画像は1〜4バンドを有する
ことができる。しかし他の実施形態では、ソース画像と
目的画像は4バンドを超える数のバンド数を有すること
ができる。ただし典型的にはバンド数が増えるにつれて
必要な計算数も増える。
【0032】n=3およびm=3である特定の事例を選
択したのは本発明の原理を例示するためであり、本発明
をいかなる意味でも限定するものと解釈してはならな
い。ソース画像および目的画像のバンド数とは関係な
く、本発明のバンド結合機能は流れ図で説明しているの
と同様に実行される。
択したのは本発明の原理を例示するためであり、本発明
をいかなる意味でも限定するものと解釈してはならな
い。ソース画像および目的画像のバンド数とは関係な
く、本発明のバンド結合機能は流れ図で説明しているの
と同様に実行される。
【0033】n=3およびm=3の場合、指定されたま
たは変換行列A(ユーザが定義することができる)は
(n+1)列、m行となる。したがって、n=3でm=
3の場合、Aは4列3行とになる。以下の行列式にバン
ド結合演算を示す。 変数d、h、およびlはバイアス値である。画像の各画
素に対して実行するこの結果の計算は以下のようにな
る。 d0=a*s0+b*s1+c*s2+d、 d1=e*s0+f*s1+g*s2+h、および d2=i*s0+j*s1+k*s2+l。
たは変換行列A(ユーザが定義することができる)は
(n+1)列、m行となる。したがって、n=3でm=
3の場合、Aは4列3行とになる。以下の行列式にバン
ド結合演算を示す。 変数d、h、およびlはバイアス値である。画像の各画
素に対して実行するこの結果の計算は以下のようにな
る。 d0=a*s0+b*s1+c*s2+d、 d1=e*s0+f*s1+g*s2+h、および d2=i*s0+j*s1+k*s2+l。
【0034】図6Aの流れ図で、ステップ603は指定
された行列Aを転置し、値をプロセッサ内の倍長レジス
タに入れる。aからlまでの値は浮動小数点数とするこ
とができる。これらの値は、前述のようにスケール・ア
ップし、整数形式に変換することができる。特定の実施
形態では、aからlまでの値を16ビットとして格納す
ることができる。aからlまでの値は、レジスタなどの
記憶場所に格納される。典型的なレジスタは32ビット
幅である。倍長レジスタは64ビット幅である。さら
に、aからlまでの値は区分形式で格納することができ
る。たとえば、4つの16ビット値を倍長レジスタに区
分形式で格納することができる。
された行列Aを転置し、値をプロセッサ内の倍長レジス
タに入れる。aからlまでの値は浮動小数点数とするこ
とができる。これらの値は、前述のようにスケール・ア
ップし、整数形式に変換することができる。特定の実施
形態では、aからlまでの値を16ビットとして格納す
ることができる。aからlまでの値は、レジスタなどの
記憶場所に格納される。典型的なレジスタは32ビット
幅である。倍長レジスタは64ビット幅である。さら
に、aからlまでの値は区分形式で格納することができ
る。たとえば、4つの16ビット値を倍長レジスタに区
分形式で格納することができる。
【0035】図6Bに、変換行列Aのaからlまでの変
数を、64ビットを有する倍長レジスタC0、C2、C
3、およびC4にどのように配置することができるかを
示す。C0、C2、C3、およびC4レジスタの内容は
区分形式であることに留意されたい。たとえば、レジス
タC2にはa、e、i、およびxの値を入れることがで
きる。レジスタC3にはb、f、j、およびxが入れら
れる。レジスタC4にはc、g、k、およびxが入れら
れる。レジスタC0にはd、h、l、およびxが入れら
れる。値「x」はドントケア値を示す。
数を、64ビットを有する倍長レジスタC0、C2、C
3、およびC4にどのように配置することができるかを
示す。C0、C2、C3、およびC4レジスタの内容は
区分形式であることに留意されたい。たとえば、レジス
タC2にはa、e、i、およびxの値を入れることがで
きる。レジスタC3にはb、f、j、およびxが入れら
れる。レジスタC4にはc、g、k、およびxが入れら
れる。レジスタC0にはd、h、l、およびxが入れら
れる。値「x」はドントケア値を示す。
【0036】ステップ606はバンド結合機能の計算を
行うループを開始する。このループでは、目的画像Dの
各画素について必要な行列演算が実行される。
行うループを開始する。このループでは、目的画像Dの
各画素について必要な行列演算が実行される。
【0037】ステップ609で、バイアス値d、h、お
よびlがレジスタd0およびdlに入れられる。これら
のバイアス値は16ビットを使用して表すことができ
る。図6Cに、これらのバイアス値がレジスタd0およ
びdlにどのように格納されるかを示す。たとえばdお
よびhはレジスタd0に(区分形式で)格納される。レ
ジスタd1はlおよびxを(区分形式で)保持する。値
「x」はドントケア値を示す。
よびlがレジスタd0およびdlに入れられる。これら
のバイアス値は16ビットを使用して表すことができ
る。図6Cに、これらのバイアス値がレジスタd0およ
びdlにどのように格納されるかを示す。たとえばdお
よびhはレジスタd0に(区分形式で)格納される。レ
ジスタd1はlおよびxを(区分形式で)保持する。値
「x」はドントケア値を示す。
【0038】ステップ612で、ソース画像のバンドが
読み取られる。この例では、ソース画像は3つのバンド
s0、s1、およびs2を有する。バンドの計算は任意
の所望の順序で実行することができる。たとえば、ステ
ップ612に示すようにs0の値を先に求める。次にバ
ンドs1とs2の値を順次に求める。
読み取られる。この例では、ソース画像は3つのバンド
s0、s1、およびs2を有する。バンドの計算は任意
の所望の順序で実行することができる。たとえば、ステ
ップ612に示すようにs0の値を先に求める。次にバ
ンドs1とs2の値を順次に求める。
【0039】ステップ615では、「スカラ」演算を行
う。スカラ演算によって、ソース画素のバンドが4回複
製され、それらは図6Dに示すように区分形式で
(「t」で表されている)レジスタに入れられる。たと
えば、画素のバンドは8ビットで表すことができる。次
に、スカラ演算によって8ビット画素を32ビットレジ
スタで4回複製する。スカラ演算によって区分算術演算
の画素値が作成される。
う。スカラ演算によって、ソース画素のバンドが4回複
製され、それらは図6Dに示すように区分形式で
(「t」で表されている)レジスタに入れられる。たと
えば、画素のバンドは8ビットで表すことができる。次
に、スカラ演算によって8ビット画素を32ビットレジ
スタで4回複製する。スカラ演算によって区分算術演算
の画素値が作成される。
【0040】ステップ618で、乗算加算演算であるS
AXPY演算を行う。具体的には、SAXPY(A,
B,C,D)は以下の計算を表す。 A=B*C+D A、B、C、およびDは2つの要素のベクトルである。
SAXPY演算はプロセッサで区分算術を使用して実行
する。前述のように、複数の並列乗算を行うことができ
る。複数の並列加算も行うことができる。具体的には、
ステップ618で演算SAXPY(d1,t,lo(c
2),d1)を実行し、この演算は以下の関数を表す。 d1=t*lo(c2)+d1 レジスタd1の内容がレジスタtと、レジスタc2の下
位ビットとの積に加算される。この積は、レジスタd1
の前の内容に加算される。具体的には、レジスタtには
s0とs0が入っている。レジスタc2の下位ビットに
はiとxが入っている。レジスタd1にはlとxが入っ
ている。(図5Bに示すような)区分乗算を使用して、
(レジスタt内の)値s0に(レジスタd1)内のiを
乗じ、(レジスタt内の)s0に(レジスタd1)内の
xを乗じる。これらの積をレジスタd1の内容(すなわ
ちlおよびx)に区分加算する。レジスタd1内の結果
はi*s0+lおよびx(区分形式)である。これを図
6Eに示す。
AXPY演算を行う。具体的には、SAXPY(A,
B,C,D)は以下の計算を表す。 A=B*C+D A、B、C、およびDは2つの要素のベクトルである。
SAXPY演算はプロセッサで区分算術を使用して実行
する。前述のように、複数の並列乗算を行うことができ
る。複数の並列加算も行うことができる。具体的には、
ステップ618で演算SAXPY(d1,t,lo(c
2),d1)を実行し、この演算は以下の関数を表す。 d1=t*lo(c2)+d1 レジスタd1の内容がレジスタtと、レジスタc2の下
位ビットとの積に加算される。この積は、レジスタd1
の前の内容に加算される。具体的には、レジスタtには
s0とs0が入っている。レジスタc2の下位ビットに
はiとxが入っている。レジスタd1にはlとxが入っ
ている。(図5Bに示すような)区分乗算を使用して、
(レジスタt内の)値s0に(レジスタd1)内のiを
乗じ、(レジスタt内の)s0に(レジスタd1)内の
xを乗じる。これらの積をレジスタd1の内容(すなわ
ちlおよびx)に区分加算する。レジスタd1内の結果
はi*s0+lおよびx(区分形式)である。これを図
6Eに示す。
【0041】本発明では算術演算が区分化されるため、
乗算を同時に(たとえば1サイクルで)実行することが
できる。具体的には、目的画素の複数のバンドを同時に
並列で求めることができる。さらに、複数の加算も同様
に同時に実行される。したがって、本発明は、実行する
必要のある演算を、並列実行することができるように構
成する。計算がより短い帰還で実行されるため、算術演
算を同時に実行しない場合と比較して、本発明の技法は
本発明のバンド結合機能の実行速度とスループットを大
幅に向上させる。
乗算を同時に(たとえば1サイクルで)実行することが
できる。具体的には、目的画素の複数のバンドを同時に
並列で求めることができる。さらに、複数の加算も同様
に同時に実行される。したがって、本発明は、実行する
必要のある演算を、並列実行することができるように構
成する。計算がより短い帰還で実行されるため、算術演
算を同時に実行しない場合と比較して、本発明の技法は
本発明のバンド結合機能の実行速度とスループットを大
幅に向上させる。
【0042】さらに、本発明の他の実施形態では、SA
XPY演算を一度に2つの画素に対して実行する。たと
えば、第1の画素を2回複製してレジスタの第1の部分
と第2の部分に格納する。第2の画素を2回複製してそ
のレジスタの第3の部分と第4の部分に格納する。その
結果は、5A図の記憶場所510のようになる。次に、
これらの画素に(図5Aの記憶場所520に示すように
格納されている)適切な変換行列乗数を乗じる。図5A
に示すように、4つの8×16乗算を同時に並行して実
行する。グラフィックス乗算器425によって区分算術
演算を行うことができる。結果は64ビット・レジスタ
に格納される。この区分算術演算技法によって、バンド
結合ルーチンのこの演算のパフォーマンスが4倍に向上
する。
XPY演算を一度に2つの画素に対して実行する。たと
えば、第1の画素を2回複製してレジスタの第1の部分
と第2の部分に格納する。第2の画素を2回複製してそ
のレジスタの第3の部分と第4の部分に格納する。その
結果は、5A図の記憶場所510のようになる。次に、
これらの画素に(図5Aの記憶場所520に示すように
格納されている)適切な変換行列乗数を乗じる。図5A
に示すように、4つの8×16乗算を同時に並行して実
行する。グラフィックス乗算器425によって区分算術
演算を行うことができる。結果は64ビット・レジスタ
に格納される。この区分算術演算技法によって、バンド
結合ルーチンのこの演算のパフォーマンスが4倍に向上
する。
【0043】ステップ621でSAXPY(d0,t,
hi(c2),d0)演算を行う。この演算は以下の演
算を表す。 d0=t*hi(c2)+d0 レジスタd0の内容がレジスタtと、レジスタc2の上
位ビットとの積に加算される。レジスタd0にはdとh
が入っている。レジスタtにはs0とs0が入ってい
る。レジスタc2の上位ビットにはaとeが入ってい
る。レジスタtとhi(c2)との内容を乗じる。その
結果はa*s0およびe*s0である。前述のように、
これらの乗算は区分算術演算を使用してプロセッサで同
時に並行して実行することができる。この結果をdおよ
びhにそれぞれ加算する。したがって、d0レジスタに
入れられる結果は、図6Fに示すようにa*s0+dお
よびe*s0+hである。前述のように、ステップ62
1では2つの画素の計算を同時に処理することができ、
その結果さらにスループットが向上する。
hi(c2),d0)演算を行う。この演算は以下の演
算を表す。 d0=t*hi(c2)+d0 レジスタd0の内容がレジスタtと、レジスタc2の上
位ビットとの積に加算される。レジスタd0にはdとh
が入っている。レジスタtにはs0とs0が入ってい
る。レジスタc2の上位ビットにはaとeが入ってい
る。レジスタtとhi(c2)との内容を乗じる。その
結果はa*s0およびe*s0である。前述のように、
これらの乗算は区分算術演算を使用してプロセッサで同
時に並行して実行することができる。この結果をdおよ
びhにそれぞれ加算する。したがって、d0レジスタに
入れられる結果は、図6Fに示すようにa*s0+dお
よびe*s0+hである。前述のように、ステップ62
1では2つの画素の計算を同時に処理することができ、
その結果さらにスループットが向上する。
【0044】第2のバンドs1の計算を開始するため
に、ステップ624で画像の第2のバンドs1からソー
ス画素を読み取る。ステップ627で、そのソース画素
のスカラ演算(4回複製する)を行い、レジスタtに格
納する。これを図6Gに示す。
に、ステップ624で画像の第2のバンドs1からソー
ス画素を読み取る。ステップ627で、そのソース画素
のスカラ演算(4回複製する)を行い、レジスタtに格
納する。これを図6Gに示す。
【0045】ステップ630でSAXPY(d1,t,
lo(c3),d1)演算を行う。この演算は以下の演
算を表す。 d1=t*lo(c3)+d1 レジスタd1の内容をレジスタtと、レジスタc3の下
位ビットとの積に加算する。この積をレジスタd1の前
の内容に加算する。具体的には、レジスタtにはs1と
s1が入っている。レジスタc3の下位ビットにはjと
xが入っている。さらに、レジスタd1にはi*s0+
lおよびxが入っている。(レジスタt内の)バンドs
1のソース画素をjで区分乗算し、(レジスタt内の)
ソース画素にxを乗じる。積はsl*jおよびj*xに
なる。これらの積をd1の内容に加算する。その結果で
あるsl*j+i*s0+1およびx(ドントケア)が
レジスタd1に格納される。これを図6Hに示す。
lo(c3),d1)演算を行う。この演算は以下の演
算を表す。 d1=t*lo(c3)+d1 レジスタd1の内容をレジスタtと、レジスタc3の下
位ビットとの積に加算する。この積をレジスタd1の前
の内容に加算する。具体的には、レジスタtにはs1と
s1が入っている。レジスタc3の下位ビットにはjと
xが入っている。さらに、レジスタd1にはi*s0+
lおよびxが入っている。(レジスタt内の)バンドs
1のソース画素をjで区分乗算し、(レジスタt内の)
ソース画素にxを乗じる。積はsl*jおよびj*xに
なる。これらの積をd1の内容に加算する。その結果で
あるsl*j+i*s0+1およびx(ドントケア)が
レジスタd1に格納される。これを図6Hに示す。
【0046】前述のように、本発明の算術演算は区分化
されている。プロセッサで複数の演算を同時に(たとえ
ば1サイクルで)実行することができる。画素の複数の
バンドを同時に乗算することができる。区分算術演算の
結果、本発明のバンド結合機能の実行速度が速くなる。
さらに、前述のように、他の実施形態では、SAXPY
演算を同時に2つの画素に対して実行する。この技法を
使用すると、バンド結合機能のこの演算のパフォーマン
スが4倍向上する。
されている。プロセッサで複数の演算を同時に(たとえ
ば1サイクルで)実行することができる。画素の複数の
バンドを同時に乗算することができる。区分算術演算の
結果、本発明のバンド結合機能の実行速度が速くなる。
さらに、前述のように、他の実施形態では、SAXPY
演算を同時に2つの画素に対して実行する。この技法を
使用すると、バンド結合機能のこの演算のパフォーマン
スが4倍向上する。
【0047】ステップ633で、SAXPY(d0,
t,hi(c3),d0)演算を実行する。これは以下
の演算を表す。 d0=t*hi(c3)+d0 レジスタd0の現在の内容をレジスタtと、レジスタc
3の上位ビットとの積に加算する。この積をレジスタd
0の前の内容に加算する。具体的には、レジスタtには
s1とs1が入っている。レジスタc3の上位ビットに
はbとfが入っている。レジスタd0にはa*s0+d
とe*s0+hが入っている。(レジスタt内の)バン
ドs1のソース画素をレジスタc3内のbで区分乗算す
る。(レジスタt内の)ソース画素にレジスタc3内の
fを乗じる。この積はs1*bおよびs1*fになる。
これらの積をd1の内容に区分加算する。その結果は、
b*s1+a*s0+dおよびf*s1+e*s0+h
であり、レジスタd0に格納される。これを図6Iに示
す。
t,hi(c3),d0)演算を実行する。これは以下
の演算を表す。 d0=t*hi(c3)+d0 レジスタd0の現在の内容をレジスタtと、レジスタc
3の上位ビットとの積に加算する。この積をレジスタd
0の前の内容に加算する。具体的には、レジスタtには
s1とs1が入っている。レジスタc3の上位ビットに
はbとfが入っている。レジスタd0にはa*s0+d
とe*s0+hが入っている。(レジスタt内の)バン
ドs1のソース画素をレジスタc3内のbで区分乗算す
る。(レジスタt内の)ソース画素にレジスタc3内の
fを乗じる。この積はs1*bおよびs1*fになる。
これらの積をd1の内容に区分加算する。その結果は、
b*s1+a*s0+dおよびf*s1+e*s0+h
であり、レジスタd0に格納される。これを図6Iに示
す。
【0048】本発明の算術演算は区分化されている。複
数の算術演算を同時に実行することができる。前述のよ
うに、区分算術演算の結果、本発明のバンド結合機能の
実行速度が速くなる。さらに、他の実施形態では、同じ
期間に(同じバンドの)2つの画素に対してSAXPY
演算が実行される。この技法を使用すると、バンド結合
機能のこの演算のパフォーマンスが4倍向上する。
数の算術演算を同時に実行することができる。前述のよ
うに、区分算術演算の結果、本発明のバンド結合機能の
実行速度が速くなる。さらに、他の実施形態では、同じ
期間に(同じバンドの)2つの画素に対してSAXPY
演算が実行される。この技法を使用すると、バンド結合
機能のこの演算のパフォーマンスが4倍向上する。
【0049】第3のバンドs2に対する計算を開始する
ために、ステップ636でイメージの第3のバンドs2
から画素を読み取る。ステップ639で、ソース画素の
スカラ演算を行い(4回複製する)、倍精度レジスタt
に格納する。これを図6Jに示す。一実施形態では、ソ
ース画素を16ビットで表すことができる。したがっ
て、レジスタtは64ビット幅になる。
ために、ステップ636でイメージの第3のバンドs2
から画素を読み取る。ステップ639で、ソース画素の
スカラ演算を行い(4回複製する)、倍精度レジスタt
に格納する。これを図6Jに示す。一実施形態では、ソ
ース画素を16ビットで表すことができる。したがっ
て、レジスタtは64ビット幅になる。
【0050】ステップ642で、SAXPY(d1,
t,lo(c4),d1)演算を実行する。これは以下
の演算を表す。 d1=t*lo(c4)+d1 レジスタd1の内容をレジスタtと、レジスタc3の下
位ビットとの積に加算する。この積をレジスタd1の内
容に加算する。具体的には、レジスタtにはs2とs2
が入っている。レジスタc4の下位ビットにはkとxが
入っている。さらに、レジスタd1にはi*s0+j*
s1+lおよびxが入っている。(レジスタt内の)バ
ンドs2のソース画素に(レジスタc4内の)kを乗
じ、(レジスタt内の)ソース画素s2を(レジスタc
4内の)xで区分乗算する。この積はs2*kおよびs
2*xになる。これらの積をd1の内容に区分加算す
る。その結果のs2*k+s1*j+i*s0+lおよ
びx(ドントケア)がレジスタd1に格納される。これ
を図6Kに示す。
t,lo(c4),d1)演算を実行する。これは以下
の演算を表す。 d1=t*lo(c4)+d1 レジスタd1の内容をレジスタtと、レジスタc3の下
位ビットとの積に加算する。この積をレジスタd1の内
容に加算する。具体的には、レジスタtにはs2とs2
が入っている。レジスタc4の下位ビットにはkとxが
入っている。さらに、レジスタd1にはi*s0+j*
s1+lおよびxが入っている。(レジスタt内の)バ
ンドs2のソース画素に(レジスタc4内の)kを乗
じ、(レジスタt内の)ソース画素s2を(レジスタc
4内の)xで区分乗算する。この積はs2*kおよびs
2*xになる。これらの積をd1の内容に区分加算す
る。その結果のs2*k+s1*j+i*s0+lおよ
びx(ドントケア)がレジスタd1に格納される。これ
を図6Kに示す。
【0051】前述のように、本発明の算術演算は区分化
されている。プロセッサで複数の乗算および加算を同時
に(たとえば1サイクルで)実行することができる。画
素の複数のバンドを同時に乗算することができる。区分
算術演算の結果、本発明のバンド結合機能の実行速度が
速くなる。さらに、他の実施形態では、同じクロック・
サイクルに(同じバンドの)2つの画素に対してSAX
PY演算が実行される。この技法を使用すると、バンド
結合機能のこの演算のパフォーマンスが4倍向上する。
されている。プロセッサで複数の乗算および加算を同時
に(たとえば1サイクルで)実行することができる。画
素の複数のバンドを同時に乗算することができる。区分
算術演算の結果、本発明のバンド結合機能の実行速度が
速くなる。さらに、他の実施形態では、同じクロック・
サイクルに(同じバンドの)2つの画素に対してSAX
PY演算が実行される。この技法を使用すると、バンド
結合機能のこの演算のパフォーマンスが4倍向上する。
【0052】ステップ645で、SAXPY(d0,
t,hi(c4),d0)演算を実行し、これは以下の
演算を表す。 d0=t*hi(c4)+d0 レジスタd0の現在の内容をレジスタtと、レジスタc
4の上位ビットとの積に加算する。この積をレジスタd
0の内容に加算する。具体的には、レジスタtにはs2
とs2が入っている。レジスタc4の上位ビットにはc
とgが入っている。レジスタd0にはa*s0+b*s
1+dとe*s0+f*s1+hが入っている。(レジ
スタt内の)バンドs2のソース画素を(レジスタc4
内の)cで区分乗算し、(レジスタt内の)ソース画素
s2をレジスタc4内のgで乗算する。この積はs2*
cおよびs2*gになる。これらの積をd1の内容に区
分加算する。その結果はc*s2+b*s1+a*s0
+dおよびg*s2+f*s1+e*s0+hであり、
レジスタd0に格納される。これを図6Lに示す。
t,hi(c4),d0)演算を実行し、これは以下の
演算を表す。 d0=t*hi(c4)+d0 レジスタd0の現在の内容をレジスタtと、レジスタc
4の上位ビットとの積に加算する。この積をレジスタd
0の内容に加算する。具体的には、レジスタtにはs2
とs2が入っている。レジスタc4の上位ビットにはc
とgが入っている。レジスタd0にはa*s0+b*s
1+dとe*s0+f*s1+hが入っている。(レジ
スタt内の)バンドs2のソース画素を(レジスタc4
内の)cで区分乗算し、(レジスタt内の)ソース画素
s2をレジスタc4内のgで乗算する。この積はs2*
cおよびs2*gになる。これらの積をd1の内容に区
分加算する。その結果はc*s2+b*s1+a*s0
+dおよびg*s2+f*s1+e*s0+hであり、
レジスタd0に格納される。これを図6Lに示す。
【0053】本発明の算術演算は区分化されている。前
述のような1つのプロセッサで複数の乗算を同時に(た
とえば1サイクルで)実行することができる。複数の加
算も同時に実行することができる。より短い期間により
多くの計算を実行することができるため、区分算術演算
の結果、本発明のバンド結合の実行速度が速くなる。さ
らに、他の実施形態では、同じクロック・サイクルに
(同じバンドの)2つの画素に対してSAXPY演算を
行う。2つの画素を同時に処理することによって、バン
ド結合機能のこの演算のパフォーマンスが4倍向上す
る。
述のような1つのプロセッサで複数の乗算を同時に(た
とえば1サイクルで)実行することができる。複数の加
算も同時に実行することができる。より短い期間により
多くの計算を実行することができるため、区分算術演算
の結果、本発明のバンド結合の実行速度が速くなる。さ
らに、他の実施形態では、同じクロック・サイクルに
(同じバンドの)2つの画素に対してSAXPY演算を
行う。2つの画素を同時に処理することによって、バン
ド結合機能のこの演算のパフォーマンスが4倍向上す
る。
【0054】レジスタd0およびd1内の結果は、前記
の行列式によって説明したのと同じ結果であることに留
意されたい。本発明のバンド結合機能は、区分算術演算
を使用して計算が並列実行されるように計算を構成する
ことによって実行速度を速くする。
の行列式によって説明したのと同じ結果であることに留
意されたい。本発明のバンド結合機能は、区分算術演算
を使用して計算が並列実行されるように計算を構成する
ことによって実行速度を速くする。
【0055】ステップ648では、レジスタd0および
d1に入っている結果を「パック」する。レジスタd0
およびd1には、目的イメージの画素が区分形式で入っ
ている。ステップ648で、区分形式の画素を標準画素
形式に変換する。さらに、行列内の値をスケール・アッ
プしてレジスタに整数形式で格納していることもある。
したがって、これを適切に反映させるために、目的画素
を「スケール・ダウン」する必要がある場合がある。ス
テップ648は、FPU335のグラフィックス状態レ
ジスタ(GSR)を使用して行うことができる。レジス
タd0およびd1の内容には、3つの目的バンドd0、
d1、およびd2の結果が入っている。これらの値を標
準形式で保管し(ステップ651)、たとえばコンピュ
ータ表示メモリに書き込むことができる。
d1に入っている結果を「パック」する。レジスタd0
およびd1には、目的イメージの画素が区分形式で入っ
ている。ステップ648で、区分形式の画素を標準画素
形式に変換する。さらに、行列内の値をスケール・アッ
プしてレジスタに整数形式で格納していることもある。
したがって、これを適切に反映させるために、目的画素
を「スケール・ダウン」する必要がある場合がある。ス
テップ648は、FPU335のグラフィックス状態レ
ジスタ(GSR)を使用して行うことができる。レジス
タd0およびd1の内容には、3つの目的バンドd0、
d1、およびd2の結果が入っている。これらの値を標
準形式で保管し(ステップ651)、たとえばコンピュ
ータ表示メモリに書き込むことができる。
【0056】画像全体のバンド結合機能を完了するため
に、目的画像内の各画素について上記のプロセスを繰り
返す(ステップ606)。次に、ディジタル・システム
に結合されたモニタまたは画面にそれらの画素を表示す
ることができる。画素は、計算を実行しながら画面に表
示することもできる。
に、目的画像内の各画素について上記のプロセスを繰り
返す(ステップ606)。次に、ディジタル・システム
に結合されたモニタまたは画面にそれらの画素を表示す
ることができる。画素は、計算を実行しながら画面に表
示することもできる。
【0057】本発明のバンド結合機能は、プロセッサの
命令をパイプライン化することによっても向上させるこ
とができる。たとえば、バンド結合機能のパフォーマン
スは、区分算術演算を他のコンピュータ演算と共にパイ
プライン化することによってさらに向上させることがで
きる。具体的には、乗算を実行している間に、プロセッ
サは次のクロック・サイクルで加算する他のレジスタの
内容をロードすることができる。
命令をパイプライン化することによっても向上させるこ
とができる。たとえば、バンド結合機能のパフォーマン
スは、区分算術演算を他のコンピュータ演算と共にパイ
プライン化することによってさらに向上させることがで
きる。具体的には、乗算を実行している間に、プロセッ
サは次のクロック・サイクルで加算する他のレジスタの
内容をロードすることができる。
【0058】本発明の好ましい実施形態の以上の説明
は、例示および説明のために示したものである。網羅的
であることを意図したものではなく、本発明を説明した
厳密な態様に限定するものでもなく、上記の教示に鑑み
て多くの変更および変形が可能である。以上の実施形態
は、本発明の原理とその実施態様を最もよく明らかに
し、それによって当業者が本発明を様々な実施態様で、
企図した特定の用途に適合した様々な変更を加えて最も
良く利用することができるようにするために、選定し、
説明したものである。本発明の範囲は本明細書の特許請
求の範囲によって規定されるものである。
は、例示および説明のために示したものである。網羅的
であることを意図したものではなく、本発明を説明した
厳密な態様に限定するものでもなく、上記の教示に鑑み
て多くの変更および変形が可能である。以上の実施形態
は、本発明の原理とその実施態様を最もよく明らかに
し、それによって当業者が本発明を様々な実施態様で、
企図した特定の用途に適合した様々な変更を加えて最も
良く利用することができるようにするために、選定し、
説明したものである。本発明の範囲は本明細書の特許請
求の範囲によって規定されるものである。
【図1】 典型的なコンピュータ・システムを示す図で
ある。
ある。
【図2】 コンピュータ・システムの構成要素とそれら
の相互接続を示す図である。
の相互接続を示す図である。
【図3】 コンピュータ・システムのプロセッサを示す
ブロック図である。
ブロック図である。
【図4】 プロセッサの浮動小数点/グラフィックス・
ユニットを示すブロック図である。
ユニットを示すブロック図である。
【図5】 区分算術の例を示すブロック図である。
【図6】 本発明の技法の流れ図と流れ図の様々なステ
ップの結果を示す図である。
ップの結果を示す図である。
1 コンピュータ・システム 3 モニタ 5 画面 9 キーボード 17 大容量記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レイモンド・ロス アメリカ合衆国 94087 カリフォルニア 州・サニーベール・テンプルトン コー ト・630 (72)発明者 ジェイジブ・プラブハカラン アメリカ合衆国 94086 カリフォルニア 州・サニーベール・ビセント ドライブ・ ナンバー277・1295
Claims (20)
- 【請求項1】 ディジタル・システムにおいて、画像を
変換する方法であって、 画像の画素のバンドを第1の記憶場所の第1の部分に格
納するステップと、 画像の画素のバンドを第1の記憶場所の第2の部分に格
納するステップと、 変換行列の第1の値を第2の記憶場所の第1の部分に格
納するステップと、 変換行列の第2の値を第2の記憶場所の第2の部分に格
納するステップと、 第1の記憶場所の第1の部分と第2の記憶場所の第1の
部分とを乗算して第1の積を求めるステップと、 第1の記憶場所の第2の部分と第2の記憶場所の第2の
部分とを乗算して第2の積を求めるステップとを含む方
法。 - 【請求項2】 第1の部分を乗算するステップと第2の
部分を乗算するステップをディジタル・システムで同時
に実行することを特徴とする請求項1に記載の方法。 - 【請求項3】 第1の積に第1のバイアス値を加算する
ステップと、 第2の積に第2のバイアス値を加算するステップとをさ
らに含む請求項1に記載の方法。 - 【請求項4】 第1の積を加算するステップと第2の積
を加算するステップをと同一のクロック・サイクルで実
行することを特徴とする請求項3に記載の方法。 - 【請求項5】 第1の積を第2の記憶場所の第1の部分
に格納し、第2の積を第2の記憶場所の第2の部分に格
納することを特徴とする請求項1に記載の方法。 - 【請求項6】 nバンドのソース画像をmバンドの目的
画像に変換する方法であって、 コンピュータにおいて、変換行列の値を区分形式に変換
するステップと、 ソース画像画素のバンドを区分形式に変換するステップ
と、 区分形式の変換行列の値に区分形式のソース画像画素の
バンドを乗じて、区分形式の目的画像画素のバンドを得
るステップとを含む方法。 - 【請求項7】 区分形式の目的画像画素のバンドに区分
形式で格納されているバイアス値を加算するステップを
さらに含む請求項6に記載の方法。 - 【請求項8】 目的画像画素のバンドを区分形式化ら画
素形式に変換するステップをさらに含む請求項6に記載
の方法。 - 【請求項9】 表示装置上に目的画像画素のバンドを表
示するステップをさらに含む請求項6に記載の方法。 - 【請求項10】 バンドを変換するステップが、 ソース画像画素の1バンドを複製して記憶場所の第1の
部分と第2の部分とに入れるステップを含むことを特徴
とする請求項6に記載の方法。 - 【請求項11】 乗算ステップ中に、目的画像画素の少
なくとも2つのバンドのための結果を同時に算出するこ
とを特徴とする請求項6に記載の方法。 - 【請求項12】 乗算ステップ中に、コンピュータにお
いて複数の乗算を並行して実行することを特徴とする請
求項6に記載の方法。 - 【請求項13】 加算ステップ中に、コンピュータにお
いて複数の加算を並行して実行することを特徴とする請
求項7に記載の方法。 - 【請求項14】 変換行列の値を整数形式に変換するス
テップをさらに含む請求項3に記載の方法。 - 【請求項15】 値を変換するステップが、 変換行列の値に2nの倍数を乗じて値の整数形式表現を
求めるステップと、 整数形式表現を区分形式でコンピュータに格納するステ
ップとを含むことを特徴とする請求項6に記載の方法。 - 【請求項16】 nバンドのソース画像からmバンドの
目的画像への変換を行わせるコンピュータ可読コードを
記録したコンピュータ使用可能媒体を有するコンピュー
タ・プログラム製品であって、 コンピュータに変換行列の値を区分形式に変換させるよ
うに構成されたコンピュータ可読コードと、 コンピュータにソース画像画素を区分形式に変換させる
ように構成されたコンピュータ可読コードと、 コンピュータに区分形式の変換行列の値と区分形式のソ
ース画像画素とを乗算させ、その結果として区分形式の
目的画像画素を得るように構成されたコンピュータ可読
コードとを含むコンピュータ・プログラム製品。 - 【請求項17】 コンピュータに変換行列の値を整数形
式に変換させるように構成されたコンピュータ可読コー
ドをさらに含む請求項16に記載のコンピュータ・プロ
グラム製品。 - 【請求項18】 コンピュータに区分形式で格納されて
いるバイアス値を区分形式の目的画像画素に加算させる
ように構成されたコンピュータ可読コードをさらに含む
請求項16に記載のコンピュータ・プログラム製品。 - 【請求項19】 コンピュータに複数の乗算の計算を並
行して実行させるように構成されたコンピュータ可読コ
ードをさらに含む請求項16に記載のコンピュータ・プ
ログラム製品。 - 【請求項20】 コンピュータにソース画像画素の1つ
を複製して記憶場所の第1の部分と第2の部分とに入れ
させるように構成されたコンピュータ可読コードをさら
に含む請求項16に記載のコンピュータ・プログラム製
品。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/563,059 US5933160A (en) | 1995-11-27 | 1995-11-27 | High-performance band combine function |
| US08/563059 | 1995-11-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09288722A true JPH09288722A (ja) | 1997-11-04 |
Family
ID=24248941
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8330229A Pending JPH09288722A (ja) | 1995-11-27 | 1996-11-27 | 高性能バンド結合機能 |
Country Status (3)
| Country | Link |
|---|---|
| US (3) | US5933160A (ja) |
| EP (1) | EP0800140A1 (ja) |
| JP (1) | JPH09288722A (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
| US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
| US6247116B1 (en) | 1998-04-30 | 2001-06-12 | Intel Corporation | Conversion from packed floating point data to packed 16-bit integer data in different architectural registers |
| US6292815B1 (en) * | 1998-04-30 | 2001-09-18 | Intel Corporation | Data conversion between floating point packed format and integer scalar format |
| US6282554B1 (en) | 1998-04-30 | 2001-08-28 | Intel Corporation | Method and apparatus for floating point operations and format conversion operations |
| US6266769B1 (en) | 1998-04-30 | 2001-07-24 | Intel Corporation | Conversion between packed floating point data and packed 32-bit integer data in different architectural registers |
| US6263426B1 (en) | 1998-04-30 | 2001-07-17 | Intel Corporation | Conversion from packed floating point data to packed 8-bit integer data in different architectural registers |
| US6973469B1 (en) * | 2001-02-01 | 2005-12-06 | Advanced Micro Devices, Inc. | Two-dimensional discrete cosine transform using SIMD instructions |
| US7426749B2 (en) * | 2004-01-20 | 2008-09-16 | International Business Machines Corporation | Distributed computation in untrusted computing environments using distractive computational units |
| JP6078923B2 (ja) * | 2011-10-14 | 2017-02-15 | パナソニックIpマネジメント株式会社 | 転置演算装置とその集積回路、および転置処理方法 |
| GB2542902B (en) * | 2015-08-03 | 2020-02-05 | Advanced Risc Mach Ltd | Data processing systems |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5185856A (en) * | 1990-03-16 | 1993-02-09 | Hewlett-Packard Company | Arithmetic and logic processing unit for computer graphics system |
| US5195050A (en) * | 1990-08-20 | 1993-03-16 | Eastman Kodak Company | Single chip, mode switchable, matrix multiplier and convolver suitable for color image processing |
| US5268995A (en) * | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
| WO1993011500A1 (en) * | 1991-11-27 | 1993-06-10 | Seiko Epson Corporation | Pixel modification unit |
| US5394349A (en) * | 1992-07-10 | 1995-02-28 | Xing Technology Corporation | Fast inverse discrete transform using subwords for decompression of information |
| DE4225775C2 (de) * | 1992-08-04 | 2002-09-19 | Heraeus Electro Nite Int | Anordnung zum kontinuierlichen Überwachen der Konzentration von NO in Gasgemischen |
| US5311459A (en) * | 1992-09-17 | 1994-05-10 | Eastman Kodak Company | Selectively configurable integrated circuit device for performing multiple digital signal processing functions |
| KR0128244B1 (ko) * | 1992-09-23 | 1998-04-02 | 배순훈 | 병렬 구조를 갖는 부호 화상 데이타의 복호 장치 |
| US5815646A (en) * | 1993-04-13 | 1998-09-29 | C-Cube Microsystems | Decompression processor for video applications |
| JPH07143488A (ja) * | 1993-11-19 | 1995-06-02 | Fujitsu Ltd | 画像データ復号化方法および装置 |
| US5734874A (en) * | 1994-04-29 | 1998-03-31 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
| US5768429A (en) * | 1995-11-27 | 1998-06-16 | Sun Microsystems, Inc. | Apparatus and method for accelerating digital video decompression by performing operations in parallel |
-
1995
- 1995-11-27 US US08/563,059 patent/US5933160A/en not_active Expired - Lifetime
-
1996
- 1996-11-26 EP EP96308542A patent/EP0800140A1/en not_active Withdrawn
- 1996-11-27 JP JP8330229A patent/JPH09288722A/ja active Pending
-
1999
- 1999-04-09 US US09/289,783 patent/US6067099A/en not_active Expired - Fee Related
-
2000
- 2000-05-23 US US09/577,229 patent/US6538657B1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5933160A (en) | 1999-08-03 |
| EP0800140A1 (en) | 1997-10-08 |
| US6538657B1 (en) | 2003-03-25 |
| US6067099A (en) | 2000-05-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Ebeling et al. | Mapping applications to the RaPiD configurable architecture | |
| Guttag et al. | A single-chip multiprocessor for multimedia: The MVP | |
| Kohn et al. | The visual instruction set (VIS) in UltraSPARC | |
| US7085795B2 (en) | Apparatus and method for efficient filtering and convolution of content data | |
| US7724261B2 (en) | Processor having a compare extension of an instruction set architecture | |
| US5651121A (en) | Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand | |
| JP3750820B2 (ja) | パック・データの乗加算演算を実行する装置 | |
| US20030126176A1 (en) | Apparatus and method for inverting a 4x4 matrix | |
| US6211892B1 (en) | System and method for performing an intra-add operation | |
| WO2019023046A1 (en) | ACCELERATED MATHEMATICAL MOTOR | |
| US8037119B1 (en) | Multipurpose functional unit with single-precision and double-precision operations | |
| EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
| GB2376310A (en) | Floating point arithmetic and dot product pipeline operations | |
| US6426746B2 (en) | Optimization for 3-D graphic transformation using SIMD computations | |
| JPH09288722A (ja) | 高性能バンド結合機能 | |
| US7640285B1 (en) | Multipurpose arithmetic functional unit | |
| Bensaali et al. | Accelerating matrix product on reconfigurable hardware for image processing applications | |
| EP0790581A2 (en) | Method for alpha blending images utilizing a visual instruction set | |
| US8190669B1 (en) | Multipurpose arithmetic functional unit | |
| US6778188B2 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
| CN108139886A (zh) | 用于图像处理器的多功能执行通道 | |
| Shahbahrami et al. | Matrix register file and extended subwords: two techniques for embedded media processors | |
| US5815164A (en) | Image rescaling in a parallel processor | |
| EP0790577A2 (en) | Operations on images | |
| EP0485833A2 (en) | A method for executing graphics color saturating arithmetic instructions in a data processor |