JPH08186707A - 画像拡大装置 - Google Patents

画像拡大装置

Info

Publication number
JPH08186707A
JPH08186707A JP6338727A JP33872794A JPH08186707A JP H08186707 A JPH08186707 A JP H08186707A JP 6338727 A JP6338727 A JP 6338727A JP 33872794 A JP33872794 A JP 33872794A JP H08186707 A JPH08186707 A JP H08186707A
Authority
JP
Japan
Prior art keywords
value
determined
argument
variable
processing
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
JP6338727A
Other languages
English (en)
Inventor
Ryuji Usami
隆二 宇佐美
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP6338727A priority Critical patent/JPH08186707A/ja
Publication of JPH08186707A publication Critical patent/JPH08186707A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

(57)【要約】 【目的】 画像データの拡大に要する記憶容量を低減
し、装置のコストを抑えることを目的とする。 【構成】 ワークRAM308は画像データを格納する
画像エリアA及びB(図示せず)を有し、VDP302
から転送された1画面分の画像データは画像エリアAに
格納される。CPU301は、この画像エリアAに格納
された画像データの範囲を予め設定された倍率に応じて
決定し、該決定した範囲の画像データを拡大してそれを
画像エリアBに格納する。以降、同様にして、一方のエ
リアに格納された画像データを拡大して他方のエリアに
格納する処理を繰り返すことで画像データの拡大を行
う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、画像を拡大する技術に
関し、より詳細には、画像の拡大を行う際に必要となる
ワーク領域を低減するための技術に関する。
【0002】
【従来の技術】一般的な画像拡大装置において採用され
ている画像の最も基本的な拡大方法は、拡大元である原
画像を単純に指定された拡大倍率に従って拡大するもの
であり、この方法は画像拡大装置に広く採用されてい
る。この拡大方法により、例えば原画像における1ドッ
ト(画素)はそれの拡大画像においてはn×n(但し、
nは正の実数)の正方形状に配される。
【0003】一方、画像拡大装置による画像の拡大とし
ては、例えば特公平4−69472号公報の「拡大ハー
ドコピー作成装置」に開示されているように、拡大元の
画像データを複数個の格子ブロックに分け、各格子ブロ
ック毎に画像データの拡大を行うものがある。この拡大
ハードコピー作成装置は、各格子ブロック毎に拡大した
画像データをそれぞれ記録紙に出力することで、継ぎ合
わせの容易なハードコピーを作成するものである。
【0004】
【発明が解決しようとする課題】しかしながら、上記拡
大ハードコピー作成装置に適用されている従来の画像拡
大装置によれば、各格子ブロック毎の画像データの拡大
を所定倍率で行っていることから、その所定倍率よりも
大きな様々な倍率の拡大を行う場合、所定倍率の拡大を
繰り返さなければならないが、その所定倍率の拡大を行
う度にその拡大した画像データを記憶させなければなら
ないため、画像データの拡大に大容量の記憶エリアが必
要となっていたという問題点があった。
【0005】上記の問題点を具体的に説明すると以下の
ようになる。ここでの説明において、所定倍率は4倍と
し、また、簡単のため1つの拡大元の格子ブロックに対
する拡大に着目する。
【0006】ユーザが拡大倍率を4倍に設定した場合、
上記の問題点は発生しないが、拡大倍率を16(4×
4)倍に設定した場合、まず、画像データ(1つの格子
ブロック)を4倍に拡大し、次にその拡大した格子ブロ
ックを更に4つに分割し、その各格子ブロックに対して
それぞれ再度の拡大を行わなくてはならない。従って、
拡大を行う前の始めの1つの格子ブロックを記憶するの
に必要な容量を1とすると、16倍の拡大を行うために
必要となる記憶容量は、1(拡大元の1個の格子ブロッ
ク)+4(1個の拡大元の格子ブロックを4倍に拡大)
+16(4倍に拡大された格子ブロックを更に4倍に拡
大)=21となり、非常に大きな記憶容量が必要とな
る。これは、拡大倍率が大きくなるに従って指数的に増
加する。
【0007】現在では、高画質の画像が求められている
ことから、1つの画素を表現するためのビット数は増加
する傾向にある。このため、画像データの記憶には元々
大きな記憶容量が必要ではあるが、装置のコストを抑え
るために、ワーク用に用いるメモリにおいてはそれを効
率的に使用することで必要となる記憶容量を低減させる
ことが望まれていた。これは、画像拡大装置を含む電子
機器は多機能化の傾向があることから、それぞれの機能
を効率的に運用するうえで一般的にも要請されていたこ
とである。
【0008】本発明の課題は、画像データの拡大に要す
る記憶容量を低減し、装置のコストを抑えることにあ
る。
【0009】
【課題を解決するための手段】本発明の画像拡大装置
は、画像データを記憶する2つの記憶エリアを有する記
憶手段と、拡大倍率を設定する設定手段と、2つの記憶
エリアの一方の記憶エリアに記憶された画像データを読
み出して拡大し、該拡大した画像データを他方の記憶エ
リアに記憶させる画像拡大手段と、画像拡大手段による
画像データの拡大を繰り返させることで、記憶手段の一
方の記憶エリアに予め記憶された拡大元の画像データ
を、設定手段により設定された拡大倍率に拡大させる制
御を行う制御手段とを具備する。
【0010】上記の構成において、画像拡大手段は、予
め設定された基本拡大倍率に従って画像データの拡大を
行い、制御手段は、基本拡大倍率に応じて画像拡大手段
が一方の記憶エリアから読み出す画像データの範囲を指
定することが望ましい。
【0011】また、制御手段は、画像データの範囲の指
定を変更していくことにより、拡大元の画像データ全体
に対する拡大を画像拡大手段に行わせることが望まし
い。
【0012】
【作用】本発明の画像拡大装置は、記憶手段が有する2
つの記憶エリアの一方に拡大元の画像データを記憶する
と、この2つの記憶エリアの一方を拡大される画像デー
タが記憶されたエリア、他方をそれを拡大した画像デー
タが記憶されるエリアとして、拡大した画像データが記
憶されるエリアを交互に変更しながら画像データの拡大
を行う。
【0013】これにより、記憶手段には、拡大前の画像
データとそれを拡大した後の画像データの2種類の画像
データを記憶できる大きさの記憶容量(2つの記憶エリ
アを合計した大きさ)を持たせればよいことになる。ま
た、本発明の画像拡大装置は、予め設定された基本拡大
倍率に応じて拡大前の画像データの拡大する範囲の指定
を行う。
【0014】これにより、拡大後の画像データを1画面
分以下のデータ量とすることができるので、記憶手段に
は、拡大前の画像データとそれを拡大した後の画像デー
タの記憶には2画面分の画像データを記憶できる大きさ
の記憶容量(2つの記憶エリアを合計した大きさ)を持
たせればよいことになる。
【0015】拡大前の画像データの拡大する範囲の指定
を行う場合、この範囲の指定を変更していくことで、拡
大元の画像データ全体に対する拡大を行うことができ
る。このとき、記憶手段の記憶容量を2画面分とする
と、2段階以上の拡大を行った場合、拡大元の画像デー
タを記憶させておくことができないことから、再び拡大
元の画像データを一方の記憶エリアに記憶させなくては
ならないが、記憶手段の記憶容量を3画面分とするとこ
れを回避することができる。
【0016】
【実施例】以下、図面を参照しながら、本発明の実施例
につき詳細に説明する。 <実施例の外観図>図1は、本発明の実施例の外観図で
あり、プリンタ付き似顔絵作成装置として実施される。
【0017】この装置の筐体上には、用紙カセットが挿
入されるカセット部101、用紙カセットを取り出すた
めのカセットイジェクトボタン102、オーディオ出力
端子103、ビデオ出力端子104、印刷濃度を調整す
るための印刷濃度ボリューム105、印刷された用紙を
切るための用紙カッター106、電源スイッチ107
と、図2及び図3で後述するコントロールパッド313
及びプリンタ部312などが備えられている。 <コントロールパッドの外観図>図2は、図1のコント
ロールパッド313の外観図である。コントロールパッ
ド313上には、SELスイッチ201、ENTERス
イッチ202、及び上下左右スイッチ203〜206が
備えられている。 <実施例の回路の全体構成>図3は、本発明の実施例の
回路の全体構成図であり、テレビ311を除いて、図1
に示される筐体の内部に構成される。
【0018】VDP(ビデオディスプレイプロセッサ)
302は、スプライト(オブジェクト)、バックグラウ
ンド等に関する画像処理を制御する。SRAM(スタテ
ィックRAM)303は、スプライト(オブジェクト)
及びバックグラウンドの画像データを格納する。DP−
RAM304(デュアルポートRAM)304は、ビッ
トマップの画像データを格納する。SRAM303及び
DP−RAM304は、VDP302からアクセスされ
る。
【0019】音源処理回路305は、画像と共に発音さ
れる楽音のサウンドデータを生成する。サウンドRAM
306は、音源処理回路305が処理する楽音波形デー
タ及びそれらの制御データを格納する。
【0020】プログラム/データROM307は、CP
U301が実行するプログラム及びそのプログラムにお
いて使用される各種データを格納する。CPU301
は、このプログラムに従って、ワークRAM308を使
用しながら、VDP302及び音源処理回路305を制
御する。
【0021】エンコーダ309は、VDP302から送
られてくるRGBアナログ映像信号をテレビ規格の映像
信号(NTSC信号)に変換する。D/A変換器310
は、音源処理回路305から送られてくるデジタルのサ
ウンドデータをアナログのサウンド信号に変換する。
【0022】テレビ311は、エンコーダ309から図
1のビデオ出力端子104を介して出力される映像信号
及びD/A変換器310から図1のオーディオ出力端子
103を介して出力されるサウンド信号を再生する。
【0023】プリンタ部312は、テレビ311に表示
されている画像を印刷する。コントロールパッド313
は、図2に示される外観を有しており、ユーザに、各種
操作を行わせる。 <VDP302の構成>図4は、図3に示されるVDP
302の構成図である。
【0024】このVDP302は、ゲーム時に、主とし
て動くキャラクターを表現するスプライト(オブジェク
ト)と、背景を表現するバックグラウンド及びビットマ
ップのテレビ311(図3)への画面表示を制御する。
【0025】CPUインタフェース部401は、図3の
CPU301との間のデータ転送時におけるインタフェ
ースを制御する。SRAMインタフェース部402は、
後述するオブジェクトジェネレータ部404又はバック
グラウンドジェネレータ部405が図3のSRAM30
3に格納されているスプライト(オブジェクト)又はバ
ックグラウンド(背景)の画像データをアクセスする場
合のインタフェースを制御する。
【0026】DP−RAMインタフェース部403は、
後述するビデオ信号ジェネレータ部414が図3のDP
−RAM304に格納されているビットマップの画像デ
ータをアクセスする場合のインタフェースを制御する。
【0027】オブジェクトジェネレータ部404と、バ
ックグラウンドジェネレータ部405、及びビデオ信号
ジェネレータ部414は、各水平期間(後述する図10
を参照)毎に、図3のSRAM303又はDP−RAM
304から、次の水平表示期間(後述する図10参照)
内の各ドット表示タイミングに対応する表示座標に配置
されるスプライト(オブジェクト)、バックグラウン
ド、又はビットマップの色コードを読み込み、それぞれ
の内部のバッファに格納する。
【0028】また、オブジェクトアトリビュートメモリ
部407は、オブジェクトジェネレータ部404がSR
AM303からSRAMインタフェース部402を介し
てスプライト(オブジェクト)を読み出すときのタイミ
ングに対応する表示座標を格納する。
【0029】プライオリティコントローラ部408は、
各水平表示期間内の各ドット毎に、オブジェクトジェネ
レータ部404、バックグラウンドジェネレータ部40
5、又はビデオ信号ジェネレータ部414がそれぞれ読
み込んだ色コードのうちの1つを予め定められたプライ
オリティ(優先順位)に従って選択して出力する。
【0030】カラールックアップテーブル部409は、
プライオリティコントローラ部408から出力された色
コードを、R(赤)、G(緑)、B(青)のデジタルデ
ータに変換して出力する。
【0031】RGB D/A変換部410は、プライオ
リティコントローラ部408から出力されるRGBデジ
タルデータをRGBアナログ映像信号に変換し出力す
る。オシレータ部411は、VDP302に必要な各種
クロックを生成する。
【0032】水平/垂直同期カウンタ部412は、オシ
レータ部411が出力するクロックに従って、画像表示
に必要な水平同期カウンタ値(水平同期信号)及び垂直
同期カウンタ値(垂直同期信号)を生成するためのカウ
ンタ回路である。
【0033】デコーダ部413は、水平/垂直同期カウ
ンタ部412が出力するカウンタ値から水平同期カウン
タ値及び垂直同期カウンタ値をデコードし、VDP30
2内の各ブロックに供給する。
【0034】ビデオ信号ジェネレータ部414は、デコ
ーダ部413が出力する水平同期カウンタ値及び垂直同
期カウンタ値から、図3のエンコーダ309が必要とす
るビデオ信号を生成し、エンコーダ309に供給する。
【0035】RGBバッファ部415は、カラールック
アップテーブル部409から出力されるRGBデジタル
データを、図3のテレビ311上の表示画面の1ライン
分(256ドット分)だけ格納する。 <VDP302の動作>上述の構成を有するVDP30
2の概略の動作について説明する。
【0036】まず、本実施例においては、表示画面は、
図5に示されるように、8枚の仮想的な表示面が重なっ
たものとして定義される。これらの表示面は、奥から手
前に向けて、バックグラウンドA面(BG−A面)、ビ
ットマップB2面(BM−B2面)、ビットマップB1
面(BM−B1面)、オブジェクトA面(OBJ−A
面)、ビットマップA2面(BM−A2面)、ビットマ
ップA1面(BM−A1面)、オブジェクトB面(OB
J−B面)、及びバックグラウンドB面(BG−B面)
の順に配置される。そして、手前の表示面にアサインさ
れる画像ほど表示のプライオリティが高く、それより奥
の表示面にアサインされている画像を隠して表示され
る。
【0037】図6に、各表示面にアサインされる画像デ
ータの種類(部品)と、各ドットに割り当てられる色コ
ードのビット数、及び表示サイズ(X、Y方向のドット
数)を示す。
【0038】BG−A面、BG−B面、OBJ−A面、
及びOBJ−B面の現在の表示画面を構成する画像デー
タは、図7に示されるデータフォーマットで、図3に示
されるSRAM303に格納される。これらの画像デー
タは、図3に示されるCPU301が、プログラム/デ
ータROM307から図4のCPUインタフェース部4
01、アドレスバス416、データバス417、及びS
RAMインタフェース部402を介してSRAM303
に格納する。
【0039】また、BM−A1面、BM−A2面、BM
−B1面、及びBM−B2面の現在の表示画面を構成す
る画像データは、図8に示されるデータフォーマット
で、図3に示されるDP−RAM304に格納される。
これらの画像データも、図3に示されるCPU301
が、プログラム/データROM307から図4のCPU
インタフェース部401、アドレスバス416、データ
バス417、及びDP−RAMインタフェース部403
を介してSRAM303に格納する。
【0040】オブジェクトジェネレータ部404及びバ
ックグラウンドジェネレータ部405は、各水平期間内
の時分割された各タイミングで、SRAMインタフェー
ス部402をアクセスする。このアクセスにおいて、オ
ブジェクトジェネレータ部404は、図3のSRAM3
03から、次の水平表示期間内の各ドットの表示タイミ
ングに対応するOBJ−A面上の表示座標及びOBJ−
B面上の表示座標にそれぞれ配置されるスプライト(オ
ブジェクト)の色コードを読み出し、オブジェクトジェ
ネレータ部404内の上記各表示面に対応するラインバ
ッファにそれぞれ格納する。同様に、バックグラウンド
ジェネレータ部405は、図3のSRAM303から、
次の水平表示期間内の各ドットの表示タイミングに対応
するBG−A面上の表示座標及びBG−B面上の表示座
標にそれぞれ配置されるバックグラウンドの色コードを
読み出し、バックグラウンドジェネレータ部405内の
上記各表示面に対応するラインバッファにそれぞれ格納
する。
【0041】上述した動作において、図3のCPU30
1は、図4のCPUインタフェース部401、アドレス
バス416、及びデータバス417を介してオブジェク
トアトリビュートメモリ部407に、図3のSRAM3
03に図7に示されるデータフォーマットで格納されて
いる最大で128個の各スプライト(オブジェクト)が
OBJ−A面又はOBJ−B面に配置される場合の配置
座標を、図9に示されるデータフォーマットで格納す
る。そして、オブジェクトジェネレータ部404は、こ
のオブジェクトアトリビュートメモリ部407に格納さ
れている各スプライト(オブジェクト)について、それ
らの配置座標に対応する読出しタイミングを計算し、そ
れらの計算されたタイミングで、各スプライト(オブジ
ェクト)をSRAM303から読み出してラインバッフ
ァに格納する。
【0042】一方、ビデオ信号ジェネレータ部414
は、上述のオブジェクトジェネレータ部404とバック
グラウンドジェネレータ部405のアクセス動作からは
独立して、各水平期間内の時分割された各タイミング
で、DP−RAMインタフェース部403をアクセスす
る。このアクセスにおいて、バックグラウンドジェネレ
ータ部405は、図3のDP−RAM304から、次の
水平表示期間内の各ドットの表示タイミングに対応する
BM−A1面上の表示座標、BM−A2面上の表示座
標、BM−B1面上の表示座標、及びBM−B2面上の
表示座標にそれぞれ配置されるビットマップの色コード
を読み出し、ビデオ信号ジェネレータ部414内の上記
各表示面に対応するラインバッファにそれぞれ格納す
る。
【0043】以上のようにして、各水平期間毎に、オブ
ジェクトジェネレータ部404内の2つのラインバッフ
ァに、OBJ−A面及びOBJ−B面にそれぞれ配置さ
れる次の1ライン分のスプライト(オブジェクト)の色
コードが得られ、バックグラウンドジェネレータ部40
5内の2つのラインバッファにBG−A面及びBG−B
面にそれぞれ配置される次の1ライン分のバックグラウ
ンドの色コードが得られ、ビデオ信号ジェネレータ部4
14内の4つのラインバッファにBM−A1面、BM−
A2面、BM−B1面、及びBM−B2面にそれぞれ配
置される次の1ライン分のビットマップの色コードが得
られる。
【0044】なお、図3のCPU301は、図10に示
されるデータフォーマットを有するVDP302内の特
には図示しない表示制御レジスタに、図5に示される各
表示面が使用されるか否かを設定する。図4のオブジェ
クトジェネレータ部404、バックグラウンドジェネレ
ータ部405、及びビデオ信号ジェネレータ部414
は、この表示制御レジスタの内容を参照することによ
り、各表示面に対応する画像データ(色コード)をSR
AM303又はDP−RAM304から読み出すか否か
を決定する。
【0045】図11は、画面表示タイミングの説明図で
ある。図4のデコーダ部413から出力される水平同期
カウンタ値が000h〜2FFh(“h”は16進数を
示す)まで変化する期間が1水平期間であり、そのうち
000h〜0FFhの256カウント分の水平同期カウ
ンタ値に対応する期間が256ドットからなる1ライン
分の水平表示期間、それ以外の水平同期カウンタ値に対
応する期間が水平ブランク期間である。また、デコーダ
部413から出力される垂直同期カウンタ値が000h
〜1FFhまで変化する期間が1垂直期間であり、これ
が図3のテレビ311上の1画面分の表示期間となる。
そして、000h〜0DFhの224カウント分の垂直
同期カウンタ値に対応する期間が垂直方向224ライン
分の垂直表示期間、それ以外の垂直同期カウンタ値に対
応する期間が垂直ブランク期間である。
【0046】カラールックアップテーブル部409から
RGB D/A変換部410へは、水平同期カウンタ値
がカウントアップされる毎に、1組ずつのRGBデータ
が出力される。
【0047】また、図3のCPU301からSRAM3
03、DP−RAM304、又はオブジェクトアトリビ
ュートメモリ部407(図4)への各種データの設定
は、例えば各垂直ブランク期間内に実行され、これによ
り表示画面を刻々と変化させることができる。
【0048】図12は、図4に示されるRGBバッファ
部415の構成図である。まず、図3のCPU301か
ら図4のCPUインタフェース部401を介してライン
指定値レジスタ1213に、現在テレビ311に表示さ
れている画面内のライン位置を指定するCPUライン指
定値1212がセットされる。その後、図3のCPU3
01から図4のCPUインタフェース部401を介して
アドレス制御部1202に、格納開始信号1203が通
知される。
【0049】アドレス制御部1202は、図3のCPU
301から図4のCPUインタフェース部401を介し
て格納開始信号1203を受け取った後、ライン指定値
レジスタ1213にセットされたCPUライン指定値1
212と図4のデコーダ部413から出力される垂直同
期カウンタ値1211が一致したことを示す一致信号1
215が比較器1214から出力されるタイミングで、
図4のデコーダ部413から出力される水平同期カウン
タ値1204に対応するメモリアドレス1206と書込
みを指示するリード/ライト信号1207のパルスを順
次発生し、RGBラインメモリ部1201に供給する。
この結果、RGBラインメモリ部1201には、カラー
ルックアップテーブル部409から入力されるCPUラ
イン指定値1212に対応する1ライン分(256ドッ
ト分)の入力RGBデータ1205が書き込まれる。
【0050】図13に、1ライン分の水平同期カウンタ
値1204((a) )と、入力RGBデータ1205
((b) )、メモリアドレス1206((c) )、及びリー
ド/ライト信号1207((d) )のタイミングを示す。
【0051】図3のCPU301は、アドレス制御部1
202から図4のCPUインタフェース部401を介し
て格納終了信号1208を受け取ると、図4のCPUイ
ンタフェース部401からアドレスバス416を介し
て、CPUアドレス1209をアドレス制御部1202
に供給する。アドレス制御部1202は、CPUアドレ
ス1209をそのままメモリアドレス1206としてR
GBラインメモリ部1201に順次供給すると共に、読
出しを指示するリード/ライト信号1207のパルスを
RGBラインメモリ部1201に順次供給する。この結
果、RGBラインメモリ部1201から図4のデータバ
ス417を介して図3のワークRAM308に、CPU
ライン指定値1212に対応する1ライン分の出力RG
Bデータ1210が出力される。この出力RGBデータ
1210は、図3のワークRAM308内の原画像エリ
アのCPUライン指定値1212に対応する記憶領域に
格納される。
【0052】CPU301は、上述の一連の動作を、C
PUライン指定値1212を順次指定しながら繰り返す
ことにより、テレビ311に表示されている1画面分の
出力RGBデータ1210を、VDP302からワーク
RAM308内の原画像エリアに転送させる。
【0053】その後、CPU301がワークRAM30
8に転送された1フィールド分の出力RGBデータ12
10に対して後述する印刷処理を実行することにより、
テレビ311に表示されている画像と同じ画像が高品質
でプリンタ部312に印刷される。この場合、後述のよ
うに所定の拡大倍率を指定することも可能である。 <CPU301の詳細動作>図3のCPU301の動作
について、図14〜図35、及び図52〜図88に示さ
れる動作フローチャート、図36〜図51、図89〜図
98の説明図に沿って、詳細に説明する。なお、各動作
フローチャートは、CPU301がプログラム/データ
ROM307に記憶される制御プログラムを実行する動
作として実現される。表示画面の遷移関係 図14は、図3のテレビ311での表示画面の遷移関係
を示した図である。
【0054】システムの電源がオンされるとモード選択
画面が表示される(ステップ1401)。モード画面に
おいては、モード1とモード2を選択することができ
る。モード選択画面においてモード1が選択された場合
は、アンケート画面が表示される(ステップ140
2)。アンケート画面は、似顔絵を新規に作成する場合
においてユーザに作成したい似顔絵の概形を決定させる
ための画面である。
【0055】モード選択画面においてモード2が選択さ
れた場合は、ファイル操作画面が表示される(ステップ
1403)。ファイル操作画面は、似顔絵データを図3
に示されるバッテリバックアップされているワークRA
M308からロードさせるための画面である。
【0056】ユーザがアンケート画面又はファイル操作
画面での操作を終了させると、似顔絵作成モードの画面
に移行する(ステップ1404)。このモードは、ユー
ザに似顔絵を作成させる動作等を行わせるためのモード
である。なお、ファイル操作画面での操作が取り消され
た場合には、モード選択画面に戻る(ステップ1403
→1401)。
【0057】ユーザが似顔絵作成モードにおける後述す
る基本システム画面での操作を終了させると、表示がモ
ード選択画面に戻る(ステップ1404→1401)。
図15は、似顔絵作成モードでの表示画面の遷移関係を
示した図である。
【0058】似顔絵作成モードでの基本的な画面は基本
システム画面である(ステップ1501)。基本システ
ム画面において、ユーザがファイルのセーブ操作を選択
すると、ユーザにファイル名を入力させるための文字入
力画面に移行する(ステップ1502)。ユーザによる
ファイル名の入力操作が終了すると、ユーザにワークR
AM308上のファイルの格納位置を選択させるための
ファイル操作画面に移行する(ステップ1503)。ユ
ーザによるファイル格納位置の選択操作が終了しファイ
ルのセーブが終了すると、表示が基本システム画面に戻
る(ステップ1502→1501)。
【0059】また、基本システム画面において、ユーザ
がふきだしの操作を選択すると、ユーザにふきだしへせ
りふを入力させるための文字入力画面に移行する(ステ
ップ1504)。ユーザによるふきだしへのせりふの入
力操作が終了すると、表示が基本システム画面に戻る
(ステップ1504→1501)。全体動作フロー 図16は、CPU301が実行する全体動作フローチャ
ートである。
【0060】システムの電源がオンされると、モード選
択画面が表示される(ステップ1601)。具体的に
は、図3に示されるCPU301が、例えば垂直ブラン
ク期間(図11参照)において、プログラム/データR
OM307から、図4のCPUインタフェース部40
1、アドレスバス416、データバス417、及びSR
AMインタフェース部402を介してSRAM303の
図7に示されるBG−A面及びBG−B面の記憶領域
に、モード選択画面用のバックグラウンド画像データを
転送する。この結果、図4に示される構成を有するVD
P302が、前述したようにして、SRAM303上の
BG−A面及びBG−B面の記憶領域に転送されたモー
ド選択画面用の画像データを図3のテレビ311に表示
する。モード選択画面では、特には図示しないが、モー
ド1とモード2を選択するための選択領域が表示されて
いる。最初にモード選択画面が表示された時点では、例
えばモード1の選択領域が強調表示されている。また、
モード選択画面には、図44に示されるようなふきだし
の表示もなされる。
【0061】図16のステップ1601〜1606の繰
返しにおいては、ユーザが図2又は図3のコントロール
パッド313においてONしたスイッチの種別の判定
と、ONしたスイッチに応じたモード選択画面の表示の
変更が行われる。
【0062】ユーザが図2のSELスイッチ201又は
上スイッチ(SW)203をONすると、ステップ16
02の判定がYESとなり、ステップ1603におい
て、特には図示しないレジスタに設定されるモード番号
(#)が1から2にインクリメントされる。モード番号
が既に2になっている場合は、番号は変化しない。この
結果、次にステップ1601が実行されるときに、モー
ド2の選択領域が強調表示されたモード選択画面が表示
される。
【0063】ユーザが図2の下スイッチ204をONす
ると、ステップ1604の判定がYESとなり、ステッ
プ1605において、特には図示しないレジスタに設定
されるモード番号(#)が2から1にデクリメントされ
る。モード番号が既に1になっている場合には、番号は
変化しない。この結果、次にステップ1601が実行さ
れるときに、モード1の選択領域が強調表示されたモー
ド選択画面が表示される。
【0064】ユーザが図2のENTERスイッチ202
をONすると、ステップ1606の判定がYESとな
る。この結果、ステップ1607で、特には図示しない
レジスタに設定されている現在のモード番号が判定され
る。
【0065】現在のモード番号が1であると判定された
場合には、ステップ1608でアンケート画面の処理が
実行される。一方、現在のモード番号が2であると判定
された場合には、ステップ1609でファイルをロード
するためのファイル操作画面の処理が実行される。
【0066】ユーザがステップ1608においてテレビ
311に表示されるアンケート画面又はステップ160
9においてテレビ311に表示されるファイル操作画面
を終了させると、ステップ1610で似顔絵作成モード
の処理が実行される。なお、ユーザがファイル操作画面
の操作を取り消すと、表示がモード選択画面に戻る(ス
テップ1609→1601)。ユーザがステップ161
0においてテレビ311に表示される似顔絵作成モード
の基本的な表示画面である基本システム画面を終了させ
ると、ステップ1601に戻る。アンケート画面の処理フロー 図17及び図18は、図16のステップ1608として
実行されるアンケート画面の処理を示す動作フローチャ
ートである。ユーザは、アンケート画面において、新規
に作成したい似顔絵の概形を決定することができる。
【0067】図17のステップ1701〜1712の繰
返しにおいては、ユーザが図2又は図3のコントロール
パッド313においてONしたスイッチの種別の判定
と、ONしたスイッチに応じたアンケート画面の表示の
変更が行われる。
【0068】まず、ステップ1701で、アンケート画
面が表示される。具体的には、図3に示されるCPU3
01が、例えば垂直ブランク期間(図11参照)におい
て、プログラム/データROM307から、図4のCP
Uインタフェース部401、アドレスバス416、デー
タバス417、及びSRAMインタフェース部402を
介してSRAM303の図7に示されるBG−A面、B
G−B面、及びOBJ−B面の各記憶領域に、アンケー
ト画面用のバックグラウンド画像データとオブジェクト
画像データを転送する。この結果、図4に示される構成
を有するVDP302が、前述したようにして、SRA
M303上の上記各記憶領域に転送されたアンケート画
面用の画像データを図3のテレビ311に表示する。
【0069】アンケート画面としては、図36に示され
るように、#0〜#3の質問番号毎の選択答表示(質問
番号1では答選択用絵も含む)と、「おしまい」の終了
表示と、「はい」「いいえ」の表示を含む確認答表示
と、現在選択されている表示を指示するふきだしと人形
の絵からなるヘルパーが表示される。初期状態において
は、ヘルパーは質問番号0の選択答表示を指示してい
る。ヘルパーは、CPU301によってSRAM303
のOBJ−B面の記憶領域に転送されたオブジェクト画
像データによって表示される。また、上述のヘルパーの
指示位置は、CPU301が、プログラム/データRO
M307から、図4のCPUインタフェース部401、
アドレスバス416、及びデータバス417を介してオ
ブジェクトアトリビュートメモリ部407に適切な座標
データを転送し、このデータをオブジェクトジェネレー
タ部404が参照することによって制御される。なお、
図36の確認答表示は、初期状態においては表示されな
い。
【0070】ユーザが図2のSELスイッチ201又は
下スイッチ(SW)204をONすると、ステップ17
02の判定がYESとなり、ステップ1703におい
て、特には図示しないレジスタに設定される質問番号
(#)が+1だけインクリメントされる。この結果、次
にステップ1701が実行されるときに、ヘルパーの指
示位置が、質問番号0の選択答表示の位置から質問番号
1の選択答表示の位置に移動する。この動作は、CPU
301が、図4のオブジェクトアトリビュートメモリ部
407に上記各指示位置に対応する座標データを転送す
る動作として実現される。ユーザがSELスイッチ20
1又は下スイッチ204をONし質問番号がインクリメ
ントされる毎に、ヘルパーの指示位置は、図36→図3
7→図38→図39に示される順に変化する。これと共
に、ふきだしの表示内容も上述の各図又は図45の(b)
〜(d) に示されるように変化する。この動作は、CPU
301が、VDP302を介してSRAM303のOB
J−B面の記憶領域に、上記各表示に対応するオブジェ
クト画像データを転送する動作として実現される。
【0071】上記とは逆に、ユーザが図2の上スイッチ
203をONする毎に、ステップ1704の判定がYE
Sとなり、ステップ1705において、特には図示しな
いレジスタに設定される質問番号(#)が−1だけデク
リメントされる。この結果、ステップ1701が実行さ
れるときに、ヘルパーの指示位置が、図39→図38→
図37→図36に示される順に変化する。
【0072】ユーザが図2の右スイッチ206又は左ス
イッチ205をONすると、ステップ1706又は17
08の判定がYESとなり、ステップ1707又は17
09において、特には図示しないレジスタに設定されて
いる質問番号に対応して予め用意されている選択答表示
群の中を順方向又は逆方向に移動しながら、選択答表示
が入れ替えられて表示される。この動作は、CPU30
1が、VDP302を介してSRAM303のBG−A
面又はBG−B面の記憶領域に、上記選択答表示に対応
するバックグラウンド画像データを転送する動作として
実現される。
【0073】なお、質問番号の値が4になっていない場
合には、ステップ1710の判定がNOとなるため、ス
テップ1711で、確認答表示(図36等参照)は消去
される。
【0074】ユーザが図2のSELスイッチ201又は
下スイッチ204をONすることにより、ステップ17
03で特には図示しないレジスタに設定される質問番号
がインクリメントされた結果、その質問番号の値が4に
なった場合には、ステップ1710の判定がYESとな
り、図2のENTERスイッチ202がONされていな
ければステップ1712の判定がNOとなった後、ステ
ップ1701で、「おしまい」の終了表示が強調表示さ
れる。この動作は、CPU301が、VDP302を介
してSRAM303のBG−A面又はBG−B面の記憶
領域に、上記強調終了表示に対応するバックグラウンド
画像データを転送する動作として実現される。
【0075】特には図示しないレジスタに設定される質
問番号の値が4となって終了表示が強調表示されている
ときにユーザが図2のENTERスイッチ202をON
すると、ステップ1712の判定がYESとなる。この
結果、図18のステップ1713で、「はい」「いい
え」の表示を含む確認答表示が表示される。なお、初期
状態では、「はい」が強調表示されている。この動作
は、CPU301が、VDP302を介してSRAM3
03のBG−A面又はBG−B面の記憶領域に、上記確
認答表示に対応するバックグラウンド画像データを転送
する動作として実現される。
【0076】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ1713に続くステップ1714〜1718の繰返
しにおいて検出される。
【0077】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ1714又は1716の判定がYES
となり、ステップ1715又は1716で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0078】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ1718の判定がYESとなり、ステップ1719
が実行される。
【0079】ステップ1719においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ1719で「いいえ」が強調表示されていると判
定された場合には、ステップ1720で確認答表示が消
去された後、図17のステップ1701の処理に戻り、
ヘルパーが質問番号0の選択答表示を指示するアンケー
ト画面の初期表示に戻る。質問番号が格納されるレジス
タの内容も0にリセットされる。
【0080】ステップ1719で「はい」が強調表示さ
れていると判定された場合には、ステップ1721で、
CPU301は、プログラム/データROM307か
ら、#0〜#3の各質問番号に対応して現在アンケート
画面に表示されている選択答表示に対応する似顔絵の画
像データを、図4のCPUインタフェース部401、ア
ドレスバス416、データバス417、及びSRAMイ
ンタフェース部402又はDP−RAMインタフェース
部403を介してSRAM303又はDP−RAM30
4の図7又は図8に示される各記憶領域に、ロードす
る。また、CPU301は、プログラム/データROM
307から、図4のCPUインタフェース部401、ア
ドレスバス416、及びデータバス417を介してオブ
ジェクトアトリビュートメモリ部407に、SRAM3
03に転送される各オブジェクトの座標データを転送す
る(図9参照)。
【0081】その後、基本システム画面の処理に移行す
る(ステップ1722)。ステップ1721から172
2への移行は、図14のステップ1402から1404
(図15のステップ1501)への移行、又は図16の
ステップ1608から1610への移行に対応してい
る。ファイル操作画面の処理フロー(ロード) 図19〜図21は、図16のステップ1609として又
はステップ1610の一部の処理として実行されるファ
イル操作画面の処理を示す動作フローチャートである。
ユーザは、ファイル操作画面において、保存してあった
似顔絵の画像データファイルをロードし、或いは、作成
した似顔絵の画像データをファイルとしてセーブするこ
とができる。ここでは、ロード処理について説明する。
【0082】前述したように、モード選択画面において
モード2が選択された場合に、図19〜図21のファイ
ル操作画面の処理の動作フローチャートが、図14のス
テップ1403又は図16のステップ1609として実
行される。このファイル操作画面では、似顔絵データを
図3に示されるバッテリバックアップされているワーク
RAM308からロードさせるための操作を行うことが
できる。
【0083】図19のステップ1901〜1904→1
905又は1917(図20)の繰返しでは、ユーザが
図2又は図3のコントロールパッド313においてON
したSELスイッチ201、ENTERスイッチ20
2、又は上下左右スイッチ203〜206に対応する処
理が実行される。
【0084】まず、ステップ1901で、ファイル操作
画面が表示される。具体的には、図3のCPU301
が、例えば垂直ブランク期間(図11参照)において、
プログラム/データROM307から、図4のCPUイ
ンタフェース部401、アドレスバス416、データバ
ス417、及びSRAMインタフェース部402を介し
てSRAM303の図7に示されるBG−A面及びBG
−B面の各記憶領域に、ファイル操作画面用のバックグ
ラウンド画像データを転送する。この結果、図4に示さ
れる構成を有するVDP302が、前述したようにし
て、SRAM303上の上記各記憶領域に転送されたフ
ァイル操作画面用の画像データを図3のテレビ311に
表示する。
【0085】ファイル操作画面としては、図40に示さ
れるように、ファイルセーブ時の警告を表示する警告ら
んと、現在選択されているファイルの番号と名前を表示
する現在ファイル番号表示及びファイル名表示と、ファ
イルの種類を絵として表示するファイルアイコンと、
「はい」「いいえ」の表示を含む確認答表示と、説明を
表示するふきだしと人形の絵からなるヘルパーと、ファ
イル操作画面の処理の取消しを指示する戻るアイコンが
表示される。図14のステップ1403又は図16のス
テップ1609でファイル操作画面が表示される場合に
は、ヘルパーのふきだしの初期表示として、図46(a)
に示される内容が表示される。また、図40の確認答表
示は、初期状態においては表示されない。
【0086】ユーザが図2のSELスイッチ201をO
Nすると、ステップ1902の判定がYESとなって、
ステップ1903において、SELレジスタの値が1と
0とで交互に反転される。
【0087】ステップ1904においては、SELレジ
スタの値が1であるか否かが判定される。SELレジス
タの値が1でステップ1904の判定がYESの場合に
は、図2のENTERスイッチ202がONされていな
ければステップ1905の判定がNOとなった後、次に
ステップ1901が実行されるときに、図40の戻るア
イコンが強調表示される。また、ヘルパーのふきだしの
表示として、図46(c) に示される内容が表示される。
これらの動作は、CPU301が、VDP302を介し
てSRAM303のBG−A面又はBG−B面の記憶領
域に、上記表示に対応するバックグラウンド画像データ
を転送する動作として実現される。
【0088】一方、SELレジスタの値が0でステップ
1904の判定がNOの場合は、図2の上下左右スイッ
チ203〜206がONされていなければ図20のステ
ップ1916の判定がNOとなった後、次にステップ1
901が実行されるときに、図40の#1〜#16のフ
ァイルアイコンの何れかが強調表示される。また、図1
4のステップ1403又は図16のステップ1609で
ファイル操作画面が表示される場合には、ヘルパーのふ
きだしの表示として、図46(a) に示される内容が表示
される。これらの動作は、CPU301が、VDP30
2を介してSRAM303のBG−A面又はBG−B面
の記憶領域に、上記表示に対応するバックグラウンド画
像データを転送する動作として実現される。
【0089】上述のように、ユーザは、ファイル操作画
面において図2のSELスイッチ201をONする毎
に、戻るアイコンとファイルアイコンとを交互に選択す
ることができる。
【0090】図40の戻るアイコンが強調表示されてい
るとき(SELレジスタの値が1のとき)に、ユーザが
図2のENTERスイッチ202をONすると、ステッ
プ1905の判定がYESとなって、ステップ1906
で、「はい」「いいえ」の表示を含む確認答表示が表示
される。ユーザは「はい」又は「いいえ」の何れかを選
択することにより、ファイル操作画面の処理を取り消す
か否かを選択できる。なお、初期状態においては、「い
いえ」が強調表示されている。また、ヘルパーのふきだ
しの表示として、図46(c) に示される内容が表示され
る。これらの動作は、CPU301が、VDP302を
介してSRAM303のBG−A面又はBG−B面の記
憶領域に、上記表示に対応するバックグラウンド画像デ
ータを転送する動作として実現される。
【0091】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ1906に続くステップ1907〜1911の繰返
しにおいて検出される。
【0092】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ1907又は1909の判定がYES
となり、ステップ1908又は1910で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0093】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ1911の判定がYESとなり、ステップ1912
が実行される。
【0094】ステップ1912においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ1912で「いいえ」が強調表示されていると判
定された場合には、ステップ1913で確認答表示が消
去された後、ステップ1901の処理に戻って、ファイ
ル操作画面の表示に戻る。
【0095】ステップ1912で「はい」が強調表示さ
れていると判定された場合には、ステップ1914で、
現在のファイル操作がファイルのセーブ操作であるかロ
ード操作であるかが判定される。
【0096】モード選択画面においてモード2が選択さ
れることにより似顔絵データのロードを行わせるために
図14のステップ1403又は図16のステップ160
9でファイル操作画面が表示されている場合は、ステッ
プ1914で現在のファイル操作がファイルのロード操
作であると判定されるため、ステップ1916におい
て、モード選択画面の処理に制御が戻される(図16の
ステップ1609→1601)。
【0097】一方、後述するように基本システム画面か
らファイルのセーブ操作が選択されることにより図15
のステップ1503でファイル操作画面が表示されてい
る場合には、ステップ1914で現在のファイル操作が
ファイルのセーブ操作であると判定されるため、ステッ
プ1915において、基本システム画面の処理に制御が
戻される(図15のステップ1503→1501)。
【0098】図40の#1〜#16のファイルアイコン
の何れかが強調表示されているとき(SELレジスタの
値が0のとき)に、ユーザが図2の上下左右スイッチ2
03〜206の何れかをONした場合には、図20のス
テップ1917の判定がYESとなり、ステップ191
8で、強調表示されるファイルアイコンが現在強調表示
されているファイルアイコンからONされたスイッチに
応じた方向の隣のファイルアイコンに変更される。この
とき同時に、図40の現在ファイル番号表示及びファイ
ル名表示の領域に、新たに強調表示されるファイルアイ
コンの番号に対応するファイル番号とファイル名が表示
される。これらの動作は、CPU301が、VDP30
2を介してSRAM303のBG−A面又はBG−B面
の記憶領域に、上記表示に対応するバックグラウンド画
像データを転送する動作として実現される。
【0099】ステップ1918の処理の後、ステップ1
919では、現在のファイル操作がファイルのロード操
作であるか否かが判定される。モード選択画面において
モード2が選択されることにより似顔絵データのロード
を行わせるために図14のステップ1403又は図16
のステップ1609でファイル操作画面が表示されてい
る場合は、ステップ1919の判定がYESとなるた
め、ステップ1920〜1932が実行される。
【0100】まず、ステップ1920では、現在強調表
示されているファイルアイコンの位置に似顔絵データの
ファイルが存在するか否かが判定される。ステップ19
20で現在強調表示されているファイルアイコンの位置
に似顔絵データのファイルが存在しないと判定された場
合には、ステップ1921で、ヘルパーのふきだしの表
示が、図46(e) に示される内容に変更された後、図1
9のステップ1901のファイル操作画面の表示に戻
る。この動作は、CPU301が、VDP302を介し
てSRAM303のBG−A面又はBG−B面の記憶領
域に、上記表示に対応するバックグラウンド画像データ
を転送する動作として実現される。
【0101】一方、ステップ1920で現在強調表示さ
れているファイルアイコンの位置に似顔絵データのファ
イルが存在すると判定された場合は、ステップ1922
で、ヘルパーのふきだしの表示が、図46(d) に示され
る内容に変更された後、ステップ1923で、「はい」
「いいえ」の表示を含む確認答表示が表示される。ユー
ザは「はい」又は「いいえ」の何れかを選択することに
より、ファイルのロード操作を実行するか取り消すかを
選択できる。なお、初期状態においては、「はい」が強
調表示されている。これらの動作は、CPU301が、
VDP302を介してSRAM303のBG−A面又は
BG−B面の記憶領域に、上記表示に対応するバックグ
ラウンド画像データを転送する動作として実現される。
【0102】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ1923に続くステップ1924〜1928の繰返
しにおいて検出される。
【0103】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ1924又は1926の判定がYES
となり、ステップ1925又は1927で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0104】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ1928の判定がYESとなり、ステップ1929
が実行される。
【0105】ステップ1929においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ1929で「いいえ」が強調表示されていると判
定された場合には、ステップ1930で確認答表示が消
去された後、図19のステップ1901の処理に戻っ
て、ファイル操作画面の表示に戻る。
【0106】ステップ1929で「はい」が強調表示さ
れていると判定された場合は、ステップ1931で、C
PU301は、プログラム/データROM307又はワ
ークRAM308から、選択された強調表示中のファイ
ルアイコンに対応する似顔絵の画像データのファイル
を、図4のCPUインタフェース部401、アドレスバ
ス416、データバス417、及びSRAMインタフェ
ース部402又はDP−RAMインタフェース部403
を介してSRAM303又はDP−RAM304の図7
又は図8に示される各記憶領域に、ロードする。また、
CPU301は、プログラム/データROM307か
ら、図4のCPUインタフェース部401、アドレスバ
ス416、及びデータバス417を介してオブジェクト
アトリビュートメモリ部407に、SRAM303に転
送される各オブジェクトの座標データを転送する(図9
参照)。
【0107】その後、基本システム画面の処理に移行す
る(ステップ1932)。ステップ1931から193
2への移行は、図14のステップ1403から1404
(図15のステップ1501)への移行、又は図16の
ステップ1609から1610への移行に対応してい
る。
【0108】後述するように基本システム画面からファ
イルのセーブ操作が選択されることにより図15のステ
ップ1503でファイル操作画面が表示されている状態
においてステップ1919で現在のファイル操作がファ
イルのセーブ操作であると判定された場合における図2
0のステップ1933〜1945の処理については、基
本システム画面の処理の説明の後に説明する。基本システム画面の処理フロー 図22〜図25は、図15のステップ1501として実
行される基本システム画面の処理を示す動作フローチャ
ートである。ユーザは、この基本システム画面を用い
て、似顔絵を作成できると共に、本発明に特に関連する
印刷処理などを実行することもできる。
【0109】まず、ステップ2201で、基本システム
画面が表示される。具体的には、図3のCPU301
が、例えば垂直ブランク期間(図11参照)において、
プログラム/データROM307から、図4のCPUイ
ンタフェース部401、アドレスバス416、データバ
ス417、及びSRAMインタフェース部402を介し
てSRAM303の図7に示されるBG−B面の記憶領
域に、基本システム画面のバックグラウンド画像データ
を転送する。また、SRAM303又はDP−RAM3
04の図7又は図8に示される各記憶領域及び図4のV
DP302内のオブジェクトアトリビュートメモリ部4
07には、図18のステップ1721又は図20のステ
ップ1931において、似顔絵の画像データがロードさ
れている。この結果、図4に示される構成を有するVD
P302が、前述したようにして、SRAM303及び
DP−RAM304上の上記各記憶領域に転送された基
本システム画面用の画像データと似顔絵の画像データを
図3のテレビ311に重ねて表示する。
【0110】基本システム画面としては、図41に示さ
れるように、似顔絵作成時にユーザに似顔絵のパーツを
選択させるための7つの選択アイコンと、現在選択され
ている選択アイコンを示す選択中カーソルと、上下矢印
と、現在選択されている選択アイコンに対応するパーツ
の絵を表示するパーツ種アイコンと、5種類のコマンド
アイコンと、「はい」「いいえ」の表示を含む確認答表
示と、説明を表示するふきだしと人形の絵からなるヘル
パーが表示される。ヘルパーのふきだしの初期表示とし
ては、図47(a) に示される内容が表示される。また、
図41の確認答表示は、初期状態においては表示されな
い。
【0111】ユーザが図2のSELスイッチ201をO
Nすると、ステップ2202の判定がYESとなって、
ステップ2203において、SELレジスタの値が1と
0とで交互に反転される。
【0112】SELレジスタの値が1となった場合に
は、次にステップ2201が実行されるときに、図41
のコマンドアイコンの何れかが強調表示される。この一
方、SELレジスタの値が0となった場合には、次にス
テップ2201が実行されるときに、図41の選択アイ
コンの何れかの上に位置する選択中カーソルが強調表示
される。
【0113】以下に、まず、選択アイコンに関する操作
について説明する。図41の何れかの選択アイコン上の
選択中カーソルが強調表示されているとき(SELレジ
スタの値が0のとき)に、ユーザが図2の右スイッチ2
06又は左スイッチ205の何れかをONすると、ステ
ップ2204の判定がNO、それに続く図23のステッ
プ2218の判定がNOとなって、ステップ2219〜
2230、及び図24のステップ2231、2232が
実行される。
【0114】これらの一連の処理においては、特には図
示しない2つのレジスタに設定される階層番号と選択ア
イコン番号の値が制御される。今、図22のステップ2
201が実行されるときに、選択中カーソルは、上述の
レジスタの1つに設定される選択アイコン番号に対応す
る選択アイコン上に配置される。また、7つの選択アイ
コンの各内容としては、上述のレジスタの1つに設定さ
れる階層番号に応じた種類の内容が表示される。階層番
号の値が小さいほど、上位階層に割り当てられている選
択アイコンが表示される。そして、選択アイコンとして
は、例えば階層番号が0(最上階層)である場合には、
「髪」、「目」、「まゆ毛」、「鼻」、「口」、「りん
かく」、「ふきだし」といったパーツの大分類が表示さ
れ、例えば階層番号が1になると、選択中カーソルが位
置する選択アイコンで示されるパーツのカテゴリーを更
に分類したパーツが表示され、階層番号が順次増加する
に従って、選択中カーソルが位置する選択アイコンで示
されるパーツのカテゴリーを更に詳細に分類したパーツ
が表示されてゆく。ユーザは、上述の階層番号と選択ア
イコン番号に基づく表示を、図2の上下左右スイッチ2
03〜206によって自由に制御することができ、所望
の位置で図2のENTERスイッチ202をONするこ
とによりその時点で選択中カーソルが位置する選択アイ
コンの画像データを似顔絵の画像データとして選択する
ことができる。
【0115】まず、ステップ2219では、図2の右ス
イッチ206がONされたか否かが判定される。右スイ
ッチ206がONされステップ2219の判定がYES
なら、特には図示しないレジスタに設定される選択アイ
コン番号が7になっておらず次のステップ2221の判
定がNOである場合は、ステップ2222で、上記レジ
スタに設定されている選択アイコン番号の値が+1だけ
インクリメントされる。その後、図24のステップ22
31で、選択中カーソルの位置が、現在それが位置する
選択アイコンからその1つ右の選択アイコンに移動させ
られる。この動作は、CPU301が、VDP302を
介してSRAM303のBG−B面の記憶領域に、上述
の表示に対応するバックグラウンド画像データを転送す
る動作として実現される。選択アイコン番号が7になっ
ておりステップ2221の判定がYESである場合に
は、ステップ2223で、特には図示しないレジスタに
設定される階層番号が+1だけインクリメントされると
共に、前記レジスタに設定されている選択アイコン番号
の値が1にセットされる。ここで、上記レジスタに設定
された階層番号が最下層に対応する番号を超えた場合に
は、ステップ2224の判定がYESとなり、ステップ
2225で、上記レジスタに設定されている階層番号の
値が最上階層を示す値0にリセットされる。その後、ス
テップ2230で、図41の選択アイコンの表示内容が
上記レジスタに設定された階層番号に対応する表示内容
に変更され、図24のステップ2231で、選択中カー
ソルの位置が、前記レジスタに設定された選択アイコン
番号=1に対応する左端の選択アイコンに移動させられ
る。これらの動作は、CPU301が、VDP302を
介してSRAM303のBG−B面の記憶領域に、上記
表示に対応するバックグラウンド画像データを転送する
動作として実現される一方、左スイッチ205がONさ
れステップ2219の判定がNO、ステップ2220の
判定がYESとなると、前記レジスタに設定される選択
アイコン番号が1になっておらず次のステップ2226
の判定がNOである場合は、ステップ2227で、上記
レジスタに設定されている選択アイコン番号の値が−1
だけデクリメントされる。その後、図24のステップ2
231で、選択中カーソルの位置が、現在それが位置す
る選択アイコンからその1つ左の選択アイコンに移動さ
せられる。選択アイコン番号が1になっておりステップ
2226の判定がYESである場合には、更に前記レジ
スタに設定されている階層番号の値が最上階層に対応す
る値0ではなくステップ2228の判定がNOである場
合に、前記レジスタに設定される階層番号が−1だけデ
クリメントされると共に、前記レジスタに設定されてい
る選択アイコン番号の値が7にセットされる。その後、
ステップ2230で、図41の選択アイコンの表示内容
が上記レジスタに設定された階層番号に対応する表示内
容に変更され、図24のステップ2231で、選択中カ
ーソルの位置が、前記レジスタに設定された選択アイコ
ン番号=7に対応する右端の選択アイコンに移動させら
れる。
【0116】次に、図41の何れかの選択アイコン上の
選択中カーソルが強調表示されているとき(SELレジ
スタの値が0のとき)に、ユーザが図2の上下スイッチ
203又は204をONすると、図22のステップ22
04の判定がYES、ステップ2205の判定がNOと
なって、それに続く図25のステップ2242〜224
8の処理が実行される。
【0117】まず、ステップ2242では、図2の上ス
イッチ203がONされたか否かが判定される。上スイ
ッチ203がONされステップ2242の判定がYES
なら、前記レジスタに設定される階層番号が0になって
おらず次のステップ2246の判定がNOである場合
に、ステップ2247で、上記レジスタに設定されてい
る階層番号の値が−1だけデクリメントされる。階層番
号が0になっておりステップ2246の判定がYESで
ある場合には、ステップ2247は実行されずレジスタ
の値はインクリメントされない。
【0118】一方、下スイッチ204がONされステッ
プ2242の判定がNOなら、上記レジスタに設定され
た階層番号が最下層に対応する番号になっておらずステ
ップ2243の判定がNOである場合に、ステップ22
44で、上記レジスタに設定されている階層番号の値が
+1だけインクリメントされる。階層番号が最下層に対
応する番号になっておりステップ2243の判定がYE
Sである場合には、ステップ2245で、上記レジスタ
に設定される階層番号の値が最上層を示す値0にリセッ
トされる。
【0119】以上のステップ2242〜2247の処理
の後、ステップ2248で、図41の選択アイコンの表
示内容が上記レジスタに設定された階層番号に対応する
表示内容に変更される。この動作は、CPU301が、
VDP302を介してSRAM303のBG−B面の記
憶領域に、上記表示に対応するバックグラウンド画像デ
ータを転送する動作として実現される続いて、図41の
何れかの選択アイコン上の選択中カーソルが強調表示さ
れているとき(SELレジスタの値が0のとき)に、ユ
ーザが図2のENTERスイッチ202をONすると、
図22のステップ2204の判定がNO、それに続く図
23のステップ2218、2219、及び2220の判
定がそれぞれNOとなり、更にそれに続く図24のステ
ップ2232の判定がYESとなる。或いは、図22の
ステップ2204の判定がNO、それに続く図23のス
テップ2219又はステップ2220の判定がYESと
なり、図23のステップ2221〜2230の処理が実
行された後に、それに続く図24のステップ2232の
判定がYESとなる。
【0120】そして、ステップ2233で、「はい」
「いいえ」の表示を含む確認答表示が表示される。ユー
ザは「はい」又は「いいえ」の何れかを選択することに
より、選択中カーソルが位置する選択アイコンを似顔絵
の画像データとして採用するか取り消すかを選択でき
る。なお、初期状態においては、「はい」が強調表示さ
れている。これらの動作は、CPU301が、VDP3
02を介してSRAM303のBG−B面の記憶領域
に、上記表示に対応するバックグラウンド画像データを
転送する動作として実現される。
【0121】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ2233に続くステップ2234〜2238の繰返
しにおいて検出される。
【0122】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ2234又は2236の判定がYES
となり、ステップ2235又は2237で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−B面の記憶領域に、上述の各表
示に対応するバックグラウンド画像データを転送する動
作として実現される。なお、現在、「はい」又は「いい
え」のどちらが強調表示されているかを示す情報は、特
には図示しないレジスタに設定されている。
【0123】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ2238の判定がYESとなり、ステップ2239
が実行される。
【0124】ステップ2239においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ2239で「いいえ」が強調表示されていると判
定された場合には、ステップ2240で確認答表示が消
去された後、図22のステップ2201の処理に戻っ
て、基本システム画面の表示に戻る。
【0125】ステップ2239で「はい」が強調表示さ
れていると判定された場合には、ステップ2241で、
CPU301は、プログラム/データROM307か
ら、選択中カーソルが位置する選択アイコンに対応する
似顔絵の画像データのファイルを、図4のCPUインタ
フェース部401、アドレスバス416、データバス4
17、及びSRAMインタフェース部402又はDP−
RAMインタフェース部403を介してSRAM303
又はDP−RAM304の図7又は図8に示される各記
憶領域に、ロードする。加えて、CPU301は、プロ
グラム/データROM307から、図4のCPUインタ
フェース部401、アドレスバス416、及びデータバ
ス417を介してオブジェクトアトリビュートメモリ部
407に、SRAM303に転送される各オブジェクト
の予め設定された座標データを転送する(図9参照)。
そして、ステップ2240で確認答表示が消去された後
に、図22のステップ2201の処理に戻り、基本シス
テム画面の表示に戻る。この操作により、ユーザが選択
した選択アイコンの画像データが作成中の似顔絵に反映
されることになる。
【0126】次に、コマンドアイコンに関する操作につ
いて説明する。図41のコマンドアイコンの何れかが強
調表示されているとき(SELレジスタの値が1のと
き)に、ユーザが図2の上下スイッチ203又は204
をONすると、図22のステップ2204及びステップ
2205の判定がYESとなり、ステップ2206〜2
211の処理が実行される。
【0127】まず、ステップ2206では、図2の上ス
イッチ203がONされたか否かが判定される。上スイ
ッチ203がONされステップ2206の判定がYES
なら、特には図示しないレジスタに設定されるコマンド
アイコン番号が5になっておらず次のステップ2207
の判定がNOである場合に、ステップ2208で、上記
レジスタに設定されているコマンドアイコン番号の値が
+1だけインクリメントされる。コマンドアイコン番号
が5になっておりステップ2207の判定がYESであ
る場合には、ステップ2208は実行されずレジスタの
値はインクリメントされない。
【0128】一方、下スイッチ204がONされステッ
プ2206の判定がNOなら、上記レジスタに設定され
るコマンドアイコン番号が1になっておらずステップ2
209の判定がNOである場合に、ステップ2210
で、上記レジスタに設定されているコマンドアイコン番
号の値が−1だけデクリメントされる。コマンドアイコ
ン番号が1になっておりステップ2209の判定がYE
Sである場合には、ステップ2210は実行されずレジ
スタの値はデクリメントされない。
【0129】以上のステップ2206〜2210の処理
の後、ユーザが図2のENTERスイッチ202をON
していなければステップ2211の判定がNOとなり、
次にステップ2201が実行されるときに、図41の5
種類のコマンドアイコンのうち前記レジスタに設定され
ているコマンドアイコン番号に対応するコマンドアイコ
ンのみが強調表示される。なお、図41の「プレビュ
ー」のコマンドアイコンが強調表示される場合には、ヘ
ルパーのふきだしの表示としては、図47(b) に示され
る内容が表示される。また、図41の「モード選択画面
に戻る」アイコンが強調表示される場合には、ヘルパー
のふきだしの表示としては、図47(c) に示される内容
が表示される。以上の動作は、CPU301が、VDP
302を介してSRAM303のBG−B面の記憶領域
に、上記表示に対応するバックグラウンド画像データを
転送する動作として実現される。
【0130】図41に示されるコマンドアイコンの何れ
かが強調表示されているとき(SELレジスタの値が1
のとき)に、ユーザが図2のENTERスイッチ202
をONすると、ステップ2204の判定がNO、それに
続く図23のステップ2218の判定がYESとなり、
更にそれに続く図22のステップ2211の判定がYE
Sとなる。或いは、図22のステップ2204及び22
05の判定がYESとなり、ステップ2206〜221
0の処理が実行された後に、ステップ2211の判定が
YESとなる。
【0131】ステップ2211の判定がYESとなった
後、ステップ2212では、前記レジスタに設定されて
いるコマンドアイコン番号の値が判定される。ステップ
2212においてコマンドアイコン番号の値が1である
と判定された場合、即ち、「最上階層に移動」アイコン
が強調表示されているときにユーザが図2のENTER
スイッチ202をONした場合には、ステップ2213
で、前述した特には図示しないレジスタに設定されてい
る階層番号の値が最上階層を示す値0にリセットされ
る。この結果、続いて実行される図22のステップ22
01において、図41の選択アイコンの表示内容が上記
レジスタに設定された階層番号=0に対応する最上階層
の表示内容に変更される。この動作は、CPU301
が、VDP302を介してSRAM303のBG−B面
の記憶領域に、上記表示に対応するバックグラウンド画
像データを転送する動作として実現される。このように
してユーザは、「最上階層に移動」アイコンを選択し実
行させることによって、選択アイコンの内容を瞬時に最
上階層の表示内容に変更することができる。
【0132】ステップ2212においてコマンドアイコ
ン番号の値が2であると判定された場合、即ち、「プレ
ビュー」アイコンが強調表示されているときにユーザが
図2のENTERスイッチ202をONした場合には、
ステップ2214で、アイコンの消去処理が実行され
る。この処理においては、基本システム画面に表示され
ている選択アイコン、選択中カーソル、コマンドアイコ
ン、パーツ種アイコン、及び確認答表示などの表示が消
去させられる。具体的には、CPU301がSRAM3
03の図7に示されるBG−B面の記憶領域に記憶され
ている基本システム画面を構成する上記アイコン等のバ
ックグラウンド画像データを削除する。なお、ヘルパー
は、ユーザが選択アイコンにおいてせりふの作成を選択
し、後述する文字入力画面の処理によってせりふを作成
している場合には、消去されない。このようにしてユー
ザは、「プレビュー」アイコンを選択し実行させること
により、作成中の似顔絵をプレビューすることができ
る。
【0133】ステップ2212においてコマンドアイコ
ン番号の値が3であると判定された場合、即ち、「プリ
ント開始」アイコンが強調表示されているときにユーザ
が図2のENTERスイッチ202をONした場合に
は、ステップ2215で、印刷処理が実行される。この
処理は、本発明に特に関連するものであり、図29〜図
35、図52〜図88の動作フローチャートを用いて後
述する。
【0134】ステップ2212においてコマンドアイコ
ン番号の値が4であると判定された場合、即ち、「セー
ブ」アイコンが強調表示されているときにユーザが図2
のENTERスイッチ202をONした場合は、ステッ
プ2216で、セーブされるファイル名を入力するため
の文字入力画面の処理が実行される。この処理について
は、図26〜図28の動作フローチャートを用いて後述
する。そして、文字入力処理が終了した後に、ファイル
操作画面の処理が実行される。なお、文字入力画面の処
理は、ユーザが選択アイコンにおいてせりふの作成を選
択した場合においても、ユーザにふきだし中のせりふを
入力させるために起動される(図15のステップ150
1→1504)。この場合の文字入力画面の処理につい
ても、図26〜図28の動作フローチャートを用いて後
述する。
【0135】ステップ2212においてコマンドアイコ
ン番号の値が5であると判定された場合、即ち、「モー
ド選択画面に戻る」アイコンが強調表示されているとき
にユーザが図2のENTERスイッチ202をONした
場合には、ステップ2217で、モード選択画面に戻る
ための処理が実行される。この処理の詳細は省略する
が、例えばヘルパーのふきだしの表示が図47(d) に示
される内容に変化すると共に、図41に示される確認答
表示が表示され、ユーザが「はい」を選択した場合に、
図3のテレビ311での表示が、図14のステップ14
04又は図16のステップ1610の似顔絵作成モード
における基本システム画面の表示から図14のステップ
1401又は図16のステップ1601のモード選択画
面の表示に変化し、ユーザが「いいえ」を選択した場合
には、基本システム画面の表示に戻るような制御が行わ
れる。文字入力画面の処理フロー 図26〜図28は、図15のステップ1502等として
実行される文字入力画面の処理を示す動作フローチャー
トである。ユーザは、文字入力画面において、セーブす
るファイル名を入力し、或いは、ふきだしにせりふを入
力することができる。
【0136】前述のように、図41に示される基本シス
テム画面がテレビ311に表示され「セーブ」アイコン
が強調表示されているときにユーザが図2のENTER
スイッチ202をONすると、図15のステップ150
2の処理又は図22のステップ2216の処理として、
図26〜図28の動作フローチャートで示されるファイ
ル名の入力のための文字入力画面の処理が実行される。
また、基本システム画面においてせりふの作成を示す選
択アイコンが強調表示されているときにユーザが図2の
ENTERスイッチ202をONした場合にも、図15
のステップ1504の処理として、図26〜図28の動
作フローチャートで示されるふきだしのせりふの作成の
ための文字入力画面の処理が実行される。
【0137】図26のステップ2601〜2604→2
605又は2617〜2619の繰返しでは、ユーザが
図2又は図3のコントロールパッド313においてON
したSELスイッチ201、ENTERスイッチ20
2、又は上下左右スイッチ203〜206に対応する処
理が実行される。
【0138】まず、ステップ2601で、文字入力画面
が表示される。具体的には、図3のCPU301が、例
えば垂直ブランク期間(図11参照)において、プログ
ラム/データROM307から、図4のCPUインタフ
ェース部401、アドレスバス416、データバス41
7、及びSRAMインタフェース部402を介してSR
AM303の図7に示されるBG−A面及びBG−B面
の各記憶領域に、文字入力画面用のバックグラウンド画
像データを転送する。この結果、図4に示される構成を
有するVDP302が、前述したようにして、SRAM
303上の上記各記憶領域に転送された文字入力画面用
の画像データを図3のテレビ311に表示する。
【0139】文字入力画面としては、図42又は図43
に示されるように、ユーザに文字を選択させるための1
10キャラクタ分の文字が表示される文字表示部分、ユ
ーザによって入力された文字が表示される文字入力エリ
ア、説明を表示するふきだしと人形の絵からなるヘルパ
ーと、文字入力画面の処理の取消しを指示する戻るアイ
コンと、「はい」「いいえ」の表示を含む確認答表示が
表示される。セーブされるファイル名の入力のために基
本システム画面上の「セーブ」アイコンが選択されて文
字入力画面が表示される場合には、ヘルパーのふきだし
の初期表示として、図48(a) に示される内容が表示さ
れる。一方、せりふの入力のために基本システム画面上
のせりふの作成を示す選択アイコンが選択されて文字入
力画面が表示される場合には、ヘルパーのふきだしの初
期表示として、図48(b) に示される内容が表示され
る。また、図43の確認答表示は、初期状態においては
表示されない。
【0140】ユーザが図2のSELスイッチ201をO
Nすると、ステップ2602の判定がYESとなって、
ステップ2603において、SELレジスタの値が1と
0とで交互に反転される。
【0141】ステップ2604においては、SELレジ
スタの値が1であるか否かが判定される。SELレジス
タの値が1でステップ2604の判定がYESの場合に
は、図2のENTERスイッチ202がONされていな
ければステップ2605の判定がNOとなった後、次に
ステップ2601が実行されるときに、図42の戻るア
イコンが強調表示される。また、ヘルパーのふきだしの
表示として、図48(c) に示される内容が表示される。
これらの動作は、CPU301が、VDP302を介し
てSRAM303のBG−A面又はBG−B面の記憶領
域に、上記表示に対応するバックグラウンド画像データ
を転送する動作として実現される。
【0142】一方、SELレジスタの値が0でステップ
2604の判定がNOの場合は、図2の上下左右スイッ
チ203〜206及びENTERスイッチ202がON
されていなければ図27のステップ2617及び261
9の判定がNOとなった後、次に図26のステップ26
01が実行されるときに、図42の文字表示部分内の何
れかの文字が強調表示される。また、セーブされるファ
イル名の入力のために基本システム画面上の「セーブ」
アイコンが選択されて文字入力画面が表示される場合に
は、ヘルパーのふきだしの表示として、図48(a) に示
される内容が表示される。一方、せりふの入力のために
基本システム画面上のせりふの作成を示す選択アイコン
が選択されて文字入力画面が表示される場合は、ヘルパ
ーのふきだしの表示として、図48(b) に示される内容
が表示される。これらの動作は、CPU301が、VD
P302を介してSRAM303のBG−A面又はBG
−B面の記憶領域に、上記表示に対応するバックグラウ
ンド画像データを転送する動作として実現される。
【0143】上述したように、ユーザは、文字入力画面
において図2のSELスイッチ201をONする毎に、
戻るアイコンと文字表示部分とを交互に選択することが
できる。
【0144】図42の戻るアイコンが強調表示されてい
るとき(SELレジスタの値が1のとき)に、ユーザが
図2のENTERスイッチ202をONすると、ステッ
プ2605の判定がYESとなって、ステップ2606
で、「はい」「いいえ」の表示を含む確認答表示が表示
される(図43)。ユーザは「はい」又は「いいえ」の
何れかを選択することによって、文字入力画面の処理を
取り消すか否かを選択できる。なお、初期状態において
は、「いいえ」が強調表示されている。また、ヘルパー
のふきだしの表示として、図48(c) に示される内容が
表示される。これらの動作は、CPU301が、VDP
302を介してSRAM303のBG−A面又はBG−
B面の記憶領域に、上記表示に対応するバックグラウン
ド画像データを転送する動作として実現される。
【0145】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ2606に続くステップ2607〜2611の繰返
しにおいて検出される。
【0146】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ2607又は2609の判定がYES
となり、ステップ2608又は2610で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0147】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ2611の判定がYESとなり、ステップ2612
が実行される。
【0148】ステップ2612においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ2612で「いいえ」が強調表示されていると判
定された場合には、ステップ2613で確認答表示が消
去された後、ステップ2601の文字入力画面の表示に
戻る。
【0149】ステップ2612で「はい」が強調表示さ
れていると判定された場合には、ステップ2614で、
図42の文字入力画面の文字入力エリアの表示内容に対
応する図3のワークRAM308上の入力文字データが
消去され、ステップ2615で、確認答表示が消去され
た後、ステップ2616で、基本システム画面の処理に
制御が戻される(図15のステップ1502→150
1)。
【0150】図42の文字表示部分の何れかの文字が強
調表示されているとき(SELレジスタの値が0のと
き)に、ユーザが図2の上下左右スイッチ203〜20
6の何れかをONした場合には、図27のステップ26
17の判定がYESとなり、ステップ2618で、文字
表示部分内の強調表示される文字が現在強調表示されて
いる文字からONされたスイッチに応じた方向の隣の文
字に変更される。この動作は、CPU301が、VDP
302を介してSRAM303のBG−A面の記憶領域
に、上記表示に対応するバックグラウンド画像データを
転送する動作として実現される。
【0151】図42の文字表示部分の何れかの文字が強
調表示されているとき(SELレジスタの値が0のと
き)に、ユーザが図2のENTERスイッチ202をO
Nすると、ステップ2619の判定がYESとなって、
ステップ2620で、ENTERスイッチ202がON
されたときに文字表示部分において強調表示されていた
文字が「おわり」を示す文字であるか否かが判定され
る。「おわり」を示す文字は、文字入力の終了を指示す
るための制御文字である。
【0152】ENTERスイッチ202がONされたと
きに文字表示部分において強調表示されていた文字が
「おわり」を示す文字ではなくステップ2620の判定
がNOならば、図28のステップ2634で、「はい」
「いいえ」の表示を含む確認答表示が表示される(図4
3)。ユーザは「はい」又は「いいえ」の何れかを選択
することにより、ENTERスイッチ202をONした
ときに文字表示部分で強調表示されていた文字を採用す
るか否かを選択できる。なお、初期状態においては、
「はい」が強調表示されている。また、ヘルパーのふき
だしの表示として、図48(d) に示される内容が表示さ
れる。これらの動作は、CPU301が、VDP302
を介してSRAM303のBG−A面又はBG−B面の
記憶領域に、上記表示に対応するバックグラウンド画像
データを転送する動作として実現される。
【0153】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ2634に続くステップ2635〜2639の繰返
しにおいて検出される。
【0154】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ2635又は2637の判定がYES
となり、ステップ2636又は2638で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0155】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ2639の判定がYESとなり、ステップ2640
が実行される。
【0156】ステップ2640においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ2640で「はい」が強調表示されていると判定
された場合には、ステップ2641で、文字表示部分に
おいて強調表示されている文字に対応するデータがワー
クRAM308に記憶され、ステップ2642で確認答
表示が消去された後、ステップ2601の文字入力画面
の表示に戻る。この結果、ステップ2601が実行され
ることにより、新たに入力された文字が図42の文字入
力エリアの表示に反映される。
【0157】ステップ2612で「いいえ」が強調表示
されていると判定された場合には、ステップ2641は
実行されずに、ステップ2642で確認答表示が消去さ
れた後、ステップ2601の文字入力画面の表示に戻
る。
【0158】一方、ユーザによって図2のENTERス
イッチ202がONされたときに文字表示部分において
強調表示されていた文字が「おわり」を示す文字でステ
ップ2620の判定がYESとなる場合は、図27のス
テップ2621で、「はい」「いいえ」の表示を含む確
認答表示が表示される(図43)。ユーザは「はい」又
は「いいえ」の何れかを選択することにより、文字入力
を終了させるか否かを選択することができる。なお、初
期状態では、「はい」が強調表示されている。また、ヘ
ルパーのふきだしの表示として、図48(d) に示される
内容が表示される。これらの動作は、CPU301が、
VDP302を介してSRAM303のBG−A面又は
BG−B面の記憶領域に、上記表示に対応するバックグ
ラウンド画像データを転送する動作として実現される。
【0159】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ2621に続くステップ2622〜2626の繰返
しにおいて検出される。
【0160】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ2622又は2624の判定がYES
となり、ステップ2623又は2625で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0161】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ2626の判定がYESとなり、ステップ2627
が実行される。
【0162】ステップ2627においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ2627で「いいえ」が強調表示されていると判
定された場合には、ステップ2628で確認答表示が消
去された後、ステップ2601の文字入力画面の表示に
戻る。
【0163】ステップ2627で「はい」が強調表示さ
れていると判定された場合には、ステップ2629で、
現在の文字入力操作がセーブされるファイルの名前を入
力するためのものであるか否かが判定される。この判定
は、特には図示しないレジスタの内容を判定する動作と
して実現される。即ち、ユーザが、セーブされるファイ
ルの名前の入力のための文字入力画面の処理を実行させ
るために、図41の基本システム画面の「セーブ」アイ
コンが強調表示されているときに図2のENTERスイ
ッチ202をONした場合には、上記レジスタにファイ
ルセーブを示すフラグがセットされる。一方、ユーザ
が、ふきだしのせりふの作成のための文字入力画面の処
理を実行させるために、基本システム画面においてせり
ふの作成を示す選択アイコンが強調表示されているとき
にENTERスイッチ202をONした場合には、上記
レジスタにファイルセーブを示すフラグはセットされな
い。ステップ2627では、このレジスタの内容が判定
される。
【0164】現在の文字入力操作がセーブされるファイ
ルの名前を入力するためのものであってステップ262
7の判定がYESの場合には、ステップ2630で、図
42の文字入力エリアの表示内容に対応する入力文字デ
ータがセーブファイル名としてワークRAM308に記
憶された後、ステップ2631で、ファイル操作画面の
処理に制御が移される(図15のステップ1502→1
503)。
【0165】一方、現在の文字入力操作がふきだしのせ
りふの作成のためのものであってステップ2627の判
定がNOの場合には、ステップ2632で、図42の文
字入力エリアの表示内容に対応する入力文字データがせ
りふとしてワークRAM308に記憶された後、ステッ
プ2633で、基本システム画面の処理に制御が戻され
る(図15のステップ1504→1501)。この結
果、ユーザは、図41の基本システム画面における選択
アイコンの操作によって、入力したせりふをヘルパーの
ふきだしとして、似顔絵と共に自由に表示させることが
できる。ファイル操作画面の処理フロー(セーブ) 上述の図27のステップ2631の処理によって起動さ
れるファイル操作画面の処理は、前述した図19〜図2
1の動作フローチャートによって示される。
【0166】まず、図40に示されるファイル操作画面
において、警告らんには、図49の(a) に示される内容
が表示される。この表示において、「*******
*」には、前述した図27のステップ2630の処理に
よってワークRAM308にセーブファイル名として記
憶された入力文字データの内容が表示される。また、ヘ
ルパーのふきだしの初期表示として、図46(b) に示さ
れる内容が表示される。これらの動作は、CPU301
が、VDP302を介してSRAM303のBG−A面
又はBG−B面の記憶領域に、上記表示に対応するバッ
クグラウンド画像データを転送する動作として実現され
る。
【0167】そして、前述したようにして図40の#1
〜#16のファイルアイコンの何れかが強調表示されて
いるとき(SELレジスタの値が0のとき)に、ユーザ
が図2の上下左右スイッチ203〜206の何れかをO
Nした場合には、図20のステップ1917の判定がY
ESとなり、ステップ1918で、強調表示されるファ
イルアイコンが現在強調表示されているファイルアイコ
ンからONされたスイッチに応じた方向の隣のファイル
アイコンに変更される。このとき同時に、図40の現在
ファイル番号表示及びファイル名表示の領域に、新たに
強調表示されるファイルアイコンの番号に対応するファ
イル番号とファイル名が表示される。これらの動作は、
CPU301が、VDP302を介してSRAM303
のBG−A面又はBG−B面の記憶領域に、上記表示に
対応するバックグラウンド画像データを転送する動作と
して実現される。
【0168】ステップ1918の処理の後、ステップ1
919の判定がNOとなることにより、図21のステッ
プ1933〜1945が実行される。まず、ステップ1
933では、現在強調表示されているファイルアイコン
に対応するファイルの種類が判定される。ファイルに
は、プリセットファイルとノーマルファイルがある。プ
リセットファイルは、予めプリセットされている似顔絵
の画像データのファイルである。ノーマルファイルは、
ユーザが作成し保存した似顔絵の画像データのファイル
である。
【0169】ステップ1933で、現在強調表示されて
いるファイルアイコンに対応するファイルの種類がプリ
セットファイルであると判定された場合には、ステップ
1934で、ヘルパーのふきだしの表示内容が図46
(f) に示される表示内容に変更された後、図19のステ
ップ1901のファイル操作画面の表示に戻る。この動
作は、CPU301が、VDP302を介してSRAM
303のBG−A面又はBG−B面の記憶領域に、上記
表示に対応するバックグラウンド画像データを転送する
動作として実現される。
【0170】一方、ステップ1933で、現在強調表示
されているファイルアイコンに対応するファイルの種類
がノーマルファイルであると判定された場合は、ステッ
プ1935で、ヘルパーのふきだしの表示内容が図46
(g) に示される表示内容に変更されると共に、警告らん
の表示内容が図49(b) に示される表示内容に変更され
た後、ステップ1936で、「はい」「いいえ」の表示
を含む確認答表示が表示される。ユーザは「はい」又は
「いいえ」の何れかを選択することにより、ファイルの
セーブ操作を実行するか取り消すかを選択できる。な
お、初期状態においては、「はい」が強調表示されてい
る。これらの動作は、CPU301が、VDP302を
介してSRAM303のBG−A面又はBG−B面の記
憶領域に、上記表示に対応するバックグラウンド画像デ
ータを転送する動作として実現される。
【0171】確認答表示が表示された後のユーザによる
「はい」又は「いいえ」の選択動作と確定動作は、ステ
ップ1936に続くステップ1937〜1941の繰返
しにおいて検出される。
【0172】即ち、確認答表示が表示された後にユーザ
が図2の右スイッチ206又は左スイッチ205をON
すると、ステップ1937又は1939の判定がYES
となり、ステップ1938又は1940で、「はい」又
は「いいえ」の何れかのみの表示が強調表示される。こ
れらの動作は、CPU301が、VDP302を介して
SRAM303のBG−A面又はBG−B面の記憶領域
に、上述の各表示に対応するバックグラウンド画像デー
タを転送する動作として実現される。なお、現在、「は
い」又は「いいえ」のどちらが強調表示されているかを
示す情報は、特には図示しないレジスタに設定されてい
る。
【0173】確認答表示が表示されている状態でユーザ
が図2のENTERスイッチ202をONすると、ステ
ップ1941の判定がYESとなり、ステップ1942
が実行される。
【0174】ステップ1942においては、上記レジス
タが参照されることにより、現在、「はい」又は「いい
え」のどちらが強調表示されているかが判定される。ス
テップ1942で「いいえ」が強調表示されていると判
定された場合には、ステップ1943で確認答表示が消
去された後、図19のステップ1901の処理に戻っ
て、ファイル操作画面の表示に戻る。
【0175】ステップ1942で「はい」が強調表示さ
れていると判定された場合には、ステップ1944で、
図3のSRAM303及びDP−RAM304の図7又
は図8に示される各記憶領域に格納され図41の基本シ
ステム画面と共に表示されている今まで作成されていた
似顔絵の画像データと、図4のVDP302内のオブジ
ェクトアトリビュートメモリ部407に格納されていた
座標データが、図3のワークRAM308に、選択され
た強調表示中のファイルアイコンに対応する似顔絵の画
像データのファイルとしてセーブされる。
【0176】その後、基本システム画面の処理に移行す
る(ステップ1945)。ステップ1944から194
5への移行は、図15のステップ1503から1501
への移行に対応している。印刷の処理フロー 図29及び図30は、基本システム画面において実行さ
れる印刷処理を示す動作フローチャートである。図41
に示される基本システム画面において「プリント開始」
アイコンが強調表示されているときにユーザが図2のE
NTERスイッチ202をONした場合に、図22のス
テップ2215において、印刷処理が実行される。この
印刷処理においては、基本システム画面のアイコン等が
消去された状態で、似顔絵画像のみが印刷される。
【0177】まず、図29のステップ2901では、本
体のカセット部101(図1参照)に、印刷用紙のカセ
ットが装着されているか否かがチェックされる。その結
果、エラーが発生している場合には、ステップ2902
の判定がYESとなり、ステップ2903で、図41の
基本システム画面に、カセットが装着されていない旨を
示す図50(a) の表示内容を有するヘルパーのふきだし
が例えば4秒間だけ表示された後に、図22のステップ
2215の印刷処理を終了し、図22のステップ220
1の基本システム画面の表示に戻る。
【0178】エラーが発生していない場合には、ステッ
プ2902の判定がNOとなり、ステップ2904で、
図41の基本システム画面に、印刷開始を示す図50
(b) の表示内容を有するヘルパーのふきだしが表示され
る。その後、ステップ2905において、図41の基本
システム画面に、「はい」「いいえ」の表示を含む確認
答表示が表示され、ユーザに選択を促す。この部分の処
理は、例えば図24のステップ2233〜2239の一
連の処理と同じ処理であり、ユーザは、図2の右スイッ
チ206又は左スイッチ205により、「はい」と「い
いえ」の間で強調表示を交換することができ、図2のE
NTERスイッチ202により「はい」又は「いいえ」
の確認答を選択できる。
【0179】印刷開始を示す図50(b) のヘルパーのふ
きだしが表示され、確認答表示において「いいえ」が強
調表示されているときにユーザがENTERスイッチ2
02をONすると、図22のステップ2215の印刷処
理を終了して、図22のステップ2201の基本システ
ム画面の表示に戻る。一方、印刷開始を示す図50(b)
のヘルパーのふきだしが表示され、確認答表示において
「はい」が強調表示されているときにユーザがENTE
Rスイッチ202をONすると、ステップ2906にお
いて、図41の基本システム画面に、普通倍数(1倍)
の印刷を確認する図50(c) の表示内容を有するヘルパ
ーのふきだしが表示される。その後、ステップ2907
において、図41の基本システム画面に再び、「はい」
「いいえ」の表示を含む確認答表示が表示され、ユーザ
に選択を促す。
【0180】普通倍数の印刷を確認する図50(c) のヘ
ルパーのふきだしが表示され、ステップ2907による
確認答表示において「いいえ」が強調表示されていると
きにユーザがENTERスイッチ202をONすると、
図30のステップ2908において、図41の基本シス
テム画面に、4倍印刷を確認する図50(d) の表示内容
を有するヘルパーのふきだしが表示される。その後、ス
テップ2909で、図41の基本システム画面に、「は
い」「いいえ」の表示を含む確認答表示が表示され、ユ
ーザに選択を促す。
【0181】4倍印刷を確認する図50(d) のヘルパー
のふきだしが表示され、確認答表示において「いいえ」
が強調表示されているときにユーザがENTERスイッ
チ202をONすると、ステップ2910で、図41の
基本システム画面に、16倍印刷を確認する図50(e)
の表示内容を有するヘルパーのふきだしが表示される。
その後、ステップ2911で、図41の基本システム画
面に、再び、「はい」「いいえ」の表示を含む確認答表
示が表示され、ユーザに選択を促す。
【0182】16倍印刷を確認する図50(e) のヘルパ
ーのふきだしが表示され、確認答表示において「いい
え」が強調表示されているときにユーザがENTERス
イッチ202をONすると、ステップ2912におい
て、図41の基本システム画面に、64倍印刷を確認す
る図50(f) の表示内容を有するヘルパーのふきだしが
表示される。その後、ステップ2913で、図41の基
本システム画面に再び、「はい」「いいえ」の表示を含
む確認答表示が表示され、ユーザに選択を促す。
【0183】64倍印刷を確認する図50(f) のヘルパ
ーのふきだしが表示され、確認答表示において「いい
え」が強調表示されているときにユーザがENTERス
イッチ202をONすると、図29のステップ2901
の処理に戻る。
【0184】各倍数の印刷を確認する図29のステップ
2907、図30のステップ2909、2911、又は
2929の何れかの確認答表示において「はい」が強調
表示されているときにユーザがENTERスイッチ20
2をONすると、図30のステップ2914で、各倍数
に対応した枚数**の用紙が印刷されることを示す図5
1(g) の表示内容を示すヘルパーのふきだしが表示され
る。枚数**は、普通倍数の場合は1枚、4倍の場合は
4枚、16倍の場合は16枚、64倍の場合は64枚で
ある。その後、ステップ2915において、図41の基
本システム画面に、「はい」「いいえ」の表示を含む確
認答表示が表示され、ユーザに選択を促す。なお、各倍
数に対応した枚数**は、特には図示しないレジスタに
値nとして保持される。
【0185】各倍数に対応した枚数**の用紙が印刷さ
れることを示す図51(g) のヘルパーのふきだしが表示
され、確認答表示において「いいえ」が強調表示されて
いるときにユーザがENTERスイッチ202をONす
ると、図29のステップ2901の処理に戻る。
【0186】一方、各倍数に対応した枚数**の用紙が
印刷されることを示す図51(g) のヘルパーのふきだし
が表示され、確認答表示において「はい」が強調表示さ
れているときにユーザがENTERスイッチ202をO
Nすると、まず、ステップ2916で、図10に示され
るデータフォーマットを有するVDP302内の特には
図示しない表示制御レジスタのBG−B面に対応するビ
ット位置1に値0がセットされる。この結果、後述する
画面抽出処理においては基本システム画面を構成するア
イコン等が消去された状態で似顔絵の画像データのみが
抽出され、その画像データが印刷されることになる。
【0187】続いて、ステップ2917で、後述する図
31〜図33の動作フローチャートで示される印刷実行
処理が開始される。印刷実行処理が終了すると、ステッ
プ2918で、前記表示制御レジスタのBG−B面に対
応するビット位置1の値が値1に復元される。この結
果、表示画面上における基本システム画面を構成するア
イコン等の表示が復元される。
【0188】ステップ2918の処理の後、図22のス
テップ2201の基本システム画面の表示に戻る。図3
1〜図33は、図29のステップ2917で実行される
印刷実行処理の動作フローチャートである。
【0189】まず、ステップ3101で、画面抽出処理
が実行される。この処理の詳細については図35の動作
フローチャートを用いて後述するが、この処理が実行さ
れることにより、図3のVDP302内の図4に示され
るカラールックアップテーブル部409から出力される
図3のテレビ311に表示される1画面分のRGBデジ
タルデータが、図3のVDP302内の図4に示される
RGBバッファ部415を介して、ワークRAM308
内の原画像エリアAに転送される。
【0190】次に、前述した印刷処理において、ユーザ
が、図29のステップ2907による確認答表示におい
て「はい」が強調表示されているときに図2のENTE
Rスイッチ202をONすることにより、普通倍数の印
刷を指定した場合には、図31のステップ3102、図
32のステップ3108、及び図33のステップ311
8のそれぞれの判定がNOとなって、ステップ3130
と3131が実行される。
【0191】まず、ステップ3130では、残り紙チェ
ック処理が実行される。この処理の詳細については図3
4の動作フローチャートを用いて後述する。残り紙チェ
ック処理によるチェック結果がOKとなった場合には、ス
テップ3131で、実際に図3のプリンタ部312が駆
動され、図3のワークRAM308の原画像エリアAに
転送された、現在テレビ311に表示されている1画面
分の画像が1枚の用紙に印刷される。
【0192】その後、図30のステップ2917の印刷
実行処理を終了する。前述した印刷処理において、ユー
ザが、図30のステップ2909による確認答表示にお
いて「はい」が強調表示されているときに図2のENT
ERスイッチ202をONすることにより、4倍印刷を
指定した場合には、図31のステップ3101で画面抽
出処理が実行された後、ステップ3102の判定がYE
Sとなって、ステップ3103〜3107が実行され
る。
【0193】まず、ステップ3103においては、ワー
クRAM308内の原画像エリアAを1/4に等分割し
た1つの領域から、ワークRAM308内の1画面分の
記憶容量を有する画像エリアBに、画像データが単純に
4倍に拡大されながら転送される。
【0194】次に、ステップ3104では、画像エリア
Bに転送された画像データに対し、所定のスムージング
処理が実行される。このスムージング処理についての詳
細は後述するが、画像エリアB上の画像データによって
表現される画像において、拡大によって階段状になった
斜線部分を補正することでその画像を平滑化する処理で
ある。
【0195】続いて、ステップ3105では、残り紙チ
ェック処理が実行される。この処理の詳細については図
34の動作フローチャートを用いて後述する。残り紙チ
ェック処理によるチェック結果がOKとなった場合には、
ステップ3106で、実際に図3のプリンタ部312が
駆動され、図3のワークRAM308の画像エリアBに
転送された、現在テレビ311に表示されている1画面
分の画像の1/4の領域が4倍に拡大されて1枚の用紙
に印刷される。
【0196】その後、ステップ3107で、4枚の用紙
への印刷が終了したか否かが判定される。この判定がN
Oならば、ステップ3103に戻り、ワークRAM30
8内の原画像エリアAを1/4に等分割した他の1つの
領域について、上述したステップ3103〜3106の
処理が繰り返される。
【0197】以上の印刷動作が4回繰り返されることに
より、現在テレビ311に表示されている1画面分の画
像が4倍に拡大されて4枚の用紙に印刷される。その
後、ステップ3107の判定がYESとなることによ
り、図30のステップ2917の印刷実行処理を終了す
る。
【0198】前述した印刷処理において、ユーザが、図
30のステップ2911による確認答表示において「は
い」が強調表示されているときに図2のENTERスイ
ッチ202をONすることにより、16倍印刷を指定し
た場合には、図31のステップ3101で画面抽出処理
が実行された後、ステップ3102の判定がNO、それ
に続く図32のステップ3108の判定がYESとなっ
て、ステップ3109〜3117が実行される。
【0199】まず、ステップ3109においては、原画
像エリアAを1/4に等分割した1つの領域から画像エ
リアBに、画像データが単純に4倍に拡大されながら転
送される。
【0200】次に、ステップ3110では、画像エリア
Bに転送された画像データに対し、図31のステップ3
104と同様のスムージング処理が実行される。続い
て、ステップ3111〜ステップ3115では、原画像
が格納されていた画像エリアAを使用しながら、前述の
図31のステップ3103〜3107の4倍印刷動作と
同様にして、画像エリアBを1/4に等分割した各領域
から画像エリアAに画像データが単純に4倍に拡大され
ながら転送され、この転送された画像データに対してス
ムージング処理が施された後に印刷される動作が4回繰
り返されることにより、現在テレビ311に表示されて
いる1画面分の画像の1/16の領域の4領域分が16
倍に拡大されて4枚の用紙に印刷される。このように、
画像が格納されたエリアを分割しながらそれの拡大を行
うので、16倍に拡大する場合においても各エリアは各
々1画面分の記憶容量ですむことになる。また、拡大を
行う度にスムージング処理が施されることで、拡大によ
る印刷された画像の画質の低下が抑えられ、拡大倍率に
係わらず良好な画像を得ることもできる。
【0201】ステップ3111〜ステップ3115の繰
返し処理が4回終了すると、ステップ3116で、画面
抽出処理が既に4回終了しているか否かが判定される。
ステップ3116の判定がNOなら、ステップ3117
で、1画面分のRGBデジタルデータを図3のVDP3
02からワークRAM308内の原画像エリアAに転送
し直す画面抽出処理が実行される。
【0202】その後、ステップ3109で、原画像エリ
アAを1/4に等分割した未処理の他の1つの領域から
画像エリアBに、画像データが単純に4倍に拡大されな
がら転送される。これ以降、上述したステップ3110
〜3115の処理が再度実行されることによって、現在
テレビ311に表示されている1画面分の画像の1/1
6の領域の他の4領域分が16倍に拡大されて4枚の用
紙に印刷される。
【0203】以上のステップ3109〜3117の処理
が、ステップ3116で画面抽出処理が4回終了してい
ると判定されるまで4回繰り返されることにより、現在
テレビ311に表示されている1画面分の画像が16倍
に拡大されて16枚の用紙に印刷される。
【0204】前述した印刷処理において、ユーザが、図
30のステップ2913による確認答表示において「は
い」が強調表示されているときに図2のENTERスイ
ッチ202をONすることにより、64倍印刷を指定し
た場合には、図31のステップ3101で画面抽出処理
が実行された後、図31のステップ3102及び図32
のステップ3108の判定がNO、それに続く図33の
ステップ3118の判定がYESとなって、ステップ3
119〜3129が実行される。
【0205】まず、ステップ3119においては、原画
像エリアAを1/4に等分割した1つの領域から画像エ
リアBに、画像データが単純に4倍に拡大されながら転
送される。
【0206】次に、ステップ3120では、画像エリア
Bに転送された画像データに対し、図31のステップ3
104と同様のスムージング処理が実行される。続い
て、ステップ3121においては、画像エリアBを1/
4に等分割した1つの領域から今まで原画像が格納され
ていた画像エリアAに、画像データが単純に4倍に拡大
されながら転送される。
【0207】更に、ステップ3122では、画像エリア
Aに転送された画像データに対し、図31のステップ3
104と同様のスムージング処理が実行される。続い
て、ステップ3123〜ステップ3127では、前述し
た図31のステップ3103〜3107の4倍印刷動作
と同様にして、画像エリアAを1/4に等分割した各領
域から画像エリアBに画像データが単純に4倍に拡大さ
れながら転送され印刷される動作が4回繰り返されるこ
とにより、現在テレビ311に表示されている1画面分
の画像の1/64の領域の4領域分が64倍に拡大され
て4枚の用紙に印刷される。
【0208】ステップ3123〜ステップ3127の繰
返し処理が4回終了すると、ステップ3128で、画面
抽出処理が既に16回終了しているか否かが判定され
る。ステップ3128の判定がNOなら、ステップ31
29で、1画面分のRGBデジタルデータを図3のVD
P302からワークRAM308内の原画像エリアAに
転送し直す画面抽出処理が実行される。
【0209】その後、ステップ3119で、原画像エリ
アAを1/4に等分割した未処理の他の1つの領域から
画像エリアBに、画像データが単純に4倍に拡大されな
がら転送され、その画像データに対してステップ312
0でスムージング処理が実行される。続いて、ステップ
3121で、画像エリアBを1/4に等分割した未処理
の他の1つの領域から今まで原画像が格納されていた画
像エリアAに、画像データが単純に4倍に拡大されなが
ら転送され、その画像データに対してステップ3122
でスムージング処理が実行される。これ以降、上述した
ステップ3123〜3127の処理が再度実行されるこ
とによって、現在テレビ311に表示されている1画面
分の画像の1/64の領域の他の4領域分が64倍に拡
大されて4枚の用紙に印刷される。
【0210】以上のステップ3119〜3129の処理
が、ステップ3128で画面抽出処理が16回終了して
いると判定されるまで16回繰り返されることにより、
現在テレビ311に表示されている1画面分の画像が6
4倍に拡大されて64枚の用紙に印刷される。
【0211】以上のように、本実施例では、ワークRA
M308内のそれぞれ1画像分の記憶領域を有する2つ
の画像エリア間で画像データが交互に転送されながら印
刷処理が繰り返し実行されることにより、2の巾乗倍の
拡大印刷を少ないメモリ量で効率良く実行することがで
きる。換言すれば、ワークRAM308を効率的に使用
することができ、メモリに要するコストを抑えることが
できる。
【0212】図34は、図31のステップ3105、図
32のステップ3113、図33のステップ3125、
又は図33のステップ3130として実行される残り紙
チェック処理の動作フローチャートである。
【0213】ステップ3401では、図30のステップ
2914で図51(g) のヘルパーのふきだしが表示され
ると共に特には図示しないレジスタに上記各倍数に対応
した枚数**が初期値として保持された値nを含む図5
1(h) の表示内容が、図41の基本システム画面に、ヘ
ルパーのふきだしとして表示される。
【0214】次に、ステップ3402で、用紙カセット
の残り紙数がチェックされる。続いて、ステップ340
3では、上記レジスタの値nが−1だけデクリメントさ
れる。
【0215】ステップ3404では、ステップ3402
の処理の結果、エラーが発生したか否かが判定される。
その結果、エラーが発生していないと判定された場合に
は、そのまま図34の残り紙チェック処理を終了する。
【0216】一方、ステップ3404でエラーが発生し
たと判定された場合には、ステップ3405で、図41
の基本システム画面に、用紙が無い旨を示す図50(i)
の表示内容を有するヘルパーのふきだしが例えば4秒間
だけ表示され、更に、用紙カセットを交換するか否かを
問い合せる図50(j) の表示内容を有するヘルパーのふ
きだしが表示された後、ステップ2907において、図
41の基本システム画面に、「はい」「いいえ」の表示
を含む確認答表示が表示され、ユーザに選択を促す。
【0217】図50(j) のヘルパーのふきだしが表示さ
れ、確認答表示において「いいえ」が強調表示されてい
るときにユーザがENTERスイッチ202をONする
と、ステップ3408で、図22のステップ2215の
印刷処理を終了して、図22のステップ2201の基本
システム画面の表示に戻る。
【0218】図50(j) のヘルパーのふきだしが表示さ
れ、確認答表示において「はい」が強調表示されている
ときにユーザがENTERスイッチ202をONする
と、ステップ3409で、用紙カセットの交換終了を確
認する図50(k) の表示内容を有するヘルパーのふきだ
しが表示された後に、ステップ3410において、図4
1の基本システム画面に、「はい」「いいえ」の表示を
含む確認答表示が表示され、ユーザに選択を促す。
【0219】図50(k) のヘルパーのふきだしが表示さ
れ、確認答表示において「いいえ」が強調表示されてい
るときにユーザがENTERスイッチ202をONする
と、ステップ3406の表示処理に戻る。
【0220】図50(k) のヘルパーのふきだしが表示さ
れ、確認答表示において「はい」が強調表示されている
ときにユーザがENTERスイッチ202をONする
と、ステップ3411で、本体のカセット部101(図
1参照)に、用紙カセットが装着されているか否かがチ
ェックされる。
【0221】その結果、エラーが発生していない場合に
は、ステップ3412の判定がNOとなり、図34の残
り紙チェック処理を終了する。一方、エラーが発生して
いる場合には、ステップ3412の判定がYESとな
り、ステップ3413で、図41の基本システム画面
に、カセットが装着されていない旨を示す図50(a) の
表示内容を有するヘルパーのふきだしが例えば4秒間だ
け表示された後に、ステップ3409の表示処理に戻
る。
【0222】図35は、図3のCPU301が図31の
ステップ3101、図32のステップ3117、又は図
33のステップ3129として実行する画面抽出処理の
動作フローチャートである。ここでは、図3のVDP3
02内の図4に示されるカラールックアップテーブル部
409から出力される図3のテレビ311に表示される
1画面分のRGBデジタルデータが、図3のVDP30
2内の図4に示されるRGBバッファ部415を介し
て、ワークRAM308内の原画像エリアAに転送され
る。この場合に、RGBバッファ部415は、カラール
ックアップテーブル部409から出力されるRGBデジ
タルデータを、図3のテレビ311上の表示画面の1ラ
イン分(256ドット分)だけ格納する容量を有する。
【0223】ステップ3501では、画面表示タイミン
グが垂直ブランク期間(v#blank )に入ったか否かが判
定され、この判定がYESとなるまでステップ3501
で待機状態となる。この判定は、図4のVDP302内
のデコーダ部413から外部に出力される垂直同期カウ
ンタ値1211の値が垂直表示期間に対応する値から垂
直ブランク期間に対応する値に変化することを監視する
動作として実現される(図11参照)。
【0224】ステップ3501の判定がYESとなった
後、垂直ブランク期間内において、ステップ3502〜
3505が実行される。ステップ3502では、特には
図示しないレジスタに設定されるiの値が0にリセット
される。このレジスタ値iは、転送処理が行われる画面
内のライン位置を指定し、垂直表示期間内の垂直同期カ
ウンタ値1211に対応する。従って、ステップ350
2によって設定されるレジスタ値iの初期値0は、画面
の第1ライン目を指示している(図11参照)。
【0225】ステップ3503では、レジスタ値iに対
応する図3のワークRAM308内の前述した原画像エ
リアA内のアドレスが算出される。この場合の算出値
は、原画像エリアA内の先頭アドレスである。
【0226】ステップ3504では、図3のCPU30
1から、図3のVDP302内に設けられている図4の
CPUインタフェース部401を介して、図4のRGB
バッファ部415内に設けられている図12のライン指
定値レジスタ1213に、レジスタ値i=0がセットさ
れる。
【0227】また、ステップ3505では、図3のCP
U301から、図3のVDP302内に設けられている
図4のCPUインタフェース部401を介して、図4の
RGBバッファ部415内に設けられている図12のア
ドレス制御部1202に、図12の格納開始信号120
3がセット(通知)される。
【0228】その後、ステップ3506では、画面表示
タイミングが垂直ブランク期間を出たか否かが判定さ
れ、この判定がYESとなるまでステップ3506で待
機状態となる。
【0229】ステップ3506の判定がYESとなった
後、更にステップ3507においては、画面表示タイミ
ングが第1ライン目と第2ライン目の間の水平ブランク
期間(h#blank )に入ったか否かが判定され、この判定
がYESとなるまでステップ3507で待機状態とな
る。
【0230】この待機状態の期間に、図3のVDP30
2内に設けられる図12の構成を有する図4のRGBバ
ッファ部415内では、以下の処理が実行される。即
ち、図12において、アドレス制御部1202は、CP
U301から格納開始信号1203を受け取った後、ラ
イン指定値レジスタ1213にセットされた第1ライン
目を指示するCPUライン指定値1212と図4のデコ
ーダ部413から出力される垂直同期カウンタ値121
1が一致したことを示す一致信号1215が比較器12
14から出力されるタイミングで、図4のデコーダ部4
13から出力される水平同期カウンタ値1204に対応
するメモリアドレス1206と書込みを指示するリード
/ライト信号1207のパルスを図13に示されるよう
に順次発生し、RGBラインメモリ部1201に供給す
る。この結果、RGBラインメモリ部1201には、カ
ラールックアップテーブル部409から入力される第1
ライン目に対応する1ライン分(256ドット分)の入
力RGBデータ1205が書き込まれる。
【0231】ステップ3507の判定がYESとなった
後、第1ライン目の水平ブランク期間において、ステッ
プ3508〜3513が実行される。ステップ3508
では、図12のRGBラインメモリ部1201から図4
のデータバス417を介して図3のワークRAM308
内の前述した原画像エリアAに、第1ライン目の出力R
GBデータ1210(図12)が転送される。具体的に
は、図3のCPU301は、図12のアドレス制御部1
202から図4のCPUインタフェース部401を介し
て格納終了信号1208を受け取った後に、図4のCP
Uインタフェース部401からアドレスバス416を介
して、CPUアドレス1209をアドレス制御部120
2に供給する。アドレス制御部1202は、CPUアド
レス1209をそのままメモリアドレス1206として
RGBラインメモリ部1201に順次供給すると共に、
読出しを指示するリード/ライト信号1207のパルス
をRGBラインメモリ部1201に順次供給する。ま
た、CPU301は、ワークRAM308に対しては、
原画像エリアAのステップ3503(又は後述するステ
ップ3511)で算出されたアドレスを、転送開始アド
レスとしてセットする。
【0232】ステップ3508の転送処理が終了した
後、ステップ3509では、全ライン分の処理が終了し
たか否かが判定される。具体的には、レジスタ値iが2
24ライン目を示す値223になっているか否かが判定
される。
【0233】ステップ3509の判定がNOなら、ステ
ップ3510でレジスタ値iが+1だけインクリメント
された後、ステップ3511でレジスタ値iに対応する
図3のワークRAM308内の前述した原画像エリアA
内のアドレスが算出され、ステップ3512でステップ
3504と同様に図12のライン指定値レジスタ121
3にレジスタ値iがセットされ、ステップ3513でス
テップ3505と同様に図12のアドレス制御部120
2に格納開始信号1203がセットされる。
【0234】その後、ステップ3514においては、画
面表示タイミングがレジスタ値iに対応するラインとそ
の1つ前のラインの間の水平ブランク期間を出たか否か
が判定され、この判定がYESとなるまでステップ35
14で待機状態となる。
【0235】ステップ3514の判定がYESとなった
後、ステップ3507〜3514が繰り返し実行される
ことにより、図12のRGBラインメモリ部1201か
ら図4のデータバス417を介して図3のワークRAM
308内の前述した原画像エリアAに、現在図3のテレ
ビ311に表示されている画面の各ラインの出力RGB
データ1210(図12)が転送される。上述の動作が
繰り返される結果、ステップ3509で全ライン分の処
理が終了したと判定されたら、図35の画面抽出処理が
終了する。
【0236】以上の画面抽出処理によって、テレビ31
1に表示されている1画面分の出力RGBデータ121
0を、VDP302からワークRAM308内の原画像
エリアに転送させることができる。スムージングの処理フロー 図52〜図64は、図31のステップ3104、図32
のステップ3110及び3112、図33のステップ3
120、3122、及び3124で実行される、スムー
ジング処理を示す動作フローチャートである。
【0237】本実施例によるスムージング処理は、ワー
クRAM308内の画像エリアA、或いはBの一方のエ
リアに格納されている拡大元の画像データ(以降、元画
像データと記す)と、他方のエリアに格納されている拡
大された画像データ(以降、拡大画像データと記す)と
を対応させ、原画像データを参照した結果に基づいて拡
大画像データに対する修正(平滑化)を行うものであ
り、この平滑化は、拡大が行われていない元画像(原画
像)上に意識的に1ドット(画素)の段差を設けること
は考えられないことから、元画像データにより表現され
る画像上で1ドットの段差を有する領域境界を検出した
場合に行われる。このスムージング処理では、図31〜
図33の印刷実行処理から、拡大画像データが格納され
ているエリアの先頭を示すアドレス値、その拡大画像デ
ータに対応した部分の元画像データが格納されている領
域の先頭のアドレス値、及び元画像データが格納されて
いるエリアの先頭を示すアドレス値が、各々引数ex、
source、motoとして渡される。ステップ52
00〜5301は元画像データを参照し、その参照結果
から修正内容を決定する部分の処理であり、それ以降は
決定された修正内容に従って拡大画像データを修正する
部分の処理である。
【0238】ステップ5200〜5210では、このス
ムージング処理の処理を行ううえで、特には図示しない
レジスタにその値が格納される各種の変数に対して初期
値が設定される。
【0239】まず、ステップ5200では、変数s、及
びpに初期値がセットされる。この変数pは、拡大画像
データを構成する画素データ群の1つの画素データを示
すためのものであり、変数sは、元画像データを構成す
る画素データ群の1つの画素データを示すためのもので
ある。このステップ5200の処理により、変数pには
拡大画像データの先頭の画素データを示す値、変数sに
はその拡大画像データに対応する部分の元画像データ上
の先頭の画素データを示す値がセットされる。また、図
示していないが、拡大画像データが格納されている範囲
を示す値が変数ll、変数ulにセットされる。この変
数llには拡大画像データが格納されているその先頭を
示すアドレス値、即ち引数exの値がセットされ、変数
ulにはそれの最後のアドレス値がセットされる。この
変数ulにセットされる値は、本実施例では1つの画素
データを2バイトとしていることから、変数llの値に
114688(=256・224・2)を加算した値で
ある。
【0240】ステップ5201、5202においては、
変数i、jの値として各々0がセットされる。この変数
i、及びjは、拡大画像データを構成する画素データ毎
に順次処理を行うためのものである。
【0241】ステップ5203では、拡大画像データに
対する処理内容を指定するフラグとなる変数statu
s、その処理により修正される画素データを指定するた
めの変数sqに各々0がセットされる。
【0242】ステップ5204では、後述する配列変数
を指定するための変数aに0がセットされる。この変数
aにより指定される配列変数は、kink state
〔a〕.retval、kink state〔a〕.
bufa、kink state〔a〕.bufb、k
ink state〔a〕.bufsumである。これ
らの配列変数はともに拡大画像データに対する修正内容
を決定するために使用され、その配列の要素の数は4で
ある。ステップ5205〜5210の処理の繰り返しに
より、これら配列変数の全ての要素は0にセットされ
る。
【0243】ステップ5210で変数aの値が4以上と
判定されると、ステップ5211〜5301の元画像デ
ータを参照し、拡大画像データに対する修正内容を決定
する部分の処理に移行する。
【0244】まず、ステップ5211では、変数sの値
を引数としてkink1処理が実行される。図66、及
び図67は、このkink1処理を示す動作フローチャ
ートである。このkink1処理内では、引数として受
け取った値sは引数pとして扱われる。
【0245】まず、ステップ6601では、引数pの値
を引数の値としたkst2処理が実行される。図75
は、kst2処理を示す動作フローチャートである。こ
のkst2処理において、kink1処理から引数とし
て受け取ったpの値は引数pとして扱われ、その値は元
画像データの画素データを指示するポインタ値として使
用される。以降、画素データを指示するポインタ値とし
て用いる場合は、その値を示すものに対して括弧を付け
ることで他と区別することにする。
【0246】kst2処理では、まず、ポインタ値
(p)が指示する元画像データの画素データ値と、ポイ
ンタ値(p−256)が指示する画素データ値とが等し
いか否かが判定される(ステップ7501)。本実施例
では、画面の水平方向のドット数を256(垂直方向は
224ドットである)としている。従って、このステッ
プの処理を実行することで、ポインタ値(p)(=s)
により指示される基準画素と、この基準画素の垂直方向
の上側に隣接する画素とが同じ状態であるか否かが判定
される(図93参照)。
【0247】ポインタ値(p)が指示する画素データ値
とポインタ値(p−256)が指示する画素データ値と
が等しくないと判定されると、続けてステップ7502
において、ポインタ値(p−256)が指示する画素デ
ータ値とポインタ値(p+1)が指示する画素データ値
とが等しくないか否かが判定される。ステップ7501
でポインタ値(p)が指示する画素データ値とポインタ
値(p−256)が指示す画素データ値が等しいと判
定、或いはステップ7502でポインタ値(p−25
6)が指示する画素データ値とポインタ値(p+1)が
指示する画素データ値とが等しくないと判定されると、
ステップ7503でこのサブルーチン処理の実行結果と
なる引数kst2に0がセットされた後、一連の処理が
終了する。
【0248】ステップ7502でポインタ値(p−25
6)が指示する画素データ値とポインタ値(p+1)が
指示する画素データ値とが等しいと判定されると、次に
ステップ7504でポインタ値(p−256)が指示す
る画素データ値とポインタ値(p−255)が指示する
画素データ値とが等しいか否かが判定される。この2つ
の画素データ値が等しいと判定されると、ステップ75
05で引数kst2に1がセットされた後、反対にこれ
らが等しくないと判定されると、ステップ7506で引
数kst2に2がセットされた後、一連の処理が終了す
る。
【0249】このkst2処理を実行することで、基準
画素と3つのその周辺画素とで構成された画像範囲内に
おいて、画素の状態が異なる領域の境界の形状が認識さ
れ、その形状が階段状となっている領域境界が検出され
る。
【0250】図93は、このkst2処理、後述するk
st1処理、kst3処理、及びkst4処理による領
域境界の検出方法の説明図である。図93において、1
つ1つの枠はそれぞれ画素を表し、その画素の状態は斜
線の有無で表現している(以降、特に断らない限り、画
素及びその状態は同様に表現したものとする)。kst
2処理を実行したとき、枠内の“p”で示す基準画素と
その周辺の3つの画素とで形成された領域境界が図93
(c)に示す状態の場合には引数kst2に1がセット
され、図93(d)に示す状態の場合には引数kst2
に2がセットされる。領域境界がその他の形状であった
場合には引数kst2に0がセットされる。
【0251】図66に戻り、ステップ6601以降の処
理についての説明を続行する。上記のkst2処理が終
了すると、次にステップ6602で引数kst2の値が
1か否かが判定される。引数kst2の値が1と判定
(図93(c)参照)されると、続けてステップ660
3でポインタ値(p−256)が指示する画素データ値
とポインタ値(p−257)が指示する画素データ値が
等しいか否かが判定される。これらの画素データ値が等
しくないと判定されると、ステップ6604で変数aに
0がセットされ、反対にこれらの値が等しいと判定され
ると、ステップ6605で変数aに1がセットされる。
ここで、この変数aは、このkink1処理内だけで用
いられるローカル変数である。
【0252】ステップ6604、或いは6605の処理
が終了すると、次にステップ6606において、ポイン
タ値(p+1)が指示する画素データ値とポインタ値
(p+2)が指示する画素データ値が等しく、且つポイ
ンタ値(p+2)が指示する画素データ値とポインタ値
(p+258)が指示する画素データ値が等しくないか
否かが判定される。ポインタ値(p+1)が指示する画
素データ値とポインタ値(p+2)が指示する画素デー
タ値が等しくないと判定、或いはポインタ値(p+2)
が指示する画素データ値とポインタ値(p+258)が
指示する画素データ値が等しいと判定されると、ステッ
プ6607で変数bに0がセットされる。反対に、ポイ
ンタ値(p+1)が指示する画素データ値とポインタ値
(p+2)が指示する画素データ値が等しく、且つポイ
ンタ値(p+2)が指示する画素データ値とポインタ値
(p+258)が指示する画素データ値が等しくないと
判定されると、ステップ6608で変数bに1がセット
される。ここで、この変数bもkink1処理内だけで
用いられるローカル変数である。
【0253】ステップ6607、或いは6608の処理
が終了すると、次にステップ6609で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ6610
でこのkink1処理の実行結果となる引数kink1
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ6
611の処理が実行される。
【0254】ステップ6611では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ6612で引数kink1に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ6613において、変数b
の値が1か否かが判定される。このステップ6613で
変数bの値が1と判定されると、ステップ6614で引
数kink1に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、次
にステップ6615の処理が実行される。また、ステッ
プ6602において、引数kst2の値が1ではないと
判定されると、次にステップ6615の処理が実行され
る。
【0255】このように、ステップ6601でkst2
処理を実行した後、ステップ6602〜6614の処理
を実行することにより、基準画素とその周辺画素で構成
された画像範囲における領域境界が図89(a)〜
(c)に示す形状であった場合、それぞれの形状に応じ
た値が引数kink1にセットされることになる。
【0256】一方、ステップ6615においては、p+
1の値を引数としたkst4処理が実行される。図77
は、このkst4処理を示す動作フローチャートであ
る。このkst4処理内において、kink1処理から
受け取った引数の値(=p+1)は引数pとして用いら
れる。
【0257】kst4処理では、まず、ポインタ値
(p)が指示する画素データ値と、ポインタ値(p+2
56)が指示する画素データ値とが等しいか否かが判定
される(ステップ7701)。このステップの処理を実
行することで、図93(g)及び(h)に示すように、
枠内の“p”で示した基準画素と、この基準画素の下側
に隣接する画素とが同じ状態か否かが判定される。
【0258】ポインタ値(p)が指示する画素データ値
とポインタ値(p+256)が指示する画素データ値が
等しくないと判定されると、続けてステップ7702に
おいて、ポインタ値(p+256)が指示する画素デー
タ値とポインタ値(p−1)が指示する画素データ値と
が等しくないか否かが判定される。ステップ7701で
ポインタ値(p)が指示する画素データ値とポインタ値
(p+256)が指示す画素データ値が等しいと判定、
或いはステップ7702でポインタ値(p+256)が
指示する画素データ値とポインタ値(p−1)が指示す
る画素データ値が等しくないと判定されると、ステップ
7703でこのサブルーチン処理の実行結果となる引数
kst4に0がセットされた後、一連の処理が終了す
る。
【0259】ステップ7702でポインタ値(p+25
6)が指示する画素データ値とポインタ値(p−1)が
指示する画素データ値とが等しいと判定されると、次に
ステップ7704でポインタ値(p+256)が指示す
る画素データ値とポインタ値(p+255)が指示する
画素データ値が等しいか否かが判定される。この2つの
画素データ値が等しいと判定されると、ステップ770
5で引数kst4に1がセットされた後、反対にこれら
が等しくないと判定されると、ステップ7706で引数
kst4に2がセットされた後、一連の処理を終了す
る。
【0260】このkst4処理を実行することで、基準
画素と3つのその周辺画素とで形成された領域境界の形
状が検出される。kst4処理を実行したとき、領域境
界が図93(g)に示す状態の場合には引数kst4に
1がセットされ、図93(h)に示す状態の場合には引
数kst4に2がセットされることになる。領域境界が
その他の形状であった場合には引数kst4に0がセッ
トされる。
【0261】図67に戻り、ステップ6615以降の処
理についての説明を続行する。上記のkst4処理が終
了すると、次にステップ6616で引数kst4の値が
1か否かが判定される。引数kst4の値が1ではない
と判定されると、ここで一連の処理が終了し(このと
き、引数kst4の値は0或いは2である)、反対に、
引数kst4の値が1と判定(図93(g)参照)され
ると、続けてステップ6617でポインタ値(p+25
8)が指示する画素データ値とポインタ値(p+25
7)が指示する画素データ値が等しいか否かが判定され
る。これらの画素データ値が等しくないと判定される
と、ステップ6618で変数bに0をセットし、反対に
これらが等しいと判定されると、ステップ6619で変
数bに1がセットされる。
【0262】ステップ6618、或いは6619の処理
が終了すると、次にステップ6620において、ポイン
タ値(p−1)が指示する画素データ値とポインタ値
(p)が指示する画素データ値が等しく、且つポインタ
値(p−1)が指示する画素データ値とポインタ値(p
−257)が指示する画素データ値が等しくないか否か
が判定される。ポインタ値(p−1)が指示する画素デ
ータ値とポインタ値(p)が指示する画素データ値が等
しくないと判定、或いはポインタ値(p−1)が指示す
る画素データ値とポインタ値(p−257)が指示する
画素データ値が等しいと判定されると、ステップ662
1で変数aに0がセットされる。反対に、ポインタ値
(p−1)が指示する画素データ値とポインタ値(p)
が指示する画素データ値が等しく、且つポインタ値(p
−1)が指示する画素データ値とポインタ値(p−25
7)が指示する画素データ値が等しくないと判定される
と、ステップ6622で変数aに1がセットされる。
【0263】ステップ6621、或いは6622の処理
が終了すると、次にステップ6623で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ6624
でこのkink1処理の実行結果となる引数kink1
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ6
625の処理が実行される。
【0264】ステップ6625では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ6626で引数kink1に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ6627において、変数b
の値が1か否かが判定される。このステップ6627で
変数bの値が1と判定されると、ステップ6628で引
数kink1に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、ス
テップ6629で引数kink1に0がセットされた
後、一連の処理が終了する。
【0265】ステップ6615で上記のkst4処理を
実行した後、ステップ6616〜6629の処理を実行
することにより、基準画素とその周辺画素で形成された
領域境界が図89(d)〜(f)に示す形状であった場
合、それぞれの形状に応じた値が引数kink1にセッ
トされることになる。なお、このkink1処理におい
て、領域境界の形状が図89(a)〜(f)に示す形状
ではない場合、引数kink1には0がセットされる。
【0266】上記したkink1処理が終了すると、次
に図52のステップ5212の処理に移行し、ここで配
列変数kink state
〔0〕.retvalに引
数kink1の値がセットされる。このステップ521
1で領域境界の形状を検出し、ステップ5212でこの
検出結果を配列変数にセットするという2つの処理ステ
ップを1組とする処理は、これ以降のステップ5213
〜5218において3回繰り返される。
【0267】ステップ5213では、変数sの値を引数
としてkink2処理が実行される。図68、及び図6
9は、このkink2処理を示す動作フローチャートで
ある。 このkink2処理内では、引数として受け取
ったsの値は引数pとして扱われる。
【0268】まず、ステップ6801では、引数pの値
を引数としたkst1処理が実行される。図74は、k
st1処理を示す動作フローチャートである。このks
t1処理において、kink2処理から引数として受け
取ったpの値は引数pとして用いられる。
【0269】kst1処理では、まず、ポインタ値
(p)が指示する画素データ値とポインタ値(p−25
6)が指示するアドレスに格納された画素データ値とが
等しいか否か判定される(ステップ7401)。このス
テップの処理を実行することで、ポインタ値(p)(=
s)により指示される基準画素と、この基準画素の上側
に隣接する画素とが同じ状態か否かが判定される(図9
3参照)。
【0270】ポインタ値(p)が指示する画素データ値
とポインタ値(p−256)が指示する画素データ値と
が等しくないと判定されると、続けてステップ7402
において、ポインタ値(p−1)が指示する画素データ
値とポインタ値(p−256)が指示する画素データ値
とが等しくないか否かが判定される。ステップ7401
でポインタ値(p)が指示する画素データ値とポインタ
値(p−256)が指示す画素データ値が等しいと判
定、或いはステップ7402でポインタ値(p−1)が
指示する画素データ値とポインタ値(p−256)が指
示する画素データ値とが等しくないと判定されると、ス
テップ7403でこのサブルーチン処理の実行結果とな
る引数kst1に0がセットされた後、一連の処理が終
了する。
【0271】ステップ7402でポインタ値(p−1)
が指示する画素データ値とポインタ値(p−256)が
指示する画素データ値とが等しいと判定されると、次に
ステップ7404でポインタ値(p−256)が指示す
る画素データ値とポインタ値(p−257)が指示する
画素データ値とが等しいか否かが判定される。この2つ
の画素データ値が等しいと判定されると、ステップ74
05で引数kst1に1がセットされ、反対にこれらが
等しくないと判定されると、ステップ7406で引数k
st1に2がセットされた後、一連の処理を終了する。
【0272】このkst1処理が実行されたとき、基準
画素と3つのその周辺画素とで形成された領域境界の形
状が図93(a)に示す場合には引数kst1に1がセ
ットされ、その領域境界の形状が図93(b)に示す場
合には引数kst1に2がセットされる。その他の形状
であった場合には引数kst1に0がセットされること
になる。
【0273】図68に戻り、ステップ6801以降の処
理についての説明を続行する。ステップ6801で上記
のkst1処理が実行されると、次にステップ6802
で引数kst1の値が1か否かが判定される。引数ks
t1の値が1と判定(図93(a)参照)されると、続
けてステップ6803でポインタ値(p−256)が指
示する画素データ値とポインタ値(p−255)が指示
する画素データ値が等しいか否かが判定される。これら
の画素データ値が等しくないと判定されると、ステップ
6804で変数aに0がセットされ、反対にこれらが等
しいと判定されると、ステップ6805で変数aに1が
セットされる。ここで、この変数aは、このkink2
処理内だけで用いられるローカル変数である。
【0274】ステップ6804、或いは6805の処理
が終了すると、次にステップ6806において、ポイン
タ値(p−1)が指示する画素データ値とポインタ値
(p−2)が指示する画素データ値が等しく、且つポイ
ンタ値(p−2)が指示する画素データ値とポインタ値
(p+254)が指示する画素データ値が等しくないか
否かが判定される。ポインタ値(p−1)が指示する画
素データ値とポインタ値(p−2)が指示する画素デー
タ値が等しくないと判定、或いはポインタ値(p−2)
が指示する画素データ値とポインタ値(p+254)が
指示する画素データ値が等しいと判定されると、ステッ
プ6807で変数bに0がセットされる。反対に、ポイ
ンタ値(p−1)が指示する画素データ値とポインタ値
(p−2)が指示する画素データ値が等しく、且つポイ
ンタ値(p−2)が指示する画素データ値とポインタ値
(p+254)が指示する画素データ値が等しくないと
判定されると、ステップ6808で変数bに1がセット
される。ここで、この変数aもkink2処理内だけで
用いられるローカル変数である。
【0275】ステップ6807、或いは6808の処理
が終了すると、次にステップ6809で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ6810
でこのkink2処理の実行結果となる引数kink2
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ6
811の処理が実行される。
【0276】ステップ6811では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ6812で引数kink2に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ6813において、変数b
の値が1か否かが判定される。このステップ6813で
変数bの値が1と判定されると、ステップ6814で引
数kink2に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、次
にステップ6815の処理が実行される。また、ステッ
プ6802において、引数kst1の値が1ではないと
判定されると、次にステップ6815の処理が実行され
る。
【0277】このように、ステップ6801でkst1
処理を実行した後、ステップ6802〜6814の処理
を実行することにより、基準画素とその周辺画素で構成
される画像領域における領域境界が図90(a)〜
(c)に示す形状であった場合、それぞれの形状に応じ
た値が引数kink2にセットされる。
【0278】ステップ6815においては、p−1の値
を引数としたkst3処理が実行される。図76は、こ
のkst3処理を示す動作フローチャートである。この
kst3処理内において、kink1処理から受け取っ
た引数の値(=p−1)は引数pとして用いられる。
【0279】kst3処理では、まず、ステップ760
1において、ポインタ値(p)が指示する画素データ値
と、ポインタ値(p+256)が指示するアドレスに格
納された画素データ値とが等しいか否かが判定される。
このステップの処理を実行することで、図93(e)及
び(f)に示すように、ポインタ値(p)により指示さ
れる基準画素と、この基準画素の下側に隣接する画素と
が同じ状態か否かが判定される。
【0280】ポインタ値(p)が指示する画素データ値
とポインタ値(p+256)が指示する画素データ値が
等しくないと判定されると、続けてステップ7602に
おいて、ポインタ値(p+256)が指示する画素デー
タ値とポインタ値(p+1)が指示する画素データ値と
が等しくないか否かが判定される。ステップ7601で
ポインタ値(p)が指示する画素データ値とポインタ値
(p+256)が指示す画素データ値が等しいと判定、
或いはステップ7602でポインタ値(p+256)が
指示する画素データ値とポインタ値(p+1)が指示す
る画素データ値が等しくないと判定されると、ステップ
7603でこのサブルーチン処理の実行結果となる引数
kst3に0がセットされた後、一連の処理が終了す
る。
【0281】ステップ7602でポインタ値(p+25
6)が指示する画素データ値とポインタ値(p−1)が
指示する画素データ値とが等しいと判定されると、次に
ステップ7604でポインタ値(p+256)が指示す
る画素データ値とポインタ値(p+257)が指示する
画素データ値が等しいか否かが判定される。この2つの
画素データ値が等しいと判定されると、ステップ760
5で引数kst3に1がセットされた後、反対にこれら
が等しくないと判定されると、ステップ7606で引数
kst3に2がセットされた後、一連の処理が終了す
る。
【0282】このkst3処理を実行することで、基準
画素と3つのその周辺画素とで形成された画領域境界の
形状が検出される。kst3処理を実行したとき、領域
境界が図93(e)に示す状態の場合には引数kst3
に1がセットされ、図93(f)に示す状態の場合には
引数kst4に2がセットされる。領域境界がその他の
状態であった場合、引数kst4には0がセットされ
る。
【0283】図69に戻り、ステップ6815以降の処
理についての説明を続行する。ステップ6815で上記
のkst3処理が実行されると、次にステップ6816
で引数kst3の値が1か否かが判定される。引数ks
t3の値が1ではないと判定されると、ここで一連の処
理が終了し(このとき、引数kst3の値は0或いは2
である)、反対に、引数kst3の値が1と判定(図9
3(e)参照)されると、続けてステップ6817でポ
インタ値(p+255)が指示する画素データ値とポイ
ンタ値(p+254)が指示する画素データ値が等しい
か否かが判定される。これらの画素データ値が等しくな
いと判定されると、ステップ6818で変数bに0がセ
ットされ、反対にこれらが等しいと判定すると、ステッ
プ6819で変数bに1がセットされる。
【0284】ステップ6818、或いは6819の処理
が終了すると、次にステップ6820において、ポイン
タ値(p+1)が指示する画素データ値とポインタ値
(p)が指示する画素データ値が等しく、且つポインタ
値(p)が指示する画素データ値とポインタ値(p−2
55)が指示する画素データ値が等しくないか否かが判
定される。ポインタ値(p+1)が指示する画素データ
値とポインタ値(p)が指示する画素データ値が等しく
ないと判定、或いはポインタ値(p)が指示する画素デ
ータ値とポインタ値(p−255)が指示する画素デー
タ値が等しいと判定されると、ステップ6821で変数
aに0がセットされる。反対に、ポインタ値(p+1)
が指示する画素データ値とポインタ値(p)が指示する
画素データ値が等しく、且つポインタ値(p)が指示す
る画素データ値とポインタ値(p−255)が指示する
画素データ値が等しくないと判定されると、ステップ6
822で変数aに1がセットされる。
【0285】ステップ6821、或いは6822の処理
が終了すると、次にステップ6823で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ6824
でこのkink2処理の実行結果となる引数kink2
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ6
825の処理が実行される。
【0286】ステップ6825では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ6826で引数kink2に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ6827において、変数b
の値が1か否かが判定される。このステップ6827で
変数bの値が1と判定されると、ステップ6828で引
数kink2に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、ス
テップ6829で引数kink2に0がセットされた
後、一連の処理が終了する。
【0287】ステップ6815で上記のkst3処理を
実行した後、ステップ6816〜6829の処理を実行
することにより、基準画素とその周辺画素で構成される
画像領域における領域境界が図90(d)〜(f)に示
す形状であった場合、それぞれの形状に応じた値が引数
kink2にセットされることになる。なお、kink
2処理を実行したとき、領域境界の形状が図90(a)
〜(f)に示す形状ではない場合、引数kink2には
0がセットされる。
【0288】上記したkink2処理が終了すると、次
に図52のステップ5214の処理に移行し、ここで配
列変数kink state〔1〕.retvalに引
数kink2の値がセットされる。これにより、ステッ
プ5213の処理結果がその変数に保持される。
【0289】ステップ5215では、変数sの値を引数
としてkink3処理が実行される。図70、及び図7
1は、このkink3処理を示す動作フローチャートで
ある。このkink3処理内では、引数として受け取っ
たsの値は引数pとして扱われる。
【0290】まず、ステップ7001では、引数pの値
を引数としたkst4処理が実行される。このkst4
処理の実行により、上記したように引数kst4にはそ
の実行結果を示す値がセットされる。
【0291】kst4処理が終了すると、次にステップ
7002で引数kst4の値が1か否かが判定される。
引数kst4の値が1と判定(図93(g)参照)され
ると、続けてステップ7003でポインタ値(p−1)
が指示する画素データ値とポインタ値(p−257)が
指示する画素データ値が等しいか否かが判定される。こ
れらの画素データ値が等しくないと判定されると、ステ
ップ7004で変数aに0がセットされ、反対にこれら
が等しいと判定されると、ステップ7005で変数aに
1がセットされる。ここで、この変数aは、このkin
k3処理内だけで用いられるローカル変数である。
【0292】ステップ7004、或いは7005の処理
が終了すると、次にステップ7006において、ポイン
タ値(p+256)が指示する画素データ値とポインタ
値(p+512)が指示する画素データ値が等しく、且
つポインタ値(p+512)が指示する画素データ値と
ポインタ値(p+513)が指示する画素データ値が等
しくないか否かが判定される。ポインタ値(p+25
6)が指示する画素データ値とポインタ値(p+51
2)が指示する画素データ値が等しくないと判定、或い
はポインタ値(p+512)が指示する画素データ値と
ポインタ値(p+513)が指示する画素データ値が等
しいと判定されると、ステップ7007で変数bに0が
セットされる。反対に、ポインタ値(p+256)が指
示する画素データ値とポインタ値(p+512)が指示
する画素データ値が等しく、且つポインタ値(p+51
2)が指示する画素データ値とポインタ値(p+51
3)が指示する画素データ値が等しくないと判定される
と、ステップ7008で変数bに1がセットされる。こ
こで、この変数bは、このkink3処理内だけで用い
られるローカル変数である。
【0293】ステップ7007、或いは7008の処理
が終了すると、次にステップ7009で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ7010
でこのkink3処理の実行結果となる引数kink3
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ7
011の処理が実行される。
【0294】ステップ7011では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ7012で引数kink3に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ7013において、変数b
の値が1か否かが判定される。このステップ7013で
変数bの値が1と判定されると、ステップ7014で引
数kink3に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、次
にステップ7015の処理が実行される。また、ステッ
プ7002において、引数kst4の値が1ではないと
判定されると、次にステップ7015の処理が実行され
る。
【0295】このように、ステップ7001でkst4
処理を実行した後、ステップ7002〜7014の処理
を実行することにより、基準画素とその周辺画素で構成
される画像領域における領域境界が図91(a)〜
(c)に示す形状であった場合、それぞれの形状に応じ
た値が引数kink3にセットされる。
【0296】ステップ7015においては、p+256
の値を引数としたkst2処理が実行される。このks
t2処理が終了すると、次にステップ7016で引数k
st2の値が1か否かが判定される。引数kst2の値
が1ではないと判定されると、ここで一連の処理が終了
し、反対に、引数kst2の値が1と判定(図93
(c)参照)されると、続けてステップ7017でポイ
ンタ値(p+257)が指示する画素データ値とポイン
タ値(p+513)が指示する画素データ値が等しいか
否かが判定される。これらの画素データ値が等しくない
と判定されると、ステップ7018で変数bに0がセッ
トされ、反対にこれらが等しいと判定されると、ステッ
プ7019で変数bに1がセットされる。
【0297】ステップ7018、或いは7019の処理
が終了すると、次にステップ7020において、ポイン
タ値(p−256)が指示する画素データ値とポインタ
値(p)が指示する画素データ値が等しく、且つポイン
タ値(p)が指示する画素データ値とポインタ値(p−
257)が指示する画素データ値が等しくないか否かが
判定される。ポインタ値(p−256)が指示する画素
データ値とポインタ値(p)が指示する画素データ値が
等しくないと判定、或いはポインタ値(p)が指示する
画素データ値とポインタ値(p−257)が指示する画
素データ値が等しいと判定されると、ステップ7021
で変数aに0がセットされる。反対に、ポインタ値(p
−256)が指示する画素データ値とポインタ値(p)
が指示する画素データ値が等しく、且つポインタ値
(p)が指示する画素データ値とポインタ値(p−25
7)が指示する画素データ値が等しくないと判定される
と、ステップ7022で変数aに1がセットされる。
【0298】ステップ7021、或いは7022の処理
が終了すると、次にステップ7023で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ7024
でこのkink3処理の実行結果となる引数kink3
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ7
025の処理が実行される。
【0299】ステップ7025では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ7026で引数kink3に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ7027において、変数b
の値が1か否かが判定される。このステップ7027で
変数bの値が1と判定されると、ステップ7028で引
数kink3に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、ス
テップ7029で引数kink3に0がセットされた
後、一連の処理が終了する。
【0300】ステップ7015で上記のkst2処理を
実行した後、ステップ7016〜7029の処理を実行
することにより、基準画素とその周辺画素で構成される
画像領域における領域境界が図91(d)〜(f)に示
す形状であった場合、それぞれの形状に応じた値が引数
kink3にセットされることになる。なお、このki
nk3処理において、画像領域における領域境界の形状
が図91(a)〜(f)に示す形状ではない場合、引数
kink3には0がセットされる。
【0301】上記したkink3処理が終了すると、次
に図52のステップ5216の処理に移行し、ここで配
列変数kink state〔2〕.retvalに引
数kink3の値がセットされる。これにより、ステッ
プ5215の処理結果が保持される。
【0302】ステップ5217では、変数sの値を引数
としてkink4処理が実行される。図72、及び図7
3は、このkink4処理を示す動作フローチャートで
ある。このkink4処理内では、引数として受け取っ
たsの値は引数pとして扱われる。
【0303】まず、ステップ7001では、引数pの値
を引数としたkst3処理が実行される。このkst3
処理の実行により、上述したように、引数kst3には
その実行結果を示す値がセットされる。
【0304】kst3処理が終了すると、次にステップ
7202で引数kst3の値が1か否かが判定される。
引数kst3の値が1と判定(図93(e)参照)され
ると、続くステップ7203において、ポインタ値(p
+1)が指示する画素データ値とポインタ値(p−25
5)が指示する画素データ値が等しく、且つポインタ値
(p−256)が指示する画素データ値とポインタ値
(p−255)が指示する画素データ値が等しくないか
否かが判定される。ポインタ値(p+1)が指示する画
素データ値とポインタ値(p−255)が指示する画素
データ値が等しくないと判定、或いはポインタ値(p−
256)が指示する画素データ値とポインタ値(p−2
55)が指示する画素データ値が等しいと判定される
と、ステップ7204で変数aに0がセットされる。反
対にポインタ値(p+1)が指示する画素データ値とポ
インタ値(p−255)が指示する画素データ値が等し
いと判定され、且つポインタ値(p−256)が指示す
る画素データ値とポインタ値(p−255)が指示する
画素データ値が等しくないと判定されると、ステップ7
205で変数aに1がセットされる。ここで、この変数
aは、このkink4処理内だけで用いられるローカル
変数である。
【0305】ステップ7204、或いは7205の処理
が終了すると、次にステップ7206において、ポイン
タ値(p+256)が指示する画素データ値とポインタ
値(p+512)が指示する画素データ値が等しく、且
つポインタ値(p+512)が指示する画素データ値と
ポインタ値(p+511)が指示する画素データ値が等
しくないか否かが判定される。ポインタ値(p+25
6)が指示する画素データ値とポインタ値(p+51
2)が指示する画素データ値が等しくないと判定、或い
はポインタ値(p+512)が指示する画素データ値と
ポインタ値(p+511)が指示する画素データ値が等
しいと判定されると、ステップ7207で変数bに0が
セットされる。反対にポインタ値(p+256)が指示
する画素データ値とポインタ値(p+512)が指示す
る画素データ値が等しいと判定され、且つポインタ値
(p+512)が指示する画素データ値とポインタ値
(p+511)が指示する画素データ値が等しくないと
判定されると、ステップ7208で変数bに1がセット
される。ここで、この変数bは、このkink4処理内
だけで用いられるローカル変数である。
【0306】ステップ7207、或いは7208の処理
が終了すると、次にステップ7209で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ7210
でこのkink4処理の実行結果となる引数kink4
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ7
211の処理が実行される。
【0307】ステップ7211では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ7212で引数kink4に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ7213において、変数b
の値が1か否かが判定される。このステップ7213で
変数bの値が1と判定されると、ステップ7214で引
数kink4に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、次
にステップ7215の処理が実行される。また、ステッ
プ7202において、引数kst3の値が1ではないと
判定されると、次にステップ7215の処理が実行され
る。
【0308】このように、ステップ7201でkst3
処理を実行した後、ステップ7202〜7214の処理
を実行することにより、基準画素とその周辺画素で構成
される画像領域における領域境界が図92(a)〜
(c)に示す形状であった場合、それぞれの形状に応じ
た値が引数kink4にセットされる。
【0309】ステップ7215においては、p+256
の値を引数としたkst1処理が実行される。このks
t1処理が終了すると、次にステップ7216で引数k
st1の値が1か否かが判定される。引数kst1の値
が1ではないと判定されると、ここで一連の処理が終了
し、反対に、引数kst1の値が1と判定(図93
(a)参照)されると、続けてステップ7217の処理
が実行される。
【0310】ステップ7217では、ポインタ値(p+
255)が指示する画素データ値とポインタ値(p+5
11)が指示する画素データ値が等しく、且つポインタ
値(p+511)が指示する画素データ値とポインタ値
(p+512)が指示する画素データ値が等しくないか
否かが判定される。ポインタ値(p+255)が指示す
る画素データ値とポインタ値(p+511)が指示する
画素データ値が等しくないと判定、或いはポインタ値
(p+511)が指示する画素データ値とポインタ値
(p+512)が指示する画素データ値が等しいと判定
されると、ステップ7218で変数bに0がセットされ
る。反対にポインタ値(p+255)が指示する画素デ
ータ値とポインタ値(p+511)が指示する画素デー
タ値が等しいと判定され、且つポインタ値(p+51
1)が指示する画素データ値とポインタ値(p+51
2)が指示する画素データ値が等しくないと判定される
と、ステップ7219で変数bに1がセットされる。
【0311】ステップ7218、或いは7219の処理
が終了すると、次にステップ7220において、ポイン
タ値(p−256)が指示する画素データ値とポインタ
値(p)が指示する画素データ値が等しく、且つポイン
タ値(p−255)が指示する画素データ値とポインタ
値(p)が指示する画素データ値が等しくないか否かが
判定される。ポインタ値(p−256)が指示する画素
データ値とポインタ値(p)が指示する画素データ値が
等しくないと判定、或いはポインタ値(p−255)が
指示する画素データ値とポインタ値(p)が指示する画
素データ値が等しいと判定されると、ステップ7221
で変数aに0がセットされる。反対にポインタ値(p−
256)が指示する画素データ値とポインタ値(p)が
指示する画素データ値が等しいと判定され、且つポイン
タ値(p−255)が指示する画素データ値とポインタ
値(p)が指示する画素データ値が等しくないと判定さ
れると、ステップ7222で変数aに1がセットされ
る。
【0312】ステップ7221、或いは7222の処理
が終了すると、次にステップ7223で変数aとbを加
算した値(=a+b)が2か否かが判定される。この処
理で加算した値が2と判定されると、ステップ7224
でこのkink4処理の実行結果となる引数kink4
に1がセットされた後、一連の処理が終了し、反対に加
算した値が2ではないと判定されると、次にステップ7
225の処理が実行される。
【0313】ステップ7225では、変数aの値が1か
否かが判定される。変数aの値が1と判定されると、ス
テップ7226で引数kink4に2がセットされた
後、一連の処理が終了し、反対にこの値が1ではないと
判定されると、次にステップ7227において、変数b
の値が1か否かが判定される。このステップ7227で
変数bの値が1と判定されると、ステップ7228で引
数kink4に3がセットされた後、一連の処理が終了
し、反対に変数bの値が1ではないと判定されると、ス
テップ7229で引数kink4に0がセットされた
後、一連の処理が終了する。
【0314】ステップ7215で上記のkst1処理を
実行した後、ステップ7216〜7229の処理を実行
することにより、基準画素とその周辺画素で構成される
画像領域における領域境界が図92(d)〜(f)に示
す形状であった場合、それぞれの形状に応じた値が引数
kink4にセットされることになる。なお、このki
nk4処理において、画像領域における領域境界の形状
が図92(a)〜(f)に示す形状ではない場合、引数
kink4には0がセットされる。
【0315】上記したkink4処理が終了すると、次
に図52のステップ5218の処理に移行し、ここで配
列変数kink state〔3〕.retvalに引
数kink4の値がセットされる。これにより、ステッ
プ5217の処理結果が保存される。
【0316】ステップ5218に続くステップ5219
〜5250では、元画像において、水平方向、或いは垂
直方向に領域境界が1画素分の段差を有し、その段差を
境にして領域境界が同じ水平方向、或いは垂直方向に続
いている部分(以降、これをテラスと記す)の長さを検
出する処理が、ステップ5211〜5218の処理で検
出されたそれぞれの領域境界の形状に応じて行われる。
【0317】まず、ステップ5219では、図52のス
テップ5212で値がセットされた変数kink st
ate
〔0〕.retvalの値が0(図89参照)で
ないか否かが判定される。このとき、変数kink s
tate
〔0〕.retvalの値が0と判定される
と、ステップ5227の処理に移行し、反対にその値が
0ではないと判定されると、ステップ5220の処理に
移行する。
【0318】ステップ5220では、この処理に続いて
実行されるステップ5221のchase処理に引き渡
す各引数にその値がセットされる。具体的には、引数p
にはsの値がセットされ、引数qにはs−256の値が
セットされ、引数zoubunには−1がセットされ
る。これら引数に対する値のセットが終了すると、続け
て上記のchase処理が実行される。このchase
処理においては、上述した引数の他に、元画像データが
格納されている先頭アドレスを示す値motoが引数と
して渡される。
【0319】ここで、chase処理について説明す
る。このchase処理は、1画素の段差を境として同
じ水平方向、或いは垂直方向にテラスを形成している画
素数をカウントすることでその長さを検出する処理であ
る。図78及び図79は、chase処理の動作フロー
チャートである。
【0320】このchase処理では、ステップ780
1〜7806でこの処理内だけで用いられる各ローカル
変数に対するその値のセットが行われる。具体的には、
ステップ7801では引数pの値をポインタ値として、
それが指示する画素データ値が変数bufpにセットさ
れ、ステップ7802では引数qの値をポインタ値とし
て、それが指示する画素データ値が変数bufgにセッ
トされ、ステップ7803では引数pと引数zoubu
nを加算した値(=p+zoubun)をポインタ値と
して、それが指示する画素データ値が変数bufpsu
bにセットされ、ステップ7804では引数qと引数z
oubunを加算した値(=q+zoubun)をポイ
ンタ値として、それが指示する画素データ値が変数bu
fqsubにセットされ、ステップ7805ではこのc
hase処理の実行結果となる引数numに0がセット
され、ステップ7806では引数motoに11468
8を加算した値が変数aaにセットされる。この114
688は、1つの画素データが2バイトである画像デー
タを格納するために設けられている記憶容量の値であ
る。
【0321】ステップ7807では、変数bufqsu
bの値が変数bufqの値と等しくなく、且つ変数bu
fpsubの値が変数bufpの値と等しく、且つ変数
bufpsubの値が変数bufqsubの値と等しく
ないか否かが判定される。このステップ7807でYE
Sと判定されると、次にステップ7808の処理が実行
される。
【0322】ステップ7808では、ポインタ値(q)
が指示する画素データ値と変数bufpの値(ポインタ
値(p)が指示する画素データ値)が等しいか否か判定
される。これらの値が等しいと判定されると、ここで一
連の処理が終了し、反対にこれらの値が等しくないと判
定されると、ステップ7809で変数qに引数zoub
unの値が加算され、ステップ7810で引数pに引数
zoubunの値が加算され、ステップ7811で引数
numがインクリメントされる。即ち、引数zoubu
nの値により指定された方向に領域境界を形成する画素
が1つカウントアップされる。図53のステップ522
1ではこの引数zoubunの値は−1としてchas
e処理が行われるので、水平方向の左に向かってテラス
長(画素数)がカウントされることになる。
【0323】引数numのインクリメントが終了する
と、次にステップ7812で引数pの値が引数moto
の値よりも小さいか否かが判定され、ここで引数pの値
が引数motoの値以上と判定されると、続けてステッ
プ7813で引数pの値が変数aaの値よりも大きいか
否かが判定される。即ちステップ7812及び7813
で現在テラス長をカウントしている画素データが元画像
データであるか否かが判定される。ステップ7812で
引数pの値が引数motoの値よりも小さいと判定され
た場合、及びステップ7813で引数pの値が変数aa
の値よりも大きいと判定された場合、ここで一連の処理
を終了する。
【0324】ステップ7813で引数pの値が変数aa
の値以下と判定されると、次にステップ7814でポイ
ンタ値(p)が指示する画素データ値とポインタ値(p
+zoubun)が指示する画素データ値が等しくない
か否か判定される。引数zoubunにより指示された
方向のテラス長(画素)のカウントが終了すると、この
ステップ7814でこれらの値が異なると判定(YE
S)され、次にステップ7815の処理に移行し、反対
にこれらの値が等しいと判定されると、テラス長のカウ
ントが終了していないとして、ステップ7808の処理
に戻る。
【0325】ステップ7815では、引数numの値が
20よりも大きいか否かが判定される。引数numの値
が20以下と判定されると、次にステップ7816で引
数numの値が2か否かが判定される。引数numの値
が1と判定されると、ステップ7817でこの引数nu
mに0がセットされた後、一連の処理が終了し、反対に
引数numの値が2ではないと判定されると、このまま
一連の処理が終了される。また、ステップ7815で引
数numの値が20よりも大きいと判定されると、つぎ
にステップ7817の処理が実行される。このステップ
7815〜7817の処理により、後述する平滑化をこ
のテラスに対して行うべきか否かが判定され、平滑化を
行うべきではないと判定されると、引数numには0が
セットされることになる。
【0326】ステップ7807でNOと判定されると、
次に図79のステップ7818の処理に移行される。ス
テップ7818では、ポインタ値(q)が指示する画素
データ値と変数bufqの値(ポインタ値(q)が指示
する画素データ値)が等しいか否かが判定される。これ
らの値が等しいと判定されると、ここで一連の処理が終
了し、反対にこれらの値が等しくないと判定されると、
ステップ7819で変数qに引数zoubunの値が加
算され、ステップ7820で引数pに引数zoubun
の値が加算され、ステップ7821で引数numがイン
クリメントされる。
【0327】引数numのインクリメントが終了する
と、次にステップ7822で引数pの値が引数moto
の値よりも小さいか否かが判定され、ここで引数pの値
が引数motoの値以上と判定されると、続けてステッ
プ7823で引数pの値が変数aaの値よりも大きいか
否かが判定される。即ちステップ7812及び7813
で現在テラス長をカウントしている画素データが元画像
データであるか否かが判定される。ステップ7822で
引数pの値が引数motoの値よりも小さいと判定され
た場合、及びステップ7823で引数pの値が変数aa
の値よりも大きいと判定された場合、ここで一連の処理
を終了する。
【0328】ステップ7823で引数pの値が変数aa
の値以下と判定されると、次にステップ7824でポイ
ンタ値(p)が指示する画素データ値と変数bufqの
値(ポインタ値(q)が指示する画素データ値)が等し
いか否か判定される。これらの値が等しいと判定される
と、即ち引数zoubunにより指定された方向のテラ
ス長のカウントが終了したと判定されると、ステップ7
825の処理に移行し、反対にこれらの値が等しいと判
定されると、テラス長のカウントが終了していないとし
て、ステップ7818の処理に戻る。
【0329】ステップ7825では、引数numの値が
20よりも大きいか否かが判定される。引数numの値
が20以下と判定されると、次にステップ7826で引
数numの値が2か否かが判定される。引数numの値
が2と判定されると、ステップ7827でこの引数nu
mに0がセットされた後、一連の処理が終了し、反対に
引数numの値が2ではないと判定されると、このまま
一連の処理が終了される。また、ステップ7825で引
数numの値が20よりも大きいと判定されると、つぎ
にステップ7827の処理が実行される。このステップ
7825〜7827の処理により、後述する平滑化をこ
のテラスに対して行うべきか否かが判定され、平滑化を
行うべきではないと判定されると、引数numには0が
セットされる。
【0330】上記のchase処理が終了すると、図5
3のステップ5222の処理に移行する。このステップ
5222では、ステップ5221のchase処理の実
行結果が変数kink state
〔0〕.bufaに
セットされる。このセットが終了すると、ステップ52
23では、この処理に続いて実行されるステップ522
4のchase処理に引き渡す引数pにs+1の値がセ
ットされ、引数qにはs+257の値がセットされ、引
数zoubunには1がセットされる。
【0331】これら各引数に対する値のセットが終了す
ると、続けてステップ5224のchase処理が実行
される。このchase処理の実行結果として、引数z
oubunにセットされた値が指示する方向に形成され
たテラス長がカウントされ、ステップ5222では、ス
テップ5224のchase処理の実行結果が変数ki
nk state
〔0〕.bufbにセットされる。こ
のセットが終了すると、ステップ5226において、変
数kink state
〔0〕.bufsumに変数k
ink state
〔0〕.bufaと変数kink
state
〔0〕.bufbの値を加算した値、即ち段
差を境とした2つのテラスの長さの合計値がセットされ
る。このステップ5226の処理が終了すると、ステッ
プ5227の処理に移行する。
【0332】上記ステップ5219〜5226の処理
は、図52のステップ5211のkink1処理を実行
することで検出された領域境界の形状に応じて行われる
ものである。以降のステップ5227〜5250では、
ステップ5213のkink2処理、ステップ5215
のkink3処理、及びステップ5217のkink4
処理を実行することで検出された領域境界の形状に応じ
た処理が同様に実行される。
【0333】ステップ5227では、図52のステップ
5214で値がセットされた変数kink state
〔1〕.retvalの値が0(図90参照)ではない
か否かが判断される。このとき、変数kink sta
te〔1〕.retvalの値が0と判断されると、ス
テップ5235の処理に移行し、反対にその値が0では
ないと判断されると、ステップ5228の処理に移行す
る。
【0334】ステップ5228では、この処理に続いて
実行されるステップ5229のchase処理に引き渡
される各種引数に対し、引数pにはsの値がセットさ
れ、引数qにはs−256の値がセットされ、引数zo
ubunには1がセットされる。これら引数に対する値
のセットが終了すると、続けて上記のchase処理が
実行される。このときの変数zoubunnの値は1な
ので、このchase処理により、水平方向の右側に向
かって形成されたテラスの長さが検出される。
【0335】ステップ5229のchase処理が終了
すると、ステップ5253において、このchase処
理の実行結果が変数kink state〔1〕.bu
faにセットされる。このセットが終了すると、ステッ
プ5230では、この処理に続いて実行されるステップ
5231のchase処理に引き渡す引数pにs−1の
値がセットされ、引数qにはs+255の値がセットさ
れ、引数zoubunには−1がセットされる。
【0336】これら各引数に対する値のセットが終了す
ると、続けてステップ5232のchase処理が実行
される。このchase処理の実行時における変数zo
ubunの値は−1なので、その実行結果として水平方
向の左側に向かって形成されたテラスの長さがカウント
される。
【0337】ステップ5233では、ステップ5232
のchase処理の実行結果が変数kink stat
e〔1〕.bufbにセットされる。このセットが終了
すると、ステップ5234において、変数kink s
tate〔1〕.bufsumに変数kink sta
te〔1〕.bufaと変数kink state
〔1〕.bufbの値を加算した値、即ち2つのテラス
の長さの合計値がセットされる。このステップ5234
の処理が終了すると、ステップ5235の処理に移行す
る。
【0338】ステップ5235では、図52のステップ
5216で値がセットされた変数kink state
〔2〕.retvalの値が0(図91参照)ではない
か否かが判断される。このとき、変数kink sta
te〔2〕.retvalの値が0と判断されると、ス
テップ5243の処理に移行し、反対にその値が0では
ないと判断されると、ステップ5236の処理に移行す
る。
【0339】ステップ5236では、この処理に続いて
実行されるステップ5237のchase処理に引き渡
される各種引数に対し、引数pにはsの値がセットさ
れ、引数qにはs−1の値がセットされ、引数zoub
unには−256がセットされる。これら引数に対する
値のセットが終了すると、続けて上記のchase処理
が実行される。このときの変数zoubunの値は−2
56なので、このchase処理により、垂直方向の上
側に向かって形成されたテラスの長さが検出される。
【0340】ステップ5237のchase処理が終了
すると、ステップ5238において、このchase処
理の実行結果が変数kink state〔2〕.bu
faにセットされる。このセットが終了すると、ステッ
プ5239では、この処理に続いて実行されるステップ
5240のchase処理に引き渡す引数pにs+25
6の値がセットされ、引数qにはs+257の値がセッ
トされ、引数zoubunには256がセットされる。
【0341】これら各引数に対する値のセットが終了す
ると、続けてステップ5240のchase処理が実行
される。このchase処理の実行時における変数zo
ubunの値は256なので、その実行結果として垂直
方向の下側に向かって形成されたテラスの長さがカウン
トされる。
【0342】ステップ5241では、ステップ5240
のchase処理の実行結果が変数kink stat
e〔2〕.bufbにセットされる。このセットが終了
すると、ステップ5242において、変数kink s
tate〔2〕.bufsumに変数kink sta
te〔2〕.bufaと変数kink state
〔2〕.bufbの値を加算した値、即ち2つのテラス
の長さの合計値がセットされる。このステップ5242
の処理が終了すると、ステップ5243の処理に移行す
る。
【0343】ステップ5243では、図52のステップ
5218で値がセットされた変数kink state
〔3〕.retvalの値が0(図92参照)ではない
か否かが判断される。このとき、変数kink sta
te〔3〕.retvalの値が0と判断されると、ス
テップ5252の処理に移行し、反対にその値が0では
ないと判断されると、ステップ5244の処理に移行す
る。
【0344】ステップ5244では、この処理に続いて
実行されるステップ5245のchase処理に引き渡
される各種引数に対し、引数pにはsの値がセットさ
れ、引数qにはs+1の値がセットされ、引数zoub
unには−256がセットされる。これら引数に対する
値のセットが終了すると、続けて上記のchase処理
が実行される。このときの変数zoubunの値は−2
56なので、このchase処理により、垂直方向の上
側に向かって形成されたテラスの長さがカウントされ
る。
【0345】ステップ5245のchase処理が終了
すると、ステップ5246において、このchase処
理の実行結果が変数kink state〔3〕.bu
faにセットされる。このセットが終了すると、ステッ
プ5247では、この処理に続いて実行されるステップ
5248のchase処理に引き渡す引数pにs+25
6の値がセットされ、引数qにはs+255の値がセッ
トされ、引数zoubunには256がセットされる。
【0346】これら各引数に対する値のセットが終了す
ると、続けてステップ5248のchase処理が実行
される。このchase処理の実行時における変数zo
ubunの値は256なので、その実行結果として垂直
方向の下側に向かって形成されたテラスの長さがカウン
トされる。
【0347】ステップ5249では、ステップ5248
のchase処理の実行結果が変数kink stat
e〔3〕.bufbにセットされる。このセットが終了
すると、ステップ5250において、変数kink s
tate〔3〕.bufsumに変数kink sta
te〔3〕.bufaと変数kink state
〔3〕.bufbの値を加算した値、即ち2つのテラス
の長さの合計値がセットされる。このステップ5250
の処理が終了すると、ステップ5251の処理に移行す
る。
【0348】ステップ5251〜5301においては、
基準画素とその周辺画素とで形成された領域境界に応じ
た平滑化の処理内容が決定される。まず、ステップ52
51においては、変数kink state
〔0〕.r
etvalの値が0ではないか否か判定される。この変
数の値が0ではないと判定されると、ステップ5252
で平滑化の処理内容を指示するための変数である変数s
tatusに1がセットされ、反対にこの変数の値が0
と判定されると、ステップ5253で変数status
に0がセットされる。
【0349】ステップ5252或いは5253の処理が
終了すると、次にステップ5254で変数cに0がセッ
トされる。この変数cは、後述するように、最も長いテ
ラスが検出されたそのテラスの形状を判定するために用
いられる。
【0350】ステップ5255では、変数kink s
tate〔c〕.bufsumの値が変数kink s
tate〔c+1〕.bufsumの値よりも小さいか
否か判定される。変数kink state〔c〕.b
ufsumの値が変数kink state〔c+
1〕.bufsumの値よりも小さいと判定されると、
変数statusに変数cに2を加算した値がセットさ
れ、ステップ5257で変数cがインクリメントされ
る。
【0351】このインクリメントの終了後、ステップ5
258で変数cの値が3よりも小さいか否か判定され
る。変数cの値が3よりも小さいと判定されると、ステ
ップ5255の処理に戻って、以降の処理が同様に実行
される。ステップ5255において、変数kink s
tate〔c〕.bufsumの値が変数kink s
tate〔c+1〕.bufsumの値以上と判定され
ると、ステップ5256の処理は実行されず、次にステ
ップ5257の処理が実行される。
【0352】変数kink state〔c〕.buf
sumには、前述したステップ5226、5234、5
242、及び5250の処理において、chase処理
によりカウントされた上下の段、或いは左右の段のテラ
ス長の総計がセットされている。このため、上記ステッ
プ5251〜5258の処理が実行されることで、最も
長いテラス長を形成している領域境界の形状を示す値が
変数statusにセットされることになる。
【0353】ステップ5258で変数cの値が3以上と
判定されると、次にステップ5259において、変数s
tatusの値が0ではないか否か判定される。変数s
tatusの値が0と判定されると、ステップ5270
の処理に移行し、反対に変数statusの値が0では
ないと判定されると、即ち領域境界がテラスを形成して
いると判定されると、ステップ5260の処理に移行す
る。
【0354】ステップ5260では、変数buf1に変
数kink state〔status−1〕.buf
aの値、即ち総計(合計値)が最も長いテラス長と判定
された領域境界の一方のテラス長を示す値がセットさ
れ、このステップ5260に続くステップ5261にお
いて、他方のテラス長を示す値がセットされている変数
kink state〔status−1〕.bufb
の値が変数buf2にセットされる。この変数buf2
に対するテラス長のセットが終了すると、次にステップ
5262において、平滑化の処理内容を指示するための
他の変数である変数nuristatusに変数kin
k state〔status−1〕.retvalの
値がセットされる。
【0355】ステップ5262の処理が終了すると、次
に変数statusの値が1か否かが判定される。変数
statusの値が1と判定されると、即ち図89に示
すようにテラスが形成されていると判定されると、ステ
ップ5264において、拡大画像データに対し、それの
平滑化のために修正される画素データを指定するための
変数である変数sqに1がセットされた後、ステップ5
288の処理に移行する。
【0356】ステップ5263で変数statusの値
が1ではないと判定されると、次にステップ5265に
おいて、変数statusの値が2か否か判定される。
変数statusの値が2と判定されると、ステップ5
266で変数sqに0をセットした後、ステップ528
8の処理に移行する。
【0357】ステップ5265で変数statusの値
が2ではないと判定されると、次にステップ5267に
おいて、変数statusの値が3か否か判定される。
変数statusの値が3と判定されると、ステップ5
268で変数sqに256をセットされた後、ステップ
5288の処理に移行し、反対に変数statusの値
が3ではないと判定されると、ステップ5269で変数
sqに257がセットされた後、ステップ5288の処
理に移行する。
【0358】上記ステップ5260〜5269の処理
は、テラスを有する領域境界の形状が検出された際に実
行されるものである。この一連の処理が実行されること
で、そのテラスの形状、及び平滑化の処理内容が決定さ
れる。
【0359】一方、ステップ5259において、変数s
tatusの値が0と判定、即ち検出した境界領域がテ
ラスを形成していないと判定されると、図58のステッ
プ5270の処理に移行する。
【0360】ステップ5270〜5287の処理は、基
準画素とその周辺画素で形成される領域境界がテラスを
形成していない場合に実行されるものである。この一連
の処理が実行された場合、後述するように、領域境界が
テラスを形成せずに画像上を傾斜している形状(以降、
この形状を単純傾斜と記す)であるか否かの検出が行わ
れ、その検出結果に応じた値が上述の変数statu
s、変数nuristatus、変数sqにセットされ
る。
【0361】まず、ステップ5270においては、この
処理に続いて実行されるステップ5271のslant
1処理に引き渡す引数pに変数sの値がセットされ、こ
の引数pに対する値のセットが終了後、上記のslan
t1処理が実行される。
【0362】ここで、slant1処理について説明す
る。このslant1処理は、水平方向(垂直方向)に
対して交差している形状の領域境界を検出するものであ
り、その検出結果を示す値は引数slant1にセット
される。図80及び図81は、このslant1処理の
動作フローチャートである。
【0363】slant1処理においては、まず、後述
するように、基準画素とその周辺画素とで形成された領
域境界の形状を検出するkst14処理が実行される
(ステップ8001)。このkst14処理の実行にお
いては、slant1処理から引数pが引き渡される。
図87は、kst14処理の動作フローチャートであ
る。
【0364】kst14処理においては、まず、引数p
の値をポインタ値とし、ポインタ値(p)が指示する画
素データ値とポインタ値(p+255)が指示する画素
データ値とが等しくないか否かが判定される(ステップ
8701)。これら2つの値が等しくないと判定される
と、ステップ8702でこのkst14処理の実行結果
がセットされる引数kst14に0がセットされた後、
一連の処理が終了し、反対にこれら2つの値が等しいと
判定されると、次にステップ8703の処理が実行され
る。
【0365】ステップ8703においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p−1)が指示する画素データ値が等しくないか否か
が判定される。これら2つの値が等しくないと判定され
ると、ステップ8702の処理に移行し、反対にこれら
2つの値が等しいと判定されると、次にステップ870
4の処理が実行される。
【0366】ステップ8704においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p+255)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8702の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
705の処理が実行される。
【0367】ステップ8705においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p−257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8702の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
706の処理が実行される。
【0368】ステップ8706においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p+257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8702の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、ステップ870
7で引数kst14に1がセットされた後、一連の処理
が終了する。
【0369】上記の一連の処理(kst14処理)が実
行されることで、複数の画素で構成された範囲の画像が
図95(d)に示す形状であると判定された場合、引数
kst14には1がセットされ、その他の形状であった
場合、引数kst14には0がセットされる。
【0370】図80に戻り、ステップ8002以降の処
理について説明する。ステップ8002では、上記した
kst14処理(ステップ8001)の実行結果である
引数kst14の値が1か否かが判定される。引数ks
t14の値が1ではないと判定されると、後述する図8
1のステップ8016の処理に移行し、反対に引数ks
t14の値が1と判定されると、次にステップ8003
の処理が実行される。
【0371】ステップ8003においては、ポインタ値
(p)が指示する画素データ値とポインタ値(p−25
6)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しくないと判定されると、次に
ステップ8004でポインタ値(p)が指示する画素デ
ータ値とポインタ値(p+1)が指示する画素データ値
が等しいか否かが判定される。ステップ8003でポイ
ンタ値(p)が指示する画素データ値とポインタ値(p
−256)が指示する画素データ値が等しいと判定、或
いはステップ8004でポインタ値(p)が指示する画
素データ値とポインタ値(p+1)が指示する画素デー
タ値が等しいと判定されると、ステップ8005でこの
slant1処理の実行結果を示す値がセットされる引
数slant1に0がセットされた後、一連の処理が終
了する。
【0372】ステップ8004でポインタ値(p)が指
示する画素データ値とポインタ値(p+1)が指示する
画素データ値が等しくないと判定されると、次にステッ
プ8006でポインタ値(p)が指示する画素データ値
とポインタ値(p−255)が指示する画素データ値と
が等しくないか否か判定される。これら2つの値が等し
くないと判定されると、ステップ8012の処理に移行
し、反対にこれら2つの値が等しいと判定されると、次
にステップ8007でポインタ値(p−257)が指示
する画素データ値とポインタ値(p−511)が指示す
る画素データ値が等しくないか否かが判定される。これ
ら2つの値が等しいと判定されると、ステップ8008
で引数slant1に0がセットされた後、一連の処理
が終了し、反対にこれら2つの値が等しくないと判定さ
れると、ステップ8009の処理に移行する。
【0373】ステップ8009では、ポインタ値(p+
1)が指示する画素データ値とポインタ値(p−25
4)が指示する画素データ値が等しくないか否かが判定
される。これら2つの値が等しくないと判定されると、
ステップ8010で引数slant1に1がセットさ
れ、反対にこれら2つの値が等しいと判定されると、ス
テップ8011で引数slant1に0がセットされ
る。ステップ8010、或いは8011の処理が終了し
た後、一連の処理が終了する。
【0374】ステップ8006でYESと判定される
と、次にステップ8012においてポインタ値(p−2
56)が指示する画素データ値とポインタ値(p−51
1)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しいと判定されると、ステップ
8015で引数slant1に2がセットされた後、一
連の処理が終了し、反対にこれら2つの値が等しくない
と判定されると、次にステップ8013の処理に移行す
る。
【0375】ステップ8013では、ポインタ値(p+
1)が指示する画素データ値とポインタ値(p−25
4)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しいと判定されると、上記ステ
ップ8015の処理に移行し、反対にこれら2つの値が
等しくないと判定されると、ステップ8014で引数s
lant1に1がセットされた後、一連の処理が終了す
る。
【0376】図94(a)は、slant1処理による
領域境界の検出方法を示す説明図である。ステップ80
02で引数kst14の値が1と判定(図95(d)参
照)された後、上述の処理が実行されると、同図(a−
1)において(p−256)で示す画素と(p+1)で
示す画素とで左上がりの傾斜の領域境界を形成している
か否かが判定され、その領域境界の形状に応じた値が引
数slant1にセットされる。
【0377】一方、ステップ8002でNOと判定され
ると、図81のステップ8016でkst12処理が実
行される。このkst12処理の実行においては、sl
ant1処理からP−256の値が引数として渡され
る。図85は、kst12処理の動作フローチャートで
ある。
【0378】kst12処理において、slant1処
理から渡された引数の値(=p−256)は引数pとし
て扱われ、まず、引数pの値をポインタ値とし、ポイン
タ値(p)が指示する画素データ値とポインタ値(p+
1)が指示する画素データ値とが等しくないか否かが判
定される(ステップ8501)。これら2つの値が等し
くないと判定されると、ステップ8502でこのkst
12処理の実行結果がセットされる引数kst12に0
がセットされた後、一連の処理が終了し、反対にこれら
2つの値が等しいと判定されると、次にステップ850
3の処理が実行される。
【0379】ステップ8503においては、ポインタ値
(p+1)が指示する画素データ値とポインタ値(p−
256)が指示する画素データ値が等しくないか否かが
判定される。これら2つの値が等しくないと判定される
と、ステップ8502の処理に移行し、反対にこれら2
つの値が等しいと判定されると、次にステップ8504
の処理が実行される。
【0380】ステップ8504においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p−255)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8502の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
505の処理が実行される。
【0381】ステップ8505においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p+257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8502の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
506の処理が実行される。
【0382】ステップ8506においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p−257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8502の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、ステップ850
7で引数kst12に1がセットされた後、一連の処理
が終了する。
【0383】上記の一連の処理(kst12処理)が実
行されることで、複数の画素で構成された範囲の画像が
図95(b)に示す形状であると判定された場合、引数
kst12には1がセットされ、その他の形状であった
場合、引数kst12には0がセットされる。
【0384】図81に戻り、ステップ8017以降の処
理について説明する。ステップ8017では、上記した
kst12処理(ステップ8016)の実行結果である
引数kst12の値が1か否かが判定される。引数ks
t12の値が1ではないと判定されると、ステップ80
18で引数slant1に0がセットされた後、一連の
処理が終了し、反対に引数kst12の値が1と判定さ
れると、次にステップ8019の処理が実行される。
【0385】ステップ8019においては、ポインタ値
(p)が指示する画素データ値とポインタ値(p−25
6)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しくないと判定されると、次に
ステップ8020でポインタ値(p−257)が指示す
る画素データ値とポインタ値(p−256)が指示する
画素データ値が等しいか否かが判定される。ステップ8
019でポインタ値(p)が指示する画素データ値とポ
インタ値(p−256)が指示する画素データ値が等し
いと判定、或いはステップ8020でポインタ値(p−
257)が指示する画素データ値とポインタ値(p−2
56)が指示する画素データ値が等しいと判定される
と、上述したステップ8018の処理に移行する。
【0386】ステップ8020でポインタ値(p−25
7)が指示する画素データ値とポインタ値(p−25
6)が指示する画素データ値が等しくないと判定される
と、次にステップ8021でポインタ値(p−1)が指
示する画素データ値とポインタ値(p−256)が指示
する画素データ値とが等しくないか否か判定される。こ
れら2つの値が等しくないと判定されると、ステップ8
027の処理に移行し、反対にこれら2つの値が等しい
と判定されると、次にステップ8022でポインタ値
(p)が指示する画素データ値とポインタ値(p+25
5)が指示する画素データ値が等しくないか否かが判定
される。これら2つの値が等しいと判定されると、ステ
ップ8023で引数slant1に0がセットされた
後、一連の処理が終了し、反対にこれら2つの値が等し
くないと判定されると、ステップ8024の処理に移行
する。
【0387】ステップ8024では、ポインタ値(p−
2)が指示する画素データ値とポインタ値(p−25
7)が指示する画素データ値が等しくないか否かが判定
される。これら2つの値が等しくないと判定されると、
ステップ8025で引数slant1に3がセットさ
れ、反対にこれら2つの値が等しいと判定されると、ス
テップ8026で引数slant1に0がセットされ
る。ステップ8025、或いは8026の処理が終了し
た後、一連の処理が終了する。
【0388】ステップ8021でYESと判定される
と、次にステップ8027においてポインタ値(p)が
指示する画素データ値とポインタ値(p+255)が指
示する画素データ値が等しいか否かが判定される。これ
ら2つの値が等しいと判定されると、ステップ8030
で引数slant1に2がセットされた後、一連の処理
が終了し、反対にこれら2つの値が等しくないと判定さ
れると、次にステップ8028の処理に移行する。
【0389】ステップ8028では、ポインタ値(p−
2)が指示する画素データ値とポインタ値(p−25
7)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しいと判定されると、上述のス
テップ8030の処理に移行し、反対にこれら2つの値
が等しくないと判定されると、ステップ8029で引数
slant1に3がセットされた後、一連の処理が終了
する。
【0390】上記したステップ8016〜8030の処
理により、図94(a−2)において(p−257)で
示す画素と(p)で示す画素とで左上がりの傾斜の領域
境界を形成しているか否かが判定され、その領域境界の
形状に応じた値が引数slant1にセットされる。
【0391】上述したslant1処理が終了すると、
図58のステップ5272の処理に移行する。ステップ
5272では、ステップ5271で実行されたslan
t1処理の実行結果を示す引数slant1の値が変数
nuristatusにセットされ、この処理に続くス
テップ5273〜5278において、この変数nuri
statusの値に応じて変数status、変数sq
に値がセットされることになる。
【0392】まず、ステップ5273では、変数nur
istatusの値が1か否かが判定される。この処理
で変数nuristatusの値が1と判定されると、
ステップ5274で変数statusに5、変数sqに
2がセットされた後、図59のステップ5288の処理
に移行する。
【0393】ステップ5273で変数nuristat
usの値が1ではないと判定されると、次にステップ5
275で変数nuristatusの値が2か否かが判
定される。変数nuristatusの値が2と判定さ
れると、ステップ5276で変数statusに15が
セットされた後、図59のステップ5258の処理に移
行する。
【0394】ステップ5275で変数nuristat
usの値が2ではないと判定されると、次にステップ5
277で変数nuristatusの値が3か否かが判
定される。変数nuristatusの値が3と判定さ
れると、ステップ5278で変数statusに5がセ
ットされた後、図59のステップ5288の処理に移行
する。
【0395】ステップ5277で変数nuristat
usの値が3ではないと判定されると、ステップ527
9において、この処理に続いて実行されるステップ52
80のslant2処理に引き渡す引数pに変数sの値
がセットされ、この引数pに対する値のセットが終了
後、上記のslant2処理が実行される。
【0396】ここで、slant2処理について説明す
る。このslant2処理は、上述のslant1処理
が画面の左上がりの傾斜の領域境界を検出するのに対
し、画面の右上がりの傾斜の領域境界を検出するもので
あり、その検出結果を示す値は引数slant2にセッ
トされる。図82及び図83は、このslant2処理
の動作フローチャートである。
【0397】slant2処理においては、まず、後述
するように、基準画素とその周辺画素とで構成される画
像領域における領域境界の形状を検出するkst13処
理が実行される(ステップ8201)。このkst13
処理の実行においては、slant2処理から引数pの
値が引き渡される。図87は、kst14処理の動作フ
ローチャートである。
【0398】kst13処理においては、まず、引数p
の値をポインタ値とし、ポインタ値(p)が指示する画
素データ値とポインタ値(p+257)が指示する画素
データ値とが等しくないか否かが判定される(ステップ
8601)。これら2つの値が等しくないと判定される
と、ステップ8602でこのkst13処理の実行結果
がセットされる引数kst13に0がセットされた後、
一連の処理が終了し、反対にこれら2つの値が等しいと
判定されると、次にステップ8603の処理が実行され
る。
【0399】ステップ8603においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p+1)が指示する画素データ値が等しくないか否か
が判定される。これら2つの値が等しくないと判定され
ると、上述のステップ8602の処理に移行し、反対に
これら2つの値が等しいと判定されると、次にステップ
8604の処理が実行される。
【0400】ステップ8604においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p+257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8602の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
605の処理が実行される。
【0401】ステップ8605においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p+255)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8602の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
606の処理が実行される。
【0402】ステップ8606においては、ポインタ値
(p+256)が指示する画素データ値とポインタ値
(p−257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8602の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、ステップ860
7で引数kst13に1がセットされた後、一連の処理
が終了する。
【0403】上記の一連の処理(kst13処理)が実
行されることで、複数の画素で構成された範囲の画像が
図95(c)に示す形状であると判定、即ち領域境界の
形状が右上がりの傾斜であると判定された場合、引数k
st13には1がセットされ、その他の形状であった場
合、引数kst13には0がセットされる。
【0404】図82に戻り、ステップ8202以降の処
理について説明する。ステップ8202では、上記した
kst13処理(ステップ8201)の実行結果である
引数kst13の値が1か否かが判定される。引数ks
t13の値が1ではないと判定されると、後述する図8
3のステップ8216の処理に移行し、反対に引数ks
t13の値が1と判定されると、次にステップ8203
の処理が実行される。
【0405】ステップ8203においては、ポインタ値
(p)が指示する画素データ値とポインタ値(p−25
6)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しくないと判定されると、次に
ステップ8204でポインタ値(p)が指示する画素デ
ータ値とポインタ値(p−1)が指示する画素データ値
が等しいか否かが判定される。ステップ8203でポイ
ンタ値(p)が指示する画素データ値とポインタ値(p
−256)が指示する画素データ値が等しいと判定、或
いはステップ8204でポインタ値(p)が指示する画
素データ値とポインタ値(p−1)が指示する画素デー
タ値が等しいと判定されると、ステップ8205で引数
slant2に0がセットされた後、一連の処理が終了
する。
【0406】ステップ8204でポインタ値(p)が指
示する画素データ値とポインタ値(p−1)が指示する
画素データ値が等しくないと判定されると、次にステッ
プ8206でポインタ値(p)が指示する画素データ値
とポインタ値(p−257)が指示する画素データ値と
が等しくないか否か判定される。これら2つの値が等し
くないと判定されると、ステップ8212の処理に移行
し、反対にこれら2つの値が等しいと判定されると、次
にステップ8207でポインタ値(p−1)が指示する
画素データ値とポインタ値(p−258)が指示する画
素データ値が等しくないか否かが判定される。これら2
つの値が等しいと判定されると、ステップ8208で引
数slant2に0がセットされた後、一連の処理が終
了し、反対にこれら2つの値が等しくないと判定される
と、ステップ8209の処理に移行する。
【0407】ステップ8209では、ポインタ値(p−
256)が指示する画素データ値とポインタ値(p−5
13)が指示する画素データ値が等しくないか否かが判
定される。これら2つの値が等しいと判定されると、ス
テップ8210で引数slant2に0がセットされ、
反対にこれら2つの値が等しくないと判定されると、ス
テップ8211で引数slant2に1がセットされ
る。ステップ8210、或いは8211の処理が終了し
た後、一連の処理が終了する。
【0408】ステップ8206でYESと判定される
と、次にステップ8212においてポインタ値(p−
1)が指示する画素データ値とポインタ値(p−25
8)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しいと判定されると、ステップ
8215で引数slant2に2がセットされた後、一
連の処理が終了し、反対にこれら2つの値が等しくない
と判定されると、次にステップ8213の処理に移行す
る。
【0409】ステップ8213では、ポインタ値(p−
256)が指示する画素データ値とポインタ値(p−5
13)が指示する画素データ値が等しいか否かが判定さ
れる。これら2つの値が等しいと判定されると、上記ス
テップ8215の処理に移行し、反対にこれら2つの値
が等しくないと判定されると、ステップ8214で引数
slant2に1がセットされた後、一連の処理が終了
する。
【0410】図94(b)は、slant2処理による
領域境界の検出方法を示す説明図である。ステップ82
02で引数kst13の値が1と判定(図95(c)参
照)された後、上述の処理が実行されると、同図(b−
1)において(p−256)で示す画素と(p−1)で
示す画素が右上がりの傾斜の領域境界を形成しているか
否かが判定され、その領域境界の形状に応じた値が引数
slant2にセットされる。
【0411】一方、ステップ8202でNOと判定され
ると、図83のステップ8216でkst11処理が実
行される。このkst11処理の実行においては、sl
ant2処理からP−256の値が引数として渡され
る。図84は、kst11処理の動作フローチャートで
ある。
【0412】kst11処理において、slant2処
理から渡された引数の値(=p−256)は引数pとし
て扱われ、まず、引数pの値をポインタ値とし、ポイン
タ値(p)が指示する画素データ値とポインタ値(p−
1)が指示する画素データ値とが等しくないか否かが判
定される(ステップ8401)。これら2つの値が等し
くないと判定されると、ステップ8402でこのkst
11処理の実行結果がセットされる引数kst12に0
がセットされた後、一連の処理が終了し、反対にこれら
2つの値が等しいと判定されると、次にステップ840
3の処理が実行される。
【0413】ステップ8403においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p−1)が指示する画素データ値が等しくないか否か
が判定される。これら2つの値が等しくないと判定され
ると、ステップ8402の処理に移行し、反対にこれら
2つの値が等しいと判定されると、次にステップ840
4の処理が実行される。
【0414】ステップ8404においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p−257)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8402の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
405の処理が実行される。
【0415】ステップ8405においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p−255)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8402の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、次にステップ8
406の処理が実行される。
【0416】ステップ8406においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p+255)が指示する画素データ値が等しくないか
否かが判定される。これら2つの値が等しくないと判定
されると、ステップ8402の処理に移行し、反対にこ
れら2つの値が等しいと判定されると、ステップ840
7で引数kst11に1がセットされた後、一連の処理
が終了する。
【0417】上記の一連の処理(kst11処理)が実
行されることで、複数の画素で構成された範囲の画像が
図95(a)に示す形状であると判定された場合、引数
kst11には1がセットされ、その他の形状であった
場合、引数kst11には0がセットされる。
【0418】図83に戻り、ステップ8217以降の処
理について説明する。ステップ8217では、上記した
kst11処理(ステップ8216)の実行結果である
引数kst11の値が1か否かが判定される。引数ks
t11の値が1ではないと判定されると、ステップ82
18で引数slant2に0がセットされた後、一連の
処理が終了し、反対に引数kst11の値が1と判定さ
れると、次にステップ8219の処理が実行される。
【0419】ステップ8219においては、ポインタ値
(p−256)が指示する画素データ値とポインタ値
(p)が指示する画素データ値が等しいか否かが判定さ
れる。これら2つの値が等しくないと判定されると、次
にステップ8220でポインタ値(p−256)が指示
する画素データ値とポインタ値(p−255)が指示す
る画素データ値が等しいか否かが判定される。ステップ
8219でポインタ値(p−256)が指示する画素デ
ータ値とポインタ値(p)が指示する画素データ値が等
しいと判定、或いはステップ8220でポインタ値(p
−256)が指示する画素データ値とポインタ値(p−
255)が指示する画素データ値が等しいと判定される
と、上述したステップ8218の処理に移行する。
【0420】ステップ8220でポインタ値(p−25
6)が指示する画素データ値とポインタ値(p−25
5)が指示する画素データ値が等しくないと判定される
と、次にステップ8221でポインタ値(p−256)
が指示する画素データ値とポインタ値(p+1)が指示
する画素データ値とが等しくないか否か判定される。こ
れら2つの値が等しくないと判定されると、ステップ8
227の処理に移行し、反対にこれら2つの値が等しい
と判定されると、次にステップ8222でポインタ値
(p)が指示する画素データ値とポインタ値(p+25
7)が指示する画素データ値が等しくないか否かが判定
される。これら2つの値が等しいと判定されると、ステ
ップ8223で引数slant2に0がセットされた
後、一連の処理が終了し、反対にこれら2つの値が等し
くないと判定されると、ステップ8224の処理に移行
する。
【0421】ステップ8224では、ポインタ値(p+
2)が指示する画素データ値とポインタ値(p−25
5)が指示する画素データ値が等しくないか否かが判定
される。これら2つの値が等しいと判定されると、ステ
ップ8225で引数slant2に0がセットされ、反
対にこれら2つの値が等しくないと判定されると、ステ
ップ8226で引数slant2に3がセットされる。
ステップ8225、或いは8226の処理が終了した
後、一連の処理が終了する。
【0422】ステップ8221でYESと判定される
と、次にステップ8227においてポインタ値(p)が
指示する画素データ値とポインタ値(p+257)が指
示する画素データ値が等しいか否かが判定される。これ
ら2つの値が等しいと判定されると、ステップ8230
で引数slant2に2がセットされた後、一連の処理
が終了し、反対にこれら2つの値が等しくないと判定さ
れると、次にステップ8228の処理に移行する。
【0423】ステップ8228では、ポインタ値(p+
2)が指示する画素データ値とポインタ値(p−25
5)が指示する画素データ値が等しいか否かが判定され
る。これら2つの値が等しいと判定されると、上述のス
テップ8230の処理に移行し、反対にこれら2つの値
が等しくないと判定されると、ステップ8229で引数
slant2に3がセットされた後、一連の処理が終了
する。
【0424】上記したステップ8216〜8230の処
理により、図94(b−2)において(p−255)で
示す画素と(p)で示す画素が右上がりの傾斜の領域境
界を形成しているか否かが判定され、その領域境界の形
状に応じた値が引数slant1にセットされる。
【0425】上述したslant2処理が終了すると、
図58のステップ5280の処理に移行する。ステップ
5280では、ステップ5279で実行されたslan
t2処理の実行結果を示す引数slant2の値が変数
nuristatusにセットされ、この処理に続くス
テップ5282〜5287において、この変数nuri
statusの値に応じて変数status、変数sq
に値がセットされることになる。
【0426】まず、ステップ5282では、変数nur
istatusの値が1か否かが判定される。この処理
で変数nuristatusの値が1と判定されると、
ステップ5283で変数statusに6、変数sqに
−2がセットされた後、図59のステップ5288の処
理に移行する。
【0427】ステップ5282で変数nuristat
usの値が1ではないと判定されると、次にステップ5
284で変数nuristatusの値が2か否かが判
定される。変数nuristatusの値が2と判定さ
れると、ステップ5285で変数statusに16が
セットされた後、図59のステップ5288の処理に移
行する。
【0428】ステップ5284で変数nuristat
usの値が2ではないと判定されると、次にステップ5
286で変数nuristatusの値が3か否かが判
定される。変数nuristatusの値が3と判定さ
れると、ステップ5287で変数statusに6がセ
ットされた後、図59のステップ5288の処理に移行
する。
【0429】図59のステップ5288〜5301にお
いては、拡大画像データにより表現される拡大画像の平
滑化のために修正する画素データを確定する処理が行わ
れる。
【0430】まず、ステップ5288においては、変数
statusの値が0でなく、且つその値が5よりも小
さいか否か、即ち領域境界がテラスを形成しているか否
かが判定される。変数statusの値が0と判定、或
いはその値が5以上と判定されると、ステップ5301
の処理に移行し、反対に変数statusの値が0では
ないと判定し、且つその値が5よりも小さいと判定、即
ち領域境界がテラスを形成していると判定されると、次
にステップ5289の処理に移行する。
【0431】ステップ5289では、そのテラスの長さ
を示す値がセットされている変数buf1及びbuf2
の値が各々2倍される。本実施例における拡大画像デー
タは、元画像データを面積比で4倍、即ち水平方向、及
び垂直方向の長さをそれぞれ2倍に拡大したものであ
る。このため、このステップ5289の処理により、拡
大画像データの実際のテラス長が算出され、それぞれの
変数にそのテラス長がセットされる。
【0432】ステップ5289の処理が終了すると、ス
テップ5290において、変数buf1から変数buf
2を減算した値(=buf1−buf2)が変数fla
gにセットされる。この変数flagは、後述するステ
ップ5293の処理が行われた場合には、2つのテラス
長の合計値を表す変数となる。
【0433】ステップ5291、及び5292では、ス
テップ5290で値がセットされた変数flagの値の
正負が判定され、変数flagの値が負であった場合は
その値が反転される。
【0434】ステップ5293では、変数flagの値
が8よりも小さいか、或いは変数buf1の値が4より
も小さいか、或いは変数buf2の値が4よりも小さい
かの3つの条件のいずれか1つの条件が満たされている
か否かが判定される。これらの3つの条件において、1
つでも満たしたものがない場合、その判定はNOとな
り、長いテラス長を有する領域境界であるとして、ステ
ップ5294の処理が行われる。
【0435】ステップ5294では、拡大画像に形成さ
れているテラスに対し、その長さを修正する分の長さが
各々算出される。具体的には、それぞれ修正される分の
長さ(以降、修正長と記す)をr1、r2とすると、数
1により算出される(図96参照)。
【0436】
【数1】 r1 = (3・buf1+buf2+8)/16 r2 = (3・buf2+buf1+8)/16 但し、r1、r2は整数 ここで、本実施例における整数化は、上記数1の右辺に
より算出された値の少数部分を切り捨てることで行って
いる。このステップ5294の処理が終了すると、ステ
ップ5301の処理に移行する。
【0437】ステップ5293において、上記した3つ
の条件を領域境界が1つでも満たしていた場合、その判
定はYESとなり、ステップ5295で変数buf1の
値が2か否か、即ち元画像におけるそれに対応するテラ
ス長が1であるか否かが判定される。変数buf1の値
が2と判定されると、この部分に対しては画素データの
修正は行わないとして修正長r1に0をセットし(ステ
ップ5286)、反対に変数buf1の値が2ではない
と判定されると、その部分はテラスを形成しているとし
て、ステップ5297でその修正長r1が算出される。
【0438】このステップ5297では、テラス長の長
さが比較的短いことから、修正長r1は数2により算出
される。
【0439】
【数2】r1 = (buf1+buf2+4)/8 ステップ5297においても修正長r1はその少数部分
が切り捨てられ、整数化される。ステップ5296、或
いは5297の処理が終了すると、ステップ5298の
処理に移行する。
【0440】ステップ5298では、変数buf2の値
が2か否か、即ち元画像におけるそれに対応するテラス
長が1であるか否かが判定される。変数buf2の値が
2と判定されると、この部分に対しては画素データの修
正は行わないとして修正長r2に0をセットし(ステッ
プ5299)、反対に変数buf2の値が2ではないと
判定されると、その部分はテラスを形成しているとし
て、ステップ5300でその修正長r2が算出される。
【0441】このステップ5300では、テラス長の長
さが比較的短いことから、修正長r2は数3により算出
される。
【0442】
【数3】r2 = (buf1+buf2+4)/8 ステップ5300においても修正長r2はその少数部分
が切り捨てられ、整数化される。ステップ5299、或
いは5300の処理が終了すると、ステップ5301の
処理に移行し、この処理で変数pに変数sqの値が加算
される。このステップ5301において、変数pに変数
sqを加算することにより、拡大画像データの修正され
る画素データが確定され、変数sqの値が加算された変
数pは、拡大画像データを修正するうえで基準となる画
素データを指示すために用いられる。
【0443】このステップ5301の処理に続くステッ
プ5302〜5342においては、上記のようにして確
定された変数statusの値毎に大別されて、拡大画
像データを修正する処理が行われる。変数status
の値が1〜4であった場合は、テラスを形成している領
域境界として、その値に応じてステップ5303〜53
29の処理が行われる。
【0444】まず、ステップ5302では、変数sta
tusの値が1か否かが判定される。変数status
の値が1ではないと判定されると、図61のステップ5
309の処理に移行し、反対にその値が1と判定される
と、次にステップ5303の処理が実行される。
【0445】ステップ5303では、変数nurist
atusの値が3でないか否か、即ち領域境界の形状が
図89(c)、或いは同図(f)でないか否かが判定さ
れる。変数nuristatusの値が3と判定される
と、後述するステップ5306の処理に移行し、反対に
その値が3ではないと判定されると、次にステップ53
04の処理が実行される。
【0446】ステップ5304では、この処理に続いて
実行されるステップ5305のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数qには変数pから256を引いた値
(=p−256)がセットされ、引数aには修正長r1
の値、引数zoubunには−1がセットされる。これ
ら各引数に対する値のセットが終了すると、変数p、及
び拡大画像データが格納されているエリアの先頭アドレ
スの値がセットされている引数exの値を上記したこれ
らの引数に加えてステップ5305のnurinuri
処理が実行される。
【0447】ここで、上記nurinuri処理につい
て、図88に示すその動作フローチャートを参照して説
明する。このnurinuri処理は、この処理に引き
渡される変数pの値により指示される画素データを基準
として、引数zoubunが示す方向の画素データの値
を引数aの値(修正長r1或いはr2の値)の数だけ引
数qの値により指示される画素データ値に置き換えるこ
とで、拡大画像においてテラスを形成している領域境界
の形状を視覚的に滑らかにする修正を行うものである。
スムージング処理から渡された引数p、q、a、ex
は、nurinuri処理内において、それぞれ引数
p、q、a、motoとして扱われる。
【0448】nurinuri処理では、まず、ステッ
プ8801で引数aの値が0か否かが判定される。引数
aの値が0と判定されると、ここで一連の処理が終了
し、反対にその値が0ではないと判定されると、引数z
oubunが示す方向にテラスを形成している画素デー
タのその値の修正を行うとして、次にステップ8802
の処理が実行される。
【0449】ステップ8802では、変数aaに引数m
otoに114688を加算した値(=moto+11
4688)がセットされる。これにより、拡大画像デー
タが格納されているエリアの最後のアドレスを示す値が
変数aaにセットされる。この変数aaに対する値のセ
ットが終了すると、後述するように、このnurinu
ri処理で修正した画素データの数をカウントするため
の変数iに0がセットされる(ステップ8803)。
【0450】このステップ8803の処理が終了する
と、ステップ8804において、ポインタ値(p)が指
示する画素データ値をポインタ値(q)が指示する画素
データ値に置き換える。この置き換えは、ポインタ値
(p)が指示する画素データが格納されているワークR
AM308のアドレスに、ポインタ値(q)が指示する
画素データが格納されているワークRAM308のアド
レスのデータを新たに書き込むことで実現される。以降
においてもこれは同様である。一方、このように修正す
る画素データを指示するために使用される引数pは、ス
テップ8804のデータの置き換えが終了すると、ステ
ップ8805でその値が更新される。具体的には、その
値に引数zoubunの値が加算(=p+zoubu
n)される。
【0451】引数pの値の更新が終了すると、次にステ
ップ8806において、更新された引数pの値が引数m
otoの値よりも小さいか否か、即ち引数pは拡大画像
データが格納されているエリア内のアドレスよりも小さ
い値を示していないか否かが判定される。引数pの値が
引数motoの値よりも小さいと判定されると、ここで
一連の処理が終了し、反対に引数pの値が引数moto
の値以上と判定されると、続いてステップ8807の処
理が実行される。
【0452】ステップ8807では、引数pの値が変数
aaの値よりも大きいか否か、即ち引数pは拡大画像デ
ータが格納されているエリア内のアドレスよりも大きい
値を示していないか否かが判定される。引数pの値が変
数aaの値よりも大きいと判定されると、ここで一連の
処理が終了し、反対に引数pの値が変数aaの値以下と
判定されると、続いてステップ8808の処理が実行さ
れる。
【0453】ステップ8808では、上記した変数iの
値がインクリメントされる。変数iの値のインクリメン
トが終了すると、続いてステップ8809でこの変数i
の値が引数a以上であるか否か、即ち引数aで指定され
た数の画素データの修正が終了したか否かが判定され
る。変数iの値が引数aの値よりも小さいと判定される
と、ステップ8804の処理に戻ってそれ以降の処理が
同様に実行され、反対に変数iの値が引数aの値以上と
判定されると、ここで一連の処理が終了する。
【0454】図96は、このnurinuri処理によ
る拡大画像の平滑化後の状態を示す説明図である。図
中、破線は平滑化前、実線は平滑化後の領域境界、r1
及びr2は修正長、buf1及びbuf2は元画像上に
おけるテラス長を各々示している。
【0455】本実施例では、基本拡大倍率を4倍(面積
比)としているので、元画像における領域境界の1ドッ
トの段差は拡大画像では2ドットとなる。このため、元
画像においては目立たなくとも拡大画像においてはその
段差が視覚的に目立つようになる。しかし、図96に示
すように、段差を境にして延びている2つのテラスに対
し、その段差からテラスが延びている方向に画素(ドッ
ト)の出力状態を修正することにより、その段差を視覚
的に平滑化することができる。このため、拡大されるこ
とで発生する画質の劣化が低減され、ユーザは良好な拡
大画像を得ることができる。
【0456】ところで、修正する画素数を示す修正長r
1及びr2は、本実施例では図59のステップ529
4、5297、或いは5300の処理で算出される。こ
れらの処理ステップの説明において上述したその値を求
める数式(数1〜3)は試行錯誤を重ねることで経験的
に求めたものである。このため、テラス長の長さに応じ
て前述した数式によりそのデータ値が修正される画素数
を算出することで、効果的に領域境界の形状を滑らかに
することができる。
【0457】図60に戻って、ステップ5305以降の
処理について説明する。上述したステップ5305の処
理が終了すると、次に変数nuristatusの値が
2ではないか否かが判定される。変数nuristat
usの値が2と判定されると、図15のステップ534
3の処理に移行し、反対にその値が2ではないと判定、
即ちその値が1(図89(a)、及び(d)参照)と判
定されると、続いてステップ5307の処理が実行され
る。
【0458】ステップ5307では、この処理に続いて
実行されるステップ5308のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数pには変数pに256を加算した値
(=p+256)がセットされ、引数qには変数pに5
13を加算した値(=p+513)がセットされ、引数
aには修正長r2の値、引数zoubunには1がセッ
トされる。
【0459】これら各引数に対する値のセットが終了す
ると、引数exの値を上記したこれらの引数に加えてス
テップ5308のnurinuri処理が実行される。
引数zoubunには1がセットされているので、この
nurinuri処理により、画像の右方向に向かって
テラスが修正され、この処理が終了すると、図65のス
テップ5343の処理に移行する。
【0460】ステップ5302で変数statusの値
が1ではないと判定されると、次に図61のステップ5
309において、変数statusの値が2か否かが判
定される。変数statusの値が2ではないと判定さ
れると、図62のステップ5316の処理に移行し、反
対にその値が2と判定されると、続いてステップ531
0の処理が実行される。
【0461】ステップ5310では、変数nurist
atusの値が3でないか否かが判定される。その値が
3と判定されると、後述するステップ5313の処理に
移行し、反対にその値が3ではないと判定されると、次
にステップ5311の処理が実行される。
【0462】ステップ5311では、この処理に続いて
実行されるステップ5312のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数qには変数pから256を減算した値
(=p−256)がセットされ、引数aには修正長r1
の値、引数zoubunには1がセットされる。
【0463】これら各引数に対する値のセットが終了す
ると、変数p、及び引数exの値を上記したこれらの引
数に加えてステップ5312のnurinuri処理が
実行される。引数zoubunには1がセットされてい
るので、このnurinuri処理により、拡大画像の
右方向に向かってテラスが修正され、この処理が終了す
ると、図65のステップ5343の処理に移行する。
【0464】ステップ5302で変数statusの値
が1ではないと判定されると、次に図61のステップ5
309において、変数statusの値が2か否かが判
定される。変数statusの値が2ではないと判定さ
れると、図62のステップ5316の処理に移行し、反
対にその値が2と判定されると、続いてステップ531
0の処理が実行される。
【0465】ステップ5310では、変数nurist
atusの値が3でないか否かが判定される。その値が
3と判定されると、後述するステップ5313の処理に
移行し、反対にその値が3ではないと判定されると、次
にステップ5311の処理が実行される。
【0466】ステップ5311では、この処理に続いて
実行されるステップ5312のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数qには変数pから256を減算した値
(=p−256)がセットされ、引数aには修正長r1
の値、引数zoubunには1がセットされる。
【0467】これら各引数に対する値のセットが終了す
ると、変数p、及び画像エリアBの先頭アドレスの値が
セットされた変数exを上記したこれらの引数に加えて
ステップ5312のnurinuri処理が実行され
る。引数zoubunには1がセットされているので、
これにより、拡大画像のテラスは右方向に向かって修正
される。
【0468】ステップ5312のnurinuri処理
が終了すると、次にステップ5313で変数nuris
tatusの値が2でないか否かが判定される。その変
数の値が2と判定されると、図65のステップ5343
の処理に移行し、反対にその変数の値が2ではないと判
定されると、続いてステップ5314の処理が実行され
る。
【0469】ステップ5314では、この処理に続いて
実行されるステップ5314のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数pには変数pに256を加算した値
(=p+256)がセットされ、引数qには変数pに5
11を加算した値(=p+511)、引数aには修正長
r2の値、引数zoubunには−1が各々セットされ
る。
【0470】これら各引数に対する値のセットが終了す
ると、引数exの値を上記したこれらの引数に加えてス
テップ5315のnurinuri処理が実行される。
引数zoubunには−1がセットされているので、こ
のnurinuri処理により、拡大画像の左方向に向
かってテラスが修正され、この処理が終了すると、図6
5のステップ5343の処理に移行する。
【0471】ステップ5309で変数statusの値
が2ではないと判定されると、次に図62のステップ5
316において、変数statusの値が3か否かが判
定される。変数statusの値が3ではないと判定さ
れると、図63のステップ5323の処理に移行し、反
対にその値が3と判定されると、続いてステップ531
7の処理が実行される。
【0472】ステップ5317では、変数nurist
atusの値が3でないか否かが判定される。その値が
3と判定されると、後述するステップ5320の処理に
移行し、反対にその値が3ではないと判定されると、次
にステップ5318の処理が実行される。
【0473】ステップ5318では、この処理に続いて
実行されるステップ5319のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数qには変数pから1を減算した値(=
p−1)がセットされ、引数aには修正長r1の値、引
数zoubunには−256がセットされる。
【0474】これら各引数に対する値のセットが終了す
ると、変数p、及び引数exの値を上記したこれらの引
数に加えてステップ5319のnurinuri処理が
実行される。引数zoubunには−256がセットさ
れているので、nurinuri処理により、拡大画像
の上方向に向かってテラスが修正される。
【0475】ステップ5319のnurinuri処理
が終了すると、次にステップ5320で変数nuris
tatusの値が2でないか否かが判定される。その変
数の値が2と判定されると、図65のステップ5343
の処理に移行し、反対にその変数の値が2ではないと判
定されると、続いてステップ5321の処理が実行され
る。
【0476】ステップ5321では、この処理に続いて
実行されるステップ5322のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数pには変数pに257を加算した値
(=p+257)がセットされ、引数qには変数pに2
58を加算した値(=p+258)、引数aには修正長
r2の値、引数zoubunには256が各々セットさ
れる。
【0477】これら各引数に対する値のセットが終了す
ると、引数exの値を上記したこれらの引数に加えてス
テップ5322のnurinuri処理が実行される。
引数zoubunには256がセットされているので、
このnurinuri処理により、拡大画像の下方向に
向かってテラスが修正され、この処理が終了すると、図
65のステップ5343の処理に移行する。
【0478】ステップ5316で変数statusの値
が3ではないと判定されると、次に図63のステップ5
323において、変数statusの値が4か否かが判
定される。変数statusの値が4ではないと判定さ
れると、図64のステップ5330の処理に移行し、反
対にその値が4と判定されると、続いてステップ532
4の処理が実行される。
【0479】ステップ5324では、変数nurist
atusの値が3でないか否かが判定される。その値が
3と判定されると、後述するステップ5327の処理に
移行し、反対にその値が3ではないと判定されると、次
にステップ5325の処理が実行される。
【0480】ステップ5325では、この処理に続いて
実行されるステップ5326のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数qには変数pに1を加算した値(=p
+1)がセットされ、引数aには修正長r1の値、引数
zoubunには−256がセットされる。
【0481】これら各引数に対する値のセットが終了す
ると、変数p、及び変数exを上記したこれらの引数に
加えてステップ5326のnurinuri処理が実行
される。引数zoubunには−256がセットされて
いるので、拡大画像は上方向に向かってテラスが修正さ
れる。
【0482】ステップ5326のnurinuri処理
が終了すると、次にステップ5327で変数nuris
tatusの値が2でないか否かが判定される。その変
数の値が2と判定されると、図65のステップ5343
の処理に移行し、反対にその変数の値が2ではないと判
定されると、続いてステップ5328の処理が実行され
る。
【0483】ステップ5328では、この処理に続いて
実行されるステップ5329のnurinuri処理に
対して引き渡す各引数に対する値のセットが行われる。
具体的には、引数pには変数pに255を加算した値
(=p+255)がセットされ、引数qには変数pに2
54を加算した値(=p+254)、引数aには修正長
r2の値、引数zoubunには256が各々セットさ
れる。
【0484】これら各引数に対する値のセットが終了す
ると、変数exの値を上記したこれらの引数に加えてス
テップ5329のnurinuri処理が実行される。
引数zoubunには256がセットされているので、
このnurinuri処理により拡大画像は下方向に向
かってテラスが修正される。この処理でテラスが形成さ
れた領域境界に対して修正を行う処理は終了し、図65
のステップ5343の処理に移行する。
【0485】図64のステップ5330〜図65の53
42の処理においては、その形状が単純傾斜している領
域境界に対する平滑化が行われる。この一連の処理は、
図58のステップ5270〜5287の処理により、変
数statusに値がセットされた場合に行われるもの
である。
【0486】この一連の処理においては、まず、ステッ
プ5330で変数statusの値が5か否かが判定さ
れる。その変数の値が5ではないと判定されると、ステ
ップ5334の処理に移行し、反対にその変数の値が5
と判定されると、続いてステップ5331において、ポ
インタ値(p−770)が指示する画素データが格納さ
れているアドレスの値は拡大画像データが格納されてい
るエリアの先頭アドレスの値、即ち引数llの値以上か
否か判定される。その画素データが格納されているアド
レスの値が先頭アドレスの値よりも小さいと判定される
と、図65のステップ5343の処理に移行し、反対に
その画素データが格納されているアドレスの値が先頭ア
ドレスの値以上と判定されると、次にステップ5332
の処理が実行される。
【0487】ステップ5332においては、ポインタ値
(p+513)が指示する画素データが格納されている
アドレスの値は変数ulに格納されている拡大画像デー
タが格納されているエリアの最後のアドレスを示す値よ
りも小さいか否かが判定される。その画素データが格納
されているアドレスの値が変数ulの値以上と判定され
ると、図65のステップ5343の処理に移行し、反対
にその画素データが格納されているアドレスの値が変数
ulの値以下と判定されると、ステップ5333におい
て、ポインタ値(p−1)が指示する画素データ値はポ
インタ値(p)が指示する画素データ値に修正されると
ともに、ポインタ値(p−256)が指示する画素デー
タ値はポインタ値(p)が指示する画素データ値に修正
され、この処理の終了後、図65のステップ5343の
処理に移行する。
【0488】図97は、図58のステップ5271のs
lant1処理により検出された領域境界に対する平滑
化後の状態を示す説明図である。図97において、図に
向かって左側が平滑化前の状態、向かって右側が平滑化
後の状態であり、“A”及び“B”は各々枠で示されて
いる1つ1つの画素の状態を表している。また、斜線が
入っている枠は、図59のステップ5301の処理にお
いて変数sqが加算される前の変数pの値に対応した画
素を示している。例えば同図(a)において斜線が入っ
ているこの変数pの値に対応した枠(画素)は、元画像
の状態が示されている図95(d)において“p”を有
する枠(画素)に対応している。これは、他においても
同様であり、また、図95(d)において“p”を有す
る枠(画素)は変数sの値により示されることから、変
数pは変数sで示される画素に対応する4つの画素のう
ち最初に表現される画素を示す値がセットされることが
わかる。。
【0489】本実施例では、図58のステップ5271
のslant1処理において、その引数slant1に
1或いは3がセットされた場合、変数statusに5
がセットされる。
【0490】引数slant1に1がセットされた場
合、変数sqには2がセットされるので、ステップ53
33の処理を行う時点の変数pは図97(b)で斜線の
入った枠(画素)の2つ右の枠(画素)を示す値となっ
ている。このため、1ラインの表示は256ドットであ
ることから、図97(b)に示すように、平滑化後は斜
線が入った枠(画素)の右に隣接している枠(画素)は
“A”で示す状態から“B”で示す状態に修正され、そ
の“B”で示す状態に修正された枠(画素)の右上の枠
も“B”で示す状態に修正されることで、その領域境界
が視覚的に平滑化されている。
【0491】一方、引数slant1に3がセットされ
た場合、変数sqには値がセットされず、その値は0な
ので、ステップ5333の処理を行う時点の変数pは図
97(c)で斜線の入った枠(画素)を示す値となって
いる。このため、図97(c)に示すように、平滑化後
は斜線が入った枠(画素)の左、及び上に隣接している
2つの画素が“A”で示す状態に修正され、その領域境
界が視覚的に平滑化されたことがわかる。
【0492】ステップ5330で変数statusの値
が5でないと判定されると、ステップ5334で変数s
tatusの値が6か否かが判定される。変数stat
usの値が6ではないと判定されると、ステップ533
7の処理に移行し、反対にその変数の値が6と判定され
ると、続いてステップ5335において、ポインタ値
(p−765)が指示する画素データが格納されている
アドレスの値は変数llの値以上で、且つポインタ値
(p+512)が指示する画素データが格納されている
アドレスの値は変数ulの値よりも小さいか否かが判定
される。
【0493】ポインタ値(p−765)が指示する画素
データが格納されているアドレスの値は変数llの値よ
りも小さいか、或いはポインタ値(p+512)が指示
する画素データが格納されているアドレスの値は変数u
lの値以上であった場合、ステップ5335の判定はN
Oとなって図65のステップ5343の処理に移行し、
反対にそうでない場合はその判定がYESとなってステ
ップ5336の処理に移行する。ステップ5336にお
いては、ポインタ値(p−255)が指示する画素デー
タ値はポインタ値(p)が指示する画素データ値に修正
されるとともに、ポインタ値(p+2)が指示する画素
データ値はポインタ値(p)が指示する画素データ値に
修正され、この処理の終了後、図65のステップ534
3の処理に移行する。
【0494】図98は、図58のステップ5280のs
lant2処理により検出された領域境界に対する平滑
化後の状態を示す説明図である。図98においても図9
7と同様に、図に向かって左側が平滑化前の状態、向か
って右側が平滑化後の状態であり、“A”及び“B”は
各々枠で示されている1つ1つの画素の状態を表してい
る。また、斜線が入っている枠は、図59のステップ5
301の処理において変数sqが加算される前の変数p
の値に対応した画素を示している。
【0495】本実施例では、図58のステップ5280
のslant2処理において、その引数slant2に
1或いは3がセットされた場合、変数statusに6
がセットされる。
【0496】引数slant2に1がセットされた場
合、変数sqには−2がセットされるので、ステップ5
336の処理を行う時点の変数pは図98(b)で斜線
の入った枠(画素)の2つ左の枠(画素)を示す値とな
っている。このため、図98(b)に示すように、平滑
化後は斜線が入った枠(画素)は“A”で示す状態から
“B”で示す状態に修正され、その“B”で示す状態に
修正された枠(画素)の左上の枠(画素)も“B”で示
す状態に修正されることで、その領域境界が視覚的に平
滑化されたことがわかる。
【0497】一方、引数slant2に3がセットされ
た場合、変数sqには値がセットされず、その値は0な
ので、ステップ5336の処理を行う時点の変数pは図
98(c)で斜線の入った枠(画素)を示す値となって
いる。このため、図98(c)に示すように、平滑化後
は斜線が入った枠(画素)の左上に隣接している枠(画
素)、及びその2つ右の枠(画素)が“B”で示す状態
に修正され、その領域境界が視覚的に平滑化されたこと
がわかる。
【0498】ステップ5334で変数statusの値
が6でないと判定されると、ステップ5337において
変数statusの値が15か否かが判定される。変数
statusの値が15ではないと判定されると、図6
5のステップ5340の処理に移行し、反対にその変数
の値が15と判定されると、続いてステップ5338に
おいて、ポインタ値(p−254)が指示する画素デー
タが格納されているアドレスの値は変数llの値以上
で、且つポインタ値(p+1)が指示する画素データが
格納されているアドレスの値は変数ulの値よりも小さ
いか否かが判定される。
【0499】ポインタ値(p−254)が指示する画素
データが格納されているアドレスの値は変数llの値よ
りも小さいか、或いはポインタ値(p+1)が指示する
画素データが格納されているアドレスの値は変数ulの
値以上であった場合、ステップ5338の判定はNOと
なって図65のステップ5343の処理に移行し、反対
にそうでない場合はその判定がYESとなってステップ
5339の処理に移行する。ステップ5339では、ポ
インタ値(p+1)が指示する画素データ値はポインタ
値(p+2)が指示する画素データ値に修正され、この
処理の終了後、図65のステップ5343の処理に移行
する。
【0500】本実施例では、図58のステップ5271
のslant1処理において、その引数slant1に
2がセットされた場合、変数statusに15がセッ
トされ、このときは変数sqには値がセットされないの
で、変数sqの値は0である。このため、ステップ53
39の処理の時点での変数pの値は、図97(a)で斜
線で示す枠(画素)を示す値となっており、その斜線で
示す枠(画素)の右に隣接する枠(画素)は“B”で示
す状態に修正されたことで、その領域境界が平滑化され
たことがわかる。
【0501】ステップ5337で変数statusの値
が15でないと判定されると、図65のステップ534
0において変数statusの値が16か否かが判定さ
れる。変数statusの値が16ではないと判定され
ると、ステップ5340の処理に移行し、反対にその変
数の値が16と判定されると、続いてステップ5341
において、ポインタ値(p−257)が指示する画素デ
ータが格納されているアドレスの値は変数llの値以上
で、且つポインタ値(p)が指示する画素データが格納
されているアドレスの値は変数ulの値よりも小さいか
否かが判定される。
【0502】ポインタ値(p−257)が指示する画素
データが格納されているアドレスの値は変数llの値よ
りも小さいか、或いはポインタ値(p)が指示する画素
データが格納されているアドレスの値は変数ulの値以
上であった場合、ステップ5341の判定はNOとなっ
てステップ5343の処理に移行し、反対にそうでない
場合はその判定がYESとなってステップ5342の処
理に移行する。ステップ5342では、ポインタ値
(p)が指示する画素データ値はポインタ値(p−1)
が指示する画素データ値に修正され、この処理の終了
後、ステップ5343の処理に移行する。
【0503】本実施例では、図58のステップ5280
のslant2処理において、その引数slant2に
2がセットされた場合、変数statusに16がセッ
トされ、このときは変数sqには値がセットされないの
で、変数sqの値は0である。このため、ステップ53
42の処理の時点での変数pの値は、図98(a)で斜
線により示す枠(画素)を示す値となっており、その斜
線で示す枠(画素)が空白に修正されたことで、その領
域境界が平滑化されたことがわかる。
【0504】上記のようにして拡大画像データが修正さ
れた後、ステップ5343〜5352においては、次に
修正を行うべき拡大画像データの画素データを指定する
ための処理が行われる。
【0505】まず、ステップ5343において、図59
のステップ5301でその値に変数sqの値が加算され
ることで修正された変数pに対し、変数sqの値を減算
することにより、変数pの値を元画像の画素データを指
示する値に戻す処理が行われた後、ステップ5344で
その変数pの値に2が加算される。この加算される2の
値は、拡大画像データは元画像データを面積比で4倍
(2×2)に拡大したものであるためであり、一方の元
画像データを指示する変数pの値は、ステップ5345
でインクリメント(+1)される。これにより、拡大画
像データを指示する変数pの値と元画像データを指示す
る変数sの値は、その値が指示する画像上の点を対応さ
せた更新が行われる。
【0506】ステップ5345に続いて実行されるステ
ップ5346においては、変数jの値に2が加算され
る。この変数jは、拡大画像における水平方向の基準画
素の位置を判定するためのものである。この変数jの値
が256よりも小さい場合、ステップ5347でYES
と判定され、図52のステップ5203の処理に戻り、
反対に変数jの値が256以上の場合、1ライン分の平
滑化のための修正が終了したとして、ステップ5347
の判定がNOとなり、ステップ5348の処理に移行す
る。
【0507】ステップ5348では、変数pに256が
加算され、続くステップ5349では変数sに128が
加算される。変数sに加算される128は、1ライン分
の修正が終了した拡大画像データに対応させ、元画像デ
ータにおけるその次のラインの先頭である画素データを
示す値に変数sを更新させるための値であり、変数pに
加算される256は、元画像における1ラインは拡大画
像においては2ラインで表されることから、元画像上の
次のラインに変数pの値を対応させるための値である。
【0508】ステップ5349の処理が終了すると、ス
テップ5350で変数jに0がセットされ、ステップ5
351で変数iには2が加算される。この変数iは、修
正が終了したライン数をカウントするためのものであ
り、変数iに加算される2は、上記したように、元画像
上の1ラインは拡大画像上の2ラインに対応することか
ら変数iに加算される値である。変数iに2を加算する
と、ステップ5352でこの変数iの値が垂直方向のラ
イン数である224よりも小さいか否かが判定され、変
数iの値が224よりも小さいと判定されると、図52
のステップ5202の処理に戻り、反対に変数iの値が
224以上と判定されると、拡大画像データに対する修
正が修正したとして、ここで一連の処理が終了する。
【0509】ここで、上述したスムージング処理の動作
は、要略すると次のようになる。スムージング処理にお
いて、変数sは元画像データ(画素データ群)の1つの
画素データを指定し、変数pは拡大画像データの1つの
画素データを指定する。これら変数sとpには、画像上
の実際の位置を対応させた値がセットされ、これらの変
数の値により指示された画素が基準画素である。
【0510】画像上の基準画素の位置を対応させて移動
させながら、元画像上の基準画素とその周辺画素とから
なる画像範囲内に修正(平滑化)すべき領域境界が存在
するか否かの検出を、予め決定されているパターン(図
89〜図95参照)と比較することにより行い、それら
パターンのいずれかに一致していると検出した領域境界
に対しては、その一致と検出されたパターンに応じて拡
大画像データに対する修正内容(平滑化内容)を決定す
る。このようにして修正内容が決定されると、次にその
修正内容に従って拡大画像データに対する修正を実行
し、その修正の終了後、変数s、pの値を更新すること
で次の基準画素の位置を確定する。このような一連の処
理を繰り返すことで、拡大画像データ全体に対する平滑
化のための修正が順次行われる。
【0511】なお、本実施例では、元画像データの基本
拡大倍率、即ち1回に行う基本となる拡大倍率は面積比
で4倍に固定としているが、この基本拡大倍率はこれに
限定したものではなく、他の値であってもよく、基本拡
大倍率を複数用意してもよい。基本拡大倍率を複数用意
した場合は、それら基本拡大倍率を組み合わせることで
様々な倍率で拡大された画像を良好な画質で得ることが
できる。また、本実施例では、拡大画像をプリンタ31
2により出力するようにしているが、これに限定するも
のではなく、テレビ311等の表示装置にそれを出力す
るようにしてもよい。
【0512】また、本実施例においては、画像エリアA
及びBの記憶容量をそれぞれ1画面分としているが、記
憶容量(本実施例ではワークRAM308)に余裕があ
る場合、VDP302から原画像データが転送される画
像エリアAに2画面分の記憶容量をもたせてもよい。こ
れにより、2段階以上(本実施例では16倍以上)の拡
大を行う場合においても、VDP302から再び画像デ
ータを転送させなくともよいことになる。
【0513】また、本実施例では、上述したように、各
エリア内を1/4毎の領域に等分割して画像の拡大を行
っていることから、1つの用紙に印刷された画像は他の
用紙に印刷された画像とは重なる部分がないことにな
る。しかし、この領域を他の領域と多少重ねることで、
1つの用紙に印刷された画像には他の用紙に印刷された
画像と重なる部分が生じるので、印刷された用紙を単に
張り合わせても画像全体を忠実に再現させることができ
るようになる。
【0514】
【発明の効果】以上、説明したように本発明の画像拡大
装置によれば、記憶手段が有する2つの記憶エリアの一
方に拡大元の画像データを記憶すると、この2つの記憶
エリアの一方を拡大される画像データが記憶されたエリ
ア、他方をそれを拡大した画像データが記憶されるエリ
アとして、拡大した画像データが記憶されるエリアを交
互に変更しながら画像データの拡大を行うため、拡大前
の画像データとそれを拡大した後の画像データの2種類
の画像データを記憶できる大きさの記憶容量を記憶手段
に持たせればよく、画像データの拡大に要する記憶容量
の大きさを低減することができる。これにより、装置の
コストを抑えることができる。
【0515】また、本発明の画像拡大装置は、予め設定
された基本拡大倍率に応じて拡大前の画像データの拡大
する範囲の指定を行うため、より大きな上記の効果を得
ることができる。この範囲の指定を行う場合、その指定
を変更していくことで拡大元の画像データ全体に対する
拡大を行うことができる。
【図面の簡単な説明】
【図1】本発明の実施例の外観図である。
【図2】コントロールパッド313の外観図である。
【図3】本発明の実施例の回路の全体構成図である。
【図4】VDP302の構成図である。
【図5】表示画面の階層構造の説明図である。
【図6】画面アサインを示した図である。
【図7】SRAMのデータ構成図である。
【図8】DP−RAMのデータ構成図である。
【図9】オブジェクトアトリビュートメモリ部のデータ
構成図である。
【図10】表示制御レジスタのデータ構成図である。
【図11】画面表示タイミングの説明図である。
【図12】RGBバッファ部の構成図である。
【図13】1水平表示期間におけるRGBデータの格納
タイミングを示したタイミングチャートである。
【図14】表示画面の遷移図である。
【図15】似顔絵作成モードにおける表示画面の遷移図
である。
【図16】全体動作フローチャートである。
【図17】アンケート画面の処理の動作フローチャート
(その1)である。
【図18】アンケート画面の処理の動作フローチャート
(その2)である。
【図19】ファイル操作画面の処理の動作フローチャー
ト(その1)である。
【図20】ファイル操作画面の処理の動作フローチャー
ト(その2)である。
【図21】ファイル操作画面の処理の動作フローチャー
ト(その3)である。
【図22】基本システム画面の処理の動作フローチャー
ト(その1)である。
【図23】基本システム画面の処理の動作フローチャー
ト(その2)である。
【図24】基本システム画面の処理の動作フローチャー
ト(その3)である。
【図25】基本システム画面の処理の動作フローチャー
ト(その4)である。
【図26】文字入力画面の処理の動作フローチャート
(その1)である。
【図27】文字入力画面の処理の動作フローチャート
(その2)である。
【図28】文字入力画面の処理の動作フローチャート
(その3)である。
【図29】印刷処理の全体動作フローチャート(その
1)である。
【図30】印刷処理の全体動作フローチャート(その
2)である。
【図31】印刷実行処理の動作フローチャート(その
1)である。
【図32】印刷実行処理の動作フローチャート(その
2)である。
【図33】印刷実行処理の動作フローチャート(その
3)である。
【図34】残り紙チェック処理の動作フローチャートで
ある。
【図35】画面抽出処理の動作フローチャートである。
【図36】アンケート画面のレイアウト図(その1)で
ある。
【図37】アンケート画面のレイアウト図(その2)で
ある。
【図38】アンケート画面のレイアウト図(その3)で
ある。
【図39】アンケート画面のレイアウト図(その4)で
ある。
【図40】ファイル操作画面のレイアウト図である。
【図41】基本システム画面のレイアウト図である。
【図42】文字入力画面のレイアウト図(その1)であ
る。
【図43】文字入力画面のレイアウト図(その2)であ
る。
【図44】モード選択画面でのふきだしの内容を示した
図である。
【図45】アンケート画面でのふきだしの内容を示した
図である。
【図46】ファイル操作画面でのふきだしの内容を示し
た図である。
【図47】基本システム画面でのふきだしの内容を示し
た図である。
【図48】文字入力画面でのふきだしの内容を示した図
である。
【図49】ファイル操作画面の警告らんの表示内容を示
した図である。
【図50】印刷処理におけるふきだしの内容を示した図
(その1)である。
【図51】印刷処理におけるふきだしの内容を示した図
(その2)である。
【図52】スムージング処理の動作フローチャート(そ
の1)である。
【図53】スムージング処理の動作フローチャート(そ
の2)である。
【図54】スムージング処理の動作フローチャート(そ
の3)である。
【図55】スムージング処理の動作フローチャート(そ
の4)である。
【図56】スムージング処理の動作フローチャート(そ
の5)である。
【図57】スムージング処理の動作フローチャート(そ
の6)である。
【図58】スムージング処理の動作フローチャート(そ
の7)である。
【図59】スムージング処理の動作フローチャート(そ
の8)である。
【図60】スムージング処理の動作フローチャート(そ
の9)である。
【図61】スムージング処理の動作フローチャート(そ
の10)である。
【図62】スムージング処理の動作フローチャート(そ
の11)である。
【図63】スムージング処理の動作フローチャート(そ
の12)である。
【図64】スムージング処理の動作フローチャート(そ
の13)である。
【図65】スムージング処理の動作フローチャート(そ
の14)である。
【図66】kink1処理の動作フローチャート(その
1)である。
【図67】kink1処理の動作フローチャート(その
2)である。
【図68】kink2処理の動作フローチャート(その
1)である。
【図69】kink2処理の動作フローチャート(その
2)である。
【図70】kink3処理の動作フローチャート(その
1)である。
【図71】kink3処理の動作フローチャート(その
2)である。
【図72】kink4処理の動作フローチャート(その
1)である。
【図73】kink4処理の動作フローチャート(その
2)である。
【図74】kst1処理の動作フローチャートである。
【図75】kst2処理の動作フローチャートである。
【図76】kst3処理の動作フローチャートである。
【図77】kst4処理の動作フローチャートである。
【図78】chase処理の動作フローチャート(その
1)である。
【図79】chase処理の動作フローチャート(その
2)である。
【図80】slant1処理の動作フローチャート(そ
の1)である。
【図81】slant1処理の動作フローチャート(そ
の2)である。
【図82】slant2処理の動作フローチャート(そ
の1)である。
【図83】slant2処理の動作フローチャート(そ
の2)である。
【図84】kst11処理の動作フローチャートであ
る。
【図85】kst12処理の動作フローチャートであ
る。
【図86】kst13処理の動作フローチャートであ
る。
【図87】kst14処理の動作フローチャートであ
る。
【図88】nurinuri処理の動作フローチャート
である。
【図89】領域境界の検出方法の説明図(その1)であ
る。
【図90】領域境界の検出方法の説明図(その2)であ
る。
【図91】領域境界の検出方法の説明図(その3)であ
る。
【図92】領域境界の検出方法の説明図(その4)であ
る。
【図93】領域境界の検出方法の説明図(その5)であ
る。
【図94】領域境界の検出方法の説明図(その6)であ
る。
【図95】領域境界の検出方法の説明図(その7)であ
る。
【図96】平滑化後の状態を示す説明図(その1)であ
る。
【図97】平滑化後の状態を示す説明図(その2)であ
る。
【図98】平滑化後の状態を示す説明図(その3)であ
る。
【符号の説明】
201 SELスイッチ 301 CPU 302 VDP 303 SRAM 304 DP−RAM 307 プログラム/データRAM 308 ワークRAM 312 プリンタ 313 コントロールパッド

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】画像データを記憶する2つの記憶エリアを
    有する記憶手段と、 拡大倍率を設定する設定手段と、 前記2つの記憶エリアの一方の記憶エリアに記憶された
    画像データを読み出して拡大し、該拡大した画像データ
    を他方の記憶エリアに記憶させる画像拡大手段と、 前記画像拡大手段による画像データの拡大を繰り返させ
    ることで、前記記憶手段の一方の記憶エリアに予め記憶
    された拡大元の画像データを、前記設定手段により設定
    された拡大倍率に拡大させる制御を行う制御手段と、 を具備したことを特徴とする画像拡大装置。
  2. 【請求項2】前記画像拡大手段は、予め設定された基本
    拡大倍率に従って画像データの拡大を行い、 前記制御手段は、前記基本拡大倍率に応じて前記画像拡
    大手段が前記一方の記憶エリアから読み出す画像データ
    の範囲を指定する、 ことを特徴とする請求項1記載の画像拡大装置。
  3. 【請求項3】前記制御手段は、前記画像データの範囲の
    指定を変更していくことにより、前記拡大元の画像デー
    タ全体に対する拡大を前記画像拡大手段に行わせる、 ことを特徴とする請求項1、または2記載の画像拡大装
    置。
JP6338727A 1994-12-30 1994-12-30 画像拡大装置 Pending JPH08186707A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6338727A JPH08186707A (ja) 1994-12-30 1994-12-30 画像拡大装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6338727A JPH08186707A (ja) 1994-12-30 1994-12-30 画像拡大装置

Publications (1)

Publication Number Publication Date
JPH08186707A true JPH08186707A (ja) 1996-07-16

Family

ID=18320902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6338727A Pending JPH08186707A (ja) 1994-12-30 1994-12-30 画像拡大装置

Country Status (1)

Country Link
JP (1) JPH08186707A (ja)

Similar Documents

Publication Publication Date Title
US7609913B2 (en) Image processing apparatus, image processing method and storage medium
US20030156197A1 (en) Digital camera, image processing apparatus, image processing method, image processing system, and program
JP3635765B2 (ja) 印刷特性表示装置
JPH11327721A (ja) 画像編集装置及び方法並びに記憶媒体
JP2007299325A (ja) ユーザインターフェイス制御方法、ユーザインターフェイス制御装置及びプログラム
EP0720101B1 (en) TV game machine with printer
JPH08186708A (ja) 画像拡大装置
JP3509549B2 (ja) プリンタ制御装置およびその方法並びに記録媒体
JPH08186707A (ja) 画像拡大装置
JP2003244631A (ja) プリントシステム及びデジタルカメラ
JPH05284331A (ja) 画像形成装置
JPH0730773A (ja) 文書処理装置
JP3543157B2 (ja) プリンタ付き画像制御装置
JP2744228B2 (ja) 画像処理装置
JP3175221B2 (ja) 文書作成装置
JP2007299324A (ja) ユーザインターフェイス制御方法、ユーザインターフェイス制御装置及びプログラム
JP3355265B2 (ja) 中抜け文字塗りつぶし方法及びその装置
JPH08185146A (ja) プリンタ付き画像制御装置
JP3680352B2 (ja) 画像制御装置
JP2974345B2 (ja) 文書処理方法及び装置
JP3680351B2 (ja) 画像制御装置
JPH09212496A (ja) 文書処理装置及び方法
JP2005102127A (ja) 画像処理システム、画像処理方法、テンプレート生成システム及びテンプレートデータ構造
JP2940195B2 (ja) テープ作成装置
JP3109727B2 (ja) 文字処理方法及び文字処理装置