(57)【特許請求の範囲】
【請求項１】
符号化対象画像から、複数画素で構成されるタイルを単位に圧縮符号化する画像符号化装置であって、
前記タイルを単位に画像データを入力する入力手段と、
画像データから可逆符号化データを生成する第１の符号化手段と、
画像データから非可逆符号化データを生成する第２の符号化手段と、
前記第１、第２の符号化手段を制御し、前記入力手段で入力したタイルの画像データに対して符号化処理を実行させ、前記符号化対象画像に対して予め設定された目標符号量Ｔａ以下の符号化データを生成させる符号化制御手段とを有し、
前記符号化制御手段は、
符号化処理の初期段階では、前記第１、第２の符号化手段を制御して、符号量の少ないのがいずれであったのかを示す判定情報をタイル単位に生成すると共に、前記符号化対象画像の全タイルに対する可逆符号化データの生成処理を行わせる第１の制御手段と、
該第１の制御手段によって、前記目標符号量Ｔａ以下の可逆符号化データの生成に失敗した場合、連続する２つのタイルの前記判定情報が異なる回数をカウントするカウント手段と、
該カウント手段によるカウント値に基づいて、前記初期段階の処理に後続して、前記第２の符号化手段を制御して非可逆符号化データの生成処理に移行するか、或いは、前記第１、第２の符号化手段を制御し、タイル単位の可逆、非可逆混在符号化データの生成処理に移行するか判定する判定手段と、
該判定手段の判定結果に応じて、前記第２の符号化手段を制御しての非可逆符号化データの生成処理、或いは、前記第１、第２の符号化手段を制御しての可逆、非可逆混在符号化データの生成処理のいずれかを実行する第２の制御手段と
を有することを特徴とする画像符号化装置。
【請求項２】
前記第２の制御手段によって、前記第１、第２の符号化手段を制御しての可逆、非可逆混在符号化データの生成処理により、前記目標符号量Ｔａ以下の可逆、非可逆混在符号化データの生成に失敗した場合、前記第２の符号化手段を制御しての非可逆符号化データの生成処理を実行する第３の制御手段を更に有することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記第２の制御手段又は第３の制御手段によって前記第２の符号化手段による非可逆符号化データの生成処理に移行した場合、前記目標符号量Ｔａ以下になるまで、非可逆符号化処理を行う際の量子化ステップ値を更新する手段を更に有することを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
着目タイルが、予め設定された特定のパターンの特性を有するか否かを判定するパターン判定手段を更に有し、
前記カウント手段は、前記パターン判定手段で前記特定のパターンが検出された場合にのみ前記カウントを行うことを特徴とする請求項１乃至３のいずれか１項に記載の画像符号化装置。
【請求項５】
前記第１の符号化手段はＪＰＥＧ−ＬＳを用いた符号化手段であり、前記第２の符号化手段はＪＰＥＧを用いた符号化手段であることを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１乃至５のいずれか１項に記載の画像符号化装置の各手段として機能させるプログラム。
【請求項７】
請求項６に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【請求項８】
符号化対象画像から、複数画素で構成されるタイルを単位に圧縮符号化する画像符号化装置の制御方法であって、
入力手段が、前記タイルを単位に画像データを入力する入力工程と、
第１の符号化手段が、画像データから可逆符号化データを生成する第１の符号化工程と、
第２の符号化手段が、画像データから非可逆符号化データを生成する第２の符号化工程と、
符号化制御手段が、前記第１、第２の符号化工程を制御し、前記入力工程で入力したタイルの画像データに対して符号化処理を実行させ、前記符号化対象画像に対して予め設定された目標符号量Ｔａ以下の符号化データを生成させる符号化制御工程とを有し、
前記符号化制御工程は、
符号化処理の初期段階では、前記第１、第２の符号化工程を制御して、符号量の少ないのがいずれであったのかを示す判定情報をタイル単位に生成すると共に、前記符号化対象画像の全タイルに対する可逆符号化データの生成処理を行わせる第１の制御工程と、
該第１の制御工程によって、前記目標符号量Ｔａ以下の可逆符号化データの生成に失敗した場合、連続する２つのタイルの前記判定情報が異なる回数をカウントするカウント工程と、
該カウント工程によるカウント値に基づいて、前記初期段階の処理に後続して、前記第２の符号化工程を制御して非可逆符号化データの生成処理に移行するか、或いは、前記第１、第２の符号化工程を制御し、タイル単位の可逆、非可逆混在符号化データの生成処理に移行するか判定する判定工程と、
該判定工程の判定結果に応じて、前記第２の符号化工程を制御しての非可逆符号化データの生成処理、或いは、前記第１、第２の符号化工程を制御しての可逆、非可逆混在符号化データの生成処理のいずれかを実行する第２の制御工程と
を有することを特徴とする画像符号化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の圧縮符号化技術に関するものである。
【背景技術】
【０００２】
画像データの圧縮符号化において、１画像内で画像の内容に応じて局所的に圧縮率や圧縮方式を切り替えることで、高画質かつ高圧縮率の画像データを得ることができる。
【０００３】
例えば、画像の劣化が目立ちにくい自然画像の部分であるか、画像の劣化が目立ち易い文字部やグラフィック部であるかによって圧縮率や圧縮方式を調整する方法が挙げられる。一般的には文字部やグラフィック部には低圧縮な符号化や可逆符号化（これらを第１符号化とする）を充て、自然画像の部分には高圧縮な符号化や非可逆符号化（これらを第２符号化とする）を充てる。画像内で適応的に圧縮方式を切り替える事で、効率的に画像を圧縮し、全体的な圧縮率および画質を改善する方法が提案されている（特許文献１参照）。
【０００４】
特許文献１では、画像の先験的な知識を必要とせず、圧縮時に画像を細かく分割した一定サイズの画像タイルごとに解析と分類を行い、画像を圧縮する。解析においては、画像タイル内の色数、画素間の色の変化量、エッジ量を主な変数として用いている。
【０００５】
圧縮技術が一層の高画質化・高圧縮化を目指す一方で、圧縮対象となる画像を作成するアプリケーションでは、グラフィカルな描画が当たり前となってきており、複雑化してきている。一例として、デフォルトの描画設定でも半透明オブジェクトである事が少なくない。モニタ上で半透明に見えているオブジェクトは、電子データ的には図７のような市松模様７０１で実現されている。図７に示した市松模様７０１は透過率５０％の場合で、異なる透過率の場合には異なる間引き方で半透明オブジェクトが実現される。半透明オブジェクトは周期的なパターンの要素を持つため、圧縮率が異なる画像タイルが隣接した際には他の画像領域よりも差が非常に目立ちやすいという特徴がある。そこで、周期的なパターンを持つ特定領域を抽出し、抽出された特定領域内では、画質劣化のない第１符号化と画質劣化の発生する第２符号化の切り替えが起こらない様に制御する方法も提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３５８９４７
【特許文献２】特開２００８−０４２６８３
【発明の概要】
【発明が解決しようとする課題】
【０００７】
画像をタイルごとに分割し、各タイルの内容に応じて圧縮方式を決定していく従来の符号化方式について考える。この方式において、例えば、あるタイル内に異なる特徴を持つ画像部分が同等の比率で混在している場合などには、圧縮方式が適切に割り当てられず、タイル間で頻繁に圧縮方式が切り替わり、視覚的な画質劣化が起こることもある。
【０００８】
本発明は上記従来例に鑑みてなされたものであり、装置構成の複雑化を招くことなく、対象となる画像に応じて、可逆符号化データ、非可逆符号化データ、可逆、非可逆混在符号化データのいずれを生成するかを決定し、画質劣化と符号量増大の両方を抑制することを可能ならしめる技術を提供しようとするものである。
【課題を解決するための手段】
【０００９】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
符号化対象画像から、複数画素で構成されるタイルを単位に圧縮符号化する画像符号化装置であって、
前記タイルを単位に画像データを入力する入力手段と、
画像データから可逆符号化データを生成する第１の符号化手段と、
画像データから非可逆符号化データを生成する第２の符号化手段と、
前記第１、第２の符号化手段を制御し、前記入力手段で入力したタイルの画像データに対して符号化処理を実行させ、前記符号化対象画像に対して予め設定された目標符号量Ｔａ以下の符号化データを生成させる符号化制御手段とを有し、
前記符号化制御手段は、
符号化処理の初期段階では、前記第１、第２の符号化手段を制御して、符号量の少ないのがいずれであったのかを示す判定情報をタイル単位に生成すると共に、前記符号化対象画像の全タイルに対する可逆符号化データの生成処理を行わせる第１の制御手段と、
該第１の制御手段によって、前記目標符号量Ｔａ以下の可逆符号化データの生成に失敗した場合、連続する２つのタイルの前記判定情報が異なる回数をカウントするカウント手段と、
該カウント手段によるカウント値に基づいて、前記初期段階の処理に後続して、前記第２の符号化手段を制御して非可逆符号化データの生成処理に移行するか、或いは、前記第１、第２の符号化手段を制御し、タイル単位の可逆、非可逆混在符号化データの生成処理に移行するか判定する判定手段と、
該判定手段の判定結果に応じて、前記第２の符号化手段を制御しての非可逆符号化データの生成処理、或いは、前記第１、第２の符号化手段を制御しての可逆、非可逆混在符号化データの生成処理のいずれかを実行する第２の制御手段とを有する。
【発明の効果】
【００１０】
本発明によれば、装置構成の複雑化を招くことなく、対象となる画像に応じて、可逆符号化データ、非可逆符号化データ、可逆、非可逆混在符号化データのいずれを生成するかを決定し、画質劣化と符号量増大の両方を抑制することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態が適用する複写機の構成図。
【図２】第１の実施形態における符号化処理部のブロック構成図。
【図３】第１の実施形態における圧縮処理の全体処理を示すフローチャート。
【図４】第１の実施形態における圧縮モードを設定するインタフェースの一例図。
【図５Ａ】、
【図５Ｂ】、
【図５Ｃ】第１の実施形態における圧縮処理の詳細を示すフローチャート。
【図６】第１の実施形態における画像解析処理のフローチャート。
【図７】半透明パターンの模式図。
【図８】第２の実施形態におけるタイル毎の判定結果の例を示す図。
【図９】第２の実施形態における符号化処理部のブロック構成図。
【発明を実施するための形態】
【００１２】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１３】
［第１の実施形態］
まず始めに、本実施形態の圧縮処理の概要について説明する。処理の内容としては、画質にメリットのある可逆圧縮、圧縮率にメリットのある非可逆圧縮、および両者を適応的に用いて画質と圧縮率の両立を目指す可逆・非可逆混在圧縮（以後、混在圧縮）の３通りの圧縮方式の遷移を制御する。先に説明した課題を回避出来るのは、可逆圧縮か非可逆圧縮しか行わない圧縮方式である。そこで、混在圧縮を回避する圧縮モードを用意することを１つの特徴とする。さらに、入力画像に応じて自動で、混在圧縮を回避すべきか否かを判定して圧縮方式を決定する機構をもつことをもう１つの特徴とする。
【００１４】
判定基準として、従来技術のように画像タイル毎に特徴量を判定して圧縮方式を決定するのではなく、符号化が切り替わる可能性のある画像タイルを検出することで、画質劣化の原因となるエリアを抽出する。圧縮モードおよび判定の詳細については以後、順に説明する。
【００１５】
図１は、本実施形態が適用する複合機のブロック図である。図中、１０１は入力された画像データを処理するデータ制御部である。データ制御部１０１は、ＣＰＵ１０３やＲＡＭ１０４を用いてデータ入力部１０２から入力された画像データを処理し、データ記憶部１０５へ格納する。データ制御部１０１は、符号化処理部１０９および復号処理部１１０を備える。符号化処理部１０９は必要に応じて画像データを圧縮し、復号処理部１１０は必要に応じて画像データを解凍するモジュールである。
【００１６】
データ入力部１０２は、不図示のネットワークインタフェースやＵＳＢインタフェース等のＩ／Ｆを介して受信した印刷データを解析し、レンダリングして生成した多値の画像データ（ＰＤＬから得られた画像データ）、或いは、不図示の原稿読み取り装置から入力した画像データをデータ制御部１０１へ供給する。なお、符号化対象画像データの入力源としては、データ入力部１０２に限らず、画像データを格納したメモリカード等でも良く、その種類は問わない。
【００１７】
データ出力部１１１は、データ制御部１０１にて画像処理された画像をプリンタやモニタなどの記録デバイスに出力する。データ記憶部１０５は、例えばＨＤＤ（ハードディスク）等の記憶手段であり、符号化処理に用いるパラメータ１０６や本実施形態を実現するためのアプリケーション１０７、符号化処理部１０９を制御するためのＯＳ１０８、更には符号化処理部１０９で生成した符号化データを格納するものである。符号化処理部１０９は、印刷すべきページ単位に圧縮符号化し、その結果をデータ記憶部１０５に格納していく。一方、復号処理部１１０は、例えばプリンタの印刷速度に併せて、データ記憶部１０５に記憶されている圧縮データをページ単位に復号し、出力する。つまり、符号化処理部１０９は、復号処理部１１０とは同期する必要はなく、ページ単位に圧縮符号化してはその結果をデータ記憶部１０５に格納していくので、データ記憶部１０５はプリンタバッファとしても機能することになる。
【００１８】
上記の通り、符号化処理部１０９と復号処理部１１０が１つの装置に含まれているが、これは実施形態は複合機に適用した例を示しているからであって、これらはそれぞれ単独の画像符号化装置或いは画像復号装置であっても構わない。
【００１９】
図２は実施形態における符号化処理部１０９のブロック構成図である。図中、２０６は符号化処理部１０９の全体の制御を司る符号化制御部２０６である。この符号化制御部２０６の制御対象として、第１の符号化部２０１、第２の符号化部２０２、画像解析部２０５、圧縮パラメータ設定部２０４がある。第１、第２の符号化部２０２は、複数画素で構成される同じタイル（例えば６４×６４画素）を同じタイミングで符号化を行い、その符号量と符号化データとを画像解析部２０５、符号化データ選択部２０３に出力する。ここで、第１の符号化部２０１は可逆符号化を行うものであり、実施形態ではその代表であるＪＰＥＧ−ＬＳを採用する。一方、第２の符号化部２０２は、非可逆符号化を行うものであり、実施形態ではその代表であるＪＰＥＧを採用する。ただし、可逆、非可逆符号化の種類は上記に限るものではない。
【００２０】
符号化データ選択部２０３は、圧縮パラメータ設定部２０４から設定された符号化データ選択用のルックアップテーブル（ＬＵＴ）を参照し、着目タイルに対して生成された可逆、非可逆符号化データの符号量から一方を選択し出力する。ただし、選択したのが可逆符号化データであるか、非可逆符号化データであるのかを示す識別情報（１ビット）が、その選択した符号化データの先頭に付加される。ここで、着目タイルから得られた可逆符号化データの符号量をＣｋ、非可逆符号化データの符号量をＣｈと定義すると、可逆符号量と非可逆符号量を２軸とする２次元座標空間の一点の座標（Ｃｋ，Ｃｈ）が決まる。そこで、その座標位置に、選択する対象として可逆符号化とすべきか、非可逆符号化とすべきかを示す１ビットのデータを割り当てたのが、上記の符号化データ選択用のルックアップテーブルである。後述する説明から明らかになるが、このＬＵＴは３種類用意し、そのいずれか１つが符号化制御部２０６の指示に従い、圧縮パラメータ設定部２０４が符号化データ選択部２０３に設定する。
【００２１】
以上が実施形態における装置のハードウェアの説明である。次に、実施形態における符号化処理部１０９（符号化制御部２０６）の全体的な処理手順を図３、図４を用いて説明し、その後に更に詳しく説明する。
【００２２】
本実施形態における符号化制御部２０６は、出来るだけ画質を維持しつつ圧縮率を上げるため、第１、第２の符号化部を制御する第１の制御、第２の制御、第３の制御を行う。すなわち、Ｓ３０１の可逆圧縮、Ｓ３０２の混合圧縮、Ｓ３０３の非可逆圧縮の順で圧縮率を上げていくよう制御する。
【００２３】
先ず、Ｓ３０１の初期段階では可逆圧縮が行われる。このため、符号化データ選択部２０３には、タイル毎に、必ず可逆符号化データを選択する必要がある。そのため、符号化制御部２０６は圧縮パラメータ設定部２０４を制御し、可逆符号量と非可逆符号量の２次元座標空間の全ての座標にて可逆符号化データを選択させるためのＬＵＴを符号化データデータ選択部２０３に設定させる。また、この可逆圧縮を行う際には、第２の符号化部２０２（ＪＰＥＧを用いる非可逆符号化であることは既に説明した）に対して、初期の量子化マトリクスＱ０を設定しておく。上記の通り、このＳ３０１における処理中、第２の符号化部２０２で生成された符号化データが、符号化データ選択部２０３で選択されることはない。しかし、後述する解析のための情報を得るため、第２の符号化部２０２を稼働状態にさせる。
【００２４】
画像解析部２０５は、このＳ３０１の可逆圧縮処理中、タイル単位に、第１の符号化部２０１で得られた可逆符号化データの符号量と、第２の符号化部２０２で得られた非可逆符号化データの符号量との比較（１ビットで良い）を不図示のメモリに記憶していく。符号化対象の画像が、水平方向にＴｗ個、垂直方向にＴｈ個のタイルで構成されている場合、上記メモリは、Ｔｗ×Ｔｈビットの容量があれば良い。また、この比較結果の並びは、タイルの入力順と同じである。なお、比較結果の各ビットは、そのビット位置で示されるタイルが、可逆、非可逆符号化データのいずれが少なかったのか示している、ということもできる。
【００２５】
上記のようにして、符号化対象の１ページ分の画像の可逆符号化処理を終えると、その総符号量（又はデータ記憶部１０５に生成された符号化データファイルのサイズ）と、予め設定した目標符号量と比較される。可逆符号化データの総符号量が目標符号量以下であれば、生成した可逆符号化データのみで構成される符号化データファイルを最終結果として確定し、着目ページの符号化処理を終える。以上、Ｓ３０１の処理内容を説明した。
【００２６】
一方、着目ページの可逆符号化データの総符号量が、目標符号量を超えていた場合の処理（再圧縮処理）が図３のＳ３０４以降の処理となる。なお、符号化制御部２０６は、データ記憶部１０５を制御し、この時点でデータ記憶部１０５に生成された可逆符号化データのみで構成される符号化データファイルを削除させる。また、以下に説明する再圧縮処理のモードには、モードＡ、Ｂ、並びに「自動」の３つがあり、操作者は不図示のユーザインタフェース上に表示される図４のメニュー４０１のうち、ボタン４０２乃至４０４の中の１つを事前に指示することで、モードを選択しておく。選択したモードを示す情報はデータ記憶部１０５に保持される。Ｓ３０４の判定は、この保持された情報に基づいて、操作者が選択したモードがいずれであるのかを判定する。
【００２７】
モードＡが選択されていると判断した場合には、Ｓ３０２の可逆・非可逆混在圧縮処理を行い、可逆、非可逆混在符号化データの生成を行う。また、モードＢが選択されていると判断した場合には、Ｓ３０３の非可逆符号化処理に進み非可逆符号化データの生成処理を行う。そして、選択されたモードが「自動」であった場合にはＳ３０５に進んで、符号化制御部２０６は、Ｓ３０１の処理中に画像解析部２０５の解析した結果を参照して、Ｓ３０２、Ｓ３０３のいずれに処理を進めるかを判定する（詳細後述）。
【００２８】
以下、Ｓ３０２の混在圧縮処理を説明する。この混在圧縮では、再度、符号化対象の画像データをタイル単位に入力し、タイル毎に、可逆、非可逆符号化を行い、その内の符号量の少ない方の符号化データを選択していく。このため、可逆符号化データ量をｘ軸、非可逆符号化データ量をｙ軸とするｘ−ｙ座標空間で、ｙ＝ｘの線分についてｙ≦ｘの領域には非可逆符号化データを選択するための値、ｙ＞ｘの領域には可逆符号化データを選択するための値を格納したルックアップテーブルを、符号化データ選択部２０３に設定する。この結果、可逆、非可逆の混在圧縮処理において、符号化データ選択部２０３は、タイル単位に、可逆、非可逆符号化データそれぞれの符号量を比較し、少ない方を選択し出力することになる。このとき、選択した符号化データの先頭には、識別ビットを付加する。
【００２９】
こうして１ページ分の符号化対象の画像に対して、可逆、非可逆の混在圧縮の処理が完了する。この際に生成された総符号量が目標符号量以下であった場合、その可逆、非可逆符号化データが混在した（正確には混在し得る）符号化データで構成される符号化データファイルを、最終結果として確定し、着目ページの符号化処理を終える。一方、可逆、非可逆の混在圧縮の処理が完了した際に得られた可逆、非可逆符号化データが混在した符号量が目標符号量を超えている場合、Ｓ３０３に処理を進める。
【００３０】
このＳ３０３では、非可逆符号化を行う。このため、再度、符号化対象の画像データをタイル単位に入力する。また、符号化データ選択部２０３が、全タイルに対して第２の符号化部２０２からの非可逆符号化データを選択する必要がある。このため、符号化制御部２０６は、可逆符号化データ量をｘ軸、非可逆符号化データ量をｙ軸とするｘ−ｙ座標空間の全ての座標位置に非可逆符号化データを選択するためのルックアップテーブルを、符号化データ選択部２０３に設定させるよう、符号化パラメータ設定部２０４に設定する。この結果、このＳ３０３の非可逆圧縮処理において、符号化データ選択部２０３は、全タイルに対して、非可逆符号化データを選択し出力することになる。
【００３１】
なお、第１の符号化部２０１は動作していても、していなくても構わない。また、着目ページの非可逆符号化処理を終えたとき、その時点で得られた非可逆符号化の総符号量が目標符号量を超えていることも有り得る。この場合、符号化制御部２０６は、圧縮パラメータ設定部２０４を制御し、現在使用中の量子化マトリクスＱ０から１つ上の量子化マトリクスＱ１を第２の符号化部２０２に設定する。以降、総符号量が、目標符号量を超えていると判断する限り、量子化マトリクスＱを１つ上のランクに設定していく。
【００３２】
以上第１の実施形態における符号化処理部１０９の大まかな説明を行った。次に、上記を踏まえて、符号化処理部１０９（符号化制御部２０５）の処理内容の更なる詳細を、図５Ａ乃至図５Ｃ、図６のフローチャートに参照して説明する。
【００３３】
図５Ａ乃至図５Ｃは、図３のフローチャートを更に詳しく示すものである。なお、以下の説明において、Ｃｔ、ｉは共に、不図示のメモリに確保される変数であり、Ｃｔは総符号量を示す情報を格納するため、ｉはタイルの順番を表わすための変数である。また、Ｃｋは着目タイルの可逆符号化データの符号量を表わす変数、Ｃｈは着目タイルの非可逆符号化データの符号量を表わす。また、変数Ｆｌａｇ（）は、各タイル毎に、可逆、非可逆符号化データのいずれの方が少ないかを示す判定情報を格納する配列変数である。そして、タイルの入力順は、タイル単位のラスタースキャン順とする。
【００３４】
符号化制御部２０５は、先ずＳ５０１にて、不図示のメモリに変数Ｃｔ、ｉ、Ｆｌａｇ（）を確保する。そして、Ｃｔ、ｉに対しては、それぞれを０クリアする。次に、Ｓ５０２にて、圧縮パラメータ設定部２０４を制御し、第２の符号化部２０２に初期の量子化マトリクスＱ０を設定する。量子化マトリクスにはＱ０、Ｑ１、Ｑ２…と幾つもの種類があり、「Ｑ」の添え数字が大きくなるにしたがってマトリクス内の量子化ステップ値は大きくなる傾向を有し、圧縮率が高くなる。このとき、符号化データ選択部２０３には、必ず可逆符号化データ、すなわち、第１の符号化部２０１からの符号化データを選択するように、ルックアップテーブルを設定する。
【００３５】
次いで、符号化対象の画像から、第ｉ番目のタイルを入力し（Ｓ５０３）、第１の符号化部２０１、第２の符号化部２０２にてそれぞれ符号化処理を行なわせる（Ｓ５０４）。この結果、可逆符号化データ、非可逆符号化データが生成されることになるが、先に説明したように、符号化データ選択部２０３は第１の符号化部２０１で生成された可逆符号化データを選択し、出力する（Ｓ５０５）。そして、その時点で変数Ｃｔで示される値に、可逆符号化データの符号量Ｃｋを加算し、変数Ｃｔを更新する（Ｓ５０６）。
【００３６】
この後、着目している第ｉ番目のタイルから得られた可逆符号化データの符号量Ｃｋと非可逆符号化データの符号量Ｃｈとを比較する（Ｓ５０７）。そして、比較結果がＣｋ≧Ｃｈを示していればＦｌａｇ（ｉ）に“１”を格納し（Ｓ５０８）、Ｃｋ＜Ｃｈを示していればＦｌａｇ（ｉ）に“０”を格納する（Ｓ５０９）。
【００３７】
この後、最終タイルの符号化が完了したか否かを判断する（Ｓ５１０）。否（ＮＯ）の場合には次のタイルを入力するため、変数ｉを“１”だけ増加させ（Ｓ５１１）、Ｓ５０２以降の処理を繰り返す。そして、全タイルの符号化を終えたと判断した場合（Ｓ５１０がＹｅｓの場合）、総符号量が変数Ｃｔに格納されている。そこで、可逆符号化して得られた総符号量が目標符号量Ｔａ以下になっているか否か、すなわち、Ｃｔ≦Ｔａを満たしているか否かを判定する（Ｓ５１２）。Ｃｔ≦Ｔａを満たしている場合、目標符号量Ｔａ以下の可逆符号化データの生成に成功したことになるので、本処理を終える。一方、Ｃｔ＞Ｔａ、すなわち、目標符号量Ｔａ以下の符号化データの生成に失敗したと判断した場合には、Ｓ５１３に処理を進め、後続する符号化処理の種類を決定する。以上が図３のＳ３０１における可逆圧縮の処理内容である。
【００３８】
Ｓ５１３（Ｓ３０４に対応する）に処理が進むと、モードの判定を行う。モードには先に説明したように、モードＡ、Ｂ、及び、「自動」の３種類があり、ユーザが予め選択しているものでもある。ここでは、「自動」が選択されているものとして説明する。「自動」が選択されていると判定した場合、処理はＳ５１４に進み、先の可逆圧縮処理で得られたＦｌａｇ（）の情報を参照して、混在圧縮、非可逆圧縮のいずれに進むべきかを判定する。このＳ５１４の処理を図６のフローチャートに従って更に詳しく説明する。
【００３９】
先ず変数ｉ、ＣＮＴをゼロクリアする（Ｓ６０１）。次いで、Ｆｌａｇ（ｉ）を取得し（Ｓ６０２）、１つ前のＦｌａｇ（ｉ−１）とＦｌａｇ（ｉ）とを比較する。なお、ｉが０の場合に、１つ前のＦｌａｇ（−１）が存在しないので、Ｆｌａｇ（ｉ−１）とＦｌａｇ（ｉ）は等しいものとして判定する。
【００４０】
ここで、Ｆｌａｇ（ｉ）とＦｌａｇ（ｉ−１）が異なるとき、変数ＣＮＴを“１”だけ増加させる（Ｓ６０４）。この後、変数ｉが総タイル数Ｎとを比較し、全タイルについてチェックを終えたか否かを判断する（Ｓ６０５）。否の場合には、変数ｉを“１”だけ増加させ、Ｓ６０２以降の処理を繰り返す。上記の処理を平たくいえば、Ｆｌａｇ（）のデータ配列において、０から１、或いは、１から０に変化する箇所が何箇所あったかを変数ＣＮＴを用いてでカウントしていると言える。
【００４１】
一方、全タイルについてのチェックを終えたと判断した場合、変数ＣＮＴと予め設定された閾値Ｔｈとを比較する（Ｓ６０７）。そして。ＣＮＴ≦Ｔｈであると判断した場合、符号量の少ない方を選択した場合に、連続するタイルの並びで、可逆符号化と非可逆符号化するタイルが交互に並ぶことが少ないことが判明する。従って、この場合には、混在圧縮したとしても画質劣化が起きる可能性が低いと判定できるので、混在圧縮処理を行うものとして決定する（Ｓ６０８）。一方、ＣＮＴ＞Ｔｈであった場合、混在圧縮すると画質劣化が大きいと判断できるので、画像全体に対して非可逆符号化することに決定する（Ｓ６０９）。以上が、図５ＢのＳ５１４の処理内容である。
【００４２】
さて、Ｓ５１５に処理が進むと、Ｓ５１４の判定結果が混在圧縮か、非可逆圧縮のいずれであったかを判定する。混在圧縮であると判断した場合には、Ｓ５１６に処理を進める。一方、非可逆圧縮であると判定した場合にはＳ５２６に処理を進める。以下、Ｓ５１６、すなわち、図３のＳ３０２の処理の内容を説明する。
【００４３】
先ず、変数ｉ、Ｃｔをゼロクリアする（Ｓ５１６）。このとき、符号化データ選択部２０３には、可逆、非可逆符号化データのうち、符号量の少ない方を選択するためのルックアップテーブルを設定する。次いで、第ｉ番目のタイルを入力し（Ｓ５１７）、第１の符号化部２０１、第２の符号化部２０２による符号化を行なわせる（Ｓ５１８）。そして、この結果、可逆、非可逆符号化データが得られるので、可逆符号化データの符号量Ｃｋと、非可逆符号化データの符号量Ｃｈとを比較する（Ｓ５１９）。
【００４４】
Ｃｋ≦Ｃｈの場合、着目タイル（第ｉ番目のタイル）については可逆符号化データが選択されることになるので、総符号量をカウントする変数ＣｔにＣｋを加算し（Ｓ５２０）、可逆符号化データを選択し、出力する（Ｓ５２１）。一方、Ｃｋ＞Ｃｈであった場合、着目タイル（第ｉ番目のタイル）については非可逆符号化データが選択されることになるので、総符号量をカウントする変数ＣｔにＣｈを加算し（Ｓ５２２）、非可逆符号化データを選択し、出力する（Ｓ５２３）
この後、全タイルに対する符号化処理を終えたか否かを判定し（Ｓ５２４）、否の場合には次のタイルを符号化するために変数ｉを“１”だけ増加し（Ｓ５２５）、Ｓ５１７に戻る。
【００４５】
上記のようにして、全タイルの符号化が完了すると、処理はＳ５２６に進み、総符号量Ｃｔと目標符号量Ｔａとを比較する。Ｃｔ≦Ｔａであった場合、上記のようにして生成した混在符号化データを最終的な符号化データとして決定していいので本処理を終える。一方、Ｃｔ＞Ｔａであった場合、第２の符号化部２０２に設定する量子化マトリクスＱ０から１つ上のＱ１に更新し（Ｓ５２７）、Ｓ５２８に進める。量子化マトリクスＱ０から１つ上のＱ１にする理由は、量子化マトリクスＱ０のままで非可符号化を行ったとしても、目標符号量Ｔａ以下になることは望めないからである（量子化マトリクスを固定にした場合の圧縮率が最大になるのは混在圧縮のときだけになる）。あるいは、Ｃｔ＞Ｔａであった場合、第２の符号化部２０２に設定する量子化マトリクスをＱ０からＱ１に更新し、Ｓ５１６に戻って混在圧縮をトライしてもよい。以上が、混在圧縮処理、すなわち、図３の３０２の処理の説明である。
【００４６】
次に、Ｓ５２８以降の処理、すなわち、図３のＳ３０３の非可逆圧縮処理を説明する。このＳ５２８に処理が進むのは、Ｓ５１３のモード判定でモードＢと判定した場合、Ｓ５１５にて非可逆符号化すると判定した場合、そして、Ｓ５２７の処理を経た場合の３通りである。そして、前者の２つの場合には量子化マトリクスはＱ０、Ｓ５２７を経た場合に量子化マトリクスがＱ１もしくはそれ以上に高圧縮な量子化マトリクスになる点に注意されたい。
【００４７】
先ず、変数ｉ、Ｃｔをゼロクリアする（Ｓ５２８）。このとき、符号化データ選択部２０３には、必ず非可逆符号化データを選択するためのルックアップテーブルを設定する。次いで、第ｉ番目のタイルを入力し（Ｓ５２９）、第２の符号化部２０２による非可逆符号化を行なわせる（Ｓ５３０）。そして、この結果、非可逆符号化データが得られるので、変数Ｃｔに非可逆符号化データの符号量Ｃｈを加算し、更新する（Ｓ５３１）。この後、全タイルに対する符号化処理を終えたか否かを判定し（Ｓ５３２）、否の場合には次のタイルを符号化するために変数ｉを“１”だけ増加し（Ｓ５３３）、Ｓ５２９に戻る。
【００４８】
上記のようにして、全タイルの符号化が完了すると、処理はＳ５３４に進み、総符号量Ｃｔと目標符号量Ｔａとを比較する。Ｃｔ≦Ｔａであった場合、上記のようにして生成した非可逆符号化データを最終的な符号化データとして決定していいので本処理を終える。一方、Ｃｔ＞Ｔａであった場合、第２の符号化部２０２に設定する量子化マトリクスを１ランクアップさせ、Ｓ５２８に戻す。以上が、非可逆圧縮処理、すなわち、図３の３０３の処理の説明である。
【００４９】
以上説明したように本実施形態によれば、先ず、最高画質が得られる可逆符号化処理を行う。従って、その結果、目標符号量以下であれば、その可逆符号化データを最終の符号化データとして扱えることとなり、特に、文字線画等の文章を主体の画像に有利に作用する。一方、目標符号量以下の可逆符号化データの生成が失敗した場合、自動的に圧縮率のより高い可逆、非可逆混在圧縮、或いは、非可逆圧縮のいずれかに移行するので、目標符号量以下に納めることが期待できる。
【００５０】
特に、符号化モードとして「自動」を選択した場合、最初の可逆符号化処理中に、画質をも考慮にして次の符号化の種類として混在圧縮にすべきか、非可逆符号化にすべきかの判断するための情報の収集も行っている。そして、混在圧縮に処理を進めるのは、画質上の問題がないと判断した場合のみであり、そのような画像の場合には、画質劣化が目立たず高い圧縮率の符号化データの生成処理が期待できる。
【００５１】
なお、実施形態では、目標符号量Ｔａはどのようにして設定しても構わないが、例えば符号化対象の画像データのサイズから、求めるようにしても良い。符号化データを送信する場合にはその伝送路の帯域から決定しても良い。
【００５２】
また、上記第１の実施形態では、図３のＳ３０１（可逆圧縮）からＳ３０２（混在圧縮）に処理が進んだとき、第２の符号化部２０２に設定する量子化マトリクスは変化しなかった。しかし、可逆圧縮処理しているとき、タイル単位に、可逆符号化データの符号量、非可逆符号化データの符号量の両方を記憶するようにしても良い。このようにすると、可逆符号化処理が完了したとき、初期の量子化マトリクスＱ０における混在圧縮の総符号量が演算で求められるので、Ｓ３０２の処理を量子化マトリクスＱ０で開始するか、Ｑ１で開始するかを決定できる。また、Ｓ３０１からＳ３０３に進んだ場合にも、量子化マトリクスＱ０から開始するのか、Ｑ１から開始するのかの指標も得られる。
【００５３】
また、上記実施形態では、図６の混在圧縮、非可逆圧縮の判定処理は、図３の可逆圧縮（Ｓ３０１）の後に行うものとしたが、これに限るものではない。可逆圧縮（Ｓ３０１）中の着目タイルについての可逆、非可逆符号化を終えた時点で、着目タイルについていずれの符号量が少ないかは判明しているので、この段階で、図６に示す変数ＣＮＴを更新できるし、その段階で、ＣＮＴ＞Ｔｈとなったと判断した場合には、非可逆圧縮に進むと決定しても良い。
【００５４】
また、上記実施形態では、「自動」モード時における混在圧縮、非可逆圧縮のいずれに進むかの判定では、着目タイルとその直前（左隣）のタイルの２つのＦｌａｇ（）の値が異なる個数をカウントしたが、タイルの並びと同様、Ｆｌａｇ（）が２次元空間に並んでいるものとして判定しても良い。すなわち、着目タイルのＦｌａｇ（ｉ）と、着目タイルの上下左右に隣接する各タイルのＦｌａｇ（）それぞれとを比較し、その中に１つでも異なるものが存在した場合にカウントアップするようにしても良い。
【００５５】
また、上記実施形態ではルックアップテーブルはｙ＝ｘの線分を境に選択するべき符号化方式を切り替えているが、特定の特徴を持つ画像の符号量に配慮し、ｙ＜ｘとなる部分を持つようにしても良い。これによりさらに画質に配慮した混在圧縮が可能となる。
【００５６】
［第２の実施形態］
ここでは、上記第１の実施形態における画像解析について異なる部分のみを第２の実施形態として以下、説明する。本第２の実施形態では、第１の実施形態１の制御に加えてパターン部を考慮した符号化処理を行う。第１の実施形態では画像圧縮方式の切り替わりを全てカウントしていたが、本第２の実施形態では、タイル間の画質差が画質劣化の様に見えてしまう可能性の特に高い特性を持つ、パターン部の境界における切り替わりのみをカウントするものである。
【００５７】
本第２の実施形態の構成図を図９に示す。本第２の実施形態では、図２の構成に加えてパターン判定部２０７をもつ。パターン判定部２０７はデータ入力部１０２より画像タイルを受け取り、図７に示すような、特定パターンの特性があるかどうかを判定してパターン判定マップをＲＡＭ１０４に格納する。パターン判定の方法は特許文献２でも提案されていることから詳細は省略するが、画像タイル内の色数やヒストグラム等から解析可能である。因に、図７に示すパターンを判定する場合、着目タイル内をラスタースキャンしていく過程で、着目画素とその隣接する画素群に含まれる色数が２となる個数が多く、着目画素と同じ画素値を持つ画素が連続しない個数が多い場合とすれば良い。すなわち、それぞれを計数し、閾値と比較する処理を行えば、図７に示すようなパターンであるか否かを判定できる。
【００５８】
画像解析部２０５は第１符号化部２０１、第２符号化部２０２より画像タイルを受け取り、圧縮方式が切り替わる画像タイルを検出した際にはＲＡＭ１０４からパターン判定マップを読み出す。解析対象である画像タイルの上下左右４箇所のいずれか１箇所でもパターンが存在する場合には、カウンタをカウントアップする。そうでない場合には、カウントアップしない。判定結果は図８（Ａ）、（Ｂ）の様になる。図８（Ａ）、（Ｂ）の黒がパターンと判定された画像タイルであり、同時に可逆符号化と判定された画像タイルである。白が非可逆符号化と判定された画像タイルで、最終的に斜線部の画像タイルが圧縮方式の切り替わる画像タイルとして検出される。パターン判定マップで参照する周囲の画像タイル数は４つに限るものではなくより厳密に判定したい場合には参照する箇所を増やしたり、周囲のパターンと判定された画像タイルの配置によってカウントアップの有無を制御したりしてもよい。
【００５９】
以上の制御を行うことにより、圧縮方式が安易に非可逆圧縮Ｓ３０３へ遷移してしまうのを避けることが出来る。つまり、非可逆圧縮Ｓ３０３そのものによる画質劣化を出来るだけ回避しながら、異なる圧縮方式の切り替わりで起こる画質劣化を回避することが可能である。
【００６０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005873272.tif 000002
【図２】
0005873272.tif 000003
【図３】
0005873272.tif 000004
【図４】
0005873272.tif 000005
【図５Ａ】
0005873272.tif 000006
【図５Ｂ】
0005873272.tif 000007
【図５Ｃ】
0005873272.tif 000008
【図６】
0005873272.tif 000009
【図７】
0005873272.tif 000010
【図８】
0005873272.tif 000011
【図９】
0005873272.tif 000012