(57)【特許請求の範囲】
【請求項１】
メモリに格納された複数のディジタルコンテンツのコンテンツ情報、および、前記複数のディジタルコンテンツの関係を登録したテーブルを作成する作成手段と、
要求ディジタルコンテンツのコンテンツ識別子、および、前記要求ディジタルコンテンツのデータ範囲を示す要求メッセージを受信する受信手段と、
前記要求メッセージが示すコンテンツ識別子および前記テーブルに基づく前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在に関する第一の判定、並びに、前記要求メッセージが示すデータ範囲および前記テーブルに基づく前記データ範囲に関する第二の判定を行う判定手段と、
前記第一および第二の判定の結果に応じて、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲を、前記テーブルを参照して決定する決定手段と、
前記第一および第二の判定の結果および前記決定に基づき、前記要求メッセージに対する応答メッセージを返信する送信手段とを有し、
前記作成手段は、前記複数のディジタルコンテンツの関係を示すために、前記複数のディジタルコンテンツのコンテンツ座標の順に前記複数のディジタルコンテンツのコンテンツ情報を前記テーブルに登録し、前記複数のディジタルコンテンツのコンテンツ座標の間に空きがある場合は当該コンテンツ座標に相当するディジタルコンテンツが存在しない旨を示すシンボルを前記テーブルに登録することを特徴とする情報処理装置。
【請求項２】
メモリに格納された複数のディジタルコンテンツのコンテンツ情報、および、前記複数のディジタルコンテンツの関係を登録したテーブルを作成する作成手段と、
要求ディジタルコンテンツのコンテンツ識別子、および、前記要求ディジタルコンテンツのデータ範囲を示す要求メッセージを受信する受信手段と、
前記要求メッセージが示すコンテンツ識別子および前記テーブルに基づく前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在に関する第一の判定、並びに、前記要求メッセージが示すデータ範囲および前記テーブルに基づく前記データ範囲に関する第二の判定を行う判定手段と、
前記第一および第二の判定の結果に応じて、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲を、前記テーブルを参照して決定する決定手段と、
前記第一および第二の判定の結果および前記決定に基づき、前記要求メッセージに対する応答メッセージを返信する送信手段とを有し、
前記作成手段は、前記複数のディジタルコンテンツの関係を示すために、前記複数のディジタルコンテンツのコンテンツ座標の順に前記複数のディジタルコンテンツのコンテンツ情報を前記テーブルに登録し、前記複数のディジタルコンテンツの間の論理的な区切りを示すシンボルを前記テーブルに登録することを特徴とする情報処理装置。
【請求項３】
前記第一の判定の結果が前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在を示し、前記第二の判定の結果が前記ディジタルコンテンツが前記要求メッセージが示すデータ範囲を含まないことを示す場合、前記決定手段は、前記ディジタルコンテンツのコンテンツ情報の次に前記テーブルに登録されたコンテンツ情報があるか否かを判定し、次のコンテンツ情報がある場合は前記次のコンテンツ情報に対応する次のディジタルコンテンツが前記要求メッセージが示すデータ範囲を含むか否かを判定することを特徴とする請求項1または請求項2に記載された情報処理装置。
【請求項４】
前記決定手段は、前記次のディジタルコンテンツが前記要求メッセージが示すデータ範囲を含む場合、前記次のディジタルコンテンツのコンテンツ識別子と対応するデータ範囲を、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲に決定することを特徴とする請求項3に記載された情報処理装置。
【請求項５】
前記送信手段は、前記要求メッセージに対する応答メッセージとして、前記決定されたコンテンツ識別子とデータ範囲を含むメッセージを返信することを特徴とする請求項4に記載された情報処理装置。
【請求項６】
前記第一の判定の結果が前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在を示し、前記第二の判定の結果が前記ディジタルコンテンツが前記要求メッセージが示すデータ範囲を含むことを示す場合、前記決定手段は、前記ディジタルコンテンツのコンテンツ識別子と対応するデータ範囲を、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲に決定することを特徴とする請求項1または請求項2に記載された情報処理装置。
【請求項７】
前記送信手段は、前記決定されたコンテンツ識別子に対応するディジタルコンテンツから前記決定されたデータ範囲に対応する部分データを分割し、前記要求メッセージに対する応答メッセージとして、前記部分データを含むメッセージを返信することを特徴とする請求項6に記載された情報処理装置。
【請求項８】
前記第一の判定の結果が前記要求ディジタルコンテンツに対応するディジタルコンテンツの非存在を示す場合、前記送信手段は、前記要求メッセージに対する応答メッセージとしてエラーメッセージを返信することを特徴とする請求項1または請求項2に記載された情報処理装置。
【請求項９】
さらに、前記メモリに格納された前記複数のディジタルコンテンツの少なくとも一部をネットワークを介して別のストレージに転送する転送手段を有し、
前記作成手段は、前記転送されたディジタルコンテンツの転送先のアドレス情報を前記テーブルに登録することを特徴とする請求項1から請求項8の何れか一項に記載された情報処理装置。
【請求項１０】
作成手段、受信手段、判定手段、決定手段、送信手段を有する情報処理装置の情報処理方法であって、
前記作成手段が、メモリに格納された複数のディジタルコンテンツのコンテンツ情報、および、前記複数のディジタルコンテンツの関係を登録したテーブルを作成し、
前記受信手段が、要求ディジタルコンテンツのコンテンツ識別子、および、前記要求ディジタルコンテンツのデータ範囲を示す要求メッセージを受信し、
前記判定手段が、前記要求メッセージが示すコンテンツ識別子および前記テーブルに基づく前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在に関する第一の判定、並びに、前記要求メッセージが示すデータ範囲および前記テーブルに基づく前記データ範囲に関する第二の判定を行い、
前記決定手段が、前記第一および第二の判定の結果に応じて、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲を、前記テーブルを参照して決定し、
前記送信手段が、前記第一および第二の判定の結果および前記決定の結果に基づき、前記要求メッセージに対する応答メッセージを返信し、
前記作成手段は、前記複数のディジタルコンテンツの関係を示すために、前記複数のディジタルコンテンツのコンテンツ座標の順に前記複数のディジタルコンテンツのコンテンツ情報を前記テーブルに登録し、前記複数のディジタルコンテンツのコンテンツ座標の間に空きがある場合は当該コンテンツ座標に相当するディジタルコンテンツが存在しない旨を示すシンボルを前記テーブルに登録することを特徴とする情報処理方法。
【請求項１１】
作成手段、受信手段、判定手段、決定手段、送信手段を有する情報処理装置の情報処理方法であって、
前記作成手段が、メモリに格納された複数のディジタルコンテンツのコンテンツ情報、および、前記複数のディジタルコンテンツの関係を登録したテーブルを作成し、
前記受信手段が、要求ディジタルコンテンツのコンテンツ識別子、および、前記要求ディジタルコンテンツのデータ範囲を示す要求メッセージを受信し、
前記判定手段が、前記要求メッセージが示すコンテンツ識別子および前記テーブルに基づく前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在に関する第一の判定、並びに、前記要求メッセージが示すデータ範囲および前記テーブルに基づく前記データ範囲に関する第二の判定を行い、
前記決定手段が、前記第一および第二の判定の結果に応じて、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲を、前記テーブルを参照して決定し、
前記送信手段が、前記第一および第二の判定の結果および前記決定に基づき、前記要求メッセージに対する応答メッセージを返信し、
前記作成手段は、前記複数のディジタルコンテンツの関係を示すために、前記複数のディジタルコンテンツのコンテンツ座標の順に前記複数のディジタルコンテンツのコンテンツ情報を前記テーブルに登録し、前記複数のディジタルコンテンツの間の論理的な区切りを示すシンボルを前記テーブルに登録することを特徴とする情報処理方法。
【請求項１２】
コンピュータを請求項1から請求項9の何れか一項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークを介してマルチメディアコンテンツを送信する情報処理に関する。
【背景技術】
【０００２】
従来、IETFが公開するRFC3986には、ネットワーク上のファイルなどのリソースを識別するためのURIの記述方法が定義されている。この定義に従うと、URIの利用者は、URIの一部にフラグメント識別子と呼ばれる記述を付加することで、主リソースの一部データなど副次的リソースを表現することができる。なお、IETFは「Internet Engineering Task Fource」の略、URIは「uniform resource identifier」の略である。
【０００３】
また、W3Cは、フラグメント識別子を使用して、動画などのマルチメディアコンテンツを時間、座標、トラック種別（画像、音声、字幕など）で分割したデータを表現するメディアフラグメントURIの仕様を策定中である。この仕様によれば、動画を再生する端末装置などは、動画を配信する装置から動画を取得する際に、フラグメント識別子を含むURIを用いて動画の一部を取得対象に指定することができる。なお、W3Cは「World Wide Web Consortium」の略である。
【０００４】
また、取得対象のリソースがWebサーバ上にある場合、通信プロトコルとしてRFC2068に定義されたHTTP/1.1が多用される。
【０００５】
一方、ネットワークに接続された監視カメラは、データ保存用のストレージの容量が小さい場合、所定のデータサイズごとに、または、所定の時間間隔で録画データを分割し、分割後の録画データを別ファイルとしてデータ保存用のサーバにアップロードする。データ保存用のサーバがWebサーバ機能を有する場合、監視カメラの利用者は、保存されたファイルを動画コンテンツとして送信させる要求を、Webブラウザを用いて発行することができる。
【０００６】
また、複数のカメラで撮影した特定の場所やイベントの動画データをそれぞれを別ファイルとして、クラウドサービスとして提供されるストレージサービスにアップロードするもよく行われる。ストレージサービスがWebサーバ機能を有する場合、当該サービスの利用者は、保存されたファイルを動画コンテンツとして送信させる要求を、Webブラウザを用いて発行することができる。
【０００７】
しかし、メディアフラグメントURI記述により動画ファイルの要求範囲を指定する、つまり、動画コンテンツの部分データを要求すると、当該動画コンテンツに要求範囲のデータが存在しない場合がある。上記の監視カメラやストレージサービスの例においては、例えば、要求範囲の部分データが、メディアフラグメントURIが指定するファイル（以下、指定ファイル）に存在せず、別のファイルに存在する場合である。
【０００８】
要求範囲の部分データが他のファイルに存在するとしても、Webサーバは、指定ファイルと他のファイルの関係を把握できないため、その部分データを特定することができない。その結果、Webサーバは、指定ファイルの動画コンテンツから要求範囲の部分データを取得できず、Webブラウザにエラーを返すか、以降の処理をWebブラウザに任せるために指定ファイルの動画コンテンツ全体をWebクライアントに供給する。言い替えれば、Webサーバに要求範囲に部分データが存在するにも関わらず、Webブラウザは当該データを取得することができない。
【０００９】
なお、フラグメントURIに関連する先行技術としては、フラグメントURIの記述を用いて、指定した矩形領域、時間の部分動画を取得する発明（特許文献1）がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開2001-184243号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、要求されたデータ範囲が、要求されたディジタルコンテンツに含まれず、他のディジタルコンテンツに含まれる場合、他のディジタルコンテンツに関する情報を返信することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１３】
本発明にかかる情報処理は、メモリに格納された複数のディジタルコンテンツのコンテンツ情報、および、前記複数のディジタルコンテンツの関係を登録したテーブルを作成する作成手段と、要求ディジタルコンテンツのコンテンツ識別子、および、前記要求ディジタルコンテンツのデータ範囲を示す要求メッセージを受信する受信手段と、前記要求メッセージが示すコンテンツ識別子および前記テーブルに基づく前記要求ディジタルコンテンツに対応するディジタルコンテンツの存在に関する第一の判定、並びに、前記要求メッセージが示すデータ範囲および前記テーブルに基づく前記データ範囲に関する第二の判定を行う判定手段と、前記第一および第二の判定の結果に応じて、前記要求メッセージが示すデータ範囲に対応するディジタルコンテンツのコンテンツ識別子とデータ範囲を、前記テーブルを参照して決定する決定手段と、前記第一および第二の判定の結果および前記決定に基づき、前記要求メッセージに対する応答メッセージを返信する送信手段とを有し、前記作成手段は、前記複数のディジタルコンテンツの関係を示すために、前記複数のディジタルコンテンツのコンテンツ座標の順に前記複数のディジタルコンテンツのコンテンツ情報を前記テーブルに登録し、前記複数のディジタルコンテンツのコンテンツ座標の間に空きがある場合は当該コンテンツ座標に相当するディジタルコンテンツが存在しない旨を示すシンボルを前記テーブルに登録することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、要求されたデータ範囲が、要求されたディジタルコンテンツに含まれず、他のディジタルコンテンツに含まれる場合、他のディジタルコンテンツに関する情報を返信することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例1のマルチメディアコンテンツの送受信システムの構成例を説明するブロック図。
【図２】データ送信装置の動作例を説明するフローチャート。
【図３】仮想コンテンツ構成表の一例を示す図。
【図４】データ受信装置の動作例を説明するフローチャート。
【図５】コンテンツ情報登録部のコンテンツ登録処理を説明するフローチャート。
【図６】コンテンツ決定処理を説明するフローチャート。
【図７】データ受信装置とデータ送信装置の間のメッセージフローをHTTPプロトコルを使用して説明する図。
【図８】実施例2のマルチメディアコンテンツの送受信システムの構成例を説明するブロック図。
【図９】データ送信装置の動作例を説明するフローチャート。
【図１０】実施例2における仮想コンテンツ構成表の一例を示す図。
【図１１】データ受信装置、データ送信装置、データ送信装置の間のメッセージフローをHTTPプロトコルを使用して説明する図。
【発明を実施するための形態】
【００１６】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。なお、以下では、要求ディジタルコンテンツの一例として代表的なマルチメディアコンテンツである動画コンテンツを説明するが、音声、サウンド、写真を含む他の種類のディジタルコンテンツを扱うこともできる。
【実施例１】
【００１７】
［システムの構成］
図1のブロック図により実施例1のマルチメディアコンテンツの送受信システムの構成例を説明する。
【００１８】
図1において、データ送信装置100とデータ受信装置120はネットワークに接続され、ネットワークを介して相互にデータ通信が可能である。データ送信装置100には、マルチメディアコンテンツ（例えば動画コンテンツ）131が格納されたデータ記憶装置130が接続される。
【００１９】
例えば、データ送信装置100は、監視カメラ、ビデオ録画装置、ディジタルビデオカメラなどである。また、データ受信装置120は、テレビジョンなどの装置、パーソナルコンピュータ(PC)やスマートフォンなどの通信端末上で動作する動画ビューアやウェブブラウザなどである。なお、図1には、データ送信装置100とデータ記憶装置130が別の装置例を示すが、データ送信装置100とデータ記憶装置130は一体でもよい。
【００２０】
また、データ記憶装置130には、動画コンテンツが分割され、それらが別ファイルとして格納されている。動画コンテンツの分割は、例えば動画の録画時に行われてもよいし、録画後に行われてもよい。また、分割された動画コンテンツを複数組み合わせて、一つの論理的なグループにまとめたコンテンツ群を「仮想コンテンツ」と呼ぶ。
【００２１】
●データ送信装置
CPU111は、メモリ112のRAMをワークメモリとして、メモリ112のROMやハードディスクドライブ(HDD)に格納されたOSやプログラムを実行して、データ送信装置100全体の動作を制御する。なお、メモリ112は、RAM、ROM、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などによって構成される。
【００２２】
以下で説明するデータ送信装置100の各構成は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合、各構成の機能を実現するソフトウェアは、メモリ112のROM、HDD、SSDなどに格納され、CPU111はそれらソフトウェアをロードし実行することで各構成の機能が実現される。
【００２３】
図2のフローチャートによりデータ送信装置100の動作例を説明する。
【００２４】
CPU111は、データ記憶装置130に動画コンテンツを新たに格納するイベントが発生すると、コンテンツ情報記録部101により、当該動画コンテンツのコンテンツ情報を保存する(S201)。コンテンツ情報の保存先は、動画コンテンツファイルのメタ情報保存領域（例えばMP4形式のmoovコンテナなど）、データ記憶装置130の別ファイル、メモリ112などである。
【００２５】
コンテンツ情報は、データ送信装置100が録画データを保存する際の動画コンテンツのメタ情報であり、コンテンツ識別子、コンテンツ座標、コンテンツ範囲で構成される。コンテンツ識別子は、データ記憶装置130上でコンテンツを一意に区別するための識別子であり、例えば、コンテンツを格納するファイルのファイル名である。コンテンツ座標は、特定の軸（例えば時間軸）上で複数のコンテンツの前後関係を示す情報（例えば録画開始日時）を示す。コンテンツ範囲は、軸上でコンテンツが占める座標の範囲を表し、例えば、録画時間である。
【００２６】
なお、軸とコンテンツ座標は時間に限られるわけではなく、画像の撮影位置、画像や文書の検索ヒット率、組織一覧表やスケジュール表中の画像や文書の順番など、コンテンツの前後関係を示す基準と値であれば構わない。
【００２７】
次に、CPU111は、詳細は後述するが、コンテンツ情報登録部102により、データ記憶装置130に格納された動画コンテンツ131のコンテンツ情報を取得し、コンテンツ座標の値順に、コンテンツ情報をテーブルに登録する(S202)。なお、当該テーブルを「仮想コンテンツ構成表」と呼ぶ。
【００２８】
図3により仮想コンテンツ構成表の一例を示す。仮想コンテンツ構成表のコンテンツ識別子欄401はコンテンツ識別子（例えばファイル名）を、コンテンツ座標欄402はコンテンツ座標の値（例えば録画開始日時）を、コンテンツ範囲欄403にはコンテンツ範囲（例えば秒単位の録画時間）を示す。なお、仮想コンテンツ構成表のレコードは、録画開始日時の順に並んでいるものとする。
【００２９】
仮想コンテンツ構成表において、識別子[FILLER]は、前のコンテンツの録画終了日時と次のコンテンツの録画開始日時の間の空きを示す。コンテンツ情報登録部102は、コンテンツ情報の登録時、前のコンテンツの録画終了日時と次のコンテンツの録画開始日時が一致しない場合、未録画の時間帯を示すシンボルとして疑似的なコンテンツを登録し、コンテンツ識別子[FILLER]を付加する。なお、疑似的なコンテンツを以下「フィラーコンテンツ」と呼ぶ。従って、フィラーコンテンツのコンテンツ座標は前の動画コンテンツの録画終了日時であり、コンテンツ範囲は未録画の時間帯（前のコンテンツの録画終了日時と次のコンテンツの録画開始日時の差）を示す値である。
【００３０】
また、コンテンツ情報登録部102は、動画コンテンツの間に論理的な区切りを付加したい場合、シンボルとしてコンテンツ識別子[SEPARATOR]をもつ擬似的なコンテンツ（以下、セパレータコンテンツ）を登録することができる。図3には、日付の変わり目にセパレータコンテンツを登録する例を示す。また、セパレータコンテンツにおけるコンテンツ座標の値とコンテンツ範囲の値には未定義(N/A)を使用する。
【００３１】
コンテンツ情報の登録(S202)の後、CPU111は、要求メッセージ受信部103により、動画コンテンツの要求メッセージの受信を待ち(S203)、データ受信装置120から要求メッセージを受信するとコンテンツ決定処理を実行する(S204)。なお、コンテンツ決定処理の詳細は後述する。
【００３２】
下記はURLが「www.example.com」のデータ送信装置100からコンテンツ識別子「20110401-00.mp4」をもつ動画コンテンツの7300秒から7310秒のデータ範囲の部分データを要求する場合の記述を示す。なお、下記のメディアフラグメントURIは、データ受信装置120のユーザインタフェイス(UI)やデータ受信装置120に表示されたウェブページのリンク記述などによって生成されるが、他の方法で生成されてもよい。
http://www.example.com/20110401-00.mp4#t=7300,7310    …(1)
【００３３】
上記のメディアフラグメントURIが生成されると、データ受信装置120は、HTTPプロトコルで表される下記の要求メッセージを送信する。なお、下記のRangeヘッダに記述された値が部分データを示す。
GET /20110401-00.mp4 HTTP/1.1
Host: www.example.com
Accept: video/*
Range: t:npt=7300-7310                          …(2)
：
【００３４】
図7によりデータ受信装置120とデータ送信装置100の間のメッセージフローをHTTPプロトコルを使用して説明する。メッセージ510は、ステップS203で、データ送信装置100がデータ受信装置120から受信する要求メッセージに相当する。
【００３５】
CPU111は、コンテンツ決定処理(S204)により、要求メッセージが示す部分データが存在する場合、動画コンテンツのコンテンツ識別子、開始の座標値（録画開始日時）、終了の座標値（録画終了日時）を決定し、それらを戻り値に設定する。また、要求メッセージが示す部分データが存在しない場合は戻り値にNULLを設定する。
【００３６】
CPU111は、コンテンツ決定処理(S204)が終了すると、コンテンツ決定処理の戻り値を参照して、要求メッセージが示す部分データが存在するか否かを判定する(S205)。そして、戻り値がNULLの場合は、応答メッセージ送信部110により、要求メッセージが示す部分データが存在しない旨を示す下記のエラーメッセージをデータ受信装置120に返信する(S206)。
HTTP/1.1 404 Not Found                          …(3)
：
【００３７】
一方、戻り値がNULLではない場合、CPU111は、要求メッセージが含むコンテンツ識別子と、戻り値が含むコンテンツ識別子を比較する(S207)。そして、要求メッセージが含むコンテンツ識別子と、戻り値が含むコンテンツ識別子が異なる場合、代替アドレス生成部107により、代替データの位置を指定する代替アドレスを生成する(S208)。
【００３８】
代替データは、コンテンツ識別子は要求と異なるが、コンテンツ座標が要求と一致するデータである。代替アドレスは、下記の例のように、戻り値に含まれる動画コンテンツのコンテンツ識別子、開始の座標値、終了の座標値、および、データ送信装置100のURLで構成される。
http://www.example.com/20110401-01.mp4#t=100,110    …(4)
【００３９】
次に、CPU111は、応答メッセージ送信部110により、代替アドレスを使用して生成した下記の応答メッセージをデータ受信装置120に返信する(S209)。なお、下記は、HTTPプロトコルのリダイレクト機能を使用した応答メッセージ例である。
HTTP/1.1 301 Moved Permanently
Location: http://www.example.com/20110401-01.mp4#t=100,110    …(5)
：
【００４０】
図7において、メッセージ511は、ステップS209で、データ送信装置100からデータ受信装置120に送信される応答メッセージに相当する。また、メッセージ512は、ステップS203で、メッセージ511に応じて、データ送信装置100がデータ受信装置120から受信する要求メッセージ（リダイレクト先を示す）に相当する。
【００４１】
また、要求メッセージが含むコンテンツ識別子と、戻り値が含むコンテンツ識別子が一致する場合、CPU111は、コンテンツ読込部108により、当該コンテンツ識別子に対応する動画コンテンツ131をデータ記憶装置130から読み込む(S210)。そして、コンテンツ分割部109により、要求メッセージが示す部分データを動画コンテンツ131から分割し(S211)、応答メッセージ送信部110により、分割した部分データを含む応答メッセージをデータ受信装置120に返信する(S212)。下記は応答メッセージの一例である。
HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Length: 3743
Content-Type: video/mp4
Content-Range: bytes 19147-22800/35614993        …(6)
：
(バイナリデータ)
【００４２】
図7において、メッセージ513は、ステップS221で、データ送信装置100からデータ受信装置120に送信される、分割した部分データ（代替範囲のデータ）を含む応答メッセージに相当する。
【００４３】
ステップS206、S209またはS212の後、CPU111は、処理をステップS203に戻し、動画コンテンツの要求メッセージの受信を待つ。そして、例えば動画コンテンツの要求メッセージの受信を待つ間に、データ記憶装置130に動画コンテンツを新たに格納するイベントを示す割り込みなどが発生すると、CPU111は、処理をステップS201に戻す。
【００４４】
●データ受信装置
図4のフローチャートによりデータ受信装置120の動作例を説明する。
【００４５】
データ受信装置120は、動画コンテンツの部分データの取得が指示されると(S221)、当該部分データの要求メッセージをデータ送信装置100に送信し(S222)、データ送信装置100から応答メッセージの受信を待つ(S223)。
【００４６】
応答メッセージを受信すると、データ受信装置120は、代替アドレスが記述された応答メッセージを受信したか否かを判定する(S224)。代替アドレスが記述された応答メッセージを受信した場合、データ受信装置120は、代替アドレスに基づく要求メッセージをデータ送信装置100に送信し(S225)、処理をステップS223に戻す。例えばメッセージ(5)を受信した場合、データ受信装置120は、次の要求メッセージを送信する。
GET /20110401-01.mp4 HTTP/1.1
Host: www.example.com
Accept: video/*
Range: t:npt=100-110                          …(7)
：
【００４７】
代替アドレスが記述された応答メッセージを受信しなかった場合、データ受信装置120は、動画コンテンツの部分データを含む応答メッセージ（例えばメッセージ(6)）を受信したか否かを判定する(S226)。動画コンテンツの部分データを含む応答メッセージを受信した場合は、要求した部分データの受信が終了したとして、処理をステップS221に戻す。
【００４８】
また、データ受信装置120は、応答メッセージが動画コンテンツの部分データを含まず、エラーを示す場合、エラー処理を行い(S227)、処理をステップS221に戻す。
【００４９】
●コンテンツ情報登録部
図5のフローチャートによりコンテンツ情報登録部102のコンテンツ登録処理(S202)を説明する。
【００５０】
コンテンツ情報登録部102は、仮想コンテンツ構成表が未作成か否かを判定し(S501)、未作成の場合は何も登録されていない空の仮想コンテンツ構成表を例えばメモリ112に作成する(S502)。なお、仮想コンテンツ構成表の作成場所は、データの保存が可能な記憶媒体ならばどこでも構わない。
【００５１】
次に、コンテンツ情報登録部102は、コンテンツ読込部108を介して、データ記憶装置130に存在する未登録の動画コンテンツ131すべてのコンテンツ情報を取得する(S503)。そして、コンテンツ座標の昇順に、未登録の動画コンテンツ131のコンテンツ識別子を並べたリスト（以下、未登録コンテンツリスト）をメモリ112に作成する(S504)。なお、未登録コンテンツリストのエントリはコンテンツ識別子、コンテンツ座標、コンテンツ範囲で構成される。
【００５２】
なお、動画コンテンツは、ステップS201におけるコンテンツ情報記録部101の処理によりデータ記憶装置130などに保存されていることを想定するが、それ以外の方法で動画コンテンツを取得してもよい。また、データ記憶装置130に保存される動画コンテンツ131は、データ送信装置100が録画、撮影により生成されることを想定するが、他の装置からネットワーク経由で受信するなど、他の方法で生成されてもよい。
【００５３】
次に、コンテンツ情報登録部102は、未登録コンテンツリストの先頭エントリの情報を取得し(S505)、エントリの情報を取得したか否かを判定する(S506)。そして、エントリの情報が取得できない、つまりエントリがない場合はコンテンツ登録処理を終了する。
【００５４】
先頭エントリの情報を取得した場合、コンテンツ情報登録部102は、仮想コンテンツ構成表の末尾エントリの情報を取得し(S507)、末尾エントリと先頭エントリの間に論理的な区切りがあるか否かを判定する(S508)。そして、論理的な区切り（例えば日付の変わり目）がある場合は、仮想コンテンツ登録表の末尾にセパレータコンテンツを追加する(S509)。なお、論理的な区切りとして日付の変わり目を判定する場合、例えばコンテンツ座標に記述された録画日時を参照すればよい。
【００５５】
次に、コンテンツ情報登録部102は、末尾エントリと先頭エントリの間にコンテンツ座標の不連続があるか否かを判定し(S510)、不連続がある場合は仮想コンテンツ登録表の末尾にフィラーコンテンツを追加する(S511)。不連続の有無は、先頭エントリのコンテンツ座標が、末尾エントリのコンテンツ座標とコンテンツ範囲の和よりも大きいか否かによって判定する。
【００５６】
例えば、コンテンツ座標が録画開始日時、コンテンツ範囲が録画時間であれば、コンテンツ座標とコンテンツ範囲の和は録画終了日時を示す。つまり、先頭エントリの録画開始日時が、末尾エントリの録画終了日時を過ぎている場合にフィラーコンテンツが追加される。
【００５７】
次に、コンテンツ情報登録部102は、仮想コンテンツ構成表の末尾に未登録コンテンツリストの先頭エントリのコンテンツ情報を追加し(S512)、未登録コンテンツリストの先頭エントリを削除し(S513)、処理をステップS505に戻す。
【００５８】
●コンテンツ決定処理
図6のフローチャートによりコンテンツ決定処理(S204)を説明する。
【００５９】
コンテンツ識別子決定部104は、仮想コンテンツ構成表の先頭エントリから順に、要求メッセージが含むコンテンツ識別子と一致するコンテンツ識別子をもつエントリE0を検索する(S301)。送信範囲算出部105は、検索結果からエントリE0が存在するかを判定する(S302)。そして、エントリE0が存在しない場合は、要求メッセージが含むコンテンツ識別子と一致するコンテンツ識別子をもつエントリがない旨を示すために戻り値NULLを返す(S312)。
【００６０】
また、エントリE0が存在する場合、送信範囲算出部105は、コンテンツ範囲の基準値rbaseに「0」を、コンテンツ範囲の値rにエントリE0のコンテンツ範囲の値を設定する(S303)。さらに、処理中のエントリを示すポインタEnにエントリE0の例えばレコード番号を設定する(S304)。
【００６１】
例えば、要求メッセージ(2)を受信した場合、図3に示す仮想コンテンツ構成表には、要求メッセージが含むコンテンツ識別子「20110401-00.mp4」に一致するコンテンツ識別子をもつエントリが存在する。従って、コンテンツ範囲の基準値rbaseには「0」が、コンテンツ範囲の値rには一行目のエントリのコンテンツ範囲の値「7200」が設定される。
【００６２】
次に、送信範囲算出部105は、要求メッセージが含むコンテンツの要求範囲の開始の値s0と終了の値e0から、コンテンツ範囲の基準値rbaseの値を減算した相対開始値sと相対終了値eを算出する(S305)。
【００６３】
例えば、要求メッセージ(2)を受信した場合、コンテンツの要求範囲の開始の値s0と終了の値e0はRangeヘッダに記述された「7300」と「7310」である。従って、相対開始値s=7300-0=7300、相対終了値e=7310-0=7310である。
【００６４】
次に、送信範囲比較部106は、相対開始値sとコンテンツ範囲の値rを比較する(S306)。そして、相対開始値sがコンテンツ範囲の値r未満（s＜r）の場合は処理をステップS311に進める。
【００６５】
要求メッセージ(2)と図3に示す仮想コンテンツ構成表の例においては、コンテンツ範囲の値r=7200であるから、比較結果は相対開始値sがコンテンツ範囲の値r以上（s≧r）になる。この場合、送信範囲算出部105は、仮想コンテンツ構成表から次のエントリEn+1の情報を取得し(S307)、エントリEn+1が存在し、かつ、エントリEn+1が動画コンテンツか否かを判定する(S308)。もし、エントリEn+1が存在しない、あるいは、エントリEn+1がフィラーコンテンツまたはセパレータコンテンツの場合は、コンテンツの要求範囲に一致するエントリがない旨を示すために戻り値NULLを返す(S312)。
【００６６】
図3に示す仮想コンテンツ構成表の例においては、エントリEn+1（この例では二番目のエントリ）が存在し、エントリEn+1のコンテンツ識別子は[Filler]または[SEPARATOR]ではない。従って、送信範囲算出部105は、コンテンツ範囲の基準値rbaseにコンテンツ範囲の値rを加算し、コンテンツ範囲の値rにエントリEn+1のコンテンツ範囲の値を設定する(S309)。さらに、処理中のエントリを示すポインタEnにエントリEn+1を設定し(S310)、処理をステップS305に戻す。
【００６７】
例えば、図3に示す仮想コンテンツ構成表の例においては、コンテンツ範囲の基準値rbaseは「7200」に、コンテンツ範囲の値rは二行目のエントリのコンテンツ範囲の値「10800」に更新される。
【００６８】
処理をステップS305に戻し、送信範囲算出部105は、再び、相対開始値sと相対終了値を算出する。この場合、s=s0-rbase=7300-7200=100、e=e0-rbasee=7310-7200=110になる。そして、ステップS306の比較を行う。この場合、相対開始値sはコンテンツ範囲の値r未満（s＜r）になり処理をステップS311に進める。
【００６９】
比較結果がs＜rの場合、送信範囲算出部105は、エントリEnのコンテンツ識別子、相対開始値s、および、相対終了値eとコンテンツ範囲rの小さい値（Min(e, r)）を戻り値として返す(S311)。なお、戻り値は、コンテンツ決定処理の呼出元において、コンテンツ識別子の値、コンテンツの開始座標値、コンテンツの終了座標値として扱われる。
【００７０】
例えば、図3に示す仮想コンテンツ構成表の例においては、コンテンツ識別子は「20110401-01.mp4」、コンテンツの開始座標値は「100」になる。また、Min(110, 10800)=110であり、コンテンツの終了座標値は「110」になる。
【００７１】
このように、動画コンテンツの一部の範囲を指定する要求を受信した場合、指定範囲のデータが当該動画コンテンツにはなく、他の動画コンテンツにある場合も、指定範囲に対応するデータを送信することができる。従って、データ受信装置側は、指定する動画コンテンツが必要とする範囲のデータを含むか否かを意識せず、所望する範囲のデータを取得することができる。とくに、無効な範囲のデータを要求された場合に動画コンテンツの全体を送信する場合に比べて、不要なデータの送信による無駄なネットワーク帯域やメモリの消費を防ぐことができる。
【実施例２】
【００７２】
以下、本発明にかかる実施例2の情報処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００７３】
図8のブロック図により実施例2のマルチメディアコンテンツの送受信システムの構成例を説明する。
【００７４】
実施例2のデータ送信装置100のコンテンツ転送部113は、データ記憶装置130の動画コンテンツ131の少なくとも一部を別のデータ送信装置140に転送する。例えば、データ送信装置100が小型の監視カメラであり、録画した動画データを、別のデータ送信装置140である大容量のストレージサーバにネットワーク経由で転送するシステムに相当する。
【００７５】
図9のフローチャートによりデータ送信装置100の動作例を説明する。なお、図2に示す処理と略同様の処理には同一符号を付し、その詳細説明を省略する。
【００７６】
CPU111は、コンテンツ転送部113による動画コンテンツ131の転送が発生したか否かを判定する(S801)。そして、当該転送が発生した場合、コンテンツ情報登録部102により転送先アドレスを示すURI（アドレス情報）を仮想コンテンツ構成表に登録する(S802)。
【００７７】
図10により実施例2における仮想コンテンツ構成表の一例を示す。図3に示す例と比べると、転送先アドレスを登録するコンテンツ転送先欄404が追加されている。なお、未転送の動画コンテンツ、フィラーコンテンツ、セパレータコンテンツのコンテンツ転送先欄404には初期値(N/A)が登録されている。
【００７８】
コンテンツ決定処理の戻り値がNULLではなく、ステップS207の比較結果がコンテンツ識別子が異なることを示す場合、CPU111は、代替アドレス生成部107により、代替データの位置を指定する代替アドレスを生成する(S803)。その際、代替アドレス生成部107は、仮想コンテンツ構成表の当該動画コンテンツのコンテンツ転送先欄404がN/Aの場合は、実施例1のステップS208と同様に代替アドレスを生成する。一方、仮想コンテンツ構成表の当該動画コンテンツのコンテンツ転送先欄404にURIが登録されていた場合、コンテンツ転送先欄404に登録されたURIを代替アドレスに使用する。
【００７９】
なお、例えば動画コンテンツの要求メッセージの受信を待つ間に、データ記憶装置130に動画コンテンツを新たに格納するイベントを示す割り込みなどが発生すると、CPU111は、処理をステップS201に戻す。また、動画コンテンツの転送を示す割り込みなどが発生すると、CPU111は、処理をステップS801に戻す。
【００８０】
図11によりデータ受信装置120、データ送信装置100、データ送信装置140の間のメッセージフローをHTTPプロトコルを使用して説明する。メッセージ514は、データ送信装置100から別のデータ送信装置140へコンテンツを転送するメッセージに相当し、HTTPプロトコルの場合はPOST命令などが使用される。
【００８１】
メッセージ510は、ステップS203で、データ送信装置100がデータ受信装置120から受信する要求メッセージに相当する。メッセージ511は、ステップS209で、データ送信装置100からデータ受信装置120に送信される応答メッセージに相当する。また、メッセージ512'は、メッセージ511に応じて、データ送信装置140がデータ受信装置120から受信する要求メッセージ（リダイレクト先を示す）に相当する。メッセージ513'は、データ送信装置140からデータ受信装置120に送信される、代替範囲のデータを含む応答メッセージに相当する。
【００８２】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
0005882683.tif 000002
【図２】
0005882683.tif 000003
【図３】
0005882683.tif 000004
【図４】
0005882683.tif 000005
【図５】
0005882683.tif 000006
【図６】
0005882683.tif 000007
【図７】
0005882683.tif 000008
【図８】
0005882683.tif 000009
【図９】
0005882683.tif 000010
【図１０】
0005882683.tif 000011
【図１１】
0005882683.tif 000012