(57)【要約】【課題】  所定画素数で構成される画素ブロックを符号化単位とする符号化データを、画質劣化を抑制しつつ、更に高い圧縮率で再符号化する。【解決手段】  符号化画像データ入力部１０１が８×８画素のブロックを符号化単位とするＪＰＥＧ符号化データを入力すると、冗長性推定部１０２はその符号化データのまま辞書型符号化アルゴリズムに従って符号化を行う。レンジ特定部１０３は、これによって得られた符号化データ量から第２の符号化部１０６の許容符号量のレンジの上限値と下限値とを特定する。そして、目標符号量決定部１０４は、このレンジ内の１つの符号量を目標符号量として決定する。第２の符号化部１０６は、決定した目標符号量の符号化データを生成する。【選択図】  図１
2012178736.tif 000002
【特許請求の範囲】
【請求項１】
所定数の画素で構成される画素ブロックを単位とする第１の符号化アルゴリズムに従って符号化された符号化データを、再符号化する画像処理装置であって、
再符号化対象の符号化データを入力する入力手段と、
前記画素ブロックよりも大きいサイズのブロックを単位に符号化する、第２の符号化アルゴリズムに基づく第２の符号化手段と、
前記入力手段により入力した符号化データを、当該符号化データのまま、第３の符号化アルゴリズムに従って符号化することで得られた符号量から、前記第２の符号化手段に対する符号量の許容レンジを特定するレンジ特定手段と、
該レンジ特定手段で決定した前記レンジ内の１つの符号量を選択する選択手段と、
前記入力手段で入力した符号化データを復号し、前記第２の符号化手段を制御して、前記選択手段で選択した前記符号量の符号化データを生成させる制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記選択手段は、操作者の指示に従って選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の符号化アルゴリズムはＪＰＥＧ、第２の符号化アルゴリズムはＪＰＥＧ２０００又はＪＰＥＧ  ＸＲであることを特徴とする請求項１又は２に記載の画像処理装置。    
【請求項４】
前記レンジ特定手段は、前記入力手段により入力した符号化データを、前記辞書型符号化アルゴリズムで符号化したときの符号量を前記レンジの上限値とし、
前記第２の符号化手段で符号化する際の高周波成分を除く低周波成分の符号化データのサイズ、或いは、前記入力した符号化データの直流成分のみの符号化データのサイズのいずれかを前記レンジの下限値として決定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記入力手段で入力した符号化データを解析し、当該符号化データを生成する際に用いた量子化ステップの値が、予め設定した閾値より大きいか否かを判定する判定手段を更に有し、
前記レンジ特定手段は、前記判定手段で量子化ステップの値が前記閾値より大きい場合、前記第２の符号化手段で符号化する際の高周波成分を除く低周波成分の符号化データのサイズを下限値として決定し、前記閾値以下の場合、前記入力した符号化データの直流成分のみの符号化データのサイズを前記レンジの下限値として決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
コンピュータが読み込み実行することで、前記コンピュータを、請求項１乃至５のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを格納したことを特徴とするコンピュータが読み込み可能な記憶媒体。
【請求項８】
所定数の画素で構成される画素ブロックを単位とする第１の符号化アルゴリズムに従って符号化された符号化データを、再符号化する画像処理装置の制御方法であって、
入力手段が、再符号化対象の符号化データを入力する入力工程と、
第２の符号化手段が、前記画素ブロックよりも大きいサイズのブロックを単位に符号化する、第２の符号化アルゴリズムに基づく第２の符号化工程と、
レンジ特定手段が、前記入力工程により入力した符号化データを、当該符号化データのまま、第３の符号化アルゴリズムに従って符号化することで得られた符号量から、前記第２の符号化工程に対する符号量の許容レンジを特定するレンジ特定工程と、
選択手段が、該レンジ特定工程で決定した前記レンジ内の１つの符号量を選択する選択工程と、
制御手段が、前記入力工程で入力した符号化データを復号し、前記第２の符号化工程を制御して、前記選択工程で選択した前記符号量の符号化データを生成させる制御工程と
を有することを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの符号化技術に関するものである。
【背景技術】
【０００２】
画像の伝送においては画像のデータ量を柔軟に変更できる、画像圧縮のレート制御機能が注目されている。これは画像圧縮されたデータ（画像符号化データ）を、復号することなく符号量を変更できる機能であり、画像符号化データを伝送するネットワークの帯域幅に応じたデータ量の変更が容易となる。この機能を持った画像圧縮としてＪＰＥＧ２０００等がある。
【０００３】
ＪＰＥＧ符号化データなどにはレート制御の機能がないため、これをいったん復号して、ＪＰＥＧ２０００等のレート制御機能を持つ符号化データへ変換し、再符号化が有効になる場合もある。例えば符号量を設定して再符号化する技術として、特許文献１等がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１６６４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
たとえば８×８画素単位で符号化を行うＪＰＥＧ符号化と、それより広い範囲を単位として符号化を行うＪＰＥＧ２０００符号化とでは、ＪＰＥＧ２０００の方が、より広い範囲で画像情報の冗長性を除去できる、もしくは除去できる可能性が高い。
【０００６】
本発明は上記点に鑑みてなされたものであり、所定画素数で構成される画素ブロックを符号化単位とする符号化データを、再符号化する際の目標符号量の設定範囲を特定可能にする技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
所定数の画素で構成される画素ブロックを単位とする第１の符号化アルゴリズムに従って符号化された符号化データを、再符号化する画像処理装置であって、
再符号化対象の符号化データを入力する入力手段と、
前記画素ブロックよりも大きいサイズのブロックを単位に符号化する、第２の符号化アルゴリズムに基づく第２の符号化手段と、
前記入力手段により入力した符号化データを、当該符号化データのまま、第３の符号化アルゴリズムに従って符号化することで得られた符号量から、前記第２の符号化手段に対する符号量の許容レンジを特定するレンジ特定手段と、
該レンジ特定手段で決定した前記レンジ内の１つの符号量を選択する選択手段と、
前記入力手段で入力した符号化データを復号し、前記第２の符号化手段を制御して、前記選択手段で選択した前記符号量の符号化データを生成させる制御手段とを備える。
【発明の効果】
【０００８】
本発明によれば、所定画素数で構成される画素ブロックを符号化単位とする符号化データを、再符号化する際の目標符号量の設定範囲を特定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像符号化装置のブロック図。
【図２】第１の実施形態における冗長性推定部のブロック図。
【図３】ＪＰＥＧ符号化データ中に発生する冗長性に関する説明図。
【図４】ＪＰＥＧ２０００の符号化方式のブロック図。
【図５】離散ウェーブレット変換の説明図。
【図６】離散ウェーブレット変換の説明図。
【図７】コードブロック分割の説明図。
【図８】離散ウェーブレット変換の説明図。
【図９】離散ウェーブレット変換における必要となる画素数の説明図。
【図１０】辞書型符号化方式の説明図。
【図１１】辞書型符号化が対象とする処理対象データ列と辞書メモリの例を示す図。
【図１２】辞書型符号化方式の処理の流れを示した図。
【図１３】第２の実施形態に係る画像符号化装置のブロック図。
【図１４】第１の実施の形態における辞書型符号化方式のフローチャート。
【図１５】第１の実施の形態における辞書型符号化方式の処理過程の説明図。
【図１６】第２の実施形態の出力データ判定制御部の処理の示すフローチャート。
【図１７】コンピュータプログラムで実現する場合の装置ブロック図。
【図１８】第１の実施形態における目標符号量決定部の処理を示すフローチャート。
【図１９】圧縮パラメータ設定ＧＵＩの一例を示す図。
【図２０】再圧縮時に発生する問題の説明図。
【図２１】ＰＳＮＲ算出において用いる画像の説明図。
【図２２】ＪＰＥＧ符号化データを辞書型符号化方式で圧縮したときの符号量の説明図。
【発明を実施するための形態】
【００１０】
本実施形態においては、再圧縮する際の問題と解決方法に関する。そして、再符号化対象をＪＰＥＧによる画像符号化データ（ＪＰＥＧ符号化データ）とし、それをＪＰＥＧ２０００に従って再圧縮する処理の例を説明する。
【００１１】
図２０は、入力画像に対して、量子化パラメータを設定してＪＰＥＧ符号化した結果（１点）と、ＪＰＥＧ符号化データの復号画像に対して、ＪＰＥＧ２０００の圧縮率に係るパラメータをいくつか設定して再圧縮した結果をトレースしたグラフである。なお、図２１に再圧縮の処理の概略を示しているが、ＪＰＥＧ２０００のＰＳＮＲの測定では、ＪＰＥＧ伸長画像ではなく原画像から見た画質に注目すべきであり、ＪＰＥＧ圧縮の対象となった原画像を用いている。図２０に示すように、Ｘ（ｂｐｐ）以上では、符号量を増やしても画質は向上しない。これは符号化対象がＪＰＥＧの伸長画像であり、その画像以上の画質を得ることはできないからである。換言すれば、ビットレートＸでＪＰＥＧ２０００に従って符号化すれば、画質劣化が発生しないまま、より高い圧縮率で符号化できることを意味する。しかし、このビットレートＸ（ｂｐｐ）を正確に知ることはできない。なぜなら、入力機器から得られた画像、パソコン等の編集ソフト等で生成された画像は圧縮されるが、原画像は残されているのは希だからである。例えば、デジタルカメラでは、撮影された画像はＪＰＥＧで圧縮されて保存されることは多いが、原画像に相当する画像については、必ず保存されるわけではない。このため、伸長画像の画質を保持できる最低の符号量を知ることができないケースが多い。
【００１２】
本実施形態においては、上記のＪＰＥＧ、ＪＰＥＧ２０００以外の第３の符号化アルゴリズム、すなわち、図２２で示したとおり、辞書型符号化方式でＪＰＥＧ符号化データを可逆圧縮する。そして、その結果、得られた符号量を、再圧縮時の目標符号量（目標ビットレートＸ）の目安とするものである。
【００１３】
まずＪＰＥＧ２０００を用いることで、画質を落とさずにＪＰＥＧ符号化より符号量を減らせる理由について説明する。そして、その後、ＪＰＥＧ符号化データに対して辞書型の符号化方式を適用し、生成された符号量は再圧縮時の目標符号量に設定することが妥当であるかを説明する。その上で、本実施形態の説明に入ることとする。
【００１４】
ＪＰＥＧ符号化方式（ＩＳＯ／ＩＥＣ  ＩＳ  １０９１８−１）は、その勧告書にも記されているが、入力された画像を８×８画素サイズのブロックに分割して、各ブロック単位にほぼ独立に符号化する。そのため、図３（ａ）で示したような輝度（或いは濃度）が平坦な領域の画像、或いは、８×８周期の網点領域を持つ画像を入力すると、各ブロックから同一の符号列が生成される。結果として、画像符号化データの中に、同一符号列の繰り返しによる冗長性が発生する。図３（ｂ），（ｃ）はそれぞれ、図３（ａ）の平坦領域と網点領域のような特性を持つ画像を入力したときの、該当領域の画像符号化データである。一方でＪＰＥＧ２０００は、８×８画素ブロックを単位とした周期が画像中にある場合、ある所定の条件で符号化すると、周期性による冗長性を効率的に除去することができる。そのため、ＪＰＥＧに比べて冗長性の発生を抑制できる。その符号化の条件と理由について、ＪＰＥＧ２０００のアルゴリズム概要を基に説明する。
【００１５】
図４は一般的なＪＰＥＧ２０００符号化装置のブロック図である。同図において、４０１は入力部、４０２は離散ウェーブレット変換部、４０３は量子化部、４０４はエントロピー符号化部、４０５は符号列形成部、４０６は出力部である。入力部４０１から画像データは、離散ウェーブレット変換部４０２へ供給される。離散ウェーブレット変換部４０２は、図５に示すように、複数の画素を用いて離散ウェーブレット変換を行う。ここで、離散ウェーブレット変換後のフレームデータ（離散ウェーブレット変換係数）は次式に従い算出される。
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 }      …（１）
ここで、Ｙ（２ｎ），Ｙ（２ｎ＋１）は離散ウェーブレット変換係数列であり、Ｙ（２ｎ）は低周波サブバンド、Ｙ（２ｎ＋１）は高周波サブバンドである。また、上記変換式（１）においてｆｌｏｏｒ｛Ｘ｝はＸを超えない最大の整数値を表す。この離散ウェーブレット変換を模式的に表わしたのが図５である。
【００１６】
上記変換式（１）は一次元のデータに対するものであるが、この変換を水平方向、垂直方向の順に適用して二次元の変換を行うことにより、図６（ａ）に示す様なＬＬ，ＨＬ，ＬＨ，ＨＨの４つのサブバンドを得ることができる。ここで、Ｌは低周波サブバンド、Ｈは高周波サブバンドを示している。次にＬＬサブバンドに対して、同じ様にウェーブレット変換を行い、４つのサブバンドを生成し（図６（ｂ））、その中のＬＬサブバンドを更に４つのサブバンドに分ける（図６（ｃ））。このようにして合計１０のサブバンドを作る。１０個のサブバンドそれぞれを、図６（ｃ）の様にＨＨ１，ＨＬ１，…と呼ぶ。ここで、各サブバンドの名称における数字は、それぞれのサブバンドのレベルを示す。つまり、レベル１のサブバンドは、ＨＬ１，ＨＨ１，ＬＨ１である。また、レベル２のサブバンドは、ＨＬ２，ＨＨ２，ＬＨ２である。レベル３のサブバンドは、ＨＬ３，ＨＨ３，ＬＨ３である。なおＬＬサブバンドは、レベル０のサブバンドである。また、ＬＬサブバンドは一つしかないので一般には添字を付けない。またレベル０からレベルｎまでのサブバンドを復号することで得られる復号画像を、レベルｎの復号画像と呼ぶ。復号画像は、そのレベルが高い程解像度は高い。１０個のサブバンドの変換係数は、一旦バッファ３０４に格納され、ＬＬ，ＨＬ１，ＬＨ１，ＨＨ１，ＨＬ２，ＬＨ２，ＨＨ２，ＨＬ３，ＬＨ３，ＨＨ３の順に、つまり、レベルが低いサブバンドからレベルが高いサブバンドの順に、係数量子化部４０３へ出力される。なお、上記の例では、分割回数（ウェーブレット変換の適用回数）が「３」の場合であるが、この回数に制限はない。
【００１７】
係数量子化部４０３では、各サブバンドの変換係数を各周波数成分毎に定めた量子化ステップで量子化し、量子化後の値（係数量子化値）をエントロピー符号化部４０４へ出力する。量子化方法の詳細については、本発明の本質ではないので説明を割愛する。量子化された係数（係数量子化値）はエントロピー符号化部４０４へ出力される。
【００１８】
エントロピー符号化部４０４は、入力された係数量子化値をエントロピー符号化する。ここでは、まず、図７に示すように、入力された係数量子化値の集まりである各サブバンドが矩形（「コードブロック」と呼ぶ。）に分割される。本実施の形態においては、コードブロックサイズを１６×１６とする。次いで、コードブロック内の係数をビットプレーンに分割し、上位ビットプレーンから順に２値算術符号化を行い、エントロピー符号化データを生成する。以上が、ＪＰＥＧ２０００における符号化のアルゴリズムである。
【００１９】
続いて先述、８×８画素ブロック（ＪＰＥＧの符号化単位）の周期を有する画像における、当該冗長性の除去に関する説明に移る。
【００２０】
図５と（１）式は離散ウェーブレット変換の説明であるが、離散ウェーブレット変換の特徴として、１次元方向で１回変換を行うと、低周波成分及び高周波成分それぞれの係数の個数は、入力画像の画素数の半分になる。２回変換を行うと、そこで得られる低周波成分及び高周波成分の係数の個数は入力画像の画素数の１／４となる。３回変換を行うと、１／８になる。つまり、離散ウェーブレット変換を３回行うと、入力画像中の８画素につき、低周波成分，高周波成分それぞれについて１個の係数が生成されると言える。また、伸長画像には８画素から構成される周期が存在するため、各周期から１係数が生成される。さらに各係数は、同一の周期から生成されているため、同じ値になる。つまり、離散ウェーブレット変換を３回行なうと、低周波成分と高周波成分の各サブバンドには同じ値が連続し、サブバンド内は平坦な領域（平坦領域）となる。平坦領域に対して、２値算術符号化は非常に高効率な圧縮を行うことができる。これが、ＪＰＥＧ２０００符号化では、８画素周期の画像に対して冗長性を削除する理由である。
【００２１】
また先述のとおり本実施形態においては、２値算術符号化は１６×１６サイズのコードブロックを単位に実行する。式（１）と図８から、離散ウェーブレット変換の変換数（ｎ）と、ｎ回目の変換で得られた高周波成分と低周波成分の生成に必要となる画素数の関係は、図９のようになる。同図から、３回目の離散ウェーブレット変換で得られた低周波成分と高周波成分における１６成分に必要な画素数は、１４９画素、１４１画素である。つまり、１６×１６サイズのコードブロックを単位として２値算術符号化を行った場合、高周波成分については１４１×１４１画素、低周波成分については１４９×１４９画素を単位として符号化したこととおおよそ同等となる。ＪＰＥＧでは８×８画素を単位として符号化を行うことに比べて、より広い領域で冗長性を除去することができる。
【００２２】
ここまでの議論をまとめると、入力画像に８×８画素の周期がある場合、ＪＰＥＧに比べてＪＰＥＧ２０００は効率的に冗長性を除去することができる。その理由は２つあり１つ目は、ＪＰＥＧ２０００では画像中の８×８画素の周期の画像は、平坦領域として表現される。その上で、効率的なエントロピー符号化方式で圧縮する。２つ目は、ＪＰＥＧに比べて広い領域を単位として符号化する点である。
【００２３】
続いて、辞書型符号化のアルゴリズムの概念について説明する。そして、その上で、ＪＰＥＧ符号化データに対して辞書型の符号化方式を適用し、生成された符号量を再圧縮時の目標符号量に設定することの妥当性について説明する。
【００２４】
画像，音声，文書などの何らかの意味あるデジタルデータは、データ値が無秩序に並んでいることはなく、よく似たパターンの並び方が頻繁に現れる。すなわち、データ値の並び方（データパターン）を見つけて、データ値の並びより短いコードを与えて出力することで、元よりも少ないデータ量で情報を表現することができる。このデータパターンと、それに対応するコード値を管理している情報を、一般に「辞書」と呼び、辞書を構築しつつ、その辞書を参照して行う符号化方法を辞書型符号化と言う。以下では、辞書型符号化アルゴリズムの一例の処理概略について説明する。
【００２５】
図１０は処理フローを示したフローチャートである。また、図１１（ａ）は符号化対象のデータの例を、図１１（ｂ）は辞書メモリの例を示している。図１０において、符号化の処理が開始すると初期化を行う（ステップＳ１００１）。初期化とは、処理対象データの入力、メモリ内に辞書メモリの確保、最大一致長の設定である。ここの説明では、処理対象データとして図１１（ａ）を、辞書メモリについては同図（ｂ）のように４バイトを想定する。ここで４バイトとしたのは説明の都合であり、実装形態に応じて適宜変更することは可能である。最大一致長とは、符号化処理において許される、同一データパターンの長さ（一致長）の最大値であり、本辞書型符号化方式では固定長で一致長を表すため必要となる。次に、一致するデータパターンを辞書メモリ中から検索する（ステップＳ１００２）。このとき、一致する長さ（一致長）が上限値に達した場合には、その時点で検索を打ち切る。また、一致するデータパターンが複数あるときには、それらをすべて求める。もし一致するデータパターンがなかった場合には（ステップＳ１００３でＮｏ）、一致パターンの有無を示す情報（フラグ）として“０”を出力し（ステップＳ１００４）、１文字をハフマン符号化した上で出力する（ステップＳ１００５）。その上で、処理をステップＳ１００８へ進める。一方で一致するデータパターンが見つかった場合には（ステップＳ１００３でＹｅｓ）、フラグとして“１”を出力する（ステップＳ１００６）。そして、検索した中から最も一致長が長いデータパターンの辞書中の位置と長さ（ポイント情報）を求めて出力する（ステップＳ１００７）。次に、処理を行ったデータ列を辞書の末尾に追加する（ステップＳ１００８）。もし、これにより辞書のデータ長を超えてしまう場合、先頭部分を削除して、辞書メモリに収まるようにする。そして、処理すべきデータが残っているかどうかを判断して（ステップＳ１００９）、もしデータが残っていなければ（ステップＳ１００９でＮｏ）、処理を終える。一方で、データが残っていれば（ステップＳ１００９でＹｅｓ）、処理をステップＳ１００２へ戻す。参考までに、具体的なデータを使った説明を図１２にまとめた。
【００２６】
説明のとおり、辞書型符号化方式はデータパターンの繰り返しによる冗長性を除去する。このため、ＪＰＥＧ符号化データに適用すると、図３（ｂ），（ｃ）のような、画像中の冗長性に起因するＪＰＥＧ符号化データ内の冗長性を削除することができることが理解できよう。しかし、ＪＰＥＧ符号化データに辞書型符号化を適用して得られた符号量を再圧縮時の目標符号量として用いるには、考慮すべきことが１つある。それは、ＪＰＥＧ２０００ではある所定の範囲で画像中の冗長性を除去するが、辞書型符号化はその範囲以上の空間的冗長性を除去してしまう点である。具体的には、先ほどのＪＰＥＧ２０００の説明では、低周波成分については１４９画素単位で冗長性を削除できると述べたが、辞書型符号化ではそれ以上の冗長性が存在すれば削除する。つまり、辞書型符号化で得られた符号量を目安に再圧縮すると、冗長性以外の、画質に影響を与える本質的な情報を量子化により削除してしまうことになる。この問題に対しては、ＪＰＥＧ２０００により冗長性を削除可能な範囲を符号化し、符号化後に辞書メモリをリセットすることで対応可能である。しかし、ＪＰＥＧでは８×８画素ブロックは可変長で符号化されるため、ＪＰＥＧ符号化データの中の繰り返しの１周期に含まれる８×８画素ブロック数を知ることはできない。一例として、１周期に８×８画素ブロックが１つ存在する場合と、１周期に８×８画素ブロックが８つ存在する場合を示している。このため、１４９画素に相当する周期数を導くこともできない。ただ必要以上に冗長性を除去することは避ける必要があり、本実施形態では１周期に含まれる８×８画素ブロック数を４個と仮定する。つまり１周期に含まれる画素数を３２個とし、１４９画素を超えない最大の周期数は４であり、辞書型符号化の過程で連続する同一周期を４つ検知したら、辞書メモリをリセットする。
【００２７】
なお、ＪＰＥＧ符号化データ中にはラスタースキャン順で８×８画素ブロックの符号化データが並んでおり、辞書型符号化はＪＰＥＧ符号化データを先頭から後尾に向かって順に符号化する。このため２次元方向で冗長性を削除できず、ＪＰＥＧ２０００と比べて削除できる冗長性は少なくならざるを得ない。これに関し、本発明の目的はあくまで再圧縮時の目標符号量の「目安」を求めることであり、冗長性を削除する範囲の次元数の差は目的を達成する上で大きな問題にはならないと考える。
【００２８】
［第１の実施形態］
以下、上記の説明に基づく、本発明に係る実施形態を詳細に説明する。
【００２９】
図１は、本第１の実施形態に係る画像符号化装置のブロック構成図である。図１に示すように、本実施形態の画像符号化装置は、符号データ入力部１０１、冗長性推定部１０２、レンジ特定部１０３、目標符号量決定部１０４、復号部１０５、及び、第２の符号化部１０６、符号出力部１０７を有する。同図において、符号データ入力部１０１はＪＰＥＧ符号化データを入力し、それを冗長性推定部１０２へ出力する。冗長性推定部１０２では、前述のとおり、冗長性を判定し、その判定結果をレンジ特定部１０３に出力する。そして、レンジ特定部１０３は、目標符号量として設定可能な許容レンジを決定する（そのレンジを特定できれば良いので、レンジの上限値と下限値とを決定する）。そして、目標符号量決定部１０４は、決定した許容レンジ内の１つの符号量を選択し、その選択した符号量を最終的な目標符号量として第２の符号化部１０６に設定する。
【００３０】
図１４は冗長性推定部１０２の処理フローである。本処理フローは、先だって説明した図１０をベースとしている。また図２は、冗長性推定部１０２のブロック図である。
【００３１】
図２，図１４において、画像符号化データ入力部２０１にＪＰＥＧ符号化データが入力されると、制御部２０９は初期化処理を行う（ステップＳ１４０１）。初期化とは、処理対象データの入力、辞書メモリの確保、最大一致長の設定、さらにデータパターンの繰り返しをカウントするカウンタ２０４の初期化である。カウンタ２０４の初期化については、１を設定する（ｃｏｕｎｔ＝１）。本実施の形態においては、辞書メモリとして１０２４バイトを、最大一致長としては２５６個を想定する。次に、同一文字列検知部２０３において、一致するデータパターンを辞書メモリ中から検索する（ステップＳ１４０２）。このとき、一致する長さ（一致長）が上限値（２５６）に達した場合には、その時点で検索を打ち切る。また、一致するデータパターンが複数あるときには、それらをすべて求める。もし一致するデータパターンがなかった場合には（ステップＳ１４０３でＮｏ）、一致パターンの有無を示す情報（フラグ）として“０”を出力する（ステップＳ１４０４）。さらに、ハフマン符号化部２０８で１文字をハフマン符号化した上で出力する（ステップＳ１４０５）。そして処理をステップＳ１４１１へ進める。なお出力先はバッファ２０６であり、以降生成された符号はすべて同バッファへ出力されるものとする。一方で一致するデータパターンが見つかった場合には（ステップＳ１４０３でＹｅｓ）、フラグとして“１”を出力する（ステップＳ１４０６）。そしてその上で、検索した中から最も一致長が長いデータパターンの辞書中の位置と長さ（ポイント情報）を求めて出力する（ステップＳ１４０７）。次に、ポイント情報を出力したデータパターンが連続して繰り返しているかどうか判断し（ステップＳ１４０８）、もし繰り返していない場合には（ステップＳ１４０８でＮｏ）、カウンタ２０４の値を１へリセットする（ステップＳ１４１５）。次いで処理を行ったデータ列を辞書メモリ２０２の末尾に追加する（ステップＳ１４１１）。そして、処理をステップＳ１４１４へ進める。一方ステップＳ１４０８で繰り返している場合、カウンタをインクリメントする。繰り返している場合の具体的な例は、図１５のとおりである。次いで、カウンタが４と等しいかどうか判断する（ステップＳ１４１０）。等しくない場合には（ステップＳ１４１０でＮｏ）、処理をステップＳ１４１４へ進める。もし等しい場合には（ステップＳ１４１０でＹｅｓ）、後段のＪＰＥＧ２０００による再圧縮で、これ以上の繰り返しの冗長性を削除することはできないと判断する。その上で、注目する周期の冗長性を削除しないように辞書データをリセットする（ステップＳ１４１２）。具体的には、辞書データ中の追記位置を示すポインタを先頭に戻す。さらにカウンタをリセットし（ステップＳ１４１３）、処理をステップＳ１４１４へ進める。ステップＳ１４１４では、ＪＰＥＧ符号化データ中の未処理のデータが残っているかどうかを判断し、残っている場合には（ステップＳ１４１４でＹｅｓ）、処理をＳ１４０２へ戻す。そうでない場合には（ステップＳ１４１４でＮｏ）、符号長算出部２０５はバッファ中に蓄積された辞書型符号化データの符号長を算出し（ステップＳ１４１６）、算出した符号長をレンジ特定部１０３に出力し、終了する。
以上が第１の実施形態における冗長性推定部１０２の説明であるが、変形例として、再圧縮時における冗長性の削除に対する推定の精度を落として、辞書型符号化の処理の軽減を図る方法がある。具体的には、再圧縮時に冗長性を除去できる空間的な範囲を想定して、辞書データをリセットする作業を省く。例えば、辞書型符号化の概念を説明したときに用いた、図１０の方法等である。このアプローチによるメリットとしては、処理の軽減だけではなく、ＺＩＰやＬＺＨなどで使える既存の辞書型ソフトにより実現できるため、新たに実装する作業負荷を減らせる点がある。他にも、本発明の手法を実装する画像処理装置に他の用途で搭載されていれば、そもそも当該ソフトを新たに組み込む作業を省くことができる。
【００３２】
また別な変形例として、ＪＰＥＧ符号化データ中のヘッダ情報の冗長性については、伸長画像中の冗長性とは関連しないので、ヘッダには辞書型符号化を適用しない方法が考えられる。
【００３３】
さて、レンジ特定部１０３は、冗長性推定部１０２で生成された推定結果に基づいて、目標符号量の設定範囲（レンジ）を特定する。本第１の実施形態では、説明を簡単にするため、冗長性推定部１０２では既存のＺＩＰ圧縮を用いて再圧縮の際の符号長を推定した結果を使用する例について述べる。
【００３４】
具体的には、冗長性推定部１０２において算出されたＺＩＰ圧縮の符号長を受け取り、それを目標符号量の設定範囲（レンジ）の上限値Ｒｍａｘとする。
【００３５】
本実施形態では、上限値ＲｍａｘをＺＩＰ圧縮結果の符号長としたが、経験や実験データから、ある程度の誤差を持たせた方がいいような場合もある。例えば、ＪＰＥＧ符号化データをＺＩＰ圧縮して、必ずしもＪＰＥＧ符号化データの符号長よりも、小さくなるとは限らない。そのため、ＺＩＰ圧縮した符号長とＪＰＥＧ符号化データの符号長を比較し、ＪＰＥＧ符号化データの方が小さい場合には、ＪＰＥＧ符号化データの符号長をレンジの上限値Ｒｍａｘとしても構わない。他にもＺＩＰ圧縮の符号長をそのままレンジの上限値Ｒｍａｘとして設定しない方が良い画像であると判断した場合には、符号長から誤差数％の範囲を目安としても良い。
【００３６】
先に述べたとおり、本実施形態では説明を簡易にするため、ＺＩＰ圧縮データのデータ量に基づいてレンジを特定する方法の説明を行ったが、冗長性推定部１０２で説明を行った方法で符号長を算出し、その符号長をレンジの上限値Ｒｍａｘとして良い。更に、その符号長の数％の範囲内の値をレンジの上限値Ｒｍａｘとしてもよい。つまり、冗長性推定部１０２から出力される符号長を目安にして、レンジの上限値Ｒｍａｘを特定する。
【００３７】
上記方法によれば、入力されたＪＰＥＧ符号化データを伸張した復号画像に対してＪＰＥＧ２０００で再符号化を行う際に、目標符号量の設定範囲の上限値を特定することが可能である。そうすることで、入力の符号化データと同等の画質を保持しつつ、再符号化により余計な符号量を発生させることがない。
【００３８】
一方、目標符号量の設定範囲（レンジ）の下限値Ｒｍｉｎは、符号化データの復号画像サイズに対して０．２％（１／５００）など任意の固定値を設定する。但し、上限値が復号画像サイズに対して０．２％よりも小さければ、下限値Ｒｍｉｎ＝上限値Ｒｍａｘとする、または、下限値の設定は行わず、必ず上限値Ｒｍａｘを目標符号量として再符号化を行うものとする。任意の固定値は、レンジの上限値Ｒｍａｘよりも小さい符号量であればよい。
【００３９】
以上の方法で下限値Ｒｍｉｎ設定することで、ＪＰＥＧの復号処理やＪＰＥＧ２０００の再符号化処理を行うよりも早いタイミングで目標符号量の設定範囲を特定することが可能となる。再符号化に係る時間を無視しても良いのであれば、以下に説明を行う方法で精度よく下限値を特定することも可能である。
【００４０】
まず、再符号化対象の符号化データから得られるオリジナルの解像度よりも低解像度な画像を操作者（ユーザ）に提示し、複数の解像度の画像の中からユーザの考える最低解像度を選択できるようにする。そうすることでオリジナル解像度の何分の１の解像度がユーザにとって許容できる画質であるかがわかる。
【００４１】
ユーザの許容できる解像度がオリジナルの何分の１であるか決定した後に、ターゲットとなる解像度の画像と同等かそれ以上の画質を得ることが可能な目標符号量を推定する２つの方法について以下に説明を行う。
【００４２】
まず、１つ目の方法は、再符号化する第２の符号化手段としてＪＰＥＧ２０００を利用するため、ＪＰＥＧ２０００で符号化した際のＬＬの符号量から目標符号量の設定範囲の下限値Ｒｍｉｎを導出する方法である。ＪＰＥＧ２０００では、離散ウェーブレット変換（ＤＷＴ）により系列変換を行う。このＤＷＴの回数によって、ＬＬのサブバンドの解像度が変化する。ＤＷＴ１回ではオリジナル画像の１／２の解像度（画素数は１／４）、２回では、１／２の解像度に対して１／２の解像度になるため、オリジナル解像度からすると１／４の解像度になる。ＤＷＴ３回では更にその１／２の解像度になるため、１／８解像度（画素数は１／６４）の画像が得られることになる。先に述べたような方法でユーザが許容できる解像度を選択した場合に、選択された解像度に合わせて、ＤＷＴの回数を変化させて、最低解像度と同じ解像度のＬＬの符号量を目標符号量の設定範囲の下限値Ｒｍｉｎとする。
【００４３】
但し、ＪＰＥＧ２０００にはレート制御の際に、画質を保つため高解像度情報をなるべく残し、下位ビットのデータを切り捨てるような機能がある。そのため、ＬＬの符号量をそのまま下限値として、その値を目標符号量としてＪＰＥＧ２０００で符号化すると、最低解像度として選択した解像度の画像よりも高解像度の画像が得られる可能性が高い。これを回避するためには、ＬＬの中でも画質への影響度が低い下位ビットの情報を削った符号量に基づいて下限値Ｒｍｉｎを特定するのが良い。
【００４４】
２つ目の方法としては、入力の符号化データであるＪＰＥＧ符号化データの中から、ＤＣ成分（直流成分）のみの符号量を参照し、目標符号量の設定範囲の下限値Ｒｍｉｎを導出するものである。ＤＣ成分の情報は、８×８画素に対して１画素分の情報を持っている計算になるため、ＤＣ成分のみの符号化データを復号した場合には、オリジナル解像度に対して１／８の解像度（画素数は１／６４）を得ることができる。ユーザが最低解像度として、オリジナルの１／８を選択した場合には、ＤＣ成分の符号量を目標符号量の下限値Ｒｍｉｎとして設定すればよいと言える。ユーザが最低解像度として１／８以外を選択した場合には、ＤＣ成分の符号量に対してどの程度の割合を下限値とすればよいか推定を行う。方法としては、解像度が１／２（画素数が１／４）のとき圧縮率は約２倍になるという傾向から推定を行う。例えば、ユーザが最低解像度として１／１６を選択した場合には、オリジナル解像度の１／８に対して、１／２の解像度であるため、ＤＣ成分の符号量の１／２の値を下限値Ｒｍｉｎとする。逆に、最低解像度として１／４を選択した場合には、１／８の２倍の解像度であるため、ＤＣ成分の符号量の２倍の値を下限値Ｒｍｉｎとすればよい。他の解像度が選択された場合にも同様に下限値Ｒｍｉｎが設定可能である。いずれの場合であっても、復号部１０５による復号処理で、ＤＣ成分の符号量が判明することになるので、それをパラメータの１つとして下限値Ｒｍｉｎを決定する。但し、ＤＣ成分の符号量に対して、２倍や４倍を掛ける場合には、上限値Ｒｍａｘを超えないように制御を行う必要がある。２倍や４倍にした時点で上限値を超えていればＲｍａｘ以下の値をＲｍｉｎに設定する。もしくは、異なる複数の解像度画像をユーザに提示する段階で制御を行う。最低解像度をユーザに提示する段階で制御を行う場合には、提示する前に入力の符号化データを解析してＤＣ成分の符号量を取得する必要があるため、提示するまでに時間が少しかかってしまう。しかしながら、ユーザの選択した解像度の画質よりも低画質になってしまう可能性を回避するためには、上限値よりも必ず小さくなるような解像度の画像のみを提示する方がよいと考えられる。
【００４５】
また、ＪＰＥＧの符号量とＪＰＥＧ２０００の符号量が同じであっても、ＪＰＥＧで符号化する場合よりもＪＰＥＧ２０００で符号化をする場合の方が、高圧縮時の画質が良いように制御が行われる。これは、ＪＰＥＧ２０００のレート制御機能においてレートと歪み（ＲＤ）の最適化を行う際に、特定の符号量に対して、視覚的に劣化の目立つような情報を優先的に残すような仕組みがあるためである。具体的には、ＪＰＥＧでは７５ｄｐｉの解像度情報しか持てないような符号量であっても、ＪＰＥＧ２０００では劣化として視認しやすい解像度情報を保持できるように、劣化として視認し難い下位ビットの情報を削るなどする。以上のことから、単純にＤＣ成分の符号量を下限値Ｒｍｉｎとするよりも、ＤＣ成分の符号量よりも少し小さい値を設定する方が、７５ｄｐｉ画像に近い画質の画像が得られると考えられる。設定する値としては、ＤＣ成分の符号量に対して１未満の係数（例えば０．７）を乗算した値を下限値Ｒｍｉｎとする。なお、一律に固定係数を乗算するのではなく、画像の特性に応じてその値を変更するような方法でも構わない。例えば、画像中の画素値の平坦な（画素値変化のない）領域の割合を求めることが可能であれば、その割合から冗長な符号の割合を算出して余分な符号を差し引いた符号量を設定しても良い。
【００４６】
更に、ＤＣ成分の符号について、ＺＩＰ圧縮を施した場合の符号量を下限値Ｒｍｉｎとして設定してもよい。これは、ＺＩＰ圧縮を施すことで、目標符号量の上限値Ｒｍａｘを特定する場合と同じ理由で、ＤＣ成分の符号化データの冗長性を省くことが可能であり、ＪＰＥＧ２０００で再符号化する際に指定する下限値として有効であると言える。
【００４７】
１つ目の方法の場合は、ＪＰＥＧの復号処理とＪＰＥＧ２０００でのＬＬの符号化処理は必要となるが、復号画像全体を再符号化する処理と比較して、早い段階で目標符号量の下限値を特定可能である。また、ＪＰＥＧ２０００の符号化データの一部を用いて下限値の推定を行うために、精度良く最低解像度の符号量を推定することが可能である。
【００４８】
２つ目の方法の場合は、入力のＪＰＥＧ符号化データを解析してＤＣ成分の符号量を取得することで下限値を推定することができるため、ＪＰＥＧ２０００で再符号化を行うよりも早いタイミングで目標符号量の範囲を特定することが可能である。
【００４９】
これら２つの方法は、どちらか一方の方法で推定を行っても構わないが、２つの方法を場合によって切り替えて実施しても構わない。便宜上、ＪＰＥＧ２０００のＬＬの符号量に基づいて下限値を推定する方法を「モード１」、ＪＰＥＧのＤＣ成分の符号量に基づいて下限値を推定する方法を「モード２」として説明を行う。「モード１」は精度を求められるような場合に選択し、「モード２」は早い段階で目標符号量の設定範囲を特定する必要のある場合に選択すればよい。具体的には、ＪＰＥＧ符号化データを解析して、量子化ステップからクオリティが低い（低画質である）と判明した場合や、上限値が画像サイズの１％よりも小さい値（高圧縮）の場合、上限値ＲｍａｘとＤＣ成分の符号量の値が近い値になると予想される。そのため、ＤＣ成分を２倍や４倍にしてしまうと上限値を超えてしまう可能性が高い。この場合には「モード１」を選択することで、１／２や１／４の解像度がユーザに選択されても精度よく下限値を推定することが可能である。なお、量子化ステップからクオリティが低い（低画質である）か否かは、ＪＰＥＧ符号化データのヘッダに格納されている量子化ステップの値と、予め設定された閾値とを比較し、その閾値よりも大きい場合に低画質であると判断し、閾値以下の場合には高画質と判断すればよい。また、逆の場合には、モード２を選択することとなる。なお、同時に別の処理を行う（コンカレント動作）場合には、再符号化処理のみに全てのリソースを割り当てられないため、レンジの特定に時間を掛けず、処理負荷の軽い「モード２」により下限値を推定する。
【００５０】
なお、１頁毎の処理について説明を行ったが、再符号化対象の符号化データが複数頁の場合には、１頁目の符号化データに対してのみ、解像度変換を行った画像をユーザに提示してもよい。この場合、２頁目以降の画像に対しては、同じ解像度の画像をユーザの許容できる画質であると判断できる。こうすることで全頁に対して解像度変換を行った画像を生成する必要がなくなり、効率良く目標符号量の設定範囲を特定することが可能となる。
【００５１】
本実施形態では、ユーザに許容できる画質が何分の１の解像度であるか選択する例について説明を行ったが、場合によっては装置内部で固定の解像度を設定しても構わない。入力の解像度が決まっている装置であったり、入力解像度がわかるような装置では、最低解像度は何ｄｐｉであるか固定に決めることが可能である。こういった場合には、最低解像度として７５ｄｐｉを画質の許容限界であると決めてしまってもよいと考えられる。これは、８〜１０．５ポイント程度の小ポイント文字も読むことができる限界の解像度であると言えるためである。
【００５２】
レンジ特定部１０３は以上の方法で特定した目標符号量の設定範囲（レンジ）の上限値Ｒｍａｘと下限値Ｒｍｉｎを決定し、目標符号量決定部１０４にそれを出力する。目標符号量決定部１０４は、レンジ特定部１０３で特定した目標符号量の設定範囲（上限値Ｒｍａｘと下限値Ｒｍｉｎ）を取得すると共に、通信路を介して装置外部から設定情報（圧縮パラメータ）を取得する。通信路を介して取得する圧縮パラメータは、装置を使用するユーザが設定しても良いし、外部の装置から供給される情報を取得しても構わない。本実施形態においては、ユーザがパラメータを指定する例について説明を行う。
【００５３】
本実施形態において圧縮パラメータとは、圧縮率や画質など再符号化するときのデータ量に関わる圧縮情報のことを言う。
【００５４】
図１８は、目標符号量決定部１０４の処理の流れを示すフローチャートである。以下、同図を参照して、目標符号量決定部１０４の具体的な処理の流れについて説明する。
【００５５】
まず、ステップＳ１８０１において、レンジ特定部１０３で特定された目標符号量の上限値Ｒｍａｘと下限値Ｒｍｉｎを取得する。次いで、ステップＳ１８０２において、目標符号量の設定範囲を、画像符号化装置のユーザが設定した範囲に反映させる。これは、ユーザが設定する範囲の最大値にＲｍａｘを割り当て、ユーザが設定する範囲の最小値にＲｍｉｎを割り当てる処理である。例えば、Ｒｍａｘ、Ｒｍｉｎは具体的な数値であるので、その数値自信は人間にとってはわかりにくい。一方、［最低画質−最高画質］間で任意に設定できるものとすると、人間には分かりやすい。そこで、「最高画質」に対してＲｍａｘを割り当て、「最低画質」にＲｍｉｎを割り当て、その範囲内であればユーザに自由に選択できるようにする。なお、ここでは「画質」を例にしたが、［圧縮率高−圧縮率低］等でも良いし、例えば１乃至５の５段階で決めるなら段階“１”にＲｍｉｎ、段階“５”にＲｍａｘを割り当てる等でも構わない。
【００５６】
ステップＳ１８０３は、ステップＳ１８０２で設定した範囲内の１つの値（パラメータ）を指定する。本実施形態では、外部からユーザがパラメータを指定する場合の具体例について説明を行う。
【００５７】
例えば、表示デバイスには画質や符号量の程度を選択するような３つのラジオボタンを用意して、ユーザが選択できるような仕組みを設ける。このとき、画質を表示する場合には、「最高画質」を選択すると、符号量の上限値Ｒｍａｘが目標符号量として設定され、「最低画質」を選択すると、符号量の下限値Ｒｍｉｎが目標符号量として設定される。画質の中間値を選択すると、上限値Ｒｍａｘと下限値Ｒｍｉｎの中間値が目標符号量として設定される。但し、上限値や下限値以外の値に関しては、再圧縮に用いる符号化方式の符号量（レート）と画質（歪み）の関係を考慮して設定しても構わない。レートと歪みの関係が線形に変化するものであると特定できれば、中間値は符号量の中間値を取ることで設定するのは簡単であるが、線形でない場合がほとんどである。線形でない場合に、レートと歪みの関係として、符号量が上限値に近いほど歪みの変化がなだらかであり、下限値に近いほど歪みの変化が急であるような例で考えるとする。その場合には、中間値は中間の符号量を設定するよりも、下限値寄りの符号量を選択する方が好ましいと言える。
【００５８】
上記のような方法で、上限値Ｒｍａｘと下限値Ｒｍｉｎの範囲から、ユーザに目標符号量を決定させることができる（ステップＳ１８０４）。
【００５９】
具体的には、上記の通り、高画質／中画質／低画質の３段階のパラメータのうちいずれかを選択するようなユーザインタフェースが考えられる。例えば、図１９（ａ）に示すようなＧＵＩ（Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を設け、ラジオボタンで高画質／中画質／低画質のうちの１つのパラメータを選択可能なようにする。いずれかをユーザが選択した際に、レンジ特定部１０３から取得した目標符号量の選択範囲の中から、指定された目標符号量を表示する。本実施形態において、高画質の場合にはレンジ特定部１０３で取得した符号量の上限値Ｒｍａｘの値を表示し、低画質が選択された場合には、符号量の下限値Ｒｍｉｎの値を表示する。また、中画質が選択された場合には、ＲｍａｘとＲｍｉｎの中間値を表示するものとする。具体的な値の例で示すと、符号量の上限値Ｒｍａｘが１０ＭＢｙｔｅ、下限値Ｒｍｉｎが１ＭＢｙｔｅであった場合には、ユーザによって高画質が選択されると「１０ＭＢｙｔｅ」とユーザインタフェースに表示される。ユーザによって低画質が選択されると「１ＭＢｙｔｅ」と表示され、中圧縮が選択されると「５ＭＢｙｔｅ」と表示される。先に説明した通り、本実施形態においては、説明を簡単にするために中圧縮が選択された場合にＲｍａｘとＲｍｉｎの中間値「５Ｍｂｙｔｅ」を選択する方法の説明を行った。しかしながら、符号量と画質変化の関係は必ずしも線形であるとは限らないため、必ず中間値を選択するわけではない。
【００６０】
以上の方法により、ユーザが圧縮パラメータの中から１つのパラメータを選択することにより、目標符号量の設定範囲の中から目標符号量が決定される。
【００６１】
なお、パラメータの指定方法として、上記ではラジオボタンを使って３段階の画質（高画質、中画質、低画質）の選択を行う例について説明を行ったが、これに限らない。
【００６２】
例えば、同じくラジオボタンを使用する場合には、３段階ではなく２段階の画質選択でも良いし、３段階よりも多くの段階を設定可能なように設計しても構わない。また、図１９（ｂ）に示すようなスライダー・バーを使用して、目標符号量の上限値Ｒｍａｘと下限値Ｒｍｉｎの間の値を自由に選択できるような方法でも構わない。これが図１９（ｃ）のようなダイアル式でも同様の設定が可能である。
【００６３】
また、表示したパラメータから値を選択するような形式のユーザインタフェースではなく、受け取った目標符号量の設定範囲を表示して、ユーザが設定可能な範囲内の目標符号量を入力できるようなインタフェースを設けることも可能である。
【００６４】
つまりは、レンジ特定部１０３から取得した目標符号量の設定範囲（上限値Ｒｍａｘと下限値Ｒｍｉｎの間の値）の中から、再符号化する際の目標符号量を特定できるような圧縮情報を取得する必要がある。そのために圧縮率や画質などの所定の値を選択もしくは入力できるようなユーザインタフェースを設けていればよい。
【００６５】
更に、目標符号量の上限値と下限値を設定してその範囲内をユーザが選択可能なようにＧＵＩを作成するとしたが、範囲外の値を設定しようと思えば、設定可能になるような形式にしておいてもよい。
【００６６】
例えば、スイッチやボタンなどで、範囲外を設定可能にするかどうかをユーザに選択させても良い。また、スライダー・バーがレンジの上限値と下限値の間をパラメータ設定値の推奨範囲として選択可能になっているが、範囲外の方へスライドさせれば、上限値よりも大きな値や下限値よりも小さな値を設定できるなどのＧＵＩを用意しておいても構わない。但し、設定範囲外の値を設定する場合の、符号量や画質に関しては保証の範ちゅうではないことを表示する必要がある。
【００６７】
さて、目標符号量決定部１０４は、ステップＳ１８０４にて目標符号量を決定すると、ステップＳ１８０５にてその決定した目標符号量を第２の符号化部１０６に設定する。
【００６８】
復号部１０５は、符号データ入力部１０１に入力されたＪＰＥＧ符号データを復号し、生成された復号画像データを出力する。そして。第２の符号化部１０６は、復号部１０５から出力された復号画像データを第２の符号化方式で符号化する。このとき、第２の符号化方式を行う際に符号化レート指定を行うが、指定する符号化レートは、目標符号量決定部１０４で決定された目標符号量を使用する。
【００６９】
本実施形態において、第２の符号化方式はＪＰＥＧ２０００を用いるものとしている。ＪＰＥＧ２０００では、任意の符号化レートで符号化できる機能が備わっている。そのため、目標符号量決定部１０４で決定された目標符号量を符号化レートとして指定して、符号化を行えば１度で指定レートでの符号化データを取得することが可能である。具体的には、ウェーブレット変換で得られた各サブバンドを、ビットプレーン単位に算術符号化するものであるので、最下位のビットプレーンの符号化データから上位に向かう順に破棄していき、最初に目標符号量と同じ、或いは、それを下回ると判断されたところで、破棄する処理を終了し、残った符号化データを出力すればよい。
【００７０】
ＪＰＥＧ２０００では、圧縮後の符号化レートと歪みの最適化が行われるため、指定した符号化レートで歪みの最小となる画質の符号化データを取得することができるものとする。また、符号化処理速度を優先するために、レートと歪みの関係が必ずしも最適にならない場合もあるが、その誤差は許容できるものとする。
【００７１】
符号出力部１０９は、第２の符号化部１０６から出力されるＪＰＥＧ２０００の符号列を装置外部へ出力する。
【００７２】
なお、本実施形態では、所定数の画素で構成される画素ブロックを単位とする第１の符号化アルゴリズムをＪＰＥＧとした。また、その画素ブロックよりも大きいサイズのブロックを単位に符号化する、第２の符号化アルゴリズムをＪＰＥＧ２０００とした。そして、符号化データの冗長正を判断する第３の符号化アルゴリズムとして辞書型符号化を例にした。しかし、この符号化アルゴリズムの組みあせに限定されるものではない。例えば、第２の符号化アルゴリズムとしては、再圧縮の対象となる画像符号化データの符号化方式と比べて、画像の冗長性を削除できる符号化方式で再圧縮する方法であれば、本発明の範疇となる。例えば、国際標準規格のＪＰＥＧ  ＸＲであっても構わない。これは以下に説明する変形例や第２の実施形態でも同様である。
【００７３】
本実施形態の方法によると、復号画像を生成しなくても、早いタイミングで再符号化時の目標符号量の設定範囲を特定することが可能である。
【００７４】
＜変形例の説明＞
上記実施形態では図１の構成に基づいて説明したが、上記実施形態と同等の処理をパーソナルコンピュータ（ＰＣ）等で実行するコンピュータプログラム（ソフトウェア）でもって実現させても構わない。
【００７５】
図１７はソフトウェアで実現する場合の装置（ＰＣ等）の基本構成を示す図である。
【００７６】
図中、１７０１はＣＰＵで、ＲＡＭ１７０２やＲＯＭ１７０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。１７０２はＲＡＭで、外部記憶装置１７０７や記憶媒体ドライブ１７０８、若しくはＩ／Ｆ１７０９を介して外部装置からダウンロードされたプログラムやデータを記憶するため、及び、ＣＰＵ１７０１が各種の処理を実行する際のワークエリアとして使用される。１７０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。１７０４、１７０５は夫々キーボード、マウス（登録商標）等のポインティングデバイスで、ＣＰＵ１７０１に対して各種の指示を入力することができる。１７０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。１７０７は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置である。ここにＯＳや前述の画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどが保存されており、ＣＰＵ１７０１による制御によって、これらのプログラムやデータはＲＡＭ１７０２上の所定のエリアにロードされる。１７０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１７０２や外部記憶装置１７０７に出力するものである。なお、この記憶媒体に前述の画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。その場合、記憶媒体ドライブ１７０８は、ＣＰＵ１７０１による制御によって、これらのプログラムやデータをＲＡＭ１７０２上の所定のエリアにロードする。１７０９はＩ／Ｆで、このＩ／Ｆ１７０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１７０２や外部記憶装置１７０７、あるいは記憶媒体ドライブ１７０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００７７】
上記構成において、ソフトウェアでもって第１の実施形態と同様の処理を実現する場合、ＣＰＵは図１に示した各処理部に相当する機能を、ソフトウェア上の関数、サブルーチン等で実現することになる。また、符号化処理そのものは公知の技術を採用すればよく、その他の処理は既に説明した図１に示す手順に従えば良いので、説明するまでも無いであろう。
【００７８】
［第２の実施形態］
第１の実施形態では、辞書式圧縮符号化技術としてＺＩＰ圧縮のデータ量を第２の符号化方式であるＪＰＥＧ２０００で符号化する際の、目標符号量の設定範囲を特定するために利用する例について説明を行った。
【００７９】
ＺＩＰ圧縮のデータ量をＪＰＥＧ２０００で再符号化する際の上限値の目安として用いることはできるが、必ずしも入力されたＪＰＥＧ画像と同等画質の画像が得られるとは限らない。
【００８０】
そこで、本第２の実施形態では、再符号化時の目標符号量の設定範囲を特定するためにＺＩＰ圧縮の符号量を利用するだけでなく、「最高画質」が選択された場合には、必ずＪＰＥＧ画質を保持しているＺＩＰ圧縮データ自体を出力するような例について説明を行う。
【００８１】
なお、本実施形態においても、対象の入力符号化データは、ＪＰＥＧ 符号化方式で符号化されたデータであるものとし、ＪＰＥＧ符号化されていないオリジナル画像データは存在しないものとする。
【００８２】
図１３に本第２の実施形態に係る画像符号化装置のブロック図を示す。第１の実施形態で説明した図１のブロック図と異なる点は、再符号化処理部１３００と出力データ判定制御部１３０１を追加した点である。これ以外のブロックの処理については、第１の実施形態と同じであるので、その説明は省略する。
【００８３】
再符号化処理部１３００は、復号部１０５と第２の符号化部１０６の２つのブロックを含む処理部である。
【００８４】
出力データ判定制御部１３０１は、目標符号量決定部１０４から出力される目標符号量を受け取り、受け取った目標符号量によって再符号化処理部１３００を動作させるか否かを判定する。
【００８５】
図１６は、出力データ判定制御部１３０１の具体的な処理の流れを示すフローチャートである。以下、同図を参照して再符号化処理部１３００を動作させるか否かの判定の具体的な方法について説明する。
【００８６】
まず、ステップＳ１６０１において、目標符号量決定部１０４（第１の実施形態と同じとする）で決定された目標符号量Ｓを取得する。次に、ステップＳ１６０２は、ステップＳ１６０１で取得した目標符号量Ｓと目標符号量の設定範囲の上限値Ｒｍａｘの比較を行う。比較の結果、目標符号量Ｓ＝目標符号量の上限値Ｒｍａｘである場合（ＹＥＳ）には、ステップＳ１６０３へと処理を遷移させ、出力データ判定制御部１３０１から制御信号‘０’を出力する。一方、目標符号量Ｓ≠目標符号量の上限値Ｒｍａｘである場合（ＮＯ）には、ステップＳ１６０４へと処理を遷移させ、出力データ判定部１３０１から制御信号‘１’を出力する。出力データ判定制御部１３０１から出力される制御信号は、冗長性推定部１０２と再符号化処理部１３００が受け取り、制御信号によって施される処理を変更する。
【００８７】
出力判定制御部１３０１から制御信号‘０’が出力された場合（ステップＳ１６０３）には、冗長性推定部１０２に対し、ＺＩＰ圧縮データをそのまま出力するよう制御する。また、再符号化処理部１３００の処理は実施しない（ステップＳ１６０５）ように制御する。一方、出力判定制御部１３０１から制御信号‘１’が出力された場合（ステップＳ１６０４）には、冗長性推定部１０２からＺＩＰ圧縮データを出力しないよう制御する。ステップＳ１６０３とは逆に、再符号化処理部１３００の処理を実施するよう制御する。再符号化処理部１３００の中の、復号部１０５と第２の符号化部１０６の処理内容については、第１の実施形態と変更がないため、ここでは詳細な説明を省略する。但し、第２の符号化部１０６が受け取る目標符号量の値Ｓは、符号量の上限値Ｒｍａｘ以外の値となることが言える。
【００８８】
符号出力部１０７は、冗長性推定部１０２から出力されるＺＩＰ圧縮データか、第２の符号化部１０６から出力されるＪＰＥＧ２０００の符号化データのどちらかを取得し、取得した符号化データを装置外部へ出力する。
【００８９】
上記方法によれば、第１の実施形態と同様に、早い段階で再符号化の際の目標符号量を特定できる点に加えて、入力の符号化データの画質を損なわず、入力のデータ量よりも小さい符号量のデータを取得することが可能である。
【００９０】
［第３の実施形態］
第１の実施形態、第２の実施形態では、圧縮パラメータの設定は、画像符号化装置を使用するユーザが、画質や圧縮率を選択することによって目標符号量を設定する方法について説明を行った。本第３の実施形態では、再符号化を行った符号化データをネットワークを介して伝送する場合の通信路の帯域によって、再符号化時の圧縮パラメータを決定する例について説明を行う。
【００９１】
ネットワークを介して、ＪＰＥＧ２０００で再符号化を行った符号化データの出力を行うような画像符号化装置の場合に、ある程度の伝送速度を確保しようとすると、通信路の帯域を考慮して符号量を制御し符号化データを伝送させる必要がある。
【００９２】
本第３の実施形態については、図１を用いて説明を行う。第１の実施形態と異なる点は、目標符号量決定部１０４の内部処理のみであるため、本実施形態における目標符号量決定部１０４の処理について以下に説明を行う。
【００９３】
本第３の実施形態における目標符号量決定部１０４は、レンジ特定部１０３から、レンジの上限値Ｒｍａｘと下限値Ｒｍｉｎを受け取るのに加えて、装置外部から通信路の帯域の情報を取得する。帯域の情報は、１秒間に転送されるビット量（ｂｐｓ）と、画像もしくは符号化データの伝送に使用していい比率を含む情報であるものとする。例えば、６４Ｋｂｐｓの帯域幅を持つ場合に、帯域の１００％を画像もしくは画像符号化データの転送に使用していい場合には、Ａ４サイズで解像度が６００ｄｐｉの画像でデータ量が約１００Ｍｂｙｔｅであるので、伝送速度は１５６２．５秒かかる計算になる。この場合、画像を１／１０圧縮した場合には約１／１０、１／２０圧縮した場合には約１／２０の伝送速度となる。このため、取得する帯域幅の情報があれば、目標の速度で伝送するための目標符号量が算出できる。
【００９４】
上記２つの情報に加えて、目標の伝送速度を含んでもよい。目標の伝送速度とは、伝送にかかる秒数でも良いし、復号画像を伝送するのに掛かる時間に対するパーセンテージ（○％）などの値でも構わない。また、目標の伝送速度を帯域幅の情報として取得できなくても、ユーザが目標の伝送速度を指定したり、固定値を装置に与えておくなど、方法は問わない。
【００９５】
具体的に目標の伝送速度が１秒である場合について以下に説明する。例えば、符号化データの伝送に使用できる帯域が３０Ｍｂｐｓであるとき、Ａ４サイズで解像度が６００ｄｐｉの画像を伝送しようと思うと、１００／３０≒３３秒となる。目標速度を達成するためには符号量を３３ＭＢｙｔｅに設定する必要がある。３３ＭＢｙｔｅとレンジ特定部１０３から出力されるレンジの上限値Ｒｍａｘと下限値Ｒｍｉｎの比較を行い、レンジ内であれば３３Ｍｂｙｔｅを目標符号量であると決定する。一方、帯域の情報から算出した符号量がレンジ内でない場合で、Ｒｍａｘよりも大きければ上限値Ｒｍａｘを目標符号量とし、Ｒｍｉｎよりも小さければ下限値Ｒｍｉｎを目標符号量として設定する。算出された符号量が上限値Ｒｍａｘよりも大きい場合に目標符号量としてＲｍａｘを設定したとしても画質を保持したまま余計な符号を発生させないことになるため問題にはならない。更に、Ｒｍａｘよりも算出した符号量が大きければ、第２の実施形態で説明した方法と同様に、ＺＩＰ圧縮したデータ自体を伝送するように制御しても構わない。一方、Ｒｍｉｎを下回ってしまった場合には、伝送速度の低下が発生する可能性がある。しかしながら、画質を優先させる場合には、Ｒｍｉｎの符号量を目標符号量として設定する。速度を必ず優先しなければならないような条件を与えられていれば、算出した値を目標符号量として設定する。この場合には、画質を保証することはできないことを表示するなどして、警告する必要がある。
【００９６】
上記方法によれば、符号化データを伝送する帯域情報によって目標符号量を特定することが可能である。
【００９７】
なお、上記の各実施形態では、辞書型符号化を用いて冗長性を判断する例を示したが、本発明はこれに限らず、再符号化の対象となる符号化データの冗長性を判断できれば辞書型符号化以外の公知の符号化技術を利用しても良い。
【００９８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012178736.tif 000003
【図２】
2012178736.tif 000004
【図３】
2012178736.tif 000005
【図４】
2012178736.tif 000006
【図５】
2012178736.tif 000007
【図６】
2012178736.tif 000008
【図７】
2012178736.tif 000009
【図８】
2012178736.tif 000010
【図９】
2012178736.tif 000011
【図１０】
2012178736.tif 000012
【図１１】
2012178736.tif 000013
【図１２】
2012178736.tif 000014
【図１３】
2012178736.tif 000015
【図１４】
2012178736.tif 000016
【図１５】
2012178736.tif 000017
【図１６】
2012178736.tif 000018
【図１７】
2012178736.tif 000019
【図１８】
2012178736.tif 000020
【図１９】
2012178736.tif 000021
【図２０】
2012178736.tif 000022
【図２１】
2012178736.tif 000023
【図２２】
2012178736.tif 000024