説明

一般NACKレポートブロックおよび消失RLEレポートブロックを使用するフィードバックの提供

本発明は、RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアントからストリーミングサーバに提供する方法に関する。さらに、前記ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が、RTCPフィードバックメッセージに割り当てられる。さらに、本発明は、モバイル通信システムにおける、本方法を実行するクライアントにさらに関する。本発明は、利用可能なクライアントバッファリング時間による最大再送信回数を保証することと、可能な場合に消失パケットに関する望ましいレベルの冗長レポーティングを行えるようにすることとを目的として、ユニキャストセッションにおけるRTCPフィードバックを最適化する方法を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージを、クライアントからストリーミングサーバに提供する方法に関する。さらに、ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が、このRTCPフィードバックメッセージに割り当てられる。その上、本発明は、モバイル通信システムにおける、本方法を実行するクライアントにさらに関する。
【背景技術】
【0002】
3GPP(3rd Generation Partnership Project)では、メディアを符号化するAMR(Adaptive Multi-Rate)やH.264(MPEG 4 part 10)などの伝送およびパケット交換コーデックに、RTP、UDP、IPなどのIETF(Internet Engineering Task Force)標準プロトコルを採用している。3GPPパケット交換ストリーミングサービス(非特許文献1参照、http://www.3gpp.orgで入手可能)では、音声/映像/テキストメディアをストリーミングするためにRTP/UDPプロトコルスタックを使用している。
【0003】
RTPは、主としてリアルタイム通信またはほぼリアルタイムの通信、すなわち遅延制約がゆるい通信に使用されているリアルタイムトランスポートプロトコル(非特許文献2参照、すべてのRFCおよびインターネットドラフトはhttp://www.ietf.orgで入手可能)である。RTPでは、伝送するメディアのタイミングについての情報が提供され、受信者において順序入れ替え(re-ordering)および再構築を行うこともできる。
【0004】
RTCP(Real Time Control Protocol)は、このプロトコルに統合されている部分であり、最小限の受信情報とゆるいグループメンバーシップとを提供する。RTPは、一般的には、RTP/AVPプロファイル(非特許文献3参照)と組み合わせて使用され、RTP/AVPプロファイルは、RTPヘッダフィールドの使用と、ペイロードタイプのマッピングテーブル、さらには単純なRTCPフィードバックタイミング規則を定義する。TCP/IPベースのトラフィックと公平に競合するように、RTCPプロトコルには、利用可能なRTP帯域幅の一部が割り当てられる。
【0005】
UDP(非特許文献4)は、RTPパケットを伝送する目的に使用されるユーザデータグラムプロトコルである。UDPは、一般に、ストリーミングアプリケーションの場合など、メディアの通信の信頼性が低くてもよいときに使用される。プロトコルスタックRTP/UDPが使用される理由は、メディアのタイミング制約のために、例えばTCP(Transmission Control Protocol)の使用による信頼性の高い通信を行うことができないためである。
【0006】
RTPでは、既存のメディア形式(コーデック)に対するパケット化方式(ペイロード形式)が、Internet Engineering Task Force Audio/Video Transport Working Group(IETF AVT WG)において指定されている。例えば、AMR方式で符号化される音声データ用のペイロード形式と、H.264映像用の別の形式とが存在する。非特許文献5に定義されているRTPペイロード形式では、このフレームワークにおいてRTPパケットを再送信することもできる。このことは、3GPP PSSストリーミングサービスに特に有用である。
【0007】
非特許文献5に指定されているように、複数回の再送信を発行するメカニズムは、クライアントが必要なときにのみ要求を発行することに依存している。クライアントは、非特許文献6に指定されている可能なフィードバック方式を使用しなければならない。その他のレポーティングブロック、例えば、非特許文献7によって定義されているブロックも、使用することができる。
【0008】
レポーティングの頻度は、RFC 3550における標準のRTCPレポート間隔計算法を使用して計算することができる(6.3節およびAnnexを参照)。受信者レポートの範囲、すなわち、レポートするパケットの数は、指定されていない。クライアントは、RTP/AVPFプロファイルに指定されている一般NACK(Negative ACKnowledgement)フィードバックメッセージを使用する(draft-ietf-avt-rtcp-feedback-11.txtはhttp://www.ietf.org/internet-drafts/において取得できる)。なお、RTP/AVPFプロファイルにはACKメッセージに関して指定されていないため、クライアントはRTP/AVPFプロファイルを使用してパケットに対して肯定応答することはできない。したがって、例えばRLEレポートを使用することによる包括的なレポーティングは提供されない。
【0009】
さらに、RFC 3611に定義されている消失RLEレポートは、圧縮可能な高度なレポーティングブロックであり、初期設定においてACKとNACKとが組み合わされる、すなわち、消失パケットおよび受信パケットについてレポートすることができる。これらのレポートは、ネットワークの保守目的、課金、マルチキャストツリーインファレンス(multicast tree inference)、および統計情報の収集のために指定されたものである。
【0010】
消失RLEレポートおよびユニキャストRTCPレポーティングに対処している3番目のドキュメントは、3GPPパケット交換ストリーミングサービス(PSS)フレームワークである。このドキュメントによると、ストリーミングクライアントは消失RLEレポートブロックの使用を実装し、過去のRTCP間隔について冗長にレポートすることが推奨されている。さらに、3GPP PSSフレームワークによると、これらのレポートは再送信をトリガする目的には使用すべきでないことが記されている。
【0011】
3GPP PSSフレームワークのコンテキストにおける冗長なレポーティングとは、消失データパケットに関する最小回数のレポートを、それらの処理前、または処理後において有効にすることとして理解される。しかしながら、クライアントにおいてこのメカニズムをどのように実装すべきか、およびこのメカニズムをRTP再送信要求と一緒にどのように使用すべきかに関する指定はない。消失パケットに関する冗長なレポーティングが望ましいのは、フィードバック、すなわちRTCPメッセージが、一般には、UDPのような、肯定応答されず、従って信頼性の低い伝送プロトコルを使用して送信されるためである。したがって、特に、例えばUMTSのような無線アクセスネットワークを介したサービスの提供を考慮するときには、セッションの受信者によって提供されるフィードバックが消失することがある。
【0012】
上述したように、PSSフレームワークでは、消失RLEレポートブロック(RFC 3611)は課金およびネットワークの監視のみを目的として使用することが要求されるのに対して、消失データパケットの再送信を実際にトリガする目的には一般NACKメッセージ(RTP/AVPFプロファイル)が使用される。したがって、PSSフレームワークでは、再送信をトリガできるようにすると同時に、(例えば)課金およびネットワークの監視を行うことができるようにするためには、伝送セッションのRTCPフィードバックには一般NACKレポートブロックおよび消失RLEレポートブロックが含まれていることが要求される。
【0013】
Reyらによって説明されている複数回再送信アルゴリズムでは、パケットの再送信をトリガする目的に、OttらによるRTP/AVPFドラフトに定義されているメッセージ形式、すなわち一般NACKを使用する(または使用することができる)。
【0014】
3GPP PSSフレームワークによって推奨されているように、受信されたパケットと受信されないパケットとの両方をレポートする場合、このことは、これらのレポートブロックが増大して相当なオーバーヘッドとなりうることを意味し、従って、RTCPに割り当てられている予約帯域幅が不足して、継続的な送受信(play-out)および/または要求されるレポートの冗長度を保証するのに必要な時間長にわたりレポートすることができなくなることがある。さらに、再送信のトリガと平行して、課金およびネットワークの監視サービスを可能にするためには、PSSセッションを受信するクライアントのフィードバックに冗長なレポートブロック(消失RLEレポートブロック)を含める必要があり、このブロックもオーバーヘッドにつながり、レポーティングの頻度と、従って提供することのできる冗長レポーティングのレベルに影響する。
【非特許文献1】"Universal Mobile Telecommunications System (UMTS) ; Transparent end-to-end streaming service ; Protocols and codecs", 3GPP TS 26.234 version 6.1.0, September 2004
【非特許文献2】Schulzrinne et al., "RTP : A Transport Protocol for Real-Time Applications", RFC 3550, July 2003
【非特許文献3】Schulzrinne et al., "RTP Profile for Audio and Video Conferences with Minimal Control", RFC 3551, July 2003
【非特許文献4】Postel, "User Datagram Protocol", RFC 768, August 1980
【非特許文献5】Rey et al., "RTP Retransmission Format", Internet Draft, IETF AVT Workgroup, August 2003
【非特許文献6】Ott et al., "Extended RTP Profile for RTCP-based FeedbacK (RTP/AVPF)", Internet Draft, IETF AVT Workgroup, August 2004
【非特許文献7】Friedman et al., "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, November 2003
【発明の開示】
【0015】
(発明の概要)
したがって、本発明の目的は、ユニキャストセッションにおけるRTCPフィードバックを最適化する方法を提供することである。
【0016】
本発明のこの目的は、独立請求項の主題によって解決される。好ましい実施形態は、従属請求項の主題である。
【0017】
本発明の1つの実施形態は、RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージを、クライアントからストリーミングサーバに提供する方法に関する。この方法によると、クライアントは、ストリーミングセッションのセッション制約内で提供することのできるデータパケットの最大再送信回数が、クライアントによって有効にされる最小再送信回数よりも大きいか否かを、最初に判断することができる。大きい場合、消失データパケットの再送信を要求する複数の一般NACKレポートブロックを、RTCPフィードバックパケットに追加することができる。これらの追加された複数の一般NACKレポートブロックによって、クライアントバッファリング時間内での消失データパケットの再送信を最小回数にすることができる。次に、クライアントは、セッション制約を考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定して、結果のRTCPフィードバックパケットのサイズがRTCPフィードバックメッセージの最大サイズを超えないように、消失データパケットに関してレポートする複数の消失RLEレポートブロックを、RTCPフィードバックパケットに追加することができる。さらに、クライアントは、RTCPフィードバックパケットを、RTCPフィードバックメッセージとしてストリーミングサーバに送信することができる。
【0018】
本発明の別の実施形態は、少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアントからストリーミングサーバに提供する方法に関する。この実施形態においては、少なくとも1つのストリーミングセッションが、RTPプロトコルおよびRTCPプロトコルを使用して提供されており、ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が、RTCPフィードバックメッセージに割り当てられる。
【0019】
クライアントは、RTCPフィードバックメッセージのためのRTCP帯域幅と、クライアントバッファリング時間内で有効にする最小再送信回数と、少なくとも1つのストリーミングセッションの消失データパケットに関する最小レポーティング冗長度と、クライアントバッファリング時間とを示すセッション記述情報を受信することができる。さらに、クライアントは、クライアントバッファリング時間とRTCPレポート間隔とに基づいて提供されうるデータパケットの最大再送信回数を決定することができる。RTCPレポート間隔は、RTCPフィードバックメッセージの平均サイズと、クライアントに割り当てられているRTCP帯域幅とに依存する。
【0020】
クライアントは、最大再送信回数が、最小再送信回数以上であるかをさらに判断することができ、以上である場合、クライアントは、消失データパケットの再送信を要求する複数の一般NACKレポートブロックを、RTCPフィードバックパケットに追加することができる。RTCPフィードバックパケットに追加されるこの複数の一般NACKレポートブロックによって、クライアントバッファリング時間内での消失データパケットの再送信を最小回数にすることができる。
【0021】
さらに、クライアントは、割り当てられているRTCP帯域幅と、クライアントバッファリング時間と、最小再送信回数とを考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定することができ、さらに、以前に送られたRTCPフィードバックメッセージの平均サイズと、複数の一般NACKレポートブロックを含むRTCPパケットのサイズとに基づいて、結果のRTCPフィードバックメッセージの平均サイズを決定することができる。
【0022】
さらに、クライアントは、結果のRTCPフィードバックパケットのサイズがRTCPフィードバックメッセージの最大サイズを超えない場合、消失データパケットに関してレポートする複数の消失RLEレポートブロックを、RTCPフィードバックパケットに追加することができ、RTCPフィードバックパケットを、RTCPフィードバックメッセージとしてクライアントからストリーミングサーバに送信することができる。
【0023】
本発明の別の実施形態においては、課金またはネットワークの監視を目的とする消失RLEレポートブロックが、RTCPフィードバックパケットに追加される。
【0024】
さらなる実施形態においては、複数の消失RLEレポートブロックにランレングス(runlength)符号化を行い、次いで、ランレングス符号化を行ったこれらの消失RLEレポートブロックを含む結果のRTCPフィードバックパケットのサイズが、RTCPフィードバックメッセージの最大サイズを超えていないか否かを判断する。消失RLEレポートブロックのランレングス符号化を実行することによって、それぞれの数のレポートブロックによって提供することのできるレポーティング冗長度を一定に維持しながら、消失RLEレポートブロックのサイズを減少させることができる。
【0025】
別の実施形態においては、クライアントは、クライアントによるセッション記述情報によって設定されている最小レポーティング冗長度を減少させることを決定することができる。パケットの消失に関するレポーティング冗長度を減少させるためのさまざまな可能な方法を予測することができる。
【0026】
例えば、この実施形態の1つの変形形態においては、クライアントは、ストリーミングセッションのパケットに提供されているアップリンクのサービス品質を決定することができる。この測定された、または決定されたサービス品質(QoS)に基づいて、例えば、決定されたサービス品質が所定のしきい値レベルより大きい場合に、最小レポーティング冗長度を減少させる。
【0027】
別の変形形態においては、複数の消失RLEレポートブロックのサイズを減少させることによって、クライアントがレポーティング冗長度を減少させることが予測される。
【0028】
例えば、ストリーミングセッションのデータに、ストリーミングメディアの基本品質を提供する基本データ層と、このストリーミングメディアの基本品質を高める少なくとも1つのエンハンスメント層(enhancement layer)とが含まれている場合には、基本データ層のデータが含まれているデータパケットに関する情報のみを消失RLEレポートブロックに含めることによって、複数の消失RLEレポートブロックのサイズを減少させることができる。
【0029】
例えば、少なくとも1つのストリーミングセッションのデータがMPEGストリームであり、基本データ層にIフレームが含まれており、少なくとも1つのエンハンスメント層にPフレームおよび/またはBフレームが含まれているとする。この例においては、クライアントは、Iフレームは必ずレポートされるが、クライアントによって認識されるストリームのQoSに対する影響の小さいPフレームおよび/またはBフレームについては、セッション記述情報によって設定されているセッション制約の中で可能な場合にのみレポートされるようにすることができる。
【0030】
これに関して、クライアントは、消失データパケットに基本データ層のデータが含まれているか否かを、クライアントにおいてすでに受信されたデータパケットに基づいて判断することができる。
【0031】
本実施形態のさらなる変形形態による、複数の消失RLEレポートブロックのサイズを減少させるさらなる可能な方法は、(1つ以上の)消失RLEレポートブロックにシニング(thinning)を適用することである。
【0032】
さらに、本実施形態の別の変形形態では、RTCPフィードバックパケットにおいてレポートされる複数の消失RLEレポートブロックを減少させることによって、複数の消失RLEレポートブロックのサイズを減少させることが予測される。
【0033】
理想的には、本発明の別の実施形態においては、RTCPフィードバックパケットに追加される複数の消失RLEレポートブロックによって、消失パケットのレポーティング冗長度を最小にすることができる。
【0034】
さらに、本発明の別の実施形態においては、ストリーミングセッションのMIMEタイプのパラメータがパケットレートを示すことが予測される。このパラメータは、例えば、RTCPレポート間隔の中でレポートしなければならないストリーミングセッションの平均パケット数を推定するのに有用である。
【0035】
本発明のさらなる実施形態においては、クライアントは、ストリーミングセッションのどのパケットが消失したかを、クライアントにおいて受信されたデータパケットの連続番号に基づいて判断することができる。
【0036】
本発明の別の実施形態は、少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアントからストリーミングサーバに送信する、モバイル通信システムにおけるクライアントに関する。この場合も、この少なくとも1つのストリーミングセッションは、RTPプロトコルおよびRTCPプロトコルを使用して提供されており、ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が、RTCPフィードバックメッセージに割り当てられる。本発明のこの実施形態によるクライアントは、セッション記述情報を受信する受信器、およびクライアントバッファリング時間とRTCPレポート間隔とに基づいたときに提供することのできるデータパケットの最大再送信回数を決定するステップと、最大再送信回数が最小再送信回数以上であるか否かを判断するステップとを行う処理手段を備えていることができる。セッション記述情報は、RTCPフィードバックメッセージのためのRTCP帯域幅と、クライアントバッファリング時間内で有効にする最小再送信回数と、少なくとも1つのストリーミングセッションの消失データパケットの最小レポーティング冗長度と、クライアントバッファリング時間とを示す。RTCPレポート間隔は、RTCPフィードバックメッセージの平均サイズと、クライアントに割り当てられるRTCP帯域幅とに依存する。
【0037】
上記処理手段は、消失データパケットの再送信を要求する複数の一般NACKレポートブロックをRTCPフィードバックパケットに追加してクライアントバッファリング時間内での消失データパケットの再送信回数を最小にするステップと、最大再送信回数が最小再送信回数以上である場合に、割り当てられているRTCP帯域幅、クライアントバッファリング時間、および最小再送信回数を考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定するステップと、を行うようにすることができる。
【0038】
上記処理手段は、以前に送られたRTCPフィードバックメッセージの平均サイズと、複数の一般NACKレポートブロックを含んでいるRTCPパケットのサイズとに基づいて、結果のRTCPフィードバックメッセージの平均サイズを求めるステップと、この結果のRTCPフィードバックパケットのサイズがRTCPフィードバックメッセージの最大サイズを超えない場合、消失データパケットに関してレポートする複数の消失RLEレポートブロックをRTCPフィードバックパケットに追加するステップと、を行うようにすることもできる。
【0039】
クライアントは、RTCPフィードバックパケットをRTCPフィードバックメッセージとしてストリーミングサーバに送信する送信器をさらに備えていることができる。
【0040】
別の実施形態は、上述したさまざまな実施形態およびそれらの変形形態のうちの1つによる方法を実行するようにされている手段、をさらに備えているクライアントに関する。
【0041】
さらに、本発明の別の実施形態は、モバイル通信システムにおけるクライアントのプロセッサによって実行されたときに、クライアントに、少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアントからストリーミングサーバに提供させる、命令、を格納しているコンピュータ可読媒体に関する。この場合も、少なくとも1つのストリーミングセッションは、RTPプロトコルおよびRTCPプロトコルを使用して提供されており、ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅は、RTCPフィードバックメッセージに割り当てられる。
【0042】
クライアントにおいて、RTCPフィードバックメッセージのためのRTCP帯域幅と、クライアントバッファリング時間内で有効にする最小再送信回数と、少なくとも1つのストリーミングセッションの消失データパケットの最小レポーティング冗長度と、クライアントバッファリング時間とを示すセッション記述情報を受信するステップと、クライアントバッファリング時間と、RTCPフィードバックメッセージの平均サイズおよびクライアントに割り当てられるRTCP帯域幅に依存するRTCPレポート間隔とに基づいてデータパケットの最大再送信回数を決定するステップと、最大再送信回数が最小再送信回数以上であるか否かを判断するステップと、によって、クライアントに、少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアントからストリーミングサーバに提供させることができる。
【0043】
後者の場合、命令によって、消失データパケットの再送信を要求する複数の一般NACKレポートブロックをRTCPフィードバックパケットに追加して、クライアントバッファリング時間内での消失データパケットの再送信を最小回数にするステップと、割り当てられているRTCP帯域幅、クライアントバッファリング時間および最小再送信回数を考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定するステップと、以前に送られたRTCPフィードバックメッセージの平均サイズおよび複数の一般NACKレポートブロックを含んでいるRTCPパケットのサイズに基づいて、結果のRTCPフィードバックメッセージの平均サイズを決定するステップと、この結果のRTCPフィードバックパケットのサイズがRTCPフィードバックメッセージの最大サイズを超えない場合に、消失データパケットに関してレポートする複数の消失RLEレポートブロックをRTCPフィードバックパケットに追加するステップと、RTCPフィードバックパケットをRTCPフィードバックメッセージとしてクライアントからストリーミングサーバに送信するステップと、をクライアントに行わせることができる。
【0044】
本発明のさらなる実施形態によるコンピュータ可読媒体は、クライアントのプロセッサによって実行されたときに、クライアントに、上述した本発明のさまざまな実施形態およびそれらの変形形態のうちの1つによる方法を実行させる、命令、をさらに格納している。
【0045】
本発明の別の実施形態は、RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションをクライアントに提供するストリーミングサーバと、上記の本発明の実施形態のうちの1つによるクライアントと、を備えているシステムを提供する。
【0046】
(詳細な説明)
以下では、添付の図面を参照しながら本発明についてさらに詳細に説明する。図面における類似するかまたは対応する細部は、同じ参照数字によって表してある。
【0047】
図1は、本発明の実施形態によるストリーミング環境の概要を示している。ストリーミングサーバ100は、1つまたは複数のセッションの形式におけるストリーミングサービスを、無線アクセスネットワークを介してクライアント101またはモバイル端末に配信することができる。この例においては、コアネットワーク103(CN)を備えているUMTSネットワークと、UMTS無線アクセスネットワーク104(UTRAN)は、3GPP TS 26.234に定義されている要件に従って運用することのできるストリーミングパケット交換サービスを提供する。コアネットワーク103をパケット交換ネットワーク、例えばインターネットに接続するために、コアネットワークは、ゲートウェイGPRSサポートノード105(GGSN)と、サービングGPRSサポートノード106(SGSN)とを備えていることができる。これらコアネットワークの構成要素は、少なくとも1つの無線アクセスコントローラ107(RNC)と、RNCに接続されている少なくとも1つのノードBとを備えているUTRAN 104に接続することができる。ストリーミングメディアのデータは、無線リンクを介してモバイルクライアント101に提供することができる。
【0048】
本発明の1つの態様は、さまざまなRTP再送信の実施形態において、消失をレポートするRLEレポートブロックを効率的に使用することである。そのような実施形態は、一般には、サーバおよびクライアントが実行する機能と、再送信のスケジューリングおよび要求を行うのにサーバおよびクライアントが使用する情報と、サーバおよびクライアントがネットワーク条件(混雑、パケット消失、リンク特性)に関して保持する情報とにおいて異なる。3GPP PSSストリーミングサービスでは、セッション記述属性が定義される。上記の情報を通信ピア間で利用可能にするために、この属性をしてもよく、使用しなくてもよい。
【0049】
RTP再送信の実施形態のいずれにおいても、同一の初期シナリオおよび要件として、以下を想定することができる。すなわち、RTCP伝送の信頼性が低いので、クライアントは冗長なレポーティングを実行すべきである。さらに、クライアントは、少なくとも現在のレポートと1つ前のレポートとの間の期間についてレポートする、すなわち最小受信者レポーティングを保証すべきである。
【0050】
レポートの頻度は、適切なタイミングで再送信を行うことができるように、すなわち、各RTPパケットに対して最小回数の再送信が保証されるように、十分に大きくすべきである。したがって、クライアントは、サーバによって伝えられるRTCP帯域幅に従うように、レポートの頻度、レポートのブロックサイズ、および冗長レポーティングを制限することができる。
【0051】
これらの要件のいくつかは競合し、すべてのシナリオにおいてこれらの要件を同時に満たすことが不可能なことがあるので、クライアントは、与えられた条件に対して、冗長レポーティングのレベル、レポーティングの頻度、およびレポートされるRTPパケットの数を最適化することができる。
【0052】
このことは、例えば、(RTCP帯域幅割当ておよびクライアントバッファリング時間が、冗長なレポーティングを行うことのできるものであると仮定すると)、単純な実施形態において、クライアントが、現在のRTCPレポートと前のRTCPレポートとの間の消失パケットすべてに対して一般NACKレポートブロックを使用して再送信を要求し、これらの消失パケットすべてについて消失RLEレポートブロックを使用してレポートし、消失パケットおよび受信パケットに関する冗長レポーティングのレベルを適切な値に設定し、RTCPレポートの頻度を、適切なタイミングで最大回数だけ再送信できるようにできる限り高く維持することを意味しうる。ダウンリンク(サーバからクライアント)上のRTPパケットは複数回消失することがあり、したがって、複数回の再送信が必要となりうることに留意されたい。
【0053】
伝えられるRTCP帯域幅に従うようにレポートの頻度、レポートブロックのサイズ、および冗長レポーティングを制限するための要件に、この単純な実施形態が従う必要がない場合、クライアントは、最初に、ランレングス符号化によって消失RLEレポートブロックのサイズを減少させることを試みることができる。
【0054】
消失RLEレポートブロックによって、個々のパケットの受信イベントおよび消失イベントに関する詳細なレポーティングが可能である。そのようなレポートは、例えば、ネットワーク特性のマルチキャストインファレンス(MINC)に使用することができる。消失RTPパケットおよび受信RTPパケットのブール式トレース(Boolean trace)は長さが大きくなりうるため、このブロックタイプでは、ランレングス符号化を通じてトレースを圧縮することができる。ランレングス符号化を使用するときには、符号化するトレースを分析し、同一イベントの「連続(runs)」をまとめて消失RLEレポートブロックの全体的なサイズを減少させることができる。
【0055】
次に、クライアントは、消失RLEレポートブロックあたりレポートされるRTPパケットの数を減少させることができる。なお、1つのレポートブロックによってレポートされるパケット数が減少すると、結果的に冗長レポーティングのレベルが減少することに留意されたい。
【0056】
消失RLEレポートブロックによってレポートされるパケットの数を減少させる目的で、消失イベントのレポートを、シニングと称されるメカニズムにおいてトレースから体系的にドロップすることができる。このシニングメカニズムは、シニング値Tを選択することによって実施することができ、この値Tを使用して、連続番号空間内のパケットのサブセット、例えば連続番号が2Tの倍数であるパケットを選択することができる。パケットの受信および消失のレポートは、これらのパケットにのみ適用される。Tは、例えば、0〜15の間で変えることができる。Tがゼロである場合、連続番号空間内のすべてのパケットがレポートされる。Tが15である場合、32,768個のパケットごとに1つのパケットがレポートされる。
【0057】
いま、上述したトレースが連続番号13,821から開始されるとする。トレースにおける最後の連続番号は13,865である。シニング値T=2でトレースにシニングを行う場合、4つごとに1つの連続番号、すなわち、13,824、13,828、13,832、13,836、13,840、13,844、13,848、13,852、13,856、13,860、13,864がレポートされる。
【0058】
レポートされるパケットの数を減少させる別のオプションは、最も新しいパケット群に属するパケットのみをレポートすることである。
【0059】
最後に、これらの方策のいずれも有用ではなく、クライアントバッファリング時間が終了するまでの再送信要求(1つ以上の一般NACKレポートブロック)の最小回数について厳しい要件が課される場合、クライアントは、これらの要求される最小再送信回数に従うための大きなRTCP帯域幅でセッションを再起動し、および/またはクライアントバッファリング時間を増加させる(詳細は後の説明を参照)。
【0060】
本発明の基礎をなす概念をさらに説明する目的で、RTCP帯域幅、クライアントバッファリング時間、RTCPレポート間隔などの間の関係について、図3を参照しながら以下に説明する。図3は、本発明の実施形態によるストリーミング環境の概要を示している。この図には、複数の連続的な再送信要求と再送信とを時系列で示してある。RTPパケットの最初の送信(SN=0)と、その1回目および2回目の再送信とが消失するものと仮定する。
【0061】
送信者(例えばストリーミングサーバ)は、受信者(クライアント)にRTPデータパケットを提供する。遅延Tに寄与するパラメータは、送信者から1つ以上のネットワークを通じての受信者までの一方向遅延、すなわち、物理的な遅延(physical delay)、エアインタフェースにおける送信遅延(transmission delay)、およびネットワークキューや順序入れ替えなどによる到着間ジッタ(interarrival jitter)に起因する遅延である。
【数1】

より詳細には次のようになる。
【数2】

【0062】
いま、パケットの最初の送信が消失すると仮定すると、Tは、そのパケットの理論的な到着と、受信者がパケット消失を示すフィードバックを送信者に提供する時点との間の時間間隔を表す。
【0063】
したがって、Tは、クライアントにおいてパケット消失を検出するのに要する時間(パケット消失検出時間:packet loss detection time)と、クライアントからの次のフィードバックレポートまでの平均時間(average time to the next feedback report)とからなる。
【数3】

【0064】
パケット消失検出時間は、1つのパケットが偶発的に消失するのか(シングルトン消失)、またはパケットがバースト的に消失するのか(バースト消失)に依存する。前者の場合、パケット消失検出時間は、受信者において生じる到着間遅延ジッタ(interarrival delay jitter)に等しいはずである。後者の場合、実際の値を求めるには、バッファリング時間に追加のガードタイム(guard time)を加えなければならない。このガードタイムは、平均消失バースト(average loss burst)として定義され、バースト消失が検出されるまでに時間がかかることを反映するものである。
【0065】
一般には、消失イベントは均一に分布しているので、次のフィードバックレポートまでの平均時間は、通常ではRTCPレポート間隔(RTCP report interval)の1/2である。
【数4】

【0066】
フィードバックレポートの遅延Tは、基本的には遅延Tと同様に計算することができる。
【数5】

より詳細には次のようになる。
【数6】

【0067】
最後に、送信者における再送信の処理時間は、Tで表してあり、送信者がどのパケットを再送信するかを決定するまでに必要な時間(フィードバック処理時間:feedback processing time)と、送信者におけるキューイング時間(queuing time)、すなわち、再送信されるパケットが実際に送信される前に送信者の(再)送信キューの中にとどまる時間とが含まれる。
【数7】

【0068】
なお、T+T+Tはラウンドトリップタイム(RTT)に相当することに留意されたい。
【数8】

【0069】
RTTは、一般には、RTCPレポート間隔よりも小さい。そうでない場合、受信者は最初にパケットの再送信を待機することなくフィードバックを送信するため、レポーティングは過剰になる。さらに、RTTにフィードバック処理時間を加えた合計は、一般には同様にRTCPレポート間隔より小さい。なぜなら、サーバは、通常、定義されている再送信帯域幅を保証しなくてはならず、したがってこの時間は大幅には増大しないからである。
【0070】
提供することのできるレポーティング冗長度に影響を与える、RTPセッションの別の重要な「変数」は、上述したクライアントバッファリング時間である。このクライアントバッファリング時間は、一般的には、データパケットがユーザに「出力」されるまで受信者のメモリにバッファリングされている時間期間として定義することができる。例えば、映像ストリーミングセッションの場合、クライアントバッファリング時間は、データパケットの内容がユーザに表示されるまでそのデータパケットが受信者のメモリ(バッファ)に格納されている時間期間として理解することができる。
【0071】
パケットがユーザに提供されるまでにRTPセッション内で提供できる再送信回数は、次のように表すことができる。
【数9】

【0072】
「Integer()」関数は、除算の結果から整数値を取り出す。(アップリンク送信の)RTCPレポート間隔は、次のように定義される。
【数10】

この式において、
【数11】

【0073】
この等式において、現在のRTCPパケットサイズ(current RTCP packet size)は、送信される次のRTCPフィードバックのサイズに等しい。
【0074】
上の計算の1つの単純化として、Tの定義において、バースト的ではない、すなわちパケットのシングルトン消失のみを考慮することができ、すなわち次式となる。
【数12】

【0075】
クライアントにおいてT+T+T+Tが必ず計算可能であるとは限らないので、この合計に使用することのできる控えめな近似として、図3に示した近似を使用することができる(模範例を目的として最小再送信回数は3とする)。例えば、RTCPレポート間隔の値は、この合計のおおまかな推定値を表すことができ、控えめなバッファリング時間(client_buffering_time’)は、次のように定義することができる。
【数13】

【0076】
控えめなクライアントバッファリング時間(client_buffering_time’)は、要求される最小再送信回数(min_no_rtxs)を確保するためのバッファリング時間として理解することもできる。このことは、当然ながら、値T+T+T+TがRTCPレポート間隔よりも小さいときにのみ当てはまる。値T+T+T+Tは、一般にはRTCPレポート間隔よりも小さく、なぜなら、そうでない場合、クライアントは生じうる再送信を待機せずにフィードバックを送信することになるからである。このことは、サーバによって、あるいはSDPまたは類似するプロトコルを使用してセッション記述情報を設定する責務を負うコンテンツ作成者によって確保されるものとする。
【0077】
本発明の1つの実施形態によると、可能な再送信回数の計算(等式9を参照)は、次のように単純化することができる。
【数14】

【0078】
当然ながら、より正確である等式9の計算を使用することもできる。しかしながら、等式13は、より容易に実施することができる。PSSストリーミングサービスの初期段階において、クライアントは、特定のサーバから提供されるセッションの詳細に関する記述を要求する。サーバは、この要求に応答して、セッション記述を送信する。特に、以下のパラメータがセッション記述によってクライアントに知らされる。
【0079】
・ メディアセッションに使用されるコーデックのMIMEタイプ(例えば、H263、AMR、MPEG4など)
・ 受信者レポートのためのRTCP帯域幅割当て(client_rtcp_bandwidth)(ビット/秒)。PSS仕様が対象としているアプリケーションなどのユニキャストストリーミングアプリケーションの場合の帯域幅割当ての初期値は、送信者および受信者のそれぞれについて、合計RTCP帯域幅の50%である。それ以外の値は、RFC 3556の規定を使用して明示的に指定することができる。合計RTCP帯域幅は、一般にはセッション総帯域幅の5%である。
・ コーデックを記述する任意のMIMEタイプパラメータ。これらのパラメータは、パケットレート(1秒あたりのパケット数)などストリームのその他の値を計算するのに使用することができる。
・ クライアントが使用することのできる任意のRTCPパケットの最大サイズ。現在、PSSフレームワークの中でサーバの(RTCPではなく)RTPパケットのサイズを制限することが可能である。将来的には、RTCPレポートパケットについて同様の制限が可能である。
【0080】
さらに、本発明の実施形態によると、以下の追加のパラメータがクライアントに知らされる。
【0081】
・ サーバによって推奨される最小再送信回数(min_no_rtxs)。サーバは、クライアントが各パケットに対して最小回数の再送信を保証することを提案することができる。この理由は、例えば、サービスプロバイダがリンク上のパケット消失を認識しているからである。上述したように、PSSストリーミングサービスにおける再送信は、フィードバックにおける一般NACKレポートブロックによってトリガする必要がある。
・ (同じく)サーバによって推奨されるレポーティング冗長度(report_redundancy)。この数値は、消失RLEレポートブロックを使用してパケットをレポートする回数を示す。サービスプロバイダにとっては、達成されているリンクのパフォーマンス(どのパケットが受信された、または受信されていないか)と、パケットをクライアントに提供するのに最大で何回の再送信が必要であるかとを知ることは重要である。このことは、個々に知覚されるサービス品質に対してのみクライアントに課金を行ううえでも重要である。
・ クライアントバッファリング時間(client_buffering_time)(単位:秒)。これは、あとの段落に説明するようにセッションパラメータから導くことができる。
【0082】
クライアントバッファリング時間を考慮するとき、以下の2つの可能なシナリオがある。
【0083】
第1の可能なシナリオは、3GPP PSSフレームワークに定義されているビットレートの適合化をクライアントがサポートしない場合である。
【0084】
この場合、クライアントバッファリング時間は、初期バッファリング時間、すなわち、セッション開始後にクライアントがバッファのパケットの読み出しを開始するまでの時間、に等しい値に選択することができる。
【0085】
第2の可能なシナリオは、3GPP PSSフレームワークに定義されているビットレートの適合化をクライアントがサポートする場合である。この場合、クライアントは以下のパラメータを使用することができる。
【0086】
・ バッファサイズ(buffer_size)。これは、「3GPP適合化」ヘッダにおいて伝えられる。このパラメータは、RTPヘッダを含む完全なRTPパケット用にこの特定のスペース量を持つ受信バッファおよびデジッタ処理バッファ(reception and de-jittering buffer)と一致している必要がある。指定されるバッファサイズには、そのメディアに使用される予備復号器のバッファ空間を含めることもできる。したがって、このパラメータは、セッションの任意の瞬間にクライアントが利用できるセッションデータ(RTPパケット)の最大サイズに対応する。一般には、このパラメータはクライアントバッファリング時間の値を決定する目的には使用されない。
・ 目標保護時間(target_protection_time)。これは、「3GPP適合化」ヘッダ(「目標時間」パラメータ)においてクライアントに伝えられる。このパラメータは、目標の最小バッファレベル、言い換えれば、中断のない再生が保証され、かつ必要な場合にサーバが送信速度を調整することのできる、クライアントにおける望ましい再生時間長(単位:ミリ秒)を表す。本発明の1つの実施形態によると、このパラメータはクライアントバッファリング時間(client_buffering_time)として使用される。
【0087】
クライアントは、一旦セッション記述情報を受信すると、伝えられたRTCP帯域幅割当て(client_rtcp_bandwidth)と、そのメディアストリームを対象とするクライアントバッファリング時間(client_buffering_time)とが、パケット消失に関するレポーティングが可能であるように選択されているか否かを判断することができる。さらに、クライアントは、そのRTCP帯域幅割当ておよびクライアントバッファリング時間において、パラメータreport_redundancyによって指定されている望ましいレポート冗長度と、パラメータmin_no_rtxsによって指定されている要求される最小回数の再送信とを提供することができるか否かを、さらに判断することができる。
【0088】
なお、レポーティング冗長度は、サービス提供ネットワークの監視、課金などの課題(消失RLEレポートブロック)に関連するのに対し、提供される最小回数の再送信は、先に概説したように一般NACKのフィードバックに基づいていることに留意されたい。
【0089】
1つの実施形態によると、クライアントのバッファによって各パケットに対するタイマがclient_buffering_time秒に設定されていると仮定する。パケットがこの時間期間内に受信されない場合、タイマが切れて、そのパケットに対してもはや再送信を要求することができない(すなわち、さらなる一般NACKメッセージに含めることができない)。
【0090】
さらに、過去のRTCPレポート(以前に送信された一般NACKレポートブロックおよび消失RLEレポートブロックが含まれている)がクライアントにおける送信バッファに保存されることを仮定することもできる。このバッファのサイズは、例えば、サーババッファリング時間(server_buffering_time)(単位:秒)に一致する値に設定することができる。さらに、このバッファは、後から説明する方法によって必要とされるように、送信された必要なRTCPパケットを格納するのに十分な大きさである必要がある。
【0091】
以下の段落では、本発明の実施形態による好ましいアルゴリズムについて説明する。このアルゴリズムは、RFC 3550のAnnex Aに記載されている標準RTPアルゴリズムと補完的な関係にある。標準RTPアルゴリズムとは対照的に、このアルゴリズムによる発明によれば、パラメータmin_no_rtxsおよびパラメータreport_redundancyを考慮して、PSSに従ったセッションを設定することができる。このアルゴリズムは、以下を達成するうえで必要である一般NACKレポートおよび消失RLEレポートのサイズをクライアントが求めるときに有用である。
【0092】
・ すべての各パケットに対して最大回数のパケット再送信を可能にし、またはクライアントバッファリング時間内での最小回数(min_no_rtxs)の再送信を実施し、
・ (可能な場合に)パラメータreport_redundancyによって設定されているレポート冗長度を提供し、
・ その一方で、受信者レポートのための与えられたRTCP帯域幅と、クライアントのバッファリング能力とに従う。
【0093】
以下の好ましいステップは、クライアントが、自身が送信するすべての各RTCP受信者レポートについて、最初のRTCPパケットから開始して実行することができる。
【0094】
ステップ1:RTP/AVPFによる1秒の初期待機期間後、クライアントは、新しい一般NACKメッセージにおいてパケットの再送信を要求することができる。実施の観点からは、このステップは照合動作である。なぜなら、上述したReyらのインターネットドラフトに従って再送信を実行しているすべてのクライアントは、保留中の要求のリストを維持する必要があるからである。
【0095】
模範的なリストは、2つの列、すなわち、連続番号SNの列と、特定のSNを持つパケットが受信されたか受信されていないかを示すフラグ(例えば、「0」:受信されていない、「1」:受信された)の列とで構成することができる。このリスト中に存在する受信されていないパケットをNACKに含める。なお、受信されていないパケットは、各パケットのクライアントバッファリング時間(client_buffering_time)が経過した後に、このリストから削除する。
【0096】
ステップ2:第2のステップは、与えられたRTCP帯域幅(client_rtcp_bandwidth)の場合における、一般NACKレポートブロックにレポートされるパケットの最大再送信回数(max_no_rtxs)を計算することである。再送信が保留中であるパケットは、最小回数(min_no_rtxs)の再送信を実施するうえですべての各再送信パケットに含まれている必要のある最小の情報であるため、最大再送信回数は、控えめなクライアントバッファリング時間(client_buffering_time’)をRTCPレポート間隔(RTCP_report_interval)の現在の値で除することによって計算することができる。
【数15】

【0097】
この計算には、上の等式(13)に提示した単純化が含まれていることに留意されたい。RTCPレポート間隔パラメータrtcp_report_intervalは、一般にはRTP基本アルゴリズムの一部として各RTPクライアントおよびサーバによって維持される。
【0098】
平均RTCPパケットサイズ(avg_rtcp_packet_sizeNACK)は、次のように計算することができる(上の等式11も参照)。
【数16】

【0099】
現在のRTCPパケットサイズ(単位:バイト)、すなわち一般NACKレポートブロックを含んでいる(しかし消失RLEレポートブロックは含んでいない)ときの次のフィードバックメッセージのパケットサイズは、次のように計算することができる。
【数17】

この式において、step()は、パラメータとしてnおよび定数17をとる数学ステップ関数である。17は、1つの一般NACKレポートブロックにおいて要求することのできるパケット数である。当然ながら、17を超える/17未満のパケットを1つの一般NACKレポートブロックによって要求できる場合には、ステップ関数のパラメータとして17以外の別の定数を選択することが可能である。いくつかのnの値に対しては次のようになる。
【数18】

Kは、少なくとも1つの一般NACKメッセージを有するRTCP受信者メッセージを含んでいるIPパケットにおける固定フィールドを考慮する定数である。
【0100】
例えば、パケットの構成が、32バイトの1つの受信者レポート(RR)と、12バイトの1つのSDESアイテム(CNAMEを持つ)とを有し、暗号化ヘッダあるいはプロファイルに固有な拡張部が存在しないという標準的な構成である場合、固定フィールドは、IPヘッダ+UDPヘッダ+RTCPヘッダ+1RR+1SDESアイテム(CNAME)+NACK固定フィールド、すなわち、20+8+8+24+12+12=84バイトとなる。
【0101】
パケットに、電話番号や電子メールのような、プロファイルに固有の拡張部またはその他のSDESアイテム、もしくはBYEパケットやアプリケーションに固有のパケット(APP)のような、その他のRTCPレポートブロックが含まれている場合、それらの固定フィールドをこの定数Kに追加しなければならない。同じことは、後述するK’にも当てはまる。
【0102】
計算された最大再送信回数(max_no_rtxs)(等式14)が1より大きい(>1)場合、そのことは、消失パケットが後からの1回以上の再送信において受信される可能性があることを意味する。
【0103】
一般には、クライアントは、最小再送信回数(min_no_rtxs)に従うことが要求される。これが不可能である場合、すなわちmax_no_rtxs<min_no_rtxsである場合、RTCP帯域幅割当てとクライアントバッファリング時間とによって決まる制約内では、要求される最小回数のパケット再送信を提供することが不可能であるので、クライアントは、より少ない再送信回数で続行するか、あるいはセッションを再起動して別の設定(例えば、より高いRTCP帯域、min_no_rtxsがより小さくなるようにさらに良好に保護されたストリームなどを選択することによる、要求されるバッファリング時間がより少ないコーデック設定)を選択することを決定することができる。
【0104】
言い換えれば、上の計算を満たすことのできる、クライアントによって要求される最小再送信回数が存在する場合、最大パケットサイズ(後から説明する)に達するまでフィードバックにデータを追加することが可能である。存在しない場合、RTCPパケットが大きすぎ、必要な回数だけ再送信を要求することができない。
【0105】
min_no_rtxs回のパケット再送信を要求することのできる、RTCPパケットの最大サイズ(max_rtcp_packet_size)は、次のように計算することができる。
【数19】

【0106】
後者のパラメータは常に1より大きいので、等式17は、min_no_rtxsのすべての値それぞれに対して定義されることに留意されたい。そうでない場合、上述したインターネットラフトにおいてReyらによって提案されている再送信を使用する意味がなくなる。
【0107】
ステップ3:クライアントがmin_no_rtxsを実施することができると仮定し、かつ、max_no_rtxs>min_no_rtxsであると仮定すると、次のステップは、等式17を使用して計算されるmax_rtcp_packet_sizeに達するまで、(再送信を要求する一般NACKに加えて)消失RLEレポートブロックをフィードバックメッセージに含めることである。言い換えれば、max_rtcp_packet_sizeとcurrent_rtcp_packet_sizeNACKとの間の差は、最小再送信回数min_no_rtxsの要件に違反することなく現在のRTCPパケットに追加することのできるデータ量に等しい。
【数20】

【0108】
さきの場合(等式16を参照)に似て、RTCPのIPヘッダおよびUDPヘッダと、一般NACKメッセージおよび消失RLEレポートとを含めたRTCPパケットサイズをnの関数として計算するための一般式は、次のとおりである。
【数21】

この式において、step’()はさきと同じであり、step()は、パラメータとしてnおよび定数30をとる数学ステップ関数である。なお、等式19においては、フィードバックには少なくとも1つの消失RLEレポートブロックが含まれていることを仮定しており、含まれていない場合、等式16を使用して現在のRTCPパケットサイズを計算できる。パラメータ30は、1つの消失RLEレポートブロックにおいてレポートすることのできるパケットの数である。当然ながら、30を超える/30未満のパケットを1つのRLEレポートブロックによってレポートできる場合には、ステップ関数のパラメータとして30以外の別の定数を選択することが可能である。いくつかのn’記号の値に対しては次のようになる。
【数22】

【0109】
なお、nおよびn’は、段階的に増加することに留意されたい。この理由は、RTCPレポートが32ビットに揃えられており、レポートするパケットの数が17または30の倍数を超えると4バイトワード全体が追加されるからである。
【0110】
等式19においては、K’は、上の等式16の場合に定義されているKよりも大きい6バイトである。なぜなら、次に送られる(現在の)RTCPフィードバックメッセージには(少なくとも)1つの消失RLEレポートブロックが含まれているからである。
【0111】
クライアントが、与えられたreport_redundancyの値に従うことが要求される場合、クライアントは、その値によって定義されるとおりに過去の消失RLEレポートブロックを含めることができる。例えば、redundancy_valueが2である場合、同一の消失RLEレポートブロックが2つの連続するRTCPレポートにおいて送られることを意味する。この値が3である場合は、同一の消失RLEレポートブロックが3つの連続するRTCPパケットに存在し、以下同様である。言い換えれば、レポーティング冗長度が2に設定されている場合、1つのRTCPレポート(すなわちその中のRLEレポートブロック)は、過去の2つのRTCPレポート間隔についてレポートする必要があり、レポーティング冗長度が3に設定されている場合、過去の3つのRTCPレポート間隔についてレポートする必要があり、以下同様である。このことにより、クライアントには、有効期間が終了しているパケットを含めて、受信したパケットおよび受信していないパケットのリスト(例えば2列の配列)を維持することが要求される。このリストは、有効期間がまだ終了していないパケットのみが含まれているクライアントバッファの内容とは異なる。
【0112】
ステップ4:必要なレポーティング冗長度を提供するために、次のRTCPフィードバックメッセージに(1つ以上の一般NACKレポートブロックに加えて)追加しなければならない必要な数の消失RLEレポートブロックを含めると、許容される最大RTCPパケットサイズ(max_rtcp_packet_size)を超えるということも起こりうる。この場合、クライアントは、ランレングス符号化によって、1つ以上の消失RLEレポートブロックのサイズを減少させることを試みることができる。パケットサイズを減少させるためのさらなるオプションとして、上述したシニングなどの別の方法も使用することができる。しかしながら、シニングの使用を考慮すると、レポーティング冗長度が減少する。
【0113】
これらのメカニズムによっても、必要なレポーティング冗長度が保証されるだけRLEレポートブロックのサイズを十分に減少させることができない場合、クライアントは、そのreport_redundancy値に従わないことを決定し、送信を続行することができる。これに代えて、クライアントは、セッションを再起動して、より大きなクライアントバッファリング時間、またはより低いビットレートのコーデック設定を選択することができる。
【0114】
ステップ5:最後に、avg_rtcp_packetsizeおよびrtcp_report_intervalのような、RFC 3550、Annex Aによる標準的なアルゴリズムにおける残りの変数更新および標準処理を、以下の標準的な方法で計算する。
【数23】

【0115】
RTCPパケットを送るたびに、ステップ1〜ステップ5を繰り返すことができる。これに代えて、クライアントは、クライアントの能力が変化したときにのみ、特に、クライアントバッファリング時間またはクライアントのRTCP帯域幅の変化が起きたときにのみ、これらのステップを繰り返すことを選択することもできる。
【0116】
フィードバックメッセージを送った後、クライアントは、RFC 3550に概略的に指定されている規定に従って、セッションのさまざまなパラメータを更新することができる。例えば、クライアントは、平均RTCPパケットサイズを再計算し、その結果としてのRTCPレポート間隔を再計算し、送信バッファの内容を更新し、送信する次のRTCPフィードバックの計算を開始することができる。
【0117】
別の実施形態においては、クライアントがreport_redundancyを減少させることによって、消失RLEレポートブロックのサイズをさらに減少させることができる。しかしながら、この状況においては、クライアントが冗長レポーティングの妥当なレベルを依然として得られるかという疑問が生じる。
【0118】
レポーティング冗長度を減少させることは、リンク上のパケット消失率を測定することのできる実施形態において可能である。パケット消失率は、例えば、送信者からのRTCPレポートから推定することができる。これに代えて、またはこれに加えて、クライアントは、リンク確立処理からのリンクのQoSに関する先験的な情報を保持することができる。したがって、クライアントへの特定のリンク上のパケット消失率が低い/高いときには、冗長レポーティングのレベルをさらに減少させる/高めることができる。なぜなら、信頼性の低い伝送プロトコルを使用しているとき、パケット消失率が低い/高いほど、クライアントのフィードバックが送信者において受信される可能性が高い/低いからである。
【0119】
Friedmanらのインターネットドラフトに指定されている方法以外の、消失RLEレポートブロックのサイズを減少させる別の方法は、例えば、個々のパケットの重要度の推定に基づくことができる。例えば、MPEG−4などの漸進的な(progressive)符号化手法においては、パケットはさまざまな優先度を持つ。したがって、重要度の低いパケット、すなわちPフレームは、レポーティングからドロップすることができる。
【0120】
これに代えて、またはこれに加えて、消失RLEレポートブロックのサイズを減少させる目的で、現在のアプリケーションレベルのQoSおよびリンクレベルのQoSを考慮することができる。例えば、現在のアプリケーションレベルのQoSが十分に高く、および/またはリンクレベルのQoSが低い(すなわちリンクが輻輳状態)場合、クライアントは、一部の消失パケットについてのレポーティングをドロップすることを決定することができる。例えば、MPEG4コーデックでは、高度なパケット消失復元方策が実施される。場合によって、およびストリームのコンテンツによっては、リンク上でいくつかのパケットが消失しても、その消失によってピクチャの品質が影響されないということがありうる。具体的には、Bフレームが消失した場合、その影響は最小であり、パケットを再送信するコストの方が大きく、したがって、アプリケーションはそのパケットをドロップすることを決定することができる。
【0121】
本発明は、3GPP PSSユニキャストストリーミングサービスにおいて以下の利点を有する。第一に、本発明は、一般NACKレポートブロックおよびRLEレポートブロックを使用してRTCP受信者レポートを構築する、ストリーミングサーバおよびクライアントのための追加のメカニズムを、3GPP PSSフレームワークに提供する。クライアントがclient_buffering_timeおよびclient_rtcp_bandwidthを認識していると仮定したとき、本方法では、最小再送信回数(min_no_rtxs)と、特定のレポート冗長度と、レポートの必要な送信頻度と、レポートがカバーすべきパケット数とを提供するためのレポートのサイズを指定することが可能である。
【0122】
上述したように、レポート冗長度は、特に、再送信のパフォーマンスに関して、すなわち、パケットがクライアントによって(正常に)受信されるまで何回再送信されるかに関して、課金アプリケーションおよびネットワークの監視にとって重要である。
【0123】
さらに、本発明は、最も単純なクライアントから、豊富な機能を備えたクライアントまでを、クライアント側において利用可能な情報と、消失RLEレポートの必要な圧縮効率とに応じて確立することができるように、幅広いクライアントの設定を指定するためのフレームワークを定義する。さらに、本発明のいくつかの実施形態は、RTCPフィードバックのサイズを減少させるための追加の方法を提供する。
【0124】
次に、本発明のより具体的かつ好ましいさまざまな実施形態について、図4、図5および図6を参照しながら説明する。
【0125】
図4は、本発明の実施形態による、ストリーミングセッション内でRTCPフィードバックを提供する方法の最初のステップ群を示している。現在のRTCPレポート間隔が終了した時点で、クライアントは、次のRTCPフィードバックをサーバに送る準備を行う。最初に(ステップ401〜404)、クライアントは、設定されているセッションパラメータが、要求される最小回数(min_no_rtxs)の再送信をすることができるものであるか否かを判断することができる。この目的のために、クライアントは、現在のRTCPパケット(次に送るRTCPパケット)に、セッションに対して設計されている最小再送信回数を確保するのに必要な1つ以上の一般NACKレポートブロックのみが含まれていると仮定して、このパケットのサイズを決定することができる(401)。前述したように(等式16を参照)、現在のRTCPパケットのサイズは、レポートするパケットの数に依存する。
【0126】
その計算値(current_rtcp_packet_sizeNACK)と、以前のRTCPフィードバックメッセージの平均サイズ(sent_rtcp_packet_size)とに基づいて、平均RTCPパケットサイズ(avg_rtcp_packet_sizeNACK)を、上の等式15を使用して決定することができる(402)。次いで、クライアントバッファリング時間内で可能である最大再送信回数(max_no_rtxs)を計算する(403)(等式14を参照)。
【0127】
これらの計算に基づいて、クライアントは、ステップ404において、要求される最小回数(min_no_rtxs)の再送信が可能であるか否かを判断することができる。可能ではない場合、クライアントは、上述したようにセッションパラメータの別の設定を用いてセッションを再設定し、または再起動することができる(405)。
【0128】
max_no_rtx>min_no_rtxsである場合、セッションパラメータであるクライアントバッファリング時間と、RTCP帯域幅割当てと、最小再送信回数とは、クライアントがこれらの制約パラメータの中で動作できるように選択されている。したがって、クライアントは、次のステップ406において、最小回数の再送信を提供するのに必要な1つ以上の一般NACKレポートブロックを、現在のフィードバックメッセージに追加することができる。そのセッションにおいて消失RLEレポートブロックによる(追加の)レポーティングが必要ない場合には(ステップ407を参照)、クライアントは、1つ以上の一般NACKレポートブロックのみが含まれている現在のフィードバックメッセージをサーバに送信するステップ(408)に進むことができる。
【0129】
パケット消失に関する(冗長な)レポーティングがセッションに要求される場合、クライアントは、次いで、最小回数の再送信を確保するための1つ以上の一般NACKレポートブロックのみならず、パケット消失に関する冗長なレポーティングを確保するのに必要なR個の消失RLEレポートブロックをさらに含めるための十分な容量が、現在のフィードバックメッセージにあるか否かを判断することができる。
【0130】
この目的のために、クライアントは、次いでステップ409において、最小回数の再送信を提供することのできるRTCPフィードバックメッセージの最大サイズを決定することができる(等式17を参照)。上述したように、最大RTCPパケットサイズ(max_rtcp_packet_size)は、最小回数の再送信が確保されている状態でフィードバックを提供することのできる平均メッセージサイズを示す1つの測度である。
【0131】
max_no_rtx>min_no_rtxsであることが分かっているので(ステップ404を参照)、最大RTCPパケットサイズが、1つ以上の一般NACKレポートブロックが含まれている平均RTCPパケットサイズ以上であることも明らかである。
【0132】
ステップ410において、クライアントは、現在のRTCPパケットに残されているペイロード残量を決定する。言い換えれば、クライアントは、1つ以上の一般NACKレポートブロックがすでに含まれている現在のRTCPパケットに、RTCPフィードバックの最大許容(平均)サイズに違反することなく、さらに何バイト(payload_margin)を追加できるかを決定する。
【0133】
図5および図6に示した、フローチャートにおける以降のステップ群は、全体として、現在のRTCPフィードバックメッセージ内の残りの空間(payload_margin)に、可能であれば1つ以上の消失RLEレポートブロックを含めて(最小の)冗長レポーティングを確保する方法を示す例として理解されたい。後からさらに詳しく説明するように、場合によっては、消失パケットに関する最小回数の冗長レポートを有効にすることができないことがある。しかしながら、その状況においては、レポーティングをまったく行わないのではなく、少なくともある程度の(冗長な)レポーティングを提供することが望ましい。
【0134】
次のステップ501においては(図5)、クライアントは、要求される最小レポーティング冗長度を有効にするために必要であるR個の消失RLEレポートブロックを構築することができる。消失RLEレポートブロックのサイズはペイロード残量に含めるには大きすぎることがあるので、クライアントは、ステップ502に示したように消失RLEレポートブロックのランレングス圧縮を実行することができる。なお、このステップは省略することができる。次いで、ステップ503において、R個の(圧縮された)消失RLEレポートブロックのサイズを決定し、ステップ504において、その値をペイロード残量と比較し、要求される最小回数の再送信を有効にすることのできる最大許容(平均)RTCPパケットサイズに違反することなく、R個すべての消失RLEレポートブロックが現在のRTCPフィードバックメッセージに収まるか否かを判断する。
【0135】
収まる場合、これらのR個の(圧縮された)消失RLEレポートブロックをフィードバックメッセージに追加し(505)、クライアントは、複数の一般NACKレポートブロックと複数(R個)の消失RLEレポートブロックとが含まれているRTCPフィードバックメッセージを送信する(506)。この場合、クライアントは、最小回数の再送信が有効であり、かつ、最小レポーティング冗長度も提供できる状況を確保することができる。
【0136】
しかしながら、ステップ504において、R個の(圧縮された)消失RLEレポートブロックのサイズがペイロード残量よりも大きい場合、クライアントは、消失パケットに関する少なくともある程度の(冗長)レポーティングを提供することを試みることができる。この目的のために、クライアントは、さらにステップ507に進み、現在のフィードバックに含める消失RLEレポートブロックの数を減少させていき、残りの数の(圧縮された)消失RLEレポートブロックが現在のRTCPフィードバックメッセージのペイロード残量に収まるようにすることができる(509)。例えば、クライアントは、「最も古い」パケットに関してレポートしているレポートブロックを連続的にドロップすることができる(ステップ507、508、509、511を参照)。なぜなら、「最も古い」パケットについては以前のレポートにおいてすでにレポートされている可能性があるからである。もう1つの可能な方法は、消失RLEレポートブロックのサイズがペイロード残量より小さくなるまでシニングを実行することである。さらには、クライアントは、上述したように、レポートされるパケットの重要度を考慮することもできる。別の代替方法は、これらのメカニズムを必要に応じて組み合わせることである。
【0137】
これに関して、図6は、本発明の別の実施形態による、RTCPフィードバックメッセージを構築するさらなるステップ群を示している。以下の説明においては、図5におけるステップに類似するステップは同じ参照数字で表してあり、簡潔にするためその説明は省略した。
【0138】
図6に示したステップ群においては、シニングおよびその他のメカニズムを組み合わせて、消失RLEレポートブロックのサイズを減少させることができる。重要な点として、シニング(ステップ603を参照)を適用するか否かの決定は、クライアントへのダウンリンクにおいて現在利用可能であるサービス品質(QoS)に基づいて行うことができる(ステップ601および602を参照)。
【0139】
例えば、RTCPフィードバックメッセージの送信者レポートブロックおよび/または受信者レポートブロックの中の「消失割合(fraction lost)」フィールドの計算値(RFC 3500、6.4節を参照)を評価し、それぞれ、アップリンクおよびダウンリンク上の現在のQoSの指標とすることができる。これに代えて、モバイル通信システムからの明示的にネゴシエートされるQoS測定値を提供することもできる。例えば、アップリンク上の示されたQoSが高い場合、このことは、信頼性の低い伝送プロトコルを使用して送信されたときにクライアントのRTCPフィードバックがおそらくは消失しないであろうことを意味しうる。したがって、クライアントは、サーバによって設定されているよりも低いレポーティング冗長度で十分であると判断することができる。この場合、クライアントは、消失RLEレポートブロックにシニングを適用することを決定することができる。したがって、ステップ605は、シニングが適用された場合にはクライアントが最小レポーティング冗長度をもはや保証しなくてもよいことを除いて、図5におけるステップ5に似ている。
【0140】
本発明の別の実施形態においては、クライアントは、利用可能なQoSに基づいて最小再送信回数を減少させることを決定することさえできる。この場合、クライアントは、すべての一般NACKレポートブロックをフィードバックに含めるのではなく、図5のステップ507、508、509、および511に関して説明した方法に似た方法で、最近の新しいパケットに関してのみレポートすることを考慮することができる。
【0141】
本発明の別の実施形態は、本発明の上述したさまざまな実施形態の実施に関する。上述したさまざまな方法と、上述した図のさまざまな論理ブロックは、コンピューティングデバイス(プロセッサ)、例えば、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはその他のプログラマブルロジックデバイスなどを使用して実施する、または実行できることが認識される。本発明のさまざまな実施形態は、これらのデバイスの組合せによって実行する、または具体化することもできる。
【0142】
さらに、本発明のさまざまな実施形態、それらの変形形態、およびQoSに基づくスケジューリング(QoS-aware scheduling)の解決策は、プロセッサによって実行される、またはハードウェアにおいて直接実行されるソフトウェアモジュールによって実装することもできる。また、ソフトウェアモジュールとハードウェア実装とを組み合わせることも可能である。ソフトウェアモジュールは、例えば、RAM、EPROM、EEPROM、フラッシュメモリ、レジスタ、ハードディスク、CD−ROM、DVDなどの任意の種類のコンピュータ可読ストレージメディアに格納することができる。
【図面の簡単な説明】
【0143】
【図1】本発明の実施形態によるストリーミング環境の概要を示す図
【図2】本発明の実施形態によるクライアントバッファリング時間と、RTCPレポート周期と、再送信の目標レベルを提供するのに要する最小時間期間との間の関係を示す図
【図3】本発明の好ましい実施形態によるストリーミング環境における複数の連続的な再送信要求と再送信とを時系列で示す図
【図4】本発明の実施形態によるストリーミングセッション内でRTCPフィードバックを提供する方法の最初のステップ群を示す図
【図5】本発明の相異なる実施形態による、図4に示されるステップ群の後に実行されるRTCPフィードバックを提供する方法のさらなるステップ群を示す図
【図6】本発明の相異なる実施形態による、図4に示されるステップ群の後に実行されるRTCPフィードバックを提供する方法のさらなるステップ群を示す図

【特許請求の範囲】
【請求項1】
RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアント(101)からストリーミングサーバ(100)に提供する方法であって、前記ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が前記RTCPフィードバックメッセージに割り当てられており、
前記クライアント(101)において、前記RTCPフィードバックメッセージのための前記RTCP帯域幅と、クライアントバッファリング時間内で有効にする最小再送信回数と、前記少なくとも1つのストリーミングセッションの消失データパケットに関する最小レポーティング冗長度と、前記クライアントバッファリング時間とを示すセッション記述情報を受信するステップと、
前記クライアントバッファリング時間と、RTCPフィードバックメッセージの平均サイズおよび前記クライアント(101)に割り当てられる前記RTCP帯域幅に依存するRTCPレポート間隔とに基づいてデータパケットの最大再送信回数を決定するステップ(401,402,403)と、
前記最大再送信回数が前記最小再送信回数以上であるか否かを判断するステップ(404)と、
以上である場合に、
消失データパケットの再送信を要求する複数の一般NACKレポートブロックをRTCPフィードバックパケットに追加して前記クライアントバッファリング時間内での前記消失データパケットの前記再送信回数を最小にするステップ(406)と、
前記割り当てられているRTCP帯域幅と、前記クライアントバッファリング時間と、前記最小再送信回数とを考慮したときに許容される前記RTCPフィードバックメッセージの最大サイズを決定するステップ(409)と、
以前に送られたRTCPフィードバックメッセージの平均サイズと、前記複数の一般NACKレポートブロックを含む前記RTCPパケットのサイズとに基づいて、結果のRTCPフィードバックメッセージの平均サイズを決定するステップ(402)と、
前記結果のRTCPフィードバックパケットのサイズが前記RTCPフィードバックメッセージの最大サイズを超えない場合、前記消失データパケットに関してレポートする複数の消失RLEレポートブロックを、前記RTCPフィードバックパケットに追加するステップ(505,510)と、
前記RTCPフィードバックパケットをRTCPフィードバックメッセージとして前記クライアント(101)から前記ストリーミングサーバ(100)に送信するステップ(506)と、を含む方法。
【請求項2】
前記複数の消失RLEレポートブロックにランレングス符号化を行い(502)、次いで、前記ランレングス符号化を行った消失RLEレポートブロックを含む前記結果のRTCPフィードバックパケットのサイズが、前記RTCPフィードバックメッセージの最大サイズを超えていないか否かを判断する、請求項1記載の方法。
【請求項3】
前記クライアントにより前記セッション記述情報によって設定されている前記最小レポーティング冗長度を減少させるステップをさらに含む、請求項1または請求項2記載の方法。
【請求項4】
前記ストリーミングセッションのパケットに提供されているアップリンクのサービス品質を決定するステップ(602)をさらに含み、
前記決定されたサービス品質が所定のしきい値レベルより大きい場合に、前記最小レポーティング冗長度を減少させる、請求項3記載の方法。
【請求項5】
前記複数の消失RLEレポートブロックのサイズを減少させることによって、前記クライアントが前記レポーティング冗長度を減少させる、請求項3または請求項4記載の方法。
【請求項6】
前記ストリーミングセッションのデータは、ストリーミングメディアの基本品質を提供する基本データ層と、前記ストリーミングメディアの基本品質を高める少なくとも1つのエンハンスメント層とを含み、
前記複数の消失RLEレポートブロックのサイズを減少させる前記ステップは、前記基本データ層のデータを含むデータパケットに関する情報のみを前記消失RLEレポートブロックに含めるステップを含む、
請求項3乃至請求項5のいずれかに記載の方法。
【請求項7】
前記少なくとも1つのストリーミングセッションのデータがMPEGストリームであり、前記基本データ層がIフレームを含み、前記少なくとも1つのエンハンスメント層がPフレームおよび/またはBフレームを含む、請求項6記載の方法。
【請求項8】
消失データパケットが前記基本データ層のデータを含むか否かを、前記クライアントにおいてすでに受信されたデータパケットに基づいて判断するステップをさらに含む、請求項6または請求項7記載の方法。
【請求項9】
前記複数の消失RLEレポートブロックのサイズをシニング(603)によって減少させる、請求項3乃至請求項8のいずれかに記載の方法。
【請求項10】
前記RTCPフィードバックパケットにおいてレポートされる前記複数の消失RLEレポートブロックを減少させることによって(507,508,509,511)、前記複数の消失RLEレポートブロックのサイズを減少させる、請求項3乃至請求項8のいずれかに記載の方法。
【請求項11】
前記RTCPフィードバックパケットに追加される前記複数の消失RLEレポートブロックによって、前記消失パケットの前記最小レポーティング冗長度が有効になる、請求項1または請求項2記載の方法。
【請求項12】
前記ストリーミングセッションのMIMEタイプパラメータがパケットレートを示す、請求項1乃至請求項11のいずれかに記載の方法。
【請求項13】
前記少なくとも1つのストリーミングセッションのどのデータパケットが消失したのかを、前記クライアントにおいて受信されたデータパケットの連続番号に基づいて判断するステップをさらに含む、請求項1乃至請求項12のいずれかに記載の方法。
【請求項14】
RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアント(101)からストリーミングサーバ(100)に提供する方法であって、
前記ストリーミングセッションのセッション制約内で提供することのできるデータパケットの最大再送信回数が前記クライアントによって有効にされる最小再送信回数よりも大きいか否かを判断するステップと、
大きい場合に、消失データパケットの再送信を要求する複数の一般NACKレポートブロックをRTCPフィードバックパケットに追加して前記クライアントバッファリング時間内での前記消失データパケットの前記再送信回数を最小にするステップと、
前記セッション制約を考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定するステップと、
結果のRTCPフィードバックパケットのサイズが前記RTCPフィードバックメッセージの最大サイズを超えないように、消失データパケットおよび受信データパケットに関してレポートする複数の消失RLEレポートブロックを前記RTCPフィードバックパケットに追加するステップと、
前記RTCPフィードバックパケットをRTCPフィードバックメッセージとして前記クライアント(101)から前記ストリーミングサーバ(100)に送信するステップと、を含む方法。
【請求項15】
前記決定されたRTCPフィードバックメッセージの最大サイズと、前記一般NACKレポートブロックのサイズとに基づいて、前記RTCPフィードバックパケットにおけるペイロード残量を計算するステップと、
前記複数の消失RLEレポートブロックを前記RTCPフィードバックパケットに追加するときに、前記結果のRTCPフィードバックパケットがRTCPフィードバックメッセージの前記最大サイズを超えることがないように、前記ペイロード残量に収まる前記複数の消失RLEレポートブロックを決定するステップと、をさらに含む、請求項14記載の方法。
【請求項16】
RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアントからストリーミングサーバに送信する、モバイル通信システムにおけるクライアントであって、前記ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が前記RTCPフィードバックメッセージに割り当てられており、
前記RTCPフィードバックメッセージのための前記RTCP帯域幅と、クライアントバッファリング時間内で有効にする最小再送信回数と、前記少なくとも1つのストリーミングセッションの消失データパケットに関する最小レポーティング冗長度と、前記クライアントバッファリング時間とを示すセッション記述情報を受信する受信器と、
前記クライアントバッファリング時間と、RTCPフィードバックメッセージの平均サイズおよび前記クライアントに割り当てられている前記RTCP帯域幅に依存するRTCPレポート間隔とに基づいて、データパケットの最大再送信回数を決定し(401,402,403)、前記最大再送信回数が前記最小再送信回数以上であるか否かを判断する(404)処理手段と、を備え、
前記処理手段は、さらに、
前記最大再送信回数が前記最小再送信回数以上である場合に、
消失データパケットの再送信を要求する複数の一般NACKレポートブロックをRTCPフィードバックパケットに追加して前記クライアントバッファリング時間内での前記消失データパケットの前記再送信回数を最小にするステップ(406)と、
前記割り当てられているRTCP帯域幅と、前記クライアントバッファリング時間と、前記最小再送信回数を考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定するステップ(409)と、
以前に送られたRTCPフィードバックメッセージの平均サイズと、前記複数の一般NACKレポートブロックを含む前記RTCPパケットのサイズとに基づいて、結果のRTCPフィードバックメッセージの平均サイズを決定するステップ(402)と、
前記結果のRTCPフィードバックパケットのサイズが前記RTCPフィードバックメッセージの最大サイズを超えない場合、前記消失データパケットに関してレポートする複数の消失RLEレポートブロックを前記RTCPフィードバックパケットに追加するステップ(505,510)と、を行うように構成されており、
前記クライアント(101)は、前記RTCPフィードバックパケットをRTCPフィードバックメッセージとして前記ストリーミングサーバ(100)に送信する(506)送信器をさらに備える、クライアント。
【請求項17】
請求項2乃至請求項13のいずれかに記載の前記方法を実行するように構成されている手段をさらに備える、請求項16記載のクライアント。
【請求項18】
モバイル通信システムにおけるクライアントのプロセッサによって実行されたときに、
前記クライアント(101)において、前記RTCPフィードバックメッセージのための前記RTCP帯域幅と、クライアントバッファリング時間内で有効にする最小再送信回数と、前記少なくとも1つのストリーミングセッションの消失データパケットに関する最小レポーティング冗長度と、前記クライアントバッファリング時間とを示すセッション記述情報を受信するステップと、
前記クライアントバッファリング時間と、RTCPフィードバックメッセージの平均サイズおよび前記クライアント(101)に割り当てられている前記RTCP帯域幅に依存するRTCPレポート間隔とに基づいて、データパケットの最大再送信回数を決定するステップ(401,402,403)と、
前記最大再送信回数が前記最小再送信回数以上であるか否かを判断するステップ(404)と、
以上である場合に、
消失データパケットの再送信を要求する複数の一般NACKレポートブロックをRTCPフィードバックパケットに追加して前記クライアントバッファリング時間内での前記消失データパケットの前記再送信回数を最小にするステップ(406)と、
前記割り当てられているRTCP帯域幅と、前記クライアントバッファリング時間と、前記最小再送信回数とを考慮したときに許容されるRTCPフィードバックメッセージの最大サイズを決定するステップ(409)と、
以前に送られたRTCPフィードバックメッセージの平均サイズと、前記複数の一般NACKレポートブロックを含む前記RTCPパケットのサイズとに基づいて、結果のRTCPフィードバックメッセージの平均サイズを決定するステップ(402)と、
前記結果のRTCPフィードバックパケットの前記サイズが前記RTCPフィードバックメッセージの最大サイズを超えない場合、前記消失データパケットに関してレポートする複数の消失RLEレポートブロックを、前記RTCPフィードバックパケットに追加するステップ(505,510)と、
前記RTCPフィードバックパケットをRTCPフィードバックメッセージとして前記クライアント(101)から前記ストリーミングサーバ(100)に送信するステップ(506)と、
を行うことによって、前記クライアントに、RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションのデータパケットに対するRTCPフィードバックメッセージをクライアント(101)からストリーミングサーバ(100)に提供させる命令を格納しているコンピュータ可読媒体であって、前記ストリーミングセッションの利用可能な帯域幅の一部であるRTCP帯域幅が、前記RTCPフィードバックメッセージに割り当てられている、コンピュータ可読媒体。
【請求項19】
前記クライアントの前記プロセッサによって実行されたときに、前記クライアントに、請求項2乃至請求項13のいずれかに記載の前記方法を実行させる命令をさらに格納している、請求項18記載のコンピュータ可読媒体。
【請求項20】
RTPプロトコルおよびRTCPプロトコルを使用して提供される少なくとも1つのストリーミングセッションをクライアントに提供するストリーミングサーバと、請求項16または請求項17記載のクライアントと、を備えるシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−515872(P2007−515872A)
【公表日】平成19年6月14日(2007.6.14)
【国際特許分類】
【出願番号】特願2006−540369(P2006−540369)
【出願日】平成16年11月24日(2004.11.24)
【国際出願番号】PCT/EP2004/013342
【国際公開番号】WO2005/050945
【国際公開日】平成17年6月2日(2005.6.2)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】