本発明は、画像処理の分野に係り、特に、画像の符号化データに対する処理の分野に関する。
画像データは一般にデータ量が膨大であるため、符号化することにより圧縮した状態で蓄積又は伝送されることが多い。
画像データの圧縮のための符号化方式としてはJPEG(ISO/IEC 10918)が広く用いられているが、近年、より高機能な符号化方式としてJPEG2000(ISO/IEC 15444−1)が標準化された。
画像の編集などの処理は、一般に、画像データ(画素値データ)に対して施される。例えば、特許文献1などに見られるように、符号化前のソース画像データに対して編集処理が行われ、あるいは、例えば特許文献2に見られるように、画像の符号化データを一旦復号し、その画像データに対して編集処理が行われる。
なお、特許文献2に記載の装置又は方法においては、画像の符号化データ(具体的にはJPEG符号化データ)に対し、最小符号化単位(具体的にはDCT変換の8×8画素ブロック)毎に符号のアドレスを記憶するポインタアレイが用いられる。初期状態では、ポインタアレイの各ポインタは編集前の対応した符号のアドレスを指しているが、編集された部分領域の符号に対応するポインタは、編集後の符号のアドレスを指すように更新される。
特開平11−224331号公報
特許第3251084号公報
JPEG2000の符号化データは、画像領域単位(タイルやプレシンクト)で符号データをアクセスして符号編集などの処理を行うことができる。
本発明の目的は、JPEG2000の符号化データのような、画像領域単位で処理可能な構造を持つ画像の符号化データに対する処理を効率的に実行するための新規な構成の画像処理装置及び画像処理方法を提供することにある。
請求項1の発明は、画像領域単位で処理可能な構造を持つ画像の符号化データを記憶する記憶手段と、前記記憶手段に記憶されている画像の符号化データに対する処理を実行するデータ処理手段と、前記データ処理手段による処理の実行に先立ち、該処理の実行時に前記データ処理手段により参照される、前記記憶手段に記憶されている画像に関連したテーブルを作成するテーブル処理手段とを有し、前記テーブル処理手段により作成される前記テーブルは、前記データ処理手段により処理の実行のために前記記憶手段より符号データが読み出される画像の画像領域に対応付けられた複数のエントリーを有し、それらエントリーがそれぞれ1の画像領域の符号データの記憶アドレス情報と当該画像領域の画像上での位置を示す位置情報とを格納するものであることを特徴とする画像処理装置である。
請求項2の発明は、前記テーブル処理手段が、同一内容の処理を施される複数の画像領域に対応したエントリーを連続して並べた前記テーブルを作成することを特徴とする、請求項1の発明による画像処理装置である。
請求項3の発明は、前記テーブル処理手段が、画像領域に対応付けられたエントリーとして、画像の一部の画像領域に対応したエントリーのみを有する前記テーブルを作成することを特徴とする、請求項1の発明による画像処理装置である。
請求項4の発明は、前記テーブル処理手段が、画像の特定の画像領域に対応したエントリーに、同じ画像の他の特定の画像領域の符号データの記憶アドレス情報を格納した前記テーブルを作成することを特徴とする、請求項1の発明による画像処理装置である。
請求項5の発明は、前記テーブル処理手段が、画像の特定の画像領域に対応したエントリーに、同じ画像の他の特定の画像領域の位置情報を格納した前記テーブルを作成することを特徴とする、請求項1の発明による画像処理装置である。
請求項6の発明は、前記テーブル処理手段が、画像の特定の画像領域に対応したエントリーに、他の画像の特定の画像領域の符号データの記憶アドレス情報を格納した前記テーブルを作成することを特徴とする、請求項1の発明による画像処理装置である。
請求項7の発明は、前記テーブル処理手段が、少なくとも一部の画像領域に対応したエントリーをそれぞれ有する、複数の画像に関連した複数の前記テーブルを一つに結合したテーブルを作成することを特徴とする、請求項1の発明による画像処理装置である。
請求項8の発明は、前記テーブル処理手段により作成された前記テーブルを前記記憶手段に保存する手段を有することを特徴とする、請求項1乃至7のいずれか1項の発明による画像処理装置である。
請求項9の発明は、伝送路を介して外部装置と通信する通信手段を有し、1又は複数の画像に関連して作成された前記テーブルの情報を該画像の処理後の符号化データに付加して前記通信手段により前記外部装置へ送信することを特徴とする請求項1乃至7のいずれか1項の発明による画像処理装置である。
請求項10の発明は、記憶手段に記憶されている画像領域単位で処理可能な構造を持つ画像の符号化データに対する処理を実行するデータ処理工程と、前記データ処理工程による処理の実行に先立ち、該処理の実行時に前記データ処理工程により参照される、前記記憶手段に記憶されている画像に関連したテーブルを作成するテーブル処理工程とを有し、前記テーブル処理工程により作成される前記テーブルは、前記データ処理工程により処理の実行のために前記記憶手段より符号データが読み出される画像の画像領域に対応付けられた複数のエントリーを有し、それらエントリーがそれぞれ1の画像領域の符号データの記憶アドレス情報と当該画像領域の画像上での位置を示す位置情報とを格納するものであることを特徴とする画像処理方法である。
請求項11の発明は、前記テーブル処理工程が、同一内容の処理を施される複数の画像領域に対応したエントリーを連続して並べた前記テーブルを作成することを特徴とする、請求項10の発明による画像処理方法である。
請求項12の発明は、前記テーブル処理工程が、画像領域に対応付けられたエントリーとして、画像の一部の画像領域に対応したエントリーのみを有する前記テーブルを作成することを特徴とする、請求項10の発明による画像処理方法である。
請求項13の発明は、前記テーブル処理工程が、画像の特定の画像領域に対応したエントリーに、同じ画像の他の特定の画像領域の符号データの記憶アドレス情報を格納した前記テーブルを作成することを特徴とする請求項10の発明による画像処理方法である。
請求項14の発明は、前記テーブル処理工程が、画像の特定の画像領域に対応したエントリーに、同じ画像の他の特定の画像領域の位置情報を格納した前記テーブルを作成することを特徴とする、請求項10の発明による画像処理方法である。
請求項15の発明は、前記テーブル処理工程が、画像の特定の画像領域に対応したエントリーに、他の画像の特定の画像領域の符号データの記憶アドレス情報を格納した前記テーブルを作成することを特徴とする、請求項10の発明による画像処理方法である。
請求項16の発明は、前記テーブル処理工程が、少なくとも一部の画像領域に対応したエントリーをそれぞれ有する、複数の画像に関連した複数の前記テーブルを一つに結合したテーブルを作成することを特徴とする、請求項10の発明による画像処理方法である。
請求項17の発明は、請求項1乃至9のいずれか1項の発明による画像処理装置の各手段としてコンピュータを機能させるプログラムである。
請求項18の発明は、請求項17の発明によるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体である。
請求項1乃至16の発明によれば、後記実施例に関連して具体的に述べるように、画像の特定の画像領域に対する符号量削減、モノクロ化、解像度変更などの符号編集処理、特定の画像領域を抽出し再生するような処理、画像の特定の画像領域を他の画像領域と入れ替えて再生するような処理、画像の特定の画像領域を他の画像の特定の画像領域と入れ替えて再生するような処理などを効率的に行うことができる。また、請求項17,18の発明によれば、そのような処理をコンピュータを利用し効率的に実現することができる。
本発明において処理される画像の符号化データは、画像領域単位で処理可能な構造を持つ符号化データである。このような符号化データの例として、前述したJPEG2000の符号化データがある。本発明においては、画像の符号化データに関連したテーブルを作成する。このテーブルは、画像領域に対応付けられたエントリーからなり、各エントリーが画像領域の符号データの記憶アドレス情報及び画像領域の位置情報を格納している構造である。
以下に説明する本発明の実施例においては画像の符号化データとしてJPEG2000の符号化データが用いられるので、ここでJPEG2000の概要を説明する。
図15は、JPEG2000における符号化処理の基本ブロック図である。ここでは、入力画像データとしてカラーのRed,Green,Blue(以下RGB)の画像データを扱うもとして説明する。
入力されたRGBの画像データは、タイリング処理部300にて重複しない矩形のブロック(タイルと呼ばれる)に分割され、タイル単位で色変換処理部301に入力される。ラスタ形式の画像データが入力された場合は、タイリング処理部300においてラスタ/ブロック変換が行われる。
JPEG2000においては、タイル単位に独立して符号化又は復号化が可能である。このことは、ハードウェアにより符号化/復号化を行う場合のハード量を削減でき、また、必要なタイルのみ復号して表示することも可能となるなど、JPEG2000の多機能化の一翼を担っている。なお、JPEG2000ではタイリングはオプションであり、タイリングを行わないことも可能である。
次に、画像データは色変換処理部301で輝度/色差系の信号に変換される。JPEG2000では、離散ウェーブレット変換(以下DWT)に使用するフィルタの種類(5x3と9x7の2通り)に対応して2種類の色変換が定められている。色変換に先立ち、RGBの各信号毎にDCレベルシフトが行われる。
色変換後の信号はDWT処理部302において各コンポーネント毎に2次元の離散ウェーブレット変換(DWT)を施される。
図16はオクターブ分割されたウェーブレット係数を表す図である。DWTは、1デコンポジション(分解)レベル毎にLL,HL,LH,HHの4つのサブバンドと呼ばれる方向成分が出力され、LLに対してDWTを再帰的に行うことによって、より低解像度へとデコンポジションレベルをあげていく。解像度の最も高いデコンポジションレベル1の係数を1HL,1LH,1HHと表し、デコンポジションレベル2の係数を2HL,2LH,2HH、等々と表す。なお、図16は、3デコンポジションレベルのサブバンド分割を示している。また、図16中の各サブバンドの右肩に記入した数字は解像度レベルを示す。
各デコンポジションレベルのサブバンドを、プレシンクトと呼ばれる矩形領域に分割して符号の集合を作成することが可能である。また、各プレシンクトはコードブロックとよばれる所定の矩形ブロックに分割され、符号化はコードブロック単位で行われる。
DWT処理部302から出力されたウェーブレット係数に対し量子化処理部303によってスカラー量子化が行われるが、可逆のDWTが実施される場合にはスカラー量子化は行われないか、量子化ステップサイズを1とした量子化が行われる。また、後段のポスト量子化部305によるポスト量子化によっても、スカラー量子化とほぼ同様な効果が得られる。スカラー量子化のパラメータはタイル単位に変更可能である。
量子化処理部303から出力された量子化後のウェーブレット係数は、エントロピー符号化部304にてエントロピー符号化が行われる。JPEG2000におけるエントロピー符号化方式では、サブバンド内をコードブロックと呼ばれる矩形領域に分割し(但し、サブバンド領域のサイズがコードブロックサイズ以下の場合は分割しない)、コードブロック単位に符号化される。
この符号化においては、図17に模式的に示すように、コードブロック内のウェーブレット係数はビットプレーンに分解され、ビットプレーンは画質への影響度を表す状態に従って3つの符号化パス(Significance propagationパス,Magnitude refinementパス,Clean upパス)と呼ばれるサブビットプレーンに分割されて、各々でMQコーダと呼ばれる算術符号化方式により符号化される。ビットプレーンはMSB側ほど、また、符号化パスはSignificance propagation、Magnitude refinement,Clean upの順に、重要度(画質への寄与度)が高くなっている。また、各パスの終端は、切り捨て点(トランケーションポイント)とも呼ばれ、後段のポスト量子化での符号の切り捨て可能な単位となっている。
エントロピー符号化により生成された符号データに対し、ポスト量子化部305にて必要に応じて符号の切り捨て(トランケーション)が行われる。ただし、可逆の符号を出力する必要がある場合にはポスト量子化は実行されない。このように符号化後に符号の切り捨てにより符号量を制御することができ、符号量の制御にフィードバックを必要としない構成(1パスの符号化)であり、これがJPEG2000の特徴の1つである。
符号ストリーム生成処理部306は、ポスト量子化後の符号データに対し、後述するプログレッシブ順序に従って符号の並べ替えとヘッダの付加を行うことにより符号ストリーム(符号化データ)を生成する。
JPEG2000では、画質(レイヤ(L))、解像度(R)、コンポーネント(C)、位置(プレシンクト(P))という4つの画像の要素の優先順位に応じて、LRCPプログレッション、RLCPプログレッション、RPCLプログレッション、PCRLプログレッション、CPRLプログレッションと呼ばれる5種類のプログレッシブ順序が規定されている。
図18は、JPEG2000におけるRLCPプログレッションの符号ストリームの模式図である。符号ストリームは、基本的にメインヘッダと1以上のタイルの符号データで構成される。LRCPプログレッションの場合、各タイルの符号データは、タイルヘッダと、タイル内符号をレイヤとよばれる符号単位(後述)に区切った複数のレイヤにより構成されており、レイヤ0、レイヤ1・・・というように上位レイヤから順番に並んでいる。レイヤはレイヤ用のタイルヘッダと複数のパケットにより構成されており、パケットはパケットヘッダと符号から構成されている。パケットは、符号データの最小単位であり、1つのタイルコンポーネント内の1つの解像度レベル(デコンポジションレベル)における1つのプレシンクト内の1つのレイヤの符号データから成っている。
復号処理は、符号化処理の丁度逆の処理であるので、説明を割愛する。
図1は、本実施例に係る画像処理装置の機能ブロック図である。図1に示す画像処理装置は、データ記憶手段100、データ処理手段101、テーブル処理手段102、ユーザインターフェース手段103及び外部インターフェース手段104、それら各手段の動作を制御する制御手段105を含み、これら各手段相互で情報を交換可能とした構成である。
この画像処理装置においては、データ記憶手段100に記憶されている画像の符号化データを処理する。データ記憶手段100に記憶されている画像の符号化データは、例えば外部インターフェース手段104を通じて取り込まれたものである。また、画像の符号化データは、画像領域単位で処理可能な構造を持つものであり、ここではJPEG2000の符号化データとする。
データ処理手段101は、画像の符号化データに対する処理を行う手段であり、例えば符号編集処理、復号処理、画像再構成処理などを行う機能を有する。このような処理のための作業記憶域としてもデータ記憶手段100が利用される。
テーブル処理手段102は、画像に関連したテーブルを作成する手段である。テーブル作成手段102により作成されるテーブルは、画像領域に対応付けられた複数のエントリーからなる。なお、JPEG2000の符号化データでは、画像領域の単位としてタイルやプレシンクト、コードブロックを用いることができるが、説明の簡略化のため、以下においてはタイルを画像領域の単位として用いるものとする。なお、処理の内容によっては、テーブル処理手段102によるテーブル作成処理によって実質的に符号編集処理が完了する。テーブル作成手段102により作成されたテーブルの記憶域としてもデータ記憶手段100が利用される。
ユーザインターフェース手段103は、処理の対象となる画像の指示や表示、処理内容の指示、処理に関連する画像領域の指示など、当該画像処理装置とユーザとのインターフェースを提供する手段である。
このような画像処理装置は、CPU、メインメモリ、ハードディスク装置などの補助記憶装置、光ディスクなどの情報記録(記憶)媒体の読み書きのための媒体ドライブ装置、通信インターフェース、外部インターフェースなどからなるコンピュータを利用し、オペレーティングシステム上で動作する1以上のプログラムにより実現することができる。この場合、ユーザインターフェース手段103として、コンピュータのディスプレイ装置とユーザ入力装置を利用することができる。データ記憶手段100としては、コンピュータが備えるメインメモリや補助記憶装置により提供される記憶スペースを利用することができる。さらには、媒体ドライブ装置に装着された光ディスクなどの情報記録媒体もデータ記憶手段100として利用することもできる。外部インターフェース手段104として、コンピュータの備える外部インターフェースや通信インターフェースを利用することができる。さらに、媒体ドライブ装置も外部インターフェース手段104として利用することもできる。コンピュータにJPEG2000に準拠したハードウェアの符号・復号器が備えられている場合には、これもデータ処理手段101の復号処理機能などに利用することもできる。
なお、コンピュータを、本発明の画像処理装置の各手段として機能させるための1以上のプログラム、及び、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などの、コンピュータが読み取り可能な情報記録(記憶)媒体も本発明に包含される。また、本発明の画像処理装置における処理手順、換言すれば、本発明の画像処理方法における処理工程を、コンピュータにより実行させるための1以上のプログラム、及び、同プログラムが記録されたコンピュータが読み取り可能な各種情報記録(記憶)媒体も本発明に包含される。
以下、本実施例に係る画像処理装置の動作について説明する。
[符号化データの格納時のテーブル作成]
制御手段105の制御により、外部インターフェース104を通じて画像の符号化データが取り込まれ、それがデータ記憶手段100に格納される際に、その画像に関するテーブルがテーブル処理手段102により作成される。
本実施例に係る画像処理装置がコンピュータを利用して実現される場合、画像の符号化データは、コンピュータの外部インターフェースや通信インターフェースを通じて取り込まれ、あるいは、媒体ドライブ装置を通じて情報記録媒体から読み込まれ、その符号化データがメインメモリあるいは補助記憶装置に格納される。そして、CPUによりテーブル作成処理が行われてメインメモリ上にテーブルが生成されることになろう。
ここでは、図2に示すように、画像を00番〜15番までの16個のタイル(画像領域)にタイリングした符号化データを想定する。すなわち、符号化データはメインヘッダ(MH)に続いて、00番〜15番までの各タイルの符号データが連続したものとなる。
この場合、画像の符号化データがデータ記憶手段100に格納される際にテーブル処理手段102によって作成されるテーブルは、図3に示すように、符号化データのメインヘッダに対応したエントリーに続いて、00番〜15番の各タイルに対応したエントリーが順に並んだ構造となる。各タイルに対応したエントリーは、図4に示すように、タイルの符号データの記憶アドレス情報(例えば、符号データが記憶されている開始アドレスと終了アドレスの組)と、タイルの位置情報(例えば左上頂点の位置座標)を格納している。各タイルの位置情報は、符号化データのメインヘッダの解析により取得することができる。なお、メインヘッダに対応したエントリーは、メインヘッダの記憶アドレス情報だけを格納しており、位置情報の部分は無効である。
このようなテーブルを参照することによって、画像の符号化データの任意の画像領域の符号データに容易にアクセスすることができる。また、このテーブルを基に、後述するような特定の処理のためのテーブルを容易に作成することができる。
なお、後記の処理例2,3で言及するように、符号化データに対する処理内容によっては、テーブルの各エントリーから位置情報を省くことも可能である。また、データ処理手段101に符号化処理機能を持たせ、外部より取り込んだ画像データの符号化処理を行って符号化データを生成し、それをデータ記憶手段100に格納させることも可能であり、かかる構成も本実施例に包含される。
以下、具体的な処理に関連した動作について説明する。
[処理例1]
ここでは、特定のタイルに対し符号量削減のための符号編集処理を行って画像を再生する動作について説明する。この場合の動作の流れを図5に示す。
処理に先立って、処理対象の画像がユーザにより選択される。この画像選択は、ユーザインターフェース手段103を利用し、例えば、ファイル名やサムネールの一覧から選択するような一般的な方法によって行われる。そして、データ処理手段101により当該画像の符号化データが復号され、データ記憶手段100の特定記憶域に当該画像の画像データが生成され、この画像データがユーザインターフェース手段103により画面表示されているものとする。この際、好ましくは、タイル分割線が画像に重ねて表示される。
なお、メインヘッダの解析によりタイル分割構造を認識できるため、データ処理手段101によりメインヘッダの解析のみ行って、タイル分割線だけを画面表示させることも可能である。ただし、特定のタイルにおける符号量削減後の画質を、それ以外のタイルの画質と比較するためには、画像全体を復号し表示するのが好ましい。
また、予めタイル分割構造が分かっている場合には、画像の符号化データに全くアクセスすることなく、データ処理手段101において、そのタイル分割構造に対応したタイル分割線を示す画像データを生成してデータ記憶手段100の特定記憶域に書き込むことにより、それを画面表示させるようにしてもよい。
以下、図5を参照する。まず、ステップS100において、ユーザは、ユーザインターフェース手段103により、特定のタイルの指定(処理対象の画像領域の指定)と符号量削減の指定(処理内容の指定)を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でタイル又は処理コマンドを選択することにより行われる。
ここでは、例えば、図2に示すようにタイル分割された画像の周辺部の12個のタイル(00番〜04番、07番、08場、11番〜15番)が処理対象の画像領域として指定されるものとする。
ステップS101において、テーブル処理手段102は、当該画像の符号データ格納時に作成されているテーブル(図3)を基に、ユーザにより指定されたタイルのエントリーが連続するようにエントリーを並べ替えた、図6に示すようなテーブルを作成する。
次にステップS102において、データ処理手段101は、図6に示すテーブルの先頭のエントリーより順に各エントリーを参照し、各エントリーに格納されている記憶アドレス情報に基づいて、データ記憶手段100より、まずメインヘッダを取り込み、続いて00番〜04番,07番,08番,11番〜15番のタイルの符号データを順に1タイルずつ読み込む。そして、読み込んだ各タイルの符号データに対し符号量削減のための符号編集処理を順次実行する(ステップS102a)。そして、編集後の各タイルの符号データの復号処理を順次実行し(ステップS102b)、復号されたタイル画像データを、当該タイルに対応したエントリーに格納されている位置情報に従ってデータ記憶手段100の特定の記憶域に書き出す(ステップS102c)。この処理が15番タイルまで実行される。ここでの符号量削減のための符号編集処理は、レイヤ単位又はビットプレーン単位もしくはサブビットプレーン単位の符号破棄(トランケーション)と、それに応じたタイルヘッダの必要な書き換えである。JPEG2000の符号化データは、このような符号編集を容易に行うことができる。
このように、同じ処理(ここでは符号量削減のための符号編集処理)を飛び飛びに位置したタイルの符号データに対して行う場合でも、テーブルの連続したエントリーを順に参照することにより、それらタイルの符号データだけを連続的に読み込んで処理することができるため、効率的な処理が可能である。また、各タイルのエントリーには位置情報が格納されているため、テーブル上のエントリーの順番(タイルの符号データの読み出し順)を元の順番と異ならせても、各タイルの復号画像データを本来の位置関係に従って書き出すことができるため、再生画像上でタイルの位置関係が乱れることもない。
データ記憶手段100の特定の記憶域上の画像データはユーザインターフェース手段103により逐次画面表示されるため、符号編集処理の結果をユーザは直ちに確認することができる。そして、ステップS103において、ユーザは符号編集処理の結果を保存したい場合には「保存」を、符号編集処理の結果を取り消したい場合は「取り消し」をユーザインターフェース手段103により指示することができる。
ユーザより「保存」が指示された場合(ステップS104,保存)、ステップS105において、テーブル処理手段102は、ステップS102の処理段階でデータ記憶手段100に記憶されている符号編集処理後のタイルの符号データの記憶アドレス情報によって、テーブルの対応エントリーの記憶アドレス情報を書き換える操作を行ったのち、テーブルを新しいファイル名と関連付けて保存する処理を行う。なお、テーブルを保存する際に、テーブルのエントリーをタイル番号順に並べ直してもよい。
このような保存処理により、符号編集処理後の画像の符号データは、元の画像とは別の画像として保存されたことになる。その後、必要に応じて、当該テーブルを参照することにより、今回の符号編集処理後の符号データを復号処理して画像を再生することが可能になる。すなわち、この処理例は、特定のタイルの符号量が削減された別の符号化データを生成する処理の例でもある。
一方、ユーザより「取り消し」が指示された場合(ステップS104,取り消し)、ステップS106において、データ処理手段101は、ステップS101で作成したテーブルを破棄するとともに、ステップS102の処理段階でデータ記憶手段100上に記憶されている符号編集処理後のタイルの符号データを破棄する。そして、ステップS100に戻り、ユーザは領域指定及び処理指定を改めて行うことができる。ユーザは、「終了」のコマンドを指定することにより、当該画像に対する処理を終了することができる。
ここでは、符号量削減のための符号編集処理を例にして説明したが、特定のタイルに関し色差コンポーネントの符号を破棄し、モノクロ表示にするための符号編集処理や、プログレッシブ順序を変更する符号編集処理、解像度を下げる符号編集処理なども同様に行うことができる。
また、ここで述べた例において、周辺部のタイルの符号編集処理に続けて、中心部のタイルに対し別の符号編集処理を行わせることも可能である。中心部のタイル(05,06,09,10番タイル)も飛び飛びの位置関係にあるが、それらタイルに対応したエントリーもテーブル上で連続しているため、その処理も効率的に行うことができる。
なお、符号編集処理によりメインヘッダの書き換えが必要となる場合には、テーブルの保存前に、書き換えたメインヘッダを作成して保存し、その記憶アドレス情報によりメインヘッダのエントリーの記憶アドレス情報を書き換える。
[処理例2]
特定の画像領域を入れ替えるための処理について説明する。この場合の動作の流れを図7に示す。
この処理に先立って、ユーザにより処理対象の画像が選択される。この画像選択は、ユーザインターフェース手段103を利用し、例えば、ファイル名やサムネールの一覧から選択するような一般的な方法によって行われる。そして、データ処理手段101により当該画像の符号化データが復号され、データ記憶手段100の特定記憶域に当該画像の画像データが生成され、この画像データがユーザインターフェース手段103により画面表示されているものとする。この際、好ましくは、タイル分割線が画像に重ねて表示される。
なお、メインヘッダの解析によりタイル分割構造を認識できるため、データ処理手段101によりメインヘッダの解析のみ行って、タイル分割線だけを画面表示させることも可能である。ただし、画像全体を復号し表示する方が、画像内容を把握した上で入れ替え領域の指定を行うことができるので一般に好ましい。
また、予めタイル分割構造が分かっている場合には、画像の符号化データに全くアクセスすることなく、データ処理手段101において、そのタイル分割構造に対応したタイル分割線を示す画像データを生成してデータ記憶手段100の特定記憶域に書き込むことにより、それを画面表示させるようにしてもよい。
以下、図7を参照する。ステップS121において、ユーザは、ユーザインターフェース手段103により、処理内容の指定と、入れ替えたいタイルの組の指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。ここでは、例えば、図2に示すようにタイル分割された画像の00番タイルと03番タイル、04番タイルと07番タイル、08番タイルと11番タイル、12番タイルと15番タイルが、入れ替えられるタイルの組として指定されたとする。
ステップS122において、テーブル処理手段102は、当該画像の符号データ格納時に作成されたテーブルと同じ内容のテーブルを作成(複製)する。以下で言及するテーブルは、この複製されたテーブルである。次に、テーブル処理手段102は、入れ替えを指定された各組のタイルに対応したテーブル上のエントリーの記憶アドレス情報を入れ替える(交換する)処理を行う。
このようにして作成されるテーブルの様子を図8に示す。図8において、*印の付けられたエントリーが記憶アドレス情報の入れ替えが行われたエントリーである。また、記憶アドレス情報が入れ替えられたエントリーの破線の左側の数字は記憶アドレス情報を、右側の数字は位置情報を、それぞれ便宜的にタイル番号で表している。例えば、00番タイルに対応したエントリーでは左側に「03」と記されているが、これは当該エントリーの記憶アドレス情報が03番タイルの符号データの記憶アドレスに書き換えられていることを意味している。各エントリーの位置情報は元のままである。
このようなテーブルの作成処理により、画像の特定のタイルを交換する符号編集は実質的に終了しているが、実際に特定のタイルの符号データが交換されるのはステップS126の処理の段階である。
次にステップS123において、ユーザは、作成されたテーブルを保存したい場合には「保存」を、それを破棄したい場合は「取り消し」をユーザインターフェース手段103により指示することができる。
ユーザより「保存」が指示された場合(ステップS124,保存)、ステップS125において、テーブル処理手段102は作成したテーブルを新しいファイル名と関連付けて保存する処理を行う。次のステップS126において、データ処理手段101は、ステップS125で保存したテーブルの各エントリーを順に参照し、各エントリーに格納されている記憶アドレス情報に従ってメインヘッダ、各タイルの符号データをデータ記憶手段100から順に読み込む。この段階で、特定のタイルの符号データが実際に他のタイルの符号データと交換されることになる。そして、読み込んだ符号データを順に復号処理し、復号された各タイルの画像データを、テーブルの対応エントリーに格納されている位置情報に従ってデータ記憶手段100の特定の記憶域に書き出す処理を行う。これにより、タイル交換後の画像がユーザインターフェース手段103により画面表示される。
このように作成したテーブルが保存された場合には、その後、必要に応じて、データ処理手段101でそのテーブルを参照して復号処理を行うことにより、タイル交換後の画像を表示させることができる。すなわち、この処理例は、ある画像の特定タイルを交換した別の画像を生成する処理でもある。なお、元の画像はそのまま保存されているので、その再生も可能である。
なお、この処理例の場合、各タイルの位置関係は処理によって変化しないため、テーブルの各エントリーに位置情報が格納されていなくともタイルの位置関係を乱すことなく画像を再生することができる。すなわち、この処理例のようなタイルの位置関係が変換しない符号編集の場合には、符号データの記憶アドレス情報のみを格納したエントリーを順次並べたテーブル構造とすることもできる。ただし、タイル対応エントリーに位置情報が格納されているならば、タイル位置関係が変化するような処理、例えば一部タイルを削除し、かつ、特定のタイルを交換するような処理を容易に行うことができる。
ユーザより「取り消し」が指示された場合(ステップS124,取り消し)、ステップS127において、テーブル処理手段102は、ステップS122で作成したテーブルを破棄する処理を行う。この場合、ステップS121に戻り、ユーザは改めて交換するタイルの指定を行うことができる。また、ユーザは「終了」のコマンドを指定することにより、当該画像に対する処理を終了することができる。
なお、ここでは、1つのタイルと別の1つのタイルを入れ替える例について説明したが、例えば、複数のタイルを、別の1つのタイルと入れ替える処理も可能である。例えば、01番〜03番の各タイルを、00番のタイルと入れ替えるような処理である。この場合、02番〜03番の各タイルに対応したエントリーの記憶アドレス情報は、00番タイルの符号データの記憶アドレス情報に書き換えられる。したがって、01番〜03番の各タイルの位置に、00番タイルと同じタイル画像が表示されることになる。
また、ステップS122において、入れ替えが指定されたタイルに対応したエントリーの記憶アドレス情報を入れ替える代わりに、位置情報を入れ替えることも可能である。このような位置情報の入れ替えによっても、タイル画像を入れ替えた形で画像を表示可能であることは明らかである。このような位置情報を書き換える態様も本実施例に包含されることは当然である。
[処理例3]
前記処理例2は同じ画像内のタイルの入れ替え処理であったが、ここでは、処理対象の画像の特定のタイルを、別の1つ又は複数の画像(以下、利用画像)の特定のタイルと入れ替える処理について説明する。
この処理の場合、予め、ユーザにより処理対象の画像及び利用画像が選択される。そして、データ処理手段101により処理対象画像の符号化データと、利用画像の符号化データが復号され、それぞれの画像データがデータ記憶手段100の特定記憶域に生成され、これら画像データがユーザインターフェース手段103により画面表示されているものとする。この際、タイル分割線が画像に重ねて表示されるのが好ましい。
以下、図7に示したフローチャートを援用して説明する。ステップS121において、ユーザは、ユーザインターフェース手段103により、処理内容の指定と処理対象画像と利用画像の入れ替えたいタイルの組の指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドを選択し、また、タイル及び画像を選択することにより行われる。ここでは、処理画像の中央部分の05番、06番、09番、10番の4タイルを、利用画像の特定のタイル(例えば、05番、06番、09番、10番の4タイル)とそれぞれ入れ替えるようなタイルの組が指定されたものとする。
ステップS122において、テーブル処理手段102は、処理対象画像の符号データ格納時に作成されたテーブルと同じ内容のテーブルを作成(複製)する。次に、テーブル処理手段102は、処理対象画像のテーブル(複製されたテーブル)と利用画像のテーブル(その符号化データの格納時に作成されたテーブル)とを参照し、処理対象画像のテーブル上の入れ替えを指定されたタイルに対応したエントリーの記憶アドレス情報を、利用画像のテーブル上の指定されたタイルのエントリーに格納されている記憶アドレス情報により書き換える処理を行う。この例では、処理対象画像のテーブルは、図9に示すように、*印が付けられた4タイルのエントリーの記憶アドレス情報が書き換えられたテーブルが作成されることになる。各エントリーの位置情報は元のままである。
このようなテーブルの作成処理によって、処理対象画像の特定タイルを利用画像の特定タイルと入れ替える符号編集処理は実質的に終了するが、実際に符号データが入れ替えられるのはステップS126の処理の段階である。
次にステップS123において、ユーザは、作成されたテーブルを保存したい場合には「保存」を、それを破棄したい場合は「取り消し」をユーザインターフェース手段103により指示することができる。
ユーザより「保存」が指示された場合(ステップS124,保存)、ステップS125において、テーブル処理手段102は作成したテーブルを新しいファイル名と関連付けて保存する処理を行う。次のステップS126において、データ処理手段101は、ステップS126で保存したテーブルを参照することにより、メインヘッダ、各タイルの符号データを順に読み込む。この段階で、処理対象画像の特定のタイルの符号データが実際に利用画像の特定のタイルの符号データと入れ替えられることになる。そして、それらタイルの符号データを順に復号処理し、復号された各タイルの画像データを、テーブルの対応エントリーの位置情報に従ってデータ記憶手段100の特定記憶域に書き出す処理を行う。これにより、タイル入れ替え処理後の画像がユーザインターフェース手段103により画面表示されることになる。
このように作成したテーブルが保存された場合には、その後、必要に応じて、データ処理手段101でそのテーブルを参照して復号処理を行うことにより、タイル入れ替え後の画像を表示させることができる。すなわち、この処理例は、ある画像の特定タイルを、別のある画像の特定タイルと入れ替えて別の画像を生成する、画像合成の処理でもある。なお、タイル入れ替え前の元の画像は保存されているので、その再生も当然可能である。
なお、この処理例の場合、各タイルの位置関係は処理によって変化しないため、テーブルの各エントリーに位置情報が記録されていなくとも、画像の復号・再生は可能である。すなわち、この処理例のような符号編集の場合には、符号データの記憶アドレス情報のみを記録したエントリーを順次並べたテーブル構造とすることができる。
ユーザより「取り消し」が指示された場合(ステップS124,取り消し)、ステップS127において、テーブル処理手段102は、ステップS122で作成したテーブルを破棄する処理を行う。この場合、ステップS121に戻り、ユーザはタイル入れ替えの指定を行うことができる。また、ユーザは「終了」のコマンドを指定することにより、当該画像に対する処理を終了することができる。
[処理例4]
画像の特定領域のみを再生する処理について説明する。
この処理に先立って、ユーザにより、ユーザインターフェース手段103を利用し処理対象の画像が選択される。そして、データ処理手段101により当該画像の符号化データが復号され、データ記憶手段100の特定記憶域に当該画像の画像データが生成され、この画像データがユーザインターフェース手段103により画面表示されているものとする。この際、好ましくは、タイル分割線が画像に重ねて表示される。
なお、メインヘッダの解析によりタイル分割構造を認識できるため、データ処理手段101によりメインヘッダの解析のみ行って、タイル分割線だけを画面表示させることも可能である。ただし、画像全体を復号し表示する方が、画像内容を把握した上で領域選択を行うことができるので一般に好ましい。また、タイル分割構造が分かっているならば、それを表す画像データをデータ処理手段101で生成し画面表示させてもよい。
以下、図7のフローチャートを援用して説明する。まず、ステップS121において、ユーザは、ユーザインターフェース手段103により、処理内容の指定と再生させたいタイルの指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。
ここでは、例えば、図2に示すようにタイル分割された画像の中央部の4個のタイル(05番、06番、09番、10番のタイル)が指定されたものとする。
次にステップS122において、テーブル処理手段102は、当該画像の符号化データ格納時に作成されているテーブル(図3)を基に、メインヘッダのエントリーとユーザにより指定されたタイルのエントリーからなる図10に示すようなテーブルを作成する。この際、データ処理手段101により、元のメインヘッダに基づいて、必要な書き換えを行ったメインヘッダが作成されてデータ記憶手段100に記憶される。テーブル処理手段102は、そのメインヘッダの記憶アドレス情報をテーブルのメインヘッダのエントリーに書き込む。
なお、この例では選択されたタイルの位置関係を変更する必要がないので、それらタイルのエントリーの位置情報もそのままである。しかし、離れた位置にあるタイル、例えば、00番タイル、03番タイル、12番タイル、15番タイルが選択され、それらを2×2タイル画像として再生させたいような場合には、それらタイルのエントリーの位置情報が書き換えられる。
ステップS123において、ユーザは、作成されたテーブルを保存したい場合には「保存」を、それを破棄したい場合は「取り消し」をユーザインターフェース手段103により指示することができる。
ユーザより「保存」が指示された場合(ステップS124,保存)、ステップS125において、テーブル処理手段102は作成したテーブルを新しいファイル名と関連付けて保存する処理を行う(すなわち、4タイルのみからなる画像が元の画像とは別の画像として保存されることになる)。次のステップS126において、データ処理手段101は、データ記憶手段100の特定の記憶域に記憶されている画像データ(現在表示されている画像データ)を破棄し、ステップS126で保存したテーブルを参照することにより、メインヘッダ、画像中央部の4タイルの符号データを順に読み込んで復号し、復号された各タイルの画像データを、テーブルの対応エントリーの位置情報に従ってデータ記憶手段100の特定記憶域に書き出す処理を行う。これにより、中央部の4タイルのみからなる画像がユーザインターフェース手段103により画面表示される。
このように、作成したテーブルを保存した場合には、その後、必要に応じて、データ処理手段101でそのテーブルを参照してメインヘッダと中央部の4タイルの符号データのみを読み込み、復号処理を行うことにより、当該画像の中央部の4タイルの画像を表示させることができる。すなわち、この処理例は、元の画像の特定のタイルを抽出して別の画像を生成する処理でもある。なお、元の画像はそのまま保存されているので、その再生も可能である。
ユーザより「取り消し」が指示された場合(ステップS124,取り消し)、ステップS127において、テーブル処理手段102は、ステップS122で作成したテーブル及びメインヘッダを破棄する処理を行う。この場合、ステップS121に戻り、ユーザは改めて処理内容と領域の指定を行うことができる。また、ユーザは「終了」のコマンドを指定することにより、当該画像に対する処理を終了することができる。
以上、4種類の処理例について説明したが、それら処理を重複して行うことも可能である。例えば、ある画像に関し、処理例1の処理により作成され保存されたテーブルを参照して画像を表示させた状態で、処理例2の処理により当該テーブルを更新することによって、処理例1と処理例2を重複して行うことができる。
次に、複数の画像に対し同一内容の処理を一括して実行する例を説明する。
[処理例5]
ここでは、複数の画像に対し、特定のタイルを抽出し復号する処理を一括して実行する例について述べる。この場合の動作の流れを図11に示す。
この処理に先立って、ユーザにより、ユーザインターフェース手段103を利用し、例えば、ファイル名やサムネールの一覧から選択するような方法によって処理対象の複数の画像が選択される。フォルダを選択して、そのフォルダ内の全画像を選択するような方法を用いることもできる。そして、選択された1つの画像の符号化データがデータ処理手段101により復号され、データ記憶手段100の特定記憶域に当該画像の画像データが生成され、この画像データがユーザインターフェース手段103により画面表示されているものとする。この際、好ましくは、タイル分割線が画像に重ねて表示される。
なお、メインヘッダの解析によりタイル分割構造を認識できるため、データ処理手段101によりメインヘッダの解析のみ行って、タイル分割線だけを画面表示させることも可能である。また、予めタイル分割構造が分かっている場合には、画像の符号化データに全くアクセスすることなく、データ処理手段101において、そのタイル分割構造に対応したタイル分割線を示す画像データを生成してデータ記憶手段100の特定記憶域に書き込むことにより、それを画面表示させるようにしてもよい。
以下、図11を参照する。まず、ステップS160において、ユーザは、ユーザインターフェース手段103により、処理内容の指定と再生させたいタイルの指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。ここでは、図2に示すようにタイル分割された画像の中央部の4個のタイル(05番、06番、09番、10番のタイル)が指定されるものとする。
次にステップS161において、テーブル処理手段102は、選択された各画像の符号化データ格納時に作成されているテーブル(図3)を基に、各画像のメインヘッダのエントリーとユーザにより指定されたタイルのエントリーからなるテーブルを順に結合した図12に示すようなテーブル(結合テーブルと記す)を作成する。なお、この際、データ処理手段101により、元のメインヘッダに基づいて、必要な書き換えを行ったメインヘッダが作成されてデータ記憶手段100に記憶され、その記憶アドレス情報がテーブル処理手段102によりテーブルのメインヘッダのエントリーに書き込まれる。
この例では選択されたタイルの位置関係を変更する必要がないので、それらタイルのエントリーの位置情報は元のままである。しかし、離れた位置にあるタイル、例えば、00番タイル、03番タイル、12番タイル、15番タイルが選択され、それらを2×2タイル画像として再生させたいような場合には、それらタイルのエントリーの位置情報が書き換えられる。
ステップ162において、データ処理手段101は、結合テーブルの先頭から各エントリーを順に参照することにより、各画像のメインヘッダ及び中央部の4タイルの符号データを順に読み込んで復号処理し、その4タイル画像データをテーブルの対応エントリーの位置情報に従ってデータ記憶手段100の特定記憶域に書き出す処理を順次行う(最初に表示されていた画像データは破棄される)。これにより、選択された各画像の中央部の4タイルのみからなる画像がユーザインターフェース手段103により順に画面表示されることになる。このような画像の連続表示は、例えば、デジタルカメラなどによって連続撮影された複数枚の静止画像を一括処理するような場合に好適であろう。このような選択された画像の選択されたタイルの復号・再生処理はユーザから指示が入力されるまで繰り返される。
なお、選択された各画像の画像データをデータ記憶手段100に別画像として記憶し、ユーザからの指示に応じてページをめくる様に各画像を表示させるようにしてもよく、かかる態様も本実施例に包含される。また、複数の画像を並べて同時に画面表示させてもよく、かかる態様も本実施例に包含される。
このように、複数の画像について、特定タイルのみ復号し再生する処理を一括して効率的に行うことができる。
ステップS163において、ユーザは、作成されたテーブルを保存したい場合には「保存」を、それを破棄したい場合は「取り消し」をユーザインターフェース手段103により指示することができる。
ユーザより「保存」が指示された場合(ステップS164,保存)、ステップS165において、テーブル処理手段102は、結合テーブルを画像毎のテーブルに分割し、各テーブルを新しいファイル名と関連付けて保存する処理を行う(すなわち、4タイルのみからなる各画像が元の画像とは別の画像として保存されることになる)。
このように、各画像に関し作成したテーブルを保存した場合には、その後、必要に応じて、データ処理手段101で、その画像のテーブルを参照してメインヘッダと中央部の4タイルの符号データのみを読み込み、復号処理を行うことにより、当該画像の中央部の4タイルの画像を表示させることができる。すなわち、この処理例は、元の画像の特定のタイルを抽出して別の画像を生成する処理を、複数の画像に対し一括して行う処理でもある。なお、元の画像はそのまま保存されているので、その再生も可能である。
ユーザより「取り消し」が指示された場合(ステップS164,取り消し)、ステップS166において、テーブル処理手段102は、ステップS161で作成したテーブル及びメインヘッダを破棄する処理を行う。この場合、ステップS160に戻り、ユーザは改めて処理内容と領域の指定を行うことができる。また、ユーザは「終了」のコマンドを指定することにより、当該画像に対する処理を終了することができる。
なお、この処理例と同様にして、前記処理例1で述べたような符号量削減やモノクロ化、プログレッシブ順序の変更などのための符号編集処理、前記処理例2又は3のような画像内での特定タイルの入れ替え、もしくは特定タイルの他の画像のタイルとの入れ替え(合成)のための符号編集処理を、複数の画像の符号化データに対し一括して行うことも可能であることは、以上の説明から明らかであろう。
以上に説明した処理例は、本発明の画像処理方法による処理例でもある。また、これら処理例における処理工程をコンピュータにおいて実行するための1以上のプログラム、及び、同プログラムが記録されたコンピュータが読み取り可能な各種情報記録(記憶)媒体も本発明に包含される。
図13は、本実施例に係るサーバ/クライアント構成の画像処理システムを説明するためのブロック図である。図13に示す画像処理システムは、画像サーバ装置(画像処理装置)200と、複数のクライアント装置(画像出力装置)201が伝送路202を介して接続される構成である。伝送路202は、例えばLAN、イントラネット、インターネットなどのネットワークの回線である。
画像サーバ装置200は、画像の符号化データなどを記憶するためのデータ記憶手段210、画像の符号化データの符号編集などの処理を行うデータ処理手段211、画像に関連したテーブルを作成するテーブル処理手段212、伝送路202を通じてクライアント装置201やその他の外部装置との送受信を行う通信手段213、これら各手段の動作を制御する制御手段214を含み、これら各手段相互で情報を交換可能とした構成である。
データ記憶手段210には、通信手段213により伝送路202を介し外部の装置から受信した画像の符号化データ、ローカルな画像入力装置(不図示)より入力された画像の符号化データ、あるいは、外部の装置から入力した画像データをデータ処理手段211により符号化した符号化データが格納される。
画像の符号化データは、画像領域単位で処理可能な構造を持つものであり、ここではJPEG2000の符号化データとする。JPEG2000の符号化データでは、画像領域の単位としてタイルやプレシンクト、コードブロックを用いることができるが、説明の簡略化のため、ここではタイルを画像領域の単位として用いるものとする。
データ記憶手段210に画像の符号化データが格納される時に、テーブル処理手段212により、その画像に関連したテーブルが作成され、画像と関連付けされてデータ記憶手段210に格納される。このテーブルは、図3に示した如き構造であり、その各エントリーも図4に示した如き構造である。
データ処理手段211は、画像の符号化データに対する符号編集処理のほか、送信データの作成などの処理を行う手段である。データ記憶手段210は、テーブル処理手段212及びデータ処理手段211の作業用記憶域としても利用される。
このような画像サーバ装置200は、典型的には、CPU、メインメモリ、ハードディスク装置などの大容量記憶装置、通信インターフェース、外部インターフェースなどからなるコンピュータを利用し、オペレーティングシステム上で動作する1以上のプログラムにより実現される。この場合、データ記憶手段210としては、コンピュータが備えるメインメモリや大容量記憶装置により提供される記憶スペースを利用することができる。
なお、コンピュータを、画像サーバ装置200の各手段として機能させるための1以上のプログラム、及び、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などの、コンピュータが読み取り可能な情報記録(記憶)媒体も本発明に包含される。また、画像サーバ装置200における処理手順、換言すれば、本発明の画像処理方法における処理工程を、コンピュータにより実行させるための1以上のプログラム、及び、同プログラムが記録されたコンピュータが読み取り可能な各種情報記録(記憶)媒体も本発明に包含される。
クライアント装置201は、画像の符号化データなどを記憶するためのデータ記憶手段250、画像の符号化データの復号処理などを行うデータ処理手段251、ユーザが画面を通じて対話的に各種指示を入力し、あるいは画像を画面表示するためのユーザインターフェース手段252、伝送路202を通じて画像サーバ装置200と送受信する通信手段253、それら各手段の動作を制御する制御手段254を含み、これら各手段相互で情報を交換可能とした構成である。
このようなクライアント装置201は、典型的には、CPU、メインメモリ、ハードディスク装置などの補助記憶装置、通信インターフェースなどを備えるパソコンなどのコンピュータを利用し、オペレーティングシステム上で動作する1以上のプログラムにより実現される。この場合、ユーザインターフェース手段252として、コンピュータのディスプレイ装置とユーザ入力装置を利用することができる。データ記憶手段250としては、コンピュータが備えるメインメモリや補助記憶装置により提供される記憶スペースを利用することができる。
本実施例の画像処理システムにおいては、画像に関連したテーブルの作成や画像の符号化データの符号編集などの処理は画像サーバ装置200で行われ、符号編集などの処理後の符号化データの復号処理などはクライアント装置201で行われる。
図14は、画像サーバ装置200とクライアント装置201の動作を説明するための概略フローチャートである。このフローチャートを参照し、前記実施例1において説明した処理例1〜5と同様の処理例に関連してシステムの動作を説明する。
[処理例6]
前記実施例1の[処理例1]に対応する処理例であり、選択した画像の特定のタイルに対し符号量削減のための符号編集処理を行う。
この処理に先立って、クライアント装置201のユーザは、ユーザインターフェース手段252を利用し、例えば、ファイル名やサムネールの一覧から選択するような方法によって画像を選択する。また、ユーザインターフェース手段252により画像のタイル分割構造(図2)が画面表示されているものとする。
まず、ステップS210において、クライアント装置201のユーザは、ユーザインターフェース手段252により、表示されている特定のタイルの指定(処理対象の画像領域の指定)と、符号量削減の指定(処理内容の指定)を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でタイル又は処理コマンドを選択することにより行われる。ここでは、例えば、図2に示すようにタイル分割された画像の周辺部の12個のタイル(00番〜04番、07番、08場、11番〜15番)が処理対象の画像領域として指定されるものとする。
次のステップS211,S200において、クライアント装置201は指定された処理の内容及びタイルの番号を選択された画像のファイル名などの情報とともに通信手段253により画像サーバ装置200へ送信し、これを画像サーバ装置200は通信手段213により受信する。
ステップS201において、画像サーバ装置200のテーブル処理手段212は、指定された画像に関して符号データ格納時に作成されているテーブル(図3)を基に、指定されたタイルのエントリーが連続するようにエントリーを並べ替えた、図6に示すようなテーブルを作成する。
次にステップS202において、画像サーバ装置200のデータ処理手段211は、図6に示すテーブルの先頭より順に各エントリーを参照し、各エントリーに格納されている記憶アドレス情報に基づいて、データ記憶手段210より、まずメインヘッダを取り込み、続いて00番〜04番,07番,08番,11番〜15番のタイルの符号データを順に1タイルずつ読み込む。そして、読み込んだ各タイルの符号データに対し符号量削減のための符号編集処理を順次実行する。ここでの符号量削減のための符号編集処理は、レイヤ単位又はサブビットプレーン単位の符号破棄(トランケーション)と、それに応じたタイルヘッダの必要な書き換えである。このように、同じ処理(ここでは符号量削減のための符号編集処理)を飛び飛びに位置したタイルの符号データに対して行う場合でも、テーブルの連続したエントリーを順に参照することにより、それらタイルの符号データだけを連続的に読み込んで処理することができるため効率的な処理が可能である。
次に、ステップS203において、データ処理手段211は、既に取り込んだメインヘッダに、00番〜04番,07番,08番,11番〜15番のタイルの符号編集処理後の符号データをこの順に結合し、さらにテーブルを参照して取り込んだ残りのタイルの符号データを順に結合した送信データを作成する。この際、ステップS201で作成されたテーブルの情報(少なくとも各タイル対応の位置情報)を、例えばメインヘッダにコメントデータとして記述する。
そして、ステップS204,S212において、画像サーバ装置200は通信手段213により送信データを要求元のクライアント装置201へ送信し、これをクライアント装置201は通信手段253により受信しデータ記憶手段250に記憶する。
ステップS213において、クライアント装置201のデータ処理手段201は、受信データ中のメインヘッダを解析するとともにテーブル情報を抽出する。そして、受信データ中の各タイルの符号データを順に取り込んで復号し、復号したタイル画像データを、テーブル情報に含まれる位置情報に従ってデータ記憶手段250の特定記憶域に書き出す処理を行う。この特定記憶域の画像データはユーザインターフェース手段252の画面に逐次表示される。
ここでは、符号量削減のための符号編集処理を例にして説明したが、特定のタイルに関し色差コンポーネントの符号を破棄し、モノクロ表示にするための符号編集処理や、プログレッシブ順序を変更する符号編集処理、解像度を下げる符号編集処理なども画像サーバ装置200で同様に行わせ、その結果をクライアント装置201へ転送し表示させることができることはあきらかである。
また、ここで述べた例において、周辺部のタイルの符号編集処理に続けて、中心部のタイルに対し別の符号編集処理を行わせることも可能である。中心部のタイル(05,06,09,10番タイル)も飛び飛びであるが、それらタイルに対応したエントリーもテーブル上で連続しているため、その処理も効率的に行うことができる。
なお、符号編集処理によりメインヘッダの書き換えが必要となる場合には、その書き換えが送信データ作成段階(ステップS203)で行われる。
また、ここではテーブルの情報をメインヘッダに含めて送信した。この方法は効率的ではあるが、テーブルの情報を符号化データと別のデータとしてクライアント装置側へ転送するようにしてもよい。
[処理例7]
前記実施例1の[処理例2]に対応する処理例であり、同じ画像内で特定の画像領域の入れ替えを行う。
この処理に先立って、クライアント装置201のユーザは、ユーザインターフェース手段252を利用し、例えば、ファイル名やサムネールの一覧から選択するような方法によって画像を選択する。また、ユーザインターフェース手段252により画像のタイル分割構造(図2)が画面表示されているものとする。
まず、ステップS210において、クライアント装置201のユーザは、ユーザインターフェース手段252により、タイル入れ替えの指定(処理内容の指定)と入れ替えたいタイルの組の指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。ここでは、例えば、図2に示すようにタイル分割された画像の00番タイルと03番タイル、04番タイルと07番タイル、08番タイルと11番タイル、12番タイルと15番タイルが、入れ替えられるタイルの組として指定されたとする。
ステップS200,S211において、クライアント装置201は通信手段253により指定された処理の内容及びタイル番号の組を選択された画像のファイル名などとともに送信し、これを画像サーバ装置200は通信手段213により受信する。
ステップS201において、画像サーバ装置200のテーブル処理手段212は、選択された画像に関するテーブル(符号データ格納時に作成されたテーブル)と同じ内容のテーブルを作成(複製)する。以下で言及するテーブルはこの複製されたテーブルである。次に、テーブル処理手段212は、テーブル上の入れ替えを指定された各組のタイルのエントリーの記憶アドレス情報を入れ替える(交換する)処理を行う。図8に、この記憶アドレス情報の入れ替え処理後のテーブルの様子を示す。図8において、*印の付けられたエントリーが記憶アドレス情報の入れ替えが行われたエントリーである。また、各エントリーの破線の左側の数字は記憶アドレス情報を、右側の数字は位置情報を、それぞれ便宜的に対応したタイル番号で表している。例えば、00番タイルに対応したエントリーでは左側に「03」と記されているが、これは当該エントリーの記憶アドレス情報が03番タイルの符号データの記憶アドレスに書き換えられていることを意味している。各エントリーの位置情報は元のままである。
この処理例の場合、以上のテーブル操作でタイル入れ替えの編集は実質的に完了するので、次のステップS202はスキップされ、ステップS203に進む。
このステップS203において、画像サーバ装置200のデータ処理手段211は、テーブルの各エントリーを順に参照することにより、メインヘッダ、各タイルの符号データを順に読み込み、それらを順に結合した送信データを作成する。なお、この処理例では、テーブルの情報をクライアント装置側へ必ずしも転送する必要はない。
そして、ステップS204,S212において、画像サーバ装置200は通信手段213により送信データを要求元のクライアント装置201へ送信し、これをクライアント装置201は通信手段253により受信しデータ記憶手段250に記憶する。
ステップS213において、クライアント装置201のデータ処理手段201は、受信データ中のメインヘッダを解析した後、各タイルの符号データを順に取り込んで復号し、復号したタイル画像データをデータ記憶手段250の特定記憶域に順に書き出す処理を行う。この特定記憶域の画像データはユーザインターフェース手段252の画面に逐次表示される。受信データにおいて、タイルの符号データは、イルの入れ替え後の順番で並べられているため、特定のタイルが入れ替えられた画像が画面表示される。
なお、ここでは、1つのタイルと別の1つのタイルを入れ替える例について説明したが、例えば、複数のタイルを、別の1つのタイルと入れ替える処理も可能である。例えば、01番〜03番の各タイルを、00番のタイルと入れ替えるような処理である。この場合、02番〜03番の各タイルに対応したエントリーの記憶アドレス情報は、00番タイルの符号データの記憶アドレス情報に書き換えられる。したがって、01番〜03番の各タイルの位置に、00番タイルと同じタイル画像が表示されることになる。
また、ステップS201において、入れ替えが指定されたタイルに対応したエントリーの記憶アドレス情報を入れ替える代わりに、位置情報を入れ替えることも可能である。このような位置情報の入れ替えによっても、タイル画像を入れ替えた形で画像を表示可能であることは明らかである。この場合には、テーブル情報(少なくとも各タイルの位置情報)をメインヘッダに記述するか、別のデータとしてクライアント装置側へ転送し、クライアント装置側では復号した各タイルの画像データを位置情報に従って書き出すことになる。かかる態様も本実施例に包含されることは当然である。
[処理例8]
前記実施例1の[処理例3]に対応する処理例であり、処理対象の画像の特定のタイルを別の1つ又は複数の画像(以下、利用画像)の特定のタイルと入れ替える。
この処理に先だって、クライアント装置201のユーザは、ユーザインターフェース手段252を利用し、例えば、ファイル名やサムネールの一覧から選択するような方法によって、処理対象画像と1以上の利用画像を選択する。また、ユーザインターフェース手段252により、選択された各画像に対応してタイル分割構造(図2)が画面表示されているものとする。
まず、ステップS210において、クライアント装置201のユーザは、ユーザインターフェース手段252により、タイル入れ替えの指定(処理内容の指定)と、処理対象画像と利用画像の入れ替えたいタイルの組の指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。ここでは、例えば、処理画像の中央部分の05番、06番、09番、10番の4タイルを、1つの利用画像の特定のタイル(例えば、05番、06番、09番、10番の4タイル)と入れ替えるようなタイルの組が指定されたものとする。
ステップS200,S211において、クライアント装置201は通信手段253により指定された処理の内容及びタイル番号の組を処理対象画像及び利用画像のファイル名などとともに送信し、これを画像サーバ装置200は通信手段213により受信する。
ステップS201において、画像サーバ装置200のテーブル処理手段212は、処理対象画像の符号データ格納時に作成されたテーブルと同じ内容のテーブルを作成(複製)する。次に、テーブル処理手段212は、利用画像のテーブル(その符号化データ格納時に作成されたテーブル)を参照し、処理対象画像のテーブル(複製されたテーブル、以下同様)上の入れ替えを指定されたタイルに対応したエントリーの記憶アドレス情報を、利用画像のテーブル上の指定されたタイルのエントリーに格納されている記憶アドレス情報により書き換える処理を行う。この例では、処理対象画像のテーブルは、図9に示すように、*印が付けられた4タイルのエントリーの記憶アドレス情報が書き換えられることになる。各エントリーの位置情報は元のままである。
なお、この処理例の場合、各タイルの位置関係は処理によって変化しないため、処理対象画像のテーブルの各エントリーに位置情報が記録されていなくとも、画像の復号・再生は可能である。すなわち、この処理例のような符号編集の場合には、符号データの記憶アドレス情報のみを記録したエントリーを順次並べたテーブル構造とすることができる。
また、この処理例の場合、以上のテーブル操作によってタイル入れ替えの編集は実質的に完了するので、次のステップS202はスキップされ、ステップS203に進む。
このステップS203において、画像サーバ装置200のデータ処理手段211は、処理対象画像のテーブルの各エントリーを順に参照することにより、メインヘッダ、各タイルの符号データを順に読み込み、それらを順に結合した送信データを作成する。なお、この処理例の場合、処理対象画像のテーブルの情報をクライアント装置側へ必ずしも転送する必要はない。
そして、ステップS204,S212において、画像サーバ装置200は通信手段213により送信データを要求元のクライアント装置201へ送信し、これをクライアント装置201は通信手段253により受信しデータ記憶手段250に記憶する。
ステップS213において、クライアント装置201のデータ処理手段251は、受信データ中のメインヘッダを解析した後、各タイルの符号データを順に取り込んで復号し、復号したタイル画像データをデータ記憶手段250の特定記憶域に順に書き出す処理を行う。この特定記憶域の画像データはユーザインターフェース手段252の画面に逐次表示される。受信データにおいては、特定のタイルの符号データは利用画像の特定のタイルの符号データと入れ替えられているため、タイルの入れ替え後の画像が画面表示される。
[処理例9]
前記実施例1の[処理例4]に対応する処理例であり、画像の特定領域のみ抽出し再生する。
この処理に先だって、クライアント装置201のユーザは、ユーザインターフェース手段252を利用し、例えば、ファイル名やサムネールの一覧から選択するような方法によって、処理対象画像を選択する。また、ユーザインターフェース手段252により、画像のタイル分割構造(図2)が画面表示されているものとする。
まず、ステップS210において、クライアント装置201のユーザは、ユーザインターフェース手段252により、処理の内容と、再生させたいタイルの指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。ここでは、例えば、図2に示すようにタイル分割された画像の中央部の4個のタイル(05番、06番、09番、10番のタイル)が指定されたものとする。
ステップS200,S211において、クライアント装置201は通信手段253により指定された処理の内容及びタイル番号を選択された画像のファイル名などとともに送信し、これを画像サーバ装置200は通信手段213により受信する。
次にステップS201において、画像サーバ装置200のテーブル処理手段212は、当該画像の符号化データ格納時に作成されているテーブル(図3)を基に、メインヘッダのエントリーとユーザにより指定されたタイルのエントリーからなる図10に示すようなテーブルを作成する。なお、この例では選択されたタイルの位置関係を変更する必要がないので、それらタイルのエントリーの位置情報もそのままである。しかし、離れた位置にあるタイル、例えば、00番タイル、03番タイル、12番タイル、15番タイルが選択され、それらを2×2タイル画像として再生させたいような場合には、それらタイルのエントリーの位置情報が書き換えられる。
この処理例では、以上のテーブル作成によって実質的に編集は完了するので、ステップS202はスキップされ、ステップS203に進む。
このステップS203において、画像サーバ装置200のデータ処理手段211は、当該画像のテーブルの各エントリーを順に参照することにより、メインヘッダと、画像中央部の4タイルの符号データを順に読み込み、それを順に結合した送信データを作成する。なお、タイル数が変化するため、メインヘッダの内容の必要な書き換えを行う。また、テーブルの情報(少なくともタイルの位置情報)をメインヘッダに記述する。
そして、ステップS204,S212において、画像サーバ装置200は通信手段213により送信データを要求元のクライアント装置201へ送信し、これをクライアント装置201は通信手段212により受信しデータ記憶手段250に記憶する。
ステップS213において、クライアント装置201のデータ処理手段251は、受信データ中のメインヘッダを解析するとともにテーブル情報を抽出する。そして、受信データ中の各タイルの符号データを順に取り込んで復号し、復号したタイル画像データを、テーブル情報に含まれる位置情報に従ってデータ記憶手段250の特定記憶域に書き出す処理を行う。この特定記憶域の画像データはユーザインターフェース手段252の画面に逐次表示される。かくして、元の画像の中央部分の4タイルのみからなる画像が画面表示される。
[処理例10]
前記実施例1の[処理例5]に対応する処理例であり、複数の画像に対し、特定のタイルを抽出し再生する処理を一括して実行する。
この処理に先だって、クライアント装置201のユーザは、ユーザインターフェース手段252を利用し、例えば、ファイル名やサムネールの一覧から選択するような方法によって、処理対象の複数の画像を選択する。また、ユーザインターフェース手段252により、画像のタイル分割構造(図2)が画面表示されているものとする。
まず、ステップS210において、クライアント装置201のユーザは、ユーザインターフェース手段252により、処理の内容と、再生させたいタイルの指定を行う。この指定は、例えば、マウスなどのポインティングデバイスを用いて画面上でコマンドとタイルを選択することにより行われる。ここでは、例えば、図2に示すようにタイル分割された画像の中央部の4個のタイル(05番、06番、09番、10番のタイル)が指定されたものとする。
ステップS200,S211において、クライアント装置201は通信手段253により指定された処理の内容及びタイル番号を選択された画像のファイル名などとともに送信し、これを画像サーバ装置200は通信手段213により受信する。
次にステップS201において、画像サーバ装置200のテーブル処理手段211は、選択された各画像の符号化データ格納時に作成されているテーブル(図3)を基に、各画像のメインヘッダのエントリーとユーザにより指定されたタイルのエントリーからなるテーブルを結合した図12に示すようなテーブル(結合テーブルと記す)を作成する。この例では選択されたタイルの位置関係を変更する必要がないので、それらタイルのエントリーの位置情報は元のままである。しかし、離れた位置にあるタイル、例えば、00番タイル、03番タイル、12番タイル、15番タイルが選択され、それらを2×2タイル画像として再生させたいような場合には、それらタイルのエントリーの位置情報が書き換えられる。
この処理例では、以上のテーブル作成によって実質的に編集は完了するので、ステップS202はスキップされ、ステップS203に進む。
このステップS203において、画像サーバ装置200のデータ処理手段211は、結合テーブルの先頭から各エントリーを順番に参照することにより、各画像のメインヘッダ、中央部分の4タイルの符号データを順に読み取り、それらを結合することにより、各画像の送信データを作成する。この際、各画像のタイル数が変化するため、各画像のメインヘッダの内容の必要な書き換えを行い、また、テーブルの情報(少なくともタイルの位置情報)をメインヘッダに記述する。
そして、ステップS204,S212において、画像サーバ装置200は通信手段213により各画像の送信データを要求元のクライアント装置201へ順に送信し、これをクライアント装置201は通信手段253により順に受信し、データ記憶手段250に記憶する。
ステップS213において、クライアント装置201のデータ処理手段251は、受信した各画像のデータ中のメインヘッダを解析するとともにテーブル情報を抽出する。そして、受信データ中の各タイルの符号データを順に取り込んで復号し、復号したタイル画像データを、テーブル情報に含まれる位置情報に従ってデータ記憶手段250の特定記憶域に書き出す処理を行う。この特定記憶域の画像データはユーザインターフェース手段252の画面に逐次表示される。かくして、元の画像の中央部分の4タイルのみからなる画像が画面表示される。
なお、複数の画像を順に連続的に表示させることも、ユーザからの指示に応じてページをめくる様に各画像を表示させることも、複数の画像を並べて画面表示させることもできる。複数画像の連続表示は、例えば、デジタルカメラなどによって連続撮影された複数枚の静止画像を一括処理するような場合に好適であろう。
このように、複数の画像について、特定タイルのみからなる画像を編集し、それを復号、再生する処理を一括して効率的に行うことができる。
なお、この処理例と同様にして、前記処理例6で述べたような符号量削減やモノクロ化、プログレッシブ順序の変更などのための符号編集処理、あるいは、前記処理例7又は8のような画像内での特定タイルの入れ替え、もしくは特定タイルの他の画像との入れ替え(合成)のための符号編集処理を、複数の画像の符号化データに対し一括して行うことも可能であることは、以上の説明から明らかであろう。
以上に説明した本実施例に係る画像処理システムにおける処理例は、本発明の画像処理方法の実施例でもある。また、これら処理例の処理工程をコンピュータにおいて実行するための1以上のプログラム、及び、同プログラムが記録されたコンピュータが読み取り可能な各種情報記録(記憶)媒体も本発明に包含される。なお、JPEG2000のためのインターネットプロトコルであるJPIP(JPeg2000 Interactive Protocol)の国際標準化がすすめられている。このJPIPでは、画像が表示されている時に、その画像の任意の領域を指定することにより、その領域の符号データをアクセスする等の機能が必要とされる。本発明によれば、画像領域の位置情報と符号データの記憶アドレス情報が画像領域対応のエントリーに格納されたテーブルが作成されるが、このテーブルを利用することにより、任意の画像領域の符号データへのアクセスを容易に行うことができる。したがって、本発明はJPIPの実装のためにも有効な発明である。
本発明の実施例1を説明するためのブロック図である。
画像のタイル分割の例を示す図である。
画像の符号化データ格納時に作成されるテーブルを示す図である。
テーブルのタイル対応エントリーの構造を示す図である。
実施例1における処理動作を説明するためのフローチャートである。
処理対象の画像に関連して作成されるテーブルを示す図である。
実施例1における処理動作を説明するためのフローチャートである。
処理対象の画像に関連して作成されるテーブルを示す図である。
処理対象の画像に関連して作成されるテーブルを示す図である。
処理対象の画像に関連して作成されるテーブルを示す図である。
実施例1における処理動作を説明するためのフローチャートである。
処理対象の複数の画像に関連して作成されるテーブルを示す図である。
本発明の実施例2を説明するためのブロック図である。
実施例2における処理動作を説明するためのフローチャートである。
JPEG2000の符号化処理を説明するためのブロック図である。
2次元DWTによるサブバンド分割例を示す図である。
ビットプレーン分解及びサブビットプレーン分解の模式図である。
JPEG2000のLRCPプログレッションの符号化データの説明図である。
符号の説明
100 データ記憶手段
101 データ処理手段
102 テーブル処理手段
103 ユーザインターフェース手段