JP7374975B2 - ビデオの同時ダウンロード - Google Patents

ビデオの同時ダウンロード Download PDF

Info

Publication number
JP7374975B2
JP7374975B2 JP2021196163A JP2021196163A JP7374975B2 JP 7374975 B2 JP7374975 B2 JP 7374975B2 JP 2021196163 A JP2021196163 A JP 2021196163A JP 2021196163 A JP2021196163 A JP 2021196163A JP 7374975 B2 JP7374975 B2 JP 7374975B2
Authority
JP
Japan
Prior art keywords
video
computing
computing instances
time
data
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.)
Active
Application number
JP2021196163A
Other languages
English (en)
Other versions
JP2022089183A (ja
Inventor
トンギュ・ダイ
ラン・シエ
ウェンハオ・ジャン
ダーリャン・フー
チャオ・リー
チャン・ショー
イーティン・グイ
イーチョン・リュー
イエンピン・ジョウ
シージー・シー
Original Assignee
フル・エルエルシー
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 フル・エルエルシー filed Critical フル・エルエルシー
Publication of JP2022089183A publication Critical patent/JP2022089183A/ja
Application granted granted Critical
Publication of JP7374975B2 publication Critical patent/JP7374975B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4344Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

[0001]ビデオストリーミングシステムは、クライアントデバイスが経験することができる最も高いビデオ品質でネットワークを通してデータを送信することを望む。基礎をなす送信帯域幅は、可能であるビデオ品質の上限を直接決定し得る。たとえば、時間期間当たりに送られ得るデータが多くなるほど、より高品質のビデオを送ることによってクライアントデバイスに与えられ得るビデオ品質は良好になる。しかしながら、データを効果的に送信するネットワークの能力を制限し得る異なる問題が発生し得る。たとえば、ネットワークに多くのパケットロスがあるとき、接続の帯域幅が著しく低減され得、これは、ビデオ品質を最終的に低下させる。また、ネットワークによって生じるパケットロスがない場合、ネットワークリソースのための競合などの他の問題があり得、これも、帯域幅を劣化させ得る。
[0002]一構成では、クライアントデバイスは、エッジノードまたはメディアサーバなどのコンテンツ配信ネットワークとの接続を初期化し得る。次いで、クライアントデバイスは、1つずつビデオセグメントを要求し、エッジノードは、接続を通してビデオセグメントを配信する。ビデオ再生の品質は、単一接続の信頼性に完全に依存する。したがって、何らかの問題がこの接続に発生する場合、ビデオ品質は影響を及ぼされ得る。
[0003]以下の説明および図面に関して、示される詳細は、例示的な説明のための例を表し、本開示の原則および概念的な態様の説明を与えるために提示されることが強調される。この点について、実装形態の詳細を示すための試みは本開示の基本的な理解のために必要なことを越えて実行されない。以下の説明は、図面と併せて、本開示による実施形態がどのように実施され得るのかを当業者に明らかにする。同様のまたは同じ参照番号は、様々な図面および補助的な説明における同様のまたは同じ要素を識別するかあるいは言及するために使用され得る。
[0004]いくつかの実施形態による、ビデオのためのビデオセグメントの同時ダウンロードを実行するための簡略化されたシステムを示す図。 [0005]いくつかの実施形態による、複数のスレッドを使用してビデオセグメントをダウンロードすることの一例を示す図。 [0006]いくつかの実施形態による、帯域幅を推定するための方法の簡略フローチャートを示す図。 [0007]いくつかの実施形態による、クライアントデバイスが単一のコンテンツ配信ネットワークとの接続を開く構成を示す図。 [0008]いくつかの実施形態による、クライアントデバイスが複数のCDNエッジノードとの接続を開く構成を示す図。 [0009]いくつかの実施形態による、スレッドを制御するための方法の簡略フローチャートを示す図。 [0010]一実施形態による、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信しているビデオストリーミングシステムを示す図。 [0011]ビデオコンテンツと広告とを閲覧するための装置の線図。
[0012]ビデオ配信システムのための技法について本明細書では説明する。以下の説明では、説明のために、いくつかの実施形態の完全な理解を与えるために多数の例および具体的な詳細が記載される。特許請求の範囲によって定義されたいくつかの実施形態は、これらの例のみでまたは以下で説明される他の特徴と組み合わせて一部または全部の特徴を含み得、さらに、本明細書で説明される特徴および概念の変更形態および等価物を含み得る。
[0013]ビデオ配信システムは、ビデオを再生するために複数の接続を介したビデオセグメントの同時ダウンロードを使用し得る。たとえば、クライアントデバイスは、ビデオのセグメントをダウンロードしている複数のスレッドを有し得る。複数のスレッドの使用は、ビデオを受信することの全体的な帯域幅を増大し得る。たとえば、単一接続上で1つずつビデオセグメントをダウンロードする代わりに、クライアントデバイスは、複数のセグメントを並行してダウンロードすることができ、これは、時間期間当たりにダウンロードされるデータの量を増大し得る。ネットワーク帯域幅が、許容できる帯域幅において複数のスレッド上での複数のビデオセグメントのダウンロードをサポートすることができるとき、到達され得るビデオ品質の上限が増大し得る。受信される全体的なビデオデータの帯域幅が増大するので、クライアントデバイスは、より高品質のビデオを表示することができる。たとえば、クライアントデバイスは、より高いビットレートおよび/または解像度でトランスコードされたビデオをダウンロードすることが可能であり得、これは、ビデオの品質を増大させる。
[0014]ビデオセグメントの同時ダウンロードは、エッジノードまたは複数のエッジノードとの接続を開くために使用されるスレッドなどのインスタンスを使用し得る。スレッド割振りを制御するために、クライアントデバイスは、ビデオセグメントを同時にダウンロードする帯域幅を推定する。単一接続を使用するときに、帯域幅推定は、クライアントデバイスが、ダウンロードのサイズとダウンロードの持続時間との比によって各セグメントダウンロードの最後に帯域幅を推定し得るなど、簡単なものであり得る。しかしながら、同時ダウンロードを使用するとき、他のスレッドからのダウンロードされたデータの寄与が考慮に入れられないので、帯域幅を推定するこの機構は、帯域幅を正確に推定しないことがある。また、スレッドごとに帯域幅の個々の推定を使用することは、計算が時間的に整列されないので、ビデオの同時ダウンロードを考慮しない。したがって、クライアントデバイスは、複数のスレッドにわたって帯域幅を推定するために整列された時間ウィンドウベースのプロセスを使用し得る。
[0015]クライアントデバイスはまた、スレッド割振りを制御し得る。各スレッドは、ビデオセグメントをダウンロードするために接続を有し得、ある量のコンピュータリソースを占有し得る。クライアントデバイスは、ビデオセグメントをダウンロードするために新しいスレッドをいつ開始すべきかまたはスレッドをいつ終了すべきかについて決定するために帯域幅に対するスレッドの効果を分析し得る。したがって、クライアントデバイスは、ビデオを同時にダウンロードするために開くためにスレッドの最適な量を決定することができる。
[0016]システム概要
[0017]図1は、いくつかの実施形態による、ビデオのためのビデオセグメントの同時ダウンロードを実行するための簡略化されたシステム100を示す。システム100は、クライアントデバイス102と、オリジンサーバ104と、コンテンツ配信ネットワーク106と、ビデオ配信システム108とを含む。
[0018]コンテンツ配信ネットワーク106-1から106-N(CDN#1、CDN#2、およびCDN#N)は、クライアントデバイス102にコンテンツ110を配信することができるコンピューティングデバイス(たとえば、サーバ)を含む。各コンテンツ配信ネットワーク106は、クライアントデバイス102にコンテンツ110を独立して送ることが可能であり得る。コンテンツ110は、ビデオ、オーディオ、画像、または他の情報であり得る。ビデオは、ビデオセグメントと呼ばれることがある部分にセグメント化され得る。たとえば、ビデオセグメントは、5秒のビデオであり得る。説明目的のために、ビデオという用語が使用されることになるが、他のタイプのコンテンツが使用されてもよい。いくつかの実施形態では、コンテンツ配信ネットワーク106は、各コンテンツ配信ネットワーク106が異なる会社に所有されているなど、独立したエンティティであり得る。これらのコンテンツ配信ネットワーク106は、それらが別個のエンティティであるので、ビデオの配信を協調させることができない。コンテンツ配信ネットワーク106は、クライアントデバイス102にビデオセグメントを配信するデバイスであり得るエッジノードなどのサーバを含み得る。たとえば、エッジノードは、ネットワークのエッジに見出され得、クライアントデバイス102にビデオセグメントを配信する。エッジノードについて説明したが、ビデオセグメントが複数のサーバおよびコンピューティングデバイスを通して配信され得ることを理解されよう。
[0019]オリジンサーバ104は、コンテンツ110の表現を記憶し得る。たとえば、表現は、異なるビットレートにおけるビデオの異なる表現など、ビデオのための異なる再生特性を含み得る。オリジンサーバ104は、異なるコンテンツ配信ネットワーク#1から#Nにビデオの表現を与え得る。各コンテンツ配信ネットワーク106は、クライアントデバイス102にビデオを独立して送ることが可能であり得る。たとえば、各コンテンツ配信ネットワーク106は、クライアントデバイス102にコンテンツを送ることができる1つまたは複数のサーバを含み得る。
[0020]クライアントデバイス102は、スマートフォン、セットトップボックス、タブレットデバイス、リビングルームデバイス、ゲームコンソールなどのコンピューティングデバイスを含み得る。また、クライアントデバイス102は、ビデオを再生することができるメディアプレーヤ122を含む。
[0021]クライアントデバイス102は、コンテンツ配信ネットワーク106ごとに接続を通して異なる再生条件を経験し得る。たとえば、再生条件は、各コンテンツ配信ネットワーク106によって使用されているネットワークに基づいて異なり得る。これは、ビデオがクライアントデバイス102に異なる帯域幅で配信されることを生じる。さらに、図示されていないが、異なるクライアントデバイス102は、同じコンテンツ配信ネットワーク106および/または異なるコンテンツ配信ネットワーク106から異なる再生条件を経験し得る。
[0022]ビデオ配信システム108は、ビデオについての要求を受信し、次いで、クライアントデバイス102に再生のための構成を与え得る。構成は、ビデオのダウンロードのための異なる設定を含み得る。たとえば、設定は、ビデオをダウンロードするために利用可能である異なるプロファイルを含み得る。プロファイルは、各プロファイルが異なるビットレートおよび/または品質(たとえば、解像度)に関連付けられ得るプロファイルラダーに集約され得る。ビデオセグメントをダウンロードするために使用されるビットレートおよび/または品質が高くなるほど、メディアプレーヤ122中に表示されるビデオの品質が良好になる。概して、より高い利用可能な帯域幅は、より多くのデータが接続を通して送受信され得ることを意味し、これは、より高品質のビデオセグメントがダウンロードされることを生じる。使用されるとき、帯域幅は、接続を通して送信されているデータの量に基づき得る。推定帯域幅は、どのくらいのデータが転送されることができるのかの理論的な測定値であり得る。帯域幅について説明したが、スループット(たとえば、接続を通して転送される実際のデータの量)などの他のビデオ配信メトリックまたは測定値が使用されてもよい。
[0023]アプリケーション112は、ビデオのためのビデオセグメントを同時にダウンロードするために使用すべきいくつかのスレッドを決定し得る。たとえば、118においてアプリケーション112は、複数の同時スレッドを使用してコンテンツ配信ネットワーク#1 106-1からビデオセグメントをダウンロードし得、ここで、各スレッドは、コンテンツ配信ネットワーク106-1へのオープン接続を有する。オープン接続は、コンテンツ配信ネットワーク#1 106-1からクライアントデバイス102への同じ物理的リンクを通して行われ得る。しかしながら、帯域幅の上限は、リンクの帯域幅によって制限され得る。また、120において、アプリケーション112は、コンテンツ配信ネットワーク106-1、106-2、および106-Nなどの異なるコンテンツ配信ネットワーク106への接続を有する複数のスレッドを通してビデオセグメントをダウンロードし得る。異なるリンクを介した経路は、クライアントデバイス102から異なるコンテンツ配信ネットワーク106まで異なる。2つの異なるコンテンツ配信ネットワーク106への2つの経路は、同じコンテンツ配信ネットワーク106への同じリンク中の2つの経路よりも多くの利用可能な帯域幅を有し得るので、これは帯域幅の上限を増大し得る。
[0024]アプリケーション112は、ビデオセグメントをダウンロードするために使用されるスレッドを制御し得る。たとえば、帯域幅推定器114は、複数のスレッド中でのビデオセグメントの同時ダウンロードの帯域幅を推定し得る。次いで、スレッド制御エンジン116は、推定帯域幅に対するスレッドの効果に基づいてクライアントデバイス102がビデオセグメントをダウンロードするために使用するいくつかのスレッドを制御し得る。帯域幅推定器114とスレッド制御エンジン116とによって実行されるプロセスについて、以下でより詳細に説明する。
[0025]帯域幅推定
[0026]従来、ビデオセグメントが単一接続を使用してダウンロードされるとき、クライアントデバイスは、ビデオセグメントのダウンロード持続時間とダウンロードサイズとに従って接続の帯域幅を推定することができる。この帯域幅推定は、単一のスレッドを使用して単一のダウンロード接続について正確であり得る。しかしながら、上記で説明されたように、複数のスレッドを介した同時ダウンロードを使用するときに、従来の方法は、ネットワーク帯域幅を正確に推定しないことがある。したがって、帯域幅推定器114は、ビデオセグメントを同時にダウンロードするために複数のスレッドを使用するときに帯域幅を正確に推定するプロセスを使用し得る。
[0027]図2は、いくつかの実施形態による、複数のスレッド204を使用してビデオセグメント202をダウンロードすることの一例を示す。クライアントデバイス102は、別個の接続中でビデオセグメントをダウンロードしている、スレッド#1 204-1、スレッド#2 204-2、およびスレッド#3 204-3などの3つのスレッドを開かせ得る。スレッドは、クライアントデバイス102上で実行され得るコンピューティングリソース(たとえば、コンピュータプロセッサ)であり得る。たとえば、スレッドは、接続を通してビデオセグメントを別々にダウンロードすることができるプロセスであり得る。いくつかの実施形態では、スレッド204は、同じビデオからビデオセグメント202をダウンロードしている。すなわち、ビデオは、ビデオセグメントの連続セットから構成され得、スレッド204は、ビデオから異なるビデオセグメントを同時にダウンロードし得る。一例では、各スレッド204は、一意のビデオセグメント202を順番に連続的にダウンロードし得る。たとえば、スレッド#1 204-1は、ビデオセグメント#1 202-1をダウンロードし得、スレッド#2 204-2は、ビデオセグメント#2 202-2をダウンロードし得、スレッド#3 204-3は、ビデオセグメント#3 202-3をダウンロードし得る。次いで、ビデオセグメント#1 202-1をダウンロードした後に、スレッド#1 204-1は、ビデオセグメント#4 202-4をダウンロードする。スレッド#2 204-2は、ビデオセグメント#2 202-2をダウンロードした後にビデオセグメント#5 202-5をダウンロードし、スレッド#3 204-3は、ビデオセグメント#3 202-3をダウンロードした後にビデオセグメント#6 202-6をダウンロードする。セグメントをダウンロードする上記の方法について説明したが、各スレッド204が、2つの連続するビデオセグメント202をダウンロードし得ること、スレッド204が、同じセグメント202をダウンロードし得ることなどの他の方法が使用され得る。各スレッド204は、それのそれぞれの接続のネットワーク状態および/またはそれぞれのビデオセグメントの特性に応じてビデオセグメント202をダウンロードするのに異なる時間がかかり得る。したがって、ビデオセグメント202は、異なる時間期間中にダウンロードされ得る。
[0028]同時にダウンロードされているビデオセグメントの正確な帯域幅推定を取得するために、帯域幅推定器114は、帯域幅推定プロセスを案内するためにスレッド検出と整列時間ウィンドウとを使用し得る。帯域幅推定器114は、スレッド204ごとに時間ウィンドウ中のネットワーク帯域幅を推定するために時間間隔208を使用し得る。たとえば、第1の時間ウィンドウは、時間間隔#1 208-1と時間間隔#2 208-2とに基づき得る(たとえば、中間にあり得る)。第2の時間ウィンドウは、時間間隔#2 208-2と時間間隔#3 208-3との中間にあり得、第3の時間ウィンドウは、時間間隔#3 208-3と時間間隔#4 208-4との中間にあり得、以下同様である。
[0029]帯域幅推定器114はまた、スレッド204がビデオをダウンロードしていないのかどうかなど、スレッド204のステータスを決定するためにスレッド検出を実行し得る。たとえば、帯域幅推定器114は、スレッドがアイドルであるのかまたは停止されているのかを検出し得る。ビデオをダウンロードしていないスレッド204は、セグメント202がスレッド204上でコンテンツ配信ネットワーク106から送られていない場合であり得る。アイドルであるスレッド204が帯域幅推定に影響を及ぼし得るので、すべてのスレッド204がビデオをダウンロードしていない(たとえば、すべてのスレッド204がアイドルである)とき、帯域幅推定器114は、帯域幅を推定しないことがある。すべてのスレッド204がアイドルである間に帯域幅を測定することは、必要がないことがあり、再生を再始動するときにビデオ再生設定に関する問題を生じることがある。たとえば、クライアントデバイス102は、利用可能な帯域幅がごくわずかしかないと仮定し、そのシナリオのための設定を調整し得る。しかしながら、帯域幅推定器114は、ビデオをダウンロードするときに少なくとも1つのスレッド204を検出する場合、帯域幅推定器114は、推定帯域幅を計算し得る。
[0030]帯域幅推定器114は、時間ウィンドウと、スレッド204によって時間ウィンドウ中にダウンロードされるデータの量とに基づいて帯域幅を計算し得る。時間ウィンドウが終了するときにビデオセグメントがダウンロードを完了していなかった場合、帯域幅推定器114は、計算を実行するためにスレッド204がビデオセグメントをダウンロードするのを完了するのを待たない。帯域幅推定器114は、時間ウィンドウ中にスレッド204のダウンロード活動に基づいて帯域幅を推定するために異なる方法を使用し得る。いくつかの例では、帯域幅推定器114は、時間ウィンドウ中にすべてのスレッド204によってダウンロードされるデータ(たとえば、ビットまたはバイトの数)を計算し得る。たとえば、この時間期間中のスレッド1からnのダウンロードビットがb,b...bであり、時間ウィンドウの長さがtである場合、推定帯域幅
は次のように表され得る。
[0031]上記の計算は、時間ウィンドウ中のすべてのダウンロードスレッド204の累積ダウンロードレートを直接表す。たとえば、時間ウィンドウ#1中に、帯域幅推定器114は、210-1においてスレッド#1 204-1によってダウンロードされたバイトを推定し、210-2においてスレッド#2 204-2によってダウンロードされたビットを推定し、210-3においてスレッド#3 204-3によってダウンロードされたビットを推定し得る。これらは、第1の時間間隔中にダウンロードされるビットである。次いで、帯域幅推定器114は、時間ウィンドウ中の時間でダウンロードされたビットを割り得る。
[0032]スレッド204がアイドルであり得るかまたは停止され得るとき、スレッド204が全体時間ウィンドウの間にビデオセグメント202のためのデータをダウンロードしていた前の時間ウィンドウと比較してこの時間ウィンドウ中により少数のビットがダウンロードされ得るので、帯域幅推定は影響を及ぼされ得る。スレッド204がデータをダウンロードしていないとき、それは、帯域幅計算において雑音の原因となり得る。いくつかの実施形態では、帯域幅推定器114は、時間間隔にわたって帯域幅推定を平滑化し得るフィルタを使用し得る。フィルタは、前の帯域幅計算に基づいて帯域幅計算を調整し得る。たとえば、第1の帯域幅計算が、100メガバイト毎秒(Mbps)であり、後続の帯域幅計算は、25Mbpsである場合、帯域幅推定器114は、フィルタが25Mbpsの代わりに50Mbpsとして帯域幅を平滑化し得るなど、帯域幅推定を平滑化し得る。
[0033]図3は、いくつかの実施形態による、帯域幅を推定するための方法の簡略フローチャート300を示す。302において、帯域幅推定器114は、スレッド検出を実行する。帯域幅推定器114は、ある間隔(たとえば、条件が満たされていることに基づく所定のまたは動的に決定された間隔)でスレッド検出を実行し得、これは、帯域幅が推定される複数のウィンドウを含み得る。たとえば、帯域幅推定器114は、206-1および206-2においてスレッド検出を実行し得る。また、帯域幅推定器114は、単一の時間間隔208ごとでなど、他の間隔でスレッド検出を実行し得る。帯域幅推定器114は、スレッド204がビデオをダウンロードしていないのかどうかを決定するためにスレッド検出を使用する。
[0034]304において、帯域幅推定器114は、スレッド204がビデオをアクティブにダウンロードしていないのかどうかを決定する。いくつかの実施形態では、帯域幅推定器114は、すべてのスレッド204がビデオをアクティブにダウンロードしていないのかどうかを検出する。ビデオをアクティブにダウンロードしていないことは、スレッド204がアイドルであるかまたは停止しているときであり得る。しかしながら、スレッド204は、ビデオをダウンロードする際に遅延を経験している場合があり、これは、アイドルスレッド204と考慮されないことがある。いくつかの実施形態では、アイドルスレッド204は、セグメント202がスレッド204上でコンテンツ配信ネットワーク106から送られていない場合のスレッドであり得る。すべてのスレッド204がビデオをアクティブにダウンロードしていないことを要求することがしきい値として使用され得るが、2つ未満のスレッド204がビデオをアクティブにダウンロードしていることのしきい値など、他のしきい値が使用され得る。ビデオをダウンロードするのを停止しているいくつかのスレッド204がしきい値を満たす場合、306において、帯域幅推定器114は、帯域幅推定を停止する。帯域幅推定を停止することは、時間間隔を推定しているタイマーを停止することを含み得る。帯域幅推定器114は、次いで、全体時間ウィンドウの代わりに部分的な時間間隔中にダウンロードされたデータに基づいて帯域幅推定を実行し得る。スレッド204がデータをアクティブにダウンロードしていない時間を使用して帯域幅を計算することは帯域幅を低く推定し得るので、これは、スレッド204がデータをダウンロードすることを停止するときに帯域幅推定器114が帯域幅を正確に計算することを可能にする。次いで、308において、帯域幅推定器114は、帯域幅推定プロセスを再び開始するために次のスレッド検出時間まで待ち得る。帯域幅推定器114はまた、次の時間間隔208においてなど、帯域幅推定を再開するために他の方法を使用し得る。
[0035]スレッド204がビデオをダウンロードしている場合、310において、帯域幅推定器114は、スレッド204を監視する。たとえば、帯域幅推定器114は、スレッド204によってダウンロードされているデータの量を決定し得る。
[0036]312において、帯域幅推定器114は、時間間隔208が終了したなど、測定時間が到達されたのかどうかを決定する。そうでない場合、プロセスは、310においてスレッド204を監視することを続けることを繰り返す。時間間隔208が終了した場合、314において、帯域幅推定器114は、時間ウィンドウ中にスレッド204の帯域幅を計算する。帯域幅推定器114は、スレッド制御プロセスにおいて使用されることになる利用可能な帯域幅の予測として計算を使用し得る。
[0037]一例では、1つの時間間隔208中に、スレッド#1 204-1によってダウンロードされたビット数が100Mbであり、スレッド#2 204-2によってダウンロードされたデータの量が200Mbであり、スレッド#3 204-3によってダウンロードされたデータの量が200Mbであり、時間間隔が5秒に設定される場合、推定帯域幅は、100+200+200=500/5秒=100Mbpsである。各スレッド204が帯域幅を個々に分析した場合、推定帯域幅は正確でないことがある。従来、帯域幅推定は、セグメントをダウンロードすることの最後に帯域幅を計算する。たとえば、図2を参照すると、スレッド#1 204-1は、時間間隔#3 208-3において100Mbpsの帯域幅推定値を計算することになり、スレッド#2 204-2は、時間間隔#2 208-2において150Mbpsの帯域幅推定値を計算することになる。帯域幅推定器114がスレッド#1 204-1のみを使用して時間間隔#3 208-3における全体的な帯域幅を計算する場合、推定帯域幅は、スレッド#1 204-1の100Mbpsのみを使用することによって低く推定されることになる。210-4の時間中に、スレッド#2 204-2は、データをダウンロードし、210-5において、スレッド#3 204-3もデータをダウンロードしたので、帯域幅は低く推定される。データのそれらの部分は、帯域幅に寄与し、これは、スレッド#1のための全体的な帯域幅に計算されない。たとえば、セグメント#5 202-5が125Mbpsでダウンロードされ、210-4における部分が75Mbpsである場合。また、セグメント#3 202-3をダウンロードするための200Mbpsの部分は、25Mbpsであり得る。スレッド#1 204-1と、スレッド#2 204-2と、スレッド#2 204-2との計算時間ウィンドウが整列されていないので、100Mbps+125Mbps+200Mbpsを使用して3つの帯域幅を加算することによって、帯域幅推定も不正確になり得る(低く推定されるかまたは高く推定され得る)。結果は、ビット毎秒測定では正確でない。
[0038]スレッド制御
[0039]スレッド制御エンジン116は、ビデオセグメントをダウンロードしているスレッド204を制御し得る。たとえば、スレッド制御エンジン116は、ビデオセグメントをダウンロードするために同時に使用すべきいくつかのスレッド204を決定し得る。クライアントデバイス102は、異なるコンテンツ配信ネットワーク106からまたは同じコンテンツ配信ネットワーク106からビデオセグメントをダウンロードするためにスレッド204を追加し得る。また、クライアントデバイス102は、異なるコンテンツ配信ネットワーク106からまたは同じコンテンツ配信ネットワーク106からスレッド204を除去し得る。
[0040]クライアントデバイス102は、異なる構成でコンテンツ配信ネットワーク106に接続され得る。図4および図5は、2つの異なる構成を示すが、他の構成が諒解され得る。図4は、いくつかの実施形態による、クライアントデバイス102が、単一のコンテンツ配信ネットワーク(CDN)エッジノード402などの単一のコンテンツ配信ネットワーク106との接続を開く構成を示す。図5は、いくつかの実施形態による、クライアントデバイス102が、異なるコンテンツ配信ネットワーク106のためにCDNエッジノード402などの複数のCDNエッジノード402との接続を開く構成を示す。しかしながら、クライアントデバイス102は、同じコンテンツ配信ネットワーク106のために複数の接続を開き、異なるコンテンツ配信ネットワーク106との複数の接続を組み合わせて開き得る。
[0041]図4では、CDNエッジノード402は、コンテンツ配信ネットワーク106に関連付けられ得る。スレッド#1 204-1は、第1の接続を開き、スレッド#2 204-2は、第2の接続を開き、スレッド#3 204-3は、第3の接続を開く。すべての接続は、CDNエッジノード402とクライアントデバイス102との間にある。CDNエッジノード402は、オリジンサーバ104などからビデオを受信し、クライアントデバイス102に要求されたビデオセグメントを与え得る。たとえば、スレッド#1 204-1は、セグメント#1 202-1と、セグメント#4 202-4と、セグメント#7 202-7とを要求し、受信する。スレッド#2 204-2は、セグメント#2 202-2と、セグメント#5 202-5と、セグメント#8 202-8とを要求し、受信する。最後に、スレッド#3 204-3は、セグメント#3 202-3と、セグメント#6 202-6と、セグメント#9 202-9とを要求し、受信する。クライアントデバイス102は、CDNエッジノード402とクライアントデバイス102との間のリンクを通して各セグメント202を受信し得る。リンクは、CDNエッジノード402とクライアントデバイス102との間の物理接続として定義され得る。異なるスレッド204の異なる接続のためのデータが異なる経路を物理的に通り得ることが可能であり得るが、接続はCDNエッジノード402とクライアントデバイス102との間に依然としてある。たいがい、CDNエッジノード402とクライアントデバイス102との間の接続は同じリンクを通る。しかしながら、異なるリンクが使用される場合、2つのリンクは多重経路として扱われ得、これは、異なるCDNエッジノード402への複数のリンクと同様であり得る。
[0042]図5では、スレッド#1 204-1は、CDNエッジノード#1 502-1への接続を有する。CDNエッジノード#1 502-1は、CDN#1 106-1に関連付けられ得る。スレッド#2 204-2は、CDNエッジノード#2 502-2への接続を含む。いくつかの実施形態では、CDNエッジノード#2 502-2は、コンテンツ配信ネットワーク#2 106-2に関連付けられる。しかしながら、CDNエッジノード#2 502-2は、CDNエッジノード#1 502-1として同じコンテンツ配信ネットワーク106に関連付けられ得る。スレッド#3 204-3は、CDNエッジノード#3 302-3との接続を含む。CDNエッジノード#2 502-2の場合と同様に、CDNエッジノード#3 302-3は、CDNエッジノード#1 502-1とCDNエッジノード#2 502-2との両方とは異なるコンテンツ配信ネットワーク106において見つけられ得る。しかしながら、CDNエッジノード#3 302-3は、CDNエッジノード#1 502-1またはCDNエッジノード#2 502-2のいずれかと同じコンテンツ配信ネットワーク106において見つけられ得る。この構成では、いくつかの実施形態では、クライアントデバイス102は、2つ以上のCDNエッジノード402との2つ以上の接続を開き得る。
[0043]異なるCDNエッジノード402を使用することの利点は、コンテンツ配信ネットワーク106がリンクを通してビデオを配信するために一定量のコンピューティングリソースを有し得ることであり得る。同じコンテンツ配信ネットワーク106および/またはCDNエッジノード402が接続を開くために使用される場合、そのコンテンツ配信ネットワーク106が提供することができる利用可能な帯域幅は制限され得る。しかしながら、接続ごとに別個のコンテンツ配信ネットワーク106および/またはCDNエッジノード402を使用することにより、各接続が異なる経路を使用することが可能になり得、これは、より多くの全体的な利用可能な帯域幅を提供し得る。
[0044]いくつかの実施形態では、ビデオ再生が最初に開始するとき、クライアントデバイス102は、単一のスレッド204を使用し得る。たとえば、複数のスレッド204が使用されているとき、クライアントデバイス102のコンピューティングリソースは、それらのスレッド204の間で共有されており、これは、個々のビデオセグメント202のためのダウンロード時間を遅延し得る。すなわち、同時ダウンロードを使用することは、単一のセグメントのためのダウンロード持続時間を増大させるが、全体的な帯域幅を増大させ得る(たとえば、時間期間中に複数のビデオセグメントのためのより多くのデータがダウンロードされる)。しかしながら、単一のスレッド204が使用される場合、その単一のスレッド204は、最初のビデオセグメント202をダウンロードするために利用可能であるコンピューティングリソースの完全使用を有し、ビデオのための開始時間を低減し得る。
[0045]設定された時間期間が経過した後、クライアントデバイス102は、全体的な帯域幅を増大させるために同時ダウンロードを使用し得る。スレッド制御エンジン116は、帯域幅を最適化するために使用すべきいくつかのスレッド204を決定し得、ここで、スレッド制御エンジン116は、帯域幅を増大させるためにリソースが利用可能であるときはスレッド204を追加し、増大した帯域幅をサポートするためにリソースが利用可能でないときはスレッド204を除去し得る。すなわち、ビデオセグメントが、所望の再生エクスペリエンスをサポートするのに(たとえば、再バッファリングを回避するのに)十分に高速に同時にダウンロードされていないので、スレッド制御エンジン116は、スレッドを除去し得る。しかしながら、ビデオ再生に影響を及ぼすことなしにスレッド204を追加するために利用可能なリソースがあるとき、スレッド制御116は、スレッドを追加し得る。
[0046]図6は、いくつかの実施形態による、スレッド204を制御するための方法の簡略フローチャート600を示す。説明されるプロセスは、ビデオ再生の開始後に実行され得、いくつかのスレッド204は、ビデオセグメント202をダウンロードしていることがある。たとえば、クライアントデバイス102は、いくつかのデータがバッファリングされるまで単一のスレッド204を使用してビデオセグメント202をダウンロードし得る。次いで、クライアントデバイス102は、いくつかのスレッド204を開き、ビデオセグメント202を同時にダウンロードするために接続を開き得る。その後、スレッド制御エンジン116は、いつ新しいスレッド204を追加すべきかまたはいつスレッド204を除去すべきかを決定し得る。いくつかの実施形態では、スレッド制御エンジン116は、新しいスレッドを追加することが、再生に不利に影響を及ぼすことなしに、再生中に、追加の帯域幅などの利点を与えるのかどうかをテストし得る。
[0047]602において、スレッド制御エンジン116は、新しいスレッド204を開始する。新しいスレッド204は、クライアントデバイス102上で動作している他のスレッド204によって現在使用されていない新しいコンテンツ配信ネットワーク106との接続を有し得る。しかしながら、新しいスレッド204は、現在使用されているコンテンツ配信ネットワーク106および/または現在使用されているCDNエッジノード402への接続を有し得る。また、新しいスレッド204は、現在使用されていないCDNエッジノード402上にあり得るが、別のスレッド204によって使用されている同じコンテンツ配信ネットワーク106上にある。現在使用されていないコンテンツ配信ネットワーク106と一緒にCDNエッジノード402を使用することの利点は、そのCDNエッジノード402またはそのコンテンツ配信ネットワーク106がクライアントデバイス102への接続のために利用可能なより多くのリソースを有し得るということである。
[0048]604において、スレッド制御エンジン116は、タイムスタンプT1を記録し、帯域幅B1を推定する。タイムスタンプT1は、新しいスレッド204のパフォーマンスをテストするために使用されることになるタイマーを開始する。帯域幅推定器114は、時間ウィンドウを使用して上記で説明されたように帯域幅を推定し得る。以下で説明するように、スレッド制御エンジン116は、新しいスレッド204のパフォーマンスを評価するために評価メトリックを決定するために帯域幅B1を使用する。
[0049]606において、クライアントデバイス102は、新しいスレッド204を使用してビデオセグメントをダウンロードする。1つのビデオセグメントについて説明したが、スレッド204を介して同時になど、複数のビデオセグメント202がダウンロードされ得る。
[0050]608において、スレッド制御エンジン116は、ビデオセグメント202が新しいスレッド204によって正常にダウンロードされるのかどうかを決定する。ダウンロードされない場合、610において、スレッド制御エンジン116は、新しいスレッド204を終了し得る。ビデオセグメント202をダウンロードすることにエラーがあり得るので、スレッド制御エンジン116は、新しいスレッド204を終了し得る。しかしながら、スレッド制御エンジン116は、新しいスレッド204を終了すべきかどうかを決定するために、新しいスレッド204を終了する前に失敗しなければならないことがあるビデオセグメント202の数のしきい値など、他のファクタを使用し得る。
[0051]612において、スレッド制御エンジン116は、タイムスタンプT2を記録する。614において、スレッド制御エンジン116は、時間しきい値を上回る時間が経過したのかどうかを決定する。たとえば、時間T2から時間T1を減算したものは、時間しきい値よりも大きくなければならない。時間しきい値は、スレッド制御エンジン116が、新しいスレッド204が正しく実行されているのかどうかを確かめるためのテストまで待つ時間量である。時間が経過していなかった場合、プロセスは、新しいスレッド204を使用してビデオセグメント202をダウンロードすることを続けることを繰り返す。
[0052]616において、時間が経過したとき、スレッド制御エンジン116は、帯域幅B2を計算する。帯域幅B2は、時間T2から最後に記録された時間T1までのものであり得る。帯域幅推定器114は、同時にダウンロードするスレッド204のための時間ウィンドウ内の帯域幅B2を推定し得る。
[0053]618において、スレッド制御エンジン116は、帯域幅B1と帯域幅B2とに基づいてスレッド評価測定値を計算する。異なるスレッド評価測定値が使用され得る。たとえば、スレッド評価測定値は、新しいスレッド204を追加するときのクライアントデバイス102に対する影響を評価し得る。いくつかの実施形態では、推定帯域幅の変化のメトリックがスレッド評価測定値として使用され得る。先入れスレッドによって寄与された推定帯域幅が推定帯域幅である場合、n番目のスレッドのためのスレッド評価測定値は、そのn番目のスレッドのための推定帯域幅中の利得によって測定され得る。たとえば、推定帯域幅の利得は、以下を使用して新しいスレッド204のために測定され得る。
[0054]上記の計算は、追加された新しいスレッド204をもつ推定帯域幅と追加された新しいスレッド204をもたない推定帯域幅との差を測定する。スレッド評価測定値は、新しいスレッド204を追加することに基づく改善率であり得る。
[0055]620において、スレッド制御エンジン116は、スレッド評価測定値をしきい値と比較することなどによってスレッド評価測定値がしきい値よりも大きいのかどうかを決定する。たとえば、改善がしきい値よりも大きい場合、新しいスレッド204を使用することはパフォーマンスを改善する。しかしながら、測定値がしきい値よりも大きくない場合、新しいスレッド204の使用は十分な改善を与えない。したがって、測定値がしきい値よりも大きい場合、622において、スレッド制御エンジン116は、新しいスレッド204を維持する。しかしながら、測定値がしきい値を上回らない場合、624において、スレッド制御エンジン116は、新しいスレッド204を終了する。
[0056]スレッド制御エンジン116はまた、スレッド204をいつ停止すべきかを決定し得る。たとえば、バッファ長がしきい値を下回るとき、スレッド制御エンジン116は、アクティブに動作するスレッド204を停止すべきかどうかを評価し得る。バッファ長がしきい値を下回るとき、バッファ中に十分なビデオが記憶されていないので再バッファリングが発生し得る危険があり得る。再バッファリングは望ましくなく、スレッド制御エンジン116は、再バッファリングの可能性を低減するために行動を起こし得る。たとえば、より少数のスレッド204がビデオセグメントを同時にダウンロードするために使用される場合、より少数のスレッド204は、クライアントデバイス102のコンピューティングリソースに対するより少ない競合により、それらのそれぞれのセグメントをより高速にダウンロードし得る。たとえば、セグメント#3が、ダウンロードされる必要がある次のセグメントである場合、スレッド制御エンジン116は、セグメント#3をダウンロードしているそのスレッド204を維持し得る。しかしながら、スレッド制御エンジン116は、停止するために他のスレッド204を選択し得る。たとえば、スレッド204が、セグメント#4およびセグメント#5の後にあるセグメント#6をダウンロードしている(またはダウンロードしようとしている)場合、スレッド制御エンジン116は、そのスレッド204を停止し得る。後で、別のスレッド204は、セグメント#6をダウンロードし得る。しかしながら、スレッド204を停止することによって、より多くのコンピューティングリソースがクライアントデバイス102上で利用可能になり得るので、クライアントデバイス102は、セグメント#3をより高速にダウンロードすることが可能であり得る。セグメント#3をより高速にダウンロードすることは、バッファ中のデータが枯渇する可能性が低いので、再バッファリングの発生の可能性を低減し得る。他の例では、スレッド制御エンジン116は、セグメント#3をダウンロードするスレッドを除くすべてのスレッド204を停止するか、または他のスレッド204の部分を停止し得る。バッファ長について説明したが、スレッド制御エンジン116は、スレッドを除去すべきかどうかを決定するためにバッファ長以外のファクタを使用し得る。たとえば、クライアントデバイス102上で使用されているコンピューティングリソースの割合が使用され得る。次いで、スレッド制御エンジン116は、クライアントデバイス102上でのコンピュータリソースの使用状況の割合がしきい値を満たす(たとえば、それを上回る)ときに使用されているいくつかのスレッド204を低減し得る。
[0057]結論
[0058]したがって、帯域幅を正確に測定することによって、クライアントデバイス102は、ビデオのビデオセグメントを同時にダウンロードするために使用すべきいくつかのスレッド204を決定することができる。クライアントデバイス102は、1つまたは複数のコンテンツ配信ネットワーク106との接続を通して帯域幅を最大化するためにスレッド204を動的に除去または追加するために帯域幅推定に基づくスレッド評価測定値を使用する。
[0059]例示的な実施形態
[0060]いくつかの実施形態では、方法であって、コンピューティングデバイスによって、複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、コンピューティングデバイスによって、時間ウィンドウ中に複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、時間ウィンドウ中に完全にダウンロードされるとは限らない、コンピューティングデバイスによって、受信されたデータに基づいて複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、コンピューティングデバイスによって、ビデオ配信メトリックに基づいて評価測定値を計算することと、コンピューティングデバイスによって、コンピューティングインスタンスの追加または終了を制御するために評価測定値を使用することとを備える方法。
[0061]いくつかの実施形態では、複数のビデオセグメントを受信することは、2つのコンピューティングインスタンスを使用してビデオ中の2つの連続ビデオセグメントを受信することを備える。
[0062]いくつかの実施形態では、複数のビデオセグメントを受信することは、複数のコンピューティングインスタンスの各々が、時間ウィンドウ中にビデオ中の一意のビデオセグメントを受信することを備える。
[0063]いくつかの実施形態では、複数のビデオセグメントを受信することは、時間ウィンドウ中に完全にダウンロードされるとは限らないビデオセグメントの一部分を受信することを備える。
[0064]いくつかの実施形態では、時間ウィンドウ中に複数のコンピューティングインスタンスのためのビデオ配信メトリックを測定することは、時間ウィンドウ中に第1のコンピューティングインスタンスによって受信されるデータの第1の量を測定することと、時間ウィンドウ中に第2のコンピューティングインスタンスによって受信されるデータの第2の量を測定することとを備える。
[0065]いくつかの実施形態では、データの第1の量とデータの第2の量とのうちの少なくとも1つは、時間ウィンドウ中に完全にダウンロードされるとは限らないビデオセグメント中に見出されるデータよりも少ない。
[0066]いくつかの実施形態では、時間ウィンドウ中に複数のコンピューティングインスタンスのためのビデオ配信メトリックを測定することは、第1の時間において、複数のコンピューティングインスタンスによって受信されたデータを測定することと、第2の時間において、複数のコンピューティングインスタンスによって受信されたデータを測定することを停止することと、ビデオ配信メトリックを測定するために第1の時間と第2の時間との間に測定されたデータを使用することとを備える。
[0067]いくつかの実施形態では、時間ウィンドウ中に複数のコンピューティングインスタンスのためのビデオ配信メトリックを測定することは、複数のコンピューティングインスタンス中のコンピューティングインスタンスのステータスを検出することと、コンピューティングインスタンスのステータスに基づいて時間ウィンドウ中のデータの測定を終了することとを備える。
[0068]いくつかの実施形態では、時間ウィンドウ中に複数の接続のためのビデオ配信メトリックを測定することは、複数のコンピューティングインスタンス中のコンピューティングインスタンスのステータスを検出することと、データをアクティブに受信するというステータスを有する複数の接続に基づいて時間ウィンドウ中にデータの測定を開始することとを備える。
[0069]いくつかの実施形態では、ビデオ配信メトリックに基づいて評価測定値を計算することは、追加のコンピューティングインスタンスを使用せずに第1の時間において第1のビデオ配信メトリックを推定することと、追加のコンピューティングインスタンスを使用する間に第2の時間において第2のビデオ配信メトリックを推定することと、第1のビデオ配信メトリックと第2のビデオ配信メトリックとに基づいて評価測定値を計算することとを備える。
[0070]いくつかの実施形態では、ビデオ配信メトリックに基づいて評価測定値を計算することは、第1の時間と第2の時間との間に第1のビデオ配信メトリックと第2のビデオ配信メトリックとに基づいてビデオ配信メトリックの変化を計算すること、ここにおいて、追加のスレッドは、第1の時間と第2の時間との間にデータを受信する、を備える。
[0071]いくつかの実施形態では、ビデオ配信メトリックに基づいて評価測定値を計算することは、しきい値と評価測定値を比較することと、評価測定値がしきい値を満たすとき、別のビデオセグメントのためのデータを受信するために追加のコンピューティングインスタンスを使用することと、評価測定値がしきい値を満たさないとき、別のビデオセグメントのためのデータを受信するために追加のコンピューティングインスタンスを使用しないこととを備える。
[0072]いくつかの実施形態では、複数のコンピューティングインスタンスは、複数のビデオセグメントを受信するために単一ノードに接続される。
[0073]いくつかの実施形態では、複数のコンピューティングインスタンスの各々は、複数のビデオセグメント中のそれぞれのビデオセグメントを受信するために異なるノードに接続される。
[0074]いくつかの実施形態では、複数のコンピューティングインスタンスのうちの少なくとも2つが、異なるコンテンツ配信ネットワークに接続される。
[0075]いくつかの実施形態では、非一時的コンピュータ可読記憶媒体であって、実行されたとき、複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、時間ウィンドウ中に複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、時間ウィンドウ中に完全にダウンロードされるとは限らない、受信されたデータに基づいて複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、ビデオ配信メトリックに基づいて評価測定値を計算することと、コンピューティングインスタンスの追加または終了を制御するために評価測定値を使用することとを行うように動作可能であるようにコンピュータシステムを制御する命令を含んでいる非一時的コンピュータ可読記憶媒体。
[0076]いくつかの実施形態では、時間ウィンドウ中に複数のコンピューティングインスタンスのためのビデオ配信メトリックを測定することは、時間ウィンドウ中に第1のコンピューティングインスタンスによって受信されるデータの第1の量を測定することと、時間ウィンドウ中に第2のコンピューティングインスタンスによって受信されるデータの第2の量を測定することとを備える。
[0077]いくつかの実施形態では、時間ウィンドウ中に複数のコンピューティングインスタンスのためのビデオ配信メトリックを測定することは、第1の時間において、複数のコンピューティングインスタンスによって受信されたデータを測定することと、第2の時間において、複数のコンピューティングインスタンスによって受信されたデータを測定することを停止することと、ビデオ配信メトリックを測定するために第1の時間と第2の時間との間に測定されたデータを使用することとを備える。
[0078]いくつかの実施形態では、ビデオ配信メトリックに基づいて評価測定値を計算することは、追加のコンピューティングインスタンスを使用せずに第1の時間において第1のビデオ配信メトリックを推定することと、追加のコンピューティングインスタンスを使用する間に第2の時間において第2のビデオ配信メトリックを推定することと、第1のビデオ配信メトリックと第2のビデオ配信メトリックとに基づいて評価測定値を計算することとを備える。
[0079]いくつかの実施形態では、装置であって、1つまたは複数のコンピュータプロセッサと、非一時的コンピュータ可読記憶媒体とを備え、非一時的コンピュータ可読記憶媒体は、実行されたとき、複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、時間ウィンドウ中に複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、時間ウィンドウ中に完全にダウンロードされるとは限らない、受信されたデータに基づいて複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、ビデオ配信メトリックに基づいて評価測定値を計算することと、コンピューティングインスタンスの追加または終了を制御するために評価測定値を使用することとを行うように動作可能であるように1つまたは複数のコンピュータプロセッサを制御する命令を備える、装置。
[0080]システム
[0081]本明細書で開示する特徴および態様は、図7に示されているように、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信しているビデオストリーミングシステム700に関連して実装され得る。ビデオストリーミングシステム700の態様は、単に、本開示に従って準備されたコンテンツの分配および配信を可能にするための適用例の一例を与えるために説明される。本技術は、ストリーミングビデオ適用例に限定されず、他の適用例および配信機構に適応され得ることを諒解されたい。
[0082]一実施形態では、媒体プログラムプロバイダは、媒体プログラムのライブラリを含み得る。たとえば、メディアプログラムは、アグリゲートされ得、サイト(たとえば、ウェブサイト)、アプリケーション、またはブラウザを通して提供され得る。ユーザは、媒体プログラムプロバイダのサイトまたはアプリケーションにアクセスし、媒体プログラムを要求することができる。ユーザは、メディアプログラムプロバイダによって提供されるメディアプログラムのみを要求することに限定され得る。
[0083]システム700では、ビデオデータは、ビデオコンテンツサーバ702への入力として使用するために1つまたは複数のソースから、たとえば、ビデオソース710から取得され得る。入力ビデオデータは、任意の好適なデジタルフォーマット、たとえば、ムービングピクチャエクスパーツグループ(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/高度ビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、または他のフォーマットで未加工のまたは編集されたフレームベースのビデオデータを備え得る。一代替では、ビデオは、非デジタルフォーマットで与えられ、スキャナおよび/またはトランスコーダを使用してデジタルフォーマットに変換され得る。入力ビデオデータは、様々なタイプのビデオクリップまたはプログラム、たとえば、テレビエピソード、映画、および消費者に関係のある主要コンテンツとして制作される他のコンテンツを備え得る。ビデオデータは、オーディオをも含み得、またはオーディオのみが使用され得る。
[0084]ビデオストリーミングシステム700は、1つまたは複数のコンピュータに分散された1つもしくは複数のコンピュータサーバまたはモジュール702、704および/もしくは707を含み得る。各サーバ702、704、707は、1つまたは複数のデータストア709、たとえば、データベース、インデックス、ファイル、または他のデータ構造を含み得るかまたはそれに動作可能に結合され得る。ビデオコンテンツサーバ702は、様々なビデオセグメントのデータストア(図示せず)にアクセスし得る。ビデオコンテンツサーバ702は、クライアントデバイスと通信するユーザインターフェースコントローラの指示に従ってビデオセグメントをサービスし得る。本明細書で使用するビデオセグメントは、テレビエピソード、映画、記録されたライブパフォーマンス、または他のビデオコンテンツを閲覧するためにストリーミングビデオセッション中に使用され得るなど、フレームベースのビデオデータの明確な部分を指す。
[0085]いくつかの実施形態では、ビデオ広告サーバ704は、特定の広告主またはメッセージのための広告として構成された比較的短いビデオ(たとえば、10秒、30秒、または60秒のビデオ広告)のデータストアにアクセスし得る。広告は、何らかの支払いと引き換えに広告主のために与えられ得るか、またはシステム700のための販売促進メッセージ、公共サービスメッセージ、もしくは何らかの他の情報を備え得る。ビデオ広告サーバ704は、ユーザインターフェースコントローラ(図示せず)の指示に従ってビデオ広告セグメントをサービスし得る。
[0086]ビデオストリーミングシステム700はまた、ビデオ配信システム108を含み得る。
[0087]ビデオストリーミングシステム700は、ストリーミングビデオセグメントにビデオコンテンツとビデオ広告とを統合する統合およびストリーミング構成要素707をさらに含み得る。たとえば、ストリーミング構成要素707は、コンテンツサーバまたはストリーミングメディアサーバであり得る。コントローラ(図示せず)は、任意の好適なアルゴリズムまたはプロセスに基づいてストリーミングビデオ中の広告の選択または構成を決定し得る。ビデオストリーミングシステム700は、図7に示されていない他のモジュールまたはユニット、たとえば、管理サーバ、商業サーバ、ネットワークインフラストラクチャ、広告選択エンジンなどを含み得る。
[0088]ビデオストリーミングシステム700は、データ通信ネットワーク712に接続し得る。データ通信ネットワーク712は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、たとえば、インターネット、電話網、ワイヤレスセルラー電気通信ネットワーク(WCS)714、またはこれらのもしくは同様のネットワークの何らかの組合せを備え得る。
[0089]1つまたは複数のクライアントデバイス720は、データ通信ネットワーク712、ワイヤレスセルラー電気通信ネットワーク714、および/または別のネットワークを介してビデオストリーミングシステム700と通信していることがある。そのようなクライアントデバイスは、たとえば、LANのためにルータ718を介して、ワイヤレスセルラー電気通信ネットワーク714のために基地局717を介して、または何らかの他の接続を介して1つまたは複数のラップトップコンピュータ720-1、デスクトップコンピュータ720-2、「スマート」モバイルフォン720-3、タブレットデバイス720-4、ネットワーク対応のテレビジョン720-5、またはそれらの組合せを含み得る。動作中、そのようなクライアントデバイス720は、ユーザ入力デバイスから受信されたユーザ入力または他の入力に応答してシステム700にデータまたは命令を送信および受信し得る。それに応答して、システム700は、メディアプログラムの選択に応答してデータストア709からクライアントデバイス720にビデオセグメントとメタデータとをサービスし得る。クライアントデバイス720は、ディスプレイ画面、プロジェクタ、または他のビデオ出力デバイスを使用してメディアプレーヤ中にストリーミングビデオセグメントからのビデオコンテンツを出力し、ビデオコンテンツと対話するためのユーザ入力を受信し得る。
[0090]オーディオビデオデータの分配は、様々な方法、たとえば、ストリーミングを使用してコンピュータネットワーク、電気通信ネットワーク、およびそのようなネットワークの組合せを介してストリーミング構成要素707からリモートクライアントデバイスに実装され得る。ストリーミング中で、コンテンツサーバは、クライアントデバイス上で少なくとも部分的に動作するメディアプレーヤ構成要素にオーディオビデオデータを連続的にストリーミングし、これは、サーバからストリーミングデータを受信することと同時にオーディオビデオデータを再生し得る。ストリーミングについて説明したが、他の方法の配信が使用されてもよい。メディアプレーヤ構成要素は、コンテンツプロバイダからデータの最初の部分を受信した直後にビデオデータの再生を開始し得る。従来のストリーミング技法は、エンドユーザのセットにデータのストリームを配信する単一のプロバイダを使用する。大量のオーディエンスに単一のストリームを配信するために高い帯域幅と処理能力とが必要とされ得、エンドユーザの数が増大するにつれて、プロバイダの要求される帯域幅が増大し得る。
[0091]ストリーミングメディアは、オンデマンドでまたはライブで配信され得る。ストリーミングは、ファイル内の任意のポイントにおける即時再生を可能にする。エンドユーザは、再生を開始するためにまたはメディアファイル中の任意のポイントに再生を変更するためにメディアファイルを通してスキップし得る。したがって、エンドユーザは、ファイルを漸進的にダウンロードするのを待つ必要がない。一般に、ストリーミングメディアは、ビデオファイルについての要求を受け入れ、それらのファイルのフォーマット、帯域幅および構造に関する情報を用いて、それを再生するために必要なレートでビデオを再生するのにちょうど必要なデータの量を配信する特殊なデバイスを介して高帯域幅能力を有する数個の専用のサーバから配信される。ストリーミングメディアサーバはまた、宛先クライアント上のメディアプレーヤの送信帯域幅および能力を考慮し得る。ストリーミング構成要素707は、ビデオが再生されるときに変化するネットワーク状態に合うように調整するために制御メッセージとデータメッセージとを使用してクライアントデバイス720と通信し得る。これらの制御メッセージは、クライアントにおいて早送り、早戻し、一時停止、またはファイルの特定の部分への探索などの制御機能を可能にするためのコマンドを含むことができる。
[0092]ストリーミング構成要素707は、必要なときにのみ、必要とされるレートでビデオデータを送信するので、サービスされるいくつかのストリームの正確な制御が維持され得る。閲覧者は、低データレートの送信媒体を介して高データレートのビデオを閲覧することができないことになる。しかしながら、ストリーミングメディアサーバは、(1)ビデオファイルへのランダムアクセスをユーザに与え、(2)誰が何のビデオプログラムを閲覧しており、どのくらいの時間の間それらが閲覧されたのかの監視を可能にし、(3)閲覧エクスペリエンスをサポートするために必要とされるデータの量のみが送信されるので送信帯域幅をより効率的に使用し、(4)ビデオファイルは閲覧者のコンピュータ中で記憶されずに、メディアプレーヤによって破棄され、したがって、コンテンツのさらなる制御が可能になる。
[0093]ストリーミング構成要素707は、ハイパーテキストトランスファープロトコル(HTTP)およびリアルタイムメッセージングプロトコル(RTMP)などのTCPベースのプロトコルを使用し得る。ストリーミング構成要素707はまた、ライブウェブキャストを配信することができ、マルチキャストすることができ、これにより、2つ以上のクライアントを単一のストリームに同調させることが可能になり、このようにして、帯域幅を節約する。ストリーミングメディアプレーヤは、媒体プログラム中の任意のポイントへのランダムアクセスを与えるためにビデオ全体をバッファリングすることに依拠しないことがある。代わりに、これは、メディアプレーヤからストリーミングメディアサーバに送信される制御メッセージを使用して達成される。ストリーミングのために使用される他のプロトコルは、HTTPライブストリーミング(HLS)または動的適応型HTTPストリーミング(DASH)である。HLSおよびDASHプロトコルは、一般に1つまたは複数のコンテンツ配信ネットワーク(CDN)から様々なビットレートで利用可能にされる小さいセグメントのプレイリストを介してHTTPを介してビデオを配信する。これにより、メディアプレーヤは、セグメントごとにビットレートとコンテンツソースとの両方を切り替えることが可能になる。切替えは、ビデオの再生中に発生し得るネットワーク帯域幅分散およびインフラストラクチャ障害を補償するのを助ける。
[0094]ストリーミングによるビデオコンテンツの配信は、様々なモデルの下で達成され得る。1つのモデルでは、ユーザは、ビデオプログラムの閲覧の代金を支払い、たとえば、媒体プログラムのライブラリもしくは制限付き媒体プログラムの部分へのアクセスまたはペイパーヴュー方式のサービスを使用することのために料金を支払う。ブロードキャストテレビジョンによってそれの始まりのすぐ後に広く採用された別のモデルでは、スポンサは、プログラムの提示中にまたはそれに隣接して広告を提示する権利と引き換えにメディアプログラムの提示の代金を支払う。いくつかのモデルでは、広告は、ビデオプログラム中の所定の時間に挿入され、この時間は、「広告スロット」または「広告ブレーク」と呼ばれることがある。ストリーミングビデオでは、メディアプレーヤは、クライアントデバイスが、指定された広告スロット中に所定の広告をやはり再生することなしにビデオを再生することができないように構成され得る。
[0095]図8を参照すると、ビデオコンテンツと広告とを閲覧するための装置800の線図が示されている。選択された実施形態では、装置800は、プロセッサメモリ804に動作可能に結合されたプロセッサ(CPU)802を含み得、これは、プロセッサ802が実行するためのバイナリコード化機能モジュールを保持する。そのような機能モジュールは、入出力およびメモリアクセス、ウェブページを表示するブラウザ808、ビデオを再生するためのメディアプレーヤ810などのシステム機能を扱うためのオペレーティングシステム806を含み得る。モジュールは、アプリケーション112をさらに含み得る。メモリ804は、図8に示されていない追加のモジュール、たとえば、本明細書の他の場所に記載されている他の動作を実行するためのモジュールを保持し得る。
[0096]バス814または他の通信構成要素は、装置800内での情報の通信をサポートし得る。プロセッサ802は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって本明細書で開示する特徴および態様による特定のタスクを実行するように構成されるかまたは動作可能な特殊なまたは専用のマイクロプロセッサであり得る。プロセッサメモリ804(たとえば、ランダムアクセスメモリ(RAM)または他の動的ストレージデバイス)は、バス814に接続されるかまたはプロセッサ802に直接接続され、情報とプロセッサ802によって実行される命令とを記憶し得る。メモリ804はまた、そのような命令の実行中に一時変数または他の中間情報を記憶し得る。
[0097]ストレージデバイス824中のコンピュータ可読媒体は、バス814に接続され、プロセッサ802のための静的情報と命令とを記憶し得、たとえば、ストレージデバイス(CRM)824は、装置800が電源切断されるときにモジュール806、808、810および812を記憶し得、モジュールは、装置800が電源投入されるときにプロセッサメモリ804にそこからロードされ得る。ストレージデバイス824は、情報、命令、またはそれらの何らかの組合せ、たとえば、プロセッサ802によって実行されたとき、装置800に、本明細書で説明される方法の1つまたは複数の動作を実行するように構成させるかまたは動作可能にさせる命令を保持する非一時的コンピュータ可読記憶媒体を含み得る。
[0098]通信インターフェース816はまた、バス814に接続され得る。通信インターフェース816は、任意選択でルータ/モデム826およびワイヤードまたはワイヤレス接続を介して装置800と1つまたは複数の外部デバイス、たとえば、ストリーミングシステム700との間に二方向データ通信を与えるかまたはそれをサポートし得る。代替または追加として、装置800は、装置800がワイヤレス通信システムのための基地局またはルータ/モデム826とワイヤレス通信し得るアンテナ829に接続されたトランシーバ818を含み得る。代替として、装置800は、ローカルエリアネットワーク、バーチャルプライベートネットワーク、または他のネットワークを介してビデオストリーミングシステム700と通信し得る。別の代替では、装置800は、システム700のモジュールまたは構成要素として組み込まれ、バス814を介してまたは何らかの他のモダリティによって他の構成要素と通信し得る。
[0099]装置800は、ディスプレイユニット828に(たとえば、バス814とグラフィックス処理ユニット820とを介して)接続され得る。ディスプレイ828は、装置800のオペレータに情報を表示するための任意の好適な構成を含み得る。たとえば、ディスプレイ828は、画像表示中に装置800のユーザに情報を提示するために液晶ディスプレイ(LCD)、タッチスクリーンLCD(たとえば、静電容量式ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、または他のディスプレイデバイスを含むかまたは利用し得る。
[0100]1つまたは複数の入力デバイス830(たとえば、英数字キーボード、マイクロフォン、キーパッド、遠隔制御装置、ゲームコントローラ、カメラ、またはカメラアレイ)は、装置800に情報およびコマンドを通信するためにユーザ入力ポート822を介してバス814に接続され得る。選択された実施形態では、入力デバイス830は、カーソルの配置を介して制御を与え得るかまたはそれをサポートし得る。ポインティングデバイスとも呼ばれるそのようなカーソル制御デバイスは、物理的な移動を受信または追跡することとカーソルの移動を示す電気信号に移動を変換することとを行うためのマウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キーまたは他のデバイスとして構成され得る。カーソル制御デバイスは、たとえば、タッチスクリーンを使用してディスプレイユニット828に組み込まれ得る。カーソル制御デバイスは、プロセッサ802に方向情報とコマンド選択とを通信し、ディスプレイ828上でのカーソル移動を制御し得る。カーソル制御デバイスは、たとえば、デバイスが平面または3次元空間でのカーソル位置を指定することを可能にする2つ以上の自由度を有し得る。
[0101]いくつかの実施形態は、命令実行システム、装置、システム、または機械が使用するためのまたはそれとともに非一時的コンピュータ可読記憶媒体中に実装され得る。コンピュータ可読記憶媒体は、いくつかの実施形態によって説明される方法を実行するようにコンピュータシステムを制御するための命令を含んでいる。コンピュータシステムは、1つまたは複数のコンピューティングデバイスを含み得る。命令は、1つまたは複数のコンピュータプロセッサによって実行されたとき、いくつかの実施形態において説明されたことを実行するように構成されるかまたは動作可能であり得る。
[0102]本明細書の説明および添付の特許請求の範囲にわたって使用される「1つの(a)」、「1つの(an)」および「その(the)」は、コンテキストについて別段の明確な指示がない限り、複数の言及を含む。また、本明細書の説明および添付の特許請求の範囲にわたって使用される「中に(in)」の意味は、コンテキストについて別段の明確な指示がない限り「中に(in)」と「上に(on)」とを含む。
[0103]上記の説明は、いくつかの実施形態の態様がどのように実装され得るのかの例とともに様々な実施形態を示す。上記の例と実施形態とは、唯一の実施形態であると考えられてはならず、添付の特許請求の範囲によって定義されるいくつかの実施形態の柔軟性と利点とを示すために提示される。上記の開示と添付の特許請求の範囲とに基づいて、他の構成、実施形態、実装形態、および等価物が、特許請求の範囲によって定義される本明細書の範囲から逸脱することなく採用され得る。
以下に、出願当初の特許請求の範囲に記載の事項を、そのまま、付記しておく。
[C1]
方法であって、
コンピューティングデバイスによって、複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、
前記コンピューティングデバイスによって、時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない、
前記コンピューティングデバイスによって、受信された前記データに基づいて前記複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、
前記コンピューティングデバイスによって、前記ビデオ配信メトリックに基づいて評価測定値を計算することと、
前記コンピューティングデバイスによって、コンピューティングインスタンスの追加または終了を制御するために前記評価測定値を使用することと
を備える方法。
[C2]
前記複数のビデオセグメントを受信することは、
2つのコンピューティングインスタンスを使用して前記ビデオ中の2つの連続ビデオセグメントを受信すること
を備える、C1に記載の方法。
[C3]
前記複数のビデオセグメントを受信することは、
前記複数のコンピューティングインスタンスの各々が、前記時間ウィンドウ中に前記ビデオ中の一意のビデオセグメントを受信すること
を備える、C1に記載の方法。
[C4]
前記複数のビデオセグメントを受信することは、
前記時間ウィンドウ中に完全にダウンロードされるとは限らない前記ビデオセグメントの一部分を受信すること
を備える、C1に記載の方法。
[C5]
前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのための前記ビデオ配信メトリックを測定することは、
前記時間ウィンドウ中に第1のコンピューティングインスタンスによって受信されるデータの第1の量を測定することと、
前記時間ウィンドウ中に第2のコンピューティングインスタンスによって受信されるデータの第2の量を測定することと
を備える、C1に記載の方法。
[C6]
データの前記第1の量とデータの前記第2の量とのうちの少なくとも1つは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない前記ビデオセグメント中に見出されるデータよりも少ない、C5に記載の方法。
[C7]
前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのための前記ビデオ配信メトリックを測定することは、
第1の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することと、
第2の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することを停止することと、
前記ビデオ配信メトリックを測定するために前記第1の時間と前記第2の時間との間に測定された前記データを使用することと
を備える、C1に記載の方法。
[C8]
前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのための前記ビデオ配信メトリックを測定することは、
前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのステータスを検出することと、
前記コンピューティングインスタンスの前記ステータスに基づいて前記時間ウィンドウ中のデータの前記測定を終了することと
を備える、C1に記載の方法。
[C9]
前記時間ウィンドウ中に前記複数の接続のための前記ビデオ配信メトリックを測定することは、
前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのステータスを検出することと、
データをアクティブに受信するという前記ステータスを有する複数の接続に基づいて前記時間ウィンドウ中にデータの前記測定を開始することと
を備える、C1に記載の方法。
[C10]
前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
追加のコンピューティングインスタンスを使用せずに第1の時間において第1のビデオ配信メトリックを推定することと、
前記追加のコンピューティングインスタンスを使用する間に第2の時間において第2のビデオ配信メトリックを推定することと、
前記第1のビデオ配信メトリックと前記第2のビデオ配信メトリックとに基づいて前記評価測定値を計算することと
を備える、C1に記載の方法。
[C11]
前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
前記第1の時間と前記第2の時間との間に前記第1のビデオ配信メトリックと前記第2のビデオ配信メトリックとに基づいてビデオ配信メトリックの変化を計算すること、ここにおいて、追加のスレッドは、前記第1の時間と前記第2の時間との間にデータを受信する、
を備える、C10に記載の方法。
[C12]
前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
しきい値と前記評価測定値を比較することと、
前記評価測定値が前記しきい値を満たすとき、別のビデオセグメントのためのデータを受信するために前記追加のコンピューティングインスタンスを使用することと、
前記評価測定値が前記しきい値を満たさないとき、前記別のビデオセグメントのためのデータを受信するために前記追加のコンピューティングインスタンスを使用しないことと
を備える、C1に記載の方法。
[C13]
前記複数のコンピューティングインスタンスは、前記複数のビデオセグメントを受信するために単一ノードに接続される、C1に記載の方法。
[C14]
前記複数のコンピューティングインスタンスの各々は、前記複数のビデオセグメント中のそれぞれのビデオセグメントを受信するために異なるノードに接続される、C1に記載の方法。
[C15]
前記複数のコンピューティングインスタンスのうちの少なくとも2つが、異なるコンテンツ配信ネットワークに接続される、C1に記載の方法。
[C16]
非一時的コンピュータ可読記憶媒体であって、実行されたとき、
複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、
時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない、
受信された前記データに基づいて前記複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、
前記ビデオ配信メトリックに基づいて評価測定値を計算することと、
コンピューティングインスタンスの追加または終了を制御するために前記評価測定値を使用することと
を行うように動作可能であるようにコンピュータシステムを制御する命令を含んでいる非一時的コンピュータ可読記憶媒体。
[C17]
前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのための前記ビデオ配信メトリックを測定することは、
前記時間ウィンドウ中に第1のコンピューティングインスタンスによって受信されるデータの第1の量を測定することと、
前記時間ウィンドウ中に第2のコンピューティングインスタンスによって受信されるデータの第2の量を測定することと
を備える、C16に記載の非一時的コンピュータ可読記憶媒体。
[C18]
前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのための前記ビデオ配信メトリックを測定することは、
第1の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することと、
第2の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することを停止することと、
前記ビデオ配信メトリックを測定するために前記第1の時間と前記第2の時間との間に測定された前記データを使用することと
を備える、C16に記載の非一時的コンピュータ可読記憶媒体。
[C19]
前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
追加のコンピューティングインスタンスを使用せずに第1の時間において第1のビデオ配信メトリックを推定することと、
前記追加のコンピューティングインスタンスを使用する間に第2の時間において第2のビデオ配信メトリックを推定することと、
前記第1のビデオ配信メトリックと前記第2のビデオ配信メトリックとに基づいて前記評価測定値を計算することと
を備える、C16に記載の非一時的コンピュータ可読記憶媒体。
[C20]
装置であって、
1つまたは複数のコンピュータプロセッサと、
非一時的コンピュータ可読記憶媒体と
を備え、前記非一時的コンピュータ可読記憶媒体は、実行されたとき、
複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、
時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない、
受信された前記データに基づいて前記複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、
前記ビデオ配信メトリックに基づいて評価測定値を計算することと、
コンピューティングインスタンスの追加または終了を制御するために前記評価測定値を使用することと
を行うように動作可能であるように前記1つまたは複数のコンピュータプロセッサを制御する命令を備える、装置。



Claims (20)

  1. 方法であって、
    コンピューティングデバイスによって、複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、
    前記コンピューティングデバイスによって、時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない、
    前記コンピューティングデバイスによって、受信された前記データに基づいて前記複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、
    前記コンピューティングデバイスによって、前記ビデオ配信メトリックに基づいて評価測定値を計算することと、
    前記コンピューティングデバイスによって、前記コンピューティングデバイス上で実行するコンピューティングインスタンスの追加またはコンピューティングインスタンスの終了を制御するために前記評価測定値を使用することと、ここにおいて、前記追加は、ビデオセグメントを同時に受信する新しい複数のコンピューティングインスタンスを形成する、
    を備える方法。
  2. 前記複数のビデオセグメントを受信することは、
    2つのコンピューティングインスタンスを使用して前記ビデオ中の2つの連続ビデオセグメントを受信すること
    を備える、請求項1に記載の方法。
  3. 前記複数のビデオセグメントを受信することは、
    前記複数のコンピューティングインスタンスの各々が、前記時間ウィンドウ中に前記ビデオ中の一意のビデオセグメントを受信すること
    を備える、請求項1に記載の方法。
  4. 前記複数のビデオセグメントを受信することは、
    前記時間ウィンドウ中に完全にダウンロードされるとは限らない前記ビデオセグメントの一部分を受信すること
    を備える、請求項1に記載の方法。
  5. 前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信された前記データを測定することは、
    前記時間ウィンドウ中に第1のコンピューティングインスタンスによって受信されるデータの第1の量を測定することと、
    前記時間ウィンドウ中に第2のコンピューティングインスタンスによって受信されるデータの第2の量を測定することと
    を備える、請求項1に記載の方法。
  6. データの前記第1の量とデータの前記第2の量とのうちの少なくとも1つは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない前記ビデオセグメント中に見出されるデータよりも少ない、請求項5に記載の方法。
  7. 前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信された前記データを測定することは、
    第1の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することと、
    第2の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することを停止することと、
    前記ビデオ配信メトリックを測定するために前記第1の時間と前記第2の時間との間に測定された前記データを使用することと
    を備える、請求項1に記載の方法。
  8. 前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信された前記データを測定することは、
    前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのステータスを検出することと、
    前記コンピューティングインスタンスの前記ステータスに基づいて前記時間ウィンドウ中のデータの前記測定を終了することと
    を備える、請求項1に記載の方法。
  9. 前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信された前記データを測定することは、
    前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのステータスを検出することと、
    データをアクティブに受信するという前記ステータスを有する前記複数のコンピューティングインスタンスための複数の接続に基づいて前記時間ウィンドウ中にデータの前記測定を開始することと
    を備える、請求項1に記載の方法。
  10. 前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
    追加のコンピューティングインスタンスを使用せずに第1の時間において第1のビデオ配信メトリックを推定することと、
    前記追加のコンピューティングインスタンスを使用する間に第2の時間において第2のビデオ配信メトリックを推定することと、
    前記第1のビデオ配信メトリックと前記第2のビデオ配信メトリックとに基づいて前記評価測定値を計算することと
    を備える、請求項1に記載の方法。
  11. 前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
    前記第1の時間と前記第2の時間との間に前記第1のビデオ配信メトリックと前記第2のビデオ配信メトリックとに基づいてビデオ配信メトリックの変化を計算すること、ここにおいて、追加のコンピューティングインスタンスは、前記第1の時間と前記第2の時間との間にデータを受信する、
    を備える、請求項10に記載の方法。
  12. 前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
    しきい値と前記評価測定値を比較することと、
    前記評価測定値が前記しきい値を満たすとき、別のビデオセグメントのためのデータを受信するために前記追加のコンピューティングインスタンスを使用することと、
    前記評価測定値が前記しきい値を満たさないとき、前記別のビデオセグメントのためのデータを受信するために前記追加のコンピューティングインスタンスを使用しないことと
    を備える、請求項1に記載の方法。
  13. 前記複数のコンピューティングインスタンスは、前記複数のビデオセグメントを受信するために単一ノードに接続される、請求項1に記載の方法。
  14. 前記複数のコンピューティングインスタンスの各々は、前記複数のビデオセグメント中のそれぞれのビデオセグメントを受信するために異なるノードに接続される、請求項1に記載の方法。
  15. 前記複数のコンピューティングインスタンスのうちの少なくとも2つが、異なるコンテンツ配信ネットワークに接続される、請求項1に記載の方法。
  16. 非一時的コンピュータ可読記憶媒体であって、実行されたとき、
    複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、
    時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない、
    受信された前記データに基づいて前記複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、
    前記ビデオ配信メトリックに基づいて評価測定値を計算することと、
    コンピュータシステム上で実行するコンピューティングインスタンスの追加またはコンピューティングインスタンスの終了を制御するために前記評価測定値を使用することと、ここにおいて、前記追加は、ビデオセグメントを同時に受信する新しい複数のコンピューティングインスタンスを形成する、
    を行うように動作可能であるように前記コンピュータシステムを制御する命令を含んでいる非一時的コンピュータ可読記憶媒体。
  17. 前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信された前記データを測定することは、
    前記時間ウィンドウ中に第1のコンピューティングインスタンスによって受信されるデータの第1の量を測定することと、
    前記時間ウィンドウ中に第2のコンピューティングインスタンスによって受信されるデータの第2の量を測定することと
    を備える、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信された前記データを測定することは、
    第1の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することと、
    第2の時間において、前記複数のコンピューティングインスタンスによって受信されたデータを測定することを停止することと、
    前記ビデオ配信メトリックを測定するために前記第1の時間と前記第2の時間との間に測定された前記データを使用することと
    を備える、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記ビデオ配信メトリックに基づいて前記評価測定値を計算することは、
    追加のコンピューティングインスタンスを使用せずに第1の時間において第1のビデオ配信メトリックを推定することと、
    前記追加のコンピューティングインスタンスを使用する間に第2の時間において第2のビデオ配信メトリックを推定することと、
    前記第1のビデオ配信メトリックと前記第2のビデオ配信メトリックとに基づいて前記評価測定値を計算することと
    を備える、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  20. 装置であって、
    1つまたは複数のコンピュータプロセッサと、
    非一時的コンピュータ可読記憶媒体と
    を備え、前記非一時的コンピュータ可読記憶媒体は、実行されたとき、
    複数のコンピューティングインスタンスを使用してビデオの複数のビデオセグメントを受信することと、
    時間ウィンドウ中に前記複数のコンピューティングインスタンスのために受信されたデータを測定することと、ここにおいて、前記複数のコンピューティングインスタンス中のコンピューティングインスタンスのためのビデオセグメントは、前記時間ウィンドウ中に完全にダウンロードされるとは限らない、
    受信された前記データに基づいて前記複数のコンピューティングインスタンスのためのビデオ配信メトリックを計算することと、
    前記ビデオ配信メトリックに基づいて評価測定値を計算することと、
    前記装置上で実行するコンピューティングインスタンスの追加またはコンピューティングインスタンスの終了を制御するために前記評価測定値を使用することと、ここにおいて、前記追加は、ビデオセグメントを同時に受信する新しい複数のコンピューティングインスタンスを形成する、
    を行うように動作可能であるように前記1つまたは複数のコンピュータプロセッサを制御する命令を備える、装置。
JP2021196163A 2020-12-03 2021-12-02 ビデオの同時ダウンロード Active JP7374975B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/110,658 US11570496B2 (en) 2020-12-03 2020-12-03 Concurrent downloading of video
US17/110,658 2020-12-03

Publications (2)

Publication Number Publication Date
JP2022089183A JP2022089183A (ja) 2022-06-15
JP7374975B2 true JP7374975B2 (ja) 2023-11-07

Family

ID=78821625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021196163A Active JP7374975B2 (ja) 2020-12-03 2021-12-02 ビデオの同時ダウンロード

Country Status (5)

Country Link
US (2) US11570496B2 (ja)
EP (1) EP4009643A1 (ja)
JP (1) JP7374975B2 (ja)
KR (1) KR20220078509A (ja)
BR (1) BR102021023880A2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013520119A (ja) 2010-02-19 2013-05-30 トムソン ライセンシング アダプティブ・ストリーミングのマルチパス配信
US20130297731A1 (en) 2012-05-04 2013-11-07 The Hong Kong University Of Science And Technology Content distribution over a network
JP2016195364A (ja) 2015-04-01 2016-11-17 富士通株式会社 無線通信方法、プログラム及び無線通信装置
JP2016197790A (ja) 2015-04-02 2016-11-24 富士通株式会社 無線通信装置、無線通信プログラムおよび無線通信方法
JP2017050681A (ja) 2015-09-01 2017-03-09 富士通株式会社 通信方法、通信装置及び通信プログラム
JP2017050688A (ja) 2015-09-01 2017-03-09 富士通株式会社 通信方法、通信装置及び通信プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783773B2 (en) * 2006-07-24 2010-08-24 Microsoft Corporation Glitch-free media streaming
US20110153605A1 (en) 2009-12-23 2011-06-23 Fred Silverman System and method for aggregating and curating media content
US9483785B1 (en) * 2012-05-07 2016-11-01 Amazon Technologies, Inc. Utilizing excess resource capacity for transcoding media
US9674100B2 (en) * 2013-11-11 2017-06-06 Hulu, LLC Dynamic adjustment to multiple bitrate algorithm based on buffer length
US10397051B1 (en) * 2014-06-20 2019-08-27 Amazon Technologies, Inc. Configuration and testing of network-based service platform resources using a service platform specific language
US9860569B1 (en) * 2015-10-05 2018-01-02 Amazon Technologies, Inc. Video file processing
WO2017210252A1 (en) * 2016-05-31 2017-12-07 The Trustees Of Princeton University System and method for improving streaming video via better buffer management
CN106998349A (zh) 2016-10-18 2017-08-01 深圳大宇无限科技有限公司 多线程下载方法和装置
US11627350B2 (en) * 2016-12-30 2023-04-11 Tivo Solutions Inc. Advanced trick-play modes for streaming video
CN108632541B (zh) 2017-03-20 2021-07-20 杭州海康威视数字技术股份有限公司 一种多视频片段合并方法及装置
US10791366B2 (en) * 2017-11-30 2020-09-29 Hulu, LLC Fast channel change in a video delivery network
US10581707B2 (en) * 2018-04-10 2020-03-03 At&T Intellectual Property I, L.P. Method and apparatus for selective segment replacement in HAS video streaming adaptation
US20220030308A1 (en) 2018-09-14 2022-01-27 National University Of Singapore Method and device for streaming content
US11323423B2 (en) * 2018-11-14 2022-05-03 At&T Intellectual Property I, L.P. Method and apparatus for inferring ABR video streaming behavior from encrypted traffic
US11153581B1 (en) * 2020-05-19 2021-10-19 Twitch Interactive, Inc. Intra-segment video upswitching with dual decoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013520119A (ja) 2010-02-19 2013-05-30 トムソン ライセンシング アダプティブ・ストリーミングのマルチパス配信
US20130297731A1 (en) 2012-05-04 2013-11-07 The Hong Kong University Of Science And Technology Content distribution over a network
JP2016195364A (ja) 2015-04-01 2016-11-17 富士通株式会社 無線通信方法、プログラム及び無線通信装置
JP2016197790A (ja) 2015-04-02 2016-11-24 富士通株式会社 無線通信装置、無線通信プログラムおよび無線通信方法
JP2017050681A (ja) 2015-09-01 2017-03-09 富士通株式会社 通信方法、通信装置及び通信プログラム
JP2017050688A (ja) 2015-09-01 2017-03-09 富士通株式会社 通信方法、通信装置及び通信プログラム

Also Published As

Publication number Publication date
US20220182695A1 (en) 2022-06-09
US20230111188A1 (en) 2023-04-13
KR20220078509A (ko) 2022-06-10
EP4009643A1 (en) 2022-06-08
BR102021023880A2 (pt) 2022-06-14
US11570496B2 (en) 2023-01-31
JP2022089183A (ja) 2022-06-15

Similar Documents

Publication Publication Date Title
US9521178B1 (en) Dynamic bandwidth thresholds
US10194210B2 (en) Dynamic content delivery network allocation system
JP7354411B2 (ja) ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理
US11812081B2 (en) Session based adaptive playback profile decision for video streaming
US20240137585A1 (en) Multiple protocol prediction and in-session adaptation in video streaming
Baik et al. VSync: Cloud based video streaming service for mobile devices
EP3354033B1 (en) Dynamic seeking in video delivery systems
US9247315B2 (en) Disabling of multiple bitrate algorithm for media programs while playing advertisements
US11082741B2 (en) Dynamic multi-content delivery network selection during video playback
JP7374975B2 (ja) ビデオの同時ダウンロード
US11140060B2 (en) Dynamic variation of media segment durations for optimization of network round trip times
JP7494265B2 (ja) アダプティブビットレートアルゴリズムのための動的パラメータ調整
US20240205473A1 (en) Selection of content delivery networks using agents

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220105

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230824

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: 20230926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231025

R150 Certificate of patent or registration of utility model

Ref document number: 7374975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150