(57)【特許請求の範囲】
【請求項１】
画像を複数のタイルに分割する分割手段と、
ユーザによって設定された圧縮率を含む予め定められた範囲の複数の圧縮率で前記各タイルの圧縮を行う圧縮手段と、
前記複数の圧縮率で圧縮された各タイルの符号量を算出する符号量算出手段と、
前記複数の圧縮率で圧縮された各タイルの画質への影響度を算出する影響度算出手段と、
前記設定された圧縮率で圧縮された各タイルの符号量の合計を算出する合計符号量算出手段と、
前記設定された圧縮率で前記画像を圧縮したときに得られる圧縮データの符号量である目標符号量を算出する目標符号量算出手段と、
前記目標符号量から前記合計符号量を引いた符号量差を算出する符号量差算出手段と、
前記符号量差が予め定められた数より大きい場合、前記設定された圧縮率で圧縮されたタイルのうち前記影響度が最も高いタイルから前記設定された圧縮率より一段低い圧縮率を前記設定された圧縮率として更新する圧縮率調整手段と、
を備えた画像圧縮装置。
【請求項２】
前記圧縮率調整手段は、前記設定された圧縮率で圧縮されたタイルから前記影響度が最も高いタイルを検出し、検出したタイルを前記設定された圧縮率で圧縮したときの符号量と前記設定された圧縮率より一段低い圧縮率で圧縮したときの符号量との差を求め、当該差が前記符号量差以下であるとき、前記設定された圧縮率より一段低い圧縮率を前記設定された圧縮率として更新して前記符号量差から当該差を差し引くものであり、
前記圧縮率調整手段が前記設定された圧縮率を更新して前記符号量差から前記差を差し引く処理を、前記符号量差が前記予め定められた数以下になるまで、又は予め定められた回数繰り返し行わせる制御を行う繰り返し制御手段と、
を備えた請求項１に記載の画像圧縮装置。
【請求項３】
主走査方向に配列する前記タイルを一つのバンドとして区分する区分手段を更に備え、
前記合計符号量算出手段、前記目標符号量算出手段、前記符号量差算出手段及び前記圧縮率調整手段は、バンド毎に各処理を行うことを特徴とする請求項１又は２に記載の画像圧縮装置。
【請求項４】
前記繰り返し制御手段による制御によって前記圧縮率調整手段が前記処理を前記予め定められた回数まで繰り返し行った後の前記符号量差が予め定められた数より大きい場合、前記圧縮率調整手段は異なるバンドのタイルに対して圧縮率調整を行う際に前記符号量差を前記目標符号量に加算することを特徴とする請求項３に記載の画像圧縮装置。
【請求項５】
コンピュータを、
画像を複数のタイルに分割する分割手段、
設定された圧縮率を含む予め定められた範囲の複数の圧縮率で前記各タイルの圧縮を行う圧縮手段、
前記複数の圧縮率で圧縮された各タイルの符号量を算出する符号量算出手段、
前記複数の圧縮率で圧縮された各タイルの画質への影響度を算出する影響度算出手段、
前記設定された圧縮率で圧縮された各タイルの符号量の合計を算出する合計符号量算出手段、
前記設定された圧縮率で前記画像を圧縮したときに得られる圧縮データの符号量である目標符号量を算出する目標符号量算出手段、
前記目標符号量から前記合計符号量を引いた符号量差を算出する符号量差算出手段、
前記符号量差が予め定められた数より大きい場合、前記設定された圧縮率で圧縮されたタイルのうち前記影響度が最も高いタイルから前記設定された圧縮率より一段低い圧縮率を前記設定された圧縮率として更新する圧縮率調整手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
画像データを圧縮するための画像圧縮装置及びプログラムに関するものである。
【背景技術】
【０００２】
近年、デジタル機器の発展に伴って、画像データ等の様々な圧縮方式が提案されているが、圧縮方式の１つとしてＪＰＥＧ（Joint Photographic Experts Group）２０００が知られている。ＪＰＥＧ２０００は画像の圧縮・展開の方法を規定したもので、ＪＰＥＧを発展させたものである。ＪＰＥＧ２０００は、特許文献１に記載されているように、画像データを複数のタイルに分割し、タイル毎にウェーブレット変換、量子化、エントロピー符号化等の処理を施して符号化データを生成する。
【特許文献１】特開２００５−１６７８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このようなＪＰＥＧ２０００の場合、任意の圧縮率を設定しても、実際にはその設定された圧縮率より高い圧縮率（少ない符号量）で圧縮が行われている場合があった。例えば２０％の圧縮率を設定したとしても、あるタイルは１８％で圧縮されていたり、別のタイルは１７％で圧縮されていたりする場合があった。この場合、２０％と１８％の差である２％分の符号量は有効に使われなかった符号量であり、例えばこの２％分の符号量を他のタイルで使用すれば、画質が格段に向上する場合も考えられる。
【０００４】
本発明は、上記の問題を解決するためになされたもので、使われなかった符号量を有効利用することによって、設定された圧縮率で圧縮したときに得られる圧縮データの符号量を保ちつつ画質を向上させる画像圧縮装置及びプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００５】
本発明の請求項１に記載の発明の画像圧縮装置は、画像を複数のタイルに分割する分割手段と、設定された圧縮率を含む予め定められた範囲の複数の圧縮率で前記各タイルの圧縮を行う圧縮手段と、前記複数の圧縮率で圧縮された各タイルの符号量を算出する符号量算出手段と、前記複数の圧縮率で圧縮された各タイルの画質への影響度を算出する影響度算出手段と、前記設定された圧縮率で圧縮された各タイルの符号量の合計を算出する合計符号量算出手段と、前記設定された圧縮率で前記画像を圧縮したときに得られる圧縮データの符号量である目標符号量を算出する目標符号量算出手段と、前記目標符号量から前記合計符号量を引いた符号量差を算出する符号量差算出手段と、前記符号量差が予め定められた数より大きい場合、前記設定された圧縮率で圧縮されたタイルのうち前記影響度が最も高いタイルから前記設定された圧縮率より一段低い圧縮率を前記設定された圧縮率として更新する圧縮率調整手段と、を備えたことを特徴としている。
【０００６】
また、本発明の請求項５に記載の発明のプログラムは、コンピュータを、画像を複数のタイルに分割する分割手段、設定された圧縮率を含む予め定められた範囲の複数の圧縮率で前記各タイルの圧縮を行う圧縮手段、前記複数の圧縮率で圧縮された各タイルの符号量を算出する符号量算出手段、前記複数の圧縮率で圧縮された各タイルの画質への影響度を算出する影響度算出手段、前記設定された圧縮率で圧縮された各タイルの符号量の合計を算出する合計符号量算出手段、前記設定された圧縮率で前記画像を圧縮したときに得られる圧縮データの符号量である目標符号量を算出する目標符号量算出手段、前記目標符号量から前記合計符号量を引いた符号量差を算出する符号量差算出手段、前記符号量差が予め定められた数より大きい場合、前記設定された圧縮率で圧縮されたタイルのうち前記影響度が最も高いタイルから前記設定された圧縮率より一段低い圧縮率を前記設定された圧縮率として更新する圧縮率調整手段、として機能させることを特徴としている。
【０００７】
これらの構成によれば、各タイルを設定された圧縮率を含む複数の圧縮率で圧縮し、設定された圧縮率で圧縮したタイルの符号量を積算した合計符号量から画像データを設定された圧縮率で圧縮したときに得られる圧縮データの理論上の符号量である目標符号量を引いた符号量差を、影響度の高いタイルの圧縮率を１つ低い圧縮率にするために使用することにより、合計符号量を目標符号量に抑えつつ、画質を向上させることができる。
【０００８】
また、請求項２に記載の発明は、請求項１に記載の画像圧縮装置であって、前記圧縮率調整手段は、前記設定された圧縮率で圧縮されたタイルから前記影響度が最も高いタイルを検出し、検出したタイルを前記設定された圧縮率で圧縮したときの符号量と前記設定された圧縮率より一段低い圧縮率で圧縮したときの符号量との差を求め、当該差が前記符号量差以下であるとき、前記設定された圧縮率より一段低い圧縮率を前記設定された圧縮率として更新して前記符号量差から当該差を差し引くものであり、前記圧縮率調整手段が前記設定された圧縮率を更新して前記符号量差から前記差を差し引く処理を、前記符号量差が前記予め定められた数以下になるまで、又は予め定められた回数繰り返し行わせる制御を行う繰り返し制御手段と、を備えたことを特徴としている。
【０００９】
この構成によれば、圧縮データの合計符号量を目標符号量に抑えつつ、画質を向上させることができる。
【００１０】
また、請求項３に記載の発明は、請求項１又は２に記載の画像圧縮装置であって、主走査方向に配列する前記タイルを一つのバンドとして区分する区分手段を更に備え、前記合計符号量算出手段、前記目標符号量算出手段、前記符号量差算出手段及び前記圧縮率調整手段は、バンド毎に各処理を行うことを特徴としている。
【００１１】
この構成によれば、符号量差の配分処理をバンド単位で行うことによって、処理作業に必要なメモリ容量の増加を抑えることができる。
【００１２】
また、請求項４に記載の発明は、請求項３に記載の画像圧縮装置であって、前記繰り返し制御手段による制御によって前記圧縮率調整手段が前記処理を予め定められた回数まで繰り返し行った後の前記符号量差が前記予め定められた数より大きい場合、前記圧縮率調整手段は異なるバンドのタイルに対して圧縮率調整を行う際に前記符号量差を前記目標符号量に加算することを特徴としている。
【００１３】
この構成によれば、あるバンドの符号量差の配分処理で余った符号量を他のバンドで使うことにより、余った符号量を有効に使って画質向上を図ることができる。
【発明の効果】
【００１４】
この発明によれば、各タイルを設定された圧縮率を含む複数の圧縮率で圧縮し、設定された圧縮率で圧縮したタイルの符号量を積算した合計符号量から画像データを設定された圧縮率で圧縮したときに得られる圧縮データの理論上の符号量である目標符号量を引いた符号量差を、影響度の高いタイルの圧縮率を１つ低い圧縮率にするために使用することにより、合計符号量を目標符号量に抑えつつ、画質を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
本発明における画像圧縮装置及びプログラムの実施の形態について図面を参照して説明する。図１は、本実施の形態における画像圧縮装置１の電気的構成を示すブロック図である。尚、画像圧縮装置１は、パーソナルコンピュータ（パソコン）やワークステーション、携帯情報端末等の情報処理装置で実現され、図１のブロック図は画像圧縮装置１がこれらの情報処理装置によって実現された場合を例に図示している。この他、コピー機やスキャナ等の画像読取装置や、デジタルカメラやデジタルビデオカメラ、デジタルカメラを搭載した携帯電話等の撮像装置に組み込まれて用いられてもよい。
【００１６】
図１に示すように、画像圧縮装置１は制御部１１、記憶部１２、入力操作部１３、表示部１４、Ｉ／Ｆ部１５、ネットワークＩ／Ｆ部１６、画像圧縮部１７及びＲＡＭ１８等を備えて構成される。制御部１１は、ＣＰＵ（Central Processing Unit：中央処理装置）等によって構成され、入力された指示信号等に応じて記憶部１２に記憶されたプログラムを読み出して処理を実行し、各機能部への指示信号の出力、データ転送等を行って画像圧縮装置１を統括的に制御する。
【００１７】
記憶部１２は、画像圧縮装置１の備える種々の機能を実現するためのプログラムやデータ等を記憶する。本実施の形態では、記憶部１２は画像圧縮プログラム１２１を記憶する。画像圧縮プログラム１２１は、Ｉ／Ｆ部１５又はネットワークＩ／Ｆ部１６が入力した画像データをＪＰＥＧ２０００方式で圧縮して符号化データを生成するためのプログラムである。
【００１８】
入力操作部１３は、各種操作ボタンやマウス等のポインティングデバイスを備え、ユーザによって操作がなされると、操作信号を制御部１１へ出力する。またユーザは入力操作部１３を介して圧縮率の設定を行う。表示部１４は、液晶ディスプレイ等の表示画面であり、入力操作部１３から入力された内容に応じた表示を行ったり、制御部１１による処理内容や処理結果を表示したりする。
【００１９】
Ｉ／Ｆ部１５はＩＥＥＥ１３９４やＵＳＢ等のインターフェイスであり、外部装置と直接データの送受信を行うことができる。ネットワークＩ／Ｆ部１６は、ＬＡＮボード等の通信モジュールから構成され、ネットワークＩ／Ｆ部１６と接続されたネットワーク（不図示）を介して外部装置と種々のデータの送受信を行う。
【００２０】
画像圧縮部１７は、記憶部１２に記憶された画像圧縮プログラム１２１を実行することによって、Ｉ／Ｆ部１５やネットワークＩ／Ｆ部１６を介して入力された画像データをＪＰＥＧ２０００方式で圧縮して符号化データを生成する。ＲＡＭ（Random Access Memory）１８は、制御部１１が実行するための制御プログラムや処理を実行する際のデータ等を一時的に保存する。また、画像圧縮部１７が画像圧縮プログラム１２１に従って処理を実行する際に生成される符号化データや圧縮率調整データ等を一時的に保存する。
【００２１】
図２は、本実施の形態におけるＪＰＥＧ２０００方式による画像圧縮の流れを示す図である。まず画像圧縮部１７は、入力された画像データの表色系を例えばＲＧＢ方式からＹＣｂＣｒ方式へコンポーネント変換して（色空間変換２１）、表色系が変換された画像データを図３に示すように複数のタイルに分割する（タイル分割２２）。ここで、画像圧縮部１７は主走査方向に配列したタイルを１つのバンドとして区分し、離散ウェーブレット変換２３から圧縮率調整２６（又は符号ストリーム２７）までの処理をバンド毎に行う。図３を用いて説明すると、タイルＡ〜Ｅ、タイルＦ〜Ｋ、タイルＬ〜Ｑ、タイルＲ〜Ｖをそれぞれ１つのバンドとして区分し、バンド別に離散ウェーブレット変換２３以下の処理を行う。従って、以下で説明する処理は全てバンド単位で行われるものとして説明する。
【００２２】
図２に戻り、画像圧縮部１７は１つのバンドの各タイルに対して離散ウェーブレット変換を施して係数データを出力する（ウェーブレット変換２３）。図４は、離散ウェーブレット変換について示した模式図である。図４（ａ）のタイル画像（０ＬＬ）に対して、離散ウェーブレット変換を施し、図４（ｂ）に示すようにサブバンド１ＬＬ、１ＨＬ、１ＬＨ及び１ＨＨに分解する。続いて、低周波成分１ＬＬに対して離散ウェーブレット変換を施し、図４（ｃ）に示すようにサブバンド２ＬＬ、２ＨＬ、２ＬＨ及び２ＨＨに分解する。尚、図４では２レベル変換について図示しているが、離散ウェーブレット変換の回数は特に制限されるものではない。
【００２３】
次に、画像圧縮部１７は離散ウェーブレット変換された係数データに対して線形量子化を行う（量子化２４）。ここで、画像圧縮部１７は任意に設定された圧縮率（以下「設定圧縮率」という）を含む予め定められた範囲にある複数の圧縮率に従って量子化を行う。例えば、設定圧縮率が２０％である場合は、１８％、１９％、２０％、２１％及び２２％等の５つの圧縮率に従って量子化を行う。尚、圧縮率の数はこの限りではないが、画像圧縮処理の際に用いるメモリ（本実施の形態ではＲＡＭ１８）の容量に応じて圧縮率の数を適宜調整することが望ましい。
【００２４】
そして、画像圧縮部１７は、各圧縮率で量子化された量子化データに対してエントロピー符号化を行う（エントロピー符号化２５）。ここで、エントロピー符号化２５の処理手順について説明する。図５は、エントロピー符号化の流れを示す図である。画像圧縮部１７は、まず各サブバンドの係数をプレシンクトと呼ばれる領域に分割する（プレシンクト分割２５１）。図６はプレシンクト分割を模式的に示した図である。図６において、５１の部分は元の画像において同領域の部分を周波数変換したものであり、これらの部分は同じプレシンクトに属しているという。
【００２５】
次に、画像圧縮部１７はプレシンクトをコードブロックという更に小さな領域に分割する（コードブロック分割２５２）。図７はコードブロック分割を模式的に示した図である。このコードブロック単位がエントロピー符号化を行う際の基本単位となる。
【００２６】
そして、画像圧縮部１７は各コードブロックについて線形量子化された離散ウェーブレット変換の変換係数をビット毎に展開する（ビットプレーン分割２５３）。図８はビットプレーン分割を模式的に示した図である。図８において、６１はあるコードブロックにおける線形量子化された離散ウェーブレット変換の係数データを例示したものである。６２は、係数データ６１の符号を表すビット列であり、値０は正値、値１は負値を意味する。６３は係数データ６１の絶対値をＭＳＢ（Most Significant Bit）からＬＳＢ（Least Significant Bit）に２値展開したビットプレーンである。
【００２７】
例えば、値が＋１２の係数データ６４は正値であるため、対応する符号ビット６５は‘０’である。また、＋１２の絶対値の２進数表現は（１１００）であるため、ビットプレーンに対応する箇所６６ａ、６６ｂ、６６ｃ及び６６ｄの値はそれぞれ‘１’、‘１’、‘０’、‘０’となる。同様に、値が−６の係数データ６７は負値であるため、対応する符号ビット６８は‘１’である。また、−６の絶対値の２進数表現は（０１１０）であるため、ビットプレーンの対応する箇所６９ａ、６９ｂ、６９ｃ及び６９ｄの値はそれぞれ‘０’、‘１’、‘１’、‘０’となる。ＭＳＢ側で全て０であるビットプレーンをゼロビットプレーンといい、データは保存されない一方、コードブロック毎に後述のゼロビットプレーン枚数がカウントされる。
【００２８】
続いて、画像圧縮部１７は、ビットプレーンを更にsignificance propagationパスと、magnitude refinementパスと、cleanupパスに分割する（コーディングパスへの分割２５４）。図９はコーディングパスへの分割を模式的に示した図である。図９に示すように、各ビットプレーン７１ａ〜７１ｄ（以下、これらをまとめて「ビットプレーン７１」という）は、コーディングパスへの分割により次のように分割される。つまり、それぞれsignificance propagationパス７２ｂ〜７２ｄ（以下、これらをまとめて「significance propagationパス７２」という）、magnitude refinementパス７３ｂ〜７３ｄ（以下、これらをまとめて「magnitude refinementパス７３」という）、cleanupパス７４ｂ〜７４ｄに分割される。ただし、最上位ビット（ＭＳＢ側）のビットプレーン７１ａはcleanupパス７４ａにのみ対応させる。以下、cleanupパス７４ａ〜７４ｄをまとめて「cleanupパス７４」という。
【００２９】
各ビットプレーン７１及び各コーディングパス７２〜７４は、全て縦横方向の座標長によるサイズが等しい。また、各コーディングパス７２〜７４にはビット値が定義された位置と定義されていない位置とが存在する。図９において、例えば７６や７７のように、ビット値が定義された位置には網掛け（斜線）が施されている。そして、コーディングパス７２〜７４（例えば、コーディングパス７２ｂ〜７４ｂ）の網掛け部分に定義されたビット値は、分割前のビットプレーン７１（例えば、ビットプレーン７１ｂ）上の対応する位置におけるビット値と等しい。ビットプレーンをコーディングパスに分割する処理については、各文献により周知のものであるため説明を省略する。
【００３０】
最後に画像圧縮部１７は、コーディングパス分割後のデータを算術符号化する（二値算術符号化２５５）。以上のようにしてエントロピー符号化２５を行った後、画像圧縮部１７は圧縮率の調整を行う（圧縮率調整２６）。ＪＰＥＧ２０００は圧縮率を任意に設定できるが、設定圧縮率で画像データの圧縮を行うと、従来は設定圧縮率より高い圧縮率で圧縮が行われていた。例えば設定圧縮率が２０％であった場合、あるタイルは１８％で圧縮されていたり、別のタイルは１７％で圧縮されていたりする場合があった。この場合、２０％と１８％の差である２％分の符号量は有効に使われなかった符号量であり、例えばこの２％分の符号量を他のタイルで使用すれば、画質が格段に向上する場合も考えられる。そこで、この圧縮率調整２６において、各タイルの圧縮率の調整を行って、使われなかった符号量を他のタイルに配分する処理を行う。圧縮率調整の処理手順の詳細は後述する。
【００３１】
圧縮率調整が終わった後、画像圧縮部１７はファイルにデータを書き込むための符号ストリームの形成を行う（符号ストリーム２７）。この符号ストリーム処理については、各文献により周知のものであるため説明を省略する。
【００３２】
図１０及び１１は、画像圧縮部１７が画像圧縮プログラム１２１に従って実行される画像圧縮処理の流れを示したフローチャートである。まず画像圧縮部１７は画像データの色空間変換、タイル分割を行い、分割されたタイルをバンド別に区分する（ステップＳ１１）。そして、画像圧縮部１７は変数ｎ（ｎは１以上の整数）に１を代入し（ステップＳ１２）、ｎ番目のバンドに対して離散ウェーブレット変換、量子化、エントロピー符号化を行う（ステップＳ１３）。ここで、画像圧縮部１７は設定圧縮率を含んだ予め定められた範囲の複数の圧縮率で量子化を行い、複数の圧縮率で圧縮された各タイルの符号化データをＲＡＭ１８に格納する。
【００３３】
次に、画像圧縮部１７は各タイルの符号量と画質への影響度（以下、単に「影響度」という）を算出して圧縮率調整用データを作成し、この圧縮率調整用データをＲＡＭ１８に格納する（ステップＳ１４、Ｓ１５）。図１２は圧縮率調整用データの一例を示した図である。図１２に示すように、画像圧縮部１７は各タイルの各圧縮率毎に符号量と影響度を算出する。
【００３４】
影響度の算出方法の一例を説明する。例えば、図９に示すようにコーディングパスへの分割が行われたとする。画像処理部１７はＭＳＢからＬＳＢのビットプレーンに対して上位ビットほど重み付け係数を高く設定する。例えばＭＳＢからＬＳＢのビットプレーンに８、４、２、１の重み付け係数を設定し、significance propagationパス、magnitude refinementパス、cleanupパスにもそれぞれ所定の重み付け係数を設定する。そして画像処理部１７は、コーディングパスの‘１’の数とビットプレーンの重み付け係数とコーディングパスの重み付け係数を掛け合わせた数値をビット位置毎に算出して積算して１つのコードブロックにおける影響度を算出する。この影響度を全てのコードブロックに渡って算出し、算出された影響度を積算することによってタイルの影響度とする。
【００３５】
つまり、図９を用いて説明すると、画像圧縮部１７はコードブロック６１の影響度を、
影響度＝（cleanupパス７４ａの‘１’の数×重み付け係数（８）×cleanupパスの重み付け係数）
＋｛（significance propagationパス７２ｂの‘１’の数×重み付け係数（４）×significance propagationパスの重み付け係数）＋（magnitude refinementパス７３ｂの‘１’の数×重み付け係数（４）×magnitude refinementパスの重み付け係数）＋（cleanupパス７４ｂの‘１’の数×重み付け係数（４）×cleanupパスの重み付け係数）｝
＋｛（significance propagationパス７２ｃの‘１’の数×重み付け係数（２）×significance propagationパスの重み付け係数）＋（magnitude refinementパス７３ｃの‘１’の数×重み付け係数（２）×magnitude refinementパスの重み付け係数）＋（cleanupパス７４ｃの‘１’の数×重み付け係数（２）×cleanupパスの重み付け係数）｝
＋｛（significance propagationパス７２ｄの‘１’の数×重み付け係数（１）×significance propagationパスの重み付け係数）＋（magnitude refinementパス７３ｄの‘１’の数×重み付け係数（１）×magnitude refinementパスの重み付け係数）＋（cleanupパス７４ｄの‘１’の数×重み付け係数（１）×cleanupパスの重み付け係数）｝
の式を用いて算出する。この計算を全てのコードブロックに渡って行う。
【００３６】
図１０に戻る。次に画像圧縮部１７は、設定圧縮率で圧縮された各タイルの符号量を積算して合計符号量を算出する（ステップＳ１６）。例えば設定圧縮率が２０％である場合、図１２に示すタイルＡ〜Ｅの圧縮率２０％のときの符号量を積算した「１２４３２」を合計符号量とする。続いて、画像圧縮部１７は画像データを設定圧縮率で圧縮したときに得られる圧縮データの理論上の符号量を算出し、バンドの数で割った符号量を目標符号量として設定する（ステップＳ１７）。
【００３７】
更に画像圧縮部１７は、目標符号量から合計符号量を引いた値である符号量差を算出する（ステップＳ１８）。例えば、求められた合計符号量は「１２４３２」であり、目標符号量が１５０００である場合、符号量差は「２５６８」となる。この「２５６８」は、圧縮データとして使用してもよい符号量であるにも関わらず、有効に使われなかった符号量である。従って、以下の処理において、有効に使われなかった符号量を影響度の高いタイルから順次配分する。
【００３８】
まず、画像圧縮部１７は設定圧縮率を仮の圧縮率に設定する。現段階では圧縮率２０％を仮の圧縮率として設定する。そして変数ｍに１を代入する（ステップＳ１９）。この変数ｍは符号量差の配分処理の繰り返し回数を示すものである。
【００３９】
符号量差が１以上である場合（ステップＳ２０；ＮＯ）、画像圧縮部１７はバンド内における仮の圧縮率で圧縮されたタイルの中から最も影響度の高いタイルを検出する。図１２においては、仮の圧縮率（２０％）で圧縮されたタイルの中で最も影響度の高いタイルはタイルＤである。そして画像圧縮部１７は検出されたタイル（例えばタイルＤ）のフラグを‘１’とする（ステップＳ２１）。このフラグはタイル毎に設定されており、画像処理部１７が有するワークメモリ（不図示）に記憶されている。
【００４０】
そして、画像圧縮部１７は検出されたタイルについて、
ａ＝仮の圧縮率で圧縮されたときの符号量
ｂ＝仮の圧縮率より１つ低い圧縮率で圧縮されたとき符号量
とし、変数ａ、ｂに該当する符号量を代入する（ステップＳ２２）。例えば、ステップ２１でタイルＤが検出された場合、ａ＝１２９３、ｂ＝２７２３となる。
【００４１】
続いて、画像圧縮部１７は、仮の圧縮率より１つ低い圧縮率で圧縮されたとき符号量から仮の圧縮率で圧縮されたときの符号量を差し引いたｂ−ａの値が符号量差以下であるか否かを判別する（ステップＳ２３）。つまり、ａ＝１２９３、ｂ＝２７２３の場合、ｂ−ａ＝１４３０であり、この値はステップＳ１８で求めた符号量差「２５６８」より小さい。従って、画像圧縮部１７は、タイルＤにおいて仮の圧縮率より１つ低い圧縮率を仮の圧縮率に設定する。つまり、圧縮率２１％を仮の圧縮率として設定する。そして、符号量差からｂ−ａの値を引いた値を符号量差として更新する（ステップＳ２４）。従って、符号量差＝２５６８−（２７２３−１２９３）＝１１３８となる。
【００４２】
そして、画像圧縮部１７はフラグをリセットし、変数ｍに１加算する（ステップＳ２５）。変数ｍが６４でない場合（ステップＳ２８；ＮＯ）、画像圧縮部１７はステップＳ２０へ処理を移行する。以上説明したようにステップＳ２０及びＳ２１の処理を行うと、図１２において仮の圧縮率で圧縮されたタイルの中で最も影響度の高いタイルとして検出されるタイルはタイルＡとなる。そしてａ＝６４５、ｂ＝１０２４であり（ステップＳ２２）、ｂ−ａ＝３７９となるため、符合量差＝１１３８より小さい（ステップＳ２３；ＹＥＳ）。従って、画像圧縮部１７はタイルＡの仮の圧縮率を２１％とし、符号量差を１１３８−３７９＝７５９に更新する（ステップＳ２４）。
【００４３】
そして、画像圧縮部１７はフラグをリセットし、変数ｍに１加算する（ステップＳ２５）。変数ｍは６４でないため（ステップＳ２８；ＮＯ）、画像処理部１７は再びステップＳ２０へ処理を移行する。ここでステップＳ２１において仮の圧縮率で圧縮されたタイルの中で最も影響度の高いタイルとして検出されるタイルはタイルＡとなる。そしてａ＝１０２４、ｂ＝２６１２であり（ステップＳ２２）、ｂ−ａ＝１５８８である。このｂ−ａの値は符号量差７５９より大きい（ステップＳ２３；ＮＯ）。つまり、ここでタイルＡの仮の圧縮率を１つ下げると、合計符号量が目標符号量を超えてしまうことになる。従って、タイルＡ以外のタイルの中から（つまり、フラグの立っていないタイルの中から）影響度の最も高いタイルを検出する。
【００４４】
即ち、フラグの立っていないタイルがある場合（ステップＳ２６；ＹＥＳ）、画像圧縮部１７はフラグの立っていないタイルから影響度が最も高いタイルを検出し、そのタイルのフラグを立てる（ステップＳ２７）。図１２の場合、仮の圧縮率で圧縮されたタイルＡを除くタイルの中で最も影響度の高いタイルはタイルＥである。そして画像圧縮部１７はステップＳ２２へ処理を移行する。タイルＥの場合、ａ＝５６７、ｂ＝１０４５であり、ｂ−ａ＝４７８であるため、符号量差７５６より小さい（ステップＳ２３；ＹＥＳ）。従って、画像圧縮部１７はタイルＥの仮の圧縮率を２１％とし、符号量差を７５６−４７８＝２７８に更新する。
【００４５】
ステップＳ２６において、フラグの立っていないタイルがない場合は（ステップＳ２６；ＮＯ）、仮の圧縮率で圧縮された全てのタイルにおいて圧縮率を１つ下げると目標符号量を超えてしまうことを意味する。従って、画像圧縮部１７は各タイルへの符号量差の配分を終了し、ステップＳ２９へ処理を移行する。
【００４６】
以上の処理を、符号量が０以下になるまで、又は６４回（変数ｍが６４になるまで）繰り返し行う。尚、この繰り返し回数の条件は上記の限らず、適宜変更可能である。そして符号量が０以下となった（ステップＳ２０；ＹＥＳ）、変数ｍが６４となった場合（ステップＳ２８；ＹＥＳ）、画像圧縮部１７は各タイルの現段階における仮の圧縮率を正式な圧縮率として設定する（ステップＳ２９）。
【００４７】
ｎ番目のバンドが最後のバンドでない場合（ステップＳ３０；ＮＯ）、画像圧縮部１７は変数ｎに１を加算し（ステップＳ３１）、ステップＳ１３へ処理を移行する。ここで、既に符号量差の配分処理が終了したバンドについて、正式な圧縮率以外の圧縮率で圧縮された各タイルの符号化データや圧縮率調整データをＲＡＭ１８から削除することによって、ＲＡＭ１８における作業領域を広げることができる。また、この段階において、符号量差が０（又は予め定められた数）より大きい場合、この符号量差をステップＳ１７において次に算出される目標符号量に加算する。このように、あるバンドの配分処理で余った符号量を他のバンドで使うことにより、余った符号量を有効に使って画質向上を図ることができる。
【００４８】
ｎ番目のバンドが最後のバンドである場合（ステップＳ３０；ＹＥＳ）、画像圧縮部１７は符号ストリームを形成して（ステップＳ３２）処理を終了する。
【００４９】
以上、説明したように、各タイルを設定圧縮率を含む複数の圧縮率で圧縮し、設定圧縮率で圧縮したタイルの符号量を積算した合計符号量から画像データを設定圧縮率で圧縮したときに得られる圧縮データの理論上の符号量である目標符号量を引いた符号量差を、条件に合致した影響度の高いタイルに割り当てることにより、合計符号量を目標符号量に抑えつつ、画質を向上させることができる。更に、このような符号量差の配分処理をバンド単位で行うことによって、処理作業に必要なメモリ容量の増加を抑えることができる。
【００５０】
尚、本発明は上記実施の形態の構成に限られず種々の変形が可能である。例えば、上記実施の形態では、分割されたタイルをバンドに区分し、バンド毎に符号量差の配分処理を行った。これは各タイルにおいて複数の圧縮率で圧縮された符号化データを生成する必要があり、これらの符号化データを格納するＲＡＭ１８の使用領域を最小限に抑えるためである。しかし、ＲＡＭ１８に十分なメモリ容量がある場合には、バンド毎に符号量差の配分処理を行う必要はない。つまり、画像圧縮部１７は設定圧縮率で圧縮された全てのタイルから影響度の最も高いタイルを検出し、条件に合致したら１つ低い圧縮率に仮の圧縮率を更新する。この処理を符号量差が予め定められた数以下になるまで、又は予め定められた回数だけタイル全体に渡って行う。
【図面の簡単な説明】
【００５１】
【図１】画像圧縮装置の電気的構成を示すブロック図。
【図２】ＪＰＥＧ２０００方式による画像圧縮の流れを示す図。
【図３】タイル分割について説明するための図。
【図４】離散ウェーブレット変換について示した模式図。
【図５】エントロピー符号化の流れを示す図。
【図６】プレシンクト分割を模式的に示した図。
【図７】コードブロック分割を模式的に示した図。
【図８】ビットプレーン分割を模式的に示した図。
【図９】コーディングパスへの分割を模式的に示した図。
【図１０】画像圧縮処理の流れを示したフローチャート。
【図１１】図１０の続きのフローチャート。
【図１２】圧縮率調整用データの一例を示した図。
【符号の説明】
【００５２】
１      画像圧縮装置
１１    制御部
１２    記憶部
１２１  画像圧縮プログラム
１３    入力操作部
１４    表示部
１５    Ｉ／Ｆ部
１６    ネットワークＩ／Ｆ部
１７    画像圧縮部
１８    ＲＡＭ
【図１】
0004978934.tif 000002
【図２】
0004978934.tif 000003
【図３】
0004978934.tif 000004
【図４】
0004978934.tif 000005
【図５】
0004978934.tif 000006
【図６】
0004978934.tif 000007
【図７】
0004978934.tif 000008
【図８】
0004978934.tif 000009
【図９】
0004978934.tif 000010
【図１０】
0004978934.tif 000011
【図１１】
0004978934.tif 000012
【図１２】
0004978934.tif 000013