JP2000285220A - 画像処理方法とその装置、及びそれに使用される画像データフォーマット - Google Patents

画像処理方法とその装置、及びそれに使用される画像データフォーマット

Info

Publication number
JP2000285220A
JP2000285220A JP11093491A JP9349199A JP2000285220A JP 2000285220 A JP2000285220 A JP 2000285220A JP 11093491 A JP11093491 A JP 11093491A JP 9349199 A JP9349199 A JP 9349199A JP 2000285220 A JP2000285220 A JP 2000285220A
Authority
JP
Japan
Prior art keywords
image processing
image
image data
processing
program code
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.)
Withdrawn
Application number
JP11093491A
Other languages
English (en)
Inventor
Hitoshi Oonoda
仁 大野田
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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP11093491A priority Critical patent/JP2000285220A/ja
Publication of JP2000285220A publication Critical patent/JP2000285220A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】 コマンド方式の特長を有しつつ、なおかつ将
来にわたって下位互換性を保証することが可能な画像処
理方法とその装置、及びそれに使用される画像データフ
ォーマットを提供する。 【解決手段】 画像データに画像処理を施し、その処理
結果を出力する場合に、画像データ101に施す画像処
理のプログラムコード114,124を、汎用の画像デ
ータに施す画像処理のプログラムコードが添付されてい
ることを示す画像処理ヘッダ部102と、前記汎用の画
像データに施す前記画像処理のプログラムコードを記憶
する画像オペレーションブロック110,120とを付
加した画像データのフォーマットで、前記画像データ1
01に対応づけて記憶し、前記画像データを出力する際
に、前記画像データに対して対応して共に記憶された前
記プログラムコードを実行し、その結果得られる画像を
出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像データに処理
を加えて出力を行う画像処理方法とその装置、及びそれ
に使用される画像データフォーマットに関するものであ
る。
【0002】
【従来の技術】従来の画像データのフォーマットは、ヘ
ッダ情報と画素データから構成されていた。ヘッダ情報
とは、画像の幅と高さ、各画素データのビット数、解像
度情報や色空間情報、画像データの圧縮の有無など、画
素データの属性に関する情報である。画素データは、画
像を構成する各画素の情報であり、単純なものであれば
RGBの各値を8bit(256階調)で表現し、単純
に配列したフォーマットが存在する。また、色そのもの
ではなくインデックス番号を配列し、インデックス番号
に対応する色をヘッダ情報に記録するフォーマットも存
在する。また、画素の情報を画像情報圧縮技術により圧
縮する技術、画像を細かなブロックに分割しブロックご
とに圧縮した画像データ処理方式が知られている。さら
に最近では、複数の解像度のデータを有し、それらが階
層構造を表わすフォーマットで保存される画像データ処
理方式も普及している。
【0003】なお、画像データを記憶媒体に記録すると
き、多くの場合、ヘッダ情報は画素データの前に置かれ
ることが多いため、通称”ヘッダ情報”と呼ばれている
が、画像データフォーマットによっては、必ずしもその
ような配置にならないものも多い。ここでは、便宜上画
素データ以外の画像の属性情報をすべてヘッダ情報と呼
ぶことにする。
【0004】さらに、近年では回転やトリミングなどの
画像処理を施した画像データを記憶媒体に保存する際、
実際に回転やトリミングを行った結果得られる画像デー
タ自体を保存するのではなく、回転やトリミングを示す
コマンドと、必要な場合にはそのコマンドを実行するの
に必要なコマンド処理データを画像データに対応づけて
記憶し、出力デバイスに出力する際に、そのコマンドを
対応するコマンド処理データに基づき実施して出力を行
い、回転やトリミングを出力直前に行うようにした画像
データ処理方式も存在する。ここで、コマンドは何らか
の数値(番号)かキーワードに対応する文字列で構成さ
れる。
【0005】例えば、画像に回転処理を施す場合には、
コマンドとして“ROTATE”というキーワードと、
コマンド処理データとして回転角を現わす1つの数値デ
ータ(例えば、90度の場合は”90”など)を原画像
に対応づけて保存していた。この画像データを出力する
場合には、処理手段は原画像に対しコマンド“ROTA
TE”を読み取り、これが回転を実行するための命令で
あることを解釈し、さらに回転角のコマンド処理データ
を読み取って、画像に回転処理を加え、処理後の画像デ
ータを出力していた。
【0006】このように画像処理のコマンドとそのコマ
ンドを実行するのに必要なコマンド処理データを、画像
データ対応づけて保存する方式では、もともとの画素デ
ータに一切手を加える必要がないので、画像処理を付加
した画像データの保存が高速に行えることや、コマンド
とコマンド処理データを削除するだけで、画像を以前の
状態に戻すアンドゥ(Undo)処理が容易に実現できるこ
と、さらにコマンド処理データの内容を更新するだけで
画像処理の内容を変更を行うことが可能(例えば、回転
角のデータを変更するだけで出力時の画像の回転量を変
更できる)といった長所がある。
【0007】便宜上、こうした画像データ処理方式をコ
マンド方式と呼ぶことにする。
【0008】
【発明が解決しようとする課題】しかしながら、上記従
来例では、画像を出力する際、コマンドを現わすキーワ
ード(あるいは数値)と、そのコマンドの処理内容をあ
らかじめ対応づけて決めておかなければならなかった。
【0009】例えば、コマンドとして“ROTATE”
は「画像の回転処理を表わす」という約束をあらかじめ
定義しておかねばならない。また、例えば“TRIMM
ING”は「画像のトリミング」、“SCALING”
は「画像の拡大あるいは縮小」、“BLUR”は「画像
のぼかし処理」、“SHARP”は「画像のシャープさ
を強調する処理」、といった対応関係をあらかじめ定義
し、画像を出力する際に出力手段はこれらのキーワード
を参照し、対応する画像処理の実行プログラムルーチン
(上記例では、回転やトリミングあるいは拡大・縮小、
画像のぼかし、画像のシャープさの強調を実行するプロ
グラムコード)を呼び出し、対応するコマンド処理デー
タ(例えば、“ROTATE”の時の回転角データ)を
参照してそのプログラムを実行して、画像処理を行うこ
とになる。そして、その処理結果を、画面や紙、あるい
はハードディスクやMOやフロッピーディスクなどの記
憶媒体に出力していた。
【0010】ところが、画像処理は様々な種類の技術が
日進月歩で開発されている。このような場合、新しいコ
マンドとその処理内容の対応関係を追加した新しい定義
を制定することにより、従来は新規の画像処理内容を追
加していた。例えば、画像のコントラストを調整する画
像処理を新規に加えたい時、“CONTRAST”とい
うコマンドを定義し、コントラストを調整する実行プロ
グラムコードの対応関係を定め、従来のコマンドと実行
内容の対応関係に追加していた。
【0011】こうした場合、古い対応関係に基づき記憶
媒体に記憶された画像データは、新旧の対応リストのど
ちらの出力装置でも出力することはできるが、新しい対
応関係に基づき記憶媒体に記憶された画像データに対し
ては、古い対応関係に基づき設計された画像出力装置で
は、解釈不可能なコマンドのキーワードを含んでいる可
能性があるために、画像処理を正しく実施して出力する
ことができない場合が存在した。
【0012】前例に基づき説明すると例えば“ROTA
TE”,“TRIMMING”,“BLUR”,“SC
ALING”,“SHARP”のコマンドにしか対応し
ていない古い出力装置では、新規に定義した“CONT
RAST”というコマンドを処理することができず、正
しい出力結果を得ることができなかった。
【0013】したがって、新規約を定めそれを正しく出
力する際には、対応関係の更新時には、画像データのみ
ならず、画像出力装置自体を同時に更新しなければなら
なかった。これは、従来の画像データ処理方式が下位互
換性を有していないことに起因する問題である。したが
って、このような画像データ処理方式は、広く一般に普
及する目的には不利である。こうした背景から、コマン
ド方式のような自由度を有しつつ、なおかつ将来的に発
展した場合でも下位互換性を有する画像データフォーマ
ットとその画像処理方法が望まれている。
【0014】また、画像データの保存時に必要な記憶容
量の少ない画像データフォーマットが一般的に望まれて
いる。
【0015】本発明の第1の目的は、コマンド方式の特
長を有しつつ、なおかつ将来にわたって下位互換性を保
証することが可能な画像処理方法とその装置、及びそれ
に使用される画像データフォーマットを提供することに
ある。
【0016】本発明の第2の目的は、コマンド方式の特
長を有しつつ、なおかつ将来にわたって下位互換性を保
証することが可能であり、かつ高速に画像処理を行うこ
との出来る画像処理方法とその装置、及びそれに使用さ
れる画像データフォーマットを提供することにある。
【0017】本発明の第3の目的は、コマンド方式の特
長を有しつつ、なおかつ将来にわたって下位互換性を保
証することが可能であり、さらに多くの種類の画像処理
装置の間でも互換性を有することが可能な画像処理方法
とその装置、及びそれに使用される画像データフォーマ
ットを提供することにある。
【0018】本発明の第4の目的は、コマンドフォーマ
ットの特長を有しつつ、なおかつ将来にわたって下位互
換性を保証することが可能であり、さらに画像データを
保存する際に要する記憶容量を低減することが可能な画
像処理方法とその装置、及びそれに使用される画像デー
タフォーマットを提供することにある。
【0019】
【課題を解決するための手段】上記目的を達成するた
め、本発明の画像処理方法は、画像データに画像処理を
施し、その処理結果を出力する画像処理方法において、
画像データに施す画像処理のプログラムコードを、前記
画像データに対応づけて前記画像データと共に記憶又は
転送し、前記画像データを出力する際に、前記画像デー
タに対して対応して共に記憶又は転送された前記プログ
ラムコードを実行し、その結果得られる画像を出力する
ことを特徴とする。前記記憶工程では、1つの前記画像
データに対応づけて複数の画像処理のプログラムコード
を前記画像データと共に記憶し、前記出力工程では、前
記複数の画像処理のプログラムコードの中から少なくと
も1つのプログラムコードを選択し、これを前記画像デ
ータに対して実行した結果得られる画像を出力する。
【0020】又、画像データに画像処理を施し、その処
理結果を出力する画像処理方法において、画像データに
施す画像処理に相当する単数もしくは複数のプログラム
コードを1つの画像処理グループとして、前記画像デー
タに対応づけて前記画像データと共に記憶又は転送し、
前記画像データを出力する際に、前記画像データに対し
て対応して共に記憶又は転送された前記画像処理グルー
プに含まれる全てのプログラムコードを逐次実行し、そ
の結果得られる画像を出力することを特徴とする。前記
記憶工程では、1つの前記画像データに複数の画像処理
グループを対応づけて前記画像データと共に記憶し、前
記出力工程では、複数の画像処理グループの中から1つ
の画像処理グループを選択し、その画像処理グループ内
の全てのプログラムコードを逐次実行し、その結果得ら
れる画像を出力する。
【0021】又、本発明の画像処理装置は、画像データ
に画像処理を施し、その処理結果を出力する画像処理装
置において、画像データに施す画像処理のプログラムコ
ードを、前記画像データに対応づけて前記画像データと
共に記憶する記憶手段又は転送する転送手段と、前記画
像データを出力する際に、前記画像データに対して対応
して共に記憶又は転送された前記プログラムコードを実
行し、その結果得られる画像を出力する出力手段とを有
することを特徴とする。前記記憶又は転送手段は、1つ
の前記画像データに対応づけて複数の画像処理のプログ
ラムコードを前記画像データと共に記憶又は転送し、前
記出力手段は、前記複数の画像処理のプログラムコード
の中から少なくとも1つのプログラムコードを選択し、
これを前記画像データに対して実行した結果得られる画
像を出力する。
【0022】又、画像データに画像処理を施し、その処
理結果を出力する画像処理装置において、画像データに
施す画像処理に相当する単数もしくは複数のプログラム
コードを1つの画像処理グループとして、前記画像デー
タに対応づけて前記画像データと共に記憶する記憶手段
又は転送する転送手段と、前記画像データを出力する際
に、前記画像データに対して対応して共に記憶又は転送
された前記画像処理グループに含まれる全てのプログラ
ムコードを逐次実行し、その結果得られる画像を出力す
る出力手段とを有することを特徴とする。前記記憶又は
転送手段は、1つの前記画像データに複数の画像処理グ
ループを対応づけて前記画像データと共に記憶又は転送
し、前記出力手段は、複数の画像処理グループの中から
1つの画像処理グループを選択し、その画像処理グルー
プ内の全てのプログラムコードを逐次実行し、その結果
得られる画像を出力する。
【0023】又、本発明の記憶媒体は、画像データに画
像処理を施し、その処理結果を出力する画像処理プログ
ラムをコンピュータ読取り可能に記憶する記憶媒体であ
って、画像データに施す画像処理に相当する単数もしく
は複数のプログラムコードを1つの画像処理グループと
して、前記画像データに対応づけて前記画像データと共
に記憶又は転送するプログラムモジュールと、前記画像
データを出力する際に、前記画像データに対して対応し
て共に記憶又は転送された前記画像処理グループに含ま
れる全てのプログラムコードを逐次実行し、その結果得
られる画像を出力するプログラムモジュールとを含むこ
とを特徴とする。
【0024】又、画像データに画像処理を施し、その処
理結果を出力する画像処理プログラムをコンピュータ読
取り可能に記憶する記憶媒体であって、1つの前記画像
データに複数の画像処理グループを対応づけて前記画像
データと共に記憶又は転送するプログラムモジュール
と、複数の画像処理グループの中から1つの画像処理グ
ループを選択し、その画像処理グループ内の全てのプロ
グラムコードを逐次実行し、その結果得られる画像を出
力するプログラムモジュールとを含むことを特徴とす
る。
【0025】ここで、前記プログラムコードは、画像処
理を行うコンピュータの中央演算装置の種類に依存しな
い中間プログラムコードで構成されており、前記中間プ
ログラムコードを実行前に解釈して、画像処理を行うコ
ンピュータの中央演算装置が直接的に解釈可能なプログ
ラムコードに変換するプログラムモジュールを更に含
む。また、前記プログラムコードを、記憶媒体に保存さ
れる際、あるいは転送される際に、データ圧縮技術によ
り圧縮するプログラムモジュールと、プログラムコード
の実行時に解凍するプログラムモジュールとを更に含
む。
【0026】又、本発明の画像データのフォーマット
は、画像データに画像処理を施し、その処理結果を出力
する場合に作成される画像データのフォーマットであっ
て、汎用の画像データに施す画像処理のプログラムコー
ドが添付されていることを示す第1の領域と、前記汎用
の画像データを記憶する第2の領域と、前記汎用の画像
データに施す前記画像処理のプログラムコードを記憶す
る第3の領域を有することを特徴とする。ここで、前記
第3の領域には、1つの前記画像データに対応づけて複
数の画像処理のプログラムコードが記憶される。また、
画像データに施す画像処理に相当する単数もしくは複数
のプログラムコードを1つの画像処理グループとして記
憶していることを示す第4の領域を更に有する。また、
前記第3の領域には、1つの前記画像データに複数の画
像処理グループが対応づけて記憶される。
【0027】以上の各発明において、前記プログラムコ
ードは、画像処理を行うコンピュータの中央演算装置が
直接的に解釈可能なプログラムコードで構成されてい
る。また、こ前記プログラムコードは、画像処理を行う
コンピュータの中央演算装置の種類に依存しない中間プ
ログラムコードで構成されている。また、前記中間プロ
グラムコードは、実行前に解釈されて、画像処理を行う
コンピュータの中央演算装置が直接的に解釈可能なプロ
グラムコードに変換される。また、前記プログラムコー
ドは、記憶媒体に保存される際、あるいは転送される際
に、データ圧縮技術により圧縮され、プログラムコード
の実行時に解凍して実行される。
【0028】
【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態を詳細に説明する。
【0029】<本実施の形態の画像データの作成例> (本実施の形態の画像処理装置の構成例)はじめに、本
発明を適用する実施の形態の画像処理装置の全体構成を
図1を参照して説明する。図1は本実施の形態の画像処
理装置のブロック構成図であり、例えば汎用のPC(パ
ーソナルコンピュータ)であってもよい。
【0030】図中、1は装置の全体制御を司る演算制御
用のCPU、2は処理画像を表示するCRTなどのディ
スプレイ、3は操作者の各種指示データなどを入力する
キーボード、4は基本的な処理プログラムやパタメータ
などを記憶しているROM、5は各種処理結果等と、記
憶装置6や外部記憶装置9等からロードされたプログラ
ムなどを一時的に記憶するRAM、6は画像データや画
像処理プログラムなどを記憶するハードディスクドライ
ブ(HDD)などの記憶装置、7は外部の装置と通信回
線10を介して通信するための通信インターフェイス、
8は入力補助手段としてのマウスなどのポインティング
装置、9はフロッピーディスクドライブや光磁気ディス
クドライブ、CD−ROM、CD−Rなど、いわゆるリ
ムーバブルメディアを制御する外部記憶装置である。こ
れらの機器はバス11によって相互に接続されている。
【0031】図2は、本実施の形態の機能を有する画像
処理アプリケーションにより表示される表示画面例であ
り、ディスプレイ2に表示される。
【0032】すなわち、ある画像データが外部記憶装置
9や通信インターフェイス7などを介してPCに入力さ
れると、ROM4もしくは記憶装置6に記憶された本実
施の形態の機能を有するアプリケーションによって、記
憶装置6に記憶された後、ディスプレイ2に出力され、
その内容は図2の原画像表示部21のように表示され
る。読み込まれる画像は、外部記憶装置9や通信インタ
ーフェイス7以外にも、不図示の各種スキャナーやデジ
タルカメラなどから読み込まれたものであってもかまわ
ない。
【0033】(本実施の形態の画像データの第1の作成
例)図3に、この際に読み込まれた画像データの構造例
を示す。
【0034】図3に示したように、汎用画像データ部1
01はヘッダ情報と画素データとに分けることができ
る。汎用画像データ部101は、汎用的に使用されてい
る画像フォーマット(例えば、JPEGやTIFFな
ど)でも良い。また、図示したようにヘッダ情報が必ず
しもデータ領域の先頭にある必要はなく、またヘッダ情
報や画素データが複数のデータ領域に分離されていても
かまわない。説明を簡単化するだけのために、図3では
非常に単純な状態で図示しており、実際の画像データは
より複雑な構成であることが多いことは言うまでもな
い。
【0035】本実施の形態においては、汎用画像データ
部101を読み込み、記憶装置6にデータが記憶される
際、汎用画像データ部101の先頭に、画像処理ヘッダ
部102が付加される。この画像処理ヘッダ部102
は、識別子103、画像オペレーション数104、最初
のオペレーションへのポインタ105、画像スタート位
置へのポインタ106、画像サイズ107の各データブ
ロックで構成される。
【0036】識別子103は、同データをプログラムが
参照する際、データの安全性を高めるための1つの手法
であり、固定バイト数の中に所定のコードを設定したも
のが使用される。例えば、本例においては、“OOFI
D”という5バイトコードを埋めこんでおく。これによ
り、プログラムが本データを参照する際に、先頭の5バ
イトが“OOFID”でなければ、本実施の形態の画像
データフォーマットではないと判断することができる。
また、先頭の5バイトが“OOFID”であれば、本実
施の形態の画像データフォーマットの可能性が高いと判
断することができる。このコードの長さや内容は、既存
の画像データフォーマットの識別子と異なるものであれ
ばどのようなものであってもかまわない。また、他にデ
ータの安全性を保証する手段を設けた場合などには、識
別子は無くてもかまわない。
【0037】画像オペレーション数104は、本実施の
形態の特長である画像データに付加される画像処理プロ
グラム(以下、オペレーションと称す)の数を現わして
おり、初期状態では0となる。詳細に関しては後述す
る。
【0038】最初のオペレーションへのポインタ105
は、最初の画像処理プログラムが記述されている位置を
示すものである。本例の場合、初期状態ではオペレーシ
ョンが付加されていないので、ポインタの値は空白を意
味する0にセットされる。
【0039】画像スタート位置へのポインタ106は、
データ領域の先頭から、汎用の画像データの先頭までの
長さを示しており、汎用画像データ部101の先頭のア
ドレスを指し示す指標となる。
【0040】例えば、識別子103が5バイト、画像オ
ペレーション数104が4バイト、最初のオペレーショ
ンへのポインタ106が8バイト、画像スタート位置へ
のポインタ106が4バイト、後述の画像サイズ107
が4バイトで構成されている場合、画像処理ヘッダ部1
02と汎用画像データ部101が連続していれば、画像
スタート位置へのポインタの内容は合計の25となる。
また、これより大きい値を設定しておけば、画像処理ヘ
ッダ部102と汎用画像データ部101の間に領域が確
保されるので、さらにコメントや他の付加情報をこの部
分に記録することも可能となる。
【0041】画像サイズ107は、汎用画像データ部1
01のサイズをバイト単位で示したものであり、例えば
もとの画像データサイズが150,000バイトであれ
ば、その数値が記録される。
【0042】外部記憶手段9から読み込まれた画像デー
タが、すでに本実施の形態の画像データフォーマットで
あることが確認された場合(例えば、先頭の5バイトが
“OOFID”で構成されていることが確認された場
合)、このような画像処理ヘッダ部102を付加する必
要はない。
【0043】図2で画像データが画像表示部21に表示
された際、画面上には同図23から32で表わされるボ
タンが表示される。ボタン23から30は、画像処理を
指示するボタンであり、ボタン23は画像の回転を指示
するボタン(Rotate)、ボタン24は画像のトリミングを
指示するボタン(Trim)、ボタン25は色補正を指示する
ボタン(Color)、ボタン26はカラー画像を白黒化する
ボタン(Mono)、ボタン27は画像にぼかしを加えるボタ
ン(Blur)、ボタン28は画像のシャープネスを上げるボ
タン(Sharp)、ボタン29はコントラスト調整を指示す
るボタン(Contrast)、ボタン30はカラーセピア化を指
示するボタン(Sepia)である。また、22は処理された
後の画像を表示する処理結果画像表示部である。
【0044】例えば、回転を指示するボタン23を押す
(タッチする)と、図4のように回転角を指示するダイ
アログ35が現れる。ダイアログ35には3つのボタン
36、37、38があり、それぞれ左(反時計回り)9
0度回転、180度回転、右(時計回り)90度回転を
指示するボタンである。本例では、90度毎の回転を指
示する例であるが、操作者に任意の回転角を指示させる
ようにしても良い。
【0045】ボタン36、37、38のいずれかを押す
と画像に回転処理が加えられ、本実施の形態における画
像データフォーマットは、図5ように、110の回転オ
ペレーションブロックが付加された状態で記憶手段6に
記憶される。
【0046】オペレーションブロック110は、次のオ
ペレーションへのポインタ111と画像処理の内容を現
わすプログラムコード114とそのサイズを現わすプロ
グラムコードサイズ112、画像処理を行うのに必要な
パラメータを格納するデータ116とそのサイズを現わ
すデータサイズ113の各ブロックで構成される。
【0047】(回転オペレーションの指定例)回転オペ
レーションの場合は、画像に回転を加えるためのプログ
ラムコードがプログラムコード114のブロックに記憶
される。このプログラムコードは、回転処理を行うプロ
グラムとして、あらかじめ記憶手段6もしくはROM
4、もしくはRAM5などに記憶されており、その内容
が転送される。
【0048】プログラムコードの内容は、CPU1が解
釈可能なコードで記述されており、これにより後々実際
の画像処理を行う際、その処理を高速に行うことが可能
となる。また、プログラムコード(データを含む)は公
知のデータ圧縮技術により、記憶装置6などへの保存の
際にはそのサイズを圧縮しておき、プログラムを実行
時、RAM5に転送する際に、プログラムやデータの内
容を解凍して転送して実行するようにすると、本実施の
形態の画像データを保存する際に必要とする容量を低減
することができる。
【0049】又、プログラムコードの内容は、CPUの
種類に依存しない中間言語で記述されていてもよく、あ
らかじめ記憶手段6もしくはROM4、もしくはRAM
5に記憶されている“中間言語からCPU1が解釈可能
な命令に変換するプログラム”を介して処理されるよう
に記述されている。(具体的には、Sun Micro Systems
のJAVA(商標)言語などがある。)中間言語は様々
なプログラムに利用可能な汎用的な処理言語体系を有し
ていてもよいし、画像処理プログラムに特化した特別な
言語体系を用いたものでもよいが、将来性を考慮する
と、画像処理に対して強化されており、なおかつ様々な
プログラムに利用可能な汎用的な処理言語体系が好まし
い。こうした、中間言語を用いることにより、CPUに
依存しない画像処理プログラムコードを準備しておくこ
とが可能となる。
【0050】回転処理自体のプログラムには特に新規性
は必要なく公知の方法で十分であるため、コードの内容
自体に関しては省略する。ただし、メモリのどの位置に
このプログラムがロードされても実行可能なように、コ
ードはリロケータブルにコーディングされたものである
ものが好ましい。
【0051】プログラムコードサイズ112には、回転
処理プログラムのデータサイズがバイト単位で記録され
る。例えば、回転処理を行うプログラムのサイズが、3
6,000バイトであれば、その値が記録される。
【0052】回転処理データ115のブロックには、回
転処理に必要なパラメータである回転角が記憶される。
例えば、前述の図4の回転角を指示するダイアログにお
いて、180度回転を指示するボタン37が押された場
合には、回転処理データ115に180度を現わすデー
タが記録される。
【0053】データサイズ113のブロックには回転処
理データ115のサイズが記憶される。例えば、前述の
回転角180のデータサイズが2バイトであれば、2を
現わすデータが記録される。
【0054】ここでは次に実行されるオペレーションが
存在しないので、次のオペレーションへのポインタ11
1のブロックには「なし」を現わす0が記録される。
【0055】回転オペレーション110の追加に伴い、
画像処理ヘッダ102内の画像オペレーション数104
は、現在のオペレーション数の1に更新される。また、
最初のオペレーションへのポインタ105には、回転オ
ペレーションブロック110へのポインタが、画像処理
ヘッダ102の先頭からのバイト量として記憶される。
例えば、画像処理ヘッダ102が25バイト、汎用画像
データ部101が150,000バイトでそれらが連続
して記憶されている場合、150,025という情報が
最初のオペレーションへのポインタ106に記録され
る。
【0056】画像に画像処理が加えられるとその処理結
果が、図2の処理結果画像表示部22に表示される。そ
の過程を以下に説明する。
【0057】アプリケーションは図5の画像データの先
頭部の識別子103を参照し、その内容が“OOFI
D”であることを確認する。
【0058】次に、画像のオペレーション数104を参
照し、現在画像に付加されているオペレーションの数が
1であることをRAM5上に記憶しておく。次に、画像
のスタート位置へのポインタ106が示す位置から、画
像サイズ107で示された画像サイズの領域を汎用の画
像データとしてRAM5に転送する。
【0059】画像データの転送先のアドレスは、CPU
1のレジスタ(不図示)が保持するスタックポインタに
追加されスタックポインタは更新される。スタックポイ
ンタに関してはCPUを構成する一般的な公知技術であ
るので詳細については解説しない。
【0060】次に、最初のオペレーションへのポインタ
105を参照し、最初のオペレーションブロック110
を参照する。まず、プログラムコード114の内容を、
RAM5のプログラム領域に転送する。この際、転送す
るプログラムコードの転送バイト数はプログラムコード
サイズ112の内容を参照する。次に、プログラムコー
ド114に続く、処理データ115の内容をRAM5の
データ領域に転送し、その転送先のアドレスをスタック
ポインタに追加する。前記処理データの内容を転送する
際、データサイズ113の内容を参照することでデータ
転送量を知ることができる。
【0061】また、プログラムコード114や処理デー
タ115が公知のデータ圧縮技術により、圧縮保存され
ている場合には、圧縮された情報を解凍する公知のプロ
グラムにより、RAM5への転送の際にプログラムやデ
ータを解凍して転送する。
【0062】次に、プログラムはCPU1内で保持する
プログラムカウンタ(不図示)の値を、RAM5上に転
送されたプログラムコードの先頭アドレスに設定し、画
像処理プログラムをサブルーチンとして起動する。プロ
グラムカウンタに関してはCPUを構成する一般的な公
知技術であるので詳細に関しては解説しない。
【0063】プログラムはスタックポインタに蓄積され
た、処理データ115のアドレス、汎用画像データ部1
01のアドレスを実行の際に読み出し、そのアドレスが
指し示す領域の内容を、画像処理のパラメータとなる処
理データ、および画像処理の対象となる画素データとし
て認識し、画像回転の処理を行う。
【0064】ここで、画像処理のプログラムはCPU1
が直接解釈可能なコードで記述されているので、その処
理は高速に実行される。尚、画像の回転に関する処理の
内容に関しては、公知の技術であり本発明の意図とは直
接関係がないためここでは省略する。
【0065】回転処理を行った結果得られる新しい画像
データは、RAM5上の別の部分に記憶され、回転処理
プログラムは新しい画像データが記憶されたRAM5上
の先頭アドレスをスタックに記憶して処理を終了し、処
理はアプリケーションに戻る。
【0066】アプリケーションは、スタックに記憶され
たこの新しい画像データへのアドレスを参照して、図2
の処理結果画像表示部22にその画像を表示する。
【0067】操作者はその処理結果に満足であれば、図
2のOKボタン31を押し、不満であればCancel
ボタン32を押す。
【0068】OKボタン31が押されると、回転処理が
加えられた新しい画像データが保持され、次の出力段階
に入る。出力段階では、外部記憶装置への画像データの
保存や通信インターフェイス7を介して他の装置への画
像データの転送や、不図示のプリンタへ画像の出力など
が行われる。
【0069】Cancelボタン32が押されるとRA
M5にある回転処理が加えられた新しい画像データは破
棄され、画像データの内容は図3に示す初期状態に戻
る。
【0070】(ぼかしオペレーションの追加例)また、
OKボタン31やキャンセルボタン32ではなく、各種
画像処理ボタン23から30が押された場合には、回転
処理が加えられた新しい画像に対して、さらに追加で画
像処理が加えられる。
【0071】たとえば、ぼかし指示ボタン27が押され
た場合には、公知の画像ぼかし処理が加えられ、本実施
の形態における画像データフォーマットは図6のよう
に、ぼかしオペレーションブロック120が付加された
状態で記憶装置6に記憶される。
【0072】ぼかしオペレーションの場合は、プログラ
ムコード部には画像にぼかしを加えるためのプログラム
コードが124に記憶される。このプログラムコード
は、ぼかし処理を行うプログラムとして、あらかじめ記
憶手段6もしくはROM4、もしくはRAM5などに記
憶されており、その内容が転送される。プログラムコー
ドの内容はCPU1が解釈可能なコードで記述されてお
り、これにより後々実際の画像処理を行う際、その処理
を高速に行うことが可能となる。
【0073】ぼかし処理の方法には、ガウス分布に相当
する係数を有する正方形マスクパターンと画像データと
の間でたたみ込み演算を行う方法や単純な移動平均をと
る方法など、さまざまな公知の方法が存在するが、処理
内容自体のプログラムには特に新規性は必要なく公知の
方法で十分であるため、コードの内容自体に関しては省
略する。
【0074】プログラムコードサイズ122には、ぼか
し処理を行うプログラムのサイズがバイト単位で記録さ
れる。処理データ125には、ぼかし処理に必要なパラ
メータの情報が記憶される。ぼかし量が固定的であれ
ば、プログラムコード124にぼかし量をハードコーデ
ィングして、処理データ125を削除することも可能で
ある。その場合には、データサイズ123には0が記録
される。ぼかし量を任意設定可能とする場合には、たと
えばぼかし処理がガウス分布のマスクと画像のたたみ込
み演算を行う方法であれば、ガウス分布g(x,y)の
マスクは g(x,y)=exp{-(x*x+y*y)/(2*V)}/(2*pi*V) で現わすことが可能であるので、このぼかし量を制御す
る係数Vの値(例えば0.5)とマスクのサイズ(例え
ば5x5)をパラメータとすることができる。また、マ
スクの各係数をあらかじめ演算しておき、マスクの全て
もしくは一部の係数をパラメータとしておくことも可能
である。こうしたぼかし量に関する必要な係数の情報が
処理データ125に記録され、データ全体のバイト数が
データサイズブ123に記録される。ここでは、ぼかし
処理が実行される最後のオペレーションとなるので、次
のオペレーションへのポインタを示すブロック121に
は「なし」を現わす0が記録される。
【0075】ぼかしオペレーション120の追加に伴
い、画像処理ヘッダ102内の画像オペレーション数1
04は、現在のオペレーション数の2に更新される。ま
た、回転オペレーションブロック内の次のオペレーショ
ンへのポインタ111には、ぼかし処理オペレーション
ブロックへのポインタが、回転オペレーションブロック
110の先頭からのバイト数で記憶される。
【0076】例えば、次のオペレーションへのポインタ
111が8バイト、プログラムコードサイズ112とデ
ータサイズ113がそれぞれ4バイト、回転処理プログ
ラムコード114が36,000バイト、回転処理デー
タ115が2バイトで、回転処理オペレーションブロッ
ク110とぼかし処理オペレーションブロック120の
間が連続して記録されている場合には、36,018が
次のオペレーションへのポインタ111に記録され、こ
れを参照することにより、次のぼかしオペレーションブ
ロック120を高速に検索することができる。
【0077】ぼかし処理が加えられるとその処理結果
が、図2の処理結果画像表示部22に表示される。その
過程を以下に説明する。
【0078】アプリケーションは図6の画像データの先
頭部の諭別子103を参照し、その内容が“OOFI
D”であることを確認する。
【0079】次に、画像のオペレーション数104を参
照し、現在画像に付加されているオペレーションの数が
2であることをRAM5上に記憶しておく。次に、画像
のスタート位置へのポインタ106が示す位置から、画
像サイズ107で示された画像サイズの領域を汎用の画
像データとしてRAM5に転送する。画像データの転送
先のアドレスは、CPU1のレジスタ(不図示)が保持
するスタックポインタに追加され、スタックポインタは
更新される。
【0080】次に、最初のオペレーションへのポインタ
105を参照し、最初のオペレーションブロック110
を参照する。まず、プログラムコード114の内容を、
RAM5のプログラム領域にロードする。この際、転送
するプログラムコードの転送バイト数はプログラムコー
ドサイズ112の内容を参照する。次に、プログラムコ
ード114に続く、処理データ115の内容をRAM5
に転送し、その転送先のアドレスをスタックポインタに
追加する。前記処理データ115の内容を転送する際、
データブロックの転送データ量は、データサイズ113
の内容を参照することで転送量を知ることができる。
【0081】次に、プログラムはCPU1内で保持する
プログラムカウンタ(不図示)の値を、RAM5上に転
送されたプログラムコードの先頭アドレスに設定し、画
像処理プログラムをサブルーチンとして起動する。プロ
グラムはスタックポインタに蓄積された、処理データ1
15のアドレス、汎用画像データ部101のアドレスを
実行の際に読み出し、そのアドレスが指し示す領域の内
容を画像処理のパラメータとなる処理データ、および画
像処理の対象となる汎用の画素データとして認識し、画
像回転の処理を行う。ここで、回転処理のプログラムは
CPU1が直接解釈可能なコードで記述されているの
で、その処理は高速に実行される。
【0082】回転処理を行った結果得られる新しい画像
データは、RAM5上の別の部分に記憶され、回転処理
プログラムは新しい画像データが記憶されたRAM5上
の先頭アドレスをスタックに記憶して処理を終了し、処
理はアプリケーションに戻る。
【0083】アプリケーションは次に、画像オペレーシ
ョン数104の情報から、もう1つオペレーションが付
加されていることが判断できるので、次の画像処理に入
る。先程実行した回転オペレーションブロック110内
の次オペレーションへのポインタ111の内容から、2
番目のオペレーションブロック120を参照する。
【0084】次に、プログラムコード124の内容をR
AM5のプログラム領域にロードする。この際、転送す
るプログラムコードの転送バイト数はプログラムコード
サイズ122の内容を参照する。次にプログラムコード
124に続く、処理データ125の内容をRAM5に転
送し、その転送先のアドレスをスタックポインタに追加
する。処理データのサイズはデータサイズ123の内容
を参照することで知ることができる。もし、データサイ
ズ123の内容が0であれば、プログラム実行に必要な
データは存在しないので、スタックポインタを更新する
必要はない。
【0085】次に、プログラムはCPU1内で保持する
プログラムカウンタ(不図示)の値を、RAM5上に転
送されたぼかしプログラムコードの先頭アドレスに設定
し、画像処理プログラムをサブルーチンとして起動す
る。プログラムはスタックポインタに蓄積された処理デ
ータ125のアドレスと、先に回転処理が実施された新
しい画像データへのアドレスを実行の際に読み出し、そ
のアドレスが指し示す領域の内容を画像処理のパラメー
タとなる処理データ、および画像処理の対象となる汎用
の画素データとして認識し、画像のぼかし処理を行う。
ここで、ぼかし処理のプログラムはCPU1が直接解釈
可能なコードで記述されているので、その処理は高速に
実行される。
【0086】ぼかし処理を行った結果得られる新しい画
像データは、RAM5上に記憶され、その先頭アドレス
をスタックに記憶して処理を終了し、処理はアプリケー
ションに戻る。アプリケーションは、スタックに記憶さ
れたこの新しい画像データへのアドレスを参照して、R
AM5上の画像処理が施された画像データを図2の処理
結果画像表示部22に表示する。
【0087】操作者はその処理結果に満足であれば、図
2のOKボタン31を押し、不満であればCancel
ボタン32を押す。
【0088】OKボタン31が押されると、RAM5に
ある回転処理とぼかし処理が加えられた新しい画像デー
タは保持され、次の出力段階に入る。出力段階では、外
部記憶装置への画像データの保存や通信インターフェイ
ス7を介して他の装置への画像データの転送や、不図示
のプリンタへ画像の出力などが行われる。
【0089】Cancelボタン32が押されるとRA
M5にあるぼかし処理が加えられた新しい画像データは
破棄され、画像データの内容は図5に示す回転処理のみ
の状態にもどる。
【0090】また、外部記憶手段9や通信インターフェ
イス7を介して、新しい種類の画像処理が付加された画
像データが転送されてきた場合、従来はアプリケーショ
ンが新しい種類の画像処理に対応したものでなければ、
実際に画像処理を行いプリンタなどに出力することがで
きなかったが、本実施の形態の画像データフォーマット
であれば、画像処理のプログラムが付加されているの
で、処理装置のCPUの種類が同じであれば、古いアプ
リケーションであっても、画像データを処理してプリン
タに出力することが可能である。
【0091】また、図3、図5、図6で説明してきたデ
ータフォーマットは、記憶手段6や外部記憶手段9など
に、連続した1つのデータ(ファイル)として保存され
ることを前提としている。しかし、CPUが直接アクセ
スするRAM5に本実施の形態の画像データがロードさ
れ画像処理が行われる場合には、画像処理ブロック10
2、汎用画像データ部101、オペレーションブロック
110,120などが連続している必要はなく、各ブロ
ックが不連続でメモリ上にロードされてもよく、アプリ
ケーションが効率良く処理を実行できるような状態でR
AM5上にロードされればよい。この場合、105、1
06、111、121などの各種ポインタはRAM5上
にロードされた際のアドレス等に変換すれば良いのは言
うまでもない。
【0092】また、これまでの説明において画像データ
に変更が加えられるたびに、逐次記憶装置6上の画像デ
ータファイルが更新されるように説明してきたが、常に
RAM5上のデータのみを更新しておき、記憶手段に保
存する必要が生じた場合のみ、説明したデータフォーマ
ットで記憶手段に保存するようにしても良いのは言うま
でもない。
【0093】また、上記例では、設定された回転処理と
ぼかし処理とを順に実行して、処理結果画像表示部22
に表示する例を示したが、画像処理ヘッダ部に連結され
た画像オペレーション・ブロックの処理を表示して、そ
の中からオペレータが所望の処理のみを選択して実行す
るようにしてもよい。
【0094】(第1の画像データ作成例を実現するため
のデータ例)図16に、本実施の形態の第1の画像デー
タ作成例を実現するために予めRAM5や記憶装置6や
外部記憶装置9に準備されているデータ例を示す。
【0095】上記本実施の形態の動作において、画像処
理ヘッダ部やプログラムコードを含むオペレーションブ
ロックの作成については、逐次組立てるように記載され
ているが、例えば、図16の上図のように、識別子以外
は初期値が入った画像処理ヘッダ部302を予め画像処
理ヘッダ部・ポインタ301の指すアドレスに用意し、
これを読み出して汎用画像データに付加するようにする
と迅速な処理が可能になる。一方、図16の下図のよう
に、各オペレーションのポインタ310aとそのオペレ
ーションのプログラムの圧縮方式や言語体系等310b
とから成る複数のオペレーションを指示するオペレーシ
ョンデーブル310を設け、例えば、回転処理(Rotate)
のオペレーションブロックをブロック311から生成
し、ボカシ処理(Blur)のオペレーションブロックをブロ
ック312から生成し、カラーセピア化処理(Sepia)の
オペレーションブロックをブロック313から生成し、
オプショナルに設定されるオペレーションブロックをブ
ロック314から生成する。このようにして、画像処理
ヘッダ部やプログラムコードを含むオペレーションブロ
ックが迅速に作成できる。
【0096】(第1の画像データ作成例の概略手順を示
すフローチャート)図17に、本実施の形態の第1の画
像データ作成例の概略手順を示すフローチャートを示
す。
【0097】通信インターフェース7や外部記憶装置9
から画像データが入力されると、まずステップS101
で画像データの所定位置(本例では先頭の5バイト)
が”00FID”であるか否かを判定する。”00FI
D”でなければ、ステップS102で汎用画像データに
画像処理ヘッダ部を付加して、ステップS105で図2
のような画像オペレーション・メニューを表示する。”
00FID”であれば、ステップS103で画像オペレ
ーション数が0か否かを判定する。画像オペレーション
数が0であれば、ステップS105に進んで図2のよう
な画像オペレーション・メニューを表示する。画像オペ
レーション数が0で無ければ、ステップS104で既に
設定されている画像オペレーションを実行し、ステップ
S105に進んで図2のような画像オペレーション・メ
ニューを表示する。ステップS104を経てきた場合
は、画像オペレーション実行後の画像が処理結果画像表
示部22に表示される。
【0098】ステップS106で画像オペレーションの
選択を待って、画像オペレーションの選択入力がある
と、ステップS107で選択された画像オペレーション
のオペレーション・ブロックを追加し、ステップS10
8でオペレーション・ブロックの追加に対応して画像処
理ヘッダ部を更新し、ステップS109で新たなオペレ
ーション・ブロックのプログラムコードを必要であれば
解凍及び/又は解釈して、実行し、その結果を処理結果
画像表示部22に表示する。
【0099】ステップS110で画像オペレーション・
メニューの選択を待って、”OK”の場合は画像データ
の作成処理を終了し、”Cancel”の場合は、ステ
ップS111で新たに追加したオペレーション・ブロッ
クを削除して、画像処理ヘッダ部(及び前のオペレーシ
ョン・ブロック)を更新して、ステップS106に戻
り、他の画像オペレーションが選択された場合は、ステ
ップS107に戻ってオペレーション・ブロックを追加
する。
【0100】尚、本フローチャートは、本実施の形態の
一部を概略的に示したものであってこれに限定されるこ
とはなく、上記処理説明に基づいた種々の変更、追加、
修飾が可能である。
【0101】(本実施の形態の画像データの第2の作成
例)本実施の形態の処理を行う画像処理装置の全体構成
は、上記と同様、図1のブロック構成である。各部の内
容に関しては同様であるのでここでの説明は割愛する
が、ROM4やRAM5、記憶装置6などに記憶される
プログラムと、そのプログラムが扱う画像データフォー
マットが異なっている。
【0102】本実施の形態においては、汎用画像データ
を読み込み、記憶装置6にデータが記憶される際、汎用
の画像データに対応づけたファイルとして、図7の20
2に示す画像処理ヘッダ部ファイルが付加される。この
画像処理ヘッダ部ファイル202は、識別子203、画
像処理グループ数204、最初の画像処理グループへの
ポインタ205、画像へのポインタ206の各ブロック
で構成され、アプリケーションが画像を扱う際、最初に
参照するファイルとなる。
【0103】識別子203は、同データをプログラムが
参照する際、データの安全性を高めるための1つの手法
であり、固定バイト数の中に所定のコードを設定したも
のが使用される。たとえば、本例においては、“OOF
ID2”という6バイトコードを埋め込んでおく。これ
により、プログラムが本データを参照する際に、先頭の
6バイトが“OOFID2”でなければ、本実施の形態
の画像データフォーマットではないと判断することがで
きる。また、先頭の6バイトが“OOFID2”であれ
ば、本実施の形態の画像データフォーマットの可能性が
高いと判断することができる。コードの長さや内容は既
存の画像データフォーマットの識別子と異なるものであ
ればどのようなものであってもかまわない。
【0104】画像処理グループ数204は、対象となる
1つの画像データに対して、何種類の画像処理グループ
を割り当てているかをあらわしている。詳細に関しては
後述する。初期状態では、どのような画像処理グループ
も登録されていないので、画像処理グループ数204の
内容は0である。
【0105】最初の画像処理グループへのポインタ20
5は、最初の画像処理グループファイルのファイル名を
格納する固定長のバッファである。本例においては、各
種データが別々のファイルに記録されるので、それらの
データを指し示すポインタとして、本例ではファイル名
を使用する。したがって、最初の画像処理グループへの
ポインタ205も、例えば1024バイトの文字列バッ
ファであり、このバッファ内に最初の画像処理グループ
を表すファイルのファイル名が格納される。
【0106】ファイル名のバッファは必ずしも固定長で
ある必要はなく、例えば文字列の終端のコードを0など
ときめておけば、可変長のバッファとして扱うことも可
能である。以下の説明においても説明を具体的に行うた
めに、個々のデータの保存内容について説明している
が、本実施の形態はこうした保存フォーマットをなんら
限定するものではない。初期状態では、どのような画像
処理グループも登録されていないので、最初の画像処理
グループへのポインタ205は、空の文字列が設定され
ている。
【0107】画像へのポインタ206は、処理対象とな
る汎用画像データファイルの場所を示すための固定長の
文字列バッファであり、このバッファ内に処理対象画像
のファイル名が格納される。例えば、外部記憶装置9や
通信インターフェイス7などを経由して入力され記憶装
置6に保存された汎用画像データファイルのファイル名
が"/image/sample.jpg"であった場合、画像へのポイン
タ206には、そのファイル名の文字列データが格納さ
れる。
【0108】以上の識別子203、画像処理グループ数
204、最初の画像処理グループへのポインタ205、
画像へのポインタ206から構成される画像処理ヘッダ
部ファイル202は、記憶装置6に例えばファイル名"/
data/oofid1.oof"などの1つのファイルとして保存され
る。
【0109】外部記憶手段9などから読み込まれた画像
データが、すでに本実施の形態の画像データフォーマッ
トであることが確認された場合(例えば、先頭の6バイ
トが“OOFID2”で構成されていることが確認され
た場合)、このような画像処理ヘッダ部ファイルを付加
する必要はない。
【0110】読み込まれた画像データは、ディスプレイ
2に表示される。図8はディスプレイへの表示例であ
り、読み込まれた画像データは同図中の原画像表示部4
1に表示される。
【0111】本実施の形態においては、1つの画像デー
タに複数の画像処理を並列に付加することができ、出力
の際には並列に付加した複数の画像処理内容のうちの1
つを選択して出力することができるようになっている。
この並列に付加できる複数の画像処理(オペレーショ
ン)の集合を、ここでは”画像処理グループ”と呼んで
いる。
【0112】(第1画像処理グループの追加例)図8の
画像処理グループ追加ボタン(New Group)44を押す
と、画像に対して新しい画像処理グループの追加が行わ
れ、この時点での画像データは図9のようになる。すな
わち、画像処理グループ管理ファイル210が作成さ
れ、ファイル"/data/oogrp1.oog"として保存される。こ
こでは、最初に作成されたこの画像処理グループを”第
1画像処理グループ”と称す。
【0113】画像処理グループ管理ファイル210は、
識別子211、次の画像処理グループへのポインタ21
2、グループ内のオペレーション数213、最初のオペ
レーションへのポインタ214から構成される。
【0114】識別子211の内容は例えば“OOFID
_GRP”である。
【0115】次の画像処理グループへのポインタ212
は、第2画像処理グループが作成された際に、そのグル
ープを参照するためのポインタであるが、最初の状態で
は空の文字列が記録される。
【0116】グループ内のオペレーション数213は、
第1画像処理グループに登録されているオペレーション
の数を記録しておくブロックであるが、初期状態では0
が記録される。
【0117】最初のオペレーションへのポインタ214
は、第1画像処理グループに登録される最初のオペレー
ションへのポインタであるが、初期状態では空の文字列
が記録される。
【0118】また、画像処理ヘッダファイル202内の
最初の画像処理グループへのポインタ205には、第1
画像処理グループ管理ファイル210のファイル名が格
納され、画像処理グループ数204の値は1となる。
【0119】図8の画像処理グループ追加ボタン44を
押したあと、画面には図10の画像処理メニューダイア
ログ60が表示され、操作者は画像に追加する画像処理
の内容を選択する。
【0120】図10の61〜68は、画像処理内容を指
示するボタンであり、ボタン61は画像の回転を指示す
るボタン、ボタン62は画像のトリミングを指示するボ
タン、ボタン63は色補正を指示するボタン、ボタン6
4はカラー画像を白黒化するボタン、ボタン65は画像
にぼかしを加えるボタン、ボタン66は画像のシャープ
ネスを上げるボタン、ボタン67はコントラスト調整を
指示するボタン、ボタン68はカラーセピア化を指示す
るボタンである。
【0121】例えば、トリミングボタン62を押すと、
図11のトリミング領域指定ダイアログが開く、画像表
示部71には画像が表示され、ここでポインティング装
置8やキーボード3などの入力装置を用いて、トリミン
グ領域72を指定する。指定が完了したらOKボタン7
3を押し、トリミングの指定が完了する。
【0122】この時点での画像データは図12のように
なり、オペレーションファイル220がファイル名"/da
ta/op001.opf"として保存される。
【0123】オペレーションファイル220は、次のオ
ペレーションへのポインタ221(初期状態では空文字
列)と画像処理の内容を現わすプログラムコード224
とそのサイズを現わすプログラムコードサイズ222、
画像処理を行うのに必要なパラメータを格納する処理デ
ータ225とそのサイズを現わすデータサイズ223の
各ブロックで構成される。
【0124】トリミングオペレーションの場合は、画像
をトリミングするためのプログラムコードがプログラム
コード224に記憶される。このプログラムコードは、
トリミングを行うプログラムとして、あらかじめ記憶手
段6もしくはROM4、もしくはRAM5などに記憶さ
れており、その内容が転送される。
【0125】プログラムコードの内容は、CPU1が解
釈可能なコードで記述されており、これにより後々実際
の画像処理を行う際、その処理を高速に行うことが可能
となる。また、プログラムコード(データを含む)は公
知のデータ圧縮技術により、記憶装置6などへの保存の
際にはそのサイズを圧縮しておき、プログラムを実行
時、RAM5に転送する際に、プログラムやデータの内
容を解凍して転送して実行するようにすると、本実施の
形態の画像データを保存する際に必要とする容量を低減
することができる。
【0126】又、プログラムコードの内容は、CPUの
種類に依存しない中間言語で記述されており、あらかじ
め記憶手段6もしくはROM4、もしくはRAM5に記
憶されている“中間言語からCPU1が解釈可能な命令
に変換するプログラム”を介して処理されるように記述
されている。(具体的には、Sun Micro SystemsのJA
VA(商標)言語などがある。)中間言語は様々なプロ
グラムに利用可能な汎用的な処理言語体系を有していて
もよいし、画像処理プログラムに特化した特別な言語体
系を用いたものでもよいが、将来性を考慮すると、画像
処理に対して強化されており、なおかつ様々なプログラ
ムに利用可能な汎用的な処理言語体系が好ましい。こう
した、中間言語を用いることにより、CPUに依存しな
い画像処理プログラムコードを準備しておくことが可能
となる。
【0127】トリミング処理自体のプログラムには特に
新規性は必要なく公知の方法で十分であるため、コード
の内容自体に関しては省略する。ただし、メモリのどの
位置にこのプログラムがロードされても実行可能なよう
に、コードはリロケータブルにコーディングされたもの
であるものが好ましい。
【0128】プログラムコードサイズ222には、トリ
ミング処理プログラムのデータサイズがバイト単位で記
録される。例えば、トリミング処理を行うプログラムの
サイズが、12,000バイトであれば、その値が記録
される。
【0129】処理データ225には、トリミング処理に
必要なパラメータであるトリミング領域の矩形座標が記
憶される。これは、図11のトリミング領域72に相当
する座標である。データサイズ223には処理データの
サイズが記憶される。例えば、前述のトリミング領域の
矩形座標を保存するのに必要な処理データサイズが8バ
イトであれば、8を現わすデータが記録される。
【0130】ここでは次に実行されるオペレーションが
存在しないので、次のオペレーションへのポインタを示
すブロック221には空の文字列が記録される。
【0131】トリミングオペレーションファイル220
の追加に伴い、画像処理グループ管理ファイル210内
のグループ内のオペレーション数213には、現在のオ
ペレーション数の1が記憶される。また、最初のオペレ
ーションへのポインタ214にはトリミングオペレーシ
ョンファイル214へのポインタ、すなわちファイル
名"/data/op001.opf"の文字列が保存される。
【0132】画像に画像処理が加えられるとその処理結
果が、図8の処理結果画像画像表示部42に表示され
る。その過程を以下に説明する。
【0133】アプリケーションは図12の画像処理ヘッ
ダファイルの先頭部の識別子203を参照し、その内容
が“OOFID2”であることを確認する。
【0134】次に、画像へのポインタ206の内容か
ら、汎用の画像データファイル201の内容を参照し、
RAM5に転送する。画像データの転送先のアドレス
は、CPU1のレジスタ(不図示)が保持するスタック
ポインタに追加され、スタックポインタは更新される。
【0135】次に、最初の画像処理グループへのポイン
タ205を参照し、そのファイル名から、画像処理グル
ープファイル210の内容を参照する。グループ内のオ
ペレーション数が1であることを確認して、最初のオペ
レーションへのポインタ241の内容から、オペレーシ
ョンファイル220の内容を参照する。
【0136】プログラムコードブロック224の内容を
RAM5のプログラム領域にロードする。この際、転送
するプログラムコードの転送バイト数はプログラムコー
ドサイズ222の内容を参照する。
【0137】次に、処理データ225の内容をRAM5
のデータ領域に転送し、その転送先のアドレスをスタッ
クポインタに追加する。前記処理データ225の内容を
転送する際、データサイズ223の内容を参照すること
でデータ転送量を知ることができる。
【0138】次に、プログラムはCPU1内で保持する
プログラムカウンタ(不図示)の値を、RAM6上に転
送されたプログラムコードの先頭アドレスに設定し、画
像処理プログラムをサブルーチンとして起動する。プロ
グラムカウンタに関してはCPUを構成する一般的な公
知技術であるので詳細に関しては解説しない。
【0139】プログラムはスタックポインタに蓄積され
た、処理データ225のアドレス、汎用画像データ部2
01のアドレスを実行の際に読み出し、そのアドレスが
指し示す領域の内容を画像処理のパラメータとなる処理
データ、および画像処理の対象となる汎用の画素データ
として認識し、画像回転の処理を行う。
【0140】ここで、画像処理のプログラムは中間コー
ドで記述されているので、CPUの種類やOS(オペレ
ーティングシステム)などには依存せずさまざまな装置
で処理を行うことができる。もちろん、中間言語から各
種CPUが解釈可能な命令に変換するための変換手段
は、それぞれの装置で、事前に準備しておく必要がある
のは言うまでもない。
【0141】画像のトリミングに関する処理の内容に関
しては、公知の技術であり本発明の目的とは直接関係が
ないためここでは省略する。
【0142】トリミング処理を行った結果得られる新し
い画像データは、RAM5上の別の部分に記憶され、ト
リミング処理プログラムは新しい画像データが記憶され
たRAM5上の先頭アドレスをスタックに記憶して処理
を終了し、処理はアプリケーションに戻る。
【0143】アプリケーションは、スタックに記憶され
たこの新しい画像データへのアドレスを参照して、図8
の処理結果画像表示部42にその画像を表示する。
【0144】操作者はその処理結果に満足であれば、図
7のOKボタン51を押し、不満であればCancel
ボタン52を押す。
【0145】OKボタン51が押されると、RAM5に
あるトリミング処理が加えられた新しい画像データは保
持され、次の出力段階に入る。
【0146】Cancelボタン52が押されるとRA
M5にあるトリミング処理が加えられた新しい画像デー
タは破棄され、画像データの内容は図7又は図9の状態
に戻る。ここで、図7と図9のいずれに戻るかは操作者
により自由に選択される。
【0147】(第1画像処理グループへの他のオペレー
ションの追加例)ここで、図8のオペレーション追加ボ
タン(Add Effect)45を押すと、トリミング処理を加え
た画像にさらに別の画像処理を追加することができる。
【0148】このオペレーション追加ボタンを押すと図
10の画像処理メニューダイアログ60が表示され、追
加する画像処理の内容を選択することができる。ここ
で、例えば66のシャープネスを変更するボタンを押す
と、公知の画像の尖鋭度を強調するアンシャープマスク
などの処理が加えられ、画像データの内容は図13のよ
うに、オペレーションファイル230(ファイル名:"/
data/op002.opf")が保存される。
【0149】シャープネスオペレーションファイル23
0の、次のオペレーションへのポインタは初期状態で空
文字が入る。
【0150】シャープネスオペレーションの場合は、画
像の尖鋭度を上げるためのプログラムコードがプログラ
ムコードブロック234に記憶される。このプログラム
コードは、あらかじめ記憶手段6もしくはROM4、も
しくはRAM5などに記憶されており、その内容が転送
される。プログラムコードの内容は、先程のトリミング
を行うプログラムと同様、CPUの種類に依存しない中
間言語で記述されており、あらかじめ圧縮されて記憶手
段6もしくはROM4、もしくはRAM5に記憶されて
いる“中間言語からCPU1が解釈可能な命令に変換す
るプログラム”を介して処理されるように記述されてい
る。こうした、中間言語を用いることにより、CPUに
依存しない画像処理プログラムコードを準備しておくこ
とが可能となる。シャープネス向上の処理自体のプログ
ラムには特に新規性は必要なく公知の方法で十分である
ため、コードの内容自体に関しては省略する。
【0151】プログラムコードサイズブロック232に
は、シャープネス処理プログラムのデータサイズがバイ
ト単位で記録される。例えば、シャープネス処理を行う
プログラムのサイズが、18,000バイトであれば、
その値が記録される。
【0152】処理データ235には、シャープネス処理
に必要なパラメータが記憶される。例えば、事前にユー
ザがシャープネスを上げるレベルを選択し、それに応じ
たパラメータをここに記述すればよい。データサイズ2
33には処理データのサイズが記憶される。例えば、前
述のシャープネス処理に必要なパラメータの処理データ
サイズが記録される。
【0153】ここでは次に実行されるオペレーションが
存在しないので、次のオペレーションへのポインタを示
すブロック231には空の文字列が記録される。
【0154】シャープネスオペレーションファイル23
0の追加に伴い、画像処理グループ管理ファイル210
内のグループ内のオペレーション数213には、現在の
オペレーション数の2が記憶される。また、トリミング
オペレーションファイル220内の次のオペレーション
へのポインタ221にはシャープネスオペレーションフ
ァイル230へのポインタ、すなわちファイル名"/data
/op002.opf"の文字列が保存される。
【0155】シャープネス処理が追加されると、図8の
処理結果画像表示部42にその画像が表示される。処理
される内容は、前述のトリミング処理が加えられた場合
の流れに準ずるが、図13のグループ内のオペレーショ
ン数が2になっていることと、また、トリミングオペレ
ーションファイル220内の次のオペレーションへのポ
インタが空文字ではなく、つぎにオペレーションが続く
ことから、シャープネスオペレーションファイル230
内のシャープネスオペレーションをさらに実施し、その
処理結果を表示するようになる点が異なる。
【0156】操作者はその処理結果に満足であれば、図
7のOKボタン51を押し、不満であればCancel
ボタン52を押す。
【0157】OKボタン51が押されると、RAM5に
あるシャープネス処理が加えられた新しい画像データは
保持され、出力段階に入る。
【0158】Cancelボタン52が押されるとRA
M5にあるシャープネス処理が加えられた新しい画像デ
ータは破棄され、画像データの内容は図7又は図9又は
図12の状態に戻る。ここで、図7と図9と図12のい
ずれに戻るかは操作者により自由に選択される。
【0159】ここで、さらに図8のオペレーション追加
ボタン46を押すと、トリミング処理とシャープネスを
加えた画像にさらに、追加で画像処理を加えることがで
きる。
【0160】(第2画像処理グループの追加例)また、
ここで図9の画像処理グループ追加ボタン44を押す
と、それまでかけた画像処理とは並列に、別の画像処理
オペレーションを追加することができる。
【0161】画像処理グループ追加ボタン44を押すと
図10の画像処理メニューダイアログ60が表示され
る。これまで説明と同様に、メニューの中から1つのオ
ペレーションを選択し、必要な場合にはオペレーション
の実行に必要なパラメータを操作者が入力して新しい第
2画像処理グループに画像処理のオペレーションが1つ
追加されると、画像データの構造は図14のようにな
る。第2画像処理グループ管理ファイル240(ファイ
ル名:"/data/oogrp2.oog")が作成され、その最初の画
像処理オペレーションとして、新しいオペレーションを
現わすオペレーションファイル250(ファイル名:"/
data/op003.opf")が作成される。
【0162】画像処理グループ管理ファイル240とオ
ペレーションファイル250の概要は、第1画像処理グ
ループでの説明と同様であるので説明は割愛する。
【0163】第2画像処理グループが作成されると、第
1画像処理グループ管理ファイル210内の次の画像処
理グループへのポインタ212の内容は、第2画像処理
グループ管理ファイルのファイル名"/data/oogrp2.oog"
が設定される。また、画像処理ヘッダファイル内202
の画像処理グループ数204の値は2に設定される。
【0164】このように第2画像処理グループが作成さ
れ、その中に新しい画像処理オペレーションが追加され
ると、図8の画像処理グループ番号表示部43の表示は
2となり、画像処理結果表示部42の表示は原画像に対
して第2画像処理グループの画像処理が加えられた結果
が表示される。
【0165】表示の際に行われる実際の画像処理は、第
1画像処理グループの画像処理を行う場合とほぼ同様な
ので詳細説明は割愛する。異なっている点は、出力対象
となっているのが第2画像処理グループの処理結果であ
るので、図14においてアプリケーションは、最初の画
像処理グループへのポインタ205から、画像処理グル
ープ管理ファイル210をたどるが、第1画像処理グル
ープのオペレーション220、230は無視する。そし
て、次の画像処理グループへのポインタ212の内容か
ら、第2画像処理グループ管理ファイル240を見つけ
た時点で、その画像処理グループ内のオペレーションの
処理を開始するようになる点である。そのオペレーショ
ンの処理方法は第1画像処理グループの際に説明した方
法と同様である。
【0166】尚、画像処理グループ番号表示部43の内
容は、操作者が、ポインティング装置8とキーボード3
などで変更可能となっており、この番号を1に変更する
と、画像処理結果表示部42の表示内容は第1画像処理
グループの画像処理が施された結果が再度表示され、第
1画像処理グループの画像処理を施した画像が出力や処
理の対象となる。
【0167】また、さらに任意の画像処理グループに任
意の画像処理を追加することも可能であり、例えば画像
処理グループ番号表示部43の内容を2番に変更し、オ
ペレーション追加ボタン45を押しさらにオペレーショ
ンを追加していくことも、もちろん可能である。
【0168】図15は第1画像処理グループに2つの画
像処理オペレーションを追加し、第2画像処理グループ
に全部で3つの画像処理オペレーションを追加した際の
画像データ構造の例を示している。
【0169】また、画像処理グループ追加ボタン44を
押すことで、さらに第3画像処理グループ、第4画像処
理グループというように、画像処理グループを追加して
行くことも可能であり、そのグループの上限は画像処理
グループ数ブロック204の容量次第で非常に多くの画
像処理グループを付加することが可能となる。
【0170】また、上記例では、1つの画像処理グルー
プでは設定された複数の処理を順に実行して、処理結果
画像表示部42に表示する例を示したが、画像処理ヘッ
ダ部ファイルに連結された画像オペレーション・ブロッ
クの処理を表示して、その中からオペレータが所望の処
理のみを選択して実行するようにしてもよい。
【0171】一方、上記例では、1つの画像処理グルー
プを選択して設定された複数の処理を順に実行して、処
理結果画像表示部42に表示する例を示したが、画像処
理ヘッダ部ファイルに連結された全ての画像オペレーシ
ョン・ブロックの処理を実行、あるいは選択された複数
の画像処理グループを実行して、処理結果画像表示部4
2に表示するようなモードを設けてもよい。
【0172】(第2の画像データ作成例を実現するため
のデータ例)図18に、本実施の形態の第2の画像デー
タ作成例を実現するために予めRAM5や記憶装置6や
外部記憶装置9に準備されているデータ例を示す。尚、
第2の画像データ作成例では、図16の下図の画像オペ
レーション・ブロックのテーブルも使用される。
【0173】上記本実施の形態の動作において、画像処
理ヘッダ部ファイルや画像処理グループ管理ファイルの
作成については、逐次組立てるように記載されている
が、例えば、図18のように、識別子以外は初期値が入
った画像処理ヘッダ部ファイル402や画像処理グルー
プ管理ファイル404を、予め画像処理ヘッダ部ファイ
ル・ポインタ401や画像処理グループ管理ファイル・
ポインタ403の指すアドレスに用意し、これを読み出
して汎用画像データに付加するようにすると迅速な処理
が可能になる。
【0174】尚、オペレーションブロックの生成・追加
については、図16での説明と同様なので、ここでは割
愛する。このようにして、画像処理ヘッダ部ファイルや
画像処理グループ管理ファイルが迅速に作成できる。
【0175】(第2の画像データ作成例の概略手順を示
すフローチャート)図19に、本実施の形態の第2の画
像データ作成例の概略手順を示すフローチャートを示
す。
【0176】通信インターフェース7や外部記憶装置9
から画像データが入力されると、まずステップS201
で画像データの所定位置(本例では先頭の6バイト)
が”00FID2”であるか否かを判定する。”00F
ID2”でなければ、ステップS202で汎用画像デー
タに画像処理ヘッダ部ファイルを付加して、ステップS
203で図8のような画像処理メニューを表示する。”
00FID2”であれば、ステップS203に進んで図
8のような画像処理メニューを表示する。
【0177】ステップS204で画像処理メニューから
のボタン指示を待って、New Group44が指示されると
ステップS205に進んで、新たな画像処理グループ管
理ファイルを追加して、ステップS206で画像処理ヘ
ッダ部ファイル(及び前の画像処理グループ管理ファイ
ル)を更新して、ステップS207に進む。
【0178】OK51が指示されるとステップS213
に進んで、画像処理グループの選択(グループ番号43
への入力)を待って、選択があればステップS214で
選択された画像処理グループの画像処理オペレーション
が必要であれば解凍及び/又は解釈の基に実施され、ス
テップS203の画像処理メニューの表示に戻る。この
場合、画像オペレーション実行後の画像が処理結果画像
表示部42に表示される。
【0179】ADD Effect45が指示されると、ステップ
S207で図10のような画像オペレーション・メニュ
ーを表示する。
【0180】ステップS208で画像オペレーションの
選択を待って、画像オペレーションの選択入力がある
と、ステップS209で選択された画像オペレーション
のオペレーション・ブロックを追加し、ステップS21
0でオペレーション・ブロックの追加に対応して画像処
理グループ管理ファイルを更新し、ステップS211で
ボタンの指示を待つ。
【0181】New Group44が指示されるとステップS
205に戻って、次の画像処理グループを追加する。Ad
d Effect45が指示されるとステップS207に戻っ
て、図10のような画像オペレーション・メニューを表
示し、現在の画像処理グループに新たなオペレーション
・ブロックの追加を待つ。Cancel52が指示されるとス
テップS212に進んで、新たに追加されたオペレーシ
ョン・ブロックを削除して、画像処理グループ管理ファ
イルを更新し、ステップS207に戻る。又、OK51
が指示されると画像データの作成を終了してリターンす
る。
【0182】尚、本例では画像処理グループ管理ファイ
ルの削除については説明しなかったが、例えば、ステッ
プS212やあるいはステップS206の後に追加して
もよい。本フローチャートは、本実施の形態の一部を概
略的に示したものであってこれに限定されることはな
く、上記処理説明に基づいた種々の変更、追加、修飾が
可能である。
【0183】こうした場合、本実施の形態の画像データ
処理方式では、原画像を複数作成して画像処理を行った
結果を複数保存しておく必要はなく、原画像は1つで済
むため、記憶容量を大幅に節約することが可能となる。
【0184】また、本実施の形態の画像データフォーマ
ットでは、任意の画像処理グループに付加されているオ
ペレーションを削除することにより、容易に画像処理内
容の取り消しや以前の状態に戻すアンドゥ(Undo)処理が
可能であるという特長がある。
【0185】また、本実施の形態の画像データフォーマ
ットでは、例えば画像にトリミングを加えた後、そのト
リミング領域を変更するには、単にデータ領域である例
えば225の内容を変更するだけで済むなど、後で画像
処理のデータを変更することにより、画像処理の効果を
変更することが極めて容易である。
【0186】また、本実施の形態の画像データフォーマ
ットの画像処理プログラムは、異なるCPU間で汎用性
がある、中間コードで記述されているので、外部記憶装
置9や通信インターフェイス7などを介して、他の装置
と本発明の画像データフォーマットを受け渡しする場
合、異なるCPUやOSで樟成される装置であっても、
データに互換性がある。
【0187】また、本実施の形態の画像データフォーマ
ットでは、新たに何らかの画像処理オペレーションが追
加されても、その内容はプログラムで記述されているの
で、その画像処理オペレーションを管理する機能が付加
される以前の処理装置であっても、画像処理を行うこと
ができ、将来にわたって高い互換性を保証することがで
きる。
【0188】なお、図7、図9、図12、図13、図1
4、図15で説明してきたデータフォーマットは、記憶
手段6や外部記憶手段9などに、各データを複数のファ
イルとして保存されることを前提としている。しかし、
CPU1が直接アクセスするRAM5に本実施の形態の
画像データがロードされ画像処理が行われる場合には、
各部がファイル上の内容通りにメモリ上にロードされる
必要はなく、アプリケーションが効率良く処理を実行で
きるような状態でRAM5上にロードされればよい。
【0189】この場合、206、212、214、22
1、231、242、244、251、261、271
などの各種ポインタはRAM5上にロードされた際のア
ドレス等に変換されても良いのは言うまでもなく、アプ
リケーションが効率良く処理を実行されるフォーマット
に変換されてもよい。
【0190】また、これまでの説明において画像データ
に変更が加えられるたびに、逐次記憶装置6上の画像デ
ータファイルが更新されるように説明してきたが、常に
RAM5上のデータのみを更新しておき、記憶手段に保
存する必要が生じた場合のみ、説明したデータフォーマ
ットで記憶手段に保存するようにしても良いのは言うま
でもない。
【0191】<本実施の形態の画像データの出力例> (本実施の形態の画像処理装置の構成例)図20は、上
記本実施の形態で作成された画像データを受信してプリ
ントする画像処理装置の構成例を示すブロック図であ
る。
【0192】図中、501は装置の全体制御を司る演算
制御用のCPU、502は処理画像を表示するLCDな
どのディスプレイ、503は操作者の各種指示データな
どを入力するタッチパネル、504は基本的な処理プロ
グラムやパタメータなどを記憶しているROM、505
は各種処理結果等と、記憶装置6や外部記憶装置9等か
らロードされたプログラムなどを一時的に記憶するRA
M、506は画像データや画像処理プログラムなどを記
憶するハードディスクドライブ(HDD)などの記憶装
置、507は外部の装置と通信回線510を介して通信
するための通信インターフェイス、508は画像データ
を紙などの媒体上に可視化するプリンタ、509はフロ
ッピーディスクドライブや光磁気ディスクドライブ、C
D−ROM、CD−Rなど、いわゆるリムーバブルメデ
ィアを制御する外部記憶装置である。これらの機器はバ
ス511によって相互に接続されている。
【0193】(本実施の形態の画像処理装置の処理例)
以上の構成により、本実施の形態の画像処理装置は、受
信した画像データに当該画像処理装置において定義され
ていないオペレーションをも施して、プリンタ508に
その結果を出力することが可能である。
【0194】以下、その処理手順例を図21のフローチ
ャートに従って、概略説明する。
【0195】通信インターフェース507あるいは外部
記憶装置509等から、本実施の形態に従って作成され
た画像データが入力されると、まず、ステップS301
で所定位置(本例では、先頭の5バイト)が”00FI
D”か否かを判断する。”00FID”であれば、ステ
ップS302に進んで、所定位置(本例では、先頭の6
バイト)が”00FID2”か否かを判断する。
【0196】”00FID2”であればステップS30
3に進んで、図8のような画像処理メニューを表示し、
ステップS304で画像処理グループの選択(画像処理
グループ番号43の入力)を待って、入力があればステ
ップS305に進んで、選択された画像処理グループの
画像オペレーションの処理を必要であれば解凍及び/又
は解釈を行って実施して、ステップS306に進んで画
像オペレーションが済んだ画像データをプリントする。
一方、”00FID2”でなければステップS305に
進んで、画像オペレーションの処理を実施して、ステッ
プS306に進んで画像オペレーションが済んだ画像デ
ータをプリントする。
【0197】ステップSで先頭の5バイトが”00FI
D”でなければ、ステップS306に進んで画像オペレ
ーション無しに画像データをプリントする。
【0198】なお、本発明は、複数の横器(例えばホス
トコンピュータ、インタフェイス機器、リーダ、プリン
タなど)から構成されるシステムに適用しても、1つの
機器からなる装置(例えば、複写機、ファクシミリ装置
など)に適用してもよい。
【0199】また、本発明の目的は、前述した実施例の
機能を実現するソフトウェアのプログラムコードを記録
した記憶媒体を、システムあるいは装置に供給し、その
システムあるいは装置のコンピュータ(またはCPUや
MPU)が記憶媒体に格納されたプログラムコードを読
み出し実行されることによっても、達成されることは言
うまでもない。
【0200】この場合、記憶媒体から読み出されたプロ
グラムコード自体が前述した実施系の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0201】プログラムコードを供給するための記憶媒
体としては、例えばフロッピーディスク、ハードディス
ク、光ディスク、光磁気ディスク、CD−ROM、CD
−R、磁気テープ、不揮発性のメモリカード、ROMな
どを用いることができる。
【0202】また、コンピュータが読み出したプログラ
ムコードを実行することにより、前述した実施例の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが、実際の処理の一部または
全部を行い、その処理によって前述した実施例の機能が
実現される場合も含まれることは言うまでもない。
【0203】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張ボー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書き込まれた後、そのプログラムコードの指
示に基づき、その機能拡張ボードや機能拡張ユニットに
備わるCPUなどが実際の処理の一部または全部を行
い、その処理によって前述した実施例の機能が実現され
る場合も含まれることは言うまでもない。
【0204】
【発明の勃果】以上説明したように、本発明によれば、
画像処理内容の取り消しや変更、追加を容易に行うこと
ができる特長を有し、なおかつ将来新しい画像処理内容
が追加されても、互換性を保証することが可能な画像処
理方法とその装置、及びそれに使用される画像データフ
ォーマットを提供できる。
【0205】また、CPUが直接解釈可能な画像処理の
プログラムを画像データの内部に組み込むことにより、
画像処理内容の取り消しや変更、追加を容易に行うこと
ができる特長を有しつつ、なおかつ将来新しい画像処理
内容が追加されても、互換性を保証することが可能であ
り、しかも高速な画像処理を行うことが可能な画像処理
方法とその装置、及びそれに使用される画像データフォ
ーマットを提供できる。
【0206】また、CPUやハードウエア、OSに依存
しない中間コードで記述された画像処理のプログラムを
画像データの内部に組み込むことにより、画像処理内容
の取り消しや変更、追加を容易に行うことができる特長
を有しつつ、なおかつ将来新しい画像処理内容が追加さ
れても、互換性を保証することが可能であり、しかもよ
り多くの種類の処理系で互換性を有する画像処理方法と
その装置、及びそれに使用される画像データフォーマッ
トを提供できる。
【図面の簡単な説明】
【図1】本実施の形態にかかる画像データ作成を行う画
像処理装置の構成例を説明するブロック図である。
【図2】第1の画像データ形成例にかかる画面の表示例
を示す図である。
【図3】第1の画像データ形成例にかかる画像データフ
ォーマットの内部構造を説明する図である。
【図4】本実施の形態にかかる画像回転処理の回転角を
指示するダイアログを説明する図である。
【図5】第1の画像データ形成例にかかる画像データフ
ォーマットの内部構造を説明する図である。
【図6】第1の画像データ形成例にかかる画像データフ
ォーマットの内部構造を説明する図である。
【図7】第2の画像データ形成例にかかる画像データフ
ォーマットの内部構造を説明する図である。
【図8】第2の画像データ形成例にかかる画面の表示例
を示す図である。
【図9】第2の画像データ形成例にかかる画像データフ
ォーマットの内部構造を説明する図である。
【図10】第2の画像データ形成例にかかる画像処理の
種類を選択するダイアログを説明する図である。
【図11】本実施の形態にかかる画像トリミング範囲の
指示を行う画面を説明する図である。
【図12】第2の画像データ形成例にかかる画像データ
フォーマットの内部構造を説明する図である。
【図13】第2の画像データ形成例にかかる画像データ
フォーマットの内部構造を説明する図である。
【図14】第2の画像データ形成例にかかる画像データ
フォーマットの内部構造を説明する図である。
【図15】第2の画像データ形成例にかかる画像データ
フォーマットの内部構造を説明する図である。
【図16】第1の画像データ形成例にかかる画像データ
の作成に使用されるデータ構成例を説明する図である。
【図17】第1の画像データ形成例にかかる画像データ
の作成手順例を示すフローチャートである。
【図18】第2の画像データ形成例にかかる画像データ
の作成に使用されるデータ構成例を説明する図である。
【図19】第2の画像データ形成例にかかる画像データ
の作成手順例を示すフローチャートである。
【図20】本実施の形態にかかる画像データ出力を行う
画像処理装置の構成例を説明するブロック図である。
【図21】本実施の形態にかかる画像データの出力手順
例を示すフローチャートである。

Claims (40)

    【特許請求の範囲】
  1. 【請求項1】 画像データに画像処理を施し、その処理
    結果を出力する画像処理方法において、 画像データに施す画像処理のプログラムコードを、前記
    画像データに対応づけて前記画像データと共に記憶し、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に記憶された前記プログラムコードを実行
    し、その結果得られる画像を出力することを特徴とする
    画像処理方法。
  2. 【請求項2】 前記記憶工程では、1つの前記画像デー
    タに対応づけて複数の画像処理のプログラムコードを前
    記画像データと共に記憶し、 前記出力工程では、前記複数の画像処理のプログラムコ
    ードの中から少なくとも1つのプログラムコードを選択
    し、これを前記画像データに対して実行した結果得られ
    る画像を出力することを特徴とする請求項1に記載の画
    像処理方法。
  3. 【請求項3】 画像データに画像処理を施し、その処理
    結果を出力する画像処理方法において、 画像データに施す画像処理に相当する単数もしくは複数
    のプログラムコードを1つの画像処理グループとして、
    前記画像データに対応づけて前記画像データと共に記憶
    し、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に記憶された前記画像処理グループに含ま
    れる全てのプログラムコードを逐次実行し、その結果得
    られる画像を出力することを特徴とする画像処理方法。
  4. 【請求項4】 前記記憶工程では、1つの前記画像デー
    タに複数の画像処理グループを対応づけて前記画像デー
    タと共に記憶し、 前記出力工程では、複数の画像処理グループの中から1
    つの画像処理グループを選択し、その画像処理グループ
    内の全てのプログラムコードを逐次実行し、その結果得
    られる画像を出力することを特徴とする請求項3に記載
    の画像処理方法。
  5. 【請求項5】 画像データに画像処理を施し、その処理
    結果を出力する画像処理方法において、 画像データに施す画像処理のプログラムコードを、前記
    画像データに対応づけて前記画像データと共に転送し、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に転送された前記プログラムコードを実行
    し、その結果得られる画像を出力することを特徴とする
    画像処理方法。
  6. 【請求項6】 前記転送工程では、1つの前記画像デー
    タに対応づけて複数の画像処理のプログラムコードを前
    記画像データと共に転送し、 前記出力工程では、前記複数の画像処理のプログラムコ
    ードの中から少なくとも1つのプログラムコードを選択
    し、これを前記画像データに対して実行した結果得られ
    る画像を出力することを特徴とする請求項5に記載の画
    像処理方法。
  7. 【請求項7】 画像データに画像処理を施し、その処理
    結果を出力する画像処理方法において、 画像データに施す画像処理に相当する単数もしくは複数
    のプログラムコードを1つの画像処理グループとして、
    前記画像データに対応づけて前記画像データと共に転送
    し、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に転送された前記画像処理グループに含ま
    れる全てのプログラムコードを逐次実行し、その結果得
    られる画像を出力することを特徴とする画像処理方法。
  8. 【請求項8】 前記転送工程では、1つの前記画像デー
    タに複数の画像処理グループを対応づけて前記画像デー
    タと共に転送し、 前記出力工程では、複数の画像処理グループの中から1
    つの画像処理グループを選択し、その画像処理グループ
    内の全てのプログラムコードを逐次実行し、その結果得
    られる画像を出力することを特徴とする請求項7に記載
    の画像処理方法。
  9. 【請求項9】 前記プログラムコードは、画像処理を行
    うコンピュータの中央演算装置が直接的に解釈可能なプ
    ログラムコードで構成されていることを特徴とする請求
    項1乃至8のいずれか1つに記載の画像処理方法。
  10. 【請求項10】 前記プログラムコードは、画像処理を
    行うコンピュータの中央演算装置の種類に依存しない中
    間プログラムコードで構成されていることを特徴とする
    請求項1乃至8のいずれか1つに記載の画像処理方法。
  11. 【請求項11】 前記中間プログラムコードは、実行前
    に解釈されて、画像処理を行うコンピュータの中央演算
    装置が直接的に解釈可能なプログラムコードに変換され
    ることを特徴とする請求項10記載の画像処理方法。
  12. 【請求項12】 前記プログラムコードは、記憶媒体に
    保存される際、あるいは転送される際に、データ圧縮技
    術により圧縮され、プログラムコードの実行時に解凍し
    て実行されることを特徴とする請求項1乃至8のいずれ
    か1つに記載の画像処理方法。
  13. 【請求項13】 画像データに画像処理を施し、その処
    理結果を出力する画像処理装置において、 画像データに施す画像処理のプログラムコードを、前記
    画像データに対応づけて前記画像データと共に記憶する
    記憶手段と、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に記憶された前記プログラムコードを実行
    し、その結果得られる画像を出力する出力手段とを有す
    ることを特徴とする画像処理装置。
  14. 【請求項14】 前記記憶手段は、1つの前記画像デー
    タに対応づけて複数の画像処理のプログラムコードを前
    記画像データと共に記憶し、 前記出力手段は、前記複数の画像処理のプログラムコー
    ドの中から少なくとも1つのプログラムコードを選択
    し、これを前記画像データに対して実行した結果得られ
    る画像を出力することを特徴とする請求項13に記載の
    画像処理装置。
  15. 【請求項15】 画像データに画像処理を施し、その処
    理結果を出力する画像処理装置において、 画像データに施す画像処理に相当する単数もしくは複数
    のプログラムコードを1つの画像処理グループとして、
    前記画像データに対応づけて前記画像データと共に記憶
    する記憶手段と、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に記憶された前記画像処理グループに含ま
    れる全てのプログラムコードを逐次実行し、その結果得
    られる画像を出力する出力手段とを有することを特徴と
    する画像処理装置。
  16. 【請求項16】 前記記憶手段は、1つの前記画像デー
    タに複数の画像処理グループを対応づけて前記画像デー
    タと共に記憶し、 前記出力手段は、複数の画像処理グループの中から1つ
    の画像処理グループを選択し、その画像処理グループ内
    の全てのプログラムコードを逐次実行し、その結果得ら
    れる画像を出力することを特徴とする請求項15に記載
    の画像処理装置。
  17. 【請求項17】 画像処理を施す画像データを作成する
    画像処理装置において、 画像データに施す画像処理のプログラムコードを前記画
    像データに対応づけて、転送用の画像データを作成する
    作成手段と、 前記転送用の画像データを転送する転送手段とを有する
    ことを特徴とする画像処理装置。
  18. 【請求項18】 前記転送手段は、1つの前記画像デー
    タに対応づけて複数の画像処理のプログラムコードを前
    記画像データと共に転送することを特徴とする請求項1
    7に記載の画像処理装置。
  19. 【請求項19】 画像処理を施す画像データを作成する
    画像処理装置において、 画像データに施す画像処理に相当する単数もしくは複数
    のプログラムコードを1つの画像処理グループとして、
    前記画像データに対応づけて、転送用の画像データを作
    成する作成手段と、 前記転送用の画像データを転送する転送手段とを有する
    ことを特徴とする画像処理装置。
  20. 【請求項20】 前記転送手段は、1つの前記画像デー
    タに複数の画像処理グループを対応づけて前記画像デー
    タと共に転送することを特徴とする請求項19に記載の
    画像処理装置。
  21. 【請求項21】 転送された画像データに画像処理を施
    し、その処理結果を出力する画像処理装置において、 画像データに施す画像処理のプログラムコードを、前記
    画像データに対応づけて前記画像データと共に受信する
    受信手段と、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に受信された前記プログラムコードを実行
    し、その結果得られる画像を出力する出力手段とを有す
    ることを特徴とする画像処理装置。
  22. 【請求項22】 前記出力手段は、前記複数の画像処理
    のプログラムコードの中から少なくとも1つのプログラ
    ムコードを選択し、これを前記画像データに対して実行
    した結果得られる画像を出力することを特徴とする請求
    項21に記載の画像処理装置。
  23. 【請求項23】 画像データに画像処理を施し、その処
    理結果を出力する画像処理装置において、 画像データに施す画像処理に相当する単数もしくは複数
    のプログラムコードを1つの画像処理グループとして、
    前記画像データに対応づけて前記画像データと共に受信
    する受信手段と、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に受信された前記画像処理グループに含ま
    れる全てのプログラムコードを逐次実行し、その結果得
    られる画像を出力する出力手段とを有することを特徴と
    する画像処理装置。
  24. 【請求項24】 前記出力手段は、複数の画像処理グル
    ープの中から1つの画像処理グループを選択し、その画
    像処理グループ内の全てのプログラムコードを逐次実行
    し、その結果得られる画像を出力することを特徴とする
    請求項23に記載の画像処理装置。
  25. 【請求項25】 前記プログラムコードは、画像処理を
    行うコンピュータの中央演算装置が直接的に解釈可能な
    プログラムコードで構成されていることを特徴とする請
    求項13乃至24のいずれか1つに記載の画像処理装
    置。
  26. 【請求項26】 前記プログラムコードは、画像処理を
    行うコンピュータの中央演算装置の種類に依存しない中
    間プログラムコードで構成されていることを特徴とする
    請求項13乃至24のいずれか1つに記載の画像処理装
    置。
  27. 【請求項27】 前記中間プログラムコードは、実行前
    に解釈されて、画像処理を行うコンピュータの中央演算
    装置が直接的に解釈可能なプログラムコードに変換され
    ることを特徴とする請求項26記載の画像処理装置。
  28. 【請求項28】 前記プログラムコードは、記憶媒体に
    保存される際、あるいは転送される際に、データ圧縮技
    術により圧縮され、プログラムコードの実行時に解凍し
    て実行されることを特徴とする請求項13乃至24のい
    ずれか1つに記載の画像処理装置。
  29. 【請求項29】 画像データに画像処理を施し、その処
    理結果を出力する画像処理プログラムをコンピュータ読
    取り可能に記憶する記憶媒体であって、 画像データに施す画像処理のプログラムコードを、前記
    画像データに対応づけて前記画像データと共に記憶又は
    転送するプログラムモジュールと、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に記憶又は転送された前記プログラムコー
    ドを実行し、その結果得られる画像を出力するプログラ
    ムモジュールとを含むことを特徴とする記憶媒体。
  30. 【請求項30】 画像データに画像処理を施し、その処
    理結果を出力する画像処理プログラムをコンピュータ読
    取り可能に記憶する記憶媒体であって、 1つの前記画像データに対応づけて複数の画像処理のプ
    ログラムコードを前記画像データと共に記憶又は転送す
    るプログラムモジュールと、 前記複数の画像処理のプログラムコードの中から少なく
    とも1つのプログラムコードを選択し、これを前記画像
    データに対して実行した結果得られる画像を出力するプ
    ログラムモジュールとを含むことを特徴とする記憶媒
    体。
  31. 【請求項31】 画像データに画像処理を施し、その処
    理結果を出力する画像処理プログラムをコンピュータ読
    取り可能に記憶する記憶媒体であって、 画像データに施す画像処理に相当する単数もしくは複数
    のプログラムコードを1つの画像処理グループとして、
    前記画像データに対応づけて前記画像データと共に記憶
    又は転送するプログラムモジュールと、 前記画像データを出力する際に、前記画像データに対し
    て対応して共に記憶又は転送された前記画像処理グルー
    プに含まれる全てのプログラムコードを逐次実行し、そ
    の結果得られる画像を出力するプログラムモジュールと
    を含むことを特徴とする記憶媒体。
  32. 【請求項32】 画像データに画像処理を施し、その処
    理結果を出力する画像処理プログラムをコンピュータ読
    取り可能に記憶する記憶媒体であって、 1つの前記画像データに複数の画像処理グループを対応
    づけて前記画像データと共に記憶又は転送するプログラ
    ムモジュールと、 複数の画像処理グループの中から1つの画像処理グルー
    プを選択し、その画像処理グループ内の全てのプログラ
    ムコードを逐次実行し、その結果得られる画像を出力す
    るプログラムモジュールとを含むことを特徴とする記憶
    媒体。
  33. 【請求項33】 前記プログラムコードは、画像処理を
    行うコンピュータの中央演算装置の種類に依存しない中
    間プログラムコードで構成されており、 前記中間プログラムコードを実行前に解釈して、画像処
    理を行うコンピュータの中央演算装置が直接的に解釈可
    能なプログラムコードに変換するプログラムモジュール
    を更に含むことを特徴とする請求項29乃至32のいず
    れか1つに記載の記憶媒体。
  34. 【請求項34】 前記プログラムコードを、記憶媒体に
    保存される際、あるいは転送される際に、データ圧縮技
    術により圧縮するプログラムモジュールと、 プログラムコードの実行時に解凍するプログラムモジュ
    ールとを更に含むことを特徴とする請求項29乃至33
    のいずれか1つに記載の記憶媒体。
  35. 【請求項35】 画像データに画像処理を施し、その処
    理結果を出力する場合に作成される画像データのフォー
    マットであって、 汎用の画像データに施す画像処理のプログラムコードが
    添付されていることを示す第1の領域と、 前記汎用の画像データを記憶する第2の領域と、 前記汎用の画像データに施す前記画像処理のプログラム
    コードを記憶する第3の領域を有することを特徴とする
    画像データのフォーマット。
  36. 【請求項36】 前記第3の領域には、1つの前記画像
    データに対応づけて複数の画像処理のプログラムコード
    が記憶されることを特徴とする請求項35に記載の画像
    データのフォーマット。
  37. 【請求項37】 画像データに施す画像処理に相当する
    単数もしくは複数のプログラムコードを1つの画像処理
    グループとして記憶していることを示す第4の領域を更
    に有することを特徴とする請求項35に記載の画像デー
    タのフォーマット。
  38. 【請求項38】 前記第3の領域には、1つの前記画像
    データに複数の画像処理グループが対応づけて記憶され
    ることを特徴とする請求項37に記載の画像データのフ
    ォーマット。
  39. 【請求項39】 前記プログラムコードは、画像処理を
    行うコンピュータの中央演算装置の種類に依存しない中
    間プログラムコードで構成されていることを特徴とする
    請求項35乃至38のいずれか1つに記載の画像データ
    のフォーマット。
  40. 【請求項40】 前記プログラムコードは、データ圧縮
    技術により圧縮されていることを特徴とする請求項35
    乃至38のいずれか1つに記載の画像データのフォーマ
    ット。
JP11093491A 1999-03-31 1999-03-31 画像処理方法とその装置、及びそれに使用される画像データフォーマット Withdrawn JP2000285220A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11093491A JP2000285220A (ja) 1999-03-31 1999-03-31 画像処理方法とその装置、及びそれに使用される画像データフォーマット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11093491A JP2000285220A (ja) 1999-03-31 1999-03-31 画像処理方法とその装置、及びそれに使用される画像データフォーマット

Publications (1)

Publication Number Publication Date
JP2000285220A true JP2000285220A (ja) 2000-10-13

Family

ID=14083823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11093491A Withdrawn JP2000285220A (ja) 1999-03-31 1999-03-31 画像処理方法とその装置、及びそれに使用される画像データフォーマット

Country Status (1)

Country Link
JP (1) JP2000285220A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316990A (ja) * 2004-04-02 2005-11-10 Toshiba Corp 画像保管装置、画像表示装置、画像装置、情報処理装置、データ作成方法、及び記録媒体
JP2006067069A (ja) * 2004-08-25 2006-03-09 Canon Inc 画像処理装置及び画像処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316990A (ja) * 2004-04-02 2005-11-10 Toshiba Corp 画像保管装置、画像表示装置、画像装置、情報処理装置、データ作成方法、及び記録媒体
JP2006067069A (ja) * 2004-08-25 2006-03-09 Canon Inc 画像処理装置及び画像処理方法
JP4560353B2 (ja) * 2004-08-25 2010-10-13 キヤノン株式会社 画像処理装置及び画像処理方法

Similar Documents

Publication Publication Date Title
US7239328B2 (en) Lossless manipulation of media objects
US6925597B2 (en) Systems and methods for digital document processing
US7853873B2 (en) Data processing apparatus, data processing method, and computer program for generating electronic data from a paper document
JP2012022695A (ja) デジタルドキュメント処理のための方法
JP2000090249A (ja) 画像処理装置および画像処理方法およびコンピュータを画像処理装置として動作させるためのプログラムが記録されたコンピュータ読み取り可能な記録媒体
JP3226588B2 (ja) 画像処理装置、システムおよび方法
JP5829083B2 (ja) 分散型システムにおいて複数の関連付けられたマルチメディア資産の何れかを同期させる技法
JP2006252526A (ja) 文書ファイル管理装置、文書ファイル管理方法、および文書ファイル管理プログラム
JP2008310816A (ja) 複数のマークアップ・ページ・データをコンパクトに表現するシステムおよび方法
JP2000285220A (ja) 画像処理方法とその装置、及びそれに使用される画像データフォーマット
JP4246531B2 (ja) 画像ファイル内のインク情報に関わる処理方法、コンピュータ可読媒体、およびシステム
JPH041862A (ja) 図形選択方法
US20020038322A1 (en) Information processing apparatus, method therefor,and computer-readable memory
JP2006185064A (ja) データ処理装置及びプログラム
JP2004258865A (ja) 情報処理方法
JP3613403B2 (ja) マルチメディア文書記憶装置
JP3081051B2 (ja) 画像処理装置および画像処理方法
US20090287733A1 (en) Method for preparing prepress image data
JP2656706B2 (ja) 画像加工システムおよび方法
JP4253077B2 (ja) ラスタデータの編集装置
JP3507353B2 (ja) オーバレイ印刷制御方法及び装置及びコンピュータ読取り可能なプログラムが格納された記憶媒体
JPH08153095A (ja) 画像管理編集システム
JP2008310423A (ja) 画像ファイル作成編集装置、画像ファイル閲覧装置、及び画像ファイル作成編集方法
JPH1127539A (ja) 画像データ処理方法
EP1272940A1 (en) Systems and methods for digital document processing

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606