(57)【要約】【課題】ストリームデータに対する情報の付加、情報の隠ぺいなどのリアルタイムのデータ加工処理をネットワーク内で実行することにより、多様な利用者に対して利用者ごとにその環境に適合した内容のストリームデータを配信できるようにする。【解決手段】ネットワーク内に、それぞれ再構成可能ハードウェア計算機を備える複数の自律システム（ＡＳ）を配置する。各ＡＳが、そのＡＳに関わる負荷度を算出して負荷度に関する情報を他のＡＳとの間で交換する。受信者からの処理要求を受けたＡＳが、各ＡＳの負荷度に基づき、処理要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるよう、データ加工処理を実行すべき再構成可能ハードウェア計算機の配置を選択し、選択された再構成可能ハードウェア計算機が自システムのものであるときにはその処理を実行するハードウェア構成情報を作成して設定する。【選択図】図２
2014236465.tif 000002
【特許請求の範囲】
【請求項１】
受信者に応じてネットワーク内でストリームデータに対するデータ加工処理を行いつつ、配信者から前記受信者に対して前記ネットワークを介して前記ストリームデータを配信するデータストリーミングシステムであって、
前記ネットワーク内に配置されて相互に接続する複数の自律システムを備え、
各自律システムは、
再構成可能ハードウェア計算機として構成されてデータ加工処理を実行するストリーム処理実行ブロックと、
前記ストリーム処理実行ブロックに対してストリームデータの入出力を行うストリームデータ入出力部と、
前記ストリーム処理実行ブロック及び前記ストリームデータ入出力部の負荷度をモニターし、前記ネットワーク内の他の自律システムと負荷度情報を交換する負荷度モニター部と、
前記受信者からの処理要求を受けたときに、前記負荷度モニター部から情報に基づき、当該処理要求で要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるよう当該データ加工処理を実行すべき前記ストリーム処理実行ブロックの配置を選択し、前記選択されたストリーム処理実行ブロックが自システムのものであるときには当該データ加工処理を実行するようにハードウェア構成情報を作成して自システムのストリーム処理実行ブロックに設定する制御部と、
を備えるデータストリーミングシステム。
【請求項２】
前記制御部は、前記ストリーム処理実行ブロックに前記処理要求で要求されたデータ加工処理を行わせたとした場合における、ネットワークトラッフィク量の増減値、前記ストリーム処理実行ブロックによるリソース消費量の増減値、及び当該データ加工処理に要する時間遅延量の増減値の和として前記コストを算出する、請求項１に記載のデータストリーミングシステム。
【請求項３】
前記制御部は、前記処理要求を受け付けたときに、（１）前記処理要求に対して当該自律システムに関し単純なストリーム分岐構成を採用したときの前記コスト、（２）前記処理要求に対し他の自律システムで実行されているデータ加工処理を自システムに複製して前記ストリーム処理実行ブロックで実行させるときの前記コスト、及び（３）他の自律システムで実行されているデータ加工処理を当該他の自律システムとは異なる自律システムに移動させて実行させるときの前記コストを計算し、最小となるコストに基づいて、前記データ加工処理を実行すべきストリーム処理実行ブロックの配置を決定する、請求項２に記載のデータストリーミングシステム。
【請求項４】
受信者に応じてネットワーク内でストリームデータに対するデータ加工処理を行いつつ、配信者から前記受信者に対して前記ネットワークを介して前記ストリームデータを配信するデータストリーミング方法であって、
前記ネットワーク内に、それぞれ再構成可能ハードウェア計算機を備える複数の自律システムを配置し、
各自律システムが、当該自律システムに関わるデータトラフィック及び前記再構成可能ハードウェア計算機の負荷度を算出して前記負荷度に関する情報を他の前記自律システムとの間で交換し、
前記受信者からの処理要求を受けた自律システムが、各自律システムの前記負荷度に基づき、当該処理要求で要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるよう当該データ加工処理を実行すべき前記再構成可能ハードウェア計算機の配置を選択し、前記選択された再構成可能ハードウェア計算機が自システムのものであるときには当該データ加工処理を実行するハードウェア構成情報を作成して当該選択された再構成可能ハードウェア計算機に設定する、
データストリーミング方法。
【請求項５】
前記コストは、前記再構成可能ハードウェア計算機に前記処理要求で要求されたデータ加工処理を行わせたとした場合における、ネットワークトラッフィク量の増減値、前記再構成可能ハードウェア計算機によるリソース消費量の増減値、及び当該データ加工処理に要する時間遅延量の増減値の和として算出される、請求項４に記載のデータストリーミング方法。
【請求項６】
前記処理要求を受け付けた自律システムは、（１）前記処理要求に対して当該自律システムに関し単純なストリーム分岐構成を採用したときの前記コスト、（２）前記処理要求に対し他の自律システムで実行されているデータ加工処理を自システムに複製して前記再構成可能ハードウェア計算機で実行させるときの前記コスト、及び（３）他の自律システムで実行されているデータ加工処理を当該他の自律システムとは異なる自律システムに移動させて実行させるときの前記コストを計算し、最小となるコストに基づいて、前記データ加工処理を実行する自律システムを決定する、請求項５に記載のデータストリーミング方法。
【請求項７】
受信者に応じてストリームデータに対するデータ加工処理を行いつつ配信者から前記受信者に対して前記ストリームデータを配信するネットワーク内に分散配置される自律システム内に設けられる構成情報最適配置装置であって、
再構成可能ハードウェア計算機として構成されてデータ加工処理を実行するストリーム処理実行ブロックと、
前記ストリーム処理実行ブロックに対してストリームデータの入出力を行うストリームデータ入出力部と、
ストリーム処理実行ブロック及びストリームデータ入出力部の負荷度をモニターし、前記ネットワーク内の他の自律システムと負荷度情報を交換する負荷度モニター部と、
前記受信者からの処理要求を受けたときに、前記負荷度モニター部から情報に基づき、当該処理要求で要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるよう当該データ加工処理を実行すべき前記ストリーム処理実行ブロックの配置を選択し、前記選択されたストリーム処理実行ブロックが自システムのものであるときには当該データ加工処理を実行するようにハードウェア構成情報を作成して自システムのストリーム処理実行ブロックに設定する制御部と、
を備える構成情報最適配置装置。
【請求項８】
前記制御部は
前記ストリーム処理実行ブロックに前記処理要求で要求されたデータ加工処理を行わせたとした場合における、ネットワークトラッフィク量の増減値、前記ストリーム処理実行ブロックによるリソース消費量の増減値、及び当該データ加工処理に要する時間遅延量の増減値の和として前記コストを算出し、
前記処理要求を受け付けたときに、（１）前記処理要求に対して当該自律システムに関し単純なストリーム分岐構成を採用したときの前記コスト、（２）前記処理要求に対し他の自律システムで実行されているデータ加工処理を自システムに複製して前記ストリーム処理実行ブロックで実行させるときの前記コスト、及び（３）他の自律システムで実行されているデータ加工処理を当該他の自律システムとは異なる自律システムに移動させて実行させるときの前記コストを計算し、最小となるコストに基づいて、前記データ加工処理を実行すべきストリーム処理実行ブロックの配置を決定する、請求項７に記載の構成情報最適配置装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介した映像ストリームなどのストリームデータの配信に関し、特に、ネットワーク内でデータ加工処理を実行することで、多様な利用者のそれぞれに対してその利用者の環境（例えば社会的環境）や要求に適合したストリームデータを配信できるようにした方法及びシステムと、そのようなシステムにおいて用いられる構成情報最適配置装置に関する。
【背景技術】
【０００２】
インターネット上で映像を生放送し、視聴者とリアルタイムの双方向コミュニケーションを行う機会が増えている。映像のストリームデータはデータ量が極めて大きいものであるから、利用者からの配信要求に応えて配信元のサーバが利用者ごとにストリームデータを配信する構成とすると、多数の利用者からの配信要求を受け付けた場合に配信元のサーバやネットワークを構成する機器に過大な負荷がかかる恐れがある。
【０００３】
そこで、ストリームデータの配信に適したネットワーク構成として、ＣＤＮ（コンテンツ配信ネットワーク：Content Delivery Network）がある。ＣＤＮは、ネットワーク上において、映像ストリームサービスの利用者に近い位置に設けられている機器に映像の複製を生成しておくことにより、多数の利用者から映像の配信要求が発生した場合でも、個々の利用者からの配信要求に対してはネットワーク上で当該利用者の近くにある機器から映像を配信するものである（非特許文献１）。このようなＣＤＮによれば、映像の配信元のサーバやネットワークを構成する機器に対して過大な負荷をかけることなく、映像配信を実行することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Zhuang, Zhenyun; et al., "Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chaining,' Parallel and Distributed Processing with Applications (ISPA), 2011 IEEE 9th International Symposium on, pp. 183-188, 26-28 May, 2011
【非特許文献２】Prasanna Sundararajan, "FPGAを用いた高性能コンピューティング," [Online], Xilinx Inc., [2013年5月17日検索], インターネット〈ＵＲＬ：http://japan.xilinx.com/support/documentation/white_papers/j_wp375_HPC_Using_FPGAs.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
映像ストリームを配信する場合、受信者すなわち視聴者が置かれている社会的環境（例えば、国、言語、文化的背景、慣習など）の違いにより、完全に同一の映像ストリームを多数の受信者に配信することが適切であるとは言えないことがある。そこで、映像のストリームデータの内容を自動的に解析し、適切な情報（例えば、翻訳）を付加したり、あるいは、不適切な情報（例えば、社会的に禁忌とされている表現）を隠すなどのデータ加工処理を施しながら配信することで、適切に加工されたストリームデータを視聴者に配信できることが望まれる。しかしながら現状では、録画済みのストリームデータに対してデータ加工処理を行う技術は確立しているものの、生放送などの映像ストリームデータに対するリアルタイム処理は非常にコストが高いので、映像ストリームデータ内容を解釈してリアルタイムに情報を付加するなどの処理は実行されておらず、そのままの映像を配信するのみである。
【０００６】
また映像のストリームデータ以外のストリームデータであっても、配信先の数が多い場合に、配信先ごとに適合したデータ加工処理を配信元においてリアルタイムで行うことが、ネットワーク負荷や配信元サーバの能力などの問題により現実的でない場合もある。
【０００７】
本発明の目的は、ストリームデータに対する情報の付加、情報の隠ぺいなどのリアルタイムのデータ加工処理をネットワーク内で実行することにより、多様な利用者に対して利用者ごとに当該利用者の環境に適合した内容のストリームデータを配信できるデータストリーミング方法及びシステムを提供することにある。
【０００８】
本発明の別の目的は、ストリームデータに対する情報の付加、情報の隠ぺいなどのリアルタイムのデータ加工処理をネットワーク内で実行することにより、多様な利用者に対して利用者ごとに当該利用者の環境に適合した内容のストリームデータを配信できるデータストリーミングシステムで用いられる構成情報最適配置装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のデータストリーミング方法は、受信者に応じてネットワーク内でストリームデータに対するデータ加工処理を行いつつ、配信者から受信者に対してネットワークを介してストリームデータを配信するデータストリーミング方法であって、ネットワーク内に、それぞれ再構成可能ハードウェア計算機を備える複数の自律システムを配置し、各自律システムが、その自律システムに関わるデータトラフィック及び再構成可能ハードウェア計算機の負荷度を算出して負荷度に関する情報を他の自律システムとの間で交換し、受信者からの処理要求を受けた自律システムが、各自律システムの負荷度に基づき、その処理要求で要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるようそのデータ加工処理を実行すべき再構成可能ハードウェア計算機の配置を選択し、選択された再構成可能ハードウェア計算機が自システムのものであるときにはそのデータ加工処理を実行するハードウェア構成情報を作成してその選択された再構成可能ハードウェア計算機に設定する。
【００１０】
本発明のデータストリーミングシステムは、受信者に応じてネットワーク内でストリームデータに対するデータ加工処理を行いつつ、配信者から受信者に対してネットワークを介してストリームデータを配信するデータストリーミングシステムであって、ネットワーク内に配置されて相互に接続する複数の自律システムを備え、各自律システムは、再構成可能ハードウェア計算機として構成されてデータ加工処理を実行するストリーム処理実行ブロックと、ストリーム処理実行ブロックに対してストリームデータの入出力を行うストリームデータ入出力部と、ストリーム処理実行ブロック及びストリームデータ入出力部の負荷度をモニターし、ネットワーク内の他の自律システムと負荷度情報を交換する負荷度モニター部と、受信者からの処理要求を受けたときに、負荷度モニター部から情報に基づき、その処理要求で要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるようそのデータ加工処理を実行すべきストリーム処理実行ブロックの配置を選択し、選択されたストリーム処理実行ブロックが自システムのものであるときにはそのデータ加工処理を実行するようにハードウェア構成情報を作成して自システムのストリーム処理実行ブロックに設定する制御部と、を備える。
【００１１】
本発明の構成情報最適配置装置は、受信者に応じてストリームデータに対するデータ加工処理を行いつつ配信者から受信者に対してストリームデータを配信するネットワーク内に分散配置される自律システム内に設けられる構成情報最適配置装置であって、再構成可能ハードウェア計算機として構成されてデータ加工処理を実行するストリーム処理実行ブロックと、ストリーム処理実行ブロックに対してストリームデータの入出力を行うストリームデータ入出力部と、ストリーム処理実行ブロック及びストリームデータ入出力部の負荷度をモニターし、ネットワーク内の他の自律システムと負荷度情報を交換する負荷度モニター部と、受信者からの処理要求を受けたときに、負荷度モニター部から情報に基づき、その処理要求で要求されたデータ加工処理を行った場合のコストを計算してコストが最小となるようそのデータ加工処理を実行すべきストリーム処理実行ブロックの配置を選択し、選択されたストリーム処理実行ブロックが自システムのものであるときにはそのデータ加工処理を実行するようにハードウェア構成情報を作成して自システムのストリーム処理実行ブロックに設定する制御部と、を備える。
【発明の効果】
【００１２】
本発明によれば、再構成可能ハードウェア計算機を備える自律システムをネットワーク内に分散配置し、各再構成可能ハードウェア計算機の負荷度やネットワークの負荷度などに応じたコスト計算により、ストリームデータに対するデータ加工処理を実行する自律システムを決定してそのデータ加工処理に対応するハードウェア構成情報を再構成可能ハードウェア計算機に設定するので、インターネットなどのネットワーク上でストリーム配信を行う配信者とそれらストリームデータを適切に加工したものを受信する受信者の分布を考慮して、必要とされる処理ブロックをネットワーク内に適切に配置することが可能となる。これにより、データ処理に必要な計算機資源コストとトラッフィクコストの総量を削減することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明に基づくデータストリーミング方法が適用されるべきネットワークの構成の一例を示す図である。
【図２】本発明の実施の一形態のデータストリーミングシステムの構成を示すブロック図である。
【図３】再構成可能ハードウェア計算機としてのストリーム処理実行ブロックを備える構成情報最適配置装置の構成を示すブロック図である。
【図４】構成情報最適配置装置の制御部の処理を示すフローチャートである。
【図５】単純なストリーム分岐構成を採用した場合の処理ブロックの配置例を示す図である。
【図６】他のＡＳ（自律システム）で実行されている処理ブロックを自ＡＳの装置に複製して実行する構成を採用した場合の処理ブロックの配置例を示す図である。
【図７】他のＡＳの装置で実行されている処理ブロックを別のＡＳの装置に移動、または縮約して実行する構成を採用した場合の処理ブロックの配置例を示す図である。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態について、図面を参照して説明する。
【００１５】
まず、本発明に基づくデータストリーミング方法が適用されるべきネットワークについて、図１を参照して説明する。図１は、リアルタイムで映像をストリームデータとして配信するネットワークの一例を示している。
【００１６】
リアルタイム映像を配信する場合、プライバシーの保護等の観点から、個人の特定に繋がるような必要以上の情報が映像中に入り込まないことが、配信者側に要求される場合がある。このような場合、配信者は、例えば画像中に映り込む人物の顔にぼかしを入れたり、人物の声を変調して個人の特定を困難にする。あるいは、レポーターが何らかの事件の現場報道を行っている映像である場合には、例えば、レポーターの周囲の環境映像にぼかしを入れてレポート地の特定を困難にするなどの配慮をする。
【００１７】
また、映像ストリームデータを世界全体に向けて配信する場合、配信がより多くの受信者にとって有益で利便性の高いものとなるためには、音声の自動認識・自動翻訳による多言語の字幕挿入は重要な要素になる。また、各国の文化、習慣に即して映像を編集することも重要な要素になる。
【００１８】
図１に示した例では、配信者１１０（ここでは、実際に映像を撮影している者とし、図ではカメラのシンボルで示されている）が、日本国内のある場所から不特定多数に向けてリアルタイム配信を行っており、受信者１１１（ここではリアルタイム配信された映像を視聴している者であり、図ではディスプレイのシンボルで示されている）は、日本国内にいる受信者とする。この場合、受信者１１１は日本国内に在住する者であり、受信者１１１に対しては日本国内の放送倫理に従った配信をする必要性が有ることを鑑みると、受信者１１１が受信する配信映像には、場所を特定するような必要以上の情報は隠ぺいされていることが望ましい。
【００１９】
日本国内の受信者１１１に配信されるべき映像情報に対するこのようなデータ加工処理は、機能ごとにまとめられた処理ブロック１０１〜１０４を組み合わせ、処理ブロック１０１から処理ブロック１０４の順で映像ストリームデータに対して処理を行うことで実現できる。
【００２０】
処理ブロック１０１は、撮影装置の手揺れなどに起因する画像ブレを補正する画像揺れ補正処理を実行する。画像揺れ補正処理を実行する処理ブロック１０１は、例えば、比較的小さな揺れを補正するために撮像装置（カメラ）内に内蔵される機械駆動の手振れ補正機構であってもよいし、あるいは、撮像装置とは別個に設けられ、画像全体のオプティカルフローを元にして画角の大きな揺れを補正する機能を有するものであってもよい。
【００２１】
処理ブロック１０２は、映像から画像特徴量を計算する特徴量計算処理を実行する。映像の中に映り込んでいる物体を識別するための前処理として、映像そのものではなく、識別に有効とされる画像特徴量（例えば、ＨＯＧ(Histogram of Oriented Gradient)、ＳＩＦＴ(Scale-Invariant Feature Transform)、Ｈａａｒ−Ｌｉｋｅなど）を計算することが一般的である。したがって処理ブロック１０２は、物体認識のために、処理ブロック１０１から出力される映像ストリームデータから画像特徴量を算出する。この例では、処理ブロック１０２は、ＨＯＧ特徴量を計算する特徴量計算処理ブロックであるものとする。
【００２２】
処理ブロック１０３は、処理ブロック１０２で算出された画像特徴量から、画像中に映っている特定の物体を見つけ出す物体認識処理を実行する。物体認識処理としては、サポートベクターマシン（ＳＶＭ）、適応ブースティング（Adaptive Boosting(Adaboost)）などの種々の機械学習アルゴリズムが用いられることが一般的である。人物、顔、車両、交通標識など、認識したい対象に応じて処理ブロック１０２の特徴量計算処理と処理ブロック１０３の物体認識処理とを組み合わせることにより、実用的な自動画像認識が可能になる。この例では処理ブロック１０３は、映像中の人物を検出する認識処理ブロックであるものとする。
【００２３】
処理ブロック１０４は、処理ブロック１０３での物体認識処理の結果を受けて、映像中の特定の物体に対してぼかしを重畳させる（オーバーレイする）画像合成処理を実行する。この例では、処理ブロック１０４は、映像中の人物とその近傍のみを残し、他の環境風景に対してぼかし処理を行う画像合成処理を行う。
【００２４】
その結果、図１において符号１２０に示されるような映像を配信者１１０が撮影し配信しようとしたとすると、受信者１１１には、環境風景に対するぼかし処理が行われた符号１２１に示されるような映像が提示される。
【００２５】
また、配信者１１０からの配信映像は、日本国外の受信者１１２に対しても行われる。配信者１１０によるナレーションが自動翻訳され、字幕として配信映像に追加されていることは、国外の受信者１１２にとって利便性が高い。また、受信者１１２の居住地における社会背景として女性の顔や肌の露出が避けられるべきものであるとすると、配信映像中の女性の顔や肌は隠されることが好ましい。このような受信者１１２に対するデータ加工処理は、図１中の機能ごとにまとめられた処理ブロック１０５〜１０７を組み合わせて実現することができる。
【００２６】
処理ブロック１０５は、処理ブロック１０５と同様に、処理ブロック１０２で得られた画像特徴量から、映像中に映っている特定の物体を見つけ出す物体認識処理を実行する。ここでは、処理ブロック１０５は、映像中の女性を検出する画像認識処理を実行する。
【００２７】
処理ブロック１０６は、配信される映像ストリームデータ中の音声に対して音声認識を行い、音声認識結果に基づいて自動翻訳を行う翻訳処理を実行する。翻訳処理による結果は、例えば、テキストデータとして出力される。現状の言語処理技術では完全な音声認識や自動翻訳を行うことは困難であるが、部分的に音声認識及び翻訳が可能となるだけでも受信者１１２にとってリアルタイム配信の利便性が向上する。
【００２８】
処理ブロック１０７は、女性を検出する画像認識処理を行う処理ブロック１０５の結果と、翻訳処理を行う処理ブロック１０６との結果を受けて、配信される映像中の女性の顔に例えばブルカなどの画像を重畳させ、映像に対して翻訳テキストを挿入する画像合成処理を実行する。その結果、図１において符号１２０に示されるような映像を配信者１１０が撮影し配信しようとしたとすると、受信者１１２には、符号１２３で示すような映像が提示されることになる。
【００２９】
上述した各処理ブロック１０１〜１０７での処理は、映像配信をリアルタイムに行うためには高速に実行される必要がある。しかも処理ブロックで処理すべき内容は、受信者によって配信が要求されたストリームの内容によって変化し得る。また、ネットワークを構成する機器への負荷を軽減するためには、配信元のサーバ等で一元的に実行するのではなく、ネットワーク上のトラフィック量や処理の内容に応じてこれらの処理をネットワーク内で分散して実行することが好ましい。
【００３０】
そこで、本実施形態のデータストリーミング方法では、処理ブロック１０１〜１０７による処理（特に、手ぶれ補正を除いた処理ブロック１０２〜１０７の処理）の各々を再構成可能なハードウェア計算機上で実行することとし、これらの再構成可能ハードウェア計算機をネットワーク内に分散配置する。
【００３１】
ここで再構成可能ハードウェア計算機について説明すると、再構成可能ハードウェア計算機とは、多種多様の計算ユニットとそれらの計算ユニット間を接続するスイッチ網とを備え、ハードウェア構成情報（例えば、どのような計算ユニットを用いてどのように配線するかの情報）を与えることにより、ハードウェア構成情報によって定義されるハードウェア処理ブロックとして機能するもののことである。例えば、再構成可能ハードウェア機器は、半導体集積回路であるＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ(Field-Programmable Gate Array)）によって構成され、ＨＤＬ（ハードウェア記述言語：Hardware Description Language）で記述されるハードウェア構成情報をそのＦＰＧＡに書き込めるようにしたものである。ＦＰＧＡの回路規模によっては、そのＦＰＧＡを複数の処理ブロックして機能させ、これら処理ブロックを並列または連携動作させることも可能である。これにより、再構成可能ハードウェア計算機は、例えば非特許文献２に記載されるように、ＨＰＣ（高性能計算：High-Performance Computation）と呼ばれるような高速計算を実行することができ、また、適切なハードウェア構成によって必要な時だけ当該計算機器を実行することが可能となり、計算資源の効率的な利用が達成される。
【００３２】
図１に示したネットワークシステムにおいて、処理ブロック１０１〜１０７の各々を再構成可能ハードウェア計算機によって構成する場合には、そのような処理ブロックを実現するためのハードウェア構成情報をＦＰＧＡなどからなる再構成可能ハードウェア計算機に読み込ませることにより、受信者の要求に応じてそのような処理ブロックが再構成可能ハードウェア計算機上に生成されて、実行されることになる。
【００３３】
配信者から多種多様な多数の受信者（例えば、世界各地に分布している受信者）に対し、ネットワーク中でそれぞれの受信者に適合したデータ加工処理を行いながらストリームデータを配信することを考えると、受信者の分布とネットワークのトポロジーとに応じ、ネットワーク内に分散配置されている複数の再構成可能ハードウェア計算機の間で、効率的な処理の集約、処理ブロックの共有、処理ブロックの適切な配置を行うことが好ましい。処理の集約や処理ブロックの共有、配置を適切に行うことは、結局は、各再構成可能ハードウェア計算機に与えられるハードウェア構成情報をどのようなものにするか、という問題に帰着する。したがって本発明に基づくデータスケジューリング方法は、ネットワーク内に配置されている各再構成可能ハードウェア計算機に読み込ませるべきハードウェア構成情報をネットワーク上に最適配置することも含んでいる。
【００３４】
図２は、本発明の実施の一形態のデータストリーミングシステムを示している。このデータストリーミングシステムは、図１で説明したネットワークシステムを実現するものであって、特に、図１に示すシステムにおける各処理ブロック１０１〜１０７をネットワーク内に配置された再構成可能ハードウェア計算機２０２，２０３，２０５によって実現するようにしたものである。なお、図２に示した例は、映像ストリームデータをインターネットを介して配信するものであるが、本発明のデータストリーミングシステムは、映像ストリームデータの配信に限定されるものではなく、また、インターネットを利用するものに限定されるものではない。
【００３５】
映像ストリームデータを配信する配信者１１０のエンドユーザ端末２０１と、映像ストリームデータの配信を受ける受信者１１１，１１２のエンドユーザ端末２０４，２０６が設けられている。ここで配信者１１０及び受信者１１１は日本国内にいるものとし、受信者１１２は日本国外、特に、女性の顔や肌の露出が避けられるべきものであるとされている社会背景の下にいるものとする。
【００３６】
配信者１１０のエンドユーザ端末２０１は、アクセス網２１１を介してＡＳ（自律システム：Autonomous System）２１４に接続し、受信者１１１，１１２のエンドユーザ端末２０４，２０６は、それぞれ、アクセス網２１２，２１３を介してＡＳ２１５，２１６に接続している。ＡＳ２１４〜２１６を相互に接続するＡＳ間ネットワークとして、インターネット２１０が用いられている。ＡＳ２１４〜２１６には、それぞれ、再構成可能ハードウェア計算機２０２，２０３，２０５が所属している。したがって、各ＡＳに属している再構成可能ハードウェア計算機２０２，２０３，２０５は、いずれも、他のＡＳやアクセス網２１１〜２１３を介して、エンドユーザ端末２０１，２０４，２０６と繋がっていることになる。
【００３７】
このように再構成可能ハードウェア計算機２０２，２０３，２０５がネットワーク内に配置されているとして、図１に示した処理ブロック１０１〜１０７の処理をそれぞれどの再構成可能ハードウェア計算機に割り当てればよいかを考える。
【００３８】
処理ブロック１０１，１０２での処理は、受信者１１１，１１２の両方に必要とされる処理であるため、共通の再構成可能ハードウェア計算機で処理させたものを両者に配分することで、計算機資源の削減が可能になる。したがって、処理ブロック１０１，１０２の処理をＡＳ１４に属する再構成可能ハードウェア計算機２０２で実行させることで、受信者１１１のために再構成可能ハードウェア計算機２０３を用い受信者１１２のために再構成可能ハードウェア計算機２０５を用いる場合に比べ、使用する計算機資源が少なくて済む。
【００３９】
これに対し、処理ブロック１０３，１０４の処理結果は受信者１１１のみが必要とし、処理ブロック１０５〜１０７の処理結果は受信者１１２のみが必要としているため、受信者１１１に近い方のＡＳ２１５に属する再構成可能ハードウェア計算機２０３で処理ブロック１０３，１０４の処理を実行し、受信者１１２に近い方のＡＳ２１６に属する再構成可能ハードウェア計算機２０５で処理ブロック１０５〜１０７の処理を実行することで、処理ブロックの出力結果の送信に要するネットワークトラフィク量を削減することができる。処理ブロック１０５〜１０７の処理を配信者１１０に近いＡＳ２１４に属する再構成可能ハードウェア計算機２０２で実行した場合には、処理結果のデータも含めた増加したデータが、受信者１１２に到達するまでにインターネット上の経路を流れることになり、ネットワーク全体のトラフィックコストを増加させてしまう。処理ブロック１０３，１０４の場合も同様である。
【００４０】
上述した例において、処理ブロック１０１の処理をエンドユーザ端末２０１において実行するような利用形態、さらには、配信者１１０のカメラの内部で実行する形態も考えられる。また、必要に応じ、処理ブロック１０４，１０７の処理をそれぞれエンドユーザ端末２０４、２０６において実行するような利用形態も考えられる。
【００４１】
どの処理ブロックの処理をどの再構成可能ハードウェア計算機に実行させれば最適であるかについて説明する。一般論として、ある処理ブロックにおいて、その処理ブロックに入力されるデータが処理結果のデータによって差し替えられ、入力されるデータ量に比べて出力されるデータ量が減少する場合、その処理ブロックの処理ができるだけ配信者側に近い計算機で実行されることが、インターネットを流れるトラッフィク量総量の削減につながるし、受信者ごとの処理ブロックが物理的に共通化されることにより、必要とされる計算機資源の総量コストも削減することができる。
【００４２】
これに対し、ある処理ブロックにおいて、その処理ブロックに入力されるデータに処理結果のデータが追加されることによって、出力されるデータ量が入力されるデータ量より増加する場合、処理ブロックの処理ができるだけ受信者側に近い計算機で実行されることが、インターネットを流れるトラッフィク量総量の削減につながる。その一方で、多数の受信者が存在することを想定すると、各受信者に近い複数の再構成可能ハードウェア計算機の各々で、同じ処理ブロックの動作がそれぞれ実行されることになるため、必要とされる計算機資源の総量コストは増大してしまう。そのため、配信者と受信者の分布を考慮し、必要とされる処理ブロックの処理を適切に再構成可能ハードウェア計算機に配置することで、計算機資源コストとトラッフィクコストの総量を最小にする。
【００４３】
次に、各処理ブロックの処理を最適に各再構成可能ハードウェア計算機に配置するために、各ＡＳに設けられる構成情報最適配置装置について、図３を用いて説明する。
【００４４】
構成情報最適配置装置３０１は、再構成可能ハードウェア計算機とその再構成可能ハードウェア計算機にハードウェア構成情報を設定するための処理部とを一体化したものであって、各ＡＳごとに１つ、または複数設けられるものである。構成情報最適配置装置３０１は、ＦＰＧＡなどの再構成可能ハードウェア計算機であって、与えられたハードウェア構成情報をもとに生成された実行可能な回路を実現し、その回路によってストリームデータに対してデータ加工処理を実行するストリーム処理実行ブロック３０２と、ストリーム処理実行ブロック３０２へのストリームデータの入力と出力を行い、そのデータ流量を計測するストリームデータ入出力部３０３と、ストリーム処理ブロック３０２の動作を監視ししてストリーム処理ブロック３０２の負荷度をモニターし、データ流量計測に基づいてストリームデータ入出力部３０３の負荷度をモニターする負荷モニター部３０４と、負荷モニター部３０４からの情報（すなわち負荷度情報）に基づき、ストリーム処理実行ブロック３０２に対するハードウェア構成情報を決定する制御部３０５と、から構成されている。本実施形態では、各処理ブロックの処理がそれぞれ最適な再構成可能ハードウェア計算機で実行されるように、各ＡＳに設けられる構成情報最適配置装置３０１の負荷モニター部３０４は、同一または他のＡＳに配備されている他の構成情報最適配置装置３０１との間で、負荷度情報（自構成情報最適配置装置でのストリーム処理実行ブロック３０２の負荷度とストリームデータ入出力部３０３の負荷度）を相互に交換する。ストリーム処理実行ブロック３０２の負荷度には、そのストリーム処理実行ブロック３０２において現在実行している処理ブロックについての情報も含まれる。また、ネットワークトポロジーに基づいてストリームデータ入出力部３０３の負荷度を加算すれば、処理ブロックの処理に関連してネットワーク内での各場所で発生するデータトラフィック量を求めることができる。
【００４５】
制御部３０５は、自装置の負荷度と他装置の負荷度とに基づいて、自装置のストリーム処理実行ブロック３０２に対するハードウェア構成情報を決定してストリーム処理実行簿ロック３０２に設定する。すなわち制御部３０５は、自装置においてその処理を実行することとなる処理ブロックを決定することとなる。また制御部３０５は、自装置でのハードウェア構成情報の決定に伴って、他装置で実行されるべき処理ブロックについての変更が生じる場合には、当該他装置の制御部３０５に対し、当該他装置で実行する処理ブロックを変更する指示を送信する。一方、制御部３０５は、他装置からそのような変更の指示を受け取ったときには、その指示に合わせ、自装置のハードウェア構成情報を変更してストリーム処理実行ブロック３０２に設定する。
【００４６】
図４は、制御部３０５におけるハードウェア構成情報の決定の処理を示している。
【００４７】
制御部３０５は、自装置が属するＡＳに接続していエンドユーザ端末からのストリーム処理の生成要求を待ち受けている。ステップ４０１において、エンドユーザ端末からのストリーム処理の生成要求を受信すると、制御部３０５は、ステップ４０２において、エンドユーザ端末からの要求に応じて、必要となる処理ブロックの配置及び配線のコストＣを算出する。このとき、制御部３０５は、（１）単純なストリーム分岐構成を採った場合、（２）他のＡＳの装置で実行されている処理ブロックの処理を自ＡＳの装置に複製して実行する構成を採った場合、及び（３）他のＡＳの装置で実行されている処理ブロックの処理を別のＡＳの装置に移動または縮約して実行する構成を採った場合、の３つの仮想構成について、それぞれコストＣを算出する。コストの算出は、ネットワークトラッフィク量Ｔ、処理ブロックの処理を実行させたときの再構成可能ハードウェア計算機におけるリソース消費量Ｒ、ストリーム処理に要する時間遅延量Ｄ、の３つの量に関し、現在の状態に対し、その要求されたストリーム処理を新規に実行することとした場合に発生する増減分を算出することによって行われる。ネットワークトラフィック量Ｔの増減値を無名数に変換したもの、すなわち無名数で表したものをΔＴ、リソース消費量Ｒの増減値を無名数で表したものをΔＲ、時間遅延量Ｄの増減値を無名数で表したものをΔＤとすれば、コストＣは、例えば、
Ｃ＝ΔＴ＋ΔＲ＋ΔＤ
と表すことができる。
【００４８】
次に制御部３０５は、ステップ４０３において、上記の仮想構成（１）〜（３）の各々の場合について算出されたコストＣを比較し、コストＣが最小となる仮想構成を採用して、当該仮想構成での処理ブロックの配置となるように自装置のストリーム処理実行ブロック３０２に対するハードウェア構成情報を決定してストリーム処理実行ブロック３０２に設定する。
【００４９】
以下、仮想構成（１）〜（３）の各々の詳細について説明する。
【００５０】
図５は、単純なストリーム分岐構成を採った場合（仮想構成（１））での配置配線例を示している。初期状態として、（ａ）に示すように、配信者１１０からＡＳ５０１を介して受信者１１３にストリームデータが配信されており、ＡＳ５０１では、配信されるストリームデータに対し、処理ブロックａと処理ブロックｂによるデータ加工処理が行われている。ここで、ＡＳ５０２に属する受信者１１４から同じストリームデータ処理の要求が発生したとすると、単純なストリーム分岐構成では、（ｂ）に示すように、既存のストリームデータ処理の結果を分岐して、そのまま受信者１１４に配信する。ＡＳ５０２は、ストリームを転送するのみであって、それに属する処理ブロックが動作させられることはない。したがって、ＡＳ５０２内の構成情報最適配置装置３０１の制御部３０５は、（転送を除いて）何も実行しないというハードウェア構成情報を生成することになる。この場合、追加となるコストは、分岐されたストリームデータの転送によるネットワークトラッフィク量の増加と、そのデータ転送に要する遅延量である。
【００５１】
図６は、他のＡＳの装置で実行されている処理ブロックを自ＡＳの装置に複製して実行する構成を採った場合（仮想構成（２））での配置配線例を示している。（ａ）は初期状態を示しているが、これは図５の（ａ）に示すものと同じである。ここで、ＡＳ５０２に属する受信者１１４から同じストリームデータ処理の要求が発生したとする。ここでは（ｂ）に示すように、既にＡＳ５０１で実行されている処理ブロックの一部、図示した例で処理ブロックｂの複製を、自ＡＳであるＡＳ５０２にも生成する。ＡＳ５０２内の構成情報最適配置装置３０１の制御部３０５は、処理ブロックｂの処理を実行するというハードウェア構成情報を生成することになる。この場合、追加となるコストは、ＡＳ５０２において処理ブロックｂを実行するために必要な再構成可能ハードウェア計算機のリソース量と、ＡＳ５０１の処理ブロックａとＡＳ５０２の処理ブロックｂの間のストリームデータ転送、及び、ＡＳ５０２の処理ブロックｂと受信者の間のストリームデータ送信に要するネットワークトラッフィク量である。
【００５２】
図７は、他のＡＳの装置で実行されている処理ブロックをそれとは別のＡＳの装置に移動して実行する構成を採った場合（仮想構成（３））での配置配線例を示している。（ａ）は初期状態を示しているが、これは、図６の（ｂ）に示すものと同じである。ここで、ＡＳ５０３に属する受信者１１５から同じストリームデータ処理の要求が発生したとする。ここでは（ｂ）に示すように、既にＡＳ５０１で実行されている処理ブロックｂとＡＳ５０２で実行されている処理ブロックとのいずれをも、これらのＡＳとは異なる第３のＡＳであるＡＳ５０３に移動する。その結果、処理ブロックｂが行うべき処理に関して、ＡＳ５０３の処理ブロックｂが共通して使われることになり、再構成可能ハードウェア計算機の使用リソースが削減（縮約）される。この構成では、既に実行されているストリーム処理のデータフローにも影響がおよび、構成を変更する前後における、ストリームデータの転送に要するネットワークトラッフィク量の増減、及び、構成変更前に実行されていたストリームデータ処理の遅延量の増減が、コスト増減分として計算される。
【００５３】
また、図７に示した例では、処理ブロックｂがＡＳ５０３に集約されることとなるので、ＡＳ５０３の構成情報最適配置装置３０１の制御部３０５は、処理ブロックｂの処理を実行させるハードウェア構成情報を生成して自装置のストリーム処理実行ブロック３０２に設定するとともに、ＡＳ５０１及びＡＳ５０２の制御部３０５に対し、処理ブロックｂの処理を行わないように変更の指示を送信する。この変更の指示を受けて、ＡＳ５０１及びＡＳ５０２の制御部３０５は、処理ブロックｂの処理の実行を削除したハードウェア構成情報を生成して、当該制御部の属する装置のストリーム処理実行ブロック３０２に設定する。
【００５４】
いずれかのＡＳに属する受信者が、既にシステム上で実行されているデータ加工処理とは異なる処理を必要とするストリームデータ処理を要求する場合がある。例えば、ネットワーク内で処理ブロックａと処理ブロックｂとが実行されている場合に、これらとは異なる処理ブロックｘによる処理が要求されることがある。そのような場合、処理要求を受け付けたＡＳの構成情報最適配置装置３０１の制御部３０５は、仮想構成（２）の場合と同様の手順で自装置において処理ブロックｘの処理を実行したときのコストと、仮想構成（３）の場合と同様の手順で他装置において処理ブロックｘの処理を実行したときのコストとを算出し、コスト比較に基づき、自装置において処理ブロックｘの処理を実行するか、他装置において処理ブロックｘの処理を実行するかを決定する。自装置で実行する決定した場合には、制御部３０５は、処理ブロックｘの処理を実行するようなハードウェア構成情報を生成して設定し、他装置で実行する決定した場合には、当該他装置に対し処理ブロックｘの処理を実行するように変更の指示を送信する。
【００５５】
サービス事業者がネットワーク上で分散配置された再構成可能ハードウェア計算機を運営しているとして、上記のデータストリーミング方法及びシステムによれば、そのサービス事業者は、ハードウェア構成情報を適切に再構成可能ハードウェア計算機に配置及び設定できるようになり、その結果、ストリーミングデータに対する処理の低遅延化とネットワーク上の計算機器コストの最小化とを実現することが可能になる。
【符号の説明】
【００５６】
１０１〜１０７    処理ブロック
１１０    配信者
１１１〜１１５    受信者
２０１，２０４，２０６    エンドユーザ端末
２０２，２０３，２０５    再構成可能ハードウェア計算機
２１０    インターネット（ＡＳ間ネットワーク）
２１１〜２１３    アクセス網
２１４〜２１６，５０１〜５０３    ＡＳ（自律システム）
３０１    構成情報最適配置装置
３０２    ストリーム処理実行ブロック
３０３    ストリームデータ入出力部
３０４    負荷モニター部
３０５    制御部
【図２】
2014236465.tif 000003
【図３】
2014236465.tif 000004
【図４】
2014236465.tif 000005
【図５】
2014236465.tif 000006
【図６】
2014236465.tif 000007
【図７】
2014236465.tif 000008
【図１】
2014236465.tif 000009