説明

画像処理装置及びその制御方法

【課題】 所定画素数で構成される画素ブロックを符号化単位とする符号化データを、画質劣化を抑制しつつ、更に高い圧縮率で再符号化する。
【解決手段】 符号化画像データ入力部101が8×8画素のブロックを符号化単位とするJPEG符号化データを入力すると、冗長性推定部102はその符号化データのまま辞書型符号化アルゴリズムに従って符号化を行う。レンジ特定部103は、これによって得られた符号化データ量から第2の符号化部106の許容符号量のレンジの上限値と下限値とを特定する。そして、目標符号量決定部104は、このレンジ内の1つの符号量を目標符号量として決定する。第2の符号化部106は、決定した目標符号量の符号化データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像データの符号化技術に関するものである。
【背景技術】
【0002】
画像の伝送においては画像のデータ量を柔軟に変更できる、画像圧縮のレート制御機能が注目されている。これは画像圧縮されたデータ(画像符号化データ)を、復号することなく符号量を変更できる機能であり、画像符号化データを伝送するネットワークの帯域幅に応じたデータ量の変更が容易となる。この機能を持った画像圧縮としてJPEG2000等がある。
【0003】
JPEG符号化データなどにはレート制御の機能がないため、これをいったん復号して、JPEG2000等のレート制御機能を持つ符号化データへ変換し、再符号化が有効になる場合もある。例えば符号量を設定して再符号化する技術として、特許文献1等がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−166492号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
たとえば8×8画素単位で符号化を行うJPEG符号化と、それより広い範囲を単位として符号化を行うJPEG2000符号化とでは、JPEG2000の方が、より広い範囲で画像情報の冗長性を除去できる、もしくは除去できる可能性が高い。
【0006】
本発明は上記点に鑑みてなされたものであり、所定画素数で構成される画素ブロックを符号化単位とする符号化データを、再符号化する際の目標符号量の設定範囲を特定可能にする技術を提供しようとするものである。
【課題を解決するための手段】
【0007】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
所定数の画素で構成される画素ブロックを単位とする第1の符号化アルゴリズムに従って符号化された符号化データを、再符号化する画像処理装置であって、
再符号化対象の符号化データを入力する入力手段と、
前記画素ブロックよりも大きいサイズのブロックを単位に符号化する、第2の符号化アルゴリズムに基づく第2の符号化手段と、
前記入力手段により入力した符号化データを、当該符号化データのまま、第3の符号化アルゴリズムに従って符号化することで得られた符号量から、前記第2の符号化手段に対する符号量の許容レンジを特定するレンジ特定手段と、
該レンジ特定手段で決定した前記レンジ内の1つの符号量を選択する選択手段と、
前記入力手段で入力した符号化データを復号し、前記第2の符号化手段を制御して、前記選択手段で選択した前記符号量の符号化データを生成させる制御手段とを備える。
【発明の効果】
【0008】
本発明によれば、所定画素数で構成される画素ブロックを符号化単位とする符号化データを、再符号化する際の目標符号量の設定範囲を特定することが可能となる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係る画像符号化装置のブロック図。
【図2】第1の実施形態における冗長性推定部のブロック図。
【図3】JPEG符号化データ中に発生する冗長性に関する説明図。
【図4】JPEG2000の符号化方式のブロック図。
【図5】離散ウェーブレット変換の説明図。
【図6】離散ウェーブレット変換の説明図。
【図7】コードブロック分割の説明図。
【図8】離散ウェーブレット変換の説明図。
【図9】離散ウェーブレット変換における必要となる画素数の説明図。
【図10】辞書型符号化方式の説明図。
【図11】辞書型符号化が対象とする処理対象データ列と辞書メモリの例を示す図。
【図12】辞書型符号化方式の処理の流れを示した図。
【図13】第2の実施形態に係る画像符号化装置のブロック図。
【図14】第1の実施の形態における辞書型符号化方式のフローチャート。
【図15】第1の実施の形態における辞書型符号化方式の処理過程の説明図。
【図16】第2の実施形態の出力データ判定制御部の処理の示すフローチャート。
【図17】コンピュータプログラムで実現する場合の装置ブロック図。
【図18】第1の実施形態における目標符号量決定部の処理を示すフローチャート。
【図19】圧縮パラメータ設定GUIの一例を示す図。
【図20】再圧縮時に発生する問題の説明図。
【図21】PSNR算出において用いる画像の説明図。
【図22】JPEG符号化データを辞書型符号化方式で圧縮したときの符号量の説明図。
【発明を実施するための形態】
【0010】
本実施形態においては、再圧縮する際の問題と解決方法に関する。そして、再符号化対象をJPEGによる画像符号化データ(JPEG符号化データ)とし、それをJPEG2000に従って再圧縮する処理の例を説明する。
【0011】
図20は、入力画像に対して、量子化パラメータを設定してJPEG符号化した結果(1点)と、JPEG符号化データの復号画像に対して、JPEG2000の圧縮率に係るパラメータをいくつか設定して再圧縮した結果をトレースしたグラフである。なお、図21に再圧縮の処理の概略を示しているが、JPEG2000のPSNRの測定では、JPEG伸長画像ではなく原画像から見た画質に注目すべきであり、JPEG圧縮の対象となった原画像を用いている。図20に示すように、X(bpp)以上では、符号量を増やしても画質は向上しない。これは符号化対象がJPEGの伸長画像であり、その画像以上の画質を得ることはできないからである。換言すれば、ビットレートXでJPEG2000に従って符号化すれば、画質劣化が発生しないまま、より高い圧縮率で符号化できることを意味する。しかし、このビットレートX(bpp)を正確に知ることはできない。なぜなら、入力機器から得られた画像、パソコン等の編集ソフト等で生成された画像は圧縮されるが、原画像は残されているのは希だからである。例えば、デジタルカメラでは、撮影された画像はJPEGで圧縮されて保存されることは多いが、原画像に相当する画像については、必ず保存されるわけではない。このため、伸長画像の画質を保持できる最低の符号量を知ることができないケースが多い。
【0012】
本実施形態においては、上記のJPEG、JPEG2000以外の第3の符号化アルゴリズム、すなわち、図22で示したとおり、辞書型符号化方式でJPEG符号化データを可逆圧縮する。そして、その結果、得られた符号量を、再圧縮時の目標符号量(目標ビットレートX)の目安とするものである。
【0013】
まずJPEG2000を用いることで、画質を落とさずにJPEG符号化より符号量を減らせる理由について説明する。そして、その後、JPEG符号化データに対して辞書型の符号化方式を適用し、生成された符号量は再圧縮時の目標符号量に設定することが妥当であるかを説明する。その上で、本実施形態の説明に入ることとする。
【0014】
JPEG符号化方式(ISO/IEC IS 10918−1)は、その勧告書にも記されているが、入力された画像を8×8画素サイズのブロックに分割して、各ブロック単位にほぼ独立に符号化する。そのため、図3(a)で示したような輝度(或いは濃度)が平坦な領域の画像、或いは、8×8周期の網点領域を持つ画像を入力すると、各ブロックから同一の符号列が生成される。結果として、画像符号化データの中に、同一符号列の繰り返しによる冗長性が発生する。図3(b),(c)はそれぞれ、図3(a)の平坦領域と網点領域のような特性を持つ画像を入力したときの、該当領域の画像符号化データである。一方でJPEG2000は、8×8画素ブロックを単位とした周期が画像中にある場合、ある所定の条件で符号化すると、周期性による冗長性を効率的に除去することができる。そのため、JPEGに比べて冗長性の発生を抑制できる。その符号化の条件と理由について、JPEG2000のアルゴリズム概要を基に説明する。
【0015】
図4は一般的なJPEG2000符号化装置のブロック図である。同図において、401は入力部、402は離散ウェーブレット変換部、403は量子化部、404はエントロピー符号化部、405は符号列形成部、406は出力部である。入力部401から画像データは、離散ウェーブレット変換部402へ供給される。離散ウェーブレット変換部402は、図5に示すように、複数の画素を用いて離散ウェーブレット変換を行う。ここで、離散ウェーブレット変換後のフレームデータ(離散ウェーブレット変換係数)は次式に従い算出される。
Y(2n) = X(2n)+floor{ (Y(2n-1)+Y(2n+1)+2)/4 }
Y(2n+1) = X(2n+1)-floor{ (X(2n)+X(2n+2))/2 } …(1)
ここで、Y(2n),Y(2n+1)は離散ウェーブレット変換係数列であり、Y(2n)は低周波サブバンド、Y(2n+1)は高周波サブバンドである。また、上記変換式(1)においてfloor{X}はXを超えない最大の整数値を表す。この離散ウェーブレット変換を模式的に表わしたのが図5である。
【0016】
上記変換式(1)は一次元のデータに対するものであるが、この変換を水平方向、垂直方向の順に適用して二次元の変換を行うことにより、図6(a)に示す様なLL,HL,LH,HHの4つのサブバンドを得ることができる。ここで、Lは低周波サブバンド、Hは高周波サブバンドを示している。次にLLサブバンドに対して、同じ様にウェーブレット変換を行い、4つのサブバンドを生成し(図6(b))、その中のLLサブバンドを更に4つのサブバンドに分ける(図6(c))。このようにして合計10のサブバンドを作る。10個のサブバンドそれぞれを、図6(c)の様にHH1,HL1,…と呼ぶ。ここで、各サブバンドの名称における数字は、それぞれのサブバンドのレベルを示す。つまり、レベル1のサブバンドは、HL1,HH1,LH1である。また、レベル2のサブバンドは、HL2,HH2,LH2である。レベル3のサブバンドは、HL3,HH3,LH3である。なおLLサブバンドは、レベル0のサブバンドである。また、LLサブバンドは一つしかないので一般には添字を付けない。またレベル0からレベルnまでのサブバンドを復号することで得られる復号画像を、レベルnの復号画像と呼ぶ。復号画像は、そのレベルが高い程解像度は高い。10個のサブバンドの変換係数は、一旦バッファ304に格納され、LL,HL1,LH1,HH1,HL2,LH2,HH2,HL3,LH3,HH3の順に、つまり、レベルが低いサブバンドからレベルが高いサブバンドの順に、係数量子化部403へ出力される。なお、上記の例では、分割回数(ウェーブレット変換の適用回数)が「3」の場合であるが、この回数に制限はない。
【0017】
係数量子化部403では、各サブバンドの変換係数を各周波数成分毎に定めた量子化ステップで量子化し、量子化後の値(係数量子化値)をエントロピー符号化部404へ出力する。量子化方法の詳細については、本発明の本質ではないので説明を割愛する。量子化された係数(係数量子化値)はエントロピー符号化部404へ出力される。
【0018】
エントロピー符号化部404は、入力された係数量子化値をエントロピー符号化する。ここでは、まず、図7に示すように、入力された係数量子化値の集まりである各サブバンドが矩形(「コードブロック」と呼ぶ。)に分割される。本実施の形態においては、コードブロックサイズを16×16とする。次いで、コードブロック内の係数をビットプレーンに分割し、上位ビットプレーンから順に2値算術符号化を行い、エントロピー符号化データを生成する。以上が、JPEG2000における符号化のアルゴリズムである。
【0019】
続いて先述、8×8画素ブロック(JPEGの符号化単位)の周期を有する画像における、当該冗長性の除去に関する説明に移る。
【0020】
図5と(1)式は離散ウェーブレット変換の説明であるが、離散ウェーブレット変換の特徴として、1次元方向で1回変換を行うと、低周波成分及び高周波成分それぞれの係数の個数は、入力画像の画素数の半分になる。2回変換を行うと、そこで得られる低周波成分及び高周波成分の係数の個数は入力画像の画素数の1/4となる。3回変換を行うと、1/8になる。つまり、離散ウェーブレット変換を3回行うと、入力画像中の8画素につき、低周波成分,高周波成分それぞれについて1個の係数が生成されると言える。また、伸長画像には8画素から構成される周期が存在するため、各周期から1係数が生成される。さらに各係数は、同一の周期から生成されているため、同じ値になる。つまり、離散ウェーブレット変換を3回行なうと、低周波成分と高周波成分の各サブバンドには同じ値が連続し、サブバンド内は平坦な領域(平坦領域)となる。平坦領域に対して、2値算術符号化は非常に高効率な圧縮を行うことができる。これが、JPEG2000符号化では、8画素周期の画像に対して冗長性を削除する理由である。
【0021】
また先述のとおり本実施形態においては、2値算術符号化は16×16サイズのコードブロックを単位に実行する。式(1)と図8から、離散ウェーブレット変換の変換数(n)と、n回目の変換で得られた高周波成分と低周波成分の生成に必要となる画素数の関係は、図9のようになる。同図から、3回目の離散ウェーブレット変換で得られた低周波成分と高周波成分における16成分に必要な画素数は、149画素、141画素である。つまり、16×16サイズのコードブロックを単位として2値算術符号化を行った場合、高周波成分については141×141画素、低周波成分については149×149画素を単位として符号化したこととおおよそ同等となる。JPEGでは8×8画素を単位として符号化を行うことに比べて、より広い領域で冗長性を除去することができる。
【0022】
ここまでの議論をまとめると、入力画像に8×8画素の周期がある場合、JPEGに比べてJPEG2000は効率的に冗長性を除去することができる。その理由は2つあり1つ目は、JPEG2000では画像中の8×8画素の周期の画像は、平坦領域として表現される。その上で、効率的なエントロピー符号化方式で圧縮する。2つ目は、JPEGに比べて広い領域を単位として符号化する点である。
【0023】
続いて、辞書型符号化のアルゴリズムの概念について説明する。そして、その上で、JPEG符号化データに対して辞書型の符号化方式を適用し、生成された符号量を再圧縮時の目標符号量に設定することの妥当性について説明する。
【0024】
画像,音声,文書などの何らかの意味あるデジタルデータは、データ値が無秩序に並んでいることはなく、よく似たパターンの並び方が頻繁に現れる。すなわち、データ値の並び方(データパターン)を見つけて、データ値の並びより短いコードを与えて出力することで、元よりも少ないデータ量で情報を表現することができる。このデータパターンと、それに対応するコード値を管理している情報を、一般に「辞書」と呼び、辞書を構築しつつ、その辞書を参照して行う符号化方法を辞書型符号化と言う。以下では、辞書型符号化アルゴリズムの一例の処理概略について説明する。
【0025】
図10は処理フローを示したフローチャートである。また、図11(a)は符号化対象のデータの例を、図11(b)は辞書メモリの例を示している。図10において、符号化の処理が開始すると初期化を行う(ステップS1001)。初期化とは、処理対象データの入力、メモリ内に辞書メモリの確保、最大一致長の設定である。ここの説明では、処理対象データとして図11(a)を、辞書メモリについては同図(b)のように4バイトを想定する。ここで4バイトとしたのは説明の都合であり、実装形態に応じて適宜変更することは可能である。最大一致長とは、符号化処理において許される、同一データパターンの長さ(一致長)の最大値であり、本辞書型符号化方式では固定長で一致長を表すため必要となる。次に、一致するデータパターンを辞書メモリ中から検索する(ステップS1002)。このとき、一致する長さ(一致長)が上限値に達した場合には、その時点で検索を打ち切る。また、一致するデータパターンが複数あるときには、それらをすべて求める。もし一致するデータパターンがなかった場合には(ステップS1003でNo)、一致パターンの有無を示す情報(フラグ)として“0”を出力し(ステップS1004)、1文字をハフマン符号化した上で出力する(ステップS1005)。その上で、処理をステップS1008へ進める。一方で一致するデータパターンが見つかった場合には(ステップS1003でYes)、フラグとして“1”を出力する(ステップS1006)。そして、検索した中から最も一致長が長いデータパターンの辞書中の位置と長さ(ポイント情報)を求めて出力する(ステップS1007)。次に、処理を行ったデータ列を辞書の末尾に追加する(ステップS1008)。もし、これにより辞書のデータ長を超えてしまう場合、先頭部分を削除して、辞書メモリに収まるようにする。そして、処理すべきデータが残っているかどうかを判断して(ステップS1009)、もしデータが残っていなければ(ステップS1009でNo)、処理を終える。一方で、データが残っていれば(ステップS1009でYes)、処理をステップS1002へ戻す。参考までに、具体的なデータを使った説明を図12にまとめた。
【0026】
説明のとおり、辞書型符号化方式はデータパターンの繰り返しによる冗長性を除去する。このため、JPEG符号化データに適用すると、図3(b),(c)のような、画像中の冗長性に起因するJPEG符号化データ内の冗長性を削除することができることが理解できよう。しかし、JPEG符号化データに辞書型符号化を適用して得られた符号量を再圧縮時の目標符号量として用いるには、考慮すべきことが1つある。それは、JPEG2000ではある所定の範囲で画像中の冗長性を除去するが、辞書型符号化はその範囲以上の空間的冗長性を除去してしまう点である。具体的には、先ほどのJPEG2000の説明では、低周波成分については149画素単位で冗長性を削除できると述べたが、辞書型符号化ではそれ以上の冗長性が存在すれば削除する。つまり、辞書型符号化で得られた符号量を目安に再圧縮すると、冗長性以外の、画質に影響を与える本質的な情報を量子化により削除してしまうことになる。この問題に対しては、JPEG2000により冗長性を削除可能な範囲を符号化し、符号化後に辞書メモリをリセットすることで対応可能である。しかし、JPEGでは8×8画素ブロックは可変長で符号化されるため、JPEG符号化データの中の繰り返しの1周期に含まれる8×8画素ブロック数を知ることはできない。一例として、1周期に8×8画素ブロックが1つ存在する場合と、1周期に8×8画素ブロックが8つ存在する場合を示している。このため、149画素に相当する周期数を導くこともできない。ただ必要以上に冗長性を除去することは避ける必要があり、本実施形態では1周期に含まれる8×8画素ブロック数を4個と仮定する。つまり1周期に含まれる画素数を32個とし、149画素を超えない最大の周期数は4であり、辞書型符号化の過程で連続する同一周期を4つ検知したら、辞書メモリをリセットする。
【0027】
なお、JPEG符号化データ中にはラスタースキャン順で8×8画素ブロックの符号化データが並んでおり、辞書型符号化はJPEG符号化データを先頭から後尾に向かって順に符号化する。このため2次元方向で冗長性を削除できず、JPEG2000と比べて削除できる冗長性は少なくならざるを得ない。これに関し、本発明の目的はあくまで再圧縮時の目標符号量の「目安」を求めることであり、冗長性を削除する範囲の次元数の差は目的を達成する上で大きな問題にはならないと考える。
【0028】
[第1の実施形態]
以下、上記の説明に基づく、本発明に係る実施形態を詳細に説明する。
【0029】
図1は、本第1の実施形態に係る画像符号化装置のブロック構成図である。図1に示すように、本実施形態の画像符号化装置は、符号データ入力部101、冗長性推定部102、レンジ特定部103、目標符号量決定部104、復号部105、及び、第2の符号化部106、符号出力部107を有する。同図において、符号データ入力部101はJPEG符号化データを入力し、それを冗長性推定部102へ出力する。冗長性推定部102では、前述のとおり、冗長性を判定し、その判定結果をレンジ特定部103に出力する。そして、レンジ特定部103は、目標符号量として設定可能な許容レンジを決定する(そのレンジを特定できれば良いので、レンジの上限値と下限値とを決定する)。そして、目標符号量決定部104は、決定した許容レンジ内の1つの符号量を選択し、その選択した符号量を最終的な目標符号量として第2の符号化部106に設定する。
【0030】
図14は冗長性推定部102の処理フローである。本処理フローは、先だって説明した図10をベースとしている。また図2は、冗長性推定部102のブロック図である。
【0031】
図2,図14において、画像符号化データ入力部201にJPEG符号化データが入力されると、制御部209は初期化処理を行う(ステップS1401)。初期化とは、処理対象データの入力、辞書メモリの確保、最大一致長の設定、さらにデータパターンの繰り返しをカウントするカウンタ204の初期化である。カウンタ204の初期化については、1を設定する(count=1)。本実施の形態においては、辞書メモリとして1024バイトを、最大一致長としては256個を想定する。次に、同一文字列検知部203において、一致するデータパターンを辞書メモリ中から検索する(ステップS1402)。このとき、一致する長さ(一致長)が上限値(256)に達した場合には、その時点で検索を打ち切る。また、一致するデータパターンが複数あるときには、それらをすべて求める。もし一致するデータパターンがなかった場合には(ステップS1403でNo)、一致パターンの有無を示す情報(フラグ)として“0”を出力する(ステップS1404)。さらに、ハフマン符号化部208で1文字をハフマン符号化した上で出力する(ステップS1405)。そして処理をステップS1411へ進める。なお出力先はバッファ206であり、以降生成された符号はすべて同バッファへ出力されるものとする。一方で一致するデータパターンが見つかった場合には(ステップS1403でYes)、フラグとして“1”を出力する(ステップS1406)。そしてその上で、検索した中から最も一致長が長いデータパターンの辞書中の位置と長さ(ポイント情報)を求めて出力する(ステップS1407)。次に、ポイント情報を出力したデータパターンが連続して繰り返しているかどうか判断し(ステップS1408)、もし繰り返していない場合には(ステップS1408でNo)、カウンタ204の値を1へリセットする(ステップS1415)。次いで処理を行ったデータ列を辞書メモリ202の末尾に追加する(ステップS1411)。そして、処理をステップS1414へ進める。一方ステップS1408で繰り返している場合、カウンタをインクリメントする。繰り返している場合の具体的な例は、図15のとおりである。次いで、カウンタが4と等しいかどうか判断する(ステップS1410)。等しくない場合には(ステップS1410でNo)、処理をステップS1414へ進める。もし等しい場合には(ステップS1410でYes)、後段のJPEG2000による再圧縮で、これ以上の繰り返しの冗長性を削除することはできないと判断する。その上で、注目する周期の冗長性を削除しないように辞書データをリセットする(ステップS1412)。具体的には、辞書データ中の追記位置を示すポインタを先頭に戻す。さらにカウンタをリセットし(ステップS1413)、処理をステップS1414へ進める。ステップS1414では、JPEG符号化データ中の未処理のデータが残っているかどうかを判断し、残っている場合には(ステップS1414でYes)、処理をS1402へ戻す。そうでない場合には(ステップS1414でNo)、符号長算出部205はバッファ中に蓄積された辞書型符号化データの符号長を算出し(ステップS1416)、算出した符号長をレンジ特定部103に出力し、終了する。

以上が第1の実施形態における冗長性推定部102の説明であるが、変形例として、再圧縮時における冗長性の削除に対する推定の精度を落として、辞書型符号化の処理の軽減を図る方法がある。具体的には、再圧縮時に冗長性を除去できる空間的な範囲を想定して、辞書データをリセットする作業を省く。例えば、辞書型符号化の概念を説明したときに用いた、図10の方法等である。このアプローチによるメリットとしては、処理の軽減だけではなく、ZIPやLZHなどで使える既存の辞書型ソフトにより実現できるため、新たに実装する作業負荷を減らせる点がある。他にも、本発明の手法を実装する画像処理装置に他の用途で搭載されていれば、そもそも当該ソフトを新たに組み込む作業を省くことができる。
【0032】
また別な変形例として、JPEG符号化データ中のヘッダ情報の冗長性については、伸長画像中の冗長性とは関連しないので、ヘッダには辞書型符号化を適用しない方法が考えられる。
【0033】
さて、レンジ特定部103は、冗長性推定部102で生成された推定結果に基づいて、目標符号量の設定範囲(レンジ)を特定する。本第1の実施形態では、説明を簡単にするため、冗長性推定部102では既存のZIP圧縮を用いて再圧縮の際の符号長を推定した結果を使用する例について述べる。
【0034】
具体的には、冗長性推定部102において算出されたZIP圧縮の符号長を受け取り、それを目標符号量の設定範囲(レンジ)の上限値Rmaxとする。
【0035】
本実施形態では、上限値RmaxをZIP圧縮結果の符号長としたが、経験や実験データから、ある程度の誤差を持たせた方がいいような場合もある。例えば、JPEG符号化データをZIP圧縮して、必ずしもJPEG符号化データの符号長よりも、小さくなるとは限らない。そのため、ZIP圧縮した符号長とJPEG符号化データの符号長を比較し、JPEG符号化データの方が小さい場合には、JPEG符号化データの符号長をレンジの上限値Rmaxとしても構わない。他にもZIP圧縮の符号長をそのままレンジの上限値Rmaxとして設定しない方が良い画像であると判断した場合には、符号長から誤差数%の範囲を目安としても良い。
【0036】
先に述べたとおり、本実施形態では説明を簡易にするため、ZIP圧縮データのデータ量に基づいてレンジを特定する方法の説明を行ったが、冗長性推定部102で説明を行った方法で符号長を算出し、その符号長をレンジの上限値Rmaxとして良い。更に、その符号長の数%の範囲内の値をレンジの上限値Rmaxとしてもよい。つまり、冗長性推定部102から出力される符号長を目安にして、レンジの上限値Rmaxを特定する。
【0037】
上記方法によれば、入力されたJPEG符号化データを伸張した復号画像に対してJPEG2000で再符号化を行う際に、目標符号量の設定範囲の上限値を特定することが可能である。そうすることで、入力の符号化データと同等の画質を保持しつつ、再符号化により余計な符号量を発生させることがない。
【0038】
一方、目標符号量の設定範囲(レンジ)の下限値Rminは、符号化データの復号画像サイズに対して0.2%(1/500)など任意の固定値を設定する。但し、上限値が復号画像サイズに対して0.2%よりも小さければ、下限値Rmin=上限値Rmaxとする、または、下限値の設定は行わず、必ず上限値Rmaxを目標符号量として再符号化を行うものとする。任意の固定値は、レンジの上限値Rmaxよりも小さい符号量であればよい。
【0039】
以上の方法で下限値Rmin設定することで、JPEGの復号処理やJPEG2000の再符号化処理を行うよりも早いタイミングで目標符号量の設定範囲を特定することが可能となる。再符号化に係る時間を無視しても良いのであれば、以下に説明を行う方法で精度よく下限値を特定することも可能である。
【0040】
まず、再符号化対象の符号化データから得られるオリジナルの解像度よりも低解像度な画像を操作者(ユーザ)に提示し、複数の解像度の画像の中からユーザの考える最低解像度を選択できるようにする。そうすることでオリジナル解像度の何分の1の解像度がユーザにとって許容できる画質であるかがわかる。
【0041】
ユーザの許容できる解像度がオリジナルの何分の1であるか決定した後に、ターゲットとなる解像度の画像と同等かそれ以上の画質を得ることが可能な目標符号量を推定する2つの方法について以下に説明を行う。
【0042】
まず、1つ目の方法は、再符号化する第2の符号化手段としてJPEG2000を利用するため、JPEG2000で符号化した際のLLの符号量から目標符号量の設定範囲の下限値Rminを導出する方法である。JPEG2000では、離散ウェーブレット変換(DWT)により系列変換を行う。このDWTの回数によって、LLのサブバンドの解像度が変化する。DWT1回ではオリジナル画像の1/2の解像度(画素数は1/4)、2回では、1/2の解像度に対して1/2の解像度になるため、オリジナル解像度からすると1/4の解像度になる。DWT3回では更にその1/2の解像度になるため、1/8解像度(画素数は1/64)の画像が得られることになる。先に述べたような方法でユーザが許容できる解像度を選択した場合に、選択された解像度に合わせて、DWTの回数を変化させて、最低解像度と同じ解像度のLLの符号量を目標符号量の設定範囲の下限値Rminとする。
【0043】
但し、JPEG2000にはレート制御の際に、画質を保つため高解像度情報をなるべく残し、下位ビットのデータを切り捨てるような機能がある。そのため、LLの符号量をそのまま下限値として、その値を目標符号量としてJPEG2000で符号化すると、最低解像度として選択した解像度の画像よりも高解像度の画像が得られる可能性が高い。これを回避するためには、LLの中でも画質への影響度が低い下位ビットの情報を削った符号量に基づいて下限値Rminを特定するのが良い。
【0044】
2つ目の方法としては、入力の符号化データであるJPEG符号化データの中から、DC成分(直流成分)のみの符号量を参照し、目標符号量の設定範囲の下限値Rminを導出するものである。DC成分の情報は、8×8画素に対して1画素分の情報を持っている計算になるため、DC成分のみの符号化データを復号した場合には、オリジナル解像度に対して1/8の解像度(画素数は1/64)を得ることができる。ユーザが最低解像度として、オリジナルの1/8を選択した場合には、DC成分の符号量を目標符号量の下限値Rminとして設定すればよいと言える。ユーザが最低解像度として1/8以外を選択した場合には、DC成分の符号量に対してどの程度の割合を下限値とすればよいか推定を行う。方法としては、解像度が1/2(画素数が1/4)のとき圧縮率は約2倍になるという傾向から推定を行う。例えば、ユーザが最低解像度として1/16を選択した場合には、オリジナル解像度の1/8に対して、1/2の解像度であるため、DC成分の符号量の1/2の値を下限値Rminとする。逆に、最低解像度として1/4を選択した場合には、1/8の2倍の解像度であるため、DC成分の符号量の2倍の値を下限値Rminとすればよい。他の解像度が選択された場合にも同様に下限値Rminが設定可能である。いずれの場合であっても、復号部105による復号処理で、DC成分の符号量が判明することになるので、それをパラメータの1つとして下限値Rminを決定する。但し、DC成分の符号量に対して、2倍や4倍を掛ける場合には、上限値Rmaxを超えないように制御を行う必要がある。2倍や4倍にした時点で上限値を超えていればRmax以下の値をRminに設定する。もしくは、異なる複数の解像度画像をユーザに提示する段階で制御を行う。最低解像度をユーザに提示する段階で制御を行う場合には、提示する前に入力の符号化データを解析してDC成分の符号量を取得する必要があるため、提示するまでに時間が少しかかってしまう。しかしながら、ユーザの選択した解像度の画質よりも低画質になってしまう可能性を回避するためには、上限値よりも必ず小さくなるような解像度の画像のみを提示する方がよいと考えられる。
【0045】
また、JPEGの符号量とJPEG2000の符号量が同じであっても、JPEGで符号化する場合よりもJPEG2000で符号化をする場合の方が、高圧縮時の画質が良いように制御が行われる。これは、JPEG2000のレート制御機能においてレートと歪み(RD)の最適化を行う際に、特定の符号量に対して、視覚的に劣化の目立つような情報を優先的に残すような仕組みがあるためである。具体的には、JPEGでは75dpiの解像度情報しか持てないような符号量であっても、JPEG2000では劣化として視認しやすい解像度情報を保持できるように、劣化として視認し難い下位ビットの情報を削るなどする。以上のことから、単純にDC成分の符号量を下限値Rminとするよりも、DC成分の符号量よりも少し小さい値を設定する方が、75dpi画像に近い画質の画像が得られると考えられる。設定する値としては、DC成分の符号量に対して1未満の係数(例えば0.7)を乗算した値を下限値Rminとする。なお、一律に固定係数を乗算するのではなく、画像の特性に応じてその値を変更するような方法でも構わない。例えば、画像中の画素値の平坦な(画素値変化のない)領域の割合を求めることが可能であれば、その割合から冗長な符号の割合を算出して余分な符号を差し引いた符号量を設定しても良い。
【0046】
更に、DC成分の符号について、ZIP圧縮を施した場合の符号量を下限値Rminとして設定してもよい。これは、ZIP圧縮を施すことで、目標符号量の上限値Rmaxを特定する場合と同じ理由で、DC成分の符号化データの冗長性を省くことが可能であり、JPEG2000で再符号化する際に指定する下限値として有効であると言える。
【0047】
1つ目の方法の場合は、JPEGの復号処理とJPEG2000でのLLの符号化処理は必要となるが、復号画像全体を再符号化する処理と比較して、早い段階で目標符号量の下限値を特定可能である。また、JPEG2000の符号化データの一部を用いて下限値の推定を行うために、精度良く最低解像度の符号量を推定することが可能である。
【0048】
2つ目の方法の場合は、入力のJPEG符号化データを解析してDC成分の符号量を取得することで下限値を推定することができるため、JPEG2000で再符号化を行うよりも早いタイミングで目標符号量の範囲を特定することが可能である。
【0049】
これら2つの方法は、どちらか一方の方法で推定を行っても構わないが、2つの方法を場合によって切り替えて実施しても構わない。便宜上、JPEG2000のLLの符号量に基づいて下限値を推定する方法を「モード1」、JPEGのDC成分の符号量に基づいて下限値を推定する方法を「モード2」として説明を行う。「モード1」は精度を求められるような場合に選択し、「モード2」は早い段階で目標符号量の設定範囲を特定する必要のある場合に選択すればよい。具体的には、JPEG符号化データを解析して、量子化ステップからクオリティが低い(低画質である)と判明した場合や、上限値が画像サイズの1%よりも小さい値(高圧縮)の場合、上限値RmaxとDC成分の符号量の値が近い値になると予想される。そのため、DC成分を2倍や4倍にしてしまうと上限値を超えてしまう可能性が高い。この場合には「モード1」を選択することで、1/2や1/4の解像度がユーザに選択されても精度よく下限値を推定することが可能である。なお、量子化ステップからクオリティが低い(低画質である)か否かは、JPEG符号化データのヘッダに格納されている量子化ステップの値と、予め設定された閾値とを比較し、その閾値よりも大きい場合に低画質であると判断し、閾値以下の場合には高画質と判断すればよい。また、逆の場合には、モード2を選択することとなる。なお、同時に別の処理を行う(コンカレント動作)場合には、再符号化処理のみに全てのリソースを割り当てられないため、レンジの特定に時間を掛けず、処理負荷の軽い「モード2」により下限値を推定する。
【0050】
なお、1頁毎の処理について説明を行ったが、再符号化対象の符号化データが複数頁の場合には、1頁目の符号化データに対してのみ、解像度変換を行った画像をユーザに提示してもよい。この場合、2頁目以降の画像に対しては、同じ解像度の画像をユーザの許容できる画質であると判断できる。こうすることで全頁に対して解像度変換を行った画像を生成する必要がなくなり、効率良く目標符号量の設定範囲を特定することが可能となる。
【0051】
本実施形態では、ユーザに許容できる画質が何分の1の解像度であるか選択する例について説明を行ったが、場合によっては装置内部で固定の解像度を設定しても構わない。入力の解像度が決まっている装置であったり、入力解像度がわかるような装置では、最低解像度は何dpiであるか固定に決めることが可能である。こういった場合には、最低解像度として75dpiを画質の許容限界であると決めてしまってもよいと考えられる。これは、8〜10.5ポイント程度の小ポイント文字も読むことができる限界の解像度であると言えるためである。
【0052】
レンジ特定部103は以上の方法で特定した目標符号量の設定範囲(レンジ)の上限値Rmaxと下限値Rminを決定し、目標符号量決定部104にそれを出力する。目標符号量決定部104は、レンジ特定部103で特定した目標符号量の設定範囲(上限値Rmaxと下限値Rmin)を取得すると共に、通信路を介して装置外部から設定情報(圧縮パラメータ)を取得する。通信路を介して取得する圧縮パラメータは、装置を使用するユーザが設定しても良いし、外部の装置から供給される情報を取得しても構わない。本実施形態においては、ユーザがパラメータを指定する例について説明を行う。
【0053】
本実施形態において圧縮パラメータとは、圧縮率や画質など再符号化するときのデータ量に関わる圧縮情報のことを言う。
【0054】
図18は、目標符号量決定部104の処理の流れを示すフローチャートである。以下、同図を参照して、目標符号量決定部104の具体的な処理の流れについて説明する。
【0055】
まず、ステップS1801において、レンジ特定部103で特定された目標符号量の上限値Rmaxと下限値Rminを取得する。次いで、ステップS1802において、目標符号量の設定範囲を、画像符号化装置のユーザが設定した範囲に反映させる。これは、ユーザが設定する範囲の最大値にRmaxを割り当て、ユーザが設定する範囲の最小値にRminを割り当てる処理である。例えば、Rmax、Rminは具体的な数値であるので、その数値自信は人間にとってはわかりにくい。一方、[最低画質−最高画質]間で任意に設定できるものとすると、人間には分かりやすい。そこで、「最高画質」に対してRmaxを割り当て、「最低画質」にRminを割り当て、その範囲内であればユーザに自由に選択できるようにする。なお、ここでは「画質」を例にしたが、[圧縮率高−圧縮率低]等でも良いし、例えば1乃至5の5段階で決めるなら段階“1”にRmin、段階“5”にRmaxを割り当てる等でも構わない。
【0056】
ステップS1803は、ステップS1802で設定した範囲内の1つの値(パラメータ)を指定する。本実施形態では、外部からユーザがパラメータを指定する場合の具体例について説明を行う。
【0057】
例えば、表示デバイスには画質や符号量の程度を選択するような3つのラジオボタンを用意して、ユーザが選択できるような仕組みを設ける。このとき、画質を表示する場合には、「最高画質」を選択すると、符号量の上限値Rmaxが目標符号量として設定され、「最低画質」を選択すると、符号量の下限値Rminが目標符号量として設定される。画質の中間値を選択すると、上限値Rmaxと下限値Rminの中間値が目標符号量として設定される。但し、上限値や下限値以外の値に関しては、再圧縮に用いる符号化方式の符号量(レート)と画質(歪み)の関係を考慮して設定しても構わない。レートと歪みの関係が線形に変化するものであると特定できれば、中間値は符号量の中間値を取ることで設定するのは簡単であるが、線形でない場合がほとんどである。線形でない場合に、レートと歪みの関係として、符号量が上限値に近いほど歪みの変化がなだらかであり、下限値に近いほど歪みの変化が急であるような例で考えるとする。その場合には、中間値は中間の符号量を設定するよりも、下限値寄りの符号量を選択する方が好ましいと言える。
【0058】
上記のような方法で、上限値Rmaxと下限値Rminの範囲から、ユーザに目標符号量を決定させることができる(ステップS1804)。
【0059】
具体的には、上記の通り、高画質/中画質/低画質の3段階のパラメータのうちいずれかを選択するようなユーザインタフェースが考えられる。例えば、図19(a)に示すようなGUI(Graphic User Interface)を設け、ラジオボタンで高画質/中画質/低画質のうちの1つのパラメータを選択可能なようにする。いずれかをユーザが選択した際に、レンジ特定部103から取得した目標符号量の選択範囲の中から、指定された目標符号量を表示する。本実施形態において、高画質の場合にはレンジ特定部103で取得した符号量の上限値Rmaxの値を表示し、低画質が選択された場合には、符号量の下限値Rminの値を表示する。また、中画質が選択された場合には、RmaxとRminの中間値を表示するものとする。具体的な値の例で示すと、符号量の上限値Rmaxが10MByte、下限値Rminが1MByteであった場合には、ユーザによって高画質が選択されると「10MByte」とユーザインタフェースに表示される。ユーザによって低画質が選択されると「1MByte」と表示され、中圧縮が選択されると「5MByte」と表示される。先に説明した通り、本実施形態においては、説明を簡単にするために中圧縮が選択された場合にRmaxとRminの中間値「5Mbyte」を選択する方法の説明を行った。しかしながら、符号量と画質変化の関係は必ずしも線形であるとは限らないため、必ず中間値を選択するわけではない。
【0060】
以上の方法により、ユーザが圧縮パラメータの中から1つのパラメータを選択することにより、目標符号量の設定範囲の中から目標符号量が決定される。
【0061】
なお、パラメータの指定方法として、上記ではラジオボタンを使って3段階の画質(高画質、中画質、低画質)の選択を行う例について説明を行ったが、これに限らない。
【0062】
例えば、同じくラジオボタンを使用する場合には、3段階ではなく2段階の画質選択でも良いし、3段階よりも多くの段階を設定可能なように設計しても構わない。また、図19(b)に示すようなスライダー・バーを使用して、目標符号量の上限値Rmaxと下限値Rminの間の値を自由に選択できるような方法でも構わない。これが図19(c)のようなダイアル式でも同様の設定が可能である。
【0063】
また、表示したパラメータから値を選択するような形式のユーザインタフェースではなく、受け取った目標符号量の設定範囲を表示して、ユーザが設定可能な範囲内の目標符号量を入力できるようなインタフェースを設けることも可能である。
【0064】
つまりは、レンジ特定部103から取得した目標符号量の設定範囲(上限値Rmaxと下限値Rminの間の値)の中から、再符号化する際の目標符号量を特定できるような圧縮情報を取得する必要がある。そのために圧縮率や画質などの所定の値を選択もしくは入力できるようなユーザインタフェースを設けていればよい。
【0065】
更に、目標符号量の上限値と下限値を設定してその範囲内をユーザが選択可能なようにGUIを作成するとしたが、範囲外の値を設定しようと思えば、設定可能になるような形式にしておいてもよい。
【0066】
例えば、スイッチやボタンなどで、範囲外を設定可能にするかどうかをユーザに選択させても良い。また、スライダー・バーがレンジの上限値と下限値の間をパラメータ設定値の推奨範囲として選択可能になっているが、範囲外の方へスライドさせれば、上限値よりも大きな値や下限値よりも小さな値を設定できるなどのGUIを用意しておいても構わない。但し、設定範囲外の値を設定する場合の、符号量や画質に関しては保証の範ちゅうではないことを表示する必要がある。
【0067】
さて、目標符号量決定部104は、ステップS1804にて目標符号量を決定すると、ステップS1805にてその決定した目標符号量を第2の符号化部106に設定する。
【0068】
復号部105は、符号データ入力部101に入力されたJPEG符号データを復号し、生成された復号画像データを出力する。そして。第2の符号化部106は、復号部105から出力された復号画像データを第2の符号化方式で符号化する。このとき、第2の符号化方式を行う際に符号化レート指定を行うが、指定する符号化レートは、目標符号量決定部104で決定された目標符号量を使用する。
【0069】
本実施形態において、第2の符号化方式はJPEG2000を用いるものとしている。JPEG2000では、任意の符号化レートで符号化できる機能が備わっている。そのため、目標符号量決定部104で決定された目標符号量を符号化レートとして指定して、符号化を行えば1度で指定レートでの符号化データを取得することが可能である。具体的には、ウェーブレット変換で得られた各サブバンドを、ビットプレーン単位に算術符号化するものであるので、最下位のビットプレーンの符号化データから上位に向かう順に破棄していき、最初に目標符号量と同じ、或いは、それを下回ると判断されたところで、破棄する処理を終了し、残った符号化データを出力すればよい。
【0070】
JPEG2000では、圧縮後の符号化レートと歪みの最適化が行われるため、指定した符号化レートで歪みの最小となる画質の符号化データを取得することができるものとする。また、符号化処理速度を優先するために、レートと歪みの関係が必ずしも最適にならない場合もあるが、その誤差は許容できるものとする。
【0071】
符号出力部109は、第2の符号化部106から出力されるJPEG2000の符号列を装置外部へ出力する。
【0072】
なお、本実施形態では、所定数の画素で構成される画素ブロックを単位とする第1の符号化アルゴリズムをJPEGとした。また、その画素ブロックよりも大きいサイズのブロックを単位に符号化する、第2の符号化アルゴリズムをJPEG2000とした。そして、符号化データの冗長正を判断する第3の符号化アルゴリズムとして辞書型符号化を例にした。しかし、この符号化アルゴリズムの組みあせに限定されるものではない。例えば、第2の符号化アルゴリズムとしては、再圧縮の対象となる画像符号化データの符号化方式と比べて、画像の冗長性を削除できる符号化方式で再圧縮する方法であれば、本発明の範疇となる。例えば、国際標準規格のJPEG XRであっても構わない。これは以下に説明する変形例や第2の実施形態でも同様である。
【0073】
本実施形態の方法によると、復号画像を生成しなくても、早いタイミングで再符号化時の目標符号量の設定範囲を特定することが可能である。
【0074】
<変形例の説明>
上記実施形態では図1の構成に基づいて説明したが、上記実施形態と同等の処理をパーソナルコンピュータ(PC)等で実行するコンピュータプログラム(ソフトウェア)でもって実現させても構わない。
【0075】
図17はソフトウェアで実現する場合の装置(PC等)の基本構成を示す図である。
【0076】
図中、1701はCPUで、RAM1702やROM1703に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。1702はRAMで、外部記憶装置1707や記憶媒体ドライブ1708、若しくはI/F1709を介して外部装置からダウンロードされたプログラムやデータを記憶するため、及び、CPU1701が各種の処理を実行する際のワークエリアとして使用される。1703はROMで、ブートプログラムや本装置の設定プログラムやデータを格納する。1704、1705は夫々キーボード、マウス(登録商標)等のポインティングデバイスで、CPU1701に対して各種の指示を入力することができる。1706は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。1707は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置である。ここにOSや前述の画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどが保存されており、CPU1701による制御によって、これらのプログラムやデータはRAM1702上の所定のエリアにロードされる。1708は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記録されたプログラムやデータを読み出してRAM1702や外部記憶装置1707に出力するものである。なお、この記憶媒体に前述の画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。その場合、記憶媒体ドライブ1708は、CPU1701による制御によって、これらのプログラムやデータをRAM1702上の所定のエリアにロードする。1709はI/Fで、このI/F1709によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のRAM1702や外部記憶装置1707、あるいは記憶媒体ドライブ1708に入力することもできる。1410は上述の各部を繋ぐバスである。
【0077】
上記構成において、ソフトウェアでもって第1の実施形態と同様の処理を実現する場合、CPUは図1に示した各処理部に相当する機能を、ソフトウェア上の関数、サブルーチン等で実現することになる。また、符号化処理そのものは公知の技術を採用すればよく、その他の処理は既に説明した図1に示す手順に従えば良いので、説明するまでも無いであろう。
【0078】
[第2の実施形態]
第1の実施形態では、辞書式圧縮符号化技術としてZIP圧縮のデータ量を第2の符号化方式であるJPEG2000で符号化する際の、目標符号量の設定範囲を特定するために利用する例について説明を行った。
【0079】
ZIP圧縮のデータ量をJPEG2000で再符号化する際の上限値の目安として用いることはできるが、必ずしも入力されたJPEG画像と同等画質の画像が得られるとは限らない。
【0080】
そこで、本第2の実施形態では、再符号化時の目標符号量の設定範囲を特定するためにZIP圧縮の符号量を利用するだけでなく、「最高画質」が選択された場合には、必ずJPEG画質を保持しているZIP圧縮データ自体を出力するような例について説明を行う。
【0081】
なお、本実施形態においても、対象の入力符号化データは、JPEG 符号化方式で符号化されたデータであるものとし、JPEG符号化されていないオリジナル画像データは存在しないものとする。
【0082】
図13に本第2の実施形態に係る画像符号化装置のブロック図を示す。第1の実施形態で説明した図1のブロック図と異なる点は、再符号化処理部1300と出力データ判定制御部1301を追加した点である。これ以外のブロックの処理については、第1の実施形態と同じであるので、その説明は省略する。
【0083】
再符号化処理部1300は、復号部105と第2の符号化部106の2つのブロックを含む処理部である。
【0084】
出力データ判定制御部1301は、目標符号量決定部104から出力される目標符号量を受け取り、受け取った目標符号量によって再符号化処理部1300を動作させるか否かを判定する。
【0085】
図16は、出力データ判定制御部1301の具体的な処理の流れを示すフローチャートである。以下、同図を参照して再符号化処理部1300を動作させるか否かの判定の具体的な方法について説明する。
【0086】
まず、ステップS1601において、目標符号量決定部104(第1の実施形態と同じとする)で決定された目標符号量Sを取得する。次に、ステップS1602は、ステップS1601で取得した目標符号量Sと目標符号量の設定範囲の上限値Rmaxの比較を行う。比較の結果、目標符号量S=目標符号量の上限値Rmaxである場合(YES)には、ステップS1603へと処理を遷移させ、出力データ判定制御部1301から制御信号‘0’を出力する。一方、目標符号量S≠目標符号量の上限値Rmaxである場合(NO)には、ステップS1604へと処理を遷移させ、出力データ判定部1301から制御信号‘1’を出力する。出力データ判定制御部1301から出力される制御信号は、冗長性推定部102と再符号化処理部1300が受け取り、制御信号によって施される処理を変更する。
【0087】
出力判定制御部1301から制御信号‘0’が出力された場合(ステップS1603)には、冗長性推定部102に対し、ZIP圧縮データをそのまま出力するよう制御する。また、再符号化処理部1300の処理は実施しない(ステップS1605)ように制御する。一方、出力判定制御部1301から制御信号‘1’が出力された場合(ステップS1604)には、冗長性推定部102からZIP圧縮データを出力しないよう制御する。ステップS1603とは逆に、再符号化処理部1300の処理を実施するよう制御する。再符号化処理部1300の中の、復号部105と第2の符号化部106の処理内容については、第1の実施形態と変更がないため、ここでは詳細な説明を省略する。但し、第2の符号化部106が受け取る目標符号量の値Sは、符号量の上限値Rmax以外の値となることが言える。
【0088】
符号出力部107は、冗長性推定部102から出力されるZIP圧縮データか、第2の符号化部106から出力されるJPEG2000の符号化データのどちらかを取得し、取得した符号化データを装置外部へ出力する。
【0089】
上記方法によれば、第1の実施形態と同様に、早い段階で再符号化の際の目標符号量を特定できる点に加えて、入力の符号化データの画質を損なわず、入力のデータ量よりも小さい符号量のデータを取得することが可能である。
【0090】
[第3の実施形態]
第1の実施形態、第2の実施形態では、圧縮パラメータの設定は、画像符号化装置を使用するユーザが、画質や圧縮率を選択することによって目標符号量を設定する方法について説明を行った。本第3の実施形態では、再符号化を行った符号化データをネットワークを介して伝送する場合の通信路の帯域によって、再符号化時の圧縮パラメータを決定する例について説明を行う。
【0091】
ネットワークを介して、JPEG2000で再符号化を行った符号化データの出力を行うような画像符号化装置の場合に、ある程度の伝送速度を確保しようとすると、通信路の帯域を考慮して符号量を制御し符号化データを伝送させる必要がある。
【0092】
本第3の実施形態については、図1を用いて説明を行う。第1の実施形態と異なる点は、目標符号量決定部104の内部処理のみであるため、本実施形態における目標符号量決定部104の処理について以下に説明を行う。
【0093】
本第3の実施形態における目標符号量決定部104は、レンジ特定部103から、レンジの上限値Rmaxと下限値Rminを受け取るのに加えて、装置外部から通信路の帯域の情報を取得する。帯域の情報は、1秒間に転送されるビット量(bps)と、画像もしくは符号化データの伝送に使用していい比率を含む情報であるものとする。例えば、64Kbpsの帯域幅を持つ場合に、帯域の100%を画像もしくは画像符号化データの転送に使用していい場合には、A4サイズで解像度が600dpiの画像でデータ量が約100Mbyteであるので、伝送速度は1562.5秒かかる計算になる。この場合、画像を1/10圧縮した場合には約1/10、1/20圧縮した場合には約1/20の伝送速度となる。このため、取得する帯域幅の情報があれば、目標の速度で伝送するための目標符号量が算出できる。
【0094】
上記2つの情報に加えて、目標の伝送速度を含んでもよい。目標の伝送速度とは、伝送にかかる秒数でも良いし、復号画像を伝送するのに掛かる時間に対するパーセンテージ(○%)などの値でも構わない。また、目標の伝送速度を帯域幅の情報として取得できなくても、ユーザが目標の伝送速度を指定したり、固定値を装置に与えておくなど、方法は問わない。
【0095】
具体的に目標の伝送速度が1秒である場合について以下に説明する。例えば、符号化データの伝送に使用できる帯域が30Mbpsであるとき、A4サイズで解像度が600dpiの画像を伝送しようと思うと、100/30≒33秒となる。目標速度を達成するためには符号量を33MByteに設定する必要がある。33MByteとレンジ特定部103から出力されるレンジの上限値Rmaxと下限値Rminの比較を行い、レンジ内であれば33Mbyteを目標符号量であると決定する。一方、帯域の情報から算出した符号量がレンジ内でない場合で、Rmaxよりも大きければ上限値Rmaxを目標符号量とし、Rminよりも小さければ下限値Rminを目標符号量として設定する。算出された符号量が上限値Rmaxよりも大きい場合に目標符号量としてRmaxを設定したとしても画質を保持したまま余計な符号を発生させないことになるため問題にはならない。更に、Rmaxよりも算出した符号量が大きければ、第2の実施形態で説明した方法と同様に、ZIP圧縮したデータ自体を伝送するように制御しても構わない。一方、Rminを下回ってしまった場合には、伝送速度の低下が発生する可能性がある。しかしながら、画質を優先させる場合には、Rminの符号量を目標符号量として設定する。速度を必ず優先しなければならないような条件を与えられていれば、算出した値を目標符号量として設定する。この場合には、画質を保証することはできないことを表示するなどして、警告する必要がある。
【0096】
上記方法によれば、符号化データを伝送する帯域情報によって目標符号量を特定することが可能である。
【0097】
なお、上記の各実施形態では、辞書型符号化を用いて冗長性を判断する例を示したが、本発明はこれに限らず、再符号化の対象となる符号化データの冗長性を判断できれば辞書型符号化以外の公知の符号化技術を利用しても良い。
【0098】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
所定数の画素で構成される画素ブロックを単位とする第1の符号化アルゴリズムに従って符号化された符号化データを、再符号化する画像処理装置であって、
再符号化対象の符号化データを入力する入力手段と、
前記画素ブロックよりも大きいサイズのブロックを単位に符号化する、第2の符号化アルゴリズムに基づく第2の符号化手段と、
前記入力手段により入力した符号化データを、当該符号化データのまま、第3の符号化アルゴリズムに従って符号化することで得られた符号量から、前記第2の符号化手段に対する符号量の許容レンジを特定するレンジ特定手段と、
該レンジ特定手段で決定した前記レンジ内の1つの符号量を選択する選択手段と、
前記入力手段で入力した符号化データを復号し、前記第2の符号化手段を制御して、前記選択手段で選択した前記符号量の符号化データを生成させる制御手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記選択手段は、操作者の指示に従って選択することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記第1の符号化アルゴリズムはJPEG、第2の符号化アルゴリズムはJPEG2000又はJPEG XRであることを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記レンジ特定手段は、前記入力手段により入力した符号化データを、前記辞書型符号化アルゴリズムで符号化したときの符号量を前記レンジの上限値とし、
前記第2の符号化手段で符号化する際の高周波成分を除く低周波成分の符号化データのサイズ、或いは、前記入力した符号化データの直流成分のみの符号化データのサイズのいずれかを前記レンジの下限値として決定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記入力手段で入力した符号化データを解析し、当該符号化データを生成する際に用いた量子化ステップの値が、予め設定した閾値より大きいか否かを判定する判定手段を更に有し、
前記レンジ特定手段は、前記判定手段で量子化ステップの値が前記閾値より大きい場合、前記第2の符号化手段で符号化する際の高周波成分を除く低周波成分の符号化データのサイズを下限値として決定し、前記閾値以下の場合、前記入力した符号化データの直流成分のみの符号化データのサイズを前記レンジの下限値として決定することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
コンピュータが読み込み実行することで、前記コンピュータを、請求項1乃至5のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【請求項7】
請求項6に記載のプログラムを格納したことを特徴とするコンピュータが読み込み可能な記憶媒体。
【請求項8】
所定数の画素で構成される画素ブロックを単位とする第1の符号化アルゴリズムに従って符号化された符号化データを、再符号化する画像処理装置の制御方法であって、
入力手段が、再符号化対象の符号化データを入力する入力工程と、
第2の符号化手段が、前記画素ブロックよりも大きいサイズのブロックを単位に符号化する、第2の符号化アルゴリズムに基づく第2の符号化工程と、
レンジ特定手段が、前記入力工程により入力した符号化データを、当該符号化データのまま、第3の符号化アルゴリズムに従って符号化することで得られた符号量から、前記第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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−178736(P2012−178736A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−40839(P2011−40839)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】