JP5549402B2 - データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法 - Google Patents

データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法 Download PDF

Info

Publication number
JP5549402B2
JP5549402B2 JP2010135920A JP2010135920A JP5549402B2 JP 5549402 B2 JP5549402 B2 JP 5549402B2 JP 2010135920 A JP2010135920 A JP 2010135920A JP 2010135920 A JP2010135920 A JP 2010135920A JP 5549402 B2 JP5549402 B2 JP 5549402B2
Authority
JP
Japan
Prior art keywords
data
operand
instruction
code
opcode
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
Application number
JP2010135920A
Other languages
English (en)
Other versions
JP2012003375A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010135920A priority Critical patent/JP5549402B2/ja
Publication of JP2012003375A publication Critical patent/JP2012003375A/ja
Application granted granted Critical
Publication of JP5549402B2 publication Critical patent/JP5549402B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は,被圧縮データから圧縮データを生成するデータ圧縮処理,および圧縮データから元の被圧縮データを復元するデータ復元処理の技術に関する。
パーソナルコンピュータ,プログラム組込み機器等におけるアプリケーションのリッチ化に伴いデータ量の増加が問題となっている。電子的にデータを格納または通信するシステムにおいて,データの格納および通信の効率化が要求されている。
従来では,可逆データ圧縮技術を用いて,データのロスなしに符号化することにより,データ量を削減している。
従来手法の一例として,ハフマン符号,算術符号などのエントロピー符号化処理がある。エントロピー符号化処理では,データバッファから同じビットシンボル列の繰り返しを検索して,検出した繰り返しの部分を,その位置と一致長(一致しているビットシンボル列の長さ)を用いて符号化していた。繰り返し部分の検索は,コンピュータでの演算処理に向いた8ビット単位で行い,繰り返し部分が検出できなかった場合は,データバッファの8ビットシンボル(文字)をそのまま,またはその出現頻度に応じたエントロピー符号により符号化する。
図14は,従来手法の処理例を示す図である。
被圧縮データであるデータバッファ“compression_decompression”において,部分“decompression”が,先頭の“compress”を含んでいる。この繰り返し部分(compression)を,データバッファでのその位置とシンボル長を用いて,(0,8)という情報に変換することにより,全体としての情報量を圧縮している。
ところで,命令コードを含むアプリケーションプログラムは,被圧縮データとなる。
アプリケーションプログラムを圧縮する従来手法の具体例として,以下の2つの従来方法が知られている。
第1の従来手法は,圧縮対象のデータ(被圧縮データ)の構文解析を行って,命令の各構成要素のどの要素に相当するのかを示す情報(トークン・タイプ)を求め,被圧縮データから繰り返し部分を検索する際に,バイナリ値とトークン・タイプとが一致する部分を繰り返し部分と見なして符号化している。
また,第2の従来手法では,命令コードをオペコード部分とオペランド部分に分割し,予め用意した辞書を用いて,オペコードとオペランドと個別の辞書で別々に符号化している。
特開平8−69370号公報 特開2003−50696号公報
例えば,圧縮対象のデータ(被圧縮データ)がアプリケーションプログラムである場合において,被圧縮データに含まれる命令コードのバイナリ値をみていくと,図15に示すように,1命令の長さが16ビットのものと32ビットのものが混在していることがある。さらに,同一のビット長の命令コード(例えば,32ビットコード)であっても,命令によって,オペコードの長さ,オペランドの位置や内容(例えば,レジスタ数,即値の長さ等)が異なっている。
しかし,従来方法であるエントロピー符号化では,計算機処理しやすいように,オペコードもオペランドも区別することなく,ビット値にもとづいて一律に処理していたため,データ圧縮処理に命令セットの規則性を利用することができなかった。
例えば,8ビットのバイナリ値が同じ値であっても,それがオペコードの一部であったりオペランドの一部であったりすることがあるにもかかわらず一律に扱われていたため,被圧縮データ内で頻出するオペコードを効率よく圧縮することができなかった。
しかし,上記第1の従来手法では,構文解析処理の煩雑さや負荷に比べて,圧縮率を向上させる効果が薄いという問題があった。
また,上記第2の従来手法では,オペコードとオペランドを別々に圧縮するため,オペコードとオペランド間の相関情報を利用することができず,エントロピー符号化に比べて圧縮率低下に繋がるという問題があった。
本願発明の目的は,命令コードを含む被圧縮データのデータ圧縮処理において,処理負荷の増加を抑制しつつ,圧縮率を上げることができるデータ圧縮処理技術および,前記の処理技術による圧縮データを復元するデータ復元処理技術を提供することである。
本願において開示されるデータ圧縮プログラムは,データ記憶部を備えるコンピュータに,1)オペコードとオペランドからなる命令コードを複数含む被圧縮データの入力を受け,該被圧縮データのデータ列からビット値が一致する繰り返し部分を検出し,前記検出した繰り返し部分の一方の相対位置と一致長を求める処理ステップと,2)前記繰り返し部分の他方を,前記相対位置と前記一致長とを用いて符号化する処理ステップと,3)前記被圧縮データから前記符号化された繰り返し部分以外の部分に含まれる命令コードの区切り位置を分析する処理ステップと,4)前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応づけて示す命令パターン情報をもとに,前記区切り位置に従って区切られた命令コードを,ビット単位でオペコードとオペランドとに分離する処理ステップと,5)前記分離したオペコードとオペランドを,それぞれ符号化する処理ステップとを実行させるものである。
また,本願において開示されるデータ復元プログラムは,データ記憶部を備えたコンピュータに,データ列のビット値が一致する繰り返し部分と前記繰り返し部分以外の部分とを別の処理手順で圧縮された圧縮データ列を,復元する方法を実行させるプログラムであって,前記コンピュータに,1)前記圧縮データ列から,繰り返し部分の圧縮の有無を示す情報を復元する処理ステップと,2)前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の他方の圧縮の有を示す場合に,前記繰り返し部分の一方の相対位置と一致長とを復元する処理ステップと,3)前記相対位置が指定する位置から前記一致長が指定する長さの文字列を複写する処理ステップと,4)前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の無を示す場合に,前記圧縮データ列の前記繰り返し部分以外の部分に含まれる命令コードのオペコードとオペランドとを各々復元する処理ステップと,5)前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応づけて示す命令パターン情報をもとに,前記復元されたオペコードとオペランドとをビットごとに命令セットに従って配置する処理ステップとを実行させるものである。
さらに,本願において開示されるデータ圧縮方法は,コンピュータが実行する,上記データ圧縮プログラムにより実現される処理ステップを有する。
さらに,本願において開示されるデータ復元方法は,コンピュータが実行する,上記データ復元プログラムにより実現される処理ステップを有する。
上記したデータ圧縮プログラムによれば,コンピュータに,入力された被圧縮データのデータ列からビット値が一致する繰り返し部分を,エントロピー符号化などの既知の符号化で圧縮し,かつ,被圧縮データの繰り返し部分以外の残り部分については,命令コードのオペコードとオペランドに分けてそれぞれ符号化する方法を実行させることができる。
これにより,命令セットの規則性を利用して,被圧縮データに含まれる繰り返し部分以外の残り部分について,さらにオペコードとオペランドに分けて符号化することができ,従来手法に比べて圧縮率を上げることができる。
また,上記したデータ圧縮プログラムによれば,コンピュータに,被圧縮データ内の長い繰返し部分は一律に符号化し,繰り返し部分以外の部分の比較的短い単位での符号化においてのみオペコードとオペランドとを区別して符号化する方法を実行させることにより,符号化の処理速度を維持しつつ圧縮率を上げることができる。
本発明の一実施形態として,開示されるデータ圧縮プログラムおよび方法を実施するデータ圧縮装置の構成例を示す図である。 オペコード・オペランド符号化部およびオペコード・オペランド符号保持部の内部の構成例を示す図である。 命令パターン情報保持部が保持する命令パターン番号情報の例を示す図である。 データ圧縮装置の処理フロー例を示す図である。 命令コードでのビット値の設定例を示す図である。 区切り位置による命令コードの判別例を示す図である。 図4に示す処理フローのステップS18の処理のより詳細な処理フロー例を示す図である。 データ圧縮装置1によるデータ圧縮処理の例を示す図である。 本発明の一実施形態として,開示されるデータ復元プログラムおよび方法を実施するデータ復元装置の構成例を示す図である。 オペコード・オペランド復元部とオペコード・オペランド符号保持部の内部の構成例を示す図である。 データ復元装置の処理フロー例を示す図である。 図11に示す処理フローのステップS25の処理のより詳細な処理フロー例を示す図である。 命令パターン情報生成装置の処理フロー例を示す図である。 従来手法の処理例を示す図である。 命令セット中の命令コードの長さの混在例を示す図である。 データ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3を実施する代表的なハードウェア構成例を示す図である。
以下に,開示されるデータ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法を実施するための一実施形態を説明する。
図1は,本発明の一実施形態として,開示されるデータ圧縮プログラムおよび方法を実施するデータ圧縮装置のブロック構成例を示す図である。
データ圧縮装置1は,入力される被圧縮データを符号化して圧縮データを生成,出力する装置である。
データ圧縮装置1は,入力データ保持部10,一致検索部11,一致符号化部12,一致長・一致位置符号保持部13,区切り位置分析部14,分離部15,符号化部16,符号保持部17,圧縮データ保持部18,および命令パターン情報保持部19を備える。
入力データ保持部10は,データ圧縮装置1に入力される被圧縮データを保持する保持部である。
一致検索部11は,入力データ保持部10が保持する被圧縮データのデータ列を先頭から取り込んで,ビット値が一致する繰り返し部分を検出し,繰り返し部分の被圧縮データにおける相対位置を示す一致位置と,繰り返し部分の長さを示す一致長とを求める処理部である。一致検索部11は,被圧縮データから所定の長さの繰り返し部分を検出して一致位置と一致長とを求めた場合に「一致あり」を,繰り返し部分が検出されなかった場合に「一致なし」を出力する。
一致符号化部12は,「一致あり」を受けて,一致長・一致位置符号保持部13を参照して,一致長,一致位置を符号化する。符号化された一致長・一致位置は,圧縮データ保持部18に出力される。
一致長・一致位置符号保持部13は,一致位置および一致長と各符号との対応情報(符号表)を保持する保持部である。
区切り位置分析部14は,「一致なし」を受けて,被圧縮データの繰り返し部分以外の残り部分について,命令コードの区切り位置を分析する処理部である。なお,区切り位置分析処理の詳細は後述する。
分離部15は,命令パターン情報保持部19を参照して,命令コードの区切り位置にしたがって特定された命令コードを,オペコードとオペランドとに分離する処理部である。
符号化部16は,符号保持部17を参照して,被圧縮データの繰り返し部分以外の残り部分のデータ列から分離されたオペコードとオペランドとを別々に符号化する処理部である。符号化されたオペコード・オペランド等は圧縮データ保持部18に出力される。
符号保持部17は,被圧縮データに含まれる命令セットのオペコードおよびオペランドと各符号との対応情報(符号表)を保持する保持部である。
圧縮データ保持部18は,一致符号化部12の出力と,符号化部16との出力を合わせた圧縮データを保持する保持部である。
命令パターン情報保持部19は,被圧縮データに含まれる命令セットの各命令コードのオペコードとオペランドのビット単位の構成パターンを示す情報(命令パターン番号)を保持する保持部である。
図2は,符号化部16および符号保持部17の内部の構成例を示す図である。
符号化部16は,パターン番号分析部161,パターン番号・区切り位置符号化部162,オペコード符号化部163,オペランド符号化部164を有する。
符号保持部17は,パターン番号,区切り位置と各符号との対応情報(符号表)を保持するパターン番号・区切り位置符号保持部171,各オペコードと符号との対応を示す情報(符号表)を保持するオペコード符号保持部172,オペランド符号保持部173を有する。
また,オペランド符号保持部173は,各オペランド(各レジスタ)と符号との対応情報をそれぞれ保持するレジスタ1符号保持部1731,レジスタ2符号保持部1732等,各イミディエート値と符号との対応情報をそれぞれ保持する8bitイミディエート値符号保持部1733,11bitイミディエート値符号保持部1734等,およびレジスタリストと符号との対応情報を保持するレジスタリスト符号保持部1735を有する。
パターン番号分析部161は,命令パターン情報保持部19を参照して,命令コードのパターン番号を分析する。
パターン番号・区切り位置符号化部162は,パターン番号・区切り位置符号保持部171を参照して,パターン番号と,命令コードの区切り位置とを符号化する。
オペコード符号化部163は,オペコード符号保持部172を参照して,分離されたオペコードを符号化する。
オペランド符号化部164は,オペランド符号保持部173を参照して,分離されたオペランドを符号化する。
命令パターン情報保持部19は,データ圧縮装置1に入力される被圧縮データに表れる命令セットに含まれる命令コードのオペコードおよびオペランドの構成パターンを示す情報(命令パターン番号)を保持する保持部である。
図3は,命令パターン情報保持部19が保持する命令パターン情報(命令パターン番号)の例を示す図である。
命令パターン情報(命令パターン番号)には,一意の「パターン番号」,命令コードを示す「命令」,各命令コードのオペコードとオペランドの構成を示す「命令コード構成」が設定されている。
命令セットに含まれる命令コードのうち,オペコードとオペランドとのビット配列上の構成が同一のものには,同一のパターン番号が付与される。オペランドについては,オペコード以外のオペランドを全て同一のものとして扱ってもよく,または,イミディエート値,アドレス(レジスタ)の種類等を区分して扱ってもよい。
図3に示す命令パターン番号の命令セットでは,16ビットの命令コードと32ビットの命令コードが混在している。例えば,パターン番号“1,2,3”は,16ビットの命令コード,パターン番号“18,20”は,32ビットの命令コードであることを表す。
また,パターン番号“1”の命令=B(分岐)の場合に,命令コード構成のうち,第15〜第11番のビット列“11100”は,命令“B”のオペコードを示すシンボル列,第10番目〜0番目ビットの“imm11”はオペランドの11bitイミディエート値を表している。
以下に,データ圧縮装置1の処理の流れを説明する。
図4は,データ圧縮装置1の処理フロー例を示す図である。
データ圧縮装置1の入力データ保持部10は,被圧縮データの16ビット単位のデータ列(ストリーム)を入力する(ステップS10)。
一致検索部11は,入力されたデータ列にビット値が一致する所定の長さのシンボル列があるかを検出し(一致検索),一致を検出したシンボル列(繰り返し部分)の相対位置を示す一致位置と,その長さを示す一致長を出力する(ステップS11)。さらに,一致検索部11の判定で,データ列にN個のシンボル列以上で一致する箇所(繰り返し部分)があれば(ステップS12のY),ステップS13の処理へ進み,一致する箇所(繰り返し部分)がなければ(ステップS12のN),ステップS16の処理へ進む。
一致検索部11は,一致ありを示すフラグを符号化する(ステップS13)。
次に,一致符号化部12は,一致ありを受けて,一致長・一致位置符号保持部13を参照して,検出された繰り返し部分の一致長を符号化する(ステップS14)。さらに,一致符号化部12は,繰り返し部分の一致位置を符号化する(ステップS15)。
また,一致検索部11は,データ列にN個のシンボル列以上で繰り返し部分がなければ(ステップS12のN),一致なしを示すフラグを符号化する(ステップS16)。
区切り位置分析部14は,被圧縮データの繰り返し部分以外の残りの部分について,命令コードの区切りを判別する(ステップS17)。
分離部15は,命令パターン情報保持部19を参照して,残り部分の命令コードが該当するパターン番号の命令コード構成をもとに,命令コードをオペコードとオペランドとに分離する。さらに,符号化部16は,符号保持部17を参照して,分離されたオペコードとオペランドとをそれぞれ別に符号化する(ステップS18)。
データ圧縮装置1では,入力された被圧縮データがすべて圧縮処理されるまで(ステップS19のN),ステップS11〜S18の処理が繰り返され,被圧縮データがすべて圧縮処理された場合に(ステップS19のN),処理が終了して,圧縮データが出力される。
なお,ここで,命令によってオペコードとオペランドのビット配置およびオペランド数が異なるため,符号化部16は,まずパターン番号を符号化し,その後に,オペコードと各オペランドをそれぞれの統計量に応じて符号化を行うことが好ましい。
次に,図5および図6を用いて,ステップS17の命令コードの区切り位置の判別処理を,より詳細に説明する。
本例では,処理されるデータ列(16個のシンボル列)が,16ビット命令コードであるのか,32ビット命令コードの前半部分または後半部分であるのかを判別するために,命令コードの区切りを検出する。
図5は,命令コードでのビット値の設定例を示す図である。
図5(A)に示すように,被圧縮データが含む命令セットにおいて,16ビット命令コードの先頭5個のシンボル列のビット値が“00000”〜“11100”の範囲であり,図5(B)に示すように,32ビット命令コードの先頭5個のシンボル列のビット値が“11101”〜“11111”の範囲であるとする。
図6は,区切り位置による命令コードの判別例を示す図である。
図6に示すように,先行する(処理済みの)16個のシンボル列をシンボル列Xとし,現時点で処理されるシンボル列の位置(現位置)を先頭とみなす16個のシンボル列をシンボル列Yとする。
ここで,シンボル列Xの先頭5シンボル列のビット値が“00000”〜“11100”であれば,そのシンボル列Xは,図5(A)に示す16ビット命令コードを示すシンボル列A,または,図5(B)に示す32ビット命令コードの後半部分を示すシンボル列Cのいずれかであることがわかる。そして,現位置から始まるシンボル列Yは,16ビットまたは32ビットのいずれかの命令コードであっても,命令コードの先頭を含む部分であると判別できる。
また,シンボル列Xの先頭5シンボル列のビット値が“11101”〜“11111”であれば,そのシンボル列Xは,図5(B)に示す32ビット命令コードの前半部分であることがわかる。そして,現位置から始まるシンボル列Yは,32ビット命令コードの後半であると判別できる。
区切り位置分析部14は,現位置から処理済みのシンボル列を遡って,命令コードの区切りが判別できる,ビット値“00000”〜“11100”または“11101”〜“11111”のシンボル列を検出する。区切り位置分析部14は,ビット値“00000”〜“11100”または“11101”〜“11111”のシンボル列が検出できなければ,現位置から,さらに16ビット個のシンボル列を遡る。
次に,区切り位置分析部14は,検出したシンボル列の先頭から16個分のシンボル列ずつ取り出して,取り出したシンボル列が,図5に示すシンボル列A〜Cのいずれに該当するかを判別して,処理されるシンボル列Yが,図6(A)または図6(B)のいずれの場合に該当するかを判定する。
区切り位置分析部14は,先頭5個のビット値が“00000”〜“11100”であれば,取り出したシンボル列Xが,シンボル列Aまたはシンボル列Cのいずれかとなるので,現位置を,命令コードの先頭と判定する。したがって,この判定の場合に,以降のパターン番号分析処理およびオペコード・オペランド分離処理では,シンボル列Yは,現位置が先頭となる命令コードについて処理が行われる。
区切り位置分析部14は,先頭5個のビット値が“11101”〜“11111”であれば,取り出したシンボル列Xが,シンボル列Bまたはシンボル列Cのいずれかとなるので,さらに,16ビット分のシンボル列Xを遡って取り出す。
区切り位置分析部14は,シンボル列Xの先頭5個のビット値が“11101”〜“11111”であれば,シンボル列Xが,シンボル列Bで,シンボル列Xがシンボル列Cとわかるので,現位置を,命令コードの先頭と判定する。シンボル列Xの先頭5個のビット値が“11101”〜“11111”でなければ,区切り位置分析部14は,さらに,16個のシンボル列を遡ってシンボル列Xを取り出し,取り出したシンボル列X,X,Xの順に命令コードの区切りを,同様にして分析する。
上記の処理の結果,区切り位置分析部14が,現位置を,32ビット命令コードの後半部分の先頭と判定した場合に,パターン番号分析処理では,例えば,シンボル列Yと遡ったシンボル列Xとのペアが32ビット命令コードとして扱われる。
次に,図7を用いて,ステップS18の,オペコードとオペランドの符号化をより詳細に説明する。
図7は,ステップS18の処理のより詳細な処理フロー例を示す図である。
符号化部16のパターン番号分析部161は,命令パターン情報保持部19を参照して,命令コードのオペコードのシンボル列から,該当する命令コードの命令パターン番号を決定する(ステップS180)。
パターン番号・区切り位置符号化部162は,パターン番号・区切り位置符号保持部171を参照して,一致符号化部12による処理により命令コードの先頭であるか端数となった位置であるかを示す情報である端数位置(命令コードの先頭/後半)と,区切り位置とを符号化し(ステップS181),決定したパターン番号を符号化する(ステップS182)。
次に,オペコード符号化部163は,オペコード符号保持部172を参照して,分離された残りのオペコードを符号化する(ステップS183)。オペランド符号化部164は,オペランド符号保持部173を参照して,分離された残りのオペランドをそれぞれ符号化する(ステップS184)。
図8は,データ圧縮装置1によるデータ圧縮処理の例を示す図である。
図8の矩形は,データ圧縮装置1に入力される被圧縮データのデータ列の例である。
被圧縮データの下部は,被圧縮データのデータ列を16ビットのバイナリ表現であり,上部は,そのニーモニック表現である。
被圧縮データは,左側から右側へ向かって,すなわち,被圧縮データの下側に示す1番目から順に符号化されるものとする。また,データ列の13番目が,符号化処理の現位置であるとする。
図8の被圧縮データのデータ列において,13番目から21番目までのシンボル列は,既処理の1番目から9番目までのシンボル列と同じである。
入力データ保持部10に,被圧縮データの13番目以降のデータ列が入力されているとする。一致検索部11は,この繰り返し部分(13番目〜21番目)が,1番目〜9番目のシンボル列と一致することを検出する。そして,一致符号化部12は,13番目〜21番目のシンボル列に相当する情報として,(一致位置,一致長)=(1,9)を符号化する。
続いて,符号化処理の現位置が22番目のシンボル列に移動すると,一致検索部11が,既処理のデータ列から一致を検出しないため,「一致なし」が符号化される。
区切り位置分析部14は,1つ前の21番目のシンボル列と2つ前の20番目のシンボル列のそれぞれの先頭のビット値から命令コードの区切り位置を見つけて,21番目のシンボル列が,32ビットの命令コードの前半部分であり,22番目のシンボル列がその後半部分と判定して,命令コードの端数位置(後半)を決定する。
さらに,区切り位置分析部14は,図3に示す命令パターン番号情報を参照して,21番目と22番目のシンボル列とでなる32ビットの命令コード(LDR)のパターン番号(18)を決定する。
次に,分離部15は,22番目のシンボル列を,オペコードとオペランドに分離する。ここで,命令コードの後半部分である22番目のシンボル列に,オペコードはなく,2つのオペランド(Rt=D,imm12=084)が設定されているので,分離部15は,分離処理を行って,符号化されていないオペコード(残りオペコード)として“なし”,残りオペランドとして“Rt=D”,“imm12=084”を出力する。
符号化部16は,上記の情報[端数位置;パターン番号;残りオペコード;残りオペランド]=[後半;18;なし;(Rt=D,imm12=084)]を,それぞれ符号化する。
続いて,符号化処理の現位置が23番目のシンボル列に移動すると,一致検索部11は,23番目〜25番目)が,11番目〜13番目のシンボル列と一致することを検出する。一致符号化部12は,23番目〜25番目のシンボル列に相当する情報として,(一致位置,一致長)=(11,3)を符号化する。
さらに,符号化処理の現位置が26番目のシンボル列に移動すると,一致検索部11は,既処理のデータ列から一致を検出しないため,「一致なし」が符号化される。
区切り位置分析部14は,1つ前の25番目のシンボル列の先頭のビット値から命令コードの区切り位置を見つけて,26番目のシンボル列が,32ビットの命令コードの前半部分であると判定して,命令コードの端数位置(先頭)を決定する。
さらに,区切り位置分析部14は,32ビットの命令コードの後半部分となる後続の27番目のシンボル列を得て,図3に示す命令パターン番号情報を参照して,26番目と27番目のシンボル列とでなる32ビットの命令コード(ADD)のパターン番号(20)を決定する。
次に,分離部15は,26番目と27番目のシンボル列を,オペコードとオペランドに分離する。分離部15は,残りオペコードとして“F50”,残りオペランドとして“Rn=3”,“imm3=1”,“Rd=3”,“imm8=80”を出力する。
符号化部16は,これらの情報[端数位置;パターン番号;残りオペコード;残りオペランド]=[先頭;20;F50;(Rn=3,imm3=1,Rd=3,imm8=80)]を,それぞれ符号化する。
以上のようにして,被圧縮データのデータ列がデータ圧縮装置1に入力され,繰り返し部分については一致符号化処理が,繰り返し部分以外の残り部分については,データ列を命令コードに区切ってオペランドとオペコードのそれぞれについて符号化処理が行われて,圧縮データが出力される。
これにより,従来の繰り返し部分に対する符号化処理に比べての圧縮率を向上させることができる。
また,データ圧縮装置1は,従来のように,命令コードのオペコードとオペランドの辞書を備えることなく,命令コードをオペコードとオペランドとに分離して符号化することができ,圧縮率を向上させることができる。
以下に,データ圧縮装置1が出力した圧縮データのデータ復元処理を説明する。
図9は,本発明の一実施形態として,開示されるデータ復元プログラムおよび方法を実施するデータ復元装置の構成例を示す図である。
データ復元装置3は,データ圧縮装置1が出力する圧縮データを復元処理して復元データすなわち元の被圧縮データを生成,出力する装置である。
データ復元装置3は,圧縮データ保持部30,一致あり・なし復元部31,一致復元部32,一致長・一致位置符号保持部33,コピー部34,復元部35,符号保持部36,配置部37,復元データ保持部38,および命令パターン情報保持部39を備える。
圧縮データ保持部30は,データ復元装置3に入力された圧縮データを保持する保持部である。
一致あり・なし復元部31は,圧縮データ内の「一致あり」または「一致なし」の符号を復元する処理部である。
一致復元部32は,一致あり・なし復元部31が「一致あり」の符号を復元した場合に,一致長・一致位置符号保持部33を参照して,符号化された一致長,一致位置を復元する処理部である。
一致長・一致位置符号保持部33は,一致長,一致位置と各符号との対応情報(符号表)を保持する保持部である。
コピー部34は,復元データ保持部38が保持するデータ列の一致長および一致位置によって指定された部分(シンボル列)をコピーする処理部である。
復元部35は,一致あり・なし復元部31が「一致なし」の符号を復元した場合に,オペコードとオペランドとをそれぞれ復元する処理部である。
符号保持部36は,オペコード,オペランドと各符号との対応情報(符号表)を保持する保持部である。
配置部37は,命令パターン情報保持部39を参照して,復元されたオペコードとオペランドとを,対応する命令コード構成にしたがって,それぞれ配置する処理部である。
復元データ保持部38は,一致復元部32の出力と配置部37の出力を合わせた復元データを保持する保持部である。
命令パターン情報保持部39は,命令セットに含まれる各命令コードのオペコードとオペランドのビット単位の構成パターンを示す情報(命令パターン番号)を保持する保持部である。命令パターン情報保持部39の命令パターン番号情報は,データ圧縮装置1の命令パターン情報保持部19で保持される命令パターン番号と同じものである。
図10は,復元部35と符号保持部36の内部の構成例を示す図である。
復元部35は,パターン番号・区切り位置復元部351,オペコード復元部352,オペランド復元部353を有する。
符号保持部36は,パターン番号,区切りと各符号との対応情報(符号表)を保持するパターン番号・区切り位置符号保持部361,オペコードと各符号との対応情報(符号表)を保持するオペコード符号保持部362,オペランドと各符号との対応情報(符号表)を保持するオペランド符号保持部363を有する。
オペランド符号保持部363は,各レジスタと符号との対応情報を保持するレジスタ1符号保持部3631,レジスタ2符号保持部3632等,各イミディエート値と符号との対応情報を保持する8bitイミディエート値符号保持部3633,11bitイミディエート値符号保持部3634等,レジスタリストと符号との対応情報を保持するレジスタリスト符号保持部3635を有する。
パターン番号・区切り位置復元部351は,パターン番号・区切り位置符号保持部361を参照して,符号化されたパターン番号と,命令コードの区切り位置とを復元する。
オペコード復元部353は,オペコード符号保持部362を参照して,符号化されたオペコードを復元する。
オペランド復元部353は,オペランド符号保持部363を参照して,符号化されたオペランドを復元する。
図11は,データ復元装置の処理フロー例を示す図である。
データ復元装置3の圧縮データ保持部30が,入力された圧縮データを保持すると,一致あり・なし復元部31は,圧縮データのデータ列から,「一致あり」または「一致なし」を示すフラグを検出して復元する(ステップS20)。
一致あり・なし復元部31で復元されたフラグが「一致あり」である場合に(ステップS21のY),ステップS22の処理へ進み,「一致あり」ではない場合に(ステップS21のN),ステップS25の処理へ進む。
一致復元部32は,一致長・一致位置符号保持部33を参照して,符号化された一致長を復元する(ステップS22)。さらに,一致復元部32は,一致長・一致位置符号保持部33を参照して,符号化された一致位置を復元する(ステップS23)。
コピー部34は,復元データ保持部38に保持された復元処理された圧縮データのデータ列の一致位置から一致長分のバイト列をコピーして出力する(ステップS24)。
復元部35は,命令パターン情報保持部39および符号保持部36を参照して,符号化されているオペコードとオペランドとを,それぞれ復元する(ステップS25)。
配置部37は,復元したオペコード,オペランドを再配置してデータ列を生成する(ステップS26)。
データ圧縮装置3では,入力された圧縮データがすべて復元処理されるまで(ステップS27のN),ステップS20〜S26の処理が繰り返され,圧縮データがすべて復元処理された場合に(ステップS27のY),処理が終了して,復元データが出力される。
図12は,ステップS25の復元処理のより詳細な処理フロー例を示す図である。
復元部35は,パターン番号・区切り位置符号保持部361を参照して,符号化されている命令コードの端数位置を示す符号を復元し(ステップS250),さらにパターン番号を復元する(ステップS251)。
さらに,復元部35は,命令パターン情報保持部39を参照して,該当するパターン番号の命令コード構成を得て,オペコード符号保持部362を参照してオペコードを復元し(ステップS252),オペランド符号保持部363を参照してオペコードと同様に,各オペランドを復元する(ステップS253)。
次に,命令パターン情報生成装置2の処理を説明する。命令パターン情報生成装置2は,データ圧縮処理およびデータ復元処理の開始前に命令パターン番号を生成する。
命令パターン番号は,処理対象となるデータの命令セットに対応して生成され,データ圧縮時およびデータ復元時に,データ圧縮装置1およびデータ復元装置3の命令パターン情報保持部19,39に保持された状態となる。
命令パターン情報生成装置2は,1つの機能として,データ圧縮装置1およびデータ復元装置3に組み込まれていてもよい。
図13は,命令パターン情報生成装置2の処理フロー例を示す図である。
命令パターン情報生成装置2は,命令コードのセットに含まれる各命令について,オペコード,イミディエート値を示す領域の長さと位置,レジスタを示す領域の長さと位置,レジスタリストを示す領域の長さと位置の情報を取得する(ステップS30)。
命令パターン情報生成装置2は,イミディエート値に使用している領域の長さと位置で,一致する命令をソートする(ステップS31)。さらに,命令パターン情報生成装置2は,レジスタに使用している領域の長さと位置で,一致する命令をソートする(ステップS32)。さらに,命令パターン情報生成装置2は,レジスタリストに使用している領域の長さと位置で,一致する命令をソートする(ステップS33)。
次に,命令パターン情報生成装置2は,命令コードの要素構成,すなわち,イミディエート値,レジスタ,およびレジスタリストに使用している領域の長さと位置が一致している命令に対して,同一のパターン番号を割り当て,命令パターン番号情報を生成する(ステップS34)。
以上のようにして,データ圧縮装置1で,被圧縮データの繰り返し部分の符号化と,繰り返し部分以外の残り部分のオペコードとオペランドとのそれぞれの符号化とがなされた圧縮データが復元され,元のデータ(被圧縮データ)を得ることができる。
図16は,データ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3を実施する代表的なハードウェア構成例を示す図である。
データ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3は,それぞれ,演算装置(CPU)501,一時記憶装置(DRAM,フラッシュメモリ等)502,永続性記憶装置(HDD,フラッシュメモリ等)503,バス505等を有するコンピュータ500によって実施することができる。
また,データ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3は,それぞれ,コンピュータ500が実行可能なプログラムによって実施することができる。この場合に,データ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3がそれぞれ有すべき機能の処理内容を記述したプログラムが提供される。演算装置(CPU)501が,提供されたプログラムをロード・実行することにより,上記説明したデータ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3のいずれかが仮想的に実現される。
なお,データ圧縮装置1,命令パターン情報生成装置2,およびデータ復元装置3それぞれを実施するコンピュータ500は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもでき,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。
また,このプログラムは,コンピュータ500で読み取り可能な記録媒体に記録しておくことができる。
以下に,本願発明の実施態様における特徴を列記する。
(付記1) データ記憶部を備えるコンピュータに,
オペコードとオペランドからなる命令コードを複数含む被圧縮データの入力を受け、該被圧縮データのデータ列からビット値が一致する繰り返し部分を検出し,前記検出した繰り返し部分の相対位置と一致長を求める処理ステップと,
前記繰り返し部分を,前記相対位置と前記一致長とを用いて符号化する処理ステップと,
前記被圧縮データから前記符号化された繰り返し部分以外の部分に含まれる命令コードの区切り位置を分析する処理ステップと,
前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応づけて示す命令パターン情報をもとに,前記区切り位置に従って区切られた命令コードを,ビット単位でオペコードとオペランドとに分離する処理ステップと,
前記分離したオペコードとオペランドを,それぞれ符号化する処理ステップとを実行させる
ことを特徴とするデータ圧縮プログラム。
(付記2) 前記オペコードとオペランドをそれぞれ符号化する処理ステップにおいて,
前記コンピュータに,
前記命令パターン情報をもとに,前記命令コードのオペコードおよびオペランドのビット配置に一致する構成パターンを示すパターン番号を割り当てる処理ステップと,
前記パターン番号と前記区切り位置とを符号化する処理ステップと,
前記命令コードのオペコードを符号化する処理ステップと,
前記命令コードのオペランドを個々の要素ごとに符号化する処理ステップとを実行させる
ことを特徴とする前記付記1に記載のデータ圧縮プログラム。
(付記3) データ記憶部を備えたコンピュータに,データ列のビット値が一致する繰り返し部分と前記繰り返し部分以外の部分とを別の処理手順で圧縮された圧縮データ列を,復元する方法を実行させるプログラムであって,
前記コンピュータに,
前記圧縮データ列から,繰り返し部分の圧縮の有無を示す情報を復元する処理ステップと,
前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の有を示す場合に,前記圧縮データ列の繰り返し部分の相対位置と一致長とを復元する処理ステップと,
前記圧縮データ列の前記相対位置が指定する位置から前記一致長が指定する長さの文字列を複写する処理ステップと,
前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の無を示す場合に,前記圧縮データ列の前記繰り返し部分以外の部分に含まれる命令コードのオペコードとオペランドとを各々復元する処理ステップと,
前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応づけて示す命令パターン情報をもとに,前記復元されたオペコードとオペランドとをビットごとに命令セットに従って配置する処理ステップとを実行させる
ことを特徴とするデータ復元プログラム。
(付記4) 前記オペコードとオペランドとを復元する処理ステップにおいて,
前記コンピュータに,
前記命令パターン情報をもとに,前記被圧縮データから,前記繰り返し部分以外の部分に含まれる命令コードの区切り位置と,該命令コードのオペコードおよびオペランドのビット配置に一致する構成パターンを示すパターン番号とを復元する処理ステップと,
前記オペコードを復元する処理ステップと,
前記オペランドの個々の要素を復元する処理ステップとを実行させる
ことを特徴とする前記付記3に記載のデータ復元プログラム。
(付記5) データ記憶部を備えるコンピュータが実行する処理方法であって,
オペコードとオペランドからなる命令コードを複数含む被圧縮データの入力を受け,該被圧縮データのデータ列からビット値が一致する繰り返し部分を検出し,前記検出した繰り返し部分の相対位置と一致長とを求める一致検索ステップと,
前記繰り返し部分を,前記相対位置と前記一致長とを用いて符号化する一致部符号化ステップと,
前記被圧縮データから前記符号化された繰り返し部分以外の部分に含まれる命令コードの区切り位置を分析する区切り位置分析ステップと,
前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応付けて示す命令パターン情報をもとに,前記区切り位置に従って区切られた命令コードを,ビット単位でオペコードとオペランドとに分離するオペコード・オペランド分離ステップと,
前記分離したオペコードとオペランドを,それぞれ符号化するオペコード・オペランド符号化ステップとを備える
ことを特徴とするデータ圧縮方法。
(付記6) データ記憶部を備えるコンピュータが実行する,データ列のビット値が一致する繰り返し部分と前記繰り返し部分以外の部分とを別の処理手順で圧縮された圧縮データ列を復元するデータ復元方法であって,
前記圧縮データ列から,繰り返し部分の圧縮の有無を示す情報を復元する処理ステップと,
前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の有を示す場合に,前記圧縮データ列の繰り返し部分の相対位置と一致長とを復元する処理ステップと,
前記圧縮データ列の前記相対位置が指定する位置から前記一致長が指定する長さの文字列を複写する処理ステップと,
前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の無を示す場合に,前記圧縮データ列の前記繰り返し部分以外の部分のオペコードとオペランドとを各々復元する処理ステップと,
前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応付けて示す命令パターン情報をもとに,前記復元されたオペコードとオペランドとをビットごとに命令セットに従って配置する処理ステップとを備える
ことを特徴とするデータ復元方法。
(付記7) 前記コンピュータに,
前記被圧縮データに含まれる命令コードのセットから,オペコードおよびオペランドの構成パターンを分析して前記命令パターン情報を生成する処理ステップを実行させる
ことを特徴とする前記付記2に記載のデータ圧縮プログラム。
(付記8) オペコードおよびオペランドの構成パターンを示すパターン番号を命令コードと対応付けて示す命令パターン情報を記憶するデータ記憶部と,
オペコードとオペランドからなる命令コードを複数含む被圧縮データの入力を受け,該被圧縮データのデータ列からビット値が一致する繰り返し部分を検出し,前記検出した繰り返し部分の相対位置と一致長とを求める一致検索部と,
前記繰り返し部分を,前記相対位置と前記一致長とを用いて符号化する一致部符号化部と,
前記被圧縮データから前記符号化された繰り返し部分以外の部分に含まれる命令コードの区切り位置を分析する区切り位置分析部と,
前記命令パターン情報をもとに,前記区切り位置に従って区切られた命令コードを,ビット単位でオペコードとオペランドとに分離する分離部と,
前記分離したオペコードとオペランドを,それぞれ符号化する符号化部とを備える
ことを特徴とするデータ圧縮装置。
(付記9) データ列のビット値が一致する繰り返し部分と前記繰り返し部分以外の部分とを別の処理手順で圧縮された圧縮データ列を復元するデータ復元装置であって,
オペコードおよびオペランドの構成パターンを示すパターン番号を命令コードと対応付けて示す命令パターン情報を記憶するデータ記憶部と,
前記圧縮データ列から,繰り返し部分の圧縮の有無を示す情報を復元する一致あり・なし復元部と,
前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の有を示す場合に,前記圧縮データ列の繰り返し部分の相対位置と一致長とを復元する一致復元部と,
前記圧縮データ列の前記相対位置が指定する位置から前記一致長が指定する長さの文字列を複写する複写部と,
前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の無を示す場合に,前記圧縮データ列の前記繰り返し部分以外の部分のオペコードとオペランドとを各々復元する復元部と,
前記命令パターン情報をもとに,前記復元されたオペコードとオペランドとをビットごとに命令セットに従って配置する配置部とを備える
ことを特徴とするデータ復元装置。
1 データ圧縮装置
10 入力データ保持部
11 一致検索部
12 一致符号化部
13 一致長・一致位置符号保持部
14 区切り位置分析部
15 分離部
16 符号化部
161 パターン番号分析部
162 パターン番号・区切り位置符号化部
163 オペコード符号化部
164 オペランド符号化部
17 符号保持部
171 パターン番号・区切り位置符号保持部
172 オペコード符号保持部
173 オペランド符号保持部
1731 レジスタ1符号保持部
1732 レジスタ2符号保持部
1733 8bitイミディエート値符号保持部
1734 11bitイミディエート値符号保持部
1735 レジスタリスト符号保持部
18 圧縮データ保持部
19 命令パターン情報保持部
2 命令パターン情報生成装置
3 データ復元装置
30 圧縮データ保持部
31 一致あり・なし復元部
32 一致復元部
33 一致長・一致位置符号保持部
34 コピー部
35 復元部
351 パターン番号・区切り位置復元部
352 オペコード復元部
353 オペランド復元部
36 符号保持部
361 パターン番号・区切り位置符号保持部
362 オペコード符号保持部
363 オペランド符号保持部
3631 レジスタ1符号保持部
3632 レジスタ2符号保持部
3633 8bitイミディエート値符号保持部
3634 11bitイミディエート値符号保持部
3635 レジスタリスト符号保持部
37 配置部
38 復元データ保持部

Claims (6)

  1. データ記憶部を備えるコンピュータに,
    オペコードとオペランドからなる命令コードを複数含む被圧縮データの入力を受け,該被圧縮データのデータ列からビット値が一致する繰り返し部分を検出し,前記検出した繰り返し部分の一方の相対位置と一致長を求める処理ステップと,
    前記繰り返し部分の他方を,前記相対位置と前記一致長とを用いて符号化する処理ステップと,
    前記被圧縮データから前記符号化された繰り返し部分以外の部分に含まれる命令コードの区切り位置を分析する処理ステップと,
    前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応づけて示す命令パターン情報をもとに,前記区切り位置に従って区切られた命令コードを,ビット単位でオペコードとオペランドとに分離する処理ステップと,
    前記分離したオペコードとオペランドを,それぞれ符号化する処理ステップとを実行させる
    ことを特徴とするデータ圧縮プログラム。
  2. 前記オペコードとオペランドをそれぞれ符号化する処理ステップにおいて,
    前記コンピュータに,
    前記命令パターン情報をもとに,前記命令コードのオペコードおよびオペランドのビット配置に一致する構成パターンを示すパターン番号を割り当てる処理ステップと,
    前記パターン番号と前記区切り位置とを符号化する処理ステップと,
    前記命令コードのオペコードを符号化する処理ステップと,
    前記命令コードのオペランドを個々の要素ごとに符号化する処理ステップとを実行させる
    ことを特徴とする請求項1に記載のデータ圧縮プログラム。
  3. データ記憶部を備えたコンピュータに,データ列のビット値が一致する繰り返し部分と前記繰り返し部分以外の部分とを別の処理手順で圧縮された圧縮データ列を復元する方法を実行させるプログラムであって,
    前記コンピュータに,
    前記圧縮データ列から,繰り返し部分の圧縮の有無を示す情報を復元する処理ステップと,
    前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の他方の圧縮の有を示す場合に,前記繰り返し部分の一方の相対位置と一致長とを復元する処理ステップと,
    前記相対位置が指定する位置から前記一致長が指定する長さの文字列を複写する処理ステップと,
    前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の無を示す場合に,前記圧縮データ列の前記繰り返し部分以外の部分に含まれる命令コードのオペコードとオペランドとを各々復元する処理ステップと,
    前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応づけて示す命令パターン情報をもとに,前記復元されたオペコードとオペランドとをビットごとに命令セットに従って配置する処理ステップとを実行させる
    ことを特徴とするデータ復元プログラム。
  4. 前記オペコードとオペランドとを復元する処理ステップにおいて,
    前記コンピュータに,
    前記命令パターン情報をもとに,前記圧縮データ列から,前記繰り返し部分以外の部分に含まれる命令コードの区切り位置と,該命令コードのオペコードおよびオペランドのビット配置に一致する構成パターンを示すパターン番号とを復元する処理ステップと,
    前記オペコードを復元する処理ステップと,
    前記オペランドの個々の要素を復元する処理ステップとを実行させる
    ことを特徴とする請求項3に記載のデータ復元プログラム。
  5. データ記憶部を備えるコンピュータが実行するデータ圧縮方法であって,
    オペコードとオペランドからなる命令コードを複数含む被圧縮データの入力を受け,該被圧縮データのデータ列からビット値が一致する繰り返し部分を検出し,前記検出した繰り返し部分の一方の相対位置と一致長とを求める処理ステップと,
    前記繰り返し部分の他方を,前記相対位置と前記一致長とを用いて符号化する処理ステップと,
    前記被圧縮データから前記符号化された繰り返し部分以外の部分に含まれる命令コードの区切り位置を分析する処理ステップと,
    前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応付けて示す命令パターン情報をもとに,前記区切り位置に従って区切られた命令コードを,ビット単位でオペコードとオペランドとに分離する処理ステップと,
    前記分離したオペコードとオペランドを,それぞれ符号化する処理ステップとを備える
    ことを特徴とするデータ圧縮方法。
  6. データ記憶部を備えるコンピュータが実行する,データ列のビット値が一致する繰り返し部分と前記繰り返し部分以外の部分とを別の処理手順で圧縮された圧縮データ列を復元するデータ復元方法であって,
    前記圧縮データ列から,繰り返し部分の圧縮の有無を示す情報を復元する処理ステップと,
    前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の他方の圧縮の有を示す場合に,前記繰り返し部分の一方の相対位置と一致長とを復元する処理ステップと,
    前記相対位置が指定する位置から前記一致長が指定する長さの文字列を複写する処理ステップと,
    前記復元した繰り返し部分の圧縮の有無を示す情報が繰り返し部分の圧縮の無を示す場合に,前記圧縮データ列の前記繰り返し部分以外の部分に含まれる命令コードのオペコードとオペランドとを各々復元する処理ステップと,
    前記データ記憶部に記憶された,前記オペコードおよびオペランドの構成パターンを前記命令コードと対応付けて示す命令パターン情報をもとに,前記復元されたオペコードとオペランドとをビットごとに命令セットに従って配置する処理ステップとを備える
    ことを特徴とするデータ復元方法。
JP2010135920A 2010-06-15 2010-06-15 データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法 Expired - Fee Related JP5549402B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010135920A JP5549402B2 (ja) 2010-06-15 2010-06-15 データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010135920A JP5549402B2 (ja) 2010-06-15 2010-06-15 データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法

Publications (2)

Publication Number Publication Date
JP2012003375A JP2012003375A (ja) 2012-01-05
JP5549402B2 true JP5549402B2 (ja) 2014-07-16

Family

ID=45535304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010135920A Expired - Fee Related JP5549402B2 (ja) 2010-06-15 2010-06-15 データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法

Country Status (1)

Country Link
JP (1) JP5549402B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320172A (ja) * 1997-05-15 1998-12-04 Seiko Epson Corp プログラム圧縮方法およびプログラム復号方法ならびにプログラム格納装置
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
JP3729759B2 (ja) * 2001-08-07 2005-12-21 株式会社ルネサステクノロジ 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ
US7770091B2 (en) * 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US8125364B2 (en) * 2007-08-13 2012-02-28 Nec Corporation Data compression/decompression method

Also Published As

Publication number Publication date
JP2012003375A (ja) 2012-01-05

Similar Documents

Publication Publication Date Title
JP6160259B2 (ja) 文字列探索方法、文字列探索装置および文字列探索プログラム
RU2629440C2 (ru) Устройство и способ для ускорения операций сжатия и распаковки
JP4814999B2 (ja) データ圧縮・復元方法及び圧縮・復元プログラム
Plaisance et al. Vectorized vbyte decoding
JP2001357048A (ja) ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法
JP4077409B2 (ja) 高速最長一致探索方法及び装置
JP6686639B2 (ja) 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
US7375660B1 (en) Huffman decoding method
De Moura et al. Direct pattern matching on compressed text
JP4114600B2 (ja) 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム
JP2007043595A (ja) 可変長符号復号化方法および装置ならびにデータ伸長装置
US10394763B2 (en) Method and device for generating pileup file from compressed genomic data
JP6467937B2 (ja) 文書処理プログラム、情報処理装置および文書処理方法
TWI289788B (en) Method, data processing system and computer recording medium for processing a set of instructions
JP2000201080A (ja) 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
JP5549402B2 (ja) データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法
USRE45300E1 (en) Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements
WO2007108395A1 (ja) 可変長符号の復号装置および復号方法
JP2016170750A (ja) データ管理プログラム、情報処理装置およびデータ管理方法
JP2004062220A (ja) 情報処理装置、情報処理方法、およびプログラム変換装置
US11934354B2 (en) Method of compressing and decompressing a file via cellular automata pre-processing
EP1697830B1 (en) Memory-efficient instruction processing scheme
US9122543B2 (en) Data processing method, apparatus and computer program product for similarity comparison of software programs
Orpaz et al. A study of CodePack: optimizing embedded code space
JP2016134808A (ja) データ圧縮プログラム、データ復元プログラム、データ圧縮装置、及びデータ復元装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

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: 20140422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140505

R150 Certificate of patent or registration of utility model

Ref document number: 5549402

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees