(57)【要約】【課題】複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制するようにした情報処理装置を提供する。【解決手段】情報処理装置の情報受取手段は、情報を受け取り、複数の符号語生成手段は、情報から符号語を生成し、並列数生成手段は、並列して動作する前記符号語生成手段の数を生成し、分配手段は、前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配し、収集手段は、各々の前記符号語生成手段によって生成された符号語を収集し、連結手段は、前記収集手段によって収集された符号語を連結し、出力手段は、前記連結手段によって連結された符号語を出力する。【選択図】図１
2013058825.tif 000002
【特許請求の範囲】
【請求項１】
情報を受け取る情報受取手段と、
情報から符号語を生成する複数の符号語生成手段と、
並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、
前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、
各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、
前記収集手段によって収集された符号語を連結する連結手段と、
前記連結手段によって連結された符号語を出力する出力手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記情報受取手段と前記並列数生成手段と前記分配手段と前記収集手段と前記連結手段と前記出力手段は、第１の処理部によって構成され、
複数の前記符号語生成手段は、第２の処理部によって構成されており、
第１の処理部は、第２の処理部と比較して分岐処理に適しており、
第２の処理部は、第１の処理部と比較して繰り返し処理に適している
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記並列数生成手段は、
（１）予め定められた情報に対して、前記第１の処理部と前記第２の処理部が処理を行って計測された各々の処理時間、
（２）前記第１の処理部と前記第２の処理部の各々のメモリアクセス回数とメモリアクセスの帯域、
（３）前記第１の処理部と前記第２の処理部の各々の動作周波数、
（４）前記第２の処理部の数、
（５）前記情報受取手段が受け取る情報の種類
のいずれか１つ又はこれらの組み合わせに基づいて、並列して動作する前記符号語生成手段の数を生成する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記並列数生成手段は、
（１）予め定められた情報量に対する前記符号語生成手段による処理時間、
（２）予め定められた情報量に対する前記符号語生成手段による符号量
のいずれか１つ又はこれらの組み合わせに基づいて、該予め定められた情報量に対する符号語の生成が行われた後に、並列して動作する前記符号語生成手段の数を生成する
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
コンピュータを、
情報を受け取る情報受取手段と、
情報から符号語を生成する複数の符号語生成手段と、
並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、
前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、
各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、
前記収集手段によって収集された符号語を連結する連結手段と、
前記連結手段によって連結された符号語を出力する出力手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
符号語の生成に関する技術がある。
これに関連する技術として、例えば、特許文献１には、画像データの符号化、復号化を高速で効率よく行うことができる画像データ符号化装置及び復号化装置を提供することを目的とし、画像データを複数の画像データストリームに分割するデータ分配器と、前記各画像データストリームを並列符号化処理して符号化データストリームを出力する算術符号器とを含むことが開示されている。
【０００３】
また、例えば、特許文献２には、各タイルに算術符号化を並列に行う際の算術符号化処理の高速化、また、算術符号化された各タイルを並列に復号する際の復号処理の高速化を課題とし、入力画像のタイル分割、周波数変換、量子化を行い、次にビットプレーン内でビット値が１のビットの数に、ビットプレーン毎の重みを掛ける演算を全てのビットプレーンに対して行い、全てのビットプレーンの演算結果の総和値（予測時間）を求め、そして各タイルを予測時間の大きい順にソートし、ソートした各タイルを予測時間の大きい順に算術符号化処理されるように、かつ各算術符号化器の処理時間差が最小となるように算術符号化器に分配し、算術符号化器はタイルの量子化値のビットプレーンに算術符号化処理を施し、データ結合器は算術符号化処理を施された各タイルのデータを結合し、符号化データストリームを出力することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−１１６５３４号公報
【特許文献２】特開２００２−３５４２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、情報を受け取る情報受取手段と、情報から符号語を生成する複数の符号語生成手段と、並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、前記収集手段によって収集された符号語を連結する連結手段と、前記連結手段によって連結された符号語を出力する出力手段を具備することを特徴とする情報処理装置である。
【０００７】
請求項２の発明は、前記情報受取手段と前記並列数生成手段と前記分配手段と前記収集手段と前記連結手段と前記出力手段は、第１の処理部によって構成され、複数の前記符号語生成手段は、第２の処理部によって構成されており、第１の処理部は、第２の処理部と比較して分岐処理に適しており、第２の処理部は、第１の処理部と比較して繰り返し処理に適していることを特徴とする請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記並列数生成手段は、（１）予め定められた情報に対して、前記第１の処理部と前記第２の処理部が処理を行って計測された各々の処理時間、（２）前記第１の処理部と前記第２の処理部の各々のメモリアクセス回数とメモリアクセスの帯域、（３）前記第１の処理部と前記第２の処理部の各々の動作周波数、（４）前記第２の処理部の数、（５）前記情報受取手段が受け取る情報の種類のいずれか１つ又はこれらの組み合わせに基づいて、並列して動作する前記符号語生成手段の数を生成することを特徴とする請求項２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記並列数生成手段は、（１）予め定められた情報量に対する前記符号語生成手段による処理時間、（２）予め定められた情報量に対する前記符号語生成手段による符号量のいずれか１つ又はこれらの組み合わせに基づいて、該予め定められた情報量に対する符号語の生成が行われた後に、並列して動作する前記符号語生成手段の数を生成することを特徴とする請求項２又は３に記載の情報処理装置である。
【００１０】
請求項５の発明は、コンピュータを、情報を受け取る情報受取手段と、情報から符号語を生成する複数の符号語生成手段と、並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、前記収集手段によって収集された符号語を連結する連結手段と、前記連結手段によって連結された符号語を出力する出力手段として機能させるための情報処理プログラムである。
【発明の効果】
【００１１】
請求項１の情報処理装置によれば、複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制することができる。
【００１２】
請求項２の情報処理装置によれば、本構成を有していない場合に比較して、第２の処理部と第１の処理部の各々の性能を発揮させることができる。
【００１３】
請求項３の情報処理装置によれば、予め符号語生成手段の数を生成することができるようになる。
【００１４】
請求項４の情報処理装置によれば、符号語生成手段の数を動的に生成することができる。
【００１５】
請求項５の情報処理プログラムによれば、複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】第１の実施の形態を具現化した場合のモジュール構成例を示す説明図である。
【図３】第１の実施の形態による処理例を示すフローチャートである。
【図４】並列数生成モジュール内のモジュール構成例を示す説明図である。
【図５】処理時間と平均符号語長の関係の例を示すグラフである。
【図６】並列数生成モジュール内のモジュール構成例を示す説明図である。
【図７】処理時間と平均符号語長の関係の例を示すグラフである。
【図８】処理時間と平均符号語長の関係の例を示すグラフである。
【図９】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図１０】第２の実施の形態による処理例を示すフローチャートである。
【図１１】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１８】
第１の実施の形態である情報処理装置は、シンボル１０８から符号データ１５２を生成するものであって、図１の例に示すように、シンボル分配モジュール１１０、並列数生成モジュール１２０、符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂ、収集モジュール１４０、符号語連結モジュール１５０を有している。
【００１９】
シンボル分配モジュール１１０は、並列数生成モジュール１２０、符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂと接続されている。シンボル分配モジュール１１０は、情報を受け取る。ここで、情報とは、信号、シンボルともいわれており（以下、シンボルともいう）、具体的には、画像データ、動画像データ、音声データ、テキストデータ等が該当する。画像データを受け付けるとは、例えば、スキャナ、カメラ等で画像データを読み込むこと、ファックス等で通信回線を介して外部機器から画像データを受信すること、ＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等で映像を撮影すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、２値画像、多値画像（カラー画像を含む）であってもよい。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる文書、広告宣伝用のパンフレット等であってもよい。
【００２０】
そして、シンボル分配モジュール１１０は、並列数生成モジュール１２０によって生成された並列数１２２に基づいて、受け取ったシンボル１０８を符号語生成モジュール１３０の各々（符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂ等）に分配する。
また、シンボル分配モジュール１１０は、並列数生成モジュール１２０によって生成された並列数１２２だけ符号語生成モジュール１３０を生成するようにしてもよいし、並列数生成モジュール１２０によって生成された並列数１２２以上にある符号語生成モジュール１３０から並列数生成モジュール１２０によって生成された数だけ符号語生成モジュール１３０を選択するようにしてもよい。
【００２１】
並列数生成モジュール１２０は、シンボル分配モジュール１１０と接続されている。並列数生成モジュール１２０は、符号語生成モジュール１３０の並列数１２２を生成する。
【００２２】
符号語生成モジュール１３０Ａは、シンボル分配モジュール１１０、収集モジュール１４０と接続されている。符号語生成モジュール１３０Ｂは、シンボル分配モジュール１１０、収集モジュール１４０と接続されている。同様の構成の符号語生成モジュール１３０は複数あって、３以上あってもよく、その数は並列数１２２以上である。それらの符号語生成モジュール１３０は、並列して動作する。符号語生成モジュール１３０は、シンボル分配モジュール１１０によって分配されたシンボル１１２から符号語を生成する。この符号語の生成処理は、具体例として可変長符号化処理がある。したがって、各々の符号語生成モジュール１３０が生成する符号語としては、例えば、可変長符号語１３１、可変長符号語１３２となり、その内容は符号語とその符号語の長さを含む。符号語生成モジュール１３０が行う符号語生成処理としては、例えば、ハフマン（Ｈｕｆｆｍａｎ）符号語生成処理、ゴロム符号語生成処理等が利用できる。
【００２３】
収集モジュール１４０は、符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂ、符号語連結モジュール１５０と接続されている。収集モジュール１４０は、各々の符号語生成モジュール１３０（符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂ等）によって生成された符号語（例えば、可変長符号語１３１、可変長符号語１３２）を収集する。
【００２４】
符号語連結モジュール１５０は、収集モジュール１４０と接続されている。符号語連結モジュール１５０は、収集モジュール１４０によって収集された符号語を連結する。そして、連結された符号語を符号データ１５２として出力する。符号データ１５２を出力するとは、例えば、画像データベース等の画像記憶装置へ画像を書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと、プリンタ等の印刷装置で印刷すること、ファックス等の画像送信装置で画像を送信すること等が含まれる。
符号語連結モジュール１５０での連結処理は、符号語生成モジュール１３０が１つであったかのように符号語を連結することである。すなわち、シンボル分配モジュール１１０が受け取ったシンボルの順にしたがって、そのシンボルに対して処理を行った符号語生成モジュール１３０の出力を連結する。
【００２５】
図２は、第１の実施の形態を具現化した場合のモジュール構成例を示す説明図である。
シンボル分配モジュール１１０、並列数生成モジュール１２０、収集モジュール１４０、符号語連結モジュール１５０は第１の処理部によって構成されている。第１の処理部は、第２の処理部と比較して分岐処理に適しているものであればよい。ここで適しているとは、第２の処理部と比較した場合に高速で分岐処理を行うことができることをいう。具体例として、図２の例に示すように、第１の処理部はＣＰＵであり、ＨＷ−Ｂ（ＣＰＵ）２１０は、シンボル分配モジュール１１０、並列数生成モジュール１２０、収集モジュール１４０、符号語連結モジュール１５０を有している。
【００２６】
複数の符号語生成モジュール１３０は第２の処理部によって構成されている。第２の処理部は、第１の処理部と比較して繰り返し処理に適しているものであればよい。ここで適しているとは、第１の処理部と比較した場合に高速で繰り返し処理を行うことができることをいう。具体例として、図２の例に示すように、第２の処理部はＧＰＵであり、ＨＷ−Ａ（ＧＰＵ）２２０は、符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂを有している。
【００２７】
符号語生成モジュール１３０が行う符号語の生成処理は、単純処理であるがメモリアクセスが多い傾向がある。一方、符号語連結モジュール１５０が行う符号連結処理は、メモリアクセスは少ないが、分岐が多くシーケンシャル処理である。これをハードウェアの面から考察すると、前者は並列数が高く取れるＧＰＵに適しており、後者は分岐処理を含むシーケンシャルな処理能力が高いＣＰＵに適している。
【００２８】
本実施の形態では、一般的に可変長符号化を行うモジュールを、（１）符号語生成モジュール１３０、（２）収集モジュール１４０と符号語連結モジュール１５０に分割し、（１）の処理を行うＧＰＵと（２）の処理を行うＣＰＵに、各々適した動作をさせるために並列数生成モジュール１２０を設けている。
【００２９】
例えば、並列数生成モジュール１２０は、
（Ａ１）予め定められた情報に対して、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０が処理を行って計測された各々の処理時間とメモリアクセスの帯域、
（Ａ２）予め定められた情報に対して、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０が処理を行った場合の各々のメモリアクセス回数、
（Ａ３）ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０の各々の動作周波数、
（Ａ４）ＨＷ−Ａ（ＧＰＵ）２２０の数、
（Ａ５）シンボル分配モジュール１１０が受け取るシンボル１０８の種類
のいずれか１つ又はこれらの組み合わせに基づいて、並列して動作する符号語生成モジュール１３０の数を静的に生成するようにしてもよい。
【００３０】
また、例えば、並列数生成モジュール１２０は、
（Ｂ１）予め定められた情報量に対する符号語生成モジュール１３０による処理時間、
（Ｂ２）予め定められた情報量に対する符号語生成モジュール１３０による符号量
のいずれか１つ又はこれらの組み合わせに基づいて、その予め定められた情報量に対する符号語の生成が行われた後に、並列して動作する符号語生成モジュール１３０の数を動的に生成するようにしてもよい。
【００３１】
また、具体的には、並列数生成モジュール１２０は、符号語連結モジュール１５０の速度に合わせて、符号語生成モジュール１３０の数を調整することを行ってもよい。逆に、符号語生成モジュール１３０の数に合わせて、符号語連結モジュール１５０の処理負荷を決定するようにしてもよい。
【００３２】
図３は、第１の実施の形態による処理例を示すフローチャートである。
ステップＳ３０２では、シンボル分配モジュール１１０が、シンボル１０８を受け取る。
ステップＳ３０４では、並列数生成モジュール１２０が、符号語生成モジュール１３０の並列数１２２を生成する。
ステップＳ３０６では、シンボル分配モジュール１１０が、並列数１２２分の符号語生成モジュール１３０を生成する。又は、並列数１２２分の符号語生成モジュール１３０を選択する。
ステップＳ３０８では、シンボル分配モジュール１１０が、各符号語生成モジュール１３０にシンボルを分配する。
ステップＳ３１０では、各符号語生成モジュール１３０が、シンボルに対する符号語を生成する。
ステップＳ３１２では、収集モジュール１４０が、各符号語生成モジュール１３０が生成した符号語を収集する。
ステップＳ３１４では、符号語連結モジュール１５０が、符号語を連結する。
ステップＳ３１６では、符号語連結モジュール１５０が、符号データ１５２を出力する。
【００３３】
図４は、並列数生成モジュール１２０内のモジュール構成例を示す説明図である。
並列数生成モジュール１２０は、静的特徴量取得モジュール４２２、並列数決定モジュール４２４を有している。
静的特徴量取得モジュール４２２は、並列数決定モジュール４２４と接続されている。静的特徴量取得モジュール４２２は、静的な特徴量を取得し、その特徴量を並列数決定モジュール４２４に渡す。
並列数決定モジュール４２４は、静的特徴量取得モジュール４２２と接続されている。並列数決定モジュール４２４は、静的特徴量取得モジュール４２２によって取得された特徴量に基づいて、符号語生成モジュール１３０の並列数１２２を決定し、その並列数１２２をシンボル分配モジュール１１０に渡す。
【００３４】
静的特徴量取得モジュール４２２、並列数決定モジュール４２４は、例えば、以下の特徴量を取得し、符号語生成モジュール１３０の並列数１２２を決定する。
（Ａ１）事前に計測した時間
静的特徴量取得モジュール４２２は、予め定められた情報に対して、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０が処理を行って計測された各々の処理時間を取得する。
ここでの予め定められた情報は、シンボル分配モジュール１１０が受け取るシンボル１０８とは必ずしも同じものである必要はなく、処理対象として典型的なシンボル１０８であればよい。
並列数決定モジュール４２４は、ＨＷ−Ａ（ＧＰＵ）２２０の処理時間をＭ、ＨＷ−Ｂ（ＣＰＵ）２１０の処理時間をＮとした場合、ｆｌｏｏｒ（Ｍ／Ｎ）（なお、ｆｌｏｏｒ（ｘ）は、ｘ以下の最大の整数を出力する関数である）によって、並列数１２２を決定する。
（Ａ２）メモリアクセス数とその帯域
静的特徴量取得モジュール４２２は、予め定められた情報に対して、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０が処理を行って計測された各々のメモリアクセス回数とその帯域を取得する。もちろんのことながら、メモリアクセスの帯域は、予め定められた情報に対して処理を行う必要はなく、予め定められた値である。
ここでの予め定められた情報は、シンボル分配モジュール１１０が受け取るシンボル１０８とは必ずしも同じものである必要はなく、処理対象として典型的なシンボル１０８であればよい。
並列数決定モジュール４２４は、ＨＷ−Ｂ（ＣＰＵ）２１０のメモリアクセス数をＮｃ、その帯域をＮｂとし、ＨＷ−Ａ（ＧＰＵ）２２０のメモリアクセス数をＭｃ、その帯域をＭｂとした場合、ｆｌｏｏｒ（（Ｎｂ／Ｎｃ）／（Ｍｂ／Ｍｃ））によって、並列数１２２を決定する。
【００３５】
（Ａ３）動作周波数
静的特徴量取得モジュール４２２は、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０の各々の動作周波数を取得する。
並列数決定モジュール４２４は、ＨＷ−Ａ（ＧＰＵ）２２０の動作周波数をＭｈ、ＨＷ−Ｂ（ＣＰＵ）２１０の動作周波数をＮｈとした場合、ｆｌｏｏｒ（Ｍｈ／Ｎｈ）によって、並列数１２２を決定する。
（Ａ４）プロセッサ数
静的特徴量取得モジュール４２２は、ＨＷ−Ａ（ＧＰＵ）２２０の数を取得する。
並列数決定モジュール４２４は、ＨＷ−Ａ（ＧＰＵ）２２０の数（プロセッサ数）によって、並列数１２２を決定する。並列数１２２は、ＨＷ−Ａ（ＧＰＵ）２２０の数そのものであってもよいし、予め定められた数を減じた結果であってもよいし、予め定められた数（１未満の数）を乗じた結果であってもよい。また、ＨＷ−Ａ（ＧＰＵ）２２０は、現在使用できるＨＷ−Ａ（ＧＰＵ）２２０の数であってもよいし、予め定められた数を減じた結果であってもよいし、予め定められた数（１未満の数）を乗じた結果であってもよい。
【００３６】
（Ａ５）処理対象とするシンボル１０８の種類
静的特徴量取得モジュール４２２は、シンボル分配モジュール１１０が受け取るシンボル１０８の種類を取得する。平均符号語長が長くなればなるほど、メモリへの読み書きアクセス数が増えるため、一般的に符号連結処理の時間が低下する。また、写真画像で平均符号語長が長く、ベクトルデータ、コードデータ等で表された文書をラスタライズした画像（以下、ＣＧ／オフィス画像ともいう）で平均符号語長が短くなることが知られている。シンボル１０８の種類として、写真画像、ＣＧ／オフィス画像等がある。
並列数決定モジュール４２４は、シンボル１０８の種類がＣＧ／オフィス画像である場合は、写真画像である場合の並列数１２２と比べて並列数１２２を小さくする。写真画像である場合は、ＣＧ／オフィス画像である場合と比べて並列数１２２を大きくする。
図５は、処理時間と平均符号語長の関係の例を示すグラフである。縦軸にＨＷ−Ｂ（ＣＰＵ）２１０又はＨＷ−Ａ（ＧＰＵ）２２０による処理時間を示しており、横軸に符号化語の平均符号語長を示している。一般的には、右上がりのグラフとなり、右側は写真画像、左側はＣＧ／オフィス画像である場合である。
【００３７】
また、並列数決定モジュール４２４は、前述の（Ａ１）〜（Ａ５）のいくつかの組み合わせを用いて、重回帰式を利用して並列数１２２を決定するようにしてもよい。例えば、予め定められた画像を対象として得られた（Ａ１）〜（Ａ５）と並列数１２２と処理時間との関係から回帰式を事前に定めておき、その回帰式を利用する。
【００３８】
また、並列数生成モジュール１２０は、動的に変化する特徴量に基づいて並列数１２２を生成するようにしてもよい。
図６は、並列数生成モジュール１２０内のモジュール構成例を示す説明図である。
並列数生成モジュール１２０は、動的特徴量取得モジュール６２２、並列数決定モジュール６２４を有している。
動的特徴量取得モジュール６２２は、並列数決定モジュール６２４と接続されている。動的特徴量取得モジュール６２２は、動的な特徴量を取得し、その特徴量を並列数決定モジュール６２４に渡す。
並列数決定モジュール６２４は、動的特徴量取得モジュール６２２と接続されている。並列数決定モジュール６２４は、動的特徴量取得モジュール６２２によって取得された特徴量に基づいて、符号語生成モジュール１３０の並列数１２２を決定し、その並列数１２２をシンボル分配モジュール１１０に渡す。
【００３９】
動的特徴量取得モジュール６２２、並列数決定モジュール６２４は、例えば、以下の特徴量を取得し、符号語生成モジュール１３０の並列数１２２を決定する。
（Ｂ１）予め定められた情報量に対する符号語生成モジュール１３０による処理時間
動的特徴量取得モジュール６２２は、予め定められた情報量に対する符号語生成モジュール１３０による処理時間を計測する。予め定められた情報量として、例えば、１シンボル、１ライン、１ページ、１ドキュメントセット等がある。並列数決定モジュール６２４は、その予め定められた情報量に対する符号語の生成が行われた後に（特徴量の計測を行った後に）、その情報量当たりの平均処理時間に基づき、並列数１２２を決定させる。なお、１シンボル毎に符号語生成モジュール１３０による符号語の生成処理、符号語連結モジュール１５０による連結処理の時間を計測するのが困難である場合は、間引いて計測してもよい。また、直前の画像に対しての処理時間を計測して、その計測結果に基づいて、次の処理における並列数１２２を決定するようにしてもよい。処理時間と並列数１２２の関係は、処理時間と並列数を対応させて記憶させた表を予め用意しておき、その表に基づいて、処理時間から並列数１２２を決定すればよい。
【００４０】
（Ｂ２）予め定められた情報量に対する符号語生成モジュール１３０による符号量
動的特徴量取得モジュール６２２は、予め定められた情報量に対する符号語生成モジュール１３０による符号量を計測する。前述したとおり、平均符号語長と処理時間には相関がある。そこで、平均符号語長と処理時間の関係を事前に定めておき、並列数決定モジュール６２４は、その予め定められた情報量に対する符号語の生成が行われた後に（特徴量の計測を行った後に）、実際に得られた平均符号語長Ｌから処理時間Ｔを求め、並列数を動的に決定する。図７は、処理時間と平均符号語長の関係の例を示すグラフである。このグラフを用いて、平均符号語長Ｌから処理時間Ｔを求めることができる。処理時間Ｔを求めた後は、（Ｂ１）と同等の処理を行えばよい。また、平均符号語長と並列数を対応させて記憶させた表を予め用意しておき、その表に基づいて、平均符号語長から並列数１２２を決定すればよい。
さらに、図８の例に示すように、平均符号語長と処理時間の関係を示すグラフを、対象としているシンボル群（例えば、１枚以上の画像）毎に更新するようにしてもよい。
【００４１】
また、並列数決定モジュール６２４は、（Ｂ１）と（Ｂ２）の特徴量の組み合わせに基づいて、その予め定められた情報量に対する符号語の生成が行われた後に、並列数１２２を生成するようにしてもよい。例えば、（Ｂ１）と（Ｂ２）の特徴量によって、それぞれ並列数１２２を生成しておき、その並列数１２２に予め定められた係数を乗算した値（例えば、両方の係数が０．５ならば平均値）を、シンボル分配モジュール１１０に渡す並列数１２２としてもよい。
【００４２】
図９は、第２の実施の形態の構成例についての概念的なモジュール構成図を示している。
第２の実施の形態である情報処理装置は、シンボルから符号語データを生成するものであって、図９の例に示すように、ＨＷ−Ｂ（ＣＰＵ）２１０によって構成されているシンボル分配モジュール１１０、並列数生成モジュール１２０、収集モジュール１４０、符号語連結モジュール１５０と、ＨＷ−Ａ（ＧＰＵ）２２０によって構成されている符号語生成モジュール１３０Ａ、符号語生成モジュール１３０Ｂ、モデル化処理モジュール９３０Ａ、モデル化処理モジュール９３０Ｂを有している。なお、第１の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。第１の実施の形態の図２の例と比べると、ＨＷ−Ａ（ＧＰＵ）２２０内に、モデル化処理モジュール９３０Ａ、モデル化処理モジュール９３０Ｂが追加されている。
【００４３】
シンボル分配モジュール１１０は、並列数生成モジュール１２０、モデル化処理モジュール９３０Ａ、モデル化処理モジュール９３０Ｂと接続されている。
モデル化処理モジュール９３０Ａは、シンボル分配モジュール１１０、符号語生成モジュール１３０Ａと接続されている。モデル化処理モジュール９３０Ｂは、シンボル分配モジュール１１０、符号語生成モジュール１３０Ｂと接続されている。それらのモデル化処理モジュール９３０は、符号語生成モジュール１３０と対応している。モデル化処理モジュール９３０は、シンボル分配モジュール１１０によって分配されたシンボルに対してモデル化処理を施す。ここでのモデル化処理とは、符号語生成処理の前に行うものであって、例えば、予測処理や周波数変換処理等がある。
符号語生成モジュール１３０Ａは、収集モジュール１４０、モデル化処理モジュール９３０Ａと接続されている。符号語生成モジュール１３０Ｂは、収集モジュール１４０、モデル化処理モジュール９３０Ｂと接続されている。
【００４４】
図１０は、第２の実施の形態による処理例を示すフローチャートである。
ステップＳ１００２では、シンボル分配モジュール１１０が、シンボル１０８を受け取る。
ステップＳ１００４では、並列数生成モジュール１２０が、符号語生成モジュール１３０の並列数１２２を生成する。
ステップＳ１００６では、シンボル分配モジュール１１０が、並列数１２２分のモデル化処理モジュール９３０と符号語生成モジュール１３０の組を生成する。
ステップＳ１００８では、シンボル分配モジュール１１０が、各符号語生成モジュール１３０にシンボルを分配する。
ステップＳ１０１０では、各モデル化処理モジュール９３０が、シンボルに対してモデル化処理を施す。
ステップＳ１０１２では、各符号語生成モジュール１３０が、シンボルに対する符号語を生成する。
ステップＳ１０１４では、収集モジュール１４０が、各符号語生成モジュール１３０が生成した符号語を収集する。
ステップＳ１０１６では、符号語連結モジュール１５０が、符号語を連結する。
ステップＳ１０１８では、符号語連結モジュール１５０が、符号データ１５２を出力する。
【００４５】
図１１を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図１１に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１１１７と、プリンタなどのデータ出力部１１１８を備えたハードウェア構成例を示している。
【００４６】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０１は、前述の実施の形態において説明したＨＷ−Ｂ（ＣＰＵ）２１０に該当し、各種のモジュール、すなわち、シンボル分配モジュール１１０、並列数生成モジュール１２０、収集モジュール１４０、符号語連結モジュール１５０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００４７】
ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１２１は、前述の実施の形態において説明したＨＷ−Ａ（ＧＰＵ）２２０に該当し、各種のモジュール、すなわち、符号語生成モジュール１３０、モデル化処理モジュール９３０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００４８】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１０２は、ＣＰＵ１１０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１０３は、ＣＰＵ１１０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１１０４により相互に接続されている。
【００４９】
ホストバス１１０４は、ブリッジ１１０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１１０６に接続されている。
【００５０】
キーボード１１０８、マウス等のポインティングデバイス１１０９は、操作者により操作される入力デバイスである。ディスプレイ１１１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００５１】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１１１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１１０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、シンボル分配モジュール１１０が受け取ったシンボル１０８、符号語生成モジュール１３０が生成した符号語、符号語連結モジュール１５０が出力する符号データ１５２などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００５２】
ドライブ１１１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１１１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１１０７、外部バス１１０６、ブリッジ１１０５、及びホストバス１１０４を介して接続されているＲＡＭ１１０３に供給する。リムーバブル記録媒体１１１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００５３】
接続ポート１１１４は、外部接続機器１１１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１１１４は、インタフェース１１０７、及び外部バス１１０６、ブリッジ１１０５、ホストバス１１０４等を介してＣＰＵ１１０１等に接続されている。通信部１１１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１１１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１１１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００５４】
なお、図１１に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１１に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１１に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）、デジタルカメラ、デジタルビデオカメラなどに組み込まれていてもよい。
【００５５】
なお、ＨＷ−Ｂ（ＣＰＵ）２１０と符号語生成モジュール１３０（又はモデル化処理モジュール９３０と符号語生成モジュール１３０の組）が１対多の関係を主に説明したが、その関係は多対多であってもよい。その場合、前述の（Ａ４）プロセッサ数において、静的特徴量取得モジュール４２２は、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０の数を取得する。並列数決定モジュール４２４は、ＨＷ−Ｂ（ＣＰＵ）２１０とＨＷ−Ａ（ＧＰＵ）２２０の数（プロセッサ数）によって、並列数１２２を決定する。例えば、並列数１２２は、ＨＷ−Ａ（ＧＰＵ）２２０の数をＰとし、ＨＷ−Ｂ（ＣＰＵ）２１０の数をＱとした場合に、ｆｌｏｏｒ（Ｐ／Ｑ）によって決定する。
【００５６】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００５７】
１０８…シンボル
１１０…シンボル分配モジュール
１１２…シンボル
１２０…並列数生成モジュール
１２２…並列数
１３０…符号語生成モジュール
１３０Ａ…符号語生成モジュール
１３０Ｂ…符号語生成モジュール
１３１…可変長符号語
１３２…可変長符号語
１４０…収集モジュール
１５０…符号語連結モジュール
１５２…符号データ
２１０…ＨＷ−Ｂ（ＣＰＵ）
２２０…ＨＷ−Ａ（ＧＰＵ）
４２２…静的特徴量取得モジュール
４２４…並列数決定モジュール
６２２…動的特徴量取得モジュール
６２４…並列数決定モジュール
９３０…モデル化処理モジュール
９３０Ａ…モデル化処理モジュール
９３０Ｂ…モデル化処理モジュール
【図１】
2013058825.tif 000003
【図２】
2013058825.tif 000004
【図３】
2013058825.tif 000005
【図４】
2013058825.tif 000006
【図５】
2013058825.tif 000007
【図６】
2013058825.tif 000008
【図７】
2013058825.tif 000009
【図８】
2013058825.tif 000010
【図９】
2013058825.tif 000011
【図１０】
2013058825.tif 000012
【図１１】
2013058825.tif 000013