"NビットNは2以上の整数の領域を有し、入力されるNビットの第1のデータ列をビット単位に各領域へ格納する第1のバッファと、前記第1のバッファの各領域に対応付けられたNビットの領域を有し、前記第1のバッファの1以上後段に接続され、前記第1のバッファへ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットと対応する領域へ格納する第2のバッファと、前記第1のバッファに格納された前記第1のデータ列と、前記第2のバッファに格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力する前処理手段と、前記前処理手段から出力された第1の前処理データ列に対して可逆圧縮を行う可逆圧縮手段と、を備えるデータ可逆圧縮装置。前記前処理手段は、前記第1のバッファの2以上後段に直列に接続されたバッファを前記第2のバッファとして、前記排他的論理和を算出することを特徴とする請求項1に記載のデータ可逆圧縮装置。前記前処理手段は、前記第1のバッファの後段に直列に接続される複数の後段バッファに格納された各データ列と、前記第1のバッファに格納された第1のデータ列との排他的論理和の結果に対して前記可逆圧縮手段により可逆圧縮した場合の圧縮率の予測結果を算出し、前記予測結果に基づいて前記複数の後段バッファのうち1つを前記第2のバッファとして選択し、前記選択した第2のバッファと前記第1のバッファとに格納された各データ列についての前記排他的論理和の結果を前記第1の前処理データ列とし、前記選択したバッファの位置情報をさらに前記可逆圧縮手段へ出力し、前記可逆圧縮手段は、前記位置情報を含めて前記第1の前処理データ列に対して可逆圧縮を行うことを特徴とする請求項1に記載のデータ可逆圧縮装置。前記第2のバッファは、前記第1のバッファに前記第1のデータ列の後続の第3のデータ列が格納された際に、前記第3のデータ列以前に入力された第4のデータ列を格納し、前記前処理手段は、前記第1のバッファに格納された前記第3のデータ列と前記第2のバッファに格納された前記第4のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の前処理データ列とし、前記第1の前処理データ列と、当該第2の前処理データ列とから対応するビットごとに排他的論理和を算出し、前記第1の前処理データ列として前記可逆圧縮手段へ出力することを特徴とする請求項1乃至3のいずれか1項に記載のデータ可逆圧縮装置。前記入力されるNビットのデータ列は、主記憶内のプログラムデータ領域又はヒープ領域に格納された値であることを特徴とする請求項1乃至4のいずれか1項に記載のデータ可逆圧縮装置。NビットNは2以上の整数の領域を有する第1のバッファに対して、入力されるNビットの第1のデータ列をビット単位に格納し、前記第1のバッファの1以上後段に接続され、前記第1のバッファの各領域に対応付けられたNビットの領域を有する第2のバッファに対して、前記第1のバッファへ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットに対応する領域へ格納し、前記第1のバッファに格納された前記第1のデータ列と、前記第2のバッファに格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力し、前記出力された第1の前処理データ列に対して可逆圧縮を行うデータ可逆圧縮方法。NビットNは2以上の整数の領域を有する第1の記憶部に対して、入力されるNビットの第1のデータ列をビット単位に格納し、前記第1の記憶部の各領域に対応付けられたNビットの領域を有する第2の記憶部に対して、前記第1の記憶部へ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットに対応する領域へ格納し、前記第1の記憶部に格納された前記第1のデータ列と、前記第2の記憶部に格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として生成し、前記生成された第1の前処理データ列に対して可逆圧縮を行う処理をコンピュータに実行させるデータ可逆圧縮プログラムが格納された非一時的なコンピュータ可読媒体。NビットNは2以上の整数の領域を有し、Nビットの第1のデータ列をビット単位に各領域へ格納する第1のバッファと、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、当該第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力する可逆伸張手段と、前記第1のバッファの各領域に対応付けられたNビットの領域を有し、前記第1の復元データ列をビット単位に各領域へ格納する第2のバッファと、前記第2のバッファに格納された前記第1の復元データ列と、前記第1のバッファに格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力する後処理手段と、を備え、前記第1のバッファは、前記後処理手段から出力される前記第1の後処理データ列を格納し、前記可逆伸張手段は、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、当該第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2のバッファへ出力し、前記後処理手段は、前記第2のバッファに格納された前記第2の復元データ列と、前記第1のバッファに格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力することを特徴とするデータ可逆伸張装置。NビットNは2以上の整数の領域を有する第1のバッファに対して、Nビットの第1のデータ列をビット単位に格納し、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、前記第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力し、前記第1のバッファの各領域に対応付けられたNビットの領域を有する第2のバッファに対して、前記第1の復元データ列をビット単位に格納し、前記第2のバッファに格納された前記第1の復元データ列と、前記第1のバッファに格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力し、前記第1のバッファに対して、前記出力された第1の後処理データ列を格納し、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、前記第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2のバッファへ出力し、前記第2のバッファに格納された前記第2の復元データ列と、前記第1のバッファに格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力するデータ可逆伸張方法。NビットNは2以上の整数の領域を有する第1の記憶部に対して、Nビットの第1のデータ列をビット単位に格納し、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、前記第2のデータ列に対して可逆伸張を行った第1の復元データ列を生成し、前記第1の記憶部の各領域に対応付けられたNビットの領域を有する第2の記憶部に対して、前記第1の復元データ列をビット単位に格納し、前記第2の記憶部に格納された前記第1の復元データ列と、前記第1の記憶部に格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力し、前記第1の記憶部に対して、前記出力された第1の後処理データ列を格納し、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、前記第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2の記憶部へ出力し、前記第2の記憶部に格納された前記第2の復元データ列と、前記第1の記憶部に格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力する処理をコンピュータに実行させるデータ可逆伸張プログラムが格納された非一時的なコンピュータ可読媒体。しかしながら、上述した可逆圧縮手法では、データの可逆圧縮を行う際の処理速度を落とすことなく、圧縮率を維持することが困難という問題点がある。その理由は、可逆圧縮手法は、圧縮に関わる処理速度と、圧縮率との間でトレードオフの関係があるためである。特に、計算機の主記憶に格納されたデータの可逆圧縮の際に、このような問題点が顕著となる。そこで、以下に具体的に述べる。上述したハイバネーションやスワッピングなどを高速化するためには、計算機の主記憶に格納されたデータを圧縮することが有効である。特に、近年、主記憶の容量が著しく増大している。そのため、主記憶装置である揮発性記憶領域から補助記憶装置である不揮発性記憶領域への退避及び復帰処理には、以前に比べて長時間を要するようになった。よって、主記憶に格納するデータを圧縮する必要性が高まっている。ここで、計算機の主記憶に格納されたデータの内容は画像等に特定されていない。そこで、計算機主記憶の内容を圧縮する場合、汎用的な可逆圧縮手法例えば、非特許文献1乃至5を用いるか、又は、データ内容に応じて複数の圧縮手法を切り替えること例えば、特許文献3及び4が考えられる。例えば、後者の手法の例である特許文献3及び4は、対象データについて都度、圧縮の可否を判定する必要があり、判定処理の負荷が高い。そのため、データ内容に応じて複数の圧縮手法を切り替えるという手法は、処理が複雑であるため、長い処理時間を要する。また、当該手法は、データ内容の判別が困難であるため、一般的な利用には適さない。つまり、主記憶に格納されたデータを圧縮するには、前者の手法である汎用的な可逆圧縮手法を利用することが望ましい。しかし、単一の汎用的な可逆圧縮手法である算術符号など計算量の多いアルゴリズムでは、圧縮及び伸張に長時間かかってしまうため、ハイバネーションやスワッピングなどを高速化することができない。一方、汎用的な可逆圧縮手法のうちLZについては、上述したように非特許文献5などでハードウェア装置向けの高速実装手法が知られている。そのため、主記憶に格納されたデータを圧縮するために、LZを用いることは適切と考えられる。しかし、LZに限らず可逆圧縮手法は、計算速度の向上とのトレードオフで圧縮率が低下する。尚、特許文献1、2、5及び6は、画像データに特化した圧縮手法である。そのため、画像データ以外のデータを含み得る場合で、それらの判別をせずにこれらの技術を適用すると、圧縮率が低くなるか、場合によっては圧縮前のデータに比べてデータサイズが大きくなってしまう恐れがある。また、特許文献7は、不可逆圧縮に関する技術である。そのため、特許文献1、2、5、6及び7に記載の技術を用いても上述した問題点を解決することはできない。本発明は、このような問題点を解決するためになされたものであり、データの可逆圧縮又は可逆伸張を行う際の処理速度を落とすことなく、圧縮率を維持するためのデータ可逆圧縮装置、方法及びプログラム並びにデータ可逆伸張装置、方法及びプログラムを提供することを目的とする。本発明の第1の態様にかかるデータ可逆圧縮装置は、NビットNは2以上の整数の領域を有し、入力されるNビットの第1のデータ列をビット単位に各領域へ格納する第1のバッファと、前記第1のバッファの各領域に対応付けられたNビットの領域を有し、前記第1のバッファの1以上後段に接続され、前記第1のバッファへ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットと対応する領域へ格納する第2のバッファと、前記第1のバッファに格納された前記第1のデータ列と、前記第2のバッファに格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力する前処理部と、前記前処理部から出力された第1の前処理データ列に対して可逆圧縮を行う可逆圧縮部と、を備える。本発明の第2の態様にかかるデータ可逆圧縮方法は、NビットNは2以上の整数の領域を有する第1のバッファに対して、入力されるNビットの第1のデータ列をビット単位に格納し、前記第1のバッファの1以上後段に接続され、前記第1のバッファの各領域に対応付けられたNビットの領域を有する第2のバッファに対して、前記第1のバッファへ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットに対応する領域へ格納し、前記第1のバッファに格納された前記第1のデータ列と、前記第2のバッファに格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力し、前記出力された第1の前処理データ列に対して可逆圧縮を行う。本発明の第3の態様にかかるデータ可逆圧縮プログラムは、NビットNは2以上の整数の領域を有する第1の記憶部に対して、入力されるNビットの第1のデータ列をビット単位に格納し、前記第1の記憶部の各領域に対応付けられたNビットの領域を有する第2の記憶部に対して、前記第1の記憶部へ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットに対応する領域へ格納し、前記第1の記憶部に格納された前記第1のデータ列と、前記第2の記憶部に格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として生成し、前記生成された第1の前処理データ列に対して可逆圧縮を行う処理をコンピュータに実行させる。本発明の第4の態様にかかるデータ可逆伸張装置は、NビットNは2以上の整数の領域を有し、Nビットの第1のデータ列をビット単位に各領域へ格納する第1のバッファと、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、当該第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力する可逆伸張部と、前記第1のバッファの各領域に対応付けられたNビットの領域を有し、前記第1の復元データ列をビット単位に各領域へ格納する第2のバッファと、前記第2のバッファに格納された前記第1の復元データ列と、前記第1のバッファに格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力する後処理部と、を備え、前記第1のバッファは、前記後処理部から出力される前記第1の後処理データ列を格納し、前記可逆伸張部は、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、当該第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2のバッファへ出力し、前記後処理部は、前記第2のバッファに格納された前記第2の復元データ列と、前記第1のバッファに格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力することを特徴とする。本発明の第5の態様にかかるデータ可逆伸張方法は、NビットNは2以上の整数の領域を有する第1のバッファに対して、Nビットの第1のデータ列をビット単位に格納し、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、前記第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力し、前記第1のバッファの各領域に対応付けられたNビットの領域を有する第2のバッファに対して、前記第1の復元データ列をビット単位に格納し、前記第2のバッファに格納された前記第1の復元データ列と、前記第1のバッファに格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力し、前記第1のバッファに対して、前記出力された第1の後処理データ列を格納し、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、前記第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2のバッファへ出力し、前記第2のバッファに格納された前記第2の復元データ列と、前記第1のバッファに格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力する。本発明の第6の態様にかかるデータ可逆伸張プログラムは、NビットNは2以上の整数の領域を有する第1の記憶部に対して、Nビットの第1のデータ列をビット単位に格納し、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、前記第2のデータ列に対して可逆伸張を行った第1の復元データ列を生成し、前記第1の記憶部の各領域に対応付けられたNビットの領域を有する第2の記憶部に対して、前記第1の復元データ列をビット単位に格納し、前記第2の記憶部に格納された前記第1の復元データ列と、前記第1の記憶部に格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力し、前記第1の記憶部に対して、前記出力された第1の後処理データ列を格納し、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、前記第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2の記憶部へ出力し、前記第2の記憶部に格納された前記第2の復元データ列と、前記第1の記憶部に格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力する処理をコンピュータに実行させる。本発明により、データの可逆圧縮又は可逆伸張を行う際の処理速度を落とすことなく、圧縮率を維持するためのデータ可逆圧縮装置、方法及びプログラム並びにデータ可逆伸張装置、方法及びプログラムを提供することができる。以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。<発明の実施の形態1>本発明の実施の形態1にかかるデータ可逆圧縮装置100は、本発明のデータ可逆圧縮処理のための構成及び機能を、ハードウェアとして実装した場合の例を示している。図1は、本発明の実施の形態1にかかるデータ可逆圧縮装置100の構成を示すブロック図である。データ可逆圧縮装置100は、外部から連続してNビットデータ列D1Nは2以上の整数を入力し、所定の可逆圧縮処理を行い、可逆圧縮済みNビットデータ列D2として出力する。データ可逆圧縮装置100は、バッファ10、バッファ21、、バッファ2mと、前処理部30と、可逆圧縮部40とを備える。バッファ10は、Nビットの領域を有し、入力されるNビットの第1のデータ列を、ビット単位に各領域へ格納する第1のバッファである。具体的には、バッファ10は、N個のフリップフロップであるFF101、102、、10nを有するNビットFFである。例えば、バッファ10は、入力されるNビットデータ列D1の第1ビットの値をFF101に、第2ビットの値をFF102に、、第Nビットの値をFF10nへそれぞれ格納する。バッファ21~2mは、それぞれバッファ10の各領域に対応付けられたNビットの領域を有するバッファである。バッファ21~2mは、N個のフリップフロップを有するNビットFFである。すなわち、バッファ21のFF211、212、、21n、バッファ2mのFF2m1、2m2、、2mnは、それぞれ、上述したバッファ10のFF101、102、、10nの各FFに対応付けられている。また、バッファ21~2mは、バッファ10の1以上後段に接続されている。そして、バッファ21~2mは、それぞれ直列に接続されている。言い換えると、バッファ10及び21~2mは、前後のバッファ間で対応するビットにおけるFF同士が接続されており、同一のバッファ内の異なるビット間では接続されていない。また、バッファ21~2mは、バッファ10へ第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットと対応する領域へ格納する。このとき、バッファ2mを第2のバッファと呼ぶものとする。尚、図1では、mが2以上として記載しているが、本発明の実施の形態1に係るデータ可逆圧縮装置100は、少なくともmが1以上であればよい。すなわち、バッファ10及び21~2mは、少なくとも2以上である。前処理部30は、バッファ10に格納された第1のデータ列と、バッファ2mに格納された第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力する。具体的には、前処理部30は、1ビット排他的論理和301、302、、30nを備える。そして、1ビット排他的論理和301、302、、30nは、それぞれ、FF101、102、、10nに対応する。すなわち、1ビット排他的論理和301は、FF101とFF2m1とに格納された値について排他的論理和を算出する。同様に、1ビット排他的論理和302は、FF102とFF2m2とに格納された値について、、1ビット排他的論理和30nは、FF10nとFF2mnとに格納された値について、それぞれ排他的論理和を算出する。そして、前処理部30は、1ビット排他的論理和301~30nから出力された値を、この順序でNビットの前処理データ列として、可逆圧縮部40へ出力する。可逆圧縮部40は、前処理部30から出力された第1の前処理データ列に対して所定の可逆圧縮処理を行う。そして、可逆圧縮部40は、当該可逆圧縮処理の結果を可逆圧縮済みNビットデータ列D2として出力する。尚、可逆圧縮部40における可逆圧縮処理は、公知ものを用いても構わない。例えば、可逆圧縮部40には、上述した非特許文献5に記載の装置を用いることができる。データ可逆圧縮装置100において、バッファ10及び21~2mは、順次、入力されるNビットデータ列D1をシフトしながら保持する。すなわち、バッファサイズがm1のとき、m語前までのデータを保持する。そして、入力された語とm語前の語との排他的論理和を前処理部30によって求め、その結果であるデータ列を可逆圧縮部40で圧縮する。図2は、本発明の実施の形態1にかかるデータ可逆圧縮方法の処理の流れを示すフローチャートである。前提として、データ可逆圧縮装置100に入力されるNビットデータ列D1のうち、第1番目から第m番目までのデータ列については、予めバッファ10及び21~2m-1不図示に、入力順にm個のNビットデータ列が格納済みであるものとする。このとき、データ可逆圧縮装置100は、入力されたNビットデータ列D1を第1のバッファ10に格納するS11。そして、第1のバッファ10に対する後段のバッファ21~2mは、自己の前段のバッファに格納済みのデータ列を順次、後段のバッファに格納するS12。ここで、前処理部30は、後段のバッファ21~2mのうち1つここでは、第2のバッファは、バッファ2mと第1のバッファ10とに格納されたデータ列についてビットごとに排他的論理和し、前処理データ列を出力するS13。その後、可逆圧縮部40は、前処理データ列に対して可逆圧縮してS14、可逆圧縮済みNビットデータ列D2として出力する。尚、バッファ10及び21~2mに、予め全てのビット値が0である値が格納されている場合、入力されるNビットデータ列D1のうち、第1番目から第m番目までのデータ列についても、ステップS21~S24が適用可能である。このようにして可逆圧縮された可逆圧縮済みNビットデータ列D2は、本発明の実施の形態1にかかるデータ可逆伸張装置200によって元通りに伸張することができる。図3は、本発明の実施の形態1にかかるデータ可逆伸張装置200の構成を示すブロック図である。データ可逆伸張装置200は、外部から連続して所定の可逆圧縮が行われた可逆圧縮済みNビットデータ列D2を入力し、所定の可逆伸張処理を行い、Nビットデータ列D1として出力する。データ可逆伸張装置200は、可逆伸張部50と、バッファ60と、バッファ71~7mと、後処理部80とを備える。可逆伸張部50は、入力される可逆圧縮済みNビットデータ列D2に対して、所定の可逆伸張処理を行い、復元データ列としてバッファ60へ出力する。ここで、所定の可逆伸張処理は、可逆圧縮済みNビットデータ列D2を可逆圧縮する際に用いられた可逆圧縮手法に対応するものとする。そのため、可逆伸張部50における可逆伸張処理は、可逆圧縮部40と同様に、公知ものを用いても構わない。バッファ60は、Nビットの領域を有し、入力される復元データ列を、ビット単位に各領域へ格納するバッファである。具体的には、バッファ60は、N個のフリップフロップであるFF601、602、、60nを有するNビットFFである。例えば、バッファ60は、可逆伸張部50から出力される復元データ列の第1ビットの値をFF601に、第2ビットの値をFF602に、、第Nビットの値をFF60nへそれぞれ格納する。バッファ71~7mは、それぞれバッファ60の各領域に対応付けられたNビットの領域を有するバッファである。バッファ71~7mは、N個のフリップフロップを有するNビットFFである。すなわち、バッファ71のFF711、712、、71n、バッファ7mのFF7m1、7m2、、7mnは、それぞれ、上述したバッファ60のFF601、602、、60nの各FFに対応付けられている。また、バッファ71~7mは、後処理部80の1以上後段に接続されている。そして、バッファ71~7mは、それぞれ直列に接続されている。言い換えると、バッファ71~7mは、前後のバッファ間で対応するビットにおけるFF同士が接続されており、同一のバッファ内の異なるビット間では接続されていない。尚、図3では、mが2以上として記載しているが、本発明の実施の形態1に係るデータ可逆伸張装置200は、少なくともmが1以上であればよい。すなわち、バッファ60及び71~7mは、少なくとも2以上である。後処理部80は、バッファ60に格納された復元データ列と、バッファ7mに格納された後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの後処理データ列として出力する。そのため、バッファ71~7mは、バッファ60に復元データ列が格納された際に、当該復元データ列以前に後処理部80により後処理されたNビットの後処理データ列について、当該復元データ列の各ビットと対応する領域へ格納する。尚、データ可逆圧縮装置100にかかるバッファ2mと、データ可逆伸張装置200にかかるバッファ7mとは、mの値が一致しているものとする。ここで、バッファ7mを第1のバッファ、バッファ60を第2のバッファと呼ぶものとする。そして、第1のバッファ7mに格納される後処理データ列を第1のデータ列とする。この場合、可逆伸張部50は、当該第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力することとなる。そして、可逆伸張部50は、当該第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力する。そのため、第2のバッファ60には、第1の復元データ列が格納される。そして、後処理部80は、第2のバッファ60に格納された第1の復元データ列と、第1のバッファ7mに格納された第1のデータ列とについて、第1の後処理データ列を生成し、出力することとなる。その後、第1のバッファ7mは、後処理部80から出力される第1の後処理データ列を格納する。そして、可逆伸張部50は、第2のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第3のデータ列を入力する。これに伴い、可逆伸張部50は、当該第3のデータ列に対して可逆伸張を行った第2の復元データ列を第2のバッファ60へ出力する。そして、後処理部80は、第2のバッファ60に格納された第2の復元データ列と、第1のバッファ7mに格納された第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力する。図4は、本発明の実施の形態1にかかるデータ可逆伸張方法の処理の流れを示すフローチャートである。前提として、データ可逆伸張装置200に入力される可逆圧縮済みNビットデータ列D2のうち、第1番目から第m番目までのデータ列については、予め可逆伸張部50により可逆伸張され、バッファ60及び71~7m-1不図示に、入力順にm個のNビットデータ列が格納済みであるものとする。このとき、可逆伸張部50は、入力された可逆圧縮済みのデータ列D2に対して可逆伸張し、復元データ列を出力するS21。そして、復元データ列を第1のバッファ60に格納するS22。続いて、後処理部80は、後段のバッファ71~7mのうち1つここでは、第1のバッファは、バッファ7mと第2のバッファ60とに格納されたデータ列についてビットごとに排他的論理和し、後処理データ列を出力するS23。そして、出力された後処理データ列を順次、後段のバッファ71~7mに格納するS24。以上のことから、Nビットデータ列D1は、データ可逆圧縮装置100により可逆圧縮済みNビットデータ列D2に変換されたが、データ可逆伸張装置200を用いて、元のNビットデータ列D1に復元することができる。このように、本発明の実施の形態1にかかるデータ可逆圧縮装置及び方法では、前処理において簡易な排他的論理和を取ることで、可逆圧縮対象のデータ列の変化の度合いを単純な規則性を持ったものに変換するものである。そのため、本来、既存の可逆圧縮手法によりパターンマッチングでは検出することが困難であるデータ列の複雑な規則性を持ったパターンについても、排他的論理により単純な規則性を持ったパターンに変換される場合があり、可逆圧縮手法の本来の高い圧縮率を発揮することができる。特に、前処理においては、圧縮対象が画像データであるか等のデータの種別の判別をすることなく、処理の負荷の低い排他的論理和を用いているため、データ可逆圧縮装置では、全体の処理速度への影響は無視できる。それ故、可逆圧縮対象のデータ列がランダムなパターンであった場合、必ずしも単純な規則性を持ったパターンに変換できないとしても、前処理によるデータ可逆圧縮装置全体のパフォーマンスの低下は少ない。また、可逆圧縮対象のデータ列が元々単純な規則性を持ったパターンであった場合についても、排他的論理和の前処理により同様にパターンが維持されるため、やはり、前処理によるデータ可逆圧縮装置全体のパフォーマンスの低下は少ない。また、本発明の実施の形態1にかかるデータ可逆伸張装置及び方法では、後処理において、簡易な排他的論理和を取り、排他的論理和後の後処理データ列を用いて、後続の可逆伸張済みデータ列との排他的論理和を取ることで、正確にデータ列を復元することができる。このときも、後処理が排他的論理和であるため、データ可逆伸張装置全体への処理負荷の影響は少なく、パフォーマンスの低下は少ない。以上のことから、本発明の実施の形態1により、データの可逆圧縮又は可逆伸張を行う際の処理速度を落とすことなく、圧縮率を維持することができる。<発明の実施の形態2>上述した実施の形態1にかかるデータ可逆圧縮装置100及びデータ可逆伸張装置200では、排他的論理和を取る位置、すなわちmの値が静的に固定されている。しかしながら、Nビットデータ列D1のデータ内容又はパターンによっては、必ずしも最適な圧縮率となるとは限らない。そこで、本発明の実施の形態2では、実施の形態1に改良を加え、mの値を動的に決定することで、より圧縮率を高めるためのデータ可逆圧縮装置100a及びデータ可逆伸張装置200aについて説明する。尚、以下の図5及び図7においては、ビット単位のFFを省略しているが、実施の形態1と同様に、前後のバッファ間でビット単位に対応付けて接続され、同一のバッファ内のFF同士は接続されていないものとする。図5は、本発明の実施の形態2にかかるデータ可逆圧縮装置100aの構成を示すブロック図である。データ可逆圧縮装置100aは、外部から連続してNビットデータ列D1を入力し、所定の可逆圧縮処理を行い、可逆圧縮済みNビットデータ列D2aとして出力する。データ可逆圧縮装置100aは、バッファ10、バッファ21、22、、2mと、前処理部30aと、可逆圧縮部40aとを備える。バッファ10及び21~2mは、図1と同様の構成である。但し、バッファ10は、各ビットのそれぞれがm本の信号線に分岐して前処理部30aへ接続されている。また、バッファ21~2mは、各ビットのそれぞれが前処理部30aへ接続されている。前処理部30aは、第1のバッファ10の後段に直列に接続される複数の後段バッファ21~2mに格納された各データ列と、第1のバッファ10に格納された第1のデータ列との排他的論理和の結果に対して可逆圧縮部40aにより可逆圧縮した場合の圧縮率の予測結果を算出する。そして、前処理部30aは、予測結果に基づいて複数の後段バッファ21~2mのうち1つを第2のバッファとして選択する。続いて、前処理部30aは、選択した第2のバッファと第1のバッファ10とに格納された各データ列についての排他的論理和の結果を第1の前処理データ列とし、選択したバッファの位置情報をさらに可逆圧縮部40aへ出力する。具体的には、前処理部30aは、Nビット排他的論理和31、32、、3mと、セレクタ30a1と、パターンマッチング部30a2とを備える。Nビット排他的論理和31~3mは、それぞれn個の1ビット排他的論理和を有する回路である。そして、各1ビット排他的論理和は、対応するビット同士の排他的論理和を算出する。例えば、Nビット排他的論理和31は、バッファ10とバッファ21とのビット単位の排他的論理和を算出する。同様に、Nビット排他的論理和32はバッファ10とバッファ22、、Nビット排他的論理和3mは、バッファ10とバッファ2mとのビット単位の排他的論理和を算出する。パターンマッチング部30a2は、Nビット排他的論理和31~3mのそれぞれの結果について、所定の可逆圧縮を行った場合のパターンマッチング処理を行う。そして、パターンマッチング部30a2は、Nビット排他的論理和31~3mの各結果のうち最も圧縮率が高くなる結果がいずれであるかを判定し、判定結果を選択制御信号としてセレクタ30a1へ出力する。併せて、パターンマッチング部30a2は、当該選択制御信号を可逆圧縮部40aへ出力する。ここで、選択制御信号は、Nビット排他的論理和31~3mの結果のいずれかを選択させるものである。言い換えると、選択制御信号は、バッファ10に格納されたデータ列と排他的論理和をとるべきデータ列の位置又は当該データ列が格納されたバッファの位置を示す位置情報であるということができる。セレクタ30a1は、パターンマッチング部30a2からの選択制御信号に基づいて、Nビット排他的論理和31~3mの結果のいずれかを選択して、選択した結果を前処理データ列として可逆圧縮部40aへ出力する。可逆圧縮部40aは、パターンマッチング部30a2から出力された位置情報を含めて、セレクタ30a1から出力された前処理データ列に対して所定の可逆圧縮処理を行う。そして、可逆圧縮部40aは、当該可逆圧縮処理の結果を可逆圧縮済みNビットデータ列D2aとして出力する。尚、所定の可逆圧縮処理自体は、上述した可逆圧縮部40と同様で構わない。但し、可逆圧縮部40aは、例えば、前処理データ列の先頭等の所定の位置に、上述した位置情報を含めて可逆圧縮対象のデータ列とするものとする。または、可逆圧縮部40aは、当該位置情報と直前の位置情報との変更有無を示す情報をさらに含め、変更有の場合のみに当該位置情報を可逆圧縮対象のデータ列とするようにしてもよい。これにより、可逆圧縮対象のデータ列の増加を抑えることができる。尚、上述したパターンマッチング部30a2は、説明の便宜上、前処理部30aが内蔵するものとしたが、可逆圧縮部40aにおいて可逆圧縮処理のために実行されるパターンマッチング処理を行う構成要素を流用するものであっても構わない。図6は、本発明の実施の形態2にかかるデータ可逆圧縮方法の処理の流れを示すフローチャートである。まず、データ可逆圧縮装置100aは、入力されるm1個のNビットデータ列D1を順次、バッファ10及び21~2mに格納するS31。次に、前処理部30aは、第1のバッファ10と後段バッファ21~2mとのm個の組合せについて、格納されたデータ列同士をビットごとに排他的論理和し、m個の前処理データ列を生成するS32。具体的には、Nビット排他的論理和31は、バッファ10とバッファ21との組合せを対象とし、同様に、Nビット排他的論理和32は、バッファ10とバッファ22との組合せ、Nビット排他的論理和3mは、バッファ10とバッファ2mとの組合せをそれぞれ対象とする。そして、Nビット排他的論理和31~3mは、排他的論理和の結果として、それぞれNビットの前処理データ列をパターンマッチング部30a2及びセレクタ30a1へ出力する。そして、前処理部30aは、各前処理データ列について、最も圧縮率の高いデータ列を特定するS33。これに伴い、前処理部30aは、選択すべきバッファの位置情報を出力する。このとき、パターンマッチング部30a2は、各前処理データ列とパターンマッチングを行い、可逆圧縮をした場合にいずれの前処理データ列の圧縮率が最も高くなるかを判定する。そして、パターンマッチング部30a2は、前処理データ列を出力したNビット排他的論理和31~3mの位置又は当該Nビット排他的論理和に接続されたバッファ21~2mの位置を示す位置情報を選択制御信号として、セレクタ30a1及び可逆圧縮部40aへ出力する。続いて、前処理部30aは、特定された前処理データ列を選択して出力するS34。すなわち、セレクタ30a1は、選択制御信号に基づいて前処理データ列を選択して、可逆圧縮部40aへ出力する。その後、可逆圧縮部40aは、選択された前処理データ列と位置情報を含めて可逆圧縮してS35、可逆圧縮済みNビットデータ列D2aとして出力する。このように、本発明の実施の形態2にかかるデータ可逆圧縮装置100aは、複数段ある後段バッファ21~2mのどの位置からフィードバックをかけて排他的論理和をとるかを、パターンマッチング部30a2により決定し、セレクタ30a1により選択する。これにより、Nビットデータ列D1のデータ内容又はパターンに応じて、最適な圧縮率を実現することができる。図7は、本発明の実施の形態2にかかるデータ可逆伸張装置200aの構成を示すブロック図である。データ可逆伸張装置200aは、外部から連続して所定の可逆圧縮が行われた可逆圧縮済みNビットデータ列D2aを入力し、所定の可逆伸張処理を行い、Nビットデータ列D1として出力する。ここで、データ可逆伸張装置200aの前提となる所定の可逆圧縮とは、上述したデータ可逆圧縮装置100aによる可逆圧縮である。そして、所定の可逆伸張処理は、当該可逆圧縮処理に対応するものとする。そのため、可逆伸張部50aにおける可逆伸張処理は、可逆圧縮部40aに対応したものである。つまり、可逆圧縮済みNビットデータ列D2aには、上述した位置情報が含まれる。データ可逆伸張装置200aは、可逆伸張部50aと、バッファ60と、バッファ71~7mと、後処理部80aとを備える。可逆伸張部50aは、入力される可逆圧縮済みNビットデータ列D2aに対して、所定の可逆伸張処理を行い、復元データ列としてバッファ60へ出力する。併せて、可逆伸張部50aは、可逆伸張を行った際に、可逆圧縮済みNビットデータ列D2aに含まれる位置情報を後処理部80aへ出力する。バッファ60及び71~7mは、図3と同様の構成である。但し、バッファ60は、各ビットのそれぞれがm本の信号線に分岐して後処理部80aへ接続されている。また、バッファ71~7mは、各ビットのそれぞれが後処理部80aへ接続されている。後処理部80aは、可逆伸張部50aから出力された位置情報に基づき、複数の後段バッファ71~7mのうち1つを第1のバッファとして選択する。そして、後処理部80aは、選択した第1のバッファと第2のバッファ60とに格納された各データ列についての排他的論理和の結果を第1の後処理データ列として出力する。これにより、データ可逆伸張装置200aは、データ可逆圧縮装置100aによる前処理及び可逆圧縮と逆の処理を行うため、データ可逆圧縮装置100aの入力前のNビットデータ列D1へ復元することができる。図8は、本発明の実施の形態2にかかるデータ可逆伸張方法の処理の流れを示すフローチャートである。まず、データ可逆伸張装置200aは、入力された可逆圧縮済みNビットデータ列D2に対して可逆伸張し、復元データ列と位置情報とを出力するS41。具体的には、可逆伸張部50aは、復元データ列をバッファ60へ出力し、位置情報を後処理部80aのセレクタ80a1へ出力する。次に、データ可逆伸張装置200aは、復元データ列を第1のバッファ60に格納するS42。そして、後処理部80aは、第1のバッファ60と後段バッファ71~7mとのm個の組合せについて、格納されたデータ列同士をビットごとに排他的論理和し、m個の後処理データ列を生成するS43。具体的には、Nビット排他的論理和81は、バッファ60とバッファ71との組合せを対象とし、同様に、Nビット排他的論理和82は、バッファ60とバッファ72との組合せ、Nビット排他的論理和8mは、バッファ60とバッファ7mとの組合せをそれぞれ対象とする。そして、Nビット排他的論理和81~8mは、排他的論理和の結果として、それぞれNビットの後処理データ列をセレクタ80a1へ出力する。続いて、後処理部80aは、可逆伸張部50aから出力された位置情報に基づいて、m個の後処理データ列のうち1つを選択して出力するS44。その後、データ可逆伸張装置200aは、出力された後処理データ列を順次、後段バッファ71~7mに格納するS45。このように、本発明の実施の形態2にかかるデータ可逆伸張装置200aは、データ可逆圧縮装置100aにより排他的論理和の対象とするバッファ位置を動的に選択された場合に、正確に元のデータ列へ復元することができる。<発明の実施の形態3>上述した実施の形態1にかかるデータ可逆圧縮装置100及びデータ可逆伸張装置200では、前処理として排他的論理和を1回取るものであった。しかしながら、Nビットデータ列D1のデータ内容又はパターンによっては、必ずしも1回の排他的論理和により、単純な規則性を持ったパターンに変換されるとは限らない。そこで、本発明の実施の形態3では、実施の形態1に改良を加え、可逆圧縮処理の前処理における排他的論理和を2回以上行うものである。これにより、より単純な規則性を持ったパターンに変換し、より圧縮率を高めることができる。そして、以下では、説明の便宜のため、排他的論理和を2回行うデータ可逆圧縮装置100b及びデータ可逆伸張装置200bについて説明する。尚、以下の図9及び図11においては、ビット単位のFFを省略しているが、実施の形態1と同様に、前後のバッファ間でビット単位に対応付けて接続され、同一のバッファ内のFF同士は接続されていないものとする。また、以下のその他の説明において、上述したものと同等の構成については、詳細な説明を省略する。図9は、本発明の実施の形態3にかかるデータ可逆圧縮装置100bの構成を示すブロック図である。データ可逆圧縮装置100bは、外部から連続してNビットデータ列D1を入力し、所定の可逆圧縮処理を行い、可逆圧縮済みNビットデータ列D2bとして出力する。ここで、所定の可逆圧縮処理としては、上述した実施の形態1にかかる前処理を2回繰り返し、その後、可逆圧縮処理を行うものとする。データ可逆圧縮装置100bは、バッファ110、111、、11iと、前処理部30bと、バッファ120、121、、12jと、前処理部30cと、可逆圧縮部40とを備える。バッファ110~11i並びにバッファ120~12jは、それぞれ上述したバッファ10及び21~2mと同等のものである。また、前処理部30b及び30cは、それぞれ上述した前処理部30と同等のものである。尚、i及びjは1以上の整数であり、iとjとは異なる値であってもよい。ここで、バッファ110~11iには、i1個のデータ列が格納される。そして、前処理部30bは、バッファ110及び11iに格納されたデータ列について、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの前処理データ列として出力する。また、バッファ120~12jには、前処理部30bから出力されるj1個の前処理データ列が格納される。そして、前処理部30cは、バッファ120及び12jに格納されたデータ列について、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの前処理データ列として出力する。つまり、バッファ120及び12jには、それぞれ1回の排他的論理和の結果である前処理データ列が格納されており、前処理部30cは、前処理データ列同士について2回目の排他的論理和を算出する。これにより、Nビットデータ列D1の変化の度合いをより近付けることができる。そして、可逆圧縮部40は、前処理部30cから出力された前処理データ列に対して所定の可逆圧縮処理を行い、当該可逆圧縮処理の結果を可逆圧縮済みNビットデータ列D2bとして出力する。図10は、本発明の実施の形態3にかかるデータ可逆圧縮方法の処理の流れを示すフローチャートである。まず、データ可逆圧縮装置100bは、入力されたNビットデータ列D1に対して前処理を行い、前処理データ列を生成するS51。ここでは、前処理部30bは、バッファ110及び11iに格納されたデータ列に対して前処理を行い、生成した前処理データ列をバッファ120へ出力する。次に、データ可逆圧縮装置100bは、前処理データ列に対してさらに前処理を行い、前処理データ列として出力するS52。ここでは、前処理部30cは、バッファ120及び12jに格納されたデータ列に対して前処理を行い、生成した前処理データ列を可逆圧縮部40に格納する。その後、可逆圧縮部40は、前処理データ列に対して可逆圧縮S53し、可逆圧縮済みNビットデータ列D2bとして出力する。尚、本発明の実施の形態3にかかる可逆圧縮処理は、次のように言い換えることもできる。まず、前処理部30bは、第1のバッファ110に格納された第1のデータ列と第2のバッファ11iに格納された第2のデータ列とから第1の前処理データ列を生成する。その結果、バッファ120に第1の前処理データ列が格納される。次に、第1のバッファ110に第1のデータ列の後続の第3のデータ列が格納される。このとき、第2のバッファ11iには、第3のデータ列以前に入力された第4のデータ列が格納される。尚、第4のデータ列は、第1のデータ列であってもよい。そして、前処理部30bは、第1のバッファ110に格納された第3のデータ列と第2のバッファ11iに格納された第4のデータ列とから第2の前処理データ列を生成する。その結果、バッファ120に第2の前処理データ列が格納される。このとき、バッファ12jには、第1の前処理データ列が格納される。その後、前処理部30cは、バッファ120に格納された第2の前処理データ列とバッファ12jに格納された第1の前処理データ列とからさらに、前処理データ列を生成する。当該生成された前処理データ列を可逆圧縮部40へ出力する。このように、本発明の実施の形態3では、可逆圧縮処理の前処理における排他的論理和を2回以上行うことで、より単純な規則性を持ったパターンに変換し、より圧縮率を高めることができる。図11は、本発明の実施の形態3にかかるデータ可逆伸張装置200bの構成を示すブロック図である。データ可逆伸張装置200bは、外部から連続して所定の可逆圧縮が行われた可逆圧縮済みNビットデータ列D2bを入力し、所定の可逆伸張処理を行い、Nビットデータ列D1として出力する。ここで、データ可逆伸張装置200bの前提となる所定の可逆圧縮とは、上述したデータ可逆圧縮装置100bによる可逆圧縮である。データ可逆伸張装置200bは、可逆伸張部50と、バッファ611と、後処理部80bと、バッファ621~62jと、後処理部80cと、バッファ631~63iとを備える。バッファ611は、上述したバッファ60と同等のものである。バッファ621~62jは、上述したバッファ120~12jに対応し、特にバッファの個数はj個で同数である。同様に、バッファ631~63iは、上述したバッファ110~11iに対応し、特にバッファの個数はi個で同数である。また、後処理部80b及び80cは、それぞれ上述した後処理部80と同等のものである。ここで、バッファ611には、可逆伸張済みの復元データ列が格納され、バッファ621~62jには、j個の後処理データ列が格納される。そして、後処理部80bは、バッファ611に格納された復元データ列と、バッファ62jに格納された後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの後処理データ列として出力する。また、バッファ631~63iには、i個の後処理データ列が格納される。そして、後処理部80cは、バッファ62jに格納された後処理データ列と、バッファ63iに格納された後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットのNビットデータ列D1として出力する。つまり、後処理部80bは、可逆伸張済みであるが排他的論理和前の復元データ列と、可逆伸張済みかつ1回の排他的論理和の結果である後処理データ列との排他的論理和を算出する。これにより、図9のバッファ120~12jに格納された前処理データ列と同等の内容に復元される。そして、後処理部80cは、1回の排他的論理和済みの後処理データ列と2回の排他的論理和済みの後処理データ列との排他的論理和を算出する。これにより、図9のバッファ110~11iに格納された前処理以前のデータ列と同等の内容に復元される。図12は、本発明の実施の形態3にかかるデータ可逆伸張方法の処理の流れを示すフローチャートである。まず、データ可逆伸張装置200bは、入力された可逆圧縮済みNビットデータ列D2bに対して可逆伸張し、復元データ列を出力するS61。これにより、バッファ611に復元データ列が格納される。次に、データ可逆伸張装置200bは、復元データ列に対して後処理を行い、後処理データ列を生成するS62。このとき、後処理部80bは、1回の排他的論理和済みの後処理データ列と排他的論理和前の復元データ列との排他的論理和を算出する。その後、データ可逆伸張装置200bは、後処理データ列に対してさらに後処理を行い、後処理データ列として出力するS63。このとき、後処理部80cは、1回の排他的論理和済みの後処理データ列と2回の排他的論理和済みの後処理データ列との排他的論理和を算出する。これにより、入力前のデータ列に正確に復元することができる。尚、本発明の実施の形態3では、排他的論理和の回数を3回以上とすることもできる。このように、データ列が複雑な規則性少しずつ違うデータの並びを有する場合に、複数回の排他的論理和により繰り返し変換することで、変化の度合いを近付けることができ、より単純な規則性をもったパターンとすることができる。このような前処理を行ったデータ列に対して可逆圧縮を行うことで、より圧縮率を高めることができる。<その他の発明の実施の形態>モバイル機器などでは、ハイバネーションによりに主記憶メモリRAMの内容を不揮発メモリに全退避することがある。このとき、揮発性メモリに比べて、不揮発メモリへのアクセス特に書き込みには、時間を要する。そのため,できるだけデータ内容を可逆圧縮する必要がある。汎用の可逆圧縮手法では、入力系列中の同一パターンの繰り返しを検出することにより圧縮を行う。そのため、同一パターンの繰り返しをなるべく短周期で頻繁に発生させることで、既存の可逆圧縮手法における圧縮率を向上させることができる。ここで、同一パターンの繰り返しとは、例えば、00、00、00、00、00、00のような同一の値の連続や、01、02、03、01、02、03のようなものを指す。そのため、このような同一パターンの繰り返しが多く出現する場合、既存の可逆圧縮手法により、高い圧縮率を達成できる。しかしながら、その他の規則性については発見できない。例えば、値がインクリメントするような場合、圧縮の効果は低い。また、圧縮アルゴリズム中に多数の規則性のパターンを組み込み、パターンマッチングする方法も考えられるが、処理が大幅に複雑化かつ低速化するので、実用的ではない。ここで、主記憶に格納されている内容は,主にプログラムコード領域、プログラムデータ領域、ヒープ領域、未使用領域などが混在している。このうち、プログラムコード領域はランダム値に近いので、圧縮の効果が低い。また、未使用領域については、00やFF等の値であることが多く、圧縮の効果が高い。そして、プログラムデータ領域やヒープ領域については、アドレス値や文字コードのテーブルなどがあり、全く同じデータの繰り返しではないが類似性の高い繰り返しパターンが頻発する。例えば、プログラムデータ領域のアドレス値は、2バイトで1アドレスを構成する場合には、41、50、41、51、41、52、41、53、というようなデータ列となる。ここで、1バイト単位でパターンマッチングを試みると、単純な規則性でないため、高い圧縮率を期待できない。しかし、1バイト置きに抽出すると、41、41、41、41と、50、51、52、53となり、単純な規則性を見出せる。そこで、本発明の実施の形態では、可逆圧縮を行う前処理として、所定の語単位に排他的論理和を取る。例えば、実施の形態1にかかるm=2とすると、41、50、41、51、41、52、41、53、については、00、00、00、01、00、03、00、01、となり、単純な規則性に変換される。このため、既存の可逆圧縮手法により前処理なく可逆圧縮した場合と比べて、同一パターンの繰り返しを検出し易くなり圧縮率を高めることができる。すなわち、実施の形態1にかかる前処理部30は、第1のバッファの2以上後段に直列に接続されたバッファを第2のバッファとして、排他的論理和を算出することが望ましい。言い換えると、図1のバッファ21~2mは、2以上であることが望ましい。同様に、実施の形態1にかかる後処理部80は、後処理部80の2以上後段に直列に接続されたバッファを第2のバッファとして、排他的論理和を算出することが望ましい。言い換えると、図3のバッファ71~7mは、2以上であることが望ましい。また、本発明を未使用領域に適用した場合、00、FF、00、FF、00、FF、のような複数値のランが00、00、00、00、00、といった単一値のランに置換されるため、圧縮率が若干向上する。尚、プログラムコード領域に対しては、圧縮の効果は低いが、前処理をハードウェアとして実現した場合には、前処理の負荷が無視できるため、スループットの低下にはならない。そのため、本発明の実施の形態1~3において、入力されるNビットのデータ列が、主記憶内のプログラムデータ領域又はヒープ領域に格納された値であることにより、より効果を奏する。本発明によれば、圧縮処理の速度を低下させることなく、計算機の主記憶のデータ圧縮率を、平均30~40向上させることが可能になる。また、上述したプログラムデータ領域に対して実施の形態3を適用する場合、前処理として、隣接する語とのハミング距離XORを現在の語とするスキャン処理を二度以上繰り返す。つまり、変化の度合いを近付けることができる。このように、二回以上排他的論理和を取ることで,同一パターンの発生頻度を上げる効果を期待できる。また、本発明にかかる可逆圧縮処理及び可逆伸張処理を、コンピュータに実行させるデータ可逆圧縮プログラム及びデータ可逆伸張プログラムとして実現してもよい。その場合、データ可逆圧縮装置は、CPU、メモリ、ハードディスク等を備えた汎用的なコンピュータを用いることができる。そして、ハードディスクにデータ可逆圧縮プログラム及びデータ可逆伸張プログラムを格納する。ここで、CPUがハードディスクからメモリへデータ可逆圧縮プログラム及びデータ可逆伸張プログラムを読み出し、実行することで、本発明にかかる可逆圧縮処理及び可逆伸張処理を実現することができる。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体nontransitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROMReadOnlyMemory、CD-R、CD-RW、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMrandomaccessmemoryを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumを用いてコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。付記1NビットNは2以上の整数の領域を有し、入力されるNビットの第1のデータ列をビット単位に各領域へ格納する第1のバッファと、前記第1のバッファの各領域に対応付けられたNビットの領域を有し、前記第1のバッファの1以上後段に接続され、前記第1のバッファへ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットと対応する領域へ格納する第2のバッファと、前記第1のバッファに格納された前記第1のデータ列と、前記第2のバッファに格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力する前処理部と、前記前処理部から出力された第1の前処理データ列に対して可逆圧縮を行う可逆圧縮部と、を備えるデータ可逆圧縮装置。付記2前記前処理部は、前記第1のバッファの2以上後段に直列に接続されたバッファを前記第2のバッファとして、前記排他的論理和を算出することを特徴とする付記1に記載のデータ可逆圧縮装置。付記3前記前処理部は、前記第1のバッファの後段に直列に接続される複数の後段バッファに格納された各データ列と、前記第1のバッファに格納された第1のデータ列との排他的論理和の結果に対して前記可逆圧縮部により可逆圧縮した場合の圧縮率の予測結果を算出し、前記予測結果に基づいて前記複数の後段バッファのうち1つを前記第2のバッファとして選択し、前記選択した第2のバッファと前記第1のバッファとに格納された各データ列についての前記排他的論理和の結果を前記第1の前処理データ列とし、前記選択したバッファの位置情報をさらに前記可逆圧縮部へ出力し、前記可逆圧縮部は、前記位置情報を含めて前記第1の前処理データ列に対して可逆圧縮を行うことを特徴とする付記1に記載のデータ可逆圧縮装置。付記4前記第2のバッファは、前記第1のバッファに前記第1のデータ列の後続の第3のデータ列が格納された際に、前記第3のデータ列以前に入力された第4のデータ列を格納し、前記前処理部は、前記第1のバッファに格納された前記第3のデータ列と前記第2のバッファに格納された前記第4のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の前処理データ列とし、前記第1の前処理データ列と、当該第2の前処理データ列とから対応するビットごとに排他的論理和を算出し、前記第1の前処理データ列として前記可逆圧縮部へ出力することを特徴とする付記1乃至3のいずれか1項に記載のデータ可逆圧縮装置。付記5前記入力されるNビットのデータ列は、主記憶内のプログラムデータ領域又はヒープ領域に格納された値であることを特徴とする付記1乃至4のいずれか1項に記載のデータ可逆圧縮装置。付記6NビットNは2以上の整数の領域を有する第1のバッファに対して、入力されるNビットの第1のデータ列をビット単位に格納し、前記第1のバッファの1以上後段に接続され、前記第1のバッファの各領域に対応付けられたNビットの領域を有する第2のバッファに対して、前記第1のバッファへ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットに対応する領域へ格納し、前記第1のバッファに格納された前記第1のデータ列と、前記第2のバッファに格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として出力し、前記出力された第1の前処理データ列に対して可逆圧縮を行うデータ可逆圧縮方法。付記7前記第1のバッファの2以上後段に直列に接続されたバッファを前記第2のバッファとして、前記排他的論理和を算出することを特徴とする付記6に記載のデータ可逆圧縮方法。付記8前記第1のバッファの後段に直列に接続される複数の後段バッファに格納された各データ列と、前記第1のバッファに格納された第1のデータ列との排他的論理和の結果に対して前記可逆圧縮した場合の圧縮率の予測結果を算出し、前記予測結果に基づいて前記複数の後段バッファのうち1つを前記第2のバッファとして選択し、前記選択した第2のバッファと前記第1のバッファとに格納された各データ列についての前記排他的論理和の結果を前記第1の前処理データ列とし、前記選択したバッファの位置情報をさらに出力し、前記出力された位置情報を含めて前記第1の前処理データ列に対して可逆圧縮を行うことを特徴とする付記6に記載のデータ可逆圧縮方法。付記9前記第1のバッファに対して、前記第1のデータ列の後続に入力される第3のデータ列をビット単位に格納し、前記第2のバッファに対して、前記第1のバッファへ前記第3のデータ列が格納された際に、前記第3のデータ列以前に入力された第4のデータ列をビット単位に格納し、前記第1のバッファに格納された前記第3のデータ列と、前記第2のバッファに格納された前記第4のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の前処理データ列とし、前記第1の前処理データ列と、当該第2の前処理データ列とから対応するビットごとに排他的論理和を算出し、前記第1の前処理データ列として出力することを特徴とする付記6乃至8のいずれか1項に記載のデータ可逆圧縮方法。付記10前記入力されるNビットの各データ列は、主記憶内のプログラムデータ領域又はヒープ領域に格納された値であることを特徴とする付記6乃至9のいずれか1項に記載のデータ可逆圧縮方法。付記11NビットNは2以上の整数の領域を有する第1の記憶部に対して、入力されるNビットの第1のデータ列をビット単位に格納し、前記第1の記憶部の各領域に対応付けられたNビットの領域を有する第2の記憶部に対して、前記第1の記憶部へ前記第1のデータ列が格納された際に、当該第1のデータ列以前に入力された第2のデータ列について、当該第1のデータ列の各ビットに対応する領域へ格納し、前記第1の記憶部に格納された前記第1のデータ列と、前記第2の記憶部に格納された前記第2のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の前処理データ列として生成し、前記生成された第1の前処理データ列に対して可逆圧縮を行う処理をコンピュータに実行させるデータ可逆圧縮プログラム。付記12前記第1のデータ列の2以上前に入力されたデータ列を前記第2のデータ列としてビット単位に前記第2の記憶部に格納することを特徴とする付記11に記載のデータ可逆圧縮プログラム。付記13前記第1のデータ列以前に入力された複数のデータ列と、前記第1のデータ列との排他的論理和の結果に対して前記可逆圧縮した場合の圧縮率の予測結果を算出し、前記予測結果に基づいて前記複数のデータ列のうち1つを前記第2のデータ列として選択し、前記選択した第2のデータ列と前記第1のデータ列についての前記排他的論理和の結果を前記第1の前処理データ列として生成し、前記選択した第2のデータ列が入力された順序情報を含めて前記第1の前処理データ列に対して可逆圧縮を行うことを特徴とする付記11に記載のデータ可逆圧縮プログラム。付記14前記第1の記憶部に対して、前記第1のデータ列の後続に入力される第3のデータ列をビット単位に格納し、前記第2の記憶部に対して、前記第1の記憶部へ前記第3のデータ列が格納された際に、前記第3のデータ列以前に入力された第4のデータ列をビット単位に格納し、前記第1の記憶部に格納された前記第3のデータ列と、前記第2の記憶部に格納された前記第4のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の前処理データ列とし、前記第1の前処理データ列と、当該第2の前処理データ列とから対応するビットごとに排他的論理和を算出し、前記第1の前処理データ列として生成することを特徴とする付記11乃至13のいずれか1項に記載のデータ可逆圧縮プログラム。付記15前記入力されるNビットの各データ列は、主記憶内のプログラムデータ領域又はヒープ領域に格納された値であることを特徴とする付記11乃至14のいずれか1項に記載のデータ可逆圧縮プログラム。付記16NビットNは2以上の整数の領域を有し、Nビットの第1のデータ列をビット単位に各領域へ格納する第1のバッファと、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、当該第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力する可逆伸張部と、前記第1のバッファの各領域に対応付けられたNビットの領域を有し、前記第1の復元データ列をビット単位に各領域へ格納する第2のバッファと、前記第2のバッファに格納された前記第1の復元データ列と、前記第1のバッファに格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力する後処理部と、を備え、前記第1のバッファは、前記後処理部から出力される前記第1の後処理データ列を格納し、前記可逆伸張部は、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、当該第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2のバッファへ出力し、前記後処理部は、前記第2のバッファに格納された前記第2の復元データ列と、前記第1のバッファに格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力することを特徴とするデータ可逆伸張装置。付記17前記後処理部は、前記後処理部の2以上後段に直列に接続されたバッファを前記第2のバッファとして、前記排他的論理和を算出することを特徴とする付記16に記載のデータ可逆伸張装置。付記18前記所定の可逆圧縮が付記3に記載のデータ可逆圧縮装置による可逆圧縮であり、前記第3のデータ列に前記位置情報が含まれる場合に、前記可逆伸張部は、前記可逆伸張を行った際に、前記第3のデータ列に含まれる前記位置情報を前記後処理部へ出力し、前記データ可逆伸張装置は、前記後処理部の後段に直列に接続される複数の後段バッファを備え、前記後処理部は、前記可逆伸張部から出力された前記位置情報に基づき、前記複数の後段バッファのうち1つを前記第1のバッファとして選択し、前記選択した第1のバッファと前記第2のバッファとに格納された各データ列についての前記排他的論理和の結果を前記第1の後処理データ列として出力するを特徴とする付記16に記載のデータ可逆伸張装置。付記19前記後処理部は、前記所定の可逆圧縮が付記4に記載のデータ可逆圧縮装置による可逆圧縮である場合に、前記第1の後処理データ列と、前記第2の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第3の後処理データ列として出力することを特徴とする付記16乃至18のいずれか1項に記載のデータ可逆伸張装置。付記20NビットNは2以上の整数の領域を有する第1のバッファに対して、Nビットの第1のデータ列をビット単位に格納し、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、前記第2のデータ列に対して可逆伸張を行った第1の復元データ列を出力し、前記第1のバッファの各領域に対応付けられたNビットの領域を有する第2のバッファに対して、前記第1の復元データ列をビット単位に格納し、前記第2のバッファに格納された前記第1の復元データ列と、前記第1のバッファに格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力し、前記第1のバッファに対して、前記出力された第1の後処理データ列を格納し、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、前記第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2のバッファへ出力し、前記第2のバッファに格納された前記第2の復元データ列と、前記第1のバッファに格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力するデータ可逆伸張方法。付記21前記第1のデータ列は、前記第1の復元データ列の2以上前に可逆伸張されたデータ列であることを特徴とする付記20に記載のデータ可逆伸張方法。付記22前記排他的論理和の結果を格納する複数の後段バッファを備え、前記所定の可逆圧縮が付記8に記載のデータ可逆圧縮方法による可逆圧縮であり、前記第3のデータ列に前記位置情報が含まれる場合に、前記可逆伸張を行った際に、前記第3のデータ列に含まれる前記位置情報を出力し、前記出力された前記位置情報に基づき、前記複数の後段バッファのうち1つを前記第1のバッファとして選択し、前記選択した第1のバッファと前記第2のバッファとに格納された各データ列についての前記排他的論理和の結果を前記第1の後処理データ列として出力することを特徴とする付記20に記載のデータ可逆伸張方法。付記23前記所定の可逆圧縮が付記9に記載のデータ可逆圧縮方法による可逆圧縮である場合に、前記第1の後処理データ列と、前記第2の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第3の後処理データ列として出力することを特徴とする付記20乃至22のいずれか1項に記載のデータ可逆伸張方法。付記24NビットNは2以上の整数の領域を有する第1の記憶部に対して、Nビットの第1のデータ列をビット単位に格納し、前記第1のデータ列の後続のデータ列に対して所定の可逆圧縮が行われた第2のデータ列を入力し、前記第2のデータ列に対して可逆伸張を行った第1の復元データ列を生成し、前記第1の記憶部の各領域に対応付けられたNビットの領域を有する第2の記憶部に対して、前記第1の復元データ列をビット単位に格納し、前記第2の記憶部に格納された前記第1の復元データ列と、前記第1の記憶部に格納された前記第1のデータ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第1の後処理データ列として出力し、前記第1の記憶部に対して、前記出力された第1の後処理データ列を格納し、前記第2のデータ列の後続のデータ列に対して前記所定の可逆圧縮が行われた第3のデータ列を入力し、前記第3のデータ列に対して可逆伸張を行った第2の復元データ列を前記第2の記憶部へ出力し、前記第2の記憶部に格納された前記第2の復元データ列と、前記第1の記憶部に格納された前記第1の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第2の後処理データ列として出力する処理をコンピュータに実行させるデータ可逆伸張プログラム。付記25前記第1のデータ列は、前記第1の復元データ列の2以上前に可逆伸張されたデータ列であることを特徴とする付記24に記載のデータ可逆伸張プログラム。付記26前記排他的論理和の結果を格納する複数の後段記憶部を備え、前記所定の可逆圧縮が付記13に記載のデータ可逆圧縮プログラムによる可逆圧縮であり、前記第3のデータ列に前記位置情報が含まれる場合に、前記可逆伸張を行った際に、前記第3のデータ列に含まれる前記位置情報を取得し、前記取得された前記位置情報に基づき、前記複数の後段記憶部のうち1つを前記第1の記憶部として選択し、前記選択した第1の記憶部と前記第2の記憶部とに格納された各データ列についての前記排他的論理和の結果を前記第1の後処理データ列として出力することを特徴とする付記24に記載のデータ可逆伸張プログラム。付記27前記所定の可逆圧縮が付記14に記載のデータ可逆圧縮プログラムによる可逆圧縮である場合に、前記第1の後処理データ列と、前記第2の後処理データ列とについて、対応するビットごとに排他的論理和を算出し、当該算出したN個の排他的論理和の値をNビットの第3の後処理データ列として出力することを特徴とする付記24乃至26のいずれか1項に記載のデータ可逆伸張プログラム。以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。この出願は、2011年1月13日に出願された日本出願特願2011-004677を基礎とする優先権を主張し、その開示の全てをここに取り込む。"