通信装置、通信システム、通信方法及びプログラム
【課題】送信側のバッファで送信中のデータが破棄された場合においても、通信を継続する。
【解決手段】本開示に係る通信装置は、複数のデータブロックが蓄積されるバッファと、
前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する送信部と、を備える。
【解決手段】本開示に係る通信装置は、複数のデータブロックが蓄積されるバッファと、
前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する送信部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【0002】
近時では、断片化された映像データを受信機がHTTPによって連続的に取得する、HTTPアダプティブストリーミングの手法が知られている。このHTTPアダプティブストリーミングの仕様としては、IETF HTTP Live Streaming,Adobe HTTP Dynamic Streaming,Microsoft Smooth Streamingなど、何種類かの手法が存在する。
・IETF HTTP Live Streaming
(http://tools.ietf.org/html/draft-pantos-http-live-streaming-05)
・Adobe HTTP Dynamic Streaming (http://www.adobe.com/products/httpdynamicstreaming/)
・Mirosoft HTTP Smooth Streaming
(http://technet.microsoft.com/ja-jp/library/dd775200.aspx)
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−045760号公報
【特許文献2】特開2010−246146号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のアダプティブストリーミングのシステムでは、配信サーバは、複数のレートでエンコードしたコンテンツを、更にそれぞれを断片化したファイルとして用意する。クライアントは、配信サーバとの間のスループットに適したビットレートの断片ファイルをダウンロードすることで、配信中にスループットの変化に追従できる。
【0005】
しかしながら、従来の技術は、十分なバッファを持つ大規模なサーバから送信することを前提にしているので、バッファ容量が限界に達した場合に、送信機側でデータが破棄されることは想定していない。
【0006】
一方、アダプティブストリーミング配信を、組み込み機器で、しかもライブ映像に適用しようとした場合、バッファ容量が小さいため、バッファに蓄積されるデータ量が限界に達した場合に、送信中の断片化されたデータが破棄されてしまうことが想定される。この場合、送信側はHTTPのセッションを切断してしまい、通信が途絶してしまう可能性がある。
【0007】
パケットロスやジッタによるエラーを回避するため、上記特許文献1に記載されているような、受信側でバッファリングすることでジッタを吸収する技術があるが、これらの技術は、ジッタを吸収しきれなかったものに対しての想定はしていない。
【0008】
そこで、送信側のバッファで送信中のデータが破棄された場合においても、通信を継続できる仕組みが求められていた。
【課題を解決するための手段】
【0009】
本開示によれば、複数のデータブロックが蓄積されるバッファと、前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、を備える、通信装置が提供される。
【0010】
また、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に相当するダミーデータを生成するダミーデータ生成部を備え、前記送信部は、前記バッファから読み出された前記データブロックを送信するとともに、前記ダミーデータが生成された場合は、廃棄により送信できなかったデータブロックの前記部分に代えて前記ダミーデータを送信するものであってもよい。
【0011】
また、前記データはMPEG2−TS形式であり、所定数のTSパケットが前記データブロックを構成し、前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、途中で分断されたTSパケットの未送信分に相当するデータと、未送信のTSパケットとを含む前記ダミーデータを生成するものであってもよい。
【0012】
また、前記データはMP4形式であり、MOOFが前記データブロックを構成し、前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、前記MOOFの未送信分に相当するデータを前記ダミーデータとして生成するものであってもよい。
【0013】
また、本開示によれば、複数のデータブロックが蓄積されるバッファと、送信要求に応じて前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、を備える、通信装置と、前記送信要求を前記送信装置に送信し、前記送信部から送信された前記データブロック及び前記ダミーデータを受信する受信装置と、を備える、通信システムが提供される。
【0014】
また、本開示によれば、複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出すことと、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信することと、を備える、通信方法が提供される。
【0015】
また、本開示によれば、複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出す手段、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する手段、としてコンピュータを機能させるためのプログラムが提供される。
【発明の効果】
【0016】
本開示によれば、送信側のバッファで送信中のデータが破棄された場合においても、通信を継続することが可能となる。
【図面の簡単な説明】
【0017】
【図1】本実施形態に係る、ライブ映像をリアルタイムにエンコードしてアダプティブストリーミング配信するシステムの概要図である。
【図2】送信機において、エンコードしたデータをバッファに蓄積するシーケンスを示す模式図である。
【図3】受信機がデータを取得するシーケンスを示す模式図である。
【図4】プレイリストファイル、 データブロック取得要求、データブロック取得応答の例を示す模式図である。
【図5】送信機において、エンコードしたデータをバッファに蓄積するシーケンスにおいて、データ量がバッファの容量の上限に達した場合のシーケンスを示す模式図である。
【図6】図2のシーケンスに従って、バッファにデータブロックA〜Dが書き込まれ、データブロックEのTSパケットが書き込まれている様子を示す模式図である。
【図7】バッファにデータブロックA〜Eが書き込まれ、データ量がバッファの容量の上限に達した場合を示す模式図である。
【図8】バッファ制御部による書き込み処理がエラーとなった後、バッファ制御部104が、バッファ内の最も古いデータブロックAを廃棄した状態を示す模式図である。
【図9】バッファ制御部が、バッファ108内の最も古いデータブロックAを廃棄した後、空いたデータ領域にデータブロックFのTSパケットを書き込んでいる様子を示す模式図である。
【図10】データブロックの取得中に、取得中のデータブロックがバッファから削除されてしまった場合のデータ取得シーケンスを示す模式図である。
【図11】本実施形態における。ダミーデータを生成してダウンロード継続させるシーケンスを示す模式図である。
【図12】バッファ制御部が、バッファ内のデータブロックAのTSパケットを読み込んでいる様子を示す模式図である。
【図13】図12に示す状態から、データブロックAが廃棄された様子を示す模式図である。
【図14】図13のエラー発生により、バッファ制御部が、ダミーデータ生成部にダミーデータの生成要求を送った状態を示す模式図である。
【図15】IETF HTTP Live Streamingにおける、ダミーデータの概要を示す模式図である。
【図16】ダミーデータとして送信するTSパケットの内容例を示す模式図である。
【図17】MP4のファイルフォーマットを簡略化して示す模式図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0019】
なお、説明は以下の順序で行うものとする。
1.システムの構成例
2.エンコードしたデータをバッファに蓄積するシーケンスの例
3.受信機がデータを取得するシーケンスの例
4.プレイリストファイル、 データブロック取得要求、データブロック取得応答の例
5.データ量がバッファ容量の上限に達した場合のシーケンスの例
6.データブロックの取得中に、取得中のデータブロックがバッファから削除されてしまった場合のデータ取得シーケンスの例
7.ダミーデータを生成してダウンロード継続させるシーケンスの例
8.ダミーデータを生成する動作について
9.ダミーデータとして送信するTSパケットの内容例
10.MP4のファイルフォーマットの例
【0020】
1.システムの構成例
まず、図1を参照して、本開示の第1の実施形態に係るシステムの概略構成について説明する。図1は、本実施形態に係る、ライブ映像をリアルタイムにエンコードしてアダプティブストリーミング配信するシステムの概要図を示す。送信機100と受信機200は、IPネットワーク250を介して接続されている。なお、送信機100と受信機200は、無線通信ネットワークを介して接続されるものであってもよい。
【0021】
送信機100は、エンコーダ・マルチプレクサ102、バッファ制御部104、通信部106、バッファ108、ダミーデータ生成部110を有して構成される。送信機100のエンコーダ・マルチプレクサ102は、ビデオカメラ等から送られた映像入力をエンコードし、MEPG2−TSもしくはMP4に多重化する。エンコーダ・マルチプレクサ102から出力されたデータは、バッファ制御部104を介してバッファ108に蓄積される。通信部106は、受信機200からのHTTPによるデータ取得要求を待ち受け、データ取得要求を受信すると、要求に応じたデータを、バッファ制御部104を介してバッファ108より取得し、受信機300へ返信する。
【0022】
受信機200は、通信部202と、デコーダ・デマルチプレクサ204を有して構成される。受信機200は、通信部202からデータの取得要求を送信機100へ送信し、要求に応じたデータブロックを取得すると、デコーダ・デマルチプレクサ204へ取得したデータを送る。デコーダ・デマルチプレクサ204は、多重化されたストリームを分離し、デコードしてモニタ等に出力する。
【0023】
なお、図1に示す構成は、ハードウェア(回路)、または、CPU(中央演算処理装置)とこれを機能させるためのソフトウェア(プログラム)から構成することができる。この場合において、そのプログラムは、送信機100または受信機200が備えるメモリなどの記憶部、または外部から接続される光ディスク等の記憶媒体に格納されることができる。
【0024】
2.エンコードしたデータをバッファに蓄積するシーケンスの例
図2は、送信機100において、エンコードしたデータをバッファ108に蓄積するシーケンスを示す模式図である。図2に示すように、バッファ制御部104は、ステップS10において、エンコーダ・マルチプレクサ102にデータを要求し、ステップS12においてデータを取得する。そして、バッファ制御部104は、ステップS14において、取得したデータをバッファ108に書き込む。以降、この処理が繰り返し行われる。
【0025】
3.受信機がデータを取得するシーケンスの例
図3は、受信機200がデータを取得するシーケンスを示す模式図である。先ず、受信機200の通信部202は、ステップS20においてプレイリストの要求を送信機100の通信部106へ送り、ステップS22において、通信部106からプレイリストファイルを取得する。プレイリストファイルには、断片化したファイルのURLリストが記述されている。ステップS24において、通信部202は、プレイリストファイル中のデータブロックAの取得要求(データブロックAのURL)を送信する。
【0026】
データ取得要求を受け取った通信部106は、バッファ制御部104に該当する範囲のデータを要求する(ステップS26)。バッファ制御部104は、該当するデータをバッファ108へ要求し(ステップS28)、バッファ108から該当するデータ読み出して(ステップS30)、通信部106に送る(ステップS32)。通信部106は、バッファ制御部104から送られてきたデータにHTTPレスポンスヘッダを付与して受信機200の通信部202に送る(ステップS34)。通信部202は。デコーダ・マルチプレクサ204にデータを送り(ステップS36)、映像が再生される。受信機200は、データブロックAのダウンロードが終了すると、プレイリストファイル中の次のデータブロックBを取得する(ステップS40以降)。プレイリストファイルは再読み込みすることで更新される。
【0027】
以上のように、アダプティブストリーミングにおいて、断片化されてデータブロック毎に分割されたデータは、受信機200側がプレイリスト中のURLを指定してデータブロック毎に要求することで、データブロック毎に送信機100から送信される。このように、比較的データ長の長いデータを一度に送るのではなく、断片化されたデータブロック事に送ることで、例えばデータの送信中に通信の帯域のビットレートに変化が生じた場合は、受信機200は、適切なビットレートのデータブロックを要求することができる。従って、帯域が不安定になった場合等においても安定してデータを受信することができ、特にライブ映像のデータを受信する場合等に適している。
【0028】
図4は、プレイリストファイル、 データブロック取得要求、データブロック取得応答の例を示す模式図である。図4では、IETF HTTP Live Streamingの場合の例を示している。IETF HTTP Live Streamingは、m3u8形式のプレイリストファイルを用い、データファイルのフォーマットはMPEG2−TSである。このプレイリストでは、8秒毎に断片化された3つのデータブロックが記述されている。1のデータブロックが8秒分のTSパケットを含んだ1ファイルのように扱われている。データの取得はHTTP GETにより行う。
【0029】
5.データ量がバッファ容量の上限に達した場合のシーケンスの例
図5は、送信機100において、エンコードしたデータをバッファ108に蓄積するシーケンスにおいて、データ量がバッファ108の容量の上限に達した場合のシーケンスを示す模式図である。データ量がバッファ108の容量の上限に達する前のシーケンスは図2と同様である。データ量がバッファ108の容量の上限に達すると、バッファ制御部104による書き込み処理がエラーとなるので(ステップS16)、バッファ制御部104は、最も古いデータブロックを削除し(ステップS18)、空いた領域にデータを書き込む(ステップS20)。
【0030】
図6〜図9は、図5の動作を示す模式図である。図6は、図2のシーケンスに従って、バッファ108にデータブロックA〜Dが書き込まれ、データブロックEのTSパケットが書き込まれている様子を示している。
【0031】
図7は、バッファ108にデータブロックA〜Eが書き込まれ、データ量がバッファ108の容量の上限に達した場合を示している。この場合、バッファ108にTSパケットを書き込むことができなくなるため、バッファ制御部104による書き込み処理がエラーとなる。
【0032】
図8は、バッファ制御部104による書き込み処理がエラーとなった後、バッファ制御部104が、バッファ108内の最も古いデータブロックAを廃棄した状態を示している。
【0033】
図9は、バッファ制御部104が、バッファ108内の最も古いデータブロックAを廃棄した後、空いたデータ領域にデータブロックFのTSパケットを書き込んでいる様子を示している。図9に示すように、データブロックAを廃棄したことにより、次のデータブロックFを書き込むことが可能となる。
【0034】
6.データブロックの取得中に、取得中のデータブロックがバッファから削除されてしまった場合のデータ取得シーケンスの例
図10は、データブロックの取得中に、取得中のデータブロックがバッファ108から削除されてしまった場合のデータ取得シーケンスを示す模式図である。図10に示すように、データブロックAについては、全てのデータが受信機200に送られる。しかし、データブロックBについては、2つ目のデータをバッファ108から取得している最中に、図5のようにデータブロックBがバッファ108から廃棄されてしまい、バッファ制御部104はバッファ108からデータブロックBの以降のデータを取得することができない(ステップS42)。
【0035】
このように、図10の例では、データブロックBのデータを取得中に、データブロックBが図6〜図8で説明したように破棄されてしまい、これ以降のデータを受信機200に送ることができない事態が生じている。受信機200は、データブロックBの取得要求を送信した直後に、図4に示したデータブロック取得応答を送信機100から受信するため、データブロックBのコンテンツのデータ長(Content−Length)を認識している。このため、受信機200は、データブロックBに関し、Content−Lengthのサイズを全てダウンロードするまでは、次のデータブロックを取得する処理を行わないため、映像データがこれ以上ダウンロードされないこととなり、ダウンロードが中止してしまう。
【0036】
このため、本実施形態では、図10のような事態が生じた場合に、ダミーデータを生成して以降のダウンロードを引き続き行うことを可能としている。
【0037】
7.ダミーデータを生成してダウンロード継続させるシーケンスの例
図11は、本実施形態における、ダミーデータを生成してダウンロード継続させるシーケンスを示す模式図である。図11において、ステップS42までの処理は図10と同様である。
【0038】
バッファ制御部104は、破棄されたデータを取得しようとした際にデータの読込に失敗すると(ステップS42)、次のステップS44において、不足しているサイズ分のダミーデータを生成するように、ダミーデータ生成部110に対して要求する。ダミーデータ生成部110は、この要求を受けて、ダミーデータを生成する(ステップS46)。生成されたダミーデータは、バッファ制御部104に送られ(ステップS48)、通信部106を介して受信機200の通信部202に送られる(ステップS50,S52)。
【0039】
これにより、受信機200は、図4に示したContent−Lengthの分のデータを受信することができる。そして、受信機200は、Content−Length分のデータを受け取ると、次のデータブロックCのダウンロードを開始する(ステップS54)。これにより、バッファ108からデータを取得している最中に、そのデータブロックのデータが廃棄されてしまった場合においても、ダウンロードが停止することがなく、以降のデータをダウンロードすることが可能となる。
【0040】
8.ダミーデータを生成する動作について
図12〜図14は、ダミーデータを生成する動作を示す模式図である。図12は、バッファ制御部104が、バッファ108内のデータブロックAのTSパケットを読み込んでいる様子を示している。
【0041】
図13は、図12に示す状態から、データブロックAが廃棄された様子を示している。この場合、バッファ制御部104は、廃棄された後はデータブロックAのTSパケットを読み込むことができず、エラーが発生する。
【0042】
図14は、図13のエラー発生により、バッファ制御部104が、ダミーデータ生成部110にダミーデータの生成要求を送った状態を示している。これにより、ダミーデータ生成部110がダミーデータを生成し、生成されたダミーデータは、バッファ制御部104へ送られ、更にバッファ制御部104、通信部106を介して受信機200へ送られる。
【0043】
図15は、IETF HTTP Live Streamingにおける、ダミーデータの概要を示す模式図である。図15では、バッファ104のデータブロックAが廃棄されたことにより、ステップS42において、TSパケット300,302,304の送信中にデータブロックが破棄されている。1つ目、2つ目のTSパケット300,302については受信機200側に送信されるものの、3つ目のTSパケット304が途中で分断され、TSパケットは一部のみが送信されている。ダミーデータ400は、その分断されたTSパケット304の送信されなかった分を補完するデータ402と、未送信のTSパケット分のNULLパケット404(4つ目のTSパケットに相当)から構成され、通信部106を介して受信機200の通信部202へ送信される。
【0044】
IETF HTTP Live Streamingにおける,生成するダミーデータのサイズを求める式は以下の通りである。
データブロックサイズ=TSパケットサイズ×パケット数
ダミーデータとして送信するNULLパケットの数=(データブロックサイズ−送信済データサイズ)/TSパケットサイズ
(断片化したTSを補完するダミーデータのサイズ=(データブロックサイズ−送信済データサイズ)÷TSパケットサイズ)
【0045】
データブロックは、ある一定数のTSパケットで構成され、1つのTSパケットは、188バイト(タイムスタンプつきTSの場合は192バイトである。
従って、データブロックのサイズは、
188バイト(タイムスタンプつきTSの場合は192バイト)×パケット数
となる。
【0046】
ダミーデータとして送るNULLパケット404の数は 、
(データブロックサイズ−送信済データサイズ)/TSパケットサイズ
であり、断片化したTSパケットを補完するデータ402のサイズは、その余りである。
【0047】
9.ダミーデータとして送信するTSパケットの内容例
図16は、ダミーデータとして送信するTSパケット(NULLパケット404)の内容例を示す模式図である。NULLパケット404の各データは、例えば無効なデータに設定される。タイムスタンプつきTSの場合、TS(タイムスタンプ)は0とする。また、同期ワードは(0x47)とする。
【0048】
また、図16に示すトランスポートエラーインジケータA(1bit)としては、エラーを示す1を設定し、ペイロードユニットスタートインジケータB(1bit)、トランスポート優先度C(1bit)にはそれぞれ0を設定する。また、パケット識別子(13bit)には、NULLパケットを示す(0x1ff)を設定する。トランスポートスクランブルコントロールD(2bit)、アダプテーションフィールドコントロールE(2bit)、巡回カウンターF(4bit)にもそれぞれ0を設定し、ペイロード(184byte)は、ダミーデータ(たとえば0x00や0xFF)に設定する。断片化したTSパケットを補完するダミーデータ400は、このNULLパケット404の一部から生成する。通信部106は、バッファ104から読み出したデータ量を検知できるため、各データブロックの送信済のデータ量を検知できる。従って、通信部106は、3つ目のTSパケット304の全データが送信できなかったこと、及び3つ目のTSパケット304が何ビットまで送信されたかを検知することができる。各TSパケットは、TS(タイムスタンプ)、同期ワード、トランスポートエラーインジケータA、ペイロードユニットスタートインジケータBの順で送信されるため、通信部106は、3つ目のTSパケット304がどの部分まで送信されたかを検知できる。ダミーデータ生成部110は、これらの情報に基づいて、上述した計算式により、TSパケット304の未送信分のデータ量に相当するダミーデータ400を生成するとともに、このNULLパケット404を生成する。
【0049】
10.MP4のファイルフォーマットの例
Adobe HTTP Dynamic Streamingや、Mirosoft HTTP Smooth Streamingの場合、プレイリストファイルの形式がそれぞれ異なるが、同様の方法でダミーデータ生成を行うことができる。
【0050】
これらの方式では、データファイルのフォーマットは、MPEG2−TSではなくMP4となるが、MPEG2−TSの場合と同様に、送信されるべきデータ長と、送信済みデータ量とから、未送信分のデータ量を算出することができる。従って、未送信分のデータ量に基づいてダミーデータを生成することが可能である。図17は、MP4のファイルフォーマットを簡略化して示す模式図である。1つのMP4ファイルは、主にMOOV(Movie Metadata)とMOOF(Movie Fragment)で構成される。上述したIETF HTTP Live Streamingの場合、1つのデータブロックが1つのファイルであるように扱われていたが、MP4を利用する方式の場合は、1データブロックが1つのMOOF(Movie Fragment)に対応するようになる。MOOFは可変長であるが、 (データブロック長−送信済データ長)のデータサイズのダミーデータ(たとえば0x00や0xFF)をダミーデータ生成部110で生成することによって、通信部106からダミーデータを送信することができる.
【0051】
以上説明したように本実施形態によれば、送信機100側のバッファリングなどで吸収しきれずにエラーとなった場合においても、通信が終了することがなく、通信を継続させることが可能となる。
【0052】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0053】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)複数のデータブロックが蓄積されるバッファと、
前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する送信部と、
を備える、通信装置。
【0054】
(2)前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に相当するダミーデータを生成するダミーデータ生成部を備え、
前記送信部は、前記バッファから読み出された前記データブロックを送信するとともに、前記ダミーデータが生成された場合は、廃棄により送信できなかったデータブロックの前記部分に代えて前記ダミーデータを送信する、前記(1)に記載の通信装置。
【0055】
(3)前記データはMPEG2−TS形式であり、所定数のTSパケットが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、途中で分断されたTSパケットの未送信分に相当するデータと、未送信のTSパケットとを含む前記ダミーデータを生成する、前記(2)に記載の通信装置。
【0056】
(4)前記データはMP4形式であり、MOOFが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、前記MOOFの未送信分に相当するデータを前記ダミーデータとして生成する、前記(3)に記載の通信装置。
【0057】
(5)複数のデータブロックが蓄積されるバッファと、
送信要求に応じて前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する送信部と、
を備える、通信装置と、
前記送信要求を前記送信装置に送信し、前記送信部から送信された前記データブロック及び前記ダミーデータを受信する受信装置と、
を備える、通信システム。
【0058】
(6)複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出すことと、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信することと、
を備える、通信方法。
【0059】
(7)複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出す手段、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する手段、
としてコンピュータを機能させるためのプログラム。
【符号の説明】
【0060】
100 送信機
104 バッファ制御部
106 通信部
108 バッファ
110 ダミーデータ生成部
200 受信機
【技術分野】
【0001】
本開示は、通信装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【0002】
近時では、断片化された映像データを受信機がHTTPによって連続的に取得する、HTTPアダプティブストリーミングの手法が知られている。このHTTPアダプティブストリーミングの仕様としては、IETF HTTP Live Streaming,Adobe HTTP Dynamic Streaming,Microsoft Smooth Streamingなど、何種類かの手法が存在する。
・IETF HTTP Live Streaming
(http://tools.ietf.org/html/draft-pantos-http-live-streaming-05)
・Adobe HTTP Dynamic Streaming (http://www.adobe.com/products/httpdynamicstreaming/)
・Mirosoft HTTP Smooth Streaming
(http://technet.microsoft.com/ja-jp/library/dd775200.aspx)
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−045760号公報
【特許文献2】特開2010−246146号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のアダプティブストリーミングのシステムでは、配信サーバは、複数のレートでエンコードしたコンテンツを、更にそれぞれを断片化したファイルとして用意する。クライアントは、配信サーバとの間のスループットに適したビットレートの断片ファイルをダウンロードすることで、配信中にスループットの変化に追従できる。
【0005】
しかしながら、従来の技術は、十分なバッファを持つ大規模なサーバから送信することを前提にしているので、バッファ容量が限界に達した場合に、送信機側でデータが破棄されることは想定していない。
【0006】
一方、アダプティブストリーミング配信を、組み込み機器で、しかもライブ映像に適用しようとした場合、バッファ容量が小さいため、バッファに蓄積されるデータ量が限界に達した場合に、送信中の断片化されたデータが破棄されてしまうことが想定される。この場合、送信側はHTTPのセッションを切断してしまい、通信が途絶してしまう可能性がある。
【0007】
パケットロスやジッタによるエラーを回避するため、上記特許文献1に記載されているような、受信側でバッファリングすることでジッタを吸収する技術があるが、これらの技術は、ジッタを吸収しきれなかったものに対しての想定はしていない。
【0008】
そこで、送信側のバッファで送信中のデータが破棄された場合においても、通信を継続できる仕組みが求められていた。
【課題を解決するための手段】
【0009】
本開示によれば、複数のデータブロックが蓄積されるバッファと、前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、を備える、通信装置が提供される。
【0010】
また、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に相当するダミーデータを生成するダミーデータ生成部を備え、前記送信部は、前記バッファから読み出された前記データブロックを送信するとともに、前記ダミーデータが生成された場合は、廃棄により送信できなかったデータブロックの前記部分に代えて前記ダミーデータを送信するものであってもよい。
【0011】
また、前記データはMPEG2−TS形式であり、所定数のTSパケットが前記データブロックを構成し、前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、途中で分断されたTSパケットの未送信分に相当するデータと、未送信のTSパケットとを含む前記ダミーデータを生成するものであってもよい。
【0012】
また、前記データはMP4形式であり、MOOFが前記データブロックを構成し、前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、前記MOOFの未送信分に相当するデータを前記ダミーデータとして生成するものであってもよい。
【0013】
また、本開示によれば、複数のデータブロックが蓄積されるバッファと、送信要求に応じて前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、を備える、通信装置と、前記送信要求を前記送信装置に送信し、前記送信部から送信された前記データブロック及び前記ダミーデータを受信する受信装置と、を備える、通信システムが提供される。
【0014】
また、本開示によれば、複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出すことと、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信することと、を備える、通信方法が提供される。
【0015】
また、本開示によれば、複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出す手段、前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する手段、としてコンピュータを機能させるためのプログラムが提供される。
【発明の効果】
【0016】
本開示によれば、送信側のバッファで送信中のデータが破棄された場合においても、通信を継続することが可能となる。
【図面の簡単な説明】
【0017】
【図1】本実施形態に係る、ライブ映像をリアルタイムにエンコードしてアダプティブストリーミング配信するシステムの概要図である。
【図2】送信機において、エンコードしたデータをバッファに蓄積するシーケンスを示す模式図である。
【図3】受信機がデータを取得するシーケンスを示す模式図である。
【図4】プレイリストファイル、 データブロック取得要求、データブロック取得応答の例を示す模式図である。
【図5】送信機において、エンコードしたデータをバッファに蓄積するシーケンスにおいて、データ量がバッファの容量の上限に達した場合のシーケンスを示す模式図である。
【図6】図2のシーケンスに従って、バッファにデータブロックA〜Dが書き込まれ、データブロックEのTSパケットが書き込まれている様子を示す模式図である。
【図7】バッファにデータブロックA〜Eが書き込まれ、データ量がバッファの容量の上限に達した場合を示す模式図である。
【図8】バッファ制御部による書き込み処理がエラーとなった後、バッファ制御部104が、バッファ内の最も古いデータブロックAを廃棄した状態を示す模式図である。
【図9】バッファ制御部が、バッファ108内の最も古いデータブロックAを廃棄した後、空いたデータ領域にデータブロックFのTSパケットを書き込んでいる様子を示す模式図である。
【図10】データブロックの取得中に、取得中のデータブロックがバッファから削除されてしまった場合のデータ取得シーケンスを示す模式図である。
【図11】本実施形態における。ダミーデータを生成してダウンロード継続させるシーケンスを示す模式図である。
【図12】バッファ制御部が、バッファ内のデータブロックAのTSパケットを読み込んでいる様子を示す模式図である。
【図13】図12に示す状態から、データブロックAが廃棄された様子を示す模式図である。
【図14】図13のエラー発生により、バッファ制御部が、ダミーデータ生成部にダミーデータの生成要求を送った状態を示す模式図である。
【図15】IETF HTTP Live Streamingにおける、ダミーデータの概要を示す模式図である。
【図16】ダミーデータとして送信するTSパケットの内容例を示す模式図である。
【図17】MP4のファイルフォーマットを簡略化して示す模式図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0019】
なお、説明は以下の順序で行うものとする。
1.システムの構成例
2.エンコードしたデータをバッファに蓄積するシーケンスの例
3.受信機がデータを取得するシーケンスの例
4.プレイリストファイル、 データブロック取得要求、データブロック取得応答の例
5.データ量がバッファ容量の上限に達した場合のシーケンスの例
6.データブロックの取得中に、取得中のデータブロックがバッファから削除されてしまった場合のデータ取得シーケンスの例
7.ダミーデータを生成してダウンロード継続させるシーケンスの例
8.ダミーデータを生成する動作について
9.ダミーデータとして送信するTSパケットの内容例
10.MP4のファイルフォーマットの例
【0020】
1.システムの構成例
まず、図1を参照して、本開示の第1の実施形態に係るシステムの概略構成について説明する。図1は、本実施形態に係る、ライブ映像をリアルタイムにエンコードしてアダプティブストリーミング配信するシステムの概要図を示す。送信機100と受信機200は、IPネットワーク250を介して接続されている。なお、送信機100と受信機200は、無線通信ネットワークを介して接続されるものであってもよい。
【0021】
送信機100は、エンコーダ・マルチプレクサ102、バッファ制御部104、通信部106、バッファ108、ダミーデータ生成部110を有して構成される。送信機100のエンコーダ・マルチプレクサ102は、ビデオカメラ等から送られた映像入力をエンコードし、MEPG2−TSもしくはMP4に多重化する。エンコーダ・マルチプレクサ102から出力されたデータは、バッファ制御部104を介してバッファ108に蓄積される。通信部106は、受信機200からのHTTPによるデータ取得要求を待ち受け、データ取得要求を受信すると、要求に応じたデータを、バッファ制御部104を介してバッファ108より取得し、受信機300へ返信する。
【0022】
受信機200は、通信部202と、デコーダ・デマルチプレクサ204を有して構成される。受信機200は、通信部202からデータの取得要求を送信機100へ送信し、要求に応じたデータブロックを取得すると、デコーダ・デマルチプレクサ204へ取得したデータを送る。デコーダ・デマルチプレクサ204は、多重化されたストリームを分離し、デコードしてモニタ等に出力する。
【0023】
なお、図1に示す構成は、ハードウェア(回路)、または、CPU(中央演算処理装置)とこれを機能させるためのソフトウェア(プログラム)から構成することができる。この場合において、そのプログラムは、送信機100または受信機200が備えるメモリなどの記憶部、または外部から接続される光ディスク等の記憶媒体に格納されることができる。
【0024】
2.エンコードしたデータをバッファに蓄積するシーケンスの例
図2は、送信機100において、エンコードしたデータをバッファ108に蓄積するシーケンスを示す模式図である。図2に示すように、バッファ制御部104は、ステップS10において、エンコーダ・マルチプレクサ102にデータを要求し、ステップS12においてデータを取得する。そして、バッファ制御部104は、ステップS14において、取得したデータをバッファ108に書き込む。以降、この処理が繰り返し行われる。
【0025】
3.受信機がデータを取得するシーケンスの例
図3は、受信機200がデータを取得するシーケンスを示す模式図である。先ず、受信機200の通信部202は、ステップS20においてプレイリストの要求を送信機100の通信部106へ送り、ステップS22において、通信部106からプレイリストファイルを取得する。プレイリストファイルには、断片化したファイルのURLリストが記述されている。ステップS24において、通信部202は、プレイリストファイル中のデータブロックAの取得要求(データブロックAのURL)を送信する。
【0026】
データ取得要求を受け取った通信部106は、バッファ制御部104に該当する範囲のデータを要求する(ステップS26)。バッファ制御部104は、該当するデータをバッファ108へ要求し(ステップS28)、バッファ108から該当するデータ読み出して(ステップS30)、通信部106に送る(ステップS32)。通信部106は、バッファ制御部104から送られてきたデータにHTTPレスポンスヘッダを付与して受信機200の通信部202に送る(ステップS34)。通信部202は。デコーダ・マルチプレクサ204にデータを送り(ステップS36)、映像が再生される。受信機200は、データブロックAのダウンロードが終了すると、プレイリストファイル中の次のデータブロックBを取得する(ステップS40以降)。プレイリストファイルは再読み込みすることで更新される。
【0027】
以上のように、アダプティブストリーミングにおいて、断片化されてデータブロック毎に分割されたデータは、受信機200側がプレイリスト中のURLを指定してデータブロック毎に要求することで、データブロック毎に送信機100から送信される。このように、比較的データ長の長いデータを一度に送るのではなく、断片化されたデータブロック事に送ることで、例えばデータの送信中に通信の帯域のビットレートに変化が生じた場合は、受信機200は、適切なビットレートのデータブロックを要求することができる。従って、帯域が不安定になった場合等においても安定してデータを受信することができ、特にライブ映像のデータを受信する場合等に適している。
【0028】
図4は、プレイリストファイル、 データブロック取得要求、データブロック取得応答の例を示す模式図である。図4では、IETF HTTP Live Streamingの場合の例を示している。IETF HTTP Live Streamingは、m3u8形式のプレイリストファイルを用い、データファイルのフォーマットはMPEG2−TSである。このプレイリストでは、8秒毎に断片化された3つのデータブロックが記述されている。1のデータブロックが8秒分のTSパケットを含んだ1ファイルのように扱われている。データの取得はHTTP GETにより行う。
【0029】
5.データ量がバッファ容量の上限に達した場合のシーケンスの例
図5は、送信機100において、エンコードしたデータをバッファ108に蓄積するシーケンスにおいて、データ量がバッファ108の容量の上限に達した場合のシーケンスを示す模式図である。データ量がバッファ108の容量の上限に達する前のシーケンスは図2と同様である。データ量がバッファ108の容量の上限に達すると、バッファ制御部104による書き込み処理がエラーとなるので(ステップS16)、バッファ制御部104は、最も古いデータブロックを削除し(ステップS18)、空いた領域にデータを書き込む(ステップS20)。
【0030】
図6〜図9は、図5の動作を示す模式図である。図6は、図2のシーケンスに従って、バッファ108にデータブロックA〜Dが書き込まれ、データブロックEのTSパケットが書き込まれている様子を示している。
【0031】
図7は、バッファ108にデータブロックA〜Eが書き込まれ、データ量がバッファ108の容量の上限に達した場合を示している。この場合、バッファ108にTSパケットを書き込むことができなくなるため、バッファ制御部104による書き込み処理がエラーとなる。
【0032】
図8は、バッファ制御部104による書き込み処理がエラーとなった後、バッファ制御部104が、バッファ108内の最も古いデータブロックAを廃棄した状態を示している。
【0033】
図9は、バッファ制御部104が、バッファ108内の最も古いデータブロックAを廃棄した後、空いたデータ領域にデータブロックFのTSパケットを書き込んでいる様子を示している。図9に示すように、データブロックAを廃棄したことにより、次のデータブロックFを書き込むことが可能となる。
【0034】
6.データブロックの取得中に、取得中のデータブロックがバッファから削除されてしまった場合のデータ取得シーケンスの例
図10は、データブロックの取得中に、取得中のデータブロックがバッファ108から削除されてしまった場合のデータ取得シーケンスを示す模式図である。図10に示すように、データブロックAについては、全てのデータが受信機200に送られる。しかし、データブロックBについては、2つ目のデータをバッファ108から取得している最中に、図5のようにデータブロックBがバッファ108から廃棄されてしまい、バッファ制御部104はバッファ108からデータブロックBの以降のデータを取得することができない(ステップS42)。
【0035】
このように、図10の例では、データブロックBのデータを取得中に、データブロックBが図6〜図8で説明したように破棄されてしまい、これ以降のデータを受信機200に送ることができない事態が生じている。受信機200は、データブロックBの取得要求を送信した直後に、図4に示したデータブロック取得応答を送信機100から受信するため、データブロックBのコンテンツのデータ長(Content−Length)を認識している。このため、受信機200は、データブロックBに関し、Content−Lengthのサイズを全てダウンロードするまでは、次のデータブロックを取得する処理を行わないため、映像データがこれ以上ダウンロードされないこととなり、ダウンロードが中止してしまう。
【0036】
このため、本実施形態では、図10のような事態が生じた場合に、ダミーデータを生成して以降のダウンロードを引き続き行うことを可能としている。
【0037】
7.ダミーデータを生成してダウンロード継続させるシーケンスの例
図11は、本実施形態における、ダミーデータを生成してダウンロード継続させるシーケンスを示す模式図である。図11において、ステップS42までの処理は図10と同様である。
【0038】
バッファ制御部104は、破棄されたデータを取得しようとした際にデータの読込に失敗すると(ステップS42)、次のステップS44において、不足しているサイズ分のダミーデータを生成するように、ダミーデータ生成部110に対して要求する。ダミーデータ生成部110は、この要求を受けて、ダミーデータを生成する(ステップS46)。生成されたダミーデータは、バッファ制御部104に送られ(ステップS48)、通信部106を介して受信機200の通信部202に送られる(ステップS50,S52)。
【0039】
これにより、受信機200は、図4に示したContent−Lengthの分のデータを受信することができる。そして、受信機200は、Content−Length分のデータを受け取ると、次のデータブロックCのダウンロードを開始する(ステップS54)。これにより、バッファ108からデータを取得している最中に、そのデータブロックのデータが廃棄されてしまった場合においても、ダウンロードが停止することがなく、以降のデータをダウンロードすることが可能となる。
【0040】
8.ダミーデータを生成する動作について
図12〜図14は、ダミーデータを生成する動作を示す模式図である。図12は、バッファ制御部104が、バッファ108内のデータブロックAのTSパケットを読み込んでいる様子を示している。
【0041】
図13は、図12に示す状態から、データブロックAが廃棄された様子を示している。この場合、バッファ制御部104は、廃棄された後はデータブロックAのTSパケットを読み込むことができず、エラーが発生する。
【0042】
図14は、図13のエラー発生により、バッファ制御部104が、ダミーデータ生成部110にダミーデータの生成要求を送った状態を示している。これにより、ダミーデータ生成部110がダミーデータを生成し、生成されたダミーデータは、バッファ制御部104へ送られ、更にバッファ制御部104、通信部106を介して受信機200へ送られる。
【0043】
図15は、IETF HTTP Live Streamingにおける、ダミーデータの概要を示す模式図である。図15では、バッファ104のデータブロックAが廃棄されたことにより、ステップS42において、TSパケット300,302,304の送信中にデータブロックが破棄されている。1つ目、2つ目のTSパケット300,302については受信機200側に送信されるものの、3つ目のTSパケット304が途中で分断され、TSパケットは一部のみが送信されている。ダミーデータ400は、その分断されたTSパケット304の送信されなかった分を補完するデータ402と、未送信のTSパケット分のNULLパケット404(4つ目のTSパケットに相当)から構成され、通信部106を介して受信機200の通信部202へ送信される。
【0044】
IETF HTTP Live Streamingにおける,生成するダミーデータのサイズを求める式は以下の通りである。
データブロックサイズ=TSパケットサイズ×パケット数
ダミーデータとして送信するNULLパケットの数=(データブロックサイズ−送信済データサイズ)/TSパケットサイズ
(断片化したTSを補完するダミーデータのサイズ=(データブロックサイズ−送信済データサイズ)÷TSパケットサイズ)
【0045】
データブロックは、ある一定数のTSパケットで構成され、1つのTSパケットは、188バイト(タイムスタンプつきTSの場合は192バイトである。
従って、データブロックのサイズは、
188バイト(タイムスタンプつきTSの場合は192バイト)×パケット数
となる。
【0046】
ダミーデータとして送るNULLパケット404の数は 、
(データブロックサイズ−送信済データサイズ)/TSパケットサイズ
であり、断片化したTSパケットを補完するデータ402のサイズは、その余りである。
【0047】
9.ダミーデータとして送信するTSパケットの内容例
図16は、ダミーデータとして送信するTSパケット(NULLパケット404)の内容例を示す模式図である。NULLパケット404の各データは、例えば無効なデータに設定される。タイムスタンプつきTSの場合、TS(タイムスタンプ)は0とする。また、同期ワードは(0x47)とする。
【0048】
また、図16に示すトランスポートエラーインジケータA(1bit)としては、エラーを示す1を設定し、ペイロードユニットスタートインジケータB(1bit)、トランスポート優先度C(1bit)にはそれぞれ0を設定する。また、パケット識別子(13bit)には、NULLパケットを示す(0x1ff)を設定する。トランスポートスクランブルコントロールD(2bit)、アダプテーションフィールドコントロールE(2bit)、巡回カウンターF(4bit)にもそれぞれ0を設定し、ペイロード(184byte)は、ダミーデータ(たとえば0x00や0xFF)に設定する。断片化したTSパケットを補完するダミーデータ400は、このNULLパケット404の一部から生成する。通信部106は、バッファ104から読み出したデータ量を検知できるため、各データブロックの送信済のデータ量を検知できる。従って、通信部106は、3つ目のTSパケット304の全データが送信できなかったこと、及び3つ目のTSパケット304が何ビットまで送信されたかを検知することができる。各TSパケットは、TS(タイムスタンプ)、同期ワード、トランスポートエラーインジケータA、ペイロードユニットスタートインジケータBの順で送信されるため、通信部106は、3つ目のTSパケット304がどの部分まで送信されたかを検知できる。ダミーデータ生成部110は、これらの情報に基づいて、上述した計算式により、TSパケット304の未送信分のデータ量に相当するダミーデータ400を生成するとともに、このNULLパケット404を生成する。
【0049】
10.MP4のファイルフォーマットの例
Adobe HTTP Dynamic Streamingや、Mirosoft HTTP Smooth Streamingの場合、プレイリストファイルの形式がそれぞれ異なるが、同様の方法でダミーデータ生成を行うことができる。
【0050】
これらの方式では、データファイルのフォーマットは、MPEG2−TSではなくMP4となるが、MPEG2−TSの場合と同様に、送信されるべきデータ長と、送信済みデータ量とから、未送信分のデータ量を算出することができる。従って、未送信分のデータ量に基づいてダミーデータを生成することが可能である。図17は、MP4のファイルフォーマットを簡略化して示す模式図である。1つのMP4ファイルは、主にMOOV(Movie Metadata)とMOOF(Movie Fragment)で構成される。上述したIETF HTTP Live Streamingの場合、1つのデータブロックが1つのファイルであるように扱われていたが、MP4を利用する方式の場合は、1データブロックが1つのMOOF(Movie Fragment)に対応するようになる。MOOFは可変長であるが、 (データブロック長−送信済データ長)のデータサイズのダミーデータ(たとえば0x00や0xFF)をダミーデータ生成部110で生成することによって、通信部106からダミーデータを送信することができる.
【0051】
以上説明したように本実施形態によれば、送信機100側のバッファリングなどで吸収しきれずにエラーとなった場合においても、通信が終了することがなく、通信を継続させることが可能となる。
【0052】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0053】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)複数のデータブロックが蓄積されるバッファと、
前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する送信部と、
を備える、通信装置。
【0054】
(2)前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に相当するダミーデータを生成するダミーデータ生成部を備え、
前記送信部は、前記バッファから読み出された前記データブロックを送信するとともに、前記ダミーデータが生成された場合は、廃棄により送信できなかったデータブロックの前記部分に代えて前記ダミーデータを送信する、前記(1)に記載の通信装置。
【0055】
(3)前記データはMPEG2−TS形式であり、所定数のTSパケットが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、途中で分断されたTSパケットの未送信分に相当するデータと、未送信のTSパケットとを含む前記ダミーデータを生成する、前記(2)に記載の通信装置。
【0056】
(4)前記データはMP4形式であり、MOOFが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、前記MOOFの未送信分に相当するデータを前記ダミーデータとして生成する、前記(3)に記載の通信装置。
【0057】
(5)複数のデータブロックが蓄積されるバッファと、
送信要求に応じて前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する送信部と、
を備える、通信装置と、
前記送信要求を前記送信装置に送信し、前記送信部から送信された前記データブロック及び前記ダミーデータを受信する受信装置と、
を備える、通信システム。
【0058】
(6)複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出すことと、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信することと、
を備える、通信方法。
【0059】
(7)複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出す手段、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に代えてダミーデータを送信する手段、
としてコンピュータを機能させるためのプログラム。
【符号の説明】
【0060】
100 送信機
104 バッファ制御部
106 通信部
108 バッファ
110 ダミーデータ生成部
200 受信機
【特許請求の範囲】
【請求項1】
複数のデータブロックが蓄積されるバッファと、
前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、
を備える、通信装置。
【請求項2】
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に相当するダミーデータを生成するダミーデータ生成部を備え、
前記送信部は、前記バッファから読み出された前記データブロックを送信するとともに、前記ダミーデータが生成された場合は、廃棄により送信できなかったデータブロックの前記部分に代えて前記ダミーデータを送信する、請求項1に記載の通信装置。
【請求項3】
前記データはMPEG2−TS形式であり、所定数のTSパケットが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、途中で分断されたTSパケットの未送信分に相当するデータと、未送信のTSパケットとを含む前記ダミーデータを生成する、請求項2に記載の通信装置。
【請求項4】
前記データはMP4形式であり、MOOFが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、前記MOOFの未送信分に相当するデータを前記ダミーデータとして生成する、請求項2に記載の通信装置。
【請求項5】
複数のデータブロックが蓄積されるバッファと、
送信要求に応じて前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、
を備える、通信装置と、
前記送信要求を前記送信装置に送信し、前記送信部から送信された前記データブロック及び前記ダミーデータを受信する受信装置と、
を備える、通信システム。
【請求項6】
複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出すことと、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信することと、
を備える、通信方法。
【請求項7】
複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出す手段、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する手段、
としてコンピュータを機能させるためのプログラム。
【請求項1】
複数のデータブロックが蓄積されるバッファと、
前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、
を備える、通信装置。
【請求項2】
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの前記部分に相当するダミーデータを生成するダミーデータ生成部を備え、
前記送信部は、前記バッファから読み出された前記データブロックを送信するとともに、前記ダミーデータが生成された場合は、廃棄により送信できなかったデータブロックの前記部分に代えて前記ダミーデータを送信する、請求項1に記載の通信装置。
【請求項3】
前記データはMPEG2−TS形式であり、所定数のTSパケットが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、途中で分断されたTSパケットの未送信分に相当するデータと、未送信のTSパケットとを含む前記ダミーデータを生成する、請求項2に記載の通信装置。
【請求項4】
前記データはMP4形式であり、MOOFが前記データブロックを構成し、
前記ダミーデータ生成部は、前記データブロックの送信中に前記データブロックが廃棄された場合は、前記MOOFの未送信分に相当するデータを前記ダミーデータとして生成する、請求項2に記載の通信装置。
【請求項5】
複数のデータブロックが蓄積されるバッファと、
送信要求に応じて前記データブロックを送信するため、前記バッファから前記データブロックを読み出すバッファ制御部と、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する送信部と、
を備える、通信装置と、
前記送信要求を前記送信装置に送信し、前記送信部から送信された前記データブロック及び前記ダミーデータを受信する受信装置と、
を備える、通信システム。
【請求項6】
複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出すことと、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信することと、
を備える、通信方法。
【請求項7】
複数のデータブロックが蓄積されたバッファから、前記データブロックを送信するため、前記データブロックを読み出す手段、
前記データブロックの送信中に前記データブロックが前記バッファから廃棄された場合に、廃棄により送信できなかったデータブロックの部分に代えてダミーデータを送信する手段、
としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−257041(P2012−257041A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−128358(P2011−128358)
【出願日】平成23年6月8日(2011.6.8)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成23年6月8日(2011.6.8)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]