説明

情報処理装置および情報処理方法

【課題】画像データと副画像データを含むファイルを送信する際に、送信量の増加を抑える情報処理装置を提供する。
【解決手段】画像を表す画像データと画像の少なくとも一部の領域に基づいて生成された副画像を表す副画像データとを含むファイルを格納し、該ファイルから副画像データを削除して第1のファイルを生成し、画像データと副画像データを比較して副画像が画像のどの領域に基づいて生成されたかを検出し、該検出された領域の情報と副画像のサイズとを含む第2のファイルを生成し、ファイルを送信する代わりに、第1のファイルと第2のファイルを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の画像データを含むファイルを処理する情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
複数の画像データを1つのファイルにまとめて取り扱いたいというアイデアは、従来からある。特許文献1には、複数の画像データの関連情報を容易に参照可能な画像記録方法について記載されている。特許文献2には、1回の記録動作で生成する記録用の圧縮画像データを独立した画像データの結合体とする画像記録方法が記載されている。
【0003】
また、サムネイル画像を含む画像データの転送量の削減のアイデアも提案されている。特許文献3には、主画像とサムネイル画像を比較し、主画像とサムネイル画像とのサイズ差が小さいときは、サムネイル画像を添付せずに主画像のファイルを転送する転送方法が記載されている。特許文献4には、画像サーバが、携帯電話からの電子メールに添付された画像ファイルを受信し、その受信した画像からサムネイル画像を生成し、受信した画像にサムネイルを付加しサムネイル付き画像データを生成する転送方法が記載されている。
【0004】
ここで、特許文献1や特許文献2と同様に、主画像とモニタ表示用のサムネイル画像(副画像)とが1つのファイルになった画像ファイルを考える。従来のExifファイルのサムネイル画像は、64キロバイト以上の画像データを保持することができなかった。しかしながら、このような画像ファイルでは、Exifファイルのサムネイル画像に比べて、より大きいサイズで高画質のモニタ表示用の画像データを副画像として保持することが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−167067号公報
【特許文献2】特開平11―266420号公報
【特許文献3】特開2003−204500号公報
【特許文献4】特開2005―117228号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、主画像データ(単に、画像データという)とモニタ表示用の副画像データを1つのファイルで保持するようなフォーマットの画像ファイルを装置の外部に送信することを考える。そのような場合、従来の主画像データのみのファイルの転送を行うときに比べて、副画像データの分だけ送信量が増加してしまう。
【0007】
上記の点に鑑み、本発明は、画像データと副画像データを含むファイルを送信する際に、送信量の増加を抑える情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明に係る情報処理装置は、画像を表す画像データと前記画像の少なくとも一部の領域に基づいて生成された副画像を表す副画像データとを含むファイルを外部に送信する送信手段を備える情報処理装置であって、前記ファイルを格納する格納手段と、前記ファイルから前記副画像データを削除して第1のファイルを生成する第1の生成手段と、前記画像データと前記副画像データを比較して前記副画像が前記画像のどの領域に基づいて生成されたかを検出し、該検出された前記領域の情報と前記副画像のサイズとを含む第2のファイルを生成する第2の生成手段とを有し、前記送信手段は、前記ファイルを送信する代わりに、前記第1のファイルと前記第2のファイルを送信することを特徴とする。
【発明の効果】
【0009】
本発明によれば、画像データと副画像データを含むファイルを送信する際に、副画像データを送信しないので送信量の増加を抑えることができる。
【図面の簡単な説明】
【0010】
【図1】本実施例におけるシステムの構成の概要を示す図である。
【図2】本実施例において用いられる装置の構成の概要を示す図である。
【図3】送信処理されるファイル構成を示す図である。
【図4】クリッピング領域を説明する図である。
【図5】送信元の装置において実行される処理の手順を示す図である。
【図6】副画像再生情報ファイルの構成を示す図である。
【図7】クリッピング領域の取得を説明する図である。
【図8】送信されるファイル構成を示す図である。
【図9】送信先の装置において実行される処理の手順を示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明を実施するための形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0012】
図1は、本実施例で説明する情報処理システムの構成の概要を示している。本実施例では、転送元であるPC100から、ネットワークを経由して、転送先である画像サーバ110に、後述する1つのファイルに画像データと副画像データとを含むファイルを転送する場合を考える。なお、本実施例では、PC100と画像サーバ110間は、無線ネットワークとする。しかしながら、両者間でファイルの転送が可能な状態であれば、ネットワークの形態は、これに限定されない。
【0013】
図2は、本実施例において用いられる情報処理装置の構成を示すブロック図である。情報処理装置であるPC100は、画像サーバ110とネットワークを介して双方向通信可能に接続されている。PC100は、基本ソフトウェアであるOS等のプログラムに基づき、PC100内の各構成を制御するCPU101と、PC100の起動時に実行されるプログラム等を記録するROM102とを含む。また、PC100は、プログラムの実行に必要なワークエリアのバッファエリアとして利用されるRAM103と、OSやアプリケーションソフトや各種のデータを格納するHD(ハードディスク)104と、各種情報を視覚的に表示するモニタ105とを含む。また、PC100は、キーボードやマウス等の入力デバイスを介したユーザによる入力操作を検出して、その操作に応じた制御を実行する操作制御部106と、モニタ105上での各種情報の表示を制御する表示制御部107とを含む。また、PC100は、画像サーバ110等の外部の装置との間で各種データの送受信を行なうためのIF(インタフェース)108とを含む。以上の構成は、バス109を介して互いにデータ送受信可能に接続されている。また、特に図示しないが、PC100は、例えば、CD又はDVDのデータ読み出し/書き込みに対応した光ディスクドライブ、キーボード、マウス等の入力デバイス等も含む。画像サーバ110の構成も図2に示す構成と同じである。
【0014】
図3は、主画像データと1枚以上の副画像データが格納され、主画像データから副画像データが生成可能であるファイルの構成を示す図である。以下、説明上、そのようなファイルを、複数画像格納ファイルという。複数画像格納ファイル300は、ヘッダ部31とデータ部32の2つから大きく構成されている。ヘッダ部31は、ファイルフォーマットを識別するためのフォーマット識別ID311、ファイル中に含まれる副画像データ数312を含む。また、ヘッダ部31は、主画像データの先頭アドレスを示す主画像ポインタ313、副画像クリッピング情報314、副画像データの先頭アドレスを示す副画像ポインタ315を含む。
【0015】
フォーマット識別ID311は、複数画像格納ファイル300の先頭にアスキーコードで埋め込まれている。例えば、6バイトの文字列「$$MI$$」が本フォーマットのフォーマット識別IDとすると、ファイル解析を行う際は、ファイルの先頭から6バイトが「$$MI$$」となっているか否かが判定される。その結果、容易に複数画像格納フォーマットか否かが区別される。
【0016】
副画像クリッピング情報314は、主画像データから副画像データを生成する際に、主画像中のどの領域をクリッピング(指定)して副画像領域としたかの情報を表すものである。副画像クリッピング情報314は、図4で示すように、クリッピング始点座標とクリッピング幅とクリッピング高さとを含んでいる。本実施例において、クリッピング領域とは、図4に示すように、主画像の少なくとも一部である矩形領域である。クリッピング始点座標は、主画像領域に対するクリッピング領域の左上の座標を表す。また、クリッピング幅は、その始点座標からのクリッピング領域の幅を表す。また、クリッピング高さは、その始点座標からのクリッピング領域の高さを表す。
【0017】
ここで、副画像が主画像からクリッピングされた領域を縮小して得られた領域である場合には、副画像クリッピング情報314は、特に指定されている必要はない。そのような場合に、副画像クリッピング情報314には、未設定を意味する情報を格納するようにしても良い。または、副画像クリッピング情報314自体がなくてもよい。副画像クリッピング情報314と副画像ポインタ315は、各副画像毎に存在する。図3に示す例では、副画像1と副画像2の2枚の副画像が存在するため、副画像クリッピング情報314と副画像ポインタ315の組が、2組格納されている。
【0018】
データ部32には、主画像および副画像の画像データが格納されている。本実施例例では、主画像データおよび副画像データは、JPEGフォーマットとする。その場合に、主画像データや副画像データ内のJPEGヘッダの情報から、主画像データの縦横のピクセル数および各副画像データの縦横のピクセル数を取得することができる。
【0019】
次に、複数画像格納ファイル300の送信元であるPC100での処理の手順を図5を用いて説明する。図5に示す処理は、例えば、PC100におけるCPU101によって実行される。
【0020】
まず、ユーザから複数画像格納ファイル300の送信指示があると、削除する副画像の情報を格納するための副画像再生情報ファイル600を生成する(S501)。本実施例において、副画像再生情報ファイル600を第2のファイルとし、その第2のファイルを生成するS501の処理を第2の生成処理とする。第1のファイルと第1の生成処理については、後述する。副画像再生情報ファイル600は、図6に示すように、副画像データ数601と副画像サイズ情報602と副画像クリッピング情報603と副画像圧縮パラメータ604とを含む。副画像データ数601は、削除した副画像数を表す。副画像サイズ情報602は、削除した副画像の縦横のサイズ(ピクセル数)を表す。副画像クリッピング情報603は、上述したとおりである。副画像圧縮パラメータ604は、副画像を例えばJPEGデータに変換した際の画像品位を決定するパラメータを表す。本実施例では、副画像圧縮パラメータとして、量子化テーブルと各色のサンプリング数の2つを用いる。両者とも、JPEGファイル内のヘッダから取得可能な情報である。副画像サイズ情報602と副画像クリッピング情報603と副画像圧縮パラメータ604の3項目は、副画像毎に用意される。図6に示す例では、削除した副画像が副画像1と副画像2の2枚であり、それぞれに対して、602から604の項目が存在する。S501では、複数画像格納ファイル300の副画像データ数312を参照し、副画像数に対応した大きさの副画像再生情報ファイル600を作成する。この時点では、副画像再生情報ファイル600内の副画像データ数601だけが設定されており、その他の項目は未設定状態である。後述するフローに従って、それらの未設定項目に対して情報が設定されていく。
【0021】
続いて、未処理の副画像についての副画像クリッピング情報とその副画像を表す副画像データを複数画像格納ファイル300から取得する(S502)。S503では、S502にて、副画像クリッピング情報を取得していたか否かが判定される。ここで、取得していたと判定された場合に、S504に進み、S502で取得した副画像クリッピング情報を、副画像再生情報ファイル600の副画像クリッピング情報603に格納する。一方、S503で副画像クリッピング情報を取得していなかった(即ち、未設定状態であった)と判定された場合に、S505に進み、主画像の縦横のアスペクト比と副画像の縦横のアスペクト比が等しいか否かが判定される。これは、上述のJPEGヘッダから主画像データと副画像データの縦横のピクセル数から判定するようにしても良い。
【0022】
S505にてアスペクト比が等しいと判定された場合に、S506にて主画像領域全体をそのまま縮小して副画像が生成されたとみなす。つまり、副画像クリッピング情報として、クリッピング始点座標を主画像の左上の座標(0、0)とし、クリッピング幅と高さを主画像の横と縦のピクセル数とする。それらの情報を副画像再生情報ファイル600の副画像クリッピング情報603に保存する。一方、S505にてアスペクト比が等しくないと判定された場合には、S507に進む。
【0023】
以下、図7を用いて、S507における副画像クリッピング領域の取得について説明する。前提として、図7の(a)に示すような主画像領域(幅Mw、高さMh)と副画像領域(幅Sw、高さSh)である場合を考える。
【0024】
まず、図6の(b)に示すように、主画像のアスペクト比を保ったまま、主画像領域を副画像領域が収まる最小サイズまで縮小して縮小主画像領域を生成する。本例では、(Sw/Mw)>(Sh/Mh)なので、幅がSwのサイズになるまで、主画像領域をアスペクト比を保ちつつ縮小して縮小主画像領域を作成する。その場合、縮小率はSw/Mwとなり、図6の(c)に示すように、縮小主画像領域の幅はMw×Sw/MwでSwと等しくなり、高さはMh×Sw/Mwとなる。
【0025】
次に、この縮小主画像領域に対して、図6の(d)に示すように、副画像領域でテンプレートマッチング処理を行い、縮小主画像領域のどの領域から実際に副画像領域がクリッピングされたかを検出する。図6の(e)は、縮小主画像領域の左上を原点P0(0、0)とした場合に、P1(0、ty)がクリッピング始点座標として検出されたことを示している。
【0026】
最後に、縮小主画像領域上のクリッピング領域が実際の主画像上ではどの領域に相当するかを、縮小主画像領域をもとの主画像領域の大きさまで拡大して算出する。その場合、拡大率は、図6の(f)に示すように、Mw/Swとなる。これにより、副画像領域を拡大して得られた拡大副画像領域が、主画像に対する副画像のクリッピング領域となる。即ち、図6の(g)のようにクリッピング始点座標P1’(0、ty×Mw/Sw)、クリッピング幅Mw、クリッピング高さSh×Mw/Swとなる。そして、S507で算出した副画像のクリッピング領域の情報を、副画像再生情報ファイル600の副画像クリッピング情報603に保存する(S508)。
【0027】
以上により、S504、S506、S508のいずれかを経由して、S509に処理が進む。S509では、取得された副画像の縦横のピクセル数を、副画像再生情報ファイル600内の副画像サイズ情報602に格納する。S510では、副画像の圧縮パラメータを副画像データのヘッダから取得し、副画像再生情報ファイル600の副画像圧縮パラメータ604に格納する。S511にて、複数画像格納ファイル300内の全ての副画像に対して、S502〜S510の処理が行われたかが判定される。ここで、全副画像に対して処理が終了したと判定された場合に、S512に進み、処理が終了していない(即ち、未処理の副画像が存在する)と判定された場合に、再び、S502に戻る。
【0028】
ここまでの一連の処理により、副画像再生情報ファイル600に必要な情報が全て保存されたことになる。S512にて、送信用ファイル(第1のファイルとする)を生成する(第1の生成処理とする)。送信用ファイルは、複数画像格納ファイル300から副画像データ部分を単純に削除して生成される。図8は、図3に示す複数画像格納ファイル300から、送信用ファイル800を生成した例である。図3に示す複数画像格納ファイル300から副画像1データと副画像2データが単純に削除されている。最後に、作成された送信用ファイル800と副画像再生情報ファイル600の2ファイルを送信先に送信し(S513)、送信元での処理を終了する。
【0029】
次に、図9を用いて、送信先である画像サーバ110での処理の手順を説明する。図9に示す処理は、例えば、画像サーバ110におけるCPU101によって実行される。まず、S901で、送信元PC100から送られてきた送信用ファイル800と副画像再生情報ファイル600の2ファイルを受信する。次に、副画像再生情報ファイル600を参照し、まだ、再生成が行われていない副画像に対応した副画像サイズ情報602、副画像クリッピング情報603、副画像圧縮パラメータ604の情報を取得する(S902)。続いて、送信用ファイル800内の主画像データの主画像領域に対して、取得された副画像クリッピング情報603を用いて副画像領域を抽出する(S903)。
【0030】
次に、S903で抽出された副画像領域をS902で取得した副画像サイズ情報602の縦と横のピクセル数となるように縮小処理して縮小副画像領域を生成する(S904)。S904で生成された縮小副画像領域を、S902で取得した副画像圧縮パラメータ604でJPEG等の圧縮を行い、圧縮後の画像データを再生成された副画像データとする。再生成された副画像データは、生成後、各副画像毎に再生成副画像ファイルとして保存される(S905)。
【0031】
S906で、副画像再生情報ファイル600に記述された全ての副画像に対して、S902〜S905の処理が行われたかが判定される。ここで、全ての副画像に対して処理が終了したと判定された場合に、S907に進み、未処理の副画像が存在すると判定された場合に、再び、S902に戻る。
【0032】
ここまでの処理が終了すると、再生成副画像ファイルが副画像の数だけ生成されることになる。最後に、再生成副画像ファイルを作成した順番で送信用ファイル800の最後尾に、副画像データとして付加していき、1つのファイルを生成する。このときに生成されたファイルを第3のファイルとし、生成する処理を第3の生成処理とする。以上の作業により、図8で示した送信用ファイル800は、副画像データが追加されて、図3に示す複数画像格納ファイル300の形式に戻る。また、再生成された副画像データは、演算誤差などの影響により、完全に同一のものになるとは限らないため、再生後のファイル内での各副画像の副画像ポインタを正しい値に更新し(S907)、送信先である画像サーバ110での処理を終了する。
【0033】
以上の処理により、副画像データの再生成情報を送信先に送信することで、送信先で得られるファイル内に含まれる副画像データのサイズや品位についての情報を保持したまま、ファイル送信時のデータ転送量を削減することが可能となる。なお、本実施例では、複数画像格納ファイル300に格納されている主画像データおよび副画像データのフォーマットをJPEG以外の一般的な画像データフォーマットとしても良い。また、BMP形式等の非圧縮の画像フォーマットであるならば、圧縮パラメータは特に必要ない。
【0034】
また、送信用ファイル800のヘッダ部分は、本実施例では変更していないが、ヘッダ内の副画像データ数を0と設定して、主画像のみが存在するファイルとして、送信用ファイル800を生成してもよい。また、送信時にヘッダを変更した場合には、送信先でのファイル再生時に、ヘッダ情報を正しい値に戻すようにする。
【0035】
また、本実施例では、副画像再生情報を転送するために、副画像再生情報ファイル600を使用しているが、副画像再生情報を送信用ファイル800内に組み込んでも良い。つまり、送信先で、副画像再生情報を取得できるような仕組みになっていれば良い。
【0036】
また、副画像圧縮パラメータ604は、主画像の圧縮パラメータと同じであれば、主画像のパラメータを用いるようにしても良い。具体的には、S510にて主画像データ内に保存されているJPEGヘッダ内の圧縮パラメータと副画像データ内のJPEGヘッダ内に保存されている圧縮パラメータを比較する。その場合に同じであれば、副画像再生情報ファイル600の副画像圧縮パラメータ604には、主画像データと同じであることを示すIDを設定する。送信先でのS905の処理では、副画像圧縮パラメータ604が主画像データと同じであることを示すIDの場合には、主画像データのJPEGヘッダから圧縮パラメータを取得し、そのパラメータで縮小副画像領域をJPEG圧縮すればよい。このように、圧縮パラメータを共有することにより、送信データ量をさらに削減することが可能である。
【0037】
本実施例は、送信(または転送)速度が遅い、通信コストが高いといった場合に、より効果が高い。従って、通信経路の速度やコストによって、本実施例の送信方法と通常の送信方法の2つを使い分けるようにしてもよい。具体的には、送信速度が遅い場合や、通信コストが高い場合には、本実施例での送信方法を使用するようにする。また、例えば、送信前に通信経路を検出し、有線LANやUSBの場合には、通常の送信方法を用い、無線LANやIrDAによる送信では、本実施例の送信方法を用いる。また、通信コストに注目すると、送信前に通信経路を検出し、携帯電話からの送信である場合には、本実施例の送信方法を用い、携帯電話以外からの送信である場合には、通常の送信方法を用いるということが考えられる。
【0038】
また、複数画像格納ファイル300の生成時に、主画像データから副画像データ作成時に使用した縮小アルゴリズム名を副画像の情報として、圧縮パラメータと同様に、複数画像格納ファイル300内のヘッダ部31に格納するようにしても良い。その縮小アルゴリズム名を副画像再生情報ファイル600に含めて送信し、送信先のS904での縮小処理において、この名称の縮小アルゴリズムの処理を行うことが可能な場合には、その名称の縮小アルゴリズムで縮小処理を行う。その場合、縮小処理アルゴリズムとして、ニアレストネイバー法、バイリニア法、バイキュービック法など多くの手法が一般的に知られており、アルゴリズムの違いによって出力結果も微妙に異なる。このため、送信元にある複数画像格納ファイル300内の副画像データの生成時の縮小処理と処理を合わせることで、オリジナルの副画像データにより近い再生成副画像データを作成することが可能となる。
【0039】
また、本実施例では、複数画像格納ファイル300の1ファイルを送信する場合の例を説明したが、複数の複数画像格納ファイル300を送信する場合も、実施例で示した処理を送信したいファイル数分だけ繰り返す。このとき、送信したい複数画像格納ファイル300のファイル数が一定数以上の場合だけ、本実施例の送信方法で送信を行い、そうでない場合には、通常の送信方法で送信するようにしても良い。また、送信したい複数画像格納ファイル300に格納されている各副画像データの合計サイズが一定サイズ以上の場合にのみ本実施例の送信方法を用い、そうでない場合には、通常の送信方法を用いるようにしても良い。また、主画像データサイズに対する各副画像データの合計サイズが一定割合以上の場合にのみ本実施例の送信方法を用い、そうでない場合には、通常の送信方法を用いるようにしても良い。

【特許請求の範囲】
【請求項1】
画像を表す画像データと前記画像の少なくとも一部の領域に基づいて生成された副画像を表す副画像データとを含むファイルを外部に送信する送信手段を備える情報処理装置であって、
前記ファイルを格納する格納手段と、
前記ファイルから前記副画像データを削除して第1のファイルを生成する第1の生成手段と、
前記画像データと前記副画像データを比較して前記副画像が前記画像のどの領域に基づいて生成されたかを検出し、該検出された前記領域の情報と前記副画像のサイズとを含む第2のファイルを生成する第2の生成手段とを有し、
前記送信手段は、前記ファイルを送信する代わりに、前記第1のファイルと前記第2のファイルを送信することを特徴とする情報処理装置。
【請求項2】
前記領域は矩形領域であることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記副画像は、前記矩形領域の表す画像、若しくは、前記矩形領域の表す画像を縮小した画像であることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
請求項1乃至3のいずれか1項に記載の情報処理装置と、
前記第1のファイルと前記第2のファイルを受信する受信手段と、
前記第2のファイルに含まれる前記領域の情報と前記副画像のサイズとを用いて、前記第1のファイルに含まれる前記画像データから前記副画像データを生成し、前記第1のファイルに前記副画像データを付加して前記ファイルと同じ構成を有する第3のファイルを生成する第3の生成手段とを備える装置と
を含むことを特徴とする情報処理システム。
【請求項5】
画像を表す画像データと前記画像の少なくとも一部の領域に基づいて生成された副画像を表す副画像データとを含むファイルを外部に送信する情報処理装置において実行される情報処理方法であって、
前記情報処理装置の第1の生成手段が、前記ファイルから前記副画像データを削除して第1のファイルを生成する第1の生成工程と、
前記情報処理装置の第2の生成手段が、前記画像データと前記副画像データを比較して前記副画像が前記画像のどの領域に基づいて生成されたかを検出し、該検出された前記領域の情報と前記副画像のサイズとを含む第2のファイルを生成する第2の生成工程と、
前記情報処理装置の送信手段が、前記ファイルを送信する代わりに、前記第1のファイルと前記第2のファイルを送信する送信工程と
を備えることを特徴とする情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate