JPH09231351A - 画像のリサイジング方法及びそのためのコンピュータプログラム製品 - Google Patents

画像のリサイジング方法及びそのためのコンピュータプログラム製品

Info

Publication number
JPH09231351A
JPH09231351A JP8325884A JP32588496A JPH09231351A JP H09231351 A JPH09231351 A JP H09231351A JP 8325884 A JP8325884 A JP 8325884A JP 32588496 A JP32588496 A JP 32588496A JP H09231351 A JPH09231351 A JP H09231351A
Authority
JP
Japan
Prior art keywords
variable
interpolation data
data
computer
horizontal interpolation
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
JP8325884A
Other languages
English (en)
Other versions
JPH09231351A5 (ja
Inventor
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 JPH09231351A publication Critical patent/JPH09231351A/ja
Publication of JPH09231351A5 publication Critical patent/JPH09231351A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

(57)【要約】 【課題】 コンピュータグラフィックスにおいて2倍の
スケーリングを効率的に行えるようにする。 【解決手段】 MSR入力ストリームから2つの変数を
抽出する。これらの変数を選択的にインターリーブす
る。このインターリーブ結果の高位バイト及び下位バイ
トを定数乗算によって16ビット表現に変換する。この
変換結果を2つずつ加算することによって水平補間デー
タを生成する。前の繰返しにおける水平補間データをバ
ッファに保持しておく。現在と前回の水平補間データを
互いに加算することにより垂直補間データを形成する。
次に、水平補間データを2倍して、垂直補間データと水
平補間データの間で精度を等しく保つ。パッキング関数
を用いて、データをデスティネーションに出力するため
の8ビット表現に逆変換する。精度は同じであるから、
パッキング命令中のただ1つの除数で水平と垂直の両方
の補間データを扱うことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像の図形リサイ
ジング(サイズ変更)に関するものである。より詳しく
は、本発明は、ソース画像のズーム画像を得るための画
像のバイリニア(bi-linear )スケーリング方法に関す
る。
【0002】
【従来の技術】図形データのリサイジングは、当技術分
野においておおむね周知である。画像をリサイジングす
ると、ソースピクセルはデスティネーションピクセルに
対して程度の異なる寄与をする。このような寄与は、ソ
ースピクセルの寄与係数として知られている。通常、こ
のような寄与に関わるソースピクセルが2つ以上ある場
合、4つまたは16のピクセルがこの寄与をなすものと
考えられる。これは、それぞれバイリニアフィルタリン
グ及びバイキュービック(bi-cubic)フィルタリングに
相当する。一般に、スケーリングは別々に行うことがで
きるということは周知である。たとえば、ある特定の画
像は、ソースピクセルに対して適切な係数を選択するこ
とによって、まず横方向にスケーリングした後、縦方向
にスケーリングすることができる。
【0003】係数は、デスティネーションピクセルの中
心である幾何学的点を選択し、ソース中の点をデスティ
ネーションにマップ(写像)する関数を立てることによ
り、デスティネーションのスケーリングされた変換をx
及びyの一次関数として生成することによって選択され
る。この関数の逆関数が、データを生じたソース中の点
を与える。選択された点がソースピクセルの中心でなけ
れば、ソースデータを補間してソースピクセル中心間の
相対距離を求め、それに応じて重みを付ける必要があ
る。このように、フィルタ係数は逆マッピングされたデ
スティネーション点のサブピクセル位置の関数である。
【0004】
【発明が解決しようとする課題】2倍のスケーリングが
必要な場合は数多くある。このような場合においては、
バイリニアフィルタリングを行うと、各隣接ピクセルに
よって水平補間ピクセルの半分が得られると考えること
ができるので、寄与係数の計算が簡単になる。同様に、
垂直方向の隣接ピクセルでも、各々垂直補間ピクセルの
半分が得られると考えることができる。中心のピクセル
は、リサイジングに寄与する各ソースピクセルの4分の
1の形で得られる。残念なことには、既存のスケーリン
グ技法では、画像データの緩慢なピクセル単位画像デー
タ操作、すなわち1ピクセル毎の操作が避けられず、一
部のようとで要求される迅速性及び効率を確保すること
ができない。
【0005】従って、2倍のスケーリングを効率的に行
えるようにすることが強く要望されている。さらに、多
数のピクセルを同時に処理できるようにすることに対す
る要望も強い。
【0006】
【課題を解決するための手段】前記の課題を解決するた
め、本発明は、画像を2倍にスケーリングする方法を提
供するものである。たとえば、本発明の一実施態様にお
いては、無整列の入力ストリームから2つの変数を抽出
する。無整列入力ストリームは、最初の有効データが同
時にアクセス可能なデータ数の偶数倍数のアドレスに存
在することが確実でない場合に生じる。出発ピクセルが
水平補間ピクセルかどうかに応じて、第1の変数または
第2の変数がその変数自体とマージされる。また、第1
及び第2の変数は、どちらの場合も相互にマージされ
る。各マージは、それぞれの変数の高位バイト及び下位
バイトに対して別々に行われる。従って、マージの結
果、各々8ビット表現の8つの値を各々含む4つの新し
い変数が生じる。
【0007】これら4つのマージされた変数を、あらか
じめ選択した定数をかけることによって16ビット表現
に変換する。この定数は、その後の処理でそれ以上の計
算を必要としない出力が得られるように選択される。さ
らに、この定数乗算の結果、変数の数が4から8に倍増
する。次に、これら8つの変数を2つずつ加算すること
によって、水平方向に補間されたデータ(以下水平補間
データとする)が生成される。
【0008】前記の水平補間データを、バッファに保持
されている前の水平方向に補間された行に加える。この
加算が完了すると、その水平補間データによってバッフ
ァに保持された対応するデータ置換される。この加算に
よって、垂直方向に補間されたデータ(以下垂直補間デ
ータとする)が生成される。バッファ格納データへの加
算は、実際には垂直補間データを「2倍する」ので、水
平補間データも2倍して、両方のデータ間の関係を保つ
必要がある。この2倍処理は、水平補間データをそれ自
体に加えることによって行われる。
【0009】垂直補間データも水平補間データも、パッ
クしてデスティネーションへ出力しなければならない。
このパッキング関数では、暗黙の除算が可能となり、こ
れはユーザが設定することができる。前記の選択される
定数とパッキング関数の間の調整は、最大効率を達成す
るために重要である。垂直補間データと水平補間データ
との間では同じ精度が保たれているので、1つのパッキ
ング除数を両方のデータタイプに対して有効に働かせる
ことができる。このパッキングは16ビット表現を8ビ
ット表現に変換し、データをデスティネーションラスタ
への出力にとって適切な形式にする。
【0010】
【発明の実施の形態】以下、本発明によるコンピュータ
システムにおいて図形画像をリサイジングするための方
法をその実施形態により説明する。以下の説明において
は、説明の便宜上、具体的な応用例、数、及び構成を記
載して本発明の十分な理解を図る。しかしながら、当業
者にとっては、本発明がそのような特定の詳細事項の記
載がなくても実施可能なことは明らかであろう。その他
の場合においては、本発明が必要以上に不明確にならな
いように、周知のシステムは模式図またはブロック図形
式で示す。
【0011】前述した基本的な課題は、如何にして任意
の画像データを取り出し、2倍にスケーリングするかと
いうことである。図1は、そのような任意の画像を本発
明を用いてスケーリングするプロセスの一例を代数的に
示。図中a0,a1,....,b0,b
1,....,c0,c1,....は、ソース画像の
ピクセルデータを表す。図2は、本発明を用いた2×2
のピクセルブロックのスケーリングプロセスを図式化し
て示す。水平方向の隣接ピクセル1と2及び3と4をそ
れぞれ互いに加算し、2で割ることによって水平補間ピ
クセル5及び6が生成される。同様に、ソース画像の垂
直方向の隣接ピクセル1と3及び2と4をそれぞれ互い
に加算し、2で割ることによって垂直補間ピクセル7及
び8が生成される。次に、水平補間ピクセル5と6を互
いに加算し、2で割ることによって中心補間ピクセル9
を得ることができる。垂直補間ピクセル7と8を互いに
加算し、2で割っても同じ結果が得られるということ
は、当業者ならば理解できよう。所望のスケーリングを
効率よく行うために、本発明の方法は、新規なハードウ
ェア基本要素を用いてピクセルデータを処理することに
より演算の並行処理性を高める一方、必要な補間ピクセ
ルを生成するために互いに加算することができる変数を
効率的に生成するものである。
【0012】この方法は、p0または(p0+p1)/
2または(p0+q0)/2またはp0+p1+q0+
q1)/2の形の出発ピクセルに対応しなければならな
いので、多少複雑である。最初のピュアピクセル及び水
平補間ピクセルの両方に対応するためには、主ループを
ツインで保持することが必要である。最初の垂直補間ピ
クセルの処理については、最初の走査線に関わる特殊な
ケースに出力ポインタを入れることによって対応するこ
とができる。
【0013】図3は、本発明の方法を採り入れることが
可能なシステムを示す。図示システムにおいて、プロセ
ッサ(CPU)10は、バス12を介して主メモリ11
及びキャッシュ13に接続されている。プロセッサ10
中の制御レジスタ20は、以下により詳細に説明するよ
うに、align命令に応答して2つのオペランドのど
の部分が戻されるかを決定する値を記憶するために用い
られる。ULTRASPARC(登録商標)ワークステ
ーションにおいては、この制御レジスタはグラフィック
ス状態レジスタ(“GSR”)として知られている。他
のアーキテクチャでは、この制御レジスタ20は別の呼
び方をされることもある。図示のように、主メモリ11
中にはバッファ15の領域が割り当てられている。BU
F0〜BUF3のバッファは、リサイジングで前の行か
らの水平補間データを記憶するために使用される。JU
NK(ジャンク)のバッファは不必要な出力データを書
き込むための安全な場所を確保するために使用される。
これらのどちらのバッファについても、以下により詳し
く説明する。
【0014】この本願明細書では、全体を通して、UL
TRASPARC(登録商標)ビジュアル命令セット
(“VIS”)に関連して記載し、かつこの命令セット
を使用する。本発明の一実施形態においては、CPU1
0は、ビジュアル命令セット(“VIS”)を用いたサ
ン・マイクロシステムズ(Sun Microsyst
ems)社のULTRASPARC(登録商標)であ
る。ULTRASPARC(登録商標) 及びVISに
関しては、「統合グラフィックス機能を有する中央処理
装置(CENTRAL PROCESSING UNI
T WITH INTEGRATED GRAPHIC
FUNCTIONS)」という名称の本願の同時係属
出願(出願番号第08/236,572号;出願日19
95年4月29日)により詳しく記載されている。他の
命令セット及びアーキテクチャが同じ機能性をサポート
することは十分予期される。従って、それらの機能性
は、どのように形態で明示されている場合も、当然本願
の範囲及び本願によって予想される範囲に包括されるも
のである。
【0015】図4〜6は本発明の一実施形態を説明する
ための概略フローチャートを示す。図4は本発明のシス
テムの初期化及び最初の走査線に関わる特殊なケースの
始めを示す。機能ブロック100は、入ってくるピクセ
ル値を16ビット値に変換するために掛ける定数の初期
化に相当する。この定数を適切に選択することによっ
て、正しくスケーリングされた最終結果が得られる。本
発明の一実施形態においては、この定数として8192
を用いる。これは、5桁の桁移動に相当する。以下に、
さらに詳しく説明するpack命令では、パッキングに
伴って移動する桁数の指定が可能である。8192に等
しい定数によれば、パッキングプロセスにおける7桁の
桁移動で所望の結果が得られる。他の定数も同様に使用
することができるが、定数の選択に際しては、解像度が
失われないように、結果的に得られるあらゆる小数ピク
セル値を表すのに十分な数のビットを用いる必要がある
ということに留意すべきである。
【0016】また、GSRは、機能ブロック100でa
lignaddr命令を用いて初期化することができ
る。GSRの設定は、連続する2つの8バイトの各オペ
ランドが、faligndata命令の結果に何バイト
寄与するかを指示する。たとえば、alignaddr
(0,5)は、GSRのalignビットを5にセット
し、その後2つの連続する8バイト値r及びsについて
faligndata命令を使用すると、falign
data(r,s)の結果としてr5-70-4が得られ
る。このfaligndata命令は、無整列入力スト
リームから適切に整列されたデータを得るのに広範に用
いられている。
【0017】機能ブロック101では、5つのバッファ
及びこれらのバッファに対応するポインタが生成され
る。始めの4つのバッファは、垂直補間で使用する中間
結果を格納するために用いられる。5番目のバッファ
「ジャンク」は、不必要な出力データを書き込むための
安全な場所である。各バッファは、ソース走査線の2倍
の長さにするべきである。
【0018】本発明は、デスティネーションに一度に8
バイトを書き込むよう設計されているので、最初のデス
ティネーションバイトが8の倍数のアドレスに位置する
ようにデスティネーションを整列することが必要であ
る。本発明の一実施形態においては、最初のデスティネ
ーションがそのようなアドレスに来るまで、Cコードを
用いて値を生成する。機能ブロック102はこの整列に
相当する。機能ブロック103は、デスティネーション
の最初の行が偶数行で、水平補間に対応するのか、ある
いは奇数行で、垂直補間が必要かを決定することに相当
する。いずれのケースも、最初の走査線は、バッファに
有効なデータが書き込まれていないので、一つの特殊な
ケースである。そのために、バッファの全桁に書き込む
ための値をバッファ記憶値を全く用いることなく生成し
なければならない。バッファ記憶値は全くないので、垂
直補間値を生成することは不可能であり、従って、機能
ブロック104は、出力ポインタをジャンクに設定し
て、デスティネーションの記憶場所への無効なデータの
書込みを防止することに相当する。これに対して、最初
の行が偶数行の場合、水平補間値はバッファ記憶データ
を使わずに生成できる。従って、機能ブロック105
は、同じ出力ポインタをそのデスティネーションアドレ
スに設定することに相当する。
【0019】機能ブロック106においては、走査線の
始めが読み込まれる。機能ブロック107では、変数p
0_p7が抽出される。機能ブロック108では、走査
線からの8つの無整列バイトが中間変数“PREV”に
入れておく一方、次の8つの無整列バイトが中間変数
“NEXT”に読み込まれる。これらのPREV及びN
EXT変数から、機能ブロック110で変数p8_p1
5が抽出される。p8_p15は、p0_p7と共に、
変数p1_p8を抽出するためのfaligndata
オペランドとして使用される。図7は、本発明における
水平補間に必要な変数の取込み及び抽出のプロセスを図
式的に示したものである。整列されたメモリからは、f
aligndata及び前と次の中間変数を用いて、8
バイトの2つの変数p0_p7及びp8_p15が要求
される。変数p0_p7は直接使用されるが、直接使用
される2番目の変数p1_p8は、図示のように、変数
p0_p7及びp8_p15とともにfalignda
taを用いて得ることができる。
【0020】図5には、前記の特殊なケースを終了する
プロセスが示されている。判断ブロック111では、デ
スティネーションに出力される最初のピクセルがピュア
ピクセルであるか、補間ピクセルであるか、すなわちp
0または(p0+p1)/2のどちらの形の最初のピク
セルであるか確認される。その判断結果に基づいて、ブ
ロック113または112中の機能ブロックの緊密に関
係するマクロがそれぞれ適用される。
【0021】機能ブロック113には、走査線の最初の
ピクセルがピュアピクセルである特殊な初期ケースで使
用するマクロが入っている。機能ブロック113には、
走査線の最初のピクセルが水平補間ピクセルである初期
ケースで使用するマクロが入っている。これらのマクロ
については、以下に一般的なケースと関連させて詳細に
説明する。ここで、初期ケースでは、上に述べたよう
に、バッファに有効なデータが書き込まれていないの
で、垂直マクロはないということに留意すべきである。
従って、初期ケースでは垂直補間は全く不可能である。
【0022】機能ブロック116aでは、maskin
g及びedge命令を用いて最初の8バイトの結果がデ
スティネーションラスタに書き込まれる。また、デステ
ィネーションポインタがデスティネーションの終端を超
えると、他の必要データがオーバーライトされるので、
デスティネーションポインタがデスティネーションの終
端を絶対に超えないようにすることも必要である。この
ポインタは各書込み後にインクリメントされるので、機
能ブロック115は、前記デスティネーションポインタ
の条件が満たされないと(test不合格の場合)、各
パスの2回目の書込みを阻止する。判断ブロック114
がこの条件チェック(test)に相当する。前記チェ
ックで条件が満たされていれば、機能ブロック116b
で2番目の8バイトの結果がデスティネーションに書き
込まれる。ここでも、masking及びedge命令
が用いられる。機能ブロック117は、変数p8_p1
5と次の変数の再循環動作に相当する。この機能ブロッ
クでは、p8_p15がp0_p7になり、NEXTが
次の繰返しにおけるPREVになる。機能ブロック11
8では、この走査線が終了したかどうかが確認される。
走査線が終了していなければ、さらに8つの無整列バイ
トがNEXTに読み込まれ、機能ブロック109に戻っ
て処理が続けられる。走査線が終了した場合は、最初の
走査線に関する特殊ケースはより一般的なケースに移行
する。まず、判断ブロックまたはボックス119で、走
査線が実際にデスティネーションレジスタに書き込まれ
たかどうかの判断が行われる。走査線が書き込まれなか
った場合は、最初のピクセルは垂直補間ピクセルである
から、その前の走査線はジャンクに送られている。判断
ボックス119の結果は、HまたはH−1の走査線がそ
の後さらに機能ブロック120及び121でそれぞれ処
理されるかどうかを指示する。Hとは、デスティネーシ
ョンの高さである。最後の繰返しで奇数本の走査線が処
理されるために残っている場合は、対応するポインタを
ジャンクに振り向けることによって2番目の出力行を阻
止しなければならない。そして、デスティネーション
は、機能ブロック102におけると同様に、機能ブロッ
ク122で整列される。同様にして、機能ブロック12
3では、特殊ケースの機能ブロック107及び108に
おけると同様に、PREV及び変数p0_p7が初期化
される。
【0023】図6は、一般ケースの主ループを示し、本
発明により達成される効率の相当部分はこれらの主ルー
プから得られる。最初のピクセルがピュアピクセルかど
うかは最初の走査線に関わる特殊ケースで指示されるの
で、判断ブロック124は、実際には暗黙判断になる。
ピュアピクセルの場合は、機能ブロック126でNEX
Tがロードされ、p1_p8が抽出される。この抽出の
後には、機能ブロック128のCASE1マクロの実行
が続く。機能ブロック128には、ピュアピクセルの一
般ケースのためのマクロが入っている。
【0024】サブブロック201に示すマクロRESA
MPLE_CASE1は、本発明にとって非常に重要で
ある。RESAMPLE_CASE1(201)におい
ては、p0_p7がそれ自体とマージされる。VISの
fpmerge命令が、2つの4バイトオペランドを取
ってインターリーブすることにより、1つの8バイトの
結果を生成する。このように、p0_p7は、それ自体
とマージされるとき、2つの別個の命令でマージされ、
同じ高位バイト及び同じ下位バイト同士が互いにマージ
される。これによって、変数p0p0p1p1p2p2
p3p3、及びp4p4p5p5p6p6p7p7が生
成される。この関係を図8に図式化して示す。図9は、
変数p0_p7を変数p1_p8とマージするためのR
ESAMPLE_CASE1(201)の第2のステッ
プを示す。上に説明した場合同様、この結果として、変
数p0p1p1p2p2p3p3p4及びp4p5p5
p6p6p7p7p8が生成される。
【0025】これらの変数は、図10に示すように、あ
らかじめ選択された定数をかけることによって16ビッ
ト表現に変換される。もう一つの実施形態においては、
この変換は、同様に、32ビット表現、または以後の加
算によってオーバーフローを生じないだけの十分なビッ
ト数の任意の表現に変換することもできる。前記乗算
は、前記4つの変数の高位バイト及び下位バイトに対し
て行われる。その結果、次の8つの変数が得られる:p
0p0p1p1_2;p0p1p1p2_2;p2p2
p3p3_2;p2p3p3p4_2;p4p4p5p
5_2;p4p5p5p6_2;p6p6p7p7_
2;及びp6p7p7p8_2。次に、これらの変数を
2つずつ互いに加算することによって次の4つの変数が
得られる:p0_p0p1_p1_p1p2;p2_p
2p3_p3_p3p4;p4_p4p5_p5_p5
p6;及びp6_p6p7_p7_p7p8。たとえ
ば、Hp0_p0p1_p1_p1p2は、16ビット
形式で値2*p0,(p0+p1),2*p1,(p1+
p2)を含む。
【0026】機能ブロック126の次のマクロは、AD
D_VERTICALLY_CASE1であり、このマ
クロは、前の水平補間行が書き込まれたバッファの内容
に、これと対応する、すなわち現在の水平補間行から垂
直方向に隣接する値を加算することによって垂直補間行
が生成される。次に、マクロ203でバッファのsto
reを実行すると、バッファの前の内容が水平補間行の
現在の値に置換される。ケース1とケース2とで共用さ
れる垂直packマクロ204は、fpack命令を用
いて垂直方向加算の結果を8ビット表現の出力値に変換
する。垂直方向加算の関数を垂直パックのプロセスと結
合した形で図12に示す。fpack関数は、4での暗
黙の除算を行って、正しい垂直補間出力値を与える。
【0027】偶数行にはADD_VERTICAL_C
ASEマクロが実行されず、fpack関数の暗黙除数
を変えることは相対的に高くつくので、水平補間行を2
倍して、4での除算によって水平補間行でも正しい結果
が得られるようにすることが望ましい。この機能は、マ
クロDOUBLE_OUTPUTS_CASEによって
行われ、このマクロでは、偶数行変数がそれ自体に加算
される。水平補間行を4の暗黙除数で8ビット表現に変
換するには、PACK_HORIZONTAL_CAS
E1(206)が使用される。偶数出力の2倍処理及び
水平行のパッキングプロセスを図11に示す。CASE
1ループ132またはCASE2ループ130の繰返し
毎に2本のデスティネーション行が生成される。ループ
に各パスを通す毎に各デスティネーション行の16バイ
トが生成される。これらのバイトは機能ブロック128
で出力される。次に、機能ブロック129では、NEX
T及びp8_p15を再循環させる。デスティネーショ
ンのデータ出力がデスティネーションの終端から16バ
イト以内になるまで、CASE1ループ(131)また
はこれに対応するCASE2ループ(130)が反復さ
れる。デスティネーションの長さを求めて、繰返しを少
な目な回数で行うことができるので、これらの主ループ
では明示条件付きにする必要はない。そのために、非常
に効率的な並列処理が可能である。結果がデスティネー
ションの終端から16バイト以内に書き込まれていれ
ば、最初の走査線に関する特殊ケースで使用したのと同
様に、masking命令を用いて最後のクリーンアッ
プパスが実行される。
【0028】最初のピクセルが水平補間ピクセルの場合
は、機能ブロック125でCASE2がロードされ、p
1_p8が抽出され、機能ブロック127でCASE2
マクロが実行される。機能ブロック127にはケース2
マクロが入っている。これらのマクロは、p0_p7と
p1_p8がマージされて初期変数が形成されるよう
に、またp1_p8がそれ自体とマージされて次の一組
の変数が形成されるようにして、RESAMPLE_C
ASE2(211)の初期入力がマージされるという点
においてだけ、ケース1のマクロと異なっている。この
違いは、ADD_VERTICALLY_CASE2
(212)、STORE_BUFFERS_CASE2
(213)、DOUBLE_OUTPUTS_CASE
2(215)、及びPACK_HORIZONTAL_
CASE2(216)の全体にわたって影響する。その
他の点では、CASE2マクロはCASE1のマクロと
全面的に同じである。最初のピクセルがピュアピクセル
の場合、CASE2ループ131は完全に無視される。
【0029】以上の説明においては、本発明をその特定
の実施形態に関連して説明した。しかしながら、特許請
求の範囲に記載するより広義の本発明の精神並びに範囲
を逸脱することなく、本発明のシステムの様々な修正態
様及び変形態様を実施することが可能なことは自明であ
ろう。従って、本願明細書及び図面は、限定的な意味で
はなく例示説明的な意味で解釈すべきものである。故
に、本発明の範囲は特許請求の範囲の記載によってのみ
限定されるべきである。
【図面の簡単な説明】
【図1】 本発明で任意の画像を2倍にスケーリングす
るプロセスを示す説明図である。
【図2】 本発明で2×2のピクセルブロックをスケー
リングするプロセスを示す説明図である。
【図3】 本発明で使用するコンピュータシステムの一
例のブロック図である。
【図4】 本発明の一実施形態のフローチャートの一部
である。
【図5】 本発明の一実施形態のフローチャートの他の
一部である。
【図6】 本発明の一実施形態の主ループのフローチャ
ートである。
【図7】 本発明で使用するデータ抽出プロセスを示す
説明図である。
【図8】 本発明で使用する変数の自己マージプロセス
を示す、説明図である。
【図9】 本発明で使用する互いに異なる変数マージプ
ロセスを示す説明図である。
【図10】 本発明で使用する8ビット表現を16ビッ
ト表現に変換するための乗算プロセスを示す説明図であ
る。
【図11】 本発明において水平補間データを2倍し、
パックするプロセスを示す説明図である。
【図12】 本発明における垂直及び水平パッキングプ
ロセスを示す説明図である。
【符号の説明】
10 CPU、11 主メモリ、12 バス、13 キ
ャッシュ、15バッファ、20 制御レジスタ。

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムで画像を2倍にス
    ケーリングする方法において: a) 選択的に第1の変数または第2の変数をそれ自体
    とマージして、少なくとも1つのマージ変数を生成する
    ステップと; b) 前記第1の変数と前記第2の変数とをマージし
    て、少なくとも1つのもう一つのマージ変数を生成する
    ステップと; c) 前記少なくとも1つのマージ変数及び前記少なく
    とも1つのもう一つのマージ変数にあらかじめ選択され
    た定数を各々乗じて、拡張表現形式の複数の拡張変数に
    変換するステップと; d) 前記複数の拡張変数を2つずつ互いに加算して水
    平補間データを生成するステップと;を具備した方法。
  2. 【請求項2】e) 前記水平補間データに前の走査線か
    らの対応する水平補間データを加算して垂直補間データ
    を生成するステップ;をさらに具備した請求項1記載の
    方法。
  3. 【請求項3】f) 前記水平補間データを2倍するステ
    ップ;をさらに具備した請求項2記載の方法。
  4. 【請求項4】g) 前記2倍した水平補間データをパッ
    クするステップと; h) 前記垂直補間データをパックするステップと; i) 前記パックされた垂直補間データ及び前記パック
    され水平補間データをデスティネーションの相続く行に
    書き込むステップと;をさらに具備した請求項3記載の
    方法。
  5. 【請求項5】 無整列ストリームから前記第1及び第2
    の変数を取り込むステップ;をさらに具備した請求項1
    記載の方法。
  6. 【請求項6】 バスによってメモリに接続されたプロセ
    ッサを有するコンピュータシステムで画像をスケーリン
    グするためのコンピュータ使用可能コードが記録された
    コンピュータ使用可能媒体を含むコンピュータプログラ
    ム製品において:選択的に第1の変数または第2の変数
    をそれ自体とマージして、少なくとも1つのマージ変数
    を生成するためのコンフィギュレーションを有するコン
    ピュータ可読プログラムコード手段と;前記第1の変数
    と前記第2の変数をマージして、少なくとも1つのもう
    一つのマージ変数を生成するためのコンフィギュレーシ
    ョンを有するコンピュータ可読プログラムコード手段
    と;前記少なくとも1つのマージ変数及び前記少なくと
    も1つのもう一つのマージ変数にあらかじめ選択された
    定数を各々乗じて、拡張表現形式の複数の拡張変数に変
    換するためのコンフィギュレーションを有するコンピュ
    ータ可読プログラムコード手段と;前記複数の拡張変数
    を2つずつ互いに加算して水平補間データを生成するた
    めのコンフィギュレーションを有するコンピュータ可読
    プログラムコード手段と;を具備したコンピュータプロ
    グラム製品。
  7. 【請求項7】 前記水平補間データに前の走査線からの
    対応する水平補間データを加算して垂直補間データを生
    成するためのコンフィギュレーションを有するコンピュ
    ータ可読プログラムコード手段;をさらに具備した請求
    項6記載のコンピュータプログラム製品。
  8. 【請求項8】 前記水平補間データを2倍するためのコ
    ンフィギュレーションを有する請求項7記載のコンピュ
    ータ可読プログラムコード手段;をさらに具備した請求
    項7記載のコンピュータプログラム製品。
  9. 【請求項9】 前記2倍した水平補間データをパックす
    るためのコンフィギュレーションを有するコンピュータ
    可読プログラムコード手段;をさらに具備した請求項8
    記載のコンピュータプログラム製品。
  10. 【請求項10】 前記垂直補間データをパックするため
    のコンフィギュレーションを有するコンピュータ可読プ
    ログラムコード手段;をさらに具備した請求項6記載の
    コンピュータプログラム製品。をさらに具備した方法。
  11. 【請求項11】 無整列ストリームから前記第1及び第
    2の変数を取り込むためのコンフィギュレーションを有
    するコンピュータ可読プログラムコード手段;をさらに
    具備した請求項6記載のコンピュータプログラム製品
JP8325884A 1995-11-27 1996-11-22 画像のリサイジング方法及びそのためのコンピュータプログラム製品 Pending JPH09231351A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/562,693 US5745123A (en) 1995-11-27 1995-11-27 Method for resizing an image by a factor of two
US08/562693 1995-11-27

Publications (2)

Publication Number Publication Date
JPH09231351A true JPH09231351A (ja) 1997-09-05
JPH09231351A5 JPH09231351A5 (ja) 2004-11-18

Family

ID=24247363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8325884A Pending JPH09231351A (ja) 1995-11-27 1996-11-22 画像のリサイジング方法及びそのためのコンピュータプログラム製品

Country Status (5)

Country Link
US (1) US5745123A (ja)
EP (1) EP0775976B1 (ja)
JP (1) JPH09231351A (ja)
CA (1) CA2191297A1 (ja)
DE (1) DE69632712D1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850227A (en) * 1996-12-20 1998-12-15 Compaq Computer Corporation Bit map stretching using operand routing and operation selective multimedia extension unit
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
US6252576B1 (en) 1998-08-06 2001-06-26 In-System Design, Inc. Hardware-efficient system for hybrid-bilinear image scaling
US20040181503A1 (en) * 2003-03-13 2004-09-16 Motorola, Inc. Information storage and retrieval method and apparatus

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0179203B1 (en) * 1984-10-24 1992-04-29 International Business Machines Corporation Method for enlarging an image stored in run representation form
US4988984A (en) * 1988-10-31 1991-01-29 International Business Machines Corporation Image interpolator for an image display system
JPH0660173A (ja) * 1992-06-11 1994-03-04 Internatl Business Mach Corp <Ibm> 画像を縮小する方法および装置
DE4309471A1 (de) * 1993-03-24 1994-09-29 Miro Computer Prod Ag Verfahren zur Wiedergabe von Videobildern
US5542038A (en) * 1993-07-29 1996-07-30 Cirrus Logic, Inc. Method and system for generating dynamic zoom codes
US5577181A (en) * 1995-06-07 1996-11-19 E-Systems, Inc. Method for autonomous determination of tie points in imagery

Also Published As

Publication number Publication date
EP0775976B1 (en) 2004-06-16
DE69632712D1 (de) 2004-07-22
EP0775976A3 (en) 1998-01-28
EP0775976A2 (en) 1997-05-28
US5745123A (en) 1998-04-28
CA2191297A1 (en) 1997-05-28

Similar Documents

Publication Publication Date Title
JP2921659B2 (ja) ビデオ・イメージの寸法変更装置及び方法
US4809345A (en) Method of and apparatus for enlarging/reducing two-dimensional images
US6333743B1 (en) Method and apparatus for providing image and graphics processing using a graphics rendering engine
IL154450A (en) 3D simulation processing is suitable for systems without hardware support
JP2002171401A (ja) 間引き演算命令を備えたsimd型演算装置
KR100283413B1 (ko) 텍스처 매핑시스템
JP4728744B2 (ja) 画像処理装置
JPS61136177A (ja) 像データを計算する為に使う装置
JPH09231351A (ja) 画像のリサイジング方法及びそのためのコンピュータプログラム製品
JPH0846865A (ja) プログラマブル・ビデオ変換レンダリング方法及び装置
US5179647A (en) Method and apparatus for implementing adaptive forward differencing using integer arithmetic
JP2814860B2 (ja) 画像拡大縮小装置
JP2000187726A (ja) デ―タ補間方法および装置及び記憶媒体
US9286654B2 (en) Image scaling processor and image scaling processing method
KR101219103B1 (ko) 프로그래밍 가능한 프로세서, 및 디지털 신호 처리 동작을 수행하는 방법
AU704659B2 (en) Method of transposing data
EP1032883B1 (en) Data resampler for data processing system
JP2613364B2 (ja) 図形処理システム
KR100665485B1 (ko) 디지털 신호 처리 장치 및 디지털 신호 처리 방법
JPH081556B2 (ja) 画像メモリ装置
JPH04354068A (ja) 画像データ補間方法及び装置
JPH09147097A (ja) データ補間装置
JPS5887655A (ja) パイプライン高速フ−リエ変換装置
JPH0480428B2 (ja)
JP2604711B2 (ja) 画像変換装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070413

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070524

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070615