JP2006011696A - 情報処理装置および方法、記録媒体、並びにプログラム - Google Patents

情報処理装置および方法、記録媒体、並びにプログラム Download PDF

Info

Publication number
JP2006011696A
JP2006011696A JP2004186197A JP2004186197A JP2006011696A JP 2006011696 A JP2006011696 A JP 2006011696A JP 2004186197 A JP2004186197 A JP 2004186197A JP 2004186197 A JP2004186197 A JP 2004186197A JP 2006011696 A JP2006011696 A JP 2006011696A
Authority
JP
Japan
Prior art keywords
image
processing
algorithm
conversion
load
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.)
Withdrawn
Application number
JP2004186197A
Other languages
English (en)
Inventor
Hajime Ishizuka
元 石塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004186197A priority Critical patent/JP2006011696A/ja
Publication of JP2006011696A publication Critical patent/JP2006011696A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

【課題】 全方位画像を高速で高画質の2次元平面画像に変換させるようにする。
【解決手段】 分担決定部104の負荷計算部161は、負荷分布テーブル131に基づいて、マッピングアルゴリズム毎の処理時間を負荷として計算する。比率計算部162は、処理時間に基づいて、マッピングアルゴリズム毎の負荷の比率を計算する。分担確定部163は、負荷の比率の情報に基づいて、サブプロセッサ43の処理分担を決定する。振分部105は、処理分担の情報に基づいて、マッピングアルゴリズムのプログラムを各サブプロセッサ43に供給する。サブプロセッサ43は、各処理分担となるマッピングアルゴリズムの処理を実行し、処理結果を処理結果画像データFIFO部143に記憶させる。画像再生処理部106は、処理結果画像データFIFO部143より処理結果となる2次元平面画像を合成し、表示部171に表示させる。
【選択図】図7

Description

本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、全方位画像を、より高解像度の2次元平面画像に高速で変換できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
図1や図2で示されるような全方位画像を2次元平面画像に変換する技術が一般に普及しつつある。ここで、図1は、図中の水平方向に360°の視点で表示された全方位画像である。また、図2は、図中の上段と下段でそれぞれ180°ずつの視点で表示された全方位画像である。
一般に、画像は解像度が高い程、高画質化が図れるため、高解像度化が図られる。しかしながら、画像のエンコードにおいては、高解像度化を図るとビットレートが高くなり、処理すべきデータが膨大なものとなる。結果として、膨大な量のデータをリアルタイムでデコードする必要があるため、再生時には、デコード処理に係る負荷が大きなものとなる。
デコード処理の負荷を抑えて処理の高速化を図るものとして、コンテンツに対応するヘッダ情報として、画像の横サイズおよび縦サイズ、画像の深さ(色を表現するビット数)、データセグメント中の最大画像データサイズ、および、データセグメント中の最大音声データサイズの各情報を含むデータを格納し、セグメント情報として、データセグメント内の先頭フレーム番号、データセグメント内フレーム数、各デリミタのデータ先頭からの相対アドレス情報を含む構成とし、これらのキャッシュ情報を適用したメモリ(FIFO:First In First Out)を設定することで、データの読み出しと、再生処理の高速化を図るものが提案されている(特許文献1参照)。
特開2004−140575号公報
しかしながら、上述の手法においては、デコードそのものの高速化は図れるものの、全方位画像を高速で2次元平面画像に変換する処理を高速化することができないという課題があった。
本発明はこのような状況に鑑みてなされたものであり、特に、全方位画像を、より高解像度の2次元平面画像に、より高速で変換できるようにするものである。
本発明の情報処理装置は、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理を実行する複数の変換手段と、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷を計算する負荷計算手段と、負荷計算手段の計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率を計算する比率計算手段と、比率計算手段により計算されたアルゴリズム毎の負荷の比率に基づいて、複数の変換手段のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムを決定する分担決定手段とを備え、複数の変換手段は、それぞれ分担決定手段により決定された全方位画像中の範囲を、分担決定手段により決定されたアルゴリズムで、2次元平面画像に変換する変換処理を実行することを特徴とする。
負荷計算手段には、アルゴリズム毎の1ピクセルの処理時間に基づいて、アルゴリズム毎の処理時間を、アルゴリズム毎の負荷として計算させるようにすることができる。
前記2次元平面画像は、全方位画像中の範囲に応じて解像度が異なるようにすることができる。
前記2次元平面画像は、全方位画像中の被写体が存在する位置に対して近い範囲が高解像度に設定され、被写体が存在する位置から遠い範囲では低解像度となるようにすることができる。
本発明の情報処理方法は、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理を実行する複数の変換ステップと、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷を計算する負荷計算ステップと、負荷計算ステップの処理の計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率を計算する比率計算ステップと、比率計算ステップの処理で計算されたアルゴリズム毎の負荷の比率に基づいて、複数の変換ステップの処理のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムを決定する分担決定ステップとを含み、複数の変換ステップの処理は、それぞれ分担決定ステップの処理で決定された全方位画像中の範囲を、分担決定ステップの処理で決定されたアルゴリズムで、2次元平面画像に変換する変換処理を実行することを特徴とする。
本発明の記録媒体のプログラムは、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理の実行を制御する複数の変換制御ステップと、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷の計算を制御する負荷計算制御ステップと、負荷計算制御ステップの処理の計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率の計算を制御する比率計算制御ステップと、比率計算制御ステップの処理で計算されたアルゴリズム毎の負荷の比率に基づいた、複数の変換ステップの処理のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムの決定を制御する分担決定制御ステップとを含み、複数の変換制御ステップの処理は、それぞれ分担決定制御ステップの処理で決定された全方位画像中の範囲を、分担決定制御ステップの処理で決定されたアルゴリズムで、2次元平面画像に変換する変換処理を実行することを特徴とする。
本発明のプログラムは、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理の実行を制御する複数の変換制御ステップと、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷の計算を制御する負荷計算制御ステップと、負荷計算制御ステップの処理の計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率の計算を制御する比率計算制御ステップと、比率計算制御ステップの処理で計算されたアルゴリズム毎の負荷の比率に基づいた、複数の変換ステップの処理のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムの決定を制御する分担決定制御ステップとをコンピュータに実行させ、複数の変換制御ステップの処理は、それぞれ分担決定制御ステップの処理で決定された全方位画像中の範囲を、分担決定制御ステップの処理で決定されたアルゴリズムで、2次元平面画像に変換する変換処理を実行することを特徴とする。
本発明の情報処理装置および方法、並びにプログラムにおいては、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理が実行され、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷が計算され、計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率が計算され、計算されたアルゴリズム毎の負荷の比率に基づいて、複数のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムが決定され、複数の決定された全方位画像中の範囲が、それぞれ決定されたアルゴリズムで、2次元平面画像に変換する変換処理が実行される。
本発明の情報処理装置は、独立した装置であっても良いし、情報処理を行うブロックであっても良い。
本発明によれば、全方位画像をより高解像度の2次元平面画像により高速で変換することが可能となる。
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
即ち、本発明の情報処理装置は、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理を実行する複数の変換手段(例えば、図7のサブプロセッサ43−1乃至43−N)と、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷を計算する負荷計算手段(例えば、図7の負荷計算部161)と、負荷計算手段の計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率を計算する比率計算手段(例えば、図7の比率計算部162)と、比率計算手段により計算されたアルゴリズム毎の負荷の比率に基づいて、複数の変換手段のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムを決定する分担決定手段(例えば、図7の分担確定部163)とを備え、複数の変換手段(例えば、図7のサブプロセッサ43−1乃至43−N)は、それぞれ分担決定手段(例えば、図7の分担確定部163)により決定された全方位画像中の範囲を、分担決定手段(例えば、図7の分担確定部163)により決定されたアルゴリズムで、2次元平面画像に変換する変換処理を実行することを特徴とする。
本発明の情報処理方法は、全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理を実行する複数の変換ステップ(例えば、図16のフローチャートのステップS54乃至S58の処理)と、アルゴリズム毎の全方位画像から2次元平面画像への変換の負荷を計算する負荷計算ステップ(例えば、図16のフローチャートのステップS31の処理)と、負荷計算ステップの処理の計算結果に基づいて、全方位画像を2次元平面画像へと変換する全ての変換処理に対するアルゴリズム毎の負荷の比率を計算する比率計算ステップ(例えば、図16のフローチャートのステップS32の処理)と、比率計算ステップの処理で計算されたアルゴリズム毎の負荷の比率に基づいて、複数の変換ステップの処理のそれぞれの変換処理の分担として全方位画像中の範囲およびアルゴリズムを決定する分担決定ステップ(例えば、図16のフローチャートのステップS33の処理)とを含み、複数の変換ステップの処理は、それぞれ分担決定ステップの処理で決定された全方位画像中の範囲を、分担決定ステップの処理で決定されたアルゴリズムで、2次元平面画像に変換する変換処理を実行することを特徴とする。
尚、記録媒体、および、プログラムについては、情報処理方法と同様であるので、その説明は省略する。
図3は、本発明を適用した情報処理装置1の一実施の形態を示す図である。
情報処理装置11は、ドライブ38に装着された磁気ディスク61、光ディスク62、光磁気ディスク63、あるいは半導体メモリ64などに記録された全方位画像、または、通信部35を介して、図示せぬネットワークより他の情報処理装置から供給されてくる全方位画像をフルフレーム(例えば、30fps)の2次元平面画像に変換し表示する。
情報処理装置11は、情報処理コントローラ31、メインメモリ32、記録部33−1、記録部33−2、バス34、出力部36、通信部35、およびドライブ38を含むように構成される。
情報処理コントローラ31は、メインメモリ32に記録されている各種のプログラムを実行し、情報処理装置11全体を制御する。情報処理コントローラ31は、キーボード、ボタン、または、マウスなどからなる入力部37がユーザにより操作され、対応する操作信号が発生されるとき、その操作信号に対応した指令に基づいて、指定されたデータを、メインメモリ32、記録部33−1または記録部33−2から取得し、取得したデータをバス34を介して出力部36に供給する。
また、情報処理コントローラ31には、情報処理装置11を、図示せぬ通信網を通して一意に特定できる装置IDが割り当てられている。
情報処理コントローラ31は、バス41、メインプロセッサ42、サブプロセッサ43−1乃至43−N、DMAC(Direct Memory Access Controller)44、キー管理テーブル記録部45、およびDC(Disk Controller)46を備えている。
メインプロセッサ42、サブプロセッサ43−1乃至43−N、DMAC44、キー管理テーブル記録部45、およびDC46は、バス41を介して、相互に接続されている。また、メインプロセッサ42には、メインプロセッサ42を特定するためのメインプロセッサIDが識別子として割り当てられる。同様に、サブプロセッサ43−1乃至43−Nのそれぞれには、サブプロセッサ43−1乃至43−Nのそれぞれを特定するためのサブプロセッサIDのそれぞれが識別子として割り当てられる。
メインプロセッサ42は、サブプロセッサ43−1乃至43−Nによるプログラムの実行のスケジュール管理および情報処理コントローラ31(情報処理装置11)の全体の管理を行う。メインプロセッサ42は、ローカルストレージ51−1を備え、メインメモリ32からロードしたデータおよびプログラムを、ローカルストレージ51−1に一時的に記憶させる。メインプロセッサ42は、ローカルストレージ51−1からデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
メインプロセッサ42は、図示せぬ通信網を介して接続されている、分散処理装置に分散処理を実行させる場合、ソフトウェアセルを生成し、生成したソフトウェアセルをバス41およびバス34を介して、通信部35に供給する。また、メインプロセッサ42は、管理のためのプログラム以外のプログラムを実行するように構成することもできる。この場合、メインプロセッサ42は、サブプロセッサとして機能する。
サブプロセッサ43−1乃至43−Nは、メインプロセッサ42の制御の基、並列的かつ独立に、プログラムを実行し、データを処理する。さらに、必要に応じて、メインプロセッサ42が実行するプログラムが、サブプロセッサ43−1乃至43−Nのそれぞれが実行するプログラムのそれぞれと連携して動作するように構成することも可能である。
サブプロセッサ43−1乃至43−Nのそれぞれは、ローカルストレージ51−2乃至51−(N+1)のそれぞれを備える。サブプロセッサ43−1乃至43−Nのそれぞれは、ローカルストレージ51−2乃至51−(N+1)のそれぞれに、必要に応じて、データおよびプログラムを一時的に記憶させる。サブプロセッサ43−1乃至43−Nのそれぞれは、ローカルストレージ51−2乃至51−(N+1)のそれぞれからデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
以下、サブプロセッサ43−1乃至43−Nのそれぞれを個々に区別する必要のないとき、単にサブプロセッサ43と称する。同様に、以下、ローカルストレージ51−1乃至51−(N+1)のそれぞれを個々に区別する必要のないとき、単にローカルストレージ51と称する。尚、その他の構成についても、同様に称するものとする。
DMAC44は、キー管理テーブル記録部45に記録されている、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを基に、メインプロセッサ42およびサブプロセッサ43からのメインメモリ32に記憶されているプログラムおよびデータへのアクセスを管理する。
キー管理テーブル記録部45は、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを記録している。なお、メインプロセッサキー、サブプロセッサキー、およびアクセスキーの詳細は後述する。
DC46は、メインプロセッサ42およびサブプロセッサ43からの記録部33−1,33−2へのアクセスを管理する。
メインメモリ32は、例えば、RAMから構成される。メインメモリ32は、メインプロセッサ42およびサブプロセッサ43が実行する各種のプログラムおよびデータを一時的に記憶している。
記録部33−1,33−2は、それぞれ、例えば、ハードディスクなどにより構成される。記録部33−1,33−2は、メインプロセッサ42およびサブプロセッサ43が実行する各種のプログラムおよびデータを記録している。また、記録部33−1,33−2は、情報処理コントローラ31から供給されたデータを記録する。
また、情報処理コントローラ31には、バス34を介して、通信部35、出力部36、入力部37、およびドライブ38が接続されている。入力部37は、キーボード、マウス、または、操作ボタンなどから構成され、ユーザにより操作されるとその操作に応じた信号を発生する。出力部36は、例えば、ディスプレイ、スピーカ、およびランプなどよりなり、情報処理コントローラ31から供給されたデータを出力する。
通信部35は、情報処理コントローラ31から供給されたソフトウェアセルを、図示せぬ通信網を介して所定の図示せぬ分散処理装置あてに送信する。また、通信部35は、図示せぬ分散処理装置から送信されてきたデータを、バス34を介して、情報処理コントローラ31に供給する。
ドライブ38は、磁気ディスク61、光ディスク62、光磁気ディスク63、あるいは半導体メモリ64などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて、バス34を介して、情報処理コントローラ31に転送され、情報処理コントローラ31によって、記録部33に記録される。
なお、図示せぬ分散処理装置についても、その構成は、情報処理装置11と同様である。図示せぬ分散処理装置は上述した構成に限らず、必要に応じて、機能を追加したり削除したりすることは可能であり、その機能に対応した構成をもつことが可能である。
次に、図4乃至図6を参照して、サブプロセッサ43がメインメモリ32にアクセスする場合の処理について説明する。
図4で示されるように、メインメモリ32には、複数のアドレスを指定できるメモリロケーションが配置される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含む。また、各メモリロケーションには、後述するアクセスキーが割り振られる。
“0”であるF/Eビットは、サブプロセッサ43によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、そのメモリロケーションから読み出し不可であることを示す。また、“0”であるF/Eビットは、そのメモリロケーションにデータ書き込み可能であることを示し、データが書き込まれると、F/Eビットは“1”に設定される。
“1”であるF/Eビットは、そのメモリロケーションのデータがサブプロセッサ43によって読み出されておらず、未処理の最新データであることを示す。F/Eビットが“1”であるメモリロケーションのデータは読み出し可能であり、サブプロセッサ43によって読み出されてから、F/Eビットは“0”に設定される。また、“1”であるF/Eビットは、メモリロケーションがデータ書き込み不可であることを示す。
さらに、F/Eビットが“0”(読み出し不可/書き込み可)である状態において、メモリロケーションについて読み出し予約を設定することが可能である。F/Eビットが“0”であるメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ43は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報としてサブプロセッサ43のサブプロセッサIDおよびLSアドレスを書き込む。そして、データを書き込むサブプロセッサ43によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビットが“1”(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれているサブプロセッサIDおよびLSアドレスによって特定されるローカルストレージ51に読み出される。
複数のサブプロセッサ43によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出しおよび書き込みを制御することによって、前段階の処理を行うサブプロセッサ43が、処理済みのデータをメインメモリ32における所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ43が前処理後のデータを読み出すことが可能となる。
また、図5で示されるように、サブプロセッサ43のローカルストレージ51は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含む。
サブプロセッサ43がメインメモリ32に記憶されているデータをサブプロセッサ43のローカルストレージ51のメモリロケーションに読み出すときには、対応するビジービットを“1”に設定して予約する。ビジービットが“1”であるメモリロケーションには、他のデータを格納することができない。ローカルストレージ51のメモリロケーションにデータが読み出されると、ビジービットは“0”に設定され、他のデータを格納することができるようになる。
さらに、図4で示すように情報処理コントローラ31に接続されているメインメモリ32には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ32内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ43に割り当てられ、割り当てられたサブプロセッサ43が排他的に使用することができる。すなわち、サブプロセッサ43は、割り当てられたサンドボックスを使用できるが、この領域を超えてデータにアクセスすることはできない。
メインメモリ32は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
さらに、メインメモリ32の排他的な制御を実現するために、図6で示されるキー管理テーブルが用いられる。キー管理テーブルは、キー管理テーブル記録部45に記録され、DMAC44と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサキーおよびキーマスクが含まれる。
サブプロセッサ43がメインメモリ32にアクセスする場合、サブプロセッサ43はDMAC44に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、サブプロセッサ43を特定するサブプロセッサIDおよびアクセス要求先であるメインメモリ32のアドレスが含まれる。
DMAC44は、サブプロセッサ43から供給されたコマンドを実行する場合、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ43のサブプロセッサキーを調べる。そして、DMAC44は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ32のメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、サブプロセッサ43から供給されたコマンドを実行する。
図6は、キー管理テーブルを説明する図である。キー管理テーブルに記録されているキーマスクは、その任意のビットが“1”になることによって、そのキーマスクと関連付けられたサブプロセッサキーの対応するビットを“0”または“1”にすることができる。
例えば、サブプロセッサキーが“1010”であるとする。通常、このサブプロセッサキーによって“1010”のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが“0001”に設定されている場合には、キーマスクのビットが“1”に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ(キーマスクのビットが“1”に設定された桁について、判定されず)、このサブプロセッサキー“1010”によってアクセスキーが“1010”または“1011”のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ32のサンドボックスの排他性が実現される。すなわち、複数のサブプロセッサ43によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ43と、後段階の処理を行うサブプロセッサ43のみが、メインメモリ32の所定のアドレスにアクセスできるようになり、データを保護することができる。
例えば、キーマスクの値は、以下のように変更されることが考えられる。まず、情報処理装置11の起動直後においては、キーマスクの値は全て“0”である。メインプロセッサ42にロードされたプログラムが実行され、サブプロセッサ43にロードされたプログラムと連携動作するものとする。サブプロセッサ43−1により出力された処理結果データを、メインメモリ32に記憶させ、メインメモリ32に記憶させた処理結果データを、サブプロセッサ43−2に入力したいときには、サブプロセッサ43−1により出力された処理結果データを記憶しているメインメモリ32の領域は、サブプロセッサ43−1およびサブプロセッサ43−2からアクセス可能である必要がある。そのような場合に、メインプロセッサ42は、キーマスクの値を適切に変更し、複数のサブプロセッサ43からアクセスできるメインメモリの領域を設けることにより、サブプロセッサ43による多段階的の処理を可能にする。
より具体的には、例えば、図示せぬ分散処理装置から送信されてきた、データを基に、サブプロセッサ43−1が所定の処理実行し、処理が施されたデータをメインメモリ32の第1の領域に記憶させる。そして、サブプロセッサ43−2は、メインメモリ32の第1の領域から、記憶されているデータを読み出し、読み出したデータを基に、所定の処理を実行し、処理が施されたデータをメインメモリ32の第1の領域とは、異なる第2の領域に記憶させる。
ここで、サブプロセッサ43−1のサブプロセッサキーが“0100”であり、メインメモリ32の第1の領域のアクセスキーが“0100”であり、サブプロセッサ43−2のサブプロセッサキーが“0101”であり、メインメモリ32の第2の領域のアクセスキーが“0101”である場合、サブプロセッサ43−2は、メインメモリ32の第1の領域にアクセスすることができない。そこで、サブプロセッサ43−2のキーマスクを“0001”にすることによって、サブプロセッサ43−2は、メインメモリ32の第1の領域にアクセスすることができるようになる。
次に、図7を参照して、図3の情報処理装置11により実現される機能について説明する。
操作部101は、上述した入力部37に相当するものであり、全方位画像からなるファイルの指定処理や、再生、停止、または一時停止といった動作をユーザが希望するとき操作され、対応する操作信号を発生して分離部102に供給する。
分離部102は、ドライブ38に装着された磁気ディスク61、光ディスク62、光磁気ディスク63、あるいは半導体メモリ64などに記録された全方位画像、または、通信部35を介して、図示せぬネットワークより他の情報処理装置から供給されてくる全方位画像のストリームデータより先頭部分に記録されているコンテンツ情報、画像処理情報、音声処理情報、およびセグメント情報をそれぞれメインメモリ32のキャッシュ部111のコンテンツ情報キャッシュ部121、画像処理情報キャッシュ部122、音声処理情報キャッシュ部123、および、セグメント情報キャッシュ部124に記憶させる。
尚、図7においては、メインメモリ32は、メインプロセッサ42内に設けられたように表記されているが、実際のハードウェアの構成としては、図3で示されるように、メインプロセッサ42内には、存在しないものである。しかしながら、図7においては、処理の説明の便宜上メインプロセッサ42内に存在しているような表記とする。
分離部102は、セグメント情報に基づいて、ドライブ38に装着された磁気ディスク61、光ディスク62、光磁気ディスク63、あるいは半導体メモリ64などに記録された全方位画像、または、通信部35を介して、図示せぬネットワークより他の情報処理装置から供給されてくる全方位画像のストリームデータより、再生が指定されている範囲の音声データと画像データをそれぞれメインメモリ32のFIFO(First in First Out)部112の音声データFIFO部141および画像データFIFO部142のそれぞれに記憶させる。
分離部102は、供給されてくる画像データをFIFO制御部103に供給する。
FIFO制御部103は、分離部102より供給されてくる、今現在取得している画像データと、セグメント情報キャッシュ部124に記憶されているセグメント情報に基づいて、音声データFIFO部141、画像データFIFO部142、および処理結果画像データFIFO部143のFIFOの領域のサイズを決定する。
メインメモリ32のキャッシュ部111は、一時的に情報を記憶するメモリであり、コンテンツ情報キャッシュ部121、画像処理情報キャッシュ部122、音声処理情報キャッシュ部123、および、セグメント情報キャッシュ部124を備えており、コンテンツ情報、画像処理情報、音声処理情報、および、セグメント情報をそれぞれ一時的に記憶し、必要に応じて、FIFO制御部103、分担決定部104、および、振分部105に供給する。
FIFO部112は、分離部102より供給されるストリームデータにおける音声データ、画像データ、および、サブプロセッサ43−1乃至43−Nにより分散処理された処理結果となる画像データを記憶する。FIFO部112の音声データFIFO部141は、FIFO制御部103により動的に容量が設定され、分離部102より供給される音声データを一時的に記憶し、必要に応じて振分部105に供給する。
画像データFIFO部142は、FIFO制御部103により動的に容量が設定され、分離部102より供給される画像データを一時的に記憶し、必要に応じて、振分部105に供給する。
処理画像データFIFO部143は、FIFO制御部103により動的に容量が決定され、サブプロセッサ43−1乃至43−Nより供給されてくる処理結果である画像データを一時的に記憶し、順次、所定のタイミングで画像再生処理部106に供給する。
分担決定部104は、メインメモリ32のキャッシュ部111における画像処理情報キャッシュ部122に記憶されたマッピングテーブル131および負荷分布テーブル132を読み出し、全方位画像を2次元平面画像に変換する全ての画像処理における各マッピングアルゴリズム毎の負荷の比率を計算し、その比率から各サブプロセッサ43−1乃至43−Nに実行させる画像処理内容の分担を決定し、決定した分担結果を振分部105に供給する。尚、ここで言うマッピングアルゴリズムとは、全方位画像を2次元平面画像に変換するためのマッピングアルゴリズムであり、例えば、全方位画像を円筒形マッピングアルゴリズムにより2次元平面画像に変換するか、または、全方位画像を球形マッピングアルゴリズムにより2次元平面画像に変換するかといったマッピングアルゴリズムのことである。尚、円筒形マッピングアルゴリズム、および、球形マッピングアルゴリズムについては詳細を後述する。
より具体的には、分担計算部104の負荷計算部161が、1ピクセルあたりの処理時間に基づいて、処理時間をマッピングアルゴリズム毎の負荷として計算する。そして、比率計算部162が、総処理時間に対するマッピングアルゴリズム毎の比率を求め、分担して画像処理を担当させることができるサブプロセッサ43に対して負荷を均等にさせるように、処理分担を決定し、決定結果を振分部105に供給する。
振分部105は、分担決定部104より供給されてくる分担結果に応じて、各サブプロセッサ43が処理に必要な情報と、必要なプログラムをキャッシュ部111およびFIFO部112より読み出し、それぞれ振り分けてサブプロセッサ43−1乃至43−Nに供給する。
サブプロセッサ43−1乃至43−Nは、振分部105より供給された、処理に必要な情報を用いて、供給された画像を処理するための(全方位画像を2次元平面画像に変換する処理をするための)プログラムを実行し、処理結果をメインメモリ32のFIFO部112の処理結果画像データFIFO部143に記憶させる。
画像再生処理部106は、処理結果画像データFIFO部143に記憶されたサブプロセッサ43−1乃至43−Nにより分散処理されて、画像処理された処理結果を、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などからなる表示部171により表示可能な画像に処理し、表示部171に出力して表示させる。
次に、図8を参照して、ストリームデータのフォーマットについて説明する。
図8の左部に示されるように、先頭部分からコンテンツ情報201、画像処理情報202、音声処理情報203、および、セグメント情報204が記憶されており、いわゆるヘッダ部分を構成している。さらに、その後段には、データ領域205が設定されており、実際の画像データや音声データが記録されている。
さらに、データ領域205には、図8の右部で示されるように、デリミタ単位の画像データ、音声データ、および、画像音声処理用データが記録されている。すなわち、先頭からデリミタ情報211−1、画像データ212−1、音声データ213−1、および画像音声処理用データ214−1が、1のデリミタに対応するデータである。さらに、それ以降のデータは、デリミタ情報211−2、画像データ212−2、音声データ213−2、および画像音声処理用データ214−2・・・とデリミタ毎に順次記録され、図8の右部においては、デリミタ情報211−N、画像データ212−N、音声データ213−N、および画像音声処理用データ214−Nまでの情報がデータ領域に記録されている。
ここで、コンテンツ情報201は、一般的なコンテンツの情報であり、画像フォーマットの情報(例えば、全方位画像、マルチカメラ画像、パノラマ画像、または通常画像といったフォーマットを識別する情報)、画像圧縮フォーマットの情報(例えば、MPEG1(Moving Picture Experts Group Phase1)、MPEG2(Moving Picture Experts Group Phase2)、またはJPEG2000(Joint Photographic Coding Experts Group 2000)などを識別する情報)、横解像度(水平方向の解像度)、縦解像度(垂直方向の解像度)、深さ(N bit:色を表現するビット数)、総フレーム数、および、ストリームデータに含まれるデータセグメントの中で最も大きなデータセグメント(最大データセグメント)と、そのデータ量の情報である。ここで、データセグメントとは、1デリミタにおけるデリミタ情報、画像データ、音声データ、および、画像音声処理用データを全て加えたものである。さらに、コンテンツ情報には、最大音声データサイズや最大画像データサイズなども含まれる。
画像処理情報202は、後述するマッピングテーブルと負荷分布テーブルからなる情報である。
音声処理情報203は、音声フォーマット、サンプリングレート(Hz)、および、チャンネル数などの情報である。
セグメント情報204は、各データセグメントの先頭フレーム番号、データセグメントのフレーム数、およびデリミタ情報の先頭アドレスからの相対アドレスの情報である。
次に、全方位画像を2次元平面画像に変換するマッピングアルゴリズムについて説明する。尚、全方位画像を2次元平面画像に変換するマッピングアルゴリズムの例として、ここでは、球形マッピングアルゴリズムと、円筒形マッピングアルゴリズムについて説明するが、それ以外の方法であってもよいことは言うまでもない。
まず、球形マッピングアルゴリズムについて説明する。
球形マッピングアルゴリズムとは、全方位画像を、図9で示されるように、球面(XYZ軸の交点(原点)を中心とした球面)上の画像であるとみなし、球面上の各位置を中心からの緯度方向(Y軸を中心として赤道面を設定した場合)をφ、経度方向(Y軸を中心として赤道面を設定した場合)をθとした角度座標で表現し、これを図10で示されるように角度座標上のθφ平面に展開することで2次元平面画像に変換するマッピングアルゴリズムである。すなわち、図9で示されているように、球面上の(θ,φ)で示される位置の画素は、図10において、θ軸およびφ軸のそれぞれに対応する位置にプロットされる(例えば、図中の黒丸の位置にプロットされる)ことになる。
さらに、図10で示されるように、θφ平面上の位置に応じて、解像度を変化させるように変換する。すなわち、図10においては、θとφの角度の間隔が解像度を示している。従って、−40°<θ<40°で、かつ、−45°<φ<45°における図中の白色の第1の範囲では、θ方向、および、φ方向のいずれにおいても最も大きな間隔が設定されているので、最も高い解像度が設定されている。また、−40°<θ<40°で、かつ、φ<−45°または45°<φの右上がりの斜線の第2の範囲では、第1の範囲よりもφ方向の間隔が狭いため、第1の範囲よりも解像度が低い。さらに、θ<−40°または40°<θで、かつ、−45°<φ<45°の格子状の第3の範囲では、第1の範囲よりもθ方向の間隔が狭いため、第1の範囲よりも解像度が低い。
さらに、θ<−40°または40°<θで、かつ、φ<−45°または45°<φの左上がり斜線で示される第4の範囲では、第1の範囲よりもθ方向およびφ方向の間隔が狭いため、第1の範囲よりも解像度が低く、第2の範囲よりもφ方向の間隔が狭いため第2の範囲よりも解像度が低く、同様にして、第3の範囲よりもθ方向の間隔が狭いため第3の範囲よりも解像度が低い。
尚、ここでいう解像度は、全方位画像を2次元平面画像に変換する際に生成されるピクセルの密度である。従って、例えば、全方位画像の解像度と同一の解像度を第1の範囲の解像度とし、その他の範囲については、全方位画像のピクセルを順次所定の間隔で間引くようにして低解像度化してもよいし、全方位画像のピクセルにより画素を生成することで高解像度化したり、逆に、間引くようにして、低解像度化するなどして解像度を変化させるようにしても良い。
このように解像度の分布を範囲に応じて変化させて設定することで、例えば、図10の点線で示される丸印の範囲付近に特に注目して表示したい被写体が存在したような場合、その被写体近傍の範囲の画像を高解像度に設定し、それ以外の範囲を低解像度化することで、注目したい被写体が表示されている範囲のみを高解像度で表示させるようにすることができるので、画像を見る際、ユーザが意識する範囲のみを高解像度に表示し、それ以外の範囲の解像度を低解像度化することで、見た目に画質が低下した印象を与えずに、全体として全方位画像を2次元平面画像に変換させる処理の負荷を抑制させ、結果として、全体の処理を高速化させることが可能となる。尚、この解像度の分布は、任意に設定することが可能である。
次に、円筒形マッピングアルゴリズムについて説明する。
円筒形マッピングアルゴリズムとは、全方位画像を、図11で示されるように、円筒面(図11におけるY軸を中心とし、XZ平面に平行な上底と下底からなる円筒面)上の画像であるとみなし、円筒上の各位置を原点(XYZ軸の交点)からの緯度方向をφ、経度方向をθとした角度座標で表現し、これを上述した図10で示されるように角度座標上のθφ平面に展開することで2次元平面画像に変換するマッピングアルゴリズムである。すなわち、図11で示されているように、円筒面上の(θ,φ)で示される位置の画素は、図10において、θ軸およびφ軸のそれぞれに対応する位置にプロットされる(例えば、図中の黒丸の位置にプロットされる)ことになる。尚、θφ平面上の解像度の設定は、球面マッピングアルゴリズムと同様に設定することが可能であり、同様の効果を得る事が可能となる。
また、マッピングアルゴリズムは、全方位画像の全ての範囲に対して統一したものとする必要がなく、範囲毎に設定することができる。例えば、図12で示されるように、図中の格子模様で示された高緯度の範囲については、球形マッピングアルゴリズムを使用し、低緯度の範囲については円筒形マッピングアルゴリズムを使用するようにしてもよいし、さらに、細かく範囲を設定して円筒形マッピングアルゴリズムや球形マッピングアルゴリズムなどの複数のマッピングアルゴリズムを設定するようにしても良い。
次に、図13を参照して、マッピングテーブルについて説明する。
マッピングテーブルは、図13の左部で示されるように、先頭からマッピングアルゴリズム(Mapping algorithm)231、および個別マッピングテーブル(Mapping Table)232−1乃至232−4・・・が配置される。
マッピングアルゴリズム231には、図13の右部で示されるように、先頭からアルゴリズム名(Algorithm Name)、およびアルゴリズムパラメータ(Algorithm Parameter)242−1乃至242−Nが記録されている。アルゴリズム名241は、全方位画像を2次元平面画像に変換するためのプログラムに用いられるマッピングアルゴリズムの名称が記録され、例えば、球形マッピングアルゴリズムや円筒形マッピングアルゴリズムなどのマッピングアルゴリズムの名称が記録される。また、アルゴリズムパラメータ242−1乃至242−Nには、全方位画像を2次元平面画像に変換するためのプログラムに用いられるパラメータが記録される。図13の場合、パラメータはN個設定できる構成となっている。
個別マッピングテーブル232−1乃至232−4・・には、それぞれマッピングアルゴリズムを使用する範囲を示すデータ243−1乃至243−4・・がそれぞれ記録されている。すなわち、データ243には、φmin、θmin、TXmin、TYmin、φmax、θmax、TXmax、TYmaxがそれぞれ記録されており、そのマッピングアルゴリズムを使用する範囲が角度座標で表現されるθφ平面と、全方位画像上の範囲のそれぞれについて示されている。より詳細には、φminは、θφ平面上の角度φの最小値であり、θminはθφ平面上の角度θの最小値であり、TXminは全方位画像におけるX方向の最小値であり、TYminは全方位画像におけるY方向の最小値であり、φmaxは、θφ平面上の角度φの最大値であり、θmaxはθφ平面上の角度θの最大値であり、TXmaxは全方位画像におけるX方向の最大値であり、TYmaxは全方位画像におけるY方向の最大値である。この個別マッピングテーブルにより、マッピングアルゴリズムを使用する角度座標上の範囲と、全方位画像上の範囲が設定されることになる。
次に、図14を参照して、負荷分布テーブルについて説明する。
負荷分布テーブルは、先頭位置から画像内のマッピングアルゴリズム(Mapping Algorithm)数261、画像内の総ピクセル数262、マッピングアルゴリズム(Mapping Algorithm)263−1、処理ピクセル数264−1、負荷率265−1が順次記録され、以下、マッピングアルゴリズム毎に、マッピングアルゴリズム(Mapping Algorithm)263−i、処理ピクセル数264−i、負荷率265−iが記録され、図14においては、iがN個、すなわち、マッピングアルゴリズムがN個設定された場合についての負荷分布テーブルの例が示されている。
マッピングアルゴリズム(Mapping Algorithm)数261は、全方位画像を2次元平面画像に変換する処理に用いられているマッピングアルゴリズム数を示す情報である。画像内の総ピクセル数262は、全方位画像の全ピクセル数を示す情報である。マッピングアルゴリズム(Mapping Algorithm)263は、全方位画像を2次元平面画像に変換するために使用されているプログラムのアルゴリズム名であり、続く処理ピクセル数264、および負荷率265は、それぞれ、そのマッピングアルゴリズムのプログラムにより処理される全方位画像のピクセル数と、1ピクセル当たりの処理に必要とされる処理時間である。
次に、図15のフローチャートを参照して、図3の情報処理装置11による全方位画像を2次元平面画像として再生する再生処理について説明する。
ステップS1において、分離部102は、全方位画像の記録されたコンテンツ群登録処理を実行する。すなわち、分離部102は、ドライブ38に装着された磁気ディスク61、光ディスク62、光磁気ディスク63、あるいは半導体メモリ64などに記録された全方位画像、または、通信部35を介して、図示せぬネットワークより他の情報処理装置から供給されてくる全方位画像のストリームデータかなるコンテンツの先頭部分に記録されているコンテンツ情報、画像処理情報、音声処理情報、およびセグメント情報をそれぞれメインメモリ32のキャッシュ部111のコンテンツ情報キャッシュ部121、画像処理情報キャッシュ部122、音声処理情報キャッシュ部123、および、セグメント情報キャッシュ部124に記憶させる。
ステップS2において、分離部102は、操作部101が操作されて、再生が指示されたか否かを判定し、操作部101が操作されて、全方位画像のコンテンツを再生させるコマンドが入力されるまで、その処理を繰り返す。すなわち、入力待機状態となる。そして、全方位画像のコンテンツを再生させるコマンドが入力されると、その処理は、ステップS3に進む。尚、全方位画像のコンテンツを再生させるコマンドには、再生させるコンテンツまたは再生させるフレームを指定する情報が含まれている。再生する全方位画像のコンテンツが指定された場合、再生対象となる最初のフレーム(セグメント0に含まれる)からの再生であると判定する。
ステップS3において、FIFO制御部103は、FIFO部112の音声データFIFO部141、画像データFIFO部142、および処理結果画像データFIFO部143の各領域を確保する。すなわち、FIFO制御部103は、コンテンツ情報キャッシュ部121に格納されている情報に基づいて、音声データFIFO部141、および画像データFIFO部142を、それぞれ(最大音声データサイズ×セグメント数)、および(最大画像データセグメントのサイズ×セグメント数)[byte]に従って、領域を設定する。また、FIFO制御部103は、コンテンツ情報キャッシュ部121に格納されている情報に基づいて、(横解像度×縦解像度×深さ×フレーム数)を処理結果画像データFIFO部143の領域として確保する。
ステップS4において、分離部102は、コンテンツをプリロードする。すなわち、分離部102は、再生が指定された最初のフレームの情報に基づいて、キャッシュ部111のセグメント情報キャッシュ部124に格納された、再生が指定された最初のフレームを含むセグメントを確認し、そのセグメントからデータの読み込みを開始する。セグメント情報キャッシュ部124には、データセグメント内の先頭フレーム番号、データセグメント内のフレーム数、およびデリミタのデータの先頭からの相対アドレスが格納されており、再生が指定された最初のフレーム情報に基づいて、そのフレームの含まれるセグメントを認識することが可能となっている。また、デリミタの相対アドレスに基づいて、ディスク上のデータ読み出し位置も認識することが可能であるので、処理対象データの読み取りにおけるシークタイムを短縮することが可能となる。
分離部102は、再生が指定されたフレームの格納されたデータセグメント領域からデータを読み出して、音声データ、および画像データを分離して、再生が指定された最初のフレーム以降の音声データを音声データFIFO部141に格納し、全方位画像の画像データを画像データFIFO部142に格納する。
ステップS5において、再生画像生成処理、すなわち、全方位画像からなるコンテンツを2次元平面画像に変換して表示部171により再生可能な画像を生成する処理が実行される。
ここで、図16のフローチャートを参照して、メインプロセッサ42とサブプロセッサ43による再生画像生成処理について説明する。
ステップS31において、メインプロセッサ42の分担決定部104の負荷計算部161は、負荷分布テーブル132を参照して、マッピングアルゴリズム毎に処理ピクセル数と負荷率に基づいて、マッピングアルゴリズム毎の負荷を計算する。より詳細には、負荷計算部161は、負荷分布テーブル132におけるマッピングアルゴリズム263の情報毎に処理時間(=(処理ピクセル数)×(負荷率:1ピクセルの処理に係る時間))を各マッピングアルゴリズムの負荷として計算し、比率計算部162に出力する。
ステップS32において、メインプロセッサ42の分担決定部104の比率計算部162は、マッピングアルゴリズム毎の全体の処理に対する比率を計算する。すなわち、比率計算部162は、例えば、マッピングアルゴリズムA,B,Cの3種類のマッピングアルゴリズムが存在した場合、それぞれの負荷、すなわち、処理時間が0.25秒、0.25秒、および、0.5秒であったとき、マッピングアルゴリズムAの比率を0.25(=0.25/(0.25+0.25+0.5))、マッピングアルゴリズムBの比率を0.25(=0.25/(0.25+0.25+0.5))、マッピングアルゴリズムCの比率を0.5(=0.5/(0.25+0.25+0.5))としてそれぞれ計算し、計算結果を分担確定部163に供給する。
ステップS33において、分担確定部163は、各サブプロセッサ43に対して負荷が均等に近い状態となるように、処理を分担し、各サブプロセッサ43に対しての処理分担を決定し、その結果を振分部105に供給する。より詳細には、図17の上段で示されるように、マッピングアルゴリズムA,B,Cのそれぞれについて負荷が0.25,0.25,0.5であった場合、例えば、サブプロセッサ43が、サブプロセッサ43−1乃至43−1の4個であったとき、図17の下段で示されるように処理分担が決定される。すなわち、例えば、マッピングアルゴリズムA(Mapping Algorithm-A)の処理をサブプロセッサ43−1に振り分け、マッピングアルゴリズムB(Mapping Algorithm-B)の処理をサブプロセッサ43−2に振り分け、マッピングアルゴリズムC(Mapping Algorithm-C)の処理をサブプロセッサ43−3,43−4に振り分ける。ここで、マッピングアルゴリズムCの処理を複数のサブプロセッサ43に分担させる場合、マッピングテーブル131により設定される範囲を、それぞれのサブプロセッサ43で処理する範囲に分けて、マッピングアルゴリズムCの処理を実行させる。尚、図17においてαは、0.25秒を示す。
このように全方位画像を2次元平面画像に変換する処理を、複数のサブプロセッサで分散処理させることにより、処理速度を向上させることが可能になると共に、それぞれのサブプロセッサ43の負荷が均等になるように処理分担を決定することで、例えば、1のサブプロセッサ43の処理が完了するのを待つといった分散処理における非効率的な処理を抑制することが可能となり、結果として、全方位画像を2次元平面画像に変換させる処理の効率を向上させ、高速化を図ることが可能となる。
ステップS34において、振分部105は、分担決定部104より供給されてきた処理分担に従って、マッピングアルゴリズムのパラメータ、マッピングテーブル131の個別マッピングテーブル、および実際のマッピングアルゴリズムを実行するためのプログラムを各サブプロセッサ43に供給する。
ステップS51において、サブプロセッサ43は、マッピングアルゴリズムのパラメータ、マッピングテーブル131の個別マッピングテーブル(処理分担に対応する個別マッピングテーブル)を含む、マッピングアルゴリズムを実行するためのプログラムが、メインプロセッサ42より供給されてきたか否かを判定し、送信されてくるまで、その処理を繰り返す。ステップS51において、例えば、上述したステップS34の処理により、マッピングアルゴリズムのパラメータ、マッピングテーブル131の個別マッピングテーブルを含む、マッピングアルゴリズムを実行するためのプログラムが送信されてきた場合、その処理は、ステップS52に進む。
ステップS52において、サブプロセッサ43は、送信されてきたプログラムが、自らのローカルストレージ51に記憶されているか、すなわち、既にインストール済みのプログラムであるか否かを判定する。例えば、インストールされていないと判定された場合、その処理は、ステップS53に進み、サブプロセッサ43は、送信されてきたプログラムを自らのローカルストレージ51にインストールする。一方、ステップS52において、既にインストール済みである場合、更なるインストールは不要であるため、ステップS53の処理は、スキップされる。
ステップS54において、サブプロセッサ43は、未処理の全方位画像のピクセル(画素)を指定する座標(TX,TY)を選択する。ここで、TX,TYは、振分部105より供給されたマッピングテーブル131のTXmin,TXmax,TYmin,TYmaxに基づいた値であり、TXmin≦TX≦TXmax、TYmin≦TY≦TYmaxである。
ステップS55において、サブプロセッサ43は、選択した全方位画像座標を角度座標に変換する。すなわち、サブプロセッサ43は、例えば、全方位画像上の座標(TX,TY)を、以下の式(1),式(2)を用いて、θφ平面上の角度座標(θ,φ)に変換する。
θ=θmin+(θmax−θmin)×TX/imgw
φ=φmin+(φmax−φmin)×TY/imgh
・・・(1)
ここでは、θmin,θmax,φmin,φmaxは、いずれも振分部105より供給されてきたマッピングテーブル131の情報である。また、imgw,imghは、それぞれ全方位画像の水平方向のサイズ、および、垂直方向のサイズである。
ステップS56において、サブプロセッサ43は、角度座標(θ,φ)を3次元座標に変換する。すなわち、サブプロセッサ43は、例えば、球形マッピングアルゴリズムの場合、以下の式(2)を演算し、角度座標(θ,φ)を3次元座標(X,Y,Z)に変換する。また、例えば、円筒マッピングアルゴリズムの場合、サブプロセッサ43は、以下の式(3)を演算し角度座標(θ,φ)を3次元座標(X,Y,Z)に変換する。
X=sinθ×cosφ
Y=sinφ
Z=cosθ×cosφ
・・・(2)
X=sinθ
Y=tanφ
Z=cosθ
・・・(3)
ステップS57において、サブプロセッサ43は、3次元座標(X,Y,Z)を2次元座標(x,y)に変換する。すなわち、サブプロセッサ43は、以下の式(4),式(5)を演算し、2次元座標(x,y)に変換する。
Figure 2006011696
・・・(4)
x=x’/w
y=y’/w
・・・(5)
ここで、式(4)のTVは、3次元座標を2次元座標に変換する行列であり、Rは、回転行列である。すなわち、ステップS57の処理により、全方位画像は、2次元平面画像に変換されることになる。
ステップS58において、サブプロセッサ43は、2次元座標(x,y)からフレームバッファの座標系、すなわち、処理結果画像データFIFO部143上の座標(xd,yd)に変換して、処理結果画像データFIFO部143に記憶させる。すなわち、サブプロセッサ43は、以下の式(6)を演算し、2次元座標(x,y)を処理結果画像データFIFO部143上の座標(xd,yd)に変換する。
xd=x+(xcent−cutw/2)
yd=y+(ycent−cuth/2)
・・・(6)
ここで、xcent,ycentは、スクリーン座標系の中心位置(全方位画像から切り出して表示しようとする画像の全方位画像中の中心位置である)である。また、cutw,cuthは、それぞれ全方位画像から抽出して2次元平面画像として表示する画像の水平方向と垂直方向のサイズを示している。
すなわち、この処理により、全方位画像は2次元平面画像に変換された状態で、処理結果データFIFO部143に記憶されることになる。
ステップS59において、サブプロセッサ43は、全ての全方位画像の座標が処理されたか否かを判定し、全ての全方位画像の座標が処理されていないと判定された場合、その処理は、ステップS54に戻る。すなわち、全ての全方位画像の座標が2次元平面画像に変換されて、処理結果画像データFIFO部143に記憶されるまで、ステップS54乃至S59の処理が繰り返される。
そして、ステップS59において、全ての全方位画像が処理されたと判定された場合、ステップS60において、サブプロセッサ43は、処理分担であった分の全方位画像を2次元平面画像に変換する処理が完了したことを示す処理完了通知をメインプロセッサ42に通知し、その処理は、ステップS51に戻る。
ステップS35において、メインプロセッサ42は、サブプロセッサ43からの処理完了通知を取得したか否かを判定し、処理完了通知を取得するまでその処理を繰り返す。例えば、ステップS60の処理により処理完了通知が通知され、取得された場合、その処理は、ステップS36に進む。
ステップS36において、メインプロセッサ42は、全てのサブプロセッサ43による処理が完了したか否か、すなわち、分担処理の実行を要求した全てのサブプロセッサ43より処理完了通知が取得されたか否かを判定し、分担処理の実行を要求した全てのサブプロセッサ43より処理完了通知が取得されたと判定されるまで、ステップS35,S36の処理を繰り返す。そして、分担処理の実行を要求した全てのサブプロセッサ43より処理完了通知が取得された場合、再生画像生成処理が終了する。
すなわち、この段階で、全方位画像が全て2次元平面画像に変換された状態で、処理結果画像データFIFO部143に格納された状態となる。
尚、図16のフローチャートにおいては、1のサブプロセッサ43の処理について説明してきたが、図16の右部の処理が、複数のサブプロセッサ43においても実行されることになる。
ここで、図15のフローチャートの説明に戻る。
ステップS6において、メインプロセッサ42の画像再生処理部106は、処理結果画像データFIFO部143に格納されている各サブプロセッサ43により処理された、マッピングアルゴリズム毎に、または、範囲毎に、全方位画像から2次元平面画像に変換された画像データを読み出して、これらを合成し、表示部171に表示させる。
ステップS7において、メインプロセッサ42は、操作部101が操作されて、一時停止が指示されたか否かを判定する。例えば、ステップS7において、操作部101が操作されて、一時停止が指示されたと判定された場合、ステップS13において、画像再生処理部106は、一次停止処理を実行し、画像の表示を停止する。さらに、ステップS14において、メインプロセッサ42は、操作部101が操作されて、一時停止の解除が指示されたか否かを判定し、指示されていないと判定された場合、処理は、ステップS13に戻る。すなわち、一時停止の解除が指示されるまでステップS13,S14の処理が繰り返される。そして、ステップS14において、一時停止の解除が指示された場合、その処理は、ステップS5に戻る。
一方、ステップS7において、一時停止の指示がされなかった場合、ステップS8において、メインプロセッサ42は、再生停止、すなわちユーザにより操作部101が操作されて再生停止が指示されたとき、その処理は、ステップS15に進む。
ステップS15において、画像再生処理部106は、画像再生処理を停止し、メインプロセッサ42は、音声データFIFO部141、画像データFIFO部142、処理結果画像データFIFO部143のFIFO部112の格納データを破棄する。
尚、この時点では、キャッシュ部111に格納された情報は維持される。従って、この後ステップS2において、再生の開始が指示された場合、キャッシュ部111に記憶されている情報に基づくFIFO部112に対するデータの格納処理や、再生処理を即座に実行することが可能な状態となっている。また、この場合、ステップS3におけるFIFOの確保は、実行済みであるので、処理が省略される。
ステップS8において、再生停止が指示されていないと判定された場合、ステップS9において、メインプロセッサ42は、コンテンツの再生が終了したか否かを判定し、再生が終了していない場合、その処理は、ステップS2に戻り、それ以降の処理が繰り返される。また、ステップS9において、コンテンツの再生が終了したと判定された場合、ステップS10において、メインプロセッサ42は、コンテンツ再生終了処理を実行する。
すなわち、メインプロセッサ42は、FIFO部112の音声データFIFO部141、画像データFIFO部142、および処理結果画像データFIFO部143に格納された情報を各々解放し、キャッシュ部111に記憶されている情報を無効にする。この処理は、キャッシュ部111からのデータ読み取り状態解除処理であり、この時点では、キャッシュされた情報の破棄は実行しない。従って、再度、ステップS2において再生が指示された場合、キャッシュされた情報に基づいて、FIFOを確保する処理や、再生処理が即座に実行される。
ステップS11において、メインプロセッサ42は、コンテンツ再生終了処理が完了されたか否かを判定し、コンテンツ再生終了処理が完了していない場合、その処理は、ステップS2に戻り、それ以降の処理が繰り返される。また、ステップS11において、コンテンツ再生終了処理が完了した場合、ステップS12において、コンテンツ群登録解除処理、すなわち、キャッシュ部111のコンテンツ情報キャッシュ部121、画像処理情報キャッシュ部122、音声処理情報キャッシュ部123、および、セグメント情報キャッシュ部124のそれぞれに格納された情報が破棄される。
以上によれば、全方位画像を2次元平面画像に変換する処理を分散処理により、高効率で実行させるようにすることで、処理速度を向上させることが可能となり、結果として、全方位画像をより高解像度の2次元平面画像をより高速で変換することが可能となる。
尚、以上においては、複数のサブプロセッサ43の処理能力が、個々に同一である場合に、それぞれのサブプロセッサ43に均等に処理分担を設定させる例について説明してきたが、複数のサブプロセッサ43の処理能力が同一でない場合、処理能力の高いサブプロセッサ43に大きい負荷を掛け、処理能力の低いサブプロセッサについては、小さい負荷が掛かるようにして、全体として処理時間が最短となるように処理分担を設定するようにしても良い。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
プログラムが記録されている記録媒体は、図3に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク61(フレキシブルディスクを含む)、光ディスク62(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク63(MD(Mini-Disc)を含む)、もしくは半導体メモリ64などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているローカルストレージ51−1乃至51−(N+1)や、記録部33−1,33−2に含まれるハードディスクなどで構成される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
全方位画像を説明する図である。 全方位画像を説明する図である。 本発明を適用した情報処理装置の一実施の形態を示す図である。 メインメモリを説明する図である。 サブプロセッサのローカルストレージを説明する図である。 キー管理テーブルを説明する図である。 情報処理装置11により実現される機能を説明する機能ブロック図である。 ストリームデータのフォーマットを説明する図である。 球形マッピングアルゴリズムを説明する図である。 角度座標を説明する図である。 円筒形マッピングアルゴリズムを説明する図である。 マッピングアルゴリズムを説明する図である。 マッピングテーブルを説明する図である。 負荷分布テーブルを説明する図である。 再生処理を説明するフローチャートである。 再生画像生成処理を説明するフローチャートである。 再生画像生成処理を説明する図である。
符号の説明
11 情報処理装置, 32 メインメモリ, 42 メインプロセッサ, 43,43−1乃至43−N サブプロセッサ, 101 操作部, 102 分離部, 103 FIFO制御部, 104 分担決定部, 105 振分部, 106 画像再生処理部, 111 キャッシュ部, 112 FIFO部, 121 コンテンツ情報キャッシュ部, 122 画像処理情報キャッシュ部, 123 音声処理情報キャッシュ部, 124 セグメント情報キャッシュ部, 131 マッピングテーブル, 132 負荷分布テーブル, 141 音声データFIFO部, 142 画像データFIFO部, 143 処理結果画像データFIFO部, 161 負荷計算部, 162 比率計算部, 163 分担確定部, 171 表示部

Claims (7)

  1. 全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理を実行する複数の変換手段と、
    前記アルゴリズム毎の前記全方位画像から前記2次元平面画像への変換の負荷を計算する負荷計算手段と、
    前記負荷計算手段の計算結果に基づいて、前記全方位画像を前記2次元平面画像へと変換する全ての変換処理に対する前記アルゴリズム毎の負荷の比率を計算する比率計算手段と、
    前記比率計算手段により計算された前記アルゴリズム毎の負荷の比率に基づいて、前記複数の変換手段のそれぞれの変換処理の分担として前記全方位画像中の範囲およびアルゴリズムを決定する分担決定手段とを備え、
    前記複数の変換手段は、それぞれ前記分担決定手段により決定された前記全方位画像中の範囲を、前記分担決定手段により決定されたアルゴリズムで、前記2次元平面画像に変換する変換処理を実行する
    ことを特徴とする情報処理装置。
  2. 前記負荷計算手段は、前記アルゴリズム毎の1ピクセルの処理時間に基づいて、前記アルゴリズム毎の処理時間を、前記アルゴリズム毎の負荷として計算する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記2次元平面画像は、前記全方位画像中の範囲に応じて解像度が異なる
    ことを特徴とする請求項1に記載の情報処理装置。
  4. 前記2次元平面画像は、前記全方位画像中の被写体が存在する位置に対して近い範囲が高解像度に設定され、前記被写体が存在する位置から遠い範囲では低解像度となる
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理を実行する複数の変換ステップと、
    前記アルゴリズム毎の前記全方位画像から前記2次元平面画像への変換の負荷を計算する負荷計算ステップと、
    前記負荷計算ステップの処理の計算結果に基づいて、前記全方位画像を前記2次元平面画像へと変換する全ての変換処理に対する前記アルゴリズム毎の負荷の比率を計算する比率計算ステップと、
    前記比率計算ステップの処理で計算された前記アルゴリズム毎の負荷の比率に基づいて、前記複数の変換ステップの処理のそれぞれの変換処理の分担として前記全方位画像中の範囲およびアルゴリズムを決定する分担決定ステップとを含み、
    前記複数の変換ステップの処理は、それぞれ前記分担決定ステップの処理で決定された前記全方位画像中の範囲を、前記分担決定ステップの処理で決定されたアルゴリズムで、前記2次元平面画像に変換する変換処理を実行する
    ことを特徴とする情報処理方法。
  6. 全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理の実行を制御する複数の変換制御ステップと、
    前記アルゴリズム毎の前記全方位画像から前記2次元平面画像への変換の負荷の計算を制御する負荷計算制御ステップと、
    前記負荷計算制御ステップの処理の計算結果に基づいて、前記全方位画像を前記2次元平面画像へと変換する全ての変換処理に対する前記アルゴリズム毎の負荷の比率の計算を制御する比率計算制御ステップと、
    前記比率計算制御ステップの処理で計算された前記アルゴリズム毎の負荷の比率に基づいた、前記複数の変換ステップの処理のそれぞれの変換処理の分担として前記全方位画像中の範囲およびアルゴリズムの決定を制御する分担決定制御ステップとを含み、
    前記複数の変換制御ステップの処理は、それぞれ前記分担決定制御ステップの処理で決定された前記全方位画像中の範囲を、前記分担決定制御ステップの処理で決定されたアルゴリズムで、前記2次元平面画像に変換する変換処理を実行する
    ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  7. 全方位画像の所定の範囲を所定のアルゴリズムで2次元平面画像に変換する変換処理の実行を制御する複数の変換制御ステップと、
    前記アルゴリズム毎の前記全方位画像から前記2次元平面画像への変換の負荷の計算を制御する負荷計算制御ステップと、
    前記負荷計算制御ステップの処理の計算結果に基づいて、前記全方位画像を前記2次元平面画像へと変換する全ての変換処理に対する前記アルゴリズム毎の負荷の比率の計算を制御する比率計算制御ステップと、
    前記比率計算制御ステップの処理で計算された前記アルゴリズム毎の負荷の比率に基づいた、前記複数の変換ステップの処理のそれぞれの変換処理の分担として前記全方位画像中の範囲およびアルゴリズムの決定を制御する分担決定制御ステップとをコンピュータに実行させ、
    前記複数の変換制御ステップの処理は、それぞれ前記分担決定制御ステップの処理で決定された前記全方位画像中の範囲を、前記分担決定制御ステップの処理で決定されたアルゴリズムで、前記2次元平面画像に変換する変換処理を実行する
    ことを特徴とするプログラム。
JP2004186197A 2004-06-24 2004-06-24 情報処理装置および方法、記録媒体、並びにプログラム Withdrawn JP2006011696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004186197A JP2006011696A (ja) 2004-06-24 2004-06-24 情報処理装置および方法、記録媒体、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004186197A JP2006011696A (ja) 2004-06-24 2004-06-24 情報処理装置および方法、記録媒体、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2006011696A true JP2006011696A (ja) 2006-01-12

Family

ID=35778912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004186197A Withdrawn JP2006011696A (ja) 2004-06-24 2004-06-24 情報処理装置および方法、記録媒体、並びにプログラム

Country Status (1)

Country Link
JP (1) JP2006011696A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014013A (ja) * 2010-07-01 2012-01-19 Sony Corp 顕微鏡制御装置、画像管理サーバ、画像処理方法、プログラム及び画像管理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014013A (ja) * 2010-07-01 2012-01-19 Sony Corp 顕微鏡制御装置、画像管理サーバ、画像処理方法、プログラム及び画像管理システム

Similar Documents

Publication Publication Date Title
JP4755172B2 (ja) Pciエクスプレスを用いたグラフィックデバイスのクラスタリング
US9491367B2 (en) Image data processing method and electronic device supporting the same
JP5722761B2 (ja) 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
JP4789753B2 (ja) 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法
CN109983500A (zh) 重新投影全景视频图片的平板投影以通过应用进行渲染
US20110317763A1 (en) Information processing apparatus and information processing method
US20100040297A1 (en) Image Processing Device
US20090066706A1 (en) Image Processing System
US20100250864A1 (en) Method And Apparatus For Compressing And Decompressing Data
CN1173670A (zh) 实现覆盖路径的系统和方法
JP2018534607A (ja) プリフェッチを用いた効率的な表示処理
CN108566553B (zh) 视频墙媒体播放系统、方法及控制服务器
CN111882634B (zh) 一种图像渲染方法、装置、设备及存储介质
KR20220047284A (ko) 포비티드 렌더링을 위한 시스템들 및 방법들
US20100111499A1 (en) Picture processing apparatus, processing method for use therewith, and program
KR20180034118A (ko) 광각 영상 처리 방법 및 이를 위한 장치
TW201843651A (zh) 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法
US20190035049A1 (en) Dithered variable rate shading
CN110036628B (zh) 动态配置用于图像产生的存储器带宽
KR20190011212A (ko) 출력면을 제공하는 방법 및 데이터 처리 시스템
KR101519825B1 (ko) 데이터 처리 장치 및 그 제어 방법
CN114445600A (zh) 一种特效道具的展示方法、装置、设备及存储介质
JP4683384B2 (ja) メモリ制御方法、グラフィックプロセッサおよび情報処理装置
JP2002351438A (ja) 映像監視システム
JP2006011696A (ja) 情報処理装置および方法、記録媒体、並びにプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904