(57)【特許請求の範囲】
【請求項１】
複数のセグメントから構成されるコンテンツが時系列に連結されて構成される番組を、セグメントごとに受信してストリーミング再生を行う受信装置であって、
セグメントを取得するセグメント取得部と、
前記セグメントを、セグメント開始時刻及び再生継続時間を対応付けて保存するバッファと、
前記バッファに保存されたコンテンツを構成する全セグメントの時間尺が、前記コンテンツの尺を示すメタ情報から得られるコンテンツ尺よりも短い場合に、再生継続時間が前記コンテンツ尺及び前記全セグメントの時間尺の差分以上のフィラーセグメントを生成するフィラーセグメント生成部と、
前記フィラーセグメントを前記コンテンツの最後のセグメントに続けて前記バッファに挿入するバッファ制御部と、
を備えることを特徴とする受信装置。
【請求項２】
前記フィラーセグメント生成部は、前記バッファに挿入されたセグメントのメディア形式が映像の場合には、前記フィラーセグメントを白画像又は黒画像をエンコードしたセグメントとすることを特徴とする、請求項１に記載の受信装置。
【請求項３】
前記フィラーセグメント生成部は、前記バッファに挿入されたセグメントのメディア形式が音声の場合には、前記フィラーセグメントを、無音をエンコードしたセグメントとすることを特徴とする、請求項１に記載の受信装置。
【請求項４】
前記フィラーセグメント生成部は、予め用意されたテンプレートセグメントを連結することにより前記フィラーセグメントを生成することを特徴とする、請求項１から３のいずれか一項に記載の受信装置。
【請求項５】
複数のセグメントから構成されるコンテンツが時系列に連結されて構成される番組をセグメントごとに受信してストリーミング再生を行う受信装置におけるバッファ管理方法であって、
セグメントを取得するステップと、
前記セグメントを、セグメント開始時刻及び再生継続時間を対応付けてバッファに保存するステップと、
前記バッファに保存されたコンテンツを構成する全セグメントの時間尺が、前記コンテンツの尺を示すメタ情報であるコンテンツ尺よりも短い場合に、再生継続時間が前記コンテンツ尺及び前記全セグメントの時間尺の差分以上のフィラーセグメントを生成するステップと、
前記フィラーセグメントを前記コンテンツの最後のセグメントに続けて前記バッファに挿入するステップと、
を含むことを特徴とするバッファ管理方法。
【請求項６】
コンピュータを、請求項１から４のいずれか一項に記載の受信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセグメントから構成されるコンテンツをセグメントごとに受信してストリーミング再生を行う受信装置、該受信装置のバッファ管理方法、及び該受信装置として機能させるためのプログラムに関する。
【背景技術】
【０００２】
昨今のインターネットにおけるストリーミング動画配信では、専用のサーバと専用のプロトコルによるストリーミング配信方式から、汎用的なＷｅｂサーバによりＨＴＴＰプロトコルを用いてストリーミング配信する方式への移行が進んでおり、多くのデバイス向けの配信において主流となっている。このようなＨＴＴＰプロトコルによるストリーミング配信方式（アダプティブストリーミング）としては、ＩＴベンダによる独自技術が普及している他、これらストリーミング方式の統一を意図した国際標準規格であるＭＰＥＧ−ＤＡＳＨ（ＩＳＯ／ＩＥＣ２３００９−１）が策定された。
【０００３】
いずれの技術も基本的なコンセプトは同様であり、Ｗｅｂサーバには動画コンテンツを一つ又は複数の品質（画面サイズやビットレート）でエンコードしたストリームをそれぞれ数秒から数十秒程度のファイルに分割したもの（セグメント）と、それらの動画コンテンツの属性やＵＲＬを記述したマニフェストファイルを用意する。受信装置はマニフェストファイルから当該受信装置の画面サイズや伝送路のネットワーク帯域の状態等を考慮して、適時品質を選択して次々とセグメントを受信し、１本の動画コンテンツにつなぎ合わせて再生するものである（例えば、非特許文献１参照）。
【０００４】
図５にアダプティブストリーミングの一例を示す。図５では、映像が複数品質でエンコードされ、それぞれの品質ごとに数秒単位に分割されたセグメントが生成されている。この例では、エンコーダは映像を低品質のセグメント１〜４、中品質のセグメント１’〜４’、及び高品質のセグメント１”〜４”に分割している。マニフェストファイルには、セグメントのＵＲＬや、それぞれの品質ごとのビットレートや画像サイズ等の属性情報が登録される。セグメント及びマニフェストファイルはＷｅｂサーバに供給される。
【０００５】
受信装置は、Ｗｅｂサーバからマニフェストファイルを受信し、マニフェストファイルからビットレートやセグメントの構成を把握し（ステップＡ）、受信装置の画面サイズやネットワークの受信帯域の状況をもとにセグメント単位で品質を選択し、ＨＴＴＰプロトコルにより受信する（ステップＢ）。続いて、受信したセグメントをマニフェストファイルに従って順番通りにつなぎ合わせて再生する（ステップＣ）。このようにステップＢ，Ｃの処理を繰り返すことにより、一連のコンテンツを受信し再生を継続することができる。
【０００６】
受信装置においては、多くのデバイスで普及が進むＨＴＭＬ５ブラウザを利用することにより、マルチデバイス（ＰＣ、テレビ受信機、タブレット装置等）に対応可能な視聴環境を構築することができる。
【０００７】
しかし、従来ＨＴＭＬ５ブラウザで動画を再生するための機能であるビデオ要素（ｖｉｄｅｏタグ）では、ソースとしてメディアファイルを参照することしかできなかったため、このようなアダプティブストリーミングの視聴を実現するためには、別途ブラウザプラグインのインストールが必要だった。そのため、どのブラウザでも共通で利用できる視聴環境を構築することが困難だった。このような状況から、ＨＴＭＬ５ブラウザのビデオ要素（ｖｉｄｅｏタグ）及びJavascript（登録商標）によってアダプティブストリーミングの視聴を実現するための機能として、Ｗｅｂで利用される技術の標準化をすすめる国際的な非営利団体であるＷ３ＣにおいてＭＳＥ（Media Source Extensions）の規格化が進んでいる（例えば、非特許文献２参照）。
【０００８】
ＭＳＥを用いることにより、ビデオ要素はソースとしてバッファを参照することが可能となる。そのバッファへはJavascriptによって受信したセグメントを挿入することができるようになることから、多様なアダプティブストリーミングの視聴がＨＴＭＬ５のビデオ要素とJavascriptにより実現可能となる。
【０００９】
ここで、図６を参照してＭＳＥのバッファモデルについて説明する。図６はＭＳＥのバッファモデルの一例を示す図である。バッファ（SourceBuffer）は、セグメント開始時刻と再生継続時間に対応付けてセグメントを管理する。図６では、斜線の入ったブロックがセグメントを示しており、セグメント単位の再生開始時刻であるセグメント開始時刻が０秒かつ再生継続時間が５秒、セグメント開始時刻が５秒かつ再生継続時間が５秒、及びセグメント開始時刻が１５秒かつ再生継続時間が５秒の３つのセグメントがバッファに挿入されている。この時、バッファのバッファリング範囲（buffered属性）は０〜１０秒、１５〜２０秒となる。
【００１０】
また、図７に示すように、既にセグメントが挿入されている範囲に再生時刻が重なる別のセグメントを挿入して上書きすることも可能である。図７では、図６に示した例に、新しいセグメントとして、セグメント開始時刻が１２秒かつ再生継続時間が１０秒のセグメントを挿入した例を示している。その結果、１２秒から２２秒の範囲が新しいセグメントに差し替わるとともに、バッファリング範囲も０〜１０秒、１２〜２２秒に更新されている。
【００１１】
動画のストリーミングサービスの提供方法として、一つの番組の途中にＣＭ等の動画クリップを挿入することや、放送のように編成に従って番組を次々と提供すること等、時系列に連結されたコンテンツを切り替えながら視聴するサービス形態が考えられる。ＭＰＥＧ−ＤＡＳＨにおいては、このようなサービスを可能とするマニフェストファイルの記述方法が定義されている。
【００１２】
図８にＭＰＥＧ−ＤＡＳＨのＭＰＤ（Media Presentation Description）形式のマニフェストファイルの概念図を示す。ＭＰＤ形式ではPeriod，AdaptationSet，Representationの順に階層構造となっている。Periodはマニフェストファイルを時間方向に区切った一区画（一つのコンテンツ）を示しており、図８の例では、それぞれのコンテンツ尺（duration）が３００秒、３０秒、３００秒のPeriodが連結されていることを示している。Periodは一つ又は複数のAdaptationSetから構成される。
【００１３】
AdaptationSetはメディアのコンポーネント（映像、音声、テキスト等）の情報を示しており、同じメディアでパラメータ（ビットレートや画面サイズ、音声のチャンネル数等）の異なる複数のコンポーネントを含むことができる。AdaptationSetに含まれるそれぞれのメディアのコンポーネントの情報はRepresentationで示される。Representationは一つ又は複数のセグメントで構成される。
【００１４】
このようなマニフェストファイルとすることで、再生時刻に従って、時系列に連結されたコンテンツを形成するセグメント（図８のInitialization Segment，Media Segment）を順次受信することが可能となる。
【００１５】
また、ストリーミング再生におけるコンテンツの切り替えに関しては、バッファ量が不足した場合に、再生コンテンツの区切りが良い時点において、再生するコンテンツを切り替えることができる情報処理装置、及び情報処理方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０１１−７７５９７号公報
【非特許文献】
【００１７】
【非特許文献１】“次世代動画配信技術「ＭＰＥＧ−ＤＡＳＨ」技術概要と標準化・関連技術動向”，映像情報メディア学会誌，Vol.67, No.2, 2013, p.109-115
【非特許文献２】Ｗ３Ｃ、“Media Source Extensions W3C Candidate Recommendation 17 July 2014”、[2015年11月6日検索]、インターネット<URL:http://www.w3.org/TR/media-source/>
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、上述した時系列に連結されたコンテンツを再生しようとすると、コンテンツが異なるエンコーダにより生成されていた場合等に、Periodのdurationの値よりもコンテンツを構成する全セグメントの時間尺がわずかに短くなることがある。すると、コンテンツの切り替え時（Periodの変わり目）にバッファ内に時間的な隙間が生じてしまう。
【００１９】
図９にバッファ内に時間的な隙間が生じる例を示す。図９では切り替え前のPeriodをPeriod＃１、切り替え後のPeriodをPeriod#2としており、Period#1のdurationパラメータが３００秒、Period#1の全セグメントの合計の時間尺が２９９．９秒の例を示している。この場合、Period#1とPeriod#2の連結部分においてバッファに０．１秒の隙間が生じてしまう。このような場合に、Periodの変わり目で再生が停止してしまうおそれがあった。
【００２０】
また、特許文献１には、ストリーミング再生におけるコンテンツの切り替えに関して、バッファ量が不足した場合に、再生コンテンツの区切りが良い時点において、再生するコンテンツを切り替えることが記載されているが、上記課題のようなバッファの細部の状況については触れておらず、課題の解決に必ずしも利用できる手法ではなかった。
【００２１】
かかる事情に鑑みてなされた本発明の目的は、時系列に連結されたコンテンツから構成される番組をストリーミング再生する際に、コンテンツの切り替えをスムーズに行うことができる受信装置、バッファ管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００２２】
上記課題を解決するため、本発明に係る受信装置は、複数のセグメントから構成されるコンテンツが時系列に連結されて構成される番組を、セグメントごとに受信してストリーミング再生を行う受信装置であって、セグメントを取得するセグメント取得部と、前記セグメントを、セグメント開始時刻及び再生継続時間を対応付けて保存するバッファと、前記バッファに保存されたコンテンツを構成する全セグメントの時間尺が、前記コンテンツの尺を示すメタ情報から得られるコンテンツ尺よりも短い場合に、再生継続時間が前記コンテンツ尺及び前記全セグメントの時間尺の差分以上のフィラーセグメントを生成するフィラーセグメント生成部と、前記フィラーセグメントを前記コンテンツの最後のセグメントに続けて前記バッファに挿入するバッファ制御部と、を備えることを特徴とする。
【００２３】
さらに、本発明に係る受信装置は、前記フィラーセグメント生成部は、前記バッファに挿入されたセグメントのメディア形式が映像の場合には、前記フィラーセグメントを白画像又は黒画像をエンコードしたセグメントとすることを特徴とする。
【００２４】
さらに、本発明に係る受信装置は、前記フィラーセグメント生成部は、前記バッファに挿入されたセグメントのメディア形式が音声の場合には、前記フィラーセグメントを、無音をエンコードしたセグメントとすることを特徴とする。
【００２５】
さらに、本発明に係る受信装置は、前記フィラーセグメント生成部は、予め用意されたテンプレートセグメントを連結することにより前記フィラーセグメントを生成することを特徴とする。
【００２６】
また、上記課題を解決するため、本発明に係るバッファ管理方法は、複数のセグメントから構成されるコンテンツが時系列に連結されて構成される番組をセグメントごとに受信してストリーミング再生を行う受信装置におけるバッファ管理方法であって、セグメントを取得するステップと、前記セグメントを、セグメント開始時刻及び再生継続時間を対応付けてバッファに保存するステップと、前記バッファに保存されたコンテンツを構成する全セグメントの時間尺が、前記コンテンツの尺を示すメタ情報であるコンテンツ尺よりも短い場合に、再生継続時間が前記コンテンツ尺及び前記全セグメントの時間尺の差分以上のフィラーセグメントを生成するステップと、前記フィラーセグメントを前記コンテンツの最後のセグメントに続けて前記バッファに挿入するステップと、を含むことを特徴とする。
【００２７】
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを、上記受信装置として機能させることを特徴とする。
【発明の効果】
【００２８】
本発明によれば、セグメント開始時刻と再生継続時間の情報に対応つけてセグメントを管理するバッファを用いて時系列に連結されたコンテンツから構成される番組のストリーミング再生を行う受信装置において、マニフェストにおいて設定された個々のコンテンツのコンテンツ尺よりも、コンテンツを構成する全セグメントの時間尺の方が短い場合でも、コンテンツ切り替えがスムーズに行えることにより安定した視聴が可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係る受信装置の構成例を示すブロック図である。
【図２】本発明の一実施形態に係る受信装置が取得するマニフェストファイルの一例を示す図である。
【図３】本発明の一実施形態に係る受信装置が生成するフィラーセグメントの一例を示す図である。
【図４】本発明の一実施形態に係る受信装置のバッファ管理方法を示すフローチャートである。
【図５】従来のアダプティブストリーミングの一例を示す図である。
【図６】従来のＭＳＥのバッファモデルの一例を示す図である。
【図７】従来のＭＳＥのバッファモデルにおいて、セグメントをバッファに上書き挿入する例を示す図である。
【図８】従来のマニフェストファイルの概念を示す図である。
【図９】従来の課題を説明する図である。
【発明を実施するための形態】
【００３０】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。以下に説明する本実施形態では一例として、マニフェストファイルをＭＰＥＧ−ＤＡＳＨ（ＩＳＯ／ＩＥＣ２３００９−１）のＭＰＤ（Media Presentation Description）形式とし、セグメントをＩＳＯＢＭＦＦ（ＩＳＯ／ＩＥＣ１４４９６−１２）形式とする。また、再生時刻のうち、セグメントの先頭に該当する時刻を「セグメント開始時刻」と称する。
【００３１】
図２にマニフェストファイルの一例（抜粋）を示す。図２の例ではコンテンツ尺（duration）が３分のPeriodが二つ連結されており、それぞれのPeriodには、AdaptationSetが一つずつ存在し、さらにそれぞれのAdaptationSetにはRepresentationが一つずつ存在している。
【００３２】
ある再生時刻におけるセグメントのＵＲＬは、マニフェストファイルの情報から求めることができる。図２の例をもとに説明する。２行目のstartの値から、Periodの開始時刻は０である。４行目のtimescaleの値から、AdaptationSetのタイムスケール（１秒間の目盛数）は、90000である。６行目のdurationの値から、セグメントの継続時間は、450000である。６行目のstartNumberの値から、セグメントの開始番号は１である。以上から、ある再生時刻ｔ（秒）に対するセグメント番号は以下の式（１）で算出できる。なお、少数以下は切り捨てる。
Number＝(t-start)×timescale/duration＋startNumber                    （１）
【００３３】
次に、６行目のmediaの値から、セグメントのＵＲＬのテンプレート“content_v_$Number$.mp4”を取得し、$Number$を先に算出したNumber値に差し替えることにより、セグメントのＵＲＬを取得することができる。
【００３４】
なお、上記例は図２の一つ目のPeriodを元に説明したが、二つ目のPeriodについても同様に算出できる。また、本実施形態ではＭＰＤファイル全体により再生される情報を「番組」と称し、個々のPeriodにより再生される情報を「コンテンツ」と称する。すなわち、番組はコンテンツが時系列に連結されて構成されたものである。
【００３５】
（受信装置の構成）
次に、本発明の一実施形態に係る受信装置の構成例について、図１を参照して説明する。
【００３６】
受信装置１は、インターネットを介して配信サーバ２と接続され、配信サーバ２から複数のセグメントにより構成されるコンテンツをセグメントごとに受信し、ストリーミング再生を行う。
【００３７】
配信サーバ２は、受信装置１によって指定されたＵＲＬのマニフェストファイルやセグメントを配信するサーバであり、例えば一般的なＷｅｂサーバとすることができる。
【００３８】
図１に示す受信装置１は、通信Ｉ／Ｆ１０と、マニフェスト取得部１１と、セグメント取得部１２と、フィラーセグメント生成部１３と、バッファ１４と、バッファ制御部１５と、再生制御部１６と、再生制御ユーザＩ／Ｆ１７と、再生部１８と、表示部１９とを備える。
【００３９】
再生制御ユーザＩ／Ｆ１７は、ユーザの操作によって、再生命令及び停止命令を再生制御部１６に出力する。再生命令には再生開始時刻を示す再生開始時刻情報が含まれる。
【００４０】
再生制御ユーザＩ／Ｆ１７は、再生開始・停止ボタンを用意するとともに、コンテンツの開始、終了時刻、及び再生制御部１６から入力された現在再生時刻情報をもとに、現在の再生時刻（再生位置）をグラフィカルに表示してもよい。例えば、再生画面の下部にコンテンツの開始時刻を左端、終了時刻を右端とする横長の棒状で表示し、それと重なるようにつまみ状の操作部分を配置し、つまみ上の操作部分を再生が進むにつれて左端から右端に移動させることによって、ユーザは再生時間全体のうち今どの部分を再生しているのかを一目で把握することができる。また、このつまみをマウス等のユーザ操作によって動かすことにより、任意の再生時刻を指定できるようにしてもよい。
【００４１】
再生制御部１６は、再生制御ユーザＩ／Ｆ１７から停止命令を入力すると、再生部１８に停止を指示する。
【００４２】
また、再生制御部１６は、再生制御ユーザＩ／Ｆ１７から再生命令を入力すると、再生命令から再生開始時刻を抽出し、再生開始時刻情報をバッファ制御部１５に出力する。そして、再生制御部１６は、バッファ制御部１５からバッファ規定値（例えば５秒）を超えたことを示す通知を入力したら、再生部１８に再生開始時刻情報を出力するとともに、再生開始を指示する。
【００４３】
また、再生制御部１６は、現在の再生状態（再生中、停止中）、及び再生部１８から入力された現在再生時刻情報を再生制御ユーザＩ／Ｆ１７に出力する。
【００４４】
マニフェスト取得部１１は、アプリケーション起動時又は番組選択時に、配信サーバ２から所望の番組のマニフェストファイル（ＭＰＤファイル）を通信Ｉ／Ｆ１０を介して取得する。そして、マニフェストファイルをもとにセグメント開始時刻及びセグメントのＵＲＬを対応付けたセグメントＵＲＬリストを生成し、セグメント取得部１２及びバッファ制御部１５に出力する。
【００４５】
バッファ制御部１５は、再生制御部１６から入力された再生開始時刻情報、及びバッファ１４から入力されたバッファリング範囲（バッファ済みセグメント範囲）情報に基づき、取得対象のセグメントのセグメント開始時刻を決定する。そして、マニフェスト取得部１１から入力されたセグメントＵＲＬリストから、セグメント開始時刻に対応付けられたセグメントのＵＲＬを抽出し、セグメント取得部１２に出力する。また、バッファ制御部１５は、セグメント取得部１２からセグメントが入力されると、該セグメントをバッファ１４に挿入する。
【００４６】
セグメント取得部１２は、バッファ制御部１５から入力された取得対象のセグメントのＵＲＬに基づいて対応するセグメントを取得し、バッファ制御部１５に出力する。具体的には、セグメントのＵＲＬを含むセグメント要求（リクエスト）を生成して通信Ｉ／Ｆ１０を介して配信サーバ２に送信し、配信サーバ２から通信Ｉ／Ｆ１０を介して該要求に対するレスポンスとして対応するセグメントを取得する。なお、セグメント取得部１２は、バッファ制御部１５からセグメント開始時刻を入力し、セグメント取得部１２がセグメントＵＲＬリストからセグメント開始時刻に対応付けられたセグメントのＵＲＬを抽出するようにしてもよい。
【００４７】
バッファ１４は、バッファ制御部１５からセグメントを入力し、該セグメントを、セグメント開始時刻及び再生継続時間を対応付けて保存する。
【００４８】
また、バッファ１４は、バッファリング範囲情報をバッファ制御部１５に出力する。ここで、バッファリング範囲情報とは、バッファ１４にコンテンツのセグメントが挿入されている範囲を示す情報のことであり、例えば現在の保存中の全セグメントのセグメント開始時刻及び再生継続時間の情報とする。
【００４９】
また、バッファ１４は、再生部１８から要求されたセグメントを、順次再生部１８に出力する。
【００５０】
再生部１８は、再生制御部１６から停止命令を入力した場合には、再生を停止する。
【００５１】
また、再生部１８は、再生制御部１６から再生開始時刻情報を含む再生命令を入力すると、再生開始時刻に基づいてセグメントを順次バッファ１４から入力し、該入力したセグメントをセグメントのメディアの形式（映像、音声、テキスト等）に従ってデコードし、表示部１９に出力する。再生部１８は、再生とともに更新される再生時刻の情報である現在再生時刻情報を再生制御部１６に出力する。
【００５２】
表示部１９は、再生部１８から入力されたデコード済みのメディアデータをそのメディアの形式に従って表示する。
【００５３】
以下に、フィラーセグメントの生成について説明する。
【００５４】
バッファ制御部１５は、バッファ１４に挿入したセグメントが現在再生中のピリオド（Period）の最後のセグメントであった場合には、全セグメントの時間尺（バッファリング範囲の最大値）と、ピリオドの終了時刻を比較する。ここで、ピリオドの終了時刻は、ピリオドの開始時刻（start）にコンテンツ尺を加算した時刻である。コンテンツ尺は、コンテンツの尺を示すメタ情報（duration）から得られる。ピリオドの開始時刻を０とすると、ピリオドの終了時刻とコンテンツ尺は同一である。
【００５５】
バッファ制御部１５は、バッファ１４に保存されたコンテンツを構成するバッファリング範囲の最大値がピリオドの終了時刻より小さい場合、すなわち全セグメントの時間尺がコンテンツ尺よりも短い場合には、バッファリング範囲の最大値を挿入開始時刻、ピリオド終了時刻とバッファリング範囲の最大値との差分を隙間時間と決定し、挿入開始時刻及び隙間時間を示すフィラー情報をフィラーセグメント生成部１３に出力する。また、バッファ制御部１５は、フィラーセグメント生成部１３からフィラーセグメントが入力されると、該フィラーセグメントをコンテンツの最後のセグメントに続けてバッファ１４に挿入する。
【００５６】
フィラーセグメント生成部１３は、バッファ制御部１５からフィラー情報を入力すると、挿入開始時刻から始まり再生継続時間が隙間時間以上のフィラーセグメントを生成し、バッファ制御部１５に出力する。ここで、フィラーセグメントは、例えば、セグメントのメディア形式が映像の場合には白画像又は黒画像をエンコードしたデータとする。セグメントのメディア形式が音声の場合には無音をエンコードしたデータとする。フィラーセグメントの再生継続時間が隙間時間以上であれば、次のピリオドのセグメントをフィラーセグメントに上書きすることで、ピリオドの変わり目における隙間をなくし、ピリオドの変わり目で再生が停止することを防止することができる。
【００５７】
また、フィラーセグメント生成部１３は、データサイズが小さいメディアデータを予めセグメント化してテンプレートとして用意しておき、フィラー情報をもとに、テンプレートのパラメータを差し替えたデータとすることができる。フィラーセグメントのテンプレートは、受信装置１に記憶しておくこともできるし、コンテンツ再生開始時に、例えば配信サーバ２から取得するようにしてもよい。
【００５８】
図３を参照して、フィラーセグメントの一例を説明する。図３は、フィラーセグメントを、ＩＳＯＢＭＦＦ（ＩＳＯ／ＩＥＣ１４４９６−１２）形式とした場合の一例である。なお、一つのセグメントにMovie Fragmentを複数含むことも可能であるが、本例では一つとする。
【００５９】
本発明に関連する一部のパラメータについて説明する。sidxに含まれるtimescaleはタイムスケールを表している。earliest_presentation_timeは、このセグメントの最初のMovie Fragmentの最初のメディアデータの再生時刻を示している。subsegment_durationは、このMovie Fragmentごとの再生継続時間を示している。また、Movie Fragment内の、moof/traf/tfdtに含まれるbaseMediaDecodeTimeは、当該Movie Fragmentの再生継続時間を示している。例えば、timescale=90000とした場合、再生開始時刻ｔ、再生継続時間ｄ秒のセグメントは、
earliest_presentation_time＝90000×t
subsegment_duration = baseMediaDecodeTime＝90000×d
となる。
【００６０】
つまり、挿入開始時刻１５秒、再生継続時間０．５秒のフィラーセグメントを生成するには、earliest_presentation_timeを1350000に、baseMediaDecodeTimeを45000に修正すればよい。なお、再生継続時間を修正しようとすると、mdat内部の情報まで修正範囲が及ぶことから処理負荷が大きくなる。そのため、テンプレートセグメントを予め用意しておき、テンプレートセグメントを再生継続時間が隙間時間を上回るまで複数連結することで、再生継続時間を修正せずに、所望のフィラーセグメントを生成することができる。
【００６１】
（再生開始時のバッファ管理方法）
次に、受信装置１の再生開始時のバッファ管理方法について、図４に示すフローチャートを参照して説明する。
【００６２】
図４に示すフローチャートは、既にマニフェストファイルを取得しており、セグメントＵＲＬリストも作成済みの状態から開始するものとする。また、受信装置１は、ネットワークの混雑状況に応じて受信帯域が常に変動することを見越して、再生開始時刻を起点として予め設定したバッファ規定値（例えば５秒）以上のセグメントがバッファ１４に挿入されてから再生を開始するものとする。
【００６３】
まず、再生制御ユーザＩ／Ｆ１７において再生開始操作が実行されると（ステップＳ００１）、再生制御部１６は、新規に再生を開始する場合には番組の冒頭の再生開始時刻（０秒）を、一時停止等の操作の後に再生を再開した場合には一時停止操作がなされた時点の再生開始時刻を再生開始時刻情報として抽出し、バッファ制御部１５に出力する（ステップＳ００２）。
【００６４】
次に、バッファ制御部１５は、バッファ１４内に再生開始時刻情報から予め設定したバッファ規定値以上の範囲のセグメントが存在するか否かを確認する（ステップＳ００３）。該セグメントが存在しない場合には（ステップＳ００３−ＮＯ）、ステップＳ００４に進み、該セグメントが存在する場合には（ステップＳ００３−ＹＥＳ）、再生を開始し（ステップＳ０１２）、その後ステップＳ００４に進む。
【００６５】
ステップＳ００４では、バッファ制御部１５は再生時刻を含むバッファリング範囲の最後のセグメントに続くセグメントのＵＲＬが、セグメントＵＲＬリストに存在するか否かを確認する。該セグメントのＵＲＬが存在する場合には（ステップＳ００４−ＹＥＳ）、バッファ制御部１５はセグメントＵＲＬリストから該セグメントのＵＲＬを抽出し、セグメント取得部１２に出力する（ステップＳ００５）。続いて、セグメント取得部１２は、抽出されたセグメントのＵＲＬを含むセグメント要求を配信サーバ２に送信し、該要求に対応するセグメントを受信し、バッファ制御部１５に出力する（ステップＳ００５）。バッファ制御部１５は、ステップＳ００５にて受信したセグメントをバッファ１４に挿入する（ステップＳ００６）。
【００６６】
次に、バッファ制御部１５はバッファ１４に挿入したセグメントが現在再生中のピリオド（Period）の最後のセグメントであるか否かを確認する（ステップＳ００７）。ピリオドの最後のセグメントである場合には（ステップＳ００７−ＹＥＳ）、バッファリング範囲の最大値と、ピリオドの終了時刻とを比較する（ステップＳ００８）。
【００６７】
バッファリング範囲の最大値がピリオドの終了時刻より小さい場合には（ステップＳ００８−ＹＥＳ）、フィラーセグメント生成部１３は、バッファリング範囲の最大値を挿入開始時刻、ピリオド終了時刻とバッファリング範囲の最大値との差分以上を再生継続時間としてフィラーセグメントを生成してバッファ制御部１５に出力し、バッファ制御部１５は該フィラーセグメントをバッファ１４に挿入する（ステップＳ００９）。
【００６８】
ステップＳ００４，Ｓ００７，Ｓ００８においてＮＯであった場合には、現在再生中か否かを確認する（ステップＳ０１０）。再生中でない場合には（ステップＳ０１０−ＮＯ）、ステップＳ００３に戻る。再生中である場合には（ステップＳ０１０−ＹＥＳ）、バッファ１４の最後に到達したか、又は再生制御ユーザＩ／Ｆ１７において停止ボタンが押されたかを確認する（ステップＳ０１１）。いずれかの条件を満たした場合には（ステップＳ０１１−ＹＥＳ）、処理を終了する。また、ステップＳ０１０がＮＯであった場合にはステップＳ００３に戻り、ステップＳ０１１がＮＯの場合にはステップＳ００４に戻る。
【００６９】
以上により、再生中のピリオドのコンテンツ尺よりもピリオドを構成する全セグメントの時間尺の方が短い場合には、再生継続時間がピリオドのコンテンツ尺及び全セグメントの時間尺の差分以上のフィラーセグメントを生成し、ピリオドの最終セグメント（コンテンツの最後のセグメント）に続けてバッファ１４に挿入することにより、ピリオド（コンテンツ）間のバッファ１４の隙間を埋めることができるため、ピリオド（コンテンツ）の切り替えがスムーズとなり安定した視聴が可能となる。
【００７０】
なお、上述した受信装置１として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、受信装置１の各機能を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのＣＰＵによってこのプログラムを読み出して実行させることで実現することができる。なお、このプログラムは、コンピュータ読取り可能な記録媒体に記録可能である。
【００７１】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の構成ブロック又は処理ステップについて、複数を１つに組み合わせたり、１つを複数に分割したりすることが可能である。
【符号の説明】
【００７２】
１    受信装置
２    配信サーバ
１０  通信Ｉ／Ｆ
１１  マニフェスト取得部
１２  セグメント取得部
１３  フィラーセグメント生成部
１４  バッファ
１５  バッファ制御部
１６  再生制御部
１７  再生制御ユーザＩ／Ｆ
１８  再生部
１９  表示部
【図１】
0006581884.tif 000002
【図２】
0006581884.tif 000003
【図３】
0006581884.tif 000004
【図４】
0006581884.tif 000005
【図５】
0006581884.tif 000006
【図６】
0006581884.tif 000007
【図７】
0006581884.tif 000008
【図８】
0006581884.tif 000009
【図９】
0006581884.tif 000010