JPH09288725A - 画像演算 - Google Patents

画像演算

Info

Publication number
JPH09288725A
JPH09288725A JP8330228A JP33022896A JPH09288725A JP H09288725 A JPH09288725 A JP H09288725A JP 8330228 A JP8330228 A JP 8330228A JP 33022896 A JP33022896 A JP 33022896A JP H09288725 A JPH09288725 A JP H09288725A
Authority
JP
Japan
Prior art keywords
computer
pixel
readable code
pixel data
image
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
Application number
JP8330228A
Other languages
English (en)
Inventor
Amandeep Jabbi
アマンディープ・ジャッビ
Stephen K Howell
スチーブン・ケイ・ハウェル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09288725A publication Critical patent/JPH09288725A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00—General purpose image data processing
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00—General purpose image data processing
    • G06T1/20—Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 並列環境において、演算の並列化を最大限に
する特別に開発された命令セットを使用して画像演算を
実施する。 【解決手段】 グラフィックス・データ区分加算および
乗算命令によって、グラフィックス実行ユニットのいく
つかの処理サブユニットを使用して、グラフィックス・
データの複数のワードの同時並列の加算または乗算を可
能にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディジタル画像の
操作に関する。具体的には、本発明は色成分またはモノ
クローム成分を有するディジタル画像に対して行うこと
ができる演算に係わる。
【0002】著作権表示 本特特許文書の開示の一部には著作権保護の対象となる
題材が含まれている。著作権保有者は特許商標庁の特許
ファイルまたは記録に記載された厳密にそのままの形で
の何人による本特許文書または特許開示の電子写真複製
に対しても異議を持たないが、それ以外のものについて
はいかなる著作権もすべて保有する。
【0003】付属文書 付属文書Aは、サン・マイクロシステムズ社によって開
発されたUltraSPARC−Iスーパースカラー・
プロセッサの「ビジュアル命令セット・ユーザーズ・ガ
イド」の準備原稿の(1995年10月4日)の複写で
ある。
【0004】関連出願 本発明は、1994年4月29日出願のヴァン・フック
等による「A Central Processing
Unit with IntegratedGrap
hics Functions」という名称の米国特許
出願第08/236572号および1995年3月3日
出願のチャン・グォー・ジョウ等による「Color
Format Conversion in a Pa
rallel Processor」という名称の米国
特許出願第08/ 号に関連し、その両方の全
体が参照により事実上、本明細書に組み込まれる。
【0005】
【従来の技術】たとえばコンピュータ表示画面やテレビ
ジョン上などでのビデオ画像の操作、記憶、および表示
を行うために、コンピュータ・システムを使用すること
がますます多くなっている。このような画像は、いくつ
かの個別の画素で形成され、各画素に関連づけられた色
成分を有することが多い。色成分は、「バンド」とも呼
ばれ、一般に赤、緑、および青の階調を表す。4番目、
すなわちアルファ・バンドも各画素に関連づけることが
できる。各色バンドはいくつかの階調度を有することが
でき、それによって、きわめて鮮明な画像の表示と操作
を行うことができる。その他の用途でも、4つより多い
か少ないバンドを必要とするか、またはより高い解像度
要件に対応するために異なる成分を有するバンドを必要
とすることがある。
【0006】いくつかの応用分野では、これらの画像の
操作を必要とする。画像処理で使用される多くの中間演
算は、複数のソース画像に基づいて出力画像を生成する
必要がある。このような中間ステップを必要とする演算
の一例は、X線画像処理である。ある種のX線画像処理
応用分野では、グリッド画像をX線画像と組み合わせて
画像上に重ね合わされるグリッドを生成する必要があ
る。他の一般的な応用分野では、1つの領域内のすべて
の黒色画素を白色画素に置き換えて、たとえばある画像
の領域内の骨の構造を強調する必要がある。他の応用分
野では、既知の色成分を有する第2の画像を使用してソ
ース画像を強調する場合がある。その他の多くの応用分
野でも、新しい画像を生成するために入力画像の同様の
操作を必要とする。
【0007】これらの各演算は、残念ながら大量のデー
タを必要とするために多数のコンピュータ命令サイクル
を必要とする。その結果、このような画像操作の既存の
手法は、特別なグラフィックス・ハードウェアを使用
し、それによって既存のコンピュータ・システムのコス
トと複雑さが増す。従来の汎用マイクロプロセッサのみ
を使用して複雑な画像操作を効率的に行うことはできな
い。
【0008】この問題は高度の画像解像度と精度を維持
する必要のために複雑化している。既存のシステムのパ
フォーマンスは、画素値が範囲内に収まらなくなる場合
に補正のために画素スケーリング演算を行う必要がある
ことによって影響を受ける。たとえば8ビット画素バン
ドの場合、バンド情報は0から255までの任意の値を
有することができる。ある種の画素演算、たとえば加算
または乗算の結果が、255より大きいバンド値または
0より小さいバンド値になることがある。それにはバン
ド値のスケーリングが必要である。現在のシステムは、
この機能をソフトウェアで実行し、それによって処理速
度が低下する。
【0009】
【発明が解決しようとする課題】したがって、中央演算
処理装置と適切に構成されたソフトウェアとを使用して
画像操作を行うことができるシステムを提供することが
望ましい。追加の特殊目的ハードウェア構成要素を使用
する必要はない。
【0010】
【課題を解決するための手段】本発明は、グラフィック
画像データに対する演算を行う高速でコスト効果の高い
手法を提供する。画像演算は、並列処理環境で演算の並
列化を最小限にする特別に開発された命令セットを使用
して実施される。グラフィックス・データの区分加算命
令および区分乗算命令によって、グラフィックス実行ユ
ニットのいくつかの処理サブユニットを使用してグラフ
ィックス・データの複数のワードの同時加算または乗算
を並列して行うことができる。
【0011】まず画像内の画素データを位置合わせする
ことによって、ソース画像を処理して目的画像を生成す
ることができる。次に個々のソース画素に対して演算を
行って個々の目的画素を生成する。実行することができ
る演算としては、算術演算と論理演算がある。加算、減
算、または乗算などの算術演算を行う場合は、まずソー
ス画素データを、たとえば1バンド当たり8ビットから
1バンド当たり16ビットに拡張する。次に拡張された
画素データに対して算術演算を行って拡張結果を出す。
この拡張結果をクリッピングし、元の長さ(たとえば1
バンド当たり8ビット)にスケール・ダウンする。本発
明の特定の一実施態様では、拡張、算術演算、クリッピ
ングおよびスケーリングをパイプライン・プロセッサの
グラフィクス実行ユニットで行う。グラフィックス実行
ユニットは2つの並列区分実行経路を持つことができ
る。その結果、画像処理を以前のシステムよりもはるか
に迅速に実行することができる。
【0012】
【発明の実施の形態】本発明の性質および利点をよりよ
く理解することができるように、以下の説明は添付図面
と共に参照されたい。
【0013】図1を参照すると、本発明の画像演算を実
行するために使用することができるグラフィックス・コ
ンピュータ・システムで使用する中央演算処理部10の
特定の一実施形態を示すブロック図が図示されている。
中央演算処理部(またはCPU)10は、図のように互
いに結合されたプリフェッチおよびディスパッチ・ユニ
ット(PDU)12、命令キャッシュ14、整数実行ユ
ニット(IEU)16、整数レジスタ・ファイル18、
浮動小数点ユニット(FPU)20、浮動小数点レジス
タ・ファイル22、およびグラフィックス実行ユニット
(GRU)24を含むことができる。さらにCPU10
は、2つのメモリ管理ユニット(IMMUおよびDMM
U)26a〜26bと、ロードおよびストア・ユニット
(LSU)28を含み、ロードおよびストア・ユニット
28はさらにデータ・キャッシュ30を含み、図のよう
に相互および前記の各要素と結合されている。CPU1
0の各構成要素が組み合わさって、グラフィックス命令
を含む命令の実行結果のフェッチ、ディスパッチ、実
行、および保管をパイプライン方式で行う。
【0014】PDU12は、メモリから命令をフェッチ
し、その命令をIEU16、FPU20、GRU24、
およびLSU28にしかるべくディスパッチする。プリ
フェッチされた命令は命令キャッシュ14に格納され
る。LEU16、FPU20、およびGRU24はそれ
ぞれ、整数演算、浮動小数点演算、およびグラフィック
ス演算を行う。一般に、整数演算/結果は整数レジスタ
・ファイル18に格納され、浮動小数点およびグラフィ
ックス命令/結果は浮動小数点レジスタ・ファイル22
に格納される。さらに、IEU16はいくつかのグラフ
ィックス演算も行い、LSU28のロード/ストア命令
のアドレスにアドレス空間識別子(ASI)を付加し
て、アクセスするアドレス空間を識別する。LSU28
はすべてのロードおよびストア命令のためにアドレスを
生成する。LSU28は、グラフィックス・データのた
めに特に作成されたいくつかのロードおよびストア動作
もサポートする。メモリ参照は仮想アドレスで行われ
る。MMU26a〜26bは、仮想アドレスを物理アド
レスにマッピングする。
【0015】PDU12、IEU16、FPU20、整
数および浮動小数点レジスタ・ファイル18および2
2、MMU26a〜26b、およびLSU28は、米国
特許出願第08/236572号('572号出願)で
詳述されているようにいくつかの構成のうちのいずれか
の構成で互いに結合することができる。'572号出願
で詳述されているように、グラフィックス実行ユニット
24は、加算/減算および乗算またはパッキング演算の
並列実行を可能にする2つの別々の並列実行経路に区分
化される。
【0016】画像処理アプリケーションは、しばしば1
つまたは複数のソース画像を操作して目的画像を生成す
る。1つの入力ソース画像をユーザ定義配列と組み合わ
せて目的イメージを生成する場合もある。本発明による
システムは、ソース画像とユーザ定義配列の両方を操作
することができる。図2に、本発明の概念を使用して操
作することができる1対のソース画像50、52を図示
する。各画像は、いくつかの行58a〜58j、60a
〜60jに整列されたいくつかの画素54a〜54x
x、56a〜56xxを含む。各画素54、56は、各
バンドが1つの色成分たとえばアルファ(A)、緑
(G)、青(B)、または赤(R)を表す、1つまたは
複数のバンドを有するように定義される。当業者なら、
他の色も表現することができることと、他のバンド数も
使用することができことがわかるであろう。これらのバ
ンドは、たとえば1ビット、8ビット、または16ビッ
トのデータで表すことができる。したがって、たとえば
1つの画素54の色は最大4バイトまたは8バイトのデ
ータで定義することができる。アプリケーションは、し
ばしば2つのソース画像50、52を何らかの方法で組
み合わせて目的画像62を形成する必要がある。たとえ
ば、画像50の各画素および色成分を、画像52の対応
する画素および色成分に加算したり乗算したり、または
それらの画素および色成分から減算したりすることがで
きる。いくつかの行66a〜66jに配列されたいくつ
かの画素64a〜64xxを有する目的画像62を生成
するために、その他の演算も実行することができる。本
発明の実施形態は、前述のCPU10と適切に構成され
たコンピュータ・ソフトウェアを使用してこのような演
算を実行することができる。追加または特殊目的のハー
ドウェア構成要素は不要である。
【0017】次に図3を参照すると、本発明の技法によ
って入力画像50、52を操作して目的画像62を生成
する基本手順を示す流れ図70が図示されている。本発
明の機能によって、このような操作をパイプライン方式
で行うことができる。一般に、本発明はステップ72で
演算が要求されるとこのような操作を行う。要求される
演算としては、1つまたは複数のソース画像に対する算
術演算(たとえば加算、減算、乗算、除算)または論理
演算(たとえばXOR、AND、MAX、MIN)など
がある。演算が要求されると、ステップ74でソース画
像と目的画像を定義する。これには、たとえば画像の場
所とサイズ、画像内の画素数、各画素内のバンド数など
の定義が含まれる。画像のサイズが決まると、すべての
走査線が処理されるまで走査線データの処理を繰り返す
(ステップ76)。画像内にまだ走査すべき走査線があ
る場合は、ステップ78で、走査するデータを位置合わ
せして演算が継続される。一般に、位置合わせによっ
て、ソース画像50、52と目的画像62のデータが確
実に位置合わせされる。特定の一実施形態では、データ
は8バイト境界に位置合わせされる。
【0018】適切に位置合わせされると、ステップ80
でソース・データをマスキングして、所望の数のバンド
が収容されるようにするか、または可能なバンドの中か
ら選択する。このマスキングは、たとえば事前定義済み
のマスク・テーブルを使用する。マスク・データの例を
表1に示す。表1には、1〜4バンド8ビット画像の1
〜4バンドを処理するマスク・テーブルが図示されてい
る(テーブルに図示されている数字は、プレフィクス
「0x」が示すように16進数形式である)。これらの
テーブルは、たとえば目的画像にいくつかの選択された
バンドのみが必要な場合などに、適切な位置合わせを行
われるようにするのに役立つ。様々な画素バンド数が収
まるように様々なマスクを選択することができる。1〜
4バンド16ビット画像の1〜4バンドまたはその他の
画素形式を処理するために、他のマスク・テーブルも使
用することができる。
【0019】 バンド1 バンド2 バンド3 バンド4 0x00000000 0x00000000 0x00000000 0x00000000 0x00ffffff 0x00555555 0x00924924 0x00111111 0x00000000 0x00aaaaaa 0x00249249 0x00222222 0x00ffffff 0x00ffffff 0x00b6db6d 0x00333333 0x00000000 0x00000000 0x00492492 0x00444444 0x00ffffff 0x00555555 0x00db6db6 0x00555555 0x00000000 0x00aaaaaa 0x006db6db 0x00666666 0x00ffffff 0x00ffffff 0x00ffffff 0x00777777 0x00000000 0x00000000 0x00000000 0x00888888 0x00ffffff 0x00555555 0x00924924 0x00999999 0x00000000 0x00aaaaaa 0x00249249 0x00aaaaaa 0x00ffffff 0x00ffffff 0x00b6db6d 0x00bbbbbb 0x00000000 0x00000000 0x00492492 0x00ccccccc 0x00ffffff 0x00555555 0x00db6db6 0x00ddddddd 0x00000000 0x00aaaaaa 0x006db6db 0x00eeeeeee 0x00ffffff 0x00ffffff 0x00ffffff 0x00fffffff 表1
【0020】マスク・データを選択し、各ソース画像お
よび目的画像内のデータを位置合わせした後は、画像デ
ータは操作する形式になっている。ステップ82で、要
求された演算を実行する。様々な演算例の詳細について
は以下で詳述する。現行走査線上のすべての画素データ
が処理されるまで要求された演算が繰り返される(ステ
ップ84)。画像の各走査線が処理されるまでこの手順
が繰り返される(ステップ76)。最終結果は、1つま
たは複数のソース画像の関数である目的画像である。目
的画像は、たとえばさらに操作するためにメモリに記憶
される。
【0021】以下に、ステップ72〜84の一実施形態
について詳細に説明する。ステップ72で、たとえばグ
ラフィックス算術または論理演算子の使用を指定するこ
とによって、算術演算または論理演算が要求される。特
定の一実施形態では、グラフィックス演算子は8ビット
または16ビット形式で指定することができる。8ビッ
ト形式は、8ビットのデータで形成されたバンドを有す
る画素データを処理するために使用することができる。
同様に、16ビット形式は、16ビットのデータで形成
されたバンドを有する画素データを処理するために使用
することができる。ステップ72でグラフィックス画像
演算が要求されたと判断された後、ステップ74で操作
する画像が定義される。
【0022】本発明の特定の一実施形態では、定義する
一次画像は目的画像62である。具体的には、目的画像
62は、画像の左上の画素の場所と、画像内のバンド数
と、画像の幅と、画像62内の行数とを決定することに
よって定義することができる。ステップ74でソース画
像50、52の左上の画素の場所も定義することができ
る。ソース画像50、52と目的画像62の左上画素の
場所を決定することによって、画像の操作の始点が定ま
る。当業者なら、画像を定義するその他の手法もとるこ
とができることを理解されよう。
【0023】ソース画像50、52の個々の画素に対す
る演算は目的画像62の各走査線に沿って順次に行うこ
とができる。したがって、目的画像62のすべての走査
線が操作されるまで演算を繰り返す。各走査線について
いくつかの演算が行われる。新しい走査線を処理する場
合は、ステップ78でデータが位置合わせされる。本発
明の特定の一実施形態では、すべてのデータが8バイト
に位置合わせされる。これによって、ソース50、52
および目的62画像データを含むすべての画像データが
確実に位置合わせされる。たとえば特定の1つのバンド
のみを処理する場合や、目的画像62をたとえば赤と緑
のバンドのみで形成する場合などのマスクを使用するこ
とができる。これらのバンド選択と演算は、一実施形態
では前述のように事前定義したマスク・テーブルを使用
して行うことができる。
【0024】次に、選択された演算82を行う。本発明
の特定の一実施形態では、選択された演算として加算、
減算、または乗算などの算術演算を行うことができる
(ステップ82)。このような算術演算に含まれるステ
ップを図4の流れ図に図示する。算術演算を行う前に、
ソース画像50、52の画素データを拡張する(ステッ
プ90)。特定のアプリケーションにおいて画素情報が
8ビット無符号形式で記憶されている場合(すなわち画
素の各バンドが8ビットで定義される場合)、各バンド
を16ビット符号付き形式に拡張する。この場合、4バ
ンド画素の拡張されたバンド情報を1つの64ビット幅
レジスタで表すことができる。画素情報が16ビット符
号付き形式で記憶されている場合は、各バンドを32ビ
ットの結果に拡張することができる。すなわち、4バン
ド画素の拡張されたバンド情報を2つの64ビット幅レ
ジスタに格納することができる。次に、拡張されたバン
ド・データを、区分加算、区分減算、または区分乗算を
使用して加算、減算、または乗算する(ステップ9
2)。
【0025】ステップ92およびステップ94の実施の
詳細を図5A〜図5Cに示す。図5Aには、処理サブユ
ニット104に結合されたレジスタ100、102が図
示されている。処理サブユニット104は、たとえば図
1に図示されている特定のCPUに関連して前述したグ
ラフィックス実行ユニット24に組み込むことができ
る。処理サブユニット104の出力はレジスタ106に
結合する。一実施形態では、レジスタ100、102の
長さはそれぞれ64ビットであり、それぞれ4つの16
ビット固定小数点セグメント100A〜100D、10
2A〜102Dに区分化する。これらのセグメントのそ
れぞれを使用して、画素のバンドを表す拡張データを格
納する。たとえば、セグメント100A〜100Dに
は、ソース画像50の画素のA、G、B、およびRバン
ドを表す拡張データを格納し、セグメント102A〜1
02Dには、ソース画像52の画素のA、G、B、およ
びRバンドを表す拡張データを格納する。処理サブユニ
ット104A〜104Dは(選択された演算に応じて)
加算モードまたは減算モードで動作し、レジスタ100
と102のデータを同時に並列して加算または減算す
る。選択された演算の結果は、処理サブユニット104
A〜Dの出力にそれぞれ結合されたレジスタ106のそ
れぞれの区分セグメント106A〜106Dに格納され
る。レジスタ106はレジスタ100、102に関して
前述のように区分化されている。
【0026】同様に、図5Bに示すように、処理サブユ
ニット120A〜120Dに結合されたレジスタ116
A〜116Dおよび118A〜118Dに拡張画素情報
を格納することによって、画素データの乗算を行うこと
ができる。結果は区分レジスタ122に格納される。上
記および'572号出願に記載されているように、乗算
と加算演算はグラフィックス実行ユニット24の並列実
行経路で並列して実行することができる。
【0027】レジスタ100内の第1のソース画像50
からの画素バンド情報とレジスタ102内の第2のソー
ス画像からの情報を格納し、処理サブユニット104A
〜104Dを1命令サイクルの間加算モードまたは減算
モードで動作させることによって、画素演算全体を1つ
の命令サイクルで実行することができる。さらに、処理
サブユニット120A〜120Dで並列乗算も実行する
ことができる。16ビット・データを使用して画素バン
ド情報を表す場合に用いる他の実施形態では、レジスタ
100、102、106、116、および118をそれ
ぞれ使用して、画素の各バンドを表す拡張32ビット・
データ・ストリングを格納する。この実施形態では、画
素情報の4つのバンドを処理する1画素演算について2
命令サイクルが必要になる。
【0028】加算、減算、または乗算演算を完了するに
は、各バンドについて新しい値(レジスタ106または
122に格納されている)を元の形式(たとえば1バン
ド当たり8ビットまたは16ビット)にパックしなけれ
ばならない。本発明の特定の一実施形態では、これは図
5Cに示す処理サブユニット112A〜112Dを使用
して行う。これらの処理サブユニット112A〜112
Dも図1のグラフィックス実行ユニット24に組み込ま
れている。このパック演算は、一般にレジスタ106ま
たは112から拡張データ形式を取り、そのデータのス
ケーリングとクリッピングを行って元のバンド形式にす
る。元の形式が8ビット・バンドの形式であり、レジス
タ区分106A〜106Dまたは112A〜112Dが
それぞれ16ビットの固定小数点データを保持する場
合、0と255の間の数になるようにバンド情報のスケ
ーリングとクリッピングを行わなければならない。前述
のグラフィックス実行ユニット24は、区分パック演算
を使用して1つの命令サイクルで4つの16ビット固定
小数点数のスケーリングとクリッピングを行って4つの
8ビット無符号整数にすることができる。
【0029】区分パック演算では、処理サブユニット1
12A〜112Dが、’572号明細書で詳述する処理
サブユニット106A〜106Dのそれぞれの入力に結
合されているスケール・ファクタ・レジスタ110に格
納されているスケール・ファクタに従って16ビット固
定小数点データをスケーリングする。やはりパック・モ
ードでは、処理サブユニット106A〜106Dがスケ
ーリングされたデータを0〜255の範囲の値(8ビッ
ト・バンド形式の場合)にクリッピングする。すなわ
ち、最低で最小値、最高で最大値を表すようにクリッピ
ングする。処理サブユニット112A〜112Dのスケ
ーリングとクリッピングの結果は、レジスタ114の8
ビット・セグメント114A〜114Dにそれぞれ格納
される。したがって、画素のアルファ、緑、青、および
赤の各バンドを表す8ビット無符号整数が生成される。
この画素は目的画像62の一部であり、ソース画像50
および52の画素から形成されたものである。同様に、
バンド情報を16ビット形式で表すパック演算も行うこ
とができる。
【0030】グラフィックス実行ユニットによって行わ
れるその他の区分演算としては、1サイクルで実行され
る区分加算、区分減算、データ位置合わせ、マージ、拡
張演算および論理演算と、3サイクルで実行される区分
乗算、比較、パック、および画素距離演算がある。これ
らの区分演算については、本明細書に付属文書Aとして
添付されているサン・マイクロシステムズ社の出版準備
資料である「ビジュアル命令セット・ユーザーズ・ガイ
ド」で詳述されている。ソース画像データに対して論理
命令(たとえばMIN、MAX、AND、XORなど)
を図3のステップ82で1命令サイクルで実行すること
ができる。
【0031】一般にグラフィックス画像操作は以前のシ
ステムより最高3回速く実行することができることが実
験でわかっている。一実施形態では、画像演算(算術演
算および論理演算を含む)を毎秒5,500万画素演算
の速度で実行することができる。これは、図1を参照し
ながら説明した並列処理ユニットの使用によって達成す
ることができる。前述のように、CPU10は4つの別
々の処理ユニット、すなわちLSU28、LEU16、
FPU20、およびGRU24を含む。これらの処理ユ
ニットのそれぞれが並列して動作し、それぞれがそれぞ
れの命令を同時に実行することができる。GRU24は
前述の区分乗算、区分加算、および区分パック演算を実
行する。GRU24は2つの別々の実行経路を有し、2
つの命令を同時に実行することができる。GRU24は
区分加算演算を実行しながら同時に区分乗算または区分
パック演算を実行することができる。前述の様々な画像
演算をパイプライン化することによって、画像に対する
操作と演算のパフォーマンスが大幅に向上する。
【0032】当業者ならわかるように、本発明は、本発
明の精神または本質的特徴から逸脱することなく他の特
定の形式で実施することもできる。たとえば、特定のコ
ンピュータ・アーキテクチャについて説明したが、本発
明は並列命令実行に対応する他のアーキテクチャを使用
して実施することもできる。さらに、本発明の技法を使
用して異なる画素形式および長さも操作することができ
る。したがって、本発明の開示は例示的なものであって
特許請求の範囲に記載されている本発明の範囲を限定す
るものではない。
【図面の簡単な説明】
【図1】 本発明の様々な実施形態に対応することがで
きる例示的グラフィックス・コンピュータ・システムの
CPUを示すブロック図である。
【図2】 本発明の機能を使用して操作するための画素
ベースの画像を表した図である。
【図3】 図2のシステムなどのグラフィックス・シス
テムにおいて画像を処理するための、本発明による手順
を示す流れ図である。
【図4】 図3の手順と共に実行する算術演算を示す流
れ図である。
【図5】 図1のシステムなどのグラフィックス・シス
テムを使用する算術画像演算手順を示すブロック図であ
る。
【符号の説明】
10 中央演算処理部 12 プリフェッチおよびディスパッチ・ユニット 14 命令キャッシュ 16 整数実行ユニット 18 整数レジスタ・ファイル 20 浮動小数点ユニット 22 浮動小数点レジスタ・ファイル 24 グラフィックス実行ユニット 26 メモリ管理ユニット 28 ロードおよびストア・ユニット 30 データ・キャッシュ 104 処理サブユニット 106 レジスタ 110 スケール・ファクタ・レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スチーブン・ケイ・ハウェル アメリカ合衆国 95051 カリフォルニア 州・サンタ クララ・リッジ ロード・ 711

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 第1の複数の画素データから形成された
    第1のソース画像と、第2の複数の画素データから形成
    された第2のソース画像とに対して選択された演算を行
    って複数の目的画素データで形成された目的画像を生成
    する方法であって、 それぞれが少なくとも第1の組のバンド・データを有す
    る複数の目的画素のその画素単位による高さと幅を含む
    前記目的画像のサイズを決定するステップと、 前記第1および第2の複数の画素データを前記目的画素
    データと位置合わせするステップと、 前記第1および第2の複数の画素データのそれぞれに対
    して前記選択された演算を順次に行って前記複数の目的
    画素データを生成するステップとを含む方法。
  2. 【請求項2】 前記選択された演算が算術演算であり、
    前記選択された演算を順次実行する前記ステップが、 前記第1および第2の複数の画素データのそれぞれを第
    1の長さから拡張された長さに拡張するステップと、 前記第1および第2の複数の画素データに対して前記算
    術演算を実行して拡張結果を生成するステップと、 前記拡張された結果をパックして前記第1の長さを有す
    る目的画素を生成するステップをさらに含むことを特徴
    とする請求項1に記載の方法。
  3. 【請求項3】 前記拡張結果をパックする前記ステップ
    が、 前記拡張結果をスケーリングするステップと、 最低で最小値と最高で最大値を表すように前記拡張結果
    をクリッピングするステップとを含むことを特徴とする
    請求項2に記載の方法。
  4. 【請求項4】 前記第1の長さが、4バンド画素で1画
    素当たり32ビットであり、前記拡張された長さが、4
    バンド画素で1画素当たり64ビットであり、前記最小
    値および最大値がそれぞれ0および255であることを
    特徴とする請求項3に記載の方法。
  5. 【請求項5】 前記算術演算が加算であることを特徴と
    する請求項2に記載の方法。
  6. 【請求項6】 前記算術演算が乗算であることを特徴と
    する請求項2に記載の方法。
  7. 【請求項7】 前記算術演算が減算であることを特徴と
    する請求項2に記載の方法。
  8. 【請求項8】 前記選択された演算が論理演算であるこ
    とを特徴とする請求項1に記載の方法。
  9. 【請求項9】 前記第1の長さが、4バンド画素で1画
    素当たり64ビットであり、前記拡張された長さが、4
    バンド画素で1画素当たり128ビットであることを特
    徴とする請求項2に記載の方法。
  10. 【請求項10】 第1の複数の画素を有する第1のソー
    ス画像と第2の複数の画素を有する第2のソース画像と
    に対して選択された演算を実行して複数の目的画素を有
    する目的画像が形成するように記録されたコンピュータ
    可読コードを有するコンピュータ使用可能媒体を有する
    コンピュータ・プログラム製品であって、前記目的画素
    はそれぞれが少なくとも第1の組のバンド・データを有
    し、 コンピュータに前記目的画像のサイズを決定させるよう
    に構成されたコンピュータ可読コードと、 コンピュータに前記第1および第2の複数の画素データ
    のそれぞれの画像データを前記複数の目的画素データに
    位置合わせさせるように構成されたコンピュータ可読コ
    ードと、 コンピュータに前記第1および第2の複数の画素データ
    のそれぞれに対して前記選択された演算を順次に実行さ
    せて前記複数の目的画素データを生成するように構成さ
    れたコンピュータ可読コードとを備えるコンピュータ・
    プログラム製品。
  11. 【請求項11】 前記選択された演算が算術演算である
    ことを特徴とし、コンピュータ・プログラム製品が、 コンピュータに前記第1および第2の複数の画素データ
    のそれぞれの画素データを第1の長さから拡張された長
    さに拡張させるように構成されたコンピュータ可読コー
    ドと、 コンピュータに前記第1および第2の複数の画素データ
    に対して前記算術演算を行わせて拡張結果を生成させる
    ように構成されたコンピュータ可読コードと、 コンピュータに前記拡張結果をパックして前記第1の長
    さを有する目的画素を生成させるように構成されたコン
    ピュータ可読コード機構とをさらに含む請求項10に記
    載のコンピュータ・プログラム製品。
  12. 【請求項12】 コンピュータに前記拡張結果をパック
    させるように構成された前記コンピュータ可読コード機
    構が、 コンピュータに前記拡張結果をスケーリングさせるよう
    に構成されたコンピュータ可読コード機構と、 コンピュータに最低で最小値と最高で最大値を表すよう
    に前記拡張結果をクリッピングさせるよう構成されたコ
    ンピュータ可読コード機構とをさらに含むことを特徴と
    する請求項11に記載のコンピュータ・プログラム製
    品。
  13. 【請求項13】 前記算術演算が加算であることを特徴
    とし、コンピュータ・プログラム製品が、 コンピュータに前記加算を区分形式で行わせるように構
    成されたコンピュータ可読コード機構をさらに含む請求
    項11に記載のコンピュータ・プログラム製品。
  14. 【請求項14】 前記算術演算が乗算であることを特徴
    とし、コンピュータ・プログラム製品が、 コンピュータに前記乗算を区分形式で行わせるように構
    成されたコンピュータ可読コード機構をさらに含む請求
    項12に記載のコンピュータ・プログラム製品。
  15. 【請求項15】 前記算術演算が減算であることを特徴
    とし、コンピュータ・プログラム製品が、 コンピュータに前記減算を区分形式で行わせるように構
    成されたコンピュータ可読コード機構をさらに含む請求
    項12に記載のコンピュータ・プログラム製品。
  16. 【請求項16】 ディジタル・システムにおいて、第1
    および第2のソース画像を操作して目的画像を形成する
    方法であって、 (a)前記第1のソース画像の第1の画素のバンドを表
    す第1の情報を取り出すステップと、 (b)前記第2のソース画像の第2の画素のバンドを表
    す第2の情報を取り出すステップと、 (c)前記第1と第2の情報を前記目的画像に位置合わ
    せするステップと、 (d)前記第1と第2の情報を第1の長さから拡張され
    た長さに拡張するステップと、 (e)前記第1と第2の拡張された情報に対して区分算
    術演算を行って拡張結果を生成するステップと、 (f)前記拡張結果をパックして前記第1の長さを有す
    る目的画素を生成するステップとを含む方法。
  17. 【請求項17】 前記目的画像内の画素数を計算するス
    テップと、 前記画素数に達するまで前記ステップ(a)〜(f)を
    繰り返すステップとをさらに含む請求項16に記載の方
    法。
JP8330228A 1995-11-27 1996-11-27 画像演算 Pending JPH09288725A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/563,089 US5801719A (en) 1995-11-27 1995-11-27 Microprocessor with graphics capability for masking, aligning and expanding pixel bands
US08/563089 1995-11-27

Publications (1)

Publication Number Publication Date
JPH09288725A true JPH09288725A (ja) 1997-11-04

Family

ID=24249068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8330228A Pending JPH09288725A (ja) 1995-11-27 1996-11-27 画像演算

Country Status (4)

Country Link
US (1) US5801719A (ja)
EP (1) EP0790577A3 (ja)
JP (1) JPH09288725A (ja)
KR (1) KR970029176A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
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
KR100384834B1 (ko) 2001-03-30 2003-05-23 주식회사 하이닉스반도체 다중 기판 상에 형성되는 반도체 장치 및 그 제조 방법
US7558948B2 (en) 2004-09-20 2009-07-07 International Business Machines Corporation Method for providing zero overhead looping using carry chain masking
US20070216696A1 (en) * 2006-03-16 2007-09-20 Toshiba (Australia) Pty. Limited System and method for document rendering employing bit-band instructions
US20090091564A1 (en) * 2007-10-03 2009-04-09 Raju Thevan System and method for rendering electronic documents having overlapping primitives
US9497380B1 (en) 2013-02-15 2016-11-15 Red.Com, Inc. Dense field imaging

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905045A (en) * 1973-06-29 1975-09-09 Control Data Corp Apparatus for image processing
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
US5054097A (en) * 1988-11-23 1991-10-01 Schlumberger Technologies, Inc. Methods and apparatus for alignment of images
AU7689891A (en) * 1990-04-11 1991-10-30 Washington University Method and apparatus for creating a single composite image of a plurality of separate radiographic images
US5268995A (en) * 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
GB9224952D0 (en) * 1992-11-28 1993-01-20 Ibm Improvements in image processing
US5606677A (en) * 1992-11-30 1997-02-25 Texas Instruments Incorporated Packed word pair multiply operation forming output including most significant bits of product and other bits of one input
US5557759A (en) * 1995-06-07 1996-09-17 International Business Machines Corporation Video processor with non-stalling interrupt service

Also Published As

Publication number Publication date
KR970029176A (ko) 1997-06-26
EP0790577A2 (en) 1997-08-20
EP0790577A3 (en) 1998-02-04
US5801719A (en) 1998-09-01

Similar Documents

Publication Publication Date Title
US5081698A (en) Method and apparatus for graphics display data manipulation
US6954204B2 (en) Programmable graphics system and method using flexible, high-precision data formats
EP0730386B1 (en) Color format conversion in a parallel processor
US5867145A (en) Graphical image recasting
US5268995A (en) Method for executing graphics Z-compare and pixel merge instructions in a data processor
JP4366387B2 (ja) 画像処理装置及び方法
US7659909B1 (en) Arithmetic logic unit temporary registers
TWI272537B (en) Method and apparatus for compressing and decompressing instructions in a computer system
US6211892B1 (en) System and method for performing an intra-add operation
US7710427B1 (en) Arithmetic logic unit and method for processing data in a graphics pipeline
KR101956197B1 (ko) 그래픽 처리 유닛을 이용한 데이터 처리 방법 및 장치
US5872729A (en) Accumulation buffer method and apparatus for graphical image processing
JP2009140487A (ja) 変換方法、変換システムおよびコンピュータ読み取り可能な記憶媒体
US20010020945A1 (en) Optimization for 3-d graphic transformation using simd computations
US5767867A (en) Method for alpha blending images utilizing a visual instruction set
US7103621B2 (en) Processor efficient transformation and lighting implementation for three dimensional graphics utilizing scaled conversion instructions
US5801719A (en) Microprocessor with graphics capability for masking, aligning and expanding pixel bands
JPH1049665A (ja) 画像処理装置および方法
JPH09288722A (ja) 高性能バンド結合機能
JPH09259268A (ja) データストリームのブロックストップフィルタリング処理方法及びブロックストップフィルタリング処理を実行するコンピュータプログラムを記録した媒体
EP0817160A2 (en) Storage format conversion of computer graphics
US5815164A (en) Image rescaling in a parallel processor
US7652673B1 (en) Texture mapping method and apparatus for computer implemented graphical image processing
US5627966A (en) Method for simulating the parallel processing of video data
US11798129B1 (en) Image scaler