JP4180389B2 - データ圧縮装置およびその制御プログラム - Google Patents
データ圧縮装置およびその制御プログラム Download PDFInfo
- Publication number
- JP4180389B2 JP4180389B2 JP2003011798A JP2003011798A JP4180389B2 JP 4180389 B2 JP4180389 B2 JP 4180389B2 JP 2003011798 A JP2003011798 A JP 2003011798A JP 2003011798 A JP2003011798 A JP 2003011798A JP 4180389 B2 JP4180389 B2 JP 4180389B2
- Authority
- JP
- Japan
- Prior art keywords
- bit string
- dimensional data
- compression
- type
- element storage
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【技術分野】
この発明は,データ圧縮装置およびその制御プログラムに関し,より詳細には表形式により表現されるデータを圧縮する装置およびその制御プログラムに関する。
【0002】
【発明の背景】
たとえば,複数のグレードが設定されている商品が備える部品のうちのいくつかが,共通して用いられる部品であるような場合,使用部品と商品とグレードとの関係を表形式で表すことができる。このような表形式によって表されるデータを圧縮することができれば,コンピュータの記憶領域の省スペース化,データ通信量の軽減等に有効になる。
【0003】
画像情報,音声情報等の圧縮処理技術として,量子化,エントロピー符号化,周波数相関符号化,時間相関符号化等の技術が知られている。また,ディジタル・データの圧縮処理技術としてハフマン符号化,LZ方式等の技術が知られている。これらの技術に関する先行技術文献は存在するが,表形式のデータの特性に着目したデータ圧縮に関する先行技術文献は,見つけることができなかった。
【0004】
【発明の開示】
この発明は,表形式のデータを圧縮する圧縮装置を提供することを目的とする。
【0005】
さらにこの発明は,上記の圧縮装置を制御するプログラムを提供することを目的とする。
【0006】
この発明によるデータ圧縮装置は,複数の見出しによって特定される要素を格納した非圧縮表に基づいて,要素の種類のそれぞれについての上記非圧縮表における要素格納位置を表す1次元データを作成する手段,1次元データと,一または複数の要素格納位置を表す位置型パターンとを組合わせる組合せ手段,1または複数の1次元データと位置型パターンとの組合せに基づいて,非圧縮表を再現することができるかどうかを判断する手段,非圧縮表を再現することができないと判断された場合に,上記1次元データと位置型パターンとの組合せを変更して,非圧縮表を再現することができるかどうかをさらに判断する手段,および非圧縮表を再現することができると判断された場合に,上記組合せ中の1次元データの要素種類と位置型パターンとの組を含む圧縮表を作成する手段を備えている。
【0007】
この発明によるプログラムは,複数の見出しによって特定される要素を格納した非圧縮表に基づいて,要素のそれぞれについての上記非圧縮表における要素格納位置を表す1次元データを作成させ,1次元データと一または複数の要素格納位置を表す位置型パターンとを組合わさせ,組合わされた1または複数の上記1次元データと位置型パターンの組合せに基づいて,非圧縮表を再現することができるかどうかを判断させ,非圧縮表を再現することができないと判断した場合に,上記1次元データと位置型パターンとの組合せを変更して,非圧縮表を再現することができるかどうかをさらに判断させ,非圧縮表を再現することができると判断した場合に,上記組合せ中の1次元データの要素種類と位置型パターンとの組を含む圧縮表を作成させるようにコンピュータを制御するものである。
【0008】
この発明によるデータ圧縮装置は,複数の見出しによって特定される要素を格納した非圧縮表から,要素の種類と位置型パターンとの組を含む圧縮表を生成する装置である。
【0009】
非圧縮表は,複数の見出し(行方向の見出しおよび列方向の見出し)を含む。行方向の見出しおよび列方向の見出しは複数階層に亘るものであってもよい。いずれにしても,非圧縮表は複数の見出し(キー)によって特定される要素が格納された表形式のデータである。換言すると,非圧縮表は,複数の見出しによって特定される複数のセル(単位領域)を含み,1または複数(全部であってもよい)のセル(単位領域)に要素を表すデータが格納されている(関連付けられている)データである。
【0010】
非圧縮表に基づいて,要素の種類のそれぞれについての上記非圧縮表における要素格納位置を表す1次元データが作成される。1次元データは,たとえば,要素が格納されている要素格納位置に対応させてビットを立てたビット列によって表現することができる。
【0011】
1次元データと一または複数の要素格納位置を表す位置型パターンとが組合わせられる。一または複数の要素格納位置を表す位置型パターンは,たとえば,2行2列の正方行列の非圧縮表であれば,第1行第1列の要素格納位置(1つのセル),第1行第2列の要素格納位置(1つのセル),第2行第1列の要素格納位置(1つのセル),第2行第2列の要素格納位置(1つのセル),第1行全列の要素格納位置(2つのセル),第2行全列の要素格納位置(2つのセル),全行第1列の要素格納位置(2つのセル),全行第2列の要素格納位置(2つのセル),および全行全列の要素格納位置(4つのセル)の9種類の位置型パターンとなる。
【0012】
1次元データと位置型パターンの組合せに基づいて,非圧縮表を再現することができるかどうかが判断される。
【0013】
位置型パターンは,上述のように複数の要素格納位置を表すものを含んでいる。このため,最も単純には,上述の2行2列の非圧縮表において一種類の要素がすべての要素格納位置(セル)に格納されているとすると,その要素とすべての要素格納位置を表す位置型パターンとの組とによって,非圧縮表と同じもの(圧縮表)を表すことができる。非圧縮表自体は,一つ一つの要素格納位置(セル)にいずれの要素が格納されているかを表すデータであるから,圧縮表は非圧縮表よりも少ないデータ量で,非圧縮表と同じデータを表すものとなる。
【0014】
非圧縮表を再現することができないと判断された場合に,上記1次元データと位置型パターンとの組合せを変更して,非圧縮表を再現することができるかどうかがさらに判断される。
【0015】
非圧縮表に複数種類の要素が含まれている場合には,圧縮表における1次元データと位置型パターンとの組合せは複数となる。好ましくは,データ圧縮装置は,与えられる制限数の1次元データと位置型パターンの組合せによって,非圧縮表を再現することができるかどうかを判断する制限数内判断手段,上記制限数の1次元データと位置型パターンの組合せでは非圧縮表を再現することができないと判断された場合に上記制限数を増加させる手段,および増加した制限数の1次元データと位置型パターンの組合せによって,非圧縮表を再現することができるかどうかをさらに判断する手段を備えている。より少ないデータ量(より少ない要素と要素格納位置を表す位置型パターンの組)によって,非圧縮表を圧縮して表す圧縮表を作成できるかどうかが試みられる。
【0016】
一実施態様では,データ圧縮装置は,上記非圧縮表に基づいて,上記非圧縮表における要素格納位置のそれぞれおよび複数の要素格納位置を表す位置型パターンを作成する手段を備えている。作成された位置型パターンが用いられて,上記組合せ手段によって,1次元データと位置型パターンとが組合わせられる。
【0017】
広い領域(複数の要素格納位置)を表す位置型パターンを圧縮表に用いる方が,圧縮表に含まれる要素と位置型パターンの組の数を少なくすることができる可能性がある。このため,好ましくは,組合せに用いられる位置型パターンは,より領域の広いものから順番に選択される。
【0018】
この発明によるデータ圧縮装置は,要素格納欄を含む非圧縮表を,要素格納欄に格納される要素の種類と要素格納欄の一または複数の欄を表す位置型パターンとの組合せによって表現することにより,非圧縮表を圧縮して表す圧縮表を作成する装置であって,要素格納欄の各要素格納位置に付された連続番号の順序で,要素種類ごとに要素の存在の有無を1または0のビット列によって表現した1次元データを作成する1次元データ作成手段,すべての1次元データについて,対応するビット位置ごとの論理和を算出して背景ビット列を得る手段,要素格納欄の各要素格納位置に付された連続番号の順序で,上記要素格納欄のそれぞれの位置および複数の要素格納欄の位置を1または0のビット列によって表現した位置型パターンを作成する位置型パターン作成手段,最も存在数が多い要素種類についての1次元データと上記背景ビット列との排他的論理和を算出して残りビット列を得る手段,算出された残りビット列がすべての0のビット列である場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを用いた圧縮表を生成する手段,算出された残りビット列がすべて0のビット列でない場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを圧縮表に含まれる圧縮行の第1行目に決定する手段,上記圧縮行に用いられた位置型パターンと同等またはより狭い領域を表す位置型パターンのいずれかを選択し,選択された位置型パターンのビット列と残りビット列との論理和を算出し,算出された論理和と背景ビット列との論理積を算出して第1ビット列を得る手段,上記圧縮行に用いられた要素種類を除く要素種類についての1次元データを選択し,選択された1次元データのビット列と選択された位置型パターンのビット列の論理積を算出して第2ビット列を得る手段,第1ビット列と第2ビット列との論理積を算出する手段,算出された論理積がすべて0のビット列である場合には,他の位置型パターンおよび1次元データの組合せについて,上記第1ビット列および第2ビット列の算出と第1ビット列と第2ビット列との論理積の算出とを繰り返す手段,算出された論理積がすべて0のビット列でない場合に,選択された位置型パターンと選択された1次元データの要素種類との組合わせを,圧縮表に含まれる次の圧縮行に決定し,上記第1ビット列および第2ビット列において,同じビット位置のビットが1であるものについてビット1をビット0にした第1ビット列を,新たな残りビット列とする手段,新たな残りビット列がすべて0でない場合には,次の圧縮行の決定のための上記第1ビット列(新たな残りビット列が用いられて算出される)および第2ビット列の算出と第1ビット列と第2ビット列の論理積の算出とを繰返す手段,ならびに新たな残りビット列がすべて0の場合には,決定された圧縮行を含む圧縮表を生成する手段を備えている。
【0019】
この発明によるデータ圧縮装置の制御プログラムは,要素格納欄を含む非圧縮表を,要素格納欄に格納される要素の種類と要素格納欄の一または複数の欄を表す位置型パターンとの組合せによって表現することにより,非圧縮表を圧縮して表す圧縮表を作成する装置の制御プログラムであって,要素格納欄の各要素格納位置に付された連続番号の順序で,要素種類ごとに要素の存在の有無を1または0のビット列によって表現した1次元データを作成させ(ステップ33),すべての1次元データについて,対応するビット位置ごとの論理和を算出して背景ビット列を得(ステップ34),要素格納欄の各要素格納位置に付された連続番号の順序で,上記要素格納欄のそれぞれの位置および複数の要素格納欄の位置を1または0のビット列によって表現した位置型パターンを作成させ(ステップ35),最も存在数が多い要素種類についての1次元データと上記背景ビット列との排他的論理和を算出して残りビット列を得(ステップ38),算出された残りビット列がすべて0のビット列である場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを用いた圧縮表を生成させ(ステップ39でYES ,ステップ40,41),算出された残りビット列がすべて0のビット列でない場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを圧縮表に含まれる圧縮行の第1行目に決定させ(ステップ39でNO,ステップ42),上記圧縮行に用いられた位置型パターンと同等またはより狭い領域を表す位置型パターンのいずれかを選択させ,選択された位置型パターンのビット列と残りビット列との論理和を算出させ,算出された論理和と背景ビット列との論理積を算出して第1ビット列を得(ステップ52,53,54),上記圧縮行に用いられた要素種類を除く要素種類についての1次元データを選択させ,選択された1次元データのビット列と選択された位置型パターンのビット列の論理積を算出して第2ビット列を得(ステップ55,56),第1ビット列と第2ビット列との論理積を算出させ(ステップ57),算出された論理積がすべて0のビット列である場合には(ステップ57でYES),他の位置型パターンおよび1次元データの組合せについて,第1ビット列および第2ビット列の算出と,第1ビット列と第2ビット列との論理積の算出とを繰返えさせ(ステップ52〜57),算出された論理積がすべて0のビット列でない場合に(ステップ57でNO),選択された位置型パターンと選択された1次元データの要素種類との組合わせを,圧縮表に含まれる次の圧縮行に決定させ(ステップ58),上記第1ビット列および第2ビット列において,同じビット位置のビットが1であるものについてビット1をビット0にした第1ビット列を新たな残りビット列とさせ(ステップ59),新たな残りビット列がすべて0でない場合には(ステップ60でNO),次の圧縮行の決定のために第1ビット列および第2ビット列の算出と第1ビット列と第2ビット列の論理積の算出とを繰返させ(ステップ52〜57),新たな残りビット列がすべて0の場合には(ステップ60でYES ),決定された圧縮行を含む圧縮表を生成させるように上記データ圧縮装置を制御するものである。
【0020】
圧縮表に含まれる圧縮行に,複数の要素格納欄を表す位置型パターンを用いることができるので,圧縮表は,一つ一つの要素格納欄にいずれの要素が格納されているかを表す非圧縮表よりも少ないデータ量となる。
【0021】
【実施例】
図1は,データ圧縮/伸張装置の構成を示すブロック図である。データ圧縮/伸張装置は,コンピュータ・システム(パーソナル・コンピュータ,ワークステーション等)によって構成される。後述するデータ圧縮/伸張プログラムはコンピュータ・システムの外部記憶装置にインストールされる。インストールされたデータ圧縮/伸張プログラムが実行されることによって,コンピュータ・システムがデータ圧縮/伸張装置として動作する。
【0022】
データ圧縮/伸張装置は,データ圧縮/伸張装置を統括的に制御するCPU1と,バッファ・エリア,ワーク・エリア等を提供する内部メモリ2と,操作者の指示,圧縮すべきファイル(データ)または伸張すべきファイル(データ)の選択等を受付ける入力装置3(キーボード,マウス等)と,圧縮結果,伸張結果等を可視的に出力する出力装置4(表示装置,プリンタ等)と,各種プログラムやデータを記憶する外部記憶装置5(ハードディスク等)と,CD−ROM8に記録されたプログラムやデータを読取るCD−ROMドライブ6と,FD9に記録されたプログラムやデータを読取り,かつFD9にプログラムやデータを書込むFDドライブ(FDD)7を含む。
【0023】
外部記憶装置5にはオペレーティング・システム(OS)およびデータ圧縮/伸張プログラムが記憶されている。OSおよびデータ圧縮/伸張プログラムはCD−ROM8からCD−ROMドライブ6およびCPU1を介して外部記憶装置5にロードまたはインストールされる,またはFD9からFDD7およびCPU1を介して外部記憶装置5にインストールされる。
【0024】
データ圧縮/伸張装置(データ圧縮/伸張プログラム)は,データ圧縮とデータ伸張とを実行する。データ圧縮とはもとのデータを圧縮することによってデータ量の少ない圧縮データを得るものである。得られた圧縮データは,もとの(圧縮前)のデータ(非圧縮データ)によって表されるデータ内容と同じデータ内容を,より少ないデータ量で表すものとなる。データ伸張とはデータ圧縮によって得られた圧縮データを元のデータに戻す処理である。以下の説明では,非圧縮データの一例として静止画像データを取りあげる。
【0025】
(1)非圧縮データおよび圧縮データの具体例
図2は,3行3列の画素(ピクセル)によって構成される非圧縮画像の一例を示している。図2において一つ一つの枠内が,それぞれ画素を表している。図2では,各画素における発色が言葉(文章)によって示されている。以下の説明では,非圧縮画像の各画素の位置を特定するために,行番号(行座標)を2桁の数値(10,20,30)により,列番号(列座標)をアルファベット(A,B,C)により表すことにする。たとえば,座標(10,A)は,行座標が10,列座標がAであり,図2に示す3行3列の非圧縮画像において,最左行かつ最上列の画素の位置を示す。また,各画素の発色は,原色として赤(R),緑(G),青(B)を使用しそれぞれの輝度を変化させることにより種々の色を発色させる加法混色法による発色を基本とする。以下の実施例では,説明を簡単にするために,赤(R)および緑(G)のみを利用した画像例に基づいて説明する。
【0026】
加法混色法においては,上述のように,3原色(RGB)(この実施例では,赤(R)および緑(G))のそれぞれの輝度によって,各画素における発色が決定される。図3は,図2に示す非圧縮画像の各画素の発色を,原色(赤および緑),位置および輝度の強さによって表現したものである。図3に示す表を,以下,発色表と呼ぶ。
【0027】
発色表では,各画素における原色(赤および緑)のそれぞれの輝度(発色)の強さが,丸数字▲1▼〜▲5▼の5段階で示されている。数値が大きくなるにしたがって輝度が強くなることを意味する。輝度の強さを表す数値(丸数字▲1▼〜▲5▼)を,以下,「輝度コード」と呼ぶ。
【0028】
たとえば,図3に示す発色表において,座標(10,A)の画素(図2に示す非圧縮画像においては左上の画素)について,原色「赤」の輝度コードは▲1▼,原色「緑」の輝度コードは▲1▼である。輝度コード▲1▼の原色「赤」と,輝度コード▲1▼の原色「緑」を加色することによって得られる発色が「薄い黄色」(図2参照)である。
【0029】
図4は,後述するデータ圧縮/伸張装置(データ圧縮/伸張プログラム)による処理に基づいて,図3に示す発色表を圧縮したものを表す表(これを,圧縮表と呼ぶ)の一例である(圧縮表の詳細については後述する)。
【0030】
図5は,図3に示す発色表(非圧縮データ)の表現を,図4に示す圧縮表と同様の表現に改めたものである。
【0031】
図5に示す発色表(非圧縮データ)は,18行の行データから構成されている。一方,図4に示す圧縮表(圧縮データ)は5行の行データから構成されている。行データのそれぞれのデータ量が同じであるとすると,図4に示す圧縮表の圧縮率は約27.8%(=5/18×100)となっている。
【0032】
(2)伸張処理
圧縮処理についての説明は後述することにして,はじめに図4に示す圧縮表から図3に示す発色表を得るための処理を具体例に,伸張処理を説明する。
【0033】
図6は伸張処理(その1)の流れを示すフローチャートである。図7(A)〜(C)および図8(A)および(B)は,図4に示す圧縮表から図3に示す発色表を得るまでの流れを示している。
【0034】
はじめに輝度コード格納欄が空白の発色表が内部メモリ2上に用意される(ステップ11)。
【0035】
圧縮表からの行データ取り出し位置を表すカウンタpが生成される。圧縮表から元のデータを得る伸張処理(その1)においては,圧縮表の最下行から順に遡ることを原則とする。カウンタpに圧縮行の最下行を表す数値が代入される(ステップ12)。図4に示す圧縮表は5つの行方向のデータを含むので,カウンタpには「5」が代入される。
【0036】
圧縮表からカウンタpが示す行データが読出され,内部メモリ2に一時的に記憶される(ステップ13)。
【0037】
図4の圧縮表の最下行(第5行目)は,原色が「緑」で,かつ行座標が「第30行」で,かつすべての列座標(△で表す)について,「輝度コード」が「▲5▼」であることを意味する。圧縮表の第5行目に基づいて,原色「緑」について行座標「30」のすべての列座標(A,B,C)に,輝度コード▲5▼が格納(セット)される(ステップ14)(図7(A) )。
【0038】
カウンタpがデクリメントされる(ステップ15)。圧縮表の第4行目についての処理に進む。
【0039】
第4行目は原色が「緑」で,かつすべての行座標(横方向)(△で表す)で,かつ列座標(縦方向)が「C列」は,輝度コードが▲4▼であることを意味する。ここで,輝度コード▲4▼の発色表への格納処理(ステップ14)では,圧縮表の第5行目によって既に輝度コード▲5▼が格納された領域には輝度コード▲4▼は格納されない。圧縮表の第5行目によって既に輝度コード▲5▼が格納された領域を除いて,圧縮表の第4行目に基づいて,原色「緑」の行座標「10」および「20」で,かつ列座標「C」の位置に,輝度コード▲4▼が格納される(図7(B) )。
【0040】
第3行目の処理に進む。第3行目は原色「赤」および「緑」(△で表す)で,かつ行座標(横方向)が「第30行」で,かつすべての列座標(縦方向)(△で表す)について,輝度コードが▲2▼であることを意味する。圧縮表の第5行目および第4行目によって輝度コード▲5▼および輝度コード▲4▼が格納された領域を除いて,圧縮表の第3行に基づいて,原色「赤」の行座標「30」のすべての列座標(A,B,C)に,輝度コード▲2▼が格納される(ステップ14)(図7(C))。
【0041】
第2行目の処理に進む。第2行目は原色「赤」および「緑」で,かつすべての行座標(横方向)で,かつ「C列」について,輝度コードが▲3▼であることを意味する。圧縮表の第5行目,第4行目および第3行目によって輝度コード▲5▼,▲4▼および▲2▼が格納された領域を除いて,圧縮表の第2行目に基づいて,原色「赤」の行座標「10」および「20」の列座標「C」に,輝度コード▲3▼が格納される(ステップ14)(図8(A))。
【0042】
最後に第1行目の処理に進む。第1行目は原色「赤」および「緑」で,かつすべての行座標(横方向)で,かつすべての列座標(縦方向)について(すなわち,発色表の全体),輝度コードが▲1▼であることを意味する。圧縮表の第5行目,第4行目,第3行目および第2行目によって輝度コード▲5▼,▲4▼,▲2▼および▲3▼が格納された領域を除いて,圧縮表の第1行目に基づいて,第5行〜第2行までのロジックを経て未だ輝度コードが格納されていない領域に,輝度コード▲1▼が格納される(ステップ14)(図8(B);図3に示す発色表と同じ)。
【0043】
カウンタpが0,すなわち圧縮表のすべての行データについて上述の処理が終了すると,伸張処理(その1)は終了する(ステップ16でYES )。
【0044】
図4に示す圧縮表から図3に示す発色表を得ることができ,図3に示す発色表から図2に示す画像を得ることができるので,図4に示す圧縮表から図2に示す画像を得ることができる。上述したように,図4に示す圧縮表のデータ量は,図3に示す発色表のデータ量の約27.8%のデータ量である。
【0045】
図9は,伸張処理(その2)の流れを示すフローチャートである。伸張処理(その2)では,圧縮表の最上行から順番に行データが読出されて処理される点が,伸張処理(その1)とは異なる。図6に示す処理と同一の処理については同一の符号を付し,重複説明を避ける。
【0046】
カウンタpに圧縮表の最上行の行数(すなわち「1」)を表す数値が代入される(ステップ17)。圧縮表の最上行の行データが内部メモリ2に一時的に記憶される(ステップ13)。最上行の行データによって特定される領域に,行データ中の輝度コードが格納(セット)される(ステップ14A)。その後,カウンタpがインクリメントされる(ステップ18)。
【0047】
伸張処理(その2)では,すでに輝度コードが格納(セット)されている領域についても,その後の行データの処理において,輝度データが上書きされる(ステップ14A)。
【0048】
カウンタpが最下行の行数を超えると,伸張処理(その2)が終了する。
【0049】
伸張処理(その1)および伸張処理(その2)のいずれの処理であっても,圧縮表(圧縮データ)から発色表(非圧縮データ)を得ることができる。ハードディスク5に記憶されるデータ圧縮/伸張プログラムには,一般的には,伸張処理(その1)または伸張処理(その2)のいずれか一方の処理のためのプログラムが記述される。
【0050】
(3)位置型表記および強度型表記
後述するように,データ圧縮/伸張プログラムによるデータ圧縮処理では,位置型表記(位置型データ)および強度型表記(強度型データ)の2つの表記(データ)が用いられる。データ圧縮/伸張プログラムによる圧縮処理の説明に進む前に,この位置型表記および強度型表記について説明しておく。
【0051】
(A) 位置型表記
図10は,図3に示す発色表中の輝度コードが格納される欄(輝度コード格納欄)のそれぞれに,1から始まる連続する番号を付したもの(位置座標表)を示している。図11は,輝度コード格納欄の一または隣合う複数の欄の位置を特定する表記するものの一覧表(テーブル)である。輝度コード格納欄の一または隣合う複数の欄の位置を特定する表記を,以下,「位置型表記」と呼ぶ。
【0052】
図10に示す位置座標表において,輝度コード格納欄中の番号は,輝度コード格納欄の左上(原色「赤」の座標(10,A))からスタートして右向きに進み,さらに次の行に移って右向きに進み,最終的に輝度コード格納欄の右下(原色「緑」の座標(30,C))で終えるように,順番にナンバリングされている。各輝度コード欄中の各番号を,以下,「位置番号」と呼ぶ。位置番号によって,輝度コード格納欄の位置(座標)(原色別画素位置)が特定される。たとえば,位置番号「3」は「原色「赤」について座標(10,C)」を意味する。位置番号「11」は「原色「緑」について座標(10,B)」を意味する。
【0053】
図11に示す位置型表記の一覧表における各位置型表記は,原色,行座標および列座標の3つ表記の組によって構成される。
【0054】
左側の表記が原色を表している。△はすべての原色(この実施例では,赤および緑)を表す。
【0055】
中央の表記は行座標を表している。△はすべての行座標(図3に示す発色表の例では,第10行,第20行および第30行)を表す。
【0056】
右側の表記は列座標を表している。△はすべての列座標(図3に示す発色表の例では,第A列,第B列および第C列)を表す。
【0057】
図12(A)および(B)ならびに図13は,それぞれ,位置型表記と,位置型表記をビット列によって表記したものと,位置型表記によって特定される輝度コード格納欄の位置との関係を示すものである。
【0058】
位置型表記「△ △ △」(図12(A))は,発色表の輝度コード格納欄における,すべての原色,かつすべての行,かつすべての列の位置を意味する。位置型表記「△ △ △」を,上述の位置番号に対応させてビット列で表記すると「111111111111111111」となる。すなわち,輝度コード格納欄のすべて(ハッチング部分)の位置を示す。
【0059】
位置型表記「△ 10 △」(図12(B))は,輝度コード格納欄における,すべての原色で,かつ第10行で,かつすべての列の位置を意味する。位置型表記「△ 10 △」を,位置番号に対応させてビット列で表記すると「111000000111000000」となる。6つ分の輝度コード格納欄の位置を示す。
【0060】
位置型表記「緑 30 C」(図13)は,輝度コード格納欄における,原色「緑」,第30行,第C列を意味する。位置番号に対応させてビット列で表記すると「000000000000000001」となる。1つ分の輝度コード格納欄の位置を示す。
【0061】
このように,位置型表記は,輝度コード格納欄の一または隣合う複数の欄の位置を特定する表記(データ)(ビット列)である。
【0062】
(B) 強度型表記
図14は,図3に示す発色表の各輝度コード格納欄に格納された輝度コードのそれぞれが格納されている輝度コード格納欄の位置を,上述の位置番号(図10)に対応させてビット列で表記したものである。輝度コードごとに,その輝度コードが格納されている位置をビット列で表記したものを,「強度型表記」と呼ぶ。
【0063】
たとえば,輝度コード▲1▼については,位置番号1,2,4,5,10,11,13および14にビット列「1」が対応している。輝度コード▲1▼についての強度型表記によって,輝度コード▲1▼が格納されている輝度コード格納欄の位置が特定される。
【0064】
図14に示すビット列において,最下段のビット列は,輝度コード▲1▼〜▲5▼のそれぞれの強度型表記について各位置番号におけるビットの排他的論理和(XOR)をとったものである。このビット列を「背景ビット列」と呼ぶ。
【0065】
(4)圧縮処理(その1)
図15〜図19は,図3に示す発色表(非圧縮データ)を圧縮する(圧縮表にする)処理の流れを示すものである。図15〜図19のそれぞれにおいて,左側には圧縮表(完成途上のものを含む)が示されている。圧縮表の右側には,左側の圧縮表によって表される発色表を示している。右側の発色表において,正しく輝度コードが格納されていない領域(他の輝度コードが格納されるべき領域)がハッチングによって示されている。
【0066】
データ圧縮/伸張プログラムによるデータ圧縮処理では,はじめに,「制限行数」が設定される。制限行数は圧縮表に用いられるべき行数の最大値を意味する。設定された制限行数の行データを含む圧縮表によって発色表を表現できるかどうかが試行される。発色表を表現できない場合には制限行数をインクリメントして,再度,発色表を表現できるかどうかが試行される。できるだけ少ない行数の圧縮表を作成した方が圧縮率が高められるからである。
【0067】
また,発色表の圧縮処理の前処理として,発色表(非圧縮データ)に基づいて,上述した位置型表記の一覧表(図11)および輝度型表記(図14)が作成される。
【0068】
図15に示すように,はじめに制限行数が「1」に設定される。1行の圧縮表で発色表を表すことができるかどうかが試行される。
【0069】
図3に示す発色表は,1行の圧縮表で表すことができないことがデータ圧縮/伸張プログラムの圧縮処理において判断される(詳しくは後述する)。この場合,各強度型表記(ビット列)中の「1」の数が算出され,最も「1」の数が多い強度型表記の輝度コードと,最も広い位置型表記との組合せが圧縮表の第1行とされる。圧縮表の第1行が決定される。
【0070】
1行の圧縮表によって表現される発色表において,非圧縮データによって表される発色表とは異なる輝度コードが格納されている輝度コード格納欄に,正しい輝度コードを格納していくルーチンが,以下の処理において行われることになる。
【0071】
制限行数がインクリメントされる。図16に示すように,2行の圧縮表で発色表を表現できるかどうかが試行される。はじめに位置型表記を選択し,次に強度型表記を選択し,選択した位置型表記と選択した強度型表記を仮に圧縮表の第2行として,その2行の圧縮表で発色表を表すことができるかどうかが試行される。選択した位置型表記と選択した強度型表記を用いることによっては発色表を表すことができない場合には,位置型表記についてはそのまま選択したものを用い,強度型表記については他の輝度コードを含む強度型表記を新たに選択して試行が行われる。それでも発色表を表すことができない場合には,他の位置型表記が新たに選択され,新たに選択された位置型表記と強度型表記との組合せで試行が行われる。なお,位置型表記の一覧表(図11)は,位置型表記が輝度コード格納欄の広い範囲を示すものから狭い範囲を示すものの順番に並べられており,広い範囲を示すものから順番に選択される。また,第1行において用いられた最も広い範囲を示す位置型表記は選択されず,その次に広い範囲のものから選択が開始される。
【0072】
試行の結果,2行の圧縮表では発色表を表すことができないことが判断されると,制限行数がさらにインクリメントされる。3行の圧縮表で発色表を表現できるかどうかが試行される。
【0073】
3行の圧縮表を用いて発色表を表現できるかどうかの試行では,第2行,第3行のそれぞれについて,多数の強度型表記と位置型表記の組合せについて試行が行われる。3行の圧縮表においては,選択される位置型表記は,圧縮表の第2行については第1行の位置型表記よりも狭い範囲を示すものが選択され,第3行については第2行の位置型表記と同等,または狭い範囲を示すものが選択される。
【0074】
図3に示す発色表についての制限行数を3行とした圧縮表作成の試行の過程では,図17(A) に示す組合せも,図17(B) に示す組合せも出現することになる。
【0075】
試行の結果,3行の圧縮表では発色表を表すことができないことがデータ圧縮プログラムの処理において判断されると,制限行数がさらにインクリメントされる。4行の圧縮表で発色表を表現できるかどうかが試行される。第2行,第3行,第4行のそれぞれについて,多数の強度型表記と位置型表記の組合せについて試行が行われる。図3に示す発色表についての制限行数を4行とした圧縮表作成の試行の過程では,図18(A) に示す組合せも,図18(B) に示す組合せも出現することになる。
【0076】
試行の結果,4行の圧縮表では発色表を表すことができないことが判断されると,制限行数がさらにインクリメントされる。5行の圧縮表で発色表を表現できるかどうかが試行される。第2行,第3行,第4行,第5行のそれぞれについて,強度型表記と位置型表記の種々の組合せについて試行が行われる。
【0077】
制限行数が5行の場合,図19(A),図19(B),図19(C) のいずれの圧縮表も出現する可能性がある。図19(C) の圧縮表は,図3の発色表を表すものとなっている。試行過程において図19(C) が出現すると,圧縮表が完成したことが,データ圧縮処理において判断されると,データ圧縮/伸張プログラムの圧縮処理が終了する。
【0078】
図19(C) に示す圧縮表と図4に示す圧縮表は,いずれも図3に示す発色表を圧縮して表すものであるが,その内容は異なっている(第2行目と第3行目を参照)。このようにデータ圧縮/伸張プログラムによる圧縮処理では,一つの発色表について数種類の圧縮表が作成され得る。データ圧縮/伸張プログラムによる圧縮処理では,種々の強度型表記と位置型表記の組合せについて試行し,最初に出現した完成した圧縮表を出力する。
【0079】
(5) 圧縮処理(その2)
図20〜図24はデータ圧縮/伸張プログラムによるデータ圧縮処理の流れを示すフローチャートである。
【0080】
データ圧縮/伸張プログラムが実行される。次に圧縮処理すべき非圧縮データが圧縮処理装置の操作者によって選択される。たとえば,操作者によってFD9に記録されている非圧縮データが選択されると,FD9に記録されている非圧縮データがFDD7によって読取られ,CPU1を介して内部メモリ2に一時的に記憶される(ステップ31)。
【0081】
内部メモリ2に記憶された非圧縮データ,たとえば非圧縮画像データによって表される画像を表す画素の配列に応じて,行座標(10,20,30・・・)および列座標(A,B,C・・・)が決定され,発色表(図3)が作成される(ステップ32)。
【0082】
図3に示す発色表は,赤(R)および緑(G)のそれぞれについて輝度コード(▲1▼〜▲5▼)のデータを含む。輝度コード▲1▼〜▲5▼のそれぞれについて強度型表記(ビット列)が作成される(ステップ33;図14参照)。非圧縮画像データが輝度コードごとに一次元化されて表現される。
【0083】
作成された強度型表記に基づいて,位置番号によって特定されるビット位置ごとのビットの論理和が算出される。算出された論理和を「背景ビット列」と呼ぶ(ステップ34;図14参照)。
【0084】
位置型表記の一覧表(図11)が作成される(ステップ35)。位置型表記の一覧表では,広い領域を表記する位置型表記から,狭い領域を表記する位置型表記の順番に並べられる。
【0085】
ここで,制限行数が仮に決定される(ライン・ジェネレート;ステップ36)。制限行数は1から順に増やされていく。できるだけ少ない行数で圧縮表を作成すると,圧縮率の高い圧縮表が得られるので,仮に決定される制限行数をもつ圧縮表によって発色表を表す圧縮表が完成するかどうかが試行される。
【0086】
はじめに,制限行数が「1」とされ,1行の圧縮表によって発色表を表現することができるかどうかが試行される。
【0087】
輝度コード▲1▼〜▲5▼のそれぞれについての強度型表記(図14)のビット列に含まれるビット「1」の総数がカウントされ,最もビット「1」の数が多い強度型表記が選択される。たとえば,図14に示す強度型表記では,輝度コード▲1▼についての強度型表記にビット「1」が最も多く含まれている。最もビット「1」の数が多い強度型表記が選択される(ステップ37)。
【0088】
選択された強度型表記のビット列と背景ビット列の排他的論理和が算出される(ステップ38)。
【0089】
ステップ38の排他的論理和の算出は,選択された強度型表記のビット列によって上記背景ビット列を消込む(埋める)ことができるか,すなわち,選択された強度型表記のみによって上記非圧縮データが構成されているかどうか判断するために行われる。
【0090】
排他的論理和が0(ビット列のすべてのビットが0)であれば,発色表(非圧縮データ)は,選択された強度型表記のみによって構成されていることが分かる。この場合,選択された強度型表記の輝度コードと,最も広い位置型表記の組合せを用いた1行の圧縮表が作成され,出力(外部記憶装置5への記録)が行われる(ステップ39でYES ,ステップ40,ステップ41)。もちろん,最も広い位置型表記ではなく,選択された強度型表記において「1」がある場所(すなわち,選択された強度型表記においてビット「1」がある位置番号に対応する輝度コード格納欄)を表す位置型表記を,位置型表記の一覧表(図11)から選択して,圧縮表の第1行目に用いるようにしてもよい。
【0091】
排他的論理和が0でない場合には(ステップ39でNO),発色表には,選択された強度型表記以外の強度型表記が用いられており,1行の圧縮表では発色表を表すことができないことが分かる。
【0092】
選択された強度型表記の輝度コードと最も広い範囲を表す位置型表記の組合せが,圧縮表における1行目に決定される(ステップ42)。圧縮表の1行目を,以下「基本データ」と呼ぶ。
【0093】
たとえば,発色表から作成される強度型表記が図14に示すものである場合,最も「1」の数が多い強度型表記は輝度コード▲1▼の強度型表記であるので,圧縮表の1行目(基本データ)は,輝度コード「▲1▼」,位置型コード「△ △ △」の組合せに決定される。
【0094】
次に,ラインポインタp1の格納領域がメモリ上に作成される(ステップ43)。ラインポインタ格納領域については,後述する説明において明らかにする。
【0095】
作成されたラインポインタp1の格納領域に,制限行数iの内容がコピーされる(ステップ44)。基本データが作成された直後においては,制限行数i=1であるので,ラインポインタp1=1となる。
【0096】
圧縮行作成処理(ステップ45;図22)に進む。
【0097】
圧縮行作成処理は,簡潔に言えば,上述の制限行数iの範囲内において,発色表(非圧縮データ)を表す圧縮表(圧縮表を構成する各行)を作成することができるかどうかを試行する処理である。総当たり的に強度型表記と位置型表記を組合わせ,すべての組合せを試行した結果,発色表を表す圧縮表を得ることができないと判断された場合には,制限行数がインクリメントされ,インクリメントされた制限行数の圧縮表によって,発色表を表すことができるかどうかを更に試行するという処理である。
【0098】
また,圧縮行作成処理では,後述するように,再帰処理(圧縮行作成処理中に,さらに圧縮行作成処理が行われること)が行われる。圧縮行作成処理では,圧縮表における第2行目を仮に決定しておき,さらに再帰処理において第3行目を仮に決定し,さらに第4行目を決定する,といった処理が行われる。
【0099】
はじめに,上述のラインポインタp1がデクリメントされる(図22;ステップ50)。デクリメントされたp1の値が0以下の場合には,圧縮行作成処理(ステップ45)から抜ける(ステップ51でYES )。ラインポインタp1格納領域が削除される(ステップ46)。
【0100】
残りビット列が「0」でないので圧縮表が未完成と判断される(ステップ47でNO)。
【0101】
圧縮表が未完成と判断されると,ラインジェネレートが行われ,制限行数iがインクリメントされる(ステップ49)。制限行数i=1であったとすると,新たな制限行数i=2,すなわち,2行の圧縮表によって発色表(非圧縮データ)を表すことができるかどうかの試行が開始される。
【0102】
ラインポインタp1の格納領域が作成され(ステップ43),作成されたラインポインタp1の値として,新たな制限行数iの値がコピーされる(ステップ44)。最大行数i=2の場合にはp1=2とされる。
【0103】
圧縮行作成処理が再び開始される(ステップ45;図22)。
【0104】
ラインポインタp1の値がデクリメントされる(ステップ50)。ラインポインタp1=2の場合,デクリメントされるとp1=1となる。
【0105】
ラインポインタp1が0よりも大きい場合(ステップ51でNO ),位置型表記と強度型表記の組合せの処理(試行)が行われる。
【0106】
はじめに位置型表記の一覧表(図11)から,一の位置型表記が選択される(ステップ52)。ここで選択される位置型表記は,範囲の大きい順番に並べられている位置型表記の一覧表にしたがって,範囲の大きい順に選択される。ただし,先に選択された位置型表記は選択されず,その次の位置型表記から選択が開始される。たとえば,図11に示す位置型表記の一覧表を例にとると,圧縮表の第1行目で「△ △ △」が用いられているので,その次の位置型表記である「赤 △ △」が選択されることになる。
【0107】
選択された位置型表記のビット列と残りビット列の論理和が算出される(ステップ53)。算出される論理和は,選択された位置型表記が影響を及ぼす輝度コード格納欄における範囲および残りビット列によって表される輝度コード格納欄における範囲を意味する。
【0108】
算出された論理和と,背景ビット列の論理積が算出される(ステップ54)。この処理は,発色表の輝度コード格納欄において,何もデータが格納されていない領域がある場合に,その領域を除外する処理である。発色表にデータが存在しない領域がない場合には,この処理はスキップしてもよい。
【0109】
上述の論理積の結果のビット列を,以下,「ビット列A」と呼ぶ。
【0110】
次に強度型表記が選択される(ステップ55)。図14に示す強度型表記を例にとると,輝度コード▲1▼〜▲5▼についての5つの強度型表記があり,輝度コード▲1▼についての強度型表記は圧縮表の第1行目に用いられているので,輝度コード▲1▼を除く4つの輝度コード(輝度コード▲2▼〜▲5▼)についての強度型表記のうちのいずれかが選択される。
【0111】
選択された強度型表記のビット列と,選択された位置型表記のビット列の論理積が算出される(ステップ56)。算出されるビット列を「ビット列B」と呼ぶ。ビット列Bは,選択された位置型表記によって表される輝度コード格納欄における範囲において,選択された輝度型表記のビット列が存在するかどうかを表すものとなる。
【0112】
ビット列Aとビット列Bの論理積が算出され,算出されるビット列が「0」(すべてのビットが「0」)かどうかが判断される(図23;ステップ57)。
【0113】
ビット列Aとビット列Bの論理積が「0」ということは,選択された位置型表記によって表される輝度コード格納欄における範囲において,選択された強度型表記の輝度コードがまったく位置していないことを意味する。この場合には,位置型表記をそのままとし,強度型表記を他のものに代える処理が行われる(ステップ57でYES ,ステップ55に戻る)。他の強度型表記が選択され,上述と同様の処理が行われる(ステップ55,56,57)。
【0114】
強度型表記がすべて選択され,そのいずれにおいてもビット列Aとビット列Bの論理積が「0」である場合には,ステップ55(強度型表記の選択)のループを抜け,ステップ52(位置型表記の選択)のループに戻る。すなわち,他の位置型表記が選択されて,選択された新たな位置型表記が用いられて上述と同様の処理が行われる(ステップ52〜ステップ57)。
【0115】
ビット列Aとビット列Bの論理積が「0」でない場合(ステップ57でNO),選択された位置型表記によって表される輝度コード格納欄における範囲において,選択された強度型表記の輝度コードが少なくとも一つは位置していることが分かる。この場合,選択された強度型表記の輝度コードと,選択された位置型表記の組合せが一時的にメモリに記憶される(ステップ58)。圧縮表の第2行目として,この輝度コードと位置型表記の組合せが仮決定される。
【0116】
ビット列Aとビット列Bにおいて,ともに「1」であるビット列について,「1」を「0」とした新たなビット列Aを作成する(ステップ59)。この処理は,すでに圧縮表の第1行目に決定している輝度コードと位置型表記との組合せと,上述のメモリに記憶された第2行目に仮決定された輝度コードと位置型表記の組合せによって,発色表(非圧縮データ)を表す圧縮表が完成しているかどうかの判断に用いられる。この処理によって得られるビット列も「残りビット列」と呼ぶ。
【0117】
残りビット列が「0」であるかどうかが判断される(ステップ60)。残りビット列が「0」であれば(ステップ60でYES ),2行の圧縮表で発色表を表すことができていることになる。圧縮行作成処理(図21;ステップ45)を抜け,圧縮表が完成していると判断され(ステップ47でYES ),メモリに記憶されている輝度コードと位置型表記の組合せを2行目とする2行の圧縮表が出力される(ステップ48)。
【0118】
残りビット列が「0」でない場合には(ステップ60でNO),メモリに記憶されている輝度コードと位置型表記の組合せを圧縮表の2行目として仮に決定し,次の行(3行目)の決定処理に移ることになる。
【0119】
ラインポインタp1の格納領域がさらに作成される(ステップ61)。ラインポインタの格納領域は2つとなる。
【0120】
後述するように,制限行数が増えると,その制限行数にともなってラインポインタ格納領域も増加する。以下の説明において,作成されるラインポインタ格納領域同志の関係を「階層」で表現することにする。上述のステップ61において作成されるラインポインタ格納領域は,ステップ43(図21)において既に作成されているラインポインタ格納領域の一つ下の階層におけるラインポインタ格納領域という位置づけになる。逆に言うと,ステップ43において既に作成されているラインポインタ格納領域は,新たに作成されるラインポインタ格納領域の一つ上の階層のラインポインタ格納領域ということになる。
【0121】
新たに作成されたラインポインタ格納領域のラインポインタp1に,一つ上層のラインポインタp1がコピーされる(ステップ62)。上層のラインポインタp1が「1」であれば,新たに作成された下層のラインポインタp1も「1」とされる。
【0122】
圧縮行作成処理が再帰的に呼び出される(図24;ステップ63)。すなわち,圧縮行作成処理の処理中においてさらに圧縮行作成処理が行われる。再帰呼出された圧縮行作成処理は,上述の例では第3行目についての圧縮行作成処理である。
【0123】
再帰呼出された圧縮行作成処理のステップ50の処理は,ステップ61において新たに作成されたラインポインタp1についての処理となる。ラインポインタp1=1であるから,デクリメントされるとp1=0となる(ステップ51でYES )。このように,制限行数i=2の場合に第3行目の圧縮作成処理に進むと,その処理をすぐに抜けることになる(図24;ステップ63を抜ける)。ラインポインタ格納領域が削除される(ステップ64)。
【0124】
残りビット列が「0」でないので圧縮表は完成していないと判断される(ステップ65でNO)。圧縮表の第2行目としてメモリに仮に記憶されている輝度コードと位置型表記の組合せが削除される(ステップ66)。圧縮表の第2行目について,再び位置型表記と強度型表記の組合せ(試行)が行われることになる(ステップ55,ステップ52)。
【0125】
すべての位置型表記と強度型表記の組合せ(試行)を行って圧縮表が完成に至らなかった場合には(図21;ステップ47でNO),ラインジェネレートが更に行われる(ステップ49)。3行の圧縮表によって発色表(非圧縮データ)を表すことができるかどうかが試行される。
【0126】
3行の圧縮表によって非圧縮データを表すことができるかどうかの処理についても,圧縮表の第2行について処理(位置型表記と強度型表記の組合せの試行)から開始される。
【0127】
上述のような処理を経ることによって,ステップ60の判断において残りビット列が「0」になると,圧縮表が完成した判断され(ステップ65でYES ,ステップ47でYES ),圧縮処理が終了する。
【0128】
図25は,上述の再帰処理を模式的に表すものである。
【0129】
たとえば,制限行数i=3の場合には,圧縮表の第2行目について圧縮行作成処理が行われ(符号81),その圧縮行作成処理中に呼び出される圧縮行作成処理(再帰処理)において圧縮表の第3行目について圧縮行作成処理が行われる(符号82)。さらに圧縮表の第3行目についての圧縮行作成処理中の呼び出される圧縮行作成処理(再帰処理中の再帰処理)で圧縮表の第4行目について圧縮行作成処理が行われる(符号83)。制限行数i=3であれば,圧縮表の第4行目についての圧縮行作成処理(符号83)はすぐにその処理を抜け,1行前(すなわち,圧縮表の第3行目)についての圧縮行作成処理(符号82)に戻ることになる。圧縮表の第3行目についての試行がすべて終えたときに圧縮表が完成していない場合には,さらに圧縮表の第3行目についての処理を抜け,圧縮表の第2行目についてさらに試行が行われる。このようにして圧縮表の第2行,第3行について,強度型表記と位置型表記の組合せのすべてについて試行が行われる。その結果,圧縮表が完成しなかった場合には,制限行数iがインクリメントされることになる。
【0130】
このようにデータ圧縮処理を経ることによって,非圧縮データは少ない行数の圧縮表によって表すことができる。制限行数の範囲内で試行を繰り返すことによって,より少ない行数の圧縮表を作成することができるので,圧縮率の高い圧縮データ(圧縮表)を得ることができる。
【0131】
上述した例では,画像データを一例にしてデータ圧縮およびデータ伸張の処理を説明したが,画像データのみならず,他のデータであっても同様にデータ圧縮処理およびデータ伸張処理を行うことができるのは言うまでもない。以下,画像データ以外のデータについての適用例を挙げておく。
【0132】
図26(A) は航空路線と,航空機の機種と,座席グレードと,料金との関係を表す料金表を表している。図26(B) は図26(A) に示す料金表を圧縮した圧縮表を表している。図26(A) において「×」は未設定を表している。上述の圧縮処理を用いることによって,図26(A) に示す料金表(非圧縮データ)から,図26(B) に示す圧縮表を得ることができる。伸張処理(その1であっても,その2であってもよい)を用いることによって,図26(B) に示す圧縮表から図26(A) に示す料金表を得ることができる。
【0133】
図27(A) は寿司の量と,商品名と,ランクと,寿司ネタとの関係を表す寿司ネタ表を表している。図27(B) は電源電圧と,シリーズと,ランクと,部品グレードとの関係を表す使用部品表を表している。図27(A) に示す寿司ネタ表および図27(B) に示す使用部品表についても,上述の圧縮処理を用いることによって,よりデータ量の少ない圧縮表を得ることができる。
【図面の簡単な説明】
【図1】データ圧縮装置のハードウエア構成を示すブロック図である。
【図2】3行3列の画素の画像を示す。
【図3】発色表の一例を示す。
【図4】圧縮表の一例を示す。
【図5】図3に示す発色表を図4に示す圧縮表と同じ表記にして示すものである。
【図6】伸張処理(その1)の流れを示すフローチャートである。
【図7】 (A),(B),(C)は圧縮表から発色表を得る伸張処理の具体例を示す。
【図8】 (A),(B)は圧縮表から発色表を得る伸張処理の具体例を示す。
【図9】伸張処理(その2)の流れを示すフローチャートである。
【図10】図3に対応する発色表の輝度コード格納欄に,連続する番号を付したものを示す。
【図11】位置型表記の一覧表を示す。
【図12】 (A),(B)は位置型表記と,その位置型表記をビット列によって表したものと,その位置型表記によって特定される輝度コード格納欄の位置との関係をそれぞれ示す。
【図13】位置型表記と,その位置型表記をビット列によって表したものと,その位置型表記によって特定される輝度コード格納欄の位置との関係をそれぞれ示す。
【図14】強度型表記および背景ビット列の一例を示す。
【図15】発色表から圧縮表を作成する処理の一例を示す。
【図16】発色表から圧縮表を作成する処理の一例を示す。
【図17】 (A),(B)は,発色表から圧縮表を作成する処理の一例を示す。
【図18】 (A),(B)は,発色表から圧縮表を作成する処理の一例を示す。
【図19】 (A),(B),(C)は,発色表から圧縮表を作成する処理の一例を示す。
【図20】データ圧縮処理の流れを示すフローチャートである。
【図21】データ圧縮処理の流れを示すフローチャートである。
【図22】データ圧縮処理の流れを示すフローチャートである。
【図23】データ圧縮処理の流れを示すフローチャートである。
【図24】データ圧縮処理の流れを示すフローチャートである。
【図25】再帰処理を模式的に示す。
【図26】 (A) は料金表の一例を,(B) は料金表を圧縮した圧縮表の一例を示す。
【図27】 (A) は寿司ネタ表の一例を,(B) は使用部品表の一例を示す。
【符号の説明】
1 CPU
2 内部メモリ
3 入力装置
4 出力装置
5 外部記憶装置
6 CD−ROMドライブ
7 FDD
8 CD−ROM
9 FD
Claims (8)
- 複数の見出しによって特定される要素を格納した非圧縮表に基づいて,要素の種類のそれぞれについての上記非圧縮表における要素格納位置を表す1次元データを作成する手段,
1次元データと,一または複数の要素格納位置を表す位置型パターンとを組合わせる組合せ手段,
1または複数の1次元データと位置型パターンとの組合せに基づいて,非圧縮表を再現することができるかどうかを判断する手段,
非圧縮表を再現することができないと判断された場合に,上記1次元データと位置型パターンとの組合せを変更して,非圧縮表を再現することができるかどうかをさらに判断する手段,および
非圧縮表を再現することができると判断された場合に,上記組合せ中の1次元データの要素種類と位置型パターンとの組を含む圧縮表を作成する手段,
を備えたデータ圧縮装置。 - 与えられる制限数の1次元データと位置型パターンの組合せによって,非圧縮表を再現することができるかどうかを判断する制限数内判断手段,
上記制限数の1次元データと位置型パターンとの組合せでは非圧縮表を再現することができないと判断された場合に,上記制限数を増加させる手段,および
増加した制限数の1次元データと位置型パターンとの組合せによって,非圧縮表を再現することができるかどうかをさらに判断する手段を備えた,
請求項1に記載のデータ圧縮装置。 - 上記非圧縮表に基づいて,上記非圧縮表における要素格納位置のそれぞれおよび複数の要素格納位置を表す位置型パターンを作成する手段を備えた,請求項1または2に記載のデータ圧縮装置。
- 複数の見出しによって特定される要素を格納した非圧縮表に基づいて,要素のそれぞれについての上記非圧縮表における要素格納位置を表す1次元データを作成させ,
1次元データと一または複数の要素格納位置を表す位置型パターンとを組合わさせ,
組合わされた1または複数の上記1次元データと位置型パターンの組合せに基づいて,非圧縮表を再現することができるかどうかを判断させ,
非圧縮表を再現することができないと判断した場合に,上記1次元データと位置型パターンとの組合せを変更して,非圧縮表を再現することができるかどうかをさらに判断させ,
非圧縮表を再現することができると判断した場合に,上記組合せ中の1次元データの要素種類と位置型パターンとの組を含む圧縮表を作成させるようにコンピュータを制御する,プログラム。 - 与えられる制限数の1次元データと位置型パターンの組合せによって,非圧縮表を再現することができるかどうかを判断させ,
上記制限数の1次元データと位置型パターンの組合せでは非圧縮表を再現することができないことを判断した場合に上記制限数を増加させ,
増加した制限数の1次元データと位置型パターンの組合せによって,非圧縮表を再現することができるかどうかをさらに判断させるようにコンピュータを制御する,請求項4に記載のプログラム。 - 要素格納欄を含む非圧縮表を,要素格納欄に格納される要素の種類と要素格納欄の一または複数の欄を表す位置型パターンとの組合せによって表現することにより,非圧縮表を圧縮して表す圧縮表を作成する装置であって,
要素格納欄の各要素格納位置に付された連続番号の順序で,要素種類ごとに要素の存在の有無を1または0のビット列によって表現した1次元データを作成する1次元データ作成手段,
すべての1次元データについて,対応するビット位置ごとの論理和を算出して背景ビット列を得る手段,
要素格納欄の各要素格納位置に付された連続番号の順序で,上記要素格納欄のそれぞれの位置および複数の要素格納欄の位置を1または0のビット列によって表現した位置型パターンを作成する位置型パターン作成手段,
最も存在数が多い要素種類についての1次元データと上記背景ビット列との排他的論理和を算出して残りビット列を得る手段,
算出された残りビット列がすべて0のビット列である場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを用いた圧縮表を生成する手段,
算出された残りビット列がすべて0のビット列でない場合には,
上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを圧縮表に含まれる圧縮行の第1行目に決定する手段,
上記圧縮行に用いられた位置型パターンと同等またはより狭い領域を表す位置型パターンのいずれかを選択し,選択された位置型パターンのビット列と残りビット列との論理和を算出し,算出された論理和と背景ビット列との論理積を算出して第1ビット列を得る手段,
上記圧縮行に用いられた要素種類を除く要素種類についての1次元データを選択し,選択された1次元データのビット列と選択された位置型パターンのビット列の論理積を算出して第2ビット列を得る手段,
第1ビット列と第2ビット列との論理積を算出する手段,
算出された論理積がすべて0のビット列である場合には,
他の位置型パターンおよび1次元データの組合せについて,上記第1ビット列および第2ビット列の算出と第1ビット列と第2ビット列との論理積の算出とを繰り返す手段,
算出された論理積がすべて0のビット列でない場合に,
選択された位置型パターンと選択された1次元データの要素種類との組合わせを,圧縮表に含まれる次の圧縮行に決定し,上記第1ビット列および第2ビット列において,同じビット位置のビットが1であるものについてビット1をビット0にした第1ビット列を,新たな残りビット列とする手段,
新たな残りビット列がすべて0でない場合には,次の圧縮行の決定のための上記第1ビット列および第2ビット列の算出と第1ビット列と第2ビット列の論理積の算出とを繰返す手段,ならびに
新たな残りビット列がすべて0の場合には,決定された圧縮行を含む圧縮表を生成する手段,
を備えたデータ圧縮装置。 - 与えられる制限行数の範囲内において,圧縮表を生成することができるかどうかを判断する手段,
上記制限行数では圧縮表を生成することができないことが判断された場合に,制限行数を増加させる手段,および
増加した制限行数の範囲内において,圧縮表を生成することができるかどうかを再度判断する手段を備えた,
請求項6に記載のデータ圧縮装置。 - 要素格納欄を含む非圧縮表を,要素格納欄に格納される要素の種類と要素格納欄の一または複数の欄を表す位置型パターンとの組合せによって表現することにより,非圧縮表を圧縮して表す圧縮表を作成する装置の制御プログラムであって,
要素格納欄の各要素格納位置に付された連続番号の順序で,要素種類ごとに要素の存在の有無を1または0のビット列によって表現した1次元データを作成させ,
すべての1次元データについて,対応するビット位置ごとの論理和を算出して背景ビット列を得,
要素格納欄の各要素格納位置に付された連続番号の順序で,上記要素格納欄のそれぞれの位置および複数の要素格納欄の位置を1または0のビット列によって表現した位置型パターンを作成させ,
最も存在数が多い要素種類についての1次元データと上記背景ビット列との排他的論理和を算出して残りビット列を得,
算出された残りビット列がすべて0のビット列である場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを用いた圧縮表を生成させ,
算出された残りビット列がすべて0のビット列でない場合には,上記最も存在数が多い要素種類と,要素格納欄のすべての位置を表す位置型パターンまたは最も存在数が多い要素種類の要素格納位置を表す位置型パターンとの組合せを圧縮表に含まれる圧縮行の第1行目に決定させ,
上記圧縮行に用いられた位置型パターンと同等またはより狭い領域を表す位置型パターンのいずれかを選択させ,選択された位置型パターンのビット列と残りビット列との論理和を算出させ,算出された論理和と背景ビット列との論理積を算出して第1ビット列を得,
上記圧縮行に用いられた要素種類を除く要素種類についての1次元データを選択させ,選択された1次元データのビット列と選択された位置型パターンのビット列の論理積を算出して第2ビット列を得,
第1ビット列と第2ビット列との論理積を算出させ,
算出された論理積がすべて0のビット列である場合には,他の位置型パターンおよび1次元データの組合せについて,第1ビット列および第2ビット列の算出と,第1ビット列と第2ビット列との論理積の算出とを繰返させ,
算出された論理積がすべて0のビット列でない場合には,
選択された位置型パターンと選択された1次元データの要素種類との組合わせを,圧縮表に含まれる次の圧縮行に決定させ,上記第1ビット列および第2ビット列において,同じビット位置のビットが1であるものについてビット1をビット0にした第1ビット列を新たな残りビット列とさせ,
新たな残りビット列がすべて0でない場合には,次の圧縮行の決定のために第1ビット列および第2ビット列の算出と第1ビット列と第2ビット列の論理積の算出とを繰返させ,
新たな残りビット列がすべて0の場合には,決定された圧縮行を含む圧縮表を生成させるように上記データ圧縮装置を制御するプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003011798A JP4180389B2 (ja) | 2003-01-21 | 2003-01-21 | データ圧縮装置およびその制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003011798A JP4180389B2 (ja) | 2003-01-21 | 2003-01-21 | データ圧縮装置およびその制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004228726A JP2004228726A (ja) | 2004-08-12 |
JP4180389B2 true JP4180389B2 (ja) | 2008-11-12 |
Family
ID=32900593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003011798A Expired - Fee Related JP4180389B2 (ja) | 2003-01-21 | 2003-01-21 | データ圧縮装置およびその制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4180389B2 (ja) |
-
2003
- 2003-01-21 JP JP2003011798A patent/JP4180389B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004228726A (ja) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6527812B1 (en) | Method and system for undoing multiple editing operations | |
US4831525A (en) | Method of generating a source program from inputted schematic information | |
US8026910B2 (en) | Offline optimization pipeline for 3D content in embedded devices | |
US5872573A (en) | Method and system for improving legibility of text and graphic objects laid over continuous-tone graphics | |
US8385639B2 (en) | Compressive coding device and visual display control device | |
US6519365B2 (en) | Encoder, decoder, recording medium, encoding method, and decoding method | |
WO1997011439A2 (en) | Image generating system and method | |
CN112118449B (zh) | 一种图像压缩与解压缩的方法及装置 | |
JP4180389B2 (ja) | データ圧縮装置およびその制御プログラム | |
US8374448B2 (en) | Image data optimization systems and methods | |
KR101975404B1 (ko) | 절차적 콘텐츠 생성장치 및 방법 | |
US7106345B2 (en) | Mechanism for color-space neutral (video) effects scripting engine | |
US6240216B1 (en) | Method and apparatus for processing an image, storage medium for storing an image processing program | |
CN115550661B (zh) | 一种图像压缩方法、复原方法、计算设备及可读存储介质 | |
JP4034385B2 (ja) | マルチカラー画像の符号化装置およびその方法ならびにマルチカラー画像の復号化装置およびその方法 | |
JP3194347B2 (ja) | 印刷装置 | |
JPH11219359A (ja) | 文書データ処理装置およびそのプログラム記録媒体 | |
JP3585036B2 (ja) | 画像生成方法 | |
JPS61213887A (ja) | 文字パタ−ン発生装置 | |
JPH10200715A (ja) | 画像データ格納方法及び画像データ格納装置 | |
JP2562540B2 (ja) | 図形処理方法 | |
JPH05250109A (ja) | カラー画像出力装置 | |
JP5597028B2 (ja) | 画像復号装置及びその制御方法、並びにプログラム及びコンピュータ可読記憶媒体 | |
JPH0548851A (ja) | 画像記録装置 | |
JP4069393B2 (ja) | 復号化装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060116 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080415 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080514 |
|
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: 20080826 |
|
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: 20080827 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110905 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110905 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140905 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140905 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140905 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |