(57)【特許請求の範囲】
【請求項１】
フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、該実行順番に従い前記複数のフィルタの処理を実行するサーバ装置であって、
前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出する検出部と、
前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定する判定部と、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する処理部と、
を有するサーバ装置。
【請求項２】
前記検出部は、
複数組の前記ペアを検出し、
前記処理部は、
前記複数組のペアの一のペア間で実行されるフィルタがデータ変更処理を行うと判定された場合であって、該判定されたフィルタが前記複数組のペアの他のペアのフィルタである場合、前記一のペアの前記バイパス処理を行い、前記一のペアの第２のフィルタへの入力データを破棄する、
請求項１に記載のサーバ装置。
【請求項３】
前記判定部は、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを、前記第１のフィルタの入力データと前記第２のフィルタの出力データとが所定の回数以上一致するかに基づき判定する、
請求項１又は２に記載のサーバ装置。
【請求項４】
フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、前記複数のフィルタを該実行順番に従いコンピュータに実行させるプログラムであって、
前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出し、
前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定し、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する、
プログラム。
【請求項５】
フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、前記複数のフィルタを該実行順番に従いコンピュータが実行する情報処理方法であって、
前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出し、
前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定し、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
スマートフォン等の端末装置で利用されている音声認識処理等では、例えば、端末装置が音声等のメディアデータをサーバ装置に送信し、サーバ装置が、メディアデータに対して所定の処理（以下、「メディア処理」ともいう。）を実行し、端末装置に返信する（例えば、特許文献１参照）。
【０００３】
端末装置から送信されるメディアデータのデータ量が増える程、サーバ装置は、そのリクエストに対応するために処理の効率化を図ることが重要になる。そこで、コーデック変換、マルチプレクサ等の単機能の処理を再利用が容易なようにモジュール化した「フィルタ」を組み合わせ、フィルタ単位でメディア処理を順番に実行するフィルタグラフの生成技術が提案されている（例えば、特許文献２参照）。サーバ装置は、フィルタグラフのフィルタの接続順序を実行順番にして入力されたメディアデータをフィルタ毎に順番に処理する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−４９９０５号公報
【特許文献２】米国特許第５９１３０３８号明細書
【特許文献３】特開平０６−３３８８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、フィルタグラフにおいてフィルタの接続順序が適正でない場合、不要なフィルタ処理が自動挿入され、フィルタグラフにおけるメディアデータの処理の効率が低下する場合がある。
【０００６】
そこで、一側面では、本発明は、フィルタグラフにおけるメディアデータの処理を効率的に実行することを目的とする。
【課題を解決するための手段】
【０００７】
一つの案では、フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、該実行順番に従い前記複数のフィルタの処理を実行するサーバ装置であって、前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出する検出部と、前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定する判定部と、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する処理部と、を有するサーバ装置が提供される。
【発明の効果】
【０００８】
一側面によれば、本発明は、フィルタグラフにおけるメディアデータの処理を効率的に実行することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態にかかるメディア処理システムの全体構成の一例を示す図。
【図２】フィルタグラフの一例を説明するための図。
【図３】フィルタの自動挿入を説明するための図。
【図４】第１及び第２実施形態にかかるサーバ装置の機能構成の一例を示す図。
【図５】一実施形態にかかる逆変換管理データベースの一例を示す図。
【図６】一実施形態にかかるデータ変更フィルタテーブルの一例を示す図。
【図７】第１実施形態にかかるバイパス付加処理の一例を示すフローチャート。
【図８】第１実施形態にかかるバイパスを説明するための図。
【図９】第１実施形態にかかるフィルタ処理の一例を示すフローチャート。
【図１０】第２実施形態にかかるバイパス付加処理の一例を示すフローチャート。
【図１１】第２実施形態にかかるバイパスを説明するための図。
【図１２】第３実施形態にかかるサーバ装置の機能構成の一例を示す図。
【図１３】一実施形態にかかる変更有無検出データテーブルの一例を示す図。
【図１４】第３実施形態にかかるバイパス付加処理の一例を示すフローチャート。
【図１５】第３実施形態にかかるフィルタ処理の一例を示すフローチャート。
【図１６】一実施形態にかかるサーバ装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１１】
［メディア処理システムの全体構成］
まず、本発明の一実施形態に係るメディア処理システム１の構成について、図１を参照しながら説明する。一実施形態に係るメディア処理システム１は、端末装置１０とサーバ装置２０とを有する。端末装置１０とサーバ装置２０とは、ネットワーク３０により接続されている。
【００１２】
端末装置１０の一例としては、スマートフォン、タブレット型端末、パーソナルコンピュータが挙げられる。ただし、端末装置１０は、これに限らず、例えば、携帯電話、携帯型情報端末（ＰＤＡ）、携帯型音楽機器、ゲーム機器等、通信機能を有する端末装置であればよい。
【００１３】
サーバ装置２０は、端末装置１０から送信されるメディアデータを受信し、端末装置１０からリクエストされる音声認識処理等のメディア処理を実行し、処理後のメディアデータを端末装置１０に返信する。サーバ装置２０は、端末装置１０に接続されるクラウド上のサーバーであってもよい。
【００１４】
（フィルタグラフ）
サーバ装置２０は、フィルタ単位で処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、複数のフィルタをフィルタ単位で実行順番（接続順）に従い実行する。具体的には、フィルタグラフは、図２に示すように、コーデック変換、マルチプレクサ等の単機能の処理を再利用が容易なようにモジュール化した「フィルタ」を組み合わせたものである。サーバ装置２０は、フィルタグラフのフィルタの組み合わせ順序に従い、入力したメディアデータを上流のフィルタから下流のフィルタに向けてフィルタ毎に順に処理し、処理済のメディアデータを最下流のフィルタから出力する。
【００１５】
図２では、サーバ装置２０は、カメラが撮像した画像データを入力し、コーデック変換の処理をフィルタ単位で行う。また、サーバ装置２０は、マイクが取得した音声データを入力し、マルチプレクサの処理をフィルタ単位で行う。フィルタに出力された処理済のメディアデータは、次のフィルタに入力されるか、端末装置１０に転送される。
【００１６】
フィルタグラフは、複数のフィルタが最適な実行順番で生成されない場合がある。特に、入力されるメディアデータがフィルタグラフの複数の開発者により使用される場合等において、最適な実行順番で生成されることが困難な場合がある。
【００１７】
フィルタグラフが、最適な実行順番で生成されない場合、フィルタグラフで定められた複数のフィルタの実行順番によっては、不要なフィルタが自動で挿入されることがある。例えば、図３では、フィルタ４０→フィルタ４２→フィルタ４４の接続順序（実行順番）でフィルタグラフが作成されたとする。その場合、サンプリングレートを８ｋＨｚから１６ｋＨｚに変換するフィルタ４１が必要と判断され、フィルタ４０とフィルタ４２との間に自動挿入される。また、サンプリングレートを１６ｋＨｚから８ｋＨｚに変換するフィルタ４３が必要と判断され、フィルタ４２とフィルタ４４との間に自動挿入される。
【００１８】
一方、フィルタ４４がフィルタ４０と直接接続される位置にフィルタグラフが設計されれば、フィルタ４１とフィルタ４３とは不要となり、自動挿入されない。つまり、図３のフィルタグラフは、フィルタの接続順序が適切でなかったために不要なフィルタが自動挿入された例である。
【００１９】
このように、生成されたフィルタグラフによるフィルタの接続順序が適正でない場合、不要なフィルタ処理が自動挿入され、かえってメディア処理の効率が低下する場合がある。そこで、以下に説明する第１〜第３実施形態に係るメディア処理システム１では、生成されたフィルタグラフにおけるメディアデータの処理を効率的に実行する。
【００２０】
［機能構成］
まず、第１及び第２実施形態に係るサーバ装置２０の機能構成の一例について、図４を参照しながら説明する。サーバ装置２０は、フィルタグラフ生成部２１、検出部２２、記憶部２３、判定部２４、バイパス付与部２５及びフィルタ処理部２６を有する。
【００２１】
フィルタグラフ生成部２１は、予め特定されたフィルタ接続関係に基づきフィルタ単位で処理が実行される複数のフィルタを接続し、実行順番を定めたフィルタグラフを生成する。
【００２２】
検出部２２は、フィルタグラフに含まれるフィルタのうち、第１のフィルタとその第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出する。例えば、図３のフィルタ４１とフィルタ４３とは、逆変換のペアであり、上流側のフィルタ４１は、第１のフィルタの一例であり、下流側のフィルタ４３は、第２のフィルタの一例である。
【００２３】
判定部２４は、フィルタグラフに含まれるフィルタのうち、第１のフィルタと第２のフィルタとの逆変換のペアの間で実行されるフィルタがデータ変更処理を行うかを判定する。
【００２４】
バイパス付与部２５は、第１のフィルタと第２のフィルタとの間で実行されるフィルタでデータ変更処理が行われないと判定された場合、第１のフィルタに入力するデータを第２のフィルタから出力するデータのバイパスルートを付与する。
【００２５】
フィルタ処理部２６は、端末装置１０から画像や音声等のメディアデータを入力し、フィルタグラフに従いフィルタ処理を実行する。ただし、バイパスが付与されている場合、フィルタ処理部２６は、第１のフィルタへの入力データを第２のフィルタから出力するバイパス処理を行い、フィルタグラフに従いフィルタ処理を実行し、第２のフィルタへ入力されたデータを破棄する。
【００２６】
記憶部２３は、逆変換管理データベース（ＤＢ）２７及びデータ変更フィルタテーブル２８を有する。逆変換管理ＤＢ２７の一例を図５に示す。逆変換管理ＤＢ２７は、フィルタ種別ＩＤ２７１、フィルタ名２７２、逆変換フィルタＩＤ２７３、比較パラメータ１（Ｐ１）２７４、比較パラメータ２（Ｐ２）２７５の各項目を有する。
【００２７】
フィルタ種別ＩＤ２７１と逆変換フィルタＩＤ２７３が異なる値の場合、その２つのフィルタは逆変換ペアである。フィルタ種別ＩＤ２７１と逆変換フィルタＩＤ２７３が同じ値の場合、比較パラメータ１（Ｐ１）２７４、比較パラメータ２（Ｐ２）２７５が設定されている。フィルタＡの比較パラメータ１（Ｐ１）２７４とフィルタＢの比較パラメータ２（Ｐ２）２７５、及び、フィルタＡの比較パラメータ２（Ｐ２）２７５とフィルタＢの比較パラメータ１（Ｐ１）２７４がそれぞれ等しい場合、フィルタＡ、Ｂは逆変換ペアである。フィルタ名２７２は、フィルタ種別ＩＤ２７１により識別されるフィルタの名前を示す。
【００２８】
データ変更フィルタテーブル２８の一例を図６に示す。データ変更フィルタテーブル２８は、フィルタ種別ＩＤ２８１、フィルタ名２８２、データ変更情報２８３の各項目を有する。フィルタ名２８２は、フィルタ種別ＩＤ２８１により識別されるフィルタの名前を示す。データ変更情報２８３は、「１」に設定されている場合にはデータ変更が「有」を示し、「０」に設定されている場合にはデータ変更が「無」を示す。例えば、フィルタ種別２９２が「６」、フィルタ名２９３が「音量抽出」のフィルタの場合、音を取り込む処理が行われるため、データ変更は行われないため、データ変更情報２８３は「０」となる。
【００２９】
［動作］
＜第１実施形態＞
次に、かかる機能構成を有するサーバ装置２０の動作について、第１実施形態、第２実施形態の順に説明する。図７は、第１実施形態にかかるバイパス付加処理の一例を示すフローチャートである。図８は、第１実施形態にかかるフィルタ処理の一例を示すフローチャートである。図９は、第１実施形態にかかるバイパスを説明するための図である。
【００３０】
（バイパス付加処理）
まず、図７のバイパス付加処理について、図７を参照して説明する。フィルタグラフ生成部２１は、フィルタの追加や削除の命令を受信すると（ステップＳ１０）、所定のフィルタグラフの生成又は変更を行う（ステップＳ１２）。
【００３１】
次に、フィルタグラフ生成部２１は、既存のバイパスをすべて削除する（ステップＳ１４）。次に、検出部２２は、事前に設定された逆変換管理ＤＢ２７のデータを参照し、フィルタグラフの全フィルタから、逆変換のペアを抽出する（ステップＳ１６）。
【００３２】
検出部２２は、一のフィルタのフィルタ種別ＩＤ２７１に対応する逆変換フィルタＩＤ２７３を持つ他のフィルタを見つけた場合、その２つのフィルタは逆変換のペアであると判断する。ただし、一のフィルタのフィルタ種別ＩＤ２７１と対応する逆変換フィルタＩＤ２７３が同じ値の場合、一のフィルタの比較パラメータ１（Ｐ１）２７４と他のフィルタの比較パラメータ２（Ｐ２）２７５、及び一のフィルタの比較パラメータ２（Ｐ２）２７５と他のフィルタの比較パラメータ１（Ｐ１）２７４がそれぞれ等しい場合のみ、一のフィルタと他のフィルタとは逆変換のペアであると判断する。
【００３３】
次に、検出部２２は、逆変換のペアが一つ以上抽出されたかを判定する（ステップＳ１８）。検出部２２は、逆変換のペアが抽出されなかったと判定した場合、本処理を終了する。一方、検出部２２は、逆変換のペアが一つ以上抽出されたと判定した場合、ペア毎に逆変換のペアの間に挟まれたフィルタを抽出する（ステップＳ２０）。
【００３４】
例えば、図８に示すフィルタグラフの場合、メディアデータは、データ受信処理を行うフィルタ５０で受信され、フィルタ５１→フィルタ５２→フィルタ５３の順に処理され、出力される。よって、まず、検出部２２は、図８のフィルタグラフを検査し、処理Ａのフィルタ５１と処理ａのフィルタ５３とがつながっていて、処理ａが処理Ａの逆変換処理を行うことを確認し、逆変換のペアとして抽出する。次に、検出部２２は、抽出した逆変換のペアの間に挟まれたフィルタを抽出する。図８では、処理Ａのフィルタ５１と処理ａのフィルタ５３との間に挟まれたフィルタ５２が抽出される。フィルタ５１，５３は逆変換のペアであり、フィルタ５１は第１のフィルタ（上流側（入力側）のフィルタ）の一例、フィルタ５３は第２のフィルタ（下流側（出力側）のフィルタ）の一例である。また、フィルタ５２は、第１のフィルタと第２のフィルタとの間で実行されるフィルタの一例である。
【００３５】
判定部２４は、予め設定されたデータ変更フィルタテーブル２８に記憶されたデータを参照し、逆変換ペアのフィルタに挟まれたフィルタにデータ変更が行われるフィルタが存在するかをチェックする（ステップＳ２２）。フィルタ種別ＩＤ２８１に応じたデータ変更情報２８３に基づき、逆変換ペアのフィルタに挟まれたフィルタでデータ変更が行われるかが判定可能である。
【００３６】
判定部２４は、データ変更が行われるフィルタが存在するかを判定し（ステップＳ２４）、データ変更が行われるフィルタが存在すると判定した場合、ステップＳ２８に進む。一方、判定部２４が、データ変更が行われるフィルタが存在しないと判定した場合、バイパス付与部２５は、抽出した逆変換のペアのフィルタ間をデータがバイパスするパスをフィルタグラフに追加し（ステップＳ２６）、ステップＳ２８に進む。
【００３７】
例えば、図８に示すように、逆変換のペアのフィルタ５１，５３間に挟まれたフィルタ５２ではデータ変更処理は行われない。この場合、判定部２４は、逆変換のペアのフィルタ５１，５３間にデータ変更が行われるフィルタは存在しないと判定し、バイパス付与部２５は、抽出した逆変換のペアのフィルタ５１，５３をデータがバイパスするパス（以下、「バイパスルートＲ１」ともいう。）をフィルタグラフに追加する。
【００３８】
図７に戻り、次に、判定部２４は、ステップＳ２８にて、抽出されたすべての逆変換のペアについてステップＳ２０〜Ｓ２６のチェックが行われたかを判定する。判定部２４は、抽出されたすべての逆変換のペアについてチェックが行われたと判定した場合、本処理を終了する。一方、判定部２４は、抽出されたすべての逆変換のペアについてチェックが行われていないと判定した場合、ステップＳ２０に戻り、ステップＳ２０以降の処理を繰り返す。
【００３９】
以上に説明したバイパス付加処理によれば、逆変換ペアのフィルタ間で実行されるフィルタがデータ変更処理を行わない場合、逆変換ペアの上流側のフィルタに入力されたデータを逆変換ペアの下流側のフィルタから出力するバイパスルートＲ１が形成される。この結果、フィルタグラフの順序を変更せずに適正なデータのバイパスを形成することで、フィルタグラフにおけるメディアデータの処理を効率的に実行することができる。
【００４０】
（フィルタ処理）
次に、図９のフィルタ処理（バイパス処理含む）について、図９を参照して説明する。まず、フィルタ処理部２６は、端末装置１０から送信されたメディアデータを受信すると（ステップＳ３０）、生成されたフィルタグラフから次のフィルタを取得する（ステップＳ３２）。次のフィルタとは、フィルタグラフの接続順序にしたがい特定される。
【００４１】
次に、フィルタ処理部２６は、次のフィルタがあるかを判定する（ステップＳ３４）。フィルタ処理部２６は、次のフィルタがないと判定した場合、本処理を終了する。一方、フィルタ処理部２６は、次のフィルタがあると判定した場合、次のフィルタにデータを送信し（ステップＳ３６）、次のフィルタの処理を実行する（ステップＳ３８）。これにより、送信データが作成される。
【００４２】
例えば、図８では、次のフィルタが処理Ａのフィルタ５１の場合、フィルタグラフの実行順序（以下、「正規ルートＲ２」ともいう。）に従い、フィルタ５０で受信したデータがフィルタ５１に入力され、処理Ａが実行される。加えて、フィルタ５１に入力されたデータは、バイパスルートＲ１を使ってフィルタ５３からそのまま出力される。
【００４３】
図７に戻り、次に、フィルタ処理部２６は、正規ルートＲ２から逆変換のペアの下流側のフィルタ（第２のフィルタ）に入力するデータを破棄し（ステップＳ４０）、ステップＳ３２に戻る。
【００４４】
例えば、次のフィルタが、図８に示すフィルタ５３である場合、フィルタ５３は逆変換のペアの下流側のフィルタであるため、正規ルートＲ２からフィルタ５３に入力されるデータは破棄される。
【００４５】
以上に説明したように、第１実施形態にかかるサーバ装置２０によれば、バイパスルートＲ１を使用して逆変換のペアのうち上流側のフィルタが入力したデータをそのまま下流側のフィルタから出力する。また、正規ルートＲ２から下流側のフィルタに入力されるデータは破棄される。これにより、フィルタグラフにおけるメディアデータの処理を効率的に実行することができる。
＜第２実施形態＞
次に、第２実施形態にかかるサーバ装置２０の動作について、図１０を参照して説明する。図１０は、第２実施形態にかかるバイパス付加処理の一例を示すフローチャートである。第１実施形態と異なる点は、ステップＳ５０が追加され、複数の逆変換のペアが多重に連結したフィルタグラフにも本バイパス機能を対応可能とした点である。
【００４６】
（バイパス付加処理）
まず、第１実施形態と同様に、ステップＳ１０〜ステップＳ２４の処理が実行される。ステップＳ２２では、判定部２４は、抽出された逆変換ペアのフィルタの間で実行されるフィルタのうちデータ変更が行われるフィルタが存在するかをチェックする（ステップＳ２２）。その結果に基づき、判定部２４は、データ変更が行われるフィルタが存在するかを判定する（ステップＳ２４）。その結果、データ変更が行われるフィルタが存在すると判定された場合、そのデータ変更が行われるフィルタが多重化した複数の逆変換のペアのうちの他のペアのみであるかを判定する（ステップＳ５０）。
【００４７】
データ変更が行われるフィルタが他の逆変換のペアのみであると判定された場合、バイパス付与部２５は、抽出したペアをバイパスするパスをフィルタグラフに追加し（ステップＳ２６）、ステップＳ２８に進む。ステップＳ５０においてデータ変更が行われるフィルタが他の逆変換のペアのみではないと判定された場合、そのままステップＳ２８に進む。
【００４８】
例えば、図１１に示すように、逆変換のペアのフィルタが２組存在するフィルタグラフについて説明する。処理Ａのフィルタ６１及び処理ａのフィルタ６５が１組目の逆変換のペアであり、処理Ｂのフィルタ６２及び処理ｂのフィルタ６４が２組目の逆変換のペアである。フィルタ６３は、２組の逆変換ペアのフィルタ間で実行されるフィルタである。フィルタ６３が行う処理Ｃは、データ変更は行われない。
【００４９】
１組目の逆変換のペアの場合、ステップＳ２４にて「Ｙｅｓ」と判定されると、ステップＳ５０にて、判定部２４は、１組目の逆変換のペアのフィルタ６１，６５に挟まれたフィルタ６２，６３，６４について、データ変更が行われるフィルタがあるかを判定する。ここでは、フィルタ６２、６４は、データ変更が行われるフィルタである。そして、このフィルタ６２、６４は、他の逆変換のペアである。よって、この場合、判定部２４は、ステップＳ５０にて「Ｙｅｓ」と判定し、抽出した逆変換のペアのフィルタ６１，６５をデータがバイパスするパス（バイパスルートＲ１）をフィルタグラフに追加する。
【００５０】
また、判定部２４は、２組目の逆変換のペアのフィルタ６２，６４に挟まれたフィルタ６３について、データ変更が行われるかを判定する（ステップＳ２４）。ここでは、フィルタ６３は、データ変更が行われない処理のみ実行する。よって、この場合、判定部２４は、ステップＳ２４にて「Ｎｏ」と判定し、抽出した逆変換のペアのフィルタ６２，６４をデータがバイパスするパスをフィルタグラフに追加する。
【００５１】
ただし、逆変換のペアのフィルタ６２，６４をデータがバイパスするパスを使用してフィルタ６５に入力されるデータは、図９のステップＳ４０において下流側のフィルタ６５に入力されたデータであるため破棄される。同様に、下流側のフィルタ６４に入力されたデータが破棄される。
【００５２】
以上に説明したように、第２実施形態にかかるサーバ装置２０によれば、複数組の逆変換ペアのフィルタが存在する場合であっても、組毎に逆変換ペアの上流側のフィルタへ入力されるデータを下流側のフィルタからそのまま出力可能なデータのバイパスが形成される。この結果、複数組の逆変換ペアのフィルタが存在する場合であっても、フィルタグラフの順序を変更せずに適正なデータのバイパスを形成することで、フィルタグラフにおけるメディアデータの処理を効率的に実行することができる。
＜第３実施形態＞
第３実施形態にかかるサーバ装置２０では、各フィルタのデータ変更処理の有無を所定の間隔で自動推定し、ユーザの負担を軽減する。具体的には、フィルタごとに定期的に入力データと出力データとが比較され、一致するか否かが判定される。所定の回数以上変化がないことが確認された場合、そのフィルタがデータ変更処理を行うかを示すフラグ（以下、「フィルタ設定変化フラグ」ともいう。）は「０」とする。よって、フィルタ設定変化フラグが「０」のとき、ペア間のフィルタはデータ変更処理を行わないことが示され、フィルタ設定変化フラグが「１」のとき、ペア間のフィルタはデータ変更処理を行うことが示される。
【００５３】
図１２に示すように、第３実施形態にかかるサーバ装置２０の記憶部２３には、逆変換管理ＤＢ２７、データ変更フィルタテーブル２８に加えて変更有無検出データテーブル２９が記憶されている。
【００５４】
図１３に変更有無検出データテーブル２９の一例を示す。変更有無検出データテーブル２９は、フィルタインスタンスＩＤ２９１、フィルタ種別ＩＤ２９２、受信データ数２９３、変更なしデータ数２９４の各項目を有する。フィルタインスタンスＩＤ２９１が「１」、「２」、「３」・・・と順番に付けられ、フィルタ種別ＩＤ２９２が各フィルタインスタンスＩＤ２９１に対応付けられている。各フィルタ種別ＩＤ２９２毎に、受信データ数２９３と変更なしデータ数２９４とが記憶されている。
【００５５】
［動作］
次に、以上に説明した第３実施形態に係るサーバ装置２０の動作について説明する。図１４は、第３実施形態にかかるバイパス付加処理の一例を示すフローチャートである。図１５は、第３実施形態にかかるフィルタ処理の一例を示すフローチャートである。
【００５６】
（バイパス付加処理）
まず、第１実施形態と同様に、ステップＳ１０〜ステップＳ２２の処理が実行される。ステップＳ２２では、抽出された逆変換ペアのフィルタに挟まれたフィルタのうちデータ変更が行われるフィルタが存在するかをチェックする（ステップＳ２２）。その結果に基づき、判定部２４は、データ変更の有無が不明なフィルタ（以下、「データ変更有無不明フィルタ」ともいう。）が存在するかを判定する（ステップＳ６０）。
【００５７】
判定部２４は、データ変更有無不明フィルタが存在すると判定した場合、データ変更有無不明フィルタが変更有無検出データテーブル２９に未登録か否かを判定する（ステップＳ６２）。データ変更有無不明フィルタが変更有無検出データテーブル２９に未登録か否かは、データ変更有無不明フィルタのＩＤと変更有無検出データテーブル２９のフィルタ種別ＩＤ２９２とを照合することにより判定してもよい。データ変更有無不明フィルタが変更有無検出データテーブル２９に未登録であると判定された場合、記憶部２３は、データ変更有無不明フィルタを変更有無検出データテーブル２９に追加し、ステップＳ２８に進む。
【００５８】
一方、判定部２４は、データ変更有無不明フィルタが存在しないと判定した場合、逆変換のペアのフィルタ間で実行されるフィルタに、データ変更が行われるフィルタが存在するかを判定する（ステップＳ２４）。データ変更が行われるフィルタが存在すると判定した場合、ステップＳ２８に進む。一方、判定部２４は、データ変更が行われるフィルタが存在しないと判定した場合、バイパス付与部２５は、抽出した逆変換のペアのフィルタ間をデータがバイパスするパスをフィルタグラフに追加し（ステップＳ２６）、ステップＳ２８に進む。
【００５９】
次に、判定部２４は、ステップＳ２８にて、抽出されたすべての逆変換のペアについてステップＳ２０〜Ｓ２６、Ｓ６０、Ｓ６２のチェックが行われたかを判定する。判定部２４は、抽出されたすべての逆変換のペアについてチェックが行われたと判定した場合、本処理を終了する。一方、判定部２４は、抽出されたすべての逆変換のペアについてチェックが完了していないと判定した場合、ステップＳ２０に戻り、ステップＳ２０以降の処理を繰り返す。
【００６０】
以上に説明したバイパス付加処理によれば、逆変換ペアのフィルタ間のフィルタのいずれかがデータ変更処理を行うかが判定される。判定の結果、逆変換ペアのフィルタ間で実行されるフィルタがデータ変更処理を行わない場合、逆変換ペアの上流側のフィルタへの入力データを下流側のフィルタの出力データとするデータのバイパスが形成される。この結果、フィルタグラフの順序を変更せずに適正なデータのバイパスを形成することで、フィルタグラフにおけるメディアデータの処理を効率的に実行することができる。
【００６１】
（フィルタ処理／フィルタのデータ変更の自動推定処理）
図１５のフィルタ処理（フィルタのデータ変更の自動推定処理を含む）では、まず、フィルタ処理部２６は、端末装置１０から送信されたメディアデータを受信すると（ステップＳ３０）、フィルタ設定変化フラグに「０」を設定する（ステップＳ７０）。次に、フィルタ処理部２６は、生成されたフィルタグラフから次のフィルタを取得する（ステップＳ３２）。
【００６２】
次に、フィルタ処理部２６は、次のフィルタがあるかを判定する（ステップＳ３４）。フィルタ処理部２６は、次のフィルタがないと判定した場合、フィルタ設定変化フラグに「１」が設定されているかを判定する（ステップＳ７２）。フィルタ処理部２６は、フィルタ設定変化フラグに「１」が設定されていないと判定した場合、逆変換のペアのフィルタ間で実行されるフィルタはデータ変更処理を行わないと判定し、本処理を終了する。
【００６３】
一方、フィルタ処理部２６は、フィルタ設定変化フラグに「１」が設定されていると判定した場合、逆変換のペアのフィルタ間で実行されるフィルタはデータ変更処理を行うと判定し、図１４の（１）に示すステップＳ１４に進む。
【００６４】
ステップＳ３４において、次のフィルタがあると判定された場合、次のフィルタにデータ（バイパスへのデータ送信を含む）を送信する（ステップＳ３６）。次に、フィルタ処理部２６は、次のフィルタのＩＤと変更有無検出データテーブル２９のフィルタ種別ＩＤ２９２に基づき、次のフィルタが変更有無検出データテーブル２９に登録されているかを判定する（ステップＳ７４）。フィルタ処理部２６は、次のフィルタが変更有無検出データテーブル２９に登録されていると判定した場合、次のフィルタに対応する変更有無検出データテーブル２９の受信データ数２９３に「１」を加算する（ステップＳ７６）。
【００６５】
次に、フィルタ処理部２６は、次のフィルタに対応する受信データ数２９３が１００の倍数かを判定する（ステップＳ７８）。フィルタ処理部２６は、次のフィルタに対応する受信データ数２９３が１００の倍数であると判定した場合、記憶部２３は、次のフィルタの受信データを記憶部２３に記憶し（ステップＳ８０）、ステップＳ３８に進む。
【００６６】
フィルタ処理部２６は、次のフィルタに対応する受信データ数２９３が１００の倍数でないと判定した場合、ステップＳ３８に進む。ここでは、受信データ数が１００の倍数であることを条件としたが、条件はこれに限られず、その他の数値の倍数であってもよい。
【００６７】
ステップＳ３８において、フィルタ処理部２６は、次のフィルタの処理（バイパス処理を含む）をフィルタ単位で実行する（ステップＳ３８）。これにより、送信データが作成される。
【００６８】
次に、フィルタ処理部２６は、次のフィルタの送信データと記憶部２３に保存した受信データとを比較し（ステップＳ８２）、次のフィルタの送信データと保存した受信データとに変化があるかを判定する（ステップＳ８４）。フィルタ処理部２６は、次のフィルタの送信データと保存した受信データとに変化があると判定した場合、データ変更フィルタテーブル２８の次のフィルタに対応するデータ変更情報２８３に「１（データ変更あり）」を設定する（ステップＳ８６）。
【００６９】
次に、フィルタ処理部２６は、フィルタ設定変化フラグに「１」を設定する（ステップＳ８８）。次に、フィルタ処理部２６は、変更有無検出データテーブル２９のフィルタ種別ＩＤ２９２に基づき、次のフィルタの登録を削除し（ステップＳ９０）、ステップＳ３２に戻り、ステップＳ３２以降の処理を繰り返す。
【００７０】
一方、ステップＳ８４において、フィルタ処理部２６は、次のフィルタの送信データと保存した受信データとに変化がないと判定した場合、次のフィルタのフィルタ種別ＩＤに対応する変更なしデータ数２９４に「１」を加算する（ステップＳ９２）。
【００７１】
次に、フィルタ処理部２６は、変更有無検出データテーブル２９の変更なしデータ数２９４が１０よりも大きいかを判定する（ステップＳ９４）。フィルタ処理部２６は、変更なしデータ数２９４が１０以下の場合、ステップＳ３２に戻り、ステップＳ３２以降の処理を繰り返す。
【００７２】
一方、フィルタ処理部２６は、変更なしデータ数２９４が１０よりも大きい場合、データ変更フィルタテーブル２８の次のフィルタのフィルタ種別ＩＤに対応するデータ変更情報２８３に「０（データ変更なし）」を設定する（ステップＳ９６）。次に、フィルタ処理部２６は、フィルタ設定変化フラグに「１」を設定する（ステップＳ８８）。次に、フィルタ処理部２６は、変更有無検出データテーブル２９のフィルタ種別ＩＤ２９２に基づき、次のフィルタの登録を削除し（ステップＳ９０）、ステップＳ３２に戻り、ステップＳ３２以降の処理を実行する。
【００７３】
このようにして、ステップＳ３２以降の処理を繰り返し実行する際、ステップＳ３４において次のフィルタがないと判定された場合、ステップＳ７２に進み、フィルタ処理部２６は、フィルタ設定変化フラグが「１」に設定されているかを判定する（ステップＳ７２）。フィルタ設定変化フラグが「１」に設定されている場合、（１）に進む。
【００７４】
これにより、フィルタ設定変化フラグが「１」に設定されている場合、図１４のステップＳ１４の処理に進む。ステップＳ１４では、フィルタ設定変化フラグが「１」に設定されている場合、逆変換のペアに挟まれたフィルタにてデータ変更が行われると判定できる。このため、ステップＳ１４において、フィルタ処理部２６は、既存のバイパスをすべて削除する。次に、フィルタ処理部２６は、再度フィルタグラフの全フィルタから逆変換のペアを抽出する（ステップＳ１６）。一つ以上の逆変換のペアが抽出された場合（ステップＳ１８で「Ｙｅｓ」）、フィルタ処理部２６は、抽出された逆変換のペアについて、ステップＳ２０、Ｓ２２〜Ｓ２８、Ｓ６０、Ｓ６２の処理を実行する。
【００７５】
以上に説明したように、第３実施形態にかかるサーバ装置２０によれば、データ変更の有無が不明なフィルタが存在する場合、そのデータ変更有無不明なフィルタが変更有無検出データテーブル２９に登録される。そして、変更有無検出データテーブル２９に登録された各フィルタについて、送信データと受信データとが一致するか否かが判断される。その結果、送信データと受信データとが同じデータである回数や頻度が予め定められた所定値（閾値）以上であれば、フィルタ設定変化フラグに「１」が設定される。フィルタ設定変化フラグに基づき、データが変更されるフィルタであるか否かが自動で判定できるため、不要なバイパスを削除することができ、適切なフィルタグラフに自動更新することができる。これにより、画像データ、音声データ、振動データ等の多様なメディアデータの処理を効率的に行うことができる。この結果、適切なフィルタグラフによるサービスを低コストでユーザに提供することができる。
【００７６】
なお、送信データと受信データとが一致する回数は、所定の間隔毎に第１のフィルタに入力されるデータと第２のフィルタから出力されるデータとが一致する度合いの指標の一つである。逆変換のペアのフィルタの入力データと他のフィルタの出力データとが一致する回数が所定の閾値以上であれば、その間に挟まれているフィルタではデータ変更は行われないと判定できる。その際の所定の閾値は可変に設定可能である。また、逆変換のペアの一のフィルタの入力データと他のフィルタの出力データとが一致するか否かを判断するサンプリングの間隔についても可変に設定可能である。
【００７７】
（ハードウェア構成例）
最後に、本実施形態に係るサーバ装置２０のハードウェア構成例について、図１６を参照して説明する。図１６は、本実施形態に係るサーバ装置２０のハードウェア構成例を示す図である。
【００７８】
サーバ装置２０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ(Random Access Memory)１０４、ＲＯＭ(Read Only Memory)１０５、ＣＰＵ(Central Processing Unit)１０６、通信Ｉ／Ｆ１０７、及びＨＤＤ(Hard Disk Drive)１０８を備える。各部はバスＢで相互に接続されている。
【００７９】
入力装置１０１は、キーボードやマウスなどを含み、サーバ装置２０に各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイを含み、各種の処理結果を表示する。
【００８０】
通信Ｉ／Ｆ１０７は、サーバ装置２０をネットワークに接続するインタフェースである。これにより、サーバ装置２０は、通信Ｉ／Ｆ１０７を介して、スマートフォンなどの端末装置１０とデータ通信を行うことができる。
【００８１】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。例えば、ＨＤＤ１０８には、各種のＤＢ情報やプログラム等が格納されている。
【００８２】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。これにより、サーバ装置２０は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａには、ＣＤ(Compact Disk)、及びＤＶＤ(Digital Versatile Disk)、ならびに、ＳＤメモリカード(SD Memory card)やＵＳＢメモリ(Universal Serial Bus memory)などがある。
【００８３】
ＲＯＭ１０５は、電源を切っても内部データを保持することができる不揮発性の半導体メモリである。ＲＯＭ１０５には、ネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ１０８」や「ＲＯＭ１０５」など）から、プログラムやデータをＲＡＭ１０４上に読み出し、バイパス付加処理、フィルタ処理、データ変更の自動推定処理等を実行することで、装置全体の制御や搭載機能を実現する演算装置である。つまり、上記ハードウェア構成により、例えば、ＣＰＵ１０６が、ＲＯＭ１０５やＨＤＤ１０８内に格納されたデータ及びプログラムを用いてバイパス付加処理、フィルタ処理、データ変更の自動推定処理を実行する。この結果、本実施形態では、フィルタグラフにおけるメディアデータの処理を効率的に実行することができる。なお、逆変換管理ＤＢ２７、データ変更フィルタテーブル２８、変更有無検出データテーブル２９は、ＲＡＭ１０４、ＨＤＤ１０８、又はネットワークを介してサーバ装置２０に接続されるクラウド上のサーバ等に格納され得る。
【００８４】
以上、サーバ装置、プログラム及び情報処理方法を上記実施形態により説明した。しかしながら、本発明にかかるサーバ装置、プログラム及び情報処理方法は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記複数の実施形態に記載された事項は、矛盾しない範囲で組み合わせることができる。また、上記サーバ装置２０の各機能は、ハードウェアにより構成されてもよく、ソフトウェアにより構成されてもよく、ハードウェアとソフトウェアとを組み合わせて構成されてもよい。
【００８５】
また、例えば、上記実施形態に係るメディア処理システム１の構成は一例であり、本発明の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
【００８６】
例えば、複数台の端末装置１０と一台のサーバ装置２０とがネットワーク３０を介して接続されているシステム形態は、本実施形態に係るメディア処理システム１の一態様であり、これに限定されない。例えば、本実施形態に係るメディア処理システム１に含まれるサーバ装置２０の台数は、１台又は２台以上であり得る。複数台のサーバ装置２０が設置される場合、バイパス付加処理及びフィルタ処理は、複数台のサーバ装置２０で分散処理され得る。なお、用途や目的に応じて、複数台のうち１台のサーバ装置２０に選択的にそれら処理機能を集約させてもよい。
【００８７】
以上の説明に関し、更に以下の項を開示する。
（付記１）
フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、該実行順番に従い前記複数のフィルタの処理を実行するサーバ装置であって、
前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出する検出部と、
前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定する判定部と、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する処理部と、
を有するサーバ装置。
（付記２）
前記検出部は、
複数組の前記ペアを検出し、
前記処理部は、
前記複数組のペアの一のペア間で実行されるフィルタがデータ変更処理を行うと判定された場合であって、該判定されたフィルタが前記複数組のペアの他のペアのフィルタである場合、前記一のペアの前記バイパス処理を行い、前記一のペアの第２のフィルタへの入力データを破棄する、
付記１に記載のサーバ装置。
（付記３）
前記判定部は、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを、前記第１のフィルタの入力データと前記第２のフィルタの出力データとが所定の回数以上一致するかに基づき判定する、
付記１又は２に記載のサーバ装置。
（付記４）
フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、前記複数のフィルタを該実行順番に従いコンピュータに実行させるプログラムであって、
前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出し、
前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定し、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する、
プログラム。
（付記５）
複数組の前記ペアを検出し、
前記複数組のペアの一のペア間で実行されるフィルタがデータ変更処理を行うと判定された場合であって、該判定されたフィルタが前記複数組のペアの他のペアのフィルタである場合、前記一のペアの前記バイパス処理を行い、前記一のペアの第２のフィルタへの入力データを破棄する、
付記４に記載のプログラム。
（付記６）
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを、前記第１のフィルタの入力データと前記第２のフィルタの出力データとが所定の回数以上一致するかに基づき判定する、
付記４又は５に記載のプログラム。
（付記７）
フィルタ毎の処理が実行される複数のフィルタの実行順番を定めたフィルタグラフを生成し、前記複数のフィルタを該実行順番に従いコンピュータが実行する情報処理方法であって、
前記フィルタグラフに含まれるフィルタのうち、第１のフィルタと該第１のフィルタの処理の逆処理を行う第２のフィルタとのペアを検出し、
前記フィルタグラフに含まれるフィルタのうち、前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを判定し、
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行わない場合、前記第１のフィルタへの入力データを前記第２のフィルタからの出力データとするバイパス処理を行い、前記第２のフィルタへの入力データを破棄する、
情報処理方法。
（付記８）
複数組の前記ペアを検出し、
前記複数組のペアの一のペア間で実行されるフィルタがデータ変更処理を行うと判定された場合であって、該判定されたフィルタが前記複数組のペアの他のペアのフィルタである場合、前記一のペアの前記バイパス処理を行い、前記一のペアの第２のフィルタへの入力データを破棄する、
付記７に記載の情報処理方法。
（付記９）
前記第１のフィルタと前記第２のフィルタとの間で実行されるフィルタがデータ変更処理を行うかを、前記第１のフィルタの入力データと前記第２のフィルタの出力データとが所定の回数以上一致するかに基づき判定する、
付記７又は８に記載の情報処理方法。
【符号の説明】
【００８８】
１：メディア処理システム
１０：端末装置
２０：サーバ装置
２１：フィルタグラフ生成部２１
２２：検出部
２３：記憶部
２４：判定部
２５：バイパス付与部
２６：フィルタ処理部
２７：逆変換管理ＤＢ
２８：データ変更フィルタテーブル
２９：変更有無検出データテーブル
【図１】
0006341078.tif 000002
【図２】
0006341078.tif 000003
【図３】
0006341078.tif 000004
【図４】
0006341078.tif 000005
【図５】
0006341078.tif 000006
【図６】
0006341078.tif 000007
【図７】
0006341078.tif 000008
【図８】
0006341078.tif 000009
【図９】
0006341078.tif 000010
【図１０】
0006341078.tif 000011
【図１１】
0006341078.tif 000012
【図１２】
0006341078.tif 000013
【図１３】
0006341078.tif 000014
【図１４】
0006341078.tif 000015
【図１５】
0006341078.tif 000016
【図１６】
0006341078.tif 000017