(57)【要約】【課題】  可逆符号化された領域と非可逆符号化された領域との画質差を小さくし、違和感の少ない画像を生成する。【解決手段】  非可逆符号化によるタイルの符号化データと、可逆符号化よるタイルの符号化データの混在した画像符号化データを復号する場合、タイルを単位にいずれの符号化データであるかを判定し、その判定結果に応じた種類の復号処理を実行する。そして、復号した結果、着目タイルが非可逆符号化されたタイルであり、可逆符号化されたタイルが隣接する場合、着目タイル内の画素についてフィルタ処理を実行する。【選択図】  図３
2014165869.tif 000002
【特許請求の範囲】
【請求項１】
画像をタイルに分割し、タイル毎に、非可逆符号化方式である第１の符号化方式を含む複数の符号化方式から１つの符号化方式を選択し符号化し、生成された符号列を復号する画像処理装置であって、
各タイルの符号化データが、いずれの符号化手段による符号化データであるのかを識別する識別手段と、
該識別手段の識別の結果に従い、各タイルの符号化データについて該当する種類の復号処理を実行することでタイル画像を生成する復号処理手段と、
前記識別手段による識別の結果に基づき、前記復号処理手段による復号処理で得られたタイル画像で構成される画像中の、前記第１の符号化方式とは異なる第２の符号化方式で符号化されたタイル画像に接する前記第１の符号化方式で符号化されたタイル画像を検出する検出手段と、
該検出手段で検出されたタイル画像における、着目画素と隣接画素との差分が所定の差分値を有する場合に平滑化する画像処理手段と
を有する画像処理装置。
【請求項２】
前記第２の符号化方式は可逆符号化であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段が検出した非可逆符号化されたタイルに隣接する可逆符号化されたタイル内の画素値に基づき、前記非可逆符号化タイル内の、前記可逆符号化されたタイルの属性を持つ画素を推定する推定手段を更に有することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像処理手段は、
非可逆符号化されたタイル画像内の着目画素の値をPixVal、当該着目画素に対して上下左右に隣接する画素の値をpv(i)としたとき（ここで、iは隣接する方向を表わし、i=0,1,2,3のいずれか）としたとき、次式で画素差分値D(i)を算出し、
D(i) = pv(i)- PixVal
次式で補正値d(i)を算出し、
d(i) = Ｄ(i)／{1+(D(i)/K)*(D(i)/K)}
前記着目画素のフィルタ処理の後の画素値PixVal'を次式で算出する
PixVal' = PixVal + {d(0)+d(1)+d(2)+d(3)}／4
ここで、Ｋは、前記画像処理手段におけるフィルタ強度のパラメータである、
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像処理手段は、１つのタイル内の各画素におけるフィルタ処理を複数回実行することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
復号対象の符号化画像データのヘッダを解析し、非可逆符号化の符号化に係る情報を取得し、当該取得した結果に基づいて前記フィルタ処理手段の繰り返す回数を決定する解析手段を更に有することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
画像をタイルに分割し、タイル毎に、非可逆符号化方式である第１の符号化方式を含む複数の符号化方式から１つの符号化方式を選択し符号化し、生成された符号列を復号する画像処理装置の制御方法であって、
識別手段が、各タイルの符号化データが、いずれの符号化手段による符号化データであるのかを識別する識別工程と、
復号処理手段が、前記識別工程の識別の結果に従い、各タイルの符号化データについて該当する種類の復号処理を実行することでタイル画像を生成する復号処理工程と、
検出手段が、前記識別工程による識別の結果に基づき、前記復号処理工程による復号処理で得られたタイル画像で構成される画像中の、前記第１の符号化方式とは異なる第２の符号化方式で符号化されたタイル画像に接する前記第１の符号化方式で符号化されたタイル画像を検出する検出工程と、
画像処理手段が、前記検出工程で検出されたタイル画像における、着目画素と隣接画素との差分が所定の差分値を有する場合に平滑化する画像処理工程と
を有する画像処理装置の制御方法。
【請求項８】
コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項７に記載の各工程を実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの符号化、復号技術に関するものである。
【背景技術】
【０００２】
従来より、文書画像の圧縮において、画質の劣化を極力抑えつつ、ファイルサイズを極力小さくしたいという要求が多くあった。この要求に対して、領域の特性を判別した上で、可逆圧縮と非可逆圧縮を使い分ける、複数の圧縮方式を適応的に用いる適応符号化が提案されている(特許文献１)。一般的に、可逆圧縮は、テキストや網点，グラデーション等の写真領域以外の領域に対し、データサイズを小さくすることができる。そのため、適応符号化において、可逆圧縮は、写真領域以外の特性を持つ領域に適用されることが多い。したがって、画像全体を非可逆圧縮する場合と比べて、非可逆圧縮の領域に対し、符号量を多く割り当てることができる。つまり、画質と圧縮率を両立させやすい。しかし、圧縮率を高くしていくと、非可逆圧縮の領域の符号量を小さくしていく必要がある。この結果として、可逆圧縮の領域と非可逆圧縮の領域の間で、画質差が大きくなってしまう。この問題を緩和させるため、復号後に、画像中の領域の特性に応じて、画像処理を行うことが考えられる。一例として、領域の特性に応じて画像処理を行う方法がある(特許文献２)。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第4533043号公報
【特許文献２】特開平10-93815号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像を矩形(タイル)単位に可逆圧縮と非可逆圧縮を使い分ける方式では、可逆圧縮のタイルに隣接する非可逆圧縮のタイルには、しばしば、写真領域以外が含まれる。写真領域以外は画質の観点から重要な領域とされており、非可逆圧縮が適用されることは好ましくない。このため、画像データを復号後、非可逆圧縮タイルを対象に非可逆圧縮による歪みを除去するための画像処理を加えるわけであるが、この画像処理による回路やプロセッサに係る負荷は大きい。
【課題を解決するための手段】
【０００５】
この課題を解決するため、例えば明細書における画像処理装置は以下の構成を備える。すなわち、
画像をタイルに分割し、タイル毎に、非可逆符号化方式である第１の符号化方式を含む複数の符号化方式から１つの符号化方式を選択し符号化し、生成された符号列を復号する画像処理装置であって、
各タイルの符号化データが、いずれの符号化手段による符号化データであるのかを識別する識別手段と、
該識別手段の識別の結果に従い、各タイルの符号化データについて該当する種類の復号処理を実行することでタイル画像を生成する復号処理手段と、
前記識別手段による識別の結果に基づき、前記復号処理手段による復号処理で得られたタイル画像で構成される画像中の、前記第１の符号化方式とは異なる第２の符号化方式で符号化されたタイル画像に接する前記第１の符号化方式で符号化されたタイル画像を検出する検出手段と、
該検出手段で検出されたタイル画像における、着目画素と隣接画素との差分が所定の差分値を有する場合に平滑化する画像処理手段とを有する。
【発明の効果】
【０００６】
本明細書によれば、可逆符号化された領域と非可逆符号化された領域との画質差を小さくし、違和感の少ない画像を生成することができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態における復号側のコンピュータシステムの構成図と機能ブロック図
【図２】サーバ・クライアントの構成図
【図３】第１の実施形態における復号処理フローを説明する図
【図４】第１の実施形態における画像処理とバッファリングの説明図
【図５】第１の実施形態における符号化処理フローを説明する図
【図６】第１の実施形態における符号化処理における符号化方式判定結果を示す図
【図７】写真領域以外で発生する歪みの説明図
【図８】写真領域以外で発生する歪みの説明図
【図９】第２の実施形態における非可逆タイル内の写真領域以外を特定する処理のフローチャート。
【図１０】図９のＳ１２０４の詳細を示すフローチャート。
【図１１】第２の実施形態における非可逆タイル内の写真領域以外を特定方法を説明する図
【図１２】第３の実施形態における復号処理フローの説明図
【図１３】発生する歪みの最大幅の説明図
【図１４】可逆タイルと非可逆タイルの隣接を説明する図
【図１５】画素値差分と補正値の関係説明図
【発明を実施するための形態】
【０００８】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【０００９】
[第１の実施形態]
最初に、本実施形態における符号化方式の概要、並びに、符号化方式における画質上の問題点、並びに解決方法を簡単に説明する。
【００１０】
符号化方式には、文書画像での高圧縮性を実現するため、非可逆符号化（第１の符号化方式）と可逆符号化（第２の符号化方式）とを適応的に使い分ける符号化(適応符号化)を用いる。本実施形態においては、可逆符号化として、国際標準符号化方式のJPEG-LS(ITU-T T.87 | ISO/IEC 14495-1)を用いる。一方、非可逆符号化として、国際標準符号化方式であるJPEG2000(ITU-T T.800 | ISO/IEC 15444-1)を用いる。
【００１１】
この適応符号化方式では、文書等の画像が入力された後、その画像を複数の矩形領域(タイル)に分割する。その後で、各タイルは写真の特性を持つ領域(写真領域)か、網点や線画，テキスト，グラデーション等の写真以外の特性を持つ領域(写真領域以外)かを判定する。そして、写真領域を含むタイルには非可逆符号化方式、写真領域を含まないタイルには可逆符号化方式を適用する(以下、前者のタイルを非可逆タイル、後者のタイルを可逆タイルと呼ぶ)。このような符号化方式に共通する画質上の問題が１つある。それは図１４に示したように、画像中の写真領域と写真領域以外の境界を包含するタイルは、写真領域と接しているため、非可逆符号化が適用されてしまうことである。この結果として、写真領域以外の内部には可逆符号化が適用されているにもかかわらず、隅には非可逆符号化が適用される。つまり、領域の内部と境界部で画質差が生じてしまう。特に、高圧縮に圧縮する場合には、その問題は顕著に現れる。
【００１２】
これに対して、画像を復号した後に、非可逆タイルに対して、写真領域以外に生じている圧縮の歪みを除去する画像処理を加えることで対応できる。この画像処理としては、写真領域以外の特性を踏まえた手法が望ましく、エッジ保存型平滑化フィルタと呼ばれる処理が妥当である。写真領域以外は、エッジと平坦領域、勾配から構成されており、圧縮歪みはそれらに対して小さな画素値変動として現れる。このため、小さな画素値変動を低減しつつ、元の画像構造を保持するフィルタ処理が求められる。したがって、目的とする効果を得るための画像処理としては、エッジ保存型平滑化フィルタが望ましい。エッジ保存型平滑化フィルタの中には、ディフュージョンと呼ばれるタイプのものがあり、これは各タイルに対し繰り返し処理を行う。そのため、全ての非可逆タイルに対してエッジ保存型平滑化フィルタを行うと、処理時間の増大を招いてしまう。さらに、画質に対する弊害も生じる。具体的には、エッジ保存型平滑化フィルタを写真領域に施すと、写真領域が原画像において有している小さな画素値変動をつぶしてしまう。この結果として、写真領域は、写真領域以外のような特性の画像となってしまう。そこで本実施形態においては、可逆タイルに隣接している非可逆タイルには、写真領域以外が存在する可能性がある点に着目する。そして、該当する非可逆タイルのみに対し、エッジ保存型平滑化フィルタを行う方法を提案する。
【００１３】
図２は、本実施形態を実現するシステムの概略を示した図である。クライアント201、またはクライアント202のような複数のユーザが、有線、無線を問わず、ネットワーク203を介してサーバ204と通信することが可能である。クライアント201,202は、ＰＣや、タブレット端末、携帯端末、プリンタなど、通信機能を有し、画像を出力できる装置（画像処理装置）である。サーバ204は画像ファイルを蓄積する大容量の記憶装置205を持っている。大容量の記憶装置205はたとえば、ハードディスクなどがこれに該当する。このハードディスクには、テキストや線画、自然画などを含む非圧縮画像データが数多く格納されている。クライアント201、202は、サーバに対して圧縮対象の画像データ、並びに圧縮条件（符号化パラメータを含む）を指定した上で、圧縮処理の実行を要求する。サーバ204は、指定された画像データに対して、同じく指定された圧縮条件で圧縮し、その圧縮データをクライアント201、202に返送する。クライアント201、202は、受信した圧縮画像データを復号する。
【００１４】
実施形態における、クライアント201,202やサーバ204では、CPUが実行するプログラムによってその機能を果たすものである。従って、そのハードウェア構成は基本的に同じであり、例えば図１（ａ）に示す通りである。CPU101は、システム全体の動作を制御し、一次記憶102に格納されたプログラムの実行などを行う。一次記憶102は、ＲＡＭで構成される主メモリであり、二次記憶103に記憶されたプログラムなどを読み込んで格納する。二次記憶103は例えば、ハードディスクなどの記憶媒体がこれに該当する。一般に一次記憶の容量は二次記憶の容量より小さく、一次記憶に格納しきれないプログラムコードやデータなどは二次記憶に格納される。また、長時間記憶しなければならないデータなども二次記憶に格納される。本実施形態では、プログラムを二次記憶103に格納し、プログラム実行時に一次記憶102に読み込んでCPU101が実行処理を行う。入力デバイス104とは、例えば、マウスやキーボードなどがこれに該当する。プログラムなどに割り込み信号を送ったりするために用いる。出力デバイス105とは例えば、モニタやプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、本発明の主眼ではないので説明を省略する。ネットワークＩ／Ｆ106は、ネットワークと通信するためのインタフェースであって、有線、無線を問わない。なお、図１はクライアント201,202、サーバ204の共通部分の説明であって、勿論、これ以外の構成要素を有しても構わない。尚、図１がサーバ204の構成である場合、二次記憶103が、図２の大容量ハードディスク205に相当することになる。
【００１５】
まず、サーバ204の動作を簡単に説明する。その後で、本発明の処理を行う画像復号装置、つまりクライアント201、202の説明をする。
【００１６】
サーバ204は、クライアント201、202から、画像を特定する情報（ファイル名等）を含む要求情報を受信する。そして、その要求情報に従って画像データを、複数画素で構成されるタイルに分割し、各タイルの特徴に応じて、可逆圧縮または非可逆圧縮を選択し、符号化する。この符号化を行なった後、要求元のクライアントにその符号化画像データを送信する。本実施形態では、タイルのサイズは128x128[pixel]とする。また、可逆圧縮として文字や線画の圧縮を得意とするJPEG-LS符号化方式を、非可逆圧縮として自然画の圧縮を得意とするJPEG 2000符号化方式を用いる例を説明する。したがって、タイルが文字や線画を多く含んでいればJPEG-LS方式が選択され、自然画を多く含んでいればJPEG2000方式が選択される。
【００１７】
このようなサーバの動作について、図５を用いて、さらに詳しく説明する。同図は、サーバ204におけるCPU101が実行するアプリケーションプログラムの手順を示している。なお、以下の処理は、クライアント201から、画像要求を受信した場合の処理である。
【００１８】
ステップS301では、圧縮対象となる画像を記憶装置から取得する。この画像は、非圧縮状態の画像である。本実施形態では、色空間がGrayであり、各コンポーネントのビット精度が8[bit/channel]、画像サイズが7040x4992[pixel]の画像とする。符号化の順序は、符号化対象の画像データ中の左上のタイルから始める。そして、符号化対象のタイルを、水平右方向に順に進めて右端に達したときに、１タイル分だけ垂直下方向の左端に設定し、そこから水平右端に向かう順に向かうようにする。すなわち、タイルを単位とするラスタースキャン順とする。
【００１９】
ステップS302では、ステップS301で取得した画像をタイルに分割し、そのタイル総数Tsumを算出する。本実施形態のタイルサイズは128x128[pixel]であるので、Tsum = (7040/128)x(4992/128) = 55x39 = 2145タイル数となる。ステップS303では、タイル番号用のカウンタTにゼロを代入して初期化する。
【００２０】
以下、ステップS304〜S309で、タイル毎にJPEG-LSとJPEG2000によるを切り替えて符号化処理を行なう。ステップS305では、タイルTの符号化方式を決定する。符号化方式の決定は、タイルTに文字や線画が多く含まれる場合には、JPEG-LS符号化方式を選択し、そうでない場合には、JPEG 2000符号化方式を選択する。タイルTに文字や線画が多く含まれるか否かについては、タイルTを解析して、様々な特徴量から推定できる。たとえば、色数が少ない場合には、文字や線画と判断し、色数が多い場合には自然画が多いと判断する。あるいは、エッジ検出を行い、エッジが多ければ文字や線画が多いと判断し、そうでなければ自然画が多いと判断する。他にも様々な方法が考えられるが、本提案の主眼ではないため、詳細な説明は割愛する。本実施形態では、着目タイル内でエッジ検出を行ない、エッジと判定された画素数が所定の閾値より多い場合には、文字・線画が多く含まれるとしてJPEG-LS符号化を、そうでなければ、JPEG2000符号化を選択するものとする。
【００２１】
ステップS305では、ステップS304の決定により、タイルTの圧縮方式が可逆圧縮符号化かどうかを判断する。タイルTの符号化方式がJPEG-LS符号化方式、つまり可逆圧縮方式であれば、ステップS306へ進む。そうでなければ、ステップS307へ進む。ステップS306では、タイルTをJPEG-LS符号化方式で圧縮する。ステップS307ではタイルTをJPEG2000符号化方式で圧縮する。圧縮処理（符号化処理）の結果、生成された着目タイルの符号化データは、一次記憶装置802に格納されるものとするが、格納先は二次記憶装置803でも構わない。ステップS308ではタイル番号Tを1つインクリメントする。ステップS309では、タイル番号TがステップS302で算出したタイル総数Tsumと比較する。TとTsumが同じであれば、すべてのタイルについて一通り符号化し終えたと判断し、ステップS310へ進む。両者の値が異なる場合は、まだ、符号化し終えていないタイルがあると判断し、ステップS304へ処理を戻す。最後に、ステップS310で符号列の生成を行う。符号列は、ヘッダ、JPEG2000符号列、JPEG-LS符号列から構成される。ヘッダには、画像の水平、垂直サイズ、タイルサイズ、各タイルがJPEG2000/JPEG-LSのいずれで圧縮されたかを示すフラグ情報、JPEG2000/JPEG-LSの各符号列長、JPEG2000/JPEG-LSそれぞれの圧縮条件などが記述される。JPEG2000符号列は、JPEG-LSが選択されたタイルについては符号が発生しなかったものとして生成される。例えば、図６において、領域801，804はJPEG2000で圧縮され、領域802と803はJPEG-LSで圧縮されたとする。その場合には、領域802と803のタイルについてはJPEG2000の符号が発生しなかったことを示す符号列を生成する。JPEG-LS符号列も同様、領域801と804のタイルについてはJPEG-LSの符号が発生しなかったことを示す符号列を生成する。このようにして符号列が生成されると、サーバ204は、その符号列（符号化画像データ）を要求元（クライアント201もしくは202のいずれか）に送信する。
【００２２】
続いて、クライアント201、202における復号処理について説明する。この復号処理では、復号対象の各タイルの符号化データを、それに適用された符号化方式に応じて復号し、タイル画像を生成していく。その過程で、復号済みのタイル画像内の画素値に対して、更に画像処理を加える。この処理では、図4(a)に示したとおり、右方向をX方向、下方向をY方向と定義する。その上で、X方向にa番目、Y方向にb番目のタイルT(a,b)が非可逆タイルである場合、そのタイルT(a,b)をエッジ保存型平滑化フィルタをかける対象の候補とする。そして、候補としたタイルT(a,b)の４近傍のタイル、具体的にはT(a,b-1),T(a+1,b),T(a,b+1),T(a-1,b)の周囲に可逆タイルが存在するかどうかを判断する。もし可逆タイルが少なくとも１つ存在するならば、T(a,b)には写真領域以外が存在している可能性があり、エッジ保存型平滑化フィルタを実行する対象として決定し、そのフィルタ処理を行う。なお、上述画像処理においては、注目タイルと隣接タイルの間で画素値の変化に連続性を持たせる。このため、エッジ保存型平滑化フィルタでは、隣接タイルの画素を用いて処理を行う。そのため、復号し、上記画像処理を行なったタイルの出力タイミングは、そのタイルの下に隣接するタイル（図４では、タイルT(a,b+1)）の復号処理を終えた後となる。これに伴い、X方向のタイル数をNum_T_xとした場合、図4(b)に示した通り、2*Num_T_x+1個の復号済みタイルをバッファリングするためのバッファ領域を一次記憶102に確保しておく。
【００２３】
図３は本実施形態におけるクライアント201(202も同様）における復号処理のフローチャートである。同図に係る復号処理手順は、クライアント201がサーバ204から符号化画像データを受信した際、或いは、二次記憶103に保存された符号化画像データを復号する際に実行されるアプリケーションプログラムである。このアプリケーションプログラムは、二次記憶装置103に格納されていて、実行時には一次記憶102にロードされ、CPU101が実行されるものである。
【００２４】
ステップS901では、クライアント201のCPU101は、受信した符号列を一次記憶102に格納する。ステップS902では、符号列のヘッダを解析し、画像に関する情報，符号化に関する情報を取得する。具体的には、符号化された画像の水平、垂直サイズ、タイルサイズ、縦横のタイル数、各タイルがJPEG2000/JPEG-LSのいずれで圧縮されたかを示すフラグ情報、JPEG2000/JPEG-LSの各符号列長などの情報を取得する。また、符号化された画像の水平、垂直サイズとタイルサイズの情報から、タイルの総数Tsumの算出なども行う。ステップS903では、１つのタイルライン（水平方向に並ぶタイル群）の復号処理を行う。具体的には、各タイルについて、可逆，非可逆のいずれであるかを判別する。もし、タイルTの符号化方式が可逆であれば、JPEG-LSの復号を行う。一方で、タイルTの符号化方式が非可逆であれば、JPEG2000の復号を行う。いずれの場合であっても復号結果であるタイル画像はバッファへ格納する。JPEG-LS，JPEG2000いずれの復号方法も、公知技術であるので、ここでは説明を割愛する。なお、一次記憶102には、各タイルの適用符号化方式を示す符号化方式マップを格納するための領域が確保されている。この符号化方式マップでは、各タイルに対して”0”もしくは“1”が割り当てられる。”0”はJPEG-LS、”1”はJPEG2000を意味する。この符号化方式マップは、各タイルに対し画像処理を行う際に参照される。また、画像の復号処理が開始した際には、符号化方式マップは全“0”で初期化されており、各タイルの復号が済んだ後、逐次更新される。ステップS904では、画像処理の対象となるタイルを示すタイルカウンタTを初期化する。具体的にはT=0をセットする。
【００２５】
ステップS905では、Tが画像下端のタイルライン中のタイルであるか判定する。つまり、TがTsum-Num_T_x未満であるかどうか判定する。もし、TがTsum-Num_T_x未満であれば、ステップS906を行う。ステップS906では、タイルTに対して画像処理を行うために、T+ Num_T_x番目のタイルの復号を行い、その後処理をステップS907へ進める。この復号処理は、ステップS903における、タイルラインにおける１タイルの復号処理と同様であるので説明を割愛する。ステップS905に戻り、TがTsum-Num_T_x未満でない場合、T+ Num_T_x番目のタイルは存在しないので、処理をステップS907へ進める。ステップS907では、タイルTに対する画像処理を行う。この説明については後述する。なお、画像処理を適用した後のタイルTについては、別のタイルの画像処理で利用する。そのため、バッファリングされているタイルTの復号画像を、画像処理を適用した後のタイルTに置き換える。次に、ステップS908において、画像処理を適用した後のタイルTを出力する。ステップS909でタイルカウンタを１つインクリメントする。ステップS910で画像処理が未処理のタイルがあるかどうか判定する。つまり、T＜Tsumであるか判定する。もし、T＜Tsumであれば、処理をステップS905へ戻し、そうでなければ、処理を終える。
【００２６】
続いて、ステップS907の画素処理について説明をする。この画像処理は、エッジ保存型平滑化フィルタを用いたフィルタ処理である。このフィルタ処理は、非可逆符号化されたタイル画像内において、隣接画素との差分が予め設定された値に近いほどエッジを強調し、設定された値から外れるほどエッジ強調度を小さくするためのフィルタ処理である。
【００２７】
先に説明したように、このステップS907の画像処理は、着目タイルが非可逆符号化されたタイルであり、それに隣接するタイル内に可逆符号化されたタイルが少なくとも１つ存在した場合に実行される。ここで、用いられるこのフィルタは、小さなエッジをつぶし、大きなエッジはそのまま残す特性を持つものであって、スキャン画像上のスキャンノイズを削除する際に利用されるケースがある。このタイプのフィルタを、非可逆タイル内の写真領域以外の画質向上に対して利用する理由に関して、次に説明する。
【００２８】
写真領域以外において、圧縮歪みは、エッジとその近傍、勾配上に小さなエッジ、もしくはその集まりとして現れる。つまり、写真領域以外のオリジナルには、圧縮歪みのような小さなエッジが含まれるケースはあまり多くなく、伸長画像上の小さなエッジを圧縮歪みと見なすことも可能である。このため、非可逆タイル内の写真領域以外の画質向上のために、エッジ保存型平滑化フィルタを用いる。エッジ保存型平滑化フィルタの具体的な演算は次に述べるとおりである。
【００２９】
タイル内の注目画素について、上下左右方向それぞれの隣接画素との画素差分値D(i),つまりエッジの大きさD(i)=pv(i)-PixValを求める。ただし、PixValは注目画素値で、pvは隣接画素値である。また、i=0,1,2,3で、それぞれ上，右，下，左方向に対応する。そして、下記式に従い、PixValを修正するための補正値d(i)を導出する（小文字ｄと大文字Ｄで区別している点に注意されたい）。
d(i)=D(i)/{1+(D(i)/K)* (D(i)/K)}
ここで、Kは定数である。d(i)を導出した後、下記式に従い、４つの補正値を注目画素値に足しこみ、フィルタリング後の注目画素値PixVal'を算出し、更新する。
PixVal' = PixVal + {d(0)+d(1)+d(2)+d(3)}/4
先述のKはフィルタ強度のパラメータであり、平滑化させたいエッジの大きさに合わせて選択されることが望ましい。ただし、Kを大きくしていくと、大きなエッジも平滑化させてしまう。なお、画素値が例えば８ビットで表わされる場合、取り得る範囲が０乃至２５５となるので、上記の算出の結果PixVal'が負になった場合には０、２５５を超えた場合には２５５にクロップするものとする。
【００３０】
ここで、例えば、図１５は、K=1,10,30,50,400とした場合における、画素値差分D(i)と補正値d(i)の関係を示している。
【００３１】
同図を参考にすると、D(i)=10、すなわち、大きさ「１０」のエッジを平滑化するには、K=400を設定することが望ましい。しかし、K=400では、大きなエッジに対しても、一定の平滑化を行ってしまう。具体的には、大きさ「200」のエッジを「160」だけ増加させにしてしまい、大きさ「255」のエッジを「181」にしてしまう。この点を考慮し、Kの選択としては、あまり大きい値を選ばずに、フィルタリングを繰り返し行うことが好ましいと言える。一例としては、同じく大きさ「１０」のエッジの平滑化を考えた場合、K=10を選択して、フィルタリングを複数回実行する（繰り返す）。そのようにすれば、大きなエッジの平滑化を軽微に抑え、目的とする大きさのエッジの平滑化を達成できる。本実施形態においては、K=10とし、繰り返し回数を５回とする。なお、この繰り返しは、注目タイルをラスタスキャン順で、各画素に対してフィルタ処理を行うことを１回として、ラスタスキャンに沿った処理を５回行うことである。なお、この繰り返し回数「５」は一例であり、ユーザが指定しても良い、さらに、タイル境界に位置する画素については、注目タイル内の画素だけでは、D(i)を算出できない。その場合、隣接タイルのタイル境界画素を利用する。例えば、タイルの上方向の境界画素については、注目タイル内に上方向の隣接画素がない。そのため、上方向の隣接タイルの境界画素を使って、D(0)を算出する。
【００３２】
本実施形態の復号処理では、図１(a)がクライアント201(202)の構成とした場合の、二次記憶803に格納されたプログラムとして、その動作を説明した。しかし、これをハードウェアで実施する場合の構成の概略を図１(b)に示す。同図において、806は符号列入力部、807は符号列バッファであり、これらのブロックは図３におけるステップS901の処理で用いられる。808はヘッダ解析部であり、ステップS902で用いられる。809はJPEG2000復号部であり、ステップS903,S906で用いられる。810はJPEG-LS復号部であり、ステップS903,S906で用いられる。811は復号タイルバッファであり、ステップS903,S906の復号結果を格納するために用いられる。812は画像処理部であり、ステップS907で用いられる。813は出力部であり、ステップS909で用いられる。
【００３３】
以上説明したように本実施形態によれば、可逆符号化データと非可逆符号化データとが混在する符号化画像データを復号する際、可逆タイルに隣接する非可逆タイル内の写真領域と非写真領域それぞれ画素を、それぞれに応じた特性に応じた補正することができる。従って、可逆タイルと非可逆タイルとの領域の画質差を更に小さくでき、違和感の発生しにくい良好な画像を生成することができる。
【００３４】
［第２の実施形態]
上記第１の実施形態では、可逆タイルが隣接する非可逆タイルについては、写真領域以外が含まれる可能性が高いとし、該当するタイルに画像処理（フィルタ処理）を加える方法を示した。その画像処理の方法では、対象となるタイルに写真領域以外が少ないと、第１の実施形態の冒頭で説明したような弊害、つまり無駄な処理と画質の低下が生じてしまう可能性がある。そこで本第２の実施形態では、可逆タイルに隣接する非可逆タイルについて、写真領域以外の領域を特定した上で画像処理をかける。その特定方法に関しては、非可逆タイル内部の写真領域以外の領域は、隣接する可逆タイルと同じ特性を有していると見なせる点に注目し、非可逆タイル内における写真領域以外の復号画素値を推定する。その上で写真領域以外を特定する。具体的には、タイル内の写真領域以外を網点もしくは文字領域と、グラデーション領域に大別する。
【００３５】
前者は、エッジと平坦領域から構成されており、非可逆タイルにおける写真領域以外のオリジナルと可逆タイルの間には、同じ画素値の画素が発生している。そのため、非可逆タイルにおける写真領域以外の復号結果と可逆タイルの間には、似たような画素値を持つ画素が発生する。例えば、図7(a)は、ある文書画像中の網点領域、それに隣接する写真領域を含む１画素ラインに注目し、画素値変化を示したグラフである。同図は網点領域のみプロットされているが、実際にはn+60より大きい座標領域において写真領域が存在する。この文書画像に対して、適応符号化（非可逆方式としてJPEG2000を利用）を適用したところ、n+26未満の位置は可逆タイル、n+26以上の位置は非可逆タイルと判定された。そして、符号化した結果が図7(b)であり、それぞれのタイルで似たような値が発生していることがわかる。このため、分断された写真領域以外が網点や文字である場合、可逆タイル内の画素に近い値を持つ、非可逆タイル内の画素を見つける。その上で、そのような画素から構成される領域を確認することで、写真領域以外と特定できる。
【００３６】
一方で、後者、つまり写真領域以外がグラデーション領域である場合を考える。この場合、非可逆タイル内のグラデーション領域と、隣接する可逆タイルを比較すると、可逆タイル内のグラデーションを外挿した結果が、非可逆タイル内のグラデーション領域となる。そのため、非可逆タイル内のグラデーション領域の復号結果は、外挿値に近い値となる。例えば、図８(a)は、ある文書画像中のグラデーション領域、それに隣接する写真領域を含む１画素ラインに注目し、画素値変化を示したグラフである。同図は、グラデーション領域のみプロットしているが、nより小さい座標領域に写真領域は存在している。この文書画像に対して、適応符号化（非可逆方式としてJPEG2000を利用）を適用したところ、n+15未満の位置は非可逆タイル、n+15以上の位置は可逆タイルと判定された。そして、符号化した結果が図８(b)であり、それぞれのタイルで似たような値が発生していることがわかる。このため、分断された写真領域以外が網点や文字である場合、可逆タイル内の画素に近い値を持つ、非可逆タイル内の画素を見つける。その上で、そのような画素から構成される領域を確認することで、写真領域以外と特定できる。上述のとおり、非可逆タイル内における写真領域以外の復号画素値を推定し、写真領域以外を特定する方法を以下に示す。なお、本実施形態における処理は、第１実施形態と比べて、画像処理(図３のステップS907)のみが異なるので、その説明に注力する。
【００３７】
本第２の実施形態におけるステップS907における処理を図９、図１０のフローチャートを用いて説明する。図９において、ステップS1201で注目タイルは非可逆であるか判定（識別）する。もし、注目タイルは可逆である場合、本処理を終える。一方で、注目タイルが非可逆である場合、ステップS1202で隣接タイルを特定するためのカウンタiを0で初期化する。ここで、カウンタiは0,1,2,3の値を取り、0は上、1は右、2は下、3は左、それぞれの方向の隣接タイルを示す。ステップS1203で、i方向の隣接タイルは可逆であるか判定する。もし、非可逆であれば処理をステップS1205へ進める。一方で可逆であれば、ステップS1204で注目タイルにおける写真領域以外に属する画素を検出する。この検出については、後程説明する。ステップS1205では、カウンタをインクリメントする。ステップS1206で、隣接タイルを用いた検出処理を、全ての方向において行ったかどうか判定する。具体的には、iが4未満かどうかを判定する。もし、iは4未満であれば、処理をステップS1203へ戻す。一方で、iが4未満でなければ、ステップS1207で、写真領域以外に属する画素と検出された画素に対してエッジ保存型平滑化フィルタを行う。この処理は第１の実施形態と同様であり、説明を割愛する。ステップS1207を終えると、ステップS907の処理は完了となる。
【００３８】
次に、図１０を用いて、ステップS1204の検出処理について説明する。この検出処理では、写真領域以外は、最初は網点もしくは文字の属性を有するものとする検出処理を行う。その次に、写真領域以外はグラデーションの属性を持つものとした検出処理を行う。ステップS1208からステップS1210は、網点もしくは文字を想定した検出処理に相当する。そして、ステップS1211からステップS1213は、グラデーションを想定した検出処理に相当する。
【００３９】
ステップS1208において、可逆タイルであると判定された隣接タイルにおいて復号画素値を確認する。ステップS1209において、注目タイルの写真領域以外の復号画素値を推定する。これについては、ステップS1208で確認した画素値を予測画素値として扱い、その±10の範囲内の画素値を非写真領域の復号画素値と推定する。例えば、ステップS1208で、可逆タイルとして判定された隣接タイル内に、50と200の値を持つ画素値が存在したとすると、ステップS1209では、40乃至60、又は、190乃至210の画素値を、非可逆の注目タイルにおける写真領域以外の復号画素値と推定する。ステップS1210において、注目タイル内で、推定した復号画素値を持つ画素を検出する。検出結果については、画素マップに格納する。この画素マップとは、タイル内の画素数と同数の配列で、画素マップの各値は、写真領域の画素か、写真領域以外の画素かを識別する情報を格納する。具体的には、写真領域の画素は“0”、写真領域以外の画素は“1”で示す。
【００４０】
ステップS1211では、隣接タイルをグラデーション領域であると見なし、各境界画素について、境界方向と垂直方向勾配を算出する。そして、ステップS1212にて、その勾配を注目タイルに外挿する。具体的には、図１１に示した通りで、可逆タイル内の境界画素のひとつaの画素値は50であり、反対側の境界における画素bの画素値は70であったとする。その場合、注目タイルの境界画素cの画素値を50、反対側の境界画素dの画素値を30として、cとdの間を補間することで外挿する。ステップS1212では、外挿値から復号画素値を推定する。両端点の２つの推定画素値が推定できた場合、その間にある画素の推定値は両端の推定の線形補間して得ることができる。そこで、ステップS1213にて、この推定値±10の範囲内に現実の復号した画素値が存在すれば、換言すれば、復号で得られた画素値と推定値との差が、閾値以下（「１０」以下）であれば、それはグラデーション領域にある画素値と判定し、その位置にある画素マップの値を"1"に設定する。一方、この推定値±10の範囲を超える場合、その位置にある画素マップの値は変更しない。つまり、この推定値±10の範囲を超える場合の画素マップの値は、先に説明した網点もしくは文字の判定結果が維持されることになる。
【００４１】
上記の結果、画素マップには、写真領域以外であると推定された画素位置には"1"、写真領域の画素位置には"0"が格納されることなる。従って、図９のステップS1207では、画素マップにおいて、"1"となっている画素についてフィルタリング処理すれば良い。なお、着目している画素マップ値が“1”であっても、その周りの画素マップ値が全て“0”である場合には、その例外的に着目画素値はフィルタリング処理対象外にしても良い。
【００４２】
[第３の実施形態]
第１の実施形態では、可逆タイルに隣接する非可逆タイルに対し、エッジ保存型平滑化フィルタを５回かけることを示した。この回数を多くしていけばいくほど、処理負荷は増えるが、より平滑化の効果は大きいものとなる。また、一般的に、圧縮条件を変えると、発生する歪みは変わる。例えば、量子化ステップ幅を大きくしていけば、歪みの大きさは大きくなっていく傾向にある。これらのことを鑑み、圧縮条件に合わせて、フィルタの繰り返し回数を決めることが望ましい。そこで本第３の実施形態においては、ある圧縮条件の下で生じる歪みの大きさの最大値(最大誤差幅)を、圧縮条件から導出する。そして、その最大誤差幅を平滑化できるだけのフィルタの繰り返し処理を行う。
【００４３】
図１２は、本第３の実施形態の復号処理フローである。同図は、図３と比較し、ステップS907が、ステップS1001に置き換わったものである。
【００４４】
このステップS1001では、図３のステップS902のヘッダ解析で得た符号化条件のうち、復号画素の誤差に影響を与える条件から、最大誤差幅を算出する。具体的には、色変換の有無、DWT係数の種類(5x3, 9x7)と段数(２次元のDWT１回を１段とする)、量子化ステップ、ビットプレーン削除数の条件を確認し、最大誤差幅を算出する。本第３の実施形態では、色変換無し、DWTの種類は5x3タップフィルタで、DWTの段数は２とする。そして、図１３(a)のとおり周波数帯域に名称を付けたとして、以下のとおりビットプレーンを削除したものとする。
LL：０枚、2HL,2LH,1HL,1LH: １枚、2HH,1HH:２枚
この場合、各周波数帯域に生じている最大誤差幅は図１３(b)のとおりである。続いて、逆DWTを行う過程でどのように、誤差が積み重なっていくかを検証する。図１３(c)における()付きの数値は、横方向に逆DWTを行った結果生じる、最大誤差幅を示している。具体的には、(偶数インデックス画素の最大誤差幅，奇数インデックス画素の最大誤差幅)として記している。次いで、縦方向の逆DWTを行うと、図１３(c)の奇数インデックスを使った変換において、最大誤差幅が生じる。がその大きさは(7,15)である。つまり、１段階の逆DWTを行うことで、図１３(d)に示したとおり、最大誤差幅15が生じる。この導出について、１次元方向のDWTを例に説明する。次式は、復号時における5x3タップフィルタの演算式である。
X(2n)=L(n)-Floor((H(n-1)+H(n)+2)/4)
X(2n+1)=H(n)+Floor((X(2n)+X(2n+2))/2)
ただし、X(n)は復号画素、L(n)は低周波成分、H(n)は高周波成分である。また、nは復号画素，低周波成分，高周波成分の位置を示すインデックスであり、Nをタイルの注目方向における画素数とした場合、0≦n＜N/2である。上記演算式から自明であるが、復号画素の誤差は、低周波成分と高周波成分それぞれの誤差(量子化前のDWT係数と逆量子化後のDWT係数の差)により決まる。例えば、低周波成分に対しては量子化をせず、高周波成分に対して量子化ステップ「２」の量子化を行ったとする。その場合、X(0),X(2)...等、偶数インデックスの復号画素は最大で「１」の誤差が生じる。一方、X(1),X(3),...等、奇数インデックスの復号画素は最大で「３」の誤差が生じる。
【００４５】
本第３の実施形態の符号化条件により生じる歪みの大きさに説明を戻し、２段階目の逆DWTについても同様な演算を行うと、復号結果全体で見て、最大誤差幅「３０」が生じる。したがって、エッジ保存型平滑化フィルタの繰り返し回数は、大きさ「30」の歪みを平滑化できるだけの繰り返し回数を設定するものとする。具体的には、第１の実施形態に示したエッジ保存型平滑化フィルタの式において、K=10とした場合、８回繰り返すと、おおよそ大きさ30の歪みを平滑化できる。もちろん、最大誤差幅が発生している注目画素の周囲には、圧縮歪みが発生していることもある。したがって、注目画素と周囲画素の画素値差分は「30」以上の場合もあれば、「30」未満のこともある。このため、８回の繰り返し回数については、足りない場合もあれば、多い場合もある。しかし、隣接画素にどの程度の歪みが発生しているかを特定することは、原画像の画素値変化に依存するところであり、目安として８回が妥当と考え、繰り返し回数は「８」とする。なお、この繰り返し回数は、最大誤差幅により決められるものであり、画像復号装置における不図示のメモリに、最大誤差幅と繰り返し回数の対応テーブルがある。このため、本実施形態においては、最大誤差幅が算出された後、繰り返し回数は、対応テーブルを参照して決められる。さらに、最大誤差幅と繰り返し回数の対応について、最大誤差幅が一定値までは、最大誤差幅が大きくなるにつれ、繰り返し回数を大きくする。しかし、最大誤差幅が一定値以上では、繰り返し回数は固定とする。これは、誤差量が一定値以上の歪みを平滑化させようとすると、画像がそもそも持っている意味のあるエッジをも平滑化してしまうからである。対応テーブルの一例として、最大誤差幅が「50」までは、最大誤差幅が大きくなるにつれて繰り返し回数は増えていく。そして、最大誤差幅「50」以上では、繰り返し回数は「１５」で固定となる。
【００４６】
［その他の実施形態］
上記実施形態では、サーバとクライアントが通信を行なう例を説明したが、１つの装置にて符号化と復号の両方を処理する場合であっても構わないので、上記実施形態によって本発明が限定されるものではない。
【００４７】
上記の各実施形態では、符号化方式として、JPEG2000,JPEG-LSを用いる方法を説明したが、これに限られることはない。また、符号化方式の組み合わせについて、２つの場合を示したが、３つ以上でもよい。さらに、１つの符号化方式をタイル単位に符号化条件を変える適応的な符号化方式でもよい。要するに、タイル毎に画質差が生じるような適応的な符号化を行い、１つの写真領域以外に異なる符号化方法が適用される符号化方式全般は本発明の範疇に入る。
【００４８】
画像処理の方法として、エッジ保存型平滑化フィルタを示したが、これに限られることはなく、写真領域以外の画質を向上させるものであればよい。例えば、減色処理、バイラテラルフィルタなども考えられる。
【００４９】
第２実施形態において、非可逆符号化タイル内の写真領域以外を特定する方法において、隣接する可逆符号化タイル内の画素値、もしくは外挿値を求める。そして、その画素値もしくは外挿値の±10の範囲内の画素値を、写真領域以外の復号画素値と推定する方法を示した。しかし、復号画素値の推定方法として、画素値もしくは外挿値の±10の範囲に限られることはない。例えば、αは圧縮条件等と関連づけられるパラメータとした上で、復号画素値は、画素値もしくは外挿値の±α(αは正の整数)の範囲としてもよい。また、写真領域以外の注目する復号画素に大きな歪みが発生していると、その画素値は、隣接する可逆符号化タイル内の復号画素値もしくは外挿値の(±所定の正の整数)に入らないこともある。この場合、注目画素を写真領域以外とすることができない。この問題への対応として、他の写真領域以外を特定する処理を組み合わせてもよい。例えば、いったん、隣接する可逆符号化タイル内の画素値もしくは外挿値を使って写真領域以外の画素を特定する。その後に、写真領域以外としなかった各画素について、周囲の画素に写真領域以外と判定された画素がどの程度あるかに基づいて、写真領域以外と判定し直してもよい。
【００５０】
第３の実施形態において、可逆符号化タイルに隣接する非可逆タイルに対して、圧縮条件を基にフィルタの回数を決める方法を示した。また、その説明において、非可逆符号化タイルについては、いずれも同一の圧縮条件であることを前提としたが、本実施形態はそれに限られない。可逆符号化タイルに隣接する非可逆タイルに適用される符号化条件、例えば、削除されたビットプレーン枚数等が異なれば、それに応じて、フィルタの回数を変更してもよい。
【００５１】
第３の実施形態において、最大誤差幅を平滑化させることを狙って、フィルタの繰り返し回数を設定する方法を示したが、本発明の範疇はこれに限られない。例えば、最大誤差幅が発生する可能性は低いので、最大誤差幅の歪みではなく、それより小さい歪みの平滑化を狙って、フィルタの繰り返し回数を設定してもよい。
【００５２】
第１〜３の実施形態において、エッジ保存型平滑化フィルタの強度K=10として説明したが、この値に限られない。平滑化させたいエッジの大きさから見て、Kが小さいと、繰り返し回数が大きくなる。一方で、平滑化させたいエッジの大きさから見て、Kが大きいと、大きなエッジを平滑化させてしまう。この点に考慮した上で、Kに適切な値を設定することが望ましい。
【００５３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014165869.tif 000003
【図２】
2014165869.tif 000004
【図３】
2014165869.tif 000005
【図４】
2014165869.tif 000006
【図５】
2014165869.tif 000007
【図６】
2014165869.tif 000008
【図７】
2014165869.tif 000009
【図８】
2014165869.tif 000010
【図９】
2014165869.tif 000011
【図１０】
2014165869.tif 000012
【図１１】
2014165869.tif 000013
【図１２】
2014165869.tif 000014
【図１３】
2014165869.tif 000015
【図１４】
2014165869.tif 000016
【図１５】
2014165869.tif 000017