(57)【特許請求の範囲】
【請求項１】
複数のメディアコンポーネントから構成されるコンテンツをセグメントごとに受信する受信装置であって、
マニフェストファイルを取得するマニフェスト取得部と、
前記マニフェストファイルを解析し、同じメディア形式かつ再生時刻を共有するメディアコンポーネントが複数ある場合には、各メディアコンポーネントの再生時刻が重ならないようにメディアコンポーネントの再生開始時刻を変更し、各メディアコンポーネントの再生開始時刻の差を示す再生オフセット時間を決定するマニフェスト変換部と、
前記再生開始時刻に基づき取得対象のセグメントのＵＲＬ及びセグメント開始時刻を決定するバッファ制御部と、
前記セグメントのＵＲＬに基づき前記取得対象のセグメントを取得するセグメント取得部と、を備え、
前記バッファ制御部は、前記セグメント取得部により取得した前記セグメントを、前記セグメント開始時刻に対応付けてバッファに保存し、
メディアコンポーネントの切り替え操作が実行された場合には、現在再生時刻に、切り替え前後のメディアコンポーネントの差を示す再生オフセット時間を加算した新規再生開始時刻に基づき、前記取得対象のセグメントのＵＲＬ及び前記セグメント開始時刻を決定することを特徴とする受信装置。
【請求項２】
前記再生オフセット時間は、各メディアコンポーネントの再生時刻が重ならないようにコンテンツの時間尺以上であることを特徴とする、請求項１に記載の受信装置。
【請求項３】
複数のメディアコンポーネントから構成されるコンテンツをセグメントごとに受信する受信装置における再生時刻制御方法であって、
マニフェストファイルを取得するマニフェスト取得ステップと、
前記マニフェストファイルを解析し、同じメディア形式かつ再生時刻を共有するメディアコンポーネントが複数ある場合には、各メディアコンポーネントの再生時刻が重ならないようにメディアコンポーネントの再生開始時刻を変更し、各メディアコンポーネントの再生開始時刻の差を示す再生オフセット時間を決定するマニフェスト変換ステップと、
前記再生開始時刻に基づき取得対象のセグメントのＵＲＬ及びセグメント開始時刻を決定するバッファ制御ステップと、
前記セグメントのＵＲＬに基づき前記取得対象のセグメントを取得するセグメント取得ステップと、
前記セグメント取得ステップにより取得した前記セグメントを、前記セグメント開始時刻に対応付けてバッファに保存する保存ステップと、を含み、
前記バッファ制御ステップは、メディアコンポーネントの切り替え操作が実行された場合には、現在再生時刻に、切り替え前後のメディアコンポーネントの差を示す再生オフセット時間を加算した新規再生開始時刻に基づき、前記取得対象のセグメントのＵＲＬ及び前記セグメント開始時刻を決定することを特徴とする再生時刻制御方法。
【請求項４】
コンピュータを、請求項１又は２に記載の受信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメディアコンポーネントから構成されるコンテンツをセグメントごとに受信する受信装置、再生時刻制御方法、及びプログラムに関する。
【背景技術】
【０００２】
昨今のインターネットにおけるストリーミング動画配信では、専用のサーバと専用のプロトコルによるストリーミング配信方式から、汎用的なＷｅｂサーバによりＨＴＴＰプロトコルを用いてストリーミング配信する方式への移行が進んでおり、多くのデバイス向けの配信において主流となっている。このようなＨＴＴＰプロトコルによるストリーミング配信方式（アダプティブストリーミング）としては、ＩＴベンダによる独自技術が普及している他、これらストリーミング方式の統一を意図した国際標準規格であるＭＰＥＧ−ＤＡＳＨ（ＩＳＯ／ＩＥＣ２３００９−１）が策定された。
【０００３】
いずれの技術も基本的なコンセプトは同様であり、Ｗｅｂサーバには動画コンテンツを一つ又は複数の品質（画面サイズやビットレート）でエンコードしたストリームをそれぞれ数秒から数十秒程度のファイルに分割したもの（セグメント）と、それらの動画コンテンツの属性やＵＲＬを記述したマニフェストファイルを用意する。受信装置はマニフェストファイルから当該受信装置の画面サイズや伝送路のネットワーク帯域の状態等を考慮して、適時品質を選択して次々とセグメントを受信し、１本の動画コンテンツにつなぎ合わせて再生するものである（例えば、非特許文献１参照）。
【０００４】
図５にアダプティブストリーミングの一例を示す。図５では、映像が複数品質でエンコードされ、それぞれの品質ごとに数秒単位に分割されたセグメントが生成されている。この例では、エンコーダは映像を低品質のセグメント１〜４、中品質のセグメント１’〜４’、及び高品質のセグメント１”〜４”に分割している。マニフェストファイルには、セグメントのＵＲＬや、それぞれの品質毎のビットレートや画像サイズなどの属性情報が登録される。セグメント及びマニフェストファイルはＷｅｂサーバに供給される。
【０００５】
受信装置は、Ｗｅｂサーバからマニフェストファイルを受信し、マニフェストファイルからビットレートやセグメントの構成を把握し（ステップＡ）、受信装置の画面サイズやネットワークの受信帯域の状況をもとにセグメント単位で品質を選択し、ＨＴＴＰプロトコルにより受信する（ステップＢ）。続いて、受信したセグメントをマニフェストファイルに従って順番通りにつなぎ合わせて再生する（ステップＣ）。このようにステップＢ，Ｃの処理を繰り返すことにより、一連のコンテンツを受信し再生を継続することができる。
【０００６】
受信装置においては、多くのデバイスで普及が進むＨＴＭＬ５ブラウザを利用することにより、マルチデバイス（ＰＣ、テレビ受信機、タブレット装置等）に対応可能な視聴環境を構築することができる。
【０００７】
しかし、従来ＨＴＭＬ５ブラウザで動画を再生するための機能であるビデオ要素（ｖｉｄｅｏタグ）では、ソースとしてメディアファイルを参照することしかできなかったため、このようなアダプティブストリーミングの視聴を実現するためには、別途ブラウザプラグインのインストールが必要だった。そのため、どのブラウザでも共通で利用できる視聴環境を構築することが困難だった。このような状況から、ＨＴＭＬ５ブラウザのビデオ要素（ｖｉｄｅｏタグ）及びJavascript（登録商標）によってアダプティブストリーミングの視聴を実現するための機能として、Ｗｅｂで利用される技術の標準化をすすめる国際的な非営利団体であるＷ３ＣにおいてＭＳＥ（Media Source Extensions）の規格化が進んでいる（例えば、非特許文献２参照）。
【０００８】
ＭＳＥを用いることにより、ビデオ要素はソースとしてバッファを参照することが可能となる。そのバッファへはJavascriptによって受信したセグメントを挿入することができるようになることから、多様なアダプティブストリーミングの視聴がＨＴＭＬ５のビデオ要素とJavascriptにより実現可能となる。
【０００９】
ここで、図６を参照してＭＳＥのバッファモデルについて説明する。図６はＭＳＥのバッファモデルの一例を示す図である。バッファ（SourceBuffer）は、セグメント開始時刻と再生継続時間に対応付けてセグメントを管理する。図６では、斜線の入ったブロックがセグメントを示しており、セグメント単位の再生開始時刻であるセグメント開始時刻が０秒かつ再生継続時間が５秒、セグメント開始時刻が５秒かつ再生継続時間が５秒、及びセグメント開始時刻が１５秒かつ再生継続時間が５秒の３つのセグメントがバッファに挿入されている。この時、バッファのバッファリング範囲（buffered属性）は０〜１０秒、１５〜２０秒となる。
【００１０】
また、図７に示すように、既にセグメントが挿入されている範囲に再生時刻が重なる別のセグメントを挿入して上書きすることも可能である。図７では、図６に示した例に、新しいセグメントとして、セグメント開始時刻が１２秒かつ再生継続時間が１０秒のセグメントを挿入した例を示している。その結果、１２秒から２２秒の範囲が新しいセグメントに差し替わるとともに、バッファリング範囲も０〜１０秒、１２〜２２秒に更新されている。
【００１１】
動画のストリーミングサービスの提供方法として、主映像に加えて同一番組での別角度の映像を視聴可能とするなど、複数のメディアコンポーネントから所望の映像を選択し、切り替えながら視聴するサービス形態（マルチアングルサービス）が考えられる。ＭＰＥＧ−ＤＡＳＨにおいては、このようなサービスを可能とするマニフェストファイルの記述方法が定義されている。
【００１２】
図８にＭＰＥＧ−ＤＡＳＨのＭＰＤ（Media Presentation Description）形式のマニフェストファイルの概念図を示す。ＭＰＤ形式ではPeriod，AdaptationSet，Representationの順に階層構造となっている。Periodはマニフェストファイルを時間方向に区切った一区画を示しており、図８の例では、それぞれのコンテンツ尺（duration）が３００秒のPeriodが連結されていることを示している。Periodは一つ以上のAdaptationSetから構成される。
【００１３】
AdaptationSetはメディアコンポーネント（映像、音声、テキスト等）の情報を示しており、同じメディア形式で表現（別角度の映像や、別言語の音声など）の異なる複数のコンポーネントを含むことができる。図８の例では映像（mimeType=video/mp4）が２つ、音声（mimeType=audio/mp4）が１つである。AdaptationSetに含まれるそれぞれのメディアコンポーネントの情報はRepresentationで示される。Representationは一つ以上のセグメントで構成される。
【００１４】
このようなマニフェストファイルとすることで、Periodにおいて選択されたメディアコンポーネント（AdaptationSet）を形成するセグメント（図８の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/>
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、一般にストリーミングを視聴する際には、ネットワークの混雑状況に応じて受信帯域が常に変動することから、現在の再生時刻よりも数秒から数十秒先のデータまで受信してバッファに挿入することで視聴安定性を向上させるのが一般的である。そのため、このように再生時刻を共有するメディアコンポーネントを切り替えようとすると、切り替えまでに時間がかかったり、既に取得済みのセグメントが無駄になったりする場合があった。
【００１９】
図９にメディアコンポーネントを切り替える例を示す。図９では、切り替え前のメディアコンポーネント（AdaptationSe）をAdaptationSet#1、切り替え後のメディアコンポーネントをAdaptationSet#2としている。また、斜線の入ったブロックがセグメントを示しており、セグメントの再生継続時間を５秒としている。メディアコンポーネントの切り替えは、切り替え指示を契機に行われるものとする。図９（ａ）は、メディアコンポーネントの切り替え指示直前の再生状態を示しており、現在の再生時刻に先んじて１０秒分のセグメントを取得してバッファに挿入している状態を示している。
【００２０】
図９（ｂ）は、メディアコンポーネントの切り替え後に、バッファに挿入された最後のセグメントの次に、AdaptationSet#2のセグメントを追加する例を示している。この場合、切り替え指示から約１０秒後にメディアコンポーネントが切り替わるため、切り替えまでのレスポンスが遅くユーザの利便性を損ねるおそれがある。
【００２１】
図９（ｃ）は、メディアコンポーネントの切り替え後に、現在の再生時刻を含むセグメントの次に、AdaptationSet#2のセグメントを上書きする例を示している。この場合は、切り替え指示から即座にメディアコンポーネントが切り替わるものの、先に取得したAdaptationSet#1のセグメントを新たに取得したAdaptationSet＃2のセグメントで上書きするため、既に取得済みのセグメントが無駄になってしまう。
【００２２】
特許文献１に記載の発明は、上記課題のようなバッファの細部の状況については触れておらず、課題の解決に必ずしも利用できる手法ではなかった。
【００２３】
かかる事情に鑑みてなされた本発明の目的は、主映像と、主映像に関連付けられた別角度の映像（マルチアングル）や別再生速度の映像（早送り・巻戻しなど）から構成されるコンテンツのメディアコンポーネントを切り替える際に、バッファリングの無駄を削減することにある。
【課題を解決するための手段】
【００２４】
上記課題を解決するため、本発明に係る受信装置は、複数のメディアコンポーネントから構成されるコンテンツをセグメントごとに受信する受信装置であって、マニフェストファイルを取得するマニフェスト取得部と、前記マニフェストファイルを解析し、同じメディア形式かつ再生時刻を共有するメディアコンポーネントが複数ある場合には、各メディアコンポーネントの再生時刻が重ならないようにメディアコンポーネントの再生開始時刻を変更し、各メディアコンポーネントの再生開始時刻の差を示す再生オフセット時間を決定するマニフェスト変換部と、前記再生開始時刻に基づき取得対象のセグメントのＵＲＬ及びセグメント開始時刻を決定するバッファ制御部と、前記セグメントのＵＲＬに基づき前記取得対象のセグメントを取得するセグメント取得部と、を備え、前記バッファ制御部は、前記セグメント取得部により取得した前記セグメントを、前記セグメント開始時刻に対応付けてバッファに保存し、メディアコンポーネントの切り替え操作が実行された場合には、現在再生時刻に、切り替え前後のメディアコンポーネントの差を示す再生オフセット時間を加算した新規再生開始時刻に基づき、前記取得対象のセグメントのＵＲＬ及び前記セグメント開始時刻を決定することを特徴とする。
【００２５】
さらに、前記再生オフセット時間は、各メディアコンポーネントの再生時刻が重ならないようにコンテンツの時間尺以上であることを特徴とする。
【００２６】
また、上記課題を解決するため、本発明に係る再生時刻制御方法は、複数のメディアコンポーネントから構成されるコンテンツをセグメントごとに受信する受信装置における再生時刻制御方法であって、マニフェストファイルを取得するマニフェスト取得ステップと、前記マニフェストファイルを解析し、同じメディア形式かつ再生時刻を共有するメディアコンポーネントが複数ある場合には、各メディアコンポーネントの再生時刻が重ならないようにメディアコンポーネントの再生開始時刻を変更し、各メディアコンポーネントの再生開始時刻の差を示す再生オフセット時間を決定するマニフェスト変換ステップと、前記再生開始時刻に基づき取得対象のセグメントのＵＲＬ及びセグメント開始時刻を決定するステップと、前記セグメントのＵＲＬに基づき前記取得対象のセグメントを取得するセグメント取得ステップと、を含み、前記バッファ制御ステップは、メディアコンポーネントの切り替え操作が実行された場合には、現在再生時刻に、切り替え前後のメディアコンポーネントの差を示す再生オフセット時間を加算した新規再生開始時刻に基づき、前記取得対象のセグメントのＵＲＬ及び前記セグメント開始時刻を決定することを特徴とする。
【００２７】
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを、上記受信装置として機能させることを特徴とする。
【発明の効果】
【００２８】
本発明によれば、メディアコンポーネントの切り替えの際に、切り替え前のメディアコンポーネントとは別のバッファ領域を利用することが可能となり、バッファリングの無駄を削減することができる。特に短い間隔でメディアコンポーネントの切り替え操作がなされた場合に、以前に取得したセグメントの再取得の機会が減るためネットワークの利用効率も向上し、安定した視聴が可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係るコンテンツ配信システムの構成例を示すブロック図である。
【図２】本発明の一実施形態に係る受信装置が取得するマニフェストファイルの一例を示す図である。
【図３】本発明の一実施形態に係る受信装置において、メディアコンポーネントの切り替え時のバッファの状況の一例を示す。
【図４】本発明の一実施形態に係る受信装置の再生時刻制御方法を示すフローチャートである。
【図５】従来のアダプティブストリーミングの一例を示す図である。
【図６】従来のＭＳＥのバッファモデルの一例を示す図である。
【図７】従来のＭＳＥのバッファモデルにおいて、セグメントをバッファに上書き挿入する例を示す図である。
【図８】従来のマニフェストファイルの概念を示す図である。
【図９】従来の課題を説明する図である。
【発明を実施するための形態】
【００３０】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。以下に説明する本実施形態では一例として、マニフェストファイルをＭＰＥＧ−ＤＡＳＨ（ＩＳＯ／ＩＥＣ２３００９−１）のＭＰＤ（Media Presentation Description）形式とする。
【００３１】
本発明の一実施形態に係る受信装置について、図１を参照して説明する。図１は、本発明の一実施形態に係る受信装置の構成例を示す図である。
【００３２】
受信装置１は、インターネットを介して配信サーバ２と接続され、配信サーバ２から複数のメディアコンポーネントにより構成されるコンテンツをセグメントごとに受信し、ストリーミング再生を行う。
【００３３】
配信サーバ２は、受信装置１によって指定されたＵＲＬのマニフェストファイルやセグメントを配信するサーバであり、例えば一般的なＷｅｂサーバとすることができる。
【００３４】
図１に示す受信装置１は、通信Ｉ／Ｆ１０と、マニフェスト取得部１１と、マニフェスト変換部１２と、セグメント取得部１３と、バッファ１４と、バッファ制御部１５と、再生制御部１６と、再生制御ユーザＩ／Ｆ部１７と、再生部１８と、表示部１９とを備える。
【００３５】
再生制御ユーザＩ／Ｆ部１７は、ユーザの操作によって、再生命令及び停止命令を再生制御部１６に出力する。再生命令には再生開始時刻を示す再生開始時刻情報が含まれる。
【００３６】
再生制御ユーザＩ／Ｆ部１７は、再生開始・停止ボタン及びメディアコンポーネントの切り替えボタンを用意するとともに、コンテンツの開始時刻、終了時刻、及び再生制御部１６から入力された現在再生時刻情報をもとに、現在の表示用の再生時刻（再生位置）をグラフィカルに表示してもよい。例えば、再生画面の下部にコンテンツの開始時刻を左端、終了時刻を右端とする横長の棒状で表示し、それと重なるようにつまみ状の操作部分を配置し、つまみ上の操作部分を再生が進むにつれて左端から右端に移動させることによって、再生時間全体のうち今どの部分を再生しているのかを一目で把握することができるようにすることができる。
【００３７】
マニフェスト取得部１１は、アプリケーション起動時又は番組選択時に、配信サーバ２から所望の番組のマニフェストファイル（ＭＰＤファイル）を通信Ｉ／Ｆ１０を介して取得し、マニフェスト変換部１２に出力する。
【００３８】
マニフェスト変換部１２は、マニフェスト取得部１１から入力されたマニフェストファイルを解析し、同じメディア形式かつ再生時刻を共有するメディアコンポーネントが複数ある場合には、各メディアコンポーネントの再生時刻（時間軸）が重ならないように再生開始時刻を変換し、セグメントの先頭時刻に該当するセグメント開始時刻及びセグメントのＵＲＬを対応付けたセグメントＵＲＬリストを生成し、バッファ制御部１５に出力する。また、マニフェスト変換部１２は、それぞれのメディアコンポーネントの識別子であるメディア識別子、及び各メディアコンポーネントの再生開始時刻の差を示す再生オフセット時間を対応付けたリストである再生オフセット時間リストを生成し、再生制御部１６に出力する。再生オフセット時間は、各メディアコンポーネントの再生時刻が重ならないようにするために、コンテンツの時間尺以上とするのが好適である。
【００３９】
図２にマニフェストファイルの一例（抜粋）を示す。図２（ａ）は変換前のマニフェストファイルを示している。この例では、コンテンツ開始時刻（start）が０秒でコンテンツ尺（duration）が３分のコンテンツ（Period）が一つ存在し、Periodにはメディアの形式が同一（mimeType="video/mp4"）のメディアコンポーネント（AdaptationSet）が二つ存在（id="main"：メイン映像，id="sub"：別角度映像）する。さらに、それぞれのAdaptationSetにはRepresentationが一つずつ存在し、この例では二つのAdaptationSetが再生時刻を共有している。
【００４０】
マニフェスト変換部１２は、このAdaptationSetの再生時刻が重ならないようにするため、一例として図２（ｂ）に示す変換後のマニフェストファイルのように変換する。変換後のマニフェストファイルでは変換前のマニフェストファイルに対して１０９行目及び１１０行目が追加されている。二つのAdaptationSetが別の再生時刻を持つPeriodに配置することによって、バッファ領域の重なりを回避することができている。
【００４１】
次に、図２（ｂ）の変換後のマニフェストファイルを基にセグメントＵＲＬリストの生成について説明する。１０２行目のstartの値から、Periodの開始時刻は０秒である。１０４行目のtimescaleの値から、AdaptationSetのタイムスケール（１秒間の目盛数）は、90000である。１０６行目のdurationの値から、セグメントの継続時間は、450000である。１０６行目のstartNumberの値から、セグメントの開始番号は１である。以上から、ある再生時刻ｔ（秒）に対するセグメント番号は以下の式で算出できる。なお、少数以下は切り捨てる。
Number＝(t−start)×timescale/duration＋startNumber                   （１）
【００４２】
次に、図２の１０６行目のmediaの値から、セグメントのＵＲＬのテンプレート”content_v1_$Number$.mp4”を取得し、$Number$を先に算出したNumber値に差し替えることにより、セグメントのＵＲＬを取得することができる。なお、上記例は図２の一つ目のPeriodを元に説明したが、二つ目のPeriodについても同様に算出できる。
【００４３】
再生制御部１６は、再生制御ユーザＩ／Ｆ１７から再生命令を入力すると、再生命令から再生開始時刻を抽出し、再生開始時刻を示す再生開始時刻情報をバッファ制御部１５に出力する。そして、再生制御部１６は、バッファ制御部１５からバッファ規定値（例えば５秒）を超えたことを示す通知を入力すると、再生部１８に再生開始時刻情報を出力するとともに、再生開始を指示する。
【００４４】
また、再生制御部１６は、再生制御ユーザＩ／Ｆ１７から停止命令を入力すると、再生部１８に停止を指示する。
【００４５】
また、再生制御部１６は、現在の再生状態（再生中、停止中）、及び再生部１８から入力された現在再生時刻情報を再生制御ユーザＩ／Ｆ１７に出力する。
【００４６】
バッファ制御部１５は、再生制御部１６から入力された再生開始時刻情報、及びバッファ１４から入力されたバッファリング範囲（バッファ済みセグメント範囲）情報に基づき、取得対象のセグメントのセグメント開始時刻を決定する。そして、マニフェスト変換部１２から入力されたセグメントＵＲＬリストから、セグメント開始時刻に対応付けられたセグメントのＵＲＬを抽出（決定）し、セグメント取得部１３に出力する。また、バッファ制御部１５は、セグメント取得部１３からセグメントが入力されると、該セグメントをバッファ１４に挿入する。
【００４７】
セグメント取得部１３は、バッファ制御部１５から入力された取得対象のセグメントのＵＲＬに基づいて対応するセグメントを取得し、バッファ制御部１５に出力する。具体的には、セグメントのＵＲＬを含むセグメント要求（リクエスト）を生成して通信Ｉ／Ｆ１０を介して配信サーバ２に送信し、配信サーバ２から通信Ｉ／Ｆ１０を介して該要求に対するレスポンスとして対応するセグメントを取得する。
【００４８】
バッファ１４は、マニフェストファイルに記載の全Periodの開始時刻から終了時刻までの範囲を持っており、バッファ制御部１５から入力したセグメントを、セグメント開始時刻及び再生継続時間を対応付けて保存する。
【００４９】
また、バッファ１４は、バッファリング範囲情報をバッファ制御部１５に出力する。ここで、バッファリング範囲情報とは、バッファ１４にコンテンツのセグメントが挿入されている範囲を示す情報のことであり、例えば現在の保存中の全セグメントのセグメント開始時刻及び再生継続時間の情報とする。
【００５０】
また、バッファ１４は、再生部１８から要求されたセグメントを、順次再生部１８に出力する。
【００５１】
再生部１８は、再生制御部１６から再生開始時刻情報を含む再生命令を入力すると、再生開始時刻に基づいてセグメントを順次バッファ１４から入力し、入力したセグメントをセグメントのメディア形式（映像、音声、テキスト等）に従ってデコードし、表示部１９に出力する。再生部１８は、再生とともに更新される再生時刻の情報である現在再生時刻情報を再生制御部１６に出力する。
【００５２】
また、再生部１８は、再生制御部１６から停止命令を入力した場合には、再生を停止する。
【００５３】
表示部１９は、再生部１８から入力されたデコード済みのメディアデータをそのメディアの形式に従って表示する。
【００５４】
以下に、メディアコンポーネントの切り替え操作が実行された場合の動作について説明する。
【００５５】
再生制御部１６は、再生制御ユーザＩ／Ｆ部１７からメディアコンポーネント切り替え命令を入力すると、マニフェスト変換部１２から入力された再生オフセット時間リストから、切り替え後のメディア識別子に対応付いた再生オフセット時間を取得する。また、再生制御部１６は、再生部１８から入力される現在再生時刻情報から、現在再生時刻を取得する。そして、現在再生時刻に再生オフセット時間を加算することにより、メディアコンポーネント切り替え後の再生時刻である新規再生開始時刻を算出する。そして、新規再生開始時刻を示す新規再生開始時刻情報をバッファ制御部１５に出力し、バッファ制御部１５からバッファ規定値を超えたことを示す通知を入力すると、再生部１８に新規再生開始時刻情報を出力し、再生時刻の変更を指示する。
【００５６】
このような処理を行うため、実際のバッファ１４上の再生時刻となる新規再生開始時刻と、再生制御ユーザＩ／Ｆ部１７に表示させる見かけ上の再生時刻である現在再生時刻とは異なり、メディアコンポーネントの切り替え時には、新規再生開始時刻から再生オフセット時間を減じた時刻が現在再生時刻となる。
【００５７】
バッファ制御部１５は、再生制御部１６から入力された新規再生開始時刻情報、及びバッファ１４から入力されたバッファリング範囲情報に基づき、取得対象のセグメントのセグメント開始時刻を決定する。そして、マニフェスト取得部１１から入力されたセグメントＵＲＬリストから、セグメント開始時刻に対応付けられたセグメントのＵＲＬを抽出し、セグメント取得部１３に出力する。
【００５８】
再生部１８は、再生制御部１６から新規再生開始時刻情報を入力すると、新規再生開始時刻情報に基づいてセグメントを順次バッファ１４から入力し、入力したセグメントをセグメントのメディアの形式に従ってデコードし、表示部１９に出力する。
【００５９】
図３にメディアコンポーネントの切り替え時のバッファの状況の一例を示す。この例では、マニフェスト取得部１１により、二つのメディアコンポーネント（AdaptationSet）から構成される一つのコンテンツ（Period）に関する情報を記述したマニフェストファイルを取得し、マニフェスト変換部１２により、該マニフェストファイルを、それぞれ一つのメディアコンポーネント（AdaptationSet）から構成される二つのコンテンツ（Period）に関する情報を記述したマニフェストファイルに変換したものとする。また、各メディアコンポーネントの再生開始時刻（start）は３００秒で、コンテンツ尺（duration）は３分であり、再生オフセット時間をコンテンツ尺としている。
【００６０】
図３（ａ）は、メディアコンポーネントの切り替え指示直前の再生状態を示しており、３００秒から一方のメディアコンポーネントのセグメントを挿入し、現在の再生時刻に先んじて１０秒分のセグメントを取得してバッファに挿入している状態を示している。図３（ｂ）は、メディアコンポーネントの切り替え後に、他方のメディアコンポーネントのセグメントを、各メディアコンポーネントのバッファ領域が重ならないように、４９５秒から挿入している状態を示している。このように、本発明ではメディアコンポーネントの切り替え時には、切り替え前のメディアコンポーネントが使用するバッファ領域とは異なるバッファ領域を利用する。
【００６１】
（再生時刻制御方法）
次に、メディアコンポーネント切り替え動作時の再生時刻制御方法について、図４に示すフローチャートを用いて説明する。
【００６２】
図４に示すフローチャートは、既にマニフェストファイルを取得しており、マニフェスト変換処理後のセグメントＵＲＬリストも作成済みの状態から開始するものとする。また、ネットワークの混雑状況に応じて受信帯域が常に変動することを見越して、再生開始時刻を起点として、予め設定したバッファ規定値（例えば５秒）以上のセグメントがバッファ１４に挿入されてから切り替え後のメディアコンポーネントの再生を開始するものとする。また、表示用再生時刻の範囲は、本来（マニフェストファイル変換前）のコンテンツの時間尺である、配信サーバ２から受信したマニフェストファイルに記載のPeriodの開始時刻から終了時刻までの範囲とする。
【００６３】
まず、再生制御ユーザＩ／Ｆ部１７においてメディアコンポーネントの切り替え操作が実行されると（ステップＳ００１）、再生制御部１６は、マニフェスト変換部１２から入力された再生オフセット時間リストから、切り替え後のメディア識別子を抽出する（ステップＳ００２）。そして、再生制御部１６は、表示用再生時刻に、切り替え後のメディア識別子に対応付いた再生オフセット時間を加算して新規再生開始時刻を算出し（ステップＳ００３）、バッファ制御部１５に出力する。
【００６４】
次に、バッファ制御部１５は、バッファ１４内に新規再生開始時刻から予め設定したバッファ規定値以上のセグメントが存在するか否かを確認する（ステップＳ００４）。ステップＳ００４にてＹＥＳの場合には、再生時刻を新規再生開始時刻に変更する（ステップＳ００９）。そして、切り替え後のメディアコンポーネントの再生を開始し（ステップＳ０１０）、処理を終了する。
【００６５】
一方、ステップＳ００４にてＮＯの場合には、バッファ制御部１５は、新規再生開始時刻を含むバッファリング範囲の最後のセグメントに続くセグメントのＵＲＬを、マニフェスト変換部１２から入力されたセグメントＵＲＬリストから抽出し（ステップＳ００５）、セグメント取得部１３に出力する。そして、セグメント取得部１３は、抽出したセグメントのＵＲＬを含むリクエストを配信サーバ２に送信し、該要求に対応するセグメントを受信し（ステップＳ００６）、受信したセグメントをバッファ１４に挿入する（ステップＳ００７）。
【００６６】
次に、再生制御部１６は、表示用再生時刻がコンテンツの終了時刻に到達したか又はユーザＩ／Ｆにて停止ボタンが押されたかを確認する（ステップＳ００８）。ステップＳ００８がＮＯであった場合にはステップＳ００４に戻り、ステップＳ００８がＹＥＳである場合には処理を終了する。
【００６７】
このように、本発明に係る受信装置１は、主映像と、主映像に関連付けられた別角度の映像（マルチアングル）や別再生速度の映像（早送り・巻戻しなど）から構成されるコンテンツをストリーミング再生する際に、それぞれのメディアコンポーネントのバッファ領域が重ならないようにそれぞれのメディアコンポーネントの再生オフセット時間を設定する。そのため、メディアコンポーネントの切り替えの際に、切り替え前のメディアコンポーネントとは別のバッファ領域を利用することが可能となり、バッファリングの無駄を削減することができる。特に短い間隔でメディアコンポーネントの切り替え操作がなされた場合に、以前取得したセグメントの再取得の機会が減るため、ネットワークの利用効率も向上し、安定した視聴が可能となる。
【００６８】
なお、上述した受信装置１として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、受信装置１の各機能を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのＣＰＵによってこのプログラムを読み出して実行させることで実現することができる。なお、このプログラムは、コンピュータ読取り可能な記録媒体に記録可能である。
【００６９】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の構成ブロック又は処理ステップについて、複数を１つに組み合わせたり、１つを複数に分割したりすることが可能である。
【符号の説明】
【００７０】
１    受信装置
２    配信サーバ
１０  通信Ｉ／Ｆ
１１  マニフェスト取得部
１２  マニフェスト変換部
１３  セグメント取得部
１４  バッファ
１５  バッファ制御部
１６  再生制御部
１７  再生制御ユーザＩ／Ｆ
１８  再生部
１９  表示部
【図１】
0006609468.tif 000002
【図２】
0006609468.tif 000003
【図３】
0006609468.tif 000004
【図４】
0006609468.tif 000005
【図５】
0006609468.tif 000006
【図６】
0006609468.tif 000007
【図７】
0006609468.tif 000008
【図８】
0006609468.tif 000009
【図９】
0006609468.tif 000010