(57)【要約】【課題】記憶装置に放送コンテンツを効率よく保存できる。【解決手段】情報処理装置５は、ストリームデータを受信する受信部５ａと、ストリームデータ４に含まれる所定の単位データ４ａを識別可能な識別情報６を、単位データ４ａの受信タイミングを特定可能にして第１の記憶部５ｃに保持するとともに、単位データ４ａを第２の記憶部７に保持し、２以上のストリームデータ４を受信したとき、先に受信して第１の記憶部５ｃが保持する単位データ４ａの識別情報６と、後から受信した単位データ４ａの識別情報６とを比較して、比較結果が一致する場合に、一致した識別情報６に対応する単位データ４ａを破棄し、比較結果が一致しない場合に、後から受信した単位データ４ａの識別情報６を第１の記憶部５ｃに保持するとともに、後から受信した単位データ４ａを第２の記憶部７に保持する制御部５ｂとを備える。【選択図】図１
2016004599.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１の情報処理装置と、前記第１の情報処理装置とネットワークを介して接続する第２の情報処理装置とを有する情報処理システムにおいて、
前記第１の情報処理装置は、放送コンテンツから生成したストリームデータを送信する送信部を有し、
前記第２の情報処理装置は、
前記ストリームデータを受信する受信部と、
前記ストリームデータに含まれる所定の単位データを識別可能な識別情報を、前記単位データの受信タイミングを特定可能にして第１の記憶部に保持するとともに、前記単位データを第２の記憶部に保持し、
２以上の前記第１の情報処理装置から前記ストリームデータを受信したとき、先に受信して前記第１の記憶部が保持する前記単位データの前記識別情報と、後から受信した前記単位データの前記識別情報とを比較して、比較結果が一致する場合に、一致した前記識別情報に対応する前記単位データを破棄し、比較結果が一致しない場合に、後から受信した前記単位データの前記識別情報を前記第１の記憶部に保持するとともに、後から受信した前記単位データを第２の記憶部に保持する制御部と、
を備える情報処理システム。
【請求項２】
前記制御部は、所定の時間幅で受信した前記識別情報と前記単位データの受信時刻を示す情報とを対応づけて前記第１の記憶部に保持する請求項１記載の情報処理システム。
【請求項３】
前記制御部は、前記比較結果が一致した単位データを送信した前記第１の情報処理装置のうちの１つに、前記第１の情報処理装置が有するバッファへの前記ストリームデータの保存を命令するバッファ保存命令を送信し、前記バッファ保存命令を送信した前記第１の情報処理装置からの前記ストリームデータの受信を停止する、
請求項１記載の情報処理システム。
【請求項４】
前記制御部は、他の前記第１の情報処理装置と異なる遅延時間を含ませた前記ストリームデータの送信を前記第１の情報処理装置に対して指示する、
請求項１記載の情報処理システム。
【請求項５】
前記制御部は、前記バッファに前記ストリームデータを保存する前記第１の情報処理装置に対して、前記バッファに保存する前記ストリームデータのバルク送信を要求する、
請求項３記載の情報処理システム。
【請求項６】
複数の第１の情報処理装置と、前記第１の情報処理装置とネットワークを介して接続する第２の情報処理装置とを有する情報処理システムにおいて前記第２の情報処理装置が実行する記憶制御プログラムであって、
前記第２の情報処理装置に、
放送コンテンツから生成したストリームデータを前記第１の情報処理装置から受信し、
受信した前記ストリームデータに含まれる所定の単位データを識別可能な識別情報を、前記単位データの受信タイミングを特定可能にして第１の記憶部に保持するとともに、前記単位データを第２の記憶部に保持し、
２以上の前記第１の情報処理装置から前記ストリームデータを受信したとき、先に受信して前記第１の記憶部が保持する前記単位データの前記識別情報と、後から受信した前記単位データの前記識別情報とを比較して、比較結果が一致する場合に、一致した識別情報に対応する単位データを破棄し、比較結果が一致しない場合に、後から受信した前記単位データの前記識別情報を前記第１の記憶部に保持するとともに、後から受信した前記単位データを前記第２の記憶部に保持する、
処理を実行させる記憶制御プログラム。
【請求項７】
複数の第１の情報処理装置と、前記第１の情報処理装置とネットワークを介して接続する第２の情報処理装置とを有する情報処理システムにおける制御方法であって、
前記第１の情報処理装置は、放送コンテンツから生成したストリームデータを送信し、
前記第２の情報処理装置は、
前記ストリームデータを受信し、
前記ストリームデータに含まれる所定の単位データを識別可能な識別情報を、前記単位データの受信タイミングを特定可能にして第１の記憶部に保持するとともに、前記単位データを第２の記憶部に保持し、
２以上の前記第１の情報処理装置から前記ストリームデータを受信したとき、先に受信して前記第１の記憶部が保持する前記単位データの前記識別情報と、後から受信した前記単位データの前記識別情報とを比較して、比較結果が一致する場合に、一致した前記識別情報に対応する前記単位データを破棄し、比較結果が一致しない場合に、後から受信した前記単位データの前記識別情報を前記第１の記憶部に保持するとともに、後から受信した前記単位データを前記第２の記憶部に保持する、
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、記憶制御プログラムおよび記憶制御方法に関する。
【背景技術】
【０００２】
従来から、放送局から放送された放送コンテンツを受信し、受信した放送コンテンツを保存可能なレコーダが知られている。
また、近年、レコーダが備える記憶装置に代えて、ネットワークを介してサーバが備える記憶装置（ネットワークストレージ）にデータを保存可能なシステムが知られている。
【０００３】
たとえば、レコーダは、放送コンテンツからストリームデータを生成し、生成したストリームデータをサーバに送信し、サーバにデータを要求して放送コンテンツを再生する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２０７４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、放送コンテンツは一般にデータ容量が大きく、さらに多数のレコーダが同時刻帯に同内容の放送コンテンツをサーバに送信するため、ネットワークストレージに大容量の資源と、高いネットワーク帯域資源を必要とする。
【０００６】
一側面では、本発明は、記憶装置に放送コンテンツを効率よく保存可能な情報処理システム、記憶制御プログラムおよび記憶制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、以下に示すような情報処理システムを提供する。情報処理システムは、複数の第１の情報処理装置と、第１の情報処理装置とネットワークを介して接続する第２の情報処理装置とを有する。第１の情報処理装置は、放送コンテンツから生成したストリームデータを送信する送信部を有する。第２の情報処理装置は、受信部と、制御部とを備える。受信部は、ストリームデータを受信する。制御部は、ストリームデータに含まれる所定の単位データを識別可能な識別情報を、単位データの受信タイミングを特定可能にして第１の記憶部に保持するとともに、単位データを第２の記憶部に保持する。制御部は、２以上の第１の情報処理装置からストリームデータを受信したとき、先に受信して第１の記憶部が保持する単位データの識別情報と、後から受信した単位データの識別情報とを比較して、比較結果が一致する場合に、一致した識別情報に対応する単位データを破棄し、比較結果が一致しない場合に、後から受信した単位データの識別情報を第１の記憶部に保持するとともに、後から受信した単位データを第２の記憶部に保持する。
【発明の効果】
【０００８】
一態様によれば、情報処理システム、記憶制御プログラムおよび記憶制御方法において、記憶装置に放送コンテンツを効率よく保存できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態の情報処理システムの構成の一例を示す図である。
【図２】第２の実施形態の放送コンテンツ記憶システムの構成の一例を示す図である。
【図３】第２の実施形態のサーバのハードウェア構成の一例を示す図である。
【図４】第２の実施形態のデータ保存の流れの一例を示す図である。
【図５】第２の実施形態のストリームデータの一例を示す図である。
【図６】第２の実施形態のストリームデータの中断とバッファリングの一例を示す図である。
【図７】第２の実施形態のデータ保存の流れのシーケンスの一例を示す図である。
【図８】第２の実施形態のフレーム送信処理のフローチャートを示す図である。
【図９】第２の実施形態のフレーム録画管理情報の一例を示す図である。
【図１０】第２の実施形態の送信時刻決定処理のフローチャートを示す図である。
【図１１】第２の実施形態のフレーム受信処理のフローチャートを示す図である。
【図１２】第２の実施形態の送信開始要求受信処理のフローチャートを示す図である。
【図１３】第２の実施形態の識別情報管理リストの一例を示す図である。
【図１４】第２の実施形態の送信開始要求応答処理のフローチャートを示す図である。
【図１５】第２の実施形態のクライアント管理情報の一例を示す図である。
【図１６】第２の実施形態の単独フレーム受信処理のフローチャートを示す図である。
【図１７】第２の実施形態のフレームのファイル格納形式の一例を示す図である。
【図１８】第２の実施形態のフレームデータ管理ファイルの一例を示す図である。
【図１９】第２の実施形態のフレーム保存監視処理のフローチャートを示す図である。
【図２０】第２の実施形態のバルク送信受信処理のフローチャートを示す図である。
【図２１】第２の実施形態の再生データ出力処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態の情報処理システムについて図１を用いて説明する。図１は、第１の実施形態の情報処理システムの構成の一例を示す図である。
【００１１】
情報処理システム１は、複数の第１の情報処理装置２（２ａ，２ｂ，…，２ｎ）と、ネットワーク９と、第２の情報処理装置５とを含む。第１の情報処置装置２と第２の情報処理装置５とは、ネットワーク９を介して接続する。
【００１２】
第１の情報処理装置２は、放送コンテンツを受信し、受信した放送コンテンツからストリームデータ４を生成する。たとえば、第１の情報処理装置２は、レコーダであって、放送コンテンツから生成したストリームデータを、第２の情報処理装置５に相当するサーバに送信する。
【００１３】
第１の情報処理装置２は、送信部３を含む。送信部３は、放送コンテンツからストリームデータ４を生成して、ストリームデータ４を送信する。送信部３は、たとえば、符号化やパケット化などの処理をおこない、放送コンテンツからストリームデータ４を生成する。
【００１４】
ストリームデータ４は、時系列順に処理されるデータである。たとえば、ストリームデータ４は、データ全体の受信完了を待たずに受信した順番に処理するデータであり、動画データや音声データなどがある。また、ストリームデータ４は、１以上の単位データ４ａを含む。単位データ４ａは、単位時間や、単位データサイズなど所定の単位で区切られたデータである。たとえば、単位データ４ａは、動画データにおけるフレーム単位のデータや、パケット単位のデータである。
【００１５】
放送コンテンツは、放送局から無線または有線によりブロードバンドで送信されるコンテンツであり、たとえば、デジタルまたはアナログ形式の動画データや音声データなどである。
【００１６】
第２の情報処理装置５は、受信部５ａと、制御部５ｂと、第１の記憶部５ｃと、第２の記憶部７とを含む。受信部５ａは、第１の情報処理装置２が送信したストリームデータ４を受信する。
【００１７】
第１の記憶部５ｃと第２の記憶部７は、所定の記憶領域にデータを記憶可能な記憶装置である。たとえば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、あるいはＤＲＡＭ（Dynamic Random Access Memory）などからなるストレージ装置である。なお、第２の記憶部７は、第１の記憶部５ｃと比較して大容量のデータを記憶することからＨＤＤなどのストレージ装置であることが望ましい。また、第２の記憶部７は、第２の情報処理装置５に内蔵されてもよいし、第２の情報処理装置５の外部に設けられるものであってもよい。
【００１８】
制御部５ｂは、単位データ４ａを受信したタイミングを特定可能にして、第１の記憶部５ｃに識別情報６を格納するとともに、単位データ４ａを第２の記憶部７に保持する。
なお、制御部５ｂは、単位データ４ａと単位データ４ａを受信した時刻の情報とを対応づけることで受信したタイミングを特定可能としてもよいし、単位データ４ａに単位データ４ａを受信した順番に順序情報を付することで受信したタイミングを特定可能としてもよいし、その他の方法によってもよい。
【００１９】
識別情報６は、単位データ４ａのうち識別対象となる一部または全部のデータを識別可能な情報であり、単位データ４ａから生成される情報である。たとえば、識別情報６は、単位データ４ａのうち識別対象となる一部または全部のデータから生成されるフィンガープリントや、ダイジェスト情報などである。
【００２０】
制御部５ｂは、２以上の第１の情報処理装置２からストリームデータ４を受信したとき、先に受信して第１の記憶部５ｃが保持する単位データ４ａの識別情報６と、後から受信した単位データ４ａの識別情報６とを比較する。たとえば、制御部５ｂは、識別情報６がフィンガープリントである場合、比較対象のフィンガープリントが一致するか否かにより、識別情報６を比較することができる。なお、識別情報６は、第１の情報処理装置２ｂから受信するものであってもよいし、第２の情報処理装置５が生成するものであってもよい。２以上の第１の情報処理装置２は、複数の第１の情報処理装置２（２ａ，２ｂ，…，２ｎ）のうちの任意の２以上の第１の情報処理装置２であり、たとえば、第１の情報処理装置２ａと第１の情報処理装置２ｂである。
【００２１】
制御部５ｂは、比較結果が一致する場合に、一致した識別情報６に対応する単位データ４ａを破棄する。一方、制御部５ｂは、比較結果が一致しない場合に、識別情報６に対応する単位データ４ａの識別情報６を第１の記憶部５ｃに保持するとともに、後から受信した単位データ４ａを第２の記憶部７に保持する。
【００２２】
制御部５ｂは、比較結果が一致する場合、すなわち識別情報６の生成もととなった単位データ４ａが同一であると判定した場合、後から受信した単位データ４ａを破棄する。これにより、第２の情報処理装置５は、第２の記憶部７に保持するデータの重複排除をおこなうことができる。
【００２３】
制御部５ｂは、比較結果が一致しない場合、すなわち識別情報６の生成もととなった単位データ４ａが同一でないと判定した場合、後から受信した単位データ４ａを第１の記憶部５ｃに保持する。これにより、第２の情報処理装置５は、第２の記憶部７に保存するデータの重複排除をおこなうことができる。
【００２４】
このようにして、情報処理システム１は、第２の記憶部７（記憶装置）に放送コンテンツを効率よく保存できる。
［第２の実施形態］
次に、第２の実施形態の放送コンテンツ記憶システムの構成について図２を用いて説明する。図２は、第２の実施形態の放送コンテンツ記憶システムの構成の一例を示す図である。
【００２５】
放送コンテンツ記憶システム１０は、複数のクライアント１１（１１ａ，１１ｂ，…，１１ｎ）と、ネットワーク１２と、サーバ１３と、記憶装置１４と、放送局１５と、コンテンツ配信システム１６とを含む。
【００２６】
放送局１５は、放送コンテンツを無線または有線により送信する。コンテンツ配信システム１６は、各種コンテンツを配信する。なお、放送局１５やコンテンツ配信システム１６は例示であり、これら以外のものであっても放送コンテンツなどを送信又は配信できるものであればよい。
【００２７】
クライアント１１は、放送コンテンツを受信し、ストリームデータを生成する機能を備えている機器である。クライアント１１は、たとえば、テレビ放送レコーダや、コンピュータや、携帯端末などである。
【００２８】
ネットワーク１２は、クライアント１１とサーバ１３とを接続する有線ネットワークや、無線ネットワークなど、各種ネットワークを含む。ネットワーク１２は、クライアント１１とサーバ１３とを接続する双方向通信可能なネットワークである。なお、ネットワーク１２は、放送局１５からクライアント１１に放送通信する一方向性のネットワークであってもよい。
【００２９】
サーバ１３は、クライアント１１が送信したストリームデータを受信し、受信したストリームデータの重複排除の処理を実行し、ストリームデータを記憶装置１４に格納するコンピュータである。
【００３０】
記憶装置１４は、データを格納する装置である。記憶装置１４は、たとえば、ＲＡＩＤ（Redundant Arrays of Independent Disks）装置である。記憶装置１４は、サーバ１３からコマンドを受け付け、データの入出力制御をおこなう。
【００３１】
次に、第２の実施形態のサーバのハードウェア構成について図３を用いて説明する。図３は、第２の実施形態に用いるサーバのハードウェア構成の一例を示す図である。
サーバ１３は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３２】
ＲＡＭ１０２は、サーバ１３の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３３】
バス１０７に接続されている周辺機器としては、ＨＤＤ１０３、入出力信号インタフェース１０４、記憶媒体インタフェース１０５および通信インタフェース１０６がある。
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読出しをおこなう。ＨＤＤ１０３は、サーバ１３の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３４】
入出力信号インタフェース１０４には、入出力デバイス１０８が接続されている。入出力デバイス１０８は、入力デバイスと出力デバイスを含む。入力デバイスの一例として、キーボードや、マウスや、タッチパネルなどがある。また、出力デバイスの一例には、モニタや、液晶表示や、各種パネル表示装置などがある。
【００３５】
入力出力信号インタフェース１０４は、キーボードやマウスから送られてくる信号をプロセッサ１０１に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３６】
入出力デバイス１０８の出力デバイスは、プロセッサ１０１からの命令にしたがって、画像をモニタ画面に表示させる。モニタとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３７】
記憶媒体インタフェース１０５は、磁気やレーザなどを利用して記憶媒体１０９に記録されたデータの読み取りや書き込みをおこなう。また、記憶媒体インタフェース１０５は、半導体メモリなどの記憶媒体に記録されたデータの読み取りをおこなうものであってもよい。記憶媒体１０９とは、たとえば、光ディスクや、フラッシュメモリなどの半導体メモリなどを含む。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３８】
記憶媒体インタフェース１０５は、サーバ１３に周辺機器を接続するための通信インタフェースとしても用いることができる。たとえば、記憶媒体インタフェース１０５には、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、記憶媒体インタフェース１０５との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読出しをおこなう装置である。メモリカードは、カード型の記録媒体である。
【００３９】
通信インタフェース１０６は、ネットワーク１２に接続されている。通信インタフェース１０６は、ネットワーク１２を介して、他のコンピュータまたは通信機器との間でデータの送受信をおこなう。なお、ネットワーク１２は、有線ネットワークでもよいし、無線ネットワークでもよい。通信インタフェース１０６は、双方向デジタル通信を送受信可能なインタフェースでもよいし、一方向性の放送を受信可能なインタフェースでもよい。
【００４０】
以上のようなハードウェア構成によって、第２の実施形態の処理機能を実現することができる。なお、第１の実施形態に示した第１の情報処理装置２、第２の情報処理装置５、第２の実施形態に示したクライアント１１も、図２に示したサーバ１３と同様のハードウェアにより実現することができる。
【００４１】
サーバ１３は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施形態の処理機能を実現する。サーバ１３に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、サーバ１３に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。また、サーバ１３に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読出して実行することもできる。
【００４２】
次に、第２の実施形態のデータ保存の流れについて図４を用いて説明する。図４は、第２の実施形態のデータ保存の流れの一例を示す図である。
複数のクライアント１１（１１ａ，１１ｂ，…，１１ｎ）は、放送局から送信された放送コンテンツを同時間帯に受信し、受信した放送コンテンツにもとづきストリームデータを生成する。ストリームデータは、１以上のフレーム２１を含む。複数のクライアント１１（１１ａ，１１ｂ，…，１１ｎ）は、同時間帯に受信した放送コンテンツから生成したストリームデータをサーバ１３に送信する。ここでは、クライアント１１ａがフレームＡ１，ＡＮを含むストリームデータを送信し、クライアント１１ｂがフレームＢ１，Ｂ２，Ｂ３を含むストリームデータを送信したとする。
【００４３】
サーバ１３は、クライアント１１ａ，１１ｂから、フレーム２１を受信する。サーバ１３は、クライアント１１ａから先にストリームデータを受信し、その後にクライアント１１ｂからストリームデータを受信する。
【００４４】
サーバ１３は、クライアント１１ａ，１１ｂからストリームデータを受信して、受信したストリームデータが同一コンテンツであるか否かを判定する。そのために、サーバ１３は、フレーム２１から生成された識別情報を識別情報管理リスト２２に保存する。識別情報管理リスト２２は、同時間帯の放送コンテンツであることを判定するのに十分な識別情報を保持可能な容量を有する。保持可能な識別情報の数は、各クライアント１１から受信した同一コンテンツの受信タイムラグを吸収するのに十分な時間に対応する数であり、たとえば、５秒分のフレーム数に対応する数である。
【００４５】
なお、識別情報は、フレーム２１を一意に識別可能な情報であり、たとえば、フィンガープリントやダイジェスト情報などである。なお、フィンガープリントは、動画像のフレームデータのようなデジタルコンテンツをハッシュ関数で計算した結果として出力されるハッシュ値である。また、識別情報は、クライアント１１が生成しストリームデータに含めて送信されるものであってもよいし、サーバ１３がストリームデータを受信して生成するものであってもよい。
【００４６】
サーバ１３は、先に受信して識別情報管理リスト２２に保存している識別情報と、後から受信したクライアント１１ｂからのストリームデータに含まれるフレーム２１の識別情報との重複判定をおこなう。
【００４７】
サーバ１３は、後から受信したストリームデータの識別情報が、識別情報管理リスト２２で保持する識別情報のいずれかと一致する場合、後から受信したストリームデータと、先に受信したストリームデータは、同一コンテンツであると判断する。
【００４８】
サーバ１３は、後から受信したストリームデータの識別情報が、識別情報管理リスト２２で保持する識別情報と一致すると判定した場合、後から受信したフレーム２１を破棄する。一方、サーバ１３は、先に受信しているストリームデータは、それ以前のストリームデータと重複していないことから、フレーム２１（フレームＡ１，Ａ２，Ａ３，…）を記憶装置２３に保存する。
【００４９】
サーバ１３は、一旦、重複すると判定したストリームデータについて、以降の重複判定をおこなうことなくフレーム２１を破棄することで、重複排除処理の負荷を軽減することができる。
【００５０】
次に、第２の実施形態のストリームデータについて図５を用いて説明する。図５は、第２の実施形態のストリームデータの一例を示す図である。
複数のクライアント１１（クライアントＡ，クライアントＢ）は、それぞれストリームデータ（２８，２９）をサーバ１３に送信する。クライアントＡは、タイミングｔ１０で、サーバ１３に先頭フレームＦＡ１を送信し、クライアントＢは、タイミングｔ１１で、サーバ１３に先頭フレームＦＢ１を送信する。
【００５１】
ストリームデータ２８は、複数のフレーム（ＦＡ１，…，ＦＡＭ，…，ＦＡＮ）を含む。ストリームデータ２９は、複数のフレーム（ＦＢ１，…，ＦＢＰ）を含む。
ストリームデータ（２８，２９）は、時系列順に処理されるデータである。ストリームデータ（２８，２９）は、たとえば、ＭＰＥＧ−２（Moving Picture Experts Group 2）規格や、ＡＲＩＢ（Association of Radio Industries and Broadcast）規格などで規定されている。
【００５２】
クライアントＡは、クライアントＢより先に、先頭フレームＦＡ１をサーバ１３へ送信したことから、クライアントＡが所定時間幅ＴＩの間に送信したフレームに対応する識別情報は、識別情報管理リスト２２に記録される。
【００５３】
クライアントＡが先に送信したフレーム（ＦＡ１，…，ＦＡＭ，…，ＦＡＮ）は、それ以前のストリームデータと重複していないことから、サーバ１３により記憶装置１４に保存される。
【００５４】
後からサーバ１３に送信された先頭フレームＦＢ１は、識別情報が識別情報管理リスト２２に記録された識別情報と比較される。先頭フレームＦＢ１は、識別情報が識別情報管理リスト２２に記録された識別情報のいずれかと一致する場合、ストリームデータ２９は、ストリームデータ２８と同一コンテンツであるとサーバ１３によって判断される。
【００５５】
クライアントＢが送信したフレーム（ＦＢ１）は、先に送信されたフレーム（ＦＡ１，…，ＦＡＭ，…，ＦＡＮ）のいずれかと重複すると判断され、サーバ１３で破棄される。
なお、先頭フレームをサーバ１３が受信したタイミング（ｔ１０，ｔ１１）は、録画開始時刻としてサーバ１３で管理される。また、末尾フレームをサーバ１３が受信したタイミング（ｔ１２，ｔ１３）は、録画終了時刻としてサーバ１３で管理される。
【００５６】
次に、第２の実施形態のストリームデータの中断とバッファリングについて図６を用いて説明する。図６は、第２の実施形態のストリームデータの中断とバッファリングの一例を示す図である。
【００５７】
クライアントＡとクライアントＢは、同一のコンテンツのフレームをサーバに送信している。クライアントＡは、クライアントＢより先にフレームをサーバ１３に送信している。
【００５８】
クライアントＡは、フレーム送信の指示をサーバ１３から受信し、フレームをサーバ１３に送信している。クライアントＢは、クライアントＡがサーバ１３にフレームを送信しているので、フレームの送信中止とバッファリングの指示を受け、フレームをバッファリングしている（タイミングｔ２０）。
【００５９】
ここで、クライアントＡの通信経路の障害（タイミングｔ２１）により、タイミングｔ２１でクライアントＡがフレーム送信を中断した場合、サーバ１３はクライアントＡからフレームを受信できなくなる。
【００６０】
クライアントＢは、クライアントＡからフレームを受信できなくなったサーバ１３から、バッファしたフレームの送信命令（バルク送信命令）を受信する。バルク送信命令を受信したクライアントＢは、タイミングｔ２０からタイミングｔ２２の間にバッファリングしたフレームをサーバ１３に送信する（タイミングｔ２２）。
【００６１】
クライアントＢから送信されたフレームは、サーバ１３に受信され、受信されたフレームは、サーバ１３によって記憶装置１４に格納される。クライアントＢは、タイミングｔ２２以降の後続のフレームをクライアントＡに代わってサーバ１３に送信する。
【００６２】
このように、放送コンテンツ記憶システム１０は、クライアントＡからサーバ１３へのフレーム送信が中断した場合、クライアントＢからサーバ１３にフレームを送信することで、ストリームデータを補完することができる。
【００６３】
次に、第２の実施形態のデータ保存の流れのシーケンスについて図７を用いて説明する。図７は、第２の実施形態のデータ保存の流れのシーケンスの一例を示す図である。
クライアントＡは、クライアントＢより先に先頭フレームをサーバ１３に送信している（タイミングｔ４０）。クライアントＢは、クライアントＡより後に、同一内容の先頭フレームをサーバ１３に送信している（タイミングｔ４１）。
【００６４】
サーバ１３は、複数のクライアント（クライアントＡ，Ｂ）から同一内容の先頭フレームを受信した時刻を比較し、所定の時間幅ＴＩの間で最先にフレームを送信したクライアントＡを、送信許可する対象のクライアントとして決定する。
【００６５】
サーバ１３は、送信許可対象として決定したクライアントＡにフレームの送信許可を送信する（タイミングｔ４２）。また、サーバ１３は、クライアントＢにフレームのバッファ命令を送信する（タイミングｔ４３）。バッファ命令は、送信許可を与えないクライアントＢに対してフレームのバッファリングを指示する命令である。なお、クライアントＢは、バッファ命令を受けない場合であっても、送信許可を受けない場合には自発的にフレームをバッファリングするようにしてもよい。
【００６６】
クライアントＢは、サーバ１３からバッファ命令を受信し、フレームをバッファリングする。クライアントＡは、サーバ１３から送信許可を受信し、先頭フレームに後続するフレームをサーバ１３に送信する（タイミングｔ４４）。
【００６７】
ここで、クライアントＡが通信経路の障害やユーザ操作などにより、フレーム送信を中断し（タイミングｔ４５）、サーバ１３は、クライアントＡからフレームを受信できなくなる。
【００６８】
サーバ１３は、クライアントＡからフレームを受信できなくなった時刻から所定の時間（フレーム監視時間ＴＷ）経過した後、クライアントＢにバルク送信命令を送信する（タイミングｔ４６）。バルク送信命令は、クライアントＢがバッファリングしているフレームの送信を要求する命令である。
【００６９】
バルク送信命令を受信したクライアントＢは、バッファリングしているフレームをサーバ１３にバルク送信する（タイミングｔ４７）。サーバ１３は、クライアントＢからバルク送信されたフレームを受信し、クライアントＢから受信したフレームを記憶装置１４に格納する。
【００７０】
サーバ１３は、後続するフレームの送信命令をクライアントＢに送信する（タイミングｔ４８）。クライアントＢは、後続するフレームをサーバ１３に送信する（タイミングｔ４９）。
【００７１】
クライアントＡは、フレームの再生要求をサーバ１３に送信する（タイミングｔ５０）。サーバ１３は、クライアントＡからフレームの再生要求を受信し、クライアントＡからのフレーム受信状況に応じて再生データ送信する（タイミングｔ５１）。
【００７２】
このようにして、サーバ１３は、クライアントＡおよびクライアントＢからフレームを受信する。また、サーバ１３は、クライアントＡからのフレーム送信が中断した場合、クライアントＢに対してバルク送信命令を送信する。これにより、サーバ１３は、クライアントＢからフレームを受信して、クライアントＡから受信できなかったストリームデータを補完することができる。
【００７３】
次に、第２の実施形態のフレーム送信処理について図８を用いて説明する。図８は、第２の実施形態のフレーム送信処理のフローチャートを示す図である。
フレーム送信処理は、クライアント１１がフレームをサーバ１３に送信する処理である。クライアント１１の制御部（プロセッサ）は、保存先をサーバ１３として受信した放送コンテンツを録画する場合に、フレーム送信処理を実行する。
【００７４】
［ステップＳ１１］クライアント１１は、放送コンテンツを受信しストリームデータを生成する。
［ステップＳ１２］クライアント１１は、送信時刻決定処理をする。送信時刻決定処理は、遅延時間を設定してクライアント１１への送信開始要求の発行タイミングを決定することで、クライアント１１にかかる負担を分散する処理である。ステップＳ１２の送信時刻決定処理については、後で図１０を用いて説明する。
【００７５】
なお、クライアント１１は、他のクライアント１１と異なるタイミングでサーバ１３へ送信開始要求を発行することができれば、送信時刻決定処理以外の方法を用いて送信時刻を決定してもよい。たとえば、クライアント１１は、他のクライアント１１と異なる遅延時間を含ませた送信のタイミングの指示を、サーバ１３から受信してもよい。
【００７６】
［ステップＳ１３］クライアント１１は、先頭フレームの識別情報を生成する。なお、サーバ１３が識別情報の生成をおこなう場合、クライアント１１は、識別情報を生成することを要しない。
【００７７】
［ステップＳ１４］クライアント１１は、送信開始要求をサーバ１３に送信する。送信開始要求は、先頭フレームと先頭フレームの識別情報を含む。
なお、送信開始要求は、クライアント１１を識別可能な情報を含むものであってもよい。たとえば、クライアント１１を識別可能な情報は、ＭＡＣ（Media Access Control）アドレスやＩＰ（Internet Protocol）アドレスなど、クライアント１１が通信に用いる情報とすることができる。
【００７８】
［ステップＳ１５］クライアント１１は、送信開始要求に対するサーバ１３からの応答の種別（応答種別）を判定する。クライアント１１は、送信開始要求に対する応答種別が「単独フレーム送信」であった場合にステップＳ１６にすすみ、送信開始要求に対する応答種別が「バルク送信」であった場合にステップＳ１７にすすむ。クライアント１１は、送信開始要求に対する応答の種別が「単独フレーム送信」と「バルク送信」のいずれでもない場合にステップＳ１８にすすむ。
【００７９】
応答種別「単独フレーム送信」は、サーバ１３が指定するフレームをサーバ１３に送信する要求である。サーバ１３は、番組ＩＤによりフレームを指定する。番組ＩＤは、コンテンツを識別可能な情報である。応答種別「バルク送信」は、クライアント１１がバッファリングしているフレームをまとめてサーバ１３に送信する要求である。
【００８０】
［ステップＳ１６］クライアント１１は、応答種別「単独フレーム送信」の要求を受信した場合、サーバ１３から指定されたフレームをサーバ１３に送信する。
［ステップＳ１７］クライアント１１は、応答種別「バルク送信」の要求を受信した場合、バッファに蓄積しているフレームのうちから、受信した番組ＩＤに対応するフレームをサーバ１３にバルク送信する。
【００８１】
［ステップＳ１８］クライアント１１は、送信開始要求に対するサーバ１３からの応答種別を判定する。クライアント１１は、送信開始要求に対する応答種別が「バッファ保存」であった場合にステップＳ１９にすすみ、送信開始要求に対する応答種別が「バッファ終了」であった場合にステップＳ２０にすすむ。応答種別「バッファ保存」は、クライアント１１に対するフレームのバッファリング要求である。応答種別「バッファ終了」は、クライアント１１に対するフレームのバッファリング終了要求である。
【００８２】
［ステップＳ１９］クライアント１１は、応答種別が「バッファ保存」である場合、フレームをバッファリングする。これにより、サーバ１３は、同一コンテンツの重複保存の抑制と、クライアント１１との通信負荷の抑制とを図ることができる。
【００８３】
［ステップＳ２０］クライアント１１は、応答種別が「バッファ終了」である場合、フレームのバッファリングを終了する。なお、クライアント１１は、所定時間内に応答種別「バルク送信」の要求を受信しない場合に、バッファしたフレームを削除してもよい。
【００８４】
［ステップＳ２１］クライアント１１は、次フレームの有無を判定する。クライアント１１は、次フレームが有ると判定した場合にフレームの識別情報を生成してステップＳ１５にすすみ、次フレームが無いと判定した場合にフレーム送信処理を終了する。なお、サーバ１３が識別情報の生成をおこなう場合、クライアント１１は、識別情報を生成することを要しない。
【００８５】
このように、クライアント１１は、フレームの送信開始要求をサーバ１３に送信し、サーバ１３からの受信した応答種別に応じてフレームの送信またはバッファリングをおこなう。
【００８６】
次に、第２の実施形態のフレーム録画管理情報について図９を用いて説明する。図９は、第２の実施形態のフレーム録画管理情報の一例を示す図である。
フレーム録画管理情報６０は、クライアント１１が、放送コンテンツから生成したストリームデータを管理する情報である。クライアント１１が同時に２以上の放送コンテンツを録画する場合に、フレーム録画管理情報６０は、放送コンテンツごとのストリームデータの管理情報を記録する。
【００８７】
フレーム録画管理情報６０は、番組ＩＤ、フラグ、録画開始時刻、録画終了時刻、ポインタを含む。番組ＩＤは、放送コンテンツ、すなわち番組を識別可能な識別情報である。たとえば、番組ＩＤは、「ＳＮ１２３＿１３８９５」である。フラグは、放送コンテンツに対応するストリームデータのサーバ１３への送信状態を示す情報である。たとえば、フラグは、「単独フレーム送信」する状態を示す「Ｓ」、「バッファ保存」する状態を示す「Ｂ」などがある。録画開始時刻は、放送コンテンツの保存（録画）を開始した時刻である。たとえば、録画開始時刻は、時刻「１３：２０：２５．０８」である。録画終了時刻は、放送コンテンツの保存（録画）を終了した時刻である。たとえば、録画終了時刻は、時刻「１４：１７：０２．１９」である。ポインタは、番組ＩＤに対応するフレームの格納先を指し示すポインタである。たとえば、ポインタは、フレームＡ１，Ａ２，Ａ３，…の格納先や、フレームＮ１，Ｎ２，…の格納先を指し示す。各フレームの格納先は、クライアント１１が備えるＨＤＤの記憶領域である。
【００８８】
これにより、クライアント１１は、サーバ１３に対して２以上の放送コンテンツの録画を要求することができる。
次に、第２の実施形態の送信時刻決定処理のフローチャートについて図１０を用いて説明する。図１０は、第２の実施形態の送信時刻決定処理のフローチャートを示す図である。
【００８９】
多数のクライアント１１が同時刻に放送コンテンツをそれぞれ受信してサーバ１３に一斉に送信すると、サーバ１３の処理負荷が高くなる。これを避けるためにクライアント１１は、サーバ１３からフレームの送信許可を受けてフレームを送信する。サーバ１３が先着したクライアント１１に対してフレームの送信許可を与えると、ネットワークの構成等の環境条件次第では、特定のクライアント１１に負担が偏重するおそれがある。送信時刻決定処理は、遅延時間を設定してクライアント１１への送信開始要求の発行タイミングを決定することで、クライアント１１にかかる負担を分散する処理である。送信時刻決定処理は、フレーム送信処理のステップＳ１２でクライアント１１が実行する処理である。
【００９０】
［ステップＳ３１］クライアント１１は、あらかじめ保持している時間幅ＴＩとＲＴＴ（Round Trip Time）の有効性を判定する。クライアント１１は、保持している時間幅ＴＩとＲＴＴが有効である場合にステップＳ３４にすすみ、無効である場合にステップＳ３２にすすむ。クライアント１１は、あらかじめ設定されている有効期間（たとえば、１日）との確認により時間幅ＴＩとＲＴＴの有効性を判定することができる。時間幅ＴＩは、フレームの識別情報、すなわちフィンガープリントの保持期間であり、サーバ１３が複数のクライアント１１から送信開始要求を受信する際に同時刻とみなす期間である。たとえば、時間幅ＴＩは、５秒間である。
【００９１】
［ステップＳ３２］クライアント１１は、サーバ１３から時間幅ＴＩを取得するとともに、サーバ１３にＩＣＭＰ（Internet Control Message Protocol）パケットを送信してＲＴＴを取得する。
【００９２】
［ステップＳ３３］クライアント１１は、あらかじめ保持している時間幅ＴＩとＲＴＴを、取得した時間幅ＴＩとＲＴＴで更新する。
［ステップＳ３４］クライアント１１は、個別送信時間幅を決定する。たとえば、クライアント１１は、時間幅ＴＩの範囲の一様分布疑似乱数Ｆから乱数値を抽出し、抽出した乱数値とＲＴＴとの差分を個別送信時間幅として決定する。
【００９３】
［ステップＳ３５］クライアント１１は、送信開始要求の送信時刻（開始要求送信時刻）を決定する。開始要求送信時刻は、クライアント１１が放送コンテンツを受信した時刻から個別送信時間幅だけ遅延した時刻である。
【００９４】
これにより、放送コンテンツ記憶システム１０は、最初にサーバ１３にフレームを送信するクライアント１１を変更し、サーバ１３にフレーム送信するクライアント１１の偏りを解消し、フレーム送信をするクライアント１１の調停制御をおこなうことができる。
【００９５】
次に、第２の実施形態のフレーム受信処理のフローチャートについて図１１を用いて説明する。図１１は、第２の実施形態のフレーム受信処理のフローチャートを示す図である。フレーム受信処理は、サーバ１３がクライアント１１からフレームを受信する処理である。サーバ１３の制御部（プロセッサ１０１）は、サーバ１３の起動後に、フレーム受信処理を実行する。
【００９６】
［ステップＳ４１］サーバ１３は、クライアント１１から送信開始要求を受信したか否かを判定する。サーバ１３は、クライアント１１から送信開始要求を受信した場合にステップＳ４２にすすみ、送信開始要求を受信していない場合にステップＳ４３にすすむ。
【００９７】
［ステップＳ４２］サーバ１３は、送信開始要求受信処理を実行し、ステップＳ４１にすすむ。送信開始要求受信処理は、サーバ１３がクライアント１１からフレームの送信を開始する要求を受信する処理である。送信開始要求受信処理の詳細は、後で図１２を用いて説明する。
【００９８】
［ステップＳ４３］サーバ１３は、バルク送信を受信したか否かを判定する。サーバ１３は、バルク送信を受信しない場合にステップＳ４４にすすみ、バルク送信を受信した場合にステップＳ４５にすすむ。
【００９９】
［ステップＳ４４］サーバ１３は、単独フレーム受信処理を実行し、ステップＳ４１にすすむ。単独フレーム受信処理は、サーバ１３が指定したフレームをクライアント１１から受信する処理である。単独フレーム受信処理の詳細は、後で図１６を用いて説明する。
【０１００】
［ステップＳ４５］サーバ１３は、バルク送信受信処理を実行し、ステップＳ４１にすすむ。バルク送信受信処理は、サーバ１３がバルク送信を要求したクライアント１１からバッファに蓄積しているフレームを受信する処理である。バルク送信受信処理の詳細は、後で図２０を用いて説明する。
【０１０１】
次に、第２の実施形態の送信開始要求受信処理のフローチャートについて図１２を用いて説明する。図１２は、第２の実施形態の送信開始要求受信処理のフローチャートを示す図である。
【０１０２】
送信開始要求受信処理は、サーバ１３がクライアント１１から送信開始要求を受信する処理である。送信開始要求は、クライアント１１がフレームの保存（録画）をサーバ１３に要求する際に、最初にフレームを送信する処理である。サーバ１３は、クライアントから送信開始要求を受信した場合に、送信開始要求受信処理を実行する。
【０１０３】
［ステップＳ５１］サーバ１３は、受信した先頭フレームにもとづき識別情報および番組ＩＤを生成する。なお、サーバ１３が、クライアント１１から送信開始要求とともに識別情報も受信している場合は、サーバ１３は識別情報の生成をおこなわない。
【０１０４】
サーバ１３は、先頭フレームの識別情報と送信開始要求を受信した時刻にもとづいて、番組ＩＤを生成する。なお、サーバ１３は、送信開始要求を送信したクライアント１１を識別する情報（たとえば、ＩＰアドレス）と録画開始時刻にもとづいて、番組ＩＤを生成してもよいし、別な方法で生成してもよい。また、サーバ１３は、クライアント１１から長時間連続してフレームを受信し続けた場合に、一定時間ごとに（たとえば３０分ごとに）番組ＩＤを生成してもよい。
【０１０５】
［ステップＳ５２］サーバ１３は、識別情報や番組ＩＤなどを時刻情報と対応づけてサーバ１３で管理する情報として登録する。なお、サーバ１３は、送信開始要求を送信したクライアント１１を識別する情報（ＩＰアドレス、レコーダ識別情報など）も登録する。
【０１０６】
［ステップＳ５３］サーバ１３は、時間幅ＴＩの間に受信した先頭フレームの識別情報とサーバ１３で登録した識別情報群とを比較する。サーバ１３は、識別情報を比較した結果、受信した識別情報が登録した識別情報群のいずれかと同一の識別情報であれば、受信したフレームは重複すると判定し、同一の識別情報でない場合は受信したフレームは重複しないと判定する。サーバ１３は、フレームが重複しないと判断した場合、ステップＳ５４にすすむ。サーバ１３は、フレームが重複すると判断した場合、受信したフレームを破棄してステップＳ５５へすすむ。
【０１０７】
［ステップＳ５４］サーバ１３は、受信したフレームを新規保存する。サーバ１３は、番組ＩＤを付したディレクトリに受信したフレームを保存し、フレームの時刻情報などを管理ファイルに記録する。
【０１０８】
［ステップＳ５５］サーバ１３は、送信開始要求応答処理を実行し、送信開始要求受信処理を終了する。送信開始要求応答処理は、サーバ１３がクライアント１１から受信した送信開始要求に対して応答する処理である。送信開始要求応答処理の詳細は、図１４を用いて後述する。
【０１０９】
これにより、サーバ１３は、同時間帯に大量かつ同一の内容のコンテンツの保存要求を多数のクライアント１１から受信しても、放送コンテンツを効率よく重複排除することができる。
【０１１０】
次に、第２の実施形態の識別情報管理リストについて図１３を用いて説明する。図１３は、第２の実施形態の識別情報管理リストの一例を示す図である。
識別情報管理リスト６１は、時間幅ＴＩにおける識別情報の重複判定用の情報を含む。識別情報管理リスト６１は、時間幅ＴＩに相当する識別情報を保存可能な容量を有する。なお、識別情報管理リスト６１は、リスト形式に限らず、循環型ポインタテーブルで、時間幅ＴＩにおいて保持する情報としてもよい。たとえば、サーバ１３は、現在時刻を指すポインタを１秒毎にシフトし、一定の時間が経過した情報に現在の情報を上書き保存することで、識別情報を対応づけた情報のリストを再利用してもよい。
【０１１１】
識別情報管理リスト６１は、識別情報と、番組ＩＤと、フレームデータと、時刻情報と、クライアント数を含む。識別情報は、フレームを特定可能な情報であり、たとえば「ｄ０ｅ９ｆｄｂａ６５」である。番組ＩＤは、フレームが属する番組の識別情報であり、たとえば、「ＳＮ１２３＿１３９５」である。フレームデータは、フレームのデータであり、たとえば、「０ｘ１２８５１９…」である。時刻情報は、サーバ１３がクライアント１１からフレームを受信した時刻である。クライアント数は、同一の番組ＩＤに属するフレーム送信を受け付けるクライアント１１の数である。複数のクライアント１１から同一コンテンツのストリームデータを受信する場合、サーバ１３は、記憶装置１４に格納するフレームデータの冗長性を保つことができる。
【０１１２】
サーバ１３は、時間幅ＴＩの間にクライアント１１から受信したフレームを管理し、番組ＩＤを付与し、識別情報の重複判定をするために識別情報管理リスト２２を用いることができる。
【０１１３】
なお、識別情報は、動画像のフレームデータのような単位データを識別するダイジェストや、フィンガープリントである。クライアント１１あるいはサーバ１３は、ＲＦＣ（Request For Comment）３１７４で規定されるＳＨＡ−１（Secure Hash Algorithm 1）など既知の方法を用いて識別情報を生成することができる。クライアント１１が識別情報を生成し、クライアント１１がフレームと識別情報とをサーバ１３に送信してもよい。また、サーバ１３は、クライアント１１からフレームを受信し、受信したフレームから識別情報を生成してもよい。なお、時刻情報は、クライアント１１が、放送コンテンツを受信した時刻を管理してもよい。
【０１１４】
次に、第２の実施形態の送信開始要求応答処理のフローチャートについて図１４を用いて説明する。図１４は、第２の実施形態の送信開始要求応答処理のフローチャートを示す図である。
【０１１５】
送信開始要求応答処理は、サーバ１３がクライアント１１から受信した送信開始要求に応答する処理である。送信開始要求応答処理は、送信開始要求受信処理のステップＳ５５でサーバ１３が実行する処理である。
【０１１６】
［ステップＳ６１］サーバ１３は、受信した送信開始要求にかかる番組ＩＤと同一の番組ＩＤがクライアント管理情報に存在するか否かを判定する。サーバ１３は、同一の番組ＩＤが存在する場合にステップＳ６２にすすみ、同一の番組ＩＤが存在しない場合にステップＳ６３にすすむ。クライアント管理情報については、後で図１５を用いて説明する。
【０１１７】
［ステップＳ６２］サーバ１３は、当該番組ＩＤのフレームを送信するクライアント数が閾値（クライアント数閾値）未満であるか否かを判定する。サーバ１３は、クライアント１１の台数が閾値未満の場合にステップＳ６３にすすみ、クライアント数がクライアント数閾値以上の場合にステップＳ６５にすすむ。サーバ１３は、クライアント数閾値をあらかじめ設定する。なお、サーバ１３は、クライアント数閾値を送信開始要求の受信数に応じて定めてもよいし、他の方法でクライアント数閾値を定めてもよい。
【０１１８】
［ステップＳ６３］サーバ１３は、フレーム送信命令と番組ＩＤをクライアント１１に送信する。
［ステップＳ６４］サーバ１３は、フレーム送信命令を送信したクライアント１１を単独フレーム送信対象としてクライアント管理情報に登録する。サーバ１３は、単独フレーム送信を意味する識別子を当該クライアントの情報と対応づけてクライアント管理情報への登録をおこなう。
【０１１９】
［ステップＳ６５］サーバ１３は、バッファ保存命令と番組ＩＤをクライアント１１に送信する。
［ステップＳ６６］サーバ１３は、バッファ保存命令を送信したクライアント１１を、バッファ保存対象としてクライアント管理情報に登録する。
【０１２０】
なお、送信開始要求応答処理は、サーバ１３の処理の一例である。サーバ１３は、記憶装置１４の容量が上限にせまった場合など、必要に応じてバッファ保存命令をクライアント１１に送信してもよい。サーバ１３は、クライアント１１にバッファ保存命令を送信し、バッファ保存命令を送信したクライアント１１からストリームデータの受信を停止する。
【０１２１】
次に、第２の実施形態のクライアント管理情報について図１５を用いて説明する。図１５は、第２の実施形態のクライアント管理情報の一例を示す図である。
クライアント管理情報６２は、サーバ１３が番組ＩＤごとのクライアント１１の管理に用いる情報である。クライアント管理情報６２は、フレーム送信の状態などの管理に用いられる。クライアント管理情報６２は、番組ＩＤと、クライアントＩＤと、先頭フレーム識別情報と、フラグと、開始時刻と、終了時刻を含む。
【０１２２】
番組ＩＤは、識別情報管理リストに含まれる番組ＩＤと同一である。クライアントＩＤは、クライアント１１を識別する識別情報である。たとえば、クライアントＩＤは、ＩＰアドレスやＭＡＣアドレスをクライアントＩＤとしてもよいし、レコーダの製造番号や、製品のシリアル番号などをクライアントＩＤとしてもよい。なお、クライアントＩＤは、サーバ１３がクライアント１１に対してフレーム送信の命令に用いる情報であってもよい。また、クライアントＩＤは、サーバ１３がクライアントに対してバルク送信命令を送信するために用いる情報であってもよい。
【０１２３】
先頭フレーム識別情報は、先頭フレームの識別情報である。フラグは、クライアント１１のフレーム送信状態を示す情報である。フラグは、たとえば、フレーム送信状態を示す「Ｓ」や、フレームをバッファリングしている状態を示す「Ｂ」がある。
【０１２４】
開始時刻は、クライアント１１がフレームの送信を開始した時刻（録画開始時刻）である。なお、開始時刻は、サーバ１３がクライアント１１から開始要求とともに先頭フレームを受信した時刻の情報であってもよい。なお、開始時刻は、クライアント１１がバッファリングしている場合、バッファリングの開始時刻である。
【０１２５】
終了時刻は、クライアント１１がフレームの送信を終了した時刻（録画終了時刻）である。なお、終了時刻は、サーバ１３がクライアント１１から末尾フレームを受信した時刻の情報であってもよい。なお、終了時刻は、クライアント１１がバッファリングしている場合、バッファリングの終了時刻である。
【０１２６】
次に、第２の実施形態の単独フレーム受信処理のフローチャートについて図１６を用いて説明する。図１６は、第２の実施形態の単独フレーム受信処理のフローチャートを示す図である。
【０１２７】
単独フレーム受信処理は、サーバ１３が、クライアント１１から単独のフレームを受信する処理である。サーバ１３は、開始要求の応答としてフレーム送信の命令をクライアント１１に送信した後、クライアント１１から後続のフレームを受信する場合に単独フレーム受信処理を実行する。また、サーバ１３は、バルク送信されたデータを受信した後に、後続のフレームを受信する場合に、単独フレーム受信処理を実行する。
【０１２８】
［ステップＳ７１］サーバ１３は、受信したフレームの格納先を決定する。サーバ１３は、後続する単独のフレームとともに番組ＩＤを、クライアント１１から受信する。サーバ１３は、当該番組ＩＤが付されたディレクトリを、受信したフレームの格納先と決定する。なお、サーバ１３は、クライアント１１から番組ＩＤを受信しない場合、クライアント１１を識別する情報にもとづいて番組ＩＤを特定し、フレーム格納先を決定することができる。
【０１２９】
［ステップＳ７２］サーバ１３は、受信したフレームをディレクトリに追加保存する。サーバ１３は、受信したフレームに対応する番組ＩＤが付与されたフォルダに、受信したフレームを格納する。また、サーバ１３は、フレームデータを管理するファイルに、フレームデータのファイル名、開始時刻、終了時刻を記録する。
【０１３０】
［ステップＳ７３］サーバ１３は、受信したフレームが末尾フレームか否かを判定する。サーバ１３は、フレームが末尾フレームである場合にステップＳ７４にすすみ、末尾フレームでない場合に単独フレーム受信処理を終了する。
【０１３１】
［ステップＳ７４］サーバ１３は、クライアント管理情報に、末尾フレームの受信時刻を終了時刻として登録する。なお、サーバ１３は、一定の期間経過後にクライアント１１から末尾フレームを受信できずに当該クライアント１１がバッファリングしている場合、当該クライアント１１に「バッファ終了」の通知を送信してもよい。
【０１３２】
次に、第２の実施形態のフレームのファイル格納形式について図１７を用いて説明する。図１７は、第２の実施形態のフレームのファイル格納形式の一例を示す図である。
フレームのファイル格納形式は、サーバ１３がクライアント１１から受信したフレームのデータをファイルとして格納する形式である。サーバ１３は、時刻情報を付したディレクトリ（時刻情報ディレクトリ）を設ける。たとえば、ディレクトリ「２０１４０４１０１４」は、時刻情報ディレクトリである。時刻情報ディレクトリは、ディレクトリの中に１以上の番組ＩＤを付したディレクトリ（番組ディレクトリ）を設ける。たとえば、ディレクトリ「ＳＮ１２３４＿１３９５」は、番組ディレクトリである。サーバ１３は、１ディレクトリに１つの番組（放送コンテンツ）を格納する。すなわち、サーバ１３は、所定の同時間帯（たとえば、３０分）ごとに時刻情報ディレクトリを設け、時刻情報ディレクトリの中に同時間帯の１以上の番組ディレクトリを設ける。
【０１３３】
番組ディレクトリは、１つのフレームデータ管理ファイルと１以上のフレームデータファイルを含む。たとえば、「Ｆｉｌｅｔａｂｌｅ」は、フレームデータ管理ファイルであり、「Ｆｉｌｅ＿０」、「Ｆｉｌｅ＿１」は、フレームデータファイルのファイル名である。フレームデータ管理ファイルは、同じ番組ディレクトリの中に格納されたフレームデータを管理するファイルである。サーバ１３は、受信したフレームにファイル名を付してフレームデータファイルを生成し、番組ディレクトリに格納する。なお、サーバ１３は、受信したフレームに受信順序にしたがったファイル名を付与してもよいし、その他ストリームデータを再生するときに必要な情報を付してもよい。
【０１３４】
これにより、サーバ１３は、クライアントＩＤとクライアント管理情報とにもとづいて、受信したフレームが属するストリームデータの番組ＩＤを特定することができる。また、サーバ１３は、番組ＩＤが付与されたディレクトリをフレームの格納先として特定することができる。
【０１３５】
次に、第２の実施形態のフレームデータ管理ファイルについて図１８を用いて説明する。図１８は、第２の実施形態のフレームデータ管理ファイルの一例を示す図である。
フレームデータ管理ファイル６６は、フレームデータの管理情報を含む。フレームデータの管理情報は、フレームデータのファイル名と、先端時刻と、終端時刻とを含む。フレームデータの管理情報は、サーバ１３によって管理される。ファイル名は、各フレームデータに付されるファイル名であり、たとえばファイル名は、「Ｆｉｌｅ＿０」である。先端時刻は、各フレームに含まれる放送コンテンツの最先の時刻である。終端時刻は、各フレームに含まれる放送コンテンツの最後の時刻である。
【０１３６】
次に、第２の実施形態のフレーム保存監視処理のフローチャートについて図１９を用いて説明する。図１９は、第２の実施形態のフレーム保存監視処理のフローチャートを示す図である。
【０１３７】
フレーム保存監視処理は、サーバ１３が、クライアント１１から受信するフレームの保存状態を監視する処理である。サーバ１３の制御部（プロセッサ１０１）は、サーバ１３の起動後にフレーム保存監視処理を実行する。
【０１３８】
［ステップＳ８１］サーバ１３は、クライアント１１からフレームの受信が中断したか否かを判定する。サーバ１３は、フレームの受信が中断した場合にステップＳ８２にすすみ、フレームの受信が中断していない場合にステップＳ８１にすすむ。
【０１３９】
サーバ１３は、あらかじめ定められたフレーム監視時間ＴＷが経過しても末尾フレームを受信しなかった場合、クライアント１１からフレーム送信が中断したと判定する。なお、サーバ１３は、番組ＩＤが付されたディレクトリに、末尾フレームのデータが格納されていない場合、フレームの受信が中断したと判定してもよい。また、サーバ１３は、フレームデータ管理ファイルの更新時刻からフレーム監視時間ＴＷにおいて更新されていないと判定した場合、フレーム送信が中断したと判定してもよい。
【０１４０】
［ステップＳ８２］サーバ１３は、フレームを送信するクライアント１１の数（クライアント数）が複数であるか否かを判定する。サーバ１３は、クライアント数が複数でない場合にステップＳ８３にすすみ、クライアント数が複数である場合にステップＳ８１にすすむ。サーバ１３は、クライアント数をクライアント管理情報から取得することができる。
【０１４１】
［ステップＳ８３］サーバ１３は、バッファ保存中のクライアント１１が有るか否かを判定する。サーバ１３は、バッファ保存中のクライアント１１が有る場合にステップＳ８４にすすみ、バッファ保存中のクライアント１１が無い場合にステップＳ８１へすすむ。サーバ１３は、バッファ保存中のクライアント１１の有無を、クライアント管理情報から取得することができる。
【０１４２】
［ステップＳ８４］サーバ１３は、バッファ保存中のクライアント１１に対してバルク送信命令を発行する。
次に、第２の実施形態のバルク送信受信処理のフローチャートについて図２０を用いて説明する。図２０は、第２の実施形態のバルク送信受信処理のフローチャートを示す図である。
【０１４３】
バルク送信受信処理は、サーバ１３が、クライアント１１からバッファリングされたフレームのバルク送信を受信した場合の処理である。サーバ１３は、クライアント１１がバッファリングしたデータのバルク送信を受信した場合に、バルク送信受信処理を実行する。
【０１４４】
［ステップＳ９１］サーバ１３は、バルク送信フレーム格納先を決定する。サーバ１３は、クライアント１１から受信した番組ＩＤにもとづき、バルク送信で受信したフレームの格納先のディレクトリを決定する。
【０１４５】
［ステップＳ９２］サーバ１３は、受信したバルク送信フレームを新規保存する。サーバ１３は、番組ＩＤが付されたディレクトリに受信したフレームを保存し、フレームデータ管理ファイル６６に受信した情報を追加する。なお、サーバ１３は、当該番組ＩＤのディレクトリにすでに保存されたフレームが存在する場合、上書き保存を避け、新たにファイル名を付して保存してもよいし、別のディレクトリ名を作成して保存してもよい。
【０１４６】
［ステップＳ９３］サーバ１３は、クライアント１１をバルク送信対象から単独フレーム送信対象に変更する。サーバ１３は、バルク送信を行ったクライアント１１に対応するクライアント管理情報６２のフラグを、バルク送信対象のフラグ「Ｂ」から単独フレーム送信対象のフラグ「Ｓ」に変更する。
【０１４７】
［ステップＳ９４］サーバ１３は、後続するフレームの送信命令をクライアント１１に発行する。このようにして、サーバ１３は、バルク送信フレームを受信し格納する。また、サーバ１３は、バルク送信対象のクライアント１１を単独フレーム送信対象のクライアント１１に変更する。
【０１４８】
次に、第２の実施形態の再生データ出力処理のフローチャートについて図２１を用いて説明する。図２１は、第２の実施形態の再生データ出力処理のフローチャートを示す図である。
【０１４９】
再生データ出力処理は、サーバ１３がクライアント１１から受信した再生要求の時刻情報を判別し、再生すべきフレームデータを記憶装置１４から読出し、クライアント１１に送信する処理である。サーバ１３は、クライアント１１からコンテンツを再生する要求を受信した場合に、再生データ出力処理を実行する。
【０１５０】
［ステップＳ１０１］サーバ１３は、クライアント１１からコンテンツの再生要求とともに、再生の開始時刻と終了時刻の情報と番組ＩＤの情報とを受信する。
［ステップＳ１０２］サーバ１３は、番組ＩＤに対応するディレクトリに存在するフレームデータ管理ファイルから管理情報を取得する。
【０１５１】
［ステップＳ１０３］サーバ１３は、受信した番組ＩＤに対応するディレクトリに格納されているフレームデータを、管理情報にもとづき時刻昇順にソートする。
［ステップＳ１０４］サーバ１３は、番組ＩＤに対応するディレクトリに格納されているフレームデータをソート結果にしたがい読出す。
【０１５２】
なお、サーバ１３は、再生要求で受信した開始時刻から終了時刻までフレームデータのうち、再生要求をおこなったクライアント１１がサーバ１３に保存を要求したフレームデータの範囲内でフレームデータを読み出す。これにより、サーバは、クライアント１１が保存したフレームデータに限り、クライアント１１でのフレームデータの再生を可能にする。たとえば、クライアント１１が放送コンテンツの一部だけを録画している場合、当該クライアント１１は、録画した番組の一部に限りフレームデータを再生できる。なお、クライアント１１による録画時間は、クライアント１１からサーバ１３へのフレームデータの送信している時間の他に、クライアント１１がフレームデータをバッファリングしている時間を含む。
【０１５３】
［ステップＳ１０５］サーバ１３は、ステップＳ１０４で読出したフレームデータが、録画終了時刻のフレームデータであるか否かを判定する。サーバ１３は、読み出したフレームデータが録画終了時刻のフレームデータである場合にステップＳ１０６にすすみ、録画終了時刻のフレームデータでない場合にステップＳ１０４にすすむ。
【０１５４】
［ステップＳ１０６］サーバ１３は、ステップＳ１０４で読出したフレームデータをクライアント１１に送信する。なお、サーバ１３は、クライアント管理情報にもとづき同一の放送コンテンツを保存した複数のクライアント１１を特定できる。サーバ１３は、特定したクライアント１１に対して同一の放送コンテンツを送信できる。
【０１５５】
このように、サーバ１３は、同時刻帯に同内容の放送コンテンツを大量に保存する場合において、識別情報管理リストを用いることで効率的に重複排除をおこなうことができる。また、サーバ１３は、重複するフレームを削減し、ストレージ装置の記憶容量が圧迫されることを軽減することができる。
【０１５６】
また、サーバ１３は、同一の放送コンテンツのフレームの送信開始を要求しているクライアント１１が複数存在している場合、一部のクライアント１１にフレームを送信する命令を送信し、他のクライアント１１にバッファリングする命令を送信する。このようにして、サーバ１３は、クライアント１１から受信するフレームの数を軽減し、大容量のデータを通信するネットワーク帯域を削減することができる。
【０１５７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、第１の情報処理装置２、第２の情報処理装置５、クライアント１１、およびサーバ１３が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１５８】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５９】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１６０】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１６１】
１  情報処理システム
２，２ａ，２ｂ，２ｎ  第１の情報処理装置
３  送信部
４  ストリームデータ
４ａ  単位データ
５  第２の情報処理装置
５ａ  受信部
５ｂ  制御部
５ｃ  第１の記憶部
６  識別情報
７  第２の記憶部
９，１２  ネットワーク
１０  放送コンテンツ記憶システム
１１，１１ａ，１１ｂ，１１ｎ  クライアント
１３  サーバ
１４  記憶装置
１５  放送局
１６  コンテンツ配信システム
１０１  プロセッサ
１０２  ＲＡＭ
１０３  ＨＤＤ
１０４  入出力信号インタフェース
１０５  記憶媒体インタフェース
１０６  通信インタフェース
１０７  バス
１０８  入出力デバイス
１０９  記憶媒体
【図１】
2016004599.tif 000003
【図２】
2016004599.tif 000004
【図３】
2016004599.tif 000005
【図４】
2016004599.tif 000006
【図５】
2016004599.tif 000007
【図６】
2016004599.tif 000008
【図７】
2016004599.tif 000009
【図８】
2016004599.tif 000010
【図９】
2016004599.tif 000011
【図１０】
2016004599.tif 000012
【図１１】
2016004599.tif 000013
【図１２】
2016004599.tif 000014
【図１３】
2016004599.tif 000015
【図１４】
2016004599.tif 000016
【図１５】
2016004599.tif 000017
【図１６】
2016004599.tif 000018
【図１７】
2016004599.tif 000019
【図１８】
2016004599.tif 000020
【図１９】
2016004599.tif 000021
【図２０】
2016004599.tif 000022
【図２１】
2016004599.tif 000023