(57)【要約】データ圧縮装置は、データの多様度を考慮しない不適切な長さのコードを使用して、圧縮率を低下させる。  データ圧縮装置は、フィールド数の各々に対応して、フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶手段と、フィールド数（Ｎ；複数）を入力して、符号長記憶手段からＮ以下のフィールド数（ｎ）に対応する符号長を取得し、符号長の符号を出力する割り当て手段を備える。
2010067897.tif 000002
【特許請求の範囲】
【請求項１】
フィールド数の各々に対応して、前記フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶手段と、
フィールド数（Ｎ；複数）を入力して、前記符号長記憶手段から前記Ｎ以下の前記フィールド数（ｎ）に対応する前記符号長を取得し、当該符号長の符号を出力する割り当て手段を備えるデータ圧縮装置。
【請求項２】
未使用な符号が存在する前記符号長に対応する前記フィールド数のうち、前記Ｎ以下の最大の値を前記符号長記憶手段の前記フィールド数から前記ｎとして取得し、前記未使用な符号を使用中にして出力する前記割り当て手段を備える、請求項１のデータ圧縮装置。
【請求項３】
符号表と、
前記Ｎ個のフィールドからなる格納データを入力して、前記格納データのうち先頭から連続した前記ｎ個のフィールドのデータ（ｎデータ）と前記符号を対応させたエントリを前記符号表に格納し、前記ｎデータを前記符号で置換した前記格納データ（格納圧縮データ）を出力する前記割り当て手段を備える、請求項１または２のデータ圧縮装置。
【請求項４】
前記格納圧縮データをインデックスとしてコンテンツを格納するコンテンツデータベースと、
前記Ｎ個の連続したフィールドを含む検索データを入力して前記符号表から検索し、前記検索データと前記ｎデータの両者間で一致する先頭から連続したフィールド数が最大値（ｍ；１以上Ｎ以下）となる前記ｎデータを格納する前記エントリを特定して、先頭から連続した前記ｍ個のフィールドのデータ（ｍデータ）を、当該エントリの符号で置換した前記検索データ（検索圧縮データ）を作成する検索符号化手段と、
前記検索圧縮データと一致する前記インデックスを有するコンテンツを前記コンテンツデータベースから取得するＤＢ管理手段を備える、請求項３のデータ圧縮装置。
【請求項５】
前記検索データは、第ｐ（前記Ｎ未満の値）フィールド以降にワイルドカード指定を包含し、
前記ｐ未満のフィールド数対応の符号長を包含するが前記ｐ以上のフィールド数対応の符号長を包含しない前記符号長記憶手段と、
前記検索圧縮データのうち前記ワイルドカード指定以外の部分が、一致する前記インデックスを有するコンテンツを前記コンテンツデータベースから取得する前記ＤＢ管理手段を備える、請求項４のデータ圧縮装置。
【請求項６】
第１と第２の符号長記憶手段と、
第１と第２の符号表と、
前記格納データから、第１と第２の連続フィールド列（部分格納データ）を取得し、前記第１の部分格納データから前記第１の符号長表と第１の符号表に基づいて第１の部分格納圧縮データを生成し、前記第２の部分格納データから前記第２の符号長表と第２の符号表に基づいて第２の部分格納圧縮データを生成し、前記第１の部分格納データを前記第１の部分圧縮格納データで、前記第２の部分格納データを前記第２の部分圧縮格納データで置換した前記格納置換データを作成する前記割り当て手段を備える、請求項３のデータ圧縮装置。
【請求項７】
受信符号表格納手段と、
前記符号表の内容を受信して前記受信符号表格納手段に格納する受信手段と、
前記格納圧縮データを受信して、前記受信符号表格納手段内の前記符号表から前記格納圧縮データ内の前記符号と前記エントリ内の前記符号が一致するエントリを検索し、当該エントリの前記ｎデータで、前記格納圧縮データ内の前記符号を置換する復号手段を備える、圧縮データ受信装置に、
前記符号表の内容と前記格納圧縮データを送信する送信手段を備える、請求項３のデータ圧縮装置。
【請求項８】
前記圧縮データ受信装置と請求項７のデータ圧縮装置を包含する圧縮データ通信システム。
【請求項９】
フィールド数の各々に対応して、前記フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶手段を準備する符号長記憶工程と、
フィールド数（Ｎ；複数）を入力して、前記符号長記憶手段から前記Ｎ以下の前記フィールド数（ｎ）に対応する前記符号長を取得し、当該符号長の符号を出力する割り当て工程を有するデータ圧縮方法。
【請求項１０】
未使用な符号が存在する前記符号長に対応する前記フィールド数のうち、前記Ｎ以下の最大の値を前記符号長記憶手段の前記フィールド数から前記ｎとして取得し、前記未使用な符号を使用中にして出力する前記割り当て工程を有する、請求項９のデータ圧縮方法。
【請求項１１】
符号表を準備する符号表工程と、
前記Ｎ個のフィールドからなる格納データを入力して、前記格納データのうち先頭から連続した前記ｎ個のフィールドのデータ（ｎデータ）と前記符号を対応させたエントリを前記符号表に格納し、前記ｎデータを前記符号で置換した前記格納データ（格納圧縮データ）を出力する前記割り当て工程を有する、請求項９または１０のデータ圧縮方法。
【請求項１２】
前記格納圧縮データをインデックスとしてコンテンツを格納するコンテンツデータベースを準備するＤＢ工程と、
前記Ｎ個の連続したフィールドを含む検索データを入力して前記符号表から検索し、前記検索データと前記ｎデータの両者間で一致する先頭から連続したフィールド数が最大値（ｍ；１以上Ｎ以下）となる前記ｎデータを格納する前記エントリを特定して、先頭から連続した前記ｍ個のフィールドのデータ（ｍデータ）を、当該エントリの符号で置換した前記検索データ（検索圧縮データ）を作成する検索符号化工程と、
前記検索圧縮データと一致する前記インデックスを有するコンテンツを前記コンテンツデータベースから取得するＤＢ管理工程を有する、請求項１１のデータ圧縮方法。
【請求項１３】
前記検索データは、第ｐ（前記Ｎ未満の値）フィールド以降にワイルドカード指定を包含し、
前記ｐ未満のフィールド数対応の符号長を包含するが前記ｐ以上のフィールド数対応の符号長を包含しない前記符号長記憶手段を準備する前記符号長記憶工程と、
前記検索圧縮データのうち前記ワイルドカード指定以外の部分が、一致する前記インデックスを有するコンテンツを前記コンテンツデータベースから取得する前記ＤＢ管理工程を有する、請求項１２のデータ圧縮方法。
【請求項１４】
第１と第２の符号長記憶手段を準備する符号長記憶工程と、
第１と第２の符号表を準備する符号表工程と、
前記格納データから、第１と第２の連続フィールド列（部分格納データ）を取得し、前記第１の部分格納データから前記第１の符号長表と第１の符号表に基づいて第１の部分格納圧縮データを生成し、前記第２の部分格納データから前記第２の符号長表と第２の符号表に基づいて第２の部分格納圧縮データを生成し、前記第１の部分格納データを前記第１の部分圧縮格納データで、前記第２の部分格納データを前記第２の部分圧縮格納データで置換した前記格納置換データを作成する前記割り当て工程を有する、請求項１１のデータ圧縮方法。
【請求項１５】
受信符号表格納手段と、
前記符号表の内容を受信して前記受信符号表格納手段に格納する受信手段と、
前記格納圧縮データを受信して、前記受信符号表格納手段内の前記符号表から前記格納圧縮データ内の前記符号と前記エントリ内の前記符号が一致するエントリを検索し、当該エントリの前記ｎデータで、前記格納圧縮データ内の前記符号を置換する復号手段を有する、圧縮データ受信装置に、
前記符号表の内容と前記格納圧縮データを送信する送信工程を有する、請求項１１のデータ圧縮方法。
【請求項１６】
フィールド数の各々に対応して、前記フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶手段を備えるコンピュータに、
フィールド数（Ｎ；複数）を入力して、前記符号長記憶手段から前記Ｎ以下の前記フィールド数（ｎ）に対応する前記符号長を取得し、当該符号長の符号を出力する割り当て処理を実行させるデータ圧縮プログラム。
【請求項１７】
前記コンピュータに、
未使用な符号が存在する前記符号長に対応する前記フィールド数のうち、前記Ｎ以下の最大の値を前記符号長記憶手段の前記フィールド数から前記ｎとして取得し、前記未使用な符号を使用中にして出力する前記割り当て処理を実行させる、請求項１６のデータ圧縮プログラム。
【請求項１８】
符号表を備える前記コンピュータに、
前記Ｎ個のフィールドからなる格納データを入力して、前記格納データのうち先頭から連続した前記ｎ個のフィールドのデータ（ｎデータ）と前記符号を対応させたエントリを前記符号表に格納し、前記ｎデータを前記符号で置換した前記格納データ（格納圧縮データ）を出力する前記割り当て処理を実行させる、請求項１６または１７のデータ圧縮プログラム。
【請求項１９】
前記格納圧縮データをインデックスとしてコンテンツを格納するコンテンツデータベースを備える前記コンピュータに、
前記Ｎ個の連続したフィールドを含む検索データを入力して前記符号表から検索し、前記検索データと前記ｎデータの両者間で一致する先頭から連続したフィールド数が最大値（ｍ；１以上Ｎ以下）となる前記ｎデータを格納する前記エントリを特定して、先頭から連続した前記ｍ個のフィールドのデータ（ｍデータ）を、当該エントリの符号で置換した前記検索データ（検索圧縮データ）を作成する検索符号化処理と、
前記検索圧縮データと一致する前記インデックスを実行させるコンテンツを前記コンテンツデータベースから取得するＤＢ管理処理を実行させる、請求項１８のデータ圧縮プログラム。
【請求項２０】
前記検索データは、第ｐ（前記Ｎ未満の値）フィールド以降にワイルドカード指定を包含し、
前記ｐ未満のフィールド数対応の符号長を包含するが前記ｐ以上のフィールド数対応の符号長を包含しない前記符号長記憶手段を前記コンピュータに、
前記検索圧縮データのうち前記ワイルドカード指定以外の部分が、一致する前記インデックスを実行させるコンテンツを前記コンテンツデータベースから取得する前記ＤＢ管理処理を実行させる、請求項１９のデータ圧縮プログラム。
【請求項２１】
第１と第２の符号長記憶手段と、第１と第２の符号表を備える前記コンピュータに、
前記格納データから、第１と第２の連続フィールド列（部分格納データ）を取得し、前記第１の部分格納データから前記第１の符号長表と第１の符号表に基づいて第１の部分格納圧縮データを生成し、前記第２の部分格納データから前記第２の符号長表と第２の符号表に基づいて第２の部分格納圧縮データを生成し、前記第１の部分格納データを前記第１の部分圧縮格納データで、前記第２の部分格納データを前記第２の部分圧縮格納データで置換した前記格納置換データを作成する前記割り当て処理を実行させる、請求項１８のデータ圧縮プログラム。
【請求項２２】
受信符号表格納手段と、
前記符号表の内容を受信して前記受信符号表格納手段に格納する受信手段と、
前記格納圧縮データを受信して、前記受信符号表格納手段内の前記符号表から前記格納圧縮データ内の前記符号と前記エントリ内の前記符号が一致するエントリを検索し、当該エントリの前記ｎデータで、前記格納圧縮データ内の前記符号を置換する復号手段を実行させる、圧縮データ受信装置に、前記符号表の内容と前記格納圧縮データを送信する送信処理を、前記コンピュータに実行させる請求項１８のデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ圧縮装置、データ圧縮方法、データ圧縮プログラム、および、圧縮データ送受信システムに関する。
【背景技術】
【０００２】
特許文献１は、データストリームの文字列の各々に専用のコードを割り当て、当該コードを用いて、データストリームを圧縮する送信機が記載されている。ここで、当該コードは、文字列の辞書中におけるアドレスである。
特許文献２は、入力文字列と一致する辞書中の部分列で、最も長い部分列（Ｓ）を検索するデータ圧縮復元装置を開示する。この装置は、部分列Ｓを、辞書中の位置に基づいて決定されるビット長の符号に変換して圧縮する。
特許文献３は、複数のフィールドからなる元ファイルのレコードを入力して、その複数のフィールドをまとめて固定長フィールドに変更するファイル管理方法を開示する。
【特許文献１】特開平８−２５１０３５号公報
【特許文献２】特開平６−２０２８４４号公報
【特許文献３】特開平１１−１５４１５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記の文献の技術は、複数フィールドからなるデータの圧縮に際し、各フィールドに於けるデータの多様度を考慮した最適な長さの符号を使用して、当該データを圧縮することが出来ない。この結果、不適切な長さのコードを使用して、圧縮率を低下させるおそれがある。
具体的に、特許文献１および特許文献２に記載の技術は、文字列をコードまたは符号で圧縮するに際し、当該文字列の多様度を考慮しない。また、特許文献３の方法は、フィールドの長さを基準に複数フィールドをまとめており、フィールド内データの多様度は考慮しない。
本発明の目的は、上記課題を解決するための、データ圧縮装置、データ圧縮方法、データ圧縮プログラム、および、圧縮データ通信システムを提供することにある。
【課題を解決するための手段】
【０００４】
本発明の一実施形態のデータ圧縮装置は、フィールド数の各々に対応して、前記フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶部と、フィールド数（Ｎ；複数）を入力して、前記符号長記憶部から前記Ｎ以下の前記フィールド数（ｎ）に対応する前記符号長を取得し、前記符号長の符号を出力する割り当て部を備える。
本発明の一実施形態のデータ圧縮方法は、フィールド数の各々に対応して、前記フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶部を準備する符号長記憶工程と、フィールド数（Ｎ；複数）を入力して、前記符号長記憶部から前記Ｎ以下の前記フィールド数（ｎ）に対応する前記符号長を取得し、前記符号長の符号を出力する割り当て工程を有する。
本発明の一実施形態のデータ圧縮プログラムは、フィールド数の各々に対応して、前記フィールド数の増加に伴って減少せずに少なくとも一度は増加する符号長の各々を格納する符号長記憶部を備えるコンピュータに、フィールド数（Ｎ；複数）を入力して、前記符号長記憶部から前記Ｎ以下の前記フィールド数（ｎ）に対応する前記符号長を取得し、前記符号長の符号を出力する割り当て処理を実行させる。
【発明の効果】
【０００５】
本発明は、データの多様度を反映した、圧縮率が高いデータ圧縮を可能とする。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態にかかるデータ圧縮装置１０が圧縮するデータを示す。
【図２】図２は、第１の実施形態のデータ圧縮装置１０の構成図である。
【図３】図３は、符号長記憶部４０に格納されるデータを示す。
【図４】図４は、符号表５０に格納されるデータを示す。
【図５】図５は、ＤＢ管理部３０の動作フローチャートである。
【図６Ａ】図６Ａは、割り当て部３２の動作フローチャート（１／２）である。
【図６Ｂ】図６Ｂは、割り当て部３２の動作フローチャート（２／２）である。
【図７】図７は、検索符号化部３３の動作フローチャートである。
【図８】図８は、復号部３１の動作フローチャートである。
【図９】図９は、第２の実施形態のデータ圧縮装置１０が圧縮するデータを示す。
【図１０】図１０は、第２の実施形態の符号長記憶部４０に格納されるデータを示す。
【図１１】図１１は、第３の実施形態のデータ圧縮装置１０の構成図である。
【図１２】図１２は、本実施形態のデータ圧縮装置１０が行うデータ圧縮の様子を示す。
【図１３】図１３は、第４の実施形態のデータ圧縮装置１０の構成図である。
【図１４】図１４は、第５の実施形態のデータ圧縮装置１０が圧縮するデータを示す。
【図１５】図１５は、第５の実施形態の割り当て部３２の動作フローチャートである。
【図１６】図１６は、本発明のデータ圧縮装置１０の基本構成を示す。
【符号の説明】
【０００７】
１０  データ圧縮装置
１１  コンピュータ
１２  コンテンツデータベース
１３  圧縮データ受信装置
１４  圧縮データ通信システム
２０  格納データ
２１  格納圧縮データ
２２  格納コンテンツ
２４  コンテンツデータ
２５  コンテンツ圧縮データ
２６  検索データ
２７  検索圧縮データ
２８  出力コンテンツ
３０  ＤＢ管理部
３１  復号部
３２  割り当て部
３３  検索符号化部
３４  送信部
３５  受信部
３６  受信符号表格納部
３８  圧縮解除プログラム
３９  データ圧縮プログラム
４０  符号長記憶部
４１  記憶部エントリ
４２  フィールド数
４３  符号長
５０  符号表
５１  表エントリ
５２  コード
５３  ｎ値
５４  ｎデータ
５５  長さ表示
５６  符号
【発明を実施するための最良の形態】
【０００８】
図１は、第１の実施形態にかかるデータ圧縮装置１０が圧縮するデータを示す。圧縮されるデータは、複数（Ｎ個）のフィールドから構成される。各フィールドは区切り記号で区切られているものとする。図１によれば、データ圧縮装置１０は、先頭から第ｎ１フィールドまでのデータを圧縮するときは長さｌ１の圧縮符号（以降、符号）を用いる。同装置は、先頭から第ｎ２フィールドまでのデータを圧縮するときは長さｌ２の符号を用いる。同装置は、先頭から第Ｎフィールドまでのデータを圧縮するときは長さｌＮの符号を用いる。
以降、先頭から第ｎフィールドまでのデータをｎデータと略記することがある。
利用者は、各フィールドが取りうる値の多様度を考慮して、フィールド数に対応する符号の長さ（ｌ１、ｌ２、ｌＮ等）をデータ圧縮装置１０に指定することが出来る。例えば、同装置が扱う範囲内で、ｎ１データは比較的固定的で多様度が低いが、第ｎ１＋１フィールドから第ｎ２フィールド迄のデータは多様度が高い場合、利用者はｌ１に比較的小さく、ｌ２に大きく増加した値を指定できる。更に、例えば、第ｎ２＋１以降のデータの多様度が高いときは、利用者はｌ２に比べて大きく増加した値をｌＮとして指定できる。
なお、フィールドが取りうる値の多様度が高いとは、当該フィールドに格納されうるデータのバリエーション数が多いことを意味する。反対に、フィールドが取りうる値の多様度が低いとは、当該フィールドに格納されうるデータのバリエーション数が少ないことを意味する。例えば、あるレコードの先頭フィールドは、和暦の元号２文字データの格納域であり、データのバリエーションは『昭和』か『平成』の２通りであるとする。一方、後続のフィールドは英文字２文字データの格納域であり、データのバリエーションは、５２ｘ５２通りであるとする。この場合、先頭フィールドの多様度は低いが、後続フィールドは多様度は高いと言っても良い。
データは、例えば、ＥＰＣ（Ｅｌｅｃｔｒｏｎｉｃ  Ｐｒｏｄｕｃｔ  Ｃｏｄｅ）のコード体系で表現したＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）タグＩＤが考えられる。ＥＰＣは階層的な構造を持ち、１つのＥＰＣは、タグの種別コード、企業コード、商品コード、および個品を区別するシリアルコードという複数のフィールドから構成される。
データは、例えば、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）であっても良い。ＵＲＬも複数のフィールドからなる階層的な構造を持つ。データはＥＰＣやＵＲＬに限られず、複数のフィールドから構成されるものであれば良い。
図２は、第１の実施形態のデータ圧縮装置１０の構成図である。データ圧縮装置１０は、コンテンツデータベース１２と接続されている。コンテンツデータベース１２は、例えば、ＲＦＩＤのタグＩＤ対応に、当該タグが付されている商品等の情報をコンテンツとして格納している。
同装置は、ＤＢ管理部３０、割り当て部３２、検索符号化部３３、復号部３１、符号長記憶部４０、符号表５０を包含する。符号長記憶部４０、符号表５０は図示しないメモリ等に配置される。
ＤＢ管理部３０は、格納データ２０と格納コンテンツ２２を端末等から入力する。同部は、格納データ２０を圧縮した格納圧縮データ２１をインデックスとして格納コンテンツ２２をコンテンツデータベース１２に格納する。
また、同部は検索データ２６を端末等から入力する。同部は、格納データ２０を圧縮した格納圧縮データ２１をインデックスとして用いて、コンテンツデータベース１２を検索し、出力コンテンツ２８を端末等に出力する。
格納コンテンツ２２は、コンテンツデータ２４を包含していても良い。ＤＢ管理部３０は、コンテンツデータ２４を圧縮してコンテンツデータベース１２に格納する。圧縮されたコンテンツデータ２４は、コンテンツ圧縮データ２５である。
格納データ２０、検索データ２６、コンテンツデータ２４が、図１のデータに該当する。なお、ＤＢ管理部３０は、その一部として市販のデータベースシステムを使用していても良い。
割り当て部３２は、格納データ２０、または、コンテンツデータ２４を入力し、圧縮して、格納圧縮データ２１、または、コンテンツ圧縮データ２５を出力する。検索符号化部３３は、検索データ２６を入力し、圧縮して、検索圧縮データ２７を出力する。復号部３１は、コンテンツ圧縮データ２５を入力し、圧縮解除して、コンテンツデータ２４を出力する。
ＤＢ管理部３０、割り当て部３２、検索符号化部３３、復号部３１は、ハードウェアで実現される。ＤＢ管理部３０、割り当て部３２、検索符号化部３３、復号部３１は、コンピュータ１１でもあるデータ圧縮装置１０の図示しないプロセッサが、図示しないメモリ上のデータ圧縮プログラム３９を実行することで実現されても良い。
図３は、符号長記憶部４０に格納されるデータを示す。符号長記憶部４０は記憶部エントリ４１を複数格納する。各記憶部エントリ４１はフィールド数４２と符号長４３を対応させて記憶する。
フィールド数４２は、例えば、１から格納データ２０（検索データ２６、コンテンツデータ２４も同じ）のフィールドの数の最大値（例えば６）までを格納する。フィールド数４２は、１から格納データ２０等のフィールドの数の最大値未満の数までを格納していても良い。
符号長４３は、フィールド数４２の増加に伴って、順次増加する値（例えば、１から４まで。同じ値があっても良い）を格納する。符号長４３の単位は、例えばバイト長やビット長である。
図４は、符号表５０に格納されるデータを示す。符号表５０は表エントリ５１を格納する。各表エントリ５１はコード５２、ｎ値５３、ｎデータ５４を対応させて記憶する。コード５２は長さ表示５５と符号５６を包含する。長さ表示５５は符号５６の長さを示す、例えば、２ビットのデータである。例えば、０１は符号５６が１バイトであること、１０は符号５６が２バイトであること、１１は符号５６が４バイトであることを示すこととする。（００は、後述するように、符号化されなかったことを示しても良い。）
なお、符号５６に終端表示を付加して符号５６の長さを認識する場合、長さ表示５５は不要である。データ圧縮装置１０は、例えば、符号５６の値として２ビット連続する０は含めないようにして、２ビット連続する０を終端表示として使用することが出来る。
図５は、ＤＢ管理部３０の動作フローチャートである。ＤＢ管理部３０は、端末等からコンテンツデータベース１２への格納要求を入力する（Ｓ１でＹ）と、同端末等から格納データ２０を入力して割り当て部３２に出力し、同部から格納圧縮データ２１を受信する（Ｓ２）。
続いて、ＤＢ管理部３０は、同端末等から格納コンテンツ２２を入力し、格納コンテンツ２２がコンテンツデータ２４を包含していればこれを圧縮する（Ｓ３）。
具体的に、同部は格納コンテンツ２２にコンテンツデータ２４が含まれているか否かを判断する。含まれていれば、同部は、コンテンツデータ２４を取り出して割り当て部３２に出力し、同部からコンテンツ圧縮データ２５を受信する。同部は、受信したコンテンツ圧縮データ２５で格納コンテンツ２２内のコンテンツデータ２４を置換する。
コンテンツデータ２４が含まれているか否かの判断方法や格納コンテンツ２２内でのコンテンツデータ２４の位置取得方法は、予め定められているものとする。例えば、格納コンテンツ２２の特定エリアが、フラグやポインタを含んでいても良い。
ＤＢ管理部３０は、格納圧縮データ２１を検索用のインデックス値として付して、格納コンテンツ２２をコンテンツデータベース１２に格納する（Ｓ４）。
端末等からコンテンツデータベース１２への検索要求を入力する（Ｓ１でＮ）と、ＤＢ管理部３０は、同端末等から検索データ２６を入力して検索符号化部３３に出力し、同部から検索圧縮データ２７を受信する（Ｓ５）。
続いて、ＤＢ管理部３０は、検索圧縮データ２７をキーとしてコンテンツデータベース１２を検索し、出力コンテンツ２８を読み込む（Ｓ６）。
最後に同部は、出力コンテンツ２８がコンテンツ圧縮データ２５を包含していればこれを圧縮解除して、出力コンテンツ２８を端末等に出力する（Ｓ７）。
具体的に、同部は出力コンテンツ２８にコンテンツ圧縮データ２５が含まれているか否かを判断する。含まれていれば、同部は、コンテンツ圧縮データ２５を取り出して復号部３１に出力し、同部からコンテンツデータ２４を受信する。同部は、受信したコンテンツデータ２４で出力コンテンツ２８内のコンテンツ圧縮データ２５を置換する。
図６Ａ及び図６Ｂは、割り当て部３２の動作フローチャートである。なお、以下の説明は、入力データが格納データ２０である場合についてのものであるが、入力データがコンテンツデータ２４である場合も同じである。
割り当て部３２は、入力した格納データ２０のフィールド数（Ｎ）をカウントし（Ｓ１１）、検索フィールド数（Ｌ）にＮを設定する（Ｓ１２）。格納データ２０のフィールド数が一律である場合、このカウントは不要である。また、Ｎは、パラメータ値として外部から与えられても良い。
同部は、フィールド数４２がＬである記憶部エントリ４１を発見するため符号長記憶部４０を検索し（Ｓ１３）、発見できれば（Ｓ１４でＹ）、発見した記憶部エントリ４１から符号長４３を取得する（Ｓ１５）。
その後同部は、格納データ２０の先頭から第Ｌフィールドまでのデータ（格納Ｌデータ）に既に割り当てられている符号５６を発見するため符号表５０を検索する。即ち、同部は、ｎ値５３がＬと同じ値、かつ、ｎデータ５４が格納Ｌデータと一致する表エントリ５１を探す（Ｓ１６）。
発見できなければ（Ｓ１ＡでＮ）、同部は新たな符号を生成する。即ち、同部は、取得した符号長４３の長さを持ち、符号表５０に登録されていない符号を生成する（Ｓ１Ｂ）。具体的に同部は、例えば、符号長４３対応に既に生成済み符号５６の最大値を記憶しておき、生成時に１加算した値を新たな符号として出力しても良い。
生成できると（Ｓ１ＣでＹ）、同部は符号表５０に新たな表エントリ５１を追加する。即ち同部は、生成した符号を符号５６に、その長さを長さ表示５５に、Ｌをｎ値５３に、格納Ｌデータをｎデータ５４に各々格納する（Ｓ１Ｄ）。
同部は、格納データ２０中の格納Ｌデータを、追加した表エントリ５１のコード５２（長さ表示５５と符号５６）で置換して、格納圧縮データ２１を生成してＤＢ管理部３０に出力する（Ｓ１Ｅ）。なお、ＤＢ管理部３０が置換を行うこととして、割り当て部３２は、コード５２をＤＢ管理部３０に出力することとしても良い。
ｎ値５３がＬと同じ値、かつ、ｎデータ５４が格納Ｌデータと一致する表エントリ５１を発見できた場合（Ｓ１ＡでＹ）、同部は、格納データ２０中の格納Ｌデータを、当該表エントリ５１のコード５２で置換して格納圧縮データ２１を生成する。同部は、生成した格納圧縮データ２１をＤＢ管理部３０に出力する（Ｓ１Ｆ）。
フィールド数４２がＬである記憶部エントリ４１を発見できない（Ｓ１４でＮ）、または、新たな符号生成に失敗した場合（Ｓ１ＣでＮ）、割り当て部３２はＬを１減じる（Ｓ１７）。その後同部はＳ１３から再実行する。Ｌを１減じた結果０になれば（Ｓ１８でＮ）、同部は、格納データ２０の先頭に長さ表示５５の代わりの値（２ビットデータ００）を付して、格納圧縮データ２１としてＤＢ管理部３０に出力する（Ｓ１９）。このケースは、使用可能な符号が生成出来ず、圧縮出来なかった場合である。
図７は、検索符号化部３３の動作フローチャートである。検索符号化部３３は、入力した検索データ２６のフィールド数（Ｎ）をカウントし（Ｓ２１）、検索フィールド数（Ｌ）にＮを設定する（Ｓ２２）。検索データ２６のフィールド数が一律である場合、このカウントは不要である。また、Ｎは、パラメータ値として外部から与えられても良い。
同部は、フィールド数４２がＬである記憶部エントリ４１を発見するため符号長記憶部４０を検索する（Ｓ２３）。発見できれば（Ｓ２４でＹ）、同部は、検索データ２６の先頭から第Ｌフィールドまでのデータ（検索Ｌデータ）に既に割り当てられている符号５６を発見するため符号表５０を検索する。即ち、同部は、ｎ値５３がＬと同じ値、かつ、ｎデータ５４が検索Ｌデータと一致する表エントリ５１を探す（Ｓ２５）。
発見できた場合（Ｓ２６でＹ）、同部は、検索データ２６中の検索Ｌデータを、当該表エントリ５１のコード５２で置換して、検索圧縮データ２７を生成してＤＢ管理部３０に出力する（Ｓ２７）。
フィールド数４２がＬである記憶部エントリ４１を発見できない（Ｓ２４でＮ）、または、ｎ値５３がＬと同じ値かつｎデータ５４が検索Ｌデータと一致する表エントリ５１を発見できない場合（Ｓ２６でＮ）、検索符号化部３３はＬを１減ずる（Ｓ２８）。その後同部はＳ２３から再実行する。Ｌを１減じた結果０になれば（Ｓ２９でＮ）、同部は、検索データ２６の先頭に長さ表示５５の代わりの値（２ビットデータ００）を付して、検索圧縮データ２７としてＤＢ管理部３０に出力する（Ｓ２Ａ）。このケースは、圧縮できる検索Ｌデータが符号表５０に登録されていないため、圧縮出来なかった場合である。
図８は、復号部３１の動作フローチャートである。復号部３１は、コンテンツ圧縮データ２５を入力して（Ｓ３１）、先頭２ビット（圧縮されていれば長さ表示が格納されている領域）が００であるか確認する（Ｓ３２）。
００でない場合（Ｓ３２でＮ）、同部はコンテンツ圧縮データ２５からコードを取り出して（Ｓ３３）、当該コードと一致するコード５２を有する表エントリ５１を検索する（Ｓ３４）。同部は、コンテンツ圧縮データ２５のコードを、当該表エントリ５１のｎデータ５４で置換して、コンテンツデータ２４を生成して出力する（Ｓ３５）。
００である場合（Ｓ３２でＹ）、同部は、コンテンツ圧縮データ２５の先頭２ビットの００を削除して、コンテンツデータ２４を生成して出力する（Ｓ３６）。
上記の説明において、データ圧縮装置１０がデータの先頭から連続したｎフィールドを符号５６で圧縮する。データ圧縮装置１０は、データの後ろから連続したｎフィールドを符号５６で圧縮するようにしても良い。
また、連続したフィールドの多様度を調整する（例えば、多様度の低いフィールドを連続させる）為に、ＤＢ管理部３０が、格納データ２０や検索データ２６のフィールドの前後関係を入れ替えてから、圧縮するようにしても良い。
本実施形態のデータ圧縮装置１０は、格納データ２０等のフィールドの取りうる値の多様度に応じて、圧縮率が高いデータ圧縮を可能とする。その理由は、利用者が符号長記憶部４０に、フィールドの値の多様度に応じた適切な符号長４３を指定できるからである。
また、本実施形態のデータ圧縮装置１０は、複数フィールドを包含するデータの圧縮率を高く維持できる。その理由は、複数のフィールドをまとめて一つの符号５６に圧縮するからである。
さらに、本実施形態のデータ圧縮装置１０は、ある符号長４３の符号５６が使い切られたときでも、高い圧縮率を維持できる。その理由は、圧縮対象フィールド数を順次減じながらも、複数フィールドを当該複数フィールドの多様度に適した符号長４３の符号５６を用いるからである。
図９は、第２の実施形態のデータ圧縮装置１０が圧縮するデータを示す。本実施形態のデータ圧縮装置１０は、コンテンツデータベース１２の検索に於いて、ワイルドカード指定の使用を可能とする。これを達成するために、本実施形態のデータ圧縮装置１０は、格納データ２０および検索データ２６の符号化する最大範囲を第ｐ−１フィールド（ｐ＜Ｎ）までに限定している。ワイルドカードは、圧縮されない第ｐフィールド以降で指定可能である。
図１０は、第２の実施形態の符号長記憶部４０に格納されるデータを示す。符号表５０が格納するフィールド数４２の最大値はｐ−１となっている。その理由は、格納データ２０および検索データ２６を符号化する最大範囲を第ｐ−１フィールドまでに限定するためである。
本実施形態のＤＢ管理部３０は、ワイルドカードを指定したコンテンツデータベース１２の検索を行う。ワイルドカードを指定した検索技術は公知であるため詳細は省略する。他の点に於いて、本実施形態のデータ圧縮装置１０は第１の実施形態と同じである。
本実施形態のデータ圧縮装置１０は、柔軟なデータ検索を可能とする。その理由は、検索に於いて、ワイルドカード指定が使用できるからである。
図１１は、第３の実施形態のデータ圧縮装置１０の構成図である。本実施形態のデータ圧縮装置１０は複数の符号長記憶部４０と複数の符号表５０を包含する。
図１２は、本実施形態のデータ圧縮装置１０が行うデータ圧縮の様子を示す。本実施形態のデータ圧縮装置１０の割り当て部３２は、格納データ２０を複数のフィールド列（部分格納データ）に分割して、各々を異なる符号長記憶部４０と符号表５０を用いて圧縮する。
例えば、割り当て部３２は、第１フィールドから第ｎ１−１フィールドまで（第１の部分格納データ）を第１の符号長記憶部４０と符号表５０を用いて圧縮する。同部は、第ｎ１フィールドから第ｎ２−１フィールドまで（第２の部分格納データ）を第２の符号長記憶部４０と符号表５０を用いて圧縮する。同部は、第ｎ２フィールドから第Ｎフィールドまで（第３の部分格納データ）を第２の符号長記憶部４０と符号表５０を用いて圧縮する。
同装置は、複数の部分格納データを、同一の符号長記憶部４０と符号表５０を用いて圧縮しても良い。格納データ２０の分割数は３に限定されない。さらに、同部および検索符号化部３３は、各々、コンテンツデータ２４および検索データ２６も同様に圧縮する。
なお、部分格納データの区切りや、各部分格納データと、符号長記憶部４０および符号表５０との対応付けは、例えば、予め固定的に定められているものとする。他の点に於いて、本実施形態のデータ圧縮装置１０は第１の実施形態と同じである。
本実施形態のデータ圧縮装置１０は、柔軟なデータ圧縮が可能となる。その理由は、部分格納データ等に対して、それぞれ、適切な符号長記憶部４０を指定できるからである。
図１３は、第４の実施形態のデータ圧縮装置１０の構成図である。本実施形態のデータ圧縮装置１０は圧縮データ通信システム１４の送信装置として機能する。
本実施形態のデータ圧縮装置１０は、割り当て部３２、符号長記憶部４０、符号表５０、送信部３４を包含する。符号長記憶部４０、符号表５０は、第１の実施形態と同じである。
割り当て部３２は、格納データ２０を端末等から入力し、格納圧縮データ２１を送信部３４に出力する。他の点に於いて、割り当て部３２は、第１の実施形態と同じである。
送信部３４は、格納圧縮データ２１の生成過程で登録された符号表５０の内容を圧縮データ受信装置１３に送信する。その後、送信部３４は、格納圧縮データ２１を圧縮データ受信装置１３に送信する。
割り当て部３２、送信部３４は、ハードウェアで実現される。割り当て部３２、送信部３４は、コンピュータ１１でもあるデータ圧縮装置１０の図示しないプロセッサが、図示しないメモリ上のデータ圧縮プログラム３９を実行することで実現されても良い。
圧縮データ受信装置１３は、復号部３１、受信部３５、受信符号表格納部３６を備える。受信符号表格納部３６は図示しないメモリ等に配置される。
受信部３５は、データ圧縮装置１０から符号表５０のデータを受信して受信符号表格納部３６内に、データ圧縮装置１０内と同じ内容の符号表５０を再現する。
復号部３１は、データ圧縮装置１０から格納圧縮データ２１を受信して、圧縮解除を行って格納データ２０を、端末等に出力する。復号部３１は、コンテンツ圧縮データ２５、コンテンツデータ２４に代えて、格納圧縮データ２１、格納データ２０を扱う。他の点に於いて、復号部３１は第１の実施形態と同じである。
復号部３１、受信部３５は、ハードウェアで実現される。復号部３１、受信部３５は、コンピュータ１１でもある圧縮データ受信装置１３の図示しないプロセッサが、図示しないメモリ上の圧縮解除プログラム３８を実行することで実現されても良い。
本実施形態のデータ圧縮装置１０は、格納データ２０を効率よく送信できる。その理由は、格納データ２０を圧縮して送信するからである。
本発明は、図１が示すようなデータ以外にも、フィールド数によってデータが特定され、多様度が予測可能なデータ一般に適用できる。
図１４は、第５の実施形態のデータ圧縮装置１０が圧縮するデータを示す。図１４によればデータは多種存在する。データは、例えば、ｎ１個のフィールドから構成される第１種のデータ、ｎ２個のフィールドから構成される第２種のデータ、．．．．．Ｎ個のフィールドから構成される第Ｎ種のデータ等である。
図１５は、第５の実施形態の割り当て部３２の動作フローチャートである。割り当て部３２は、入力した格納データ２０のフィールド数（Ｎ）をカウントする（Ｓ４１）。
同部は、フィールド数４２がＮである記憶部エントリ４１を発見するため符号長記憶部４０を検索して（Ｓ４２）、発見した記憶部エントリ４１から符号長４３を取得する（Ｓ４３）。
その後同部は、格納Ｎデータに既に割り当てられている符号５６を発見するため符号表５０を検索する。即ち、同部は、ｎ値５３がＮと同じ値、かつ、ｎデータ５４が格納Ｎデータと一致する表エントリ５１を探す（Ｓ４４）。
発見できなければ（Ｓ４５でＮ）、同部は新たな符号を生成する。即ち、同部は、取得した符号長４３の長さを持ち、符号表５０に登録されていない符号を生成する（Ｓ４６）。生成できると（Ｓ４７でＹ）、同部は符号表５０に新たな表エントリ５１を追加する。即ち同部は、生成した符号を符号５６に、その長さを長さ表示５５に、Ｎをｎ値５３に、格納Ｎデータをｎデータ５４に各々格納する（Ｓ４８）。最後に同部は、生成した符号を格納圧縮データ２１として出力する（Ｓ４９）。
新たな符号の生成が出来ないと（Ｓ４７でＮ）、同部はエラーリターンする（Ｓ４Ａ）。
ｎ値５３がＮと同じ値、かつ、ｎデータ５４が格納Ｎデータと一致する表エントリ５１が発見出来ると（Ｓ４５でＹ）、同部は発見した表エントリ５１から符号５６を取得して格納圧縮データ２１として出力する（Ｓ４Ｂ）。
本実施形態のデータ圧縮装置１０は、幅広い格納データ２０の圧縮が可能である。
図１６は、本発明のデータ圧縮装置１０の基本構成を示す。データ圧縮装置１０は、符号長記憶部４０と割り当て部３２を備える。
符号長記憶部４０は、フィールド数の各々に対応して、フィールド数４２の増加に伴って減少せずに少なくとも一度は増加する符号長４３の各々を格納する。割り当て部３２は、フィールド数（Ｎ；複数）を入力して、符号長記憶部４０からＮ以下のフィールド数４２（ｎ）に対応する符号長４３を取得し、当該符号長４３の符号５６を出力する。
以上、実施形態を参照して本願発明を説明した。しかし、本願発明は、上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
この出願は、２００８年１２月１２日に出願された日本出願特願２００８−３１６６９５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2010067897.tif 000003
【図２】
2010067897.tif 000004
【図３】
2010067897.tif 000005
【図４】
2010067897.tif 000006
【図５】
2010067897.tif 000007
【図６Ａ】
2010067897.tif 000008
【図６Ｂ】
2010067897.tif 000009
【図７】
2010067897.tif 000010
【図８】
2010067897.tif 000011
【図９】
2010067897.tif 000012
【図１０】
2010067897.tif 000013
【図１１】
2010067897.tif 000014
【図１２】
2010067897.tif 000015
【図１３】
2010067897.tif 000016
【図１４】
2010067897.tif 000017
【図１５】
2010067897.tif 000018
【図１６】
2010067897.tif 000019
【国際調査報告】
2010067897.tif 000020
2010067897.tif 000021