IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ リベラルロジック株式会社の特許一覧

特開2024-6862プログラム、情報処理システム及び情報処理方法
<>
  • 特開-プログラム、情報処理システム及び情報処理方法 図1
  • 特開-プログラム、情報処理システム及び情報処理方法 図2
  • 特開-プログラム、情報処理システム及び情報処理方法 図3
  • 特開-プログラム、情報処理システム及び情報処理方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024006862
(43)【公開日】2024-01-17
(54)【発明の名称】プログラム、情報処理システム及び情報処理方法
(51)【国際特許分類】
   G06T 1/20 20060101AFI20240110BHJP
【FI】
G06T1/20 Z
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022161123
(22)【出願日】2022-10-05
(62)【分割の表示】P 2022154180の分割
【原出願日】2022-09-27
(11)【特許番号】
(45)【特許公報発行日】2023-01-11
(31)【優先権主張番号】P 2022107499
(32)【優先日】2022-07-04
(33)【優先権主張国・地域又は機関】JP
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年1月3日に「MIMO DSP Platform」https://mimodsp.liberallogic.co.jp/ja/およびhttps://mimodsp.liberallogic.co.jp/en/にて発表 〔刊行物等〕 令和4年1月31日に株式会社NTTドコモにオンライン打合せ、令和4年2月10日にオンライン説明会、および令和4年3月25日に販売により発表 〔刊行物等〕 令和4年4月1日に株式会社クレッセントのウェブサイトhttps://crescentinc.co.jp/product/mimo/p_top/にて発表 〔刊行物等〕 令和4年5月13日にリベラルロジック株式会社内で開催した株式会社計測技術研究所向けに行われた実機デモ説明会にて発表
(71)【出願人】
【識別番号】520486269
【氏名又は名称】リベラルロジック株式会社
(74)【代理人】
【識別番号】110002789
【氏名又は名称】弁理士法人IPX
(72)【発明者】
【氏名】中村 晋一郎
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CH04
5B057CH08
(57)【要約】      (修正有)
【課題】ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現可能なプログラム、情報処理システム及び情報処理方法を提供する。
【解決手段】情報処理システム1において、情報処理装置のプログラムは、少なくとも1つのコンピュータに、次の各ステップを実行させる。読出ステップでは、ユーザに実装された信号処理のアルゴリズムを読み出す。第1の受付ステップでは、コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付ける。並列処理ステップでは、信号のチャネル数に応じた並列スレッドと、アルゴリズムの独立した専用スレッドとを立て、信号処理を実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
プログラムであって、
少なくとも1つのコンピュータに、次の各ステップを実行させ、
読出ステップでは、ユーザに実装された信号処理のアルゴリズムを読み出し、
第1の受付ステップでは、前記コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付け、
並列処理ステップでは、前記信号のチャネル数に応じた並列スレッドと、前記アルゴリズムの独立した専用スレッドとを立て、前記信号処理を実行する、もの。
【請求項2】
プログラムであって、
少なくとも1つのコンピュータに、次の各ステップを実行させ、
読出ステップでは、ユーザに実装された信号処理のアルゴリズムを読み出し、
第1の受付ステップでは、前記コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付け、
並列処理ステップでは、前記アルゴリズムに前記信号のスレッド処理に関する命令が含まれない場合に、前記信号のチャネル数に応じた並列スレッドを立て、前記アルゴリズムを実行する、もの。
【請求項3】
請求項1に記載のプログラムにおいて、
前記読出ステップでは、前記信号のチャネル数を含む所定ファイルをさらに読み出し、
前記並列処理ステップでは、前記所定ファイルに基づいて、前記並列スレッドを立て、前記アルゴリズムを実行する、もの。
【請求項4】
請求項3に記載のプログラムにおいて、
さらに、第2の受付ステップでは、前記所定ファイルに含まれる前記チャネル数に対するユーザの変更入力を受け付け、
前記並列処理ステップでは、変更後の前記所定ファイルに基づいて、前記並列スレッドを立て、前記アルゴリズムを実行する、もの。
【請求項5】
請求項1に記載のプログラムにおいて、
前記並列処理ステップでは、前記アルゴリズムと前記信号とのうちの少なくとも一方と、予め設定された参照情報とに基づいて、前記アルゴリズムをコンパイル無しに実行する、もの。
【請求項6】
請求項1に記載のプログラムにおいて、
さらに、最適化ステップでは、前記並列処理ステップにおいて処理された前記信号それぞれのデータフローを最適化する、もの。
【請求項7】
請求項6に記載のプログラムにおいて、
さらに、出力ステップでは、最適化された前記データフローに基づいて、前記アルゴリズムを適用した出力信号を出力する、もの。
【請求項8】
請求項1に記載のプログラムにおいて、
前記信号は、複数のデータ列であり、
前記並列処理ステップでは、前記データ列をFIFO(First-IN First-Out)で処理する、もの。
【請求項9】
請求項1に記載のプログラムにおいて、
前記信号は、画像又は音声に関する信号である、もの。
【請求項10】
請求項1に記載のプログラムにおいて、
前記信号は、メタデータに関する信号である、もの。
【請求項11】
請求項1に記載のプログラムにおいて、
前記信号処理に関するソフトウェア開発キットである、もの。
【請求項12】
情報処理システムであって、
請求項1~11の何れか1つに記載のプログラムを実行可能なプロセッサを備える、もの。
【請求項13】
情報処理方法であって、
請求項1~11の何れか1つに記載のプログラムの各ステップを備える、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
特許文献1には、信号処理を行う装置の一例として、画像処理を並列処理で行う画像処理装置等が開示されている。
【0003】
この画像処理装置では、画像処理部は、分割画像の画素と、画素格納部に格納されたのりしろ画素のうち、画素格納部に格納されていない分割画像の画素を参照しない画素と、に対するフィルタ処理を行う。また、画像処理部と並行してフィルタ処理を行う画像処理部は、分割画像の画素のうち、分割画像の画素を参照しない画素に対するフィルタ処理を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015-138417号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されるような技術のように、信号処理のアルゴリズムを研究開発するにあたって、ユーザは、プロダクトごとに、多チャネルの並列処理を行うソースコードを書く必要があり、手間がかかっていた。
【0006】
本発明では上記事情を鑑み、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現可能なプログラム等を提供することとした。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、プログラムが提供される。このプログラムは、少なくとも1つのコンピュータに、次の各ステップを実行させる。読出ステップでは、ユーザに実装された信号処理のアルゴリズムを読み出す。第1の受付ステップでは、コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付ける。並列処理ステップでは、信号のチャネル数に応じた並列スレッドと、アルゴリズムの独立した専用スレッドとを立て、信号処理を実行する。
【0008】
このような態様によれば、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現することができる。
【図面の簡単な説明】
【0009】
図1】本実施形態に係る情報処理システム1を表す構成図である。
図2】情報処理装置2のハードウェア構成を示すブロック図である。
図3】本実施形態に係る情報処理装置2における制御部23等によって実現される機能を示すブロック図である。
図4】本実施形態に係る情報処理システム1による情報処理方法の一例を示すアクティビティ図である。
【発明を実施するための形態】
【0010】
以下、図面を用いて本発明の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。
【0011】
ところで、本実施形態に登場するソフトウェアを実現するためのプログラムは、コンピュータが読み取り可能な非一時的な記録媒体(Non-Transitory Computer-Readable Medium)として提供されてもよいし、外部のサーバからダウンロード可能に提供されてもよいし、外部のコンピュータで当該プログラムを起動させてクライアント端末でその機能を実現(いわゆるクラウドコンピューティング)するように提供されてもよい。
【0012】
また、本実施形態において「部」とは、例えば、広義の回路によって実施されるハードウェア資源と、これらのハードウェア資源によって具体的に実現されうるソフトウェアの情報処理とを合わせたものも含みうる。また、本実施形態においては様々な情報を取り扱うが、これら情報は、例えば電圧・電流を表す信号値の物理的な値、0又は1で構成される2進数のビット集合体としての信号値の高低、又は量子的な重ね合わせ(いわゆる量子ビット)によって表され、広義の回路上で通信・演算が実行されうる。
【0013】
また、広義の回路とは、回路(Circuit)、回路類(Circuitry)、プロセッサ(Processor)、及びメモリ(Memory)等を少なくとも適当に組み合わせることによって実現される回路である。すなわち、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等を含むものである。
【0014】
[実施形態]
1.ハードウェア構成
本節では、本実施形態のハードウェア構成について説明する。
【0015】
1.1 情報処理システム1
図1は、本実施形態に係る情報処理システム1を表す構成図である。一例において、情報処理システム1は、情報処理装置2と、複数の撮像装置3(情報入力装置の一例)と、表示装置4(情報出力装置の一例)とを備える。複数の撮像装置3は、情報処理装置2に汎用又は専用の通信規格を介して接続されている。表示装置4は、情報処理装置2に汎用又は専用の通信規格を介して接続されている。ここで、情報処理システム1に例示されるシステムとは、1つ又はそれ以上の装置又は構成要素からなるものである。したがって、情報処理装置2単体であっても情報処理システム1に例示されるシステムに含まれる。以下、情報処理システム1に含まれる各構成要素についてさらに説明する。
【0016】
1.3 情報処理装置2
図2は、情報処理装置2のハードウェア構成を示すブロック図である。情報処理装置2は、通信部21と、記憶部22と、制御部23と、入力部25とを有し、これらの構成要素が情報処理装置2の内部において通信バス20を介して電気的に接続されている。各構成要素についてさらに説明する。
【0017】
通信部21は、USB、IEEE1394、Thunderbolt(登録商標)、有線LANネットワーク通信等といった有線型の通信手段が好ましいものの、無線LANネットワーク通信、3G/LTE/5G等のモバイル通信、Bluetooth(登録商標)通信等を必要に応じて含めてもよい。すなわち、これら複数の通信手段の集合として実施することがより好ましい。すなわち、情報処理装置2は、通信部21及び通信ネットワークを介して、外部から種々の情報を通信してもよい。特に好ましくは、通信部21は、汎用又は専用の通信規格を介して複数の撮像装置3及び表示装置4とそれぞれ接続されている。
【0018】
記憶部22は、前述の記載により定義される様々な情報を記憶する。これは、例えば、制御部23によって実行される情報処理装置2に係る種々のプログラム等を記憶するソリッドステートドライブ(Solid State Drive:SSD)等のストレージデバイスとして、あるいは、プログラムの演算に係る一時的に必要な情報(引数、配列等)を記憶するランダムアクセスメモリ(Random Access Memory:RAM)等のメモリとして実施されうる。記憶部22は、制御部23によって実行される情報処理装置2に係る種々のプログラムや変数等を記憶している。
【0019】
制御部23は、情報処理装置2に関連する全体動作の処理・制御を行う。制御部23は、例えば不図示の中央処理装置(Central Processing Unit:CPU)である。制御部23は、記憶部22に記憶された所定のプログラムを読み出すことによって、情報処理装置2に係る種々の機能を実現する。すなわち、記憶部22に記憶されているソフトウェアによる情報処理が、ハードウェアの一例である制御部23によって具体的に実現されることで、制御部23に含まれる各機能部として実行されうる。これらについては、次節においてさらに詳述する。なお、制御部23は単一であることに限定されず、機能ごとに複数の制御部23を有するように実施してもよい。またそれらの組合せであってもよい。すなわち、制御部23は、後述の各ステップを実行させるプログラムを実行可能なプロセッサの一例である。
【0020】
入力部25は、情報処理装置2の筐体に含まれるものであってもよいし、外付けされるものであってもよい。例えば、入力部25は、後述の表示装置4と一体となってタッチパネルとして実施されてもよい。タッチパネルであれば、ユーザは、タップ操作、スワイプ操作等を入力することができる。もちろん、タッチパネルに代えて、スイッチボタン、マウス、QWERTYキーボード等を採用してもよい。すなわち、入力部25がユーザによってなされた操作入力を受け付ける。当該入力が命令信号として、通信バス20を介して制御部23に転送され、制御部23が必要に応じて所定の制御や演算を実行しうる。
【0021】
なお、情報処理装置2は、汎用OSをインストールされたコンピュータでもよいし、信号処理に係る専用回路を搭載した専用装置であってもよい。
【0022】
1.3 撮像装置3
撮像装置3は、外界の情報を画像として取得可能に構成される、いわゆるビジョンセンサ(カメラ)である。撮像装置3の分解能は特に限定されず、空間分解能(解像度)が高い撮像装置3が採用されてもよいし、時間分解能(フレームレート)が高い撮像装置3が採用されることが好ましい。一例では、n個の撮像装置3として、撮像装置3-1,3-2,3-3・・・3-nが、情報処理装置2に接続されている。
【0023】
撮像装置3の解像度は、フルHD以下でもよいし、フルHDでもよいし、WQHDでもよいし、2Kでもよいし、4Kでもよいし、8Kでもよいし、それ以上でもよい。
【0024】
撮像装置3のフレームレートは、具体的には例えば、1,2,45,10,15,20,25,30,60,100,125,150,175,200,225,250,275,300,325,350,375,400,425,450,475,500,525,550,575,600,625,650,675,700,725,750,775,800,825,850,875,900,925,950,975,1000,1025,1050,1075,1100,1125,1150,1175,1200,1225,1250,1275,1300,1325,1350,1375,1400,1425,1450,1475,1500,1525,1550,1575,1600,1625,1650,1675,1700,1725,1750,1775,1800,1825,1850,1875,1900,1925,1950,1975,2000fpsであり、ここで例示した数値の何れか2つの間の範囲内であってもよい。あるいは、1フレームに1秒以上を有する処理レートでもよい。
【0025】
1.4 表示装置4
表示装置4は、情報処理装置2より出力された時系列画像(映像)を表示可能に構成される。表示装置4は、例えば、CRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ及びプラズマディスプレイ等である。また、表示装置4は、不図示の音声出力部を備えていてもよい。音声出力部は、情報処理装置2より出力された映像の音声を出力可能に構成される。なお、情報処理システム1が複数の表示装置4を有するように実施してもよい。
【0026】
2.機能構成
本節では、本実施形態の機能構成について説明する。前述の通り、記憶部22に記憶されているソフトウェアによる情報処理がハードウェアの一例である制御部23によって具体的に実現されることで、制御部23に含まれる各機能部が実行されうる。
【0027】
図3は、本実施形態に係る情報処理装置2における制御部23等によって実現される機能を示すブロック図である。具体的には、情報処理装置2は、各機能部として、読出部231と、受付部232と、並列処理部233と、最適化部234と、出力部235とを備える。
【0028】
読出部231は、記憶部22に記憶された種々の情報を、記憶部22のキャッシュメモリに書き出すことで、読み出すように構成される。
【0029】
受付部232は、種々の情報を外部から受け付けるように構成される。好ましくは、撮像装置3より出力される映像を受信する。
【0030】
並列処理部233は、受信した、複数チャネル、例えばnチャネルの映像に対して、並列処理可能に信号処理を行うための、制御部23のコアの割当を実行するよう構成される。
【0031】
最適化部234は、並列処理にあたってのデータフローを最適化可能に、情報処理システム1の動作を制御するように構成される。
【0032】
出力部235は、種々の情報、又はこれらを含む画面、画像等を、表示装置4で視認可能な態様で表示させる。出力部235は、視覚情報を表示装置4に表示させるためのレンダリング情報だけを生成してもよい。また、出力部235は、音声データを出力してもよいし、メタデータを出力してもよい。
【0033】
3.情報処理方法
図4は、本実施形態に係る情報処理システム1による情報処理方法の一例を示すアクティビティ図である。以下、本図における各アクティビティに沿って説明をする。ここでは、チャネル数Nの撮像装置3によって撮像された各画像を情報処理装置2において合成して、高解像度の出力画像を表示装置4に表示させる例を取り上げる。より具体的には例えば、撮像装置3は8Kの解像度を有するカメラであり、表示装置4に表示させる出力画像は、超高解像、例えば64Kの映像である。
【0034】
まず、ユーザが予め当該合成処理に関するアルゴリズムALを実装する(アクティビティA001)。好ましくは、プログラムは、信号処理に関するソフトウェア開発キットであり、ユーザは、当該ソフトウェア開発キットを用いて、アルゴリズムALを実装する。このような態様によれば、本プログラムをミドルウェアとして使用して、信号処理のソフトウェア開発をより容易に実現することができる。なお、アルゴリズムALを実装する上で、種々の画像処理又は信号処理向けのライブラリが採用されてもよい。かかるライブラリには、例えば、OpenCV、CUDA及びOpenGLが少なくとも含まれうる。また、アルゴリズムALは、対象となるデータそのものの外部からの入力と、外部への出力とについてのデータフローに関する命令を含んでいない。換言すると、アルゴリズムALは、信号のスレッド処理に関する命令を含んでいない。
【0035】
続いて、情報処理装置2における記憶部22は、実装されたアルゴリズムを記憶する(アクティビティA002)。
【0036】
続いて、情報処理装置2の入力側にチャネル数Nの撮像装置3を接続するとともに、情報処理装置2の出力側に表示装置4を接続することで、図1に示される情報処理システム1が構築される(アクティビティA003)。
【0037】
ここから、チャネル数Nの撮像装置3によって撮像された各撮像画像を情報処理装置2において合成して、高解像度の出力画像を表示装置4に表示させる処理が始まる。情報処理装置2の読出部231は、ユーザに実装された信号処理のアルゴリズムALを記憶部22から読み出す(アクティビティA004)。また、チャネル数Nの撮像装置3によって撮像された撮像画像が情報処理装置2に送信される。換言すると、情報処理装置2の受付部232は、第1の受付ステップとして、情報処理装置2に接続される、少なくとも1つの撮像装置3(情報入力装置の一例)によって出力された信号SGの一例である撮像画像を受け付ける(アクティビティA005)。なお、受付部232は、撮像画像とともに音声データを受け付けてもよい。つまり好ましくは、信号SGは、画像又は音声に関する信号である。
【0038】
続いて、情報処理装置2における並列処理部233が、アルゴリズムALの内容と、信号SGの種類及びチャネル数Nとに基づいて、アルゴリズムALを実行するための並列処理を構築する(アクティビティA006)。ところで、先に述べた通り、アルゴリズムALは、対象となるデータそのものの外部からの入力と、外部への出力とについてのデータフローに関する命令を含んでいない。このような場合においても、並列処理部233は、信号SGのチャネル数Nに応じた並列スレッドと、アルゴリズムALの独立した専用スレッドとを立て、信号処理を実行する。ここでは、受付部232が信号SGの一例である撮像画像をフレームごとに継続的に受け付け(アクティビティA007)、並列処理部233によって規定された並列スレッドを用いて、前述の画像処理が実行される(アクティビティA008)。より好ましくは、最適化部234は、並列処理部233において処理された信号SGそれぞれのデータフローを最適化する。このような態様によれば、複数チャネルの信号SGを適切に切り分けたデータフローを取り扱うことができ、リアルタイム性の高い信号処理を実現することができる。
【0039】
また、並列処理部233は、アルゴリズムALと信号SGとのうちの少なくとも一方と、予め設定された参照情報とに基づいて、アルゴリズムALをコンパイル無しに実行する。参照情報は、種々の入力信号及びその信号処理の内容と、好ましい並列処理とに関する情報であり、ルールベースの情報でもよいし、両者の関係性を予め学習させた学習済みモデルであってもよい。さらに好ましくは、参照情報は、少なくとも信号SGのチャネル数Nを含む所定ファイルFを含んでもよい。かかる場合、好ましくは、読出部231は、信号のチャネル数を含む所定ファイルをさらに読み出し、並列処理部233は、所定ファイルに基づいて、並列スレッドを立て、アルゴリズムを実行する。このような態様によれば、アルゴリズムALの再コンパイル無しに1以上のチャネルの信号処理を実現することができる。より具体的には、種々のアルゴリズムAL及び入力される信号SGに対応した参照情報を用意しておくことで、アルゴリズムAL及び信号SGがプラグインの形式で情報処理システム1に機能付与することが可能となり、アルゴリズムALそのものの再コンパイル無しに実現することができる。
【0040】
ここで好ましくは、信号SGは、複数のデータ列であり、並列処理部233は、データ列をFIFO(First-IN First-Out)で処理する。すなわち、信号SGの入出力に関しての順序が保存されるように、並列処理が実行される。このような態様によれば、処理の前段と後段とを別々のCPUコアで並列動作させることができ、これにより、システムに存在するCPUコアの数で、計算処理をスケールさせることができ、その結果リアルタイム性を高めることが可能となる。
【0041】
最後に、並列処理によりアルゴリズムALが実行された結果、信号SGの一例である撮像画像が合成された所望画像が出力される(アクティビティA009)。換言すると、情報処理装置2における出力部235は、最適化されたデータフローに基づいて、アルゴリズムALを適用した出力信号SGを出力する。表示装置4は、出力信号SGの一例である合成画像を表示する。このような態様によれば、リアルタイム性の高い信号処理を介して、所望の出力結果を得ることができる。
【0042】
以後、情報処理装置2に入力される信号SGのフレームごとにアクティビティA007~A009に示される、撮像画像の入力と、画像処理と、所望画像の出力とがフレームごとに繰り返される。また、入力に関する処理と、画像処理と、出力に関する処理とは、並列スレッドによって同時に実施されるとよい。具体的には、ある時刻でのフレームの入力と、ある時刻よりも過去である第1の過去時刻のフレームに関する画像処理と、第1の過去時刻よりも過去である第2の過去時刻のフレームが処理された処理後フレームの出力とが、並列スレッドによって同時に実行されうる。
【0043】
以上をまとめると、本実施形態に係る情報処理システム1は、プログラムを実行可能な制御部23(プロセッサ)を備える。このプログラムは、少なくとも1つのコンピュータの一例である情報処理装置2に、次の各ステップを実行させる。読出部231は、ユーザに実装された信号処理のアルゴリズムALを読み出す。受付部232は、コンピュータに接続される、少なくとも1つの情報入力装置の一例である撮像装置3によって出力された信号SGの一例である撮像画像を受け付ける。並列処理部233は、信号SGのチャネル数Nに応じた並列スレッドと、アルゴリズムALの独立した専用スレッドとを立て、信号処理を実行する。
【0044】
あるいは、このプログラムは、少なくとも1つのコンピュータの一例である情報処理装置2に、次の各ステップを実行させる。読出部231は、ユーザに実装された信号処理のアルゴリズムALを読み出す。受付部232は、コンピュータに接続される、少なくとも1つの情報入力装置の一例である撮像装置3によって出力された信号SGの一例である撮像画像を受け付ける。並列処理部233は、アルゴリズムALに信号SGのスレッド処理に関する命令が含まれない場合に、信号SGのチャネル数Nに応じた並列スレッドを立て、アルゴリズムALを実行する。
【0045】
すなわち、この情報処理方法は、上記プログラムの各ステップを備える。
【0046】
このような態様によれば、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現することができる。特に、広帯域を求められる高解像の映像や音声に対して、リアルタイム性の高い信号処理を実現することができる。
【0047】
さらに、情報処理装置2に接続する撮像装置3(入力側)及び表示装置4(出力側)に特化したアルゴリズムAL設計を特段必要とせずに、個々の要件に応じて柔軟に、入出力のデバイスである情報入力装置及び情報出力装置を選択することができる。具体的には、SDIビデオカードSDKによる入出力、NDI APIを使った入出力、入力側に関する信号発生プラグイン、ネットワークAPIを使った入出力等の種々のプラグインが実現可能となる。
【0048】
[その他]
前述の実施形態が下記のようにさらに創意工夫されてもよい。
【0049】
参照情報の一態様である所定ファイルFをユーザが変更可能に構成されてもよい。換言すると、受付部232は、第2の受付ステップとして、所定ファイルFに含まれるチャネル数Nに対するユーザの変更入力を受け付ける。並列処理部233は、変更後の所定ファイルFに基づいて、並列スレッドを立て、アルゴリズムALを実行する。このような態様によれば、ユーザの所望するチャネル数Nを、アルゴリズムALの再コンパイル無しに実現することができる。
【0050】
前述の信号処理は、一例であって、画像処理でもよいし、音声データの処理でもよい。情報処理装置2が取り扱う信号のチャネル数Nは、撮像装置3に例示される情報入力装置の個数と一致しなくてもよい。撮像装置3が予め撮像された映像又は音声を再生する再生機器であってもよい。表示装置4が表示機能を有しない音声再生装置であってもよい。
【0051】
撮像装置3等の情報入力装置から情報処理装置2に入力される信号は、メタデータに関する信号であってもよい。メタデータは、例えば、画像又は音声に関連するメタデータであってもよい。メタデータに関連し、例えば、撮像装置3は、ToF(Time-of-Flight)カメラでもよい。かかる場合、ToFカメラから出力される深度情報は、メタデータの一例である。撮像装置3は、特定の対象を認識可能なAIカメラでもよい。かかる場合、AIカメラから出力される特定の対象の位置情報や、その時刻に関する時刻情報は、メタデータの一例である。このような態様によれば、メタデータを利用した種々の信号処理を、リアルタイム性を高めて実現することができる。
【0052】
情報処理装置2が、ネットワーク回線を通じて他の外部機器と接続可能に構成されてもよい。かかる場合、ユーザが特段のアルゴリズムALの工夫をせずに、チャネル数Nに関わらずデータフローが効率化された信号処理を、SaaS型のサービスとして実現することができる。
【0053】
情報処理装置2が、音声処理に特化したサウンドカード又は画像処理に特化したグラフィックカードとして実現されてもよい。かかる場合、このような専用カードを既存のコンピュータに装着することで、本実施形態に係る情報処理システム1を実現することができる。
【0054】
さらに、次に記載の各態様で提供されてもよい。
【0055】
(1)プログラムであって、少なくとも1つのコンピュータに、次の各ステップを実行させ、読出ステップでは、ユーザに実装された信号処理のアルゴリズムを読み出し、第1の受付ステップでは、前記コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付け、並列処理ステップでは、前記信号のチャネル数に応じた並列スレッドと、前記アルゴリズムの独立した専用スレッドとを立て、前記信号処理を実行する、もの。
【0056】
このような態様によれば、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現することができる。
【0057】
(2)プログラムであって、少なくとも1つのコンピュータに、次の各ステップを実行させ、読出ステップでは、ユーザに実装された信号処理のアルゴリズムを読み出し、第1の受付ステップでは、前記コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付け、並列処理ステップでは、前記アルゴリズムに前記信号のスレッド処理に関する命令が含まれない場合に、前記信号のチャネル数に応じた並列スレッドを立て、前記アルゴリズムを実行する、もの。
【0058】
このような態様によれば、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現することができる。
【0059】
(3)上記(1)又は(2)に記載のプログラムにおいて、前記読出ステップでは、前記信号のチャネル数を含む所定ファイルをさらに読み出し、前記並列処理ステップでは、前記所定ファイルに基づいて、前記並列スレッドを立て、前記アルゴリズムを実行する、もの。
【0060】
このような態様によれば、アルゴリズムの再コンパイル無しに1以上のチャネルの信号処理を実現することができる。
【0061】
(4)上記(3)に記載のプログラムにおいて、さらに、第2の受付ステップでは、前記所定ファイルに含まれる前記チャネル数に対するユーザの変更入力を受け付け、前記並列処理ステップでは、変更後の前記所定ファイルに基づいて、前記並列スレッドを立て、前記アルゴリズムを実行する、もの。
【0062】
このような態様によれば、ユーザの所望するチャネル数を、アルゴリズムの再コンパイル無しに実現することができる。
【0063】
(5)上記(1)~(4)の何れか1つに記載のプログラムにおいて、前記並列処理ステップでは、前記アルゴリズムと前記信号とのうちの少なくとも一方と、予め設定された参照情報とに基づいて、前記アルゴリズムをコンパイル無しに実行する、もの。
【0064】
このような態様によれば、種々のアルゴリズム及び入力される信号に対応した参照情報を用意しておくことで、アルゴリズム及び信号がプラグインの形式でシステムに機能付与することが可能となり、アルゴリズムそのものの再コンパイル無しに実現することができる。
【0065】
(6)上記(1)~(5)の何れか1つに記載のプログラムにおいて、さらに、最適化ステップでは、前記並列処理ステップにおいて処理された前記信号それぞれのデータフローを最適化する、もの。
【0066】
このような態様によれば、複数チャネルの信号を適切に切り分けたデータフローを取り扱うことができ、リアルタイム性の高い信号処理を実現することができる。
【0067】
(7)上記(6)に記載のプログラムにおいて、さらに、出力ステップでは、最適化された前記データフローに基づいて、前記アルゴリズムを適用した出力信号を出力する、もの。
【0068】
このような態様によれば、リアルタイム性の高い信号処理を介して、所望の出力結果を得ることができる。
【0069】
(8)上記(1)~(7)の何れか1つに記載のプログラムにおいて、前記信号は、複数のデータ列であり、前記並列処理ステップでは、前記データ列をFIFO(First-IN First-Out)で処理する、もの。
【0070】
このような態様によれば、処理の前段と後段とを別々のCPUコアで並列動作させることができ、これにより、システムに存在するCPUコアの数で、計算処理をスケールさせることができ、その結果リアルタイム性を高めることが可能となる。
【0071】
(9)上記(1)~(8)の何れか1つに記載のプログラムにおいて、前記信号は、画像又は音声に関する信号である、もの。
【0072】
このような態様によれば、広帯域を求められる高解像の映像や音声に対して、リアルタイム性の高い信号処理を実現することができる。
【0073】
(10)上記(1)~(9)の何れか1つに記載のプログラムにおいて、前記信号は、メタデータに関する信号である、もの。
【0074】
このような態様によれば、メタデータを利用した種々の信号処理を、リアルタイム性を高めて実現することができる。
【0075】
(11)上記(1)~(10)の何れか1つに記載のプログラムにおいて、前記信号処理に関するソフトウェア開発キットである、もの。
【0076】
このような態様によれば、本プログラムをミドルウェアとして使用して、信号処理のソフトウェア開発をより容易に実現することができる。
【0077】
(12)情報処理システムであって、上記(1)~(11)の何れか1つに記載のプログラムを実行可能なプロセッサを備える、もの。
【0078】
このような態様によれば、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現することができる。
【0079】
(13)情報処理方法であって、上記(1)~(11)の何れか1つに記載のプログラムの各ステップを備える、方法。
【0080】
このような方法によれば、ユーザが特段のアルゴリズムの工夫をせずに、チャネル数に関わらずリアルタイム性の高い信号処理を実現することができる。
もちろん、この限りではない。
【0081】
最後に、本発明に係る種々の実施形態を説明したが、これらは、例として提示したものであり、発明の範囲を限定することは意図していない。当該新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。当該実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0082】
1 :情報処理システム
2 :情報処理装置
20 :通信バス
21 :通信部
22 :記憶部
23 :制御部
25 :入力部
231 :読出部
232 :受付部
233 :並列処理部
234 :最適化部
235 :出力部
3 :撮像装置
4 :表示装置
AL :アルゴリズム
F :所定ファイル
N :チャネル数
SG :信号
図1
図2
図3
図4
【手続補正書】
【提出日】2022-12-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ソフトウェア開発キットプログラムであって、
少なくとも1つのコンピュータに、次の各ステップを実行させ、
読出ステップでは、前記ソフトウェア開発キットプログラムを介してユーザに実装された信号処理のアルゴリズムを読み出し、
第1の受付ステップでは、前記コンピュータに接続される、少なくとも1つの情報入力装置から出力された信号を受け付け、
並列処理ステップでは、前記アルゴリズムに前記信号のスレッド処理に関する命令が含まれていない場合においても、前記信号のチャネル数に応じた並列スレッドと、前記アルゴリズムの独立した専用スレッドとを立て、前記信号処理を実行する、もの。
【請求項2】
請求項1に記載のソフトウェア開発キットプログラムにおいて、
前記読出ステップでは、前記信号のチャネル数を含む所定ファイルをさらに読み出し、
前記並列処理ステップでは、前記所定ファイルに基づいて、前記並列スレッドを立て、前記アルゴリズムを実行する、もの。
【請求項3】
請求項に記載のソフトウェア開発キットプログラムにおいて、
さらに、第2の受付ステップでは、前記所定ファイルに含まれる前記チャネル数に対するユーザの変更入力を受け付け、
前記並列処理ステップでは、変更後の前記所定ファイルに基づいて、前記並列スレッドを立て、前記アルゴリズムを実行する、もの。
【請求項4】
請求項1に記載のソフトウェア開発キットプログラムにおいて、
前記並列処理ステップでは、前記アルゴリズムと前記信号とのうちの少なくとも一方と、予め設定された参照情報とに基づいて、前記アルゴリズムをコンパイル無しに実行する、もの。
【請求項5】
請求項1に記載のソフトウェア開発キットプログラムにおいて、
さらに、最適化ステップでは、前記並列処理ステップにおいて処理された前記信号それぞれのデータフローを最適化する、もの。
【請求項6】
請求項に記載のソフトウェア開発キットプログラムにおいて、
さらに、出力ステップでは、最適化された前記データフローに基づいて、前記アルゴリズムを適用した出力信号を出力する、もの。
【請求項7】
請求項1に記載のソフトウェア開発キットプログラムにおいて、
前記信号は、複数のデータ列であり、
前記並列処理ステップでは、前記データ列をFIFO(First-IN First-Out)で処理する、もの。
【請求項8】
請求項1に記載のソフトウェア開発キットプログラムにおいて、
前記信号は、画像又は音声に関する信号である、もの。
【請求項9】
請求項1に記載のソフトウェア開発キットプログラムにおいて、
前記信号は、メタデータに関する信号である、もの。
【請求項10】
情報処理システムであって、
請求項1~の何れか1つに記載のソフトウェア開発キットプログラムを実行可能なプロセッサを備える、もの。
【請求項11】
情報処理方法であって、
請求項1~の何れか1つに記載のソフトウェア開発キットプログラムの各ステップを備える、方法。