JPH1027241A - デジタル画像のテーブル・ルックアップ変換のための方法および装置 - Google Patents

デジタル画像のテーブル・ルックアップ変換のための方法および装置

Info

Publication number
JPH1027241A
JPH1027241A JP8353404A JP35340496A JPH1027241A JP H1027241 A JPH1027241 A JP H1027241A JP 8353404 A JP8353404 A JP 8353404A JP 35340496 A JP35340496 A JP 35340496A JP H1027241 A JPH1027241 A JP H1027241A
Authority
JP
Japan
Prior art keywords
register
lookup
double
destination
source
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
JP8353404A
Other languages
English (en)
Inventor
Peter Farkas
ピーター・ファーカス
Stephen K Howell
ステファン・ケイ.・ハウエル
Daniel S Rice
ダニエル・エス.・ライス
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 JPH1027241A publication Critical patent/JPH1027241A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

(57)【要約】 【課題】 プロセッサーにおいて、ルックアップテーブ
ルを用いて、複数のソース画素を含むソース画像をテー
ブルルックアップ変換して複数のデスティネーション画
素を含むデスティネーション画像を生成する方法を提供
する。 【解決手段】 本発明の方法は、複数のソース画素の各
々が有する各値に関して、ルックアップ結果を生成する
ステップを備える。このルックアップ結果は、複数のデ
スティネーション画素中の対応するデスティネーション
画素における値を示す。本発明の方法は、更に、プロセ
ッサーに備えられた複数のグラフィックス・レジスタに
複数のルックアップ結果をロードするステップと、複数
のグラフィックス・レジスタ内の複数のルックアップ結
果をプロセッサー内の蓄積レジスタ内に蓄積するステッ
プと、を備える。更に、蓄積レジスタをデスティネーシ
ョン画像に格納するステップを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像処理技術に関
する。更に詳しくは、本発明は、デジタルプロセッサー
を用いて、デジタル画像のテーブルルックアップ変換を
行うための改良された方法及び装置に関する。
【0002】
【従来の技術】テーブルルックアップは、ソース画像を
デスティネーション画像にマッピングするために用いら
れる有用な画像処理手法である。テーブルルックアップ
変換においては、ソース画像のソース画素値はルックア
ップテーブルで処理されて、デスティネーション画像に
おける対応する画素値が生成される。例えば、ソース画
像がテーブルルックアップ手法で処理されて、より暗い
デスティネーション画像を生成することができる。ま
た、別の例として、ソース画像内の画素値が圧力を示す
ものであれば、ルックアップテーブルを用いて、これら
の画素値をコンピュータディスプレイ画面上の表示のた
めの色強度値にマッピングすることができる。
【0003】図1は、ソース画像をデスティネーション
画像に変換する簡単なテーブルルックアップ処理の過程
を示す。コンピュータメモリに記憶されている画像であ
るソース画像102は、ルックアップテーブル104を
用いて処理されて、デスティネーション画像106が生
成される。ここでは、図示の簡略化のために、ソース画
像102を、単純な6×6画像、即ち、36個の独立し
たソース画素からなる画像、としているが、実際には、
どのようなサイズのソース画像でも、テーブルルックア
ップの手法を用いて変換することができる。
【0004】この例では、各ソース画素108は、単一
の値を有しているが、この値は、例えば、コンピュータ
のディスプレイ画面上に表示される際のその画素のグレ
ースケール(階調)レベルを表すものである。例えば、
図1のソース画素108は、57の値を有するものとし
て示されている。図1の例では、ソース画像102に含
まれる各画素がたった一つの値しか持たないため、ソー
ス画像102は、1バンド画像と呼ばれる。しかし、2
以上の値(例えば、カラー画素の赤、緑、青を示す3つ
の値)で一つの画素を表すようにすることもできる。ソ
ース画素108に含まれる各値がコンピュータメモり内
において8ビットで表されていれば、ソース画像102
は8ビット画像となる。また、より少ないビット数ある
いはより多いビット数、例えば、16ビット、で画素を
表して、異なる範囲の値を許容するようにしてもよい。
【0005】テーブル104は、望ましくは、2n個の
エントリーを有し、ここで、nはソース画素108に含
まれる各値を表すためのビット数を示す。図1の例で
は、8ビットなので、テーブル104は、28個、即
ち、256個のエントリーを有する。テーブルルックア
ップ変換を行うためには、ソース画像102に含まれる
各ソース画素108の値をテーブル104に通過させ
て、デスティネーション画像106に含まれる画素、例
えば、デスティネーション画素110、の対応する値を
導出する。
【0006】図1の例では、ソース画素108に含まれ
る値がテーブル104に対する指数として用いられる。
例えば、ソース画素108の値57は、テーブルルック
アップ処理において、デスティネーション画素110の
対応する値を見つけるために、テーブル104の57番
目のデータを参照させる。図1の例では、例えば、この
値は15である。ソース画素108とデスティネーショ
ン画素110は、必ずしも同じビット数で表される必要
はない。実際に、例えば、8ビットのソース画素を16
ビットのデスティネーション画素に変換したり、あるい
は、これとは逆にしたりする場合もある。
【0007】図2は、多バンドのソース画像、即ち、画
素が2以上の値を有するソース画像を処理するためのテ
ーブルルックアップ変換の工程を示す。この例では、ソ
ース画像202に含まれる各ソース画素208が、3つ
の値、即ち、3つのバンド212、214、216を有
する。ここで用いられるテーブル204は、3つのバン
ドを含む3バンドテーブルである。図2に示すように、
テーブル222はテーブル204のバンド1を、テーブ
ル224はテーブル204のバンド2を、また、テーブ
ル226はテーブル204のバンド3を表している。ソ
ース画素208に含まれる各バンド値が8ビットのデー
タであると仮定すると、各テーブル222、224及び
226は、28個、即ち、256個のエントリーを有す
る。
【0008】テーブルルックアップ変換を行うために
は、デスティネーション画素210に含まれる対応する
バンド値を導出するために、ソース画素208の各バン
ドがテーブル204の関係するバンドテーブルで処理さ
れる。例えば、ソース画素208のバンド212の値5
2が、テーブル204の対応するバンド1、即ちテーブ
ル222で処理されて、デスティネーション画素210
のバンド240に格納されるべき値73が導出される。
同様に、デスティネーション画素210のバンド242
における値14は、テーブル204のバンド2、即ちテ
ーブル224を用いて、ソース画素208のバンド21
4の値60から導出される。
【0009】図1の例と同様に、ソース画素208の各
バンドにおける整数値は、テーブルの対応するバンドに
対する指数として用いられる。ここで、ソース画素20
8とデスティネーション画素210とが、異なった数の
バンドを有するようにしてもよい。例えば、ソース画素
208が3つのバンドを有し、一方、デスティネーショ
ン画素が5つのバンドを有するようにしてもよい。
【0010】図3は、図1のテーブルルックアップ処理
の詳細を示す。図3では、ソース画素の値は、整数レジ
スタ302にロードされる。整数レジスタ302に格納
された値は、ルックアップテーブルから値を選択して整
数レジスタ304に選択された値をロードするために使
用される。その後、整数レジスタの値がデスティネーシ
ョン画像106に格納される。
【0011】効率を高めるために、2以上のソース画素
の値を同時に整数レジスタ302にロードするようにし
てもよい。これらの値は、周知の論理演算により、整数
レジスタから取り出される。また、ルックアップテーブ
ル104から選択された2以上の値を、デスティネーシ
ョン画像106に格納する前に、整数レジスタ304に
蓄積するようにしてもよい。
【0012】図4は、従来のテーブルルックアップ処理
の工程を示すフローチャートである。図4はステップ3
50から始まる。ステップ352では、この方法は、ル
ックアップテーブル、例えば、図3のルックアップテー
ブル104を用いて処理すべきソースデータ、即ち、ソ
ース画像に含まれる画素値あるいはバンド値が、他に存
在するかどうかを判定する。ソースデータが存在しない
場合には、この方法はステップ354に進み、図4の処
理を終了する。
【0013】一方、処理すべきソースデータが他に存在
すると判定されれば、この方法はステップ356に進
み、そのソースデータが整数レジスタ、例えば、図3の
レジスタ302にロードされる。通常、一時に一つの画
素がロードされる。その画素が2以上のバンド、例え
ば、図2の例のように3つのバンドを有している場合に
は、ステップ356で、全てのバンド値を一緒に整数レ
ジスタにロードするようにしてもよい。但し、上述した
ように、処理効率を高めるために、2以上の画素を同時
に整数レジスタにロードするようにしてもよい。例え
ば、(図1及び図3の例のように)ソース画像が8ビッ
トの1バンド画像である場合には、ステップ356にお
いて、最大4個までの画素値を同時に整数レジスタにロ
ードすることができる。
【0014】ステップ358では、ステップ356で同
時にロードされた複数の画素/バンド値を分離するため
に論理演算が実行される。ここで、1つの「画素/バン
ド値」とは、画素が一つのバンドしか持たない場合には
画素値を、また、画素が2以上のバンドを持つ場合には
個々のバンド値を表す。例えば、ステップ356で4個
の画素値が同時に整数レジスタにロードされた場合に
は、シフト演算とAND演算を行い、次段のテーブルル
ックアップ処理のために画素値を分離する。このような
論理演算は当業者に周知のものである。
【0015】各ソース画素/バンド値に対しては、ルッ
クアップテーブルから対応するデスティネーション値が
得られる。このルックアップ結果は、ステップ360に
おいて一つあるいは複数の整数レジスタに格納される。
ステップ362では、シフト演算とOR演算等の論理演算
を行い、ステップ360で複数の整数レジスタに格納さ
れた多数のルックアップ結果を、蓄積整数レジスタ、例
えば、図3の整数レジスタ304に可能な限り蓄積す
る。複数のルックアップ結果を一つの蓄積整数レジスタ
に蓄積することにより、次段のステップ364で実行さ
れる格納処理の数を減らすことができる。
【0016】ステップ364では、これらの整数レジス
タが、デスティネーション画像内の対応する位置に書き
込む。その後、この方法はステップ352に戻り、処理
すべきソースデータが他にも存在するかどうかを判定す
る。
【0017】当業者に周知のように、(それぞれ、ステ
ップ362、ステップ364で実行される)ロード処理
と格納処理は、通常、テーブルルックアップ変換処理の
中でも時間のかかるステップである。そのため、これら
のステップを最適化することができれば、結果として、
ルックアップ変換の効率を更に高めることができる。ル
ックアップテーブルからのルックアップ値をデスティネ
ーション画像に書き込む前に、レジスタに蓄積すること
により、効率を高めることができる。
【0018】
【発明が解決しようとする課題】従来の方法では、整数
レジスタは、ルックアップ結果を蓄積するために、ルッ
クアップ処理後のステップ(図4のステップ362及び
ステップ364)で用いられている。このようにルック
アップ後のステップで整数レジスタを用いると、ある種
のプロセッサーにおいて整数回路部の処理速度が浮動小
数点回路部等の他の回路の処理速度よりも遅いので、テ
ーブルルックアップ処理全体のスループット(処理能
力)を低下させる。
【0019】上述のように、テーブルルックアップ処理
を最適化する改良された方法及び装置が必要とされてい
る。この改良された方法及び装置では、プロセッサー内
の処理速度の高い回路部を利用することにより、処理効
率を高めるようにすることが望ましい。
【0020】
【課題を解決するための手段】本発明は、プロセッサー
において、ルックアップテーブルを用いて、複数のソー
ス画素を含むソース画像にテーブルルックアップ変換を
実行して、複数のデスティネーション画素を含むデステ
ィネーション画像を生成する方法に関する。この方法
は、複数のソース画素の各々が有する各値に対してルッ
クアップ結果を得るステップを備える。このルックアッ
プ結果は、複数のデスティネーション画素中の対応する
デスティネーション画素における値を表す。この方法
は、更に、プロセッサーに備えられた複数のグラフィッ
クス・レジスタに複数のルックアップ結果をロードする
ステップと、複数のグラフィックス・レジスタにロード
された複数のルックアップ結果をプロセッサーに備えら
れた蓄積レジスタ内に蓄積するステップと、を備える。
また、更に、蓄積レジスタをデスティネーション画像に
格納するステップを備える。
【0021】他の実施例においては、本発明は、テーブ
ルルックアップ変換を実行するためのプログラム命令を
含むコンピュータ読み取り可能な媒体に関する。テーブ
ルルックアップ変換は、ルックアップテーブルを用い
て、複数のソース画素を含むソース画像に対して実行さ
れ、複数のデスティネーション画素を含むデスティネー
ション画像を生成する。これらの命令は、複数のソース
画素における各値に対して、複数のデスティネーション
画素中の対応するデスティネーション画素に格納される
値を示すルックアップ結果を得る命令を含む。更に、プ
ロセッサー内の複数のグラフィックス・レジスタに複数
のルックアップ結果をロードし、複数のグラフィックス
・レジスタにロードされた複数のルックアップ結果をプ
ロセッサー内の蓄積レジスタ内に蓄積する命令を含む。
また、更に、蓄積レジスタをデスティネーション画像に
格納する命令も含む。
【0022】
【発明の実施の形態】図1は、ソース画像をデスティネ
ーション画像に変換する簡単なテーブルルックアップ処
理の過程を示す。図2は、多バンドのソース画像、即
ち、画素が2以上の値を有するソース画像のためのテー
ブルルックアップ処理の工程を示す。図3は、図1のソ
ース画像に対するテーブルルックアップ処理の詳細を示
す。図4は、従来のテーブルルックアップ処理の工程を
示すフローチャートである。
【0023】図5は、本発明の一実施例に従うテーブル
ルックアップ動作を示す概略図である。図5には、ソー
ス画像502が示されている。ソース画像502内の画
素値はルックアップテーブル504で処理されて、デス
ティネーション画像506が生成される。図示の簡略化
のために、ソース画像502並びにデスティネーション
画像506を単純な6×4画像(即ち、24画素)と仮
定している。しかし、どのようなサイズのソース画像及
びデスティネーション画像にも、本発明の方法を同様に
適用することができる。
【0024】ソース画像502内には、ソース画素51
0、512、514、516が含まれている。ソース画
像502内の各ソース画素は、3つのバンドを有し、各
バンドが8ビットのデータを表している(即ち、ソース
画像502は、8ビットの3バンド画像である)。ソー
ス画像502内の可能な限り多くのバンド値を1つの整
数レジスタにロードして、ロード動作の回数を最小にす
ることが好ましい。一実施例では、最大4個までのバン
ド値(8ビット×4、即ち、32ビット)が、32ビッ
トの整数レジスタ518にロードされる。他の実施例で
は、ソース画像502からの最大8個までのバンド値が
同時に64ビット長の整数レジスタ520にロードされ
る。プロセッサーがより長い整数レジスタをサポートす
る場合には、ソース画像502内のバンド値が、より長
い整数レジスタにロードされるようにしてもよい。
【0025】ソース画素をロードする時には、典型的に
は、ソース画素が一行ずつロードされる。しかし、本発
明は、ソース画像を他の方法でロードする(例えば、一
列ずつロードする)場合でも、同様に、好適に適用され
る。
【0026】しかし、上述したように、実行されるロー
ド動作の回数を最小にするために、各ロード動作の間に
可能な限り多くのソースデータを整数レジスタにロード
することが望ましい。あるロード動作が、画素の一部分
しかロードしない場合には(例えば、3バンドのうち2
バンドのみ)、次のロードサイクルで残りの部分をロー
ドしてもよいし、あるいは、その画素全体を再ロードし
てもよい。
【0027】例えば、ソース画像502の各ソース画素
は、3つのバンド値しか持たないが、ロード動作は、3
2ビットの整数レジスタ518を満たすために4つのバ
ンド値をロードする。これらの4つのバンド値は、図5
の例では値57、15、9、及び3であり、これらは画
素510及び隣接画素512の一つのバンドを表す。次
のロード動作は、ソース画素512の値23から開始す
ることができ、この場合には、前回のロード動作で32
ビットの整数レジスタ518にロードされた値3は、再
ロードする必要がないように、一時的にどこかの変数に
保存することができる。あるいは、次の画素のバンド1
からロードを開始してもよく、即ち、次のサイクルのロ
ード動作で値3を再ロードするようにしてもよい。
【0028】ソース画像502のバンド値を32ビット
の整数レジスタ518にロードした場合でも、64ビッ
トの長い整数レジスタ520にロードした場合でも、あ
るいは、より長い整数レジスタにロードした場合でも、
レジスタ内のバンド値は、画素/バンド値を分離するた
めに論理演算で処理される。例えば、長い整数レジスタ
520内の値57、15、9は、これらの値を分離して
整数レジスタ522、524、526に格納するため
に、シフトされ、適当なビットパターンを用いてAND
演算される。既述したように、これらの画素/バンド値
を分離する際の論理演算は、当業者に周知である。
【0029】整数レジスタ522、524、526内の
バンド値は、ルックアップテーブル504によって(ル
ックアップテーブルの適切なバンドで)処理されてルッ
クアップ結果が生成される。次に、これらのルックアッ
プ結果は、ダブルレジスタ530、532、534にロ
ードされる。ここでは、ルックアップ結果を格納して、
それらを蓄積するレジスタとしてダブルレジスタを用い
たが、適当な場合には、浮動レジスタを用いてもよい。
ダブルレジスタと浮動レジスタは、UltraSparc(商標)
プロセッサー等のいくつかのプロセッサーでは重なって
いるため、本発明においては、浮動レジスタとダブルレ
ジスタは相互に交換可能に用いることができる。前述し
たように、ルックアップ処理後のステップでより高速な
回路部、この場合には浮動小数点回路部、を利用可能な
ことが、本発明の主要な利点の一つである。
【0030】ルックアップテーブル504からダブルレ
ジスタ530、532、534へのルックアップ結果の
ロードは、32ビットの浮動レジスタに32ビット未満
のルックアップ結果(図5の例では、8ビットのルック
アップ結果)をロードすることを含み得ることに注意す
べきである。後で詳述するように、本発明では、32ビ
ットの浮動レジスタ、64ビットのダブルレジスタ、あ
るいは、より長いレジスタへの任意の1バイトあるいは
ショート(2バイト)のロードを容易にするために、シ
ョートロード処理が好適に利用される。
【0031】一実施例においては、サン・マイクロシス
テムズ社により製造されるVIS(商標)命令セットに
備えられたショートロード命令が、このショートロード
処理を実行するために利用される。UltraSparc(商標)
プロセッサーと、VIS命令セットに含まれる関係する
インストラクション(命令)に関しては、ここで簡単に
説明するが、その詳細は、TimothyJ.Van Hook、Lesli
e Dean Kohn、RobertYungにより1994年4月29日
に出願された米国特許出願08/236,572号「集
積グラフィックス機能を有する中央処理装置」(’57
2出願)及びカリフォルニア州メンロパークのスパーク
・インターナショナル社から入手可能なThe SPARC Arch
itecture Manual Ver.9(1994) に記載されており、これ
らは本発明に参考文献として組み込まれる。
【0032】ルックアップ結果は、ダブルレジスタ53
0、532、534から、64ビットのダブルレジスタ
540に蓄積される。ルックアップ結果が64ビットの
ダブルレジスタ540に蓄積されると、ロード動作が実
行されて、これらのルックアップ結果をデスティネーシ
ョン画像506内の対応する画素/バンド値に格納す
る。このデスティネーション画像は、例えば、コンピュ
ータメモリ、フレームバッファー等に存在し得る。ここ
でもまた、これらの蓄積及び格納処理は、プロセッサー
上の高速な浮動小数点回路部を利用して、処理時間を最
小にしている。
【0033】デスティネーション画像506への格納動
作を実行する前に、64ビットのダブルレジスタ540
を満たすために必要なだけ、ロードとルックアップ処理
とを実行するようにしてもよい。本発明では、ソース画
素値が読み込まれる整数レジスタ、例えば、32ビット
の整数レジスタ518よりも大きな容量を持つ蓄積レジ
スタ、例えば、64ビットのダブルレジスタ540を用
いていることに注意すること。本実施例で、64ビット
レジスタへの1回の格納動作に対して複数回のロード及
びルックアップ処理が行われるということは、ソース画
像502のテーブルルックアップ変換を実行する場合に
必要となる格納動作の回数が従来技術よりも少ないとい
うことを意味している。
【0034】更に、ダブルレジスタ540は、従来技術
で用いられている32ビットの整数蓄積レジスタ、例え
ば、図3の整数レジスタ304よりもかなり大きな容量
を持っている。このため、ルックアップ結果をデスティ
ネーション画像に格納するために実行される格納動作の
総回数も減らすことができる。
【0035】本発明においては、レジスタ530、53
4、534及び蓄積レジスタ540は、浮動小数点値で
はなくビットパターンを格納するために利用される。言
いかえると、本発明は、浮動レジスタ及びダブルレジス
タを、あたかもグラフィックス・レジスタであるかのよ
うに用いている。UltraSparcプロセッサーを用いた例で
は、グラフィックス・レジスタは、浮動/ダブルレジス
タにより実現されていることに注意すること。他のシス
テムの場合には、他の32ビット、64ビットあるいは
それより大容量のレジスタを利用して、実行される格納
動作の回数を最小にするようにしてもよい。更に重要な
ことは、これらのレジスタが、整数部、即ち、従来技術
でルックアップ結果のロードと蓄積に用いられていた部
分、よりも高速のプロセッサー部分に存在する場合に
は、より高い効率が達成される。
【0036】既述したように、ルックアップ結果の蓄積
は、複数の浮動/ダブルレジスタから一つの蓄積浮動/
ダブルレジスタ内にルックアップ結果を集めるために、
原則として、シフト演算及びOR演算等の論理演算を必要
とする。本発明の好適な実施例では、この論理演算をエ
ミュレートするために、レジスタデータ抽出・配置(RD
EA)処理が用いられる。この実施例の他の態様は、VI
S命令セット内の命令、例えば、Alignaddr、Faligndat
a、Fpmerge等を用いて、このレジスタデータ抽出・配置
(RDEA)処理を実現する。
【0037】図6は、本発明の一実施例においてテーブ
ルルックアップ変換を実行する際の工程を示すフローチ
ャートである。図6はステップ600で開始される。ス
テップ602では、この方法は、処理すべきソースデー
タが他に存在するかどうかを調べる。ソースデータが存
在しない場合には、ステップ603に進み、図6の処理
を終了する。一方、テーブルルックアップで処理すべき
ソースデータが他に存在するときには、ステップ604
に進み、整数レジスタにソースデータがロードされる。
図5で説明したように、ソース画素値をロードするため
に用いられる整数レジスタは、容量の大きな整数レジス
タが望ましい(容量が大きければ大きいほど、ロード動
作の回数を減らすことができて好適である)。更に、ス
テップ604の整数レジスタは、ロード動作の間にでき
るだけ多くのソース画素値で満たされることが望まし
い。
【0038】この方法はステップ604からステップ6
06に進んでシフト演算及びAND演算等の周知の論理
演算を利用して画素/バンド値を分離し、これによっ
て、画素/バンド値を別個の整数レジスタにロードする
ことができ、ルックアップテーブルを用いた実際のルッ
クアップを行い易くなるようにする。ソース画素が複数
のバンドを持つ場合には、ステップ606で、バンド値
が分離される。
【0039】次のステップ608では、ステップ606
で確認された画素/バンド値を用いて、テーブルの対応
するバンドから対応する値がルップアップされる。図5
の例では、整数レジスタ522、524、526内のバ
ンド値が、ルックアップテーブル504の適切なバンド
から、対応する値63、92、11に変換される
【0040】ステップ608では、これらのルックアッ
プ結果が、浮動/ダブルレジスタあるいはそれより容量
の大きなレジスタにロードされる。例えば、プログラマ
ーは、通常、ステップ608において、C言語、C++言
語、あるいは、その他のプログラミング言語を用いて、
これらのルックアップ結果が浮動/ダブル変数にロード
されるように指定する。そして、これらのルックアップ
結果の浮動/ダブルレジスタへのロードがコンパイラに
よって指定される。ステップ608における浮動/ダブ
ルレジスタへのルックアップ結果のロードは、本発明の
主要な利点の一つであり、これは、例えば、前述したUl
traSparc(商標)プロセッサー等のプロセッサーでは、
浮動小数点回路部が整数回路部に比べてずっと高速だか
らである。
【0041】ステップ612では、デスティネーション
画像への格納を容易にするために、(ステップ608
で)浮動/ダブルレジスタにロードされた値が、蓄積浮
動/ダブルレジスタ(あるいは、充分処理速度が高く、
且つ、プロセッサーにサポートされている、より容量の
大きなレジスタ)に蓄積する。一実施例では、ステップ
612において、64ビットのダブルレジスタが用いら
れる。上述したように、この方法では、ステップ612
において蓄積レジスタが満たされるまで、(ステップ6
04の)ロード動作と(ステップ606、608、61
0の)ルックアップ動作を多数回実行するようにしても
よい。
【0042】浮動/ダブルレジスタ等の蓄積レジスタ内
の値は、ステップ614においてデスティネーション画
像に書き込まれる。一実施例では、この発明の方法は、
格納用の浮動/ダブル蓄積レジスタを満たすために、い
くつのビットをロードすることが必要かを監視する。蓄
積浮動/ダブルレジスタが満たされた後に、ロード/ル
ックアップ動作による余分なビットが発生している場合
には、他のレジスタにその余分な残りのビットを蓄積し
て、次回の格納動作で格納されるようにする。このよう
な処理の詳細は周知であり、当業者はこの開示から容易
に理解可能であろう。ステップ614から、この方法は
ステップ602に戻り、処理すべきソースデータが他に
存在するかどうかを判定する。
【0043】ルックアップ結果が32ビット未満で表さ
れる場合には、この発明は、一実施例において、浮動小
数点レジスタあるいはダブルレジスタへのショートビッ
トパターン(これはルックアップテーブルからのルック
アップ値を表す)のロードを行い易くするために、ショ
ートロード処理を利用する。
【0044】ソース画像が複数のバンドを有している場
合には、この発明は、その一実施例において、バンドの
いくつかをマスクする能力を提供する。例えば、3バン
ドのソース画像から3バンドのデスティネーション画像
へのルックアップ処理は、第2のバンドをマスクして、
すなわち、デスティネーション画像の第2のバンドの値
が変化しないように、実行することができる。
【0045】このような特徴は、部分格納処理を使用す
ることにより達成できる。1つの特定の実施例では、こ
の部分格納処理は、VIS部分格納命令(STDFA) を使用
実現される。VIS部分格納命令を利用して図6のステ
ップ614を実現する例を図7(A)に示す。
【0046】この命令のクラスは、蓄積レジスタからど
のバイトをデスティネーション画像に格納すべきかを示
す情報を含むマスク値を指定することができる。VIS
部分格納命令の詳細に関しては、例えば、図12〜18
を参照されたい。この処理は、例えば、画像における一
行の画素の大部分が処理された後に、まだデスティネー
ション画像に格納すべきバイトあるいはワードがいくつ
か残っている場合等の、他の状況にも同様に適用可能で
あることに注意すること。このような場合には、この部
分格納処理は、レジスタ容量未満のデータをメモリに格
納するために使用される。
【0047】図7(B)は、この実施例において、図6
のローディングステップ608を実現するための簡単な
フローチャートである。図7(B)において、図6のロ
ーディングステップ608はステップ702に示されて
おり、これはさらに、ショートロード処理を利用して、
浮動/ダブルレジスタへのルックアップ結果のロードを
促進するステップを含んでいる。
【0048】前述したショートロード処理は、例えば、
VISショートロード命令Iddaによって実現される。但
し、VIS命令の使用は、ショートロード処理を実現す
る一つの方法に過ぎないことを心に留めておくべきであ
る。VISショートロード命令の詳細に関しては、図1
2〜18を参照されたい。
【0049】当業者に周知のように、図12〜18のV
ISショートロード命令は、ルックアップテーブルが1
6ビットの場合に、異なったビット数(例えば、16ビ
ット)がロードされ得るように指定するために使用する
ことができる。
【0050】VISショートロード命令を用いることに
よって、対象となるバイト、即ち、ロードされるべきバ
イトが、メモリ内でアラインメントされていなくてもよ
い。例えば、対象となるバイトが、メモリ内で(8で除
算可能なように)ダブルにアラインメント(整列)され
ている必要はない。ショートロード処理の使用は、対象
となる任意のバイトあるいはワードを、直接、適当な浮
動/ダブルレジスタにロードすることが可能である。こ
れとは対照的に、従来技術では、ダブルにアラインメン
トされたメモリ位置からデータのロードを開始して、必
要なシフト演算及び論理演算を実行し、ロード前に対象
となるデータを分離していた。従って、ロード動作は、
本発明の下で、より効率的になる。
【0051】同様に、図12〜18のVISショート格
納命令は、ダブルにアラインメントされていないメモリ
アドレスに、バイトあるいはワードを格納することがで
きる。このようなショート格納命令の使用は、デスティ
ネーション画像に格納すべきバイトあるいはワードが残
っている場合に特に有用である。
【0052】ルックアップ結果の値を格納している浮動
/ダブルレジスタは、格納動作(図6のステップ61
2)の回数を低減するために、蓄積レジスタに蓄積され
る。従来技術においては、この蓄積動作は、複数の整数
レジスタにシフト演算及びOR演算を行って一つの整数
レジスタへ格納することによって行われていた。本発明
は、また、一実施例において、より高速の浮動小数点回
路部と浮動/ダブルレジスタを用いてではあるが、シフ
ト演算とOR演算をエミュレートすることによって、蓄
積することができる。本発明は、複数の浮動/ダブルレ
ジスタから一つの蓄積浮動/ダブルレジスタへの蓄積を
行う際に、シフト演算及びOR演算をエミュレートする
ためにアラインメント処理をうまく利用している。
【0053】特に望ましい実施例として、VISのalig
naddr 命令及びfaligndata命令が、前述のレジスタデー
タ抽出・再配置処理を実行するために使用される。代表
的なVIS関連のレジスタデータ抽出・再配置処理は、
1)VISのalignaddr 命令を用いて、オフセットを指
定する、2)VISのfaligndata命令を用いて、2つの
浮動/ダブルレジスタを連結し、指定されたオフセット
から始まる連結ストリングから浮動/ダブルレジスタの
結果を抽出する。
【0054】図8に示す実施例では、以下に示すよう
に、alignaddr 及びfaligndata命令が、可変開始点、即
ち、関係するダブルレジスタに依存して、得られるデー
タビットパターンが変化するような連結ストリングの開
始点とともに使用される。
【0055】例1:可変開始点を利用したalignaddr 命
令及びfaligndata命令の使用
【0056】各バンドが8ビットで表される3バンドソ
ース画像を仮定する。画素のバンド値は連続的にメモリ
に格納される。以下に示す例では、記号*は、「関係の
無い」バイトを示す。
【0057】vis_alignaddr(5,0) //カットオフは左か
ら6番目のバイトからスタートする double_3=vis_faligndata(double_1,double_2); double_1: **** *xyz double_2: **** **** 連結: **** *xyz **** **** double_3: xyz* **** //(格納されるべきデータ) vis_alignaddr(2,0) //カットオフは左から3番目のバ
イトでスタートする double_6=vis_faligndata(double_4,double_5); double_4: **** *abc double_5: **** **** 連結: **** *abc **** **** double_6: ***a bc** //(格納されるべきデータ) vis_alignaddr(7,0) //カットオフは左から8番目のバ
イトでスタートする double_9=vis_faligndata(double_7,double_8); double_7: **** **** double_8: **** *mnp 連結: **** **** **** *mnp double_9: **** *mn //(格納されるべきデータ)
【0058】3つのダブルレジスタdouble_3,double_
6,double_9は、デスティネーション画像に書き込まれ
る前に、他のダブルレジスタへOR演算でまとめられる
ようにしてもよい。
【0059】あるいは、上述のVIS命令alignaddr 及
びfaligndataを、固定開始点、即ち、得られるデータビ
ットパターンが固定されているような連結ストリングの
開始点とともに使用してもよい。この実施例を図9に示
し、以下に説明する。
【0060】例2:固定開始点を利用したalignaddr 及
びfaligndata命令の使用
【0061】各バンドが8ビットで表される1バンドソ
ース画像を仮定する。画素のバンド値は連続的にメモリ
に格納される。8個のデスティネーション画素を表す8
個の8ビット値がルックアップテーブルから取得され
て、8個のダブルレジスタdb1、db2、db3、db4、db5、d
b6、db7、db8にロードされる。
【0062】 db1: **** ***a db2: **** ***b db3: **** ***c db4: **** ***d db5: **** ***e db6: **** ***f db7: **** ***g db8: **** ***h double_accumulator: **** ****
【0063】以下の命令は、上述の8個の8ビット値を
ダブルレジスタdb1 〜db8 から蓄積ダブルレジスタdoub
le_accumulatorに蓄積して、メモリ内の適当な位置に格
納する。
【0064】vis_alignaddr(7,0); double_accumulator=vis_faligndata(db8,double_accum
ulator);
【0065】この効果は、次の通り: 連結: **** ***h **** **** double_accumulator: h*** ****
【0066】double_accumulator=vis_faligndata(db7,
double_accumulator);
【0067】この効果は、次の通り: 連結: **** ***g h*** **** double_accumulator: gh** ****
【0068】double_accumulator=vis_faligndata(db6,
double_accumulator);
【0069】この効果は、次の通り: 連結: **** ***f **** **** double_accumulator: fgh* ****
【0070】double_accumulator=vis_faligndata(db5,
double_accumulator);
【0071】この効果は、次の通り: 連結: **** ***e **** **** double_accumulator: efgh ****
【0072】double_accumulator=vis_faligndata(db4,
double_accumulator);
【0073】この効果は、次の通り: 連結: **** ***d **** **** double_accumulator: defg h***
【0074】double_accumulator=vis_faligndata(db3,
double_accumulator);
【0075】この効果は、次の通り: 連結: **** ***c **** **** double_accumulator: cdef gh**
【0076】double_accumulator=vis_faligndata(db2,
double_accumulator);
【0077】この効果は、次の通り: 連結: **** ***b **** **** double_accumulator: bcde fgh*
【0078】double_accumulator=vis_faligndata(db1,
double_accumulator);
【0079】この効果は、次の通り: 連結: **** ***a **** **** double_accumulator: abcd efgh
【0080】ダブルレジスタdouble_accumulatorはこの
ときメモリに格納され得る。
【0081】本発明の更に別の実施例では、図6の蓄積
ステップ612は、マージ処理により実現されてもよ
い。マージ処理では、2つの浮動/ダブルレジスタがイ
ンタリーブされて他の浮動/ダブルレジスタにマージ
(併合)される。マージ処理を利用することにより、複
数の浮動/ダブルレジスタを一つの格納用蓄積レジスタ
に蓄積することができる。
【0082】図10は、本発明の一つの実施例として、
VISのfpmerge 命令を用いたマージ処理を示す。2つ
のダブルレジスタ%f4 及び%f8 は、それらのデータがダ
ブルレジスタ%f0 内でインタリーブされるようにマージ
される。
【0083】図10の実施例では、以下に示すように、
VISのfpmerge 命令が、複数の浮動/ダブルレジスタ
から一つの格納用蓄積浮動/ダブルレジスタへの蓄積を
実現するために利用される。
【0084】例3:ルックアップ結果を蓄積しデスティ
ネーション画像に格納するためのfpmerge の使用
【0085】各バンドが8ビットで表される、1バンド
ソース画像を仮定する。画素のバンド値は連続的にメモ
リに格納される。
【0086】この例では、8個の8ビットルックアップ
結果データがルックアップテーブルから得られ、8個の
ダブルレジスタdb1、db2、db3、db4、db5、db6、db7、d
b8にロードされる。
【0087】 db1: **** ***a db2: **** ***b db3: **** ***c db4: **** ***d db5: **** ***e db6: **** ***f db7: **** ***g db8: **** ***h double_accumulator: **** ****
【0088】以下の命令は、8個の8ビットルックアッ
プ結果をダブルレジスタdouble_accumulatorに蓄積す
る。
【0089】db15=vis_fpmerge(db1,db5); db15: **** **ae db37=vis_fpmerge(db3,db7); db37: **** **cg db26=vis_fpmerge(db2,db6); db26: **** **bf db48=vis_fpmerge(db4,db8); db48: **** **dh db1357=vis_fpmerge(db15,db37); db1357: **** aceg db2468=vis_fpmerge(db26,db48); db2468: **** bdfh double_accumulator=vis_fpmerge(db1357,db2468) double_accumulator: abcd efgh
【0090】ダブルレジスタdouble_accumulatorはこの
ときメモリ内のデスティネーション画像に格納され得
る。
【0091】以上、本発明をいくつかの好適な実施例に
基づいて説明したが、本発明の範囲内で様々に変更・変
形可能である。また、本発明の方法並びに装置は、実施
例以外の構成でも実現可能であることに注意すべきであ
る。よって、添付されたクレームは、本発明の範囲内に
おける種々の変更・変形を含むものと解釈されるものと
して意図されている。
【図面の簡単な説明】
【図1】ソース画像をデスティネーション画像に変換す
る簡単なテーブルルックアップ処理工程を示す。
【図2】多バンドのソース画像、即ち、画素が2以上の
値を有するソース画像のためのテーブルルックアップ処
理工程を示す。
【図3】図1のソース画像に対するテーブルルックアッ
プ処理工程の詳細を示す。
【図4】従来のテーブルルックアップ処理工程を示すフ
ローチャートである。
【図5】本発明の一実施例に従うテーブルルックアップ
処理方法を示す概略図である。
【図6】本発明の一実施例において実行されるテーブル
ルックアップ変換の工程を示すフローチャートである。
【図7】図7(A)は、本発明の一実施例における、蓄
積レジスタからデスティネーション画像に選択された値
を格納するためのVIS(商標)部分格納処理の使用を
示す簡単なフローチャートであり、図7(B)は、本発
明の一実施例における、ソースデータをロードするため
のVISショートロード命令の使用を示す簡単なフロー
チャートである。
【図8】本発明の一実施例における、可変開始点を用い
てVISのalignaddr 命令及びfaligndata命令を使用
し、ルックアップ結果を蓄積するための工程を示すフロ
ーチャートである。
【図9】本発明の一実施例における、固定開始点を用い
てVISのalignaddr 命令及びfaligndata命令を使用
し、ルックアップ結果を蓄積するための工程を示すフロ
ーチャートである。
【図10】本発明の一実施例における、VISのfpmerg
e 命令を使用して、ルックアップ結果を蓄積するための
工程を示すフローチャートである。
【図11】fpmerge 命令の動作を示す概略図である。
【図12】本発明の一実施例において使用される命令を
示す。
【図13】本発明の一実施例において使用される命令を
示す。
【図14】本発明の一実施例において使用される命令を
示す。
【図15】本発明の一実施例において使用される命令を
示す。
【図16】本発明の一実施例において使用される命令を
示す。
【図17】本発明の一実施例において使用される命令を
示す。
【図18】本発明の一実施例において使用される命令を
示す。
フロントページの続き (72)発明者 ステファン・ケイ.・ハウエル アメリカ合衆国 カリフォルニア州95051 サンタ・クララ,リッジ・ロード,71 (72)発明者 ダニエル・エス.・ライス アメリカ合衆国 カリフォルニア州94618 オークランド,バーチ・コート #エ フ,5838

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムにおいて、ルック
    アップテーブルを用いて、複数のソース画素を含むソー
    ス画像を複数のデスティネーション画素を含むデスティ
    ネーション画像に変換するためのテーブルルックアップ
    変換を実行する方法であって、 前記複数のソース画素の各々における各値に対して、前
    記複数のデスティネーション画素中の対応するデスティ
    ネーション画素における値を表すルックアップ結果を得
    るステップと、 プロセッサーにおける複数のグラフィックス・レジスタ
    に複数の前記ルックアップ結果をロードするステップ
    と、 前記複数のグラフィックス・レジスタにおける前記複数
    のルックアップ結果を前記プロセッサーにおける蓄積レ
    ジスタ内に蓄積するステップと、 前記蓄積レジスタに蓄積された値を前記デスティネーシ
    ョン画像内に格納するステップと、を備える方法。
  2. 【請求項2】 前記蓄積レジスタが、32ビットの浮動
    レジスタである、請求項1記載の方法。
  3. 【請求項3】 前記蓄積レジスタが、64ビットのダブ
    ルレジスタである、請求項1記載の方法。
  4. 【請求項4】 前記グラフィックス・レジスタ及び前記
    蓄積レジスタが、64ビットのダブルレジスタである、
    請求項1記載の方法。
  5. 【請求項5】 前記ロードするステップは、前記グラフ
    ィックス・レジスタ内のビット数よりも少ないビット数
    を有ビットパターンであって前記ルックアップ結果の一
    つを表すビットパターンを、前記グラフィックス・レジ
    スタの一つにロードするためにショートロード処理を利
    用するステップを備える、請求項1記載の方法。
  6. 【請求項6】 前記ロードステップは、メモリ内で誤配
    置されているビットパターンであって前記ルックアップ
    結果の一つを表すビットパターンを、前記グラフィック
    ス・レジスタの一つにロードするためにショートロード
    処理を利用するステップを備える、請求項1記載の方
    法。
  7. 【請求項7】 前記蓄積するステップは、前記グラフィ
    ックス・レジスタにおける前記ルックアップ結果を前記
    蓄積レジスタ内に蓄積するためにレジスタデータ抽出及
    び再配置処理を利用するステップを備える、請求項1記
    載の方法。
  8. 【請求項8】 前記レジスタデータ抽出及び再配置処理
    は、可変開始点とともに使用される、請求項7記載の方
    法。
  9. 【請求項9】 前記レジスタデータ抽出及び再配置処理
    は、固定開始点とともに使用される、請求項7記載の方
    法。
  10. 【請求項10】 前記レジスタデータ抽出及び再配置処
    理は、マージ処理により実施される、請求項7記載の方
    法。
  11. 【請求項11】 前記格納するステップは、前前記蓄積
    レジスタの選択的なビットを前記デスティネーション画
    像内に格納するために部分格納処理を利用するステップ
    を備える、請求項1記載の方法。
  12. 【請求項12】 ルックアップテーブルを用いて、複数
    のソース画素を含むソース画像を複数のデスティネーシ
    ョン画素を含むデスティネーション画像に変換するテー
    ブルルックアップ変換を実行するためのプログラム命令
    を含むコンピュータ読み取り可能な媒体であって、前記
    プログラム命令は、 前記複数のソース画素の各々における各値に対して、前
    記複数のデスティネーション画素中の対応するデスティ
    ネーション画素における値を表すルックアップ結果を得
    るステップと、 プロセッサーにおける複数のグラフィックス・レジスタ
    に複数の前記ルックアップ結果をロードするステップ
    と、 前記複数のグラフィックス・レジスタにおける前記複数
    のルックアップ結果を前記プロセッサーにおける蓄積レ
    ジスタ内に蓄積するステップと、 前記蓄積レジスタに蓄積された値を前記デスティネーシ
    ョン画像内に格納するステップと、 を実行するコンピュータ読み取り可能な媒体。
  13. 【請求項13】 前記蓄積レジスタが、64ビットのダ
    ブルレジスタである、請求項12記載のコンピュータ読
    み取り可能な媒体。
  14. 【請求項14】 前記蓄積するステップは、前記グラフ
    ィックス・レジスタにおける前記ルックアップ結果を前
    記蓄積レジスタ内に蓄積するためにレジスタデータ抽出
    及び再配置処理を利用するステップを備える、請求項1
    2記載のコンピュータ読み取り可能な媒体。
  15. 【請求項15】 前記レジスタデータ抽出及び再配置処
    理は、可変開始点とともに使用される、請求項14記載
    のコンピュータ読み取り可能な媒体。
  16. 【請求項16】 前記レジスタデータ抽出及び再配置処
    理は、固定開始点とともに使用される、請求項14記載
    のコンピュータ読み取り可能な媒体。
  17. 【請求項17】 前記レジスタデータ抽出及び再配置処
    理は、マージ処理により実施される、請求項14記載の
    コンピュータ読み取り可能な媒体。
JP8353404A 1995-11-27 1996-11-26 デジタル画像のテーブル・ルックアップ変換のための方法および装置 Pending JPH1027241A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/562,673 US5802219A (en) 1995-11-27 1995-11-27 Methods and apparatus for table lookup transformation of digital images
US08/562,673 1995-11-27

Publications (1)

Publication Number Publication Date
JPH1027241A true JPH1027241A (ja) 1998-01-27

Family

ID=24247275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8353404A Pending JPH1027241A (ja) 1995-11-27 1996-11-26 デジタル画像のテーブル・ルックアップ変換のための方法および装置

Country Status (3)

Country Link
US (1) US5802219A (ja)
EP (1) EP0775977B1 (ja)
JP (1) JPH1027241A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953021A (en) * 1997-05-22 1999-09-14 Sun Microsystems, Inc. Microprocessor system for data channel extraction
US5886712A (en) * 1997-05-23 1999-03-23 Sun Microsystems, Inc. Data channel extraction in a microprocessor
JP3904162B2 (ja) * 1997-05-29 2007-04-11 富士フイルム株式会社 オートセットアップ処理方法
US6282554B1 (en) 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
US5995122A (en) * 1998-04-30 1999-11-30 Intel Corporation Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
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
US6292815B1 (en) 1998-04-30 2001-09-18 Intel Corporation Data conversion between floating point packed format and integer scalar format
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
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
US6762791B1 (en) 1999-02-16 2004-07-13 Robert W. Schuetzle Method for processing digital images
US7168051B2 (en) 2000-10-10 2007-01-23 Addnclick, Inc. System and method to configure and provide a network-enabled three-dimensional computing environment
US6621498B1 (en) 2000-11-01 2003-09-16 Xerox Corporation High-speed non-separable color table lookup
US6766051B2 (en) * 2000-12-06 2004-07-20 Xerox Corporation Adaptive tree-base lookup for non-separably divided color tables
GB2399900B (en) * 2003-03-27 2005-10-05 Micron Technology Inc Data reording processor and method for use in an active memory device
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
US10095479B2 (en) * 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751446A (en) * 1985-12-06 1988-06-14 Apollo Computer, Inc. Lookup table initialization
US4933878A (en) * 1988-07-07 1990-06-12 Texas Instruments Incorporated Graphics data processing apparatus having non-linear saturating operations on multibit color data
US4799053A (en) * 1986-04-28 1989-01-17 Texas Instruments Incorporated Color palette having multiplexed color look up table loading
US4839801A (en) * 1986-11-03 1989-06-13 Saxpy Computer Corporation Architecture for block processing computer system
DE3786080D1 (de) * 1987-08-20 1993-07-08 Ibm Speicherzugriffssteuerungsvorrichtung in einem gemischtdatenformatsystem.
US5157388A (en) * 1989-02-14 1992-10-20 Intel Corporation Method and apparatus for graphics data interpolation
US5204958A (en) * 1991-06-27 1993-04-20 Digital Equipment Corporation System and method for efficiently indexing and storing a large database with high data insertion frequency
US5487022A (en) * 1994-03-08 1996-01-23 Texas Instruments Incorporated Normalization method for floating point numbers

Also Published As

Publication number Publication date
EP0775977A3 (en) 1999-03-10
EP0775977B1 (en) 2003-10-01
EP0775977A2 (en) 1997-05-28
US5802219A (en) 1998-09-01

Similar Documents

Publication Publication Date Title
JPH1027241A (ja) デジタル画像のテーブル・ルックアップ変換のための方法および装置
US6954204B2 (en) Programmable graphics system and method using flexible, high-precision data formats
US7000099B2 (en) Large table vectorized lookup by selecting entries of vectors resulting from permute operations on sub-tables
EP1073950B1 (en) Method and apparatus for performing shift operations on packed data
JPS60146368A (ja) 2進イメ−ジ引伸し方法
US5854620A (en) Method and apparatus for converting monochrome pixel data to color pixel data
JPH06222903A (ja) 文字データを圧縮し圧縮済みデータを展開するための静的辞書構造を提供する方法および手段
US5867145A (en) Graphical image recasting
US5896307A (en) Method for handling an underflow condition in a processor
US5905661A (en) Method for handling an overflow condition in a processor
US5694490A (en) System and method for a simultaneous multi-band block-stop filter
US5946222A (en) Method and apparatus for performing a masked byte addition operation
US5375198A (en) Process for performing a windowing operation in an array move, a graphics computer system, a display system, a graphic processor and a graphics display system
US9159276B2 (en) Method for creating bit planes using a digital signal processor and double index addressing direct memory access
US8494288B2 (en) Methods for digital image compression
US7460718B2 (en) Conversion device for performing a raster scan conversion between a JPEG decoder and an image memory
US8395630B2 (en) Format conversion apparatus from band interleave format to band separate format
US5912677A (en) Method for forming a sum in a signal processing system
US6141024A (en) Generating color text
US5886712A (en) Data channel extraction in a microprocessor
JPH04340865A (ja) ランレングス・ビットマップ変換装置
JP3778068B2 (ja) 画像データの展開方法及び画像表示制御装置
KR100261052B1 (ko) 그래픽 lsi를 위한 마스크 데이타 발생 회로
US5894568A (en) Apparatus and method for computing a difference in a digital processing system
JPH07152637A (ja) 記憶システム及び方法