JP2008543176A - メディアストリーミングのフロー制御 - Google Patents

メディアストリーミングのフロー制御 Download PDF

Info

Publication number
JP2008543176A
JP2008543176A JP2008513545A JP2008513545A JP2008543176A JP 2008543176 A JP2008543176 A JP 2008543176A JP 2008513545 A JP2008513545 A JP 2008513545A JP 2008513545 A JP2008513545 A JP 2008513545A JP 2008543176 A JP2008543176 A JP 2008543176A
Authority
JP
Japan
Prior art keywords
buffer
content
information
client device
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008513545A
Other languages
English (en)
Other versions
JP4812832B2 (ja
Inventor
ビルディ グルプラタップ
イー.クレメッツ アンダース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008543176A publication Critical patent/JP2008543176A/ja
Application granted granted Critical
Publication of JP4812832B2 publication Critical patent/JP4812832B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)
  • Paper (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Flow Control (AREA)
  • Steroid Compounds (AREA)
  • Lubrication Of Internal Combustion Engines (AREA)
  • Infusion, Injection, And Reservoir Apparatuses (AREA)

Abstract

クライアントデバイス(104)はホストデバイス(102)からストリーミングコンテンツを受信する。このストリーミングコンテンツは処理に先立って1または複数のバッファ(128)に置かれる。バッファの容量と満杯に関するモニタリングが処理に先立って行なわれる(132)。バッファの容量と満杯に関するモニタリングはクライアントデバイス側で行なわれ、情報がホストデバイスに送信される。ホストデバイスは、クライアントデバイスによって提供された情報に基づいてストリーミングコンテンツのレートまたはフローを調整する。

Description

本発明はデジタルコンテンツシステムに関し、より詳細には、ストリーム送信されるデジタルコンテンツのフローをかかるシステムで調整することに関する。
オーディオ、ビデオおよび/またはテキストメディアコンテンツのストリーミングのような、マルチメディアコンテンツまたはデジタルコンテンツ(コンテンツ)ストリーミングは、ますます普及化している。ここで「ストリーミング(streaming)」という用語は、コンテンツが、ネットワークを介してサーバまたはホストデバイスによってクライアントデバイス(すなわち、デスクトップPC、ノートブックまたはポータブルコンピュータ、セルラ電話や他の無線通信デバイス、パーソナルデジタルアシスタント(PDA)、ゲーミングコンソール、IPセットトップボックス、ハンドヘルドPCなどの、従来コンピューティングデバイスの任意の種類のいずれかとして実現されたメディア再生デバイス)に提供されることを示すために用いられているのが代表的である。一般的に、クライアントデバイスは、全てのコンテンツまたは「ファイル」全体が配信されるのを待つのではなく、コンテンツがホストから受信されるのと「同時に」ストリーミングコンテンツをレンダリングしている(例えば、再生または表示している)。
コンテンツがネットワークを介して「ストリーム送信される」とき、コンテンツはデータパケットにおいてストリーム送信されるのが代表的である。このようなデータパケットは、リアルタイム転送プロトコル(real time transfer protocol:RTP)などのプロトコルで定義されたフォーマットになっていて、ユーザデータグラムプロトコル(user datagram protocol:UDP)などの別のフォーマットを介して伝達されることがある。さらに、このようなデータパケットは、ホストデバイスからストリーム送信されるとき圧縮され、符号化されることがある。データパケットは、そのあとクライアントデバイス側で伸張(decompress)され、復号化(decode)されている。
データパケットは、ホストデバイスによって送信される順序でクライアントデバイスによって受信されることがあるが、ケースによっては、データパケットは受信されないこともあれば、別の順序で受信されることもある。さらに、受信されるデータパケットのレートまたはフローに関して若干の不確実性が存在することもある。データパケットは、クライアントデバイスがデータパケットをレンダリングできる以上の高速レートで到着または受信されることもあれば、十分に高速に到着しないこともある(すなわち、データパケットはクライアントデバイスがそのデータパケットをレンダリングするのに十分に高速に到着しないことがある)。特に、ストリーミングが行なわれるとき、データパケットは、必ずしもリアルタイムレートで送信されるとは限らない場合がある。データパケットはリアルタイムレートよりも高速に送信されることもあれば、低速に送信されることもある。
クライアントデバイスは、通常、バッファを使用して受信したデータパケットを処理に先立って格納する。このようなバッファはストレージが制限されており、パケットが受信されるときのレートに応じて、バッファオーバフロー(データパケットが余りに高速に受信されるため)またはバッファアンダフロー(データパケットが十分に高速に受信されないため)が発生することがある。データパケットが余りに高速のレートで到着した場合は、クライアントバッファにオーバフローが起こって、データパケットが処理されないことがある。データパケットが十分に高速にまたはタイムリーに受信されない場合は、不具合(glitch)または中断(break)がユーザ側で起こることになる。例えば、マルチメディアコンテンツがクライアントデバイスにストリーム送信され、十分に高速にクライアントデバイスによって受信されない場合は、ユーザは提示されたマルチメディアコンテンツに不具合または中断を見ることになる。さらに、オーバフローまたはアンダフロー状態が検出されたときは、その問題を訂正するためにクライアントデバイス側とホストデバイス側のクロックを同期化する必要が起こることがある。オーバフロー問題がすでに発生した後では、その問題を訂正するにはすでに遅すぎるのが一般である。しかし、クロックを同期化することで、問題の再発を防止することができる場合がある。あるいは、十分に早期に行なっていれば、問題の再発を防止することができる。オーバフローとアンダフローは、デバイスのクロックドリフト(clock drift)やネットワーク輻輳といった、いくつかの理由で発生することもある。
従って、ホストデバイス側とクライアントデバイス側にクロック回復が組み込まれている場合も、組み込まれていない場合も、ホストデバイスからクライアントデバイスへのデータパケットフローまたはストリームを調整する必要性が起こっている。
クライアントデバイス側のバッファの容量と使用量に関するバッファ情報がホストデバイスに送信される。バッファ情報には、クライアントデバイス側の1または複数のバッファの容量、およびバッファがどれだけ一杯であるか、あるいは利用されているかの情報が含まれる。バッファ情報はホストデバイスに送信され、ホストデバイスではその情報を使用してクライアントデバイスへのストリーミングコンテンツのフローを調整する。
詳細な説明は添付図面を参照して以下に記載されている。図面においては、参照符号の一番左側の数字はその参照符号が最初に現れている図を示している。別の図で同じ参照符号が用いられているときは、それは類似または同一項目を示している。
以下では、ストリーム送信されたコンテンツを、処理に備えて受信するクライアントデバイスバッファのステータスに関してホストデバイスに通知する手法を説明する。
図1は、コンテンツまたはデータパケットフロー情報を、クライアント再生デバイスまたはクライアントデバイス104からホストデバイス102に提供するのに適した例示環境100を示す図である。具体的には、バッファ満杯報告(buffer fullness report:BFR)はクライアントデバイス104によってホストデバイス102に提供され、この場合、BFRにはコンテンツまたはデータパケットを受信し、処理するクライアントデバイスバッファのステータスが含まれている。
ソースまたはホストデバイス102は、データファイルやメディアファイルなどのデジタルデータコンテンツおよび/またはライブケーブルTVフィード(feed)やウェブキャスト(Webcast)などのライブメディアコンテンツにアクセスできるのが一般的である。ホストデバイス102はクライアントデバイス104にコンテンツをストリーム送信する。例えば、メディアコンテンツの場合には、クライアントデバイス104は、ストリーミングコンテンツをホストデバイス102から受信し、それをユーザのためにレンダリング(render)または再生するのが一般的である。コンテンツはネットワーク106を介して送信されるかストリーム送信される。さらに、ホストクライアント102で利用可能なストリーミングコンテンツに関するクライアントデバイス104からの要求は、クライアントデバイス104からネットワーク106を経由してホストデバイス102に送られることがある。ホストデバイス102は要求を受信し、要求されたコンテンツを、ネットワーク106を経由して要求側クライアントデバイス104にストリーム送信する。ネットワーク106には、IEEE1394を取り入れているネットワークのような、種々のネットワークが含まれている場合がある。一般的に、ネットワーク106には、種々のパケット交換ネットワーク(packet switched network)のいずれかが含まれることが意図されている。ホストデバイス102は、種々の従来コンピューティングデバイスのいずれかとして実現されている場合があり、その中には、例えば、サーバ、デスクトップPC、ノートブックまたはポータブルコンピュータ、ワークステーション、メインフレームコンピュータ、インターネットアプライアンス、これらを組み合わせたものなどが含まれ、これらは、格納されたメディアコンテンツおよび/またはライブのメディアコンテンツをクライアントデバイス104にストリーム送信するように構成可能になっている。クライアント再生デバイス104も、種々の従来コンピューティングデバイスのいずれかとして実現されている場合があり、その中には、例えば、デスクトップPC、ノートブックまたはポータブルコンピュータ、ワークステーション、メインフレームコンピュータ、インターネットアプライアンス、ゲーミングコンソール、ハンドヘルドPC、セルラ電話や他の無線通信デバイス、パーソナルデジタルアシスタント(personal digital assistant:PDA)、セットトップボックス、テレビジョン、これらを組み合わせたものなどが含まれている。ホストデバイス102とクライアントデバイス104を実現するための例示コンピュータは、図5を参照して以下に詳しく説明されている。
ホストデバイス102は、クライアントデバイス104に対してストリーミングすることが可能な種々のデータまたはコンテンツを作成することが可能であり、その中には、オーディオ、ビデオ、テキスト、イメージ、アニメーションなどのコンテンツが含まれる。ここで「ストリーム送信される(streamed)」または「ストリーミング(streaming)」という用語は、データがネットワーク106を介してクライアント再生デバイス104に提供され、コンテンツの再生がコンテンツ全体の配信に先立って開始することが可能であることを示すために用いられている。コンテンツは公共に利用可能である場合もあれば、逆に限定されている場合もある(例えば、一部のユーザだけに限定されている、該当料金が支払われた場合だけ利用可能である、特定のネットワークにアクセスできるユーザに限定されている、など)。さらに、コンテンツは「オンデマンド(on-demand)」である場合もあれば(例えば、既知サイズの録音済みで、格納されたコンテンツ)、逆にライブ「ブロードキャスト」からのものである場合もある(例えば、コンサートの演奏時に取り込まれて、その取り込み直後にストリーミングに利用可能にされるコンサートのデジタル表現のように、既知サイズのないもの)。
ネットワーク106は、種々の従来ネットワークプロトコル(公用および/または独自仕様のプロトコルを含む)のいずれかを採用している、種々の従来ネットワークトポロジおよびタイプ(光ネットワーク、有線ネットワークおよび/または無線ネットワークを含む)のいずれかを表わすことを意図している。ネットワーク106には、例えば、ホームネットワーク、企業ネットワーク、またはインターネット、IEEE1394が含まれ、1または複数のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)の少なくとも一部を含む場合もある。
例示ホストデバイス102は中央処理ユニットまたはプロセッサ108、およびメモリ110を含む。メモリ110には、ネットワーク106を介してクライアントデバイス104にストリーム送信されるコンテンツを作成または処理できるアプリケーションが含まれている。さらに、処理されたコンテンツおよび/または(別のソースから)受信されたコンテンツがコンテンツストレージ114に格納されている場合もある。この実現形態では、コンテンツストレージ114はメモリ110とは別になっている。他の実現形態では、コンテンツストレージ114はメモリ110の一部になっていることがある。クロック116は1または複数の機能を備えており、ホストデバイス102からストリーム送信されたデータパケットごとにタイムスタンプを発行することがある。
例示クライアントデバイス104は中央処理ユニットまたはプロセッサ118とメモリ120を含む。メモリ120には、ホストデバイス102のようなソースから受信したコンテンツを消費または使用するアプリケーション122が含まれている。ジッタバッファ(jitter buffer)124はデータパケットを受信し、中間バッファの働きをする。帯域幅が制限されたり、コンテンツのストリーミングにばらつきがあるといった、ある種の伝送問題がアンダフローやオーバフロー状態を引き起こしているために、特にオーディオ/ビデオコンテンツがストリーム送信されるとき、ストリーム送信されたコンテンツに不具合や中断が起こるのを防止するために一部のコンテンツ(すなわち、データパケット)をジッタバッファ124に保持しておくことが望まれている。
この実現形態では、デコーダ126はジッタバッファ124から符号化データパケットを受信し、そのデータパケットを復号化している。他の実現形態では、プリデコーダバッファ(pre-decoder buffer)(すなわち、デコーダ126の前に置かれたバッファ)が組み込まれていることがある。ケースによっては、圧縮データパケットがクライアントデバイスに送信され、クライアントデバイスにて受信されることがある。そのようなケースでは、クライアントデバイス104は、データパケットを伸張するコンポーネントで実現さていることがあり、その場合、このコンポーネントはデコーダ126の一部になっている場合とそうでない場合とがある。
伸張および復号化データパケットを受信し、コンテンツバッファ128に格納しておくことができる。他の実現形態では、2つのバッファがデコーダの前に置かれていることがある。第1バッファは、リアルタイム転送プロトコル(RTP)を取り入れたデータパケットを保持しており、第2バッファはRTPデータパケットコンテンツだけを保持している(つまり、RTPヘッダは保持していない)。第2バッファは、デコーダ126によって復号化されるべきコンテンツを備えている。言い換えれば、第1バッファはRTPでカプセル化されたデータパケット(つまり、カプセル化されたデータコンテンツ)を保持しており、第2バッファは、復号化用の、RTPでカプセル化されていないデータパケット(つまり、カプセル化が解除されたデータコンテンツ)を保持している。コンテンツバッファ128は、コンテンツの特定のタイプを格納する1または複数のバッファを含んでいることがある。例えば、ビデオコンテンツを格納する別個のビデオバッファや、オーディオコンテンツを格納する別個のオーディオバッファがある。さらに、ジッタバッファ124は、オーディオコンテンツとビデオコンテンツを格納する別個のバッファを含む場合がある。
クライアントデバイス104は、各々の特定のデータパケットに組み込まれたユニークなタイムスタンプに基づいてデータパケットを区別するためにクロック130を備えている。言い換えれば、クロック130は、データパケットを正しい速度で再生するために使用される。一般的に、データパケットは、タイムスタンプに基づいてデータパケットをソートすることによって再生される。タイムスタンプは、データパケットに含まれ、ホストデバイス102のクロック116によって提供または発行される。
クライアントデバイス104は、コンテンツがホストデバイス102からストリーム送信される間にバッファ124と128の満杯レベルをモニタし、バッファ満杯報告(BFR)134を生成するように構成されたモニタ132を備えている。BFR134はバッファ満杯情報をホストデバイス102に提供する。一般的に、BFR134の中で伝達される情報は、クライアントデバイス104にストリーム送信されるコンテンツまたはデータパケットのフローを制御または調整するためにホストデバイス102によって使用される。
本実施形態では、ホストデバイス102は、クライアントデバイス104などの、1または複数のクライアントデバイスから1または複数のBFR138を受信するように構成されたクライアントバッファ満杯報告(BFR)モジュール136を備えている。BFR138は特定のクライアントデバイスに固有になっている。受信され、クライアントBFRモジュール136に格納された各々のBFR138は、別個のジッタバッファ、コンテンツバッファ、オーディオバッファ、ビデオバッファなどを含む、特定のクライアントバッファにおけるバッファ情報(つまり、満杯)についてホストデバイス102に通知する。ホストデバイス102は、コンテンツが伝送される(例えば、ストリーム送信される)レートを、BFR138におけるバッファ情報に基づいて計算することができる。
BFR134は、起り得るオーバフローまたはアンダフロー状態を示すためにクライアントデバイス104によって送出されることがある。また、BFRは、クライアントデバイス104によって定期的に送出されることもある。ケースによっては、クライアントデバイス104は別個のデータストリームにおいて応答の一部としてBFRを送信することもある。応答がクライアントデバイス104によって行なわれるとき、その応答は定義されたフォーマットまたはプロトコルの形式になっていることがある。例えば、RTP、具体的にはリアルタイムトランスポート制御プロトコル(real time transport control protocol:RTCP)が使用される場合は、データパケットとは別の制御パケットがホストデバイス102とクライアントデバイス104の間でやり取りされることがある。クライアントデバイス104からの制御パケットは、ホストデバイス102へのフィードバックとなるものである。BFR138は、そのような制御パケットに組み入れられていることがある。
図2は、ジッタバッファ(jitter buffer)とコンテンツバッファ(content buffer)の実施例を示す図である。ここでは、ホストデバイス104に含まれるジッタバッファ124とコンテンツバッファ128を具体的に説明する。ジッタバッファ124はN個のストレージユニット200を含み、そこでは各々のストレージユニット200は受信したデータパケット202を格納しておくことができる。
ストレージユニット200は先入れ先出し(first in first out:FIFO)構造に配列されて、最初に受信したデータパケットが最初にコンテンツバッファ128に送信されるか、あるいはデコーダ(例えば、デコーダ126)または他の中間コンポーネント(例えば、伸張器(de-compressor))に送信されるようになっている。最初に受信されたデータパケット202が最初に処理されることがあっても、データパケット202がネットワーク内で並べ替えられること(つまり、失われること)が起り得る。この場合、受信されたデータパケットは該当する場所でコンテンツバッファ128内に挿入されることがあるので、他のデータパケットがシフトされることがある。
データパケット202は、コンテンツバッファ128または他の中間コンポーネントに送信されるまでストレージユニット200に格納される。データパケット202がコンテンツバッファ128に送信されないと、ストレージユニット200はストレージユニット200(N)までデータパケット202で満たされることになる。この例では、ストレージユニット200(1)に格納されたデータパケット202(1)、ストレージユニット202(2)に格納されたデータパケット202(2)、およびストレージユニット200(3)に格納されたデータパケット202(3)が示されている。
ジッタバッファ124は、サポートまたは格納できるバイト数で定義され得る制限サイズを有する。さらに、ジッタバッファ124の制限サイズは、格納できるコンテンツの総時間長さに変換される「時間」サイズで定義することもできる。N個のストレージユニット200はジッタバッファ124のサイズに制限されている。
コンテンツバッファ128はM個のストレージユニット204を含み、そこでは各々のストレージユニット204はデータパケット206を格納することが可能になっている。データパケット206は、復号化され、伸張され、アプリケーション(例えば、クライアントデバイス104のメモリ120に格納されたアプリケーション122)によってレンダリングの準備に置かれることが予想される。個数MはNと同じ個数であることも、そうでないこともある。さらに、コンテンツバッファ128のサイズ(つまり、バイトサイズ)はジッタバッファ124のサイズと同じでないことがある。
コンテンツバッファ128のストレージユニット204はFIFO構造に配列され、最初に受信したデータパケット206が最初に処理されるようになっている。通常、各データパケット206上のタイムスタンプをチェックして、データパケット206がいつ処理されるかを判定することが可能になっている。データパケット206は、コンテンツバッファ126または他の中間コンポーネントに送信されるまでストレージユニット204に格納されている。データパケット204が処理されないと、ストレージユニット204はストレージユニット204(M)までデータパケット206で満たされることになる。この例では、ストレージユニット204(1)に格納されたデータパケット206(1)、ストレージユニット204(2)に格納されたデータパケット206(2)、ストレージユニット206(3)に格納されたデータパケット204(3)、およびストレージユニット206(M−1)に格納されたデータパケット206(M−1)が示されている。
バッファ満杯報告、つまり、BFR(例えば、BFR134と138)は、任意の所与の瞬間におけるジッタバッファ124とコンテンツバッファ128の最大容量(すなわち、バイトサイズまたは時間サイズ)を具体的に記述している。なお、BFRからは、バッファ内の空きスペースに関する重要な情報が得られることに留意されたい。実現形態によっては、クライアントデバイスに2以上のジッタバッファおよび/またはコンテンツバッファが置かれていることもある。BFRは、そのようなバッファすべての最大容量と空きスペースを具体的に記述している。さらに、任意の所与の時点において、BFRは、いくつのストレージユニット(例えば、ストレージユニット200と204)がデータパケット(例えば、データパケット202と206)で満たされているかを記述している。BFRは、以下で詳しく説明するように、バッファの「満杯」をバイトサイズおよび/または時間で表わすことができる。
図3は、BFRの伝送をサポートするプロトコルスタックを示すと共に、BFRから得られ得る具体的情報を示している。プロトコルスタック300は、コンピュータネットワーキング・プロトコルスイート(computer networking protocol suite)をソフトウェアで具体的に実現したものである。このようなプロトコルスタックは業界で周知である。一般的に、プロトコルスタックの下位レベルは、ソフトウェアおよび/またはハードウェアの最下位レベルでデバイス(例えば、ホストデバイス102とクライアントデバイス104)間がやりとりする設計になっている。
この例では、プロトコルスタック300の最下位プロトコルレベルは、一般的にホストデバイス102とクライアントデバイス104の間の「インタネットワーク(inter network)」接続の働きをするイーサネット(Ethernet(登録商標))レベル302である。次の上位レベルは、特にインターネットを介する通信を目的としたインターネットプロトコルレベル304である。ユーザデータグラムプロトコル(UDP)306は、一般的ブロードキャストまたはメッセージ通信を行なうために使用されることがある。リアルタイムトランスポート制御プロトコル(RTCP)またはリアルタイムトランスポートプロトコル(RTP)レベル308は、特にストリーミングコンテンツ(例えば、マルチメディア)などのリアルタイムデータを通信するために使用される。BFRは、別の上位レベルのBFRレベル310を介して通信されることがある。レベル310を使用すると、クライアントデバイス104による実際のコンテンツ通信とは関係なくホストデバイス102からBFRを通信することができる。
例示のBFR132は、バッファサイズ312を含み、そのサイズはクライアントデバイス104側のジッタバッファとコンテンツバッファを含む2以上のバッファに関するものである。言い換えれば、BFRは直接的に(つまり、ジッタバッファ124)または間接的に(つまり、ホストデバイス102からのコンテンツバッファ)コンテンツを受信するすべてのバッファについて提供される。「バイト」の単位は、処理用にバッファに現在格納されている、あるいは待ち(キュー)に置かれているデータ314の量を表わすために使用されることがある。これとは別に、空きスペースの量が表わされることもある。さらに、「時間」の単位は、処理用にバッファに現在格納されている、あるいは待ち(キュー)に置かれているデータ314の量を表わすために使用されることもある。情報は、個々のバッファごとに提供されることも、バッファのグループについて提供されることもある。
図4は、クライアントデバイスのバッファステータスをホストデバイスに通知するプロセス400を示す図である。このプロセス400は、論理的フローグラフにおけるブロックの集まりとして示されており、これらのブロックはハードウェア、ソフトウェア、ファームウエアまたはこれらを組み合わせたもので実現できるオペレーションのシーケンスを表わしている。ソフトウェアとの関連で、ブロックは、1または複数のプロセッサによって実行されたとき、列挙されたオペレーションを実行するコンピュータ命令を表わしている。プロセス400は、上述したホストデバイス102およびクライアントデバイス104と関連付けて説明される。フローチャートとして説明されているものの、本発明によれば、あるプロセスは同時にまたは異なる順序で実行されるが意図されている。
ブロック402において、クライアントデバイスはバッファ情報に関してどのように、なにをやり取りするかについてホストデバイスとネゴシエートする。バッファ情報は、クライアントデバイス側で作成されるバッファ満杯報告(BFR)の形式になっており、ホストデバイスに送信される。バッファ満杯報告のコンテンツまたはバッファ満杯報告に含まれる情報としては、クライアントデバイス側のバッファの容量またはサイズ、特定の場合にバッファで消費されるスペースの量、および受信されたコンテンツまたはデータパケットに関する情報がある。さらに、クライアントデバイスとホストデバイスとの間のネゴシエーションとしては、バッファ情報またはBFRがどれだけの頻度でクライアントデバイスからホストデバイスに送信されるかを判定することがある。バッファ情報またはBFRを送信する頻度またはレートを大きくすると、メディアを含むコンテンツなどの、データパケットのストリーミングの調整が向上し、バッファのアンダフローとオーバフローが防止されることになる。
ブロック404において、ホストデバイスはバッファ情報のやりとりに関してクライアントデバイスとネゴシエートする。ホストデバイスは、バッファ情報をやりとりすることに関するホストデバイスの機能を備えていることがあり、その中には、ホストデバイスによる最大アウトプット(つまり、コンテンツまたはデータパケットをストリーム送信する能力)が含まれている。さらに、ブロック402と404で行なわれるネゴシエーションの中には、バッファ情報またはBFRを伝達するためにどのような通信プロトコルが使用されるかを特定することが含まれていることがある。
ブロック406において、クライアントデバイスは、コンテンツまたはデータパケットをホストデバイスから受信するすべてのバッファの容量を判定する。この判定は、ジッタバッファおよびコンテンツバッファなどの、すべてのバッファについて行なわれる。さらに、バイトサイズや時間サイズなどの、1または複数のサイズメトリックスについての判定が行なわれることもある。ケースによっては、バッファの総容量または集合容量についての判定が行なわれることもある。例えば、ジッタバッファの容量はコンテンツバッファの容量と結合されていることがある。
ブロック408において、クライアントデバイスはバッファ内の使用済みスペースと未使用スペースを計算する。この計算は、クライアントデバイスがコンテンツまたはデータパケットの受信を続けることが予想されることから、特定の時間的瞬時について行なわれる。バイトサイズまたは時間サイズは、使用済みスペースおよび未使用スペースの計算で使用されることがある。この計算をバッファの容量と関連付けて測定すると、追加のコンテンツまたはデータパケットが受信可能であるかどうか(つまり、アンダフローを意味する)、あるいは追加のコンテンツまたはデータパケットが受信不能であるかどうか(つまり、オーバフローを意味する)の情報が得られる。
ブロック410において、クライアントデバイスはバッファ情報を送信する。この情報はBFRの形体になっていることがある。ストリームごとに別々のBFRが送信されることもある。言い換えれば、あるBFRはオーディオストリームについて送信され、別のBFRはビデオストリームについては送信されることがある。一般的に、BFRからは、すべてのストリームに関する情報が得られる。BFRは、リアルタイムトランスポート制御プロトコル(RTCP)報告のような、別の報告または通信パケットの一部としてクライアントデバイスから送信されることがある。ケースによっては、BFRは、離散的(discrete)かつ別個の伝送として送信されることがある。例えば、BFRは別個の下位レベル通信プロトコルを介して伝達されることがある。
ホストデバイスはBFRを受信すると(すなわち、ブロック412のYESブランチに続いて)、ブロック414において、ホストデバイスはクライアントデバイスに送信されたコンテンツのフローまたはレートを調整する。このレート調整は、ネットワーク上の伝送レートとコンテンツの符号化ビットレートに対して行なわれることがある。例えば、バッファ容量が高パーセンテージで使用されていること(すなわち、オーバフロー状態)をBFRが示していれば、ホストデバイスはクライアントデバイスにストリーム送信されるコンテンツのレートを低速にする。逆に、バッファ容量が低パーセンテージで使用されていること(すなわち、アンダフロー状態)をBFRが示していれば、ホストデバイスはクライアントデバイスにストリーム送信されるコンテンツのレートを大きくする。理想的または最適バッファ使用量からの偏差についても、考慮されることがある。言い換えれば、最適バッファ使用量からのプラスまたはマイナスの許容し得る偏差またはパーセンテージをBFRが示していれば、フローレートの調整は行なわれない。特定のクライアントバッファに関する情報を提供する複数のBFRは、特定のクライアントデバイスへのフローを調整するためにホストデバイスによって使用されることがある。言い換えれば、その特定デバイスには、複数のジッタバッファおよびコンテンツバッファが置かれていることがあり、各バッファはホストデバイスに送信される特定のBFRを有する。BFR情報から、ホストデバイスは、クライアントデバイス側のバッファごとの消費レートと全体の消費レートとを計算することができる。
BFRが受信されない場合(つまり、ブロック412のNOブランチに続いて)、この状態を解決するために2つのソリューションがあり得る。密結合ソリューション (tightly coupled solution)が選択された場合は(つまり、ブロック416のYESブランチに続いて)、BFRはホストデバイスからクライアントデバイスへのコンテンツのフローを排他的に指示している。言い換えれば、密結合ソリューションによると、クライアントデバイスへのコンテンツをスロットル(すなわち、ストリーム送信)するためにBFRがホストデバイスによって使用される。密結合ソリューションでは、ホストデバイスはクライアントのバッファが満杯になるまでコンテンツを送信してから停止することがある。ホストデバイスはクライアントのバッファにスペースが残っていることをBFRが示した後に、送信を再開することができる。BFRが受信されない場合には、ブロック418において、ホストデバイスは以前または最後に受信したBFRに示されている情報を使用することができる。あるいは、ホストデバイスは次のBFRまたは以後のBFRまで待機することもある。初期送信の場合には(つまり、BFRが全く受信されていない場合)、ホストデバイスは最初のBFRまで待機することができる。
密結合ソリューションが選択されない場合、言い換えれば、疎結合ソリューション(loosely coupled solution)が選択された場合には(つまり、ブロック416のNOブランチに続いて)、ブロック420において、BFRは助言的な情報(advisory information)としてのみ使用される。言い換えれば、BFRが受信されない場合、1つの例として、ホストデバイスは、事前に定義されたレート(つまり、フロー)または以前のBFRに基づいて計算された(つまり、推論された)レートに基づいてコンテンツまたはデータパケットをストリーム送信することがある。他のケースでは、ホストデバイスはホストデバイスの容量に基づいてコンテンツまたはデータパケットをストリーム送信することがある。疎結合ソリューションでは、BFRは助言的な情報として使用され、BFRが受信されない場合は、コンテンツは依然としてホストデバイスに送信されることがある。ホストデバイスはフローをスロットルするヒントとしてBFRを使用する。ホストデバイスは、クライアントデバイスがバッファ内のコンテンツを消費するときの概算のレート(プラスまたはマイナスのクロックドリフト)を知っていることがあるので、ホストデバイスはコンテンツを送信する前にBFRを待たないで済むのが通常である。
<フロー制御>
BFRは、クライアントデバイス側で利用可能なバッファの数に基づくストリーム伝送であるフロー制御の一般的なコンセプトを示している。フロー制御を使用すると、ホストデバイスは任意の時点でクライアントデバイス側に空きバッファがいくつ利用可能であるかを正確に知り、クライアントデバイスのバッファがオーバフローしないことを保障することができる。フロー制御の一部としては、ホストデバイスに頻繁に送信されるBFRによって、ホストデバイスがその伝送レートを調整して、クライアントデバイスバッファが使い果たされて不具合を引き起こさないことを保障することができる。ネットワークのエラーが原因でネットワーク輻輳または遅延が発生して転送レートを低下させる場合には、フロー制御とBFRによって、データを正しいレートで送信することが可能になる。クライアント側に利用可能なバッファスペースをホストデバイスが知っている場合には、ホストデバイスは、ストリームスタートアップ時または中断期間に利用可能なスペースを即時に満たすことができるので、結果的にパフォーマンスが向上することになる。一時的にネットワーク輻輳が起こった場合には、ホストデバイスは、コンテンツをより高速に配信し、1または複数のクライアントのバッファを満たすことにより「キャッチアップ(catch-up)」することができる。一般的に、ホストデバイスは、クライアントデバイスのジッタバッファが格納されたコンテンツについて満杯になったことを確かめることができ、クライアントデバイスはネットワークジッタに対してよりトレラントになり、システムはより強固になる。
<例示コンピュータ>
図5は、本発明の主題の側面を実施する環境として適している例示のコンピューティングデバイスまたはコンピュータ500を示す図である。具体的には、コンピュータ500はホストデバイス104とクライアントデバイス104を詳細に表わしている。コンピュータ500は、本発明の主題の側面を実施する環境として適している。コンピュータ500のコンポーネントとしては、処理ユニット505(例えば、プロセッサ108と118)、システムメモリ510(例えば、メモリ110と120)、およびシステムメモリ510を含む種々のシステムコンポーネントを処理ユニット505に結合するシステムバス521があるが、これらに限定されない。システムバス521は、数種のバス構造のいずれかである場合があり、その中には種々のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスが含まれている。例を挙げると、そのようなバスアーキテクチャとしては、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびMezzanineバスとしても知られているPCI(Peripheral Component Interconnect)バスがあるが、これらに限定されない。
例示コンピュータ500は、種々のコンピュータ可読媒体を備えているのが代表的である。コンピュータ可読媒体としては、コンピュータ500がアクセス可能な利用可能媒体ならばどのような媒体でもよく、その中には揮発性媒体と不揮発性媒体で、取り外し可能媒体と取り外し不能媒体の両方が含まれている。例を挙げると、コンピューティングデバイス可読媒体としては、コンピュータ記憶媒体および通信媒体があるが、これらに限定されない。コンピュータ記憶媒体としては、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための、いずれかの方法またはテクノロジで実現された揮発性および不揮発性で取り外し可能および取り外し不能媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリテクノロジ、CD−ROM、デジタルバーサタイルディスク(digital versatile disk:DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは必要とする情報を格納するために使用することができ、管理サーバ500によってアクセス可能な他の媒体が含まれるが、これらに限定されない。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他のトランスポートメカニズムなどの変調データ信号で具現化しているのが代表的であり、その中には情報配信媒体が含まれている。ここで「変調データ信号(modulated data signal)」とは、その特性の1または複数が、情報を信号において符号化するような形でセットまたは変更された信号のことである。例を挙げると、通信媒体としては、有線ネットワークや直接有線コネクションなどの有線媒体、および音響、RF、赤外線および他の無線媒体などの無線媒体があるが、これらに限定されない。上記に列挙したいずれかを組み合わせたものも、当然にコンピューティングデバイス可読媒体の範囲に含まれるものである。
システムメモリ510には、リードオンリメモリ(read only memory:ROM)531やランダムアクセスメモリ(random access memory:RAM)532などの揮発性および/不揮発性メモリの形式のコンピューティングデバイス記憶媒体が含まれている。スタートアップ時の期間のように、コンピュータ500内のエレメント間で情報を転送するのを支援する基本ルーチンからなる基本入力/出力システム(BIOS)533はROM531に格納されているのが代表的である。RAM532は、処理ユニット505によって即時にアクセス可能でありおよび/または現在操作の対象になっているデータおよび/またはプログラムモジュールを収めているのが代表的である。図5はオペレーティングシステム534、アプリケーションプログラム535(この中にはアプリケーション112または122が含まれている)、その他のプログラムモジュール536、およびプログラムデータ537を例示しているが、これらに限定されない。その他のプログラムモジュール536には、バッファモニタ132およびクライアントBFR報告モジュール136が含まれていることがある。
コンピュータ500は、その他の取り外し可能/取り外し不能で、揮発性/不揮発性コンピュータ記憶媒体を備えていることもある。図5は、取り外し不能で不揮発性磁気媒体との間で読み書きを行なうハードディスクドライブ541、取り外し可能で不揮発性磁気ディスク552との間で読み書きを行なう磁気ディスクドライブ551、およびCD−ROMや他の光媒体などの取り外し可能で不揮発性光ディスク556との間で読み書きを行なう光ディスクドライブ555を例示しているが、これらに限定されない。例示動作環境で使用できるその他の取り外し可能/不揮発性、揮発性/取り外し不能コンピューティングデバイス記憶媒体としては、磁気テープ、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、これらに限定されない。ハードディスクドライブ541は、インタフェース540のような取り外し不能メモリインタフェースを通してシステムバス521に接続されているのが代表的であり、磁気ディスクドライブ551と光ディスクドライブ555は、インタフェース550のような取り外し可能メモリインタフェースによってシステムバス521に接続されているのが代表的である。
上述し、図5に図示のドライブおよびその関連コンピューティングデバイス記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータをコンピュータ500のために格納している。図5において、例えば、ハードディスクドライブ541はオペレーティングシステム544、アプリケーションプログラム545、その他のプログラムモジュール546およびプログラムデータ547を格納するものとして示されている。なお、これらのコンポーネントは、オペレーティングシステム534、アプリケーションプログラム535、その他のプログラムモジュール536およびプログラムデータ537と同じである場合と、異なる場合とがあることに留意されたい。ここで、オペレーティングシステム544、アプリケーションプログラム545、その他のプログラムモジュール546およびプログラムデータ547に異なる番号が付けられているのは、最低限、これらが異なるコピーであることを示すためである。ユーザは、キーボード548およびマウス、トラックボール、タッチパッドと一般に呼ばれているポインティングデバイス561などのインプットデバイスを通して、コマンドと情報を例示のコンピュータ500に入力することができる。その他のインプットデバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ(satellite dish)、スキャナなどがある。これらおよびその他のインプットデバイスはシステムバスに結合されたユーザインプットインタフェース560を通して処理ユニット520に接続されることが多いが、パラレルポート、ゲームポートまたは特にUSBポートなどの他のインタフェースおよびバス構造によって接続されることもある。
モニタ562または他のタイプのディスプレイデバイスも、ビデオインタフェース590のようなインタフェースを介してシステムバス521に接続されている。モニタ562のほかに、コンピューティングデバイスはスピーカ597およびプリンタ596などの他の周辺アウトプットデバイスを有することが可能であり、これらはアウトプット周辺インタフェース595を通して接続可能になっている。
例示のコンピュータ500は、リモートコンピューティングデバイス580のような、1または複数のリモートコンピューティングデバイスへの論理的コネクションを使用してネットワーキング環境で動作させることができる。リモートコンピューティングデバイス580はパーソナルコンピューティングデバイス、サーバ、ルータ、ネットワークPC、ピアデバイスまたはその他の共通ネットワークノードにすることができ、コンピュータ500に関連して上述したエレメントの多くまたはすべてを備えているのが代表的である。図5に図示の論理的コネクションはローカルエリアネットワーク(LAN)571とワイドエリアネットワーク(WAN)573を含んでいるが、上述したネットワーク106のような他のネットワークが含まれていることもある。このようなネットワーキング環境はオフィス、企業内コンピューティングデバイスネットワーク、イントラネット、およびインターネットで普及している。
LANネットワーキング環境で使用されるときは、例示管理サーバ500は、ネットワークインタフェースまたはアダプタ570を通してLAN571に接続されている。WANネットワーキング環境で使用されるときは、例示コンピュータ500は、インターネットのようなWAN上で通信を確立するためのモデム572または他の手段を備えているのが代表的である。モデム572は内蔵型と外付け型があり、ユーザインプットインタフェース560または他の該当メカニズムを介してシステムバス521に接続されるもともある。ネットワーキング環境では、例示コンピュータ500に関連して図示のプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに格納されていることがある。図5はリモートアプリケーションプログラム585を例示しているが、これに限定されない。以上から理解されるように、ネットワークコネクションは例示であり、コンピューティングデバイス間の通信リンクを確立する他の手段が使用されることもある。
<結論>
上述した方法およびコンピュータは、クライアントデバイスからホストデバイスにバッファ満杯報告を提供するものとして説明されている。構造上の特徴および/または方法における実行に特有の言葉で本発明を説明してきたが、当然に理解されるように、請求項に定義されている本発明は、必ずしも特定の特徴または実行に限定されるとは限らない。むしろ、特定の特徴およびアクトは、請求項に記載の発明を実現する例示形態として開示されたものである。
クライアントデバイスからホストデバイスに対してバッファ満杯報告を提供するのに適した例示環境を示すブロック図である。 クライアントデバイスに含まれるジッタバッファとコンテンツバッファの例示実施形態を示すブロック図である。 プロトコルスタックおよびそのプロトコルスタックを介して伝送されるバッファ満杯報告の例示実施形態を示すブロック図である。 クライアントデバイスのバッファステータスをホストデバイスに通知するプロセスを示すフロー図である。 図1乃至図4を参照して説明されているようなホストデバイスとクライアントデバイスを実現するのに適した例示コンピューティング環境を示す図である。

Claims (20)

  1. 1または複数のバッファの容量を判定するステップであって、前記容量はバッファ情報に記述される、ステップと、
    前記1又は複数のバッファにおける前記スペースを計算するステップであって、前記使用済みスペースが前記バッファ情報に記述される、ステップと、
    前記バッファ情報に基づいてストリーミングコンテンツのフローを調整するホストデバイスに、前記バッファ情報を送信するステップと
    を備えることを特徴とする方法。
  2. 前記判定するステップは、前記ストリーミングコンテンツを受信する全てのバッファにおいて実行されることを特徴とする請求項1に記載の方法。
  3. 前記判定するステップは、前記ストリーミングコンテンツを受信しているバッファの集合容量に基づくことを特徴とする請求項1に記載の方法。
  4. 前記バッファ情報を送信するステップは、バッファ満杯報告の形式であることを特徴とする請求項1に記載の方法。
  5. 前記バッファ情報のやり取りをネゴシエートするステップをさらに備えることを特徴とする請求項1に記載の方法。
  6. 前記ネゴシエートするステップは、前記バッファ情報を前記ホストデバイスにどのくらいの頻度で送信するかを判定するステップを含むことを特徴とする請求項5に記載の方法。
  7. 前記ネゴシエートするステップは、前記バッファ情報を伝達するために使用される通信プロトコルを特定するステップを含むことを特徴とする請求項5に記載の方法。
  8. 1または複数のコンピュータ可読媒体であって、その実行時に、請求項1に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。
  9. クライアントデバイスとバッファ情報の前記やり取りをネゴシエートするステップと、
    前記クライアントデバイスから前記バッファ情報を受信するステップと、
    前記クライアントデバイスに対してストリーム送信されるコンテンツのレートを前記バッファ情報に基づいて調整するステップと
    を備えることを特徴とする方法。
  10. 前記ネゴシエートするステップは、前記クライアントから前記バッファ情報をどのくらいの頻度で受信するかを判定するステップを含むことを特徴とする請求項9に記載の方法。
  11. 前記調整するステップは、最適バッファ使用量の値からの偏差に基づくことを特徴とする請求項9に記載の方法。
  12. 前記レートを調整するステップは、ネットワーク上の伝送レートおよび前記コンテンツの符号化ビットレートを調整することを特徴とする請求項9に記載の方法。
  13. 前記バッファ情報が受信されない場合に、以後のバッファ情報を待つステップか、または、以前のバッファ情報を使用するステップを含むことを特徴とする請求項9に記載の方法。
  14. 前記バッファ情報が受信されない場合に、所定のレートまたは以前のバッファ情報から生じるレートに基づいて前記クライアントデバイスに対してコンテンツをストリーミングするステップをさらに備えることを特徴とする請求項9に記載の方法。
  15. 1または複数のコンピュータ可読媒体であって、その実行時に、請求項9に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ実行可能媒体。
  16. 処理ユニットと、
    前記処理ユニットによってアクセス可能であり、かつ処理ユニットによって動作する1または複数のバッファであって、前記バッファは、1又は複数のソースからのストリーム送信されたコンテンツを受信した、バッファと、
    前記処理ユニットによってアクセス可能であり、かつ処理ユニットによって動作するバッファモニタであって、前記バッファモニタは、前記バッファの前記満杯レベルをモニタし、前期バッファの前記満杯レベルに基づいて、またはバッファ満杯報告がどのくらいの頻度で受信される予定であるかをネゴシエートした頻度に基づいてバッファ満杯報告を生成する、バッファモニタと
    を備えることを特徴とするコンピュータ。
  17. 前記バッファは、中間ジッタバッファおよびコンテンツバッファを含むことを特徴とする請求項16に記載のコンピュータ。
  18. 前記バッファは、カプセル化されたデータコンテンツを格納する第1バッファと、カプセル化が解除された復号化用のデータコンテンツを格納する第2バッファとを含むことを特徴とする請求項16に記載のコンピュータ。
  19. 前記バッファ満杯報告は、特定の通信プロトコルを使用してホストデバイスに送信されることを特徴とする請求項16に記載のコンピュータ。
  20. 前記コンテンツバッファに先行してデコーダをさらに備えることを特徴とする請求項16に記載のコンピュータ。
JP2008513545A 2005-05-23 2006-05-18 メディアストリーミングのフロー制御 Expired - Fee Related JP4812832B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/135,201 2005-05-23
US11/135,201 US7743183B2 (en) 2005-05-23 2005-05-23 Flow control for media streaming
PCT/US2006/019243 WO2006127391A2 (en) 2005-05-23 2006-05-18 Flow control for media streaming

Publications (2)

Publication Number Publication Date
JP2008543176A true JP2008543176A (ja) 2008-11-27
JP4812832B2 JP4812832B2 (ja) 2011-11-09

Family

ID=37452610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008513545A Expired - Fee Related JP4812832B2 (ja) 2005-05-23 2006-05-18 メディアストリーミングのフロー制御

Country Status (9)

Country Link
US (1) US7743183B2 (ja)
EP (1) EP1891502B1 (ja)
JP (1) JP4812832B2 (ja)
KR (1) KR20080016817A (ja)
CN (1) CN101203827B (ja)
AT (1) ATE505004T1 (ja)
DE (1) DE602006021175D1 (ja)
ES (1) ES2361120T3 (ja)
WO (1) WO2006127391A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008244548A (ja) * 2007-03-26 2008-10-09 Softbank Bb Corp コンテンツ配信システムおよびコンテンツ配信方法
JP2013501468A (ja) * 2009-08-04 2013-01-10 クゥアルコム・インコーポレイテッド セルラーを使用したインターネット無線ブロードキャスト
JP2017004386A (ja) * 2015-06-12 2017-01-05 オリンパス株式会社 画像処理装置および画像処理方法
JP2021513440A (ja) * 2018-06-15 2021-05-27 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1806456A (zh) * 2003-06-11 2006-07-19 日本电气株式会社 媒体信号的接收机、发射机和发射/接收系统
US8218657B2 (en) * 2005-09-02 2012-07-10 Netgear, Inc. System and method for automatic adjustment of streaming video bit rate
US7657668B2 (en) * 2006-08-16 2010-02-02 Qnx Software Systems (Wavemakers), Inc. Clock synchronization of data streams
US8213316B1 (en) * 2006-09-14 2012-07-03 Avaya Inc. Method and apparatus for improving voice recording using an extended buffer
GB0705329D0 (en) 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
JP5211569B2 (ja) * 2007-07-26 2013-06-12 ソニー株式会社 コンテンツ再生装置、コンテンツ再生方法、およびプログラム
JP5282383B2 (ja) * 2007-09-06 2013-09-04 ソニー株式会社 コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7860996B2 (en) * 2008-05-30 2010-12-28 Microsoft Corporation Media streaming with seamless ad insertion
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
US8619558B1 (en) * 2008-07-21 2013-12-31 Qlogic, Corporation Memory management in a network adapter
US8116224B2 (en) 2008-09-09 2012-02-14 Embarq Holdings Company, LP System and method for generating alarms based on bursting traffic
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
TWI396443B (zh) * 2008-12-22 2013-05-11 Ind Tech Res Inst 應用於網路串流之影音控制回應及頻寬調適方法與使用該方法之伺服器
CN101534400B (zh) * 2009-04-14 2013-07-24 北京中星微电子有限公司 一种数据发送采样率的调节方法和装置
CN101877622B (zh) * 2009-04-30 2014-02-19 雷凌科技股份有限公司 提升数据传输效能的方法
TWI423032B (zh) * 2009-04-30 2014-01-11 Ralink Technology Corp 提升資料傳輸效能的方法
JP2011009904A (ja) * 2009-06-24 2011-01-13 Hitachi Ltd 無線映像配信システム、コンテンツビットレート制御方法及びコンテンツビットレート制御プログラムを記憶したコンピュータ読み取り可能な記録媒体
US8631455B2 (en) * 2009-07-24 2014-01-14 Netflix, Inc. Adaptive streaming for digital content distribution
US9014545B2 (en) 2009-07-24 2015-04-21 Netflix, Inc. Adaptive streaming for digital content distribution
EP2486491A4 (en) * 2009-10-06 2013-10-23 Unwired Planet Llc MANAGING NETWORK TRAFFIC BY EDITING A MANIFEST FILE AND / OR USING A INTERMEDIATE FLOW CONTROL
US9253105B2 (en) * 2010-12-30 2016-02-02 Nokia Technologies Oy Methods and apparatuses for facilitating determination of a state of a receiver buffer
GB2495929B (en) * 2011-10-25 2014-09-03 Skype Jitter buffer
GB2495928B (en) 2011-10-25 2016-06-15 Skype Jitter buffer
GB2520867B (en) 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
US9374406B2 (en) * 2012-02-27 2016-06-21 Qualcomm Incorporated Dash client and receiver with a download rate estimator
US9450997B2 (en) 2012-02-27 2016-09-20 Qualcomm Incorporated Dash client and receiver with request cancellation capabilities
US9276967B2 (en) * 2012-07-27 2016-03-01 Centurylink Intellectual Property Llc System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system
GB2507124A (en) * 2012-10-22 2014-04-23 St Microelectronics Grenoble 2 Controlling data transmission rates based on feedback from the data recipient
CN103945244B (zh) * 2013-01-17 2018-05-29 华为技术有限公司 控制视频业务传输的方法和装置
US9654528B1 (en) 2013-03-11 2017-05-16 Google Inc. Dynamic bitrate selection for streaming media
US9503491B2 (en) * 2013-03-15 2016-11-22 Echostar Technologies L.L.C. Playback stall avoidance in adaptive media streaming
GB2512310A (en) * 2013-03-25 2014-10-01 Sony Corp Media Distribution
EP2999260B1 (en) * 2013-07-08 2018-08-29 Huawei Technologies Co., Ltd. Control method, device and system for video playing
US9282041B2 (en) 2013-07-16 2016-03-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Congestion profiling of computer network devices
KR20150062745A (ko) * 2013-11-29 2015-06-08 한국전자통신연구원 가상화 서비스 장치 및 방법
US9823864B2 (en) * 2014-06-02 2017-11-21 Micron Technology, Inc. Systems and methods for throttling packet transmission in a scalable memory system protocol
US9819560B2 (en) * 2014-12-24 2017-11-14 Mediatek Inc. Dynamic data distribution method in private network and associated electronic device
US9756112B2 (en) 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US20160277522A1 (en) * 2015-03-20 2016-09-22 Qualcomm Incorporated Detecting playback buffer underrun at sink device to improve streaming media quality over bluetooth
US10033655B2 (en) * 2015-09-04 2018-07-24 Arris Enterprises Llc Packet prioritization based on client device feedback
EP3357197B1 (en) 2015-09-29 2019-07-24 Dolby Laboratories Licensing Corporation Method and system for handling heterogeneous jitter
WO2017063677A1 (en) * 2015-10-13 2017-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive precision for reporting consumption of streamed content
JP6722278B2 (ja) * 2016-04-11 2020-07-15 オリンパス株式会社 画像処理装置
KR102656013B1 (ko) 2016-10-28 2024-04-11 삼성전자주식회사 컨텐츠 출력 장치 및 그 제어 방법
CN108073445B (zh) * 2016-11-18 2021-10-22 腾讯科技(深圳)有限公司 基于分布式流计算的背压处理方法和系统
US20180288454A1 (en) * 2017-03-29 2018-10-04 Kamakshi Sridhar Techniques for estimating http adaptive streaming (has) video quality of experience
KR101996914B1 (ko) * 2017-11-13 2019-07-08 주식회사 쿼렌시스 Mmtp기반 전송 시 배터리 소비 절감 방법 및 시스템
US11062722B2 (en) * 2018-01-05 2021-07-13 Summit Wireless Technologies, Inc. Stream adaptation for latency
US10534573B2 (en) * 2018-05-29 2020-01-14 Sonova Ag Method for apparatus for sample rate conversion with unknown input and output clocks
US10693575B2 (en) 2018-08-31 2020-06-23 At&T Intellectual Property I, L.P. System and method for throughput prediction for cellular networks
US10868726B2 (en) 2018-12-07 2020-12-15 At&T Intellectual Property I, L.P. Apparatus and method for selecting a bandwidth prediction source
US20200296316A1 (en) 2019-03-11 2020-09-17 Quibi Holdings, LLC Media content presentation
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US11490149B2 (en) 2019-03-15 2022-11-01 At&T Intellectual Property I, L.P. Cap-based client-network interaction for improved streaming experience
CN112468759A (zh) * 2019-09-09 2021-03-09 苹果公司 动态冗余
CN111246284B (zh) * 2020-03-09 2021-05-25 深圳创维-Rgb电子有限公司 视频流播放方法、系统、终端及存储介质
WO2023063925A1 (en) * 2021-10-12 2023-04-20 Google Llc Intelligent dynamic bit-rate rate adjustment to enhance bluetooth performance
US11711322B2 (en) 2021-10-31 2023-07-25 Zoom Video Communications, Inc. Packet processing at a server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003045047A2 (en) * 2001-11-22 2003-05-30 Sk Telecom Co., Ltd. Method for providing a video data streaming service

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792654B2 (ja) * 1992-10-23 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション ビデオ・データ・フレーム伝送方法および装置
US5563961A (en) * 1994-03-03 1996-10-08 Radius Inc. Video data compression method and system which measures compressed data storage time to optimize compression rate
GB9410943D0 (en) 1994-06-01 1994-07-20 Newbridge Networks Corp Clock recovery unit
JPH08191451A (ja) 1995-01-10 1996-07-23 Canon Inc 動画像送信装置
US5758076A (en) * 1995-07-19 1998-05-26 International Business Machines Corporation Multimedia server system having rate adjustable data retrieval based on buffer capacity
US5909443A (en) * 1997-01-03 1999-06-01 International Business Machines Corporation ATM network congestion control system using explicit rate cell marking
JP3393143B2 (ja) 1997-02-26 2003-04-07 三菱電機株式会社 ビデオデータ配信方法、ビデオデータ配信システム、並びに、そのビデオデータ配信方法
US6014694A (en) * 1997-06-26 2000-01-11 Citrix Systems, Inc. System for adaptive video/audio transport over a network
US6343350B1 (en) * 1998-02-13 2002-01-29 International Business Machines Corporation Conserving storage space by means of low resolution objects
SG71835A1 (en) 1998-09-07 2000-04-18 Victor Company Of Japan A dejittering and clock recovery technique for real-time audio/visual network applications
US6519004B1 (en) * 1998-10-09 2003-02-11 Microsoft Corporation Method for transmitting video information over a communication channel
US6507587B1 (en) * 1998-10-09 2003-01-14 Microsoft Corporation Method of specifying the amount of bandwidth to reserve for use in network communications
US6618363B1 (en) * 1998-10-09 2003-09-09 Microsoft Corporation Method for adapting video packet generation and transmission rates to available resources in a communications network
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法
US7423983B1 (en) * 1999-09-20 2008-09-09 Broadcom Corporation Voice and data exchange over a packet based network
US7170856B1 (en) * 1999-08-19 2007-01-30 Nokia Inc. Jitter buffer for a circuit emulation service over an internet protocol network
US6611530B1 (en) * 1999-09-21 2003-08-26 Hewlett-Packard Development Company, L.P. Video communication using multiple streams
JP2001103565A (ja) 1999-09-30 2001-04-13 Toshiba Corp 移動無線端末
US6757273B1 (en) 2000-02-07 2004-06-29 Nokia Corporation Apparatus, and associated method, for communicating streaming video in a radio communication system
US20020146023A1 (en) * 2001-01-09 2002-10-10 Regan Myers Transport stream multiplexer utilizing smart FIFO-meters
KR100410973B1 (ko) * 2001-04-18 2003-12-18 엘지전자 주식회사 주문형 비디오 시스템에서 동영상의 스트리밍 방법
US7000025B1 (en) * 2001-05-07 2006-02-14 Adaptec, Inc. Methods for congestion mitigation in infiniband
US7151749B2 (en) * 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US20030198184A1 (en) 2001-08-31 2003-10-23 Joe Huang Method of dynamically determining real-time multimedia streaming rate over a communications networks
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
FI115418B (fi) * 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
EP1428357A1 (en) 2001-09-21 2004-06-16 British Telecommunications Public Limited Company Data communications method and system using receiving buffer size to calculate transmission rate for congestion control
US6860609B2 (en) * 2001-12-26 2005-03-01 Infocus Corporation Image-rendering device
US7155532B2 (en) * 2002-01-04 2006-12-26 Scientific-Atlanta, Inc. Transmitting streams over asynchronous networks
US6910079B2 (en) 2002-01-25 2005-06-21 University Of Southern California Multi-threshold smoothing
US7483487B2 (en) * 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
JP2006500797A (ja) 2002-07-16 2006-01-05 ノキア コーポレイション マルチメディアストリーミング時にパケット転送遅延の補償を可能にする方法
FR2842683B1 (fr) * 2002-07-22 2005-01-14 Cit Alcatel Dispositif de multiplexage, dispositif de multiplexage et systeme de multiplexage/demultiplexage
KR100547889B1 (ko) * 2003-08-25 2006-01-31 삼성전자주식회사 Mpeg-2 전송을 위한 널 패킷 필터링 장치
US7366199B1 (en) * 2002-12-10 2008-04-29 Apple Inc. Method and apparatus measuring bandwidth
JP2004214755A (ja) * 2002-12-27 2004-07-29 Hitachi Ltd 動的符号化レート変更方法及びその装置
EP1593047A4 (en) 2003-02-13 2010-06-09 Nokia Corp METHOD OF SIGNALING STREAMING QUALITY ADAPTATION AND CONTROL MCHANISMS IN MULTIMEDIA STREAMING
GB0304808D0 (en) * 2003-03-03 2003-04-09 Cambridge Internetworking Ltd Managing data transmission
US7603475B2 (en) * 2003-03-31 2009-10-13 Alcatel-Lucent Usa Inc. Method for flow control in a communication system
US7844727B2 (en) 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
US20060026181A1 (en) * 2004-05-28 2006-02-02 Jeff Glickman Image processing systems and methods with tag-based communications protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003045047A2 (en) * 2001-11-22 2003-05-30 Sk Telecom Co., Ltd. Method for providing a video data streaming service

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008244548A (ja) * 2007-03-26 2008-10-09 Softbank Bb Corp コンテンツ配信システムおよびコンテンツ配信方法
JP2013501468A (ja) * 2009-08-04 2013-01-10 クゥアルコム・インコーポレイテッド セルラーを使用したインターネット無線ブロードキャスト
US8848548B2 (en) 2009-08-04 2014-09-30 Qualcomm Incorporated Internet radio broadcast using cellular
JP2017004386A (ja) * 2015-06-12 2017-01-05 オリンパス株式会社 画像処理装置および画像処理方法
JP2021513440A (ja) * 2018-06-15 2021-05-27 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体
JP7072677B2 (ja) 2018-06-15 2022-05-20 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体
US11831566B2 (en) 2018-06-15 2023-11-28 Tencent Technology (Shenzhen) Company Limited Method and apparatus for transmitting scene image of virtual scene, computer device, and computer-readable storage medium

Also Published As

Publication number Publication date
EP1891502B1 (en) 2011-04-06
US7743183B2 (en) 2010-06-22
WO2006127391A3 (en) 2007-10-25
EP1891502A4 (en) 2009-11-11
WO2006127391A2 (en) 2006-11-30
JP4812832B2 (ja) 2011-11-09
DE602006021175D1 (de) 2011-05-19
CN101203827B (zh) 2011-04-13
CN101203827A (zh) 2008-06-18
ATE505004T1 (de) 2011-04-15
KR20080016817A (ko) 2008-02-22
EP1891502A2 (en) 2008-02-27
ES2361120T3 (es) 2011-06-14
US20060282566A1 (en) 2006-12-14

Similar Documents

Publication Publication Date Title
JP4812832B2 (ja) メディアストリーミングのフロー制御
US7587507B2 (en) Media recording functions in a streaming media server
TWI388170B (zh) 網路中串流資料內容之方法及裝置
US7813268B2 (en) Retry strategies for use in a streaming environment
EP1741035B1 (en) Session description message extensions
US9473378B1 (en) Method for transmitting packet-based media data having header in which overhead is minimized
US11356493B2 (en) Systems and methods for cloud storage direct streaming
US9131271B2 (en) Systems and methods for real-time adaptation of multimedia data
US10652166B2 (en) Non-real time adaptive bitrate recording scheduler
JP6976276B2 (ja) レートペーシングのためにバッファを管理する装置及び方法
CN110710220B (zh) 用于流传输数据的方法和装置
JP2009290868A (ja) 送信機と電子装置間の信号ストリームの簡略化された伝送方法
CN118233691A (zh) 一种多媒体文件的播放方法、装置和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110823

R150 Certificate of patent or registration of utility model

Ref document number: 4812832

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees