(57)【要約】【課題】圧縮効率とメモリ使用量との条件を考慮して自動的に符号化パラメタを決定し、符号化することを目的とする。【解決手段】構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、対応表を保持することで、構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、を有し、対応表はパラメタの値によりデータサイズが可変であり、メモリ使用量の条件のもと、メモリ使用量見積もり手段により見積もられたメモリ使用量と、圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいてパラメタの値を決定する決定手段と、決定手段により決定されたパラメタの値に基づいて、構造化データを符号化する符号化手段と、を更に有することによって課題を解決する。【選択図】図７
2015115652.tif 000002
【特許請求の範囲】
【請求項１】
構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、
前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、
を有し、
前記対応表はパラメタの値によりデータサイズが可変であり、
メモリ使用量の条件のもと、前記メモリ使用量見積もり手段により見積もられたメモリ使用量と、前記圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定手段と、
前記決定手段により決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化手段と、
を更に有する情報処理装置。
【請求項２】
前記メモリ使用量見積もり手段は、前記構造化データを解析し、解析結果に基づきメモリ使用量を前記対応表のエントリ単位で見積もる請求項１記載の情報処理装置。
【請求項３】
前記圧縮効果見積もり手段は、前記構造化データを解析し、解析結果に基づき圧縮効果を前記対応表のエントリ単位で見積もる請求項１又は２記載の情報処理装置。
【請求項４】
前記決定手段は、メモリ使用量の条件のもと、前記対応表のエントリのうち前記圧縮効果見積もり手段により見積もられた圧縮効果が最も高いエントリを対応表に保持するエントリとして選択し、前記選択したエントリの前記メモリ使用量見積もり手段により見積もられたメモリ使用量に基づき、前記メモリ使用量の条件を更新する処理を、前記メモリ使用量の条件を満たすエントリがなくなるまで繰り返す請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
前記決定手段は、圧縮効果の閾値と、前記メモリ使用量見積もり手段により見積もられたメモリ使用量と、前記圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいて、前記圧縮効果が前記閾値内のエントリであって、かつ、前記メモリ使用量がメモリ削減量の条件を満たすエントリがない場合、前記圧縮効果が前記閾値内のエントリであって、かつ、前記メモリ使用量が最も高いエントリを前記対応表に保持しないエントリとして選択して、削除し、前記削除したエントリの前記メモリ使用量見積もり手段により見積もられたメモリ使用量に基づき、前記メモリ削減量の条件を更新する処理を、前記圧縮効果が前記閾値内のエントリであって、かつ、メモリ削減量の条件を満たすエントリがあるまで繰り返す請求項１乃至３何れか１項記載の情報処理装置。
【請求項６】
前記パラメタは、構造化データの要素又は属性の値の長さの制限値である請求項１乃至３何れか１項記載の情報処理装置。
【請求項７】
前記パラメタは、前記対応表のエントリ数の制限値である請求項１乃至３何れか１項記載の情報処理装置。
【請求項８】
前記構造化データは、ＸＭＬのデータであり、
前記符号化手段は、前記構造化データをＥＸＩ（Ｅｆｆｉｃｉｅｎｔ  ＸＭＬ  Ｉｎｔｅｒｃｈａｎｇｅ）に符号化する請求項１乃至７何れか１項記載の情報処理装置。
【請求項９】
情報処理装置が実行する情報処理方法であって、
構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もりステップと、
前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もりステップと、
を含み、
前記対応表はパラメタの値によりデータサイズが可変であり、
メモリ使用量の条件のもと、前記メモリ使用量見積もりステップにより見積もられたメモリ使用量と、前記圧縮効果見積もりステップにより見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定ステップと、
前記決定ステップにより決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化ステップと、
を更に含む情報処理方法。
【請求項１０】
コンピュータに、
構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もりステップと、
前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もりステップと、
を実行させ、
前記対応表はパラメタの値によりデータサイズが可変であり、
メモリ使用量の条件のもと、前記メモリ使用量見積もりステップにより見積もられたメモリ使用量と、前記圧縮効果見積もりステップにより見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定ステップと、
前記決定ステップにより決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化ステップと、
を更に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ＸＭＬ文書のデータサイズを圧縮、解析処理の高速化を実現する技術としてバイナリＸＭＬという技術があった。バイナリＸＭＬでは、繰り返し現れる文字列を短い符号に置き換えることで、データサイズの圧縮や解析処理の高速化を実現している。そのため、繰り返し現れる文字列と短い符号との対応表が必要であり、符号、復号化処理時に大量のメモリを消費するという問題があった。そこでバイナリＸＭＬの一つであるＥＸＩでは、ＥＸＩ  Ｐｒｏｆｉｌｅという仕様の策定を開始し、ＥＸＩの符号化において一定以上のメモリを消費しないパラメタ制御を可能にし、メモリ消費量の抑制を実現している。また、特許文献１の技術では、復号処理時にメモリ消費量を抑えるために、符号化テーブルの値の所属情報と、値のサイズの上限値と、により、内部メモリに保持するかどうかを判定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２５０４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＥＸＩ  Ｐｒｏｆｉｌｅでは、パラメタが複雑で、それぞれの意味や効果を理解するにはＥＸＩの深い知識が必要である。一般的なアプリケーション開発者がパラメタ設定するのは困難である。また、パラメタは符号化規則への制約をかけるものであり、圧縮効率とのトレードオフになる。下手な設定を行えば、圧縮効率の大幅な低下を招きバイナリＸＭＬの利点が失われる。
【課題を解決するための手段】
【０００５】
そこで、本発明は、構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、を有し、前記対応表はパラメタの値によりデータサイズが可変であり、メモリ使用量の条件のもと、前記メモリ使用量見積もり手段により見積もられたメモリ使用量と、前記圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定手段と、前記決定手段により決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化手段と、を更に有する。
【発明の効果】
【０００６】
本発明によれば、圧縮効率とメモリ使用量との条件を考慮して自動的に符号化パラメタを決定し、符号化することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置のハードウェア構成の一例を示す図である。
【図２】符号化するＸＭＬ文書の一例を示す図である。
【図３】情報処理装置のソフトウェア構成等の一例を示した図である。
【図４】メモリ使用量と圧縮効果との見積もりの情報処理の一例を示すフローチャートである。
【図５】見積りテーブルの一例を示す図である。
【図６】メモリ使用量と圧縮効果との見積もり計算を行うための計算式の一例を示す図である。
【図７】パラメタ決定の情報処理の一例を示すフローチャートである。
【図８】メモリ使用量を５６０以下という条件を設定した場合の見積りテーブルの一例を示す図である。
【図９】保持するエントリを決定する情報処理の一例を示すフローチャートである。
【図１０】、圧縮効果の閾値を５、メモリ使用量を５６０以下という条件を設定した場合の見積りテーブルの一例を示す図である。
【図１１】決定時間を早くした場合の保持するエントリを決定する情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
本実施形態の情報処理装置について、図１を参照して説明する。情報処理装置は単一のコンピュータで実現してもよいし、必要に応じた複数のコンピュータで機能を分担して実現してもよい。情報処理装置が複数のコンピュータで構成される場合は、複数のコンピュータにおいて互いに通信可能なようにＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等で接続される。
Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１０１は、情報処理装置１００の全体を制御する。
Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）１０２は、変更を必要としないプログラムやパラメタを格納する。
Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）１０３は、外部装置等から供給されるプログラムやデータを一時記憶する。
外部記憶装置１０４は、情報処理装置１００に固定して設置された記憶装置である。外部記憶装置は次のものを含む。例えば、ハードディスク、メモリカード、或いは情報処理装置１００から着脱可能なフレキシブルディスク（ＦＤ）、Ｃｏｍｐａｃｔ  Ｄｉｓｋ（ＣＤ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカードである。
入力インタフェース１０５は、ポインティングデバイスやキーボード等の入力デバイスとのインタフェースである。
ネットワークインタフェース１０６は、インターネット等のネットワーク回線に接続するインタフェースである。
システムバス１０７は、１０１〜１０６の各ユニットを通信可能にするバスである。
ＣＰＵ１０１が、ＲＯＭ１０２や外部記憶装置１０４等に記憶されたプログラムに基づき処理を実行することによって、後述する情報処理装置１００のソフトウェア構成やフローチャートに係る処理が実現される。
【００１０】
本実施形態の自動パラメタを設定する処理について説明する。
図２は、符号化するＸＭＬ文書の一例を示す図である。
また、図２では、図２のＸＭＬ文書をＥＸＩ（Ｅｆｆｉｃｉｅｎｔ  ＸＭＬ  Ｉｎｔｅｒｃｈａｎｇｅ）符号化する際の内部メモリの状態を示している。ＸＭＬ文書は構造化データの一例である。
以下、図２の内部メモリの状態について説明する。
ＥＸＩ符号化は文書の先頭から行われる。出現する文字列は順次、テーブルに登録される。このとき、要素名や属性名であれば名前テーブル、値であれば値テーブルに登録される。出現する文字列は、ＸＭＬ文書の一部の一例である。また、テーブルは、対応表の一例である。
また、符号化時には、Ｇｒａｍｍａｒと呼ばれる符号化ルールが使われ、終了要素（ＥＥ）であれば０．０という符号に、属性（ＡＴ（＊））であれば０．１という符号に符号化される。Ｇｒａｍｍａｒは符号化対象のＸＭＬ文書に依存して変化する。例えばｉｍｐｏｒｔＲｅｑｕｅｓｔ要素が最初に出現したならば、新たにｉｍｐｏｒｔＲｅｑｕｅｓｔ要素用のＥｌｅｍｅｎｔＧｒａｍｍａｒが作られる。ｉｍｐｏｒｔＲｅｑｕｅｓｔ要素内のデータはｉｍｐｏｒｔＲｅｑｕｅｓｔ要素用のＥｌｅｍｅｎｔＧｒａｍｍａｒで符号化される。更に、ｉｍｐｏｒｔＲｅｑｕｅｓｔ要素の子要素にｅｎｔｒｙ要素が出現した場合は、新たにｅｎｔｒｙ要素用のＥｌｅｍｅｎｔＧｒａｍｍａｒが作られる。
そして、ｅｎｔｒｙ用のｐｒｏｄｕｃｔｉｏｎ（ＳＥ（ｅｎｔｒｙ）  ０）が、ｉｍｐｏｒｔ要素用のＥｌｅｍｅｎｔＧｒａｍｍａｒに追加される。
以降のＸＭＬ文書のデータは、更新、作成されたＧｒａｍｍａｒに沿って符号化される。
【００１１】
このようにＥＸＩの符号化は、多くのメモリを消費する。
そこで、ＥＸＩ  Ｐｒｏｆｉｌｅでは、パラメタ設定でメモリ使用量を抑制する。
ｖａｌｕｅＭａｘＬｅｎｇｔｈは、値テーブルに登録する値の文字列長の最大値を示すパラメタであり、この長さを超える文字列は値テーブルに登録されない。文字列長の最大値は、制限値の一例である。
ｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎは、名前テーブルのエントリ数の最大値を示すパラメタであり、エントリ数がこの値を超える場合は、新たにエントリは追加されない。エントリ数の最大値は、制限値の一例である。
つまり、テーブルは、パラメタの値によりデータサイズが可変である。
ＥＸＩの符号化では、値テーブルは、値が記述された要素や属性ごとに作成される。
ＥＸＩ  Ｐｒｏｆｉｌｅでは、要素や属性の名前が名前テーブルにエントリされない場合は、対応する値テーブルも作成されない。例えば、属性名ｄｎがパラメタｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎの制約により名前テーブルにエントリされない場合は、値テーブル（ｄｎ）も作成されない。
【００１２】
本実施形態では、ｖａｌｕｅＭａｘＬｅｎｇｔｈパラメタとｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎパラメタとを自動設定する。
図３は、情報処理装置１００のソフトウェア構成等の一例を示した図である。
符号化処理部３０１は、入力されたＸＭＬ文書をＥＸＩに符号化する。
見積り処理部３０２は、メモリ使用量と圧縮効果との見積もりを行う（メモリ使用量見積もり及び圧縮効果見積もり）。見積り処理部３０２は、テーブルのエントリ単位でメモリ使用量と圧縮効果との見積もりを行う。
パラメタ決定部３０３は、見積り結果を利用しパラメタの値を決定する。
符号化処理部３０１は、メモリ使用量の制限があるかどうか判定し、メモリ使用量の制限がなければ、通常のＥＸＩ符号化を行う。制限がある場合は、符号化処理部３０１は、見積り処理部３０２を使って、メモリ使用量と圧縮効果との見積もりを行う。
【００１３】
図４は、メモリ使用量と圧縮効果との見積もりの情報処理の一例を示すフローチャートである。以下、図４に沿ってフローチャートの処理を説明する。
見積り処理部３０２は、ＸＭＬ文書を先頭から読み、解析し、解析結果に基づき見積もりを行う。
Ｓ４０１において、見積り処理部３０２は、入力されたＸＭＬデータがＸＭＬ文書の終端であるかどうかを判定する。見積り処理部３０２は、終端であればＳ４０６へ進み、終端でなければＳ４０２へ進む。
Ｓ４０２において、見積り処理部３０２は、入力されたＸＭＬデータが、開始要素、属性、値の何れかであるかどうかを判定する。見積り処理部３０２は、何れかである場合はＳ４０３に進み、何れでもない場合は次のＸＭＬデータを読みＳ４０１へ進む。
Ｓ４０３において、見積り処理部３０２は、見積りテーブルに、既に要素名、属性名、値が登録されているかどうかを確認する。
【００１４】
図５は、見積りテーブルの一例を示す図である。
名前見積りテーブルは、ＥＸＩ符号化時の名前テーブルに、要素名、属性名を保持した際のメモリ使用量と圧縮効果との見積もりを行うために利用される。
値見積りテーブルは、ＥＸＩ符号化時の値テーブルに、値を保持した際のメモリ使用量と圧縮効果との見積もりを行うために利用される。
【００１５】
図４の説明に戻る。
見積り処理部３０２は、既に登録されている場合はＳ４０５へ進み、登録されていない場合はＳ４０４へ進む。
Ｓ４０４において、見積り処理部３０２は、開始要素、属性であれば名前見積りテーブルに、値であれば値見積りテーブルに情報を登録する。開始要素、属性である場合は、見積り処理部３０２は、開始要素であるか属性であるかを示す構造の型、名前文字列を情報として登録する。見積り処理部３０２は、カウンタは初期値として１に設定する。値である場合は、見積り処理部３０２は、値文字列を情報として登録する。見積り処理部３０２は、カウンタは初期値として１に設定する。
値見積りテーブルは、値が記述された要素や属性ごとに作成される。該当する値見積りテーブルがない場合は、見積り処理部３０２は、新規に値見積りテーブルを作成し、名前見積りテーブルの対応する要素や属性のエントリに、作成した値見積りテーブルへのリンクを記録する。
見積り処理部３０２は、次のＸＭＬデータを読み、Ｓ４０１へ進む。
【００１６】
一方、Ｓ４０５において、見積り処理部３０２は、該当する見積りテーブルのエントリのカウンタを１増加する。見積り処理部３０２は、次のＸＭＬデータを読みＳ４０１へ進む。
Ｓ４０１において、入力されたＸＭＬデータがＸＭＬ文書の終端であると判定した場合は、見積り処理部は、Ｓ４０６へ進み、図６の計算式に従ってメモリ使用量と圧縮効果との見積もりを行う。
【００１７】
図６は、メモリ使用量と圧縮効果との見積もり計算を行うための計算式の一例を示す図である。
Ａはエントリが属性であるかどうかを示し、属性である場合は１、そうでない場合は０とする。
Ｅはエントリが要素であるかどうかを示し、要素である場合は１、そうでない場合は０とする。
文字列長は、各エントリに登録されている文字列の長さである。
カウンタは、各エントリ登録されているカウンタの値である。
ｐｒｏｄｕｃｔｉｏｎサイズは、ＥＸＩ符号化時に使用するｐｒｏｄｕｃｔｉｏｎの１エントリあたりのメモリサイズの見積もり値である。
ｇｒａｍｍａｒサイズは、ＥＸＩ符号化時に使用するｇｒａｍｍａｒの１テーブルあたりのメモリサイズの見積もり値である。
本実施形態において、図６の計算式により見積もられたメモリ使用量と圧縮効果とは、図５のようになる。名前見積りテーブルのメモリ使用量と圧縮効果とは、リンク先の値見積りテーブルのメモリ使用量と圧縮効果とが加算されている。
【００１８】
見積り処理部３０２が見積もり終了後、符号化処理部３０１は、パラメタ決定部３０３を使って、ｖａｌｕｅＭａｘＬｅｎｇｔｈパラメタとｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎパラメタとの値を決定する。
図７は、パラメタ決定の情報処理の一例を示すフローチャートである。
以下、図７に沿ってフローチャートの処理を説明する。
パラメタ決定部３０３は、ｖａｌｕｅＭａｘＬｅｎｇｔｈとｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎとの初期値として、値見積りテーブルに登録されている文字列の最大長と名前見積りテーブルのエントリ数とを設定する。
Ｓ７０１において、パラメタ決定部３０３は、見積もったメモリ使用量が条件を満たしているかどうかを判定する。満たしていると判定した場合は、パラメタ決定部３０３は、図７の処理を終了し、現時点のｖａｌｕｅＭａｘＬｅｎｇｔｈとｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎとをパラメタの値として決定する。満たしていないと判定した場合は、パラメタ決定部３０３は、Ｓ７０２へ進む。
Ｓ７０２において、パラメタ決定部３０３は、名前見積りテーブルの最後のエントリの圧縮効果を影響Ａとする。
Ｓ７０３において、パラメタ決定部３０３は、値見積りテーブルの最大長の文字列の圧縮効果を影響Ｂとする。
【００１９】
Ｓ７０４において、パラメタ決定部３０３は、影響Ａが影響Ｂより大きいかどうかを判定する。パラメタ決定部３０３は、影響Ａの方が大きいと判定した場合は、Ｓ７０５へ進み、そうでない場合はＳ７０６へ進む。
Ｓ７０５において、パラメタ決定部３０３は、値見積りテーブルから最大長の文字列を削除する。また、パラメタ決定部３０３は、文字列を削除した値見積りテーブルへのリンクが張られている名前見積りテーブルのエントリに対し、削除した分のメモリ使用量と圧縮効果とを削減する。
Ｓ７０７において、パラメタ決定部３０３は、削除した分のメモリ使用量を削減する。パラメタ決定部３０３は、ｖａｌｕｅＭａｘＬｅｎｇｔｈとｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎとを、値見積りテーブルに登録されている文字列の最大長と名前見積りテーブルのエントリ数とに設定し、Ｓ７０１へ進む。
一方、Ｓ７０６において、パラメタ決定部３０３は、名前見積りテーブルから最後のエントリを削除する。また、パラメタ決定部３０３は、削除したエントリからリンクしている値見積りテーブルも削除する。その後、パラメタ決定部３０３は、Ｓ７０７へ進む。
【００２０】
本実施形態において、メモリ使用量を５６０以下という条件を設定した場合、図８に示すように、値見積りテーブル＃１と値見積りテーブル＃２が削除され、メモリ使用量が６６６から５５９に削減される。ｖａｌｕｅＭａｘＬｅｎｇｔｈは６、ｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎは６に決定される。
例えば、ＣＰＵ１０１は、画面等を介したユーザ操作に応じて、又は設定ファイル等の設定に応じて、メモリ使用量の条件を設定する。後述するメモリ削減量の条件や圧縮効果の閾値等の設定も同様である。
【００２１】
＜実施形態２＞
本実施形態では、ＥＸＩ符号化時に名前テーブルと値テーブルとに保持するエントリを個別指定する場合の方法について説明する。
パラメタ決定部３０３は、個別指定する場合は、ｖａｌｕｅＭａｘＬｅｎｇｔｈは０、ｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎは０に設定する。
符号化処理部３０１は、見積り処理部３０２を使い、実施形態１と同様にメモリ使用量と圧縮効果との見積もりを行う。
符号化処理部３０１は、パラメタ決定部３０３を使い、ＥＸＩ符号化時に名前テーブルと値テーブルとに保持するエントリを決定する。
【００２２】
図９は、保持するエントリを決定する情報処理の一例を示すフローチャートである。
以下、図９に沿ってフローチャートの処理を説明する。
Ｓ９０１において、パラメタ決定部３０３は、圧縮効果が閾値内のエントリであるかどうかを判定する。パラメタ決定部３０３は、あると判定した場合はＳ９０３へ進み、ないと判定した場合はＳ９０２に進む。
Ｓ９０２において、パラメタ決定部３０３は、閾値内のエントリを作るために圧縮効果の閾値を変更しＳ９０１へ進む。
Ｓ９０３において、パラメタ決定部３０３は、閾値内のエントリで、メモリ使用量の制限を満たすためのメモリ削減量の条件を満たすエントリがあるかどうか判定する。パラメタ決定部３０３は、あると判定した場合はＳ９０４へ進み、ないと判定した場合はＳ９０５へ進む。
【００２３】
Ｓ９０４において、パラメタ決定部３０３は、条件を満たすエントリの中から圧縮効果が最小のエントリを選択する。パラメタ決定部３０３は、メモリ使用量の制限を満たしたので、図９に示す処理を終了する。
一方、Ｓ９０５において、パラメタ決定部３０３は、閾値内のエントリからメモリ使用量最大のエントリを選択し、見積りテーブルから削除する。削除したのが値見積りテーブルのエントリである場合は、パラメタ決定部３０３は、削除した値見積りテーブルへのリンクが張られている名前見積りテーブルのエントリに対し、削除した分のメモリ使用量と圧縮効果とを削減する。削除したのが名前見積りテーブルのエントリである場合は、パラメタ決定部３０３は、削除したエントリからリンクしている値見積りテーブルも削除する。
Ｓ９０６において、パラメタ決定部３０３は、削除した分のメモリ使用量より、メモリ削減量の条件を更新し、Ｓ９０１へ進む。このとき、パラメタ決定部３０３は、 圧縮効果の閾値を再設定してからＳ９０１へ進んでもよい。
【００２４】
本実施形態において、圧縮効果の閾値を５、メモリ使用量を５６０以下という条件を設定した場合、図１０に示すように、ｉｎｐｏｒｔＲｅｑｕｅｓｔ要素のエントリが名前見積りテーブルから削除され、メモリ使用量が６６６から５３３に削減される。
ｖａｌｕｅＭａｘＬｅｎｇｔｈは０、ｍａｘＮｕｍｂｅｒＯｆＮａｍｅＰａｒｔｉｔｉｏｎは０とし、見積りテーブルの残りのエントリが、ＥＸＩ符号化時の名前テーブルと値テーブルとに保持されるように、該当する要素、属性、値がスキーマ定義される。
また、パラメタ決定部３０３は、ｖａｌｕｅＭａｘＬｅｎｇｔｈは４１とし、該当する要素、属性だけがスキーマ定義してもよい。
更にまた、パラメタ決定部３０３は、スキーマでなくても、ＥＸＩの符号化、復号化を行う装置の独自のプリセット方式で定義してもよい。
【００２５】
本実施形態においては、圧縮効果の閾値設定により、ＥＸＩ符号化時に名前テーブルと値テーブルとに保持するエントリの決定に時間がかかる場合がある。そこで、エントリ決定方法を複数のモードにするようにしてもよい。つまり、パラメタ決定部３０３は、通常は図９の手法を選択し、決定時間を早くする場合は図１１の手法を選択する。モードの切り替えは、設定ファイル等の設定に基づき行ってもよいし、設定された時間より長くかかると判断した場合に自動で行ってもよい。
以下、図１１の情報処理に沿って、決定時間を早くした場合のフローチャートの処理を説明する。
Ｓ１１０１において、パラメタ決定部３０３は、メモリ使用量の条件を満たすエントリが見積もりテーブルの中にあるかどうかを判定する。パラメタ決定部３０３は、ないと判定した場合は、現時点以上にＥＸＩ符号化時の名前テーブルと値テーブルとにエントリを保持できないので図１１の処理を終了する。あると判定した場合は、パラメタ決定部３０３は、Ｓ１１０２へ進む。
Ｓ１１０２において、パラメタ決定部３０３は、条件を満たす中で、圧縮効率の高いエントリを、ＥＸＩ符号化時の名前テーブルと値テーブルに保持するエントリとして選択する。
Ｓ１１０３において、パラメタ決定部３０３は、選択したエントリのメモリ使用量より、メモリ使用量の条件を更新しＳ１１０１へ進む。
これにより、閾値設定を決めなおす必要がないので、パラメタ決定が図９の処理より早く行える。
【００２６】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２７】
以上、上述した各実施形態によれば、圧縮効率とメモリ使用量との条件を考慮して自動的に符号化パラメタを決定し、符号化することができる。
【００２８】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００２９】
１００  情報処理装置、１０１  ＣＰＵ
【図１】
2015115652.tif 000003
【図２】
2015115652.tif 000004
【図３】
2015115652.tif 000005
【図４】
2015115652.tif 000006
【図５】
2015115652.tif 000007
【図６】
2015115652.tif 000008
【図７】
2015115652.tif 000009
【図８】
2015115652.tif 000010
【図９】
2015115652.tif 000011
【図１０】
2015115652.tif 000012
【図１１】
2015115652.tif 000013