説明

情報処理装置、情報処理方法、プログラム及び記録媒体

【課題】グラフィックス描画処理と映像のエンコード処理やトランスコード処理を並列実行する情報処理装置において、処理の高速化を可能とする情報処理装置及び情報処理方法を提供する。
【解決手段】映像のエンコード処理あるいはトランスコード処理において最初に実行する第1の処理単位を、並列データ処理部及び汎用データ処理部で各実行し、前記並列データ処理部が前記第1の処理単位を終了する時間と、前記汎用データ処理部が前記第1の処理単位を終了する時間とを比較して、前記並列データ処理部あるいは前記汎用データ処理部のどちらで前記第1の処理単位の次の第2の処理単位以降を実行するか決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理の高速化に関し、特に、グラフィックス描画処理と映像のエンコード処理やトランスコード処理とを同時に処理する情報処理装置において、負荷分散により処理の高速化を可能とする情報処理装置、情報処理方法、プログラム及び記録媒体に関する。
【背景技術】
【0002】
従来、3次元演算が必要なグラフィックス描画処理などを高速に行うために、高い並列処理能力を持つグラフィックス描画処理専用のGPU(Graphics Processing Unit)が用いられてきたが、近年、用途をグラフィックス描画処理だけに限定せず、汎用の数値計算に使用する技術として、GPGPU(General Purpose Computation on Graphics Processing Unit)が登場した。GPGPUは、GPUの処理特性をもつため、汎用性の高いCPU(Central Processing Unit)と比較して、大量のデータを用いて、比較的単純な処理を並列処理することに向いており、3次元演算処理などに効果を発揮するが、反面、その特性と合わないプログラムは性能を期待できない。
【0003】
なお、複数のGPUにグラフィックス描画処理を振り分けて、負荷をバランスする装置が例えば特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−71261号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上述したGPGPUは、単純なデータを大量に並列処理することに向いている。このため、従来、CPUで処理していた、映像のエンコード処理やトランスコード処理をCPUに代わって行うことにより、処理を高速化できると共に、CPUへの負担を減らすことができる。
【0006】
しかし、GPGPUにおいて、映像のエンコード処理やトランスコード処理のような、単独で実行すれば効果が出るプログラム処理であっても、高負荷かつ負荷変動の予測できないグラフィックス描画処理、たとえば、3次元動画の描画処理として、3次元画像を生成するための頂点計算や、影の演算などで代表される演算処理を実行している状況において、映像のエンコード処理を並列実行した場合、GPGPU演算を行う処理部と3次元演算処理を行うH/Wは、全体または一部を兼用してタイムシェアすることになる為、GPGPUは高負荷状態となって処理が間に合わなくなる。その結果、3次元動画の描画処理では動画の滑らかさが失われ、リアルタイム性を要求される映像のエンコード処理ではコマ落ちが発生するという不具合が起こる。
【0007】
すなわち、一般的にマルチタスク環境では処理の重いタスクがあると他のタスク処理に影響が出るが、従来はCPUで処理していた映像のエンコード処理をGPGPUで処理することによって、本来のGPGPUのリアルタイム性を要求される表示画面の描画処理が間に合わなくなってしまうのは問題である。
【0008】
そこで、本発明は、グラフィックス描画処理と映像のエンコード処理やトランスコード処理を並列実行する情報処理装置において、GPGPUとCPUの負荷状態を推定し、さらに処理対象の特性に基づいて、映像のエンコード処理あるいはトランスコード処理における各処理ステップを、GPGPUあるいはCPUのどちらの処理として割り振るかを決定することで、処理負荷を分散し、処理の高速化を可能とする情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の情報処理装置は、複数のデータ処理手段と、複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する処理時間比較手段と、前記処理時間比較手段の比較結果に基づき、前記第1の処理単位の次に処理する第2の処理単位以降を、前記複数のデータ処理手段のいずれかで実行させる制御手段と、を有することを特徴とする。
【0010】
本発明の情報処理装置は、複数のデータ処理手段と、複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する処理時間比較手段と、前記処理時間比較手段の比較結果において、前記複数のデータ処理手段の処理に要する各時間の差がすべて所定時間以内の場合、前記第1の処理単位の次に処理する第2の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する第2の処理時間比較手段と、前記第2の処理時間比較手段の比較結果に基づき、前記第2の処理単位の次に処理する第3の処理単位以降を、前記複数のデータ処理手段のいずれかで実行させる制御手段と、を有することを特徴とする。
【0011】
本発明の情報処理方法は、複数のデータ処理手段と、複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する処理時間比較手段と、前記処理時間比較手段の比較結果に基づき、前記第1の処理単位の次に処理する第2の処理単位以降を、前記複数のデータ処理手段のいずれかで実行させる制御手段と、を有することを特徴とする。
【0012】
本発明の情報処理方法は、複数のデータ処理ステップと、複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、前記処理時間比較ステップの比較結果において、前記複数のデータ処理ステップの処理に要する各時間の差がすべて所定時間以内の場合、前記第2の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する第2の処理時間比較ステップと、前記第2の処理時間比較ステップの比較結果に基づき、前記第2の処理単位の次に処理する第3の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、を有することを特徴とする。
【0013】
本発明のプログラムは、複数のデータ処理ステップと、複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、前記処理時間比較ステップの比較結果に基づき、前記第1の処理単位の次に処理する第2の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、をコンピュータに実行させることを特徴とする。
【0014】
本発明のプログラムは、複数のデータ処理ステップと、複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、前記処理時間比較ステップの比較結果において、前記複数のデータ処理ステップの処理に要する各時間の差がすべて所定時間以内の場合、前記第2の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する第2の処理時間比較ステップと、前記第2の処理時間比較ステップの比較結果に基づき、前記第2の処理単位の次に処理する第3の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、をコンピュータに実行させることを特徴とする。
【0015】
本発明の記録媒体は、上記本発明に係るプログラムの処理を記録するコンピュータ読取り可能な記録媒体である。
【発明の効果】
【0016】
本発明によれば、情報処理装置において、特に、グラフィックス描画処理と映像のエンコード処理やトランスコード処理を並列実行する情報処理装置において、処理の高速化を可能とする情報処理装置及び情報処理方法を提供することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態に係る情報処理装置の機能構成図である。
【図2】本発明の実施形態に係る情報処理装置の動作処理を説明するための図である。
【図3】本発明の実施形態に係る情報処理装置の処理概要を示すフローチャートである。
【図4】本発明の実施形態に係る情報処理装置の並列データ処理から汎用データ処理へ移行するタイミングを変更した場合のフローチャートである。
【図5】本発明の実施形態に係る情報処理装置の並列データ処理と汎用データ処理の時間比較を2段階で判定する場合のフローチャートである。
【発明を実施するための形態】
【0018】
以下に、本発明の実施形態について図面を用いて詳細に説明する。なお、以下に述べる実施形態は、本発明の好適な実施形態であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【0019】
図1は、本発明の実施形態に係る情報処理装置の機能構成図である。情報処理装置1に表示装置2が接続されている。
【0020】
図1に示すように、情報処理装置1は、汎用データ処理部11、データコピー部12、データ格納部13、処理時間比較部14、GPGPU15、から構成される。また、GPGPU15は、並列データ処理部151、データ格納部152、から構成される。
【0021】
汎用データ処理部11は、様々な数値計算や情報処理、機器制御などを行う機能を有する(並列データ処理部151と比較して、より汎用的なデータ処理を行う機能を有する)。
【0022】
データコピー部12は、GPGPU15のデータ格納部152からデータ格納部13へ、また、データ格納部13からデータ格納部152へ格納されているデータの全てまたは一部をコピーする機能を有する。なお、データコピー部12は、GPGPU15の機能の一つとして構成される場合もある。
【0023】
データ格納部13は、GPGPU15のデータ格納部152からコピーしたデータを格納する機能を有し、汎用データ処理部11の処理対象データとして、読み出しや書き出しが可能である。汎用データ処理部11は、データ格納部13に格納されたデータを読み出して処理を行い、得られた処理結果について、再びデータ格納部13に書き込む。
【0024】
処理時間比較部14は、汎用データ処理部およびGPGPU15の並列データ処理部において、処理実行に要する時間を計測し、その計測時間を比較する機能を有する。
【0025】
GPGPU15は、並列データ処理部151、データ格納部152から構成される。データ格納部152には、処理対象となるデータが格納されており、並列データ処理部151の処理対象データとして、読み出しや書き出しが可能である。並列データ処理部151は、データ格納部152に格納されたデータを読み出して処理を行い、得られた処理結果について、再びデータ格納部152へ書き込む機能を有する。並列データ処理部151は、汎用データ処理部11と比較して、大量のデータを用いて、比較的単純な処理を並列処理することに向いており、3次元動画のグラフィック描画処理や、映像のエンコード処理、トランスコード処理などにおいてより高い処理能力を発揮する。
【0026】
しかし、例えば、並列データ処理部151向きの処理(3次元動画のグラフィック描画処理など)と並列データ処理部151向きではない処理(すなわち、汎用データ処理部11向きの処理)が交互あらわれ、また前の処理結果に基づいて次の処理を実行する必要があるプログラムを想定した場合、このプログラムを効率的に実行するには、並列データ処理部151向きの処理は並列データ処理部151で処理し、並列データ処理部151向きでない処理は汎用データ処理部11で処理することを交互に行えば良さそうである。ところが、実際には、先行する処理の処理結果を、次の処理の入力データとして使用するため、処理部を切り替える毎に、データ格納部152とデータ格納部13の間でデータコピーを繰り返し実行する必要がある。つまり、処理オーバーヘッドの影響を考慮に入れる必要があり、特にそのデータサイズが大きくなる場合、コピー処理時間も大きくなるため、処理オーバーヘッドの影響は顕著である。そのため、処理対象のデータサイズが大きく、コピー処理コストが並列データ処理部151あるいは汎用データ処理部11における処理コストの効率化の効果を上回る場合、データ格納部152とデータ格納部13の間でデータコピーを繰り返し実行することは効率的でない。
【0027】
図2は、本発明の実施形態に係る情報処理装置の動作処理を説明するための図である。
【0028】
ここでは一例として、映像の1フレームをエンコードする処理を、12の処理単位(A〜L)に分割して処理する場合について説明する。なお、図2の例では、処理単位AからLの順にエンコード処理が行われ、処理対象データの特性は画像から符号へと変化し、処理がAからLに進むにつれて、処理データサイズは小さくなっている。そして、これらの処理は繰り返し実行される。例えば、毎秒30フレームの映像では、処理単位A〜Lが1/30=33.3msのサイクルで繰り返し実行される。また、処理単位Aを単独で処理する(他のプログラム処理などの影響を考慮する必要がない)場合、汎用データ処理部11よりも、並列データ処理部151にて実行した場合の方がより短時間で効率よく処理できる傾向がある。この傾向は、処理単位Aについて最も顕著に現れ、処理単位B、処理単位C、となるにつれ、その傾向は薄れていき、処理単位Lでは、並列データ処理部151よりも、汎用データ処理部11で実行した場合の方がより短時間で効率よく処理できる傾向が出現してくる。これは、処理Aに近いほど、大量のデータに対して単純な処理を並列実行できる傾向が強く、処理Lに近くなるほど、符号を生成するために順序処理の傾向が増す為である。
【0029】
図2は、3つの処理パターン(パターン1〜3)を例示しており、黒丸は各処理単位について、並列データ処理部151と汎用データ処理部11のどちらで実行するかを示している。例えば、映像のエンコード処理フローの最初の処理単位Aは、「並列データ処理部」と「汎用データ処理部」の両方に黒丸があるので、両方の処理部で実行されることを、処理単位C以降(C〜L)は、3つのいずれの場合においても、「並列データ処理部」または「汎用データ処理部」のどちらかにしか黒丸がないので、どちらかの処理部で実行されることを示している。すなわち、図2の判断ポイントDP1あるいはDP2において、並列データ処理部が処理単位AあるいはBを終了する時間と、汎用データ処理部が処理単位AあるいはBを終了する時間とをそれぞれ比較判断して、並列データ処理部あるいは汎用データ処理部のどちらで以降の処理(処理単位C〜L)をどのようなパターンで実行するか決定することを示している。なお、判断ポイントDP1及びDP2の数や箇所はこの実施例にて限定するものではない。例えば、判断ポイントDP1を、複数の処理単位A〜Cをまとめて実行した後にしてもよい。
【0030】
図3は、本発明の実施形態に係る情報処理装置の処理概要を示すフローチャートである。
【0031】
データ格納部152に処理対象データが格納され、並列データ処理部151の処理対象となり(S301)、さらにデータ格納部13に処理対象データがコピーされ、汎用データ処理部11の処理対象となる(S302)。なお、データ格納部152及びデータ格納部13に処理対象データを格納(S301、S302)する順序はこの実施例にて限定するものではない。
【0032】
並列データ処理部151と汎用データ処理部11の両処理部で同じ処理単位Aを実行し(S303、S304)、両処理部での処理単位Aの処理時間を比較する(S305)。なお、両処理部での処理時間の比較は、ある一定時間の加減を行った上で比較しても良い。
【0033】
処理単位Aの処理時間を比較した結果、並列データ処理部151の方が早く処理を完了した場合、並列データ処理部151で処理単位B〜Fを実行し(S306)、その処理結果データをデータ格納部13へコピーし(S307)、今度は汎用データ処理部11で処理単位G〜Lを実行する(S308)。(図2のパターン2(破線を含まないパターン:処理単位Bは並列データ処理部でのみ実行される)の処理フロー)
一方、処理単位Aの処理時間を比較した結果、汎用データ処理部11の方が早く処理を完了した場合、汎用データ処理部11にて後続処理B〜Lを実行する(S309)。(図2のパターン1(破線を含まないパターン:処理単位Bは汎用データ処理部でのみ実行される)の処理フロー)
図4は、本発明の実施形態に係る情報処理装置の並列データ処理から汎用データ処理へ移行するタイミングを変更した場合のフローチャートである。
【0034】
データ格納部152に処理対象データが格納され、並列データ処理部151の処理対象となり(S401)、さらにデータ格納部13に処理対象データがコピーされ、汎用データ処理部11の処理対象となる(S402)。
【0035】
並列データ処理部151と汎用データ処理部11の両処理部で同じ処理単位Aを実行し(S403、S404)、両処理部での処理単位Aの処理時間を比較する(S405)。
【0036】
処理単位Aの処理時間を比較した結果、並列データ処理部151の方が早く処理を完了した場合、並列データ処理部151で処理単位B〜Jを実行し(S406)、その処理結果データをデータ格納部13へコピーし(S407)、今度は汎用データ処理部11で処理単位K〜Lを実行する(S408)。(図2のパターン3(破線を含まないパターン:処理単位Bは並列データ処理部でのみ実行される)の処理フロー)
一方、処理単位Aの処理時間を比較した結果、汎用データ処理部11の方が早く処理を完了した場合、汎用データ処理部11にて後続処理B〜Lを実行する(S409)。(図2のパターン1(破線を含まないパターン:処理単位Bは汎用データ処理部でのみ実行される)の処理フロー)
図5は、本発明の実施形態に係る情報処理装置の並列データ処理と汎用データ処理の時間比較を2段階で判定する場合のフローチャートである。
【0037】
データ格納部152に処理対象データが格納され、並列データ処理部151の処理対象となり(S501)、さらにデータ格納部13に処理対象データがコピーされ、汎用データ処理部11の処理対象となる(S502)。
【0038】
並列データ処理部151と汎用データ処理部11の両処理部で同じ処理単位Aを実行し(S503、S504)、両処理部での処理単位Aの処理時間を比較する(S505)。
【0039】
処理単位Aの処理時間を比較した結果、並列データ処理部151の方が早く処理を完了した場合、並列データ処理部151で処理単位B〜Jを実行し(S506)、その処理結果データをデータ格納部13へコピーし(S507)、今度は汎用データ処理部11で処理単位K〜Lを実行する(S508)。(図2のパターン3(破線を含まないパターン:処理単位Bは並列データ処理部でのみ実行される)の処理フロー)
一方、処理単位Aの処理時間を比較した結果、汎用データ処理部11の方が早く処理を完了した場合、さらに並列データ処理部151と汎用データ処理部11の両処理部で同じ処理単位Bを実行し(S509、S510)、両処理部での処理単位Bの処理時間を比較する(S511)。
【0040】
処理単位Bの処理時間を比較した結果、並列データ処理部151の方が早く処理を完了した場合、並列データ処理部151で処理単位C〜Jを実行し(S512)、その処理結果データをデータ格納部13へコピーし(S507)、今度は汎用データ処理部11で処理単位K〜Lを実行する(S508)。(図2のパターン3(破線を含むパターン:処理単位Bは両処理部で実行される)の処理フロー)
また一方、処理単位Bの処理時間を比較した結果、汎用データ処理部11の方が早く処理を完了した場合、汎用データ処理部11にて後続処理C〜Lを実行する(S513)。(図2のパターン1(破線を含むパターン:処理単位Bは両処理部で実行される)の処理フロー)
なお、上述した各実施形態は、本発明の好適な実施形態であり、上記各実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
【0041】
例えば、上述した実施形態における制御動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【0042】
なお、ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムが格納されているROMから、専用のハードウェアに組み込まれているコンピュータ内のメモリ(RAM)にプログラムを読み込んで実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【符号の説明】
【0043】
1 情報処理装置
2 表示装置
11 汎用データ処理部
12 データコピー部
13 データ格納部
14 処理時間比較部
15 GPGPU
151 並列データ処理部
152 データ格納部

【特許請求の範囲】
【請求項1】
複数のデータ処理手段と、
複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する処理時間比較手段と、
前記処理時間比較手段の比較結果に基づき、前記第1の処理単位の次に処理する第2の処理単位以降を、前記複数のデータ処理手段のいずれかで実行させる制御手段と、を有することを特徴とする情報処理装置。
【請求項2】
前記第1の処理単位は、さらに複数の処理単位からなることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
複数のデータ処理手段と、
複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する処理時間比較手段と、
前記処理時間比較手段の比較結果において、前記複数のデータ処理手段の処理に要する各時間の差がすべて所定時間以内の場合、前記第1の処理単位の次に処理する第2の処理単位を、前記複数のデータ処理手段にて各実行し、処理に要する時間を比較する第2の処理時間比較手段と、
前記第2の処理時間比較手段の比較結果に基づき、前記第2の処理単位の次に処理する第3の処理単位以降を、前記複数のデータ処理手段のいずれかで実行させる制御手段と、を有することを特徴とする情報処理装置。
【請求項4】
前記第1の処理単位または前記第2の処理単位は、さらに複数の処理単位からなることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記複数のデータ処理手段に、並列データ処理手段と、汎用データ処理手段とを含むことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
複数のデータ処理ステップと、
複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、
前記処理時間比較ステップの比較結果に基づき、前記第1の処理単位の次に処理する第2の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、を有することを特徴とする情報処理方法。
【請求項7】
複数のデータ処理ステップと、
複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、
前記処理時間比較ステップの比較結果において、前記複数のデータ処理ステップの処理に要する各時間の差がすべて所定時間以内の場合、前記第2の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する第2の処理時間比較ステップと、
前記第2の処理時間比較ステップの比較結果に基づき、前記第2の処理単位の次に処理する第3の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、を有することを特徴とする情報処理方法。
【請求項8】
複数のデータ処理ステップと、
複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、
前記処理時間比較ステップの比較結果に基づき、前記第1の処理単位の次に処理する第2の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、をコンピュータに実行させることを特徴とするプログラム。
【請求項9】
複数のデータ処理ステップと、
複数の処理単位から成る処理対象の、最初に処理する第1の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する処理時間比較ステップと、
前記処理時間比較ステップの比較結果において、前記複数のデータ処理ステップの処理に要する各時間の差がすべて所定時間以内の場合、前記第2の処理単位を、前記複数のデータ処理ステップにて各実行し、処理に要する時間を比較する第2の処理時間比較ステップと、
前記第2の処理時間比較ステップの比較結果に基づき、前記第2の処理単位の次に処理する第3の処理単位以降を、前記複数のデータ処理ステップのいずれかで実行させる制御ステップと、をコンピュータに実行させることを特徴とするプログラム。
【請求項10】
請求項8または9記載のプログラムの処理を記録するコンピュータ読取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate