(57)【特許請求の範囲】
【請求項１】
指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを、指定された縮小率で所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、
ドットデータを前記元画像データと同一に配列した複数のラインデータから構成される裏画像データを記憶し、
前記ラインバッファに前記選択されたラインデータが記憶される毎に、前記裏画像データを構成するラインデータの指定を更新し、
前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する、
ことを特徴とする画像変形方法。
【請求項２】
前記裏画像データとして、元画像データの少なくとも一部のデータを用いることを特徴とする請求項１記載の画像変形方法。
【請求項３】
中間色を構成する２色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを指定された縮小率で所定の方向に変形縮小する際に、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、
前記ラインバッファから出力されるドットデータが、縮小変形後の画像データを構成するドットデータのＸＹ座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、ＸＹ座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する、
ことを特徴とする画像変形方法。
【請求項４】
指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、
指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、
このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、
このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、
を有する画像変形装置において、
前記記憶手段は、さらにドットデータを前記元画像データと同一に配列した複数のラインデータから構成された裏画像データを記憶し、
前記ラインバッファに選択されたラインデータが記憶される毎に、指定される前記裏画像データのラインデータを更新する指定更新手段と、
前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定更新手段により指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する出力制御手段と、
を有することを特徴とする画像変形装置。
【請求項５】
前記裏画像データとして、元画像データの少なくとも一部のデータを用いることを特徴とする請求項４記載の画像変形装置。
【請求項６】
中間色を構成する２色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、
指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、
このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、
このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、
を有する画像変形装置において、
前記ラインバッファから出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、ＸＹ座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、ＸＹ座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する変換手段と、
を有することを特徴とする画像変形装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、画像変形に係わり、詳しくはアニメーション、ゲーム等で用いられる、キャラクタデータ、背景データ等のドットで構成され、かつ各ドット毎に表示色番号またはパレット番号を持つようなビット配列形式の画像データを、元データのイメージを壊すことなく変形する画像変形方法およびその装置に関する。
【０００２】
【従来の技術】
従来、アニメーション、ゲーム等ではビット配列形式の画像データを用いることが多く、この画像データによりキャラクターや背景データを表示している。そして、このビット配列形式の画像データはドットで構成され、かつ各ドット毎に表示色番号あるいはパレット番号を持つようになっている。図７に、ビット配列形式の画像データの従来の変形処理の原理を示す。なお、説明を分かり易くするために、変形の一例として画像データを縦方向に縮小した場合について説明する。
【０００３】
ここで、従来の画像変形方法について説明する。図７（ａ）は変換前の元画像データの構成を示す図である。図７（ａ）において、左側の楕円図形は１色で構成され、右側の楕円図形は２色のドットを交互に配置して中間色で構成されている。また、図７（ｂ）は変換後の画像データの構成を示す図である。図７（ｂ）において、左側の楕円図形は図７（ａ）に示す左側の楕円図形の変形後の図形であり、右側の楕円図形は図７（ａ）に示す右側の楕円図形の変形後の図形である。以下では、図７（ａ）に示すような、縦１６ピクセルから構成される元画像データを、図７（ｂ）に示すような、縦８ピクセルの画像データに縮小する場合を例にとって説明する。
【０００４】
図７（ａ）に示す元画像データの水平ライン数はライン０〜１５までの１６本であり、縮小後の画像データの水平ライン数は８本であるので、元画像データの１６本の水平ラインの中から、表示すべき８本の水平ラインを選択することになる。元画像データの最初の水平ライン（ライン［０］）を無条件に選択するものとすると、その他の水平ラインの選択の方法は次のようになる。
【０００５】
まず、選択誤差（初期値０）ｅを決め、該選択誤差ｅに誤差増分Δｅを加え、これを新たな選択誤差ｅとする。Δｅは、（元の水平ライン数−１）／（縮小後の水平ライン数−１）である。誤差増分Δｅを加えた新たな選択誤差ｅが、ｅ≧１／２ならば、表示すべき元画像データのライン番号を１つ進めると共に、選択誤差ｅから［１］を引いて選択誤差を補正する。以降、ｅ＜１／２の関係になるまで、表示すべきライン番号を順次進め、選択誤差ｅを補正する動作を繰り返す。そして、ｅ＜１／２の関係になった時点のライン番号に対応するラインを次に選択すべき水平ラインとする。
【０００６】
図７（ａ）においては、まず、ライン［０］が無条件に選択される。この時点で、選択誤差ｅは［０］、ライン番号は［０］になっている。また、誤差増分Δｅは、Δｅ＝（１６−１）／（８−１）＝２．１４である。ここで、選択誤差ｅ＝０に、誤差増分Δｅ＝２．１４を加えると、ｅ＝０＋２．１４＝２．１４≧１／２になるので、ライン番号を１つ進める（ライン［１］になる）と共に、選択誤差ｅから［１］を引き補正する（ｅ＝２．１４−１＝１．１４≧１／２）。この場合、補正した選択誤差ｅがまだ１／２以上なので、ライン番号を更に１つ進める（ライン［２］になる）と共に、選択誤差ｅから［１］を引き補正する（ｅ＝１．１４−１＝−０．１４＜１／２）。この時点で、選択誤差ｅが１／２より小さくなるので、次に表示すべきラインとしてライン［２］が選択される。
【０００７】
同様に、ここまでの選択誤差ｅ＝−０．１４に、誤差増分Δｅ＝２．１４を加えると（ｅ＝０．１４＋２．１４＝２．２８≧１／２）、２．２８となり、１／２以上になるので、ライン番号を１つ進める（ライン［３］になる）と共に、さらに選択誤差ｅから［１］を引き補正する（ｅ＝２．２８−１＝１．２８≧１／２）。この場合、選択誤差ｅがまだ１／２以上なので、ライン番号を更に１つ進める（ライン［４］になる）と共に、再び、選択誤差ｅから［１］を引き補正する（ｅ＝１．２８−１＝−０．２８＜１／２）。この時点で、選択誤差が１／２より小さくなるので、次に表示すべきラインとしてライン［４］が選択される。
【０００８】
このように、選択誤差ｅに誤差増分Δｅを加え、その結果が１／２より大きいか小さいかによって処理を選択するもので、選択誤差が１／２以上のときに誤差を補正する。このようにすると、Ｘ座標を１ずつ変えていったときに、少なくとも誤差増分Δｅが［１］の半分（１／２）より小さい場合にのみ、そのライン番号のラインを選択するので、ライン毎の画像が滑らかにつながることになる。
【０００９】
以上の計算を繰り返すことにより、表示すべき８本の水平ライン（ライン［０］、［２］、［４］、［６］、［９］、［１１］．．．）が選択される。この方法はブレセンハム（Ｂｒｅｓｅｎｈａｍ）のアルゴリズムとして、一般に知られている。そして、上述した処理によって選択された水平ラインにおけるドットを表示すれば、図７（ｂ）に示す縦方向に縮小された画像データが得られる。
【００１０】
【発明を解決するための手段】
ところで、従来の画像変形方法では、画像データを変形する場合、画像データを構成する各ドットをすべて同等の扱いで変形していたので、２色のドットを交互に置いて中間色を表現していた部分は、変形後に２色のドットが不規則に入り交じってしまい、中間色の表現が壊れるという問題があった。例えば、上述したように、従来の画像変形方法で画像データを縮小した場合、図７（ｃ）に示すように、２色を交互に配置して中間色を表現している画像データでは、中間色の表現が壊れてしまう。このため、変形した結果が、元画像データのイメージからかけ離れたものになってしまい、元画像データの色調を残した変形画像を使いたい場合には予めメモリに複数の画像データを持っておく方法を取らざるを得ず、コスト高になっていた。
【００１１】
そこで、本発明は、２色のドットを交互に置いて中間色を表現している部分が変形されても元画像データの色調を損なうことなく、また、ビット配列形式の画像データを変形した時に、その一部分だけが変形されることなく、画像データを変形できる画像変形方法およびその装置を提供することを目的としている。
【００１２】
【課題を解決すめための手段】
上記目的達成のため、請求項１記載の発明による画像変形方法は、指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを、指定された縮小率で所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、ドットデータを前記元画像データと同一に配列した複数のラインデータから構成される裏画像データを記憶し、前記ラインバッファに前記選択されたラインデータが記憶される毎に、前記裏画像データを構成するラインデータの指定を更新し、前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する、
ことを特徴とする。
また、好ましい態様として、例えば請求項２記載のように、前記裏画像データとして、元画像データの少なくとも一部のデータを用いるようにしてもよい。
【００１３】
また、請求項３記載の発明による画像変形方法は、中間色を構成する２色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを指定された縮小率で所定の方向に変形縮小する際に、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記元画像データを構成する複数のラインデータの中から順次選択し、この選択されたラインデータをラインバッファに順次記憶し、このラインバッファに記憶されたラインデータを構成するドットデータを出力する画像変形方法において、前記ラインバッファから出力されるドットデータが、縮小変形後の画像データを構成するドットデータのＸＹ座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、ＸＹ座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する、ことを特徴とする。
【００１４】
そして、請求項４記載の発明による画像変形装置は、指定色及びそれ以外の色のドットデータを複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、を有する画像変形装置において、前記記憶手段は、さらにドットデータを前記元画像データと同一に配列した複数のラインデータから構成された裏画像データを記憶し、前記ラインバッファに選択されたラインデータが記憶される毎に、指定される前記裏画像データのラインデータを更新する指定更新手段と、前記ラインバッファから出力されるドットデータが指定された表示色の場合は、当該出力されるドットデータに代えて、前記指定更新手段により指定される裏画像データのラインデータ内の対応するドットデータを出力させるとともに、指定された表示色でない場合は、前記ラインバッファのドットデータを出力させるように制御する出力制御手段と、
を有することを特徴とする。
また、好ましい態様として、例えば請求項５記載のように、前記裏画像データとして、元画像データの少なくとも一部のデータを用いるようにしてもよい。
【００１５】
そして、請求項６記載の発明による画像変形装置は、中間色を構成する２色のドットデータを交互に複数個配列した複数のラインデータからなる元画像データを記憶する記憶手段と、指定された縮小率で前記元画像データを所定の方向に変形縮小するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、前記記憶手段に記憶された複数のラインデータの中から順次選択するライン選択手段と、このライン選択手段により選択されたラインデータを順次記憶するラインバッファと、このラインバッファに記憶されたラインデータを構成するドットデータを出力する出力手段と、を有する画像変形装置において、前記ラインバッファから出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、ＸＹ座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、ＸＹ座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する変換手段と、を有することを特徴とする。
【００１６】
【作用】
本発明では、指定色及びそれ以外の色のドットデータを複数個配列した部分、例えば、２色のドットを交互に置いて中間色を表現している部分等、縮小変形するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、元画像を構成する複数のラインデータの中から順次選択して出力した際、このラインデータのドットデータが指定色である場合は、それに代えて別に用意した裏画像データの該当するドットデータを出力する。
あるいは、出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、ＸＹ座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、ＸＹ座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換する。
したがって、２色のドットを交互に置いて中間色を表現している部分が変形されても元画像データの色調を損なうことなく縮小変形できる。
【００１７】
【実施例】
以下、図面を参照して本発明の実施例について説明する。
本発明の原理説明
まず、本発明の原理から説明する。図１は画像変形方法の原理を示す図である。図１（ａ）は従来と同様の変形前の元画像データを示し、特にビット配列形式の画像データで、楕円図形Ａ，Ｂを表わしている。図１（ａ）において、左側の楕円図形Ａは１色の画像データで構成され、右側の楕円図形Ｂは２色のドットを交互に配置した中間色の画像データで構成されている。画像データは、複数のドットで構成され、かつ各ドット毎に表示色番号あるいはパレット番号を持っている。図１（ａ）には、Ｘ軸方向に２４個、Ｙ軸方向に１６個、２４×１６ピクセルからなる領域が示されており、各ピクセルは、Ｘ座標とＹ座標とによって（Ｘ，Ｙ）の形式で表わされる。例えば、図示の左上角のピクセルは（０，０）で表わされ、その右隣のピクセルは（１，０）で表わされる。また、横方向に並ぶピクセル列はライン番号で表わされ、図示の場合、最上行のピクセル列のライン番号は［０］、次のピクセル列のライン番号は「１」、その下のピクセル列のライン番号は「２」と、下に行くにつれて、順次［１］ずつ大きくなり、最下行のピクセル列のライン番号が「１５」となっている。
【００１８】
また、図１（ｂ）は、別に用意した裏画像データであり、予め図１（ｂ）に示す楕円図形Ｂの画像データと同じく、２色のドットを交互に配置した中間色で構成されている。図において、裏画像データは、変換後のサイズである８×２４のピクセルからなり、画像データに対応するピクセルには、２色のドットを交互に配置して、画像データと同じ中間色が実現されている。
本実施例では、前述した従来の画像変形方法に見られた問題をなくすために、中間色の表現で用いる２色の表示色番号またはパレット番号を指定して（指定色）、縮小によって最終的に表示するドットが指定色である時には、指定色のドットをそのまま表示するのではなく、別に用意した裏画像データから該当するドットを読み出して、該ドットを上記指定色のドットに代えて表示するようになっている。また、図１（ｃ）は、変換後の画像データの構成を示す図である。図１（ｃ）において、左側の楕円図形Ａ’は図１（ａ）に示す左側の楕円図形Ａの変形後の図形であり、右側の楕円図形Ｂ’は図１（ａ）に示す右側の楕円図形Ｂの変形後の図形である。
【００１９】
以下では、図１（ａ）に示すような、縦１６ピクセルから構成される元画像データを、図１（ｃ）に示すような、縦８ピクセルの画像データに縮小する場合を例にとって説明する。図１（ａ）に示す元画像データの水平ライン数はライン０〜１５までの１６本であり、縮小後の画像データの水平ライン数は８本であるので、前述した説明と同様に、元画像データの１６本の水平ラインの中から、表示すべき８本の水平ラインを選択することになる。
【００２０】
水平ラインの選択には、本実施例においても、従来の変形処理と全く同じ方法が用いられる。また、指定した部分を変形させない変形処理では、画像を変形させずに表示するために、図１（ｂ）に示すような画像データを用いる。変形処理では、まず、図１（ａ）に示す右側の楕円図形Ｂを構成している２色のドットのパレット番号を指定色とする。次に、従来の変形処理と全く同じ手法により表示すべきラインを順次選択し、図１（ｃ）に示すような縦方向に縮小した画像データを得る。このとき、選択したライン毎に、該ラインに上記指定色のドットが含まれているか否かを判別し、指定色のドットが含まれている場合には、図１（ｂ）に示す裏画像データの対応するラインからドットを読み出して、指定色のドットに代えて表示する。この結果、図１（ｃ）に示す画像データが得られる。この場合、２色のドットを交互に配置して中間色を表現している部分があっても元画像データの色調を損なわずに変形できる。また、ビット配列形式の画像データを変形した時でも、その一部分だけが変形されてしまうことがない。
【００２１】
次に、上記原理に基づく本発明の具体的な実施例について説明する。
画像変形装置の構成
図２は、本発明に係る画像変形方法を実現する画像変形装置の第１の実施例の構成を示すブロック図である。図２において、画像位置決定装置は、大きく分けて、ＣＰＵ３１、入力操作子３２、記憶装置３３、画像信号発生回路（Ｖｉｄｅｏ  Ｄｉｓｐｌａｙ  Ｐｒｏｓｓｅｓｅｒ：以下ＶＤＰという）３４、ＶＲＡＭ３５およびＴＶディスプレイ３６によって構成される。
ＣＰＵ３１は装置全体を制御するもので、入力操作子３２の変形スイッチ（後述）が押されたことを検知し、その指令情報に対応すべく内部のメモリに格納されている制御プログラムに基づいて、記憶装置３３に記憶されているビット配列形式の画像データを読み出して、指定部分を変形させない変形処理を施して変形した後、変形後のビット配列形式の画像データをＶＤＰ３４に出力する。また、ＣＰＵ３１は内部レジスタ３１ａを有している。図３はＣＰＵ３１の内部レジスタ３１ａに記憶されるデータを説明するための図である。図３において、内部レジスタ３１ａは、大きく分けて、ラインバッファ３８と、ライン選択用レジスタ３９から構成される。ラインバッファ３８には１水平ライン分のドットデータが順次格納される。図示の例では、ピクセル（０，ｙ）〜（２３，ｙ）のドットデータが格納される。また、ライン選択用レジスタ３９には、前述した水平ラインを選択する際に用いられる、元画像データの現在処理中のラインを示す現在処理ライン番号、裏画像データの処理中のラインを示す裏処理ライン番号、元画像データの表示すべきラインを選択する時に用いるライン選択誤差ｅと、ライン選択誤差増分Δｅとが格納されている。
【００２２】
入力操作子３２は、オペレータによって操作されるものであり、変形処理を行わせるきっかけを与えるための変形スイッチ３２ａを有している。なお、スイッチ３２ａは、単独操作のプッシュスイッチでもよいし、あるいは複数のスイッチからなるスイッチボード、キーボード等でもよい。また、入力操作子３２としてスイッチボード等の他に、マウス、トラックボール等を用いてもよい。
【００２３】
記憶装置（記憶手段）３３には、変形対象となるビット配列形式の画像データ４１、その変形方法を示す変形データ４２、変形させない部分のパレット番号を指定する指定色データ４３、さらに、変形させない部分の代わりに表示する裏面像データ４４が記憶されている。画像データ４１は図１（ａ）に示す画像データである。また、変形データ４２は、変形対象となる画像データをどのように変形するか、すなわち縮小、拡大、任意の形状への変形など変形態様を示すデータである。さらに、指定色データ４３は、変形させたくない部分の色を指定するデータである。そして、裏画像データ４４は図１（ｃ）に示す画像データである。
ＶＤＰ３４はＣＰＵ３１から与えられた変形前のビット配列形式の画像データや変形後のビット配列形式の画像データを、パレットデータ５０により実際に表示する色コードに変換してＶＲＡＭ３４に書き込む。ＶＲＡＭ３４としては、例えば半導体メモリが用いられ、表示する画像を１画面単位で記憶する。ＶＲＡＭ３４に書き込まれた画像データはＴＶディスプレイ（表示手段）３６によって表示される。
上記ＣＰＵ３１は変形手段、判別手段、置換手段を構成する。
【００２４】
次に、作用を説明する。
メインプログラム
図４は画像変形処理のメインプログラムを示すフローチャートである。なお、メインプログラムの実行に先立って、変形を施さないドットの色（指定色）を予め設定しておく。この指定色は、図２に示す指定色データ４３として記憶装置３３に記憶される。この実施例では、図１（ａ）に示す中間色で表現された画像データの印■で示される色と、印×で示される色を指定色として設定しておく。図４に示すプログラムがスタートすると、まずステップＳ１０でキー情報取り込み処理を行う。これは、入力操作子３２における変形スイッチ３２ａ等のスイッチの操作情報を入力するものである。次いで、ステップＳ１２で変形スイッチ３２ａが押されたか否かを判別し、押されていなければ、ＮＯへ抜けて今回のルーチンを終了し、次回のルーチンで再びステップＳ１０を実行する。一方、変形スイッチ３２ａが押されていると、ステップＳ１２からＹＥＳへ抜けてステップＳ１４以降の変形処理フローに進む。
【００２５】
まず、ステップＳ１４では、現在処理ライン番号を［０］に初期設定する。次に、ステップＳ１６で裏処理ライン番号を［０］に初期設定し、ステップＳ１８でライン選択誤差ｅを［０］に初期設定する。さらに、ステップＳ２０において、ライン選択誤差増分Δｅを［２．１４（縦１６ドットを８ドットに縮小する場合）］に初期設定する。次に、ステップＳ２２では、記憶装置３３内にあるビット配列形式の元画像データ４１から、現在処理ライン番号で指示される１ライン分のドットデータを読み出し、内部レジスタ３１ａのラインバッファ３８に格納する。この場合、初期設定によって現在処理ライン番号は［０］であるので、図１（ａ）に示す元画像データのライン［０］のドットデータがラインバッファ３８に格納される。次に、ステップＳ２４へ進み、ラインバッファ３８に格納された１ライン分のドットデータから、１ドット分のドットデータを取り出して、指定色であるか否かを判別する。そして、取り出したドットデータが指定色でなければ、ステップＳ２４からＮＯへ抜けてステップＳ２６へ進み、そのドットデータをそのままＶＤＰ３４へ出力し表示ディスプレイ３６に表示する。
【００２６】
一方、ラインバッファから取り出したドットデータが指定色であれば、ステップＳ２４からＹＥＳへ抜けてステップＳ２８へ進む。ステップＳ２８では、記憶装置３３に記憶されている裏画像データ４４から、その時の裏処理ライン番号で示されるラインで、かつ上記ラインバッファ３８から取り出したドットデータに対応するドットデータを読み出して、元画像データ４１のドットデータ（指定色）の代わりにＶＤＰ３４へ出力し表示ディスプレイ３６に表示する。
そして、ステップＳ３０で、ラインバッファ３８内の全てのドットに対して処理が終了したか否かを判別し、処理していないドットがあれば、ＮＯへ抜けてステップＳ２４へ戻る。以下、ラインバッファ３８内のすべてのドットを処理するまで、ステップＳ２４、Ｓ２６、Ｓ２８の処理を繰り返す。
【００２７】
そして、ラインバッファ３８内のすべてのドットを処理し終わると、ステップＳ３０からＹＥＳへ抜けてステップＳ３２へ進む。ステップＳ３２以降では、次に処理すべきラインを選択する。まず、ステップＳ３２では、前述したように、ライン選択誤差ｅにライン選択誤差増分Δｅを加える。次に、ステップＳ３４で、ライン選択誤差ｅが１／２以上であるか否かを判別する。そして、ライン選択誤差ｅが１／２以上であれば、処理すべきラインでないと判断し、ＹＥＳに抜けてステップＳ３６へ進む。ステップＳ３６では、ライン選択誤差ｅから［１］を減算し、これを新たなライン選択誤差ｅとする。次に、ステップＳ３８において、現在処理ライン番号を［１］だけインクリメントし、ステップＳ３４へ戻る。このとき、現在処理ライン番号には、次に表示すべき元画像データのライン番号、例えば［１］が格納される。そして、ライン選択誤差ｅが１／２より小さくなるまで、ステップＳ３４〜Ｓ３８を繰り返し実行し、現在処理ライン番号を［１］ずつインクリメントすると共に、ライン選択誤差ｅを補正する。
【００２８】
そして、ライン選択誤差ｅ１が１／２より小さくなると、ステップＳ３４からＮＯへ抜けステップＳ４０へ進む。ステップＳ４０では、記憶装置３３に記憶されている元画像データ４１から、ライン選択用レジスタ３９の現在処理ライン番号で示される１ライン分のドットデータをラインバッファ３８へ格納する。次に、ステップＳ４２へ進み、裏処理ライン番号を［１］だけインクリメントする。そして、ステップＳ４４で、元画像データ４１の全てのラインを処理したか否かを判別する。全てのラインに対して処理が終了していない場合には、ステップＳ２４へ戻り、ステップＳ２４〜Ｓ４２の処理を繰り返す。そして、元画像データの全てのラインを処理し終えた場合には、ステップＳ４４からＹＥＳへ抜けて、当該変形処理を終了する。
【００２９】
ここで、図１を参照して具体的に説明する。例えば、現在、上記初期設定によって、現在処理処理ライン番号が［０］である場合には、図１（ａ）に示す元画像データのライン［０］の１ライン分のドットデータがラインバッファ３８に格納される。次に、該１ライン分のドットデータのピクセル（０，０）に対応するドットデータをラインバッファ３８から取り出して、該ドットデータが指定色であるか否かを判別する。この場合、ピクセル（０，０）のドットデータは指定色ではないので、そのままＶＤＰ３４へ出力され表示される。次に、ピクセル（１，０）に対応するドットデータをラインバッファ３８から取り出して、該ドットデータが指定色であるか否かを判別する。この場合も、ピクセル（１，０）のドットデータは指定色でないので、そのままＶＤＰ３４へ出力され表示される。以下、順次、ピクセル（２，０）、（３，０）、…、（２３，０）に対応するドットデータをラインバッファ３８から順次取り出し、各々に対して上記指定色であるか否かの判別を行う。この場合、元画像データのライン［０］におけるドットは、全て指定色ではないため、そのままＶＤＰ３４へ出力され、図１（ｃ）に示す変形後の画像データにおけるライン［０］として表示ディスプレイ３６に表示される。
【００３０】
そして、ラインバッファ３８内のすべてのドットに対して処理し終わると、次に処理すべきラインを選択する。選択されたラインが［２］の場合には、現在処理ライン番号が［２］となり、図１（ａ）に示す元画像データのライン［２］の１ライン分のドットデータがラインバッファ３８に格納される。次に、前述したように、該ライン［２］のピクセル（０，２）のドットデータをラインバッファ３８から取り出して、該ドットデータが指定色であるか否かを判別する。この場合、上記ドットデータは指定色ではないので、そのままＶＤＰ３４へ出力されて表示ディスプレイ３６に表示される。以下、ピクセル（１，２）、（２，２）、…と順次ドットデータをラインバッファ３８から取り出して、指定色であるか否かを判別する。図１（ａ）に示すように、ピクセル（１４，２）までは、ライン［２］のドットデータは指定色ではないので、そのままＶＤＰ３４へ出力される。そして、ピクセル（１５，２）のドットデータをラインバッファ３８から取り出したときには、該ドットデータは指定色であるため、この場合には、図１（ｂ）に示す裏画像データから該当するドットデータをＶＤＰ３４へ出力する。このとき、裏処理ライン番号は、ステップＳ４２においてインクリメントされて［１］となっている。したがって、裏画面データからは、裏処理ライン番号で示されるライン［１］で、かつ上記ピクセル（１５，２）に対応するドットデータ、すなわちピクセル（１５，１）にあるドットデータが取り出され、元画像データのドットデータに代えて、ＶＤＰ３４へ出力される。この結果、図１（ｃ）に示すように、変形後の画像データのピクセル（１５，１）には、裏画像データのドットデータが表示されることになる。
【００３１】
また、元画像データの次のピクセル（１６，２）のドットデータがラインバッファ３８から取り出されたときには、裏画像データのピクセル（１６，１）のドットデータ（印×で示す）が、元画像データのドットデータに代えて、ＶＤＰ３４へ出力され、さらに、元画像データのピクセル（１７，２）のドットデータがラインバッファ３８から取り出されたときには、裏画像データのピクセル（１７，１）のドットデータ（印■で示す）が、元画像データのドットデータに代えて、ＶＤＰ３４へ出力され、図１（ｃ）に示す変形後の画像データにおけるライン［１］として表示ディスプレイ３６に表示される。以下同様にして、ラインバッファに格納された元画像データの現在処理ライン番号で指示されるライン［２］の残りのドットデータ、ピクセル（１８，２），（１９，２）…に対しても変形処理が行われる。
【００３２】
そして、ラインバッファ３８内の全てのドットデータに対しての処理が終わると、前述したブレセンハム（Ｂｒｅｓｅｎｈａｍ）のアルゴリズムに従って、次に処理すべきライン（ライン［４］、［６］、［９］、［１１］、…）を順次選択する。そして、ラインを選択する度に、選択したラインのドットデータをラインバッファ３８に格納した後、ラインバッファ３８から１ドットずつ取り出し、該ドットデータが指定色であるか否かを判別して、指定色でない場合には、ラインバッファ３８のドットデータをそのままＶＤＰ３４へ出力して表示ディスプレイ３６に表示し、一方、上記取り出したドットデータが指定色である場合には、ステップＳ２８で裏画像データの該当ドットデータをＶＤＰ３４へ出力して表示ディスプレイ３６に表示する。そして、元画像データの全てのライン［０］〜［１５］を処理し終えた場合には、当該変形処理を終了する。
【００３３】
上述した変形処理によれば、図１（ａ）に示すビット配列形式の元画像データに、２色のドットを交互に置いて中間色を表現している部分があっても、図１（ｃ）に示すように、元画像データの色調を損なうことなく、変形することができる。
【００３４】
以上、指定した部分を変形させない変形処理の例として、縦方向に縮小した場合について説明したが、縦方向の縮小に限らず、任意の方向への拡大、縮小、更に任意の変形についても、変形後のドットが指定色である時には、指定色のドットをそのまま表示するのではなく、別に用意した裏画像データから、該当するドットデータを読み出して、指定色のドットに代えて表示するようにすれば、同様の変形処理を実現することができる。
【００３５】
第２の実施例
次に、本発明の第２の実施例について説明する。上述した第１の実施例では、変形させない部分に表示する裏画像データを、元画像データとは別に記憶装置３３内に予め記憶しておいたが、変形しない部分の大きさが、変形によって元の大きさを超えることがなければ、裏画像データとして元画像データを用いることができる。この場合、裏画像データを記憶装置３３内に記憶しておく必要はない。この例を図５を参照して説明する。
【００３６】
図５（ａ）は、前述した図１（ａ）と同じく、ビット配列形式の元画像データを示す図である。この例では、元画像データのライン［４］からライン［１１］までのドットデータを、記憶装置３３に記憶することなく、図５（ｂ）に示すように、そのまま裏画像データとして用いる。なお、裏画面データの裏処理ライン番号の初期値としては、図４に示す変形処理に示すステップＳ１６で「４」を設定するようにしておけば、前述した変形処理をそのまま用いることができる。
【００３７】
この場合、変形処理で選択されたラインにおいて、ドットデータが指定色である時には、元画像データの指定色に代えて表示する画像データとして、元画像データのライン［４］〜［１１］の該当ドットデータをＶＤＰ３４へ出力すればよい。例えば、元画像データのライン［０］のドットデータに対して処理を行う場合には、図５（ｂ）に示す裏画像データのライン［４］、すなわち元画像データのライン［４］が対象となり、変形後の画像データとして表示すべきラインが選択される度に、ライン［５］，［６］，［７］，…，［１１］と進めればよい。この結果、図１に示した裏画像データを記憶装置３３に予め記憶しておく方法と同じように、図５（ｃ）に示す変形後の画像データが得られる。
このように、第２の実施例によれば、変形させない部分に表示する裏画像データとして、元画像データを用いるため、裏画像データを予め記憶装置３３内に持っておく必要はないので、メモリ容量を大幅に節約することができる。
【００３８】
第３の実施例
次に、本発明の第３の実施例について説明する。前述した第１の実施例のように、変形させない部分に表示する裏画像データを、元画像データとは別に記憶装置３３内に予め記憶しておく場合でも、中間色部分の変形を防ぐ目的であれば、中間色を構成する２色のドットデータを２ドット分だけ記憶しておけばよい。指定色のドットデータの代わりに、そのドットデータの座標に応じて、交互に上記２色のドットデータが表示されるように置き換えて、ＶＤＰ３４へ出力すればよい。この例を図６を参照して説明する。
【００３９】
図６（ａ）は、前述した図１（ａ）と同じく、ビット配列形式の元画像データを示す図である。また、図６（ｂ）は、記憶装置３３に記憶された、中間色を構成する２色のドットデータＤ１，Ｄ２を示す図であり、図６（ｃ）は変形後の画像データを示す図である。この場合、変形の際に選択されたドットデータが指定色である時には、該指定色に代えて、図６（ｂ）に示す２つのドットデータＤ１，Ｄ２のうちのいずれかを表示する。１つのドットデータＤ１は、ｘ座標、ｙ座標の一方が奇数、他方が偶数の時に表示される。もう１つのドットデータＤ２は、ｘ座標、ｙ座標が共に奇数または偶数の時に表示される。例えば、図６（ａ）において、ライン［２］におけるピクセル（１５，２）のドットデータが処理対象になっている場合には、該ドットデータは指定色であり、また、該ドットデータは変形後の画像データのピクセル（１５，１）、すなわちｘ座標が奇数で、ｙ座標が奇数のピクセルに置かれるから、図６（ｂ）に示すドットデータＤ２が、元画像のドットデータに代えて、表示ディスプレイ３６に表示される。また、図６（ａ）において、ピクセル（１６，２）のドットデータは、変形後の画像データのピクセル（１６，１）、すなわちｘ座標が偶数で、ｙ座標が奇数のピクセルに置かれるから、図６（ｂ）に示すドットデータＤ１が元画像データのドットデータに代えて、表示ディスプレイ３６に表示される。
【００４０】
このように表示することにより、元画像データを変形しても、図６（ｃ）に示すように、元画像データの中間色を忠実に表現できる。また、この第３の実施例では、ビット配列形式の元画像データ（図６（ａ）の左側）は、そのデータとして各ピクセルごとのパレット番号を持っていて、ＶＤＰ３４内で実際の表示色コードに変換しているので、中間色を構成している色と、その他で用いられている色が共に同じ黒であっても、両者のパレット番号さえ変えて置けば、中間色の部分は変形されずに、その他の黒の部分のみ通常の変形が行われる。
このように、第３の実施例によれば、中間色を構成する２つのドットデータのみを持っておくだけなので、メモリ容量の大幅な節約になる。
なお、本発明の適用はアニメーション、ゲーム等のキャラクター又は背景データ等に限るものではなく、他の分野、他の画像データにも適用できる。
【００４１】
【発明の効果】
本発明によれば、縮小変形するために、ブレセンハムのアルゴリズムを用いて縮小変形後の画像データを構成するラインデータを、元画像を構成する複数のラインデータの中から順次選択して出力した際、このラインデータのドットデータが指定色である場合は、それに代えて別に用意した裏画像データの該当するドットデータを出力する。あるいは、出力されるドットデータが縮小変形後の画像データを構成するドットデータのうち、ＸＹ座標の一方が奇数、他方が偶数のドットデータに一致するときは、当該出力されるドットデータの色を前記異なる色の一方に変換し、ＸＹ座標が共に奇数または偶数のドットデータに一致するときには、当該出力されるドットデータの色を前記異なる色の他方に変換するようにしているので、以下の効果を得ることができる。
（１）アニメーション、ゲーム等のキャラクタまたは背景等、ビット配列形式の画像データを、２色のドットを交互に置いて中間色を表現している部分があっても、縮小変形した場合に元画像データをそのまま用いる部分の表示色を予め設定すれば、元画像データの色調を損なうことなく、変形することができる。
（２）使用できる色数が少なく、中間色を使わざるを得ない場合でも変形によって中間色が壊されることがないため、色数が多い時と同様の変形を行うことができる。
（３）また、縮小変形した場合に元画像データをそのまま用いる部分に表示する裏画像データとして、元画像データを使う場合には、裏画像データを予め記憶手段内に持っておく必要はないので、メモリ容量を大幅に節約することができる。
（４）中間色を構成する２つのドットデータのみを持っておく場合にも、メモリ容量の大幅な節約になる。
【図面の簡単な説明】
【図１】本発明による画像変形方法の原理を説明する図である。
【図２】本発明に係る画像変形方法を実現する画像変形装置の第１の実施例の構成を示すブロック図である。
【図３】同実施例のＣＰＵの内部レジスタに記憶されるデータを説明するための図である。
【図４】同実施例の画像変形処理のメインプログラムを示すフローチャートである。
【図５】本発明による第２の実施例の画像変形方法を説明する図である。
【図６】本発明による第３の実施例の画像変形方法を説明する図である。
【図７】従来の画像変形方法を説明する図である。
【符号の説明】
３１  ＣＰＵ（変形手段、判別手段、置換手段）
３２  入力操作子
３３  記憶装置（記憶手段）
３４  ＶＤＰ（変換手段）
３５  ＶＲＡＭ
３６  ＴＶディスプレイ（表示手段）
３８  ラインバッファ（第２の格納手段）
３９  ライン選択用レジスタ（第１の格納手段）
４１  ビット配列形式の元画像データ
４２  変形データ
４３  指定色データ
４４  ビット配列形式の裏画像データ
【図１】
0003551459.tif 000002
【図２】
0003551459.tif 000003
【図３】
0003551459.tif 000004
【図４】
0003551459.tif 000005
【図５】
0003551459.tif 000006
【図６】
0003551459.tif 000007
【図７】
0003551459.tif 000008