JP3551459B2 - 画像変形方法およびその装置 - Google Patents
画像変形方法およびその装置 Download PDFInfo
- Publication number
- JP3551459B2 JP3551459B2 JP35086493A JP35086493A JP3551459B2 JP 3551459 B2 JP3551459 B2 JP 3551459B2 JP 35086493 A JP35086493 A JP 35086493A JP 35086493 A JP35086493 A JP 35086493A JP 3551459 B2 JP3551459 B2 JP 3551459B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- line
- image data
- dot
- color
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Of Color Television Signals (AREA)
- Editing Of Facsimile Originals (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
Description
【産業上の利用分野】
本発明は、画像変形に係わり、詳しくはアニメーション、ゲーム等で用いられる、キャラクタデータ、背景データ等のドットで構成され、かつ各ドット毎に表示色番号またはパレット番号を持つようなビット配列形式の画像データを、元データのイメージを壊すことなく変形する画像変形方法およびその装置に関する。
【0002】
【従来の技術】
従来、アニメーション、ゲーム等ではビット配列形式の画像データを用いることが多く、この画像データによりキャラクターや背景データを表示している。そして、このビット配列形式の画像データはドットで構成され、かつ各ドット毎に表示色番号あるいはパレット番号を持つようになっている。図7に、ビット配列形式の画像データの従来の変形処理の原理を示す。なお、説明を分かり易くするために、変形の一例として画像データを縦方向に縮小した場合について説明する。
【0003】
ここで、従来の画像変形方法について説明する。図7(a)は変換前の元画像データの構成を示す図である。図7(a)において、左側の楕円図形は1色で構成され、右側の楕円図形は2色のドットを交互に配置して中間色で構成されている。また、図7(b)は変換後の画像データの構成を示す図である。図7(b)において、左側の楕円図形は図7(a)に示す左側の楕円図形の変形後の図形であり、右側の楕円図形は図7(a)に示す右側の楕円図形の変形後の図形である。以下では、図7(a)に示すような、縦16ピクセルから構成される元画像データを、図7(b)に示すような、縦8ピクセルの画像データに縮小する場合を例にとって説明する。
【0004】
図7(a)に示す元画像データの水平ライン数はライン0〜15までの16本であり、縮小後の画像データの水平ライン数は8本であるので、元画像データの16本の水平ラインの中から、表示すべき8本の水平ラインを選択することになる。元画像データの最初の水平ライン(ライン[0])を無条件に選択するものとすると、その他の水平ラインの選択の方法は次のようになる。
【0005】
まず、選択誤差(初期値0)eを決め、該選択誤差eに誤差増分Δeを加え、これを新たな選択誤差eとする。Δeは、(元の水平ライン数−1)/(縮小後の水平ライン数−1)である。誤差増分Δeを加えた新たな選択誤差eが、e≧1/2ならば、表示すべき元画像データのライン番号を1つ進めると共に、選択誤差eから[1]を引いて選択誤差を補正する。以降、e<1/2の関係になるまで、表示すべきライン番号を順次進め、選択誤差eを補正する動作を繰り返す。そして、e<1/2の関係になった時点のライン番号に対応するラインを次に選択すべき水平ラインとする。
【0006】
図7(a)においては、まず、ライン[0]が無条件に選択される。この時点で、選択誤差eは[0]、ライン番号は[0]になっている。また、誤差増分Δeは、Δe=(16−1)/(8−1)=2.14である。ここで、選択誤差e=0に、誤差増分Δe=2.14を加えると、e=0+2.14=2.14≧1/2になるので、ライン番号を1つ進める(ライン[1]になる)と共に、選択誤差eから[1]を引き補正する(e=2.14−1=1.14≧1/2)。この場合、補正した選択誤差eがまだ1/2以上なので、ライン番号を更に1つ進める(ライン[2]になる)と共に、選択誤差eから[1]を引き補正する(e=1.14−1=−0.14<1/2)。この時点で、選択誤差eが1/2より小さくなるので、次に表示すべきラインとしてライン[2]が選択される。
【0007】
同様に、ここまでの選択誤差e=−0.14に、誤差増分Δe=2.14を加えると(e=0.14+2.14=2.28≧1/2)、2.28となり、1/2以上になるので、ライン番号を1つ進める(ライン[3]になる)と共に、さらに選択誤差eから[1]を引き補正する(e=2.28−1=1.28≧1/2)。この場合、選択誤差eがまだ1/2以上なので、ライン番号を更に1つ進める(ライン[4]になる)と共に、再び、選択誤差eから[1]を引き補正する(e=1.28−1=−0.28<1/2)。この時点で、選択誤差が1/2より小さくなるので、次に表示すべきラインとしてライン[4]が選択される。
【0008】
このように、選択誤差eに誤差増分Δeを加え、その結果が1/2より大きいか小さいかによって処理を選択するもので、選択誤差が1/2以上のときに誤差を補正する。このようにすると、X座標を1ずつ変えていったときに、少なくとも誤差増分Δeが[1]の半分(1/2)より小さい場合にのみ、そのライン番号のラインを選択するので、ライン毎の画像が滑らかにつながることになる。
【0009】
以上の計算を繰り返すことにより、表示すべき8本の水平ライン(ライン[0]、[2]、[4]、[6]、[9]、[11]...)が選択される。この方法はブレセンハム(Bresenham)のアルゴリズムとして、一般に知られている。そして、上述した処理によって選択された水平ラインにおけるドットを表示すれば、図7(b)に示す縦方向に縮小された画像データが得られる。
【0010】
【発明を解決するための手段】
ところで、従来の画像変形方法では、画像データを変形する場合、画像データを構成する各ドットをすべて同等の扱いで変形していたので、2色のドットを交互に置いて中間色を表現していた部分は、変形後に2色のドットが不規則に入り交じってしまい、中間色の表現が壊れるという問題があった。例えば、上述したように、従来の画像変形方法で画像データを縮小した場合、図7(c)に示すように、2色を交互に配置して中間色を表現している画像データでは、中間色の表現が壊れてしまう。このため、変形した結果が、元画像データのイメージからかけ離れたものになってしまい、元画像データの色調を残した変形画像を使いたい場合には予めメモリに複数の画像データを持っておく方法を取らざるを得ず、コスト高になっていた。
【0011】
そこで、本発明は、2色のドットを交互に置いて中間色を表現している部分が変形されても元画像データの色調を損なうことなく、また、ビット配列形式の画像データを変形した時に、その一部分だけが変形されることなく、画像データを変形できる画像変形方法およびその装置を提供することを目的としている。
【0012】
【課題を解決すめための手段】
上記目的達成のため、請求項1記載の発明による画像変形方法は、指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを、指定された縮小率で所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、ドットデータを前記元画像データと同一に配列した複数のラインデータから構成される裏画像データを記憶し、前記ラインバッファに前記選択されたラインデータが記憶される毎に、前記裏画像データを構成するラインデータの指定を更新し、前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する、
ことを特徴とする。
また、好ましい態様として、例えば請求項2記載のように、前記裏画像データとして、元画像データの少なくとも一部のデータを用いるようにしてもよい。
【0013】
また、請求項3記載の発明による画像変形方法は、中間色を構成する2色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを指定された縮小率で所定の方向に変形縮小する際に、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、前記ラインバッファから出力されるドットデータが、縮小変形後の画像データを構成するドットデータのXY座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、XY座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する、ことを特徴とする。
【0014】
そして、請求項4記載の発明による画像変形装置は、指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、を有する画像変形装置において、前記記憶手段は、さらにドットデータを前記元画像データと同一に配列した複数のラインデータから構成された裏画像データを記憶し、前記ラインバッファに選択されたラインデータが記憶される毎に、指定される前記裏画像データのラインデータを更新する指定更新手段と、前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定更新手段により指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する出力制御手段と、
を有することを特徴とする。
また、好ましい態様として、例えば請求項5記載のように、前記裏画像データとして、元画像データの少なくとも一部のデータを用いるようにしてもよい。
【0015】
そして、請求項6記載の発明による画像変形装置は、中間色を構成する2色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、を有する画像変形装置において、前記ラインバッファから出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、XY座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、XY座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する変換手段と、を有することを特徴とする。
【0016】
【作用】
本発明では、指定色及びそれ以外の色のドットデータを複数個配列した部分、例えば、2色のドットを交互に置いて中間色を表現している部分等、縮小変形するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、元画像を構成する複数のラインデータの中から順次選択して出力した際、このラインデータのドットデータが指定色である場合は、それに代えて別に用意した裏画像データの該当するドットデータを出力する。
あるいは、出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、XY座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、XY座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する。
したがって、2色のドットを交互に置いて中間色を表現している部分が変形されても元画像データの色調を損なうことなく縮小変形できる。
【0017】
【実施例】
以下、図面を参照して本発明の実施例について説明する。
本発明の原理説明
まず、本発明の原理から説明する。図1は画像変形方法の原理を示す図である。図1(a)は従来と同様の変形前の元画像データを示し、特にビット配列形式の画像データで、楕円図形A,Bを表わしている。図1(a)において、左側の楕円図形Aは1色の画像データで構成され、右側の楕円図形Bは2色のドットを交互に配置した中間色の画像データで構成されている。画像データは、複数のドットで構成され、かつ各ドット毎に表示色番号あるいはパレット番号を持っている。図1(a)には、X軸方向に24個、Y軸方向に16個、24×16ピクセルからなる領域が示されており、各ピクセルは、X座標とY座標とによって(X,Y)の形式で表わされる。例えば、図示の左上角のピクセルは(0,0)で表わされ、その右隣のピクセルは(1,0)で表わされる。また、横方向に並ぶピクセル列はライン番号で表わされ、図示の場合、最上行のピクセル列のライン番号は[0]、次のピクセル列のライン番号は「1」、その下のピクセル列のライン番号は「2」と、下に行くにつれて、順次[1]ずつ大きくなり、最下行のピクセル列のライン番号が「15」となっている。
【0018】
また、図1(b)は、別に用意した裏画像データであり、予め図1(b)に示す楕円図形Bの画像データと同じく、2色のドットを交互に配置した中間色で構成されている。図において、裏画像データは、変換後のサイズである8×24のピクセルからなり、画像データに対応するピクセルには、2色のドットを交互に配置して、画像データと同じ中間色が実現されている。
本実施例では、前述した従来の画像変形方法に見られた問題をなくすために、中間色の表現で用いる2色の表示色番号またはパレット番号を指定して(指定色)、縮小によって最終的に表示するドットが指定色である時には、指定色のドットをそのまま表示するのではなく、別に用意した裏画像データから該当するドットを読み出して、該ドットを上記指定色のドットに代えて表示するようになっている。また、図1(c)は、変換後の画像データの構成を示す図である。図1(c)において、左側の楕円図形A’は図1(a)に示す左側の楕円図形Aの変形後の図形であり、右側の楕円図形B’は図1(a)に示す右側の楕円図形Bの変形後の図形である。
【0019】
以下では、図1(a)に示すような、縦16ピクセルから構成される元画像データを、図1(c)に示すような、縦8ピクセルの画像データに縮小する場合を例にとって説明する。図1(a)に示す元画像データの水平ライン数はライン0〜15までの16本であり、縮小後の画像データの水平ライン数は8本であるので、前述した説明と同様に、元画像データの16本の水平ラインの中から、表示すべき8本の水平ラインを選択することになる。
【0020】
水平ラインの選択には、本実施例においても、従来の変形処理と全く同じ方法が用いられる。また、指定した部分を変形させない変形処理では、画像を変形させずに表示するために、図1(b)に示すような画像データを用いる。変形処理では、まず、図1(a)に示す右側の楕円図形Bを構成している2色のドットのパレット番号を指定色とする。次に、従来の変形処理と全く同じ手法により表示すべきラインを順次選択し、図1(c)に示すような縦方向に縮小した画像データを得る。このとき、選択したライン毎に、該ラインに上記指定色のドットが含まれているか否かを判別し、指定色のドットが含まれている場合には、図1(b)に示す裏画像データの対応するラインからドットを読み出して、指定色のドットに代えて表示する。この結果、図1(c)に示す画像データが得られる。この場合、2色のドットを交互に配置して中間色を表現している部分があっても元画像データの色調を損なわずに変形できる。また、ビット配列形式の画像データを変形した時でも、その一部分だけが変形されてしまうことがない。
【0021】
次に、上記原理に基づく本発明の具体的な実施例について説明する。
画像変形装置の構成
図2は、本発明に係る画像変形方法を実現する画像変形装置の第1の実施例の構成を示すブロック図である。図2において、画像位置決定装置は、大きく分けて、CPU31、入力操作子32、記憶装置33、画像信号発生回路(Video Display Prosseser:以下VDPという)34、VRAM35およびTVディスプレイ36によって構成される。
CPU31は装置全体を制御するもので、入力操作子32の変形スイッチ(後述)が押されたことを検知し、その指令情報に対応すべく内部のメモリに格納されている制御プログラムに基づいて、記憶装置33に記憶されているビット配列形式の画像データを読み出して、指定部分を変形させない変形処理を施して変形した後、変形後のビット配列形式の画像データをVDP34に出力する。また、CPU31は内部レジスタ31aを有している。図3はCPU31の内部レジスタ31aに記憶されるデータを説明するための図である。図3において、内部レジスタ31aは、大きく分けて、ラインバッファ38と、ライン選択用レジスタ39から構成される。ラインバッファ38には1水平ライン分のドットデータが順次格納される。図示の例では、ピクセル(0,y)〜(23,y)のドットデータが格納される。また、ライン選択用レジスタ39には、前述した水平ラインを選択する際に用いられる、元画像データの現在処理中のラインを示す現在処理ライン番号、裏画像データの処理中のラインを示す裏処理ライン番号、元画像データの表示すべきラインを選択する時に用いるライン選択誤差eと、ライン選択誤差増分Δeとが格納されている。
【0022】
入力操作子32は、オペレータによって操作されるものであり、変形処理を行わせるきっかけを与えるための変形スイッチ32aを有している。なお、スイッチ32aは、単独操作のプッシュスイッチでもよいし、あるいは複数のスイッチからなるスイッチボード、キーボード等でもよい。また、入力操作子32としてスイッチボード等の他に、マウス、トラックボール等を用いてもよい。
【0023】
記憶装置(記憶手段)33には、変形対象となるビット配列形式の画像データ41、その変形方法を示す変形データ42、変形させない部分のパレット番号を指定する指定色データ43、さらに、変形させない部分の代わりに表示する裏面像データ44が記憶されている。画像データ41は図1(a)に示す画像データである。また、変形データ42は、変形対象となる画像データをどのように変形するか、すなわち縮小、拡大、任意の形状への変形など変形態様を示すデータである。さらに、指定色データ43は、変形させたくない部分の色を指定するデータである。そして、裏画像データ44は図1(c)に示す画像データである。
VDP34はCPU31から与えられた変形前のビット配列形式の画像データや変形後のビット配列形式の画像データを、パレットデータ50により実際に表示する色コードに変換してVRAM34に書き込む。VRAM34としては、例えば半導体メモリが用いられ、表示する画像を1画面単位で記憶する。VRAM34に書き込まれた画像データはTVディスプレイ(表示手段)36によって表示される。
上記CPU31は変形手段、判別手段、置換手段を構成する。
【0024】
次に、作用を説明する。
メインプログラム
図4は画像変形処理のメインプログラムを示すフローチャートである。なお、メインプログラムの実行に先立って、変形を施さないドットの色(指定色)を予め設定しておく。この指定色は、図2に示す指定色データ43として記憶装置33に記憶される。この実施例では、図1(a)に示す中間色で表現された画像データの印■で示される色と、印×で示される色を指定色として設定しておく。図4に示すプログラムがスタートすると、まずステップS10でキー情報取り込み処理を行う。これは、入力操作子32における変形スイッチ32a等のスイッチの操作情報を入力するものである。次いで、ステップS12で変形スイッチ32aが押されたか否かを判別し、押されていなければ、NOへ抜けて今回のルーチンを終了し、次回のルーチンで再びステップS10を実行する。一方、変形スイッチ32aが押されていると、ステップS12からYESへ抜けてステップS14以降の変形処理フローに進む。
【0025】
まず、ステップS14では、現在処理ライン番号を[0]に初期設定する。次に、ステップS16で裏処理ライン番号を[0]に初期設定し、ステップS18でライン選択誤差eを[0]に初期設定する。さらに、ステップS20において、ライン選択誤差増分Δeを[2.14(縦16ドットを8ドットに縮小する場合)]に初期設定する。次に、ステップS22では、記憶装置33内にあるビット配列形式の元画像データ41から、現在処理ライン番号で指示される1ライン分のドットデータを読み出し、内部レジスタ31aのラインバッファ38に格納する。この場合、初期設定によって現在処理ライン番号は[0]であるので、図1(a)に示す元画像データのライン[0]のドットデータがラインバッファ38に格納される。次に、ステップS24へ進み、ラインバッファ38に格納された1ライン分のドットデータから、1ドット分のドットデータを取り出して、指定色であるか否かを判別する。そして、取り出したドットデータが指定色でなければ、ステップS24からNOへ抜けてステップS26へ進み、そのドットデータをそのままVDP34へ出力し表示ディスプレイ36に表示する。
【0026】
一方、ラインバッファから取り出したドットデータが指定色であれば、ステップS24からYESへ抜けてステップS28へ進む。ステップS28では、記憶装置33に記憶されている裏画像データ44から、その時の裏処理ライン番号で示されるラインで、かつ上記ラインバッファ38から取り出したドットデータに対応するドットデータを読み出して、元画像データ41のドットデータ(指定色)の代わりにVDP34へ出力し表示ディスプレイ36に表示する。
そして、ステップS30で、ラインバッファ38内の全てのドットに対して処理が終了したか否かを判別し、処理していないドットがあれば、NOへ抜けてステップS24へ戻る。以下、ラインバッファ38内のすべてのドットを処理するまで、ステップS24、S26、S28の処理を繰り返す。
【0027】
そして、ラインバッファ38内のすべてのドットを処理し終わると、ステップS30からYESへ抜けてステップS32へ進む。ステップS32以降では、次に処理すべきラインを選択する。まず、ステップS32では、前述したように、ライン選択誤差eにライン選択誤差増分Δeを加える。次に、ステップS34で、ライン選択誤差eが1/2以上であるか否かを判別する。そして、ライン選択誤差eが1/2以上であれば、処理すべきラインでないと判断し、YESに抜けてステップS36へ進む。ステップS36では、ライン選択誤差eから[1]を減算し、これを新たなライン選択誤差eとする。次に、ステップS38において、現在処理ライン番号を[1]だけインクリメントし、ステップS34へ戻る。このとき、現在処理ライン番号には、次に表示すべき元画像データのライン番号、例えば[1]が格納される。そして、ライン選択誤差eが1/2より小さくなるまで、ステップS34〜S38を繰り返し実行し、現在処理ライン番号を[1]ずつインクリメントすると共に、ライン選択誤差eを補正する。
【0028】
そして、ライン選択誤差e1が1/2より小さくなると、ステップS34からNOへ抜けステップS40へ進む。ステップS40では、記憶装置33に記憶されている元画像データ41から、ライン選択用レジスタ39の現在処理ライン番号で示される1ライン分のドットデータをラインバッファ38へ格納する。次に、ステップS42へ進み、裏処理ライン番号を[1]だけインクリメントする。そして、ステップS44で、元画像データ41の全てのラインを処理したか否かを判別する。全てのラインに対して処理が終了していない場合には、ステップS24へ戻り、ステップS24〜S42の処理を繰り返す。そして、元画像データの全てのラインを処理し終えた場合には、ステップS44からYESへ抜けて、当該変形処理を終了する。
【0029】
ここで、図1を参照して具体的に説明する。例えば、現在、上記初期設定によって、現在処理処理ライン番号が[0]である場合には、図1(a)に示す元画像データのライン[0]の1ライン分のドットデータがラインバッファ38に格納される。次に、該1ライン分のドットデータのピクセル(0,0)に対応するドットデータをラインバッファ38から取り出して、該ドットデータが指定色であるか否かを判別する。この場合、ピクセル(0,0)のドットデータは指定色ではないので、そのままVDP34へ出力され表示される。次に、ピクセル(1,0)に対応するドットデータをラインバッファ38から取り出して、該ドットデータが指定色であるか否かを判別する。この場合も、ピクセル(1,0)のドットデータは指定色でないので、そのままVDP34へ出力され表示される。以下、順次、ピクセル(2,0)、(3,0)、…、(23,0)に対応するドットデータをラインバッファ38から順次取り出し、各々に対して上記指定色であるか否かの判別を行う。この場合、元画像データのライン[0]におけるドットは、全て指定色ではないため、そのままVDP34へ出力され、図1(c)に示す変形後の画像データにおけるライン[0]として表示ディスプレイ36に表示される。
【0030】
そして、ラインバッファ38内のすべてのドットに対して処理し終わると、次に処理すべきラインを選択する。選択されたラインが[2]の場合には、現在処理ライン番号が[2]となり、図1(a)に示す元画像データのライン[2]の1ライン分のドットデータがラインバッファ38に格納される。次に、前述したように、該ライン[2]のピクセル(0,2)のドットデータをラインバッファ38から取り出して、該ドットデータが指定色であるか否かを判別する。この場合、上記ドットデータは指定色ではないので、そのままVDP34へ出力されて表示ディスプレイ36に表示される。以下、ピクセル(1,2)、(2,2)、…と順次ドットデータをラインバッファ38から取り出して、指定色であるか否かを判別する。図1(a)に示すように、ピクセル(14,2)までは、ライン[2]のドットデータは指定色ではないので、そのままVDP34へ出力される。そして、ピクセル(15,2)のドットデータをラインバッファ38から取り出したときには、該ドットデータは指定色であるため、この場合には、図1(b)に示す裏画像データから該当するドットデータをVDP34へ出力する。このとき、裏処理ライン番号は、ステップS42においてインクリメントされて[1]となっている。したがって、裏画面データからは、裏処理ライン番号で示されるライン[1]で、かつ上記ピクセル(15,2)に対応するドットデータ、すなわちピクセル(15,1)にあるドットデータが取り出され、元画像データのドットデータに代えて、VDP34へ出力される。この結果、図1(c)に示すように、変形後の画像データのピクセル(15,1)には、裏画像データのドットデータが表示されることになる。
【0031】
また、元画像データの次のピクセル(16,2)のドットデータがラインバッファ38から取り出されたときには、裏画像データのピクセル(16,1)のドットデータ(印×で示す)が、元画像データのドットデータに代えて、VDP34へ出力され、さらに、元画像データのピクセル(17,2)のドットデータがラインバッファ38から取り出されたときには、裏画像データのピクセル(17,1)のドットデータ(印■で示す)が、元画像データのドットデータに代えて、VDP34へ出力され、図1(c)に示す変形後の画像データにおけるライン[1]として表示ディスプレイ36に表示される。以下同様にして、ラインバッファに格納された元画像データの現在処理ライン番号で指示されるライン[2]の残りのドットデータ、ピクセル(18,2),(19,2)…に対しても変形処理が行われる。
【0032】
そして、ラインバッファ38内の全てのドットデータに対しての処理が終わると、前述したブレセンハム(Bresenham)のアルゴリズムに従って、次に処理すべきライン(ライン[4]、[6]、[9]、[11]、…)を順次選択する。そして、ラインを選択する度に、選択したラインのドットデータをラインバッファ38に格納した後、ラインバッファ38から1ドットずつ取り出し、該ドットデータが指定色であるか否かを判別して、指定色でない場合には、ラインバッファ38のドットデータをそのままVDP34へ出力して表示ディスプレイ36に表示し、一方、上記取り出したドットデータが指定色である場合には、ステップS28で裏画像データの該当ドットデータをVDP34へ出力して表示ディスプレイ36に表示する。そして、元画像データの全てのライン[0]〜[15]を処理し終えた場合には、当該変形処理を終了する。
【0033】
上述した変形処理によれば、図1(a)に示すビット配列形式の元画像データに、2色のドットを交互に置いて中間色を表現している部分があっても、図1(c)に示すように、元画像データの色調を損なうことなく、変形することができる。
【0034】
以上、指定した部分を変形させない変形処理の例として、縦方向に縮小した場合について説明したが、縦方向の縮小に限らず、任意の方向への拡大、縮小、更に任意の変形についても、変形後のドットが指定色である時には、指定色のドットをそのまま表示するのではなく、別に用意した裏画像データから、該当するドットデータを読み出して、指定色のドットに代えて表示するようにすれば、同様の変形処理を実現することができる。
【0035】
第2の実施例
次に、本発明の第2の実施例について説明する。上述した第1の実施例では、変形させない部分に表示する裏画像データを、元画像データとは別に記憶装置33内に予め記憶しておいたが、変形しない部分の大きさが、変形によって元の大きさを超えることがなければ、裏画像データとして元画像データを用いることができる。この場合、裏画像データを記憶装置33内に記憶しておく必要はない。この例を図5を参照して説明する。
【0036】
図5(a)は、前述した図1(a)と同じく、ビット配列形式の元画像データを示す図である。この例では、元画像データのライン[4]からライン[11]までのドットデータを、記憶装置33に記憶することなく、図5(b)に示すように、そのまま裏画像データとして用いる。なお、裏画面データの裏処理ライン番号の初期値としては、図4に示す変形処理に示すステップS16で「4」を設定するようにしておけば、前述した変形処理をそのまま用いることができる。
【0037】
この場合、変形処理で選択されたラインにおいて、ドットデータが指定色である時には、元画像データの指定色に代えて表示する画像データとして、元画像データのライン[4]〜[11]の該当ドットデータをVDP34へ出力すればよい。例えば、元画像データのライン[0]のドットデータに対して処理を行う場合には、図5(b)に示す裏画像データのライン[4]、すなわち元画像データのライン[4]が対象となり、変形後の画像データとして表示すべきラインが選択される度に、ライン[5],[6],[7],…,[11]と進めればよい。この結果、図1に示した裏画像データを記憶装置33に予め記憶しておく方法と同じように、図5(c)に示す変形後の画像データが得られる。
このように、第2の実施例によれば、変形させない部分に表示する裏画像データとして、元画像データを用いるため、裏画像データを予め記憶装置33内に持っておく必要はないので、メモリ容量を大幅に節約することができる。
【0038】
第3の実施例
次に、本発明の第3の実施例について説明する。前述した第1の実施例のように、変形させない部分に表示する裏画像データを、元画像データとは別に記憶装置33内に予め記憶しておく場合でも、中間色部分の変形を防ぐ目的であれば、中間色を構成する2色のドットデータを2ドット分だけ記憶しておけばよい。指定色のドットデータの代わりに、そのドットデータの座標に応じて、交互に上記2色のドットデータが表示されるように置き換えて、VDP34へ出力すればよい。この例を図6を参照して説明する。
【0039】
図6(a)は、前述した図1(a)と同じく、ビット配列形式の元画像データを示す図である。また、図6(b)は、記憶装置33に記憶された、中間色を構成する2色のドットデータD1,D2を示す図であり、図6(c)は変形後の画像データを示す図である。この場合、変形の際に選択されたドットデータが指定色である時には、該指定色に代えて、図6(b)に示す2つのドットデータD1,D2のうちのいずれかを表示する。1つのドットデータD1は、x座標、y座標の一方が奇数、他方が偶数の時に表示される。もう1つのドットデータD2は、x座標、y座標が共に奇数または偶数の時に表示される。例えば、図6(a)において、ライン[2]におけるピクセル(15,2)のドットデータが処理対象になっている場合には、該ドットデータは指定色であり、また、該ドットデータは変形後の画像データのピクセル(15,1)、すなわちx座標が奇数で、y座標が奇数のピクセルに置かれるから、図6(b)に示すドットデータD2が、元画像のドットデータに代えて、表示ディスプレイ36に表示される。また、図6(a)において、ピクセル(16,2)のドットデータは、変形後の画像データのピクセル(16,1)、すなわちx座標が偶数で、y座標が奇数のピクセルに置かれるから、図6(b)に示すドットデータD1が元画像データのドットデータに代えて、表示ディスプレイ36に表示される。
【0040】
このように表示することにより、元画像データを変形しても、図6(c)に示すように、元画像データの中間色を忠実に表現できる。また、この第3の実施例では、ビット配列形式の元画像データ(図6(a)の左側)は、そのデータとして各ピクセルごとのパレット番号を持っていて、VDP34内で実際の表示色コードに変換しているので、中間色を構成している色と、その他で用いられている色が共に同じ黒であっても、両者のパレット番号さえ変えて置けば、中間色の部分は変形されずに、その他の黒の部分のみ通常の変形が行われる。
このように、第3の実施例によれば、中間色を構成する2つのドットデータのみを持っておくだけなので、メモリ容量の大幅な節約になる。
なお、本発明の適用はアニメーション、ゲーム等のキャラクター又は背景データ等に限るものではなく、他の分野、他の画像データにも適用できる。
【0041】
【発明の効果】
本発明によれば、縮小変形するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、元画像を構成する複数のラインデータの中から順次選択して出力した際、このラインデータのドットデータが指定色である場合は、それに代えて別に用意した裏画像データの該当するドットデータを出力する。あるいは、出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、XY座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、XY座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換するようにしているので、以下の効果を得ることができる。
(1)アニメーション、ゲーム等のキャラクタまたは背景等、ビット配列形式の画像データを、2色のドットを交互に置いて中間色を表現している部分があっても、縮小変形した場合に元画像データをそのまま用いる部分の表示色を予め設定すれば、元画像データの色調を損なうことなく、変形することができる。
(2)使用できる色数が少なく、中間色を使わざるを得ない場合でも変形によって中間色が壊されることがないため、色数が多い時と同様の変形を行うことができる。
(3)また、縮小変形した場合に元画像データをそのまま用いる部分に表示する裏画像データとして、元画像データを使う場合には、裏画像データを予め記憶手段内に持っておく必要はないので、メモリ容量を大幅に節約することができる。
(4)中間色を構成する2つのドットデータのみを持っておく場合にも、メモリ容量の大幅な節約になる。
【図面の簡単な説明】
【図1】本発明による画像変形方法の原理を説明する図である。
【図2】本発明に係る画像変形方法を実現する画像変形装置の第1の実施例の構成を示すブロック図である。
【図3】同実施例のCPUの内部レジスタに記憶されるデータを説明するための図である。
【図4】同実施例の画像変形処理のメインプログラムを示すフローチャートである。
【図5】本発明による第2の実施例の画像変形方法を説明する図である。
【図6】本発明による第3の実施例の画像変形方法を説明する図である。
【図7】従来の画像変形方法を説明する図である。
【符号の説明】
31 CPU(変形手段、判別手段、置換手段)
32 入力操作子
33 記憶装置(記憶手段)
34 VDP(変換手段)
35 VRAM
36 TVディスプレイ(表示手段)
38 ラインバッファ(第2の格納手段)
39 ライン選択用レジスタ(第1の格納手段)
41 ビット配列形式の元画像データ
42 変形データ
43 指定色データ
44 ビット配列形式の裏画像データ
Claims (6)
- 指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを、指定された縮小率で所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、
ドットデータを前記元画像データと同一に配列した複数のラインデータから構成される裏画像データを記憶し、
前記ラインバッファに前記選択されたラインデータが記憶される毎に、前記裏画像データを構成するラインデータの指定を更新し、
前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する、
ことを特徴とする画像変形方法。 - 前記裏画像データとして、元画像データの少なくとも一部のデータを用いることを特徴とする請求項1記載の画像変形方法。
- 中間色を構成する2色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを指定された縮小率で所定の方向に変形縮小する際に、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、
前記ラインバッファから出力されるドットデータが、縮小変形後の画像データを構成するドットデータのXY座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、XY座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する、
ことを特徴とする画像変形方法。 - 指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、
指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、
このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、
このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、
を有する画像変形装置において、
前記記憶手段は、さらにドットデータを前記元画像データと同一に配列した複数のラインデータから構成された裏画像データを記憶し、
前記ラインバッファに選択されたラインデータが記憶される毎に、指定される前記裏画像データのラインデータを更新する指定更新手段と、
前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定更新手段により指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する出力制御手段と、
を有することを特徴とする画像変形装置。 - 前記裏画像データとして、元画像データの少なくとも一部のデータを用いることを特徴とする請求項4記載の画像変形装置。
- 中間色を構成する2色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、
指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、
このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、
このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、
を有する画像変形装置において、
前記ラインバッファから出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、XY座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、XY座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する変換手段と、
を有することを特徴とする画像変形装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP35086493A JP3551459B2 (ja) | 1993-12-30 | 1993-12-30 | 画像変形方法およびその装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP35086493A JP3551459B2 (ja) | 1993-12-30 | 1993-12-30 | 画像変形方法およびその装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07200805A JPH07200805A (ja) | 1995-08-04 |
| JP3551459B2 true JP3551459B2 (ja) | 2004-08-04 |
Family
ID=18413410
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP35086493A Expired - Fee Related JP3551459B2 (ja) | 1993-12-30 | 1993-12-30 | 画像変形方法およびその装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3551459B2 (ja) |
-
1993
- 1993-12-30 JP JP35086493A patent/JP3551459B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH07200805A (ja) | 1995-08-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| USRE34835E (en) | Method and apparatus for editing document in colors | |
| US5559530A (en) | Image data processing apparatus | |
| JP3551459B2 (ja) | 画像変形方法およびその装置 | |
| JPH06161420A (ja) | 文字信号発生装置 | |
| JP2562540B2 (ja) | 図形処理方法 | |
| EP0410744B1 (en) | Graphics processor trapezoidal fill instruction method and apparatus | |
| JP2782752B2 (ja) | 文字パターン出力装置 | |
| JPH07200806A (ja) | 画像変形方法およびその装置 | |
| JPS60229766A (ja) | 補間ドツトパタ−ンの出力制御方式 | |
| JP2564779B2 (ja) | 文字出力装置 | |
| JPH07123322A (ja) | 画像変換方式 | |
| JPH0950272A (ja) | アウトラインフォント生成方法およびアウトラインフォント生成装置 | |
| JPS6215594A (ja) | 表示装置 | |
| JPH10214078A (ja) | 画像拡大縮小装置 | |
| JPS59193491A (ja) | 文字パタ−ン拡大方式 | |
| JPH0560598B2 (ja) | ||
| JPS60149083A (ja) | 表示装置 | |
| JPH0450896A (ja) | 描画回路 | |
| JPH03124447A (ja) | 文字発生装置 | |
| JPS6083851A (ja) | 文字パタ−ン強調制御方式 | |
| JPS62234192A (ja) | ドツト画像表現方式 | |
| JPH03282786A (ja) | 図形表示方式 | |
| JPH081554B2 (ja) | 文字処理装置 | |
| JPH0321990A (ja) | パターン発生方式 | |
| JPS61167981A (ja) | 拡大文字補正方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040108 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040311 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040406 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040419 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |