説明

画像データ圧縮装置および画像データ圧縮プログラム

【課題】
データの圧縮率と画質の均衡がとれた画像データ圧縮装置および画像データ圧縮プログラムを提供する。
【解決手段】
画像データ圧縮装置において、数値の連続からなる被圧縮データに可逆圧縮処理を施す可逆圧縮部2と、数値の連続からなる被圧縮データに非可逆圧縮処理を施す非可逆圧縮部5と、画像を構成する複数の画素を表す複数の画素値における最大値と最小値との差が所定の下限から所定の上限までの範囲内である場合には、非可逆圧縮部にこの複数の画素値を被圧縮データとした非可逆圧縮処理を実行させ、この差が上記範囲外である場合には、可逆圧縮部にこの画素値を上記被圧縮データとした可逆圧縮処理を実行させる圧縮制御部6とを備えたことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を表わす画像データを圧縮する画像データ圧縮装置および画像データ圧縮プログラムに関する。
【背景技術】
【0002】
画像データを通信や格納のために圧縮する画像データ圧縮装置が知られており、圧縮アルゴリズムとして、例えばJPEG(Joint Photographic Experts Group)方式に代表されるような、圧縮前のデータを完全に復元しないことを前提とする代わりに量子化によって圧縮率が高められた非可逆圧縮のアルゴリズムが知られている。また、1つの画面をブロックに分け、隣接サンプルを用いて求めた予測誤差の、各ブロック内における最大値に基づいて量子化幅を決定し、決定した量子化幅で差分PCM(Pulse Code Modulation)符号化処理するデータ圧縮方法が知られている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平5−95487号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、圧縮率を高めるため非可逆圧縮の処理を行うと、量子化幅の調整によっても伸張処理で元のデータが得られず、例えば文字部分やコントラストの高い画像は不鮮明となり画質が損なわれる。このように、圧縮処理において圧縮率と画質の均衡をとることは容易でない。
【0005】
本発明は上記問題点を解決し、データの圧縮率と画質の均衡がとれた画像データ圧縮装置および画像データ圧縮プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0006】
上記目的を達成する本発明の画像データ圧縮装置は、
数値の連続からなる被圧縮データに可逆圧縮処理を施す可逆圧縮部と、
数値の連続からなる被圧縮データに非可逆圧縮処理を施す非可逆圧縮部と、
画像を構成する複数の画素を表す複数の画素値における最大値と最小値との差が所定の上限から所定の下限までの範囲内である場合には、上記非可逆圧縮部にこの複数の画素値を被圧縮データとした非可逆圧縮処理を実行させ、この差が上記範囲外である場合には、上記可逆圧縮部にこの画素値を上記被圧縮データとした可逆圧縮処理を実行させる圧縮制御部とを備えたことを特徴とする。
【0007】
本発明の画像データ圧縮装置では、複数の画素値における最大値と最小値との差が所定の範囲内である場合には非可逆圧縮が実行され、差が所定の範囲外である場合には可逆圧縮処理が実行される。文字やコントラストの高い部分を含んだ画像は、一般的に画素値の最大値と最小値の差が大きい。このため、文字やコントラストの高い部分を含んだ画像は可逆圧縮によって画質劣化が抑えられる。また、画素値が近接した画素のみで構成された、いわゆるベタ画像は可逆圧縮によっても高い圧縮率が期待できるので可逆圧縮を実行する。この一方、一般的に画素値の最大値と最小値の差が小さい自然画は非可逆圧縮処理によって高い圧縮率で圧縮されるので、データの圧縮率と画質の均衡がとられる。
【0008】
ここで、上記本発明の画像データ圧縮装置において、上記圧縮制御部が、1つの画面が区分けされた複数のブロックそれぞれの画像について、上記可逆圧縮処理および上記非可逆圧縮処理のうちこのブロック内での最大値と最小値との差に応じた方の圧縮処理を実行させるものであることが好ましい。
【0009】
1つの画面内のブロックごとに最適な圧縮処理が実行されるので、1つの画面の画像データの圧縮について、データの圧縮率と画質の均衡がとられる。
【0010】
また、上記本発明の画像データ圧縮装置において、上記可逆圧縮部が、
上記被圧縮データを構成する数値の連続について直接に隣接し、あるいは一定間隔を空けて隣り合った数値どうしの差分を求めることによりこの差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
上記差分生成部によって生成された新たな被圧縮データを構成する各数値を所定値だけオフセットさせるオフセット部と、
上記オフセット部によって数値がオフセットされた被圧縮データの各数値を、上記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、この被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、この圧縮対象数値と、この圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する連続符号化部と、
対応符号と数値を対応づけるテーブルを用いて、上記連続符号化部で符号化された後のデータにエントロピー符号化を施すエントロピー符号化部とを備えたことが好ましい。
【0011】
隣り合った数値どうしの差分を求めオフセットされた後に上位データと下位データとに分割された場合、特に上位データについては値に対する出現頻度が偏在化する傾向にあるので、連続数を表わす数値とに符号化して出力するエントロピー符号化を施すことにより、可逆圧縮としつつ圧縮率を高めることができる。
【0012】
また、上記本発明の画像データ圧縮装置において、上記非可逆圧縮部が、
上記被圧縮データを構成する数値の連続から周期的に数値を間引くことにより、その間引きでこの被圧縮データから取り出された数値の連続からなる第1の被圧縮データと、残りの数値の連続からなる第2の被圧縮データとを作成する間引き処理部と、
上記間引き処理部で作成された第2の被圧縮データを構成する数値について、その数値を単位ビット数よりも少ない少ビット数で表現し直した数値を出力するビット数制限部とを備えたものであることが好ましい。
【0013】
非可逆圧縮部において、数値の連続から周期的に数値を間引き、残りの数値を少ビット数で表現し直す方式により、画質の損失を抑えつつより圧縮率を高めることができる。
【0014】
また、上記目的を達成する本発明の画像データ圧縮プログラムは、プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、データ圧縮処理を実行させる画像データ圧縮プログラムであって、
数値の連続からなる被圧縮データに可逆圧縮処理を施す可逆圧縮部と、
数値の連続からなる被圧縮データに非可逆圧縮処理を施す非可逆圧縮部と、
画像を構成する複数の画素を表す複数の画素値における最大値と最小値との差が所定の下限から所定の上限までの範囲内である場合には、前記非可逆圧縮部に該複数の画素値を被圧縮データとした非可逆圧縮処理を実行させ、該差が前記範囲外である場合には、前記可逆圧縮部に該画素値を前記被圧縮データとした可逆圧縮処理を実行させる圧縮制御部とを備えたことを特徴とする。
【発明の効果】
【0015】
以上説明したように、本発明によれば、文字や線画の画質劣化を抑えつつ、データの圧縮率を向上した画像データ圧縮装置および画像データ圧縮プログラムが実現する。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態が応用された放射線画像診断システムの構成図である。
【図2】図1に示す圧縮処理部のハードウェア構成を示すブロック図である。
【図3】画像データ圧縮プログラムの構成を示す図である。
【図4】図1に示す圧縮処理部を示すブロック図である。
【図5】圧縮制御部が受け取ったデータの画面を示す図である。
【図6】ブロックの画像における最大値と最小値との差と、圧縮処理の種類を説明する図である。
【図7】図4に示す可逆圧縮部の内部構成を示すブロック図である。
【図8】差分符号化部に供給される画像データの構造を示す図である。
【図9】差分符号化部において2次元差分符号化処理が施された後のデータの構造を示す図である。
【図10】図7に示す差分符号化部における2次元差分符号化処理を例示して示す図である。
【図11】制御部から差分符号化部に供給された画像データのヒストグラムの例を示す図である。
【図12】図11に示す画像データに対する差分符号化およびオフセットの効果を示す図である。
【図13】プレーン分割部によるデータ分割の効果を説明する図である。
【図14】図7に示すランレングス符号化部での符号化の説明図である。
【図15】ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【図16】図7のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
【図17】データスキャン部によるスキャニング結果の例を示す図である。
【図18】ハフマンテーブルの一例を示す図である。
【図19】ハフマンテーブルに用意される符号列の具体例を示す図である。
【図20】図7に示す非可逆圧縮部を示す図である。
【図21】図20の間引き処理部で行われる間引き処理の概念を示す図である。
【図22】4ビット符号への符号化方式を表す図である。
【図23】データの画面が図5とは異なるブロックに区分けされた例を示す図である。
【発明を実施するための形態】
【0017】
以下図面を参照して本発明の実施の形態を説明する。
【0018】
図1は、本発明の一実施形態が応用された放射線画像診断システムの構成図である。
【0019】
図1に示された放射線画像診断システムSは、放射線照射装置1、放射線源制御装置12、放射線検出ユニット3、および、システムコントローラ4を備えている。
【0020】
放射線照射装置1は、X線を照射する放射線源11および放射線源制御装置12を備えている。放射線源11は、放射線源制御装置12によりX線の照射が制御されている。
【0021】
放射線検出ユニット3は、放射線源11から発せられて被写体を透過してきた放射線に応じた放射線画像を検出し、検出した放射線画像を表す画像データをさらに圧縮し、システムコントローラ4に無線で送信する。
【0022】
システムコントローラ4は、送信されてきた圧縮データを伸張し、伸張された画像データをディスプレイ上に表示し、また、必要に応じて画像データに診断に必要な処理を行う。
【0023】
システムコントローラ4には、CPU41、メモリ42、表示部44、通信インターフェース(以下、インターフェースをI/Fと略記する。)45、伸張処理部47、および、線源制御部46が備えられており、これらはバスで相互に接続されている。
【0024】
CPU41はメモリ42に記憶されたプログラムを実行し、システムコントローラ4全体や放射線検出ユニット3を制御する。通信I/F45は、前述したように放射線検出ユニット3との無線通信を担っており、このシステムコントローラ4は、この通信I/F45を経由して圧縮された画像データを取り込むことができ、後述する、放射線検出ユニット3の制御部35に対する指示をこの通信I/F45を経由して送信する。
【0025】
線源制御部46は、放射線源11による放射線の照射に関する指示を放射線源制御装置12に送信し、放射線源制御装置12は、受信した指示に応じて放射線源11を制御する。
【0026】
伸張処理部47では、放射線検出ユニット3から送信され、通信I/F45を通じて受信した圧縮画像データを圧縮前の画像データに復元する。上述のメモリ42には、受信した圧縮画像データや復元された画像データも一時的に記録されている。
【0027】
放射線検出ユニット3は、放射線撮影器31、アナログ信号処理部32、アナログ/デジタル(以下、アナログ/デジタルをA/Dと略記する。)コンバータ部33、薄膜トランジスタ(以下、薄膜トランジスタをTFTと略記する。)駆動部34、制御部35、通信I/F36、および圧縮処理部Cを有している。
【0028】
放射線撮影器31は、ガドリニウム硫酸化物(以下、ガドリニウム硫酸化物をGOSと略記する。)を材料としたGOS蛍光体311と、TFTアレイ上の格子点毎に作り込まれたフォトダイオード部312とからなり、GOS蛍光体311は、放射線源11から発せられて被写体を透過してきた放射線をそのエネルギーの大きさに応じた可視光に変換する。フォトダイオード部312では、可視光が電気信号に変換される。アナログ信号処理部32は、電気信号の処理を行うオペアンプとコンデンサとで構成されている。TFT駆動部34はスイッチング手段であり、スイッチオンで、受光した放射線のエネルギーに応じてGOS蛍光体311を発光させ、この光をフォトダイオード部312で電気信号に変換させる。電気信号はアナログ信号処理部32に取り込まれる。信号はアナログ信号処理部32で処理された後、A/Dコンバータ部33でデジタルデータに変換されて出力される。放射線撮影器31が受けた放射線による放射線画像の画像データはこのようにして生成される。デジタルデータである画像データは、制御部35を経由して圧縮処理部Cに入力される。このとき制御部35は、画像データに撮影のシリアル番号を含む情報を文字の画像として追加する。
【0029】
圧縮処理部Cは、詳しくは後述する手法でデジタルデータのデータ量を圧縮して通信I/F36を経由してシステムコントローラ側へ無線送信する。制御部35では、システムコントローラ4のCPU41からの指示に従って、TFT駆動部34、アナログ信号処理部32、およびA/Dコンバータ部33の駆動、圧縮処理部Cにおける圧縮処理の実施、通信I/F36による圧縮データの送信等を行わせる。
【0030】
次に、放射線画像診断システムSにおける動作の流れについて説明する。なお、以下では、この放射線画像診断システムSを使用するユーザが、各構成装置の電源をオンにし、被写体を所定の立ち位置に立たせた上で、被写体に対するX線撮影を実施しようとする際、システムコントローラ4の表示部にX線撮影が可能であることを表す表示がされるのを待って、放射線源11からのX線放射用のスイッチ押下を待機している状態を前提として話を進める。
【0031】
システムコントローラ4は、まずCPU41が放射線検出ユニット3の制御部35に対し放射線検出ユニット3の各部の状態の把握を指示し、放射線検出ユニット3の制御部35は、圧縮処理部Cに、データの受け入れが可能な状態であるか否かを判定させ、圧縮処理部Cが保持するレジスタに状態を表すコード値を書き込ませ、制御部35が書き込まれたコード値を読み出し、その読み出したコード値がREADY状態であることを表す値であると判定すると、圧縮処理部以外の各部に問題が無ければ、システムコントローラ4のCPU41に対し、放射線検出ユニット3がREADY状態であることを表す信号を送信する。これを受けて、システムコントローラ4では、表示部44に撮影可能であることを表わす旨の表示を行う。その後、放射線検出ユニット3の制御部35では、システムコントローラ4からの撮影実施の通知を待って、放射線検出ユニット3の各部を制御して、放射線源11から発せられて被写体を透過してきた放射線を検出し、放射線画像をデジタルデータ化する。制御部35は、1フレーム分のデジタルデータを圧縮処理部Cに入力すると、1フレーム分のデジタルデータに撮影のシリアル番号を含む情報を文字の画像として追加しこれを圧縮処理部Cに供給する。圧縮処理部Cでは、データ入力が完了したことを検出する毎に制御部35から供給された画像データに対し圧縮処理を実施する。圧縮処理部Cで圧縮処理が施された圧縮データは、通信I/F36によって無線でシステムコントローラ4に送信される。
【0032】
送信された圧縮データは、システムコントローラ4の通信I/F45で受信され、伸張処理部47に供給される。伸張処理部47に供給された圧縮データは伸張処理が施される。伸張処理された画像データは表示部44に表示される。また、画像データはさらに必要に応じてCPU41によって画像処理が施される。
【0033】
続いて、放射線検出ユニット3の圧縮処理部Cについて説明する。
【0034】
図2は、図1に示す圧縮処理部のハードウェア構成を示すブロック図である。
【0035】
本実施形態における圧縮処理部Cは、ハードウェアとしては、CPU(C1)と、プログラム記録媒体としてのメモリ(C2)と、制御部35および通信I/F36とのデータのやり取りを行うI/F(C3)とを有するコンピュータである。メモリ(C2)には、画像データ圧縮プログラムが記憶されており、画像データ圧縮プログラムがCPU(C1)によって読み出され実行されることによって、圧縮処理部としての機能が実現する。なお、メモリ(C2)には、処理対象の画像データや処理結果の各種データも記憶される。
【0036】
図3は、画像データ圧縮プログラムの構成を示す図である。
【0037】
図3に示す画像データ圧縮プログラムSは、圧縮制御処理部S6と、切替処理部S7と、可逆圧縮処理部S2と、非可逆圧縮処理部S5とを有している。可逆圧縮処理部2は可逆圧縮処理を実行させるものであり、差分符号化処理部S23と、オフセット処理部S24と、プレーン分割処理部S25と、Lプレーン圧縮処理部S26と、Hプレーン圧縮処理部S27と、フレーム合成処理部S28とを有する。非可逆圧縮処理部S5は逆圧縮処理を実行させるものであり、間引き処理部S505と、第2差分符号化処理部S510と、第2オフセット処理部S520と、エッジ検出処理部S525と、FAKE画像圧縮処理部S560と、第2プレーン分割処理部S530と、第2Lプレーン圧縮処理部S540と、第2Hプレーン圧縮処理部S550と、合成処理部S528を有する。
【0038】
画像データ圧縮プログラムSの各部によって、これから説明する圧縮処理部Cの各機能ブロックが構成される。画像データ圧縮プログラムSの各部による動作は、圧縮処理部Cの各機能ブロックの動作と同じであり、続いて、圧縮処理部Cの各機能ブロックについて説明する。
【0039】
図4は、図1に示す圧縮処理部を示すブロック図である。
【0040】
図4に示す圧縮処理部Cは、データに可逆圧縮処理を施す可逆圧縮部2と、データに非可逆圧縮処理を施す非可逆圧縮部5と、可逆圧縮部2および非可逆圧縮部5の圧縮処理を制御する圧縮制御部6と、可逆圧縮部2および非可逆圧縮部5からのデータを切替えて出力する切替部7とを備えている。図4に示す圧縮制御部6、切替部7、可逆圧縮部2、および非可逆圧縮部5は、図3に示す画像データ圧縮プログラムSの圧縮制御処理部S6、切替処理部S7、可逆圧縮処理部S2、および非可逆圧縮処理部S5にそれぞれ対応する。ここで、圧縮制御部6および切替部7の組合せが本発明の圧縮制御部の一例に相当する。
【0041】
圧縮制御部6は、制御部35から受け取ったデータが表す1つの画面を複数のブロックに区分けし、各ブロック内の画像について画素値の最大値MAXと最小値MINとを検索しそれらの差(MAX−MIN)を求める。
【0042】
図5は、圧縮制御部が受け取るデータの画面を示す図である。
【0043】
圧縮制御部6は、受け取ったデータの画面PをM行×n列のブロック(B11〜Bmn)に区分けし、各ブロックB11〜Bmnの画像ごとに、ブロック内の、16ビットの値で表わされた画素値の最大値と最小値との差(MAX−MIN)を求める。圧縮制御部6は、求めた差(MAX−MIN)の値に応じて、当該ブロックのデータを、可逆圧縮部2および非可逆圧縮部5のいずれに圧縮処理させるかを決定する。
【0044】
図6は、ブロックの画像における最大値と最小値との差と、圧縮処理の種類を説明する図である。図6の横軸は、各ブロック内における最大値と最小値との差(MAX−MIN)を示している。
【0045】
各ブロックの最大値と最小値との差(MAX−MIN)には、ブロックにおける画像の種類が反映される。例えば、あるブロックがいわゆる白ベタや黒ベタといった、画素値が近接した画素のみで構成される場合、そのブロックの最大値と最小値との差(MAX−MIN)は、差として採り得る最小値すなわち「0」近傍の値となる。これに対し、例えば機械的に描画された文字や線画が含まれるブロックの場合、ブロック内には画素値が極端に大きい例えば白の部分と画素値が極端に小さい黒の部分とが含まれることとなる。したがって、最大値と最小値との差(MAX−MIN)は、差の値として採り得る最大値の近傍となる。また、X線撮影による画像といった自然画またはその一部分を切り取ったブロックにおける画素の画素値はある範囲に分布し、最大値と最小値との差(MAX−MIN)は、最大値と最小値の中間の値の範囲、例えば第1の閾値THD1と第2の閾値THD2の間に分布することが多いが、ブロックの中には、画素値が近接した画素のみで構成されるいわゆるベタで構成されるブロックも存在し得る。
【0046】
圧縮制御部6は、ブロックの最大値と最小値との差(MAX−MIN)が、第1の閾値THD1と第2の閾値THD2の間の範囲内である場合には、非可逆圧縮部5にこのブロック内の画素値を被圧縮データとした非可逆圧縮処理を実行させる。圧縮制御部6は、この一方で、差(MAX−MIN)が、第1の閾値THD1と第2の閾値THD2の間の範囲外、すなわち、第1の閾値THD1より小さいか、または、第2の閾値THD2より大きい場合には、可逆圧縮部2にこのブロック内の画素値を被圧縮データとした可逆圧縮処理を実行させる。また、切替部7は、可逆圧縮部2および非可逆圧縮部5のうち、圧縮制御部6によって選択された方からの出力を選択して通信I/F36(図1参照)に出力する。
【0047】
可逆圧縮部2および非可逆圧縮部5による圧縮処理の詳細は後に説明するが、非可逆圧縮部5では、可逆圧縮部2による可逆圧縮処理に比べ圧縮率が高められるものの、圧縮されたデータは、伸張処理によっても完全に復元することができない。このため、文字やコントラストの高い部分については、伸張処理後にボケやにじみが生じて画像の劣化が顕著となる。文字等が含まれるブロックの画像については、圧縮制御部6によって可逆圧縮処理が選択されるので、伸張処理後の画像にボケやにじみがなく高画質が維持される。この一方、自然画を切り取ったブロックの画像は、伸張処理後のボケやにじみが目立たないため、圧縮率が高い非可逆圧縮処理が選択される。また、自然画を切り取ったブロックのうちベタ画像については、可逆圧縮処理によっても高い圧縮率が期待でき、また、仮に復元が完全に行われない場合の画素値の変化が目立ちやすいことから、可逆圧縮処理が選択される。
【0048】
このようにして、圧縮処理部Cによれば、データの圧縮率と画質の均衡がとられる。
【0049】
圧縮処理部Cから出力されたデータは、図1に示す通信I/F36、およびシステムコントローラ4の通信I/F45を介してシステムコントローラ4の伸長処理部に転送され、圧縮データにデータ伸長処理が施されるが、このデータ伸長処理にあたっては、各種の符号化処理に対応する復号化処理が施されて画像データが得られることとなる。
【0050】
続いて、可逆圧縮部2および非可逆圧縮部5のそれぞれの圧縮処理について説明する。
【0051】
図7は、図4に示す可逆圧縮部の内部構成を示すブロック図である。
【0052】
図7に示す可逆圧縮部2は、伸張処理した場合に圧縮前の元のデータを完全に復元することができる可逆圧縮処理を実行する。可逆圧縮部2は、差分符号化部23、オフセット部24、プレーン分割部25、Lプレーン圧縮部26、Hプレーン圧縮部27、および、フレーム合成部28を備えている。図7に示す差分符号化部23、オフセット部24、プレーン分割部25、Lプレーン圧縮部26、Hプレーン圧縮部27、およびフレーム合成部28は、図3に示す画像データ圧縮プログラムSの差分符号化処理部S23、オフセット処理部S24、プレーン分割処理部S25、Lプレーン圧縮処理部S26、Hプレーン圧縮処理部S27、およびフレーム合成処理部S28にそれぞれ対応する。
【0053】
差分符号化部23には、圧縮制御部6(図4参照)から、各画素が16ビットの値で表わされたビットマップ形式の画像データが供給される。ただし、圧縮制御部6からは、1画面を区切ったブロックのうち、可逆圧縮されることが選択されたブロックに相当する部分について画像データが供給される。差分符号化部23では、図示しないバッファに前回受信したラインのデータを一時的に保持しておき、これも参照しながら符号化を行う。差分符号化部23では、画像データが2次元差分符号化処理、すなわち、入力されてきた画像データを構成する数値の連続について、画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた2次元的な差分を求めることによりその差分を表わす16ビットの数値の連続からなる画像データを生成する処理が行なわれる。
【0054】
オフセット部24では、差分符号化部23で生成された、差分を表わす数値の連続からなる画像データが所定のオフセット値でオフセットされる。
【0055】
プレーン分割部25では、オフセット後の画像データの各数値が、下位の8ビットと上位の8ビットとに分けられることにより、画像データが、下位ビットの数値の連続からなる下位サブプレーンD1Lと上位ビットの数値の連続からなる上位サブプレーンD1Hとに分割される。
【0056】
Lプレーン圧縮部26およびHプレーン圧縮部27では、プレーン分割部25で分割された下位サブプレーンD1Lおよび上位サブプレーンD1Hそれぞれに対して可逆圧縮が施される。
【0057】
フレーム合成部28は、Lプレーン圧縮部26およびHプレーン圧縮部27のそれぞれから出力される下位圧縮データD2Lと上位圧縮データD2Hとを組み合わせて、データ送信の単位となるフレームを生成する。フレームが、元の画像データに対する圧縮データを構成する。
【0058】
ここで、差分符号化部23が本発明にいう差分生成部の一例に相当し、オフセット部24が本発明にいうオフセット部の一例に相当し、プレーン分割部25が本発明にいう分割部の一例に相当する。
【0059】
可逆圧縮部2における画像データの圧縮の流れについてまず説明する。
【0060】
前述したように、圧縮制御部6(図4参照)から送られてきた、各画素が16ビットの値で表わされた画像データは、差分符号化部23で2次元差分符号化処理され、オフセット部24でオフセットされた上で、プレーン分割部25で下位の8ビットと上位の8ビットとに分けられることにより、画像データが、下位ビットの数値の連続からなる下位サブプレーンD1Lと上位ビットの数値の連続からなる上位サブプレーンD1Hとに分割される。
【0061】
Lプレーン圧縮部26は、ハフマン符号化部261と、高速モードと通常モードとのいずれか一方にモードを切り替えるモード切替部262と、データスキャン部263とを備えており、プレーン分割部25から入力されてきた下位サブプレーンD1Lは、Lプレーン圧縮部26のデータスキャン部263とハフマン符号化部261の双方に入力される。
【0062】
データスキャン部263では、下位サブプレーンD1Lのデータのすべて、又は間引きした一部のデータをスキャニングして、そのデータ中に出現するすべての数値の出現頻度(ヒストグラム)が求められる。ここで、この出現頻度を求める処理は、本実施形態では、図7に示す下位サブプレーンD1Lの1つずつを単位として実行され、各下位サブプレーンD1Lのデータ中の数値の出現頻度が求められる。
【0063】
さらに、このデータスキャン部263では、求められたデータヒストグラム(数値の出現頻度)に基づき、ハフマンテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる。このようにして、データスキャン部263によって、数値と符号の対応付けられたハフマンテーブルが更新される。
【0064】
データスキャン部263で数値に符号が割り当てられてなるハフマンテーブルは、ハフマン符号化部261に渡され、Lプレーン圧縮部26のハフマン符号化部261では、その渡されたハフマンテーブルに従って、そのハフマン符号化部261に入力されてきた下位サブプレーンD1Lを構成する数値をそのハフマンテーブルに従う符号に置き換える符号化処理が行なわれる。
【0065】
Lプレーン圧縮部26のモード切替部262では、ユーザから、高速モードと通常モードとの切り替えを指示されて、上記のハフマン符号化部261によるハフマン符号化を経る通常モードと、ハフマン符号化を省略して下位サブプレーンD1Lをそのまま出力する高速モードとが切り替えられる。したがって、最終的にLプレーン圧縮部26からは、通常モードの場合には、下位サブプレーンD1Lがハフマン符号化により圧縮された下位圧縮データD2Lが出力され、高速モードの場合には、ハフマン符号化が施されていない下位圧縮データD2Lが出力されることになる。
【0066】
Hプレーン圧縮部27では、ランレングス符号化部271と、データスキャン部272と、ハフマン符号化部273とが備えられており、プレーン分割部25から入力されてきた上位サブプレーンD1Hは、Hプレーン圧縮部27のランレングス符号化部271に入力される。
【0067】
Hプレーン圧縮部27のランレングス符号化部271では、入力されてきた上位サブプレーンD1Hに対し、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化が行なわれる。ここでは、具体的には、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を1単位ビット数で表現し、その連続数が所定数を越えるときは2単位ビット数で表現する符号化が行なわれる。ランレングス符号化部271で符号化されたデータは、次にデータスキャン部272とハフマン符号化部273との双方に入力される。
【0068】
データスキャン部272では、ランレングス符号化部271で符号化された後のデータのすべて、又は間引きした一部のデータをスキャニングして、そのデータ中に出現するすべての数値の出現頻度(ヒストグラム)が求められる。ここで、この出現頻度を求める処理は、本実施形態では、図7に示す上位サブプレーンD1Hの1つずつを単位として実行され、各上位サブプレーンD1Hの、ランレングス符号化部271で符号化された後のデータ中の数値の出現頻度が求められる。
【0069】
さらに、このデータスキャン部272では、求められたデータヒストグラム(数値の出現頻度)に基づき、ハフマンテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる。このようにして、データスキャン部272によって、数値と符号の対応付けられたハフマンテーブルが更新される。
【0070】
データスキャン部272で数値に符号が割り当てられてなるハフマンテーブルは、ハフマン符号化部273に渡され、ハフマン符号化部273では、その渡されたハフマンテーブルに従って、そのハフマン符号化部273に入力されてきたデータを構成する数値を、そのハフマンテーブルに従う符号、すなわち、出現頻度の高い数値ほど短かいビット長で表わされる符号に置き換える符号化処理が行なわれる。
【0071】
ここで、ランレングス符号化部271が本発明にいう連続符号化部の一例に相当し、ハフマン符号化部273が本発明にいうエントロピー符号化部一例に相当する。
【0072】
ハフマン符号化部273でハフマン符号化された後のデータは、データスキャン部272で割り当てられた数値と符号との割当テーブルを含む圧縮情報が添付され、上位サブプレーンD1Hが圧縮された上位圧縮データD2HとしてHプレーン圧縮部27から出力される。
【0073】
図8は、差分符号化部に供給される画像データの構造を示す図、図9は、このデータに対して差分符号化部において2次元差分符号化処理が施された後のデータの構造を示す図である。
【0074】
制御部35から供給される画像データで表される画像は、所定の主走査方向に画素がM個並んでなるラインが、その主走査方向とは直角な副走査方向にNライン並ぶことによって構成されており、このような構成を反映してその画像データも、図8に示すように、主走査方向(図の左右方向)に画素値がM個並んでなるラインが、副走査方向(図の上下方向)にNライン並んでいるという構造を備えている。この図では、上からn番目のライン中の、左からm番目の画素値はPn,mと表記されており、この表記法を用いて、副走査方向にn番目のラインについては、主走査方向に並ぶ各画素の画素値が、その並び順に、
n,1,Pn,2,…,Pn,m−1,Pn,m,…,Pn,M−2,Pn,M−1,Pn,M
と表されている。これらの画素値は、16進表示で表された数値である。
【0075】
ここで、図7に示す差分符号化部23には、上記のような画像データが入力されて2次元差分符号化処理が施され、主走査方向に隣接する画素どうしの差分における副走査方向での更なる差分が求められる。
【0076】
図9には、2次元差分符号化処理が施されたデータの構造が示されており、このデータも、2次元差分符号化後の画素値が主走査方向にM個並んでなるラインが、副走査方向にNライン並んでいるという構造を備えている。この図では、上からn番目のライン中の、左からm番目の、2次元差分符号化後の画素値は、Xn,mと表記されており、この2次元差分符号化後の画素値Xn,mは、図8の中央部に示す、2次元差分符号化前の4つの画素値{Pn−1,m−1,Pn−1,m,Pn,m−1,Pn,m}から、下記の変換式によって得られる。
n,m=(Pn,m−Pn,m−1)−(Pn−1,m−Pn−1,m−1) …(1)
ここで、n=1の場合やm=1の場合には、右辺の2次元差分符号化前の画素値の添え字に0が現れることとなるが、添え字が0となる画素値については、下記のように定義する。
0,0=P0,m=0000 (m=1〜M), Pn,0=Pn−1,M (n=1〜N)
…(2)
ここで、式(2)の「0000」は、画素値を16進表示で表したときに値がゼロであることを表している。以下、式(1)および式(2)の意味について簡単に説明する。
【0077】
式(1)は、主走査方向に隣接する画素どうしの差分(すなわち、カッコの中の値)における副走査方向での更なる差分によって2次元差分符号化後の画素値Xn,mが得られることを表しており、2次元差分符号化前の画素値Pn,mが隣接する画素の画素値と相関が強い(すなわち同じような大きさの画素値である)場合には、2次元差分符号化後の画素値Xn,mは、ゼロに近い値となる。
【0078】
式(2)は、副走査方向の仮想的な0番目のラインと、各ラインの左から0番目の仮想的な画素値とを新たに設けたときの各画素値の定義を表す式である。主走査方向については左端の画素値(左から0番目の画素値Pn,0)とそのラインより1ライン前のラインの右端の画素値Pn−1,Mとを同一視するという定義となっている。また、副走査方向については、図の一番上側の画素値(0番目のライン上の画素値)、すなわち、P0,0やP0,mがすべて0に固定された定義となっている。
【0079】
2次元差分符号化後のデータにおいて、1ライン目の画素値、および各ラインの1番目の画素値については、式(1)の変換式の右辺に、添え字が「0」である項が現れるため、式(2)の定義が適用されることとなる。具体的には上記の式(1)および式(2)により、2次元差分符号化後の1ライン目の画素値は、
1,1=P1,1
1,2=P1,2−P1,1
1,3=P1,3−P1,2
…………
1,M=P1,M−P1,M−1
のように表される。
【0080】
一方、2次元差分符号化後のデータにおいて、各ラインの1番目の画素値については、上記の式(2)により、
1,1=P1,1
2,1=(P2,1−P1,M)−P1,1
3,1=(P3,1−P2,M)−(P2,1−P1,M),
…………
N,1=(PN,1−PN−1,M)−(PN−1,1−PN−2,M
のように表される。このように、1ライン目の画素値、および各ラインの1番目の画素値については、その変換の仕方がやや特殊であるが、これらの画素値以外の画素値については、式(2)の定義が適用されることなく、式(1)がそのまま適用される。例えば、2ライン目の画素値のうち一番左端を除いた画素値は、
2,2=(P2,2−P2,1)−(P1,2−P1,1),
2,3=(P2,3−P2,2)−(P1,3−P1,2),
…………
2,M=(P2,M−P2,M−1)−(P1,M−P1,M−1
のように表される。
【0081】
この2次元差分符号化処理を、具体的な数値を用いて説明する。
【0082】
図10は、図7に示す差分符号化部における2次元差分符号化処理を例示して示す図である。
【0083】
この図の左側(パート(A))に示す各数値が画像データを構成する画素値であり、この図の右側(パート(B))に示す各数値が2次元差分符号化処理で出力される出力値である。この図の横方向が主走査方向であり、主走査方向に並んだ8つの数値の並びが上記のラインである。この図に示すデータにはこうした8つの数値が並んだラインが全部で8本あり、図8および図9のデータにおいてN=8,M=8の場合のデータに相当する。なお、本実施形態の差分符号化部23は、画像データの1画素分を表わすデータとして16ビットの値を処理するが、ここでは、値の見にくさを避けるため、1画素分を表わすデータとして8ビットの値の例で説明する。
【0084】
図10のパート(A)に示すデータの2次元差分符号化処理では、先ず、1ライン目の各画素値「90 8A 8A 7B …」のうち、一番左の「90」については、この値がそのまま上記のX1,1として出力され、それ以外のX1,2,X1,3,…については、主走査方向に隣接する画素値どうしの差分の値「8A−90=FA」「8A−8A=00」…が出力される。ここで、「8A」から「90」を引き算した結果は実際には負の数となり、9ビットで「1FA」と表されるが、MSBの1ビットである最上位の「1」は省略し、下位8ビットである「FA」のみを出力する。
【0085】
2ライン目については、X2,1を求める式、
2,1=(P2,1−P1,M)−P1,1
において、M=8としたときの右辺の{P2,1,P1,8,P1,1}に対し、図10のパート(A)に示す数値が代入されて、「(87−58)−90=9F」がX2,1として出力される。それ以外のX2,2,X2,3,…については、2ライン目についての主走査方向に隣接する画素値どうしの差分と、1ライン目についての主走査方向に隣接する画素値どうしの差分との更なる差分の値「(84−87)−(8A−90)=03」「(88−84)−(8A−8A)=04」…が出力される。
【0086】
3ライン目については、X3,1を求める式、
3,1=(P3,1−P2,M)−(P2,1−P1,M
において、M=8としたときの右辺の{P3,1,P2,8,P2,1,P1,8}に、図10のパート(A)に示す数値が代入されて、「(8B−4C)−(87−58)=10」がX3,1として出力される。それ以外のX3,2,X3,3,…については、3ライン目についての主走査方向に隣接する画素値どうしの差分と、2ライン目についての主走査方向に隣接する画素値どうしの差分との更なる差分の値「(86−8B)−(84−87)=FE」「(8A−86)−(88−84)=00」…が出力される。
【0087】
以下、4ライン目以降についても、3ライン目の演算と同じ演算を繰り返すことにより、図10のパート(B)に示す各数値が得られることとなる。
【0088】
なお、図1に示す伸張処理部47では、このように2次元差分符号化されたデータに対してデータの復号化処理が行われる。この復号化処理では、2次元差分符号化されたデータの値からPn,mを求める式が使用されており、この式は以下のようにして求めることができる。
【0089】
2次元差分符号化後の画素値Xi,jを、i=1からi=mまで足し上げ、さらにj=1からj=mについて足し上げた結果は、式(1)および式(2)を用いて下記の式(3)のように表される。
【0090】
【数1】

【0091】
ここで、式の途中に現れる{P0,0,Pn,0,P0,m}に対して、式(2)が適用されている。この式から、2次元差分符号化前の画素値Pn,mは、下記の式(4)のように表される。
【0092】
【数2】

【0093】
伸張処理部47では、上記の式(4)により、先ず、1ライン目の画素値P1,1,P1,2,…,P1,Mが求められる。例えば、1ライン目の画素値のうち主走査方向にm番目の画素値は、上記の式(4)にn=1を代入し、さらに式(2)のP0,M=0を利用して、下記の式(5)のように表される。
【0094】
【数3】

【0095】
このようにして、1ライン目の画素値、P1,1,P1,2,…,P1,Mがすべて求められる。
【0096】
2ライン目の画素値P2,1,P2,2,…,P2,Mについては、同様に上記の式(4)にn=2を代入し、さらに1ライン目の画素値の複合化で得られたP1,Mを用いることで求めることができる。例えば、2ライン目の画素値のうち主走査方向にm番目の画素値は、下記の式(6)のように表される。
【0097】
【数4】

【0098】
3ライン目以降の画素値についても同様にして、上記の式(6)やそれ以降の計算で複合化された画素値を用いて求めることができる。図1に示す伸張処理部47では、このような方式でデータの復号化処理が行われる。
【0099】
図7に示す差分符号化部23では、以上説明したような2次元差分符号化が画像データに施される。この2次元差分符号化によって得られるデータは、図7に示すオフセット部24に入力され、そのデータの各数値についてオフセット値「0x0080」が加算され、データが下位サブプレーンD1Lと上位サブプレーンD1Hとに分割される。ここでは、データの分割までの処理について具体的に説明する。
【0100】
図11は、制御部から差分符号化部に供給された画像データのヒストグラムの例を示す図である。図11には、制御部35(図1)から供給された画像データにおけるデータ値のヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸はデータ数(画素数)を表している。
【0101】
図12は、図11に示す画像データに対する差分符号化およびオフセットの効果を示す図である。
【0102】
図12のパート(A)には、図11に示した画像データに対して差分符号化が施されて得られるデータのヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸は出現頻度を表しており、ここには、この画像データに対して差分符号化が施されると、データのヒストグラムが、最小データ値と最大データ値の双方に鋭いピークを有するヒストグラムとなった様子が示されている。そして、このようなデータに対してオフセット値「0x008」によりオフセットが施されると、データのヒストグラムは、図12のパート(B)に示すような、オフセット値「0x0080」のところに鋭いピークを持つヒストグラムとなる。(オフセット値「0x0080」は16ビットデータの場合であり、8ビットデータの場合は、オフセット値「0x08」にピークを持つヒストグラムになる。)
このように差分符号化およびオフセットによってヒストグラムが変形されたデータは、図7に示すプレーン分割部25によって下位サブプレーンD1Lと上位サブプレーンD1Hとに分割される。
【0103】
図13は、プレーン分割部によるデータ分割の効果を説明する図である。
【0104】
この図13には、図12のパート(B)に示すヒストグラムがデータ値「255」とデータ値「256」との間で切り離されたヒストグラムが示されており、図7のプレーン分割部25によるデータ分割は、まさにこのようなヒストグラムの分割に相当する効果を生じる。すなわち、本実施形態では、データを構成している16ビットの各数値が上位8ビットと下位8ビットとに分割されることで、下位8ビットが表す数値の連続からなる下位サブプレーンD1Lと上位8ビットが表す数値の連続からなる上位サブプレーンD1Hとが得られる。そして、下位サブプレーンD1Lを構成する8ビットの数値が値「0」から値「255」までの各数値をそのまま表現していて、上位サブプレーンD1Hを構成する8ビットの数値の場合は、値「256」から値「65535」までの数値を表現していると解釈すると、下位サブプレーンD1Lのヒストグラムは、この図13の左側に示されたヒストグラムとほぼ同じものとなり、上位サブプレーンD1Hのヒストグラムは、図13の右側に示されたヒストグラムとほぼ同じものとなる。ただし、上位サブプレーンのヒストグラムについては、図の右側に示されたヒストグラムのデータ値「256」のところに、図13の左側に示されたヒストグラムの面積に等しい高さのピークが付加されたものとなる。
【0105】
以下では、上位サブプレーンD1Hと下位サブプレーンD1Lとに分割された後のデータの処理について説明する。
【0106】
まず、図13の右側に示す上位サブプレーンD1Hに対する処理について説明する。
【0107】
図13の右側に示されたヒストグラムにおいて画素の出現頻度がほとんどゼロに近いことからわかるように、上位サブプレーンD1H中の数値は、ゼロに近い値(16進数表示での「00」や「01」や「FF」)の連続が多いことが予想される。このため、上位サブプレーンD1Hに圧縮を施すには、同一の数値の連続を符号化することで圧縮を行うランレングス符号化が有効であり、上位サブプレーンD1Hは、図7に示すHプレーン圧縮部27の構成要素の1つであるランレングス符号化部271に入力される。
【0108】
本実施形態では、ランレングス符号化部271で、上位サブプレーンD1Hを構成する連続した8ビットの数値が取り扱われ、16進数表示で値「00」から値「FF」までの数値の連続に対して以下の符号化処理が適用される。
【0109】
この符号化処理では、複数の8ビットの数値のうちの特定の数値についてのみ符号化処理が行なわれる。このため、このランレングス符号化部271では、受け取ったデータの中から、符号化処理を行う数値(ここでは、この数値を「圧縮対象数値」と称する)と、その圧縮対象数値の連続数が検出される。
【0110】
本実施形態では、一例として、「01」、「FF」および「00」の3つの数値を圧縮対象数値としている。
【0111】
図14は、図7に示すランレングス符号化部での符号化の説明図である。
【0112】
図14の上のラインは、上位サブプレーンD1Hを構成するデータ、下のラインは、ランレングス符号化部271での符号化処理を行った後のデータである。
【0113】
ここでは、図14の上のラインに示すように、ランレングス符号化部271からは、
「06 02 02 02 01 01 01 01 04 05 00 … 」
なるデータが入力されたものとする。このとき、図7のランレングス符号化部271では、先頭の「06」は圧縮対象数値ではなく、次に続く「02 02 02」も圧縮対象数値ではなく、次に、圧縮対象数値である「01」が4つ連続していること、次に、圧縮対象数値ではない「04」、「05」を間に置いて、圧縮対象数値である「00」が32767個連続していることが検出される。
【0114】
図15は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【0115】
この図15中、Zは同一の圧縮対象数値の連続数、例えば図14の上のラインの「01」についてはZ=4、「00」についてはZ=32767である。
【0116】
また、図15中、「YY」は、16進2桁で表わされた圧縮対象数値自体を表わしている。その「YY」に続く、「0」又は「1」は1ビットで表現された「0」又は「1」であり、さらにそれに続く「XXX XXXX…」は、1つの「X」が1ビットを表わしており、この「XXX XXXX…」でZの値を表現している。
【0117】
すなわち、図15は、圧縮対象数値「YY」がZ<128連続するときは、1バイト目で圧縮対象数値「YY」を表現し、それに続く1バイトで、先頭ビットが「0」、それに続く7ビットでZの値を表現すること、また、圧縮対象数値「YY」がZ≧128連続するときは、1バイト目で圧縮対象数値「YY」を表現し、それに続く2バイト(16ビット)のうちの先頭の1ビットを「1」とすることで2バイトに跨って表現されていることを表現し、それに続く15ビットで、Zの値を表現することを意味している。
【0118】
この図15に示す規則に従って図14に示す符号化の例について説明する。
【0119】
図7のプレーン分割部25から入力されてきた上位サブプレーンD1Hのデータ(上のライン)を構成する先頭の数値「06」は圧縮対象数値ではないため、その「06」のまま出力される。また、それに続く「02 02 02」も、「02」は圧縮対象数値ではなく、これら3つの「02」もそのまま出力される。次に、圧縮対象数値である「01」が4個連続するため、「01 04」に符号化される。次の「04」及び「05」は圧縮対象数値ではないため、そのまま「04 05」が出力される。
【0120】
次に「00」が32767個連続しているため、「00」を置き、次の1バイトのうちの先頭の1ビットを「1」とし、次いで15ビットで32895−128を表現することにより、「00 FF 7F」の3バイトで「00」が32767個連続していることを表現する。すなわち、連続数128は、最初のビット「1」を除き、「00 00」と表現される。
【0121】
図16は、図7のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
・「00」が127個連続するときは、2バイトを用いて「00 7F」に符号化され、
・「00」が32767個連続するときは、3バイトを用いて「00 FF 7F」に符号化され、
・「00」が32895個連続するときは、3バイトを用いて「00 FF FF」に符号化され、
・「00」が128個連続するときは、3バイトを用いて「00 80 00」に符号化され、
・「01」が129個連続するときは、3バイトを用いて「01 80 01」に符号化され、
・「FF」が4096個連続するときは、3バイトを用いて「FF 8F 80」に符号化される。
【0122】
図7に示すランレングス符号化部271では、上記のような符号化処理が行なわれる。
【0123】
本実施形態によるランレングス符号化部271によれば、最大圧縮率は、3/32895=1/10,965にまで向上する。また、このランレングス符号化部271が符号化処理の対象としている上位サブプレーンD1Hのデータは、図13のヒストグラムで説明したように、8ビットの数値のほとんどが、元のデータ値「256」未満に相当する数値「0」となる。このためランレングス符号化部271における符号化処理によって大幅なデータ圧縮が期待される。
【0124】
図7のランレングス符号化部271で上記の符号化処理の行なわれた後のデータは、次に図7のHプレーン圧縮部27を構成するデータスキャン部272とハフマン符号化部273に入力される。
【0125】
このデータスキャン部272では、先ず、ランレングス符号化部271から出力されたデータの全体がスキャニングされてデータ値の出現頻度が求められる。
【0126】
図17は、データスキャン部によるスキャニング結果の例を示す図である。
【0127】
ここでは、「A1」の出現頻度が最も強く、以下順に、「A2」、「A3」、「A4」、…の順であるとする。なお、これら「A1」、「A2」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「A1」は例えば数値「00」、「A2」は数値「FF」等である。また、ここでは、簡単のため、図7のランレングス符号化部271から送られてくるデータはすべてのデータ値が、「A1」〜「A16」の16個の数値のうちのいずれかの数値であるものとする。そして、このような16個の数値それぞれに対して、データスキャン部272では、出現頻度に応じた符号が割り当てられてハフマンテーブルが作成される。即ち、出現頻度の最も高い「A1」には、2ビットで表わされた符号「00」が割り当てられ、次の「A2」には、やはり2ビットで表わされた符号「01」が割り当てられ、次の「A3」、さらに次の「A4」には、3ビットで表わされる、それぞれ、符号「100」、符号「101」が割り当てられ、次の「A5」〜「A8」には、5ビットで表わされる各符号が割り当てられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた符号が割り当てられる。
【0128】
図18は、ハフマンテーブルの一例を示す図である。
【0129】
このハフマンテーブルは、図17と一致させてあり、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられるように並べられた、符号化前(置き換え前)の数値と符号化後(置き換え後)の数値との対応テーブルである。
【0130】
図7のHプレーン圧縮部27を構成するハフマン符号化部273では、このようなハフマンテーブルに従ってデータの数値が符号化され、その結果、多くの数値が短かいビット数の符号に置き換えられることとなってデータ圧縮が実現される。
【0131】
図19は、ハフマンテーブルに用意される符号列の具体例を示す図である。
【0132】
図19に示す符号列では、各符号列中の「,」よりも右側の数値がビット長を意味しており、その「,」から左側に並ぶそのビット長分の2進符号が実際の符号を表わしている。例えば、図17の左上の第1番目の符号は「11」の2ビット、次の2番目の符号は「011」の3ビット、その次の3番目の符号は「010」の3ビット、さらにその次の4番目の符号は「1010」の4ビットである。このような符号列により、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられる。
【0133】
図7のHプレーン圧縮部27を構成するハフマン符号化部273では、このようなハフマンテーブルに従ってデータの数値が符号化され、その結果、多くの数値が短かいビット数の符号に置き換えられることとなってデータ圧縮が実現される。
【0134】
ランレングス符号化部271で符号化されたデータは8ビットごとに、ハフマン符号化部273によって符号に変換される。この変換によって可変長符号化された上位圧縮データD2Hが生成される。
【0135】
以上の図14〜図19で説明した処理により、図7のHプレーン圧縮部27に入力される上位サブプレーンD1Hについては、ランレングス符号化部271による符号化とハフマン符号化部273による符号化が施されることにより高い圧縮率で圧縮されて上位圧縮データD2Hとなる。
【0136】
次に、下位サブプレーンD1Lに対する処理について説明する。プレーン分割部25で分割された下位サブプレーンD1Lは連続した8ビットの数値として取り扱われ、ハフマン符号化部261において、図17〜図19で説明したハフマン符号化処理が行われる。ハフマン符号化部261で符号への変換に用いられるハフマンテーブルは、データスキャン部263のスキャンによって生成される。Lプレーン圧縮部に入力されたデータは8ビットごとに、ハフマン符号化部261によって符号に変換される。この変換によって可変長符号化された下位圧縮データD2Lが生成される。
【0137】
なお、上述したように、ユーザから、高速モードが指示された場合には、モード切替部262が切り替えられ、ハフマン符号化部261によるハフマン符号化処理は省略されて、下位サブプレーンD1Lは下位圧縮データD2LとしてLプレーン圧縮部26から出力されることになる。
【0138】
上位圧縮データD2Hおよび下位圧縮データD2Lは、フレーム合成部28によって組み合われられて1つのフレームが生成され、フレームが通信I/F36によって送信される。フレームにはフレームの伸張処理に必要な各種設定がヘッダとして挿入さる。このヘッダには、ハフマン復号化に用いるテーブルも含まれる。
【0139】
図20は、図7に示す非可逆圧縮部を示す図である。
【0140】
図20に示す非可逆圧縮部5は、非可逆圧縮のアルゴリズムを用いて画像データを圧縮する部であり、高圧縮率でのデータ圧縮が行われる。
【0141】
非可逆圧縮部5には、画像データで表わされる画像を構成する全画素から可逆圧縮処理の対象となるTRUE画素を間引く間引き処理部505と、TRUE画素が間引かれた後に残った画素であって非可逆圧縮処理の対象となるFAKE画素について非可逆圧縮処理を実行するための各部として、FAKE画素データ圧縮部560、およびエッジ検出部525とが備えられている。また、非可逆圧縮部5には、TRUE画素について可逆圧縮処理を実行するための各部として、第2差分符号化部510、第2オフセット部520、第2プレーン分割部530、第2Lプレーン圧縮部540、および第2Hプレーン圧縮部550が備えられている。さらに、非可逆圧縮部5には、フレーム合成部528も備えられている。図20に示す間引き処理部505、第2差分符号化部510、第2オフセット部520、エッジ検出部525、FAKE画素データ圧縮部560、第2プレーン分割部530、第2Lプレーン圧縮部540、第2Hプレーン圧縮部550、およびフレーム合成部528は、図3に示す画像データ圧縮プログラムSの間引き処理部S505、第2差分符号化処理部S510、第2オフセット処理部S520、エッジ検出処理部S525、FAKE画像圧縮処理部S560、第2プレーン分割処理部S530、第2Lプレーン圧縮処理部S540、第2Hプレーン圧縮処理部S550、および合成処理部S528にそれぞれ対応する。ここで、間引き処理部505が本発明にいう間引き処理部の一例に相当する。
【0142】
図20に示す非可逆圧縮部5での圧縮処理について説明する。
【0143】
画像データが非可逆圧縮部5に入力されると、間引き処理部505により、可逆圧縮処理の対象となるTRUE画素の画素データと、非可逆圧縮処理の対象となるFAKE画素の画素データとに分けられる。
【0144】
図21は、図20の間引き処理部で行われる間引き処理の概念を示す図である。
【0145】
図21には、画像データのデータ構造も示されている。
【0146】
図21では、図21の横方向が主走査方向であり、その主走査方向とは直角な方向が副走査方向である。上述したように主走査方向に並ぶ画素の列はラインと称され、ここでは6ライン分の画素が示されている。図19では、各画素の位置は、画素値を表す符号T,Fに付された添え字で表現される。例えば3番目のラインについて、主走査方向に並ぶ各画素の画素値には、その並び順に、
3_1,3_2,3_3,3_4,…
という添え字が付されている。
【0147】
図20に示す間引き処理部505には、このように並んだ画素値からなる画像データが入力され、間引き処理部505は、各画素を、TRUE画素とFAKE画素とに分類する。この図21に示す各画素のうちTRUE画素は画素値が符号Tで表され、FAKE画素は画素値が符号Fで表されている。TRUE画素は、画素の並びの中から周期的に間引かれる画素であり、この図は、副走査方向に1ラインおきの各ライン(奇数番目のライン)について、主走査方向に1画素おきの各画素(奇数番目の画素)がTRUE画素として間引き出されることを示している。この結果、TRUE画素は、元の解像度の半分の解像度に低下した画像を構成する画素に相当しており、元の画像データの4分の1に相当する画素が間引き出されたこととなる。このように間引き出されたTRUE画素は、そのようなTRUE画素の連続からなるTRUE画素データを構成し、そのTRUE画素データの構造は、元の画像データと同様に、主走査方向と副走査方向に画素が並んだ構造となっている。TRUE画素の間引きによって残ったFAKE画素についても、そのFAKE画素の画素値の連続からなるFAKE画素データを構成する。TRUE画素データが可逆圧縮処理の対象となるのに対し、このFAKE画素データは非可逆圧縮処理の対象となる。
【0148】
TRUE画素の画素データに対しては、非可逆圧縮部5内の第2差分符号化部510、第2オフセット部520、第2プレーン分割部530、第2Lプレーン圧縮部540、および第2Hプレーン圧縮部550により、図7を参照して説明した圧縮処理部Cの可逆圧縮処理と同様の処理が行われる。すなわち、第2差分符号化部510で、差分符号化部23と同様の2次元差分符号化処理が行われ、オフセット部520に入力されて所定量のオフセットが施される。そして、第2プレーン分割部530で、画像データが、下位ビットの数値の連続からなる下位サブプレーン2D1Lと上位ビットの数値の連続からなる上位サブプレーン2D1Hとに分割され、それぞれ、第2Lプレーン圧縮部540および第2Hプレーン圧縮部550に入力される。第2Lプレーン圧縮部540および第2Hプレーン圧縮部550は、それぞれ、図7のLプレーン圧縮部26およびHプレーン圧縮部27と同様の構成を備えている。例えば、第2Lプレーン圧縮部540にも、ハフマン符号化部541、モード切換部542データスキャン部543が備えられており、これらにより、図7に示すLプレーン圧縮部26と同様な処理が施されて下位圧縮データ2D2Lが出力される。一方、第2Hプレーン圧縮部550には、ランレングス符号化部551と、データスキャニング部552と、ハフマン符号化部553が備えられており、これらにより、図7のHプレーン圧縮部27と同様な処理が施されて上位圧縮データ2D2Hが出力される。
【0149】
一方、FAKE画素の画素データに対しては、FAKE画素データ圧縮部560により、非可逆圧縮処理が施される。このFAKE画素データ圧縮部560には、ビット数削減/非エッジ符号出力部561と、ランレングス符号化部562と、ハフマン符号化部563とが備えられており、FAKE画素データを構成する数値はビット数削減/非エッジ符号出力部561で元データの単位ビット数以下の少ビット数で表現した数値、又は非エッジ符合に置換される。ここで、FAKE画素データを構成する数値が、ビット数削減/非エッジ符号出力部561において、エッジ部分でない事を示す符合を出力するか、又は、元データの単位ビット数以下の少ビット数で表現した数値を出力するかは、その数値の画素値を有するFAKE画素が、画像のエッジ部分に属する画素であるか否かによって決定され、エッジ部分に属するか否かの判定は、エッジ検出部525によって行われる。ここで、ビット数削減/非エッジ符号出力部561が本発明にいうビット数制限部の一例に相当する。以下、前記、少ビット数で表現した数値は4ビットデータ、非エッジ符合は1ビットデータの例を具体例として説明する。
【0150】
このエッジ検出部525の判定に基づき、ビット数削減/非エッジ符号出力部561では、画像のエッジ部分に属する画素の画素値は4ビットの符号に置換され、画像のエッジ部分に属さない画素の画素値は1ビットの符号に置換される。1ビットまたは4ビットの符号に置換されたデータは、ランレングス符号化部562およびハフマン符号化部563によって、図7に示すHプレーン圧縮部27における処理と全く同様の処理が施される。ここで、FAKE画素データ圧縮部560にも、図7に示すHプレーン圧縮部27のデータスキャニング部272と同様の働きをするデータスキャニング部が存在するが、その図示は省略されている。ランレングス符号化処理およびハフマン符号化処理が施されたFAKE画素データは、非可逆圧縮データ2D3としてFAKE画素データ圧縮部560から出力される。
【0151】
次に、FAKE画素データについての非可逆圧縮処理について説明する。間引き処理部505で得られたFAKE画素データはFAKE画素データ圧縮部560に入力され、FAKE画素データ圧縮部560内のビット数削減/非エッジ符号出力部561は、そのFAKE画素データがエッジ部分の画素データであるか否かに応じて、このFAKE画素データを、エッジ部分でない事を示す符合を出力するか、又は、元データの単位ビット数以下の少ビット数で表現した数値を出力する。エッジ部分であるか否かは、第2オフセット部520によるオフセット後の差分データに基づき、図20のエッジ検出部525によって判定される。
【0152】
次に、FAKE画素データが符号化される様子について説明する。
【0153】
図21に示すTRUE画素の画素値をTn_kと表現した場合に、そのTRUE画素に隣接するFAKE画素の画素値はFn_k+1,Fn+1_k,Fn+1_k+1というように表現され、そのTRUE画素に対してそれらのFAKE画素を挟んだ位置のTRUE画素の画素値は、Tn_k+2,Tn+2_k,Tn+2_k+2と表現される。エッジ検出部525では、このような4つのTRUE画素の画素値Tn_k,Tn_k+2,Tn+2_k,Tn+2_k+2から2次元差分符号化処理で得られる差分値(ここでは、前述のように16進数表示で値「00」から値「FF」までの数値で表した差分値ではなく、画素値をそのまま差分をとって得られる10進数表示での差分値)が、エッジ検出部525に設定されている正の整数値の閾値パラメータLを用いて規定される、(−L)未満の領域、あるいは(+L)以上の領域に属する場合には、上述した3つのFAKE画素の画素値Fn_k+1,Fn+1_k,Fn+1_k+1はエッジ部分であると判定され、ビット数削減/非エッジ符号出力部561において「1」から始まる4ビットの符号に符号化される。
【0154】
図22は、4ビット符号への符号化方式を表す図である。
【0155】
この符号化方式では、FAKE画素の画素値は、その画素値を表した元データの単位ビット数が16であれば、16ビットのビット値の下位13桁が切り捨てられ、残った上位3桁の先頭に「1」が付加されることで「1000」〜「1111」の符号に符号化される。したがって、この図の表に示すように、符号化前の「0」〜「65535」の数値のうち「0」〜「8191」の数値は「1000」に符号化され、「8192」〜「16383」の数値は「1001」に符号化される。以下同様に、「16384」〜「24575」、「24576」〜「32767」、「32768」〜「40959」、「40960」〜「41951」、「49152」〜「57343」、「57344」〜「65535」の数値は、それぞれ、「1010」、「1011」、「1100」、「1101」、「1110」、「1111」に符号化される。このような符号化方式は、ビット値の桁の切り捨てというごく単純な処理で実現される。このような4ビット符号への符号化によって元の画像の情報がある程度維持されて画質低下が回避される。
【0156】
エッジ検出部525では、上述した4つのTRUE画素の画素値Tn_k,Tn_k+2,Tn+2_k,Tn+2_k+2から2次元差分符号化処理で得られる差分値が、(−L)以上かつ(+L)以下の領域に属する場合には、上述した3つのFAKE画素の画素値Fn_k+1,Fn+1_k,Fn+1_k+1はエッジ部分ではないと判定され、ビット数削減/非エッジ符号出力部561において1ビットの符号「0」に符号化される。
【0157】
1ビットまたは4ビットの符号に置換されたデータは、ランレングス符号化部562およびハフマン符号化部563によって、図7に示すHプレーン圧縮部27における処理と全く同様の処理が施される。ここで、FAKE画素データ圧縮部560にも、図7に示すHプレーン圧縮部27のデータスキャニング部272と同様の働きをするデータスキャニング部が存在するが、図20ではその図示は省略されている。ランレングス符号化処理およびハフマン符号化処理が施されたFAKE画素データは、非可逆圧縮データ2D3としてFAKE画素データ圧縮部560から出力される。
【0158】
第2Lプレーン圧縮部540および第2Hプレーン圧縮部550のそれぞれから出力される下位圧縮データ2D2Lと上位圧縮データ2D2Hとに、さらに非可逆圧縮データ2D3が加わったデータの組で、元の画像データに対し、非可逆圧縮部5において非可逆圧縮処理が施された圧縮データが構成される。この圧縮データは、フレーム合成部528に入力される。
【0159】
フレーム合成部528は、下位圧縮データ2D2Lと上位圧縮データ2D2Hと非可逆圧縮データ2D3とを組み合わせてフレームを生成する。
【0160】
上述した非可逆圧縮部5の処理では、情報は失われて伸張処理でも完全に再現はできないが、自然画における判別が可能な程度の情報が維持される。しかも、非可逆圧縮部5での圧縮処理は、可逆圧縮部2に比べ圧縮率が格段に高い。
【0161】
本実施形態の圧縮処理部Cでは、上述した可逆圧縮処理と非可逆圧縮処理とが、画素値の最大値と最小値との差に基づいて適切に選択されるので、文字や線画の画質劣化を抑えつつ、データの圧縮率を向上することができる。
【0162】
なお、上述した実施形態では、本発明にいう圧縮制御部のブロックの例として、受け取ったデータの画面PをM行×n列のブロックに区分けする圧縮制御部6を示したが、本発明はこれに限られるものではなく、例えば、複数のブロックは大きさが互いに異なるものであってもよい。
【0163】
図23は、データの画面が図5とは異なるブロックに区分けされた例を示す図である。本発明にいう圧縮制御部は、例えば、前処理としての簡易画像解析の結果や、画像内における要素の標準的な配置に基づいて、画面P2を例えば図23に示すような、互いに大きさの異なるブロックに区分けするものであってもよい。また、本発明にいう圧縮制御部のブロックは、例えば、1画面を縦に区切る横に延びた帯状のものであってもよい。
【0164】
また、上述した実施形態では、本発明にいう符号化部の例として、差分符号化処理されたデータをハフマン符号化する符号化部を示したが、本発明はこれに限られるものではなく、例えば、離散コサイン変換が施されたデータをハフマン符号化するものであってもよい。
【0165】
また、上述した実施形態では、本発明にいう画像データ圧縮装置の例として、放射線画像診断システムSの放射線検出ユニット3を示したが、本発明はこれに限られるものではなく、例えば、デジタルカメラであってもよい。
【0166】
また、上述した実施形態では、画像データ圧縮装置の例として、画像データ圧縮プログラムにより構成される圧縮処理部Cを有する放射線検出ユニット3の例を示したが、本発明はこれに限られるものではなく、例えば、画像データ圧縮装置は論理回路によって構成されたものであってもよい。
【符号の説明】
【0167】
1 放射線照射装置
C 圧縮処理部
2 可逆圧縮部
3 放射線検出ユニット
4 システムコントローラ
5 非可逆圧縮部
6 圧縮制御部
7 切替部
23 差分符号化部
24 オフセット部
25 プレーン分割部
26 Lプレーン圧縮部
27 Hプレーン圧縮部
28 フレーム合成部
261 ハフマン符号化部
263 データスキャン部
271 ランレングス符号化部
272 データスキャニング部
272 データスキャン部
273 ハフマン符号化部
505 間引き処理部
510 第2差分符号化部
525 エッジ検出部
540 第2Lプレーン圧縮部
550 第2Hプレーン圧縮部
560 FAKE画素データ圧縮部
561 ビット数削減/非エッジ符号出力部

【特許請求の範囲】
【請求項1】
数値の連続からなる被圧縮データに可逆圧縮処理を施す可逆圧縮部と、
数値の連続からなる被圧縮データに非可逆圧縮処理を施す非可逆圧縮部と、
画像を構成する複数の画素を表す複数の画素値における最大値と最小値との差が所定の上限から所定の下限までの範囲内である場合には、前記非可逆圧縮部に該複数の画素値を被圧縮データとした非可逆圧縮処理を実行させ、該差が前記範囲外である場合には、前記可逆圧縮部に該画素値を前記被圧縮データとした可逆圧縮処理を実行させる圧縮制御部とを備えたことを特徴とする画像データ圧縮装置。
【請求項2】
前記圧縮制御部が、1つの画面が区分けされた複数のブロックそれぞれの画像について、前記可逆圧縮処理および前記非可逆圧縮処理のうち該ブロック内での最大値と最小値との差に応じた方の圧縮処理を実行させるものであることを特徴とする請求項1記載の画像データ圧縮装置。
【請求項3】
前記可逆圧縮部が、
前記被圧縮データを構成する数値の連続について直接に隣接し、あるいは一定間隔を空けて隣り合った数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
前記差分生成部によって生成された新たな被圧縮データを構成する各数値を所定値だけオフセットさせるオフセット部と、
前記オフセット部によって数値がオフセットされた被圧縮データの各数値を、前記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する連続符号化部と、
対応符号と数値を対応づけるテーブルを用いて、前記連続符号化部で符号化された後のデータにエントロピー符号化を施すエントロピー符号化部とを備えたことを特徴とする請求項1または2記載の画像データ圧縮装置。
【請求項4】
前記非可逆圧縮部が、
前記被圧縮データを構成する数値の連続から周期的に数値を間引くことにより、その間引きで該被圧縮データから取り出された数値の連続からなる第1の被圧縮データと、残りの数値の連続からなる第2の被圧縮データとを作成する間引き処理部と、
前記間引き処理部で作成された第2の被圧縮データを構成する数値について、その数値を単位ビット数よりも少ない少ビット数で表現し直した数値を出力するビット数制限部とを備えたことを特徴とする請求項1から3いずれか1項記載の画像データ圧縮装置。
【請求項5】
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、データ圧縮処理を実行させる画像データ圧縮プログラムにおいて、
数値の連続からなる被圧縮データに可逆圧縮処理を施す可逆圧縮部と、
数値の連続からなる被圧縮データに非可逆圧縮処理を施す非可逆圧縮部と、
画像を構成する複数の画素を表す複数の画素値における最大値と最小値との差が所定の下限から所定の上限までの範囲内である場合には、前記非可逆圧縮部に該複数の画素値を被圧縮データとした非可逆圧縮処理を実行させ、該差が前記範囲外である場合には、前記可逆圧縮部に該画素値を前記被圧縮データとした可逆圧縮処理を実行させる圧縮制御部とを備えたことを特徴とする画像データ圧縮プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2011−19059(P2011−19059A)
【公開日】平成23年1月27日(2011.1.27)
【国際特許分類】
【出願番号】特願2009−161951(P2009−161951)
【出願日】平成21年7月8日(2009.7.8)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】