(57)【要約】【課題】入力信号や制御データに起因した異常が発生した場合でも信号処理が継続できる信号処理システムを提供すること。【解決手段】信号処理装置１０は、入力された音響信号に対して同一の信号処理を実行する稼働系（ＦＰＧＡ１３）と待機系（ＣＰＵ１２上で実行される信号処理モジュール１２Ａ）との２つの信号処理手段が動作する。待機系は、稼働系に比べて高い処理能力で信号処理を実行する。選択部２２の判定部４１は、稼働系からエラーを示す信号Ｓ３１を検出した場合に、選択手段４２を制御して待機系からの出力信号Ｓ３４に代えて待機系からの出力信号Ｓ３５を選択して稼働系と待機系を切り替える。【選択図】図２
2015035203.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に対して信号処理を実施する稼働系の第１信号処理手段と、
前記入力信号に対する前記信号処理を、前記第１信号処理手段に比べて高い処理能力で実施する待機系の第２信号処理手段と、
前記第１信号処理手段の動作状態を判定する判定手段と、
前記第１信号処理手段又は前記第２信号処理手段のいずれかが前記信号処理を実施した信号を出力信号として選択する選択手段であって、前記判定手段により前記第１信号処理手段の動作状態に異常が検出された場合に、前記第２信号処理手段が前記信号処理を実施した信号を前記出力信号に選択する前記選択手段と、
を備えることを特徴とする信号処理システム。
【請求項２】
前記第２信号処理手段は、前記第１信号処理手段に比べて高い処理精度により前記信号処理を実施することを特徴とする請求項１に記載の信号処理システム。
【請求項３】
前記第１信号処理手段は、固定小数点形式で前記信号処理を実施し、
前記第２信号処理手段は、浮動小数点形式で前記信号処理を実施することを特徴とする請求項１又は請求項２に記載の信号処理システム。
【請求項４】
前記第１信号処理手段は、コンフィグレーションデータに基づいて構成されるプログラマブル論理デバイスであり、
前記第２信号処理手段は、前記信号処理を他の処理と並列に実施する処理回路であることを特徴とする請求項１乃至請求項３のいずれかに記載の信号処理システム。
【請求項５】
前記判定手段は、前記第１信号処理手段及び前記第２信号処理手段の両方の動作状態に異常が検出された場合に、前記入力信号を前記出力信号として出力させること特徴とする請求項１乃至請求項４のいずれかに記載の信号処理システム。
【請求項６】
入力信号に対して信号処理を実施する信号処理システムの制御を実行するプログラムであって、
前記信号処理システムに、
前記入力信号に対し稼働系の第１信号処理を実施するステップと、
前記第１信号処理に対応し、前記入力信号に対し前記第１信号処理に比べて処理能力が高い待機系の第２信号処理を実施するステップと、
前記第１信号処理の動作状態に異常があるか否かを判定するステップと、
前記第１信号処理の動作状態に異常が検出された場合に、前記入力信号に対し前記信号処理を実施した出力信号を、前記第１信号処理を実施した信号から前記第２信号処理を実施した信号へ変更するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願に開示の技術は、複数の装置の間で信号を伝送する機能を有する信号処理システム及びプログラムに関するものである。
【背景技術】
【０００２】
従来、音響信号に対する処理内容が同一の複数のミキシングエンジンを並列に動作させておき、通常時はそのうちの１つのミキシングエンジンによるミキシングの結果を出力として使用する一方、使用中のミキシングエンジンに異常が生じた場合に他のミキシングエンジンによるミキシングの結果を出力として使用する信号処理システムがある（例えば、特許文献１，２など）。この信号処理システムでは、動作中のミキシングエンジンの１つが故障したとしても、すぐに他のミキシングエンジンに切り替えることによって、所謂フォールトトレラントなシステムが実現できる。
【０００３】
また、フォールトトレラントなシステムの構築は、音響信号を処理するシステムに限らず、映像信号などの他の信号を伝送する信号処理システムで必要となる。これは、例えば、コンサートのライブ中継やテレビ放送等で使用される信号処理システムでは、使用中の機器の動作に不具合が生じた場合に、視聴者の視覚や聴覚では感じられない程度の時間でバックアップの装置に動作を引き継がせることが要求されるためである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１０１４４２号公報
【特許文献２】特開２００７−３０６４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献に開示される信号処理システムでは、ミキシングエンジンのハードウェアの故障等を想定することが一般的である。しかしながら、上記したミキシングエンジンに生じる異常は、ハードウェアの故障に起因した場合だけではない。ミキシングエンジンに入力される制御データや音響信号が、ミキシングエンジンにおける入力値の許容範囲を越えて正常な信号処理ができずに障害が発生する場合がある。このため、並列に動作する複数のミキシングエンジンは、例えば、過大な入力信号やゲインを過大に設定指示する制御データなどが入力された場合に、稼働系のミキシングエンジンが処理能力を超えてハングアップするなどの障害が生じると、待機系のミキシングエンジンにおいても同様の障害が発生することとなる。つまり、上記したフォールトトレラントな信号処理システムでは、たとえ稼働中のミキシングエンジンの異常に応じて使用するエンジンを待機系のエンジンに切り替えたとしても複数のエンジンで同様に障害が発生しうるという問題があった。結果として、このような従来の信号処理システムでは、障害により全てのミキシングエンジンがハングアップするなどし、その間、数秒から数十秒に亘って信号伝送が途切れてしまうことが想定される。
【０００６】
本願に開示される技術は、上記の課題に鑑み提案されたものである。入力信号や制御データに起因した異常が発生した場合でも信号処理が継続できる信号処理システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に開示される技術に係る信号処理システムは、入力信号に対して信号処理を実施する稼働系の第１信号処理手段と、入力信号に対する信号処理を、第１信号処理手段に比べて高い処理能力で実施する待機系の第２信号処理手段と、第１信号処理手段の動作状態を判定する判定手段と、第１信号処理手段又は第２信号処理手段のいずれかが信号処理を実施した信号を出力信号として選択する選択手段であって、判定手段により第１信号処理手段の動作状態に異常が検出された場合に、第２信号処理手段が信号処理を実施した信号を出力信号に選択する選択手段と、を備える。
【０００８】
また、本願に開示される技術に係る信号処理システムでは、第２信号処理手段は、第１信号処理手段に比べて高い処理精度により信号処理を実施する。
【０００９】
また、本願に開示される技術に係る信号処理システムでは、第１信号処理手段は、固定小数点形式で信号処理を実施し、第２信号処理手段は、浮動小数点形式で信号処理を実施する。
【００１０】
また、本願に開示される技術に係る信号処理システムでは、第１信号処理手段は、コンフィグレーションデータに基づいて構成されるプログラマブル論理デバイスであり、第２信号処理手段は、信号処理を他の処理と並列に実施する処理回路である。
【００１１】
また、本願に開示される技術に係る信号処理システムでは、判定手段は、第１信号処理手段及び第２信号処理手段の両方の動作状態に異常が検出された場合に、入力信号を出力信号として出力させる。
【００１２】
また、本願に開示される技術に係るプログラムは、入力信号に対して信号処理を実施する信号処理システムの制御を実行するプログラムであって、信号処理システムに、入力信号に対し稼働系の第１信号処理を実施するステップと、第１信号処理に対応し、入力信号に対し第１信号処理に比べて処理能力が高い待機系の第２信号処理を実施するステップと、第１信号処理の動作状態に異常があるか否かを判定するステップと、第１信号処理の動作状態に異常が検出された場合に、入力信号に対し信号処理を実施した出力信号を、第１信号処理を実施した信号から第２信号処理を実施した信号へ変更するステップと、を実行させる。
【発明の効果】
【００１３】
本願に開示される技術によれば、入力信号や制御データに起因した異常が発生した場合でも信号処理が継続できる信号処理システム及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本願の信号処理装置の概略構成図である。
【図２】図１に示す信号処理装置における信号処理の流れの一部を説明するためのブロック図である。
【図３】選択部の処理内容を示すフローチャートである。
【図４】別の信号処理装置の構成における信号処理の流れの一部を説明するためのブロック図である。
【発明を実施するための形態】
【００１５】
図１は、本実施形態の信号処理装置１０の構成を示すブロック図である。
図１に示す信号処理装置１０は、入出力Ｉ／Ｆ１１、ＣＰＵ１２、ＦＰＧＡ１３、メモリ１５及び選択部２２を有し、これらがバス２５を介して互いに接続されている。信号処理装置１０は、入出力Ｉ／Ｆ１１から入力される信号、例えばマイクから入力される音響信号に対して各種の信号処理を施す装置である。信号処理装置１０は、信号処理を施した音響信号を入出力Ｉ／Ｆ１１から他の装置（スピーカー等）へ出力する。
【００１６】
入出力Ｉ／Ｆ１１は、外部機器（マイクロフォン、スピーカーやＭＩＤＩ機器など）とのアナログ又はデジタルの音響信号の入出力を制御するインターフェースである。ＣＰＵ１２（Central Processing Unit）は制御プログラムを実行し、信号処理装置１０の全体の動作を統括的に制御する。メモリ１５は、ＣＰＵ１２が実行する制御プログラムや一時データ等を保持する記憶領域を含み、フラッシュメモリやＲＡＭ（Random Access Memory）等の各種記憶デバイスを適宜組み合わせて構成する。ＦＰＧＡ１３（Field-Programmable Gate Array）は、入出力Ｉ／Ｆ１１から入力される音響信号に対してレベル調整、エフェクト付与やミキシング等の信号処理を施す演算回路を有する。ＦＰＧＡ１３は、メモリ１５に保存されている信号処理内容を規定したデータに基づいた前記演算回路を構成する。ＦＰＧＡ１３は、ワードクロック発生器２３から入力されるワードクロックに応じて入力される音響信号に対して信号処理を実行する。ワードクロック発生器２３は、例えばサンプリング周期毎に立ち上がるワードクロックを生成する。また、ＣＰＵ１２は、ＦＰＧＡ１３で実行される音響信号に対する信号処理に相当する信号処理を実行する信号処理モジュール１２Ａを、メモリ１５に記憶しているプログラムを読出し乃至実行して動作させる。信号処理装置１０は、さらに表示部や操作子等を備えてもよい。表示部は、音響信号処理に係る各種設定画面や設定内容を表示する液晶等である。操作子は、オペレータによる操作指示を受け付けるチャンネルストリップなどの各種の物理的な操作機器あるいは表示部に表示されるＧＵＩで実現した仮想的な操作機器である。
【００１７】
ＦＰＧＡ１３及び信号処理モジュール１２Ａは、メモリ１５に記憶した制御データに応じた信号処理（例えば、音量の調整、フィルタの制御等）を行う。例えば、メモリ１５に制御データを時系列的に記憶しておき、ＦＰＧＡ１３及び信号処理モジュール１２Ａが、ワードクロックに応じて順次制御データの読出し並びに信号処理への適用を行う構成であってよい。あるいは不図示の通信インターフェースを介して他の装置等から制御データを受け取る構成や、上記操作子への操作指示に応じて制御データを発生する構成であってもよい。何れの場合においてもＦＰＧＡ１３及び信号処理モジュール１２Ａに対しては同じ制御データが供給されるものとする。また、入出力Ｉ／Ｆが入力した音響信号は、入力信号ＩＳ（図２参照）としてＦＰＧＡ１３及び信号処理モジュール１２Ａに転送される。以上の通り、ＦＰＧＡ１３及び信号処理モジュール１２Ａは、入出力Ｉ／Ｆが入力した音響信号に対する制御データに応じた信号処理（ミキシングなど）をそれぞれ独立して実行する。ここでＦＰＧＡ１３及び信号処理モジュール１２Ａそれぞれに供給・転送される制御データ及び入力信号ＩＳは同じ内容である。信号処理装置１０は、ＦＰＧＡ１３が通常時に使用される稼働系とされ、信号処理モジュール１２Ａが待機系とされて二重化が図られている。
【００１８】
信号処理モジュール１２Ａは、ＦＰＧＡ１３の演算回路に比べて高い処理精度で信号処理を実行する。具体的には、ＦＰＧＡ１３が固定小数点形式で信号処理を実行するのに対し、信号処理モジュール１２Ａは浮動小数点形式で信号処理を実行する。ここで、ＦＰＧＡ１３は、例えば入力される音響信号の信号レベルが量子化ビット数の最大値を超えてオーバーフローすると、その量子化ビット数の最大値で信号波形が切り取られて（クリップされて）しまう。その結果、信号処理装置１０は、信号伝送の一部が途切れてしまう場合がある。これに対し、待機系の信号処理モジュール１２Ａは浮動小数点形式で信号処理を実行することにより、ＦＰＧＡ１３に比べて演算処理可能な有効な桁数を大きくすることができ、ＦＰＧＡ１３で異常（クリップなど）が生じるような入力データであっても正常な演算処理が継続できる。なお、ここでいう異常を生じさせる入力データには、音響信号に限らず、前記通信インターフェースを介して受け取った制御データやオペレータの前記操作子に対する操作量に基づく制御データが過大な場合も含む。また、本実施形態では、「処理能力」とは演算処理の処理精度のことをいうが、これに限らない。
【００１９】
選択部２２は、ＦＰＧＡ１３と信号処理モジュール１２Ａの各々の信号処理の結果や動作状況等に基づいて、ＦＰＧＡ１３が信号処理を行った音響信号と信号処理モジュール１２Ａが信号処理を行った音響信号とのうちいずれか一方を選択する。例えば、選択部２２は、ＦＰＧＡ１３と信号処理モジュール１２Ａの各々から処理結果に異常があった旨のエラー信号などを入力するよう構成される。なお、選択部２２は、ＣＰＵ１２が実行するプログラムにより実現される処理モジュールでもよい。
【００２０】
次に、選択部２２の処理動作の詳細について図２及び図３を用いて説明する。
図２は、図１に示す信号処理装置１０における信号処理の流れの一部を説明するためのブロック図である。図３は選択部２２の処理内容を示すフローチャートである。図２に示すように、選択部２２は、判定部４１と、選択手段４２とを有する。判定部４１は、例えばワードクロックに基づいて周期的に信号処理モジュール１２Ａ及びＦＰＧＡ１３の動作に異常があるか否かを判定する。判定部４１は、信号処理モジュール１２Ａ及びＦＰＧＡ１３から、各々の動作状況に関する情報（図中の信号Ｓ３１，Ｓ３２）を受信し、信号Ｓ３１，Ｓ３２に基づいて信号処理モジュール１２Ａ及びＦＰＧＡ１３の動作に異常があるか否かを判定する。例えば、ＦＰＧＡ１３は、過大入力等により演算結果がオーバーフロー（桁あふれ）した場合に、エラーを示す信号Ｓ３１を判定部４１に出力する。エラーを示す信号Ｓ３１を受信した判定部４１はＦＰＧA１３に異常が生じたものと判定する。なお、判定部４１は、信号処理モジュール１２Ａ及びＦＰＧＡ１３から入力される信号処理の結果（波形データ）を解析して異常を判定してもよい。あるいは、ＦＰＧＡ１３等が入力データ（音響信号及び制御データ）による何らかの不具合により応答できない場合（処理遅延も含む）も想定されるため、判定部４１は、所定の期間内にＦＰＧＡ１３等からの応答が無かった場合を異常として判定してもよい。判定部４１は、信号処理モジュール１２Ａ及びＦＰＧＡ１３の各々の異常に応じて選択手段４２を制御し、いずれか一方が出力した出力信号Ｓ３４，Ｓ３５（処理結果の音響信号）を選択部２２の出力信号ＯＳとして選択する。選択手段４２は、セレクタ回路などのハードウェアにより実現してもよい。以下の説明では、信号処理モジュール１２Ａ及びＦＰＧＡ１３に生じた異常の一例として、クリップが生じた場合について説明する。
【００２１】
判定部４１は、ワードクロックに基づく予め設定された周期毎に図３のフローチャートの処理を実行する。まず、図３のステップ５１において、判定部４１は、稼働系（ＦＰＧＡ１３）の出力信号Ｓ３４の状態を検出する処理を実行する。判定部４１は、稼働系（ＦＰＧＡ１３）からオーバーフローを示す信号Ｓ３１を入力した場合、あるいは処理結果の音響信号を解析した結果に基づいて稼働系におけるクリップ（異常）の発生を検出する。判定部４１は、ステップ５１においてクリップの発生を検出したか否かを判定し（ステップ５２）、ステップ５１においてクリップの発生を検出しない場合（ステップ５２：ＹＥＳ）には、稼働系（ＦＰＧＡ１３）の出力信号Ｓ３４を選択する（ステップ５３）。
【００２２】
また、ステップ５１においてクリップの発生を検出した場合（ステップ５２：ＮＯ）には、判定部４１は、ステップ５１と同様に待機系（信号処理モジュール１２Ａ）の出力信号Ｓ３５の状態を信号Ｓ３２、あるいは処理結果の音響信号を解析した結果に基づいて検出する処理を実行する（ステップ５５）。判定部４１は、ステップ５５においてクリップの発生を検出したか否かを判定し（ステップ５６）、ステップ５５においてクリップの発生を検出しない場合（ステップ５６：ＹＥＳ）には、待機系（信号処理モジュール１２Ａ）の出力信号Ｓ３５を選択する（ステップ５７）。ここで、ステップ５３又はステップ５７で選択した出力信号Ｓ３４，Ｓ３５の出力元が、前回まで選択していた出力信号の出力元と異なる場合、選択した出力信号は稼働系又は待機系の出力信号から他方の出力信号に切り替わることとなる。例えば、直前まで稼働系の出力信号Ｓ３４を選択しており、稼働系においてクリップが発生し、かつ待機系においてクリップが発生していない場合、ステップ５７にて選択する出力信号が稼働系から待機系のものに切り替わることになる。待機系（信号処理モジュール１２Ａ）は、浮動小数点形式で信号処理を実行し、稼働系（ＦＰＧＡ１３）に比べて有効な桁数を大きくした演算処理を実行する。これにより、待機系は、稼働系で演算結果にオーバーフローが生じた結果、音響信号にクリップが発生した場合であっても、正常な演算処理及び音響信号の出力が継続できる。その結果、信号処理装置１０は、稼働系のＦＰＧＡ１３でクリップが生じても、待機系の信号処理モジュール１２Ａにおいて引き続き正常な信号処理が継続できるため、システム全体として信号伝送を途切れさせることなく継続できる。
【００２３】
なお、判定部４１は、稼働系の出力信号Ｓ３４と待機系の出力信号Ｓ３５との切り替えを徐々に行う（所謂クロスフェードする）ようにしてもよい。また、判定部４１は、図３を用いて説明したフローチャートに従えば、稼働系にクリップの発生が検出されなければ、直ちに待機系（出力信号Ｓ３５）から稼働系（出力信号Ｓ３４）に復旧するが、例えば、判定部４１は、待機系の出力信号Ｓ３５に切り替えた後に稼働系における異常の発生が所定の期間を経過しても検出されない場合に、待機系（出力信号Ｓ３５）から稼働系（出力信号Ｓ３４）に切り替えるよう制御を実行してもよい。
【００２４】
また、ステップ５６においてクリップの発生を検出した場合（ステップ５６：ＮＯ）、即ち、稼働系及び待機系の両方でクリップが生じた場合には、判定部４１は、選択手段４２を制御して稼働系及び待機系において信号処理を行う前の音響信号（図２の入力信号ＩＳ）を選択する（ステップ５８）。この場合、信号処理装置１０は入出力Ｉ／Ｆ１１から入力した音響信号（入力信号ＩＳ）に対する信号処理を実施せずにそのまま出力することとなる（図２の信号Ｓ４４参照）。このような制御を行うことは、信号伝送が途切れないように音響信号の出力を最優先とする場合に有効である。なお、判定部４１は、少なくとも待機系において所定期間異常の発生が検出されなくなるまでこの制御を継続してもよい。また、ＣＰＵ１２は、処理負荷の軽減を図るために、判定部４１が稼働系（ＦＰＧＡ１３）における異常の発生を検出しなくなるまでの間、待機系（信号処理モジュール１２Ａ）の実行を停止してもよい。
【００２５】
また、判定部４１は、稼働系（ＦＰＧＡ１３）において異常の発生を検出した場合（ステップ５２：ＮＯ）に、待機系の状態を判定することなく、待機系の出力信号Ｓ３５を選択するようにしてもよい。この場合、選択部２２（判定部４１）における処理は、図３に示すフローチャートにおいて破線で示す部分（ステップ５５，５６，５８）を省略した動作となり、ステップ５２において稼働系の異常発生を検出した場合は次にステップ５７の処理を実行する。こうした場合、判定部４１が待機系の状態を判定する必要がなくなるため、信号処理装置１０の構成を簡略化できるほか、クリップ等の異常に応じた稼働系から待機系への切り替えをより迅速に実施できる。
【００２６】
以上、上記した本実施形態によれば以下の効果を奏する。
＜効果１＞信号処理装置１０は、入力された音響信号（図２の入力信号ＩＳ）に対して互いに対応する信号処理を実行する稼働系（ＦＰＧＡ１３）と待機系（ＣＰＵ１２上で実行される信号処理モジュール１２Ａ）との２つの信号処理手段が動作する。即ち、信号処理装置１０は、稼働系と待機系とで処理系統の二重化が図られている。待機系は、稼働系に比べて高い処理精度（大きな有効桁数）で信号処理を実行する。選択部２２の判定部４１は、稼働系及び待機系の各々から信号処理に異常があった旨の信号Ｓ３１，Ｓ３２が入力される。判定部４１は、稼働系の異常発生を検出した場合には、稼働系に代わり待機系の出力信号Ｓ３５を選択部２２の出力信号ＯＳとして選択することで稼働系と待機系を切り替える（図３のステップ５２，５７参照）。これにより、信号処理装置１０は、稼働系（ＦＰＧＡ１３）で異常が生じても、待機系（信号処理モジュール１２Ａ）において引き続き正常な信号処理が継続でき、フォールトトレラントなシステムが構築される。
【００２７】
＜効果２＞稼働系（ＦＰＧＡ１３）は固定小数点形式で信号処理を実行するのに対し、待機系（信号処理モジュール１２Ａ）は浮動小数点形式で信号処理を実行する。待機系は、演算処理可能な有効な桁数を稼働系よりも大きくすることで、稼働系で異常（クリップなど）が生じるような入力データであっても正常な演算処理が継続できる。
【００２８】
＜効果３＞稼働系（ＦＰＧＡ１３）は、信号処理の実行に最適化された専用の演算回路がコンフィグレーションデータに基づいて構成されるプログラマブル論理デバイスである。一方で、待機系（信号処理モジュール１２Ａ）は、ＣＰＵ１２において他のプログラム（制御プログラムなど）と並列的に実行される処理モジュールである。このような構成では、待機系を稼働系よりも高い処理精度（大きな有効桁数）で信号処理を実行するよう構成しても、信号処理装置１０のシステム全体としてのコストの増加を抑えつつ、信号伝送の連続性を高めることが可能となる。
【００２９】
＜効果４＞判定部４１は、選択手段４２を制御してＦＰＧＡ１３に加えて信号処理モジュール１２Ａでもクリップが生じた場合には、信号処理モジュール１２Ａ及びＦＰＧＡ１３による信号処理を実施せずに入力された音響信号（入力信号ＩＳ）をそのまま出力させる（図２の信号Ｓ４４参照）。これにより、信号処理装置１０は、信号処理モジュール１２Ａ及びＦＰＧＡ１３の両方に異常が生じた場合でも信号伝送が途切れることなく継続される。
【００３０】
なお、本発明は上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、上記実施形態では、処理能力を、演算処理の処理精度として定義したが、これに限らない。本願における処理能力とは、処理精度の他に、例えば、演算処理に必要な処理時間や演算速度としての意味も含んでいる。あるいは、演算動作が安定している、又は演算処理を行うソフトウェアに含まれるバグが少ないといった安定性が高い場合を、本願では処理能力が高いということができる。こういった処理能力が高ければ、例えば演算処理の遅延や動作停止に起因して信号出力が停止する（出力する信号にノイズが発生する）可能性が低くなることが期待でき、こういった障害に対する耐性が高いといえる。上記実施形態で例示した処理精度も同様であり、想定される「オーバーフロー」に対して、浮動少数点演算を行う信号処理モジュール１２ＡはＦＰＧＡ１３より耐性が高いといえる。従って、本願における処理能力の定義として、想定される障害（桁あふれや処理遅延など）に対する耐性を有する、あるいは耐性がより高いことを、「処理能力が高い」と言い換えることができる。
【００３１】
また、上記実施形態の信号処理装置１０は、稼働系としてＦＰＧＡ１３、待機系としてＣＰＵ１２にて実行される信号処理モジュール１２Ａを有したが、これに限らない。例えば、信号処理装置１０は、稼働系として固定小数点演算を行うＤＳＰを備え、待機系として浮動小数点演算を行うＦＰＧＡを有する構成としてもよいし、稼動系、待機系ともにＦＰＧＡ等で構成してもよいし、信号処理モジュールにて構成してもよい。要は、稼働系と待機系の処理能力が異なれば、処理を実現する方法、回路、構成など問わない。
また、上記実施形態の構成とは逆に、信号処理装置１０は、稼働系が処理精度の高い浮動小数点演算を行い、待機系が処理精度の低い固定小数点演算を行う構成でもよい。この場合に想定される障害は、例えば稼働系の演算処理における遅延が許容範囲を超えたことに起因する信号の断絶による障害がある。より具体的には、ＣＰＵ１２は、システム設計にもよるが、例えば、信号処理モジュール１２Ａよりも優先度が高く設定された処理イベント（ハードウェア割り込みなど）が発生すると演算処理に遅延が生じ、信号処理モジュール１２Ａによる音響信号のリアルタイム処理が困難となる場合がある。この場合、信号処理モジュール１２Ａは、所望のタイミングまでに出力信号が出力できなくなる可能性がある。これに対し、例えば、判定部４１を、稼働系の信号処理モジュール１２Ａの出力信号の状態を監視する設定とする。そして、判定部４１は、信号処理モジュール１２Ａの演算処理に遅延が生じ、予め定められた時間内に信号出力が検出できなかった場合に、待機系への切り替えを実施する設定とすればよい。
【００３２】
（別の信号処理装置の構成）
次に、上記した信号処理装置１０とは別の構成の信号処理装置１０Ａについて図４を用いて説明する。図４に示す信号処理装置１０Ａは、待機系の信号処理モジュール１２Ａが平常時には停止しており、異常時に起動される点が上記した信号処理装置１０とは異なる。なお、以下の説明では、上記した信号処理装置１０と同様の構成については同一の符号を付し、その説明を適宜省略する。
【００３３】
信号処理装置１０Ａは、信号処理モジュール１２Ａ、ＦＰＧＡ１３、判定部４１、選択手段４２に加えて、ディレイ６１，６３及びバッファ６５を有する。ディレイ６１，６３は、例えばＣＰＵ１２（図１参照）が実行するプログラムにより実現される処理モジュールでもよい。稼働系のＦＰＧＡ１３は、ワードクロックに基づいて周期的に入力信号ＩＳを処理し処理結果の出力信号Ｓ７１を、ディレイ６１を介して選択手段４２に出力する。また、待機系の信号処理モジュール１２Ａは、入力信号ＩＳがディレイ６３を介して入力され、信号処理した出力信号Ｓ７３を選択手段４２に出力する。なお、ディレイ６１，６３、判定部４１、選択手段４２は、ＣＰＵ１２が実行するプログラムによりソフトウェア的に実現されるものとするが、一部あるいはすべてを電気回路等により実現してもよい。
【００３４】
まず、平常時には、入力信号ＩＳは、稼働系のＦＰＧＡ１３にて信号処理され、ディレイ６１、選択手段４２、及びバッファ６５を介して出力信号ＯＳとして出力される。このバッファ６５は、スピーカーなどの外部装置に出力するタイミングを調整するためのものである。また、ＦＰＧＡ１３は、出力側（ディレイ６１側）への処理と並行して判定部４１にも出力信号Ｓ７１を出力する。判定部４１は、例えば、出力信号Ｓ７１の波形データを解析してＦＰＧＡ１３の異常を判定する。なお、判定部４１によるＦＰＧＡ１３の異常を検出する方法は、これに限らない。ＦＰＧＡ１３は、出力信号Ｓ７１に代えてエラー信号を判定部４１に出力する設定でもよい。あるいは、判定部４１がＦＰＧＡ１３の信号出力や動作の状態などを監視する設定としてもよい。
【００３５】
次に、判定部４１は、ＦＰＧＡ１３の異常を検出すると、信号処理モジュール１２Ａを起動させ、待機系による代替えの処理を実行させる。例えば、判定部４１は、ＣＰＵ１２に対してメモリ１５（図１参照）に記憶しているプログラムを読出し乃至実行して信号処理モジュール１２Ａを起動させる。なお、待機系の起動方法は、これに限らない。例えば、待機系がＦＰＧＡであれば、判定部４１は、ＣＰＵ１２に対してメモリ１５に記憶しているコンフィグレーションデータを読み出してコンフィグレーションを実施し、待機系のＦＰＧＡを起動させてもよい。あるいは、判定部４１は、待機系を構成するハードウェアに対する電源供給の有無を制御して起動又は停止を制御してもよい。あるいは、待機系の停止状態とは、判定部４１から起動指示を受けるまでは別の処理を実施している場合も、ここでいる待機系の停止ということができる。いずれにせよ、信号処理装置１０Ａは、判定部４１によって稼働系の異常が検出されるまでは、待機系が稼働系と同様の信号処理を行わない。
【００３６】
また、判定部４１は、信号処理モジュール１２Ａの起動に合わせて、入力信号の切り替え指示をする制御信号Ｓ７５を選択手段４２に出力する。選択手段４２は、制御信号Ｓ７５に基づいて、バッファ６５に出力する信号を稼働系から待機系に切り替える。選択手段４２による切り替えのタイミングは、信号処理モジュール１２Ａからの出力信号Ｓ７３が選択手段４２に入力されるタイミングであることが好ましい。なお、選択手段４２が行う切替はスイッチングに限らず、各系からの入力信号に対するゲイン制御（クロスフェードを行いつつ混合する等）であってもよい。あるいは、稼動系と待機系の両信号が選択手段４２に到達するタイミングの同時性と信号の連続性とが担保できるのであれば、選択手段４２は単純に加算出力を行う構成であってもよい（この場合、実質的に判定部４１から選択手段４２への指示は不要となる）。
【００３７】
また、信号処理装置１０Ａは、ＦＰＧＡ１３に入力信号ＩＳが入力され処理結果の出力信号Ｓ７１がディレイ６１を介して選択手段４２に入力されるまでの処理時間と、入力信号ＩＳがディレイ６３を介して信号処理モジュール１２Ａに入力され処理結果の出力信号Ｓ７３が選択手段４２に入力されるまでの処理時間とが同一の時間となるように２つのディレイ６１，６３の遅延時間が設定されている。これにより、信号処理装置１０Ａは、稼働系（ＦＰＧＡ１３）で異常が生じても、待機系（信号処理モジュール１２Ａ）において引き続き正常な信号処理が継続でき、出力信号ＯＳを断絶させることなく出力可能となる。なお、ディレイ６１，６３に設定する遅延時間は、信号処理モジュール１２Ａを起動するのに要する時間を考慮することが好ましい。また、判定部４１は、待機系の信号処理モジュール１２Ａの出力信号Ｓ７３が、稼働系のＦＰＧＡ１３の異常を検出した際の出力信号Ｓ７１に対応するデータ（音響信号及び制御データ）となるように信号処理モジュール１２Ａの出力信号Ｓ７３を監視、制御してもよい。これにより、選択手段４２から出力される出力信号ＯＳの連続性がより確実となる。
【００３８】
以上、上記した構成によれば以下の効果を奏する。
＜効果＞信号処理装置１０Ａは、判定部４１によって稼働系のＦＰＧＡ１３の異常が検出されるまでは、待機系の信号処理モジュール１２Ａを起動しない。このため、信号処理装置１０Ａは、非常時にのみ待機系を動作させるためのリソースを確保すればよく、リソースの有効活用が可能となる。
【００３９】
また、上記実施形態では、本願の信号処理システムを、複数のノード（ＣＰＵ１２など）がバス２５で接続される信号処理装置１０に具体化したが、複数のノードがネットワークを介して接続されるオーディオネットワークシステムなどに具体化してもよい。また、本願の信号処理システムは、ローカルエリアのネットワークで実現されるシステムに限らず、例えば、インターネットを介して複数の装置（仮想マシンなど）が連係して音響信号をリアルタイムに処理するシステム（クラウドコンピューティングなど）を含む。また、本願の信号処理システムは、信号処理システムの制御を実行するプログラムとして構成してもよい。例えば、本願の信号処理システムを、１つのスタンドアローン型の装置上で複数の仮想マシーンが動作するもの、例えば１つのＯＳ上で複数の仮想マシーン（ホスト）が実行され相互に音響信号を送受信して処理するシステムで構成してもよい。あるいは、本願の信号処理システムにおける選択部２２の機能を、ＣｏｂｒａＮｅｔ（登録商標）などの伝送方式で音響信号がフレーム単位で伝送されるオーディオネットワークに接続されるルータ等のネットワーク機器に実装し、ネットワーク機器に入出力されるフレームデータに対する処理を実行するよう構成してもよい。
【００４０】
また、上記実施形態では、信号処理装置１０の処理対象の信号として音響信号について説明したが、他のリアルタイムな伝送が想定される信号（映像信号など）の処理にも本願の信号処理システムを適用してもよい。具体的には、映像信号を処理する信号処理システムとは、例えばシステムに入力された映像信号に対し映像の切り替えやテロップなどの字幕を付加する映像処理を、稼働系と待機系の信号処理手段で実施しつつリアルタイムに外部機器に出力する信号処理システムである。
【００４１】
また、上記実施形態の信号処理手段（信号処理モジュール１２Ａ及びＦＰＧＡ１３）、選択部２２（判定部４１及び選択手段４２）の各構成は、ハードウェアにより実現してもよく、ソフトウェアにより実現してもよい。
また、信号処理手段（ＦＰＧＡ１３及び信号処理モジュール１２Ａ）は３以上の複数でもよい。
【００４２】
また、上記実施形態の選択部２２においては、複数の信号処理手段から信号を選択的に出力するよう構成したが、各信号処理手段における信号出力を排他的に制御し、複数の信号処理手段のうち１の信号処理手段にのみ信号出力を許可するよう構成してもよい。
【００４３】
また、判定部４１において、信号処理手段からの出力信号のレベルが本来出力されるべき信号のレベルよりも小さい過小出力等（信号処理手段において出力信号が遮断されている場合も含む）を、信号処理手段における異常状態として判定するようにしてもよい。
【００４４】
また、判定部４１は、信号処理モジュール１２Ａ及びＦＰＧＡ１３の両方に異常（クリップ）が生じた場合に、選択手段４２を介して入力信号ＩＳを出力させたが、選択部２２の入出力を直接接続して入力信号ＩＳを出力させてもよい。この場合、選択手段４２の出力は停止させる。
【００４５】
因みに、信号処理装置１０は、信号処理システムの一例として、ＦＰＧＡ１３は、第１信号処理手段の一例として、ＣＰＵ１２及びＣＰＵ１２で実行される信号処理モジュール１２Ａは、第２信号処理手段の一例として、判定部４１は、判定手段の一例として、選択手段４２は、選択手段の一例として、出力信号Ｓ３４，Ｓ３５は、信号処理を実施した信号の一例として、音響信号、入力信号ＩＳは、入力信号の一例として、出力信号ＯＳは、出力信号の一例として挙げられる。
【符号の説明】
【００４６】
１０  信号処理装置、１３  ＦＰＧＡ、１２  ＣＰＵ、１２Ａ  信号処理モジュール、４１  判定部、４２  選択手段、Ｓ３４，Ｓ３５  出力信号、ＩＳ  入力信号、ＯＳ  出力信号
【図１】
2015035203.tif 000003
【図２】
2015035203.tif 000004
【図３】
2015035203.tif 000005
【図４】
2015035203.tif 000006