(57)【要約】【課題】符号化された数値の演算を高速化すること。【解決手段】情報処理装置は、対象テキストデータから符号化対象データ１０を読み出す処理と、符号化対象データ１０に含まれる数値を表す数値表記文字列を符号化し、符号化に応じて、数値表記文字列に対応する数値データと、符号とを対応付けて辞書に登録する処理と、を実行する。【選択図】図１
2018195956.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
対象テキストデータから符号化対象データを読み出し、
前記符号化対象データに含まれる数値を表す数値表記文字列を符号化し、
前記符号化に応じて、当該数値表記文字列に対応する数値データと、符号とを対応付けて辞書に登録する
処理を実行させることを特徴とする符号化プログラム。
【請求項２】
前記数値データは、
前記数値表記文字列が表す数値をバイナリ化したデータであることを特徴とする請求項１に記載の符号化プログラム。
【請求項３】
コンピュータに、
前記辞書に登録された前記符号に対応する前記数値データを用いて演算を行う
処理をさらに実行させることを特徴とする請求項１または２に記載の符号化プログラム。
【請求項４】
対象テキストデータから符号化対象データを読み出す読出部と、
前記符号化対象データに含まれる数値を表す数値表記文字列を符号化する符号化実行部と、
前記符号化に応じて、当該数値表記文字列に対応する数値データと、符号とを対応付けて辞書に登録する登録部と
を有することを特徴とする符号化装置。
【請求項５】
コンピュータが、
対象テキストデータから符号化対象データを読み出し、
前記符号化対象データに含まれる数値を表す数値表記文字列を符号化し、
前記符号化に応じて、当該数値表記文字列に対応する数値データと、符号とを対応付けて辞書に登録する
処理を実行することを特徴とする符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム、符号化装置および符号化方法に関する。
【背景技術】
【０００２】
圧縮対象のテキストファイルから数値を抽出し、抽出した数値を数字単位で符号化する技術が知られている。かかる技術では、０〜９までの各数字に動的符号を割り当て、圧縮対象のテキストファイルから抽出した数値に含まれる各数字を動的符号に変換する。さらに、変換された動的符号に、例えば全角または半角の指定、カンマの有無、小数点の有無、有効桁数等の数値に関する情報を表す符号を付加することで数値を動的符号に変換する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００８／０４７４３２号
【特許文献２】特開２０１３−１５００４１号公報
【特許文献３】特開平０５−１７４０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、数値を数字単位で符号化すると、符号化前における数値自体が失われることから、復号化した後でなければかかる数値に基づいた演算を行うことができない。したがって、数値を数字単位で符号化した場合、符号化された数値を演算する際に時間がかかる場合がある。
【０００５】
一つの側面では、符号化された数値の演算を高速化することができる符号化プログラム、符号化装置および符号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、符号化プログラムは、コンピュータに、対象テキストデータから符号化対象データを読み出す処理を実行させる。符号化プログラムは、コンピュータに、前記符号化対象データに含まれる数値を表す数値表記文字列を符号化し、前記符号化に応じて、当該数値表記文字列に対応する数値データと、符号とを対応付けて辞書に登録する処理を実行させる。
【発明の効果】
【０００７】
一実施形態によれば、符号化された数値の演算を高速化することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１の数値の符号化処理を説明するための図である。
【図２】図２は、情報処理装置のシステム構成の例を説明するための図である。
【図３】図３は、実施例１の符号化処理に係るシステム構成の例を示す図である。
【図４】図４は、ビットフィルタの第１の例を示す図である。
【図５】図５は、動的辞書の一例を示す図である。
【図６】図６は、ビットフィルタの第２の例を示す図である。
【図７】図７は、実施例１の符号化処理の流れの例を示す図である。
【図８】図８は、実施例２のＣＳＶデータが符号化された状態を説明するための図である。
【図９Ａ】図９Ａは、実施例２の数値の演算処理を説明するための図（１）である。
【図９Ｂ】図９Ｂは、実施例２の数値の演算処理を説明するための図（２）である。
【図９Ｃ】図９Ｃは、実施例２の数値の演算処理を説明するための図（３）である。
【図１０】図１０は、実施例１、２の情報処理装置のハードウェア構成を示す図である。
【図１１】図１１は、コンピュータで動作するプログラムの構成例を示す図である。
【図１２】図１２は、実施形態のシステムにおける装置の構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する符号化プログラム、符号化装置および符号化方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１０】
（実施例１の符号化処理）
図１を用いて、実施例１の情報処理装置１００（図２参照）による符号化処理について説明する。図１は、実施例１の数値の符号化処理を説明するための図である。図１の例に示すように、情報処理装置１００は、符号化処理の対象である符号化対象データ１０に含まれる「This  is  a  pen.  ・・・  30000  points  ・・・」を「This」「is」「a」「pen」「30000」「points」のように数値または単語ごとに区切り、各数値または各単語を取得する。以下、１以上の数字を有する数値を「数値表記文字列」と呼ぶ。
【００１１】
かかる数値表記文字列は、数字以外にプラス・マイナス、カンマおよび小数点等の符号を含んでもよい。情報処理装置１００は、取得した単語のうち数値表記文字列「30000」を抽出してビットフィルタ１２１に出力する。ビットフィルタ１２１は、各数値表記文字列に対して数値データと、動的符号とを対応付ける辞書である。ビットフィルタ１２１は、それぞれの数値表記文字列に対応する数値データがあらかじめ登録されている。例えば、ビットフィルタ１２１には、整数「0」「1」「2」「3」「4」…に対応する数値データ「0000h」「0001h」「0002h」「0003h」「0004h」…が順番にあらかじめ登録されている。ビットフィルタ１２１のデータ構造に関する詳細は後述する。
【００１２】
次いで、情報処理装置１００は、ビットフィルタ１２１から数値表記文字列「30000」に対応する数値データ「7530h」を取得する。なお、かかる数値データは、対応する数値表記文字列をバイナリ化したデータである。次いで、情報処理装置１００は、取得した数値データ「7530h」と、動的辞書１２２に登録した順に動的に付される動的符号「A100h」とを対応づけて動的辞書１２２に登録する。なお、数値データ「7530h」や動的符号「A100h」等の末尾に示す「h」は、１６進数で表記されていることを示す符号である。
【００１３】
次いで、情報処理装置１００は、動的辞書１２２において動的に付された動的符号「A100h」を、数値表記文字列「30000」に対応づけてビットフィルタ１２１に登録する。そして、情報処理装置１００は、ビットフィルタ１２１を基にして数値表記文字列「30000」に対応する動的符号「A100h」を取得し、圧縮ファイル１１に出力する。
【００１４】
また、情報処理装置１００は、次回、符号化対象データ１０に数値表記文字列「30000」が出現した場合、既にビットフィルタ１２１に登録されている動的符号「A100h」を取得し、圧縮ファイル１１に出力する。
【００１５】
（実施例１と参考例との比較）
上述したように実施例１では、数値表記文字列全体を一つの単位（一つの動的符号）として符号化する。一方、参考例では、数値表記文字列に含まれる個々の数字を一つの単位として符号化するものとする。参考例のように数値表記文字列を数字単位で符号化すると、数値表記文字列が表す数値自体が失われる。したがって、かかる数値を用いて演算を行う場合に、復号化してからでなければ演算を行うことができない。これに対して、実施例１のように数値表記文字列をバイナリ化した数値データと動的符号とを動的辞書１２２で対応付けて符号化すれば、かかる動的辞書１２２を参照して直接演算を行うことができる。したがって、参考例と比べて演算する際の復号化負荷を削減することができ、演算を高速化することができる。
【００１６】
（実施例１の符号化処理に関する処理部の構成）
図２を用いて、情報処理装置１００の圧縮部１１０と記憶部１２０との関係について説明する。図２は、情報処理装置１００のシステム構成の例を説明するための図である。図２の例に示すように、情報処理装置１００の記憶部１２０は、圧縮部１１０と処理部１５０とに接続される。記憶部１２０は例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリなどの半導体メモリ素子、ハードディスクや光ディスクなどの記憶装置に対応する。
【００１７】
また、情報処理装置１００は、圧縮部１１０と、処理部１５０とを有する。圧縮部１１０および処理部１５０の機能は例えば、ＣＰＵ（Central  Processing  Unit）が所定のプログラムを実行することで実現することができる。また、圧縮部１１０および処理部１５０の機能は例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路により実現することができる。
【００１８】
圧縮部１１０は、入力されたデータから、数値を示す、少なくとも１つの数字を含む数値表記文字列を抽出する。圧縮部１１０は、数値表記文字列と動的符号とを対応付けて記憶する辞書を参照し、抽出された数値表記文字列に対応する動的符号に変換する。
【００１９】
かかる辞書は、所定の複数の数値表記文字列を予め記憶する第１の辞書と、第１の辞書に登録されている数値表記文字列を記憶する第２の辞書とである。圧縮部１１０は、抽出された数値表記文字列が、第１の辞書に登録されており、かつ、かかる数値表記文字列に対応する動的符号が第１の辞書に登録されていない場合、かかる数値表記文字列に動的符号を付与して第１の辞書におけるかかる数値表記文字列に対応付けてかかる動的符号を登録する。なお、第１の辞書は、例えば、ビットフィルタであり、第２辞書は、例えば、動的辞書である。
【００２０】
第１の辞書は、抽出され得る数値表記文字列とともに、数値の大きさに応じて割り当てられるコードがさらに対応付けられて記憶された辞書である。
【００２１】
図３を用いて、実施例１の符号化処理に係るシステム構成について説明する。図３は、実施例１の符号化処理に係るシステム構成の例を示す図である。図３の例に示されるように、情報処理装置１００は、圧縮部１１０と、記憶部１２０とを有する。圧縮部１１０は、ファイルリード部１１１、動的符号付与部１１２およびファイルライト部１１３を有する。記憶部１２０は、ビットフィルタ１２１および動的辞書１２２を有する。以下、実施例１の圧縮部１１０および記憶部１２０の構成について詳細に説明する。なお、ファイルリード部１１１は読出部の一例であり、動的符号付与部１１２は符号化実行部および登録部の一例である。
【００２２】
（記憶部の各構成）
まずは、ビットフィルタ１２１について説明する。ビットフィルタ１２１は、数値表記文字列に数値データおよび動的符号を対応付けた辞書である。図４は、ビットフィルタ１２１の第１の例を示す図である。図４の例に示すように、ビットフィルタ１２１は、２グラムと、ビットマップと、数値表記文字列と、文字列長と、数値データと、動的符号とを対応付ける。「２グラム」は、各単語に含まれる連数字である。例えば「115」は、「11」「15」に対応する２グラムを有する。
【００２３】
「ビットマップ」は、２グラムの文字列に対応するビットマップを表す。例えば、「115」は、数値表記文字列へのポインタによって、２グラム「11」のビットマップ「０＿１＿０＿０＿０」と、２グラム「15」のビットマップ「０＿０＿１＿０＿０」とに対応付けられる。例えば、情報処理装置１００は、符号化対象データ１０から「115」を取得した場合に、２グラム「11」のビットマップ「０＿１＿０＿０＿０」と、２グラム「15」のビットマップ「０＿０＿１＿０＿０」とを用いて数値表記文字列「115」にアクセスする。
【００２４】
「数値表記文字列」は、ビットフィルタ１２１に登録された数値表記文字列である。「数値表記文字列」は、例えば、「0」「1」「2」…「100」「101」…「999」「1000」…のように数値表記文字列が連番で登録される。また、「数値表記文字列」は、３桁ごとにカンマ「,」を有する数値表記文字列を含んでもよい。なお、「数値表記文字列」は、負の値や小数点以下の値を有してもよい。「文字列長」は、各数値表記文字列の桁数である。
【００２５】
「数値データ」は、各数値表記文字列に割り当てられ、対応する数値表記文字列が表す数値をバイナリ化したデータである。たとえば、「数値データ」は、昇順に列挙された数値表記文字列「0」「1」「2」「3」「4」…に対して、バイナリ化した数値データ「0000h」「0001h」「0002h」「0003h」…がそれぞれ割り当てられる。なお、図４の例では、各項目のデータがレコードとして関連づけられて記憶されている例を示したが、上記説明において互いに関連づけられた項目どうしの関係が保たれれば、データは他の記憶のされ方をしても構わない。これは、後述する図５、図６に示されるビットフィルタ１２１および動的辞書１２２に関しても同様である。
【００２６】
次に、動的辞書１２２について説明する。動的辞書１２２は、数値データと、数値データに付与された動的符号とを対応付ける辞書である。図５は、動的辞書１２２の一例を示す図である。図５の例に示すように、動的辞書１２２は、動的符号と数値データとを対応付ける。「数値データ」は、ビットフィルタ１２１で取得された数値データである。「動的符号」は、例えば動的辞書１２２に数値データが登録された順番に数値データに昇順に付与される固定長の動的符号である。
【００２７】
例えば、情報処理装置１００が、符号化対象データ１０から「3000」「1」「2」「1000」…の順番に数値表記文字列を抽出した場合、各々の数値表記文字列の数値データ「7530h」「0001h」「0002h」「03E8h」…に対して、動的符号「A100h」「A101h」「A102h」「A103h」…を割当てる。そして、情報処理装置１００は、各々の数値表記文字列に対して割り当てた動的符号を動的辞書１２２に登録する。例えば、情報処理装置１００は、オフセット「0x0000h」の位置に動的符号「A100h」と数値表記文字列「3000」の数値データ「7530h」とを対応付ける。また、情報処理装置１００は、オフセット「0x0004h」の位置に動的符号「A101h」と数値表記文字列「1」の数値データ「0001h」とを対応付ける。また、情報処理装置１００は、オフセット「0x0007h」の位置に動的符号「A102h」と数値表記文字列「2」の数値データ「0002h」とを対応付ける。
【００２８】
（圧縮部の各構成）
図３に戻り、圧縮部１１０の各構成について説明する。ファイルリード部１１１は、符号化対象データ１０を読み出して、符号化対象データ１０から数値表記文字列を抽出する処理部である。ファイルリード部１１１は、符号化対象データ１０の文字列中の空白文字やカンマなどによって文字列を単語または数値表記文字列ごとに区切り、符号化対象データ１０から各数値表記文字列を抽出する。ファイルリード部１１１は、抽出した数値表記文字列を動的符号付与部１１２に出力する。
【００２９】
動的符号付与部１１２は、符号化対象データ１０から抽出された数値表記文字列に動的符号を付与する処理部である。動的符号付与部１１２は、ファイルリード部１１１から数値表記文字列を受け付けると、ビットフィルタ１２１に登録されている「数値表記文字列」にアクセスする。
【００３０】
動的符号付与部１１２は、アクセスした「数値表記文字列」に対応する動的符号がビットフィルタ１２１に既に登録されていた場合、ビットフィルタ１２１から数値表記文字列に対応する動的符号を取得してファイルライト部１１３に出力する。
【００３１】
一方、動的符号付与部１１２は、アクセスした数値表記文字列に対応する動的符号がビットフィルタ１２１に登録されていない場合、ビットフィルタ１２１から数値表記文字列に対応する数値データを取得する。次いで、動的符号付与部１１２は、ビットフィルタ１２１から取得した数値データを、動的辞書１２２への登録順に付与される動的符号に対応付けて動的辞書１２２に登録する。
【００３２】
図５を用いて、動的辞書１２２への動的符号の登録の具体例について説明する。図５の例に示すように、動的符号付与部１１２は、３番目に登録された数値表記文字列「2」の数値データ「0002h」に動的符号「A102h」を対応づけて動的辞書１２２に登録する。また、動的符号付与部１１２は、６番目に登録された数値表記文字列「10000」の数値データ「2710h」に動的符号「A105h」を対応づけて動的辞書１２２に登録する。このように、動的符号付与部１１２は、各数値表記文字列の数値データに対して動的辞書１２２へ登録された順番に対応する動的符号を付与し、数値表記文字列の数値データと、付与された動的符号とを対応付けて動的辞書１２２に登録する。
【００３３】
次いで、動的符号付与部１１２は、動的辞書１２２に登録した動的符号を、数値データに対応付けてビットフィルタ１２１に登録する。
【００３４】
図６を用いて、登録番号および動的符号が登録された後のビットフィルタ１２１の具体例について説明する。図６は、ビットフィルタ１２１の第２の例を示す図である。図６の例に示すように、ビットフィルタ１２１に動的符号が登録される。ビットフィルタ１２１において、「動的符号」は、数値表記文字列に対応する動的符号である。例えば、ビットフィルタ１２１には、数値表記文字列「121」に付与された動的符号「A116h」が登録される。
【００３５】
そして、動的符号付与部１１２は、ビットフィルタ１２１に登録した動的符号をファイルライト部１１３に出力する。
【００３６】
ファイルライト部１１３は、動的符号付与部１１２から出力された動的符号を基に圧縮ファイル１１を生成する処理部である。ファイルライト部１１３は、例えば動的符号付与部１１２から出力された数値表記文字列の各動的符号を、それぞれバッファに格納して圧縮データを生成する。ファイルライト部１１３は、バッファに生成された圧縮データを基に圧縮ファイル１１を生成する。
【００３７】
（実施例１の符号化処理の流れ）
次に、実施例１の符号化処理の流れについて説明する。図７は、実施例１の符号化処理の流れの例を示す図である。図７の例に示すように、情報処理装置１００は、最初に、前処理をおこなう（ステップＳ１０）。例えば、情報処理装置１００は、前処理においてビットフィルタ１２１を保持する領域や、動的辞書１２２を作成する作業領域を確保する。次いで、ファイルリード部１１１は、符号化対象データ１０を読み出し（ステップＳ１１）、符号化対象データ１０から数値表記文字列を抽出する（ステップＳ１２）。
【００３８】
次いで、動的符号付与部１１２は、符号化対象データ１０から抽出された数値表記文字列に対応する動的符号がビットフィルタ１２１に登録されているか否かを判定する（ステップＳ１３）。そして、動的符号付与部１１２は、ビットフィルタ１２１に動的符号が登録されている場合（ステップＳ１３，Ｙｅｓ）、ステップＳ１８の処理に移行する。
【００３９】
一方、動的符号付与部１１２は、ビットフィルタ１２１に動的符号が登録されていない場合（ステップＳ１３，Ｎｏ）、ビットフィルタ１２１から数値表記文字列の数値データを取得する（ステップＳ１４）。次いで、動的符号付与部１１２は、ビットフィルタ１２１から取得した数値データと、動的辞書１２２に数値データを登録する順に付与される動的符号とを対応付けて動的辞書１２２に登録する（ステップＳ１５）。例えば、動的符号付与部１１２は、数値データが動的辞書１２２に登録される順番に、数値データに動的符号「A100h」「A101h」「A102h」「A103h」「A104h」「A105h」…を付与する。動的符号付与部１１２は、動的辞書１２２から登録された動的符号を取得する（ステップＳ１６）。次いで、動的符号付与部１１２は、動的辞書１２２から取得された動的符号を、数値データに対応づけてビットフィルタ１２１に登録する（ステップＳ１７）。
【００４０】
次いで、動的符号付与部１１２は、ビットフィルタ１２１から数値表記文字列に対応する動的符号を取得する（ステップＳ１８）。そして、ファイルライト部１１３は、ビットフィルタ１２１から取得された動的符号を圧縮ファイル１１に書き込む（ステップＳ１９）。
【００４１】
ファイルリード部１１１は、ファイルの読み出し位置がファイルの終端であるか否かを判定する（ステップＳ２０）。ファイルリード部１１１は、読み出し位置がファイルの終端である場合（ステップＳ２０，Ｙｅｓ）、処理を終了させる。一方、ファイルリード部１１１は、読み出し位置がファイルの途中である場合（ステップＳ２０，Ｎｏ）、ステップＳ１１の処理に戻る。
【００４２】
以上のように実施例１の情報処理装置１００は、符号化対象データ１０に含まれる各数値表記文字列に動的符号を割り当てるので、符号化処理時に数値表記文字列に割り当てる符号長を短くできる。
【００４３】
（効果）
圧縮部１１０は、対象テキストデータから符号化対象データ１０を読み出す。圧縮部１１０は、符号化対象データ１０に含まれる数値を表す数値表記文字列を符号化し、かかる符号化に応じて、数値表記文字列に対応する数値データと、符号とを対応付けて辞書に登録する。これにより、符号化された数値の演算を高速化することができる。
【００４４】
数値データは、数値表記文字列が表す数値をバイナリ化したデータである。これにより、符号化された動的符号から動的辞書１２２を参照して直接演算することができることから、符号化された数値の演算をさらに高速化することができる。
【実施例２】
【００４５】
実施例２では、実施例１で示したように符号化された数値の演算処理について説明する。図８は、実施例２のＣＳＶデータ１０ａが符号化された状態を説明するための図である。図８の例に示されるように、圧縮ファイル１１には、符号化対象データ１０の一例であるＣＳＶデータ１０ａが符号化された圧縮ＣＳＶデータ１１ａが含まれている。
【００４６】
図８の例に示すように、圧縮ファイル１１は、ヘッダ部と、符号化部と、トレーラ部とで構成される。そして、符号化部に動的符号（例えば、符号化された圧縮ＣＳＶデータ１１ａ）が格納され、トレーラ部に動的辞書１２２が格納される。
【００４７】
実施例１に示したように、圧縮部１１０は、数値表記文字列を表す数値データと、動的符号とを対応付けて動的辞書１２２に登録し、かかる動的符号で符号化を行う。例えば、図８の例では、圧縮部１１０が、ＣＳＶデータ１０ａに含まれる数値表記文字列「500」の数値データ「01F4h」と、動的符号「C200h」とを対応付けて動的辞書１２２に登録する。なお、図８では、動的辞書１２２には数値データのみを記載し、動的符号の記載は省略している。
【００４８】
そして、圧縮部１１０は、数値表記文字列「500」を、対応する動的符号「C200h」で圧縮ＣＳＶデータ１１ａに出力する。また、圧縮部１１０は、ＣＳＶデータ１０ａに含まれる数値表記文字列「300」の数値データ「012Ch」と、動的符号「C201h」とを対応付けて動的辞書１２２に登録する。そして、圧縮部１１０は、数値表記文字列「300」を、対応する動的符号「C201h」で圧縮ＣＳＶデータ１１ａに出力する。
【００４９】
なお、図８の例に示されるように、圧縮部１１０は、数値表記文字列だけではなく、単語も動的辞書１２２に登録可能である。例えば、圧縮部１１０は、ＣＳＶデータ１０ａに含まれる単語「チョコレート」について、単語コード「ｃ（チョコレート）」と、動的符号「C100h」とを対応付けて動的辞書１２２に登録する。そして、圧縮部１１０は、単語「チョコレート」を、対応する動的符号「C100h」で圧縮ＣＳＶデータ１１ａに出力する。なお、図８において「ｃ（単語）」の表記は、カッコ内の単語に対応する単語コードを表す。例えば、「ｃ（チョコレート）」は、「チョコレート」の単語コードを表す。
【００５０】
つづいて、圧縮ＣＳＶデータ１１ａを用いて演算をする場合の手順について説明する。図９Ａは、実施例２の数値の演算処理を説明するための図（１）である。図９Ａには、演算処理前の状態、すなわち図８に示した圧縮ファイル１１における圧縮ＣＳＶデータ１１ａおよび動的辞書１２２を示している。以降においては、各商品の売上金額（すなわち、単価×数量）を演算する例について説明する。
【００５１】
図９Ｂは、実施例２の数値の演算処理を説明するための図（２）である。図９Ｂに示すように、圧縮部１１０は、まず、算出される売上金額が入力されるカラムを、圧縮ＣＳＶデータ１１ａおよび動的辞書１２２に追加する。次に、圧縮部１１０は、追加されたカラムに対応する動的符号の生成を行い、生成された動的符号を動的辞書１２２に登録する。具体的には、圧縮部１１０は、圧縮ＣＳＶデータ１１ａの追加カラムに、動的符号「D000h」「D001h」…を付与する。また、圧縮部１１０は、動的辞書１２２の追加カラムに、数値データとして、初期値「0000h」（すなわち、バイナリ化したゼロの値）を登録する。
【００５２】
図９Ｃは、実施例２の数値の演算処理を説明するための図（３）である。図９Ｃに示すように、符号化された動的符号を用いて演算（ここでは乗算）を実施する場合、情報処理装置１００は、圧縮ＣＳＶデータ１１ａにおいて、演算の対象となる動的符号に対応する数値データを動的辞書１２２から抽出する（ステップＳ３０）。たとえば、図９Ｃに示すように、情報処理装置１００は、圧縮ＣＳＶデータ１１ａにおいて、商品の単価が符号化された動的符号「C200h」から、対応する数値データ「01F4h」を抽出し、商品の数量が符号化された動的符号「AA00h」から、対応する数値データ「0014h」を抽出する。
【００５３】
つづいて、情報処理装置１００は、抽出された演算の対象となる数値データをバッファに格納する（ステップＳ３１）。そして、情報処理装置１００は、かかる数値データを用いて演算を行い、演算結果をバッファに格納する（ステップＳ３２）。具体的には、情報処理装置１００は、数値表記文字列「500」をバイナリ化した数値データ「01F4h」と、数値表記文字列「200」をバイナリ化した数値データ「0014h」とを乗算して、演算結果である数値表記文字列「10000」をバイナリ化した数値データ「2710h」をバッファに格納している。
【００５４】
そして、情報処理装置１００は、かかる演算結果を、動的辞書１２２の対応する追加カラムに出力する（ステップＳ３３）。これにより、圧縮ＣＳＶデータ１１ａにおける合計金額に対応する追加カラムの動的符号「D000h」と、乗算結果である数値データ「2710h」が対応付けられる。
【００５５】
このように、数値データと動的符号とが対応付けられた動的辞書１２２を用いることにより、圧縮ＣＳＶデータ１１ａが符号化された状態のままで演算を行うことができる。したがって、符号化された数値表記文字列を復号化する必要がなくなることから、符号化された数値を演算する際の復号化負荷を削減できる。
【００５６】
なお、実施例２では、演算として乗算を行う例について示したが、実施できる演算は乗算に限られず、加算、減算、除算といった他の四則演算を行ってもよい。さらに、四則演算以外の演算を行ってもよい。
【００５７】
（効果）
情報処理装置１００は、辞書に登録された符号（動的符号）に対応する数値データを用いて演算を行う。これにより、符号化された数値を演算する際の復号化負荷を削減できる。
【００５８】
（実施例１、２に関連する他の態様）
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本発明の本旨を逸脱しない範囲の設計変更は適宜行われうる。
【００５９】
また、符号化処理の対象は、ファイル内のデータ以外にも、システムから出力される監視メッセージなどでもよい。例えば、バッファに順次格納される監視メッセージを上述の符号化処理により圧縮し、ログファイルとして格納するなどの処理が行なわれる。また、例えば、データベース内のページ単位に圧縮が行なわれてもよいし、複数のページをまとめた単位で圧縮が行なわれてもよい。
【００６０】
また、実施例１に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６１】
（情報処理装置のハードウェア構成）
図１０は、実施例１、２の情報処理装置１００のハードウェア構成を示す図である。図１０の例に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータ入力を受け付ける入力装置４０２と、モニタ４０３とを有する。また、コンピュータ４００は、記憶媒体からプログラム等を読み取る媒体読取装置４０４と、他の装置と接続するためのインターフェース装置４０５と、他の装置と無線により接続するための無線通信装置４０６とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０７と、ハードディスク装置４０８とを有する。また、各装置４０１〜４０８は、バス４０９に接続される。
【００６２】
ハードディスク装置４０８には、例えば図３に示したファイルリード部１１１、動的符号付与部１１２およびファイルライト部１１３の各処理部と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置４０８には、情報処理プログラムを実現するための各種データが記憶される。
【００６３】
ＣＰＵ４０１は、ハードディスク装置４０８に記憶された各プログラムを読み出して、ＲＡＭ４０７に展開して実行することで各種の処理を行う。これらのプログラムは、コンピュータ４００を、例えば図３に示したファイルリード部１１１、動的符号付与部１１２およびファイルライト部１１３として機能させることができる。
【００６４】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置４０８に記憶されている必要はない。例えば、コンピュータ４００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ４００が読み出して実行するようにしてもよい。コンピュータ４００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）等に接続された装置にこのプログラムを記憶させておき、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【００６５】
図１１は、コンピュータ４００で動作するプログラムの構成例を示す図である。コンピュータ４００において、図１０に示すハードウェア群２６（４０１〜４０９）の制御を行なうＯＳ（オペレーティング・システム）２７が動作する。ＯＳ２７に従った手順でＣＰＵ４０１が動作して、ハードウェア群２６の制御・管理が行なわれることにより、アプリケーションプログラム２９やミドルウェア２８に従った処理がハードウェア群２６で実行される。さらに、コンピュータ４００において、ミドルウェア２８またはアプリケーションプログラム２９が、ＲＡＭ４０７に読み出されてＣＰＵ４０１により実行される。
【００６６】
ＣＰＵ４０１により圧縮機能が呼び出された場合、ミドルウェア２８またはアプリケーションプログラム２９の少なくとも一部に基づく処理を行なうことで、（それらの処理をＯＳ２７に基づいてハードウェア群２６を制御して）圧縮部１１０の機能が実現される。圧縮機能は、それぞれアプリケーションプログラム２９自体に含まれてもよいし、アプリケーションプログラム２９に従って呼び出されることで実行されるミドルウェア２８の一部であってもよい。
【００６７】
アプリケーションプログラム２９（またはミドルウェア２８）の圧縮機能により得られる圧縮ファイル１１は、部分的に伸張することも可能である。圧縮ファイル１１の途中を伸張する場合には、伸張対象の部分までの圧縮データの伸張処理が抑制されるため、ＣＰＵ４０１の負荷が抑制される。また、伸張対象の圧縮データを部分的にＲＡＭ４０７上に展開するので、ワークエリアも削減される。
【００６８】
図１２は、実施形態のシステムにおける装置の構成例を示す図である。図１２のシステムは、コンピュータ４００ａ、コンピュータ４００ｂ、基地局３０およびネットワーク４０を含む。コンピュータ４００ａは、無線または有線の少なくとも一方により、コンピュータ４００ｂと接続されたネットワーク４０に接続している。
【符号の説明】
【００６９】
１００              情報処理装置
１１０              圧縮部
１１１              ファイルリード部
１１２              動的符号付与部
１２０              記憶部
１２１              ビットフィルタ
１２２              動的辞書
【図１】
2018195956.tif 000003
【図２】
2018195956.tif 000004
【図３】
2018195956.tif 000005
【図４】
2018195956.tif 000006
【図５】
2018195956.tif 000007
【図６】
2018195956.tif 000008
【図７】
2018195956.tif 000009
【図８】
2018195956.tif 000010
【図９Ａ】
2018195956.tif 000011
【図９Ｂ】
2018195956.tif 000012
【図９Ｃ】
2018195956.tif 000013
【図１０】
2018195956.tif 000014
【図１１】
2018195956.tif 000015
【図１２】
2018195956.tif 000016