JPH07320044A - イメージ・データのジオメトリ変換方法及び装置 - Google Patents

イメージ・データのジオメトリ変換方法及び装置

Info

Publication number
JPH07320044A
JPH07320044A JP7007992A JP799295A JPH07320044A JP H07320044 A JPH07320044 A JP H07320044A JP 7007992 A JP7007992 A JP 7007992A JP 799295 A JP799295 A JP 799295A JP H07320044 A JPH07320044 A JP H07320044A
Authority
JP
Japan
Prior art keywords
pixel
image data
queue
buf
reg
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.)
Granted
Application number
JP7007992A
Other languages
English (en)
Other versions
JP2737829B2 (ja
Inventor
Albert Z Zhao
アルバート・ゼット・ザオ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07320044A publication Critical patent/JPH07320044A/ja
Application granted granted Critical
Publication of JP2737829B2 publication Critical patent/JP2737829B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】 イメージ・データのジオメトリ変換を行なう
方法及び装置を与える。 【構成】 予め定義された複数個のコード・ブロツクが
与えられ、それらのコード・ブロツクから、一連のコー
ド・ブロツク、即ちコード・ブロツクの待ち行列が選択
され、そして、ジオメトリ変換が遂行されるべき画素イ
メージ・データから、1つのイメージ・ラインにパター
ン化される。コード・ブロツクの待ち行列が発生された
後、そのコード・ブロツクの待ち行列は各イメージ・ラ
インのために実行され、そして、実行の結果として変換
されたイメージ・データは別のメモリ、即ち別のバツフ
アの中にストアされる。 【効果】 デイスプレイの水平ラインの変換処理時間を
顕著に短縮する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、イメージの寸法変更の
ようなイメージ・データのジオメトリ変換を行なうため
の処理動作に関する。本発明の方法は、カラー・イメー
ジの寸法変更の処理時間を短縮するために特に有用であ
る。
【0002】イメージ・データのジオメトリ変換は、コ
ンピユータ・グラフイツクにおいて用いられる必須の動
作である。代表的なジオメトリ変換は、トランスレーシ
ヨン変換、即ちイメージ・ビツト・マツプ中の適宜の位
置に記号を付加する変更と、回転変換、即ちイメージの
向きの変更と、スケール変換、即ちイメージの寸法の変
更とを含んでいる。
【0003】本発明はスケール変換の改良に向けられて
いるが、以下に説明する実施例に適当な修正を加えるこ
とによつて、本発明の原理を、回転変換や、逆変換など
の他のジオメトリ変換に適用することができるのは当業
者であれば容易に理解できる。
【0004】図1は、座標点(4、4)及び(7、4)
に基礎を持つ家の形の初期イメージを示す図である。こ
の例示において、x−y座標軸は、寸法変更(scalin
g)処理を明らかに示すために用いられている。
【0005】図2は、図1のイメージが1/2の係数で
均一に寸法変更された場合、つまり、図1のイメージの
比率には影響を与えずに寸法が変更された場合の変更結
果を示す図である。
【0006】図2とは対照的に、図3は同じイメージ
(図1のイメージ)を異なつた係数で寸法変換した場合
の変更結果を示す図である。図3において、イメージは
x座標軸では係数1/2で寸法変更され、y座標軸では
係数1/4で寸法変更されており、イメージの比率に変
更結果が現われている。
【0007】
【従来の技術】24ビツトのカラー・イメージの寸法変
更の従来の方法は、「画素複製(pixel replicatio
n)」と呼ばれる「画素毎の(pixel by pixel)」変更
方法である。例えば、図4及び図5において、各四角形
は1つの画素を表わしている。画素複製を用いることに
より、図4に示したイメージの各画素は、図5において
N×Nブロツクの画素に置き換えられており、結果とし
て、Nのスケール係数によつてイメージが拡大されてい
る。(図示されているように、図5のイメージの寸法は
図4のイメージの寸法よりも2倍拡大されたイメージを
表わしている。)
【0008】従来の寸法変更方法の問題点は、例えば、
イメージを拡大する時に、或る種の異例の動作を除け
ば、通常、各イメージ・ライン中の画素は連続した態様
で一緒にストアされるので、垂直方向の拡大が水平方向
の拡大よりも遥かに効率的であることである。その結
果、水平ライン上の動作は寸法変更処理全体として可成
り低速になる。
【0009】
【発明が解決しようとする課題】本発明の目的は、イメ
ージを拡大する際に、水平方向の拡大処理のようなイメ
ージ・ラインの寸法変更を顕著に改善するように設計さ
れた寸法変更処理方法及び装置を提供することにある。
【0010】本発明の他の目的は、イメージ・データ、
特にカラー・イメージ・データのイメージ寸法を変更す
るようなジオメトリ変換を遂行する方法及び装置を提供
することにある。
【0011】
【課題を解決するための手段】本発明は、画素イメージ
・データのイメージ・ラインのためのコード・ブロツク
の待ち行列を発生するステツプと、イメージ・ラインの
ために、ブロツクの待ち行列をプロセツサ中のデステイ
ネーシヨン・バツフアの中に実行するステツプとをコン
ピユータで実行することとを含む処理環境中にあるソー
ス・バツフアからの画素イメージ・データをジオメトリ
変換する方法を与える。各コード・ブロツクは、ジオメ
トリ変換によつて決定される少なくとも1つの係数を持
つている。同一コード・ブロツクの待ち行列は、画素イ
メージ・データからの残りの各イメージ・ラインのため
に実行され、そして、各画素は処理環境中にあるデステ
イネーシヨン・バツフアの中にコピーされる。
【0012】また、本発明は、画素イメージ・データの
イメージ・ラインのためのコード・ブロツクの待ち行列
を発生し、次に、画素イメージ・データからの相次ぐ各
イメージ・ラインのためのコード・ブロツクの待ち行列
を、デステイネーシヨン・バツフアの中に実行するステ
ツプをコンピユータで遂行することと、各コード・ブロ
ツクがスケール係数を持つていることとを含むプロセツ
サ環境にあるソース・バツフアからの画素イメージ・デ
ータのスケール変換方法を与える。
【0013】更に、本発明に従つて、画素イメージ・デ
ータのジオメトリ変換を処理する装置が与えられる。本
発明のジオメトリ変換処理装置は、予め定義された複数
個のコード・ブロツクのキヤツシユを含み、予め定義さ
れたコード・ブロツクの各々は、ジオメトリ変換の少な
くとも1つの係数を持つている。また、画素イメージ・
データからのイメージ・ラインのためのブロツクの待ち
行列を形成するために、予め定義されたコード・ブロツ
クのキヤツシユからコード・ブロツクを選択する手段
と、処理環境にある画素イメージ・データを受け取るた
めに、ソース・バツフア及びデステイネーシヨン・バツ
フアを定義するための手段とが与えられる。
【0014】
【実施例】本発明に従つたイメージ・データ処理は、図
6のブロツク図に示された形式の要素を有する処理環境
において行なわれる。
【0015】通常、ユーザは、コンピユータの表示装置
10などに表示されるオリジナル画素イメージ・データ
から形成されるイメージを既に持つており、その表示か
ら、イメージの寸法変更の必要を決定し、またはイメー
ジに関する他のジオメトリ変換を行なう必要を決定す
る。
【0016】本発明の処理を行なうために、画素イメー
ジ・データは、通常、その表示と関連されたバツフアか
ら、利用可能なメモリ、またはバツフアの独立した領域
を持つシステムの処理環境12中にコピーされる。
【0017】インテル社の80X86フアミリのような
ある種のコンピユータ・プロセツサにおいて、データ
は、1つのメモリ位置から他のメモリ位置へ容易に直接
に移動できないので、通常、インターリーブ用のレジス
タが使用される。
【0018】本発明の良好な実施例の説明において、処
理環境の中に入力を受け取るバツフアは、ソース・バツ
フア14と呼ばれ、他方、処理されたイメージ・デー
タ、即ち出力を受け取るバツフアはデステイネーシヨン
(destination)バツフア16と呼ばれる。
【0019】本発明の良好な実施例がイメージ寸法変更
のジオメトリ変換と関連して以下に説明される。
【0020】本発明で提案するメカニズムの主体は、画
素イメージ・データ中のイメージ・ラインの寸法に適合
された、事前に計算したコード・ブロツクの待ち行列を
使用することである。
【0021】この待ち行列中の各コード・ブロツクは、
特定の寸法変更動作に対して設計された小さなルーチン
である。
【0022】最初のステツプは、イメージ・ラインのた
めのコード・ブロツクの待ち行列を発生し、次に、コー
ド・ブロツクの待ち行列からのコード・ブロツクを実行
することである。ブロツクの待ち行列中のすべてのブロ
ツクが実行された時、イメージ・ラインは与えられた寸
法に変更される。その後、コード・ブロツクの待ち行列
の実行は、画素イメージ・データの残りのすべてのイメ
ージ・ラインのために繰り返えされる。
【0023】図7は、コード・ブロツクの待ち行列を、
コンピユータによつて発生させるステツプを模式的に示
す流れ図である。単一のイメージ・ラインを取り出し
て、最初の画素が選択され(ボツクス20)、そのスケ
ール係数が累算器の中に加えられる(ボツクス22)。
若し累算器の値が最小のブロツク寸法(コンピユータ・
プログラムの中で予め決められている)よりも大きい
か、または等しいければ(ボツクス24)、対応するブ
ロツクは、ブロツク・トリー(後述する)に従つて計算
される(ボツクス26)。次に、ブロツクのエントリ・
ポイントは、ブロツクの待ち行列に挿し込まれ(ボツク
ス28)、累算器は復帰される(ボツクス30)。
【0024】次の画素を得る試みがなされ(ボツクス3
2)、そして若しこの試みが成功したならば(ボツクス
34)、上述のステツプに従つて次のブロツクがブロツ
クの待ち行列のために計算される。若しラインの中に他
の画素が残つていなければ、終結ブロツクのエントリ・
ポイントがブロツクの待ち行列の中に押し込まれる(ボ
ツクス36)。
【0025】終結ブロツクは、ブロツクの待ち行列がパ
ターン化されているイメージ・ラインよりも長いイメー
ジ・ラインの終りにある左端を越えた画素を取り扱うた
めの簡単なメカニズムである。終結ブロツクは、待ち行
列の終端に付加された復帰しない特別のブロツクであつ
て、ブロツクの待ち行列の実行を止めさせるもの、つま
り、ブロツクの待ち行列が空か否かを決定するチエツク
動作を阻止するものである。制御が終結ブロツクに到達
すると、終結ブロツクは、左端を越えた画素を処理し、
次に、現在のイメージ・ラインのブロツクの待ち行列の
実行を止める。
【0026】良好な実施例において、終結ブロツクは、
ソース・バツフアからデステイネーシヨン・バツフア
へ、左端を越えた各画素を、画素のスケール係数に対応
した回数だけコピーさせる。
【0027】与えられた最小ブロツク寸法のために、ど
のブロツクを幾つ必要とするかを決めるために、下記の
ルールに従つて、ブロツク・トリーが発生される。 (a) 与えられた最小ブロツク寸法Nに基づいて、N
−1個の子ノードを持つルート・ノードを描くこと。 (b) 値Iの各子ノードのために、下記の2つの条件
を持つ可能性あるすべてのオフスプリング(offsprin
g)を発生すること。(1) その直接の子ノードとし
ては、3つの可能性あるノード(I−1)、(I)及び
(I+1)だけであることと、(2) 任意の1つの経
路に沿つた内部ノード(リーフ・ノードでない)の値の
和がNよりも小さいこと。
【0028】例えば、4の最小ブロツク寸法を用いた実
施例において、ブロツク・ツリーは下記のようになる。
【0029】
【表1】
【0030】上記のトリー中の各経路は入力画素の順序
を表わしている、つまり「レベル1」のノードは第1の
入力画素であり、「レベル2」のノードは第2の入力画
素である等々、以下、同じである。各ノードの括弧内の
数字はその画素のスケール係数である。
【0031】例えば、トリー(1)−(1)−(1)−
(1)の「経路1」は、すべてが同じ画素スケール係数
1を有する4個の入力画素を表わしており、他方、トリ
ー(3)−(4)の「経路12」は、2つの入力画素を
表わしており、それらの画素の中で第1の画素はスケー
ル係数3を持ち、第2の画素はスケール係数4を持つて
いる。
【0032】上述のブロツク・ツリーに基づいて、ブロ
ツクの待ち行列の実行は、下記に示すようなハード・コ
ード化された12個のブロツクを生じる。
【0033】「ブロツク1」:ソース・バツフアから4
個の画素を取り出し、それらの画素をデステイネーシヨ
ン・バツフアへ移動する。これは、以下のような疑似コ
ードで表わされる。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+3 ] o_pixel_buf [ j+3 ] ← Reg i ← i + 4 j ← j + 4
【0034】上述の疑似コードにおいて、i_pixel_buf
はオリジナル・イメージ・ラインを保持する入力バツフ
ア、即ちソース・バツフアであり、o_pixel_bufは寸法
変更されたイメージ・ラインを保持する出力バツフア、
即ちデステイネーシヨン・バツフアであり、i及びjは夫
々入力バツフア及び出力バツフアの指標であり、Regは
インテル社の80X86フアミリのプロセツサに必要と
するレジスタである。
【0035】カラーの画素イメージ・データの性質は、
各画素が24ビツトで構成され、各8ビツトが原色の1
つを表わすようなものであることには注意を向ける必要
がある。然しながら、画素イメージ・データの転送は3
2ビツトのセグメントで行なわれる。その結果、「ブロ
ツク1」の生成に関連して既に述べたイメージ・データ
の4個の画素は、たつた3つの動作で転送することがで
きる。以下に説明するすべての実施例についても、この
ことは想起されるべきである。
【0036】「ブロツク2」:ソース・バツフアから4
個の画素を取り出し、そして、最後の画素を1回だけ複
製して、それらの画素をデステイネーシヨン・バツフア
へ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+3 ] o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg i ← i + 4 j ← j + 5
【0037】「ブロツク3」:ソース・バツフアから3
個の画素を取り出し、そして、最後の画素を1回だけ複
製して、それらの画素をデステイネーシヨン・バツフア
へ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg i ← i + 3 j ← j + 4
【0038】「ブロツク4」:ソース・バツフアから3
個の画素を取り出し、そして、中間の画素を1回だけ複
製して、それらの画素をデステイネーシヨン・バツフア
へ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+3 ] ← Reg i ← i + 3 j ← j + 4
【0039】「ブロツク5」:ソース・バツフアから3
個の画素を取り出し、そして、中間の画素及び最後の画
素の両方を1回だけ複製して、それらの画素をデステイ
ネーシヨン・バツフアへ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg i ← i + 3 j ← j + 5
【0040】「ブロツク6」:ソース・バツフアから3
個の画素を取り出し、そして、第1の画素を1回だけ複
製して、それらの画素をデステイネーシヨン・バツフア
へ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+3 ] ← Reg i ← i + 3 j ← j + 4
【0041】「ブロツク7」:ソース・バツフアから3
個の画素を取り出し、そして、第1の画素及び最後の画
素を1回だけ複製して、それらの画素をデステイネーシ
ヨン・バツフアへ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+2 ] o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg i ← i + 3 j ← j + 5
【0042】「ブロツク8」:ソース・バツフアから2
個の画素を取り出し、そして、両方の画素を1回だけ複
製して、それらの画素をデステイネーシヨン・バツフア
へ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg i ← i + 2 j ← j + 4
【0043】「ブロツク9」:ソース・バツフアから2
個の画素を取り出し、そして、第1の画素を1回複製
し、かつ第2の画素を2回複製して、それらの画素をデ
ステイネーシヨン・バツフアへ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg i ← i + 2 j ← j + 5
【0044】「ブロツク10」:ソース・バツフアから
2個の画素を取り出し、そして、第1の画素を2回複製
し、かつ第2の画素を1回だけ複製して、それらの画素
をデステイネーシヨン・バツフアへ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg i ← i + 2 j ← j + 5
【0045】「ブロツク11」:ソース・バツフアから
2個の画素を取り出し、そして、両方の画素を2回複製
して、それらの画素をデステイネーシヨン・バツフアへ
移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg o_pixel_buf [ j+5 ] ← Reg i ← i + 2 j ← j + 6
【0046】「ブロツク12」:ソース・バツフアから
2個の画素を取り出し、そして、第1の画素を2回複製
し、かつ第2の画素を3回複製して、それらの画素をデ
ステイネーシヨン・バツフアへ移動する。 entry_point: Reg ← i_pixel_buf [ i ] o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg Reg ← i_pixel_buf [ i+1 ] o_pixel_buf [ j+3 ] ← Reg o_pixel_buf [ j+4 ] ← Reg o_pixel_buf [ j+5 ] ← Reg o_pixel_buf [ j+6 ] ← Reg i ← i + 2 j ← j + 7
【0047】上述の12個のブロツクの各々は、特別の
場合のために設計されており、チエツク動作とか、ブラ
ンチ動作とか、または他の支援動作を使用しないから、
余分な負担を課さない。ブロツクを連続して待ち行列の
中に配列する時にのみ余分な負担がかかる。
【0048】本発明の良好な実施例に従うと、画素が大
きなスケール係数を持つ場合を処理するために、予め定
義されているコード・ブロツクのキヤツシユは下記のよ
うな4つの総括的なコード・ブロツクによつて完成され
る。
【0049】「ブロツク13」:ソース・バツフアから
1個の画素を取り出し、その画素を4×N回だけデステ
イネーシヨン・バツフアの中に複製する。この場合、N
はループ・カウンタの初期値である。 entry_point: counter ← N Reg ← i_pixel_buf [ i ] loop_start: o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg j ← j + 4 counter ← counter - 4 test counter if counter is not zero, jump to loop_start. i ← i + 1
【0050】「ブロツク14」:ソース・バツフアから
1個の画素を取り出し、その画素を4×N+1回だけデ
ステイネーシヨン・バツフアの中に複製する。この場
合、Nはループ・カウンタの初期値である。 entry_point: counter ← N Reg ← i_pixel_buf [ i ] loop_start: o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg j ← j + 4 counter ← counter - 4 test counter if counter is not zero, jump to loop_start. o_pixel_buf [ j ] ← Reg i ← i + 1 j ← j + 1
【0051】「ブロツク15」:ソース・バツフアから
1個の画素を取り出し、その画素を4×N+2回だけデ
ステイネーシヨン・バツフアの中に複製する。この場
合、Nはループ・カウンタの初期値である。 entry_point: counter ← N Reg ← i_pixel_buf [ i ] loop_start: o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg j ← j + 4 counter ← counter - 4 test counter if counter is not zero, jump to loop_start. o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg i ← i + 1 j ← j + 2
【0052】「ブロツク16」:ソース・バツフアから
1個の画素を取り出し、その画素を4×N+3回だけデ
ステイネーシヨン・バツフアの中に複製する。この場
合、Nはループ・カウンタの初期値である。 entry_point: counter ← N Reg ← i_pixel_buf [ i ] loop_start: o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg o_pixel_buf [ j+3 ] ← Reg j ← j + 4 counter ← counter - 1 test counter if counter is not zero, jump to loop_start. o_pixel_buf [ j ] ← Reg o_pixel_buf [ j+1 ] ← Reg o_pixel_buf [ j+2 ] ← Reg i ← i + 1 j ← j + 3
【0053】上述のブロツクにおいて、「ループ・カウ
ンタ」の初期値は、スケール係数を例えば、上述の実施
例においては4である最小ブロツク寸法で割ることによ
り簡単に決めることができる。割り算の結果が割り切れ
て、余りが0ならば、ブロツク13が用いられる。然し
ながら、若し余りが1か、2か、3ならば、夫々ブロツ
ク14、15、または16が用いられる。割り算は経済
的に非常に割高な演算ではあるけれども、4による割り
算は、スケール係数の右側2ビツトをシフトすることに
より非常に簡単に、しかも安価に行なうことができる。
【0054】画素を移動する動作の外に、これらの4つ
のブロツクは、各4つの出力画素毎に、夫々1つのイン
デツクス増加動作と、1つのカウンタ減少動作と、1つ
のカウンタ・チエツク動作と、1つのブランチ動作とを
実行する。この著しい負担は、ブロツク1乃至ブロツク
12には必要としないが、ブロツク13乃至ブロツク1
6においては、負担を減少するために4つの画素により
分担される。
【0055】ブロツクの待ち行列の発生に続いて、ブロ
ツクの待ち行列は、イメージ・データ中の各ラインのた
めに実行される。
【0056】本発明の動作を説明するための例として、
下記のような2つのイメージ・ラインと、3.25のイ
メージ・スケール係数とを持つものと仮定する。 P1 P2 P3 P4 P5 P6 P7 P8
【0057】画素スケール係数は整数でなければなら
ず、かつそれらの平均値はイメージ係数と同じでなけれ
ばならない。従つて、画素スケール係数3、3、3及び
4は、(3+3+3+4)÷4=3.25の計算から取
られた値を夫々、列1、列2、列3及び列4の画素に対
して割り当てられる。これらの画素スケール係数に基づ
いて、このアルゴリズムのステツプ1は下記の3つのブ
ロツクを含むブロツクの待ち行列を発生する。
【0058】
【表2】
【0059】このブロツクの発生に続いて、第1のイメ
ージ・ラインに関するブロツクの待ち行列が先ず実行さ
れる。このブロツクの待ち行列の実行の入力及び出力は
下記の通りである。
【0060】
【表3】
【0061】第1のイメージ・ラインの寸法変更の結果
は下記の通りである。 P1 P1 P1 P2 P2 P2 P3 P3 P
3 P4 P4 P4 P4
【0062】同様に、同じブロツクの待ち行列及び実行
が第2のイメージ・ラインにも適用される。第2のオリ
ジナル・イメージ・ラインのために最後に寸法変更され
たイメージ・ラインは下記の通りである。 P5 P5 P5 P6 P6 P6 P7 P7 P
7 P8 P8 P8 P8
【0063】本発明はイメージ・データの拡大処理に関
連して説明してきた。イメージ・データの他のタイプの
ジオメトリ変換に係る本発明の実施例に対して当業者に
は自明な変更を施すことにより、イメージ・データの縮
小処理にも用いることができる。
【0064】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0065】(1)ソース・バツフアからの画素イメー
ジ・データのジオメトリ変換処理をコンピユータで遂行
する方法において、(a) 前記画素イメージ・データ
のイメージ・ラインのための各コード・ブロツクがジオ
メトリ変換によつて決定される少なくとも1つの係数を
有する前記コード・ブロツクの待ち行列を発生するステ
ツプと、(b) 前記画素イメージ・データからの前記
イメージ・ラインのために、前記待ち行列からのデータ
・ブロツクをデステイネーシヨン・バツフアの中に実行
するステツプと、(c) 前記画素イメージ・データか
らの残りの各イメージ・ラインのために、上記ステツプ
(b)を反復するステツプとを含む方法。 (2)前記イメージ・ラインのためのコード・ブロツク
の待ち行列を発生するステツプは、予め定義されたコー
ド・ブロツクのキヤツシユからコード・ブロツクを選択
することと、ジオメトリ変換のためのイメージ・ライン
を発生するために、上記選択されたコード・ブロツクを
順番に配置することとを含む(1)に記載の方法。 (3)ソース・バツフアからの画素イメージ・データの
寸法変更処理を、コンピユータで遂行する方法におい
て、前記画素イメージ・データのイメージ・ラインのた
めのコード・ブロツクがスケール係数を有する前記コー
ド・ブロツクの待ち行列を発生するステツプと、前記画
素イメージ・データからの連続する各イメージ・ライン
のための前記コード・ブロツクの待ち行列を、デステイ
ネーシヨン・バツフアの中に実行するステツプとを含む
方法。 (4)前記イメージ・ラインのためのコード・ブロツク
の待ち行列を発生するステツプは、予め定義されたコー
ド・ブロツクのキヤツシユからのコード・ブロツクを選
択することと、寸法変更されたイメージ・ラインを発生
するために、上記選択されたコード・ブロツクを順番に
配置することとを含む(3)に記載の方法。 (5)前記コード・ブロツクの実行後に、前記イメージ
・ラインからの未処理の画素を位置付けるステツプと、
前記未処理の画素を前記デステイネーシヨン・バツフア
の中に個々にコピーするステツプとを含む(4)に記載
の方法。 (6)前記未処理の画素を前記デステイネーシヨン・バ
ツフアの中に個々にコピーするステツプは、前記スケー
ル係数によつて前記未処理の各画素を複製することと、
前記複製された画素を前記デステイネーシヨン・バツフ
アの中にコピーすることとを含む(5)に記載の方法。 (7)前記イメージ・ラインのためのコード・ブロツク
の待ち行列を発生するステツプは、スケール係数を有す
るコード・ブロツクの実行後に未処理の画素を実行する
ために、前記待ち行列の終りに終結コード・ブロツクを
付加することを含む(6)に記載の方法。 (8)画素イメージ・データのジオメトリ変換処理を遂
行する装置において、予め定義されたコード・ブロツク
の各々がジオメトリ変換の少なくとも1つの係数を有す
る、複数個の予め定義されたコード・ブロツクの前記キ
ヤツシユと、画素イメージ・データからのイメージ・ラ
インのコード・ブロツクの待ち行列を形成するために、
予め定義されたコード・ブロツクのキヤツシユからコー
ド・ブロツクを選択する手段と、処理環境にある画素イ
メージ・データを受け取るために、ソース・バツフア及
びデステイネーシヨン・バツフアを定義する手段とを含
む装置。 (9)前記画素イメージ・データからの各イメージ・ラ
インのための前記コード・ブロツクの待ち行列を実行す
る手段を含む(8)に記載の変換装置。 (10)前記ソース・バツフア及びデステイネーシヨン
・バツフアを定義する手段は、前記画素イメージ・デー
タを前記ソース・バツフアの中にコピーする手段を含
み、前記各イメージ・ラインのための前記コード・ブロ
ツクの待ち行列を実行する手段は、各イメージ・ライン
のために発生された前記コード・ブロツクの待ち行列を
前記デステイネーシヨン・バツフアの中にコピーする手
段を含む(9)に記載の装置。 (11)前記デステイネーシヨン・バツフアからの前記
画素イメージ・データの前記ジオメトリ変換を表示する
手段を含む(8)乃至(10)のいずれかに記載の装
置。
【0066】
【発明の効果】イメージ・データのジオメトリ変換に要
する処理時間を著しく短縮する。
【図面の簡単な説明】
【図1】均一で、かつ異なつた寸法変更を行なつたイメ
ージを説明する図である。
【図2】均一で、かつ異なつた寸法変更を行なつたイメ
ージを説明する図である。
【図3】均一で、かつ異なつた寸法変更を行なつたイメ
ージを説明する図である。
【図4】画素毎に拡大したイメージを説明する図であ
る。
【図5】画素毎に拡大したイメージを説明する図であ
る。
【図6】本発明の方法を実行するための代表的な処理環
境を示す図である。
【図7】本発明の良好な実施例に従つてブロツクの待ち
行列を発生するステツプを説明するための流れ図であ
る。
【符号の説明】
10 表示装置 12 処理環境 14 ソース・バツフア 16 デステイネーシヨン・バツフア

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】ソース・バツフアからの画素イメージ・デ
    ータのジオメトリ変換処理をコンピユータで遂行する方
    法において、 (a) 前記画素イメージ・データのイメージ・ライン
    のための各コード・ブロツクがジオメトリ変換によつて
    決定される少なくとも1つの係数を有する前記コード・
    ブロツクの待ち行列を発生するステツプと、 (b) 前記画素イメージ・データからの前記イメージ
    ・ラインのために、前記待ち行列からのデータ・ブロツ
    クをデステイネーシヨン・バツフアの中に実行するステ
    ツプと、 (c) 前記画素イメージ・データからの残りの各イメ
    ージ・ラインのために、上記ステツプ(b)を反復する
    ステツプとを含む方法。
  2. 【請求項2】前記イメージ・ラインのためのコード・ブ
    ロツクの待ち行列を発生するステツプは、予め定義され
    たコード・ブロツクのキヤツシユからコード・ブロツク
    を選択することと、ジオメトリ変換のためのイメージ・
    ラインを発生するために、上記選択されたコード・ブロ
    ツクを順番に配置することとを含む請求項1に記載の方
    法。
  3. 【請求項3】ソース・バツフアからの画素イメージ・デ
    ータの寸法変更処理を、コンピユータで遂行する方法に
    おいて、 前記画素イメージ・データのイメージ・ラインのための
    コード・ブロツクがスケール係数を有する前記コード・
    ブロツクの待ち行列を発生するステツプと、 前記画素イメージ・データからの連続する各イメージ・
    ラインのための前記コード・ブロツクの待ち行列を、デ
    ステイネーシヨン・バツフアの中に実行するステツプと
    を含む方法。
  4. 【請求項4】前記イメージ・ラインのためのコード・ブ
    ロツクの待ち行列を発生するステツプは、予め定義され
    たコード・ブロツクのキヤツシユからのコード・ブロツ
    クを選択することと、寸法変更されたイメージ・ライン
    を発生するために、上記選択されたコード・ブロツクを
    順番に配置することとを含む請求項3に記載の方法。
  5. 【請求項5】前記コード・ブロツクの実行後に、前記イ
    メージ・ラインからの未処理の画素を位置付けるステツ
    プと、 前記未処理の画素を前記デステイネーシヨン・バツフア
    の中に個々にコピーするステツプとを含む請求項4に記
    載の方法。
  6. 【請求項6】前記未処理の画素を前記デステイネーシヨ
    ン・バツフアの中に個々にコピーするステツプは、前記
    スケール係数によつて前記未処理の各画素を複製するこ
    とと、前記複製された画素を前記デステイネーシヨン・
    バツフアの中にコピーすることとを含む請求項5に記載
    の方法。
  7. 【請求項7】前記イメージ・ラインのためのコード・ブ
    ロツクの待ち行列を発生するステツプは、スケール係数
    を有するコード・ブロツクの実行後に未処理の画素を実
    行するために、前記待ち行列の終りに終結コード・ブロ
    ツクを付加することを含む請求項6に記載の方法。
  8. 【請求項8】画素イメージ・データのジオメトリ変換処
    理を遂行する装置において、 予め定義されたコード・ブロツクの各々がジオメトリ変
    換の少なくとも1つの係数を有する、複数個の予め定義
    されたコード・ブロツクの前記キヤツシユと、画素イメ
    ージ・データからのイメージ・ラインのコード・ブロツ
    クの待ち行列を形成するために、予め定義されたコード
    ・ブロツクのキヤツシユからコード・ブロツクを選択す
    る手段と、 処理環境にある画素イメージ・データを受け取るため
    に、ソース・バツフア及びデステイネーシヨン・バツフ
    アを定義する手段とを含む装置。
  9. 【請求項9】前記画素イメージ・データからの各イメー
    ジ・ラインのための前記コード・ブロツクの待ち行列を
    実行する手段を含む請求項8に記載の変換装置。
  10. 【請求項10】前記ソース・バツフア及びデステイネー
    シヨン・バツフアを定義する手段は、前記画素イメージ
    ・データを前記ソース・バツフアの中にコピーする手段
    を含み、 前記各イメージ・ラインのための前記コード・ブロツク
    の待ち行列を実行する手段は、各イメージ・ラインのた
    めに発生された前記コード・ブロツクの待ち行列を前記
    デステイネーシヨン・バツフアの中にコピーする手段を
    含む請求項9に記載の装置。
  11. 【請求項11】前記デステイネーシヨン・バツフアから
    の前記画素イメージ・データの前記ジオメトリ変換を表
    示する手段を含む請求項8乃至10のいずれかに記載の
    装置。
JP7007992A 1994-05-20 1995-01-23 イメージ・データの拡大変換方法及び装置 Expired - Lifetime JP2737829B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002124030A CA2124030C (en) 1994-05-20 1994-05-20 Method for colour image scaling and other geometrical transformations
CA2124030 1994-05-20

Publications (2)

Publication Number Publication Date
JPH07320044A true JPH07320044A (ja) 1995-12-08
JP2737829B2 JP2737829B2 (ja) 1998-04-08

Family

ID=4153642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7007992A Expired - Lifetime JP2737829B2 (ja) 1994-05-20 1995-01-23 イメージ・データの拡大変換方法及び装置

Country Status (4)

Country Link
US (1) US5838297A (ja)
EP (1) EP0683472A3 (ja)
JP (1) JP2737829B2 (ja)
CA (1) CA2124030C (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5952994A (en) * 1997-07-31 1999-09-14 Hewlett-Packard Company Method for scaling an image
US6417867B1 (en) 1999-05-27 2002-07-09 Sharp Laboratories Of America, Inc. Image downscaling using peripheral vision area localization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4242678A (en) * 1978-07-17 1980-12-30 Dennison Manufacturing Company Variable size character generation using neighborhood-derived shapes
JPS623372A (ja) * 1985-06-27 1987-01-09 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 画像変換装置
JP2506120B2 (ja) * 1987-09-16 1996-06-12 株式会社日立製作所 画像表示方法
EP0312235A3 (en) * 1987-10-13 1991-09-11 AT&T Corp. Graphics image editor
US4918626A (en) * 1987-12-09 1990-04-17 Evans & Sutherland Computer Corp. Computer graphics priority system with antialiasing
US5029228A (en) * 1987-12-28 1991-07-02 Mitsubishi Denki Kabushiki Kaisha Image data filing system
JP2722123B2 (ja) * 1989-12-08 1998-03-04 パイオニア株式会社 車載ナビゲーション装置
JPH0427567A (ja) * 1990-05-22 1992-01-30 Mitsubishi Electric Corp 印刷制御方式
JP3152396B2 (ja) * 1990-09-04 2001-04-03 株式会社東芝 医用画像表示装置
SG44030A1 (en) * 1991-12-20 1997-11-14 Philips Electronics Uk Ltd Image processing arrangement

Also Published As

Publication number Publication date
US5838297A (en) 1998-11-17
EP0683472A2 (en) 1995-11-22
EP0683472A3 (en) 1996-04-03
JP2737829B2 (ja) 1998-04-08
CA2124030C (en) 1999-08-24
CA2124030A1 (en) 1995-11-21

Similar Documents

Publication Publication Date Title
US5821940A (en) Computer graphics vertex index cache system for polygons
JP3797666B2 (ja) グラフィックオブジェクトの塗りつぶしをアクティブ化する方法および装置
US5335296A (en) Process for high speed rescaling of binary images
JPH0756892A (ja) マスク付きベクトル演算器を持つ計算機
US12399720B2 (en) Apparatus and method
EP0314289B1 (en) Multiple pixel generator
JPH0444970B2 (ja)
JPH04213175A (ja) 大域レンダリングで使用するための分散処理装置
JPH1049665A (ja) 画像処理装置および方法
JP2518293B2 (ja) デ−タフロ−プロセツサ
JPH03210680A (ja) 曲線発生装置
JPH07320044A (ja) イメージ・データのジオメトリ変換方法及び装置
JPH05233795A (ja) 画像拡大縮小装置
US5812836A (en) System for processing iterative tasks in data processing systems
JP3305406B2 (ja) プログラム制御のプロセッサ
JP2006313518A (ja) 多次元高速フーリエ変換
JPH0785266A (ja) 画像回転装置
AU704659B2 (en) Method of transposing data
JP3066060B2 (ja) ベゼー曲線区間の多角形近似方式
JP2862388B2 (ja) 超高速画像処理システムのフィルタリング処理方式
JPH07110859A (ja) 画像処理方法およびその装置
JP2835366B2 (ja) 高速フーリエ変換用アドレス情報発生装置
JP2852050B2 (ja) 画像処理装置
Kawata et al. An outline font rendering processor with an embedded RISC CPU for high-speed hint processing
JPH0588887A (ja) データ処理装置