(57)【要約】【課題】  構造化データの各データ構造の値に対して、SIMDのような並列処理を適用してデータ処理を高速に行えるようにする。【解決手段】  予め並列処理を適用するデータ構造（x1、y1、x2、y2属性）と、適用する並列処理の種類（PADDD）とを指定する。構造化データの符号化に際し、並列処理を適用するデータ構造の符号化の開始位置であることを示す識別子と、並列処理の種類を示す識別子と、構造化データの構造情報と、並列処理の種類に合わせて整列した各値のデータとを個別に符号化する。【選択図】  図３
2012099054.tif 000002
【特許請求の範囲】
【請求項１】
構造化データを符号化する符号化処理装置であって、
前記構造化データにおける、並列処理を適用するデータ構造と、当該並列処理の種類と、を設定する設定手段と、
前記設定手段により設定されたデータ構造を、前記構造化データから検出する検出手段と、
前記検出手段により検出されたデータ構造における、処理の対象となるデータを、前記設定手段により設定された並列処理の種類に応じて整列させて符号化する符号化手段と、を有することを特徴とする符号化処理装置。
【請求項２】
前記符号化手段は、前記構造化データの構造単位で、前記処理の対象となるデータを符号化することを特徴とする請求項１に記載の符号化処理装置。
【請求項３】
一回の並列処理で実行されるデータ長を指定する指定手段を有し、
前記符号化手段は、前記処理の対象となるデータのうち、前記一回の並列処理で実行されるデータ長に基づく範囲のデータを符号化することを特徴とする請求項１に記載の符号化処理装置。
【請求項４】
前記検出手段により検出されたデータ構造における、処理の対象となるデータを一時的にバッファに記憶する記憶手段を有し、
前記符号化手段は、前記記憶手段により記憶されたデータの容量が、予め設定された容量に達すると、前記記憶手段により記憶されたデータを符号化することを特徴とする請求項１に記載の符号化処理装置。
【請求項５】
前記符号化手段は、前記処理の対象となるデータの符号化を開始する位置を識別する識別子と、前記並列処理の種類を示す識別子と、前記構造化データに含まれる構造情報と、前記処理の対象となるデータと、をそれぞれ符号化することを特徴とする請求項１〜４の何れか１項に記載の符号化処理装置。
【請求項６】
前記符号化手段は、前記検出手段により検出されたデータ構造に含まれる、構造情報と処理の対象となるデータとを分離して符号化し、前記構造化データにおける出現順に前記処理の対象となるデータを符号化することを特徴とする請求項５に記載の符号化処理装置。
【請求項７】
請求項１〜６の何れか１項に記載の符号化処理装置で符号化された構造化データを復号化する復号化処理装置であって、
前記復号化された構造化データから、前記並列処理を適用したデータ構造を検出する検出手段と、
前記検出手段により検出されたデータ構造におけるデータを復号化する復号化手段と、
前記復号化されたデータを連続するアドレスの記憶領域に保存する保存手段と、を有することを特徴とする復号化処理装置。
【請求項８】
構造化データを符号化する符号化処理方法であって、
前記構造化データにおける、並列処理を適用するデータ構造と、当該並列処理の種類と、を設定する設定工程と、
前記設定工程により設定されたデータ構造を、前記構造化データから検出する検出工程と、
前記検出工程により検出されたデータ構造における、処理の対象となるデータを、前記設定工程により設定された並列処理の種類に応じて整列させて符号化する符号化工程と、を有することを特徴とする符号化処理方法。
【請求項９】
前記符号化工程は、前記構造化データの構造単位で、前記処理の対象となるデータを符号化することを特徴とする請求項８に記載の符号化処理方法。
【請求項１０】
一回の並列処理で実行されるデータ長を指定する指定工程を有し、
前記符号化工程は、前記処理の対象となるデータのうち、前記一回の並列処理で実行されるデータ長に基づく範囲のデータを符号化することを特徴とする請求項８に記載の符号化処理方法。
【請求項１１】
前記検出工程により検出されたデータ構造における、処理の対象となるデータを一時的にバッファに記憶する記憶工程を有し、
前記符号化工程は、前記記憶工程により記憶されたデータの容量が、予め設定された容量に達すると、前記記憶工程により記憶されたデータを符号化することを特徴とする請求項８に記載の符号化処理方法。
【請求項１２】
前記符号化工程は、前記処理の対象となるデータの符号化を開始する位置を識別する識別子と、前記並列処理の種類を示す識別子と、前記構造化データに含まれる構造情報と、前記処理の対象となるデータと、をそれぞれ符号化することを特徴とする請求項８〜１１の何れか１項に記載の符号化処理方法。
【請求項１３】
前記符号化工程は、前記検出工程により検出されたデータ構造に含まれる、構造情報と処理の対象となるデータとを分離して符号化し、前記構造化データにおける出現順に前記処理の対象となるデータを符号化することを特徴とする請求項１２に記載の符号化処理方法。
【請求項１４】
請求項８〜１３の何れか１項に記載の符号化処理方法で符号化された構造化データを復号化する復号化処理方法であって、
前記復号化された構造化データから、前記並列処理を適用したデータ構造を検出する検出工程と、
前記検出工程により検出されたデータ構造におけるデータを復号化する復号化工程と、
前記復号化されたデータを連続するアドレスの記憶領域に保存する保存工程と、を有することを特徴とする復号化処理方法。
【請求項１５】
請求項８〜１３の何れか１項に記載の符号化処理方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１４に記載の復号化処理方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化処理装置、符号化処理方法、及びコンピュータプログラムに関し、特に、データを符号化するために用いて好適なものである。
【背景技術】
【０００２】
従来、データの表現形式の一つとしてXML（Extensible Markup Language）という技術が使われている。XMLでは、要素や属性といった構造情報を用いてデータを表現する。アプリケーションは、XMLデータを処理する際には、先ず構造情報を解析して当該構造情報を要素や属性に分解してからデータ処理を行う。この構造情報を解析する処理は一般的に時間がかかり、バイナリXML（非特許文献１を参照）やSIMD（Single Instruction Multiple Data）と呼ばれる並列処理技術が用いられている。SIMDは、複数のデータに対して同時に処理を実行できる技術であり、Intel Corporation製のCPU等でサポートされている。parabixと呼ばれるXMLプロセッサでは、XML中の特定文字の検出に際し、文字列データの各バイトをビット並列にして、8個のSIMDレジスタにセットし、複数の文字の比較を同時に行うことで高速化を実現している（特許文献１を参照）。また、Intel CorporationのXMLプロセッサでは、インデックスとして要素や属性を表す各構造情報を連続メモリに保存し、SIMDの並列比較処理命令を用いてXML文書の検索を高速に行っている（特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７４００２７１号明細書
【特許文献２】特開２００９−１４０４９４号公報
【非特許文献】
【０００４】
【非特許文献１】Efficient XML Interchange (EXI) Format 1.0（http://www.w3.org/TR/exi）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、XMLデータでは、SVG（Scalable Vector Graphics）の描画処理のように、要素や属性に記述された複数のデータに対して同じ処理を繰り返す場合が多くある。前述したように、XMLデータを処理する際には、先ず構造情報を解析して当該構造情報を要素や属性に分解する。一方、SIMDを用いてデータの並列処理を実行する際には、先ず同一処理を行う複数のデータをSIMDレジスタにセットする。各データがメモリ上に連続して存在していない場合、この同一処理を行う複数のデータをSIMDレジスタにセットする処理では、複数回の転送処理が必要となるため、オーバヘッドが大きくなる。１回あたりのSIMD処理は高速なので、このオーバヘッドは処理時間に大きな影響を及ぼす。
【０００６】
しかしながら、XMLデータでは、要素や属性の値が必ずしも連続メモリ上にはない。このため、XMLデータに対してSIMDを用いてもデータ処理の高速化の効果がなかったり、XMLデータに対してSIMDを用いると逆に性能が劣化したりする等、データ処理の高速化を実現するのが困難であった。
特許文献１に記載のparabixは構造情報の解析には効果的である。しかしながら、構造情報を要素や属性に分解した後のデータは、必ずしも連続メモリにはない。このため、前述したのと同様に、SIMDによるデータ処理の高速化は困難である。また、特許文献２に記載のXMLプロセッサでも、検索インデックスに必要な情報が連続メモリにあるだけなので、要素や属性の値にSIMDを適用するのは困難である。
本発明は、このような問題点に鑑みてなされたものであり、構造化データの各データ構造の値に対して、SIMDのような並列処理を適用してデータ処理を高速に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の符号化処理装置は、構造化データを符号化する符号化処理装置であって、前記構造化データにおける、並列処理を適用するデータ構造と、当該並列処理の種類と、を設定する設定手段と、前記設定手段により設定されたデータ構造を、前記構造化データから検出する検出手段と、前記検出手段により検出されたデータ構造における、処理の対象となるデータを、前記設定手段により設定された並列処理の種類に応じて整列させて符号化する符号化手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、並列処理を適用するデータ構造における、処理の対象となるデータを、当該並列処理の種類に応じて整列させて符号化するようにした。したがって、並列処理を行うデータの復号結果に対するオーバヘッドを少なくすることができる。よって、構造化データの各データ構造の値に対して、並列処理を適用してデータ処理を高速に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】コンピュータ装置の構成を示す図である。
【図２】XMLデータを示す図である。
【図３】符号化処理装置の構成を示す図である。
【図４】符号化処理装置の動作を説明するフローチャートである。
【図５】ステップＳ４０５の詳細な動作の一例を説明するフローチャートである。
【図６】EXIの符号化規則を示す図である。
【図７】符号化されたXMLデータを示す図である。
【図８】復号化処理装置の構成を示す図である。
【図９】復号化処理装置の動作を説明するフローチャートである。
【図１０】メモリとSIMDレジスタの記憶内容を概念的に示す図である。
【発明を実施するための形態】
【００１０】
図１は、本実施形態の情報処理装置を構成するコンピュータ装置の構成の一例を示す図である。情報処理装置は、単一のコンピュータ装置で実現してもよいし、必要に応じて複数のコンピュータ装置で、その機能を分散して実現してもよい。複数のコンピュータ装置で情報処理装置が構成される場合は、当該複数のコンピュータ装置は、相互に通信可能なようにLAN（Local Area Network）等で相互に接続される。
【００１１】
図１において、CPU（Central Processing Unit）１０１は、コンピュータ装置１００全体を制御する。ROM（Read Only Memory）１０２は、変更を必要としないプログラムやパラメータを格納する。RAM（Random Access Memory）１０３は、外部装置等から供給されるプログラムやデータを一時的に記憶する。外部記憶装置１０４は、コンピュータ装置１００に固定して設置されており、プログラムやデータを記憶する。外部記憶装置１０４は、例えば、ハードディスク、メモリカード、コンピュータ装置１００から着脱可能なフレキシブルディスク（FD）、CD等の光ディスク、磁気カード、光カード、ＩＣカード、メモリカードの少なくとも何れか１つを含む。入力インターフェース１０５は、ポインティングデバイスやキーボード等の入力デバイスとのインターフェースである。ネットワークインタフェース１０６は、インターネット等のネットワーク回線に接続し、コンピュータ装置１００が外部装置との通信する際のインターフェースとなる。システムバス１０７は、コンピュータ装置１００の各ユニット１０１〜１０６を相互に通信可能にするためのものである。
【００１２】
図２は、XMLデータの一例を示す図である。本実施形態では、図２に示すXMLデータ２００に対し、SIMDによる高速処理を実現する場合を例に挙げて説明する。図２に示すXMLデータ２００はSVGのデータである。図２に示すXMLデータ２００のtransform属性は、当該transform属性の値の記述に従って、各データに変換処理を行うことを示している。SVGのプロセッサは、この記述に従い各データを変換する処理を行う。図２に示す例では、transform属性は、"translate(10, 20)"と記述されており、x座標に10を、y座標に20をそれぞれ加算することを示している。よって、SVGのプロセッサは、line要素のx1属性とx2属性の値に10を加算すると共にy1属性とy2属性の値に20を加算して描画処理を行う。これらの処理は複数のデータに同一の処理を繰り返す行うものであり、SIMDの適用によってデータ処理の高速化が可能な部分である。
【００１３】
図３は、符号化処理装置の構成の一例を示す図である。図３に示す符号化処理装置３０１は、例えば、CPU１０１がROM１０２等に記憶されているプログラムを実行することによって実現することができる。
SIMD適用データ構造指定部３０２は、アプリケーションからの指定に基づいて、SIMD命令と、SIMD処理を適用するXMLのデータ構造とを設定する。SIMD適用データ構造判定部３０３は、XMLデータ２００（入力データ）が、SIMD処理を適用するデータ構造のデータであるか否かを判定する。入力データ保存部３０４は、入力データを一時的に保存する。SIMD適用データ構造符号化部３０５は、SIMD処理が適用される入力データに対し符号化を行う。XML符号化部３０６は、SIMD処理が適用されない入力データに対し符号化を行う。
【００１４】
先ず、アプリケーションは、符号化するXMLデータ２００を入力する前に、SIMD命令と、SIMD処理を適用するデータ構造とを含む設定情報をSIMD適用データ構造指定部３０２に対して指定する。図２に示す例では、line要素のx1、y1、x2、y2属性にPADDDと呼ばれる３２ビット単位の加算命令がSIMD適用データ構造指定部３０２に指定される。よって、2つの128ビット長のSIMDレジスタ上のデータが32ビット単位で加算される。
また、XMLでは、スキーマごとに構造情報が規定される。よって、SIMD適用データ構造指定部３０２は、SIMD命令と、SIMD処理を適用するデータ構造とをスキーマ単位で設定し、XMLデータを符号化する前に設定情報を読み込むようにしてもよい。
【００１５】
次に、アプリケーションは、符号化処理装置３０１に、図２に示すXMLデータ２００を入力する。図４は、XMLデータ２００を符号化する際の符号化処理装置３０１の動作の一例を説明するフローチャートである。
まず、ステップＳ４０１において、SIMD適用データ構造判定部３０３は、入力されたデータ（XMLデータ２００）のデータ構造が、SIMD適用データ構造指定部３０２に対して指定されたデータ構造であるか否かを判定する。この判定の結果、入力されたデータのデータ構造が、SIMD適用データ構造指定部３０２に対して指定されたデータ構造でない場合には、ステップＳ４０２において、XML符号化部３０６は、入力されたデータを従来の符号化方式で符号化する。テキスト形式のUTF-8やUTF-16では、文字としてしか符号化できないので、本実施形態では、EXI（Efficient XML Interchange）を従来の符号化方式とする。
【００１６】
一方、入力されたデータのデータ構造が、SIMD適用データ構造指定部３０２に対して指定されたデータ構造のデータである場合には、ステップＳ４０３に進む。そして、SIMD適用データ構造判定部３０３は、入力されたデータのデータ構造が、SIMD処理を適用するデータ構造の終端であるか否かを判定する。
この判定は、例えば、XMLの構造単位をコンピュータ装置１００に設定しておき、入力された「一回の並列処理で実行されるデータ長」がXMLの構造単位に達した時点で、SIMD処理を適用するデータ構造の終端であると判定することができる。図２に示す例では、line要素の属性に対してSIMD処理を適用するので、line要素の開始要素の入力が終了した時点で、SIMD処理を適用するデータ構造の終端であると判定することができる。
【００１７】
また、この判定は、SIMDレジスタのレジスタ長によって実行することもできる。本実施形態では、メモリからSIMDレジスタへデータを転送する際のオーバヘッドを減らしたいので、連続メモリ（連続したアドレスの記憶領域）上に存在する必要があるデータ長はSIMDレジスタ長までである。よって、SIMDレジスタ長をコンピュータ装置１００に設定しておき、符号化時にSIMDレジスタ長が分かるようにしておけば、入力されたデータのデータ長がSIMDレジスタ長に達した時点で、SIMD処理を適用するデータ構造の終端であると判定できる。本実施形態の場合、128ビットのSIMDレジスタに32ビット単位のSIMD演算を行うので、line要素のx1、y1、x2、及びy2という４つのデータが入力された時点で、SIMD処理を適用するデータ構造の終端であると判定することができる。
また、コンピュータ装置１００がメモリリソースの少ない機器等である場合には、入力されたデータを保存しているバッファの記憶容量が上限になった時点で、SIMD処理を適用するデータ構造の終端としてもよい。
【００１８】
次に、ステップＳ４０３において、入力されたデータのデータ構造が、SIMD処理が適用されるデータ構造の終端でないと判定された場合には、ステップＳ４０４に進む。ステップＳ４０４に進むと、入力データ保存部３０４は、SIMD処理を適用するデータ構造の終端が入力されるまで、入力されたデータを一時的に保存する。一方、入力されたデータのデータ構造が、SIMD処理が適用されるデータ構造の終端であると判定された場合には、ステップＳ４０５に進む。ステップＳ４０５に進むと、SIMD適用データ構造符号化部３０５は、SIMD処理を適用するデータ構造のデータに対し、SIMD適用データ構造符号化を行う。符号化処理装置３０１は、図４のフローチャートを繰り返し行う。
【００１９】
図５は、図４のステップＳ４０５のSIMD適用データ構造符号化を行う際の符号化処理装置３０１の詳細な動作の一例を説明するフローチャートである。
まず、ステップＳ５０１において、SIMD適用データ構造符号化部３０５は、SIMD処理を適用するデータ構造の符号化の開始位置であることを示す識別子を符号化する。この識別子によりSIMD処理を適用するデータ構造であることが検出される。本実施形態では、XML符号化部３０６は、EXIを用いて、入力されたデータの符号化を行っている。そこで、本実施形態では、SIMD処理を適用するデータ構造の符号化の開始位置であることを示す識別子にSCイベントを利用する。SCイベントは、本来SCイベントの前後でEXIの符号化処理をリセットする意味を持ち、EXIデータのランダムアクセスに利用されるものである。しかし、本実施形態では、SIMD適用データ構造符号化の開始位置を示すものとしてSCイベントを使う。図６は、EXIの符号化規則（開始要素内のイベントに対する符号）の一例を示す図である。SCイベントには、図６に示すうなEXIの符号化規則６００が規定されており、このEXIの符号化規則に従った符号化がされる。
【００２０】
次に、ステップＳ５０２において、SIMD適用データ構造符号化部３０５は、適用するSIMD処理の命令を識別する識別子を符号化する。この識別子は、符号化データのデータ境界を示すことになる。図７は、バイナリ符号化がなされたXMLデータの一例を示す図である。本実施形態では、SIMD処理の命令であるPADDDは、32ビット単位のSIMD演算を行う命令である。よって、図７に示すように、構造情報の後に、32ビット境界のデータが連続して符号化される。
次に、ステップＳ５０３において、SIMD適用データ構造符号化部３０５は、入力データ保存部３０４に一時的に保存していた「SIMD処理が適用されるデータ構造」の構造情報の符号化を行う。構造情報は、XML符号化部３０６における符号化と同様に、EXIの規則に従い符号化される。ただし、図７に示すように、値が入るべき箇所には、特殊データ７０１ａ〜７０１ｄを入れておく。本実施形態では、EXIの規則を利用しているので、EXIの文字列テーブルのエントリの一つを特殊データ用に割り当て、エントリ番号を特殊データ７０１ａ〜７０１ｄとして符号化する。
【００２１】
次に、ステップＳ５０４において、SIMD適用データ構造符号化部３０５は、各データを符号化する。各データは、図７に示すように、入力された順番に（出現順に）、SIMD処理の命令のデータ境界に従って符号化される。入力された順番にデータを符号化しているので、符号化されたデータを処理する際には、先頭から順番にデータを読み出して、当該データに対応する特殊データから、どの構造位置のデータであったかを特定することができる。本実施形態では、PADDD命令を行っており、32ビット単位の境界である必要があるため、各数値"100"、"200"、"110"、"210"は32ビットのデータとして符号化される。入力されたデータ長が16ビットや8ビットであった場合は、0でpaddingすることになる。これによりデータが整列される。データを整列するとは、データ長や、データを保存したメモリのアドレスを或る値に合わせることをいう。
【００２２】
以上の処理によって、一つのSIMD処理を適用するデータ構造の符号化を行ったことになる。入力されたデータの最後まで同様に符号化処理を繰り返し行う。
以上のように、処理の内容に応じて構造化されて情報が記述された構造化データを符号化するに際し、並列処理（SIMD処理）を適用するデータ構造が構造化データに存在するか否かを判定する。そして、並列処理を適用するデータ構造が構造化データに存在する場合には、並列処理に適したデータ構造となるように構造化データが変換されて、並列処理の対象となるデータ（値）が整列される。図２、図７に示す例では、データ構造は、line要素の各属性（x1属性、x2属性、y1属性、y2属性）であり、並列処理の対象となるデータは、各数値"100"、"200"、"110"、"210"である。ここで、各データが、並列処理の対象となるデータ（値）であることは構造情報によって特定される。また、メモリからレジスタへのデータの転送回数を少なくするために符号化データを連結することができる。
【００２３】
図８は、復号化処理装置の構成の一例を示す図である。図８に示す復号化処理装置８０１は、例えば、CPU１０１がROM１０２等に記憶されているプログラムを実行することによって実現することができる。
符号化開始位置判定部８０２は、符号化されたXMLデータが、SIMD処理を適用するデータ構造の符号化開始位置のデータであるか否かを判定する。
SIMD適用データ構造復号化部８０３は、符号化されたXMLデータが、SIMD処理を適用するデータ構造の符号化開始位置のデータである場合に、SIMDを適用するデータ構造の復号処理を行う。
XML復号化部８０４は、先頭から順に従来のXMLの復号処理を行う。
【００２４】
図９は、符号化されたXMLデータを復号化する際の復号化処理装置８０１の動作の一例を説明するフローチャートである。
まず、ステップＳ９０１において、符号化開始位置判定部８０２は、符号化されたXMLデータが、SIMD処理を適用するデータ構造の符号化開始位置のデータであるか否かを判定する。本実施形態では、従来のXMLの符号化としてEXIを用いており、SIMD処理を適用するデータ構造の符号化の開始位置であることを示す識別子にはSCイベントを利用している。よって、符号化開始位置判定部８０２は、復号した結果が、SCイベントであった場合には、復号したデータが、SIMD処理を適用するデータ構造の符号化開始位置のデータであると判定する。
【００２５】
この判定の結果、復号したデータが、SIMD処理を適用するデータ構造の符号化開始位置のデータでない場合には、ステップＳ９０２に進み、XML復号化部８０４は、次のデータに対して従来のXMLの復号処理を行う。
一方、復号したデータが、SIMD処理を適用するデータ構造の符号化開始位置のデータである場合には、ステップＳ９０３に進み、SIMD適用データ構造復号化部８０３は、SIMD処理を適用するデータ構造の復号処理を行う。まず、SIMD適用データ構造復号化部８０３は、SIMD処理の命令の識別子を復号化する。次に、SIMD適用データ構造復号化部８０３は、後続する構造情報に対しEXIの復号処理を行う。ただし、値が記述される位置は、代替の特殊データが記述されていることを考慮する。最後に、SIMD適用データ構造復号化部８０３は、値であるデータを、データフォーマットを維持した状態でメモリ（連続したアドレスの記憶領域）へ保存する。
このとき、保存先のメモリの先頭アドレスは整列されていることが望ましい。SIMDのデータ転送命令に対する処理は、保存先のメモリの先頭アドレスが整列されている場合の方がそうでない場合よりも高速に行うことができるからである。本実施形態の場合、128ビットのSIMD処理であるので、16の倍数となるアドレスを保存先のメモリの先頭アドレスとして用いるのがよい。復号化処理装置８０１は、図９のフローチャートを繰り返し行う。
【００２６】
復号化処理装置８０１は、復号結果をアプリケーションへ返す際には、構造情報と、SIMD処理の命令の種類と、値の保存先のアドレスとをアプリケーションへ返す。SIMD処理の命令からデータの境界を判定し、値の保存先のアドレスから当該値に辿ることによって、個々の値にアクセスすることが可能である。
復号結果を受け取ったアプリケーションは、translate処理を行う際に、SIMDのMOVDQA命令を使って、少ないオーバヘッドで、値をSIMDレジスタへ転送する。図１０は、復号時におけるRAM１０３（メモリ）とSIMDレジスタの記憶内容の一例を概念的に示す図である。図１０に示すように、translateする"10"、"20"の値を、メモリの一例であるRAM１０３からCPU１０１が備えるSIMDレジスタに設定し、これに対しPADDD命令を行うことで、translate処理の並列処理が実行できる。
【００２７】
以上のように本実施形態では、予め並列処理を適用するデータ構造（x1、y1、x2、y2属性）と、適用する並列処理の種類（PADDD）とを指定する。構造化データの符号化に際し、並列処理を適用するデータ構造の符号化の開始位置であることを示す識別子と、並列処理の種類を示す識別子と、構造化データの構造情報と、並列処理の種類に合わせて整列した各値のデータとを個別に分離して符号化する。したがって、並列処理を適用するデータを、連続したアドレスの記憶領域（メモリ）上に位置させることができるため、メモリからSIMDレジスタへの転送オーバヘッドが削減され、SIMDによるXML処理の高速化が実現できる。
【００２８】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００２９】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【００３０】
１００  コンピュータ装置、３０１  符号化処理装置、８０１  復号化処理装置
【図１】
2012099054.tif 000003
【図２】
2012099054.tif 000004
【図３】
2012099054.tif 000005
【図４】
2012099054.tif 000006
【図５】
2012099054.tif 000007
【図６】
2012099054.tif 000008
【図７】
2012099054.tif 000009
【図８】
2012099054.tif 000010
【図９】
2012099054.tif 000011
【図１０】
2012099054.tif 000012