画像圧縮装置及び画像圧縮プログラム
【課題】網点画像のような隣接する画素間の濃度差が大きい画像において、復号後の画質劣化を抑えつつ符号化効率を向上させること。
【解決手段】画像圧縮部は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’又は‘1’にした値Aと、対象ビット桁を変更して下位ビットを全て‘0’又は‘1’にした値Bを算出して、注目画素の値と値Aの差の絶対値(第1誤差)と注目画素の値と値Bの差の絶対値(第2誤差)をそれぞれ算出し、第1誤差が第2誤差以下である場合は注目画素の対象ビット桁の値はそのままとし、第1誤差が第2誤差より大きい場合は注目画素の対象ビット桁の値を変更する。
【解決手段】画像圧縮部は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’又は‘1’にした値Aと、対象ビット桁を変更して下位ビットを全て‘0’又は‘1’にした値Bを算出して、注目画素の値と値Aの差の絶対値(第1誤差)と注目画素の値と値Bの差の絶対値(第2誤差)をそれぞれ算出し、第1誤差が第2誤差以下である場合は注目画素の対象ビット桁の値はそのままとし、第1誤差が第2誤差より大きい場合は注目画素の対象ビット桁の値を変更する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを圧縮するための画像圧縮装置及び画像圧縮プログラムに関するものである。
【背景技術】
【0002】
近年、デジタル機器の発展に伴って、画像データ等の様々な圧縮方式が提案されているが、圧縮方式の1つとしてJPEG(Joint Photographic Experts Group)2000が知られている。JPEG2000は画像の圧縮・展開の方法を規定したもので、JPEGを発展させたものである。JPEG2000は、画像データを複数のタイルに分割し、タイル毎にウェーブレット変換、量子化、そしてビットプレーン毎に算術符号化による圧縮処理を行っている。
【0003】
各種画像のうち、網点画像は隣接する画素の濃度差が大きく、ビットプレーンにおいて同じ値(‘0’又は‘1’)が連続しないため、符号化効率が悪くなる傾向にある。そこで、符号化効率を高めるために画像の種類を判断して量子化テーブルを切り替える方法や(特許文献1)、量子化データにおいて最下位ビットを‘0’又は‘1’に置き換えて値を固定する方法が提案されている(特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平07−038761号公報
【特許文献2】特開平10−285405号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載された方法の場合、隣接する画素間での値の並びが考慮されないため、網点画像においては符号化効率の向上はあまり望めない。また、特許文献2に記載された方法の場合、最下位ビットの値が強制的に変更されるため、復号後の画像の画質劣化が大きくなる問題があった。特に圧縮率を制御する場合は、符号化されるビット位置が変動するため、最下位ビットの値を固定にする方法は効果がない。
【0006】
本発明は、上記の問題を解決するためになされたもので、網点画像のような隣接する画素間の濃度差が大きい画像において、復号後の画質劣化を抑えつつ符号化効率を向上させる画像圧縮装置及び画像圧縮プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0007】
請求項1に記載の発明の画像圧縮装置は、入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段と、前記変換された画像データを複数のタイルに分割する分割手段と、前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段と、前記サブバンド毎に量子化する量子化手段と、前記量子化された前記サブバンドを複数のブロックに分解する分解手段と、前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段と、前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段と、前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段と、を備える。
【0008】
また、請求項5に記載の発明の画像圧縮プログラムは、コンピュータを、入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段、前記変換された画像データを複数のタイルに分割する分割手段、前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段、前記サブバンド毎に量子化する量子化手段、前記量子化された前記サブバンドを複数のブロックに分解する分解手段、前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段、前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段、前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段、として機能させるものである。
【0009】
これらの構成によれば、ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の対象ビット桁より下位ビットの値に応じて注目画素の対象ビット桁の値を調整する(具体的には、変更するかしないか)ため、注目画素の前後の各画素との連続性と注目画素の値変化を考慮してビット丸め処理を行うことができる。つまり、注目画素の前後の各画素との連続性を考慮することにより符号化効率を向上させることができる。また、注目画素の値変化を考慮することによってビット丸め処理による注目画素の画素値の変化量をできるだけ抑えることができるため、復号後の画質劣化を軽減することができる。
【0010】
請求項2に記載の発明の画像圧縮装置は、請求項1に記載の画像圧縮装置であって、前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである。
【0011】
この構成によれば、注目画素のビット丸め処理前後の画素値の変化量を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【0012】
請求項3に記載の発明の画像圧縮装置は、請求項1又は2に記載の画像圧縮装置であって、前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なり、前記注目画素以前の各画素の前記対象ビット桁において予め定められた数以上同じ値が連続している場合、前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差と前記第2誤差の差が予め定められた設定範囲内のときは前記注目画素の前記対象ビット桁をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである。
【0013】
この構成によれば、注目画素以前の画素の対象ビット桁の値の連続性を優先させることができ、符号化効率を向上させることができる。一方、第1誤差と第2誤差の差が設定範囲外のときは注目画素の対象ビット桁の値を変更することによって、注目画素のビット丸め処理前後の画素値変化をできるだけ抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【0014】
請求項4に記載の発明は、請求項1に記載の画像圧縮装置であって、前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、前記注目画素の前記対象ビット桁より下位ビットを全て‘0’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以上のときは前記注目画素の前記対象ビット桁を‘1’に変更し、前記下位ビットが示す値が前記閾値未満であるときは前記注目画素の前記対象ビット桁の値をそのままとし、前記注目画素の前記対象ビット桁より下位ビットを全て‘1’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以下のときは前記注目画素の前記対象ビット桁を‘0’に変更し、前記下位ビットが示す値が前記閾値より大きいときは前記注目画素の前記対象ビット桁の値をそのままとするものである。
【0015】
この構成によれば、注目画素のビット丸め処理前後の画素値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【発明の効果】
【0016】
この発明によれば、注目画素のビット丸め処理前後の画素値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【図面の簡単な説明】
【0017】
【図1】画像圧縮装置の電気的構成を示すブロック図。
【図2】JPEG2000方式による画像圧縮の流れを示す図。
【図3】タイル分割について説明するための図。
【図4】離散ウェーブレット変換について示した模式図。
【図5】エントロピー符号化の流れを示す図。
【図6】プレシンクト分割を模式的に示した図。
【図7】コードブロック分割を模式的に示した図。
【図8】ビットプレーン分割を模式的に示した図。
【図9】コーディングパスへの分割を模式的に示した図。
【図10】注目画素の前画素、後画素における対象ビット桁の値の組み合わせを示した表。
【図11】第1の実施例を説明するための図。
【図12】第1の実施例を説明するための図。
【図13】第1の実施例におけるビット丸め処理の流れを示したフローチャート。
【図14】第2の実施例を説明するための図。
【図15】第2の実施例を説明するための図。
【図16】第2の実施例を説明するための図。
【図17】第2の実施例におけるビット丸め処理の流れを示したフローチャート。
【図18】図17に続くフローチャート。
【図19】第3の実施例を説明するための図。
【図20】第3の実施例を説明するための図。
【図21】第3の実施例におけるビット丸め処理の流れを示したフローチャート。
【発明を実施するための形態】
【0018】
本発明における画像圧縮装置及び画像圧縮プログラムの実施の形態について図面を参照して説明する。図1は、本実施の形態における画像圧縮装置1の電気的構成を示すブロック図である。尚、画像圧縮装置1は、パーソナルコンピュータ(パソコン)やワークステーション、携帯情報端末等の情報処理装置で実現され、図1のブロック図は画像圧縮装置1がこれらの情報処理装置によって実現された場合を例に図示している。この他、コピー機やスキャナ等の画像読取装置や、デジタルカメラやデジタルビデオカメラ、デジタルカメラを搭載した携帯電話等の撮像装置に組み込まれて用いられてもよい。
【0019】
図1に示すように、画像圧縮装置1は制御部11、記憶部12、入力操作部13、表示部14、I/F部15、ネットワークI/F部16及び画像圧縮復号部17等を備えて構成される。制御部11は、CPU(Central Processing Unit:中央処理装置)等によって構成され、入力された指示信号等に応じて記憶部12に記憶されたプログラムを読み出して処理を実行し、各機能部への指示信号の出力、データ転送等を行って画像圧縮装置1を統括的に制御する。
【0020】
記憶部12は、画像圧縮装置1の備える種々の機能を実現するためのプログラムやデータ等を記憶する。本実施の形態では、記憶部12は画像圧縮プログラム121を記憶する。画像圧縮プログラム121は、I/F部15又はネットワークI/F部16が入力した画像データをJPEG2000方式で圧縮して符号化データを生成するためのプログラムである。
【0021】
入力操作部13は、各種操作ボタンやマウス等のポインティングデバイスを備え、ユーザによって操作がなされると、操作信号を制御部11へ出力する。またユーザは入力操作部13を介して圧縮率の設定を行う。表示部14は、液晶ディスプレイ等の表示画面であり、入力操作部13から入力された内容に応じた表示を行ったり、制御部11による処理内容や処理結果を表示したりする。
【0022】
I/F部15はIEEE1394やUSB等のインターフェイスであり、外部装置と直接データの送受信を行うことができる。ネットワークI/F部16は、LANボード等の通信モジュールから構成され、ネットワークI/F部16と接続されたネットワーク(不図示)を介して外部装置と種々のデータの送受信を行う。画像圧縮復号部17は、記憶部12に記憶された画像圧縮プログラム121を実行することによって、I/F部15やネットワークI/F部16を介して入力された画像データをJPEG2000方式で圧縮して圧縮データを生成する。また、画像圧縮復号部17は、圧縮データの復号も行う。
【0023】
図2は、本実施の形態におけるJPEG2000方式による画像圧縮の流れを示す図である。まず画像圧縮復号部17は、入力された画像データの表色系を例えばRGB方式からYCbCr方式へコンポーネント変換して(色空間変換21)、表色系が変換された画像データを図3に示すように複数のタイルに分割する(タイル分割22)。
【0024】
そして、画像圧縮復号部17は1つのバンドの各タイルに対して離散ウェーブレット変換を施して係数データを出力する(離散ウェーブレット変換23)。図4は、離散ウェーブレット変換について示した模式図である。図4(a)のタイル画像(0LL)に対して、離散ウェーブレット変換を施し、図4(b)に示すようにサブバンド1LL、1HL、1LH及び1HHに分解する。続いて、低周波成分1LLに対して離散ウェーブレット変換を施し、図4(c)に示すようにサブバンド2LL、2HL、2LH及び2HHに分解する。尚、図4では2レベル変換について図示しているが、離散ウェーブレット変換の回数は特に制限されるものではない。
【0025】
次に、画像圧縮復号部17は離散ウェーブレット変換された係数データに対して線形量子化を行い(量子化24)、ユーザ等によって設定された圧縮率(以下「設定圧縮率」という)で量子化された量子化データに対してエントロピー符号化を行う(エントロピー符号化25)。ここで、エントロピー符号化25の処理手順について説明する。図5は、エントロピー符号化の流れを示す図である。画像圧縮復号部17は、まず各サブバンドの係数をプレシンクトと呼ばれる領域に分割する(プレシンクト分割251)。図6はプレシンクト分割を模式的に示した図である。図6において、51の部分は元の画像において同領域の部分を周波数変換したものであり、これらの部分は同じプレシンクトに属しているという。
【0026】
次に、画像圧縮復号部17はプレシンクトをコードブロックという更に小さな領域に分割する(コードブロック分割252)。図7はコードブロック分割を模式的に示した図である。このコードブロック単位がエントロピー符号化を行う際の基本単位となる。
【0027】
そして、画像圧縮復号部17は各コードブロックについて線形量子化された離散ウェーブレット変換の変換係数をビットプレーンに展開する(ビットプレーン展開253)。図8はビットプレーン展開を模式的に示した図である。図8において、61はあるコードブロックにおける線形量子化された離散ウェーブレット変換の係数データを例示したものである。62は、係数データ61の符号を表すビット列であり、値0は正値、値1は負値を意味する。63は係数データ61の絶対値をMSB(Most Significant Bit)からLSB(Least Significant Bit)に2値展開したビットプレーンである。
【0028】
例えば、値が+12の係数データ64は正値であるため、対応する符号ビット65は‘0’である。また、+12の絶対値の2進数表現は(1100)であるため、ビットプレーンに対応する箇所66a、66b、66c及び66dの値はそれぞれ‘1’、‘1’、‘0’、‘0’となる。同様に、値が−6の係数データ67は負値であるため、対応する符号ビット68は‘1’である。また、−6の絶対値の2進数表現は(0110)であるため、ビットプレーンの対応する箇所69a、69b、69c及び69dの値はそれぞれ‘0’、‘1’、‘1’、‘0’となる。MSB側で全て0であるビットプレーンをゼロビットプレーンといい、データは保存されない一方、コードブロック毎に後述のゼロビットプレーン枚数がカウントされる。
【0029】
続いて、画像圧縮復号部17は、ビットプレーンを更にsignificance propagationパスと、magnitude refinementパスと、cleanupパスに分割する(コーディングパスへの分割254)。図9はコーディングパスへの分割を模式的に示した図である。図9に示すように、各ビットプレーン71a〜71d(以下、これらをまとめて「ビットプレーン71」という)は、コーディングパスへの分割により次のように分割される。つまり、それぞれsignificance propagationパス72b〜72d(以下、これらをまとめて「significance propagationパス72」という)、magnitude refinementパス73b〜73d(以下、これらをまとめて「magnitude refinementパス73」という)、cleanupパス74b〜74dに分割される。ただし、最上位ビット(MSB側)のビットプレーン71aはcleanupパス74aにのみ対応させる。以下、cleanupパス74a〜74dをまとめて「cleanupパス74」という。
【0030】
各ビットプレーン71及び各コーディングパス72〜74は、全て縦横方向の座標長によるサイズが等しい。また、各コーディングパス72〜74にはビット値が定義された位置と定義されていない位置とが存在する。図9において、例えば76や77のように、ビット値が定義された位置には網掛け(斜線)が施されている。そして、コーディングパス72〜74(例えば、コーディングパス72b〜74b)の網掛け部分に定義されたビット値は、分割前のビットプレーン71(例えば、ビットプレーン71b)上の対応する位置におけるビット値と等しい。ビットプレーンをコーディングパスに分割する処理方法については、各文献により周知のものであるため説明を省略する。
【0031】
最後に画像圧縮復号部17は、コーディングパス分割後のデータを算術符号化する(二値算術符号化255)。以上のようにしてエントロピー符号化25を行った後、画像圧縮復号部17は圧縮率の調整を行い(圧縮率調整26)、画像圧縮復号部17はファイルにデータを書き込むための符号ストリームの形成を行う(符号ストリーム27)。この符号ストリーム処理については、各文献により周知のものであるため説明を省略する。
【0032】
各種画像のうち、網点画像は隣接する画素間の濃度差が大きく、ビットプレーンにおいて同じ値(‘0’又は‘1’)が連続しないため、符号化効率が悪くなる傾向にある。そこで、符号化効率を高めるために画像の種類を判断して量子化テーブルを切り替える方法や、量子化データにおいて最下位ビットを‘0’又は‘1’に置き換えて値を固定する方法が提案されている。しかし、量子化テーブルを切り替える方法の場合、隣接する画素間での値の並びが考慮されないため、網点画像においては符号化効率の向上はあまり望めない。また、最下位ビットの値を固定する方法の場合、最下位ビットの値が強制的に変更されるため、復号後の画像の画質劣化が大きくなる問題があった。
【0033】
そこで、網点画像のような隣接する画素間の濃度差が大きい画像においても復号後の画質劣化を抑えつつ符号化効率を向上させる第1〜第3の実施例について以下説明する。
【0034】
<第1の実施例>
本実施例では、コードブロックの注目画素の前後の各画素における対象ビット桁の各値が異なる場合、注目画素の値と注目画素の対象ビット桁の値はそのままで対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、注目画素の値と注目画素の対象ビット桁の値を変更して対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、第1誤差が第2誤差以下のときは注目画素の対象ビット桁の値はそのままで、第1誤差が第2誤差より大きいときは注目画素の対象ビット桁の値を変更して、復号後の画質劣化を抑えつつ符号化効率を向上させる方法について説明する。
【0035】
図10は、注目画素の前画素、後画素における対象ビット桁の値の組み合わせを示した表である。まず、前画素、注目画素及び後画素の各対象ビット桁の値が全て‘0’又は‘1’である場合、画像圧縮復号部17は注目画素の対象ビット桁の変更は行わない。一方、前画素と後画素の対象ビット桁の値が同じで注目画素の対象ビット桁のみが異なる場合、例えば前画素=‘0’、注目画素=‘1’、後画素=‘0’である場合、画像圧縮復号部17は注目画素の対象ビット桁の値を前画素の対象ビット桁の値に変更する。つまり、上記例の場合は、注目画素=‘1’を‘0’に変更する。こうして値の連続性を持たせることで、符号化効率が向上する。
【0036】
尚、画像圧縮復号部17はこのように注目画素の対象ビット桁の値を調整した後、対象ビット桁より下位ビットを全て‘0’又は‘1’としてビット丸め処理を行う。
【0037】
そして、前画素と後画素の対象ビット桁の値が異なる場合、例えば前画素=‘0’、注目画素=‘0’、後画素=‘1’である場合、画像圧縮復号部17は、注目画素の対象ビット桁の値を変更しない場合と変更した場合の値を、変更前の注目画素の値と比較して、対象ビット桁を変更するか否かを決定する。以下、画像圧縮復号部17による注目画素の対象ビット桁を変更するか否かの判断方法について詳しく説明する。
【0038】
まず、図11を用いて説明する。図11(a)は元の注目画素の値とその前後の画素の値を示した図であり、前画素=11001111B、注目画素=10001100B、後画素=11011000Bである。前画素及び後画素の対象ビット桁の値と図10の表を参照すると、前画素=‘0’、後画素=‘1’であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を変更すべきか否かを判断することになる。
【0039】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、元の注目画素は10001100B=140Dであるため、
第1誤差=|140−128|=12
第2誤差=|140−144|=4
となる。
【0040】
次に、画像圧縮復号部17は第1誤差と第2誤差の差を求め、その差が0以下であれば(つまり第1誤差が第2誤差以下)注目画素の対象ビット桁の値はそのままとし、差が0より大きい値であれば(つまり第2誤差が第1誤差未満)注目画素の値を変更する。上記の場合、
第1誤差−第2誤差=12−4=8>0
であるため、画像圧縮復号部17は注目画素の対象ビット桁を変更する。つまり、画像圧縮復号部17は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’にした値と対象ビット桁を変更して下位ビットを全て‘0’にした値に対して、元の注目画素との差の絶対値をそれぞれ算出し、差の小さい方(差が同じ場合は対象ビット桁はそのまま)を採用する。
【0041】
次に、別の例について図12を用いて説明する。図12(a)は元の注目画素の値を示した図であり、注目画素=10000111B、前画素=11001111B、後画素=11011000Bである。前画素及び後画素の対象ビット桁の値と図10の表を参照すると、前画素=‘0’、後画素=‘1’であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を変更すべきか否かを判断することになる。
【0042】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、元の注目画素の値は10000111B=135Dであるため、
第1誤差=|135−128|=7
第2誤差=|135−144|=9
となる。
【0043】
次に、画像圧縮復号部17は第1誤差と第2誤差の差を求め、その差が0以下であれば注目画素の対象ビット桁の値はそのままとし、差が0より大きい値であれば注目画素の値を変更する。上記の場合、
第1誤差−第2誤差=7−9=−2≦0
であるため、画像圧縮復号部17は注目画素の対象ビット桁をそのままとする。
【0044】
図13は、本実施例におけるビット丸め処理の流れを示したフローチャートである。以下「ビット丸め処理」とは、注目画素の対象ビット桁の調整(変更するか、そのままとするかを判断して実行する処理)と、対象ビット桁より下位ビットを全て‘0’又は‘1’に置き換える処理のことを言う。また、ビット丸め処理に関するプログラムは画像圧縮プログラム121に含まれており、画像圧縮復号部17は画像圧縮プログラム121に従って処理を実行する中でビット丸め処理を行う。
【0045】
まず、画像圧縮復号部17は、コードブロックの注目画素、注目画素の前画素及び後画素の対象ビット桁の各値を比較する。前画素、注目画素及び後画素の対象ビット桁の各値が全て同じである場合(ステップS11;YES)、画像圧縮復号部17はステップS21へ処理を移行する。
【0046】
前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が同じである場合、即ち、注目画素の対象ビット桁の値のみが異なる場合(ステップS12;YES)、前画素の対象ビット桁の値が‘0’であれば(ステップS13;‘0’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’から‘0’に変更する(ステップS14)。前画素の対象ビット桁の値が‘1’であれば(ステップS13;‘1’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’から‘1’に変更する(ステップS14)。そして画像圧縮復号部17はステップS21へ処理を移行する。
【0047】
一方、前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が異なる場合(ステップS12;NO)、画像圧縮復号部17は、注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’又は‘1’にした値Aと注目画素の対象ビット桁の値を変更して下位ビットを全て‘0’又は‘1’にした値Bを生成する(ステップS16)。続いて、画像圧縮復号部17は、注目画素と値Aの差の絶対値である第1誤差と、注目画素と値Bの差の絶対値である第2誤差を算出する(ステップS17)。
【0048】
そして、画像圧縮復号部17は、第1誤差と第2誤差の差を算出する(ステップS18)。その差が0以下である場合(ステップS18;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS19)。差が0より大きい場合(ステップS18;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値を変更する(ステップS20)。
【0049】
次に、画像圧縮復号部17は、注目画素の対象ビット桁より下位のビットを全て‘0’又は‘1’に変更する(ステップS21)。ここで、下位ビットを全て‘0’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘0’にしたときの値A及び値Bを生成する。また、下位ビットを全て‘1’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘1’にしたときの値A及び値Bを生成する。
【0050】
そして、コードブロックの全ての画素についてビット丸め処理を行っていない場合(ステップS22;NO)、画像圧縮復号部17は注目画素を移動させて(ステップS23)、ステップS11へ処理を移行する。コードブロックの全ての画素のビット丸め処理が終了した場合(ステップS22;NO)、画像圧縮復号部17は処理を終了する。そして、画像圧縮復号部17は、ビット丸め処理終了後に算術符号化を行う。
【0051】
次に、圧縮データの復号処理の流れについて説明する。まず画像圧縮復号部17は圧縮データに対して逆エントロピー符号化を行い、量子化データを取得する。続いて画像圧縮復号部17は量子化データに対して逆量子化を行い、離散ウェーブレット変換された係数データを取得する。そして画像圧縮復号部17は係数データに対して逆離散ウェーブレット変換を行い、タイル画像に復元し、タイル画像を組み合わせた画像の表色系のコンポーネント変換を行って復号データを取得し、復号処理を終了する。
【0052】
以上、説明したように、画像圧縮復号部17は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’又は‘1’にした値Aと、対象ビット桁を変更して下位ビットを全て‘0’又は‘1’にした値Bを算出して、注目画素の値と値Aの差の絶対値(第1誤差)と注目画素の値と値Bの差の絶対値(第2誤差)をそれぞれ算出し、第1誤差が第2誤差以下である場合は注目画素の対象ビット桁の値はそのままとし、第1誤差が第2誤差より大きい場合は注目画素の対象ビット桁の値を変更することにより、注目画素のビット変更前後の値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、網点画像のような隣接する画素間の濃度差が大きい画像においても符号化効率を向上させることができる。
【0053】
<第2の実施例>
本実施例では、コードブロックの注目画素の前後の各画素における対象ビット桁の各値が異なり、注目画素以前の各画素の対象ビット桁において所定数以上同じ値が連続している場合について説明する。
【0054】
最初に図14を用いて説明する。図14(a)は注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10000111B、後画素=11011000Bである。前画素及び後画素の対象ビット桁の値と図10の表を参照すると、前画素=‘0’、後画素=‘1’であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を変更すべきか否かを判断することになる。
【0055】
次に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、注目画素の元の値は10000111B=135Dであるため、
第1誤差=|135−128|=7
第2誤差=|135−144|=9
となる。
【0056】
続いて、画像圧縮復号部17は注目画素以前の画素の対象ビット桁において同じ値が所定数(例えば5つ以上)連続しているか否かを判別する。この同じ値の連続数は適宜設定可能とする。図14(a)の場合、注目画素以前の画素の対象ビット桁において‘0’が5つ連続している(図14(a)の網掛け部分)。従って、画像圧縮復号部17は第1誤差と第2誤差の差を求める。そして、画像圧縮復号部17は第1誤差と第2誤差の差が設定範囲内であるか否かを判別して、第1誤差と第2誤差の差が設定範囲内であるときは注目画素の対象ビット桁の値はそのままとし、第1誤差と第2誤差の差が設定範囲外のときは注目画素の対象ビット桁の値を第1の実施例に記載した方法に従って調整する。例えば、設定範囲を−6≦x≦+6(xは第1誤差と第2誤差の差)と設定したとき、上記の場合、
第1誤差−第2誤差=7−9=−2
となり、第1誤差と第2誤差の差は設定範囲内である。従って、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする。図14(b)は、ビット丸め処理後の注目画素とその周辺画素の値を示した図である。
【0057】
次に、別の例について図15を用いて説明する。図15(a)は元の注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10001100B、後画素=11011000Bである。
【0058】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、注目画素=10001100B=140Dであるため、
第1誤差=|140−128|=12
第2誤差=|140−144|=4
となる。
【0059】
続いて、画像圧縮復号部17は注目画素以前の画素の対象ビット桁において同じ値が5つ以上連続しているか否かを判別する。図15(a)の場合、注目画素以前の画素の対象ビット桁において‘0’が5つ連続している(図15(a)の網掛け部分)。従って、画像圧縮復号部17は第1誤差と第2誤差の差を求める。
【0060】
第1誤差−第2誤差=12−4=8
となり、第1誤差と第2誤差の差は設定範囲外であるため、画像圧縮復号部17は第1の実施例に記載した方法に従って注目画素の対象ビット桁の値を変更するか否かを判断する。上記の場合、第1誤差と第2誤差の差が+8であるため、第1誤差より第2誤差が小さい。従って、画像圧縮復号部17は対象ビット桁を変更する。図15(b)は、ビット丸め処理後の注目画素とその周辺画素の値を示した図である。
【0061】
更に、別の例について図16を用いて説明する。図16(a)は元の注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10000011B、後画素=11011000Bである。
【0062】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、注目画素=10000011B=131Dであるため、
第1誤差=|131−128|=3
第2誤差=|131−144|=13
となる。
【0063】
次に、画像圧縮復号部17は注目画素以前の画素の対象ビット桁において同じ値が5つ以上連続しているか否かを判別する。図16(a)の場合、注目画素以前の画素の対象ビット桁において‘0’が5つ連続している(図16(a)の網掛け部分)。従って、画像圧縮復号部17は第1誤差と第2誤差の差を求める。
【0064】
第1誤差−第2誤差=3−13=−10
となり、第1誤差と第2誤差の差は設定範囲外であるため、画像圧縮復号部17は第1の実施例に記載した方法に従って注目画素の対象ビット桁の値を変更するか否かを判断する。上記の場合、第1誤差と第2誤差の差が−10であるため、第2誤差より第1誤差が小さい。従って、画像圧縮復号部17は対象ビット桁をそのままとする。図16(b)は、ビット丸め処理後の注目画素とその周辺画素の値を示した図である。
【0065】
このように、本実施例では注目画素以前の画素の対象ビット桁の値の連続性を優先して対象ビット桁の値の調整をするため、第1誤差より第2誤差の方が小さくても(つまり、注目画素の対象ビット桁を変更した方が注目画素の値の変化量が小さくても)第1誤差と第2誤差の差が設定範囲内であれば注目画素の対象ビット桁の値をそのままとする。第1誤差と第2誤差の差が設定範囲外であれば、復号後の画質保持を優先するために、注目画素の対象ビット桁の値を第1の実施例に従って調整する。
【0066】
図17及び18は、本実施例における注目画素のビット丸め処理の流れを示したフローチャートである。まず、画像圧縮復号部17は、コードブロックの注目画素、注目画素の前画素及び後画素の対象ビット桁の各値を比較する。注目画素、注目画素の前画素及び後画素の対象ビット桁の各値が全て同じである場合(ステップS11;YES)、画像圧縮復号部17はステップS21へ処理を移行する。
【0067】
前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が同じである場合、即ち、注目画素の対象ビット桁の値のみが異なる場合(ステップS12;YES)、前画素の対象ビット桁の値が‘0’であれば(ステップS13;‘0’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’から‘0’に変更する(ステップS14)。前画素の対象ビット桁の値が‘1’であれば(ステップS13;‘1’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’から‘1’に変更する(ステップS14)。そして画像圧縮復号部17はステップS21へ処理を移行する。
【0068】
一方、前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が異なる場合(ステップS12;NO)、画像圧縮復号部17は、注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’又は‘1’にした値Aと注目画素の対象ビット桁の値を変更して下位ビットを全て‘0’又は‘1’にした値Bを生成する(ステップS16)。続いて、画像圧縮復号部17は、注目画素と値Aの差の絶対値である第1誤差と、注目画素と値Bの差の絶対値である第2誤差を算出する(ステップS17)。
【0069】
そして、画像圧縮復号部17は、注目画素以前の画素の対象ビット桁において、同じ値が所定数以上続いているか否かを判断する(ステップS31)。同じ値が所定数以上続いている場合(ステップS31;YES)、画像圧縮復号部17は第1誤差と第2誤差の差を算出し、その差が設定範囲内であるか否か判断する(ステップS32)。第1誤差と第2誤差の差が設定範囲内である場合(ステップS32;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS19)。第1誤差と第2誤差の差が設定範囲外であって(ステップS32;NO)、0以下である場合(ステップS18;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS19)。第1誤差と第2誤差の差が設定範囲外であって(ステップS32;NO)、0より大きい場合(ステップS18;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値を変更する(ステップS20)。
【0070】
また、注目画素以前の画素の対象ビット桁において同じ値が所定数以上続いていない場合(ステップS31;NO)、画像圧縮復号部17はステップS18へ処理を移行する。
【0071】
続いて、画像圧縮復号部17は、注目画素の対象ビット桁より下位のビットを全て‘0’又は‘1’に変更する(ステップS21)。ここで、下位ビットを全て‘0’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘0’にしたときの値A及び値Bを生成する。また、下位ビットを全て‘1’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘1’にしたときの値A及び値Bを生成する。
【0072】
そして、コードブロックの全ての画素についてビット丸め処理を行っていない場合(ステップS22;NO)、画像圧縮復号部17は注目画素を移動させて(ステップS23)、ステップS11へ処理を移行する。コードブロックの全ての画素のビット丸め処理が終了した場合(ステップS22;NO)、画像圧縮復号部17は処理を終了する。そして、画像圧縮復号部17は、ビット丸め処理の終了後に算術符号化を行う。
【0073】
以上、説明したように、画像圧縮復号部17は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’又は‘1’にした値Aと、対象ビット桁を変更して下位ビットを全て‘0’又は‘1’にした値Bを算出して、注目画素の値と値Aの差の絶対値(第1誤差)と注目画素の値と値Bの差の絶対値(第2誤差)をそれぞれ算出し、注目画素以前の画素の対象ビット桁において同じ値が所定数以上続いており、第1誤差と第2誤差の差が設定範囲内である場合は注目画素の対象ビット桁をそのままとすることで、値の連続性を優先させて符号化効率を向上させることができる。一方、第1誤差と第2誤差の差が設定範囲外のときは注目画素の対象ビット桁の値を変更することによって、注目画素のビット変更前後の値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、網点画像のような隣接する画素間の濃度差が大きい画像においても符号化効率を向上させることができる。
【0074】
<第3の実施例>
本実施例では、コードブロックの注目画素の前後の各画素における対象ビット桁の各値が異なり、ビット丸め処理において下位ビットを全て‘0’にする場合、注目画素の対象ビット桁より下位ビットの値が閾値以上のときは注目画素の対象ビット桁の値を‘1’とし、閾値より小さいときは注目画素の対象ビット桁の値をそのままとし、下位ビットを全て‘1’にする場合、注目画素の対象ビット桁より下位ビットの値が閾値以下のときは注目画素の対象ビット桁の値を‘0’とし、閾値より大きいときは注目画素の対象ビット桁の値をそのままとする場合について説明する。
【0075】
まず、画像圧縮復号部17は注目画素と前画素及び後画素の対象ビット桁の各値を比較して、図10に示した表に従って、注目画素の対象ビット桁の値を調整する。このうち、前画素と後画素の対象ビット桁の値が異なる場合、画像圧縮復号部17は、注目画素の対象ビット桁より下位ビットの値に応じて注目画素の対象ビット桁の値を調整する。
【0076】
図19を用いて説明する。図19(a)は注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10000111B、後画素=11011000Bである。まず、画像圧縮復号部17は注目画素の対象ビット桁の下位ビットの値を取得する。図19(a)の場合、下位ビット=0111B=7Dである。そして例えば閾値=6とした場合、下位ビットの値は閾値以上であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’とする。
【0077】
別の例について、図20を用いて説明する。図20(a)の場合、下位ビット=0100B=4Dである。下位ビットの値は閾値=6より小さいため、画像圧縮復号部17は注目画素の対象ビット桁の値をそのまま(‘0’のまま)とする。
【0078】
つまり、ビット丸め処理において下位ビットを全て‘0’にする場合、下位ビットの値が閾値以上であれば対象ビット桁の値を‘1’とすることで、対象ビット桁の元値が‘0’である場合は下位ビットの値の切り上げが行われることになり、閾値より小さい場合は対象ビット桁の値をそのままとして下位ビットが全て‘0’となることで、下位ビットの値は切り捨てられることとなる。
【0079】
逆に、ビット丸め処理において下位ビットを全て‘1’にする場合、下位ビットの値が閾値以下であれば対象ビット桁の値を‘0’とすることで、対象ビット桁の元値が‘1’の場合は、下位ビットを全て‘1’となる代わりに対象ビット桁の値が‘1’から‘0’に切り捨てられることになる。一方、下位ビットの値が閾値より大きい場合は対象ビット桁をそのままとして下位ビットを全て‘1’とする。
【0080】
図21は、本実施例における注目画素のビット丸め処理の流れを示したフローチャートである。まず、画像圧縮復号部17は、コードブロックの注目画素、注目画素の前画素及び後画素の対象ビット桁の各値を比較する。注目画素、注目画素の前画素及び後画素の対象ビット桁の各値が全て同じである場合(ステップS11;YES)、画像圧縮復号部17はステップS21へ処理を移行する。
【0081】
前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が同じである場合、即ち、注目画素の対象ビット桁の値のみが異なる場合(ステップS12;YES)、前画素の対象ビット桁の値が‘0’であれば(ステップS13;‘0’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’から‘0’に変更する(ステップS14)。前画素の対象ビット桁の値が‘1’であれば(ステップS13;‘1’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’から‘1’に変更する(ステップS14)。そして画像圧縮復号部17はステップS21へ処理を移行する。
【0082】
一方、前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が異なる場合(ステップS12;NO)、画像圧縮復号部17は、注目画素の対象ビット桁より下位ビットの値を取得する(ステップS41)。そしてステップS21において下位ビットを全て‘0’にする場合であって(ステップS42;YES)、下位ビットの値が閾値以上である場合(ステップS43;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’にする(ステップS44)。一方、ステップS21において下位ビットを全て‘0’にする場合であって(ステップS42;YES)、下位ビットの値が閾値より小さい場合は(ステップS43;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS44)。
【0083】
逆に、ステップS21において下位ビットを全て‘1’にする場合であって(ステップS42;NO)、下位ビットの値が閾値以下である場合(ステップS46;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’にする(ステップS47)。一方、ステップS21において下位ビットを全て‘0’にする場合であって(ステップS42;NO)、下位ビットの値が閾値より大きい場合は(ステップS46;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS48)。
【0084】
次に、画像圧縮復号部17は、注目画素の対象ビット桁より下位のビットを全て‘0’又は‘1’に変更する(ステップS21)。そして、コードブロックの全ての画素についてビット丸め処理を行っていない場合(ステップS22;NO)、画像圧縮復号部17は注目画素を移動させて(ステップS23)、ステップS11へ処理を移行する。コードブロックの全ての画素のビット丸め処理が終了した場合(ステップS22;NO)、画像圧縮復号部17は処理を終了する。尚、画像圧縮復号部17は、図13に示すフローチャートの処理を全てのタイルの全てのコードブロックに対して行った後、算術符号化を行う。
【0085】
以上、説明したように、画像圧縮復号部17は、ビット丸め処理において下位ビットを全て‘0’とする場合であって注目画素の対象ビット桁より下位ビットの値が閾値以上のときは対象ビットの値を‘1’として、閾値より小さいときは対象ビット桁の値をそのままとして、ビット丸め処理において下位ビットを全て‘1’とする場合であって注目画素の対象ビット桁より下位ビットの値が閾値以下のときは対象ビットの値を‘0’とし、閾値より大きいときは対象ビット桁の値をそのままとすることで、注目画素のビット変更前後の値変化をできるだけ抑えつつ(復号後の画質劣化を抑えつつ)、網点画像のような隣接する画素間の濃度差が大きい画像においても符号化効率を向上させることができる。
【符号の説明】
【0086】
1 画像圧縮装置
11 制御部
12 記憶部
121 画像圧縮プログラム
13 入力操作部
14 表示部
15 I/F部
16 ネットワークI/F部
17 画像圧縮復号部(変換手段、分割手段、ウェーブレット変換手段、量子化手段、分解手段、展開手段、ビット丸め手段、符号化手段)
【技術分野】
【0001】
本発明は、画像データを圧縮するための画像圧縮装置及び画像圧縮プログラムに関するものである。
【背景技術】
【0002】
近年、デジタル機器の発展に伴って、画像データ等の様々な圧縮方式が提案されているが、圧縮方式の1つとしてJPEG(Joint Photographic Experts Group)2000が知られている。JPEG2000は画像の圧縮・展開の方法を規定したもので、JPEGを発展させたものである。JPEG2000は、画像データを複数のタイルに分割し、タイル毎にウェーブレット変換、量子化、そしてビットプレーン毎に算術符号化による圧縮処理を行っている。
【0003】
各種画像のうち、網点画像は隣接する画素の濃度差が大きく、ビットプレーンにおいて同じ値(‘0’又は‘1’)が連続しないため、符号化効率が悪くなる傾向にある。そこで、符号化効率を高めるために画像の種類を判断して量子化テーブルを切り替える方法や(特許文献1)、量子化データにおいて最下位ビットを‘0’又は‘1’に置き換えて値を固定する方法が提案されている(特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平07−038761号公報
【特許文献2】特開平10−285405号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載された方法の場合、隣接する画素間での値の並びが考慮されないため、網点画像においては符号化効率の向上はあまり望めない。また、特許文献2に記載された方法の場合、最下位ビットの値が強制的に変更されるため、復号後の画像の画質劣化が大きくなる問題があった。特に圧縮率を制御する場合は、符号化されるビット位置が変動するため、最下位ビットの値を固定にする方法は効果がない。
【0006】
本発明は、上記の問題を解決するためになされたもので、網点画像のような隣接する画素間の濃度差が大きい画像において、復号後の画質劣化を抑えつつ符号化効率を向上させる画像圧縮装置及び画像圧縮プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0007】
請求項1に記載の発明の画像圧縮装置は、入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段と、前記変換された画像データを複数のタイルに分割する分割手段と、前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段と、前記サブバンド毎に量子化する量子化手段と、前記量子化された前記サブバンドを複数のブロックに分解する分解手段と、前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段と、前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段と、前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段と、を備える。
【0008】
また、請求項5に記載の発明の画像圧縮プログラムは、コンピュータを、入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段、前記変換された画像データを複数のタイルに分割する分割手段、前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段、前記サブバンド毎に量子化する量子化手段、前記量子化された前記サブバンドを複数のブロックに分解する分解手段、前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段、前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段、前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段、として機能させるものである。
【0009】
これらの構成によれば、ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の対象ビット桁より下位ビットの値に応じて注目画素の対象ビット桁の値を調整する(具体的には、変更するかしないか)ため、注目画素の前後の各画素との連続性と注目画素の値変化を考慮してビット丸め処理を行うことができる。つまり、注目画素の前後の各画素との連続性を考慮することにより符号化効率を向上させることができる。また、注目画素の値変化を考慮することによってビット丸め処理による注目画素の画素値の変化量をできるだけ抑えることができるため、復号後の画質劣化を軽減することができる。
【0010】
請求項2に記載の発明の画像圧縮装置は、請求項1に記載の画像圧縮装置であって、前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである。
【0011】
この構成によれば、注目画素のビット丸め処理前後の画素値の変化量を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【0012】
請求項3に記載の発明の画像圧縮装置は、請求項1又は2に記載の画像圧縮装置であって、前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なり、前記注目画素以前の各画素の前記対象ビット桁において予め定められた数以上同じ値が連続している場合、前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差と前記第2誤差の差が予め定められた設定範囲内のときは前記注目画素の前記対象ビット桁をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである。
【0013】
この構成によれば、注目画素以前の画素の対象ビット桁の値の連続性を優先させることができ、符号化効率を向上させることができる。一方、第1誤差と第2誤差の差が設定範囲外のときは注目画素の対象ビット桁の値を変更することによって、注目画素のビット丸め処理前後の画素値変化をできるだけ抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【0014】
請求項4に記載の発明は、請求項1に記載の画像圧縮装置であって、前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、前記注目画素の前記対象ビット桁より下位ビットを全て‘0’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以上のときは前記注目画素の前記対象ビット桁を‘1’に変更し、前記下位ビットが示す値が前記閾値未満であるときは前記注目画素の前記対象ビット桁の値をそのままとし、前記注目画素の前記対象ビット桁より下位ビットを全て‘1’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以下のときは前記注目画素の前記対象ビット桁を‘0’に変更し、前記下位ビットが示す値が前記閾値より大きいときは前記注目画素の前記対象ビット桁の値をそのままとするものである。
【0015】
この構成によれば、注目画素のビット丸め処理前後の画素値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【発明の効果】
【0016】
この発明によれば、注目画素のビット丸め処理前後の画素値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、符号化効率を向上させることができる。
【図面の簡単な説明】
【0017】
【図1】画像圧縮装置の電気的構成を示すブロック図。
【図2】JPEG2000方式による画像圧縮の流れを示す図。
【図3】タイル分割について説明するための図。
【図4】離散ウェーブレット変換について示した模式図。
【図5】エントロピー符号化の流れを示す図。
【図6】プレシンクト分割を模式的に示した図。
【図7】コードブロック分割を模式的に示した図。
【図8】ビットプレーン分割を模式的に示した図。
【図9】コーディングパスへの分割を模式的に示した図。
【図10】注目画素の前画素、後画素における対象ビット桁の値の組み合わせを示した表。
【図11】第1の実施例を説明するための図。
【図12】第1の実施例を説明するための図。
【図13】第1の実施例におけるビット丸め処理の流れを示したフローチャート。
【図14】第2の実施例を説明するための図。
【図15】第2の実施例を説明するための図。
【図16】第2の実施例を説明するための図。
【図17】第2の実施例におけるビット丸め処理の流れを示したフローチャート。
【図18】図17に続くフローチャート。
【図19】第3の実施例を説明するための図。
【図20】第3の実施例を説明するための図。
【図21】第3の実施例におけるビット丸め処理の流れを示したフローチャート。
【発明を実施するための形態】
【0018】
本発明における画像圧縮装置及び画像圧縮プログラムの実施の形態について図面を参照して説明する。図1は、本実施の形態における画像圧縮装置1の電気的構成を示すブロック図である。尚、画像圧縮装置1は、パーソナルコンピュータ(パソコン)やワークステーション、携帯情報端末等の情報処理装置で実現され、図1のブロック図は画像圧縮装置1がこれらの情報処理装置によって実現された場合を例に図示している。この他、コピー機やスキャナ等の画像読取装置や、デジタルカメラやデジタルビデオカメラ、デジタルカメラを搭載した携帯電話等の撮像装置に組み込まれて用いられてもよい。
【0019】
図1に示すように、画像圧縮装置1は制御部11、記憶部12、入力操作部13、表示部14、I/F部15、ネットワークI/F部16及び画像圧縮復号部17等を備えて構成される。制御部11は、CPU(Central Processing Unit:中央処理装置)等によって構成され、入力された指示信号等に応じて記憶部12に記憶されたプログラムを読み出して処理を実行し、各機能部への指示信号の出力、データ転送等を行って画像圧縮装置1を統括的に制御する。
【0020】
記憶部12は、画像圧縮装置1の備える種々の機能を実現するためのプログラムやデータ等を記憶する。本実施の形態では、記憶部12は画像圧縮プログラム121を記憶する。画像圧縮プログラム121は、I/F部15又はネットワークI/F部16が入力した画像データをJPEG2000方式で圧縮して符号化データを生成するためのプログラムである。
【0021】
入力操作部13は、各種操作ボタンやマウス等のポインティングデバイスを備え、ユーザによって操作がなされると、操作信号を制御部11へ出力する。またユーザは入力操作部13を介して圧縮率の設定を行う。表示部14は、液晶ディスプレイ等の表示画面であり、入力操作部13から入力された内容に応じた表示を行ったり、制御部11による処理内容や処理結果を表示したりする。
【0022】
I/F部15はIEEE1394やUSB等のインターフェイスであり、外部装置と直接データの送受信を行うことができる。ネットワークI/F部16は、LANボード等の通信モジュールから構成され、ネットワークI/F部16と接続されたネットワーク(不図示)を介して外部装置と種々のデータの送受信を行う。画像圧縮復号部17は、記憶部12に記憶された画像圧縮プログラム121を実行することによって、I/F部15やネットワークI/F部16を介して入力された画像データをJPEG2000方式で圧縮して圧縮データを生成する。また、画像圧縮復号部17は、圧縮データの復号も行う。
【0023】
図2は、本実施の形態におけるJPEG2000方式による画像圧縮の流れを示す図である。まず画像圧縮復号部17は、入力された画像データの表色系を例えばRGB方式からYCbCr方式へコンポーネント変換して(色空間変換21)、表色系が変換された画像データを図3に示すように複数のタイルに分割する(タイル分割22)。
【0024】
そして、画像圧縮復号部17は1つのバンドの各タイルに対して離散ウェーブレット変換を施して係数データを出力する(離散ウェーブレット変換23)。図4は、離散ウェーブレット変換について示した模式図である。図4(a)のタイル画像(0LL)に対して、離散ウェーブレット変換を施し、図4(b)に示すようにサブバンド1LL、1HL、1LH及び1HHに分解する。続いて、低周波成分1LLに対して離散ウェーブレット変換を施し、図4(c)に示すようにサブバンド2LL、2HL、2LH及び2HHに分解する。尚、図4では2レベル変換について図示しているが、離散ウェーブレット変換の回数は特に制限されるものではない。
【0025】
次に、画像圧縮復号部17は離散ウェーブレット変換された係数データに対して線形量子化を行い(量子化24)、ユーザ等によって設定された圧縮率(以下「設定圧縮率」という)で量子化された量子化データに対してエントロピー符号化を行う(エントロピー符号化25)。ここで、エントロピー符号化25の処理手順について説明する。図5は、エントロピー符号化の流れを示す図である。画像圧縮復号部17は、まず各サブバンドの係数をプレシンクトと呼ばれる領域に分割する(プレシンクト分割251)。図6はプレシンクト分割を模式的に示した図である。図6において、51の部分は元の画像において同領域の部分を周波数変換したものであり、これらの部分は同じプレシンクトに属しているという。
【0026】
次に、画像圧縮復号部17はプレシンクトをコードブロックという更に小さな領域に分割する(コードブロック分割252)。図7はコードブロック分割を模式的に示した図である。このコードブロック単位がエントロピー符号化を行う際の基本単位となる。
【0027】
そして、画像圧縮復号部17は各コードブロックについて線形量子化された離散ウェーブレット変換の変換係数をビットプレーンに展開する(ビットプレーン展開253)。図8はビットプレーン展開を模式的に示した図である。図8において、61はあるコードブロックにおける線形量子化された離散ウェーブレット変換の係数データを例示したものである。62は、係数データ61の符号を表すビット列であり、値0は正値、値1は負値を意味する。63は係数データ61の絶対値をMSB(Most Significant Bit)からLSB(Least Significant Bit)に2値展開したビットプレーンである。
【0028】
例えば、値が+12の係数データ64は正値であるため、対応する符号ビット65は‘0’である。また、+12の絶対値の2進数表現は(1100)であるため、ビットプレーンに対応する箇所66a、66b、66c及び66dの値はそれぞれ‘1’、‘1’、‘0’、‘0’となる。同様に、値が−6の係数データ67は負値であるため、対応する符号ビット68は‘1’である。また、−6の絶対値の2進数表現は(0110)であるため、ビットプレーンの対応する箇所69a、69b、69c及び69dの値はそれぞれ‘0’、‘1’、‘1’、‘0’となる。MSB側で全て0であるビットプレーンをゼロビットプレーンといい、データは保存されない一方、コードブロック毎に後述のゼロビットプレーン枚数がカウントされる。
【0029】
続いて、画像圧縮復号部17は、ビットプレーンを更にsignificance propagationパスと、magnitude refinementパスと、cleanupパスに分割する(コーディングパスへの分割254)。図9はコーディングパスへの分割を模式的に示した図である。図9に示すように、各ビットプレーン71a〜71d(以下、これらをまとめて「ビットプレーン71」という)は、コーディングパスへの分割により次のように分割される。つまり、それぞれsignificance propagationパス72b〜72d(以下、これらをまとめて「significance propagationパス72」という)、magnitude refinementパス73b〜73d(以下、これらをまとめて「magnitude refinementパス73」という)、cleanupパス74b〜74dに分割される。ただし、最上位ビット(MSB側)のビットプレーン71aはcleanupパス74aにのみ対応させる。以下、cleanupパス74a〜74dをまとめて「cleanupパス74」という。
【0030】
各ビットプレーン71及び各コーディングパス72〜74は、全て縦横方向の座標長によるサイズが等しい。また、各コーディングパス72〜74にはビット値が定義された位置と定義されていない位置とが存在する。図9において、例えば76や77のように、ビット値が定義された位置には網掛け(斜線)が施されている。そして、コーディングパス72〜74(例えば、コーディングパス72b〜74b)の網掛け部分に定義されたビット値は、分割前のビットプレーン71(例えば、ビットプレーン71b)上の対応する位置におけるビット値と等しい。ビットプレーンをコーディングパスに分割する処理方法については、各文献により周知のものであるため説明を省略する。
【0031】
最後に画像圧縮復号部17は、コーディングパス分割後のデータを算術符号化する(二値算術符号化255)。以上のようにしてエントロピー符号化25を行った後、画像圧縮復号部17は圧縮率の調整を行い(圧縮率調整26)、画像圧縮復号部17はファイルにデータを書き込むための符号ストリームの形成を行う(符号ストリーム27)。この符号ストリーム処理については、各文献により周知のものであるため説明を省略する。
【0032】
各種画像のうち、網点画像は隣接する画素間の濃度差が大きく、ビットプレーンにおいて同じ値(‘0’又は‘1’)が連続しないため、符号化効率が悪くなる傾向にある。そこで、符号化効率を高めるために画像の種類を判断して量子化テーブルを切り替える方法や、量子化データにおいて最下位ビットを‘0’又は‘1’に置き換えて値を固定する方法が提案されている。しかし、量子化テーブルを切り替える方法の場合、隣接する画素間での値の並びが考慮されないため、網点画像においては符号化効率の向上はあまり望めない。また、最下位ビットの値を固定する方法の場合、最下位ビットの値が強制的に変更されるため、復号後の画像の画質劣化が大きくなる問題があった。
【0033】
そこで、網点画像のような隣接する画素間の濃度差が大きい画像においても復号後の画質劣化を抑えつつ符号化効率を向上させる第1〜第3の実施例について以下説明する。
【0034】
<第1の実施例>
本実施例では、コードブロックの注目画素の前後の各画素における対象ビット桁の各値が異なる場合、注目画素の値と注目画素の対象ビット桁の値はそのままで対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、注目画素の値と注目画素の対象ビット桁の値を変更して対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、第1誤差が第2誤差以下のときは注目画素の対象ビット桁の値はそのままで、第1誤差が第2誤差より大きいときは注目画素の対象ビット桁の値を変更して、復号後の画質劣化を抑えつつ符号化効率を向上させる方法について説明する。
【0035】
図10は、注目画素の前画素、後画素における対象ビット桁の値の組み合わせを示した表である。まず、前画素、注目画素及び後画素の各対象ビット桁の値が全て‘0’又は‘1’である場合、画像圧縮復号部17は注目画素の対象ビット桁の変更は行わない。一方、前画素と後画素の対象ビット桁の値が同じで注目画素の対象ビット桁のみが異なる場合、例えば前画素=‘0’、注目画素=‘1’、後画素=‘0’である場合、画像圧縮復号部17は注目画素の対象ビット桁の値を前画素の対象ビット桁の値に変更する。つまり、上記例の場合は、注目画素=‘1’を‘0’に変更する。こうして値の連続性を持たせることで、符号化効率が向上する。
【0036】
尚、画像圧縮復号部17はこのように注目画素の対象ビット桁の値を調整した後、対象ビット桁より下位ビットを全て‘0’又は‘1’としてビット丸め処理を行う。
【0037】
そして、前画素と後画素の対象ビット桁の値が異なる場合、例えば前画素=‘0’、注目画素=‘0’、後画素=‘1’である場合、画像圧縮復号部17は、注目画素の対象ビット桁の値を変更しない場合と変更した場合の値を、変更前の注目画素の値と比較して、対象ビット桁を変更するか否かを決定する。以下、画像圧縮復号部17による注目画素の対象ビット桁を変更するか否かの判断方法について詳しく説明する。
【0038】
まず、図11を用いて説明する。図11(a)は元の注目画素の値とその前後の画素の値を示した図であり、前画素=11001111B、注目画素=10001100B、後画素=11011000Bである。前画素及び後画素の対象ビット桁の値と図10の表を参照すると、前画素=‘0’、後画素=‘1’であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を変更すべきか否かを判断することになる。
【0039】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、元の注目画素は10001100B=140Dであるため、
第1誤差=|140−128|=12
第2誤差=|140−144|=4
となる。
【0040】
次に、画像圧縮復号部17は第1誤差と第2誤差の差を求め、その差が0以下であれば(つまり第1誤差が第2誤差以下)注目画素の対象ビット桁の値はそのままとし、差が0より大きい値であれば(つまり第2誤差が第1誤差未満)注目画素の値を変更する。上記の場合、
第1誤差−第2誤差=12−4=8>0
であるため、画像圧縮復号部17は注目画素の対象ビット桁を変更する。つまり、画像圧縮復号部17は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’にした値と対象ビット桁を変更して下位ビットを全て‘0’にした値に対して、元の注目画素との差の絶対値をそれぞれ算出し、差の小さい方(差が同じ場合は対象ビット桁はそのまま)を採用する。
【0041】
次に、別の例について図12を用いて説明する。図12(a)は元の注目画素の値を示した図であり、注目画素=10000111B、前画素=11001111B、後画素=11011000Bである。前画素及び後画素の対象ビット桁の値と図10の表を参照すると、前画素=‘0’、後画素=‘1’であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を変更すべきか否かを判断することになる。
【0042】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、元の注目画素の値は10000111B=135Dであるため、
第1誤差=|135−128|=7
第2誤差=|135−144|=9
となる。
【0043】
次に、画像圧縮復号部17は第1誤差と第2誤差の差を求め、その差が0以下であれば注目画素の対象ビット桁の値はそのままとし、差が0より大きい値であれば注目画素の値を変更する。上記の場合、
第1誤差−第2誤差=7−9=−2≦0
であるため、画像圧縮復号部17は注目画素の対象ビット桁をそのままとする。
【0044】
図13は、本実施例におけるビット丸め処理の流れを示したフローチャートである。以下「ビット丸め処理」とは、注目画素の対象ビット桁の調整(変更するか、そのままとするかを判断して実行する処理)と、対象ビット桁より下位ビットを全て‘0’又は‘1’に置き換える処理のことを言う。また、ビット丸め処理に関するプログラムは画像圧縮プログラム121に含まれており、画像圧縮復号部17は画像圧縮プログラム121に従って処理を実行する中でビット丸め処理を行う。
【0045】
まず、画像圧縮復号部17は、コードブロックの注目画素、注目画素の前画素及び後画素の対象ビット桁の各値を比較する。前画素、注目画素及び後画素の対象ビット桁の各値が全て同じである場合(ステップS11;YES)、画像圧縮復号部17はステップS21へ処理を移行する。
【0046】
前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が同じである場合、即ち、注目画素の対象ビット桁の値のみが異なる場合(ステップS12;YES)、前画素の対象ビット桁の値が‘0’であれば(ステップS13;‘0’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’から‘0’に変更する(ステップS14)。前画素の対象ビット桁の値が‘1’であれば(ステップS13;‘1’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’から‘1’に変更する(ステップS14)。そして画像圧縮復号部17はステップS21へ処理を移行する。
【0047】
一方、前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が異なる場合(ステップS12;NO)、画像圧縮復号部17は、注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’又は‘1’にした値Aと注目画素の対象ビット桁の値を変更して下位ビットを全て‘0’又は‘1’にした値Bを生成する(ステップS16)。続いて、画像圧縮復号部17は、注目画素と値Aの差の絶対値である第1誤差と、注目画素と値Bの差の絶対値である第2誤差を算出する(ステップS17)。
【0048】
そして、画像圧縮復号部17は、第1誤差と第2誤差の差を算出する(ステップS18)。その差が0以下である場合(ステップS18;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS19)。差が0より大きい場合(ステップS18;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値を変更する(ステップS20)。
【0049】
次に、画像圧縮復号部17は、注目画素の対象ビット桁より下位のビットを全て‘0’又は‘1’に変更する(ステップS21)。ここで、下位ビットを全て‘0’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘0’にしたときの値A及び値Bを生成する。また、下位ビットを全て‘1’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘1’にしたときの値A及び値Bを生成する。
【0050】
そして、コードブロックの全ての画素についてビット丸め処理を行っていない場合(ステップS22;NO)、画像圧縮復号部17は注目画素を移動させて(ステップS23)、ステップS11へ処理を移行する。コードブロックの全ての画素のビット丸め処理が終了した場合(ステップS22;NO)、画像圧縮復号部17は処理を終了する。そして、画像圧縮復号部17は、ビット丸め処理終了後に算術符号化を行う。
【0051】
次に、圧縮データの復号処理の流れについて説明する。まず画像圧縮復号部17は圧縮データに対して逆エントロピー符号化を行い、量子化データを取得する。続いて画像圧縮復号部17は量子化データに対して逆量子化を行い、離散ウェーブレット変換された係数データを取得する。そして画像圧縮復号部17は係数データに対して逆離散ウェーブレット変換を行い、タイル画像に復元し、タイル画像を組み合わせた画像の表色系のコンポーネント変換を行って復号データを取得し、復号処理を終了する。
【0052】
以上、説明したように、画像圧縮復号部17は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’又は‘1’にした値Aと、対象ビット桁を変更して下位ビットを全て‘0’又は‘1’にした値Bを算出して、注目画素の値と値Aの差の絶対値(第1誤差)と注目画素の値と値Bの差の絶対値(第2誤差)をそれぞれ算出し、第1誤差が第2誤差以下である場合は注目画素の対象ビット桁の値はそのままとし、第1誤差が第2誤差より大きい場合は注目画素の対象ビット桁の値を変更することにより、注目画素のビット変更前後の値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、網点画像のような隣接する画素間の濃度差が大きい画像においても符号化効率を向上させることができる。
【0053】
<第2の実施例>
本実施例では、コードブロックの注目画素の前後の各画素における対象ビット桁の各値が異なり、注目画素以前の各画素の対象ビット桁において所定数以上同じ値が連続している場合について説明する。
【0054】
最初に図14を用いて説明する。図14(a)は注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10000111B、後画素=11011000Bである。前画素及び後画素の対象ビット桁の値と図10の表を参照すると、前画素=‘0’、後画素=‘1’であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を変更すべきか否かを判断することになる。
【0055】
次に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、注目画素の元の値は10000111B=135Dであるため、
第1誤差=|135−128|=7
第2誤差=|135−144|=9
となる。
【0056】
続いて、画像圧縮復号部17は注目画素以前の画素の対象ビット桁において同じ値が所定数(例えば5つ以上)連続しているか否かを判別する。この同じ値の連続数は適宜設定可能とする。図14(a)の場合、注目画素以前の画素の対象ビット桁において‘0’が5つ連続している(図14(a)の網掛け部分)。従って、画像圧縮復号部17は第1誤差と第2誤差の差を求める。そして、画像圧縮復号部17は第1誤差と第2誤差の差が設定範囲内であるか否かを判別して、第1誤差と第2誤差の差が設定範囲内であるときは注目画素の対象ビット桁の値はそのままとし、第1誤差と第2誤差の差が設定範囲外のときは注目画素の対象ビット桁の値を第1の実施例に記載した方法に従って調整する。例えば、設定範囲を−6≦x≦+6(xは第1誤差と第2誤差の差)と設定したとき、上記の場合、
第1誤差−第2誤差=7−9=−2
となり、第1誤差と第2誤差の差は設定範囲内である。従って、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする。図14(b)は、ビット丸め処理後の注目画素とその周辺画素の値を示した図である。
【0057】
次に、別の例について図15を用いて説明する。図15(a)は元の注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10001100B、後画素=11011000Bである。
【0058】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、注目画素=10001100B=140Dであるため、
第1誤差=|140−128|=12
第2誤差=|140−144|=4
となる。
【0059】
続いて、画像圧縮復号部17は注目画素以前の画素の対象ビット桁において同じ値が5つ以上連続しているか否かを判別する。図15(a)の場合、注目画素以前の画素の対象ビット桁において‘0’が5つ連続している(図15(a)の網掛け部分)。従って、画像圧縮復号部17は第1誤差と第2誤差の差を求める。
【0060】
第1誤差−第2誤差=12−4=8
となり、第1誤差と第2誤差の差は設定範囲外であるため、画像圧縮復号部17は第1の実施例に記載した方法に従って注目画素の対象ビット桁の値を変更するか否かを判断する。上記の場合、第1誤差と第2誤差の差が+8であるため、第1誤差より第2誤差が小さい。従って、画像圧縮復号部17は対象ビット桁を変更する。図15(b)は、ビット丸め処理後の注目画素とその周辺画素の値を示した図である。
【0061】
更に、別の例について図16を用いて説明する。図16(a)は元の注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10000011B、後画素=11011000Bである。
【0062】
最初に、画像圧縮復号部17は、
注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’にした値A
=10000000B=128D
注目画素の対象ビット桁を‘0’から‘1’に変更して下位ビットを全て‘0’にした値B=10010000B=144D
の各値を得る。そして、画像圧縮復号部17は、注目画素の値と値Aの差の絶対値(第1誤差)と、注目画素の値と値Bの差の絶対値(第2誤差)を算出する。つまり、注目画素=10000011B=131Dであるため、
第1誤差=|131−128|=3
第2誤差=|131−144|=13
となる。
【0063】
次に、画像圧縮復号部17は注目画素以前の画素の対象ビット桁において同じ値が5つ以上連続しているか否かを判別する。図16(a)の場合、注目画素以前の画素の対象ビット桁において‘0’が5つ連続している(図16(a)の網掛け部分)。従って、画像圧縮復号部17は第1誤差と第2誤差の差を求める。
【0064】
第1誤差−第2誤差=3−13=−10
となり、第1誤差と第2誤差の差は設定範囲外であるため、画像圧縮復号部17は第1の実施例に記載した方法に従って注目画素の対象ビット桁の値を変更するか否かを判断する。上記の場合、第1誤差と第2誤差の差が−10であるため、第2誤差より第1誤差が小さい。従って、画像圧縮復号部17は対象ビット桁をそのままとする。図16(b)は、ビット丸め処理後の注目画素とその周辺画素の値を示した図である。
【0065】
このように、本実施例では注目画素以前の画素の対象ビット桁の値の連続性を優先して対象ビット桁の値の調整をするため、第1誤差より第2誤差の方が小さくても(つまり、注目画素の対象ビット桁を変更した方が注目画素の値の変化量が小さくても)第1誤差と第2誤差の差が設定範囲内であれば注目画素の対象ビット桁の値をそのままとする。第1誤差と第2誤差の差が設定範囲外であれば、復号後の画質保持を優先するために、注目画素の対象ビット桁の値を第1の実施例に従って調整する。
【0066】
図17及び18は、本実施例における注目画素のビット丸め処理の流れを示したフローチャートである。まず、画像圧縮復号部17は、コードブロックの注目画素、注目画素の前画素及び後画素の対象ビット桁の各値を比較する。注目画素、注目画素の前画素及び後画素の対象ビット桁の各値が全て同じである場合(ステップS11;YES)、画像圧縮復号部17はステップS21へ処理を移行する。
【0067】
前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が同じである場合、即ち、注目画素の対象ビット桁の値のみが異なる場合(ステップS12;YES)、前画素の対象ビット桁の値が‘0’であれば(ステップS13;‘0’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’から‘0’に変更する(ステップS14)。前画素の対象ビット桁の値が‘1’であれば(ステップS13;‘1’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’から‘1’に変更する(ステップS14)。そして画像圧縮復号部17はステップS21へ処理を移行する。
【0068】
一方、前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が異なる場合(ステップS12;NO)、画像圧縮復号部17は、注目画素の対象ビット桁の値はそのままで下位ビットを全て‘0’又は‘1’にした値Aと注目画素の対象ビット桁の値を変更して下位ビットを全て‘0’又は‘1’にした値Bを生成する(ステップS16)。続いて、画像圧縮復号部17は、注目画素と値Aの差の絶対値である第1誤差と、注目画素と値Bの差の絶対値である第2誤差を算出する(ステップS17)。
【0069】
そして、画像圧縮復号部17は、注目画素以前の画素の対象ビット桁において、同じ値が所定数以上続いているか否かを判断する(ステップS31)。同じ値が所定数以上続いている場合(ステップS31;YES)、画像圧縮復号部17は第1誤差と第2誤差の差を算出し、その差が設定範囲内であるか否か判断する(ステップS32)。第1誤差と第2誤差の差が設定範囲内である場合(ステップS32;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS19)。第1誤差と第2誤差の差が設定範囲外であって(ステップS32;NO)、0以下である場合(ステップS18;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS19)。第1誤差と第2誤差の差が設定範囲外であって(ステップS32;NO)、0より大きい場合(ステップS18;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値を変更する(ステップS20)。
【0070】
また、注目画素以前の画素の対象ビット桁において同じ値が所定数以上続いていない場合(ステップS31;NO)、画像圧縮復号部17はステップS18へ処理を移行する。
【0071】
続いて、画像圧縮復号部17は、注目画素の対象ビット桁より下位のビットを全て‘0’又は‘1’に変更する(ステップS21)。ここで、下位ビットを全て‘0’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘0’にしたときの値A及び値Bを生成する。また、下位ビットを全て‘1’にする場合、画像圧縮復号部17はステップS16において下位ビットを全て‘1’にしたときの値A及び値Bを生成する。
【0072】
そして、コードブロックの全ての画素についてビット丸め処理を行っていない場合(ステップS22;NO)、画像圧縮復号部17は注目画素を移動させて(ステップS23)、ステップS11へ処理を移行する。コードブロックの全ての画素のビット丸め処理が終了した場合(ステップS22;NO)、画像圧縮復号部17は処理を終了する。そして、画像圧縮復号部17は、ビット丸め処理の終了後に算術符号化を行う。
【0073】
以上、説明したように、画像圧縮復号部17は、注目画素の対象ビット桁をそのままで下位ビットを全て‘0’又は‘1’にした値Aと、対象ビット桁を変更して下位ビットを全て‘0’又は‘1’にした値Bを算出して、注目画素の値と値Aの差の絶対値(第1誤差)と注目画素の値と値Bの差の絶対値(第2誤差)をそれぞれ算出し、注目画素以前の画素の対象ビット桁において同じ値が所定数以上続いており、第1誤差と第2誤差の差が設定範囲内である場合は注目画素の対象ビット桁をそのままとすることで、値の連続性を優先させて符号化効率を向上させることができる。一方、第1誤差と第2誤差の差が設定範囲外のときは注目画素の対象ビット桁の値を変更することによって、注目画素のビット変更前後の値変化を最小限に抑えつつ(復号後の画質劣化を抑えつつ)、網点画像のような隣接する画素間の濃度差が大きい画像においても符号化効率を向上させることができる。
【0074】
<第3の実施例>
本実施例では、コードブロックの注目画素の前後の各画素における対象ビット桁の各値が異なり、ビット丸め処理において下位ビットを全て‘0’にする場合、注目画素の対象ビット桁より下位ビットの値が閾値以上のときは注目画素の対象ビット桁の値を‘1’とし、閾値より小さいときは注目画素の対象ビット桁の値をそのままとし、下位ビットを全て‘1’にする場合、注目画素の対象ビット桁より下位ビットの値が閾値以下のときは注目画素の対象ビット桁の値を‘0’とし、閾値より大きいときは注目画素の対象ビット桁の値をそのままとする場合について説明する。
【0075】
まず、画像圧縮復号部17は注目画素と前画素及び後画素の対象ビット桁の各値を比較して、図10に示した表に従って、注目画素の対象ビット桁の値を調整する。このうち、前画素と後画素の対象ビット桁の値が異なる場合、画像圧縮復号部17は、注目画素の対象ビット桁より下位ビットの値に応じて注目画素の対象ビット桁の値を調整する。
【0076】
図19を用いて説明する。図19(a)は注目画素とその周辺画素の値を示した図であり、前画素=11001111B、注目画素=10000111B、後画素=11011000Bである。まず、画像圧縮復号部17は注目画素の対象ビット桁の下位ビットの値を取得する。図19(a)の場合、下位ビット=0111B=7Dである。そして例えば閾値=6とした場合、下位ビットの値は閾値以上であるため、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’とする。
【0077】
別の例について、図20を用いて説明する。図20(a)の場合、下位ビット=0100B=4Dである。下位ビットの値は閾値=6より小さいため、画像圧縮復号部17は注目画素の対象ビット桁の値をそのまま(‘0’のまま)とする。
【0078】
つまり、ビット丸め処理において下位ビットを全て‘0’にする場合、下位ビットの値が閾値以上であれば対象ビット桁の値を‘1’とすることで、対象ビット桁の元値が‘0’である場合は下位ビットの値の切り上げが行われることになり、閾値より小さい場合は対象ビット桁の値をそのままとして下位ビットが全て‘0’となることで、下位ビットの値は切り捨てられることとなる。
【0079】
逆に、ビット丸め処理において下位ビットを全て‘1’にする場合、下位ビットの値が閾値以下であれば対象ビット桁の値を‘0’とすることで、対象ビット桁の元値が‘1’の場合は、下位ビットを全て‘1’となる代わりに対象ビット桁の値が‘1’から‘0’に切り捨てられることになる。一方、下位ビットの値が閾値より大きい場合は対象ビット桁をそのままとして下位ビットを全て‘1’とする。
【0080】
図21は、本実施例における注目画素のビット丸め処理の流れを示したフローチャートである。まず、画像圧縮復号部17は、コードブロックの注目画素、注目画素の前画素及び後画素の対象ビット桁の各値を比較する。注目画素、注目画素の前画素及び後画素の対象ビット桁の各値が全て同じである場合(ステップS11;YES)、画像圧縮復号部17はステップS21へ処理を移行する。
【0081】
前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が同じである場合、即ち、注目画素の対象ビット桁の値のみが異なる場合(ステップS12;YES)、前画素の対象ビット桁の値が‘0’であれば(ステップS13;‘0’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’から‘0’に変更する(ステップS14)。前画素の対象ビット桁の値が‘1’であれば(ステップS13;‘1’)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’から‘1’に変更する(ステップS14)。そして画像圧縮復号部17はステップS21へ処理を移行する。
【0082】
一方、前画素、注目画素及び後画素の対象ビット桁の各値が全て同じでなく(ステップS11;NO)、前画素及び後画素の対象ビット桁の各値が異なる場合(ステップS12;NO)、画像圧縮復号部17は、注目画素の対象ビット桁より下位ビットの値を取得する(ステップS41)。そしてステップS21において下位ビットを全て‘0’にする場合であって(ステップS42;YES)、下位ビットの値が閾値以上である場合(ステップS43;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘1’にする(ステップS44)。一方、ステップS21において下位ビットを全て‘0’にする場合であって(ステップS42;YES)、下位ビットの値が閾値より小さい場合は(ステップS43;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS44)。
【0083】
逆に、ステップS21において下位ビットを全て‘1’にする場合であって(ステップS42;NO)、下位ビットの値が閾値以下である場合(ステップS46;YES)、画像圧縮復号部17は注目画素の対象ビット桁の値を‘0’にする(ステップS47)。一方、ステップS21において下位ビットを全て‘0’にする場合であって(ステップS42;NO)、下位ビットの値が閾値より大きい場合は(ステップS46;NO)、画像圧縮復号部17は注目画素の対象ビット桁の値をそのままとする(ステップS48)。
【0084】
次に、画像圧縮復号部17は、注目画素の対象ビット桁より下位のビットを全て‘0’又は‘1’に変更する(ステップS21)。そして、コードブロックの全ての画素についてビット丸め処理を行っていない場合(ステップS22;NO)、画像圧縮復号部17は注目画素を移動させて(ステップS23)、ステップS11へ処理を移行する。コードブロックの全ての画素のビット丸め処理が終了した場合(ステップS22;NO)、画像圧縮復号部17は処理を終了する。尚、画像圧縮復号部17は、図13に示すフローチャートの処理を全てのタイルの全てのコードブロックに対して行った後、算術符号化を行う。
【0085】
以上、説明したように、画像圧縮復号部17は、ビット丸め処理において下位ビットを全て‘0’とする場合であって注目画素の対象ビット桁より下位ビットの値が閾値以上のときは対象ビットの値を‘1’として、閾値より小さいときは対象ビット桁の値をそのままとして、ビット丸め処理において下位ビットを全て‘1’とする場合であって注目画素の対象ビット桁より下位ビットの値が閾値以下のときは対象ビットの値を‘0’とし、閾値より大きいときは対象ビット桁の値をそのままとすることで、注目画素のビット変更前後の値変化をできるだけ抑えつつ(復号後の画質劣化を抑えつつ)、網点画像のような隣接する画素間の濃度差が大きい画像においても符号化効率を向上させることができる。
【符号の説明】
【0086】
1 画像圧縮装置
11 制御部
12 記憶部
121 画像圧縮プログラム
13 入力操作部
14 表示部
15 I/F部
16 ネットワークI/F部
17 画像圧縮復号部(変換手段、分割手段、ウェーブレット変換手段、量子化手段、分解手段、展開手段、ビット丸め手段、符号化手段)
【特許請求の範囲】
【請求項1】
入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段と、
前記変換された画像データを複数のタイルに分割する分割手段と、
前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段と、
前記サブバンド毎に量子化する量子化手段と、
前記量子化された前記サブバンドを複数のブロックに分解する分解手段と、
前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段と、
前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段と、
前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段と、
を備えた画像圧縮装置。
【請求項2】
前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである請求項1に記載の画像圧縮装置。
【請求項3】
前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なり、前記注目画素以前の各画素の前記対象ビット桁において予め定められた数以上同じ値が連続している場合、
前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差と前記第2誤差の差が予め定められた設定範囲内のときは前記注目画素の前記対象ビット桁をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである請求項1又は2に記載の画像圧縮装置。
【請求項4】
前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、
前記注目画素の前記対象ビット桁より下位ビットを全て‘0’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以上のときは前記注目画素の前記対象ビット桁を‘1’に変更し、前記下位ビットが示す値が前記閾値未満であるときは前記注目画素の前記対象ビット桁の値をそのままとし、
前記注目画素の前記対象ビット桁より下位ビットを全て‘1’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以下のときは前記注目画素の前記対象ビット桁を‘0’に変更し、前記下位ビットが示す値が前記閾値より大きいときは前記注目画素の前記対象ビット桁の値をそのままとするものである請求項1に記載の画像圧縮装置。
【請求項5】
コンピュータを、
入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段、
前記変換された画像データを複数のタイルに分割する分割手段、
前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段、
前記サブバンド毎に量子化する量子化手段、
前記量子化された前記サブバンドを複数のブロックに分解する分解手段、
前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段、
前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段、
前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段、
として機能させる画像圧縮プログラム。
【請求項1】
入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段と、
前記変換された画像データを複数のタイルに分割する分割手段と、
前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段と、
前記サブバンド毎に量子化する量子化手段と、
前記量子化された前記サブバンドを複数のブロックに分解する分解手段と、
前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段と、
前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段と、
前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段と、
を備えた画像圧縮装置。
【請求項2】
前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである請求項1に記載の画像圧縮装置。
【請求項3】
前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なり、前記注目画素以前の各画素の前記対象ビット桁において予め定められた数以上同じ値が連続している場合、
前記注目画素の値と前記注目画素の前記対象ビット桁の値はそのままで前記対象ビット桁より下位ビットを全て‘0’又は‘1’としたときの値との差の絶対値である第1誤差と、前記注目画素の値と前記注目画素の前記対象ビット桁の値を変更して前記対象ビット桁より下位ビットを全て‘0’又は‘1’にしたときの値との差の絶対値である第2誤差を算出し、前記第1誤差と前記第2誤差の差が予め定められた設定範囲内のときは前記注目画素の前記対象ビット桁をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差以下のときは前記注目画素の前記対象ビット桁の値をそのままとし、前記第1誤差と前記第2誤差の差が前記設定範囲外であって、前記第1誤差が前記第2誤差より大きいときは前記注目画素の前記対象ビット桁の値を変更して、前記下位ビットを全て‘0’又は‘1’に変更するものである請求項1又は2に記載の画像圧縮装置。
【請求項4】
前記ビット丸め手段は、前記注目画素の前後の各画素における前記対象ビット桁の各値が異なる場合、
前記注目画素の前記対象ビット桁より下位ビットを全て‘0’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以上のときは前記注目画素の前記対象ビット桁を‘1’に変更し、前記下位ビットが示す値が前記閾値未満であるときは前記注目画素の前記対象ビット桁の値をそのままとし、
前記注目画素の前記対象ビット桁より下位ビットを全て‘1’とするときは、前記注目画素の前記対象ビット桁より下位ビットが示す値が予め定められた閾値以下のときは前記注目画素の前記対象ビット桁を‘0’に変更し、前記下位ビットが示す値が前記閾値より大きいときは前記注目画素の前記対象ビット桁の値をそのままとするものである請求項1に記載の画像圧縮装置。
【請求項5】
コンピュータを、
入力された画像データを輝度成分と色差成分からなる表色系に変換する変換手段、
前記変換された画像データを複数のタイルに分割する分割手段、
前記タイル毎にウェーブレット変換を施してサブバンド分解を行うウェーブレット変換手段、
前記サブバンド毎に量子化する量子化手段、
前記量子化された前記サブバンドを複数のブロックに分解する分解手段、
前記ブロック毎に前記ブロック内の画素値を最上位ビットから最下位ビットに至る複数のビットプレーンに展開する展開手段、
前記ブロック内の1つの画素である注目画素の値、当該注目画素の前後の各画素における対象ビット桁の各値、及び当該注目画素の前記対象ビット桁より下位ビットの値に応じて前記注目画素の前記対象ビット桁の値を調整して、前記下位ビットを全て‘0’又は‘1’に変更するビット丸め手段、
前記ビット丸め手段によってビット丸め処理が施されたビットプレーンを符号化する符号化手段、
として機能させる画像圧縮プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2011−77760(P2011−77760A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−226138(P2009−226138)
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】
[ Back to top ]