説明

情報処理装置及び情報処理プログラム

【課題】複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制するようにした情報処理装置を提供する。
【解決手段】情報処理装置の情報受取手段は、情報を受け取り、複数の符号語生成手段は、情報から符号語を生成し、並列数生成手段は、並列して動作する前記符号語生成手段の数を生成し、分配手段は、前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配し、収集手段は、各々の前記符号語生成手段によって生成された符号語を収集し、連結手段は、前記収集手段によって収集された符号語を連結し、出力手段は、前記連結手段によって連結された符号語を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【0002】
符号語の生成に関する技術がある。
これに関連する技術として、例えば、特許文献1には、画像データの符号化、復号化を高速で効率よく行うことができる画像データ符号化装置及び復号化装置を提供することを目的とし、画像データを複数の画像データストリームに分割するデータ分配器と、前記各画像データストリームを並列符号化処理して符号化データストリームを出力する算術符号器とを含むことが開示されている。
【0003】
また、例えば、特許文献2には、各タイルに算術符号化を並列に行う際の算術符号化処理の高速化、また、算術符号化された各タイルを並列に復号する際の復号処理の高速化を課題とし、入力画像のタイル分割、周波数変換、量子化を行い、次にビットプレーン内でビット値が1のビットの数に、ビットプレーン毎の重みを掛ける演算を全てのビットプレーンに対して行い、全てのビットプレーンの演算結果の総和値(予測時間)を求め、そして各タイルを予測時間の大きい順にソートし、ソートした各タイルを予測時間の大きい順に算術符号化処理されるように、かつ各算術符号化器の処理時間差が最小となるように算術符号化器に分配し、算術符号化器はタイルの量子化値のビットプレーンに算術符号化処理を施し、データ結合器は算術符号化処理を施された各タイルのデータを結合し、符号化データストリームを出力することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平08−116534号公報
【特許文献2】特開2002−354263号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、情報を受け取る情報受取手段と、情報から符号語を生成する複数の符号語生成手段と、並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、前記収集手段によって収集された符号語を連結する連結手段と、前記連結手段によって連結された符号語を出力する出力手段を具備することを特徴とする情報処理装置である。
【0007】
請求項2の発明は、前記情報受取手段と前記並列数生成手段と前記分配手段と前記収集手段と前記連結手段と前記出力手段は、第1の処理部によって構成され、複数の前記符号語生成手段は、第2の処理部によって構成されており、第1の処理部は、第2の処理部と比較して分岐処理に適しており、第2の処理部は、第1の処理部と比較して繰り返し処理に適していることを特徴とする請求項1に記載の情報処理装置である。
【0008】
請求項3の発明は、前記並列数生成手段は、(1)予め定められた情報に対して、前記第1の処理部と前記第2の処理部が処理を行って計測された各々の処理時間、(2)前記第1の処理部と前記第2の処理部の各々のメモリアクセス回数とメモリアクセスの帯域、(3)前記第1の処理部と前記第2の処理部の各々の動作周波数、(4)前記第2の処理部の数、(5)前記情報受取手段が受け取る情報の種類のいずれか1つ又はこれらの組み合わせに基づいて、並列して動作する前記符号語生成手段の数を生成することを特徴とする請求項2に記載の情報処理装置である。
【0009】
請求項4の発明は、前記並列数生成手段は、(1)予め定められた情報量に対する前記符号語生成手段による処理時間、(2)予め定められた情報量に対する前記符号語生成手段による符号量のいずれか1つ又はこれらの組み合わせに基づいて、該予め定められた情報量に対する符号語の生成が行われた後に、並列して動作する前記符号語生成手段の数を生成することを特徴とする請求項2又は3に記載の情報処理装置である。
【0010】
請求項5の発明は、コンピュータを、情報を受け取る情報受取手段と、情報から符号語を生成する複数の符号語生成手段と、並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、前記収集手段によって収集された符号語を連結する連結手段と、前記連結手段によって連結された符号語を出力する出力手段として機能させるための情報処理プログラムである。
【発明の効果】
【0011】
請求項1の情報処理装置によれば、複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制することができる。
【0012】
請求項2の情報処理装置によれば、本構成を有していない場合に比較して、第2の処理部と第1の処理部の各々の性能を発揮させることができる。
【0013】
請求項3の情報処理装置によれば、予め符号語生成手段の数を生成することができるようになる。
【0014】
請求項4の情報処理装置によれば、符号語生成手段の数を動的に生成することができる。
【0015】
請求項5の情報処理プログラムによれば、複数の符号語生成手段によって情報から符号語を生成する場合に、その符号語生成手段の数が過剰又は過少になることを抑制することができる。
【図面の簡単な説明】
【0016】
【図1】第1の実施の形態の構成例についての概念的なモジュール構成図である。
【図2】第1の実施の形態を具現化した場合のモジュール構成例を示す説明図である。
【図3】第1の実施の形態による処理例を示すフローチャートである。
【図4】並列数生成モジュール内のモジュール構成例を示す説明図である。
【図5】処理時間と平均符号語長の関係の例を示すグラフである。
【図6】並列数生成モジュール内のモジュール構成例を示す説明図である。
【図7】処理時間と平均符号語長の関係の例を示すグラフである。
【図8】処理時間と平均符号語長の関係の例を示すグラフである。
【図9】第2の実施の形態の構成例についての概念的なモジュール構成図である。
【図10】第2の実施の形態による処理例を示すフローチャートである。
【図11】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ、GPU(Graphics Processing Unit)内のレジスタ等を含んでいてもよい。
【0018】
第1の実施の形態である情報処理装置は、シンボル108から符号データ152を生成するものであって、図1の例に示すように、シンボル分配モジュール110、並列数生成モジュール120、符号語生成モジュール130A、符号語生成モジュール130B、収集モジュール140、符号語連結モジュール150を有している。
【0019】
シンボル分配モジュール110は、並列数生成モジュール120、符号語生成モジュール130A、符号語生成モジュール130Bと接続されている。シンボル分配モジュール110は、情報を受け取る。ここで、情報とは、信号、シンボルともいわれており(以下、シンボルともいう)、具体的には、画像データ、動画像データ、音声データ、テキストデータ等が該当する。画像データを受け付けるとは、例えば、スキャナ、カメラ等で画像データを読み込むこと、ファックス等で通信回線を介して外部機器から画像データを受信すること、CCD(Charge−Coupled Device)等で映像を撮影すること、ハードディスク(コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む)等に記憶されている画像を読み出すこと等が含まれる。画像は、2値画像、多値画像(カラー画像を含む)であってもよい。受け付ける画像は、1枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる文書、広告宣伝用のパンフレット等であってもよい。
【0020】
そして、シンボル分配モジュール110は、並列数生成モジュール120によって生成された並列数122に基づいて、受け取ったシンボル108を符号語生成モジュール130の各々(符号語生成モジュール130A、符号語生成モジュール130B等)に分配する。
また、シンボル分配モジュール110は、並列数生成モジュール120によって生成された並列数122だけ符号語生成モジュール130を生成するようにしてもよいし、並列数生成モジュール120によって生成された並列数122以上にある符号語生成モジュール130から並列数生成モジュール120によって生成された数だけ符号語生成モジュール130を選択するようにしてもよい。
【0021】
並列数生成モジュール120は、シンボル分配モジュール110と接続されている。並列数生成モジュール120は、符号語生成モジュール130の並列数122を生成する。
【0022】
符号語生成モジュール130Aは、シンボル分配モジュール110、収集モジュール140と接続されている。符号語生成モジュール130Bは、シンボル分配モジュール110、収集モジュール140と接続されている。同様の構成の符号語生成モジュール130は複数あって、3以上あってもよく、その数は並列数122以上である。それらの符号語生成モジュール130は、並列して動作する。符号語生成モジュール130は、シンボル分配モジュール110によって分配されたシンボル112から符号語を生成する。この符号語の生成処理は、具体例として可変長符号化処理がある。したがって、各々の符号語生成モジュール130が生成する符号語としては、例えば、可変長符号語131、可変長符号語132となり、その内容は符号語とその符号語の長さを含む。符号語生成モジュール130が行う符号語生成処理としては、例えば、ハフマン(Huffman)符号語生成処理、ゴロム符号語生成処理等が利用できる。
【0023】
収集モジュール140は、符号語生成モジュール130A、符号語生成モジュール130B、符号語連結モジュール150と接続されている。収集モジュール140は、各々の符号語生成モジュール130(符号語生成モジュール130A、符号語生成モジュール130B等)によって生成された符号語(例えば、可変長符号語131、可変長符号語132)を収集する。
【0024】
符号語連結モジュール150は、収集モジュール140と接続されている。符号語連結モジュール150は、収集モジュール140によって収集された符号語を連結する。そして、連結された符号語を符号データ152として出力する。符号データ152を出力するとは、例えば、画像データベース等の画像記憶装置へ画像を書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと、プリンタ等の印刷装置で印刷すること、ファックス等の画像送信装置で画像を送信すること等が含まれる。
符号語連結モジュール150での連結処理は、符号語生成モジュール130が1つであったかのように符号語を連結することである。すなわち、シンボル分配モジュール110が受け取ったシンボルの順にしたがって、そのシンボルに対して処理を行った符号語生成モジュール130の出力を連結する。
【0025】
図2は、第1の実施の形態を具現化した場合のモジュール構成例を示す説明図である。
シンボル分配モジュール110、並列数生成モジュール120、収集モジュール140、符号語連結モジュール150は第1の処理部によって構成されている。第1の処理部は、第2の処理部と比較して分岐処理に適しているものであればよい。ここで適しているとは、第2の処理部と比較した場合に高速で分岐処理を行うことができることをいう。具体例として、図2の例に示すように、第1の処理部はCPUであり、HW−B(CPU)210は、シンボル分配モジュール110、並列数生成モジュール120、収集モジュール140、符号語連結モジュール150を有している。
【0026】
複数の符号語生成モジュール130は第2の処理部によって構成されている。第2の処理部は、第1の処理部と比較して繰り返し処理に適しているものであればよい。ここで適しているとは、第1の処理部と比較した場合に高速で繰り返し処理を行うことができることをいう。具体例として、図2の例に示すように、第2の処理部はGPUであり、HW−A(GPU)220は、符号語生成モジュール130A、符号語生成モジュール130Bを有している。
【0027】
符号語生成モジュール130が行う符号語の生成処理は、単純処理であるがメモリアクセスが多い傾向がある。一方、符号語連結モジュール150が行う符号連結処理は、メモリアクセスは少ないが、分岐が多くシーケンシャル処理である。これをハードウェアの面から考察すると、前者は並列数が高く取れるGPUに適しており、後者は分岐処理を含むシーケンシャルな処理能力が高いCPUに適している。
【0028】
本実施の形態では、一般的に可変長符号化を行うモジュールを、(1)符号語生成モジュール130、(2)収集モジュール140と符号語連結モジュール150に分割し、(1)の処理を行うGPUと(2)の処理を行うCPUに、各々適した動作をさせるために並列数生成モジュール120を設けている。
【0029】
例えば、並列数生成モジュール120は、
(A1)予め定められた情報に対して、HW−B(CPU)210とHW−A(GPU)220が処理を行って計測された各々の処理時間とメモリアクセスの帯域、
(A2)予め定められた情報に対して、HW−B(CPU)210とHW−A(GPU)220が処理を行った場合の各々のメモリアクセス回数、
(A3)HW−B(CPU)210とHW−A(GPU)220の各々の動作周波数、
(A4)HW−A(GPU)220の数、
(A5)シンボル分配モジュール110が受け取るシンボル108の種類
のいずれか1つ又はこれらの組み合わせに基づいて、並列して動作する符号語生成モジュール130の数を静的に生成するようにしてもよい。
【0030】
また、例えば、並列数生成モジュール120は、
(B1)予め定められた情報量に対する符号語生成モジュール130による処理時間、
(B2)予め定められた情報量に対する符号語生成モジュール130による符号量
のいずれか1つ又はこれらの組み合わせに基づいて、その予め定められた情報量に対する符号語の生成が行われた後に、並列して動作する符号語生成モジュール130の数を動的に生成するようにしてもよい。
【0031】
また、具体的には、並列数生成モジュール120は、符号語連結モジュール150の速度に合わせて、符号語生成モジュール130の数を調整することを行ってもよい。逆に、符号語生成モジュール130の数に合わせて、符号語連結モジュール150の処理負荷を決定するようにしてもよい。
【0032】
図3は、第1の実施の形態による処理例を示すフローチャートである。
ステップS302では、シンボル分配モジュール110が、シンボル108を受け取る。
ステップS304では、並列数生成モジュール120が、符号語生成モジュール130の並列数122を生成する。
ステップS306では、シンボル分配モジュール110が、並列数122分の符号語生成モジュール130を生成する。又は、並列数122分の符号語生成モジュール130を選択する。
ステップS308では、シンボル分配モジュール110が、各符号語生成モジュール130にシンボルを分配する。
ステップS310では、各符号語生成モジュール130が、シンボルに対する符号語を生成する。
ステップS312では、収集モジュール140が、各符号語生成モジュール130が生成した符号語を収集する。
ステップS314では、符号語連結モジュール150が、符号語を連結する。
ステップS316では、符号語連結モジュール150が、符号データ152を出力する。
【0033】
図4は、並列数生成モジュール120内のモジュール構成例を示す説明図である。
並列数生成モジュール120は、静的特徴量取得モジュール422、並列数決定モジュール424を有している。
静的特徴量取得モジュール422は、並列数決定モジュール424と接続されている。静的特徴量取得モジュール422は、静的な特徴量を取得し、その特徴量を並列数決定モジュール424に渡す。
並列数決定モジュール424は、静的特徴量取得モジュール422と接続されている。並列数決定モジュール424は、静的特徴量取得モジュール422によって取得された特徴量に基づいて、符号語生成モジュール130の並列数122を決定し、その並列数122をシンボル分配モジュール110に渡す。
【0034】
静的特徴量取得モジュール422、並列数決定モジュール424は、例えば、以下の特徴量を取得し、符号語生成モジュール130の並列数122を決定する。
(A1)事前に計測した時間
静的特徴量取得モジュール422は、予め定められた情報に対して、HW−B(CPU)210とHW−A(GPU)220が処理を行って計測された各々の処理時間を取得する。
ここでの予め定められた情報は、シンボル分配モジュール110が受け取るシンボル108とは必ずしも同じものである必要はなく、処理対象として典型的なシンボル108であればよい。
並列数決定モジュール424は、HW−A(GPU)220の処理時間をM、HW−B(CPU)210の処理時間をNとした場合、floor(M/N)(なお、floor(x)は、x以下の最大の整数を出力する関数である)によって、並列数122を決定する。
(A2)メモリアクセス数とその帯域
静的特徴量取得モジュール422は、予め定められた情報に対して、HW−B(CPU)210とHW−A(GPU)220が処理を行って計測された各々のメモリアクセス回数とその帯域を取得する。もちろんのことながら、メモリアクセスの帯域は、予め定められた情報に対して処理を行う必要はなく、予め定められた値である。
ここでの予め定められた情報は、シンボル分配モジュール110が受け取るシンボル108とは必ずしも同じものである必要はなく、処理対象として典型的なシンボル108であればよい。
並列数決定モジュール424は、HW−B(CPU)210のメモリアクセス数をNc、その帯域をNbとし、HW−A(GPU)220のメモリアクセス数をMc、その帯域をMbとした場合、floor((Nb/Nc)/(Mb/Mc))によって、並列数122を決定する。
【0035】
(A3)動作周波数
静的特徴量取得モジュール422は、HW−B(CPU)210とHW−A(GPU)220の各々の動作周波数を取得する。
並列数決定モジュール424は、HW−A(GPU)220の動作周波数をMh、HW−B(CPU)210の動作周波数をNhとした場合、floor(Mh/Nh)によって、並列数122を決定する。
(A4)プロセッサ数
静的特徴量取得モジュール422は、HW−A(GPU)220の数を取得する。
並列数決定モジュール424は、HW−A(GPU)220の数(プロセッサ数)によって、並列数122を決定する。並列数122は、HW−A(GPU)220の数そのものであってもよいし、予め定められた数を減じた結果であってもよいし、予め定められた数(1未満の数)を乗じた結果であってもよい。また、HW−A(GPU)220は、現在使用できるHW−A(GPU)220の数であってもよいし、予め定められた数を減じた結果であってもよいし、予め定められた数(1未満の数)を乗じた結果であってもよい。
【0036】
(A5)処理対象とするシンボル108の種類
静的特徴量取得モジュール422は、シンボル分配モジュール110が受け取るシンボル108の種類を取得する。平均符号語長が長くなればなるほど、メモリへの読み書きアクセス数が増えるため、一般的に符号連結処理の時間が低下する。また、写真画像で平均符号語長が長く、ベクトルデータ、コードデータ等で表された文書をラスタライズした画像(以下、CG/オフィス画像ともいう)で平均符号語長が短くなることが知られている。シンボル108の種類として、写真画像、CG/オフィス画像等がある。
並列数決定モジュール424は、シンボル108の種類がCG/オフィス画像である場合は、写真画像である場合の並列数122と比べて並列数122を小さくする。写真画像である場合は、CG/オフィス画像である場合と比べて並列数122を大きくする。
図5は、処理時間と平均符号語長の関係の例を示すグラフである。縦軸にHW−B(CPU)210又はHW−A(GPU)220による処理時間を示しており、横軸に符号化語の平均符号語長を示している。一般的には、右上がりのグラフとなり、右側は写真画像、左側はCG/オフィス画像である場合である。
【0037】
また、並列数決定モジュール424は、前述の(A1)〜(A5)のいくつかの組み合わせを用いて、重回帰式を利用して並列数122を決定するようにしてもよい。例えば、予め定められた画像を対象として得られた(A1)〜(A5)と並列数122と処理時間との関係から回帰式を事前に定めておき、その回帰式を利用する。
【0038】
また、並列数生成モジュール120は、動的に変化する特徴量に基づいて並列数122を生成するようにしてもよい。
図6は、並列数生成モジュール120内のモジュール構成例を示す説明図である。
並列数生成モジュール120は、動的特徴量取得モジュール622、並列数決定モジュール624を有している。
動的特徴量取得モジュール622は、並列数決定モジュール624と接続されている。動的特徴量取得モジュール622は、動的な特徴量を取得し、その特徴量を並列数決定モジュール624に渡す。
並列数決定モジュール624は、動的特徴量取得モジュール622と接続されている。並列数決定モジュール624は、動的特徴量取得モジュール622によって取得された特徴量に基づいて、符号語生成モジュール130の並列数122を決定し、その並列数122をシンボル分配モジュール110に渡す。
【0039】
動的特徴量取得モジュール622、並列数決定モジュール624は、例えば、以下の特徴量を取得し、符号語生成モジュール130の並列数122を決定する。
(B1)予め定められた情報量に対する符号語生成モジュール130による処理時間
動的特徴量取得モジュール622は、予め定められた情報量に対する符号語生成モジュール130による処理時間を計測する。予め定められた情報量として、例えば、1シンボル、1ライン、1ページ、1ドキュメントセット等がある。並列数決定モジュール624は、その予め定められた情報量に対する符号語の生成が行われた後に(特徴量の計測を行った後に)、その情報量当たりの平均処理時間に基づき、並列数122を決定させる。なお、1シンボル毎に符号語生成モジュール130による符号語の生成処理、符号語連結モジュール150による連結処理の時間を計測するのが困難である場合は、間引いて計測してもよい。また、直前の画像に対しての処理時間を計測して、その計測結果に基づいて、次の処理における並列数122を決定するようにしてもよい。処理時間と並列数122の関係は、処理時間と並列数を対応させて記憶させた表を予め用意しておき、その表に基づいて、処理時間から並列数122を決定すればよい。
【0040】
(B2)予め定められた情報量に対する符号語生成モジュール130による符号量
動的特徴量取得モジュール622は、予め定められた情報量に対する符号語生成モジュール130による符号量を計測する。前述したとおり、平均符号語長と処理時間には相関がある。そこで、平均符号語長と処理時間の関係を事前に定めておき、並列数決定モジュール624は、その予め定められた情報量に対する符号語の生成が行われた後に(特徴量の計測を行った後に)、実際に得られた平均符号語長Lから処理時間Tを求め、並列数を動的に決定する。図7は、処理時間と平均符号語長の関係の例を示すグラフである。このグラフを用いて、平均符号語長Lから処理時間Tを求めることができる。処理時間Tを求めた後は、(B1)と同等の処理を行えばよい。また、平均符号語長と並列数を対応させて記憶させた表を予め用意しておき、その表に基づいて、平均符号語長から並列数122を決定すればよい。
さらに、図8の例に示すように、平均符号語長と処理時間の関係を示すグラフを、対象としているシンボル群(例えば、1枚以上の画像)毎に更新するようにしてもよい。
【0041】
また、並列数決定モジュール624は、(B1)と(B2)の特徴量の組み合わせに基づいて、その予め定められた情報量に対する符号語の生成が行われた後に、並列数122を生成するようにしてもよい。例えば、(B1)と(B2)の特徴量によって、それぞれ並列数122を生成しておき、その並列数122に予め定められた係数を乗算した値(例えば、両方の係数が0.5ならば平均値)を、シンボル分配モジュール110に渡す並列数122としてもよい。
【0042】
図9は、第2の実施の形態の構成例についての概念的なモジュール構成図を示している。
第2の実施の形態である情報処理装置は、シンボルから符号語データを生成するものであって、図9の例に示すように、HW−B(CPU)210によって構成されているシンボル分配モジュール110、並列数生成モジュール120、収集モジュール140、符号語連結モジュール150と、HW−A(GPU)220によって構成されている符号語生成モジュール130A、符号語生成モジュール130B、モデル化処理モジュール930A、モデル化処理モジュール930Bを有している。なお、第1の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。第1の実施の形態の図2の例と比べると、HW−A(GPU)220内に、モデル化処理モジュール930A、モデル化処理モジュール930Bが追加されている。
【0043】
シンボル分配モジュール110は、並列数生成モジュール120、モデル化処理モジュール930A、モデル化処理モジュール930Bと接続されている。
モデル化処理モジュール930Aは、シンボル分配モジュール110、符号語生成モジュール130Aと接続されている。モデル化処理モジュール930Bは、シンボル分配モジュール110、符号語生成モジュール130Bと接続されている。それらのモデル化処理モジュール930は、符号語生成モジュール130と対応している。モデル化処理モジュール930は、シンボル分配モジュール110によって分配されたシンボルに対してモデル化処理を施す。ここでのモデル化処理とは、符号語生成処理の前に行うものであって、例えば、予測処理や周波数変換処理等がある。
符号語生成モジュール130Aは、収集モジュール140、モデル化処理モジュール930Aと接続されている。符号語生成モジュール130Bは、収集モジュール140、モデル化処理モジュール930Bと接続されている。
【0044】
図10は、第2の実施の形態による処理例を示すフローチャートである。
ステップS1002では、シンボル分配モジュール110が、シンボル108を受け取る。
ステップS1004では、並列数生成モジュール120が、符号語生成モジュール130の並列数122を生成する。
ステップS1006では、シンボル分配モジュール110が、並列数122分のモデル化処理モジュール930と符号語生成モジュール130の組を生成する。
ステップS1008では、シンボル分配モジュール110が、各符号語生成モジュール130にシンボルを分配する。
ステップS1010では、各モデル化処理モジュール930が、シンボルに対してモデル化処理を施す。
ステップS1012では、各符号語生成モジュール130が、シンボルに対する符号語を生成する。
ステップS1014では、収集モジュール140が、各符号語生成モジュール130が生成した符号語を収集する。
ステップS1016では、符号語連結モジュール150が、符号語を連結する。
ステップS1018では、符号語連結モジュール150が、符号データ152を出力する。
【0045】
図11を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図11に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部1117と、プリンタなどのデータ出力部1118を備えたハードウェア構成例を示している。
【0046】
CPU(Central Processing Unit)1101は、前述の実施の形態において説明したHW−B(CPU)210に該当し、各種のモジュール、すなわち、シンボル分配モジュール110、並列数生成モジュール120、収集モジュール140、符号語連結モジュール150等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0047】
GPU(Graphics Processing Unit)1121は、前述の実施の形態において説明したHW−A(GPU)220に該当し、各種のモジュール、すなわち、符号語生成モジュール130、モデル化処理モジュール930等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0048】
ROM(Read Only Memory)1102は、CPU1101が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1103は、CPU1101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス1104により相互に接続されている。
【0049】
ホストバス1104は、ブリッジ1105を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス1106に接続されている。
【0050】
キーボード1108、マウス等のポインティングデバイス1109は、操作者により操作される入力デバイスである。ディスプレイ1110は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
【0051】
HDD(Hard Disk Drive)1111は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU1101によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、シンボル分配モジュール110が受け取ったシンボル108、符号語生成モジュール130が生成した符号語、符号語連結モジュール150が出力する符号データ152などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0052】
ドライブ1112は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1113に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1107、外部バス1106、ブリッジ1105、及びホストバス1104を介して接続されているRAM1103に供給する。リムーバブル記録媒体1113も、ハードディスクと同様のデータ記録領域として利用可能である。
【0053】
接続ポート1114は、外部接続機器1115を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1114は、インタフェース1107、及び外部バス1106、ブリッジ1105、ホストバス1104等を介してCPU1101等に接続されている。通信部1116は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部1117は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1118は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0054】
なお、図11に示す情報処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図11に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図11に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)、デジタルカメラ、デジタルビデオカメラなどに組み込まれていてもよい。
【0055】
なお、HW−B(CPU)210と符号語生成モジュール130(又はモデル化処理モジュール930と符号語生成モジュール130の組)が1対多の関係を主に説明したが、その関係は多対多であってもよい。その場合、前述の(A4)プロセッサ数において、静的特徴量取得モジュール422は、HW−B(CPU)210とHW−A(GPU)220の数を取得する。並列数決定モジュール424は、HW−B(CPU)210とHW−A(GPU)220の数(プロセッサ数)によって、並列数122を決定する。例えば、並列数122は、HW−A(GPU)220の数をPとし、HW−B(CPU)210の数をQとした場合に、floor(P/Q)によって決定する。
【0056】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【0057】
108…シンボル
110…シンボル分配モジュール
112…シンボル
120…並列数生成モジュール
122…並列数
130…符号語生成モジュール
130A…符号語生成モジュール
130B…符号語生成モジュール
131…可変長符号語
132…可変長符号語
140…収集モジュール
150…符号語連結モジュール
152…符号データ
210…HW−B(CPU)
220…HW−A(GPU)
422…静的特徴量取得モジュール
424…並列数決定モジュール
622…動的特徴量取得モジュール
624…並列数決定モジュール
930…モデル化処理モジュール
930A…モデル化処理モジュール
930B…モデル化処理モジュール

【特許請求の範囲】
【請求項1】
情報を受け取る情報受取手段と、
情報から符号語を生成する複数の符号語生成手段と、
並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、
前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、
各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、
前記収集手段によって収集された符号語を連結する連結手段と、
前記連結手段によって連結された符号語を出力する出力手段
を具備することを特徴とする情報処理装置。
【請求項2】
前記情報受取手段と前記並列数生成手段と前記分配手段と前記収集手段と前記連結手段と前記出力手段は、第1の処理部によって構成され、
複数の前記符号語生成手段は、第2の処理部によって構成されており、
第1の処理部は、第2の処理部と比較して分岐処理に適しており、
第2の処理部は、第1の処理部と比較して繰り返し処理に適している
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記並列数生成手段は、
(1)予め定められた情報に対して、前記第1の処理部と前記第2の処理部が処理を行って計測された各々の処理時間、
(2)前記第1の処理部と前記第2の処理部の各々のメモリアクセス回数とメモリアクセスの帯域、
(3)前記第1の処理部と前記第2の処理部の各々の動作周波数、
(4)前記第2の処理部の数、
(5)前記情報受取手段が受け取る情報の種類
のいずれか1つ又はこれらの組み合わせに基づいて、並列して動作する前記符号語生成手段の数を生成する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記並列数生成手段は、
(1)予め定められた情報量に対する前記符号語生成手段による処理時間、
(2)予め定められた情報量に対する前記符号語生成手段による符号量
のいずれか1つ又はこれらの組み合わせに基づいて、該予め定められた情報量に対する符号語の生成が行われた後に、並列して動作する前記符号語生成手段の数を生成する
ことを特徴とする請求項2又は3に記載の情報処理装置。
【請求項5】
コンピュータを、
情報を受け取る情報受取手段と、
情報から符号語を生成する複数の符号語生成手段と、
並列して動作する前記符号語生成手段の数を生成する並列数生成手段と、
前記並列数生成手段によって生成された数に基づいて、前記情報受取手段によって受け取られた情報を前記符号語生成手段の各々に分配する分配手段と、
各々の前記符号語生成手段によって生成された符号語を収集する収集手段と、
前記収集手段によって収集された符号語を連結する連結手段と、
前記連結手段によって連結された符号語を出力する出力手段
として機能させるための情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−58825(P2013−58825A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−194621(P2011−194621)
【出願日】平成23年9月7日(2011.9.7)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】