(57)【要約】【課題】  タイル単位で編集可能な符号化方式において、タイル境界の画質低減を抑制し、かつ処理速度を高速化した画像処理装置および方法を提供する。【解決手段】  この画像処理装置１０は、画像を複数のタイル領域に分割する分割部２０と、タイル領域内の画素に対し、当該タイル領域に隣接するタイル領域内の画素に跨ってフィルタを施すフィルタ部２１と、フィルタが施された後のタイル領域内の画素に対し、周波数変換および符号化処理を行い、タイル領域の符号化データを生成する符号化部２２と、タイル領域内のフィルタが施される画素と隣接するタイル領域内のフィルタが施される画素の画素値に基づいて、隣接するタイル領域の影響があるか否かを示すフラグを設定情報として入力するフラグ入力部２３とを備える。【選択図】  図６
2010045589.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数の矩形領域に分割する分割部と、
前記矩形領域内の画素に対し、当該矩形領域に隣接する隣接矩形領域内の画素に跨ってフィルタを施すフィルタ部と、
前記フィルタが施された後の前記矩形領域内の画素に対し、周波数変換および符号化処理を行い、前記矩形領域の符号化データを生成する符号化部と、
前記矩形領域内の前記フィルタが施される画素と前記隣接矩形領域内の前記フィルタが施される画素の画素値に基づいて、前記隣接矩形領域の影響があるか否かを示すフラグを設定情報として入力するフラグ入力部とを備える、画像処理装置。
【請求項２】
前記符号化部により前記矩形領域毎に生成された前記符号化データを、入力されたデータに基づき前記矩形領域毎に編集して新たな符号化データを生成する編集部をさらに備え、
前記編集部は、前記設定情報として設定された前記フラグに基づき編集処理を行う、請求項１に記載の画像処理装置。
【請求項３】
前記符号化部により生成された少なくとも１つの矩形領域の符号化データに対して入力した前記フラグが前記隣接矩形領域の影響がないことを示すものである場合、前記フラグ入力部は、書き換えたい色を表す第２フラグを設定情報としてさらに入力し、前記符号化データの復号の際、前記第２フラグに基づき前記少なくとも１つの矩形領域を前記書き換えたい色に復号させる、請求項２に記載の画像処理装置。
【請求項４】
前記符号化部により生成された少なくとも１つの矩形領域の符号化データに対して入力した前記フラグが前記隣接矩形領域の影響があることを示すものである場合、前記編集部は、前記少なくとも１つの矩形領域内の前記フィルタが施される画素以外の画素の色を、前記書き換えたい色へ変更する、請求項２に記載の画像処理装置。
【請求項５】
前記第２フラグとして、ゼロレングスが入力可能である、請求項３に記載の画像処理装置。
【請求項６】
前記第２フラグに、単色の矩形領域を表す番号を用いることを特徴とする、請求項３に記載の画像処理装置。
【請求項７】
前記フラグ入力部は、前記矩形領域内の前記フィルタが施される全ての画素と、前記隣接矩形領域内の前記フィルタが施される全ての画素とが同じ画素値を有するか否かを判断して、前記フラグを入力する、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
画像データを符号化処理する画像処理方法であって、
画像を複数の矩形で表される矩形領域に分割するステップと、
前記矩形領域内の画素に対し、当該矩形領域に隣接する隣接矩形領域内の画素に跨ってフィルタを施すステップと、
前記フィルタが施された後の前記矩形領域内の画素に対し、周波数変換および符号化処理を行い、前記矩形領域の符号化データを生成するステップと、
前記矩形領域内の前記フィルタが施される画素と前記隣接矩形領域内の前記フィルタが施される画素の画素値に基づいて、前記隣接矩形領域の影響があるか否かを示すフラグを設定情報として入力するステップとを含む、画像処理方法。
【請求項９】
前記符号化データを生成するステップで前記矩形領域毎に生成された前記符号化データを、入力されたデータに基づき前記矩形領域毎に編集して新たな符号化データを生成するステップをさらに含み、前記新たな符号化データを生成するステップでは、前記設定情報として設定された前記フラグに基づき編集処理を行う、請求項８に記載の画像処理方法。
【請求項１０】
前記符号化データを生成するステップで生成された少なくとも１つの矩形領域の符号化データに対して入力した前記フラグが前記隣接矩形領域の影響がないことを示すものである場合、前記入力するステップでは、書き換えたい色を表す第２フラグを設定情報としてさらに入力し、前記符号化データの復号の際、前記第２フラグに基づき前記少なくとも１つの矩形領域を前記書き換えたい色に復号させる、請求項９に記載の画像処理方法。
【請求項１１】
前記符号化データを生成するステップで生成された少なくとも１つの矩形領域の符号化データに対して入力した前記フラグが前記隣接矩形領域の影響があることを示すものである場合、前記新たな符号化データを生成するステップでは、前記少なくとも１つの矩形領域内の前記フィルタが施される画素以外の画素の色を、前記書き換えたい色へ変更する、請求項９に記載の画像処理方法。
【請求項１２】
前記第２フラグとして、ゼロレングスが入力可能である、請求項１０に記載の画像処理方法。
【請求項１３】
前記第２フラグに、単色の矩形領域を表す番号を用いることを特徴とする、請求項１０に記載の画像処理方法。
【請求項１４】
前記入力するステップでは、前記矩形領域内の前記フィルタが施される全ての画素と、前記隣接矩形領域内の前記フィルタが施される全ての画素とが同じ画素値を有するか否かを判断して、前記フラグを入力する、請求項８〜１３のいずれか１項に記載の画像処理方法。
【請求項１５】
請求項８〜１４のいずれか１項に記載の画像処理方法を実現するための装置読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を複数の矩形に分割して、矩形で表される領域毎に編集可能にした画像処理装置、画像処理方法およびその方法を実現するための装置読み取り可能なプログラムに関する。
【背景技術】
【０００２】
静止画像のデジタルデータを圧縮する方式の１つとして、JPEG（Joint Photographic Experts Group）が広く用いられている。JPEGでは、画像を固定サイズのブロックに分割し、そのブロック単位で離散コサイン変換（DCT）を用いて空間領域から周波数領域へ変換し、変換したデータを量子化により情報量を減少させ、エントロピー符号化により圧縮を行う。エントロピー符号化は、データの生起確率の高低に応じて異なる長さの符号を割り当てることにより圧縮を行うものである。
【０００３】
このJPEGでは、画像全体を一体としてエントロピー符号化を行うことから、それを復号するにあたっても、画像全体を一体として行う必要がある。このため、ユーザが画像の一部を表示したい場合であっても、その一部のデータのみを復号して表示することはできない。
【０００４】
そこで、画像を分割し、分割単位でエントロピー符号化を行い、部分的なエントロピー復号を可能にして、部分的に画像を抽出することができる方式が提案されている。その１つに、画像をタイルと呼ばれる矩形に分割し、タイル領域内で周波数変換を行い、タイル領域毎にエントロピー符号化を行うJPEG-XRと呼ばれる方式が提案されている。JPEG-XRでは、エントロピー復号なしにタイル領域毎に符号化されたデータを抽出することが可能であるため、ユーザが表示したい領域に対応するタイル領域の符号化データのみをサーバが送信し、ユーザが使用するクライアント装置では、その符号化データのみを受信し、復号して表示することができる。
【０００５】
ここで、図１に示すフローチャートを参照して、JPEG-XRにおける符号化について説明する。JPEG-XRでは、ステップ１００で処理を開始すると、ステップ１１０で画像を色変換し、タイル領域に分割し、タイル領域を、縦に４つ、横に４つ並ぶ４×４画素のブロックに分割する。
【０００６】
図２を参照して、JPEG-XRにおける画像、タイル領域、マクロブロック、ブロック、画素の関係について説明すると、画像１は、複数のタイル領域２に分割され、タイル領域２は、複数のマクロブロック３に分割される。マクロブロック３は、１６個のブロック４からなり、１つのブロック４は、１６個の画素５からなるものである。
【０００７】
再び図１を参照して、ステップ１２０で、ブロックを跨ぐ４×４画素毎、すなわちタイル領域境界を跨いでプレフィルタを施す。JPEG-XRでは、この４×４画素のブロック単位で周波数変換を行うため、圧縮率が高い場合、JPEGの場合と同様、ブロック境界にブロックノズルと呼ばれるノイズが発生するおそれがある。このノイズを低減するために、上記のプレフィルタを施す。
【０００８】
プレフィルタを施した後、ステップ１３０で、各タイル領域内でブロック毎に周波数変換を行う。周波数変換は、DCTを用いて行われるが、変換後に得られる値は、直流成分（DC成分）と交流成分（AC成分）とからなるDCT係数である。DC成分は、値が変化しない成分で、周波数が最も低い０である部分の係数である。ステップ１４０で、１６個のブロックの集合であるマクロブロック内のDC成分を集め、４×４の計１６個のDC係数からなる第２ブロックを形成する。そして、ステップ１５０で、第２ブロックを集めてできる画像内で、第２ブロックを跨ぐ４×４係数毎にプレフィルタを施し、ステップ１６０で、タイル領域毎に係数を量子化し、所定のエントロピー符号化を行い、ステップ１７０で処理を終了する。
【０００９】
JPEG-XRにおける復号処理は、図示していないが、上記符号化の逆の処理を行うことにより実現することができる。すなわち、まず、タイル領域の符号化データをエントロピー復号および逆量子化し、次に、プレフィルタの逆変換（ポストフィルタ）を施して４×４係数を求め、さらに次に、周波数逆変換を行い、最後に、プレフィルタの逆変換を施すことにより、タイル領域毎に復号することができる。なお、プレフィルタが施された４×４画素の逆変換を施す場合には、処理対象のタイル領域に隣接したタイル領域の画素が必要である。
【００１０】
図３を参照して、プレフィルタを施す４×４画素と、周波数逆変換を施す４×４画素の位置関係について説明すると、周波数逆変換は、ブロック４に対して行われ、プレフィルタは、一点鎖線６で示すように、ブロック４を跨いで施される。なお、周波数画像の境界部では、４画素分（４×１画素）のプレフィルタを２回用い、画像の４隅の２×２画素についてはプレフィルタ自体を用いない。
【００１１】
上記では、DC係数を集めて第２ブロックを形成し、プレフィルタを施し、エントロピー符号化を行って符号化データを生成しているが、マクロブロックには、DC成分のほか、低域周波数成分や高域周波数成分が含まれる。図４を参照して、DC係数、ローパス（LP）係数、ハイパス（HP）係数の階層的な関係を説明する。図４（ａ）に示すDC係数は、周波数変換して得られたDCT係数のDC成分で、図４（ｂ）に示すLP係数は、低域周波数成分のみを通過させるローパスフィルタの出力値で、図４（ｃ）に示すHP係数は、高域周波数成分のみを通過させるハイパスフィルタの出力値である。図４に示すような関係から、DC係数のみを復号すると、原画像の１／１６の解像度の画像を得ることができ、DC係数およびLP係数を復号すると、原画像の１／４の解像度の画像を得ることができる。
【００１２】
以上のようにJPEG-XRでは、タイル領域に分割し、処理を行うため、タイル領域毎に符号化し、タイル領域毎に復号することができる。このJPEG-XRを利用した例として、符号化した画像の一部を編集する際、対応するタイルを抜き出し、予め用意した画像の符号化データと入れ替え、新たな符号化データとすることが提案されている（特許文献１参照）。
【００１３】
JPEG-XRは、タイル領域毎に符号化し、タイル領域毎に復号することができるとはいえ、サーバに格納されているデータの中から、タイル領域毎に符号化された、見たい領域の符号化データや、必要な解像度の符号化データや、見たい領域の輝度または色差の符号化データ等をクライアント装置へ受信するためには、その符号化データのみを受信するためのプロトコルが必要である。そのプロトコルとして、１つのファイル内で解像度の異なる複数の画像を６４×６４画素のタイル領域に分割して階層構造で管理するFlashPixと、階層的な画像を部分的にアクセスするためのIIP（Internet Imaging Protocol）とを用いることが提案されている（特許文献２参照）。
【００１４】
JPEG-XRと同様な解像構造の符号化データを有するJPEG 2000において、ネットワーク上で画像の必要な部分や領域を指定した解像度で表示するためのプロトコルとして、JPIP（JPEG 2000 InterACtive Protocol）を用いることが提案されている（特許文献３参照）。
【００１５】
こうしたプロトコルを用いてサーバから見たい領域に関する符号化データのみを受信する場合、クライアント装置からサーバへ、描画したい解像度と実際に描画するウィンドウサイズを指定して送信しなければならない。サーバは、このような指定を受けると、その指定された領域に含まれるタイル領域の符号化データを抽出および生成し、それをクライアント装置へ送信する。サーバは、画像全体ではなく、クライアント装置において表示に必要な符号化データのみを送信するため、ネットワーク上のデータ転送量を小さくすることができる。
【００１６】
また、画像の一部を編集する場合も同様に、クライアント装置は、サーバに対し、編集したい符号化データのみを要求し、サーバからその符号化データのみを受信し、復号して編集し、再度符号化した後に送信することで、編集に大量のメモリを消費することなく、処理時間を短縮することができる。
【特許文献１】特許第３９３８５３４号公報
【特許文献２】特開平１１−２０５７８６号公報
【特許文献３】特開２００３−２３６３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
このようにJPEG-XRでは、タイル領域毎にエントロピー復号を行うことができるものの、あるタイル領域を正確に画素に戻そうとすると、隣接したタイル領域の符号化データが必要で、この符号化方式では、あるタイル領域を符号化する際、隣接するタイル領域が影響するものである。
【００１８】
したがって、あるタイルを正確な画素に戻そうとする場合に、隣接するタイル領域の符号化データがなければタイル領域の境界の画質が低減される。また、符号化した画像を編集する際に、編集するタイル領域に隣接するタイル領域の符号化データがなければ、編集後に再符号化した場合にタイル領域の境界の画質が低減される。
【００１９】
一方、編集する際、タイル領域全体を単色にするような場合において、編集後のタイル領域のデータを新たに符号化するのは処理時間が無駄である。
【００２０】
そこで、タイル領域の境界の画質の低減を抑制し、かつ無駄な処理をなくして、処理速度を向上させることができる装置および方法の提供が望まれている。
【課題を解決するための手段】
【００２１】
処理対象のタイル領域に隣接するタイル領域の影響の有無を示すフラグを設定し、隣接するタイルの影響があるというフラグが設定されたタイル領域を編集する際、その隣接するタイル領域も編集対象のタイル領域として編集することにより、タイル領域の境界の画質の低減を抑制することができる。
【００２２】
また、ユーザが指定する等で、予めタイル領域全体を単色にすることがわかっている場合、タイル領域全体が単色であることを表す第２フラグを設定することで、再符号化する必要がなく、復号する際には、その第２フラグを基に、タイル領域全体を単色に復号することができ、これにより、無駄な処理をなくし、処理速度を向上させることができる。
【００２３】
すなわち、上記課題は、本発明の画像処理装置、画像処理方法およびその方法を実現するためのコンピュータ可読なプログラムを提供することにより解決することができる。
【００２４】
本発明の画像処理装置は、画像を複数の矩形領域に分割する分割部と、矩形領域内の画素に対し、当該矩形領域に隣接する隣接矩形領域内の画素に跨ってフィルタを施すフィルタ部と、フィルタが施された後の矩形領域内の画素に対し、周波数変換および符号化処理を行い、矩形領域の符号化データを生成する符号化部と、矩形領域内のフィルタが施される画素と隣接矩形領域内のフィルタが施される画素の画素値に基づいて、隣接矩形領域の影響があるか否かを示すフラグを設定情報として入力するフラグ入力部とを備える。
【００２５】
画像処理装置は、符号化部により矩形領域毎に生成された符号化データを、入力されたデータに基づき矩形領域毎に編集して新たな符号化データを生成する編集部をさらに備える。この編集部は、設定情報として設定されたフラグに基づき編集処理を行う。特定の矩形領域のみを編集したい場合、隣接矩形領域の影響の有無を判断して、編集方法を変化させ、画像に合った編集を行うことで、画質の低減を抑制することができる。
【００２６】
符号化部により生成された少なくとも１つの矩形領域の符号化データに対して入力したフラグが隣接矩形領域の影響がないことを示すものである場合、フラグ入力部は、書き換えたい色を表す第２フラグを設定情報としてさらに入力し、符号化データの復号の際、第２フラグに基づき少なくとも１つの矩形領域を書き換えたい色に復号させることができる。書き換えたい色を表すフラグを設定することで、符号化を行う必要がなくなり、符号化の処理時間を高速にすることができる。
【００２７】
また、符号化部により生成された少なくとも１つの矩形領域の符号化データに対して入力したフラグが隣接矩形領域の影響があることを示すものである場合、編集部は、少なくとも１つの矩形領域内のフィルタが施される画素以外の画素の色を、書き換えたい色へ変更することができる。フィルタが施される画素については、色を変換後、隣接矩形領域の画素とともにプレフィルタを施し、周波数変換および符号化等を行うことにより、隣接矩形領域の影響を考慮することができ、矩形領域境界の画質低減を抑制することができる。
【００２８】
この画像処理装置は、第２フラグとして、ゼロレングスが入力可能であるものとされる。これにより、特定の矩形領域の色を高速に白にすることができる。
【００２９】
上記白に限られるものではなく、第２フラグに、単色の矩形領域を表す番号を用い、特定の矩形領域の色を高速に他の色にすることもできる。
【００３０】
フラグ入力部は、例えば、矩形領域内のフィルタが施される全ての画素と、隣接矩形領域内のフィルタが施される全ての画素とが同じ画素値を有するか否かを判断して、隣接矩形領域の影響があるか否かを示すフラグを設定情報として入力することができる。
【００３１】
本発明では、上記画像処理装置の各部が行う処理を、各ステップとして含む画像処理方法を提供することもでき、また、その画像処理方法を実現するためのコンピュータ可読なプログラムや、そのプログラムが記録された記録媒体としても提供することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の画像処理装置および画像処理方法の実施形態を、図面を用いて詳細に説明する。本発明は、画像を分割した矩形領域の画素に対して、その矩形領域に隣接した矩形領域の画素を利用したフィルタを施し、フィルタを施した後の画素に対し、周波数変換および符号化を行う符号化方式、重複直交変換、重複双直変換を対象とするが、１つの符号化方式としてJPEG-XRを取り上げ、実施例としてその動作について説明する。
【００３３】
ここで、符号化方式にはそのほかJPEG 2000等がある。重複直交変換とは、隣接ブロック間のデータを重ね合わせる基底関数を用いて直交変換（周波数変換）を行うことをいい、重複双直交変換とは、隣接ブロック間で重複する基底関数とブロックで独立の非重複基底関数とを用いて周波数変換を行うことをいう。基底関数としては、三角関数やウェーブレット関数が用いられる。
【００３４】
JPEG-XRでは、上述したように、４×４画素のブロック単位で周波数変換を行うが、ブロックを跨ぐ４×４画素毎にプレフィルタが施されることから、重複直交変換を用いた処理と解釈することも可能である。また、JPEG-XRでは、エントロピー復号なしにタイル単位で符号化データを抽出することが可能であるため、ユーザが見たい領域に関するタイルの符号化データのみをサーバが送信し、ユーザが使用するクライアント装置では、受信した符号化データのみをエントロピー復号し、画像表示を行うことができる。
【００３５】
図５は、本実施形態の画像処理装置のハードウェア構成を示した図である。画像処理装置１０は、全体画像である原画像の符号化データを記録するHDD１１と、記録された符号化データが読み出され、処理されたデータが書き込まれるRAM１２と、符号化データをRAM１２に読み出し、符号化データを処理し、RAM１２に書き込むCPU１３とを備える。
【００３６】
画像処理装置１０は、データバス１４に接続され、そのデータバス１４には、ユーザが使用するクライアント装置１５も接続されている。ここではデータバス１４に接続されている構成を例示したが、画像処理装置１０とクライアント装置１５は、インターネットやイントラネット等のネットワークに接続されていてもよい。また、画像処理装置１０とクライアント装置１５は、無線LANやBluetooth等により接続されていてもよい。
【００３７】
JPEG-XRにより符号化したデータから所望の矩形領域の符号化データを得る場合、まず、CPU１３がHDD１１に記録された原画像の符号化データをRAM１２上に読み込む。CPU１３は、次に、RAM１２上に読み出した符号化データから、その矩形領域に関する符号化データを第２符号化データとして抽出または生成し、その第２符号化データをRAM１２上の別の領域に書き込む。その後、CPU１３は、第２符号化データを復号する。
【００３８】
クライアント装置１５から画像処理装置１０に対し、画像に対する編集がなされた後に、クライアント装置１５が所望の矩形領域の符号化データを得る場合、まず、CPU１３がHDD１１に記録された原画像の符号化データをRAM１２上に読み込み、その矩形領域に関する符号化データを第２符号化データとして抽出または生成し、その第２符号化データをRAM１２上の別の領域に書き込む。その後、CPU１３は、第２符号化データをクライアント装置１５へ送信し、クライアント装置１５は、それを受信して復号を行う。
【００３９】
クライアント装置１５が所望の矩形領域の符号化データの取得を要求する場合や、その矩形領域の符号化データを受信する場合、上述したFlashPixやIIP、JPIP等のプロトコルを用いて行うことができる。また、画像処理装置１０は、HDD１１、RAM１２、CPU１３を備える装置であればいかなる装置であってもよく、例えばPCやMFP等とすることができ、クライアント装置１５も、HDD、RAM、CPUを備えるPC等とすることができる。
【００４０】
図６は、画像処理装置の機能ブロック図である。画像処理装置１０は、画像をタイル領域毎に符号化し、復号する処理を行う各部を備える。各部は、HDD１１、RAM１２、CPU１３により実現することができ、各部が行う処理をプログラムとして構成してHDD１１に格納し、CPU１３がRAM１２に読み出し、実行することにより、これらハードウェアを各部として機能させることができる。具体的には、画像処理装置１０は、画像を複数の矩形で表されるタイル領域に分割する分割部２０と、タイル領域内の画素に対し、そのタイル領域に隣接するタイル領域内の画素に跨ってフィルタを施すフィルタ部２１と、フィルタが施された後のタイル領域内の画素に対し、周波数変換および符号化処理を行い、タイル領域の符号化データを生成する符号化部２２と、タイル領域内のフィルタが施される画素と、それに隣接するタイル領域内のフィルタが施される画素の画素値に基づいて、隣接するタイル領域の影響があるか否かを示すフラグを設定情報として入力するフラグ入力部２３と、符号化され、フラグが設定されたデータを記憶するデータ記憶部２４とを備える。
【００４１】
また、符号化部２２によりタイル領域毎に生成された符号化データを、データ記憶部２４から読み出し、ユーザが入力したデータに基づき、タイル領域毎に編集して新たな符号化データを生成する編集部２５をさらに備える。編集部２５は、設定情報として設定されたフラグに基づき編集処理を行い、編集後、データ記憶部２４に格納する。
【００４２】
分割部２０は、画像を複数のタイル領域に分割した後、４×４画素からなるブロックに分割する。フィルタ部２１は、タイル領域境界を跨いで４×４画素毎にプレフィルタを施す。符号化部２２は、各タイル領域内でブロック毎に周波数変換を行い、各タイル領域内で、マクロブロック内のDC成分を集めて４×４係数の第２ブロックを形成し、第２ブロックを集めてできる係数群内で、フィルタ部２１は、第２ブロックを跨ぐ４×４係数毎にプレフィルタを施す。符号化部２２は、タイル領域毎に、係数を量子化し、所定のエントロピー符号化を行う。なお、フィルタ部２１は、ユーザが設定したプレフィルタを施すか否かの選択に応じて、プレフィルタを施すことができ、ノイズの問題がなく、必要がなければプレフィルタを施さなくてもよい。フラグ入力部２３および編集部２５が行う処理の詳細については、後述する。
【００４３】
図７は、データ記憶部２４に記憶されている原画像の符号化データの構成例を示した図である。このデータは、JPEG-XRで符号化されたデータの構成を示したものであり、画像全体に関するヘッダ３０、符号化条件等を含む画像プレーンヘッダ３１、各タイル領域の符号化データの位置を指し示すインデックステーブル３２、各タイル領域の符号化データ３３という順に並んで構成されている。この図７に示す構成を、プログラムで記述すると、図８に示すようなものとなる。
【００４４】
画像全体に関するヘッダ３０は、図９に示すようにイメージヘッダと呼ばれ、図９に示すようにプレフィルタの有無、画像の幅や高さといった画像サイズ、タイル数、タイル幅や高さといったタイルサイズ等のパラメータを含む。
【００４５】
図９に示すように、画像の幅は、WIDTH_MINUS1+1で与えられ、画像の高さは、HEIGHT_MINUS1+1で与えられる。また、垂直方向のタイル数は、NUM_VERT_TILES_MINUS1+1で与えられ、水平方向のタイル数は、NUM_HORIZ_TILES_MINUS1+1で与えられる。これらから、画像の総タイル数Nは、垂直方向のタイル数に水平方向のタイル数を乗じて得られる数となる。
【００４６】
各タイル領域は、その画像に向かって左上から水平方向へ走査するラスター順に１〜Ｎの番号が割り振られる。画像の右端や下端では端数サイズのタイル領域が生じうるが、ここでは各タイル領域のサイズを同一としている。タイル領域の幅TILEWIDTHは、(TILEWIDTH_INMB_MINUS1+1)×16で与えられ、タイル領域の高さTILEHEIGHTは、(TILEHEIGHT_INMB_MINUS1+1)×16で与えられる。
【００４７】
図１０は、画像プレーンヘッダを例示した図である。画像プレーンヘッダ３１は、量子化等の条件を含んでいる。量子化は、連続した物理量を離散的な物理量で置き換えることをいい、値の精度を落として少ない区間に分けるものである。
【００４８】
図１１は、インデックステーブルを例示した図である。このテーブルには、このインデックステーブルの終端アドレスから、記録されている各タイル領域の符号化データの先頭アドレスまでのオフセット値を含む。例えば、最初のタイルの符号化データは、その先頭アドレスがインデックステーブルの終端アドレスと同一であるため、オフセット値は０となる。
【００４９】
図１２は、タイル領域の符号化データを例示した図である。タイル領域の符号化データには、図１３に示すように、マクロブロック毎に周波数順に並べるスペシャルモードと、周波数毎にマクロブロック順に並べる周波数モードの２通りある。図１２では、スペシャルモードを採用しており、マクロブロックに割り当てられた番号毎に、周波数順に並べて配列している。すなわち、マクロブロック１からＭまで順に配列し、マクロブロック１内では、直流成分（DC）、ローパス成分、ハイパス成分、FLEXBITSの順に配列している。ローパス成分は、低域周波数成分であり、ハイパス成分は、高域周波数成分である。
【００５０】
図１４は、スペシャルモード時のタイルの符号化データのプログラムを例示した図である。プログラムの先頭部分には、TILE_STARTCODEが位置し、一般にこのTILE_STARTCODEは、各タイル領域の符号化データの始まりを表す所定の２４ビットのマーカーに過ぎないものであるが、本発明では、隣接するタイル領域の影響の有無を表すフラグがここに設定情報として入力される。このフラグは、フラグ入力部２３により、タイル領域の符号化の際、行われる。編集部２５は、フラグを参照し、そのフラグが影響ありを示すものである場合、隣接するタイル領域を含めて再符号化を行う。これにより、タイル領域境界の画質劣化を抑制することができる。
【００５１】
フラグが影響なしを示すものである場合、再符号化を行う必要がないことを示す。これは、画像の一部を白色に編集する場合、影響のないタイル領域であれば、タイル領域全体を白色であることを示すフラグをたてることにより編集可能となるからである。したがって、この白色であることを示すフラグもTILE_STARTCODEの余っているビットにたてる必要がある。これにより、そのフラグがたっているタイル領域は、白色として復号することができる。
【００５２】
図１５および図１６を参照して、隣接するタイル領域の影響の有無の判定および符号化処理について説明する。図１５に示すような画像を符号化する場合、ステップ１６００から処理を開始し、まず、ステップ１６１０で、Tile1からラスター順に隣接するタイル領域の影響の有無を判定する。これは、プレフィルタがタイル間を跨いで施され、処理対象のタイル領域の符号化した値が隣接するタイル領域の影響があるからである。例えば、図１５に示すTile5における隣接するタイル領域の影響の有無の判定は、Tile5の周囲領域（破線で示された領域）に基づき行う。具体的には、処理対象タイルとそれに隣接するタイル領域で影響がある画素間の値が同じ値であるかどうかにより判定する。したがって、破線で示された領域の色が同じ値であれば、その領域のすべての画素値は同じであり、隣接するタイル領域の影響がないと判定し、異なる値であれば、隣接するタイル領域の影響があると判定する。
【００５３】
水平方向Ｌ１の画素値、垂直方向Ｌ２の画素値の算出方法は、以下の通りである。プレフィルタが４×４フィルタである場合、１回目のプレフィルタを施すとき、処理対象のタイル領域の２画素分と、それに隣接するタイル領域の２画素分の計４画素分の影響がある。LP係数を算出するにあたっては、処理対象のタイル領域が４画素分、それに隣接するタイル領域が４画素分の計８画素分の影響がある。HP係数を算出するにあたっては、処理対象のタイル領域が８画素分、それに隣接するタイル領域が８画素分の計１６画素分の影響がある。
【００５４】
２回目のプレフィルタを施すときは、処理対象のタイル領域が１０画素分、それに隣接するタイル領域が１０画素分となり、計２０画素分の影響がある。このことから、４×４フィルタである場合、処理対象のタイル領域に隣接する全てのタイル間で２０画素分の画素値が同じ値であれば、それに隣接するタイル領域の影響はないと判定する。隣接するタイル領域の影響の有無を判定する方法の一例を挙げて説明してきたが、これはあくまで一例であり、判定方法は、上述した方法に限定されるものではない。
【００５５】
次に、ステップ１６２０で、フラグ入力部２３は、その判定結果をTILE_STARTCODEの余っているビットへ入力する。入力方法としては、隣接するタイル領域の影響がなしである場合には０を、影響がある場合には１を入力することができる。なお、フラグ入力部２３が、上記の影響の有無を判定し、その判定結果を入力することができる。
【００５６】
このようにして、ステップ１６３０で、全タイルにつき、影響があるなしの判定を行い、それらの判定結果をTILE_STARTCODEの余っているビットへ入力する。
【００５７】
全タイルにつき入力が完了したところで、ステップ１６４０で、全タイルに対して、符号化部２２が符号化処理を行い、ステップ１６５０で処理を終了する。隣接するタイル領域の影響があることを示すタイル領域については、そのタイル領域に加え、その隣接するタイル領域も含めて符号化する。これに対し、隣接するタイル領域の影響がないことを示すタイル領域については、符号化を行う必要はない。
【００５８】
ここでは、全タイルに対して、隣接するタイル領域の影響の有無の判定処理を行った後に、符号化処理を行っているが、隣接するタイル領域の影響の有無の判定処理と符号化処理とをタイル領域毎に行うこともできる。
【００５９】
図１７に示すような画像中に破線で示された円が描かされているものの符号化データが入力されていて、円領域を白色に編集する場合の処理を、図１８に示すフローチャートを参照して説明する。なお、白色に編集する場合、クライアント装置１５から指定される。
【００６０】
ステップ１８００から処理を開始し、まず、ステップ１８１０で、編集部２５は、編集前の画像の符号化データをデータ記憶部２４から読み込む。画像プレーンヘッダに記述されている画像全体に関する情報を読み込む。タイル番号はラスター順に割り当てられている。
【００６１】
次に、ステップ１８２０で、その編集結果に基づき、読み込まれた画像情報を用い、編集すべき円領域を含むタイル領域を判定する。図１７で示される画像の場合、tile7,8,9,12,13,14,17,18,19と判定する。編集領域を含むタイル領域の判定方法としては、編集された画素位置にあった編集前の画素を比較し、差異があれば編集領域を含むタイル領域として判定する。一方、差異がなければ、編集すべき領域ではないタイル領域と判定する。なお、画素の比較には、タイル領域全体を比較してもよいし、ある一定部分、例えば一列毎に比較することができる。
【００６２】
タイル領域には、各隣接するタイル領域の影響の有無を示すフラグが入力されているため、ステップ１８３０で、そのフラグの情報を用いることにより、隣接するタイル領域の影響の有無を判定する。ここでは、tile7,8,9,12,13,14,17,18,19において、隣接するタイル領域の影響の有無を１つずつ判定する。
【００６３】
ステップ１８４０で、隣接するタイル領域の影響がない場合、フラグ入力部２３は、白色を示す記号をTILE_STARTCODEの余っているビットへ入力する。例えば、タイルが白色であるという設定を１バイトのゼロレングスで表すとすれば、１バイトのゼロレングスを入力する。これにより、復号化する際、このゼロレングスが入力されている場合、タイルが白色であることがわかる。
【００６４】
ステップ１８５０で、処理対象のタイル領域の符号化データを削除する。符号化データを削除するのは、隣接するタイル領域の影響がない場合、再符号化を行う必要がないためであり、これにより、処理を高速化することができる。
【００６５】
ステップ１８６０で、編集領域を含む全てのタイル領域の判定が終了したかを判定する。全てが終了している場合は、ステップ１８８０へ進み、終了していない場合には、ステップ１８３０へ戻る。
【００６６】
隣接するタイル領域の影響がある場合、ステップ１８７０で、隣接するタイル領域を含めて処理対象のタイル領域のデータを再符号化し、処理対象のタイル領域の符号化データとして書き換える。TILE_STARTCODEにまだ余っているビットが存在する場合、再符号化したか否かを入力するようにしてもよい。これも、隣接するタイル領域の影響の有無と同様、再符号化していない場合を０、再符号化した場合を１として入力することができる。
【００６７】
以上のようにして、編集領域を含む全タイル領域につき処理が終了するまで、隣接するタイル領域の影響の有無の判定、白色を表す記号の入力および処理対象のタイル領域の符号化データの削除、編集後のデータの再符号化を繰り返す。
【００６８】
ステップ１８８０で、再符号化されたタイル領域については、再符号化データを使用し、それ以外のタイル領域については、編集前の符号化データを使用し、それらを結合して新しい符号化データを生成し、ステップ１８９０で処理を終了する。これにより、無駄な処理をなくし、処理速度を高速化することができる。
【００６９】
図１７に示すような画像中に破線で示された円が描かれているものの符号化データが入力されていて、円領域を単色の赤色に編集する場合の処理を、図１９に示すフローチャートを参照して説明する。なお、赤色に編集する場合、クライアント装置１５から指定される。
【００７０】
ステップ１９００から処理を開始し、まず、ステップ１９１０で、編集部２５は、編集前の画像の符号化データをデータ記憶部２４から読み込む。画像プレーンヘッダに記述されている画像全体に関する情報を読み込む。タイル番号はラスター順に割り当てられている。
【００７１】
次に、ステップ１９２０で、その編集結果に基づき、読み込まれた画像情報を用い、編集すべき円領域を含むタイル領域を判定する。図１７で示される画像の場合、tile7,8,9,12,13,14,17,18,19と判定する。編集領域を含むタイル領域の判定方法としては、編集された画素位置にあった編集前の画素を比較し、差異があれば編集領域を含むタイル領域として判定する。一方、差異がなければ、編集すべき領域ではないタイル領域と判定する。なお、画素の比較には、タイル領域全体を比較してもよいし、ある一定部分、例えば一列毎に比較することができる。
【００７２】
タイル領域には、各隣接するタイル領域の影響の有無を示すフラグが入力されているため、ステップ１９３０で、そのフラグの情報を用いることにより、隣接するタイル領域の影響の有無を判定する。ここでは、tile7,8,9,12,13,14,17,18,19において、隣接するタイル領域の影響の有無を１つずつ判定する。
【００７３】
隣接タイルの影響がない場合、ステップ１９４０で、フラグ入力部２３は、赤色を示す記号をTILE_STARTCODEの余っているビットへ入力する。白色が０１、赤色が１０、青色が１１と対応するように設定されている場合、１０を入力する。これにより、復号化する際、この値を読み込むことで、タイル領域の色を見分けることができる。
【００７４】
ステップ１９５０で処理対象のタイル領域の符号化データを削除する。符号化データを削除するのは、隣接するタイル領域の影響がない場合、再符号化を行う必要がないためであり、これにより、処理を高速化することができる。
【００７５】
ステップ１９６０で、編集領域を含む全てのタイル領域の判定が終了したかを判定する。全てが終了している場合は、ステップ１９８０へ進み、終了していない場合には、ステップ１９３０へ戻る。
【００７６】
隣接するタイル領域の影響がある場合、ステップ１９７０で、隣接するタイル領域を含めて処理対象のタイル領域のデータを再符号化し、処理対象のタイル領域の符号化データとして書き換える。TILE_STARTCODEにまだ余っているビットが存在する場合、再符号化したか否かを入力するようにしてもよい。これも、隣接するタイル領域の影響の有無と同様、再符号化していない場合を０、再符号化した場合を１として入力することができる。
【００７７】
以上のようにして、編集領域を含む全タイル領域につき処理が終了するまで、隣接するタイル領域の影響の有無の判定、赤色を表す記号の入力および処理対象のタイル領域の符号化データの削除、再符号化を繰り返す。
【００７８】
ステップ１９８０で、再符号化されたタイル領域については、再符号化データを使用し、それ以外のタイル領域については、編集前の符号化データを使用し、それらを結合して新しい符号化データを生成し、ステップ１９９０で処理を終了する。
【００７９】
これまで本発明を、上述した実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではない。したがって、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８０】
【図１】JPEG-XRにおける符号化および復号処理を示すフローチャート図。
【図２】JPEG-XRにおける画像、タイル、マクロブロック、ブロック、画素の関係を表した図。
【図３】プレフィルタを施す４×４画素と、周波数逆変換を施す４×４画素の位置関係を示した図。
【図４】DC係数、ローパス（LP）係数、ハイパス（HP）係数の階層的な関係を示した図。
【図５】本実施形態の画像処理装置のハードウェア構成を示した図。
【図６】画像処理装置の機能ブロック図。
【図７】HDDに記録されている原画像の符号化データの構成例を示した図。
【図８】原画像の符号化データのプログラムを例示した図。
【図９】画像全体に関するヘッダを例示した図。
【図１０】画像プレーンヘッダを例示した図。
【図１１】インデックステーブルを例示した図。
【図１２】タイル領域の符号化データを例示した図。
【図１３】マクロブロック毎に周波数順に並べるスペシャルモードと、周波数毎にマクロブロック順に並べる周波数モードを示した図。
【図１４】スペシャルモード時のタイル領域の符号化データのプログラムを例示した図。
【図１５】画像中にプレフィルタを施す領域を破線で示した図。
【図１６】隣接するタイル領域の影響の有無の判定および符号化処理の流れを示すフローチャート図。
【図１７】画像中に破線で示された円が描かされている画像を示した図。
【図１８】円領域を白色に編集する場合の処理の流れを示すフローチャート図。
【図１９】円領域を単色の赤色に編集する場合の処理の流れを示すフローチャート図。
【符号の説明】
【００８１】
１…画像、２…タイル領域、３…マクロブロック、４…ブロック、５…画素、１０…画像処理装置、１１…HDD、１２…RAM、１３…CPU、１４…データバス、１５…クライアント装置、２０…分割部、２１…フィルタ部、２２…符号化部、２３…フラグ入力部、２４…データ記憶部、２５…編集部、３０…イメージヘッダ、３１…画像プレーンヘッダ、３２…インデックステーブル、３３…符号化データ
【図１】
2010045589.tif 000003
【図２】
2010045589.tif 000004
【図３】
2010045589.tif 000005
【図４】
2010045589.tif 000006
【図５】
2010045589.tif 000007
【図６】
2010045589.tif 000008
【図７】
2010045589.tif 000009
【図８】
2010045589.tif 000010
【図９】
2010045589.tif 000011
【図１０】
2010045589.tif 000012
【図１１】
2010045589.tif 000013
【図１２】
2010045589.tif 000014
【図１３】
2010045589.tif 000015
【図１４】
2010045589.tif 000016
【図１５】
2010045589.tif 000017
【図１６】
2010045589.tif 000018
【図１７】
2010045589.tif 000019
【図１８】
2010045589.tif 000020
【図１９】
2010045589.tif 000021