(57)【特許請求の範囲】
【請求項１】
データを配信するソースと、配信されたデータを処理するシンクとを有するデータ配信システムであって、
前記ソースは、画像データを配信する場合、当該画像データの輝度情報、周波数情報、セグメント情報及び座標情報のうち少なくとも１つに基づいて複数の成分又は部分画像に分解し、分解した画像データ毎に、当該画像データの成分又は部分画像を示すメタデータをパケットのヘッダに付与して配信し、当該データ配信システムは、
前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、当該パケットに付加情報を付与して転送するマーカと、
前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するフィルタと、
を有するデータ配信システム。
【請求項２】
データを配信するソースと、配信されたデータを処理するシンクとを有するデータ配信システムであって、
前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダから得られるサイズと、当該受信したパケットの直前に受信したパケットのヘッダから得られるサイズとの比較に基づいて、当該パケットに付加情報を付与して転送するマーカと、
前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するフィルタと、
を有するデータ配信システム。
【請求項３】
データを配信するソースと、配信されたデータを処理するシンクとを有するデータ配信システムであって、
前記ソースは、配信するデータを複数の部分データに分解し、部分データの種別を示すメタデータをパケットのヘッダに付与して配信し、当該データ配信システムは、
前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、部分データの種別が切り替わる境目のパケットに付加情報を付与して転送するマーカと、
前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するフィルタと、
を有するデータ配信システム。
【請求項４】
前記マーカは、パケット毎に付加情報を付与する、請求項１又は２に記載のデータ配信システム。
【請求項５】
前記マーカは、パケットのヘッダ又はペイロードに付加情報を付与する、請求項１乃至４のうちいずれか１項に記載のデータ配信システム。
【請求項６】
前記マーカは、付加情報として２値情報又はセマンティックス情報を付与する、請求項１乃至５のうちいずれか１項に記載のデータ配信システム。
【請求項７】
前記フィルタは、前記シンクに転送すべきパケットの転送が終了した場合、転送終了通知を前記シンクに送信する、請求項１乃至６のうちいずれか１項に記載のデータ配信システム。
【請求項８】
前記シンクが要求するデータの内容を示すシンク要求通知を受信し、前記シンク要求通知に応じて前記マーカにおける付加情報の付与の設定及び前記フィルタにおける転送可否の設定を行うコントローラを更に有する、請求項１乃至７のうちいずれか１項に記載のデータ配信システム。
【請求項９】
データを配信するソースと、配信されたデータを処理するシンクとを有し、前記ソースと前記シンクとの間に介在するマーカ及びフィルタを更に有するデータ配信システムにおけるデータ配信方法であって、
前記ソースが、画像データを配信する場合、当該画像データの輝度情報、周波数情報、セグメント情報及び座標情報のうち少なくとも１つに基づいて複数の成分又は部分画像に分解し、分解した画像データ毎に、当該画像データの成分又は部分画像を示すメタデータをパケットのヘッダに付与して配信するステップと、
前記マーカが、前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、当該パケットに付加情報を付与して転送するステップと、
前記フィルタが、前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するステップと、
を有するデータ配信方法。
【請求項１０】
データを配信するソースと、配信されたデータを処理するシンクとを有し、前記ソースと前記シンクとの間に介在するマーカ及びフィルタを更に有するデータ配信システムにおけるデータ配信方法であって、
前記マーカが、前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダから得られるサイズと、当該受信したパケットの直前に受信したパケットのヘッダから得られるサイズとの比較に基づいて、当該パケットに付加情報を付与して転送するステップと、
前記フィルタが、前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するステップと、
を有するデータ配信方法。
【請求項１１】
データを配信するソースと、配信されたデータを処理するシンクとを有し、前記ソースと前記シンクとの間に介在するマーカ及びフィルタを更に有するデータ配信システムにおけるデータ配信方法であって、
前記ソースが、配信するデータを複数の部分データに分解し、部分データの種別を示すメタデータをパケットのヘッダに付与して配信するステップと、
前記マーカが、前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、部分データの種別が切り替わる境目のパケットに付加情報を付与して転送するステップと、
前記フィルタが、前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するステップと、
を有するデータ配信方法。
【請求項１２】
データを配信するソースと、配信されたデータを処理するシンクとの間に介在するマーカであって、
前記ソースから配信される画像データが輝度情報、周波数情報、セグメント情報及び座標情報のうち少なくとも１つに基づいて複数の成分又は部分画像に分解されたときの分解後の画像データ毎に、当該画像データの成分又は部分画像を示すメタデータがヘッダに付与されたパケットを、前記ソースから受信する受信部と、
当該受信したパケットのヘッダに付与されたメタデータに基づいて、当該パケットに付加情報を付与する付加情報付与部と、
前記付加情報が付与されたパケットを、前記シンクへの当該パケットの転送可否を判断するフィルタに転送する転送部と、
を有するマーカ。
【請求項１３】
データを配信するソースと、配信されたデータを処理するシンクとの間に介在するマーカであって、
前記ソースから配信されたパケットを受信する受信部と、
当該受信したパケットのヘッダから得られるサイズと、当該受信したパケットの直前に受信したパケットのヘッダから得られるサイズとの比較に基づいて、当該パケットに付加情報を付与する付加情報付与部と、
前記付加情報が付与されたパケットを、前記シンクへの当該パケットの転送可否を判断するフィルタに転送する転送部と、
を有するマーカ。
【請求項１４】
データを配信するソースと、配信されたデータを処理するシンクとの間に介在するマーカであって、
前記ソースから配信されるデータが複数の部分データに分解されたときの分解後の部分データ毎に、当該部分データの種別を示すメタデータがヘッダに付与されたパケットを、前記ソースから受信する受信部と、
当該受信したパケットのヘッダに付与されたメタデータに基づいて、部分データの種別が切り替わる境目のパケットに付加情報を付与する付加情報付与部と、
前記付加情報が付与されたパケットを、前記シンクへの当該パケットの転送可否を判断するフィルタに転送する転送部と、
を有するマーカ。
【請求項１５】
請求項１２に記載のマーカの各部としてコンピュータを機能させるためのプログラム。
【請求項１６】
請求項１３に記載のマーカの各部としてコンピュータを機能させるためのプログラム。
【請求項１７】
請求項１４に記載のマーカの各部としてコンピュータを機能させるためのプログラム。
【請求項１８】
前記コントローラは、前記ソースのソース能力と、前記マーカのマーカ能力と、前記フィルタのフィルタ能力とを取得し、前記ソース能力と前記マーカ能力と前記フィルタ能力に基づいて、前記マーカにおける付加情報の付与の設定及び前記フィルタにおける転送可否の設定を行う、請求項８に記載のデータ配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ配信システム、データ配信方法、マーカ、フィルタ及びプログラムに関する。
【背景技術】
【０００２】
映像などのデータストリームを複数の利用者に対して配信する場合において、解像度やフレームレート、座標領域などに関する異なる要求を持つ利用者に対して適したストリームを配信するＭＰＥＧ−ＤＡＳＨ（Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP）が提案されている（非特許文献１参照）。【０００３】
ＭＰＥＧ−ＤＡＳＨでは、ストリームの配信元ノードが、配信先ノードが要求する可能性のある解像度やフレームレート、座標領域などの組合せに応じたエンコードなどの処理を実施して配信予定のデータを準備しておき、接続してきた配信先ノードからの要求ないしは通信中の要求の変動に応じて準備してあるデータから最も適したデータを配信することで、配信先ノードが持つ複数の異なる要求に同時に対応することを可能とする。【０００４】
一方、同じ要求を持つ複数の配信先に対して、同じ内容を一斉配信するための技術として、マルチキャスト技術がある（非特許文献２参照）。マルチキャスト技術では、ネットワーク上でデータの転送を担う中間ノード（ルータ等）が上流から受信したデータを下流に複製して配信する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ISO/IEC 23009-1, "Dynamic adaptive streaming over HTTP (DASH)," 2014-05-15
【非特許文献２】IETF RFC7761, "Protocol Independent Multicast - Sparse Mode (PIM-SM)," March 2016
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＰＥＧ−ＤＡＳＨでは、配信先ノードが持つ複数の異なる要求に対応することが可能であるが、異なる要求を持つ配信先毎にデータを配信し分ける必要があるため、通信帯域、配信元ノードの処理能力をその分だけ消費するという課題がある。【０００７】
また、マルチキャスト技術では、配信先の複数ノードが全て同じ目的である場合（例えば、放送の視聴）には、この技術によって、通信帯域や配信元ノードの処理能力を効率的に利用しながら、一斉配信を行うことができる。しかしながら、配信先のノード間でデータの利用目的が異なる場合（例えば、視聴、自動解析、保存）、ノードが受信したいデータの受信方式や内容も異なる（例えば、リアルタイム性重視／信頼性重視、解像度重視／輝度情報重視）。マルチキャスト技術では、データの複製配信を行うため、配信方式や配信内容を配信先ノードの目的に応じて変えることができず、配信先ノードが自ら目的に合わせたデータの解釈や変換を行う必要があり、配信先ノードの処理負荷が大きくなるという課題がある。【０００８】
本発明は、１つの配信元ノードから異なる要求を持つ複数の配信先ノードにデータを配信するときの配信元ノード及び配信先ノードの処理負荷を低減し、通信トラヒックを削減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一形態に係るデータ配信システムは、
データを配信するソースと、配信されたデータを処理するシンクとを有するデータ配信システムであって、
前記ソースは、画像データを配信する場合、当該画像データの輝度情報、周波数情報、セグメント情報及び座標情報のうち少なくとも１つに基づいて複数の成分又は部分画像に分解し、分解した画像データ毎に、当該画像データの成分又は部分画像を示すメタデータをパケットのヘッダに付与して配信し、当該データ配信システムは、
前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、当該パケットに付加情報を付与して転送するマーカと、
前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するフィルタと、
を有することを特徴とする。
また、本発明の一形態に係るデータ配信システムは、
データを配信するソースと、配信されたデータを処理するシンクとを有するデータ配信システムであって、
前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダから得られるサイズと、当該受信したパケットの直前に受信したパケットのヘッダから得られるサイズとの比較に基づいて、当該パケットに付加情報を付与して転送するマーカと、
前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するフィルタと、
を有することを特徴とする。
また、本発明の一形態に係るデータ配信システムは、
データを配信するソースと、配信されたデータを処理するシンクとを有するデータ配信システムであって、
前記ソースは、配信するデータを複数の部分データに分解し、部分データの種別を示すメタデータをパケットのヘッダに付与して配信し、当該データ配信システムは、
前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、部分データの種別が切り替わる境目のパケットに付加情報を付与して転送するマーカと、
前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するフィルタと、
を有することを特徴とする。
【００１０】
また、本発明の一形態に係るデータ配信方法は、
データを配信するソースと、配信されたデータを処理するシンクとを有し、前記ソースと前記シンクとの間に介在するマーカ及びフィルタを更に有するデータ配信システムにおけるデータ配信方法であって、
前記ソースが、画像データを配信する場合、当該画像データの輝度情報、周波数情報、セグメント情報及び座標情報のうち少なくとも１つに基づいて複数の成分又は部分画像に分解し、分解した画像データ毎に、当該画像データの成分又は部分画像を示すメタデータをパケットのヘッダに付与して配信するステップと、
前記マーカが、前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータから得られる情報に基づいて、当該パケットに付加情報を付与して転送するステップと、
前記フィルタが、前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するステップと、
を有することを特徴とする。
また、本発明の一形態に係るデータ配信方法は、
データを配信するソースと、配信されたデータを処理するシンクとを有し、前記ソースと前記シンクとの間に介在するマーカ及びフィルタを更に有するデータ配信システムにおけるデータ配信方法であって、
前記マーカが、前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダから得られるサイズと、当該受信したパケットの直前に受信したパケットのヘッダから得られるサイズとの比較に基づいて、当該パケットに付加情報を付与して転送するステップと、
前記フィルタが、前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するステップと、
を有することを特徴とする。
また、本発明の一形態に係るデータ配信方法は、
データを配信するソースと、配信されたデータを処理するシンクとを有し、前記ソースと前記シンクとの間に介在するマーカ及びフィルタを更に有するデータ配信システムにおけるデータ配信方法であって、
前記ソースが、配信するデータを複数の部分データに分解し、部分データの種別を示すメタデータをパケットのヘッダに付与して配信するステップと、
前記マーカが、前記ソースから配信されたパケットを受信し、当該受信したパケットのヘッダに付与されたメタデータに基づいて、部分データの種別が切り替わる境目のパケットに付加情報を付与して転送するステップと、
前記フィルタが、前記マーカから転送されたパケットを受信し、当該受信したパケットに付与された付加情報に基づいて、前記シンクへの当該パケットの転送可否を判断し、転送可能なパケットを前記シンクに転送するステップと、
を有することを特徴とする。
【００１１】
また、本発明の一形態に係るマーカは、
データを配信するソースと、配信されたデータを処理するシンクとの間に介在するマーカであって、
前記ソースから配信される画像データが輝度情報、周波数情報、セグメント情報及び座標情報のうち少なくとも１つに基づいて複数の成分又は部分画像に分解されたときの分解後の画像データ毎に、当該画像データの成分又は部分画像を示すメタデータがヘッダに付与されたパケットを、前記ソースから受信する受信部と、
当該受信したパケットのヘッダに付与されたメタデータに基づいて、当該パケットに付加情報を付与する付加情報付与部と、
前記付加情報が付与されたパケットを、前記シンクへの当該パケットの転送可否を判断するフィルタに転送する転送部と、
を有することを特徴とする。
また、本発明の一形態に係るマーカは、
データを配信するソースと、配信されたデータを処理するシンクとの間に介在するマーカであって、
前記ソースから配信されたパケットを受信する受信部と、
当該受信したパケットのヘッダから得られるサイズと、当該受信したパケットの直前に受信したパケットのヘッダから得られるサイズとの比較に基づいて、当該パケットに付加情報を付与する付加情報付与部と、
前記付加情報が付与されたパケットを、前記シンクへの当該パケットの転送可否を判断するフィルタに転送する転送部と、
を有することを特徴とする。
また、本発明の一形態に係るマーカは、
データを配信するソースと、配信されたデータを処理するシンクとの間に介在するマーカであって、
前記ソースから配信されるデータが複数の部分データに分解されたときの分解後の部分データ毎に、当該部分データの種別を示すメタデータがヘッダに付与されたパケットを、前記ソースから受信する受信部と、
当該受信したパケットのヘッダに付与されたメタデータに基づいて、部分データの種別が切り替わる境目のパケットに付加情報を付与する付加情報付与部と、
前記付加情報が付与されたパケットを、前記シンクへの当該パケットの転送可否を判断するフィルタに転送する転送部と、
を有することを特徴とする。
【００１３】
また、本発明の一形態に係るプログラムは、
上記のマーカの各部としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、１つの配信元ノードから異なる要求を持つ複数の配信先ノードにデータを配信するときの配信元ノード及び配信先ノードの処理負荷を低減し、通信トラヒックを削減することを目的とする。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例に係るデータ配信システムの全体構成を示す図である。
【図２】本発明の実施例に係るデータ配信システムにおける各ノードの配備例を示す図である。
【図３】本発明の実施例に係るマーカの機能構成を示すブロック図である。
【図４】本発明の実施例に係るフィルタの機能構成を示すブロック図である。
【図５】本発明の実施例に係るコントローラの機能構成を示すブロック図である。
【図６】特定の情報を抽出するためのソースにおける処理手順を示すシーケンス図である。
【図７】ソースにおけるパケット化の処理手順を示すフローチャートである。
【図８】輝度成分の部分データを抽出する概念図である。
【図９】特定周波数成分の部分データを抽出する概念図である。
【図１０】サムネイルの部分データを抽出する概念図である。
【図１１】部分画像の部分データを抽出する概念図である。
【図１２】データ配信システムにおけるシーケンス例１である。
【図１３】マーカにおけるマーキングの処理手順を示すフローチャート（メタデータが得られる場合）である。
【図１４】マーカにおけるマーキングの処理手順を示すフローチャート（メタデータが得られない場合）である。
【図１５】フィルタにおけるフィルタリングの処理手順を示すフローチャートである。
【図１６】データ配信システムにおけるシーケンス例２である。
【図１７】データ配信システムにおけるシーケンス例３である。
【図１８】データ配信システムにおけるシーケンス例４である。
【図１９】データ配信システムにおけるシーケンス例５である。
【図２０Ａ】マーカにおけるマーカ方式の具体例１（ＲＴＰ拡張ヘッダに設定する例）である。
【図２０Ｂ】マーカにおけるマーカ方式の具体例１（ＲＴＰペイロードに設定する例）である。
【図２１Ａ】マーカにおけるマーカ方式の具体例２（パケットレベルのマーカ方式の例）である。
【図２１Ｂ】マーカにおけるマーカ方式の具体例２（ブロックレベルのマーカ方式の例）である。
【図２２】パケットレベルのマーカ方式が使用される場合のフィルタにおけるフィルタリングの処理手順を示すフローチャートである。
【図２３】ブロックレベルのマーカ方式が使用される場合のフィルタにおけるフィルタリングの処理手順を示すフローチャートである。
【図２４】フィルタが転送終了通知をシンクに送信する具体例１である。
【図２５】フィルタが転送終了通知をシンクに送信する具体例２である。
【図２６】本発明の実施例に係る各ノードのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施例について説明する。
【００１８】
＜データ配信システムの全体構成＞
図１は、本発明の実施例に係るデータ配信システムの全体構成を示す図である。データ配信システムは、ソース３０とシンク４０の間にマーカ１０及びフィルタ２０が介在し、画像のようなデータを符号化、転送及び復号化する中で、マーカ１０及びフィルタ２０によってソースから配信されたデータの中から特定の情報を抽出し、シンク４０に転送することを可能にする。これにより、データを転送する過程において、データを復号化することなく、例えば、グレースケール画像、低画質画像、部分画像等へ変換することができ、ソース３０及びシンク４０の処理負荷低減及び通信トラヒックの削減に貢献することができる。
【００１９】
図１に示すように、データ配信システムは、マーカ１０と、フィルタ２０と、ソース３０と、シンク４０とを有する。データ配信システムは、コントローラ５０を更に有してもよい。
【００２０】
ソース３０は、映像のようなデータを配信する装置（配信元ノード）である。ソース３０の例として、カメラ、映像配信サーバ等がある。なお、ソース３０は、カメラと映像配信サーバの組み合わせのように、複数の装置によって構成されることも可能である。
【００２１】
シンク４０は、ソース３０からデータの配信を要求し、受信したデータを処理（表示、解析、保存など）する装置（配信先ノード）である。シンク４０の例として、ビュワー等がある。シンク４０も、ビュワーと映像再生サーバの組み合わせのように、複数の装置によって構成されることも可能である。
【００２２】
マーカ１０は、ソース３０から配信されたパケットに、データの区切りや意味等を示す付加情報を付与して転送する装置（ノード）である。以下では、マーカ１０がどのように付加情報を付与するかの動作をマーカ方式と呼ぶ。
【００２３】
フィルタ２０は、マーカ１０から転送されたパケットを受信し、マーカ１０が付与した付加情報に基づいて、シンク４０へのパケットの転送可否を判断する装置（ノード）である。フィルタ２０は、受信したパケットの中からシンク４０に適した内容を抽出して、シンク４０に転送することができる。以下では、フィルタ２０がどのように転送可否を判断するかの動作をフィルタ方式と呼ぶ。
【００２４】
コントローラ５０は、シンク４０が要求するデータの内容を示すシンク要求通知を受信し、シンク要求通知に応じてマーカ１０におけるマーカ方式の設定及びフィルタ２０におけるフィルタ方式の設定を行う装置（ノード）である。コントローラ５０は、ソース３０が配信するデータの種類や配信方式、マーカ１０が対応するマーカ方式、フィルタ２０が対応するフィルタ方式、シンク４０からのシンク要求通知を取得し、それぞれの内容が整合するように、各ノードの動作設定を行う。
【００２５】
マーカ１０、フィルタ２０、ソース３０及びシンク４０は、データ配信システムにおいて様々な配備が可能である。図２は、各ノードの配備例を示す図である。
【００２６】
例えば、配備例１に示すように、ソース３０及びマーカ１０が、カメラ等のデータを生成する装置に配備され、フィルタ２０及びシンク４０が、ビュワーや映像再生サーバ等のデータを処理する装置に配備されてもよい。
【００２７】
例えば、配備例２に示すように、ソース３０及びマーカ１０が、データを生成する装置に配備され、フィルタ２０が、中継サーバ又はネットワーク内のルータ等の装置に配備され、シンク４０が、データを処理する装置に配備されてもよい。
【００２８】
例えば、配備例３に示すように、映像データの取得のようなソース３０の一部の機能が、データを生成する装置に配備され、マーカ１０に適した形式への符号化のようなソース３０の一部の機能及びマーカ１０が中継サーバ又はネットワーク内のルータ等の装置に配備されてもよい。また、シンク４０に適した映像データの復号化のようなシンク４０の機能の一部が、中継サーバ又はネットワーク内のルータ等の装置に配備され、映像データの表示のようなシンク４０の一部の機能及びフィルタ２０が、データを処理する装置に配備されてもよい。
【００２９】
なお、図２に示す配備例は単なる例であり、他の配備例も可能である。
【００３０】
＜マーカの構成＞
図３は、本発明の実施例に係るマーカ１０の機能構成を示すブロック図である。マーカ１０は、通信部１０１と、マーカ動作設定部１０３と、マーキング部１０５と、シグナリング部１０７とを有する。なお、図３の各機能部の名称は単なる例であり、別の名称で呼ばれてもよい。例えば、通信部１０１は、受信部及び転送部と呼ばれてもよく、マーキング部１０５は、付加情報付与部と呼ばれてもよい。
【００３１】
通信部１０１は、通信ネットワークと接続して各ノードとデータ通信を行う。通信部１０１は、ソース３０から配信されたパケットを受信する。また、通信部１０１は、付加情報を付与したパケットをフィルタ２０に転送する。
【００３２】
マーカ動作設定部１０３は、フィルタ２０又はコントローラ５０等からのシグナリング情報に基づき、マーキング部１０５が実行すべきマーカ方式を決定する。
【００３３】
マーキング部１０５は、マーカ動作設定部１０３が決定したマーカ方式に従って、転送すべきパケットに付加情報を付与する。付加情報は、パケットから得られる情報に基づいて付与される。例えば、画像データの輝度成分、色成分、周波数成分、部分画像等を示すメタデータがパケットのヘッダに付与されている場合、マーキング部１０５は、メタデータに基づいてパケットに付加情報を付与する。一方、上記のようなメタデータがパケットに付与されていない場合、マーキング部１０５は、パケットに含まれる情報のうちペイロード以外の情報、例えばパケットヘッダに含まれるパケットサイズ、ＲＴＰ（Real-time Transport Protocol）タイムスタンプ値等に基づいてパケットに付加情報を付与してもよい。
【００３４】
シグナリング部１０７は、データを送受信する際に用いる通信アドレス、ポート番号、コーデック等を、送信側と受信側で合意する。シグナリング部１０７が用いるプロトコルとして、ＳＩＰ（Session Initiation Protocol）、ＲＴＳＰ（Real Time Streaming Protocol）等がある。なお、シグナリング部１０７は、マーカ１０の外部のノードに具備されて、マーカ１０の通信部１０１を介して接続する形態でもよい。
【００３５】
＜フィルタの構成＞
図４は、本発明の実施例に係るフィルタ２０の機能構成を示すブロック図である。フィルタ２０は、通信部２０１と、フィルタ動作設定部２０３と、フィルタリング部２０５と、シグナリング部２０７とを有する。なお、図４の各機能部の名称は単なる例であり、別の名称で呼ばれてもよい。例えば、通信部２０１は、受信部及び転送部と呼ばれてもよく、フィルタリング部２０５は、転送判断部と呼ばれてもよい。
【００３６】
通信部２０１は、通信ネットワークと接続して各ノードとデータ通信を行う。通信部２０１は、マーカ１０から転送されたパケットを受信する。また、通信部２０１は、シンク４０に転送可能と判断されたパケットをシンク４０に転送する。
【００３７】
フィルタ動作設定部２０３は、シンク４０又はコントローラ５０等からのシグナリング情報に基づき、フィルタリング部２０５が実行すべきフィルタ方式を決定する。また、フィルタ動作設定部２０３が、フィルタ方式に対応するマーカ方式を決定してマーカ１０に通知することも可能である。
【００３８】
フィルタリング部２０５は、フィルタ動作設定部２０３が決定したフィルタ方式に従って、シンク４０へのパケットの転送可否を判断する。転送不可と判断されたパケットは破棄される。
【００３９】
シグナリング部２０７は、データを送受信する際に用いる通信アドレス、ポート番号、コーデック等を、送信側と受信側で合意する。シグナリング部２０７が用いるプロトコルとして、ＳＩＰ、ＲＴＳＰ等がある。なお、シグナリング部２０７は、フィルタ２０の外部のノードに具備されて、フィルタ２０の通信部２０１を介して接続する形態でもよい。
【００４０】
＜コントローラの構成＞
図５は、本発明の実施例に係るコントローラ５０の機能構成を示すブロック図である。コントローラ５０は、通信部５０１と、能力取得部５０３と、動作設定部５０５とを有する。なお、図５の各機能部の名称は単なる例であり、別の名称で呼ばれてもよい。
【００４１】
通信部５０１は、通信ネットワークと接続して各ノードとデータ通信を行う。
【００４２】
能力取得部５０３は、通信部５０１を介して、ソース３０、シンク４０、マーカ１０及びフィルタ２０の各ノードが備える能力（プロトコル、コーデック、マーカ方式、フィルタ方式等）を取得する。また、能力取得部５０３は、シンク４０が要求するデータの内容を示すシンク要求通知を取得する。
【００４３】
動作設定部５０５は、能力取得部５０３が取得した各ノードの能力を参照して、シンク要求通知に応じて各ノードが実行すべき動作を決定して各ノードに指示する。動作設定部５０５は、マーカ１０に対してはマーカ方式を設定し、フィルタ２０に対してはフィルタ方式を設定する。
【００４４】
＜特定の情報を抽出する具体例＞
次に、ソース３０からシンク４０に画像データを配信する際に、マーカ１０及びフィルタ２０によって特定の情報のみを抽出する具体例について説明する。このためには、ソース３０において、画像データを複数の成分又は部分画像に分解し、分解した画像データ毎に、画像データの成分又は部分画像を示すメタデータを付与する必要がある。
【００４５】
図６は、特定の情報を抽出するためのソース３０における処理手順を示すシーケンス図である。ソース３０は、カメラ等によって画像を取得する画像取得部と、画像を符号化する符号化部と、符号化した画像をパケット化して送信するパケット化部とを有するものとする。
【００４６】
ソース３０の画像取得部は、符号化部等からの画像取得要求に応じて画像データを取得し（Ｓ１０１）、符号化部に送出する（Ｓ１０２）。
【００４７】
符号化部は、画像データを符号化する（Ｓ１０３）。例えば、符号化部は、画像データの輝度情報に基づいて、画像データをＹ成分、Ｃｂ成分、Ｃｒ成分に分解することができる。他の例として、符号化部は、画像データの周波数情報に基づいて、画像データをＤＣ成分、ＡＣ１成分、ＡＣ２成分に分解することができる。他の例として、符号化部は、画像データのセグメント情報に基づいて、画像データをＳＯＩ、ＡＰＰ０、ＡＰＰ１等に分解することができる。他の例として、符号化部は、画像データのピクセル空間上の座標情報に基づいて、画像データを部分画像に分解することができる。以下の説明では、分解された画像データの成分又は部分画像を部分データと呼ぶこともある。符号化部は、部分データの種別の境目に境界情報を付与する。符号化部は、境界情報が付与された画像データをパケット化部に送出する（Ｓ１０４）。
【００４８】
パケット化部は、それぞれのパケットの中に異なる部分データが混在しないように、境界情報に基づいて部分データ毎にパケット化し（Ｓ１０５）、部分データの内容（成分等）がヘッダで解釈できるように、部分データの内容を示すメタデータをパケットのヘッダに付与して送出する（Ｓ１０６）。
【００４９】
パケット化部における処理手順について図７を参照して更に説明する。図７は、ソースにおけるパケット化の処理手順を示すフローチャートである。
【００５０】
まず、パケット化部は、符号化部で符号化された画像データから、境目までデータを読み込む（Ｓ１１１）。読み込んだデータがパケタイズ長以下である場合（Ｓ１１２：Ｙｅｓ）、読み込んだデータをパケット化し送出する（Ｓ１１３）。読み込んだデータがパケタイズ長より大きい場合（Ｓ１１２：Ｎｏ）、残りのデータがパケタイズ長以下になるまで、パケタイズ長までのデータをパケット化し送出する（Ｓ１１４）。残りのデータがパケタイズ長以下になった場合（Ｓ１１２：Ｙｅｓ）、残りのデータをパケット化し送出する（Ｓ１１３）。次の境界が存在する場合（Ｓ１１５：Ｎｏ）、上記の処理を繰り返し、読み込んだデータのパケット化が終了した場合（Ｓ１１５：Ｙｅｓ）、処理を終了する。
【００５１】
なお、上記の画像データの分解及びメタデータの付与は、マーカ１０において行われてもよい。例えば、メタデータの付与がマーカ１０において行われる場合、メタデータはプログラム間で共有メモリ等を用いてマーカ１０のマーキング部１０５に渡すことができる。
【００５２】
図８は、マーカ１０及びフィルタ２０によって輝度成分の部分データを抽出する概念図である。
【００５３】
ソース３０は、上記のように、画像データの輝度情報に基づき、画像データをＹ成分、Ｃｂ成分、Ｃｒ成分に分解し、成分毎にパケット化する。パケットのヘッダには、成分の内容を示すメタデータが付与される。
【００５４】
マーカ１０は、フィルタ２０が成分の違いを解釈できるように、ソース３０により付与されたメタデータに基づいて付加情報を付与する。
【００５５】
フィルタ２０は、Ｙ成分のみを抽出し、シンク４０に転送する。
【００５６】
図９は、マーカ１０及びフィルタ２０によって特定周波数成分の部分データを抽出する概念図である。
【００５７】
ソース３０は、上記のように、画像データの周波数情報に基づき、画像データをＤＣ成分、ＡＣ１成分、ＡＣ２成分に分解し、成分毎にパケット化する。パケットのヘッダには、成分の内容を示すメタデータが付与される。
【００５８】
マーカ１０は、フィルタ２０が成分の違いを解釈できるように、ソース３０により付与されたメタデータに基づいて付加情報を付与する。
【００５９】
フィルタ２０は、ＤＣ成分等の低周波数成分のみを抽出し、シンク４０に転送する。
【００６０】
図１０は、マーカ１０及びフィルタ２０によってサムネイルの部分データを抽出する概念図である。
【００６１】
ソース３０は、上記のように、画像データのセグメント情報に基づき、画像データをＳＯＩ、ＡＰＰ０、ＡＰＰ１等に分解し、分解した部分データ毎にパケット化する。パケットのヘッダには、部分データの内容を示すメタデータが付与される。
【００６２】
マーカ１０は、フィルタ２０がＳＯＩ＋ＡＰＰ０が含まれる情報とそれ以外の情報を解釈できるように、ソース３０により付与されたメタデータに基づいて付加情報を付与する。
【００６３】
フィルタ２０は、ＳＯＩ＋ＡＰＰ０のみを抽出し、シンク４０に転送する。
【００６４】
図１１は、マーカ１０及びフィルタ２０によって部分画像の部分データを抽出する概念図である。
【００６５】
ソース３０は、上記のように、画像データのピクセル空間上の座標情報に基づき、画像データを複数のブロックに分解し、分解したブロック毎にパケット化する。各ブロックは、最小符号化単位であるＭＣＵ（Minimum Coded Unit）の集合で構成されてもよい。パケットのヘッダには、ブロックの内容を示すメタデータが付与される。
【００６６】
マーカ１０は、フィルタ２０がブロックの違いを解釈できるように、ソース３０により付与されたメタデータに基づいて付加情報を付与する。
【００６７】
フィルタ２０は、特定のブロックのみを抽出し、シンク４０に転送する。
【００６８】
上記のように、ソース３０がデータを分解し、一定の規則に従って順次データをマーカ１０に送信するため、マーカ１０も、一定の規則に従って順次データをシンク４０に転送することができる。
【００６９】
＜データ配信システムにおけるシーケンス例１＞
次に、データ配信システムにおけるマーカ１０及びフィルタ２０の動作を詳細に説明する。
【００７０】
図１２は、マーカ１０におけるマーカ方式及びフィルタ２０におけるフィルタ方式が事前に設定されている場合のデータ配信システムにおけるシーケンス例１である。
【００７１】
シンク４０は、接続先ＵＲＬ（Uniform Resource Locator）とデータ受信アドレス及びポートとを含むシグナリング情報をフィルタ２０に送信する（Ｓ２０１）。接続先ＵＲＬは、ソース３０のＵＲＬであり、データ受信アドレス及びポートは、データを受信するためのシンク４０のＩＰ（Internet Protocol）アドレス及びポート番号である。フィルタ２０のシグナリング部２０７は、シンク４０から受信したシグナリング情報をマーカ１０に送信する（Ｓ２０２）。マーカ１０のシグナリング部１０７は、フィルタ２０から受信したシグナリング情報をソース３０に送信する（Ｓ２０３）。
【００７２】
ソース３０は、例えば、図６〜図１１を参照して説明したように、部分データ毎に画像データをパケット化し、部分データの内容（成分等）がヘッダで解釈できるように、メタデータをパケットのヘッダに付与して送出する（Ｓ２０４）。
【００７３】
マーカ１０のマーキング部１０５は、パケットのヘッダから得られる情報に基づいて、付加情報を付与する（Ｓ２０５）。
【００７４】
ステップＳ２０５について図１３を参照して詳細に説明する。図１３は、マーカ１０のマーキング部１０５におけるマーキングの処理手順を示すフローチャートである。
【００７５】
マーキング部１０５は、マーカ動作設定部１０３で設定されたマーカ方式を取得する（Ｓ２１１）。図１２の例では、マーカ方式は事前に設定されており、例えば、Ｙ成分のみをマーキングするというマーカ方式を読み込む。
【００７６】
マーキング部１０５は、通信部１０１において受信したデータを受け取り（Ｓ２１２）、データ及びメタデータを読み込む（Ｓ２１３）。マーキング部１０５は、読み込んだデータ及びメタデータがマーカ方式に対応するか判断する（Ｓ２１４）。データ及びメタデータがマーカ方式に対応していない場合（Ｓ２１４：Ｎｏ）、例えば、Ｙ成分のみをマーキングするマーカ方式にもかかわらずメタデータがＤＣ成分を示す場合、エラーを出力する（Ｓ２１５）。
【００７７】
データ及びメタデータがマーカ方式に対応している場合（Ｓ２１４：Ｙｅｓ）、マーキング部１０５は、メタデータに基づいてマーキングすべきか判断する（Ｓ２１６）。マーキングが必要な場合（Ｓ２１６：Ｙｅｓ）、付加情報を付与して（Ｓ２１７）、送信する（Ｓ２１８）。マーキングが不要な場合（Ｓ２１６：Ｎｏ）、付加情報を付与せずに送信する（Ｓ２１８）。
【００７８】
ステップＳ２０５の別の例について図１４を参照して詳細に説明する。図１４は、メタデータが得られない場合のマーカ１０のマーキング部１０５におけるマーキングの処理手順を示すフローチャートである。メタデータが得られない場合、マーキング部１０５は、パケットサイズ又はタイムスタンプ値等に基づいてマーキングを行うことができる。
【００７９】
マーキング部１０５は、マーカ動作設定部１０３で設定されたマーカ方式を取得する（Ｓ２２１）。図１２の例では、マーカ方式は事前に設定されており、例えば、１００バイトを超えるパケットのみをマーキングするというマーカ方式、直前のパケットに対してサイズが２倍を超えるパケットをマーキングするというマーカ方式、又はＲＴＰタイムスタンプ値を３６００で割った商が偶数の場合はマーキングするというマーカ方式を読み込む。
【００８０】
マーキング部１０５は、通信部１０１において受信したデータを受け取り（Ｓ２２２）、データを読み込む（Ｓ２２３）。マーキング部１０５は、読み込んだデータがマーカ方式に対応するか判断する（Ｓ２２４）。データがマーカ方式に対応していない場合（Ｓ２２４：Ｎｏ）、例えば、ＲＴＰタイムスタンプ値に基づいてマーキングするマーカ方式にもかかわらずＲＴＰタイムスタンプ値が存在しない場合、エラーを出力する（Ｓ２２５）。
【００８１】
データがマーカ方式に対応している場合（Ｓ２２４：Ｙｅｓ）、マーキング部１０５は、パケットサイズ又はタイムスタンプ値等に基づいてマーキングすべきか判断する（Ｓ２２６）。例えば、直前のパケットに対してサイズが２倍を超えるパケットをマーキングするというマーカ方式の場合、最初に１４００バイトのパケットを受信した場合にはマーキングせず、次に１４００バイトのパケットを受信した場合にもマーキングせず、次に１００バイトのパケットを受信した場合にもマーキングせず、次に１４００バイトのパケットを受信した場合にはマーキングする。他の例として、ＲＴＰタイムスタンプ値を３６００で割った商が偶数の場合はマーキングするというマーカ方式の場合、ＲＴＰタイムスタンプ値が１００００であるパケットを受信した場合にはマーキングし、ＲＴＰタイムスタンプ値が１３６００であるパケットを受信した場合にはマーキングしない。マーキングが必要な場合（Ｓ２２６：Ｙｅｓ）、付加情報を付与して（Ｓ２２７）、送信する（Ｓ２２８）。マーキングが不要な場合（Ｓ２２６：Ｎｏ）、付加情報を付与せずに送信する（Ｓ２２８）。
【００８２】
マーキング部１０５は、通信部１０１から付加情報を付与したデータをフィルタ２０に転送する（図１２のＳ２０６）。
【００８３】
フィルタ２０のフィルタリング部２０５は、付加情報に基づいて、シンク４０への転送可否を判断する（図１２のＳ２０７）。
【００８４】
ステップＳ２０７について図１５を参照して詳細に説明する。図１５は、フィルタ２０のフィルタリング部２０５におけるフィルタリングの処理手順を示すフローチャートである。
【００８５】
フィルタリング部２０５は、フィルタ動作設定部２０３で設定されたフィルタ方式を取得する（Ｓ２３１）。図１２の例では、フィルタ方式は事前に設定されており、例えば、マーカ１０によってマーキングされたＹ成分のみを転送し、Ｃｒ成分及びＣｂ成分を転送しないというフィルタ方式を読み込む。
【００８６】
フィルタリング部２０５は、通信部２０１において受信したデータを受け取り（Ｓ２３２）、データを読み込む（Ｓ２３３）。フィルタリング部２０５は、読み込んだデータがフィルタ方式に対応するか判断する（Ｓ２３４）。データがフィルタ方式に対応していない場合（Ｓ２３４：Ｎｏ）、例えば、フィルタリング部２０５が理解できない付加情報が付与されている場合、エラーを出力する（Ｓ２３５）。
【００８７】
データがフィルタ方式に対応している場合（Ｓ２３４：Ｙｅｓ）、フィルタリング部２０５は、付加情報に基づいてフィルタリングすべきか判断する（Ｓ２３６）。フィルタリングする場合（Ｓ２３６：Ｙｅｓ）、データを破棄する（Ｓ２３７）。フィルタリングが不要な場合（Ｓ２３６：Ｎｏ）、転送可能と判断する（Ｓ２３８）。
【００８８】
フィルタリング部２０５は、通信部２０１から転送可能なパケットをシンク４０に転送する（図１２のＳ２０８）。
【００８９】
＜データ配信システムにおけるシーケンス例２＞
図１６は、複数のシンクが存在し、複数のフィルタが存在する場合のデータ配信システムにおけるシーケンス例２である。なお、マーカ１０におけるマーカ方式及びフィルタＡ２０及びフィルタＢ２０におけるフィルタ方式は事前に設定されているものとする。以下では、マーカ１０は、Ｙ成分、Ｃｒ成分、Ｃｂ成分をそれぞれマーキングし、フィルタＡ２０は、マーキングされたＹ成分のみを転送し、フィルタＢ２０は、マーキングされたＹ成分及びＣｒ成分を転送する例について説明する。
【００９０】
シンクＡ４０は、接続先ＵＲＬとデータ受信アドレス及びポートとを含むシグナリング情報をフィルタＡ２０に送信する（Ｓ３０１）。フィルタＡ２０のシグナリング部２０７は、シンクＡ４０から受信したシグナリング情報をマーカ１０に送信する（Ｓ３０２）。マーカ１０のシグナリング部１０７は、フィルタＡ２０から受信したシグナリング情報をソース３０に送信する（Ｓ３０３）。
【００９１】
ソース３０は、例えば、図６〜図１１を参照して説明したように、部分データ毎に画像データをパケット化し、部分データの成分がヘッダで解釈できるように、メタデータをパケットのヘッダに付与して送出する（Ｓ３０４）。この例では、Ｙ成分、Ｃｒ成分、Ｃｂ成分がヘッダで解釈できるように、メタデータが付与される。
【００９２】
マーカ１０のマーキング部１０５は、メタデータに基づいて、Ｙ成分、Ｃｒ成分又はＣｂ成分を示す付加情報を付与する（Ｓ３０５）。マーキング部１０５は、通信部１０１から付加情報を付与したデータをフィルタＡ２０に転送する（Ｓ３０６）。
【００９３】
フィルタＡ２０のフィルタリング部２０５は、付加情報に基づいて、シンク４０への転送可否を判断する（Ｓ３０７）。フィルタＡ２０のフィルタリング部２０５は、マーカ１０において付与された付加情報に基づいてＹ成分のパケットのみを転送し、Ｃｒ成分及びＣｂ成分を破棄する（Ｓ３０８）。
【００９４】
ここで、シンクＢ４０が同じソース３０に配信要求を行う場合、シンクＢ４０は、接続先ＵＲＬとデータ受信アドレス及びポートとを含むシグナリング情報をフィルタＢ２０に送信する（Ｓ３１１）。フィルタＢ２０のシグナリング部２０７は、シンクＢ４０から受信したシグナリング情報をマーカ１０に送信する（Ｓ３１２）。マーカ１０は、シグナリング情報から、接続先ＵＲＬであるソース３０から既にデータを受け取っていることを認識できるため、フィルタＢ２０に対してマルチキャストグループに参加するように要求し（Ｓ３１３）、フィルタＢ２０がマルチキャストグループに参加する（Ｓ３１４）。なお、フィルタＡ及びフィルタＢの間でシグナリング情報を共有して、フィルタＢがマーカ１０へシグナリング情報を送信せずに、フィルタＢがマルチキャストグループに直接参加することも可能である。
【００９５】
マーカ１０のマーキング部１０５は、ソース３０から受信したデータに付加情報を付与し、通信部１０１から付加情報を付与したデータをフィルタＡ２０に転送する（Ｓ３１５）。同時に、同じデータをフィルタＢ２０にもマルチキャストする。
【００９６】
フィルタＡ２０のフィルタリング部２０５は、付加情報に基づいて、シンクＡ４０への転送可否を判断する（Ｓ３１６）。フィルタＡ２０のフィルタリング部２０５は、マーカ１０において付与された付加情報に基づいてＹ成分のパケットのみを転送し、Ｃｒ成分及びＣｂ成分を破棄する（Ｓ３１７）。
【００９７】
フィルタＢ２０のフィルタリング部２０５は、付加情報に基づいて、シンクＢ４０への転送可否を判断する（Ｓ３１８）。フィルタＢ２０のフィルタリング部２０５は、マーカ１０において付与された付加情報に基づいてＹ成分及びＣｒ成分のパケットのみを転送し、Ｃｂ成分を破棄する（Ｓ３１９）。
【００９８】
＜データ配信システムにおけるシーケンス例３＞
図１７は、マーカ１０におけるマーカ方式及びフィルタ２０におけるフィルタ方式がシグナリング情報に含まれる場合のデータ配信システムにおけるシーケンス例３である。
【００９９】
シンク４０は、接続先ＵＲＬとデータ受信アドレス及びポートとを含むシグナリング情報に、マーカ方式及びフィルタ方式を更に含めて、シグナリング情報をフィルタ２０に送信する（Ｓ４０１）。例えば、Ｙ成分のみをマーキングするというマーカ方式、マーキングされていないパケットをドロップするというフィルタ方式をフィルタ２０に送信する。
【０１００】
フィルタ２０のシグナリング部２０７は、シグナリング情報に含まれるフィルタ方式をフィルタ動作設定部２０３に通知する（Ｓ４０２）。フィルタ動作設定部２０３は、フィルタリング部２０５が実行すべきフィルタ方式を決定し、フィルタリング部２０５に指示する（Ｓ４０３）。
【０１０１】
フィルタ２０のシグナリング部２０７は、シグナリング情報に含まれるマーカ方式をマーカ１０に送信する（Ｓ４０４）。
【０１０２】
マーカ１０のシグナリング部１０７は、シグナリング情報に含まれるマーカ方式をマーカ動作設定部１０３に通知する（Ｓ４０５）。マーカ動作設定部１０３は、マーキング部１０５が実行すべきマーカ方式を決定し、マーキング部１０５に指示する（Ｓ４０６）。
【０１０３】
マーカ１０のシグナリング部１０７は、フィルタ２０から受信したシグナリング情報をソース３０に送信する（Ｓ４０７）。
【０１０４】
以降、図１２のステップＳ２０４〜Ｓ２０８と同様に、マーキング及びフィルタリングが実行される。
【０１０５】
＜データ配信システムにおけるシーケンス例４＞
図１８は、マーカ１０におけるマーカ方式及びフィルタ２０におけるフィルタ方式がシグナリング情報に基づいて設定される場合のデータ配信システムにおけるシーケンス例４である。
【０１０６】
シンク４０は、接続先ＵＲＬとデータ受信アドレス及びポートとを含むシグナリング情報に、配信を要求するデータの種別を示す情報（要求データ種別）を更に含めて、シグナリング情報をフィルタ２０に送信する（Ｓ５０１）。例えば、要求データ種別は、シンク４０がソース３０からの配信を要求するデータの種別を表し、例えば、ＪＰＥＧで符号化されたＹ成分のみの配信を要求することを表す。
【０１０７】
フィルタ２０のシグナリング部２０７は、シグナリング情報をフィルタ動作設定部２０３に通知する（Ｓ５０２）。フィルタ動作設定部２０３は、シグナリング情報の要求データ種別に基づいて、マーカ方式及びフィルタ方式を決定する（Ｓ５０３）。例えば、フィルタ動作設定部２０３は、Ｙ成分のみをマーキングするというマーカ方式、マーキングされていないパケットをドロップするというフィルタ方式を決定する。フィルタ動作設定部２０３は、フィルタリング部２０５が実行すべきフィルタ方式をフィルタリング部２０５に指示する（Ｓ５０４）。
【０１０８】
フィルタ２０のシグナリング部２０７は、フィルタ動作設定部２０３において決定されたマーカ方式をシグナリング情報に含めてマーカ１０に送信する（Ｓ５０５）。
【０１０９】
マーカ１０のシグナリング部１０７は、シグナリング情報に含まれるマーカ方式をマーカ動作設定部１０３に通知する（Ｓ５０６）。マーカ動作設定部１０３は、マーキング部１０５が実行すべきマーカ方式を決定し（Ｓ５０７）、マーキング部１０５に指示する（Ｓ５０８）。この例では、マーカ方式はフィルタ２０により決定されてマーカ１０に通知されるが、マーカ方式は、マーカ１０のマーカ動作設定部１０３において、シグナリング情報に含まれる要求データ種別に基づいて決定されてもよい。
【０１１０】
マーカ１０のシグナリング部１０７は、フィルタ２０から受信したシグナリング情報をソース３０に送信する（Ｓ５０９）。
【０１１１】
以降、図１２のステップＳ２０４〜Ｓ２０８と同様に、マーキング及びフィルタリングが実行される。
【０１１２】
＜データ配信システムにおけるシーケンス例５＞
図１９は、コントローラ５０が介在する場合のデータ配信システムにおけるシーケンス例５である。コントローラ５０は、各ノードの能力を取得し、シンク４０が要求するデータの内容を示すシンク要求通知に応じて各ノードが実行すべき動作を決定する。
【０１１３】
シンク４０は、接続先ＵＲＬとデータ受信アドレス及びポートに加えて、要求データ種別を含むシンク要求通知をコントローラ５０に送信する（Ｓ６０１）。例えば、要求データ種別は、シンク４０がソース３０からの配信を要求するデータの種別を表し、例えば、ＪＰＥＧで符号化されたＹ成分のみの配信を要求することを表す。
【０１１４】
コントローラ５０の能力取得部５０３は、フィルタ２０のフィルタ動作設定部２０３において設定可能なフィルタ方式を取得するためのフィルタ能力取得要求を送信し（Ｓ６０２）、設定可能なフィルタ方式を示すフィルタ能力を取得する（Ｓ６０３）。例えば、フィルタ能力には、パケット毎にフィルタリングが可能であるか、パケットのまとまりであるブロック毎にフィルタリングが可能であるか、０又は１の２値情報によってフィルタリングが可能であるか、２値以外の情報によってフィルタリングが可能であるか等の情報が含まれる。フィルタ方式の具体例については以下に詳細に説明する。
【０１１５】
また、コントローラ５０の能力取得部５０３は、マーカ１０のマーカ動作設定部１０３において設定可能なマーカ方式を取得するためのマーカ能力取得要求を送信し（Ｓ６０４）、設定可能なマーカ方式を示すマーカ能力を取得する（Ｓ６０５）。例えば、マーカ能力には、パケット毎にマーキングが可能であるか、パケットのまとまりであるブロック毎にマーキングが可能であるか、０又は１の２値情報によってマーキングが可能であるか、２値以外の情報によってマーキングが可能であるか等の情報が含まれる。
【０１１６】
また、コントローラ５０の能力取得部５０３は、ソース３０において利用可能なコーデックを取得するためのソース能力取得要求を送信し（Ｓ６０６）、利用可能なコーデック（例えば、Ｈ．２６４、ＪＰＥＧ等）を示すソース能力を取得する（Ｓ６０７）。
【０１１７】
コントローラ５０の動作設定部５０５は、能力取得部５０３が取得した各ノードの能力を取得して（Ｓ６０８）、シンク要求通知に応じて、シンク４０が配信を要求するデータを受信できるように各ノードが実行すべき動作を整合させる（Ｓ６０９）。
【０１１８】
コントローラ５０の動作設定部５０５は、フィルタ２０のフィルタ動作設定部２０３にフィルタ方式を指示し（Ｓ６１０）、フィルタ動作設定部２０３は、フィルタリング部２０５が実行すべきフィルタ方式をフィルタリング部２０５に指示する（Ｓ６１１）。
【０１１９】
また、コントローラ５０の動作設定部５０５は、マーカ１０のマーカ動作設定部１０３にマーカ方式を指示し（Ｓ６１２）、マーカ動作設定部１０３は、マーキング部１０５が実行すべきマーカ方式をマーキング部１０５に指示する（Ｓ６１３）。
【０１２０】
更に、コントローラ５０の動作設定部５０５は、ソース３０に対して使用すべきコーデックを指示する（Ｓ６１４）。
【０１２１】
コントローラ５０の動作設定部５０５は、例えば、各ノードへの動作指示に対する応答を受信した場合、準備完了通知をシンク４０に送信する（Ｓ６１５）。
【０１２２】
以降、図１２のステップＳ２０４〜Ｓ２０８と同様に、データが配信される。
【０１２３】
＜マーカにおけるマーカ方式の具体例１＞
次に、マーカ１０のマーキング部１０５におけるマーカ方式について詳細に説明する。
【０１２４】
図２０Ａ及び図２０Ｂは、マーカ１０におけるマーカ方式の具体例１である。上記のように、マーカ１０は、パケットにデータの内容（成分等）を示す付加情報を付与することができるが、マーカ１０は、パケットのヘッダに付加情報を付与してもよく、ペイロードに付加情報を付与してもよい。
【０１２５】
例えば、データを伝送するためのプロトコルとしてＲＴＰが利用される場合、マーカ１０は、図２０Ａに示すように、ＲＴＰ拡張ヘッダに付加情報を付与することができる。ＲＴＰ拡張ヘッダは、IETF RFC 5285（https://tools.ietf.org/rfc/rfc5285.txt）において仕様化されているため、シンク４０での読み取り処理に既存のライブラリコードをそのまま利用することができる。また、ＲＴＰ拡張ヘッダを理解しない受信側ノードがＲＴＰ拡張ヘッダ部分を無視して通常通り処理できる。一方、マーキングする情報量が少ない場合でも、ＲＴＰ拡張ヘッダとして定義されているｌｅｎｇｔｈやＩＤ等を設定しなければならず、オーバヘッドが大きくなる。
【０１２６】
また、マーカ１０は、図２０Ｂに示すように、ＲＴＰペイロードに付加情報を付与することができる。ＲＴＰペイロードには、必要な情報のみを埋め込めばよいため情報量のオーバヘッドが少ない。一方、ＲＴＰにおいて仕様化されていない独自形式の埋め込みとなるため、シンク４０での読み取り処理を、埋め込み形式に合わせて個別に実装する必要が生じる。
【０１２７】
なお、付加情報は、０又は１の２値情報でもよく、意味のある情報を示すセマンティックス情報でもよい。
【０１２８】
付加情報を２値情報で表現するパルス方式は、フィルタリング対象でないデータには１を付与し、フィルタリング対象のデータには０を付与するというものでもよい。また、フィルタリング対象のデータでないデータに１を付与し、フィルタリング対象のデータには何も付与しないことも可能である。パルス方式は、マーカ１０の負荷が軽く、フィルタ２０の負荷も軽くすることができる。一方、フィルタ２０において３種類を超えるフィルタリング処理を行う場合には、別の情報と組み合わせる必要がある。
【０１２９】
付加情報をセマンティックス情報で表現するセマンティックス方式は、例えば、画像データの成分がＹ成分であるかＣｂ成分であるかＣｒ成分であるかという情報を付与するものである。他の例として、画像データの走査線の番号又は座標を付与するものでもよい。セマンティックス方式は、付加情報のみでフィルタリングが可能であるが、マーカ１０の負荷が大きくなる。
【０１３０】
＜マーカにおけるマーカ方式の具体例２＞
図２１Ａ及び図２１Ｂは、マーカ１０におけるマーカ方式の具体例２である。上記のように、マーカ１０は、パケットにデータの内容（成分等）を示す付加情報を付与することができるが、マーカ１０は、パケット毎に付加情報を付与してもよく、ソース３０から部分データの種別を示すメタデータが取得できる場合には、部分データの種別が切り替わる境目のパケットに付加情報を付与してもよい。
【０１３１】
図２１Ａは、パケット毎に付加情報を付与するパケットレベルのマーカ方式を示している。付加情報は、全てのパケットに付与される。ただし、フィルタリング対象のデータ（例えば、Ｃｂ成分、Ｃｒ成分）に対しては付加情報の付与を省略することも可能である。このマーカ方式は、パケットロス、順序逆転、パケット重複に強いため、ＵＤＰ（User Datagram Protocol）を利用するソースに適している。一方、全てのパケットに付加情報が付与されるため、マーカ１０及びフィルタ２０の負荷が大きく、ネットワーク帯域も消費する。
【０１３２】
図２１Ｂは、部分データの種別が切り替わる境目のパケットに付加情報を付与するブロックレベルのマーカ方式を示している。例えば、インターリーブをせずに送信する場合のＹ成分、Ｃｂ成分、Ｃｒ成分の境目のように、部分データのまとまりであるブロックが切り替わる境目にマーキングする。このマーカ方式は、切り替え時に付加情報が付与されるため、マーカ１０及びフィルタ２０の負荷を軽くすることができ、ネットワーク帯域も節約できる。一方、パケットロス、順序逆転、パケット重複に弱いため、ＵＤＰを利用するソースに適用しづらくなる。
【０１３３】
マーカ１０において、パケットレベルのマーカ方式が使用されるかブロックレベルのマーカ方式が使用されるかによって、フィルタ２０の動作が変わるため、フィルタ２０の動作について更に詳細に説明する。図１５のステップＳ２３６に示すように、フィルタ２０は、マーカ１０において付与された付加情報に基づいて、シンク４０への転送可否を判断する。このステップＳ２３６の処理手順について、詳細に説明する。
【０１３４】
図２２は、パケットレベルのマーカ方式が使用される場合のフィルタリングの処理手順を示すフローチャートである。
【０１３５】
フィルタ２０のフィルタリング部２０５は、マーカ１０において付与された付加情報を読み取る（Ｓ２４１）。付加情報が存在し（Ｓ２４２：Ｙｅｓ）、付加情報がフィルタ対象のデータであることを示す場合（Ｓ２４３：Ｙｅｓ）、ステップＳ２３７に進み、データが破棄される。付加情報が存在し（Ｓ２４２：Ｙｅｓ）、付加情報がフィルタ対象のデータでないことを示す場合（Ｓ２４３：Ｎｏ）、ステップＳ２３８に進み、データがシンク４０に転送される。
【０１３６】
また、付加情報が存在せず（Ｓ２４２：Ｎｏ）、付加情報が存在しないデータがフィルタ対象のデータである場合（Ｓ２４４：Ｙｅｓ）、ステップＳ２３７に進み、データが破棄される。付加情報が存在せず（Ｓ２４２：Ｎｏ）、付加情報が存在しないデータがフィルタ対象のデータでない場合（Ｓ２４４：Ｎｏ）、ステップＳ２３８に進み、データがシンク４０に転送される。
【０１３７】
図２３は、ブロックレベルのマーカ方式が使用される場合のフィルタリングの処理手順を示すフローチャートである。
【０１３８】
フィルタ２０のフィルタリング部２０５は、マーカ１０において付与された付加情報を読み取る（Ｓ２５１）。付加情報が存在する場合（Ｓ２５２：Ｙｅｓ）、読み取った付加情報を読取済付加情報として記録する（Ｓ２５３）。付加情報がフィルタ対象のデータであることを示す場合（Ｓ２５４：Ｙｅｓ）、ステップＳ２３７に進み、データが破棄される。付加情報がフィルタ対象のデータでないことを示す場合（Ｓ２５４：Ｎｏ）、ステップＳ２３８に進み、データがシンク４０に転送される。
【０１３９】
また、付加情報が存在しない場合（Ｓ２５２：Ｎｏ）、読取済付加情報が存在するか確認し、読取済付加情報が存在する場合（Ｓ２５５：Ｙｅｓ）、且つ、読取済付加情報がフィルタ対象のデータであることを示す場合（Ｓ２５６：Ｙｅｓ）、ステップＳ２３７に進み、データが破棄される。読取済付加情報が存在するが（Ｓ２５５：Ｎｏ）、読取済付加情報がフィルタ対象のデータでないことを示す場合（Ｓ２５６：Ｎｏ）、ステップＳ２３８に進み、データがシンク４０に転送される。
【０１４０】
また、付加情報及び読取済付加情報が存在せず（Ｓ２５５：Ｎｏ）、付加情報が存在しないデータがフィルタ対象のデータである場合（Ｓ２５７：Ｙｅｓ）、ステップＳ２３７に進み、データが破棄される。付加情報及び読取済付加情報が存在せず（Ｓ２５５：Ｎｏ）、付加情報が存在しないデータがフィルタ対象のデータでない場合（Ｓ２５７：Ｎｏ）、ステップＳ２３８に進み、データがシンク４０に転送される。
【０１４１】
＜フィルタにおける転送終了通知の具体例＞
上記のように、ソース３０とシンク４０の間にマーカ１０及びフィルタ２０が介在するデータ配信システムでは、フィルタ２０のフィルタリングによってデータの一部が破棄される。典型的なシンク４０におけるデータ処理では、データの欠損を判断するためにタイムアウト時間を設定し、それまでに所望のデータが到着しなかった場合に欠損とみなし、到着したデータのみから可能な範囲で復号を試みる。しかし、タイムアウト時間だけシンク４０における描画等のデータ処理が遅延する。そこで、フィルタ２０がデータの欠損をシンク４０に通知することで、シンク４０におけるデータ処理遅延を短縮することができ、リアルタイムな視聴及び画像解析に貢献することができる。
【０１４２】
図２４は、シンク４０に転送すべきパケットの転送が終了したことを示す転送終了通知を、フィルタ２０がシンク４０に送信する具体例１を示す図である。ソース３０は、画像データ等のデータ終端（ＥＯＩ：End of Image）の情報のみを含むパケットをフィルタ２０に送信する。フィルタ２０の通信部２０１がＥＯＩの情報のみを含むパケットを受信した場合、そのパケットをシンク４０に転送する。
【０１４３】
図２５は、フィルタ２０が転送終了通知をシンク４０に送信する具体例２を示す図である。フィルタ２０が画像データのＹ成分のみを転送するフィルタ方式を使用する場合、Ｙ成分の転送後にＣｒ成分を受信した場合、以降のパケットは破棄すべきであることを認識できる。したがって、フィルタ２０の通信部２０１は、転送すべきパケットの転送が終了したため、データ終端（ＥＯＩ）の情報のみを含むパケットをシンク４０に送信する。
【０１４４】
シンク４０は、転送終了通知を受信した場合、タイムアウト時間を待つことなく、データ処理を行うことができる。
【０１４５】
なお、具体例１および具体例２は、１つのソースからのデータ送信の例であるが、複数のソースが存在してもよい。複数のソースが存在する場合には、各ソースに対し少なくとも一つのマーカが存在し、各ソースから送出されるパケットは、パケットが有する５タプルにより識別され、対応するマーカへと転送される。
【０１４６】
＜本発明の実施例の効果＞
本発明の実施例によれば、１つの配信元ノードから異なる要求を持つ複数の配信先ノードにデータを配信するときの配信元ノード及び配信先ノードの処理負荷を低減し、通信トラヒックを削減することが可能になる。したがって、１つの配信元ノードが複数の配信先ノードの異なる要求毎にデータを配信し分ける場合に、通信帯域、配信元ノードの処理能力を浪費するという従来技術の課題を解決することができる。また、１つの配信元ノードから複数の配信先ノードに一斉配信を行ったときに、配信先ノードで自らの目的に合わせたデータの解釈や変換を行うことによって配信先ノードの処理負荷が大きくなるという課題を解決することができる。
【０１４７】
すなわち、映像などの情報の配信元ノードが、配信先ノード毎に異なる要求に応じてデータを配信し分ける能力を持つ必要がなくなり、処理の効率化や当該ノードのコストの削減が可能となる。
【０１４８】
更に、配信元ノードからネットワークに向かって配信される情報が１種類で済むため、配信先ノード毎に配信し分ける必要がなくなり、ネットワーク帯域の圧迫回避が可能となる。
【０１４９】
また、配信先ノードが、自らの目的に合った配信方法及び配信内容でデータを受信できるため、自らの目的に合わせたデータの解釈や変換を行う必要がなくなり、処理の効率化や当該ノードのコストの削減が可能となる。
【０１５０】
＜ハードウェア構成例＞
図２６に、本発明の実施例に係る各ノード（マーカ１０、フィルタ２０、ソース３０、シンク４０及びコントローラ５０）のハードウェア構成例を示す。各ノードは、ＣＰＵ（Central Processing Unit）１５１等のプロセッサ、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリ装置１５２、ハードディスク等の記憶装置１５３等から構成されたコンピュータでもよい。例えば、各ノードの機能及び処理は、記憶装置１５３又はメモリ装置１５２に格納されているデータやプログラムをＣＰＵ１５１が実行することによって実現される。また、各ノードへのデータの入力は、入出力インタフェース装置１５４から行われ、各ノードからのデータの出力は、入出力インタフェース装置１５４から行われてもよい。
【０１５１】
＜補足＞
説明の便宜上、本発明の実施例に係る各ノードは機能的なブロック図を用いて説明しているが、本発明の実施例に係る各ノードは、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施例は、コンピュータに対して本発明の実施例に係る各ノードの機能を実現させるプログラム、コンピュータに対して本発明の実施例に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
【０１５２】
以上、１つの配信元ノードから異なる要求を持つ複数の配信先ノードにデータを配信するときの配信元ノード及び配信先ノードの処理負荷を低減し、通信トラヒックを削減するための手法について説明したが、本発明は、上記の実施例に限定されることなく、請求の範囲内において、種々の変更・応用が可能である。
【０１５３】
本国際出願は２０１７年２月６日に出願した日本国特許出願２０１７−０１９８９１号に基づく優先権を主張するものであり、２０１７−０１９８９１号の全内容を本国際出願に援用する。
【符号の説明】
【０１５４】
１０    マーカ
２０    フィルタ
３０    ソース
４０    シンク
５０    コントローラ
１０１  通信部
１０３  マーカ動作設定部
１０５  マーキング部
１０７  シグナリング部
２０１  通信部
２０３  フィルタ動作設定部
２０５  フィルタリング部
２０７  シグナリング部
５０１  通信部
５０３  能力取得部
５０５  動作設定部
１５１  ＣＰＵ
１５２  メモリ装置
１５３  記憶装置
１５４  入出力インタフェース装置
【図１】
0006732966.tif 000002
【図２】
0006732966.tif 000003
【図３】
0006732966.tif 000004
【図４】
0006732966.tif 000005
【図５】
0006732966.tif 000006
【図６】
0006732966.tif 000007
【図７】
0006732966.tif 000008
【図８】
0006732966.tif 000009
【図９】
0006732966.tif 000010
【図１０】
0006732966.tif 000011
【図１１】
0006732966.tif 000012
【図１２】
0006732966.tif 000013
【図１３】
0006732966.tif 000014
【図１４】
0006732966.tif 000015
【図１５】
0006732966.tif 000016
【図１６】
0006732966.tif 000017
【図１７】
0006732966.tif 000018
【図１８】
0006732966.tif 000019
【図１９】
0006732966.tif 000020
【図２０Ａ】
0006732966.tif 000021
【図２０Ｂ】
0006732966.tif 000022
【図２１Ａ】
0006732966.tif 000023
【図２１Ｂ】
0006732966.tif 000024
【図２２】
0006732966.tif 000025
【図２３】
0006732966.tif 000026
【図２４】
0006732966.tif 000027
【図２５】
0006732966.tif 000028
【図２６】
0006732966.tif 000029