(57)【要約】【課題】参照部に格納する圧縮対象のデータ量を増やすことなく、圧縮処理した後のデータの圧縮率を向上させることができるデータ圧縮方法を提供する。【解決手段】参照部に格納された圧縮対象のデータとこのデータを所定の配列に並べ替えたデータを用いて符号化部に格納された圧縮対象のデータを符号化し、符号化が終了した後のデータとして、一致するデータが存在しない場合には、一致するデータが存在しないことを示すビットと、一致するデータが存在しない、符号化部に格納された圧縮対象のデータとを含むデータを生成し、一致するデータが存在する場合には、一致するデータが存在することを示すビットと、符号化部に格納された圧縮対象のデータを符号化した際の、参照部に格納された圧縮対象のデータの配列を規定するビットと、参照部における一致箇所を示すビットと、一致するデータの長さを示すビットとを含むデータを生成する。【選択図】図１
2004120251.tif 000002
【特許請求の範囲】
【請求項１】
ＬＺスライド辞書法に基づいて、圧縮対象のデータ列を、符号化が終了した後の圧縮対象のデータが格納された参照部と、これから符号化しようとする圧縮対象のデータが格納された符号化部とに分け、前記参照部に格納された圧縮対象のデータの中から、前記符号化部に格納された圧縮対象のデータに最長一致するデータを検出し、その検出結果に基づいて、前記符号化部に格納された圧縮対象のデータを符号化し、この符号化が終了した後の圧縮対象のデータを前記符号化部から前記参照部へシフトすることを繰り返し行って、前記圧縮対象のデータ列を圧縮処理するデータ圧縮方法であって、
前記参照部に格納された圧縮対象のデータと当該参照部に格納された圧縮対象のデータを所定の配列に並べ替えたデータを用いて、前記符号化部に格納された圧縮対象のデータを符号化し、
前記符号化が終了した後のデータとして、一致するデータが存在しない場合には、前記一致するデータが存在しないことを示すビットと、前記一致するデータが存在しない、前記符号化部に格納された圧縮対象のデータとを含むデータを生成し、
前記一致するデータが存在する場合には、前記一致するデータが存在することを示すビットと、前記符号化部に格納された圧縮対象のデータを符号化した際の、前記参照部に格納された圧縮対象のデータの配列を規定するビットと、前記参照部における一致箇所を示すビットと、前記一致するデータの長さを示すビットとを含むデータを生成することを特徴とするデータ圧縮方法。
【請求項２】
前記参照部に格納された圧縮対象のデータを所定の配列に並べ替えたデータを２種類以上用いて前記符号化を行う請求項１に記載のデータ圧縮方法。
【請求項３】
前記圧縮対象のデータ列を圧縮処理した後のデータは、ヘッダ情報として、前記符号化部に格納された圧縮対象のデータを符号化した際の、前記参照部に格納された圧縮対象のデータの配列を規定するビットと、前記参照部に格納された圧縮対象のデータを前記符号化の時にどのような配列に並べ替えたのかというデータの配列方式の情報と、の間の対応関係を示す情報を含む請求項１または２に記載のデータ圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＺスライド辞書法を改良し、より高い圧縮率を得ることができるデータ圧縮方法に関するものである。
【０００２】
【従来の技術】
ＬＺスライド辞書法は、下記非特許文献１によって提案された方式であり、ＬＺ７７方式とも呼ばれている。以下、図２を参照して、ＬＺ７７方式について説明する。
【０００３】
ＬＺ７７方式において、圧縮対象のデータ列は一列に配列される。図２に示す例の場合、一部図示を省略しているが、…ａｂｃ…ａｂｃｄ…ｄｃｂａ…ａｂｃｄｅ…の順に一列に配列されている。
【０００４】
参照部は、圧縮対象のデータ列のうち、符号化が終了した後の圧縮対象のデータが格納される部分である。参照部には、符号化が終了した後の圧縮対象のデータのうち、最後に符号化が終了した圧縮対象のデータ（図中参照部の右端のデータ）から、図中左側へ向かって、それ以前に符号化が終了した所定数の圧縮対象のデータが格納される。図示例の場合、参照部内の圧縮対象のデータは、…ａｂｃ…ａｂｃｄ…ｄｃｂａ…の順に格納されている。
【０００５】
一方、符号化部は、圧縮対象のデータ列のうち、これから符号化しようとする圧縮対象のデータが格納される部分である。符号化部には、これから符号化しようとする圧縮対象のデータのうち、次に符号化する圧縮対象のデータ（図中符号化部の左端のデータ）から、図中右側へ向かって、これ以後順次符号化する所定数の圧縮対象のデータが格納される。図示例の場合、符号化部内の圧縮対象のデータは、ａｂｃｄｅ…の順に格納されている。
【０００６】
図中圧縮対象のデータ列の上に引かれた線は、参照部に格納された圧縮対象のデータのうち、符号化部に格納された次に符号化する圧縮対象のデータに一致するデータを示す。また、図中、参照部に格納された圧縮対象のデータの上に示されている数字は、参照部の図中左端の圧縮対象のデータからの順番（バイト数）を示す。
【０００７】
例えば、参照部の図中左端の圧縮対象のデータから１０〜１３番目の３バイトのデータａｂｃは、符号化部に格納された次に符号化する圧縮対象のデータａｂｃｄｅ…のうち、最初の３バイトのデータａｂｃと一致する。また、参照部の図中左端の圧縮対象のデータから２０〜２４番目の４バイトのデータａｂｃｄは、同じく次に符号化する圧縮対象のデータａｂｃｄｅ…のうち、最初の４バイトのデータａｂｃｄと一致する。
【０００８】
符号化部に格納された圧縮対象のデータは、符号化が終了した後、順次符号化部側から参照部側へシフト出力される。また、符号化部には、圧縮対象のデータ列の中から、新たな圧縮対象のデータ（図中符号化部の右端のデータよりも右側に存在する圧縮対象のデータ）が順次シフト入力される。すなわち、参照部および符号化部は、圧縮対象のデータ列に対して順次右側へスライドされる。このため、これらの参照部と符号化部を併せてスライド部という。
【０００９】
圧縮対象のデータ列の圧縮処理、すなわち各圧縮対象のデータの符号化は、符号化部に格納された次に符号化する圧縮対象のデータ、すなわち図中符号化部の左端の圧縮対象のデータから順次行われる。
【００１０】
符号化を行う場合、参照部に格納された圧縮対象のデータの中から、符号化部に格納された次に符号化する圧縮対象のデータに最長一致するデータを検出する。そして、この検出結果に基づき、符号化が終了した後のデータとして、参照部における一致箇所を示すビットと、一致するデータの長さを示すビットと、一致するデータが存在しない、符号化部に格納された圧縮対象のデータ（不一致データ）とを含むデータを生成する。
【００１１】
すなわち、ＬＺ７７方式の場合、符号化された後のデータは、［一致箇所、長さ、不一致データ］の形式で符号化される。
【００１２】
符号化が終了した後、前述のように、符号化部に格納された圧縮対象のデータが順次符号化部側から参照部側へシフト出力されると共に、符号化部には、圧縮対象のデータ列の中から、新たな圧縮対象のデータが順次シフト入力される。以後同様にして、符号化部に格納された圧縮対象のデータのうち、次に符号化する圧縮対象のデータに対して前述の動作が繰り返し行われ、最終的に圧縮対象のデータ列が圧縮処理される。
【００１３】
ところで、ＬＺ７７方式の場合、参照部に格納された圧縮対象のデータの中に、符号化部に格納された圧縮対象のデータに一致する圧縮対象のデータが存在しない場合、符号化された後のデータが符号化される前のデータよりも大きくなるという問題がある。
【００１４】
この問題を解決するために提案されたのが、下記非特許文献２において提案されたＬＺＳＳ方式である。ＬＺＳＳ方式は、ＬＺ７７方式において、符号化された後のデータの中に一致の有無を示す情報を入れて、一致しなかったときの冗長性を減らすようにしたものである。
【００１５】
ＬＺＳＳ方式では、符号化が終了した後のデータとして、一致するデータが存在しない場合には、一致するデータが存在しないことを示すビットと、一致するデータが存在しない、符号化部に格納された圧縮対象のデータとを含むデータを生成し、一致するデータが存在する場合には、一致するデータが存在することを示すビットと、参照部における一致箇所を示すビットと、一致するデータの長さを示すビットとを含むデータを生成する。
【００１６】
すなわち、ＬＺＳＳ方式の場合、符号化された後のデータは、一致するデータが存在しない場合には、例えば［‘０’、不一致データ］の形式で符号化される。これに対し、一致するデータが存在する場合には、符号化された後のデータは、例えば［‘１’、一致箇所、長さ］の形式で符号化される。この例の場合、一致するデータが存在しないことを示すビットとして‘０’、一致するデータが存在することを示すビットとして‘１’を使用した。
【００１７】
ＬＺ７７方式に限らず、ＬＺＳＳ方式においても同様に、参照部に格納する圧縮対象のデータ量が多くなるほど、参照部の中に、符号化部に格納された圧縮対象のデータと一致する圧縮対象のデータが存在する可能性は高くなる。しかし、ＬＺスライド辞書法を採用した圧縮回路を構成する場合、参照部に格納するデータ量が多くなるほど、データを保持するための大容量のバッファが必要になり、回路規模が大きくなるという問題点があった。
【００１８】
【非特許文献１】
論文「Ａ　Ｕｎｉｖｅｒｓａｌ　Ａｌｇｏｒｉｔｈｍ　ｆｏｒ　Ｓｅｑｕｅｎｔｉａｌ　Ｄａｔａ　Ｃｏｍｐｒｅｓｓｉｏｎ　」、ＩＥＥＥ　Ｔｒａｎｓａｃｔｉｏｎ　ｏｎ　Ｉｎｆｏｒｍａｔｉｏｎ　Ｔｈｅｏｒｙ、１９７７年
【非特許文献２】
論文「Ｂｅｔｔｅｒ　ＯＰＭ／Ｌ　Ｔｅｘｔ　Ｃｏｍｐｒｅｓｓｉｏｎ　」、ＩＥＥＥ　Ｔｒａｎｓａｃｔｉｏｎ　Ｃｏｍｍｕｎ．Ｖｏｌ．ＣＯＭ−３４，　Ｎｏ．１２　、１９８６年１２月
【００１９】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、参照部に格納する圧縮対象のデータ量を増やすことなく、圧縮処理した後のデータの圧縮率を向上させることができるデータ圧縮方法を提供することにある。
【００２０】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ＬＺスライド辞書法に基づいて、圧縮対象のデータ列を、符号化が終了した後の圧縮対象のデータが格納された参照部と、これから符号化しようとする圧縮対象のデータが格納された符号化部とに分け、前記参照部に格納された圧縮対象のデータの中から、前記符号化部に格納された圧縮対象のデータに最長一致するデータを検出し、その検出結果に基づいて、前記符号化部に格納された圧縮対象のデータを符号化し、この符号化が終了した後の圧縮対象のデータを前記符号化部から前記参照部へシフトすることを繰り返し行って、前記圧縮対象のデータ列を圧縮処理するデータ圧縮方法であって、前記参照部に格納された圧縮対象のデータと当該参照部に格納された圧縮対象のデータを所定の配列に並べ替えたデータを用いて、前記符号化部に格納された圧縮対象のデータを符号化し、
前記符号化が終了した後のデータとして、一致するデータが存在しない場合には、前記一致するデータが存在しないことを示すビットと、前記一致するデータが存在しない、前記符号化部に格納された圧縮対象のデータとを含むデータを生成し、
前記一致するデータが存在する場合には、前記一致するデータが存在することを示すビットと、前記符号化部に格納された圧縮対象のデータを符号化した際の、前記参照部に格納された圧縮対象のデータの配列を規定するビットと、前記参照部における一致箇所を示すビットと、前記一致するデータの長さを示すビットとを含むデータを生成することを特徴とするデータ圧縮方法を提供するものである。
【００２１】
ここで、前記参照部に格納された圧縮対象のデータを所定の配列に並べ替えたデータを２種類以上用いて前記符号化を行うのが好ましい。
【００２２】
また、前記圧縮対象のデータ列を圧縮処理した後のデータは、ヘッダ情報として、前記符号化部に格納された圧縮対象のデータを符号化した際の、前記参照部に格納された圧縮対象のデータの配列を規定するビットと、前記参照部に格納された圧縮対象のデータを前記符号化の時にどのような配列に並べ替えたのかというデータの配列方式の情報と、の間の対応関係を示す情報を含むのが好ましい。
【００２３】
【発明の実施の形態】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のデータ圧縮方法を詳細に説明する。
【００２４】
図１は、本発明のデータ圧縮方法を説明する一実施形態の概念図である。
図１（ａ）および（ｂ）は、それぞれ参照部に格納された圧縮対象のデータを順方向に並べた場合、および逆方向に並べた場合を示す。同図において、参照部、符号化部、スライド部、図中圧縮対象のデータ列の上に引かれた線、および参照部に格納された圧縮対象のデータの上に示されている数字は、従来技術の説明の欄で説明した通りである。
【００２５】
すなわち、参照部には、符号化が終了した後の圧縮対象のデータのうち、最後に符号化が終了した圧縮対象のデータ（図中参照部の右端のデータ）から、図中左側へ向かって、それ以前に符号化が終了した所定数の圧縮対象のデータが格納される。また、符号化部には、これから符号化しようとする圧縮対象のデータのうち、次に符号化する圧縮対象のデータ（図中符号化部の左端のデータ）から、図中右側へ向かって、これ以後順次符号化する所定数の圧縮対象のデータが格納される。
【００２６】
図中圧縮対象のデータ列の上に引かれた線は、参照部に格納された圧縮対象のデータのうち、符号化部に格納された次に符号化する圧縮対象のデータに一致するデータを示す。また、図中、参照部に格納された圧縮対象のデータの上に示されている数字は、参照部の図中左端の圧縮対象のデータからの順番（バイト数）を示す。
【００２７】
本発明のデータ圧縮方法では、ＬＺスライド辞書法に基づいて、圧縮対象のデータ列を圧縮処理する。
【００２８】
すなわち、圧縮対象のデータ列を参照部と符号化部とに分け、参照部に格納された圧縮対象のデータの中から、符号化部に格納された次に符号化する圧縮対象のデータに最長一致するデータを検出する。そして、その検出結果に基づいて、符号化部に格納された圧縮対象のデータを符号化し、この符号化が終了した後の圧縮対象のデータを符号化部から参照部へシフトすることを繰り返し行って、圧縮対象のデータ列を圧縮処理する。
【００２９】
なお、ＬＺスライド辞書法については、従来技術の説明の欄でも述べた通りであり、また、上記非特許文献１，２において詳細に説明されているので、ここでは、その詳細な説明は省略する。
【００３０】
本発明のデータ圧縮方法の最大の特徴は符号化の方式にあり、これ以外の部分は、従来公知のＬＺスライド辞書法と基本的に同一である。従って、以下、本発明に係わる符号化の方式について詳細に説明する。
【００３１】
符号化する場合、参照部に格納された圧縮対象のデータとこの参照部に格納された圧縮対象のデータを所定の配列に並べ替えたデータを用いて、符号化部に格納された圧縮対象のデータを符号化する。本実施形態では、参照部に格納された圧縮対象のデータを順方向に並べたデータ（従来通りの配列のデータ）と圧縮対象のデータを逆方向に並べ替えたデータ（１バイト単位で配列を反転させたデータ）を用いて、符号化部に格納された圧縮対象のデータを符号化する。
【００３２】
図１（ａ）に示す例では、参照部に格納された圧縮対象のデータが順方向に並べられている。この場合、参照部に格納された圧縮対象のデータは、例えば…ｄｃｂａ…の順に配列されており、符号化部に格納された圧縮対象のデータａｂｃｄｅ…に一致するデータは存在しない。
【００３３】
これに対し、図１（ｂ）に示す例は、同図（ａ）に示す例に対して、参照部に格納された圧縮対象のデータを逆方向に並べ替えたものである。この場合、参照部に格納された圧縮対象のデータは、…ａｂｃｄ…の順に配列される。したがって、参照部に格納された圧縮対象のデータの中には、符号化部に格納された圧縮対象のデータａｂｃｄｅ…のうち、先頭からの４バイトのデータａｂｃｄに一致するデータが存在する。
【００３４】
上記のようにして、参照部に格納された圧縮対象のデータを順方向に並べたデータと、この参照部に格納された圧縮対象のデータを逆方向に並べたデータと、の両方について、参照部に格納された圧縮対象のデータの中から、符号化部に格納された次に符号化する圧縮対象のデータに最長一致するデータを検出する。そして、その検出結果に基づいて、符号化部に格納された圧縮対象のデータを符号化する。
【００３５】
符号化が終了した後のデータとしては、符号化部に格納された次に符号化する圧縮対象のデータと一致するデータが参照部に存在しない場合には、一致するデータが存在しないことを示すビットと、一致するデータが存在しない、符号化部に格納された次に符号化する圧縮対象のデータとを含むデータを生成する。すなわち、一致するデータが存在しない場合、符号化された後のデータは、例えば［‘０’、不一致データ］の形式で符号化される。
【００３６】
一致するデータが存在する場合には、最長一致するデータについて、一致するデータが存在することを示すビットと、符号化部に格納された圧縮対象のデータを符号化した際の、参照部に格納された圧縮対象のデータの配列を規定するビットと、参照部における一致箇所を示すビットと、一致するデータの長さを示すビットとを含むデータを生成する。すなわち、一致するデータが存在する場合、符号化された後のデータは、例えば［‘１’、データ配列、一致箇所、長さ］の形式で符号化される。
【００３７】
このように、符号化する場合に、参照部に格納された圧縮対象のデータを所定の配列に順次並べ替えたデータを使用することによって、参照部のデータ容量を増加させることなく、符号化部に格納された圧縮対象のデータに一致するデータが参照部に存在する確率を向上させることができる。すなわち、参照部を実現するためのバッファ等の回路規模を増加させることなく、圧縮対象のデータ列の圧縮率を向上させることができる。
【００３８】
なお、上記例では、一致するデータが存在しないことを示すビットとして‘０’、一致するデータが存在することを示すビットとして‘１’を使用したが、‘０’と‘１’を逆に使用し、一致するデータが存在しないことを示すビットとして‘１’、一致するデータが存在することを示すビットとして‘０’を使用してもよい。
【００３９】
また、上記実施形態では、符号化部に格納された圧縮対象のデータを符号化する際に、参照部に格納された圧縮対象のデータを順方向に並べたデータ（従来通りの配列のデータ）と、圧縮対象のデータを逆方向に並べたデータ（１バイト単位で配列を反転させたデータ）と、を用いる例を示した。このように、参照部に格納された圧縮対象のデータの配列方式が２つだけの場合、データ配列を規定するビットは１ビットで済む。
【００４０】
これに対し、データの配列方式を３つ以上使用し、すなわち参照部に格納された圧縮対象のデータを所定の配列に並べ替えたデータを２種類以上用い、これらの２種類以上の配列方式を適宜組み合わせて使用するようにしてもよい。この場合、データ配列を規定するビットは複数ビット必要である。
【００４１】
データの配列方式としては、上記実施形態のように、１バイト単位でデータを反転させる方式の他、例えば２バイト単位、４バイト単位というように、任意のバイト数を単位としてデータを入れ替える方式も利用可能である。また、例えばＲＧＢ（赤緑青）の３色のデータの繰り返しで構成される画像データＲＧＢＲＧＢＲＧＢ…に対し、ＲＲＲ…ＧＧＧ…ＢＢＢ…というように、データを入れ替えてもよい。あるいは他のどのような配列方式を採用してもよい。
【００４２】
圧縮処理した後のデータを伸張処理する場合、符号化が終了した後のデータに含まれるデータ配列の情報と、参照部に格納された圧縮対象のデータを符号化の時にどのような配列に並べ替えたのかというデータの配列方式の情報との間の対応関係を表す情報が必要になる。上記実施形態の場合、例えばデータ配列の情報が‘０’の場合にはデータの配列方式は順方向であり、‘１’の場合には逆方向であるという情報が必要である。
【００４３】
例えば、あらかじめ圧縮処理を行う側と伸張処理を行う側の両方で、データ配列の情報とデータの配列方式の情報との間の対応関係を取り決めておくおくことにより、問題なく伸張処理を行うことができる。例えば、上記の通り、データ配列の情報とデータの配列方式の情報との間の対応関係を定義しておけば、伸張処理を行う側は、データ配列の情報が‘０’の場合にはデータの配列方式は順方向であり、‘１’の場合には逆方向であるということを理解できる。
【００４４】
あるいは、圧縮処理した後のデータの中に、ヘッダ情報として、データ配列の情報とデータの配列方式の情報との間の対応関係を表す情報を含めるようにしてもよい。この場合、伸張処理を行う側は、このヘッダ情報に含まれる、データ配列の情報とデータの配列方式の情報との間の対応関係を表す情報に基づいて、両者の対応関係を理解することができるので、この対応関係に基づいて問題なく伸張処理を行うことができる。
【００４５】
本発明のデータ圧縮方法は、基本的に以上のようなものである。
以上、本発明のデータ圧縮方法について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００４６】
【発明の効果】
以上詳細に説明した様に、本発明のデータ圧縮方法は、参照部に格納された圧縮対象のデータとこのデータを所定の配列に並べ替えたデータを用いて、符号化部に格納された圧縮対象のデータを符号化し、一致するデータが存在する場合、符号化が終了した後のデータとして、符号化部に格納された圧縮対象のデータを符号化した際の、参照部に格納された圧縮対象のデータの配列を規定するビットを含むデータを生成するようにしたものである。
これにより、本発明のデータ圧縮方法によれば、参照部を実現するためのバッファ等の回路規模を増加させることなく、見かけ上のデータ量を増加させることができるため、符号化部に格納された圧縮対象のデータに一致するデータが参照部に存在する確率を向上させることができ、圧縮対象のデータ列の圧縮率を向上させることができる。
【図面の簡単な説明】
【図１】（ａ）および（ｂ）は、本発明のデータ圧縮方法を説明する一実施形態の概念図である。
【図２】従来のデータ圧縮方法を説明する一例の概念図である。
【図１】
2004120251.tif 000003
【図２】
2004120251.tif 000004