JP2015115652A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2015115652A JP2015115652A JP2013254338A JP2013254338A JP2015115652A JP 2015115652 A JP2015115652 A JP 2015115652A JP 2013254338 A JP2013254338 A JP 2013254338A JP 2013254338 A JP2013254338 A JP 2013254338A JP 2015115652 A JP2015115652 A JP 2015115652A
- Authority
- JP
- Japan
- Prior art keywords
- memory usage
- compression effect
- value
- information processing
- estimation
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/607—Selection between different types of compressors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
- H03M7/707—Structured documents, e.g. XML
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】圧縮効率とメモリ使用量との条件を考慮して自動的に符号化パラメタを決定し、符号化することを目的とする。
【解決手段】構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、対応表を保持することで、構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、を有し、対応表はパラメタの値によりデータサイズが可変であり、メモリ使用量の条件のもと、メモリ使用量見積もり手段により見積もられたメモリ使用量と、圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいてパラメタの値を決定する決定手段と、決定手段により決定されたパラメタの値に基づいて、構造化データを符号化する符号化手段と、を更に有することによって課題を解決する。
【選択図】図7
【解決手段】構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、対応表を保持することで、構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、を有し、対応表はパラメタの値によりデータサイズが可変であり、メモリ使用量の条件のもと、メモリ使用量見積もり手段により見積もられたメモリ使用量と、圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいてパラメタの値を決定する決定手段と、決定手段により決定されたパラメタの値に基づいて、構造化データを符号化する符号化手段と、を更に有することによって課題を解決する。
【選択図】図7
Description
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
従来、XML文書のデータサイズを圧縮、解析処理の高速化を実現する技術としてバイナリXMLという技術があった。バイナリXMLでは、繰り返し現れる文字列を短い符号に置き換えることで、データサイズの圧縮や解析処理の高速化を実現している。そのため、繰り返し現れる文字列と短い符号との対応表が必要であり、符号、復号化処理時に大量のメモリを消費するという問題があった。そこでバイナリXMLの一つであるEXIでは、EXI Profileという仕様の策定を開始し、EXIの符号化において一定以上のメモリを消費しないパラメタ制御を可能にし、メモリ消費量の抑制を実現している。また、特許文献1の技術では、復号処理時にメモリ消費量を抑えるために、符号化テーブルの値の所属情報と、値のサイズの上限値と、により、内部メモリに保持するかどうかを判定している。
EXI Profileでは、パラメタが複雑で、それぞれの意味や効果を理解するにはEXIの深い知識が必要である。一般的なアプリケーション開発者がパラメタ設定するのは困難である。また、パラメタは符号化規則への制約をかけるものであり、圧縮効率とのトレードオフになる。下手な設定を行えば、圧縮効率の大幅な低下を招きバイナリXMLの利点が失われる。
そこで、本発明は、構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、を有し、前記対応表はパラメタの値によりデータサイズが可変であり、メモリ使用量の条件のもと、前記メモリ使用量見積もり手段により見積もられたメモリ使用量と、前記圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定手段と、前記決定手段により決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化手段と、を更に有する。
本発明によれば、圧縮効率とメモリ使用量との条件を考慮して自動的に符号化パラメタを決定し、符号化することができる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
本実施形態の情報処理装置について、図1を参照して説明する。情報処理装置は単一のコンピュータで実現してもよいし、必要に応じた複数のコンピュータで機能を分担して実現してもよい。情報処理装置が複数のコンピュータで構成される場合は、複数のコンピュータにおいて互いに通信可能なようにLocal Area Network(LAN)等で接続される。
Central Processing Unit(CPU)101は、情報処理装置100の全体を制御する。
Read Only Memory(ROM)102は、変更を必要としないプログラムやパラメタを格納する。
Random Access Memory(RAM)103は、外部装置等から供給されるプログラムやデータを一時記憶する。
外部記憶装置104は、情報処理装置100に固定して設置された記憶装置である。外部記憶装置は次のものを含む。例えば、ハードディスク、メモリカード、或いは情報処理装置100から着脱可能なフレキシブルディスク(FD)、Compact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードである。
入力インタフェース105は、ポインティングデバイスやキーボード等の入力デバイスとのインタフェースである。
ネットワークインタフェース106は、インターネット等のネットワーク回線に接続するインタフェースである。
システムバス107は、101〜106の各ユニットを通信可能にするバスである。
CPU101が、ROM102や外部記憶装置104等に記憶されたプログラムに基づき処理を実行することによって、後述する情報処理装置100のソフトウェア構成やフローチャートに係る処理が実現される。
本実施形態の情報処理装置について、図1を参照して説明する。情報処理装置は単一のコンピュータで実現してもよいし、必要に応じた複数のコンピュータで機能を分担して実現してもよい。情報処理装置が複数のコンピュータで構成される場合は、複数のコンピュータにおいて互いに通信可能なようにLocal Area Network(LAN)等で接続される。
Central Processing Unit(CPU)101は、情報処理装置100の全体を制御する。
Read Only Memory(ROM)102は、変更を必要としないプログラムやパラメタを格納する。
Random Access Memory(RAM)103は、外部装置等から供給されるプログラムやデータを一時記憶する。
外部記憶装置104は、情報処理装置100に固定して設置された記憶装置である。外部記憶装置は次のものを含む。例えば、ハードディスク、メモリカード、或いは情報処理装置100から着脱可能なフレキシブルディスク(FD)、Compact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードである。
入力インタフェース105は、ポインティングデバイスやキーボード等の入力デバイスとのインタフェースである。
ネットワークインタフェース106は、インターネット等のネットワーク回線に接続するインタフェースである。
システムバス107は、101〜106の各ユニットを通信可能にするバスである。
CPU101が、ROM102や外部記憶装置104等に記憶されたプログラムに基づき処理を実行することによって、後述する情報処理装置100のソフトウェア構成やフローチャートに係る処理が実現される。
本実施形態の自動パラメタを設定する処理について説明する。
図2は、符号化するXML文書の一例を示す図である。
また、図2では、図2のXML文書をEXI(Efficient XML Interchange)符号化する際の内部メモリの状態を示している。XML文書は構造化データの一例である。
以下、図2の内部メモリの状態について説明する。
EXI符号化は文書の先頭から行われる。出現する文字列は順次、テーブルに登録される。このとき、要素名や属性名であれば名前テーブル、値であれば値テーブルに登録される。出現する文字列は、XML文書の一部の一例である。また、テーブルは、対応表の一例である。
また、符号化時には、Grammarと呼ばれる符号化ルールが使われ、終了要素(EE)であれば0.0という符号に、属性(AT(*))であれば0.1という符号に符号化される。Grammarは符号化対象のXML文書に依存して変化する。例えばimportRequest要素が最初に出現したならば、新たにimportRequest要素用のElementGrammarが作られる。importRequest要素内のデータはimportRequest要素用のElementGrammarで符号化される。更に、importRequest要素の子要素にentry要素が出現した場合は、新たにentry要素用のElementGrammarが作られる。
そして、entry用のproduction(SE(entry) 0)が、import要素用のElementGrammarに追加される。
以降のXML文書のデータは、更新、作成されたGrammarに沿って符号化される。
図2は、符号化するXML文書の一例を示す図である。
また、図2では、図2のXML文書をEXI(Efficient XML Interchange)符号化する際の内部メモリの状態を示している。XML文書は構造化データの一例である。
以下、図2の内部メモリの状態について説明する。
EXI符号化は文書の先頭から行われる。出現する文字列は順次、テーブルに登録される。このとき、要素名や属性名であれば名前テーブル、値であれば値テーブルに登録される。出現する文字列は、XML文書の一部の一例である。また、テーブルは、対応表の一例である。
また、符号化時には、Grammarと呼ばれる符号化ルールが使われ、終了要素(EE)であれば0.0という符号に、属性(AT(*))であれば0.1という符号に符号化される。Grammarは符号化対象のXML文書に依存して変化する。例えばimportRequest要素が最初に出現したならば、新たにimportRequest要素用のElementGrammarが作られる。importRequest要素内のデータはimportRequest要素用のElementGrammarで符号化される。更に、importRequest要素の子要素にentry要素が出現した場合は、新たにentry要素用のElementGrammarが作られる。
そして、entry用のproduction(SE(entry) 0)が、import要素用のElementGrammarに追加される。
以降のXML文書のデータは、更新、作成されたGrammarに沿って符号化される。
このようにEXIの符号化は、多くのメモリを消費する。
そこで、EXI Profileでは、パラメタ設定でメモリ使用量を抑制する。
valueMaxLengthは、値テーブルに登録する値の文字列長の最大値を示すパラメタであり、この長さを超える文字列は値テーブルに登録されない。文字列長の最大値は、制限値の一例である。
maxNumberOfNamePartitionは、名前テーブルのエントリ数の最大値を示すパラメタであり、エントリ数がこの値を超える場合は、新たにエントリは追加されない。エントリ数の最大値は、制限値の一例である。
つまり、テーブルは、パラメタの値によりデータサイズが可変である。
EXIの符号化では、値テーブルは、値が記述された要素や属性ごとに作成される。
EXI Profileでは、要素や属性の名前が名前テーブルにエントリされない場合は、対応する値テーブルも作成されない。例えば、属性名dnがパラメタmaxNumberOfNamePartitionの制約により名前テーブルにエントリされない場合は、値テーブル(dn)も作成されない。
そこで、EXI Profileでは、パラメタ設定でメモリ使用量を抑制する。
valueMaxLengthは、値テーブルに登録する値の文字列長の最大値を示すパラメタであり、この長さを超える文字列は値テーブルに登録されない。文字列長の最大値は、制限値の一例である。
maxNumberOfNamePartitionは、名前テーブルのエントリ数の最大値を示すパラメタであり、エントリ数がこの値を超える場合は、新たにエントリは追加されない。エントリ数の最大値は、制限値の一例である。
つまり、テーブルは、パラメタの値によりデータサイズが可変である。
EXIの符号化では、値テーブルは、値が記述された要素や属性ごとに作成される。
EXI Profileでは、要素や属性の名前が名前テーブルにエントリされない場合は、対応する値テーブルも作成されない。例えば、属性名dnがパラメタmaxNumberOfNamePartitionの制約により名前テーブルにエントリされない場合は、値テーブル(dn)も作成されない。
本実施形態では、valueMaxLengthパラメタとmaxNumberOfNamePartitionパラメタとを自動設定する。
図3は、情報処理装置100のソフトウェア構成等の一例を示した図である。
符号化処理部301は、入力されたXML文書をEXIに符号化する。
見積り処理部302は、メモリ使用量と圧縮効果との見積もりを行う(メモリ使用量見積もり及び圧縮効果見積もり)。見積り処理部302は、テーブルのエントリ単位でメモリ使用量と圧縮効果との見積もりを行う。
パラメタ決定部303は、見積り結果を利用しパラメタの値を決定する。
符号化処理部301は、メモリ使用量の制限があるかどうか判定し、メモリ使用量の制限がなければ、通常のEXI符号化を行う。制限がある場合は、符号化処理部301は、見積り処理部302を使って、メモリ使用量と圧縮効果との見積もりを行う。
図3は、情報処理装置100のソフトウェア構成等の一例を示した図である。
符号化処理部301は、入力されたXML文書をEXIに符号化する。
見積り処理部302は、メモリ使用量と圧縮効果との見積もりを行う(メモリ使用量見積もり及び圧縮効果見積もり)。見積り処理部302は、テーブルのエントリ単位でメモリ使用量と圧縮効果との見積もりを行う。
パラメタ決定部303は、見積り結果を利用しパラメタの値を決定する。
符号化処理部301は、メモリ使用量の制限があるかどうか判定し、メモリ使用量の制限がなければ、通常のEXI符号化を行う。制限がある場合は、符号化処理部301は、見積り処理部302を使って、メモリ使用量と圧縮効果との見積もりを行う。
図4は、メモリ使用量と圧縮効果との見積もりの情報処理の一例を示すフローチャートである。以下、図4に沿ってフローチャートの処理を説明する。
見積り処理部302は、XML文書を先頭から読み、解析し、解析結果に基づき見積もりを行う。
S401において、見積り処理部302は、入力されたXMLデータがXML文書の終端であるかどうかを判定する。見積り処理部302は、終端であればS406へ進み、終端でなければS402へ進む。
S402において、見積り処理部302は、入力されたXMLデータが、開始要素、属性、値の何れかであるかどうかを判定する。見積り処理部302は、何れかである場合はS403に進み、何れでもない場合は次のXMLデータを読みS401へ進む。
S403において、見積り処理部302は、見積りテーブルに、既に要素名、属性名、値が登録されているかどうかを確認する。
見積り処理部302は、XML文書を先頭から読み、解析し、解析結果に基づき見積もりを行う。
S401において、見積り処理部302は、入力されたXMLデータがXML文書の終端であるかどうかを判定する。見積り処理部302は、終端であればS406へ進み、終端でなければS402へ進む。
S402において、見積り処理部302は、入力されたXMLデータが、開始要素、属性、値の何れかであるかどうかを判定する。見積り処理部302は、何れかである場合はS403に進み、何れでもない場合は次のXMLデータを読みS401へ進む。
S403において、見積り処理部302は、見積りテーブルに、既に要素名、属性名、値が登録されているかどうかを確認する。
図5は、見積りテーブルの一例を示す図である。
名前見積りテーブルは、EXI符号化時の名前テーブルに、要素名、属性名を保持した際のメモリ使用量と圧縮効果との見積もりを行うために利用される。
値見積りテーブルは、EXI符号化時の値テーブルに、値を保持した際のメモリ使用量と圧縮効果との見積もりを行うために利用される。
名前見積りテーブルは、EXI符号化時の名前テーブルに、要素名、属性名を保持した際のメモリ使用量と圧縮効果との見積もりを行うために利用される。
値見積りテーブルは、EXI符号化時の値テーブルに、値を保持した際のメモリ使用量と圧縮効果との見積もりを行うために利用される。
図4の説明に戻る。
見積り処理部302は、既に登録されている場合はS405へ進み、登録されていない場合はS404へ進む。
S404において、見積り処理部302は、開始要素、属性であれば名前見積りテーブルに、値であれば値見積りテーブルに情報を登録する。開始要素、属性である場合は、見積り処理部302は、開始要素であるか属性であるかを示す構造の型、名前文字列を情報として登録する。見積り処理部302は、カウンタは初期値として1に設定する。値である場合は、見積り処理部302は、値文字列を情報として登録する。見積り処理部302は、カウンタは初期値として1に設定する。
値見積りテーブルは、値が記述された要素や属性ごとに作成される。該当する値見積りテーブルがない場合は、見積り処理部302は、新規に値見積りテーブルを作成し、名前見積りテーブルの対応する要素や属性のエントリに、作成した値見積りテーブルへのリンクを記録する。
見積り処理部302は、次のXMLデータを読み、S401へ進む。
見積り処理部302は、既に登録されている場合はS405へ進み、登録されていない場合はS404へ進む。
S404において、見積り処理部302は、開始要素、属性であれば名前見積りテーブルに、値であれば値見積りテーブルに情報を登録する。開始要素、属性である場合は、見積り処理部302は、開始要素であるか属性であるかを示す構造の型、名前文字列を情報として登録する。見積り処理部302は、カウンタは初期値として1に設定する。値である場合は、見積り処理部302は、値文字列を情報として登録する。見積り処理部302は、カウンタは初期値として1に設定する。
値見積りテーブルは、値が記述された要素や属性ごとに作成される。該当する値見積りテーブルがない場合は、見積り処理部302は、新規に値見積りテーブルを作成し、名前見積りテーブルの対応する要素や属性のエントリに、作成した値見積りテーブルへのリンクを記録する。
見積り処理部302は、次のXMLデータを読み、S401へ進む。
一方、S405において、見積り処理部302は、該当する見積りテーブルのエントリのカウンタを1増加する。見積り処理部302は、次のXMLデータを読みS401へ進む。
S401において、入力されたXMLデータがXML文書の終端であると判定した場合は、見積り処理部は、S406へ進み、図6の計算式に従ってメモリ使用量と圧縮効果との見積もりを行う。
S401において、入力されたXMLデータがXML文書の終端であると判定した場合は、見積り処理部は、S406へ進み、図6の計算式に従ってメモリ使用量と圧縮効果との見積もりを行う。
図6は、メモリ使用量と圧縮効果との見積もり計算を行うための計算式の一例を示す図である。
Aはエントリが属性であるかどうかを示し、属性である場合は1、そうでない場合は0とする。
Eはエントリが要素であるかどうかを示し、要素である場合は1、そうでない場合は0とする。
文字列長は、各エントリに登録されている文字列の長さである。
カウンタは、各エントリ登録されているカウンタの値である。
productionサイズは、EXI符号化時に使用するproductionの1エントリあたりのメモリサイズの見積もり値である。
grammarサイズは、EXI符号化時に使用するgrammarの1テーブルあたりのメモリサイズの見積もり値である。
本実施形態において、図6の計算式により見積もられたメモリ使用量と圧縮効果とは、図5のようになる。名前見積りテーブルのメモリ使用量と圧縮効果とは、リンク先の値見積りテーブルのメモリ使用量と圧縮効果とが加算されている。
Aはエントリが属性であるかどうかを示し、属性である場合は1、そうでない場合は0とする。
Eはエントリが要素であるかどうかを示し、要素である場合は1、そうでない場合は0とする。
文字列長は、各エントリに登録されている文字列の長さである。
カウンタは、各エントリ登録されているカウンタの値である。
productionサイズは、EXI符号化時に使用するproductionの1エントリあたりのメモリサイズの見積もり値である。
grammarサイズは、EXI符号化時に使用するgrammarの1テーブルあたりのメモリサイズの見積もり値である。
本実施形態において、図6の計算式により見積もられたメモリ使用量と圧縮効果とは、図5のようになる。名前見積りテーブルのメモリ使用量と圧縮効果とは、リンク先の値見積りテーブルのメモリ使用量と圧縮効果とが加算されている。
見積り処理部302が見積もり終了後、符号化処理部301は、パラメタ決定部303を使って、valueMaxLengthパラメタとmaxNumberOfNamePartitionパラメタとの値を決定する。
図7は、パラメタ決定の情報処理の一例を示すフローチャートである。
以下、図7に沿ってフローチャートの処理を説明する。
パラメタ決定部303は、valueMaxLengthとmaxNumberOfNamePartitionとの初期値として、値見積りテーブルに登録されている文字列の最大長と名前見積りテーブルのエントリ数とを設定する。
S701において、パラメタ決定部303は、見積もったメモリ使用量が条件を満たしているかどうかを判定する。満たしていると判定した場合は、パラメタ決定部303は、図7の処理を終了し、現時点のvalueMaxLengthとmaxNumberOfNamePartitionとをパラメタの値として決定する。満たしていないと判定した場合は、パラメタ決定部303は、S702へ進む。
S702において、パラメタ決定部303は、名前見積りテーブルの最後のエントリの圧縮効果を影響Aとする。
S703において、パラメタ決定部303は、値見積りテーブルの最大長の文字列の圧縮効果を影響Bとする。
図7は、パラメタ決定の情報処理の一例を示すフローチャートである。
以下、図7に沿ってフローチャートの処理を説明する。
パラメタ決定部303は、valueMaxLengthとmaxNumberOfNamePartitionとの初期値として、値見積りテーブルに登録されている文字列の最大長と名前見積りテーブルのエントリ数とを設定する。
S701において、パラメタ決定部303は、見積もったメモリ使用量が条件を満たしているかどうかを判定する。満たしていると判定した場合は、パラメタ決定部303は、図7の処理を終了し、現時点のvalueMaxLengthとmaxNumberOfNamePartitionとをパラメタの値として決定する。満たしていないと判定した場合は、パラメタ決定部303は、S702へ進む。
S702において、パラメタ決定部303は、名前見積りテーブルの最後のエントリの圧縮効果を影響Aとする。
S703において、パラメタ決定部303は、値見積りテーブルの最大長の文字列の圧縮効果を影響Bとする。
S704において、パラメタ決定部303は、影響Aが影響Bより大きいかどうかを判定する。パラメタ決定部303は、影響Aの方が大きいと判定した場合は、S705へ進み、そうでない場合はS706へ進む。
S705において、パラメタ決定部303は、値見積りテーブルから最大長の文字列を削除する。また、パラメタ決定部303は、文字列を削除した値見積りテーブルへのリンクが張られている名前見積りテーブルのエントリに対し、削除した分のメモリ使用量と圧縮効果とを削減する。
S707において、パラメタ決定部303は、削除した分のメモリ使用量を削減する。パラメタ決定部303は、valueMaxLengthとmaxNumberOfNamePartitionとを、値見積りテーブルに登録されている文字列の最大長と名前見積りテーブルのエントリ数とに設定し、S701へ進む。
一方、S706において、パラメタ決定部303は、名前見積りテーブルから最後のエントリを削除する。また、パラメタ決定部303は、削除したエントリからリンクしている値見積りテーブルも削除する。その後、パラメタ決定部303は、S707へ進む。
S705において、パラメタ決定部303は、値見積りテーブルから最大長の文字列を削除する。また、パラメタ決定部303は、文字列を削除した値見積りテーブルへのリンクが張られている名前見積りテーブルのエントリに対し、削除した分のメモリ使用量と圧縮効果とを削減する。
S707において、パラメタ決定部303は、削除した分のメモリ使用量を削減する。パラメタ決定部303は、valueMaxLengthとmaxNumberOfNamePartitionとを、値見積りテーブルに登録されている文字列の最大長と名前見積りテーブルのエントリ数とに設定し、S701へ進む。
一方、S706において、パラメタ決定部303は、名前見積りテーブルから最後のエントリを削除する。また、パラメタ決定部303は、削除したエントリからリンクしている値見積りテーブルも削除する。その後、パラメタ決定部303は、S707へ進む。
本実施形態において、メモリ使用量を560以下という条件を設定した場合、図8に示すように、値見積りテーブル#1と値見積りテーブル#2が削除され、メモリ使用量が666から559に削減される。valueMaxLengthは6、maxNumberOfNamePartitionは6に決定される。
例えば、CPU101は、画面等を介したユーザ操作に応じて、又は設定ファイル等の設定に応じて、メモリ使用量の条件を設定する。後述するメモリ削減量の条件や圧縮効果の閾値等の設定も同様である。
例えば、CPU101は、画面等を介したユーザ操作に応じて、又は設定ファイル等の設定に応じて、メモリ使用量の条件を設定する。後述するメモリ削減量の条件や圧縮効果の閾値等の設定も同様である。
<実施形態2>
本実施形態では、EXI符号化時に名前テーブルと値テーブルとに保持するエントリを個別指定する場合の方法について説明する。
パラメタ決定部303は、個別指定する場合は、valueMaxLengthは0、maxNumberOfNamePartitionは0に設定する。
符号化処理部301は、見積り処理部302を使い、実施形態1と同様にメモリ使用量と圧縮効果との見積もりを行う。
符号化処理部301は、パラメタ決定部303を使い、EXI符号化時に名前テーブルと値テーブルとに保持するエントリを決定する。
本実施形態では、EXI符号化時に名前テーブルと値テーブルとに保持するエントリを個別指定する場合の方法について説明する。
パラメタ決定部303は、個別指定する場合は、valueMaxLengthは0、maxNumberOfNamePartitionは0に設定する。
符号化処理部301は、見積り処理部302を使い、実施形態1と同様にメモリ使用量と圧縮効果との見積もりを行う。
符号化処理部301は、パラメタ決定部303を使い、EXI符号化時に名前テーブルと値テーブルとに保持するエントリを決定する。
図9は、保持するエントリを決定する情報処理の一例を示すフローチャートである。
以下、図9に沿ってフローチャートの処理を説明する。
S901において、パラメタ決定部303は、圧縮効果が閾値内のエントリであるかどうかを判定する。パラメタ決定部303は、あると判定した場合はS903へ進み、ないと判定した場合はS902に進む。
S902において、パラメタ決定部303は、閾値内のエントリを作るために圧縮効果の閾値を変更しS901へ進む。
S903において、パラメタ決定部303は、閾値内のエントリで、メモリ使用量の制限を満たすためのメモリ削減量の条件を満たすエントリがあるかどうか判定する。パラメタ決定部303は、あると判定した場合はS904へ進み、ないと判定した場合はS905へ進む。
以下、図9に沿ってフローチャートの処理を説明する。
S901において、パラメタ決定部303は、圧縮効果が閾値内のエントリであるかどうかを判定する。パラメタ決定部303は、あると判定した場合はS903へ進み、ないと判定した場合はS902に進む。
S902において、パラメタ決定部303は、閾値内のエントリを作るために圧縮効果の閾値を変更しS901へ進む。
S903において、パラメタ決定部303は、閾値内のエントリで、メモリ使用量の制限を満たすためのメモリ削減量の条件を満たすエントリがあるかどうか判定する。パラメタ決定部303は、あると判定した場合はS904へ進み、ないと判定した場合はS905へ進む。
S904において、パラメタ決定部303は、条件を満たすエントリの中から圧縮効果が最小のエントリを選択する。パラメタ決定部303は、メモリ使用量の制限を満たしたので、図9に示す処理を終了する。
一方、S905において、パラメタ決定部303は、閾値内のエントリからメモリ使用量最大のエントリを選択し、見積りテーブルから削除する。削除したのが値見積りテーブルのエントリである場合は、パラメタ決定部303は、削除した値見積りテーブルへのリンクが張られている名前見積りテーブルのエントリに対し、削除した分のメモリ使用量と圧縮効果とを削減する。削除したのが名前見積りテーブルのエントリである場合は、パラメタ決定部303は、削除したエントリからリンクしている値見積りテーブルも削除する。
S906において、パラメタ決定部303は、削除した分のメモリ使用量より、メモリ削減量の条件を更新し、S901へ進む。このとき、パラメタ決定部303は、 圧縮効果の閾値を再設定してからS901へ進んでもよい。
一方、S905において、パラメタ決定部303は、閾値内のエントリからメモリ使用量最大のエントリを選択し、見積りテーブルから削除する。削除したのが値見積りテーブルのエントリである場合は、パラメタ決定部303は、削除した値見積りテーブルへのリンクが張られている名前見積りテーブルのエントリに対し、削除した分のメモリ使用量と圧縮効果とを削減する。削除したのが名前見積りテーブルのエントリである場合は、パラメタ決定部303は、削除したエントリからリンクしている値見積りテーブルも削除する。
S906において、パラメタ決定部303は、削除した分のメモリ使用量より、メモリ削減量の条件を更新し、S901へ進む。このとき、パラメタ決定部303は、 圧縮効果の閾値を再設定してからS901へ進んでもよい。
本実施形態において、圧縮効果の閾値を5、メモリ使用量を560以下という条件を設定した場合、図10に示すように、inportRequest要素のエントリが名前見積りテーブルから削除され、メモリ使用量が666から533に削減される。
valueMaxLengthは0、maxNumberOfNamePartitionは0とし、見積りテーブルの残りのエントリが、EXI符号化時の名前テーブルと値テーブルとに保持されるように、該当する要素、属性、値がスキーマ定義される。
また、パラメタ決定部303は、valueMaxLengthは41とし、該当する要素、属性だけがスキーマ定義してもよい。
更にまた、パラメタ決定部303は、スキーマでなくても、EXIの符号化、復号化を行う装置の独自のプリセット方式で定義してもよい。
valueMaxLengthは0、maxNumberOfNamePartitionは0とし、見積りテーブルの残りのエントリが、EXI符号化時の名前テーブルと値テーブルとに保持されるように、該当する要素、属性、値がスキーマ定義される。
また、パラメタ決定部303は、valueMaxLengthは41とし、該当する要素、属性だけがスキーマ定義してもよい。
更にまた、パラメタ決定部303は、スキーマでなくても、EXIの符号化、復号化を行う装置の独自のプリセット方式で定義してもよい。
本実施形態においては、圧縮効果の閾値設定により、EXI符号化時に名前テーブルと値テーブルとに保持するエントリの決定に時間がかかる場合がある。そこで、エントリ決定方法を複数のモードにするようにしてもよい。つまり、パラメタ決定部303は、通常は図9の手法を選択し、決定時間を早くする場合は図11の手法を選択する。モードの切り替えは、設定ファイル等の設定に基づき行ってもよいし、設定された時間より長くかかると判断した場合に自動で行ってもよい。
以下、図11の情報処理に沿って、決定時間を早くした場合のフローチャートの処理を説明する。
S1101において、パラメタ決定部303は、メモリ使用量の条件を満たすエントリが見積もりテーブルの中にあるかどうかを判定する。パラメタ決定部303は、ないと判定した場合は、現時点以上にEXI符号化時の名前テーブルと値テーブルとにエントリを保持できないので図11の処理を終了する。あると判定した場合は、パラメタ決定部303は、S1102へ進む。
S1102において、パラメタ決定部303は、条件を満たす中で、圧縮効率の高いエントリを、EXI符号化時の名前テーブルと値テーブルに保持するエントリとして選択する。
S1103において、パラメタ決定部303は、選択したエントリのメモリ使用量より、メモリ使用量の条件を更新しS1101へ進む。
これにより、閾値設定を決めなおす必要がないので、パラメタ決定が図9の処理より早く行える。
以下、図11の情報処理に沿って、決定時間を早くした場合のフローチャートの処理を説明する。
S1101において、パラメタ決定部303は、メモリ使用量の条件を満たすエントリが見積もりテーブルの中にあるかどうかを判定する。パラメタ決定部303は、ないと判定した場合は、現時点以上にEXI符号化時の名前テーブルと値テーブルとにエントリを保持できないので図11の処理を終了する。あると判定した場合は、パラメタ決定部303は、S1102へ進む。
S1102において、パラメタ決定部303は、条件を満たす中で、圧縮効率の高いエントリを、EXI符号化時の名前テーブルと値テーブルに保持するエントリとして選択する。
S1103において、パラメタ決定部303は、選択したエントリのメモリ使用量より、メモリ使用量の条件を更新しS1101へ進む。
これにより、閾値設定を決めなおす必要がないので、パラメタ決定が図9の処理より早く行える。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、圧縮効率とメモリ使用量との条件を考慮して自動的に符号化パラメタを決定し、符号化することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 情報処理装置、101 CPU
Claims (10)
- 構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もり手段と、
前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もり手段と、
を有し、
前記対応表はパラメタの値によりデータサイズが可変であり、
メモリ使用量の条件のもと、前記メモリ使用量見積もり手段により見積もられたメモリ使用量と、前記圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定手段と、
前記決定手段により決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化手段と、
を更に有する情報処理装置。 - 前記メモリ使用量見積もり手段は、前記構造化データを解析し、解析結果に基づきメモリ使用量を前記対応表のエントリ単位で見積もる請求項1記載の情報処理装置。
- 前記圧縮効果見積もり手段は、前記構造化データを解析し、解析結果に基づき圧縮効果を前記対応表のエントリ単位で見積もる請求項1又は2記載の情報処理装置。
- 前記決定手段は、メモリ使用量の条件のもと、前記対応表のエントリのうち前記圧縮効果見積もり手段により見積もられた圧縮効果が最も高いエントリを対応表に保持するエントリとして選択し、前記選択したエントリの前記メモリ使用量見積もり手段により見積もられたメモリ使用量に基づき、前記メモリ使用量の条件を更新する処理を、前記メモリ使用量の条件を満たすエントリがなくなるまで繰り返す請求項1乃至3何れか1項記載の情報処理装置。
- 前記決定手段は、圧縮効果の閾値と、前記メモリ使用量見積もり手段により見積もられたメモリ使用量と、前記圧縮効果見積もり手段により見積もられた圧縮効果と、に基づいて、前記圧縮効果が前記閾値内のエントリであって、かつ、前記メモリ使用量がメモリ削減量の条件を満たすエントリがない場合、前記圧縮効果が前記閾値内のエントリであって、かつ、前記メモリ使用量が最も高いエントリを前記対応表に保持しないエントリとして選択して、削除し、前記削除したエントリの前記メモリ使用量見積もり手段により見積もられたメモリ使用量に基づき、前記メモリ削減量の条件を更新する処理を、前記圧縮効果が前記閾値内のエントリであって、かつ、メモリ削減量の条件を満たすエントリがあるまで繰り返す請求項1乃至3何れか1項記載の情報処理装置。
- 前記パラメタは、構造化データの要素又は属性の値の長さの制限値である請求項1乃至3何れか1項記載の情報処理装置。
- 前記パラメタは、前記対応表のエントリ数の制限値である請求項1乃至3何れか1項記載の情報処理装置。
- 前記構造化データは、XMLのデータであり、
前記符号化手段は、前記構造化データをEXI(Efficient XML Interchange)に符号化する請求項1乃至7何れか1項記載の情報処理装置。 - 情報処理装置が実行する情報処理方法であって、
構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もりステップと、
前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もりステップと、
を含み、
前記対応表はパラメタの値によりデータサイズが可変であり、
メモリ使用量の条件のもと、前記メモリ使用量見積もりステップにより見積もられたメモリ使用量と、前記圧縮効果見積もりステップにより見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定ステップと、
前記決定ステップにより決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化ステップと、
を更に含む情報処理方法。 - コンピュータに、
構造化データの一部と符号との対応表の保持に係るメモリ使用量を見積もるメモリ使用量見積もりステップと、
前記対応表を保持することで、前記構造化データの符号化時に得られる圧縮効果を見積もる圧縮効果見積もりステップと、
を実行させ、
前記対応表はパラメタの値によりデータサイズが可変であり、
メモリ使用量の条件のもと、前記メモリ使用量見積もりステップにより見積もられたメモリ使用量と、前記圧縮効果見積もりステップにより見積もられた圧縮効果と、に基づいて前記パラメタの値を決定する決定ステップと、
前記決定ステップにより決定された前記パラメタの値に基づいて、前記構造化データを符号化する符号化ステップと、
を更に実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013254338A JP2015115652A (ja) | 2013-12-09 | 2013-12-09 | 情報処理装置、情報処理方法及びプログラム |
US14/561,603 US9922040B2 (en) | 2013-12-09 | 2014-12-05 | Information processing apparatus, information processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013254338A JP2015115652A (ja) | 2013-12-09 | 2013-12-09 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015115652A true JP2015115652A (ja) | 2015-06-22 |
Family
ID=53271372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013254338A Pending JP2015115652A (ja) | 2013-12-09 | 2013-12-09 | 情報処理装置、情報処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9922040B2 (ja) |
JP (1) | JP2015115652A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10191771B2 (en) * | 2015-09-18 | 2019-01-29 | Huawei Technologies Co., Ltd. | System and method for resource management |
US10313429B2 (en) * | 2016-04-11 | 2019-06-04 | Huawei Technologies Co., Ltd. | Distributed resource management method and system |
US20220414014A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Technology for early abort of compression acceleration |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3832807B2 (ja) * | 2001-06-28 | 2006-10-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ処理方法及びその手法を用いたエンコーダ、デコーダ並びにxmlパーサ |
US8769401B2 (en) * | 2004-08-05 | 2014-07-01 | Digi International Inc. | Method for compressing XML documents into valid XML documents |
US7443321B1 (en) * | 2007-02-13 | 2008-10-28 | Packeteer, Inc. | Compression of stream data using a hierarchically-indexed database |
EP2040178B1 (en) | 2007-09-20 | 2016-07-13 | Canon Kabushiki Kaisha | Document encoding apparatus, document encoding method, and computer-readable storage medium |
JP4898615B2 (ja) | 2007-09-20 | 2012-03-21 | キヤノン株式会社 | 情報処理装置および符号化方法 |
JP5379372B2 (ja) * | 2007-11-15 | 2013-12-25 | キヤノン株式会社 | データ圧縮装置、データ伸長装置およびデータ圧縮方法 |
US7765346B2 (en) * | 2007-12-14 | 2010-07-27 | Bmc Software, Inc. | Dynamic compression of systems management data |
FR2930660A1 (fr) * | 2008-04-25 | 2009-10-30 | Canon Kk | Procede d'acces a une partie ou de modification d'une partie d'un document xml binaire, dispositifs associes. |
FR2931271B1 (fr) * | 2008-05-15 | 2012-07-27 | Canon Kk | Procede et dispositif de codage d'un document structure et procede et dispositif de decodage d'un document ainsi code |
FR2936623B1 (fr) * | 2008-09-30 | 2011-03-04 | Canon Kk | Procede de codage d'un document structure et de decodage, dispositifs correspondants |
JP5409090B2 (ja) | 2009-04-13 | 2014-02-05 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
JP5671320B2 (ja) | 2009-12-18 | 2015-02-18 | キヤノン株式会社 | 情報処理装置及びその制御方法並びにプログラム |
US8533166B1 (en) * | 2010-08-20 | 2013-09-10 | Brevity Ventures LLC | Methods and systems for encoding/decoding files and transmission thereof |
US8149148B1 (en) * | 2010-10-08 | 2012-04-03 | Microsoft Corporation | Local binary XML string compression |
US20120304051A1 (en) * | 2011-05-27 | 2012-11-29 | Diacritech Technologies Pvt Ltd | Automation Tool for XML Based Pagination Process |
US8560508B2 (en) * | 2011-07-22 | 2013-10-15 | International Business Machines Corporation | Real-time compression of tabular data |
US9053121B2 (en) * | 2013-01-10 | 2015-06-09 | International Business Machines Corporation | Real-time identification of data candidates for classification based compression |
JP6011349B2 (ja) * | 2013-01-11 | 2016-10-19 | 富士通株式会社 | ストレージ装置、およびデータ圧縮方法 |
US9098558B2 (en) * | 2013-04-01 | 2015-08-04 | Oracle International Corporation | Enhanced flexibility for users to transform XML data to a desired format |
US9025892B1 (en) * | 2013-12-02 | 2015-05-05 | Qbase, LLC | Data record compression with progressive and/or selective decomposition |
US10235377B2 (en) * | 2013-12-23 | 2019-03-19 | Sap Se | Adaptive dictionary compression/decompression for column-store databases |
-
2013
- 2013-12-09 JP JP2013254338A patent/JP2015115652A/ja active Pending
-
2014
- 2014-12-05 US US14/561,603 patent/US9922040B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9922040B2 (en) | 2018-03-20 |
US20150161157A1 (en) | 2015-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110879854B (zh) | 使用超集树数据结构搜索数据 | |
TW201837720A (zh) | 用於多串流儲存裝置之串流選擇 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
US10771358B2 (en) | Data acquisition device, data acquisition method and storage medium | |
JP2011146036A (ja) | 情報処理装置及びその制御方法並びにプログラム | |
CN105095425A (zh) | 一种数据库的跨库结转方法及装置 | |
JP2015115652A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN113554178A (zh) | 优化梯度提升特征选择 | |
CN110399371B (zh) | 基于Redis数据库的减少内存消耗的方法、存储介质及设备 | |
CN104700830B (zh) | 一种语音端点检测方法及装置 | |
CN110716913B (zh) | 一种Kafka与Elasticsearch数据库数据的互相迁移方法 | |
CN103678349A (zh) | 一种垃圾数据过滤方法和装置 | |
WO2017071190A1 (zh) | 输入数据的处理方法、装置、设备及非易失性计算机存储介质 | |
CN107408104B (zh) | 样式的声明级联重新排序 | |
EP3371715B1 (en) | Generating a deferrable data flow | |
WO2015068259A1 (ja) | 情報提供方法および装置並びプログラム | |
JP2016170750A (ja) | データ管理プログラム、情報処理装置およびデータ管理方法 | |
CN111563363B (zh) | 一种超文本标记语言文档内容生成及解析方法 | |
JP2013196205A (ja) | データモデル変換プログラム、データモデル変換方法およびデータモデル変換装置 | |
US10942969B2 (en) | Non-transitory computer-readable storage medium, search control method, and search control apparatus | |
CN108073584B (zh) | 一种数据处理方法及服务器 | |
JP6085481B2 (ja) | プログラマブル回路、演算処理方法 | |
CN115114295B (zh) | 用于确定复合索引的方法和装置 | |
CN103019665A (zh) | 一种单据打开方法及装置 | |
US20150317403A1 (en) | System and method for management of data based bookmarks |