(57)【特許請求の範囲】
【請求項１】
データセグメントを送るための方法であって、
データセグメントのストリームを受信することと、
前記データセグメントに基づいてセグメントの第１のグループを確立することと、
情報の第１のテーブルを生成すること、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信することと、
前記データセグメントに基づいてセグメントの第２のグループを確立すること、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成すること、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信することと、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定すること、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定すること、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
を備える、方法。
【請求項２】
セグメントの前記第１のグループを前記確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを前記確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記データセグメントはＤＡＳＨセグメントである、請求項１に記載の方法。
【請求項４】
前記第１のテーブルとセグメントの前記第１のグループとはＦＬＵＴＥパケットである、請求項１に記載の方法。
【請求項５】
データセグメントの前記ストリームはビデオデータを備える、請求項１に記載の方法。
【請求項６】
前記ビデオデータは、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４、またはＨ．２６５のうちの１つで符号化される、請求項５に記載の方法。
【請求項７】
前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、請求項１に記載の方法。
【請求項８】
前記データセグメントに基づいてセグメントの第３のグループを確立すること、セグメントの前記第３のグループは、セグメントの前記第２のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第３のテーブルを生成すること、前記情報は、セグメントの前記第２のグループおよび前記第３のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、セグメントの前記第１のグループまたは前記第２のグループの一部でなかったセグメントの前記第３のグループからのセグメントを含むセグメントの集合とを送信することと
をさらに備える、請求項１に記載の方法。
【請求項９】
データセグメントを送るための方法であって、
データセグメントのストリームを受信することと、
前記ストリームの個々のデータセグメントをサイズＮＳのセグメントのグループにグループ化すること、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の１つまたは複数の中間グループを含む、と、
前記１つまたは複数の中間グループのうちの第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することと、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと第１のテーブルを送信することとの間のある時間制約を決定すること、前記ストリームの個々のデータセグメントをセグメントの前記第１のグループにグループ化することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと第２のテーブルを送信することとの間の別の時間制約を決定すること、前記ストリームの個々のデータセグメントをセグメントの前記別のグループにグループ化することは、前記別の時間制約にさらに基づく、と
を備える、方法。
【請求項１０】
前記データセグメントはＤＡＳＨセグメントである、請求項９に記載の方法。
【請求項１１】
前記第１のテーブルとセグメントの前記集合とはＦＬＵＴＥパケットである、請求項９に記載の方法。
【請求項１２】
データセグメントの前記ストリームはビデオデータを備える、請求項９に記載の方法。
【請求項１３】
前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、請求項９に記載の方法。
【請求項１４】
データセグメントを送るためのシステムであって、
データセグメントの受信ストリームに基づいてセグメントの第１のグループを確立するための手段と、
情報の第１のテーブルを生成するための手段、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信するための手段と、
前記データセグメントに基づいてセグメントの第２のグループを確立するための手段、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成するための手段、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信するための手段と、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定するための手段と、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定するための手段と、ここにおいて、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
を備える、システム。
【請求項１５】
セグメントの前記第１のグループを前記確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを前記確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、請求項１４に記載のシステム。
【請求項１６】
データセグメントを送るためのシステムであって、
データセグメントの受信ストリームに基づいて、個々のセグメントをサイズＮＳのセグメントのグループにグループ化するための手段、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の中間グループを含む、と、
第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成するための手段と、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信するための手段と、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと第１のテーブルを送信することとの間のある時間制約を決定するための手段と、ここにおいて、前記ストリームの個々のデータセグメントをセグメントの前記第１のグループにグループ化することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと第２のテーブルを送信することとの間の別の時間制約を決定するための手段と、ここにおいて、前記ストリームの個々のデータセグメントをセグメントの前記第２のグループにグループ化することは、前記別の時間制約にさらに基づく、と
を備える、システム。
【請求項１７】
データセグメントを送るためのシステムであって、
データセグメントのストリームを受信することと、
前記データセグメントに基づいてセグメントの第１のグループを確立することと、
情報の第１のテーブルを生成すること、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信することと、
前記データセグメントに基づいてセグメントの第２のグループを確立すること、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成すること、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信することと、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定すること、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定すること、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
を行うように構成された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合された、データを記憶するためのメモリと
を備える、システム。
【請求項１８】
セグメントの前記第１のグループを確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、請求項１７に記載のシステム。
【請求項１９】
前記データセグメントはＤＡＳＨセグメントである、請求項１７に記載のシステム。
【請求項２０】
前記第１のテーブルとセグメントの前記第１のグループとはＦＬＵＴＥパケットである、請求項１７に記載のシステム。
【請求項２１】
データセグメントの前記ストリームはビデオデータを備える、請求項１７に記載のシステム。
【請求項２２】
前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、請求項１７に記載のシステム。
【請求項２３】
前記少なくとも１つのプロセッサは、
前記データセグメントに基づいてセグメントの第３のグループを確立すること、セグメントの前記第３のグループは、セグメントの前記第２のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第３のテーブルを生成すること、前記情報は、セグメントの前記第２のグループおよび前記第３のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、セグメントの前記第１のグループまたは前記第２のグループの一部でなかったセグメントの前記第３のグループからのセグメントを含むセグメントの集合とを送信することと
を行うようにさらに構成された、請求項１７に記載のシステム。
【請求項２４】
データセグメントを送るためのシステムであって、
データセグメントのストリームを受信することと、
前記ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化すること、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の中間グループを含む、と、
第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することと、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと第１のテーブルを送信することとの間のある時間制約を決定すること、前記ストリームの個々のデータセグメントをセグメントの前記第１のグループにグループ化することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと第２のテーブルを送信することとの間の別の時間制約を決定すること、前記ストリームの個々のデータセグメントをセグメントの前記別のグループにグループ化することは、前記別の時間制約にさらに基づく、と
を行うように構成された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合された、データを記憶するためのメモリと
を備える、システム。
【請求項２５】
前記セグメントはＤＡＳＨセグメントである、請求項２４に記載のシステム。
【請求項２６】
前記第１のテーブルとセグメントの前記集合とはＦＬＵＴＥパケットである、請求項２４に記載のシステム。
【請求項２７】
データセグメントの前記ストリームはビデオデータを備える、請求項２４に記載のシステム。
【請求項２８】
前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、請求項２４に記載のシステム。
【請求項２９】
データセグメントの送信を管理するための命令をコンピュータに実行させるコンピュータプログラムであって、前記命令は、前記コンピュータに、
データセグメントのストリームを受信させるためのコードと、
前記データセグメントに基づいてセグメントの第１のグループを確立させるためのコードと、
情報の第１のテーブルを生成させるためのコードと、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信させるためのコードと、
前記データセグメントに基づいてセグメントの第２のグループを確立させるためのコードと、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成させるためのコードと、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信させるためのコードと、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定させるためのコードと、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定させるためのコードと、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
を備える、コンピュータプログラム。
【請求項３０】
前記コンピュータに、セグメントの前記第１のグループを前記確立させるためのコードは、前記コンピュータに、前記第１のグループのためのデータセグメントの数を決定させるためのコードをさらに備え、
前記コンピュータに、セグメントの前記第２のグループを前記確立させるためのコードは、前記コンピュータに、前記第２のグループのためのデータセグメントの数を決定させるためのコードをさらに備える、請求項２９に記載のコンピュータプログラム。
【請求項３１】
データセグメントの送信を管理するための命令をコンピュータに実行させるコンピュータプログラムであって、前記命令は、前記コンピュータに、
データセグメントのストリームを受信させるためのコードと、
前記ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化させるためのコードと、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の中間グループを含む、と、
第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成させるためのコードと、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信させるためのコードと、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと第１のテーブルを送信することとの間のある時間制約を決定させるためのコードと、前記ストリームの個々のデータセグメントをセグメントの前記第１のグループにグループ化させるためのコードは、前記決定された時間制約にさらに基づく、ここにおいて、前記時間制約はプレゼンテーションが開始する前の初期遅延と、チャネル切替遅延とに関する、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信させることと第２のテーブルを送信させることとの間の別の時間制約を決定させるためのコードと、前記ストリームの個々のデータセグメントをセグメントの前記別のグループにグループ化することは、前記別の時間制約にさらに基づく、と
を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、本出願の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる、２０１１年１０月１３日に出願された「CONTROLLING STREAMING DELAY IN NETWORKS」と題する仮出願第６１／５４６，９６４号の優先権を主張する。
【０００２】
本開示の態様は、情報を送信するときの遅延を低減することに関し得る。より詳細には、本発明の態様は、単方向トランスポートを介したファイル配信（ＦＬＵＴＥ：File Delivery over Unidirectional Transport）を介した動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：Dynamic Adaptive Streaming over HTTP）環境においてＦＬＵＴＥパッケージエンジンに起因する（ビデオなどの）エンドツーエンドコンテンツ送信の遅延を低減することに関し得る。
【背景技術】
【０００３】
ワイヤレス通信ネットワークは、音声、ビデオ、パケットデータ、メッセージング、ブロードキャストなどの様々な通信サービスを提供するために広く展開されている。これらのワイヤレスネットワークは、利用可能なネットワークリソースを共有することによって複数のユーザをサポートすることが可能な多元接続ネットワークであり得る。そのような多元接続ネットワークの例としては、符号分割多元接続（ＣＤＭＡ）ネットワーク、時分割多元接続（ＴＤＭＡ）ネットワーク、周波数分割多元接続（ＦＤＭＡ）ネットワーク、直交ＦＤＭＡ（ＯＦＤＭＡ）ネットワーク、およびシングルキャリアＦＤＭＡ（ＳＣ−ＦＤＭＡ）ネットワークがある。
【０００４】
ワイヤレス通信ネットワークは、モバイルエンティティとも呼ばれるいくつかのユーザ機器（ＵＥ）の通信をサポートすることができるいくつかの基地局を含み得る。ＵＥは、ダウンリンクおよびアップリンクを介して基地局と通信し得る。ダウンリンク（または順方向リンク）は基地局からＵＥへの通信リンクを指し、アップリンク（または逆方向リンク）はＵＥから基地局への通信リンクを指す。本明細書で使用する「基地局」は、ワイヤレス通信システムのｅノードＢ（ｅＮＢ）、ノードＢ、ホームノードＢ、または同様のネットワーク構成要素を意味する。
【０００５】
第３世代パートナーシッププロジェクト（３ＧＰＰ：3rd Generation Partnership Project）ロングタームエボリューション（ＬＴＥ：Long Term Evolution）は、モバイル通信用グローバルシステム（ＧＳＭ（登録商標）：Global System for Mobile communications）およびユニバーサルモバイルテレコミュニケーションシステム（ＵＭＴＳ：Universal Mobile Telecommunications System）の発展形として、セルラー技術における大きな進歩を代表するものである。ＬＴＥ物理レイヤ（ＰＨＹ）は、発展型ノードＢ（ｅＮＢ）などの基地局と、ＵＥなどのモバイルエンティティとの間でデータと制御情報の両方を搬送する高効率な方法を与える。従来の適用例では、マルチメディアのために高帯域幅通信を可能にするための方法は単一周波数ネットワーク（ＳＦＮ）動作であった。ＳＦＮは、加入者ＵＥと通信するために、たとえば、ｅＮＢなどの無線送信機を利用する。ユニキャスト動作では、各ｅＮＢは、１つまたは複数の特定の加入者ＵＥに向けられた情報を搬送する信号を送信するように制御される。ユニキャストシグナリングの特異性により、たとえば、音声通話、テキストメッセージング、またはビデオ通話など、人対人サービスが可能になる。
【０００６】
ブロードキャスト動作では、ブロードキャストエリア中のいくつかのｅＮＢが、ブロードキャストエリア中の加入者ＵＥによって受信されアクセスされ得る情報を搬送する信号を同期形式でブロードキャストし得る。ブロードキャスト動作の一般性により、公衆が関心をもつ情報、たとえば、イベント関連のマルチメディアブロードキャストを送信する際の効率をより高めることが可能になる。イベント関連のマルチメディアおよび他のブロードキャストサービスに対する需要およびシステム能力が高まるにつれて、システムオペレータは、３ＧＰＰネットワークにおいてブロードキャスト動作を利用することに対してますます関心を示すようになった。過去に、３ＧＰＰ  ＬＴＥ技術は主にユニキャストサービスのために使用され、ブロードキャストシグナリングに関係する改善および拡張の機会は放置されてきた。
【０００７】
ビデオコンテンツなどのコンテンツの送信は、通信ネットワークにおいて様々な方法によって実行され得る。ビデオコンテンツの場合、たとえば、表示すべきビデオソースからのビデオ情報の送信は、とりわけ、ユニキャスト送信およびマルチキャスト／ブロードキャスト送信を介して行われ得る。ユニキャスト送信は、明確にターゲットされた受信デバイスに向けられる。ユニキャスト送信を取得するために、ターゲットデバイスは、ビデオソースのアドレスをもつユニフォームリソースロケータ（「ＵＲＬ」）を有し得、ターゲットデバイスが、ビデオファイルのダウンロードを可能にするためにビデオソース（一般にサーバ）に送り得る、ＨＴＴＰ  ＧＥＴコマンドを生成し得る。
【０００８】
ユニキャスト環境におけるビデオの送信のための知られている方法は、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）によるものである。ユニキャストにおけるＤＡＳＨの使用はファイル全体を取得する。ＤＡＳＨは、ビデオファイルを、ＤＡＳＨセグメントと呼ばれるより小さい構成要素に変換し得、ＤＡＳＨセグメントは、所望のビデオを表示するために受信デバイスにおいて再アセンブルされ得る。
【０００９】
発展型マルチメディアブロードキャスト／マルチキャストサービス（ｅＭＢＭＳ：evolved-Multimedia Broadcast/Multicast Service）におけるなど、マルチキャスト送信またはブロードキャスト送信は、送信が複数の受信デバイスに送られるので、様々な問題をもたらす。これらの環境では、受信デバイスのモデムは、関連するシステムが情報を取得するための措置を実際に講じる前に、その情報を取得することができる。その受信された情報は、受信デバイスのローカルキャッシュにローカルに記憶され得る。（一般にアプリケーションレイヤにある）システムが、情報を取得するためのＵＲＬを生成すると、生成されたＵＲＬは、ユニキャスト環境の場合のようにサーバではなく、ローカルキャッシュを指し得る。
【００１０】
単方向トランスポートを介したファイル配信（ＦＬＵＴＥ）と組み合わせて利用されるＤＡＳＨは、マルチキャスト環境のために使用されてきた１つの方法である。この方法では、ビデオコンテンツはＤＡＳＨセグメントに変換され得る。ＤＡＳＨセグメントの小さいグループはＦＬＵＴＥパッケージエンジン（ＦＰＥ：FLUTE package engine）によって蓄積され得、ＦＰＥは、次に、送信のためにＤＡＳＨセグメントをＦＬＵＴＥパケットに変換し得る。この環境におけるＦＬＵＴＥを介したＤＡＳＨの使用は、ビデオコンテンツの表示における遅延問題および中断をもたらし得る。
【発明の概要】
【００１１】
以下で、１つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の主要または重要な要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、１つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
【００１２】
ユニキャスト送信およびマルチキャスト／ブロードキャスト送信においてストリーミング遅延を制御するための装置および方法を開示する。一態様によれば、データセグメントを送るための方法は、データセグメントのストリームを受信することと、データセグメントに基づいてセグメントの第１のグループを確立することと、情報の第１のテーブルを生成することであって、情報が、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第１のテーブルとセグメントの第１のグループとを送信することと、データセグメントに基づいてセグメントの第２のグループを確立することであって、セグメントの第２のグループが、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含むことと、情報の第２のテーブルを生成することであって、情報が、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第２のテーブルと、第１のグループの一部でなかった第２のグループからのデータセグメントを含むセグメントの集合とを送信することとを含む。
【００１３】
別の態様によれば、データセグメントを送るための方法は、データセグメントのストリームを受信することと、ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化することであって、セグメントのグループが、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の１つまたは複数の中間グループを含むことと、１つまたは複数の中間グループのうちの第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することとを含む。
【００１４】
別の態様によれば、データセグメントを送るためのシステムは、データセグメントの受信ストリームに基づいてセグメントの第１のグループを確立するための手段と、情報の第１のテーブルを生成するための手段であって、情報が、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第１のテーブルとセグメントの第１のグループとを送信するための手段と、データセグメントに基づいてセグメントの第２のグループを確立するための手段であって、セグメントの第２のグループが、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含むことと、情報の第２のテーブルを生成するための手段であって、情報が、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第２のテーブルと、第１のグループの一部でなかった第２のグループからのデータセグメントを含むセグメントの集合とを送信するための手段とを含む。
【００１５】
別の態様によれば、データセグメントを送るためのシステムは、データセグメントの受信ストリームに基づいて、個々のセグメントをサイズＮＳのセグメントのグループにグループ化するための手段であって、セグメントのグループが、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の中間グループを含むことと、第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成するための手段と、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信するための手段とを含む。
【００１６】
別の態様によれば、データセグメントを送るためのシステムは、データセグメントのストリームを受信することと、データセグメントに基づいてセグメントの第１のグループを確立することと、情報の第１のテーブルを生成することであって、情報が、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第１のテーブルとセグメントの第１のグループとを送信することと、データセグメントに基づいてセグメントの第２のグループを確立することであって、セグメントの第２のグループが、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含むことと、情報の第２のテーブルを生成することであって、情報が、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第２のテーブルと、第１のグループの一部でなかった第２のグループからのデータセグメントを含むセグメントの集合とを送信することとを行うように構成された少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合された、データを記憶するためのメモリとを含む。
【００１７】
別の態様によれば、データセグメントを送るためのシステムは、データセグメントのストリームを受信することと、ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化することであって、セグメントのグループが、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の中間グループを含むことと、第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することとを行うように構成された少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合された、データを記憶するためのメモリとを含む。
【００１８】
別の態様によれば、データセグメントの送信を管理するためのコンピュータプログラム製品は、データセグメントのストリームを受信することと、データセグメントに基づいてセグメントの第１のグループを確立することと、情報の第１のテーブルを生成することであって、情報が、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第１のテーブルとセグメントの第１のグループとを送信することと、データセグメントに基づいてセグメントの第２のグループを確立することであって、セグメントの第２のグループが、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含むことと、情報の第２のテーブルを生成することであって、情報が、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第２のテーブルと、第１のグループの一部でなかった第２のグループからのデータセグメントを含むセグメントの集合とを送信することとのためのコードを備えるコンピュータ可読媒体を含む。
【００１９】
別の態様によれば、データセグメントの送信を管理するためのコンピュータプログラム製品は、データセグメントのストリームを受信するためのコードを含むコンピュータ可読媒体を含む。コンピュータ可読媒体は、ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化することであって、セグメントのグループが、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の中間グループを含むコードをさらに含み得る。コンピュータ可読媒体は、第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成するためのコードをさらに含み得る。コンピュータ可読媒体は、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信するためのコードをさらに含み得る。
【００２０】
様々な態様が例として図示され説明される、以下の発明を実施するための形態から、当業者には他の態様が容易に明らかになることを理解されたい。図面および発明を実施するための形態は、本質的に例示的なものと見なされるべきであり、限定的なものと見なされるべきではない。
【図面の簡単な説明】
【００２１】
【図１】本開示の一態様による、本発明の実施形態が使用され得るネットワークの一例を示す図。
【図２】本開示の一態様に従って構成された基地局／ｅＮＢおよびＵＥの設計を概念的に示すブロック図。
【図３】ｅＭＢＭＳにおけるＦＬＵＴＥを介したＤＡＳＨの例示的な実施形態を概念的に示すブロック図。
【図４】本開示の一態様によるＦＬＵＴＥパッキングエンジンのブロック図。
【図５】本開示の一態様による、図４のＦＬＵＴＥパッキングエンジンによって実行される方法のフローチャート。
【図６Ａ】本開示の一態様による、図５の方法によるセグメントグループへのＤＡＳＨセグメントのグループ化のブロック図。
【図６Ｂ】図６Ａの例による例示的なＦＤＴインスタンスを示す図。
【図７】図４のＦＬＵＴＥパッケージングエンジンを利用する、ｅＭＢＭＳにおけるＦＬＵＴＥを介したＤＡＳＨを概念的に示すブロック図。
【図８】本開示の一態様による、ストリーミング遅延を制御するための例示的な方法を示す図。
【図９】本開示の別の態様による、ストリーミング遅延を制御するための別の例示的な方法を示す図。
【図１０】たとえば、図８の方法による、本開示の一態様の別の例示的な実施形態のブロック図。
【図１１】たとえば、図９の方法による、本開示の一態様の別の例示的な実施形態のブロック図。
【詳細な説明】
【００２２】
添付の図面に関して以下に示す発明を実施するための形態は、様々な構成を説明するものであり、本明細書で説明する概念が実施され得る唯一の構成を表すものではない。発明を実施するための形態は、様々な概念の完全な理解を与えるための具体的な詳細を含む。ただし、これらの概念はこれらの具体的な詳細なしに実施され得ることが当業者には明らかであろう。いくつかの例では、そのような概念を不明瞭にしないように、よく知られている構造および構成要素をブロック図の形式で示す。
【００２３】
本明細書で説明する技法は、ＣＤＭＡ、ＴＤＭＡ、ＦＤＭＡ、ＯＦＤＭＡ、ＳＣ−ＦＤＭＡおよび他のネットワークなど、様々なワイヤレス通信ネットワークのために使用され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。ＣＤＭＡネットワークは、ユニバーサル地上波無線アクセス（ＵＴＲＡ：Universal Terrestrial Radio Access）、ＣＤＭＡ２０００などの無線技術を実装し得る。ＵＴＲＡは、広帯域ＣＤＭＡ（ＷＣＤＭＡ（登録商標））およびＣＤＭＡの他の変形態を含む。ＣＤＭＡ２０００は、ＩＳ−２０００、ＩＳ−９５およびＩＳ−８５６規格をカバーする。ＴＤＭＡネットワークは、モバイル通信用グローバルシステム（ＧＳＭ）などの無線技術を実装し得る。ＯＦＤＭＡネットワークは、発展型ＵＴＲＡ（Ｅ−ＵＴＲＡ：Evolved UTRA）、ウルトラモバイルブロードバンド（ＵＭＢ：Ultra Mobile Broadband）、ＩＥＥＥ８０２．１１（Ｗｉ−Ｆｉ（登録商標））、ＩＥＥＥ８０２．１６（ＷｉＭＡＸ（登録商標））、ＩＥＥＥ８０２．２０、Ｆｌａｓｈ−ＯＦＤＭＡなどの無線技術を実装し得る。ＵＴＲＡおよびＥ−ＵＴＲＡは、ユニバーサルモバイルテレコミュニケーションシステム（ＵＭＴＳ）の一部である。３ＧＰＰロングタームエボリューション（ＬＴＥ）およびＬＴＥアドバンスト（ＬＴＥ−Ａ：LTE-Advanced）は、Ｅ−ＵＴＲＡを使用するＵＭＴＳの新しいリリースである。ＵＴＲＡ、Ｅ−ＵＴＲＡ、ＵＭＴＳ、ＬＴＥ、ＬＴＥ−ＡおよびＧＳＭは、「第３世代パートナーシッププロジェクト」（３ＧＰＰ）という名称の団体からの文書に記載されている。ＣＤＭＡ２０００およびＵＭＢは、「第３世代パートナーシッププロジェクト２」（３ＧＰＰ２：3rd Generation Partnership Project 2）という名称の団体からの文書に記載されている。本明細書で説明する技法は、上記のワイヤレスネットワークおよび無線技術、ならびに他のワイヤレスネットワークおよび無線技術のために使用され得る。明快のために、本技法のいくつかの態様について以下ではＬＴＥに関して説明し、以下の説明の大部分でＬＴＥ用語を使用する。
【００２４】
以下の説明では、ビデオコンテンツの送信について特に説明する。ただし、ビデオは一例にすぎず、本発明の概念は必ずしもその例に限定されるとは限らないこと、およびこれらの概念は他のタイプのコンテンツに適用可能であり得ることを理解されたい。
【００２５】
図１に、ワイヤレス通信ネットワーク１００を示し、これはＬＴＥネットワークであり得る。ワイヤレスネットワーク１００は、いくつかのｅＮＢ１１０と他のネットワークエンティティとを含み得る。ｅＮＢは、ＵＥと通信する局であり得、基地局、ノードＢ、アクセスポイント、または他の用語で呼ばれることもある。各ｅＮＢ１１０ａ、１１０ｂ、１１０ｃは、特定の地理的エリアに通信カバレージを与え得る。３ＧＰＰでは、「セル」という用語は、この用語が使用されるコンテキストに応じて、ｅＮＢのカバレージエリアおよび／またはこのカバレージエリアをサービスしているｅＮＢサブシステムを指すことがある。
【００２６】
ｅＮＢは、マクロセル、ピコセル、フェムトセル、および／または他のタイプのセルに通信カバレージを与え得る。マクロセルは、比較的大きい地理的エリア（たとえば、半径数キロメートル）をカバーし得、サービスに加入しているＵＥによる無制限アクセスを可能にし得る。ピコセルは、比較的小さい地理的エリアをカバーし得、サービスに加入しているＵＥによる無制限アクセスを可能にし得る。フェムトセルは、比較的小さい地理的エリア（たとえば、自宅）をカバーし得、フェムトセルとの関連を有するＵＥ（たとえば、限定加入者グループ（ＣＳＧ：Closed Subscriber Group）中のＵＥ、自宅内のユーザのためのＵＥなど）による制限付きアクセスを可能にし得る。マクロセルのためのｅＮＢはマクロｅＮＢと呼ばれることがある。ピコセルのためのｅＮＢはピコｅＮＢと呼ばれることがある。フェムトセルのためのｅＮＢはフェムトｅＮＢまたはホームｅＮＢ（ＨｅＮＢ）と呼ばれることがある。図１に示す例では、ｅＮＢ１１０ａ、１１０ｂおよび１１０ｃは、それぞれマクロセル１０２ａ、１０２ｂおよび１０２ｃのためのマクロｅＮＢであり得る。ｅＮＢ１１０ｘは、ＵＥ１２０ｘにサービスするピコセル１０２ｘのためのピコｅＮＢであり得る。ｅＮＢ１１０ｙおよび１１０ｚは、それぞれフェムトセル１０２ｙおよび１０２ｚのためのフェムトｅＮＢであり得る。ｅＮＢは、１つまたは複数の（たとえば、３つの）セルをサポートし得る。
【００２７】
ワイヤレスネットワーク１００はまた、中継局１１０ｒを含み得る。中継局は、上流局（たとえば、ｅＮＢまたはＵＥ）からデータおよび／または他の情報の送信を受信し、そのデータおよび／または他の情報の送信を下流局（たとえば、ＵＥまたはｅＮＢ）に送る局である。中継局はまた、他のＵＥに対する送信を中継するＵＥであり得る。図１に示す例では、中継局１１０ｒは、ｅＮＢ１１０ａとＵＥ１２０ｒとの間の通信を可能にするために、ｅＮＢ１１０ａおよびＵＥ１２０ｒと通信し得る。中継局は、リレーｅＮＢ、リレーなどと呼ばれることもある。
【００２８】
ワイヤレスネットワーク１００は、様々なタイプのｅＮＢ、たとえば、マクロｅＮＢ、ピコｅＮＢ、フェムトｅＮＢ、リレーなどを含む異種ネットワークであり得る。これらの様々なタイプのｅＮＢは、様々な送信電力レベル、様々なカバレージエリア、およびワイヤレスネットワーク１００中の干渉に対する様々な影響を有し得る。たとえば、マクロｅＮＢは、高い送信電力レベル（たとえば、２０ワット）を有し得るが、ピコｅＮＢ、フェムトｅＮＢ、およびリレーは、より低い送信電力レベル（たとえば、１ワット）を有し得る。
【００２９】
ワイヤレスネットワーク１００は、同期動作または非同期動作をサポートし得る。同期動作の場合、ｅＮＢは同様のフレームタイミングを有し得、異なるｅＮＢからの送信は近似的に時間的に整合され得る。非同期動作の場合、ｅＮＢは異なるフレームタイミングを有し得、異なるｅＮＢからの送信は時間的に整合されないことがある。本明細書で説明する技法は、同期動作と非同期動作の両方のために使用され得る。
【００３０】
ネットワークコントローラ１３０は、ｅＮＢのセットに結合し、これらのｅＮＢの協調および制御を行い得る。ネットワークコントローラ１３０は、バックホールを介してｅＮＢ１１０と通信し得る。ｅＮＢ１１０はまた、たとえば、ワイヤレスバックホールまたはワイヤラインバックホールを介して直接または間接的に互いに通信し得る。
【００３１】
ＵＥ１２０は、ワイヤレスネットワーク１００全体にわたって分散され得、各ＵＥは固定または移動であり得る。ＵＥは、端末、移動局、加入者ユニット、局などと呼ばれることもある。ＵＥは、セルラーフォン、携帯情報端末（ＰＤＡ）、ワイヤレスモデム、ワイヤレス通信デバイス、ハンドヘルドデバイス、ラップトップコンピュータ、コードレスフォン、ワイヤレスローカルループ（ＷＬＬ）局、または他のモバイルエンティティであり得る。ＵＥは、マクロｅＮＢ、ピコｅＮＢ、フェムトｅＮＢ、リレー、または他のネットワークエンティティと通信することが可能であり得る。図１において、両矢印付きの実線は、ダウンリンクおよび／またはアップリンク上での、ＵＥと、そのＵＥをサービスするように指定されたｅＮＢであるサービングｅＮＢとの間の所望の送信を示す。両矢印付きの破線は、ＵＥとｅＮＢとの間の干渉送信を示す。
【００３２】
ＬＴＥは、ダウンリンク上では直交周波数分割多重化（ＯＦＤＭ）を利用し、アップリンク上ではシングルキャリア周波数分割多重化（ＳＣ−ＦＤＭ）を利用する。ＯＦＤＭおよびＳＣ−ＦＤＭは、システム帯域幅を、一般にトーン、ビンなどとも呼ばれる複数（Ｋ）個の直交サブキャリアに区分する。各サブキャリアはデータで変調され得る。概して、変調シンボルは、ＯＦＤＭの場合は周波数領域で、ＳＣ−ＦＤＭの場合は時間領域で送られる。隣接するサブキャリア間の間隔は固定であり得、サブキャリアの総数（Ｋ）はシステム帯域幅に依存し得る。たとえば、Ｋは、１．２５、２．５、５、１０または２０メガヘルツ（ＭＨｚ）のシステム帯域幅に対してそれぞれ１２８、２５６、５１２、１０２４または２０４８に等しくなり得る。システム帯域幅はまた、サブバンドに区分され得る。たとえば、サブバンドは１．０８ＭＨｚをカバーし得、１．２５、２．５、５、１０または２０ＭＨｚのシステム帯域幅に対してそれぞれ１つ、２つ、４つ、８つまたは１６個のサブバンドがあり得る。
【００３３】
図２に、図１の基地局／ｅＮＢのうちの１つおよびＵＥのうちの１つに対応し得る、基地局／ｅＮＢ１１０およびＵＥ１２０の設計の一例のブロック図を示す。制限付き関連付けシナリオの場合、基地局１１０は図１のマクロｅＮＢ１１０ｃであり得、ＵＥ１２０はＵＥ１２０ｙであり得る。基地局１１０はまた、何らかの他のタイプの基地局であり得る。基地局１１０はアンテナ２３４ａ〜２３４ｔを装備し得、ＵＥ１２０はアンテナ２５２ａ〜２５２ｒを装備し得る。
【００３４】
基地局１１０において、送信プロセッサ２２０は、データソース２１２からデータを受信し、コントローラ／プロセッサ２４０から制御情報を受信し得る。制御情報は、ＰＢＣＨ、ＰＣＦＩＣＨ、ＰＨＩＣＨ、ＰＤＣＣＨなどのためのものであり得る。データは、ＰＤＳＣＨなどのためのものであり得る。プロセッサ２２０は、データと制御情報とを処理（たとえば、符号化およびシンボルマッピング）して、それぞれデータシンボルと制御シンボルとを取得し得る。プロセッサ２２０はまた、たとえば、ＰＳＳ、ＳＳＳ、およびセル固有基準信号のための基準シンボルを生成し得る。送信（ＴＸ）多入力多出力（ＭＩＭＯ）プロセッサ２３０は、適用可能な場合、データシンボル、制御シンボル、および／または基準シンボルに対して空間処理（たとえば、プリコーディング）を実行し得、出力シンボルストリームを変調器（ＭＯＤ）２３２ａ〜２３２ｔに与え得る。各変調器２３２は、（たとえば、ＯＦＤＭなどのために）それぞれの出力シンボルストリームを処理して、出力サンプルストリームを取得し得る。各変調器２３２はさらに、出力サンプルストリームを処理（たとえば、アナログへの変換、増幅、フィルタ処理、およびアップコンバート）して、ダウンリンク信号を取得し得る。変調器２３２ａ〜２３２ｔからのダウンリンク信号は、それぞれアンテナ２３４ａ〜２３４ｔを介して送信され得る。
【００３５】
ＵＥ１２０において、アンテナ２５２ａ〜２５２ｒは、基地局１１０からダウンリンク信号を受信し得、受信信号をそれぞれ復調器（ＤＥＭＯＤ）２５４ａ〜２５４ｒに与え得る。各復調器２５４は、それぞれの受信信号を調整（たとえば、フィルタ処理、増幅、ダウンコンバート、およびデジタル化）して、入力サンプルを取得し得る。各復調器２５４は、さらに、（たとえば、ＯＦＤＭなどの）入力サンプルを処理して、受信シンボルを取得し得る。ＭＩＭＯ検出器２５６は、すべての復調器２５４ａ〜２５４ｒから受信シンボルを取得し、適用可能な場合は受信シンボルに対してＭＩＭＯ検出を実行し、検出シンボルを与え得る。受信プロセッサ２５８は、検出シンボルを処理（たとえば、復調、デインターリーブ、および復号）し、ＵＥ１２０の復号されたデータをデータシンク２６０に与え、復号された制御情報をコントローラ／プロセッサ２８０に与え得る。
【００３６】
アップリンク上では、ＵＥ１２０において、送信プロセッサ２６４は、データソース２６２から（たとえば、ＰＵＳＣＨのための）データを受信し、処理し得、コントローラ／プロセッサ２８０から（たとえば、ＰＵＣＣＨのための）制御情報を受信し、処理し得る。プロセッサ２６４はまた、基準信号のための基準シンボルを生成し得る。送信プロセッサ２６４からのシンボルは、適用可能な場合はＴＸ  ＭＩＭＯプロセッサ２６６によってプリコードされ、さらに（たとえば、ＳＣ−ＦＤＭなどのために）変調器２５４ａ〜２５４ｒによって処理され、基地局１１０に送信され得る。基地局１１０において、ＵＥ１２０からのアップリンク信号は、アンテナ２３４によって受信され、復調器２３２によって処理され、適用可能な場合はＭＩＭＯ検出器２３６によって検出され、さらに受信プロセッサ２３８によって処理されて、ＵＥ１２０によって送られた復号されたデータおよび制御情報が取得され得る。プロセッサ２３８は、復号されたデータをデータシンク２３９に与え、復号された制御情報をコントローラ／プロセッサ２４０に与え得る。
【００３７】
コントローラ／プロセッサ２４０および２８０は、それぞれ基地局１１０およびＵＥ１２０における動作を指示し得る。基地局１１０におけるプロセッサ２４０および／または他のプロセッサならびにモジュールは、本明細書で説明する技法のための様々なプロセスを実行するかまたはその実行を指示し得る。ＵＥ１２０におけるプロセッサ２８０および／または他のプロセッサならびにモジュールは、本明細書で説明する技法のための機能ブロックおよび／または他のプロセスを実行するかまたはその実行を指示し得る。メモリ２４２および２８２は、それぞれ基地局１１０およびＵＥ１２０のためのデータおよびプログラムコードを記憶し得る。スケジューラ２４４は、ダウンリンクおよび／またはアップリンク上でのデータ送信のためにＵＥをスケジュールし得る。
【００３８】
一構成では、ワイヤレス通信のためのＵＥ１２０は、ＵＥの接続モード中に干渉基地局からの干渉を検出するための手段と、干渉基地局の得られたリソースを選択するための手段と、得られたリソース上の物理ダウンリンク制御チャネルの誤り率を取得するための手段と、誤り率が所定のレベルを超えたことに応答して実行可能である、無線リンク障害を宣言するための手段とを含み得る。一態様では、上述の手段は、上述の手段によって具陳された機能を実行するように構成された、（１つまたは複数の）プロセッサ、コントローラ／プロセッサ２８０、メモリ２８２、受信プロセッサ２５８、ＭＩＭＯ検出器２５６、復調器２５４ａ、およびアンテナ２５２ａであり得る。別の態様では、上述の手段は、上述の手段によって具陳された機能を実行するように構成されたモジュールまたは任意の装置であり得る。
【００３９】
ＤＡＳＨの性質は、各ＤＡＳＨセグメントが識別子、たとえば、ユニフォームリソースロケータ（ＵＲＬ）を介してアクセスされ得ることである（以下の説明では「ＵＲＬ」を使用するが、本発明は必ずしもそれに限定されるとは限らないことを理解されたい）。次に図３を参照すると、ｅＭＢＭＳにおいてＦＬＵＴＥを介したＤＡＳＨによってビデオコンテンツ３０２をディスプレイ３２２に送るための例示的なアーキテクチャが示されている。ビデオエンコーダ３０４（たとえば、ビデオのためのＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４、Ｈ．２６５コーデック）がビデオコンテンツ３０２を受信し得、符号化ビデオコンテンツ３０５を出力し得る。符号化ビデオコンテンツは固定持続時間を有し得る。ＤＡＳＨエンコーダ３０６は、符号化ビデオコンテンツ３０５を受信し得、ＤＡＳＨ、たとえば、（３ＧＰ−ＤＡＳＨと呼ばれることもある）３ＧＰＰ適応ＨＴＴＰストリーミングのためにフォーマットされたＤＡＳＨビデオセグメント３０８を出力し得る。
【００４０】
ビデオエンコーダ３０４およびＤＡＳＨエンコーダ３０６によって行われる符号化は約ｔ秒かかり得、ｔは、ビデオエンコーダ３０４およびＤＡＳＨエンコーダ３０６によって符号化された、対応する基礎をなすビデオコンテンツ（の一部分）の持続時間である。したがって、非限定的な例として、２秒のビデオコンテンツ３０２の場合、２秒のビデオコンテンツに対応する（１つまたは複数の）ＤＡＳＨセグメント３０８を出力することは約２秒かかり得る。符号化時間の大部分は、概して、ビデオエンコーダ３０４によって占められ得る。
【００４１】
ＦＬＵＴＥパッケージエンジン（ＦＰＥ）３１０は、ＤＡＳＨセグメント３０８を受信し得、それらをＦＬＵＴＥパケット３１２に変換し得る。ブロードキャストマルチキャストサービスセンター（「ＢＭ−ＳＣ」）３１４は、ＦＬＵＴＥパケット３１２を受信し得、それらをＵＥ受信機３１６にブロードキャストし得る。受信されたＦＬＵＴＥパケット３１２は、バッファ３１８において受け取られ、デコーダ３２０において復号され、ディスプレイ３２２上に表示され得る。ＵＥ受信機３１６、バッファ３１８、デコーダ３２０、および／またはディスプレイ３２２は、図１および図２に関して説明したＵＥ１２０の一部であり得る。
【００４２】
ＦＬＵＴＥパケット３１２をＤＡＳＨセグメント３０８に相関させるために、ＦＰＥ３１０は、各セグメントに１つの送信オブジェクト識別子（ＴＯＩ：Transmission Object Identifier）を割り当て得る。１つのセグメントは１つのファイルと見なされ得、セグメントＵＲＬは、ＴＯＩによって識別されるＦＬＵＴＥファイルのファイル名と同じであり得る。ＦＰＥ３１０が複数のＤＡＳＨセグメント３０８をアグリゲートするとき、ＦＰＥ３１０は、それらのＤＡＳＨセグメント３０８についての属性を記述するためのファイル配信テーブル（ＦＤＴ：File Delivery Table）インスタンスを生成し得る。例示的なＦＤＴインスタンスについては、図６Ｂに関して以下で説明する。属性は、（たとえば、ＵＲＬによって指定された）ファイル名、ファイルタイプ（たとえば、ファイルのＭＩＭＥメディアタイプ）、ファイルのサイズ、ファイルの符号化フォーマット、および／またはファイルのメッセージダイジェストを含み得る。ＦＤＴは、ＦＰＥ３１０によって送られるＦＬＵＴＥパケット３１２の一部であり得る。
【００４３】
上記の方法に伴う問題は、ＤＡＳＨフォーマッティングとＦＬＵＴＥパッケージングとが逐次的であるため、ＦＤＴインスタンスを生成するより前にＦＰＥ３１０が受信しなければならないＤＡＳＨセグメント３０８の数に遅延が比例し得ることである。さらに、遅延はＤＡＳＨセグメント３０８の持続時間ｔに比例し得る。ライブストリーミングブロードキャストシステムでは、エンドツーエンド遅延は、概して、システム要件および／または、たとえば、モバイルデバイスにおけるエンドユーザエクスペリエンスによって決定され得る、所定の制限時間内に維持される必要があり得る。エンドツーエンド遅延は、ネットワーク側でビデオエンコーダに供給されるビデオコンテンツ（たとえば、図３中のポイントＡ）と、ＵＥ受信機側でのコンテンツの表示（たとえば、図３中のポイントＢ）との間の時間遅延と考えられ得る。その遅延は、ＦＰＥ３１０がアグリゲートし得るＤＡＳＨセグメント３０８の数ＮＳ、それらのＤＡＳＨセグメント３０８の持続時間ｔ、およびマルチキャストチャネル（「ＭＣＨ」）スケジューリング期間（ＭＳＰ：Multicast channel Scheduling Period）という３つのパラメータに依存し得る。ＭＳＰは、マルチキャスト制御チャネル（ＭＣＣＨ：Multicast control channel）上のＭＢＳＦＮＡｒｅａＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＲＣメッセージを介してＢＭ−ＳＣによって与えられ得る。
【００４４】
たとえば、第１の例示的な構成では、ＦＰＥ３１０は、各ＤＡＳＨセグメントが２秒の持続時間を有する５つのＤＡＳＨセグメントをアグリゲートするように構成される。第２の例示的な構成では、ＦＰＥ３１０は、各ＤＡＳＨセグメントが２秒の持続時間を有する３つのＤＡＳＨセグメントをアグリゲートするように構成される。第３の例示的な構成では、ＦＰＥ３１０は、各ＤＡＳＨセグメントが１秒の持続時間を有する５つのＤＡＳＨセグメントをアグリゲートするように構成される。第１の例では、各セグメントの持続時間が２秒である５つのＤＡＳＨセグメントがあるので、エンドツーエンド遅延は１０秒に比例する。第２の例では、エンドツーエンド遅延は６秒に比例し、第３の例では、エンドツーエンド遅延は５秒に比例する。３つの例示的な構成は、ＦＰＥ３１０によってアグリゲートされるＤＡＳＨセグメントの数を低減することと、各ＤＡＳＨセグメントの持続時間を低減することの一方または両方によって、エンドツーエンド遅延が低減され得ることを示す。時間要件または制約に基づいて、グループ当たりのアグリゲートすべきＤＡＳＨセグメントの数、またはＤＡＳＨセグメントの持続時間は、時間要件内（すなわち、時間遅延限界以下）になるように決定され得る。たとえば、１０秒のエンドツーエンド遅延の時間要件の場合、１つの例示的な構成は、ＤＡＳＨセグメント当たり２秒の持続時間をもつ、グループ当たり４つのＤＡＳＨセグメントをアグリゲートすることを含み、８秒のエンドツーエンド遅延を生じる。時間要件は、プログラム開始時間と、ユーザがディスプレイ上のコンテンツを見る時間との間の時間遅延である、初期遅延（または起動遅延）に関係し得る。たとえば、ユーザがプログラム開始時間においてチャネルに最初に同調したとき、ユーザは、セグメントの第１のグループの遅延に基づいてコンテンツを待つ。その上、第２の時間要件は、チャネル切替え遅延（たとえば、あるチャネルから別のチャネルに切り替えたときにユーザが経験する時間遅延）に関係し得る。チャネル切替え遅延は、ＳＧＯとＤＡＳＨセグメント当たりの持続時間とに比例し得る。たとえば、ユーザは、すでにコンテンツをストリーミングしているチャネルに同調したとき、チャネル切替え遅延を経験し得る。たとえば、ユーザは、ＤＡＳＨセグメントの２つのグループが送信された後にチャネルに同調し得る。ユーザが経験する最大チャネル切替え遅延は、ＳＧＯによって決定されるＤＡＳＨセグメントの数とＤＡＳＨセグメント当たりの持続時間とに比例し得る。平均して、チャネル切替え遅延は、ユーザがＤＡＳＨセグメントグループの送信期間中の任意の時間に同調し得るので、最大チャネル切替え遅延の１／２である。関係する態様では、ＭＳＰ中にアグリゲートされたＤＡＳＨセグメントをスケジュールすることに関連する遅延がエンドツーエンド遅延を増加させ得る。
【００４５】
ブロードキャスト／マルチキャスト環境では、同じチャネルに同調するすべてのユーザが同じコンテンツを受信する。異なるユーザが異なる時間にチャネルに同調し得る。たとえば、図３の環境においてチャネルに同調するユーザの初期遅延は、０〜ＮＳ＊ｔ＋ＭＳＰの範囲内にあり得、平均遅延は、（ＮＳ＊ｔ＋ＭＳＰ）／２であり得る。ワーストケースシナリオでは、１つまたは複数のＤＡＳＨセグメント３０８に対応するＦＤＴインスタンスが小差で現在ＭＳＰ送信ウィンドウを逃した場合、対応するＦＬＵＴＥパケット３１２は、送信されるために次のＭＳＰウィンドウを待たなければならないことがある。これにより、ユーザのディスプレイ３２２においてビデオ再生の中断が生じ得る。
【００４６】
ＦＰＥ３１０によって引き起こされる遅延は、ＦＰＥ３１０がアグリゲートし得るＤＡＳＨセグメント３０８の数を、理論上、１つのセグメントに低減することによって低減され得る。しかしながら、対応するＦＤＴインスタンス自体の作成および送信は、得られるであろう利益を相殺し得るオーバーヘッドをシステムにもたらす。同様に、持続時間ｔのより小さい値は遅延を短縮することができるが、これは符号化効率を低下させ得る。ライブビデオまたはストリーミングビデオでは、これは、特定のチャネルに初めに同調したときまたはチャネル間で切り替えたときに遅延を引き起こし得るＤＡＳＨセグメント３０８の小さいグループ中で情報が送られるので、難点をもたらし得る。
【００４７】
別の難点は損失ＦＤＴインスタンスの可能性である。各ＦＤＴインスタンスは独立（self-contained）であり、ローカルキャッシュからビデオを再生するために必要とされる、対応するＤＡＳＨセグメント３０８のＵＲＬを含み得る。ＦＤＴインスタンスが損失した場合、システムは、対応するＤＡＳＨセグメント３０８を表示するために必要とされる情報を有しないことがある。
【００４８】
次に図４を参照すると、ＦＬＵＴＥパッケージングエンジン（ＦＰＥ）４００の一実施形態が示されている。ＦＰＥ４００および（通信ポート４５０を介して）そこから発生するＦＬＵＴＥパケット４３０は、それぞれ、図３中のＦＰＥ３１０およびＦＬＵＴＥパケット３１２を置き換え得る。
【００４９】
ＦＰＥ４００は、ＤＡＳＨエンコーダ３０６からＤＡＳＨセグメント３０８を受信し得、いくつか（ｎ個）のそのようなセグメントを保持することができる、バッファ４１０を含み得る。バッファ４１０はＦＩＦＯバッファであり得、ｎは、ＦＰＥ４００がアグリゲートし得るＤＡＳＨセグメント３０８の最小グループサイズよりも大きいかまたはそれに等しいことがある。たとえば、ＦＰＥ４００が最大３つのＤＡＳＨセグメント３０８をアグリゲートするように構成された場合、バッファ４１０は、３よりも大きいかまたはそれに等しいサイズｎを有し得る。３以上のバッファ４１０のサイズは、バッファ４１０が、ＦＰＥ４００によって処理されるべき３つ以上のＤＡＳＨセグメントを記憶することを可能にする。
【００５０】
バッファ４１０は、通信ポート４４０を介して生成器４２０によってアクセスされ得る。生成器４２０は、ＦＬＵＴＥパッケージャ４２０ａおよびＦＤＴ生成器４２０ｂという２つの協働セクションを有し、以下の２つの関係する動作を担当し得る。（１）ＦＬＵＴＥパッケージャ４２０ａは、ＤＡＳＨセグメント３０８を、セグメントを含んでいるＦＬＵＴＥパケット４３０ａにパッケージングするための機能を含み得、（２）ＦＤＴ生成器４２０ｂは、ＦＬＵＴＥパケット４３０ａに対応する、ＦＤＴインスタンスを含んでいるＦＬＵＴＥパケット４３０ｂを生成するための機能を含み得る。このコンテキストでは、ＦＬＵＴＥパッケージャ４２０ａおよびＦＤＴ生成器４２０ｂは、無関係のハードウェアおよび／またはソフトウェア構成要素を指すことがあり、２つの、関係するかまたは無関係のソフトウェアプログラムを実行している単一の集積回路（ＩＣ）であり得る。
【００５１】
生成器４２０はまた、データ入力として、（１）ＦＰＥ４００がアグリゲートし得るＤＡＳＨセグメント３０８の数に対応する値ＮＳと、（２）セグメントのオフセット値を表すセグメントグループ（「ＳＧ」）オフセット（ＳＧＯ：segment group offset）とを受信し得る。ＮＳの値は、プレゼンテーションが開始する前の初期遅延に影響を及ぼし得る。ＳＧＯは、前のＳＧの開始セグメント番号と現在ＳＧの開始セグメント番号との間のオフセットであり得、チャネル切替え遅延に影響を及ぼし得る。ＦＰＥ４００がアグリゲートし得るＤＡＳＨセグメント３０８の数に対応する値ＮＳは、プレゼンテーションの前の初期遅延を低減するように構成され得る。ＳＧＯは、チャネル切替え遅延を低減するように構成され得る。初期遅延およびチャネル切替え遅延は送信スケジューリング期間に関係し得る。以下で説明する理由により、ＳＧＯはＮＳ未満になり得る。
【００５２】
ＮＳとＳＧＯの両方は、システム要件に従って事前構成され得る。ただし、本開示はそのように限定されず、いずれの値も固定であり得、ならびに／あるいは自動または手動操作によって可変であり得る。
【００５３】
生成器４２０は、事前プログラムされた集積回路（ＩＣ）を介してなど、電子コンピュータハードウェアに関連して動作するソフトウェアによって実装され得る。ただし、他のソフトウェア、ハードウェアおよび／またはファームウェア構成が使用され得る。さらに、生成動作およびパッケージング動作は、単一の構成要素中で実行されるか、または複数の構成要素の間で（ソフトウェアおよび／またはハードウェアレベルで）分散され得る。本開示は生成器４２０の特定のアーキテクチャに限定されない。
【００５４】
生成器４２０の例示的な実施形態によって実行される動作について、図５および図６Ａを参照しながら説明する。図５は動作のフローチャートであり、図６Ａは、ＮＳ＝３およびＳＧＯ＝２の値の場合、フローチャートの実装が一連のＤＡＳＨセグメント３０８にどのように適用され得るかを概念的に示す。これらの値は例にすぎず、任意の適切な値が選定され得る。
【００５５】
開示する主題に従って実装され得る方法は、図５、図８、および図９などのフローチャートを参照すると、より良く諒解され得ることを理解されたい。説明を簡単にするために、方法を一連の行為／動作として図示し、説明することがある。ただし、いくつかの動作は、本明細書で図示および説明するものとは異なる順序で、および／または他の動作と実質的に同時に行われ得るので、請求する主題は動作の数または順序によって限定されない。さらに、本明細書で説明する方法を実装するために、図示されたすべての動作が必要とされるとは限らない。動作に関連する機能は、ソフトウェア、ハードウェア、それらの組合せまたは任意の他の好適な手段（たとえば、デバイス、システム、プロセス、または構成要素）によって実装され得ることを諒解されたい。さらに、本明細書の全体にわたって開示する方法は、そのような方法を様々なデバイスに移送および転送することを可能にする製造品に符号化された命令および／またはデータとして記憶することが可能であることをさらに諒解されたい。方法は、代替的に、状態図など、一連の相互に関係する状態または事象として表現され得ることを、当業者は理解し、諒解されよう。
【００５６】
以下の説明では、例示的な値は、グループ当たり３つのＤＡＳＨセグメント（すなわち、ＮＳ＝３）およびセグメントグループオフセット２（すなわち、ＳＧＯ＝２）として選択される。ＤＡＳＨセグメントの第１のグループについて、インスタンス番号は１として定義され得る（すなわち、ｋ＝１）。インスタンス番号は、すべてのＤＡＳＨセグメントが一緒にグループ化されるまで増分し得る。第１のグループでは、開始セグメント番号は１であり（すなわち、ＢＳＮ［１］＝１）、終了セグメント番号は３である（すなわち、ＥＳＮ［１］＝３）。処理され、第１のグループに追加されるＤＡＳＨセグメントの数は、０から開始し、３まで増加し得る（すなわち、ＮＳＧ［１］＝０〜３）。３つのＤＡＳＨセグメントが一緒にグループ化された後、プロセスはＤＡＳＨセグメントの第２のグループに進む。
【００５７】
ＤＡＳＨセグメントの第２のグループについて、インスタンス番号は２として定義され得る（すなわち、ｋ＝２）。第２のグループでは、開始セグメント番号は３であり（すなわち、ＢＳＮ［２］＝３）、終了セグメント番号は５である（すなわち、ＥＳＮ［２］＝５）。第１のグループからの終了セグメント番号は３であったが、第２のグループの開始セグメント番号は３であり、４ではないことに留意されたい。開始セグメント番号は、ＳＧＯと前のグループの開始セグメント番号とに基づいて決定されるので、開始セグメント番号は前のグループの終了セグメント番号に起因しない。この例では、ＳＧＯは２として選択される。したがって、第２のグループの開始セグメント番号（３）は、第１のグループの開始セグメント番号（１）＋ＳＧＯ（２）である。処理され、第２のグループに追加されるＤＡＳＨセグメントの数は、０から開始し、３まで増加し得る（すなわち、ＮＳＧ［２］＝０〜３）。３つのＤＡＳＨセグメントが一緒にグループ化された後、プロセスはＤＡＳＨセグメントの次のグループに進む。
【００５８】
ＳＧＯは、切替え遅延時間要件を満たすために有益に使用され得る。切替え遅延時間要件に基づいて、ＳＧＯは、時間要件を満たす（すなわち、遅延が時間制限に等しいかまたはそれよりも小さくなる）ように決定され得る。時間要件はチャネル切替え遅延に関係し得る。ＳＧＯは、前のＳＧの開始セグメント番号と現在ＳＧの開始セグメント番号とのオフセットを決定するので、ＳＧＯはチャネル切替え遅延に影響を及ぼす。ＳＧＯは、いくつの新しいセグメントが各ＦＬＵＴＥパッケージに追加され得るかを決定し得る。新しいセグメントの数も、ユーザが既存のプログラムに同調するときに知覚するチャネル切替え時間遅延に影響を及ぼし得、チャネル切替え時間遅延は、満たされなければならない別の時間制約である。２つの新しいセグメントが追加され、各セグメントが２秒の持続時間を有する場合、チャネル切替え遅延は、約４秒（ＳＧＯ＊ｔ＋ＭＳＰ）になり、平均では２秒（ＳＧＯ＊ｔ＋ＭＳＰ）／２になり得る。
【００５９】
次に図５を参照すると、Ｓ５１０においてシステムが初期化され得る。初期化中に４つの変数、すなわち、（１）インスタンス変数ｋ、（２）開始セグメント番号ＢＳＮ［ｋ］、（３）終了セグメント番号ＥＳＮ［ｋ］、および（４）グループ中のセグメントの数のカウンタＮＳＧ［ｋ］が確立され得る。
【００６０】
Ｓ５１０における初期化時に、一実施形態では、第１のインスタンスについてｋ＝１であり、第１のＤＡＳＨセグメント３０８についてＢＳＮ［１］＝１であり、ＥＳＮ［１］＝ＮＳであり、第１のグループ中のセグメントの数ＮＳＧ［１］＝０である。さらに、すべてのセグメントグループは、この実施形態では空であると考えられ得る。
【００６１】
Ｓ５１２、Ｓ５１６、Ｓ５１７、Ｓ５１８、およびＳ５２０は、パッケージングのためにＤＡＳＨセグメント３０８をアグリゲートし得る、方法中の再帰的動作をまとめて定義し得る。Ｓ５１２において、バッファ４１０は、それが空であるかどうかを確認され得る。空でない場合、Ｓ５１６において、次のＤＡＳＨセグメント３０８が、新しいセグメントであるのか、バッファ４１０から前に取り出されたセグメントであるのかに関して、決定がされ得る。次のＤＡＳＨセグメントが前に取り出された場合、制御はＳ５１８に移り得る。次のＤＡＳＨセグメントが新しいセグメントである場合、Ｓ５１７において、次のＤＡＳＨセグメント３０８がバッファ４１０から取り出され得る。上記で説明したように、バッファ４１０は、取り出されたＤＡＳＨセグメント３０８が単にバッファストレージ中の次のセグメントであるようなＦＩＦＯバッファであり得るが、他のバッファおよび方法が使用され得る。制御は、次いでＳ５１８に移り得る。
【００６２】
Ｓ５１８において、セグメントはセグメントグループに追加されたと考えられ得、カウンタＮＳＧ［ｋ＝１］を１だけ増分する。Ｓ５２０において、制御は、グループ中のセグメントの数がＮＳに等しいかどうかを決定し得る。等しくない場合、制御は、それ以外のセグメントを追加するためにＳ５１２に戻り得る。
【００６３】
上記のプロセスは、第１のグループＳＧ［ｋ＝１］（すなわち、ＳＧ１）へのセグメントの蓄積によって図６Ａに反映される。上述したように、図６Ａの例では、ＮＳ＝３である。したがって、ステップＳ５１２、Ｓ５１６、Ｓ５１７、Ｓ５１８、およびＳ５２０は、３つのセグメント、すなわち、セグメント１〜３をＳＧ［ｋ＝１］に追加するために３回ループし得る。
【００６４】
再び図５を参照すると、Ｓ５２２において、それが第１のインスタンス（ｋ＝１）であるのかその後のインスタンスであるのかに基づいて、異なるアクションがとられ得る。それが第１のインスタンスである場合（これは、図６Ａの対応する説明における現在の状態である）、Ｓ５２４において、生成器４２０は、（ａ）蓄積ＤＡＳＨセグメント３０８のすべてをＦＬＵＴＥパケット４３０ａにパッケージングし、（ｂ）対応するＦＬＵＴＥパケット４３０ａ内のセグメントのすべてについてのＦＤＴ属性を記述し得る対応するＦＤＴインスタンス４３０ｂを生成し得る。次いで、ディスプレイデバイス上での表示のためにＵＥにディスパッチするために、Ｓ５２４において、ＦＬＵＴＥパケット４３０ａおよび対応するＦＤＴインスタンス４３０ｂを、通信ポート４５０を介して生成器４２０からＢＭ−ＳＣ３１４に送られ得る。図６Ａの例では、セグメント１〜３がＦＬＵＴＥパケット４３０ａのコンテンツであり得、それに関係するＦＤＴ情報は、対応するＦＤＴインスタンス４３０ｂ中に見つかり得る。
【００６５】
制御は、次いでＳ５２６に移り得、システムは次のＦＤＴインスタンスを準備する。インスタンスカウンタｋは１だけ増分され得る。その新しいインスタンスの開始セグメント番号ＢＳＮ［ｋ］は、ＳＧＯの値だけ増分され得る（すなわち、ＢＳＮ［ｋ］＝ＢＳＮ［ｋ−１］＋ＳＧＯ）。その新しいインスタンスの終了セグメント番号は、開始セグメント番号＋ＮＳ−１の値に設定され得る（すなわち、ＥＳＮ［ｋ］＝ＢＳＮ［ｋ］＋ＮＳ−１）。カウンタＮＳＧは０に戻り得る。
【００６６】
制御は、次いでＳ５１２に戻り得、システムは、次のＳＧのためにＤＡＳＨセグメント３０８をＦＬＵＴＥパケットに再び蓄積し始める。ただし、（ａ）開始セグメント番号ＢＳＮは、ＮＳではなくＳＧＯによって増分され、（ｂ）ＳＧＯはＮＳよりも小さいことがあるので、蓄積ＤＡＳＨセグメント３０８は、前のＦＬＵＴＥパケット４３０中ですでに送られた少なくとも１つのＤＡＳＨセグメント３０８と、少なくとも１つの新しいＤＡＳＨセグメント３０８とを含み得る。これは、ｋ＝２である場合の第２のインスタンスＳＧ２のコンテンツについて図６Ａを参照することによって理解され得る。図６Ａの例ではＮＳ＝３およびＳＧＯ＝２であるので、ＳＧ２のためのセグメントグループは、バッファ４１０から前に取り出され、すでにディスパッチされたセグメントグループＳＧ１中に含まれる、セグメント３から始まり、それを含み得る。
【００６７】
処理は、セグメントグループを連続ＤＡＳＨセグメント３０８の総数に関連付けるために、Ｓ５１２、Ｓ５１６、Ｓ５１７、Ｓ５１８、およびＳ５２０を介して総ＮＳまで再帰的に続き得る。図６Ａでは、ＮＳ＝３であり、第１のセグメントがセグメント３によって占有される場合、もう２つのＤＡＳＨセグメント３０８が、概して、セグメントグループＳＧ２に追加される必要があり得、したがって、ＳＧ２は、セグメント４とセグメント５とを含むようになり得る。
【００６８】
上記のことからわかるように、ＳＧＯ＜ＮＳであるとき、開始セグメントカウントをＳＧＯだけ増分することにより、ＦＰＥ４００は、前に処理されたＤＡＳＨセグメント３０８を考慮に入れ得る。これは、セグメントカウントが、シーケンス中の次のセグメントに進められ得、したがって、前のセグメントを考慮に入れないことがある、図３の例と対照をなす。
【００６９】
Ｓ５２０においてセグメントグループがいっぱいであると決定された後、制御はＳ５２２に移り得る。これが第１のインスタンスでない（ｋ≠１）とき、システムは、Ｓ５５２において、現在ＳＧ［ｋ］と前のＳＧ［ｋ−１］の両方についてのＦＤＴ属性を記述し得るＦＤＴインスタンス４３０ｂを生成する。図６Ａの例では、第２のインスタンスｋ＝２である場合、ＳＧ１はセグメント１〜３を含み、ＳＧ２はセグメント３〜５を含む。ＦＤＴインスタンス［ｋ＝２］は、したがって、セグメント１〜５についてのＦＤＴ属性を記述し得る。同じＦＤＴインスタンス内でのセグメント３についての記述の重複は不要であるので、その記述は１回のみ含まれる必要があり得ることに留意されたい。したがって、ＦＤＴ［ｋ］はＳＧ［ｋ］∪ＳＧ［ｋ−１］を記述し得る。
【００７０】
Ｓ５５１またはＳ５５２において、システムはまた、ＳＧ［ｋ］中のＤＡＳＨセグメント３０８のためのＦＬＵＴＥパケット４３０ａを準備する。セグメントグループＳＧ［ｋ］は、それに割り当てられた合計ＮＳ個のＤＡＳＨセグメント３０８を有し得るが、前に送信されたＤＡＳＨセグメント３０８を再送することは不要である。図６Ａの例では、第２のインスタンス（ｋ＝２）の場合、ＳＧ２はセグメント３〜５を割り当てられ得る。しかしながら、セグメント３はＳＧ１で前に送られたので、セグメント３を再送する必要はないことがあり、したがって、セグメント３はＳＧ２から除外され得る。したがって、ＳＧ２はセグメント４および５のみを含み得る。したがって、生成器４２０は、現在セグメントグループのために新たに収集されたＤＡＳＨセグメント３０８のみを用いてＦＬＵＴＥパッケージ４３０ａを準備し得る。これは、ＳＧ［ｋ］−（ＳＧ［ｋ］∩ＳＧ［ｋ−１］）として考えられ得る。ＦＬＵＴＥパケット４３０ａは、ディスプレイ３２２での表示のためにＳ５２４に従って送られ得る。
【００７１】
上記の処理は、コンテンツストリーム全体を通して再帰的に続き得る。図６Ａの例に関して、次のインスタンスｋ＝３では、ＦＤＴ［ｋ＝３］インスタンス４３０ｂは、セグメント３〜７のＦＤＴ属性を記述し得、対応するＦＬＵＴＥパケット４３０ａはセグメント６および７を含み得る。
【００７２】
最終的に、送るべきバッファ４１０中のＤＡＳＨセグメント３０８がもはやなくなり得るように、コンテンツストリーム全体が終了し得る。コンテンツストリームが終了したとき、バッファ４１０は空であり得、Ｓ５１２において空のバッファステータスが検出され得る。各セグメントはｔ秒の符号化コンテンツを含んでいるので、（たとえば、Ｓ５１６、Ｓ５１７、Ｓ５１８において）各セグメントを処理するために必要な時間はｔ秒よりも長くなる可能性は低い。ＤＡＳＨセグメントがｔ秒ごとに生成され得ると仮定すると、セグメント持続時間の少なくとも２倍、またはより一般的には、ｎ＊ｔ（ｎ＞１）秒待機することにより、バッファアンダーラン状況が回避され得る。ｎ＊ｔ秒待機した後に、バッファが空の場合、コンテンツストリームは終了した。一例として、待機期間は２・ｔ秒であるように選定され得るが、任意の時間が適宜に使用され得る。次いで、Ｓ５１４において、待機期間の後にバッファ４１０のステータスを確認する。これは、バッファ４１０に関連するステータスフラグ、またはバッファのステータスを決定するための他の知られている方法によって行われ得、本開示は、バッファのステータスが確認される特定のタイプの方法に限定されない。
【００７３】
セグメントが待機期間の終わりまでに現れない場合、セグメントの不在はビデオストリームの終了を示し得る。制御はＳ５１５に移り得、送られるのを待機している、最後のグループに蓄積された未処理のＤＡＳＨセグメント３０８があるかどうかを確認する。最後のグループに蓄積された未処理のＤＡＳＨセグメント３０８がない場合（これは、最後のＤＡＳＨセグメント３０８が最後のセグメントグループの最後のスロットと一致した場合であり得る）、プロセスは終了し得る。送られるべきセグメントがある場合、制御は、上記で説明したステップＳ５２２およびＳ５２４に類似するステップＳ５３０およびＳ５３２に移り得る。Ｓ５３２において最後のセグメントを送ると、プロセスは終了し得る。
【００７４】
図６Ｂに、図６Ａの例による例示的なＦＤＴインスタンス４３０ｂ’を示す。ＦＤＴは、配信されるべきファイルに関連する様々な属性を記述するための手段を与える。ＦＤＴインスタンス４３０ｂ’は、ヘッダ６２０と関連するファイルについてのファイル属性６３０、６４０、６５０とを含み得る。属性は、（たとえば、ＵＲＬによって指定された）ファイル名、ファイルタイプ（たとえば、ファイルのＭＩＭＥメディアタイプ）、ファイルのサイズ、ファイルの符号化フォーマット、および／またはファイルのメッセージダイジェストを含み得る。図６Ａに示した例では、ＳＧ１のためのＦＤＴインスタンス４３０ｂはセグメント１〜３を含む。ＦＤＴインスタンス４３０ｂ’は、図６ＡのＳＧ１のためのＦＤＴインスタンス４３０ｂに対応し得る。ファイル属性６３０、６４０、６５０は、それぞれ、セグメント１、セグメント２、およびセグメント３について与えられる。セグメント１についてのファイル属性６３０は、セグメント１のＵＲＬ（またはＵＲＩ）、セグメント１のＭＩＭＥタイプ、セグメント１のファイルサイズ、セグメント１のファイル圧縮のアルゴリズム、およびセグメント１のＭＤ５ダイジェストを含み得る。セグメント２についてのファイル属性６４０は、セグメント２のＵＲＬ、セグメント２のＭＩＭＥタイプ、セグメント２のファイルサイズ、セグメント２のファイル圧縮のアルゴリズム、およびセグメント２のＭＤ５ダイジェストを含み得る。セグメント３についてのファイル属性６５０は、セグメント３のＵＲＬ、セグメント３のＭＩＭＥタイプ、セグメント３のファイルサイズ、セグメント３のファイル圧縮のアルゴリズム、およびセグメント３のＭＤ５ダイジェストを含み得る。ビデオコンテンツでは、３つのセグメントのＭＩＭＥメディアタイプは同じであり得る。
【００７５】
上記の実施形態は様々な利点を提供し得る。たとえば、ＦＤＴインスタンスが、ＦＤＴインスタンスによって記述されるすべてのセグメントのＵＲＬを担持するとき、送信中のそのインスタンスの損失は、それによって記述されるすべてのセグメントの損失を暗示し得る。本明細書の様々な実施形態では、ＦＤＴインスタンスは、他のＦＤＴインスタンスと重複する情報を含んでいることがあり、これは、特定のＦＤＴインスタンスの損失の結果を緩和する冗長性レベルを与え得る。
【００７６】
別の利点はエンドツーエンド遅延の低減であり得る。図５では、ＦＬＵＴＥパッケージをパッケージングし、送ることによって生じる遅延は、グループ中のＤＡＳＨセグメント３０８の数とそれらのパッケージの持続時間とに基づいていた（ＮＳ・ｔ）。しかし、図４〜図６に関連して説明した実施形態では、遅延は、それらのセグメントのＳＧオフセット値と持続時間とに基づき得る（ＳＧＯ・ｔ）。ＳＧＯ＜ＮＳである場合、対応する遅延はより短くなる。ＮＳ＝３およびＳＧＯ＝２である図６Ａの例では、遅延は、３・ｔの代わりに２・ｔに基づき得る。これは、ＦＬＵＴＥパケット４３０が、送信のために割り当てられたウィンドウ内でＢＭ−ＳＣ３１４に到着し得る確率を改善し得る。
【００７７】
上記の実施形態は、ディスプレイ３２２上のビデオコンテンツを閲覧するエンドユーザに様々な利点を与え得る。上記で説明したように、ＦＤＴインスタンスの損失により、ＦＤＴインスタンスが記述する、基礎をなすビデオコンテンツにアクセスすることができなくなり、ディスプレイ３２２上のビデオ再生にギャップが生じ得る。ＦＤＴインスタンスが他のＦＤＴインスタンスと重複する情報を含んでいることがある限り、冗長性により、ディスプレイ３２２におけるビデオ再生の中断の可能性が低下し得る。
【００７８】
エンドユーザに対する別の潜在的な利点は、ＳＧＯ＜ＮＳである場合の、チャネルに初めに同調したときまたはチャネルを切り替えたときの遅延の低減であり得る。上記で説明したように、たとえば、図３に一致するアーキテクチャを使用してチャネルに同調するユーザの初期遅延は、（ＮＳ＊ｔ＋ＭＳＰ）／２の平均遅延をもつ、０〜ＮＳ＊ｔ＋ＭＳＰの範囲内にあり得る。本明細書の様々な実施形態の方法、たとえば、図４〜図６を使用すると、既存のチャネルに同調するユーザのチャネル切替え遅延は、（ＳＧＯ＊ｔ＋ＭＳＰ）／２の平均遅延をもつ、０〜ＳＧＯ＊ｔ＋ＭＳＰの範囲内にあり得る。
【００７９】
上述したように、ＦＰＥ４００およびそこから発生するＦＬＵＴＥパケット４３０は、それぞれ、図３中のＦＰＥ３１０およびＦＬＵＴＥパケット３１２を置き換え得る。これは、図７に示す実施形態に反映され得る。上記で説明したように、図７中のＦＬＵＴＥパケット４３０は、図３の実施形態におけるＦＬＵＴＥパケットとは異なる情報を含み得るが、図３（および図７）に示した残りの構成要素の動作は、ＦＰＥ４００を利用するとき、概して同じであり得る。
【００８０】
図８に、たとえば、生成器４２０によって実行され得る、ストリーミング遅延を制御するための例示的な方法を示す。方法８００は、８０２において、データセグメントのストリームを受信することを含み得る。本方法は、８０４において、データセグメントに基づいてセグメントの第１のグループを確立することを含み得る。本方法は、８０６において、情報の第１のテーブルを生成することを含み、情報は、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む。本方法は、８０８において、第１のテーブルとセグメントの第１のグループとを送信することを含み得る。本方法は、８１０において、データセグメントに基づいてセグメントの第２のグループを確立することを含み、セグメントの第２のグループは、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含む。本方法は、８１２において、情報の第２のテーブルを生成することを含み、情報は、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む。本方法は、８１４において、第２のテーブルと、第１のグループの一部でなかった第２のグループからのデータセグメントを含むセグメントの集合とを送信することを含み得る。
【００８１】
図９に、たとえば、生成器４２０によって実行され得る、ストリーミング遅延を制御するための別の例示的な方法を示す。方法９００は、９０２において、データセグメントのストリームを受信することを含み得る。本方法は、９０４において、ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化することを含み、セグメントのグループは、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の１つまたは複数の中間グループを含む。本方法は、９０６において、１つまたは複数の中間グループのうちの第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することを含み得る。本方法は、９０８において、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することを含み得る。
【００８２】
次に図１０を参照すると、本開示の別の例示的な実施形態が装置１０００において示されている。装置１０００は図８の方法を実装し得る。装置１０００は、データセグメントの受信ストリームに基づいてセグメントの第１のグループを確立するためのモジュール１０２０を含み得る。そのようなモジュール１０２０の非限定的な例は生成器４２０であり得る。上記で説明したように、生成器４２０は、ＤＡＳＨセグメント３０８を受信し、それらをＦＬＵＴＥパケット４３０ａ中のセグメントグループＳＧ［ｋ］として送り得る。非限定的な例として、図６Ａは、ＦＬＵＴＥパッケージャ４２０ａが、セグメント１〜３を受信し得、セグメント１〜３をＳＧ１に割り当て得る例を示す。上記で説明したように、生成器４２０のこの機能は、ハードウェアおよび／またはソフトウェアであり得、１つまたは複数のプロセッサおよび／または１つまたは複数のメモリを含み得る。
【００８３】
本装置は、情報の第１のテーブルを生成するためのモジュール１０３０を含み、情報は、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、モジュール１０３０を含み得る。そのようなモジュール１０２０の非限定的な例は生成器４２０であり得る。上記で説明したように、ＦＤＴ生成器４２０ｂは、セグメントグループＳＧ［ｋ］に割り当てられたＤＡＳＨセグメント３０８を記述するＦＤＴインスタンス［ｋ］２３０ｂを準備し得る。非限定的な例として、図６Ａは、生成器４２０が、セグメント１〜３をどのように受信し得るかと、セグメント１〜３をＳＧ１に最終的にどのように割り当て得るかと、セグメント１〜３の属性を記述するインスタンスＦＤＴ［１］をどのように準備し得るかと、を示す。上記で説明したように、生成器４２０のこの機能は、ハードウェアおよび／またはソフトウェアであり得、１つまたは複数のプロセッサおよび／または１つまたは複数のメモリを含み得る。
【００８４】
本装置は、第１のテーブルとセグメントの第１のグループとを送信するためのモジュール１０４０を含み得る。モジュール１０４０の非限定的な例は、ＦＰＥ４００および／または図示し上記で説明した他の構成要素のデータ出力であり得るかまたはそれを含み得る。
【００８５】
本装置は、データセグメントに基づいてセグメントの第２のグループを確立するためのモジュール１０５０を含み得、セグメントの第２のグループは、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含む。そのようなモジュール１０２０の非限定的な例は生成器４２０であり得る。上記で説明したように、生成器４２０は、セグメントグループＳＧ［ｋ］に割り当てられたＤＡＳＨセグメント３０８を記述するＦＤＴインスタンス［ｋ］４３０ｂを準備し得る。非限定的な例として、図６Ａは、生成器４２０が、セグメント１〜５をどのように受信し得るかと、セグメント１〜３をＳＧ１におよびセグメント３〜５をＳＧ２に最終的にどのように割り当て得るかと、を示す。上記で説明したように、生成器４２０のこの機能は、ハードウェアおよび／またはソフトウェアであり得、１つまたは複数のプロセッサおよび／または１つまたは複数のメモリを含み得る。
【００８６】
本装置は、情報の第２のテーブルを生成するためのモジュール１０６０を含み、情報は、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む。そのようなモジュール１０６０の非限定的な例は生成器４２０であり得る。上記で説明したように、生成器４２０は、ＤＡＳＨセグメント３０８を受信し、それらをＦＬＵＴＥパケット４３０ａ中のセグメントグループＳＧ［ｋ］として、たとえば、図６Ａに関して説明したＳＧ１およびＳＧ２として送り得る。生成器４２０はまた、ＳＧ［ｋ］∪ＳＧ［ｋ−１］の属性を記述し得るＦＤＴインスタンス［ｋ］４３０（ｂ）を生成し得る。非限定的な例として、図６Ａは、生成器４２０が、セグメント１〜５をどのように受信し得るかと、セグメント１〜５を記述する対応するＦＤＴをどのように生成し得るかと、を示す。上記で説明したように、生成器４２０のこの機能は、ハードウェアおよび／またはソフトウェアであり得、１つまたは複数のプロセッサおよび／または１つまたは複数のメモリを含み得る。
【００８７】
本装置は、第２のテーブルと、第１のグループの一部でなかった第２のグループからのセグメントを含むセグメントの集合とを送信するためのモジュール１０７０を含み得る。モジュール１０７０の非限定的な例は、ＦＰＥ４００および／または図示し上記で説明した他の構成要素の接続ポート４５０であり得るかまたはそれを含み得る。本装置は、モジュールに接続し、および／またはモジュールのいずれかの機能を与え得る、プロセッサ１０８０および／またはメモリ１０９０を含み得る。
【００８８】
構成要素１０２０〜１０７０は、データセグメントの受信ストリームに基づいてセグメントの第１のグループを確立するための手段を含み得る。たとえば、第１のグループを確立するための手段は、データセグメントのストリームを受信することとデータセグメントについての情報のテーブルを送信することとに関係する時間制約を決定するように構成され得る。たとえば、第１のグループを確立するための手段は、時間制約に基づいて第１のグループのためのデータセグメントの数を決定するように構成され得る。構成要素１０２０〜１０７０は、情報の第１のテーブルを生成するための手段であって、情報が、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第１のテーブルとセグメントの第１のグループとを送信するための手段と、データセグメントに基づいてセグメントの第２のグループを確立するための手段であって、セグメントの第２のグループが、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含むこととを含み得る。たとえば、第２のグループを確立するための手段は、データセグメントのストリームを受信することとデータセグメントについての情報のテーブルを送信することとに関係する時間制約を決定するように構成され得る。たとえば、第２のグループを確立するための手段は、時間制約に基づいて第２のグループのためのデータセグメントの数を決定するように構成され得る。構成要素１０２０〜１０７０は、情報の第２のテーブルを生成するための手段であって、情報が、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含むことと、第２のテーブルと、第１のグループの一部でなかった第２のグループからのセグメントを含むセグメントの集合とを送信するための手段とを含み得る。手段は、アルゴリズムを動作させる少なくとも１つの制御プロセッサ（たとえば、図１０のプロセッサ１０８０）を含むことも含まないこともある。アルゴリズムは、データセグメントの受信ストリームに基づいてセグメントの第１のグループを確立することを含み得る。アルゴリズムは、情報の第１のテーブルを生成することを含み、情報は、セグメントの第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む。アルゴリズムは、第１のテーブルとセグメントの第１のグループとを送信することを含み得る。アルゴリズムは、データセグメントに基づいてセグメントの第２のグループを確立することを含み、セグメントの第２のグループは、セグメントの第１のグループ中に含まれるデータセグメントの部分的重複を含む。アルゴリズムは、情報の第２のテーブルを生成することを含み、情報は、セグメントの第１のグループおよび第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む。アルゴリズムは、第２のテーブルと、第１のグループの一部でなかった第２のグループからのセグメントを含むセグメントの集合とを送信することを含み得る。
【００８９】
次に図１１を参照すると、本開示の別の例示的な実施形態が装置１１００において示されている。装置１１００は図９の方法を実装し得る。本装置は、データセグメントの受信ストリームに基づいて、個々のセグメントをサイズＮＳのセグメントのグループにグループ化するためのモジュール１１２０を含み、セグメントのグループは、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の１つまたは複数の中間グループを含む。そのようなモジュール１１２０の非限定的な例は生成器４２０であり得る。上記で説明したように、生成器４２０は、ＤＡＳＨセグメント３０８を受信し、それらをＦＬＵＴＥパケット４３０ａ中のセグメントグループＳＧ［ｋ］として送り得る。上記で説明したように、生成器４２０のこの機能は、ハードウェアおよび／またはソフトウェアであり得、１つまたは複数のプロセッサおよび／または１つまたは複数のメモリを含み得る。
【００９０】
装置１１００は、第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成するためのモジュール１１３０を含み得る。そのようなモジュール１１３０の非限定的な例は生成器４２０であり得る。上記で説明したように、生成器４２０は、ＤＡＳＨセグメント３０８を受信し、それらをＦＬＵＴＥパケット４３０ａ中のセグメントグループＳＧ［ｋ］として送り得る。生成器４２０はまた、ＳＧ［ｋ］∪ＳＧ［ｋ−１］の属性を記述し得るＦＤＴインスタンス［ｋ］４３０（ｂ）を生成し得る。上記で説明したように、生成器４２０のこの機能は、ハードウェアおよび／またはソフトウェアであり得、１つまたは複数のプロセッサおよび／または１つまたは複数のメモリを含み得る。
【００９１】
装置１１００は、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信するためのモジュール１１４０を含み得る。モジュール１１４０の非限定的な例は、ＦＰＥ４００および／または図示し上記で説明した他の構成要素の出力の接続ポート４５０であり得るかまたはそれを含み得る。装置１１００は、モジュールに接続し、および／またはモジュールのいずれかの機能を与え得る、プロセッサ１１５０および／またはメモリ１１６０を含み得る。
【００９２】
構成要素１１２０〜１１４０は、データセグメントの受信ストリームに基づいて、個々のセグメントをサイズＮＳのセグメントのグループにグループ化するための手段であって、セグメントのグループが、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の中間グループを含むこと、を含み得る。たとえば、個々のセグメントをグループ化するための手段は、個々のセグメントをグループ化することに関係する時間制約を決定するように構成され得る。たとえば、個々のセグメントをグループ化するための手段は、時間制約に基づいてＮＳを決定するように構成され得る。構成要素１１２０〜１１４０は、第１の中間グループについて、第１の中間グループおよびストリーム内の直前の中間グループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成するための手段と、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信するための手段とを含み得る。手段は、アルゴリズムを動作させる少なくとも１つの制御プロセッサ（たとえば、図１１のプロセッサ１１５０）を含むことも含まないこともある。アルゴリズムは、データセグメントの受信ストリームに基づいて、個々のセグメントをサイズＮＳのセグメントのグループにグループ化することであって、セグメントのグループが、第１のグループ、最後のグループ、およびセグメントの第１のグループと最後のグループとの間の中間グループを含むこと、を含み得る。アルゴリズムは、第１の中間グループについて、第１の中間グループおよびストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することを含み得る。アルゴリズムは、テーブルと、直前のグループの一部でなかった第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することを含み得る。
【００９３】
上記の実施形態について、ｅＭＢＭＳを介したＦＬＵＴＥ上でのＤＡＳＨに関して説明したが、本発明はそのように限定されない。任意の適切なプロトコル、アーキテクチャおよび／またはネットワークが使用され得る。また、適用例について、マルチキャストを利用する環境に関して説明したが、ユニキャスト、マルチキャストおよび／またはブロードキャストのいずれかが使用され得る。
【００９４】
情報および信号は多種多様な技術および技法のいずれかを使用して表され得ることを、当業者は理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００９５】
さらに、本明細書の開示に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【００９６】
本明細書の開示に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【００９７】
本明細書の開示に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体はＡＳＩＣ中に常駐し得る。ＡＳＩＣはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。
【００９８】
１つまたは複数の例示的な設計では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、汎用または専用コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコード手段を搬送または記憶するために使用され得、汎用もしくは専用コンピュータ、または汎用もしくは専用プロセッサによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続も、送信信号の非一時的記憶を伴う限り、コンピュータ可読媒体と適切に呼ばれ得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、信号が、非一時的時間の間、記憶媒体またはデバイスメモリ上の送信チェーンに保持される限り、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびｂｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００９９】
本開示についての以上の説明は、いかなる当業者も本開示を作成または使用することができるように与えたものである。本開示への様々な修正は当業者には容易に明らかとなり得、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例および設計に限定されるものではなく、本明細書で開示した原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  データセグメントを送るための方法であって、
データセグメントのストリームを受信することと、
前記データセグメントに基づいてセグメントの第１のグループを確立することと、
情報の第１のテーブルを生成すること、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信することと、
前記データセグメントに基づいてセグメントの第２のグループを確立すること、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成すること、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信することと
を備える、方法。
［Ｃ２］  データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定すること、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定すること、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］  セグメントの前記第１のグループを前記確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを前記確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、Ｃ２に記載の方法。
［Ｃ４］  前記データセグメントはＤＡＳＨセグメントである、Ｃ１に記載の方法。
［Ｃ５］  前記第１のテーブルとセグメントの前記第１のグループとはＦＬＵＴＥパケットである、Ｃ１に記載の方法。
［Ｃ６］  データセグメントの前記ストリームはビデオデータを備える、Ｃ１に記載の方法。
［Ｃ７］  前記ビデオデータは、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４、またはＨ．２６５のうちの１つで符号化される、Ｃ６に記載の方法。
［Ｃ８］  前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、Ｃ１に記載の方法。
［Ｃ９］  前記データセグメントに基づいてセグメントの第３のグループを確立すること、セグメントの前記第３のグループは、セグメントの前記第２のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第３のテーブルを生成すること、前記情報は、セグメントの前記第２のグループおよび前記第３のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、セグメントの前記第１のグループまたは前記第２のグループの一部でなかったセグメントの前記第３のグループからのセグメントを含むセグメントの集合とを送信することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１０］  データセグメントを送るための方法であって、
データセグメントのストリームを受信することと、
前記ストリームの個々のデータセグメントをサイズＮＳのセグメントのグループにグループ化すること、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の１つまたは複数の中間グループを含む、と、
前記１つまたは複数の中間グループのうちの第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することと
を備える、方法。
［Ｃ１１］  前記データセグメントはＤＡＳＨセグメントである、Ｃ１０に記載の方法。
［Ｃ１２］  前記第１のテーブルとセグメントの前記集合とはＦＬＵＴＥパケットである、Ｃ１０に記載の方法。
［Ｃ１３］  データセグメントの前記ストリームはビデオデータを備える、Ｃ１０に記載の方法。
［Ｃ１４］  前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、Ｃ１０に記載の方法。
［Ｃ１５］  データセグメントを送るためのシステムであって、
データセグメントの受信ストリームに基づいてセグメントの第１のグループを確立するための手段と、
情報の第１のテーブルを生成するための手段、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信するための手段と、
前記データセグメントに基づいてセグメントの第２のグループを確立するための手段、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成するための手段、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信するための手段と
を備える、システム。
［Ｃ１６］  データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定するための手段、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定するための手段、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
をさらに備える、Ｃ１５に記載のシステム。
［Ｃ１７］  セグメントの前記第１のグループを前記確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを前記確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、Ｃ１６に記載のシステム。
［Ｃ１８］  データセグメントを送るためのシステムであって、
データセグメントの受信ストリームに基づいて、個々のセグメントをサイズＮＳのセグメントのグループにグループ化するための手段、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の中間グループを含む、と、
第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成するための手段と、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信するための手段と
を備える、システム。
［Ｃ１９］  データセグメントを送るためのシステムであって、
データセグメントのストリームを受信することと、
前記データセグメントに基づいてセグメントの第１のグループを確立することと、
情報の第１のテーブルを生成すること、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信することと、
前記データセグメントに基づいてセグメントの第２のグループを確立すること、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成すること、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信することと
を行うように構成された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合された、データを記憶するためのメモリと
を備える、システム。
［Ｃ２０］  前記少なくとも１つのプロセッサは、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定すること、セグメントの前記第１のグループを確立することは、前記決定された時間制約にさらに基づく、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定すること、セグメントの前記第２のグループを確立することは、前記別の時間制約にさらに基づく、と
を行うようにさらに構成された、Ｃ１９に記載のシステム。
［Ｃ２１］  セグメントの前記第１のグループを確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、Ｃ２０に記載のシステム。
［Ｃ２２］  前記データセグメントはＤＡＳＨセグメントである、Ｃ１９に記載のシステム。
［Ｃ２３］  前記第１のテーブルとセグメントの前記第１のグループとはＦＬＵＴＥパケットである、Ｃ１９に記載のシステム。
［Ｃ２４］  データセグメントの前記ストリームはビデオデータを備える、Ｃ１９に記載のシステム。
［Ｃ２５］  前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、Ｃ１９に記載のシステム。
［Ｃ２６］  前記少なくとも１つのプロセッサは、
前記データセグメントに基づいてセグメントの第３のグループを確立すること、セグメントの前記第３のグループは、セグメントの前記第２のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第３のテーブルを生成すること、前記情報は、セグメントの前記第２のグループおよび前記第３のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、セグメントの前記第１のグループまたは前記第２のグループの一部でなかったセグメントの前記第３のグループからのセグメントを含むセグメントの集合とを送信することと
を行うようにさらに構成された、Ｃ１９に記載のシステム。
［Ｃ２７］  データセグメントを送るためのシステムであって、
データセグメントのストリームを受信することと、
前記ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化すること、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の中間グループを含む、と、
第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することと
を行うように構成された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合された、データを記憶するためのメモリと
を備える、システム。
［Ｃ２８］  前記セグメントはＤＡＳＨセグメントである、Ｃ２７に記載のシステム。
［Ｃ２９］  前記第１のテーブルとセグメントの前記集合とはＦＬＵＴＥパケットである、Ｃ２７に記載のシステム。
［Ｃ３０］  データセグメントの前記ストリームはビデオデータを備える、Ｃ２７に記載のシステム。
［Ｃ３１］  前記１つまたは複数の属性のうちの１つの属性はＵＲＬである、Ｃ２７に記載のシステム。
［Ｃ３２］  データセグメントの送信を管理するためのコンピュータプログラム製品であって、
データセグメントのストリームを受信することと、
前記データセグメントに基づいてセグメントの第１のグループを確立することと、
情報の第１のテーブルを生成すること、前記情報は、セグメントの前記第１のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第１のテーブルとセグメントの前記第１のグループとを送信することと、
前記データセグメントに基づいてセグメントの第２のグループを確立すること、セグメントの前記第２のグループは、セグメントの前記第１のグループ中に含まれるデータセグメントの部分的重複を含む、と、
情報の第２のテーブルを生成すること、前記情報は、セグメントの前記第１のグループおよび前記第２のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む、と、
前記第２のテーブルと、前記第１のグループの一部でなかった前記第２のグループからのデータセグメントを含むセグメントの集合とを送信することと
のためのコードを備えるコンピュータ可読媒体
を備える、コンピュータプログラム製品。
［Ｃ３３］  前記コンピュータ可読媒体は、
データセグメントの前記ストリーム内のデータセグメントのあるグループを受信することと前記第１のテーブルを送信することとの間のある時間制約を決定すること、セグメントの前記第１のグループを前記確立することは、前記決定された時間制約にさらに基づく、と、
データセグメントの前記ストリーム内のデータセグメントの別のグループを受信することと前記第２のテーブルを送信することとの間の別の時間制約を決定すること、セグメントの前記第２のグループを前記確立することは、前記別の時間制約にさらに基づく、と
のためのコードをさらに備える、Ｃ３２に記載のコンピュータプログラム製品。
［Ｃ３４］  セグメントの前記第１のグループを前記確立することは、前記第１のグループのためのデータセグメントの数を決定することをさらに備え、
セグメントの前記第２のグループを前記確立することは、前記第２のグループのためのデータセグメントの数を決定することをさらに備える、Ｃ３３に記載のコンピュータプログラム製品。
［Ｃ３５］  データセグメントの送信を管理するためのコンピュータプログラム製品であって、
データセグメントのストリームを受信することと、
前記ストリームの個々のセグメントをサイズＮＳのセグメントのグループにグループ化すること、セグメントの前記グループは、第１のグループ、最後のグループ、およびセグメントの前記第１のグループと前記最後のグループとの間の中間グループを含む、と、
第１の中間グループについて、前記第１の中間グループおよび前記ストリーム内の直前のグループ中のそれぞれのセグメントについての１つまたは複数の属性を含む情報のテーブルを生成することと、
前記テーブルと、前記直前のグループの一部でなかった前記第１の中間グループからのデータセグメントを含むセグメントの集合とを送信することと
のためのコードを備えるコンピュータ可読媒体
を備える、コンピュータプログラム製品。
【図１】
0005985648.tif 000002
【図２】
0005985648.tif 000003
【図３】
0005985648.tif 000004
【図４】
0005985648.tif 000005
【図５】
0005985648.tif 000006
【図６Ａ】
0005985648.tif 000007
【図６Ｂ】
0005985648.tif 000008
【図７】
0005985648.tif 000009
【図８】
0005985648.tif 000010
【図９】
0005985648.tif 000011
【図１０】
0005985648.tif 000012
【図１１】
0005985648.tif 000013