JP4579793B2 - データ圧縮装置およびデータ圧縮プログラム - Google Patents

データ圧縮装置およびデータ圧縮プログラム Download PDF

Info

Publication number
JP4579793B2
JP4579793B2 JP2005242178A JP2005242178A JP4579793B2 JP 4579793 B2 JP4579793 B2 JP 4579793B2 JP 2005242178 A JP2005242178 A JP 2005242178A JP 2005242178 A JP2005242178 A JP 2005242178A JP 4579793 B2 JP4579793 B2 JP 4579793B2
Authority
JP
Japan
Prior art keywords
data
compression
unit
numerical value
numerical values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005242178A
Other languages
English (en)
Other versions
JP2007060206A (ja
Inventor
由紀夫 杉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Corp
Original Assignee
Fujifilm Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujifilm Corp filed Critical Fujifilm Corp
Priority to JP2005242178A priority Critical patent/JP4579793B2/ja
Publication of JP2007060206A publication Critical patent/JP2007060206A/ja
Application granted granted Critical
Publication of JP4579793B2 publication Critical patent/JP4579793B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、画像データ等のデータを圧縮するデータ圧縮装置、およびコンピュータ等の情報処理装置をデータ圧縮装置として動作させるデータ圧縮プログラムに関する。
従来より、記憶容量の低減化や通信量の低減化等のために、画像データ等のデータを圧縮する技術が広く採用されている。
例えば、特許文献1には、原画像から代表色を選定しCLUT(カラールックアップテーブル)を構成する際に、連続する色番号が近い値の色データを持つように色番号を割り当て、次にCLUTに対応したビットマップを作成して隣接画素間の色番号の差分を求め、差分が大きな値を取る場合、画質劣化を起こさない範囲でビットマップの色番号を変更し、差分を小さな値に偏らせ、差分データに対してランレングス符号化を施すという技術が開示されている。
ここで、データ圧縮技術を適用した1つのシステムを紹介する。
図1は、データ圧縮技術が適用されたプリントシステムの一例を示す図、図2は、プリントシステムにおけるデータ処理の流れを示す図である。
このプリントシステムは、図1に示すように、ホストコントローラ100と、インターフェース機器200と、プリンタ300とで構成されており、ホストコントローラ100とインターフェース機器200との間はSCSI等の汎用インターフェースケーブル150で接続され、さらにインターフェース機器200とプリンタ300との間は専用インターフェースケーブル250で接続されている。
ホストコントローラ100の内部では、図2に示すように、PDF,PS,TIFF等、様々な言語やフォーマットで記述された文字や画像のデータ11が、画像(CT;Continuous Tone)データと文字やライン等(LW;Line Work)のデータとに分けられて、それぞれについてRIP(Raster Image Processing)を行なうことによりビットマップデータ12A,13Aが生成され、さらにそれぞれについてデータ圧縮処理が行なわれて、CTについての圧縮データ14、LWについての圧縮データ15が生成される。これらの圧縮データ14,15は、図1に示す汎用インターフェースケーブル150を経由して、ホストコントローラ100からインターフェース機器200に転送される。インターフェース機器200では、転送されてきた圧縮データ14,15にデータ伸長処理を施して、ホストコントローラ100でデータ圧縮処理を行なう前の状態のビットマップデータ12A,13Aに対応するビットマップデータ12B,13Bを生成する。
インターフェース機器200では、データ伸長後のCTデータ(ビットマップデータ12B)とLWデータ(ビットマップデータ13B)とが合成され、さらに網点情報等がタグとして付加されてプリンタ300に送られる。プリンタ300では、インターフェース機器200から受け取ったビットマップデータとそれに付加されたタグ情報とに従って画像がプリント出力される。
ホストコントローラ100とインターフェース機器200とが例えば相互に離れている場合、あるいは、インターフェース機器200が複数台のホストコントローラから画像データを受信するシステムの場合など、ホストコントローラ100とインターフェース機器200を別々の装置として構成する必要がある場合には、図2に示すような、ホストコントローラ100でデータ圧縮を行なってインターフェース機器200にデータ転送しインターフェース機器でデータ伸長するように構成することにより、ホストコントローラ100からインターフェース機器200へのデータ転送時間を短縮することができ、プリントの生産性が向上する。
ここで、一般的には、CTデータについては、非可逆ではあるが圧縮率の高いJPEG等の圧縮方式が採用され、LWデータについてはPackBits等の可逆圧縮方式が採用される。
特開平5−328142号公報
しかし、JPEG等の圧縮方式では、ソフトウェアでの圧縮処理に時間を要し、圧縮処理のシステム全体としての処理能力を劣化させる要因となっていた。
また、JPEG等は非可逆な圧縮処理であるため画質の劣化を必然的に伴うが、近年、高画質化への要求がますます高まってきており、CTデータについても画質の劣化を招かないよう可逆圧縮を行うことが検討されてきている。
本発明は上記事情に鑑み、CTデータの圧縮に適用可能な新たな好ましい可逆圧縮処理を行うことができるデータ圧縮装置およびデータ圧縮プログラムを提供することを目的とする。
上記目的を達成する本発明のデータ圧縮装置は、
所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
上記被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
上記差分生成部によって生成された新たな被圧縮データを構成する各数値を、その新たな被圧縮データ中に出現する数値のヒストグラムにおけるピークの急峻さに応じた値だけオフセットさせるオフセット部と、
上記オフセット部によって数値がオフセットされた被圧縮データの各数値を、上記ピークの急峻さに応じた、上記単位ビット数よりも小さい分割ビット数のところで、上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上記上位データに対して可逆圧縮処理を施す上位データ圧縮部と、
上記下位データに対して可逆圧縮処理を施す下位データ圧縮部とを備えたことを特徴とする。
ここで、上記の『被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより』における『隣接する』とは、データストリーム上で隣接してもよいが、必ずしもそれに限定されるものではない。例えば、2次元画像データが1次元ストリーム状のデータとして扱われている場合であれば、2次元的な画像上で見て隣接してもよい。また、『隣接する数値どうしの差分』とは、1次元的な差分のみならず2次元以上の多次元的な差分も含む意である。以下においても同様である。
また、本発明のデータ圧縮装置は、
上記差分生成部が、第1の色版データを構成する数値について、上記画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた2次元的な差分を求めるものであることが好ましい。
また、本発明のデータ圧縮装置は、
上記上位データ圧縮部が、上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部を備えたものであることも好ましく、さらには、
上記上位データ圧縮部が、
上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部と、
符号と数値を対応づけるテーブルを用いて、上記第1の符号化部で符号化された後のデータにエントロピー符号化を施す第2の符号化部を備えたものであることが、より好ましい。
また、本発明のデータ圧縮装置は、
上記上位データ圧縮部が、
上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部と、
ハフマンテーブルを用いて、上記第1の符号化部で符号化された後のデータにハフマン符号化を施す第2の符号化部を備えたものであってもよい。
さらに、本発明のデータ圧縮装置は、
上記上位データ圧縮部が、
上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部と、
上記第1の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
上記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
上記符号割当部で符号が割り当てられたテーブルを用いて、上記第1の符号化部で符号化された後のデータにエントロピー符号化を施す第2の符号化部を備えたものであることが、より好ましい。
また、本発明のデータ圧縮装置は、
上記下位データ圧縮部が、符号と数値を対応づけるテーブルを用いて下位データにエントロピー符号化を施すものであることが好ましい。
ここで、本発明のデータ圧縮装置において、上記の下位データ圧縮部は、ハフマンテーブルを用いて下位データにハフマン符号化を施すものであってもよい。
また、本発明のデータ圧縮装置は、
上記下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであることも好適である。
上記目的を達成する本発明のデータ圧縮プログラムは、
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を実行させるデータ圧縮プログラムにおいて、
上記情報処理装置上に、
上記被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
上記差分生成部によって生成された新たな被圧縮データを構成する各数値を、その新たな被圧縮データ中に出現する数値のヒストグラムにおけるピークの急峻さに応じた値だけオフセットさせるオフセット部と、
上記オフセット部によって数値がオフセットされた被圧縮データの各数値を、上記ピークの急峻さに応じた、上記単位ビット数よりも小さい分割ビット数のところで、上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上記上位データに対して可逆圧縮処理を施す上位データ圧縮部と、
上記下位データに対して可逆圧縮処理を施す下位データ圧縮部とを構築することを特徴とする。
なお、本発明にいうデータ圧縮プログラムについては、ここではその基本形態のみを示すのにとどめるが、これは単に重複を避けるためであり、本発明にいうデータ圧縮プログラムには、上記の基本形態のみではなく、前述したデータ圧縮装置の各形態に対応する各種の形態が含まれる。
また、本発明のデータ圧縮プログラムがコンピュータ上に構成するオフセット部などといった要素は、1つの要素が1つのプログラム部品によって構築されるものであってもよく、1つの要素が複数のプログラム部品によって構築されるものであってもよく、複数の要素が1つのプログラム部品によって構築されるものであってもよい。また、これらの要素は、そのような作用を自分自身で実行するものとして構築されてもよく、あるいは、コンピュータに組み込まれている他のプログラムやプログラム部品に指示を与えて実行するものとして構築されても良い。
上記本発明のデータ圧縮装置ないしデータ圧縮プログラムによれば、元の被圧縮データから差分生成部によって生成された新たな被圧縮データを構成する数値が、その数値の分布に応じたビット位置で、上位ビット部分と下位ビット部分とに分けられることで、元の被圧縮データが、上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割される。このため、上位データおよび下位データに対して、それぞれのデータの性質に合わせた可逆圧縮処理を、それぞれ上位データ圧縮部と下位データ圧縮部において施すことによる大幅な圧縮が期待される。
一般に、CTデータから得られる新たな色版データの場合には、後で詳述するように、上位データと下位データとではデータ中の数値の分布傾向が顕著に異なっているので、各データに適した可逆圧縮処理が存在し、本発明による圧縮処理によって全体として大きな圧縮率が達成される。また、各データに施される可逆圧縮処理としては、アルゴリズムが単純な処理が適用可能であるため、本発明による圧縮処理は処理時間が短く、特にCTデータの圧縮に適用すると特に好ましい可逆圧縮処理が実現される。
また、上記の上位データ圧縮部が第1の符号化部を備えると、圧縮対象数値のみが、その圧縮対象数値と連続数とを表わす数値とに符号化されるため、原データよりも冗長度が増すという事態が回避され、圧縮率が向上する。
また、上記の上位データ圧縮部が第2の符号化部を備えると、エントロピー符号化(典型的にはハフマン符号化)による、圧縮率の更なる向上が見込まれる。
さらに、上記の上位データ圧縮部が、ヒストグラム算出部と符号割当部とを備え、第2の符号化部が、符号割当部で符号が割り当てられたテーブルを用いてエントロピー符号化(例えばハフマン符号化)を施すものであると、符号の割り当てが固定されたテーブルを用いたエントロピー符号化と比べ、圧縮率をさらに大きく向上させることができる。
また、上記の下位データ圧縮部が、エントロピー符号化を施すものであると、エントロピー符号化(典型的にはハフマン符号化)による、圧縮率の更なる向上が見込まれる。
さらに、上記の下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであると、そのような指示によってより高速な圧縮処理を選択することができる。
以下において説明する実施形態は、図1に示す全体システムの中のホストコントローラに組み込まれる画像圧縮装置であり、さらに具体的には、図2に示すホストコントローラ内のCTのビットマップデータ12Aについてデータ圧縮を行なう処理に関するものである。したがって、ここでは、図1,図2を参照して説明したCTデータについてのデータ圧縮処理が以下に説明する本発明の実施形態としてのデータ圧縮処理に置き換わり、インターフェース機器内でのデータ伸長(解凍)処理もその本発明の実施形態としてのデータ圧縮処理に対応したデータ伸長(解凍)処理に置き換わるものと理解し、図1に示す全体システムおよび図2に示す処理の流れについて重複した図示および重複説明は省略する。
図3は、本発明のデータ圧縮装置の一実施形態に相当する画像圧縮装置を示すブロック構成図である。
この図3に示す画像圧縮装置500は、CTデータおよびLWデータの両方に対して、可逆圧縮処理を施す画像圧縮装置であり、この可逆圧縮処理のために、差分符号化部510、ヒストグラム解析部515、オフセット部520、プレーン分割部530、Lプレーン圧縮部540、Hプレーン圧縮部550を備えている。各部510〜550の詳細は後述するが、この画像圧縮装置500内での画像データの流れは以下のとおりである。
入力画像ファイルD0(本実施形態では、図2に示すように、ビットマップに展開されたCTデータ12Aが格納されたファイル)は、差分符号化部510に入力されて、2次元差分符号化処理、すなわち、入力されてきたデータを構成する数値の連続について、画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた2次元的な差分を求めることによりその差分を表わす8ビットの数値の連続からなる画像データを生成する処理が行なわれる。この差分符号化部510は、本発明にいう差分生成部の一例に相当する。
差分符号化部510で生成された、差分を表わす数値の連続からなる画像データは、ヒストグラム解析部515に入力されて画像データ中に出現する全ての数値の出現頻度(ヒストグラム)が求められ、そのヒストグラムの解析が行われる。ヒストグラムの解析が行われた画像データは、次にオフセット部520に入力されて、ヒストグラム解析部515での解析結果に応じた量のオフセットが施される。プレーン分割部530では、オフセット後の画像データ中の8ビットの各数値が、ヒストグラム解析部515での解析結果に応じて下位ビットと上位ビットとに分けられることにより、画像データが、下位ビットの数値の連続からなる下位サブプレーンD1Lと上位ビットの数値の連続からなる上位サブプレーンD1Hに分割される。このオフセット部520とヒストグラム解析部515を合わせたものが、本発明にいうオフセット部の一例に相当し、プレーン分割部530およびヒストグラム解析部515を合わせたものが、本発明にいう分割部の一例に相当する。また、下位サブプレーンD1Lおよび上位サブプレーンD1Hは、それぞれ、本発明にいう下位データおよび上位データの各一例に相当する。
プレーン分割部530で分割された下位サブプレーンD1Lおよび上位サブプレーンD1Hは、それぞれ、Lプレーン圧縮部540およびHプレーン圧縮部550に入力されて可逆圧縮が施される。これらLプレーン圧縮部540およびHプレーン圧縮部550は、それぞれ、本発明にいう下位データ圧縮部および上位データ圧縮部の各一例に相当する。
Lプレーン圧縮部540のハフマン符号化部541では、数値と符号とを対応づける固定的なハフマンテーブルに従って、そのハフマン符号化部541に入力されてきた下位サブプレーンD1Lを構成する数値をそのハフマンテーブルに従う符号に置き換える符号化処理が行なわれる。このハフマン符号化は、エントロピー符号化の一種である。なお、Lプレーン圧縮部540にはモード切換部542が組み込まれており、このモード切換部542は、ユーザから、高速モードと通常モードとの切り換えを指示されて、上記のハフマン符号化部541によるハフマン符号化を経る通常モードと、ハフマン符号化を省略して下位サブプレーンD1Lをそのまま出力する高速モードとを切り換える。このようなLプレーン圧縮部540からは、下位サブプレーンD1Lが圧縮された下位圧縮データD2Lが出力されるが、高速モードの場合には下位圧縮データD2Lは下位サブプレーンD1Lそのものである。
一方、Hプレーン圧縮部550には、ランレングス符号化部551と、データスキャニング部552と、ハフマン符号化部553が備えられており、上位サブプレーンD1Hはランレングス符号化部551に入力される。
ランレングス符号化部551では、先ず、入力されてきた上位サブプレーンD1Hのデータの中から1つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数が検出される。次いで、ランレングス符号化部551では、その検出結果を受けて、上位サブプレーンD1Hのデータ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力するという符号化処理が行なわれる。このランレングス符号化部551では、その符号化処理にあたっては、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化が行なわれる。ここでは、具体的には、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を1単位ビット数で表現し、その連続数が所定数を越えるときは2単位ビット数で表現する符号化が行なわれる。本実施形態では、このランレングス符号化部551が、本発明にいう第1の符号化部の一例に相当する。
また、ランレングス符号化部551での符号化後のデータは、次に、データスキャニング部552とハフマン符号化部553との双方に入力される。データスキャニング部552では、ランレングス符号化部551で符号化された後のデータの全てをスキャニングして、そのデータ中に出現する全ての数値の出現頻度(ヒストグラム)が求められる。ここで、この出現頻度を求める処理は、本実施形態では、図3に示す上位サブプレーンD1Hの1つずつを単位として実行され、各上位サブプレーンD1Hの、ランレングス符号化部551で符号化された後のデータ中の数値の出現頻度が求められる。さらに、データスキャニング部552では、求められたデータヒストグラム(数値の出現頻度)に基づき、ハフマンテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる。このデータスキャニング部552は、本発明にいうヒストグラム算出部および符号割当部の各一例を兼ね備えたものに相当する。
データスキャニング部552で数値に符号が割り当てられてなるハフマンテーブルは、ハフマン符号化部553に渡され、ハフマン符号化部553では、その渡されたハフマンテーブルに従って、そのハフマン符号化部553に入力されてきたデータを構成する数値を、そのハフマンテーブルに従う符号、すなわち、出現頻度の高い数値ほど短かいビット長で表わされる符号に置き換える符号化処理が行なわれる。このハフマン符号化部553は、本発明にいう第2の符号化部の一例に相当する。
ハフマン符号化部553でハフマン符号化された後のデータは、データスキャニング部552で割り当てられた数値と符号との割当テーブルを含む圧縮情報が添付され、上位サブプレーンD1Hが圧縮された上位圧縮データD2HとしてHプレーン圧縮部550から出力される。
このようにLプレーン圧縮部540およびHプレーン圧縮部550のそれぞれから出力される下位圧縮データD2Lと上位圧縮データD2Hとの組が、元の画像データに対する圧縮データが構成される。この圧縮データは、図1に示すSCSI等の汎用インターフェース150を経由してインターフェース機器200に転送される。インターフェース機器200では、その受け取った可逆圧縮データにデータ伸長処理が施されるが、このデータ伸長処理にあたっては、図3で説明した各種の符号化処理に対応する復号化処理が施されて元の入力画像ファイル中の画像データと同一の画像データが復元される。
図4は、図1に示すホストコントローラのハードウェア構成図である。
図1に示すホストコントローラ100は、図4に示す構成のコンピュータシステムで構成されている。
この図4に示す、コンピュータシステムで構成されたホストコントローラ100には、CPU111、RAM112、通信インターフェース113、ハードディスクコントローラ114、FDドライブ115、CDROMドライブ116、マウスコントローラ117、キーボードコントローラ118、ディスプレイコントローラ119、および通信用ボード120が備えられており、これらはバス110で相互に接続されている。
ハードディスクコントローラ114は、このホストコントローラ100に内蔵されているハードディスク104のアクセスを制御するものであり、FDドライブ115、CDROMドライブ116は、このホストコントローラ100に取出し自在に装填されるフレキシブルディスク(FD)130、CDROM140のアクセスを制御するものである。また、マウスコントローラ117、キーボードコントローラ118は、このホストコントローラ100に備えられたマウス107、キーボード108の操作を検出してCPU111に伝達する役割を担っている。さらに、ディスプレイコントローラ119は、このCPU111の指示に基づいて、ホストコントローラ100に備えられた画像ディスプレイ109の表示画面上に画像を表示する役割を担っている。
通信用ボード120は、SCSI等の汎用インターフェースプロトコルに準拠した通信を担っており、圧縮後の画像データをインターフェースケーブル150を介してインターフェース機器200(図1参照)に転送する役割を担っている。
さらに、通信用インターフェース113は、インターネット等の汎用の通信を担っており、このホストコントローラ100は、この通信用インターフェース113を経由して画像データを取り込むこともできる。
RAM112には、ハードディスク104に格納されているプログラムが読み出されてCPU111での実行のために展開され、CPU111では、そのRAM112に展開されたプログラムが読み出されて実行される。
図5は、本発明のデータ圧縮プログラムの一実施形態に相当する画像圧縮処理プログラムの模式構成図である。
ここでは、この画像圧縮プログラム600は、CDROM140に記憶されている。
この画像圧縮プログラム600は、差分符号化部610、ヒストグラム解析部615、オフセット部620、プレーン分割部630、Lプレーン圧縮部640、Hプレーン圧縮部650から構成されている。このCDROM140には、ここに示す画像圧縮プログラム600のほか、図1に示すホストコントローラ100における一連の処理を実行するための各種プログラムが記憶されているが、それらについては従来と同様であるため図示および説明は省略する。
この図5に示すCDROM140が、図4に示すホストコントローラ100に装填されCDROMドライブ116でアクセスされてそのCDROM140に記憶されているプログラムがこのホストコントローラ100にアップロードされ、ハードディスク104に記憶される。このハードディスク104に記憶されたプログラムがそのハードディスク104から読み出されてRAM112に展開されCPU111で実行されると、このホストコントローラ100は、図3に示す画像圧縮装置500としての処理を含む、ホストコントローラとしての各種処理を実行する装置として動作する。
ここで、図5に示す画像圧縮プログラム600は、ホストコントローラ100にインストールされてCPU111で実行されることにより、そのホストコントローラ100内に図3に示す画像圧縮装置500を実現するものであり、差分符号化部610、ヒストグラム解析部615、オフセット部620、プレーン分割部630、Lプレーン圧縮部640、Hプレーン圧縮部650は、CPU111で実行されることにより、そのホストコントローラ100を、図3に示す画像圧縮装置500を構成する、それぞれ、差分符号化部510、ヒストグラム解析部515、オフセット部520、プレーン分割部530、Lプレーン圧縮部540、Hプレーン圧縮部550として動作させるプログラム部品である。つまり、これらのプログラム部品により、画像圧縮装置500の構成要素がホストコントローラ100上に実質的に構築されることとなる。
図5の画像圧縮プログラム600を構成する各部610〜650の、CPU111で実行されたときの作用は、それぞれ、図3の画像圧縮装置500を構成する各部510〜550の作用そのものである。したがって、図3の画像圧縮装置500の各部510〜550に関する、これまでの説明、および、以下に説明する詳細説明をもって、図5の画像圧縮プログラム600を構成する各部610〜650の説明を兼ねるものとする。
図6は、図3のデータ圧縮装置500に入力される入力画像ファイル中の画像データのデータ構造を示す図である。
図6に示すように、図3に示すデータ圧縮装置500に入力される画像データは、所定の主走査方向に画素がm個並んでいる。その主走査方向とは直角な副走査方向に教えていったときのn番目のラインについて、主走査方向に並ぶ各画素の画素値は、その並び順に、
n,1,Dn,2,…,Dn,m-2,Dn,m-1,Dn,m
と表現される。
これと同様に、副走査方向の(n+1)番目のラインについて、主走査方向に並ぶ各画素の画素値は、その並びの順に、
n+1,1,Dn+1,2,…,Dn+1,m-2,Dn+1,m-1,Dn+1,m
と表現される。
ここで、図3に示すデータ圧縮装置500を構成する差分符号化部510には、上記のような画像データが入力されて2次元差分符号化処理が施され、主走査方向に隣接する画素どうしの差分における副走査方向での更なる差分が求められる。
この2次元差分符号化処理を具体的に説明する。
図7は、図3のデータ圧縮装置500を構成する差分符号化部510における2次元差分符号化処理を例示して示す図である。
この図の左側(パート(A))に示す各数値のうち、四角で囲われた数値「12 18 09 1A … 01 03 07 F0 …」が画像データを構成する画素値であり、丸で囲まれた数値「12 18 09 1A … 01 FC 15 D8 …」が2次元差分符号化処理で出力される出力値である。以下の説明では、主走査方向(図の横方向)に並ぶ画素を「ライン」と称する。
2次元差分符号化処理では、先ず、1ライン目の各画素値「12 18 09 1A …」については、そのまま出力する。また、主走査方向に隣接する画素値どうしの差分「18−12=06」「09−18=F1」…が算出される。ここで、例えば「09」から「18」を引き算した結果は負の数となり、9ビットで「1F1」と表されるが、MSBの1ビットである最上位の「1」は省略し、下位8ビットである「F1」のみを出力する。
次に、2ライン目については、先頭の画素値「01」のみがそのまま出力され、主走査方向に隣接する画素値どうしの差分「03−01=02」「07−03=04」…が算出される。そして、1ライン目の差分「06 EF 11 …」と2ライン目の差分「02 04 E9 …」との更なる差分「02−06=FC」「04−EF=13」…が求められて出力される。
次に、3ライン目についても2ライン目と同様に処理されて、3ライン目の先頭の画素値「73」のみがそのまま出力され、主走査方向に隣接する画素値どうしの差分「60−73=ED」「40−60=E0」…が算出される。そして、2ライン目の差分「02 04 E9 …」と3ライン目の差分「ED E0 F0 …」との更なる差分「ED−02=EB」「E0−04=DC」…が求められて出力される。
以下、これと同じ演算を繰り返すことにより、図7で丸が付いた数値「12 18 09 1A … 01 FC 15 D8 …73 EB DC 07 … FF 07 BB 13 …」が出力される。
図1に示すインターフェース機器200では、このように2次元差分符号化されたデータを復号化するにあたり、図7の右側(パート(B))に示す演算が行なわれる。
先ず1ライン目の各画素値は「12 18 09 1A …」のそのままである。
また、2ライン目以降の各ラインの先頭画素値も「01」「73」「FF」…のそのままである。
ここで、2ライン目の2番目以降の差分値「FC 15 D8 …」を例として、差分値から元の画素値が復号化される手順について説明する。
画素値の復号化に際しては、対象画素に対し、同ラインの前位置(図の左側)の画素と、前ライン(図の上側)の同位置の画素と、前ラインの前位置の画素との3つの画素それぞれにおける3つの画素値が用いられる。
2ライン目の2番目の画素の差分値「FC」については、1ライン目の先頭画素の画素値「12」と、1ライン目の2番目の画素の画素値「18」と、2ライン目の先頭画素の画素値「01」が用いられ、まず、1ライン目の2番目と先頭との差分「18−12=06」が求められる。そして、その差分「06」が対象の差分値「FC」に加算された結果のうちの下位8ビットで表わされる「02」が得られ、その値「02」に2ライン目の先頭画素の画素値「01」が加算された結果のうちの下位8ビットで表わされる「03」が2ライン目の2番目の画素値として復号化される。
2ライン目の3番目の画素値は、差分値「13」に、1ライン目の3番目と2番目との差分「09−18=F1」が加算された結果のうちの下位8ビットで表わされる「04」に、更に2ライン目の2番目の画素値「03」が加算された結果のうちの下位8ビットで表わされる「07」である。
2ライン目の4番目の画素値は、差分値「D8」に、1ライン目の4番目3番目との差分「1A−09=11」が加算された結果のうちの下位8ビットで表わされる「E9」に、更に2ライン目の3番目の画素値「07」が加算された結果のうちの下位8ビットで表わされる「F0」である。
以下これと同様の演算を繰り返すことにより、各差分値が、2次元差分符号化を行なう前の画素値と同一の画素値に復号化される。
図3の差分符号化部510では、以上説明したような2次元差分符号化が画像データに施される。この2次元差分符号化によって得られるデータは、ヒストグラム解析部515に入力されて画像データ中に出現する全ての数値の出現頻度(ヒストグラム)が求められ、そのヒストグラムの解析が行われる。ヒストグラムの解析が行われた画像データは、次に図3のオフセット部520に入力されて、ヒストグラム解析部515での解析結果に応じた適当なオフセット値でオフセットが施される。そして、プレーン分割部530が、データを構成する8ビットの数値を、上位から適当なビット数のところで、上位ビットの数値と、下位ビットの数値とに分けることで、データを上位ビットの数値の連続からなるデータと上位ビットの数値の連続からなるデータとに分割する。
このヒストグラムの解析の具体的な内容を説明する便宜上、ここではまず、上記の「適当なオフセット値」および「適当なビット数」がヒストグラム解析部515での解析結果によって決定されたものとして、それらの値が設定されて行われるデータの処理について先に説明する。ここでは、具体的なCTの画像データを例に用いて説明する。
図8は、CTの画像データの例を示す図である。
この図8のパート(A)には、CTの画像データが表しているCT画像の一例としてモノクロの風景画像が示されており、本実施形態では、このようなCT画像の各画素における色の濃度が8ビットの数値で表現された画像データが用いられる。図8のパート(B)には、パート(A)に示す風景画像を表す画像データにおけるデータ値のヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸はデータ数(画素数)を表している。CT画像では一般に、ヒストグラムの幅が広く、ヒストグラム中でデータ数の山谷は生じてもヒストグラムの途中にデータ数が「0」の領域が生じることは極めてまれである。
図9は、CTの画像データに対する差分符号化およびオフセットの効果を示す図である。
この図9のパート(A)には、図8に示したCTの画像データに対して差分符号化が施されて得られるデータのヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸は出現頻度を表している。CTの画像データに対して、図6および図7で説明した差分符号化が施されると、データのヒストグラムは、一般に、この図9のパート(A)に示すような、最小データ値と最大データ値の双方に鋭いピークを有するヒストグラムとなる。そして、このようなデータに対して適当なオフセットが施されると、データのヒストグラムは、図9のパート(B)に示すような、オフセット値のところに鋭いピークを持つヒストグラムとなる。ここでは「適当なオフセット値」として「8」が用いられており、このオフセットの結果、値が「16」以上となるデータの頻度はほとんど「0」となっている。
このように差分符号化およびオフセットによってヒストグラムが変形されたデータは、図3のプレーン分割部530によって、オフセット後の画像データ中の8ビットの各数値が、ヒストグラム解析部515での解析結果に応じて決まる適当なビット数のところで、下位ビットと上位ビットとに分けられることにより、画像データが、下位ビットの数値の連続からなる下位サブプレーンD1Lと上位ビットの数値の連続からなる上位サブプレーンD1Hに分割される。
図10は、プレーン分割部530によるデータ分割の効果を説明する図である。
この図10には、図9のパート(B)に示すヒストグラムがデータ値「15」とデータ値「16」との間で切り離されたヒストグラムが示されており、図3のプレーン分割部530によるデータ分割は、まさにこのようなヒストグラムの分割に相当する効果を生じる。この例では、ヒストグラム解析部515での解析結果から「適当なビット数」として4ビットが決定され、この結果、データを構成している8ビットの各数値が上位4ビットと下位4ビットとに分割されることで、データが下位4ビットが表す数値の連続からなる下位サブプレーンと上位4ビットが表す数値の連続からなる上位サブプレーンとに分割されている。従って、下位サブプレーンを構成する4ビットの数値が値「0」から値「15」までの各数値をそのまま表現していて、上位サブプレーンを構成する4ビットの数値の場合は、値「16」から値「256」までの、16間隔16種類の数値を表現していると解釈すると、下位サブプレーンのヒストグラムは、この図10の左側に示されたヒストグラムとほぼ同じものとなり、上位サブプレーンのヒストグラムは、図10の右側に示されたヒストグラムとほぼ同じものとなる。ただし、上位サブプレーンのヒストグラムについては、図10の右側に示されたヒストグラムのデータ値「16」のところに、図10の左側に示されたヒストグラムの面積に等しい高さのピークが付加されたものとなる。
この図10の右側に示されたヒストグラムにおいて画素の出現頻度がほとんどゼロに近いことからわかるように、上位サブプレーン中の数値は、ゼロに近い値(16進数表示での「00」や「01」や「FF」)の連続が多いことが予想される。このため、上位サブプレーンに圧縮を施すには、同一の数値の連続を符号化することで圧縮を行うランレングス符号化が有効であり、上位サブプレーンは、図3に示すHプレーン圧縮部550の構成要素の1つであるランレングス符号化部551に入力される。
以上説明した図8のパート(a)に示す画像の例では、「適当なオフセット値」として「8」が用いられ、また、データを構成している8ビットの各数値が、上位から「適当なビット数」である4ビットのところで、上位4ビットと下位4ビットとに分割されることで、最終的に異なる数値がばらつきをもって出現する下位4ビット側のデータと、同じような数値(ゼロに近い値)の連続を多く含む上位4ビット側のデータとに分けることができたが、どのようなオフセット値が適当で、どのようなビット数のところで、データを構成している数値を上位ビットと下位ビットとに分割するのが適当かは、一般に画像によって異なる。
図11は、図9のパート(B)に示すデータよりも、ピーク付近の出現頻度の分布に広がりがあるデータを表す図、図12は、図9のパート(B)に示すデータよりも、ピーク付近の出現頻度の分布が狭いデータを表す図である。
図11に示すデータでは、出現頻度の分布が、図9のパート(B)に示すデータよりも相対的に広い。このため、図9のパート(B)において用いたオフセット値「8」では、ピークを頂上とする出現頻度の山の全体が画素データの原点側に寄りすぎて裾がグラフの右側に大きく残ってしまう。そこで、この図11のようなデータに対しては、図9のパート(B)で用いたオフセット値「8」よりも大きいオフセット値「32」が用いられている。そして、このオフセット値「32」を用いることで、ピークを頂上とする出現頻度の山の図の左側の裾が、原点付近にさしかかるようになる。この状態が、ピークを頂上とする出現頻度の山全体が、山の形を保ったまま(図9のパート(A)のように、図の左側と右側に分かれることなく)、最大限原点側に寄っている状態となる。一方、図12では、ピーク付近の出現頻度の分布が狭く、図9のパート(B)で用いたオフセット値「8」を用いても、ピークを頂上とする出現頻度の山全体を、十分原点に近い箇所に寄せることができる。
このように、出現頻度の山全体が最大限原点側に寄っている状態のデータでは、画素データが比較的小さいものが数多く存在することとなり、この結果、データを構成する8ビット値の上位ビットに、ゼロが連続して現れるようになる。このため、データを上位ビット側の数値の連続からなる上位サブプレーンと残りの下位ビット側の数値の連続からなる下位サブプレーンとに分割すると、上位サブプレーンでは、ゼロの連続となって、上位サブプレーンでは、ランレングス符号化による圧縮効果が大きい。そして、図12に示すデータのようにデータ分布の広がりが小さいデータの方が、図11に示すデータのようにデータ分布の広がりが大きいデータと比べて、より多くの上位側ビットにゼロが出現することになるので、上位サブプレーンにより多くのビット数を割り振ることで、ランレングス符号化による圧縮効果がより大きいデータとなる。
従って、図9のパート(B)のデータを基準にすると、図11に示すデータは、図9のパート(B)に示すデータよりも圧縮し難いデータであり、図12に示すデータは、図9のパート(B)に示すデータよりも圧縮しやすいデータである。
次に、圧縮効果の大きさによって、データを、図11に示すような「圧縮し難いデータ」と、図12に示すような「圧縮しやすいデータ」と、圧縮効果がこれらの中間にある、図9のパート(B)に示すような「通常データ」との3種類に分類するための定量的な基準について説明する。
図13は、図3に示すヒストグラム解析部に入力される、オフセットが施される前のデータを表す図である。
図9のパート(A)において説明したように、オフセットを施す前のヒストグラムは、画素データが「0」付近にピークを持っているため、両端にピークを持つヒストグラムとなる。図3に示すヒストグラム解析部515では、入力されたデータからピークの値となる、画素データの原点での出現頻度であるピーク値Ypと、画素データの原点から「+4」だけ離れた点での出現頻度Yp’とを求め、その比Yp/Yp’を算出する。そして、この比Yp/Yp’が1000より大きければ「圧縮しやすいデータ」であると判定し、比Yp/Yp’が10以上1000以下であれば「通常データ」であると判定し、比Yp/Yp’が、10未満であれば「圧縮し難いデータ」であると判定する。
そして、「圧縮しやすいデータ」に対しては、オフセット値として「+8」を用いることと、8ビットの数値を、下位側の2ビットと上位側の6ビットとに分割することが決定される。
また、「通常データ」に対しては、オフセット値として「+8」を用いることと、8ビットの数値を、下位側の4ビットと上位側の4ビットとに分割することが決定される。多くの画像データはこの「通常データ」の範疇に入るため、図3に示す画像圧縮装置500では、この「通常データ」のときのオフセット値として「+8」でオフセットをかけることと、下位ビット側と上位ビット側を4ビット+4ビットに分割することがデフォルトとして設定されている。
また、「圧縮し難いデータ」に対しては、オフセット値として「+32」を用いることと、8ビットの数値を、下位側の6ビットと上位側の2ビットとに分割することが決定される。
以上が、ヒストグラム解析部515で行われる解析の説明である。
このような解析によって決定されたオフセット値と、8ビットの数値を下位ビット側と上位ビット側とに分割する方式は、それぞれ図3に示すオフセット部520とプレーン分割部530とにおいてそれぞれ設定されて、それらの設定値の下で、上述の図9および図10で説明したのと同様の処理が施される。
続いて、上位サブプレーンと下位サブプレーンとに分割された後のデータの処理について説明する。
まず、ランレングス符号化部551に入力された上位サブプレーンに対する処理について説明する。
本実施形態では、処理の都合上、ランレングス符号化部551において、「通常データ」に対しては、上位サブプレーンを構成する連続した4ビットの数値が2つで1つの8ビットの数値として取り扱われ、一方「圧縮しやすいデータ」に対しては、上位サブプレーンを構成する連続した6ビットの数値が4つで3つの8ビットの数値として取り扱われ、また「圧縮し難いデータ」に対しては、上位サブプレーンを構成する連続した2ビットの数値が4つで1つの8ビットの数値として取り扱われる。
そしてこのように8ビットの数値の連続とみなされたデータが、さらに16進数表示で値「00」から値「FF」までの数値の連続からなるデータとみなされて、以下の符号化処理が適用される。
この符号化処理では、複数の8ビットの数値のうちの特定の数値についてのみ符号化処理が行なわれる。このため、このランレングス符号化部551では、受け取ったデータの中から、符号化処理を行なう数値(ここでは、この数値を「圧縮対象数値」と称する)と、その圧縮対象数値の連続数が検出される。
本実施形態では、一例として、「01」、「FF」および「00」の3つの数値を圧縮対象数値としている。
図14は、図3に示すランレングス符号化部551での符号化の説明図である。
図14の上のラインは、上位サブプレーンを構成するデータ、下のラインは、ランレングス符号化部551での符号化処理を行なった後のデータである。
ここでは、図14の上のラインに示すように、量子化処理部551からは、
「06 02 02 02 01 01 01 01 04 05 00 … 」
なるデータが入力されたものとする。このとき、図3のランレングス符号化部551では、先頭の「06」は圧縮対象数値ではなく、次に続く「02 02 02」も圧縮対象数値ではなく、次に、圧縮対象数値である「01」が4つ連続していること、次に、圧縮対象数値ではない「04」、「05」を間に置いて、圧縮対象数値である「00」が32767個連続していることが検出される。
図15は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
この図15中、Zは同一の圧縮対象数値の連続数、例えば図14の上のラインの「01」についてはZ=4、「00」についてはZ=32767である。
また、図15中、「YY」は、16進2桁で表わされた圧縮対象数値自体を表わしている。その「YY」に続く、「0」又は「1」は1ビットで表現された「0」又は「1」であり、さらにそれに続く「XXX XXXX…」は、1つの「X」が1ビットを表わしており、この「XXX XXXX…」でZの値を表現している。
すなわち、図15は、圧縮対象数値「YY」がZ<128連続するときは、1バイト目で圧縮対象数値「YY」を表現し、それに続く1バイトで、先頭ビットが「0」、それに続く7ビットでZの値を表現すること、また、圧縮対象数値「YY」がZ≧128連続するときは、1バイト目で圧縮対象数値「YY」を表現し、それに続く2バイト(16ビット)のうちの先頭の1ビットを「1」とすることで2バイトに跨って表現されていることを表現し、それに続く15ビットで、Zの値を表現することを意味している。
この図15に示す規則に従って図14に示す符号化の例について説明する。
図3のプレーン分割部530から入力されてきた上位サブプレーンのデータ(上のライン)を構成する先頭の数値「06」は圧縮対象数値ではないため、その「06」のまま出力される。また、それに続く「02 02 02」も、「02」は圧縮対象数値ではなく、これら3つの「02」もそのまま出力される。次に、圧縮対象数値である「01」が4個連続するため、「01 04」に符号化される。次の「04」及び「05」は圧縮対象数値ではないため、そのまま「04 05」が出力される。
次に「00」が32767個連続しているため、「00」を置き、次の1バイトのうちの先頭の1ビットを「1」とし、次いで15ビットで32767−128を表現することにより、「00 FF 7F」の3バイトで「00」が32767個連続していることを表現する。すなわち、連続数128は、最初のビット「1」を除き、「00 00」と表現される。
図16は、図3のランレングス符号化部551における、連続数に応じた符号化処理の例を示す図である。
・「00」が127個連続するときは、2バイトを用いて「00 7F」に符号化され、
・「00」が32767個連続するときは、3バイトを用いて「00 FF 7E」に符号化され、
・「00」が32895個連続するときは、3バイトを用いて「00 FF FF」に符号化され、
・「00」が128個連続するときは、3バイトを用いて「00 80 00」に符号化 され、
・「01」が129個連続するときは、3バイトを用いて「01 81 00」に符号化 され、
・「FF」が4096個連続するときは、3バイトを用いて「FF 8F 80」に符号化される。
図3に示すランレングス符号化部551では、上記のような符号化処理が行なわれる。
本実施形態によるランレングス符号化部551によれば、最大圧縮率は、3/32895=1/10,965にまで向上する。また、このランレングス符号化部551が符号化処理の対象としている上位サブプレーンのデータは、図10のヒストグラムで説明したように、4ビットの数値のほとんどが、データ値「16」を表現した数値「0」であり、その4ビットの数値から作られる8ビットの数値も、多くが、16進数表示で数値「00」となる。このためランレングス符号化部551における符号化処理によって大幅なデータ圧縮が期待される。
図3のランレングス符号化部551で上記の符号化処理の行なわれた後のデータは、次に図3のHプレーン圧縮部550を構成するデータスキャニング部552とハフマン符号化部553に入力される。
このデータスキャニング部552では、先ず、ランレングス符号化部551から出力されたデータの全体がスキャニングされてデータ値の出現頻度が求められる。
図17は、データスキャニング部552によるスキャニング結果の例を示す図である。
ここでは、「A1」の出現頻度が最も強く、以下順に、「A2」、「A3」、「A4」、…の順であるとする。尚、これら「A1」、「A2」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「A1」は例えば数値「00」、「A2」は数値「FF」等である。また、ここでは、簡単のため、図3のランレングス符号化部551から送られてくるデータは全てのデータ値が「A1」〜「A16」の16個の数値のうちのいずれかの数値であるものとする。そして、このような16個の数値それぞれに対して、データスキャニング部552では、出現頻度に応じた符号が割り当てられてハフマンテーブルが作成される。即ち、出現頻度の最も高い「A1」には、2ビットで表わされた符号「00」が割り当てられ、次の「A2」には、やはり2ビットで表わされた符号「01」が割り当てられ、次の「A3」、さらに次の「A4」には、3ビットで表わされる、それぞれ、符号「100」、符号「101」が割り当てられ、次の「A5」〜「A8」には、5ビットで表わされる各符号が割り当てられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた符号が割り当てられる。
図18は、ハフマンテーブルの一例を示す図である。
このハフマンテーブルは、図17と一致させてあり、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられるように並べられた、符号化前(置き換え前)の数値と符号化後(置き換え後)の数値との対応テーブルである。
図3のHプレーン圧縮部550を構成するハフマン符号化部553では、このようなハフマンテーブルに従ってデータの数値が符号化され、その結果、多くの数値が短かいビット数の符号に置き換えられることとなってデータ圧縮が実現される。
このように、図3のHプレーン圧縮部550に入力される上位サブプレーンD1Hについては、ランレングス符号化部551による符号化とハフマン符号化部553による符号化が施されることにより高い圧縮率で圧縮されて上位圧縮データD2Hとなる。
図3のLプレーン圧縮部540のハフマン符号化部541では、「通常データ」に対しては、下位サブプレーンを構成する連続した4ビットの数値が2つで1つの8ビットの数値として取り扱われ、一方「圧縮しやすいデータ」に対しては、下位サブプレーンを構成する連続した2ビットの数値が4つで1つの8ビットの数値として取り扱われ、また「圧縮し難いデータ」に対しては、下位サブプレーンを構成する連続した6ビットの数値が4つで3つの8ビットの数値として取り扱われる。そして、いずれのデータに対しても、データ中の数値の連続が、8ビットの数値の連続とみなされて処理が行われることとなる。また、このハフマン符号化部541による符号化処理では、固定的なハフマンテーブルが用いられる点を除いて、Hプレーン圧縮部550のハフマン符号化部553による符号化処理と同様な処理が実行される。この結果、下位サブプレーンD1Lは下位圧縮データD2Lとなる。
以上説明したような各種の処理が図3に示す差分符号化部510、オフセット部520、プレーン分割部530、Lプレーン圧縮部540、およびHプレーン圧縮部550で実行されることにより、画像データが可逆圧縮されることになる。特にCT画像のデータについては大幅な圧縮が実現される。
以上が、本実施形態の説明である。
本実施形態では、8ビットの数値の連続からなる画像データを可逆圧縮するものであるが、本発明は、圧縮対象となるデータは、複数のビット数の数値で表された数値の連続からなるデータであれば、処理対象は、8ビットの数値の連続からなるデータに限定されない。例えば、データ中の数値のビット数(ビット幅)が8ビットではなく、12ビットや16ビットのデータであってもよい。
図19は、データのビット幅が8ビット、12ビット、16ビットの場合に、圧縮効果の大きさによって、データを、「圧縮しやすいデータ」と、「圧縮し難いデータ」と、これらの中間にある「通常データ」との3種類のクラスに分類したときの、上位ビット側のビット数と下位ビット側のビット数の分割方式を表した図である。
この図においてデータのビット幅が8ビットの場合は、図13において説明した判定基準に基づく分割方式が示されている。12ビット、16ビットの場合にも同様な判定基準によって、「圧縮しやすいデータ」、「圧縮し難いデータ」、「通常データ」に分類することができる。そして、図に示されているように、圧縮しやすいデータほど、上位ビット側のビット数を多くして圧縮の効果が最大限になるように可逆圧縮処理が施される。
データ圧縮技術が適用されたプリントシステムの一例を示す図である。 プリントシステムにおけるデータ処理の流れを示す図である。 本発明のデータ圧縮装置の一実施形態に相当する画像圧縮装置を示すブロック構成図である。 図1に示すホストコントローラのハードウェア構成図である。 本発明のデータ圧縮プログラムの一実施形態に相当する画像圧縮処理プログラムの模式構成図である。 図3のデータ圧縮装置500に入力される入力画像ファイル中の画像データのデータ構造を示す図である。 図3のデータ圧縮装置を構成する差分符号化部における2次元差分符号化処理を例示して示す図である。 CTの画像データの例を示す図である。 CTの画像データに対する2次元差分符号化およびオフセットの効果を示す図である。 プレーン分割部によるデータ分割の効果を説明する図である。 図9のパート(B)に示すデータよりも、ピーク付近の出現頻度の分布に広がりがあるデータを表す図である。 図9のパート(B)に示すデータよりも、ピーク付近の出現頻度の分布が狭いデータを表す図である。 図3に示すヒストグラム解析部に入力される、オフセットが施される前のデータを表す図である。 図3に示すランレングス符号化部での符号化の説明図である。 ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。 図3のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。 データスキャニング部によるスキャニング結果の例を示す図である。 ハフマンテーブルの一例を示す図である。 データのビット幅が8ビット、12ビット、16ビットの場合に、圧縮効果の大きさによって、データを、「圧縮しやすいデータ」と、「圧縮し難いデータ」と、これらの中間にある「通常データ」との3種類のクラスに分類したときの、上位ビット側のビット数と下位ビット側のビット数の分割方式を表した図である。
符号の説明
11 画像のデータ
12A,12B,13A,13B ビットマップデータ
14,15 圧縮データ
100 ホストコントローラ
140 CDROM
150 汎用インターフェースケーブル
200 インターフェース機器
250 専用インターフェースケーブル
300 プリンタ
500 画像圧縮装置
510 差分符号化部
515 ヒストグラム解析部
520 オフセット部
530 プレーン分割部
540 Lプレーン圧縮部
541 ハフマン符号化部
542 モード切換部
550 Hプレーン圧縮部
551 ランレングス符号化部
552 データスキャニング部
553 ハフマン符号化部
600 画像圧縮プログラム
610 差分符号化部
615 ヒストグラム解析部
620 オフセット部
630 プレーン分割部
640 Lプレーン圧縮部
650 Hプレーン圧縮部

Claims (10)

  1. 所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
    前記被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
    前記差分生成部によって生成された新たな被圧縮データを構成する各数値を、その新たな被圧縮データ中に出現する数値のヒストグラムにおけるピークの急峻さに応じた値だけオフセットさせるオフセット部と、
    前記オフセット部によって数値がオフセットされた被圧縮データの各数値を、前記ピークの急峻さに応じた、前記単位ビット数よりも小さい分割ビット数のところで、上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
    前記上位データに対して可逆圧縮処理を施す上位データ圧縮部と、
    前記下位データに対して可逆圧縮処理を施す下位データ圧縮部とを備えたことを特徴とするデータ圧縮装置。
  2. 前記差分生成部が、前記被圧縮データを構成する数値について、前記画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた2次元的な差分を求めるものであることを特徴とする請求項1記載のデータ圧縮装置。
  3. 前記上位データ圧縮部が、上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部を備えたものであることを特徴とする請求項1記載のデータ圧縮装置。
  4. 前記上位データ圧縮部が、
    上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部と、
    符号と数値を対応づけるテーブルを用いて、前記第1の符号化部で符号化された後のデータにエントロピー符号化を施す第2の符号化部を備えたものであることを特徴とする請求項1記載のデータ圧縮装置。
  5. 前記上位データ圧縮部が、
    上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部と、
    ハフマンテーブルを用いて、前記第1の符号化部で符号化された後のデータにハフマン符号化を施す第2の符号化部を備えたものであることを特徴とする請求項1記載のデータ圧縮装置。
  6. 前記上位データ圧縮部が、
    上位データ中、1つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第1の符号化部と、
    前記第1の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
    前記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
    前記符号割当部で符号が割り当てられたテーブルを用いて、前記第1の符号化部で符号化された後のデータにエントロピー符号化を施す第2の符号化部を備えたものであることを特徴とする請求項1記載のデータ圧縮装置。
  7. 前記下位データ圧縮部が、符号と数値を対応づけるテーブルを用いて下位データにエントロピー符号化を施すものであることを特徴とする請求項1記載のデータ圧縮装置。
  8. 前記下位データ圧縮部が、ハフマンテーブルを用いて下位データにハフマン符号化を施すものであることを特徴とする請求項1記載のデータ圧縮装置。
  9. 前記下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであることを特徴とする請求項1記載のデータ圧縮装置。
  10. プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を実行させるデータ圧縮プログラムにおいて、
    前記情報処理装置上に、
    前記被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
    前記差分生成部によって生成された新たな被圧縮データを構成する各数値を、その新たな被圧縮データ中に出現する数値のヒストグラムにおけるピークの急峻さに応じた値だけオフセットさせるオフセット部と、
    前記オフセット部によって数値がオフセットされた被圧縮データの各数値を、前記ピークの急峻さに応じた、前記単位ビット数よりも小さい分割ビット数のところで、上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
    前記上位データに対して可逆圧縮処理を施す上位データ圧縮部と、
    前記下位データに対して可逆圧縮処理を施す下位データ圧縮部とを構築することを特徴とするデータ圧縮プログラム。
JP2005242178A 2005-08-24 2005-08-24 データ圧縮装置およびデータ圧縮プログラム Active JP4579793B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005242178A JP4579793B2 (ja) 2005-08-24 2005-08-24 データ圧縮装置およびデータ圧縮プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005242178A JP4579793B2 (ja) 2005-08-24 2005-08-24 データ圧縮装置およびデータ圧縮プログラム

Publications (2)

Publication Number Publication Date
JP2007060206A JP2007060206A (ja) 2007-03-08
JP4579793B2 true JP4579793B2 (ja) 2010-11-10

Family

ID=37923302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005242178A Active JP4579793B2 (ja) 2005-08-24 2005-08-24 データ圧縮装置およびデータ圧縮プログラム

Country Status (1)

Country Link
JP (1) JP4579793B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011019008A (ja) * 2009-07-07 2011-01-27 Fujifilm Corp 動画圧縮送信装置、動画圧縮送信プログラム、および動画圧縮送信方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04239272A (ja) * 1991-01-11 1992-08-27 Hitachi Denshi Ltd 圧縮伸長装置
JPH05183443A (ja) * 1991-12-27 1993-07-23 Pfu Ltd 符号変換方法
US5856797A (en) * 1995-01-26 1999-01-05 Sega Enterprises Ltd. Data encoding device, data decoding device, data encoding method and data decoding method
JPH1198512A (ja) * 1997-09-18 1999-04-09 Sanyo Electric Co Ltd 画像符号化装置及び画像符号化方法
JPH11177828A (ja) * 1997-12-11 1999-07-02 Fujitsu Ltd 画像処理方法及び装置
JPH11243343A (ja) * 1998-02-25 1999-09-07 Victor Co Of Japan Ltd 可変長符号化方法、可変長復号化方法、及び可変長符号記録媒体
JP2000244922A (ja) * 1998-12-21 2000-09-08 Nikon Corp 画像データ圧縮方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04239272A (ja) * 1991-01-11 1992-08-27 Hitachi Denshi Ltd 圧縮伸長装置
JPH05183443A (ja) * 1991-12-27 1993-07-23 Pfu Ltd 符号変換方法
US5856797A (en) * 1995-01-26 1999-01-05 Sega Enterprises Ltd. Data encoding device, data decoding device, data encoding method and data decoding method
JPH1198512A (ja) * 1997-09-18 1999-04-09 Sanyo Electric Co Ltd 画像符号化装置及び画像符号化方法
JPH11177828A (ja) * 1997-12-11 1999-07-02 Fujitsu Ltd 画像処理方法及び装置
JPH11243343A (ja) * 1998-02-25 1999-09-07 Victor Co Of Japan Ltd 可変長符号化方法、可変長復号化方法、及び可変長符号記録媒体
JP2000244922A (ja) * 1998-12-21 2000-09-08 Nikon Corp 画像データ圧縮方法

Also Published As

Publication number Publication date
JP2007060206A (ja) 2007-03-08

Similar Documents

Publication Publication Date Title
JP4689545B2 (ja) データ圧縮装置およびデータ圧縮プログラム
US7826670B2 (en) Data compression apparatus and data compression program storage medium
US7912300B2 (en) Image processing apparatus and control method therefor
US7183950B2 (en) Data compression apparatus, and data compression program storage medium
JP3461309B2 (ja) ハフマン符号化データ圧縮装置
JP2006121645A (ja) 画像圧縮装置および画像圧縮プログラム
JP4633576B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2008311792A (ja) 画像符号化装置及びその制御方法
JP4173505B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4173498B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4579793B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4377351B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4131970B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4131969B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4699307B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4741317B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4377352B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4181147B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4629512B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005277932A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4435586B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005252531A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4633577B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005260408A (ja) データ圧縮装置およびデータ圧縮プログラム
JP2010028649A (ja) データ圧縮装置およびデータ圧縮プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20061219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100803

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100826

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4579793

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250