JP5961850B2 - ジャストインタイムの分散型ビデオキャッシュ - Google Patents

ジャストインタイムの分散型ビデオキャッシュ Download PDF

Info

Publication number
JP5961850B2
JP5961850B2 JP2015523261A JP2015523261A JP5961850B2 JP 5961850 B2 JP5961850 B2 JP 5961850B2 JP 2015523261 A JP2015523261 A JP 2015523261A JP 2015523261 A JP2015523261 A JP 2015523261A JP 5961850 B2 JP5961850 B2 JP 5961850B2
Authority
JP
Japan
Prior art keywords
video
source
optimized
key
source file
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
JP2015523261A
Other languages
English (en)
Other versions
JP2015530781A (ja
JP2015530781A5 (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.)
Opera Software Ireland Ltd
Original Assignee
Opera Software Ireland Ltd
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 Opera Software Ireland Ltd filed Critical Opera Software Ireland Ltd
Publication of JP2015530781A publication Critical patent/JP2015530781A/ja
Publication of JP2015530781A5 publication Critical patent/JP2015530781A5/ja
Application granted granted Critical
Publication of JP5961850B2 publication Critical patent/JP5961850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • 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/10Architectures or entities
    • H04L65/1059End-user terminal functionalities specially adapted for real-time communication
    • 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
    • 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/70Media network packetisation
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • H04N21/2396Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
[0001]本出願は、2012年7月18日に出願された米国仮出願第61/673,188号の利益を主張するものであり、同文献は参照により全体が本明細書に組み込まれる。
[背景]
[0002]本開示は、一般にはネットワーク上でのユーザ体験を向上させることに関し、より詳細には、ネットワーク内のビデオのキャッシュを最適化することに関する。
関連技術の説明
[0003]近年、スマートフォンやタブレットなどのモバイル機器が普及している。モバイルコンピューティング力の進歩と広範囲のワイヤレスインターネットアクセスに伴って、ストリーミングビデオをモバイル機器で視聴するユーザが増えている。そのようなストリーミングビデオは、多くの場合、ユーザが自身のモバイル機器からアクセスする各種の提供元から、様々な品質、フレームレート、フレームサイズ、及び圧縮レベルでストリーミングされる。多くの場合、ネットワーク上で利用可能なビデオはワイヤレス伝送やモバイル機器で視聴するための最適化がされておらず、提供元からネットワーク条件に関係なく一定品質でストリーミングされる。例えば、最適化されていないビデオは、コンピュータモニタやテレビで良好な視聴体験をユーザに提供するのに十分な品質レベルを持つ場合がある。その結果、より少ない帯域幅でモバイル機器の小さなディスプレイで同等のユーザ視聴体験を十分に提供できる時に、最適化されていないビデオをストリーミングするために不必要に多くの帯域幅部分が使用される場合がある。
[0004]既存のネットワーク提供者やメディアの提供元は、ストリーミングされるビデオにビデオの最適化を行うことによってビデオストリーミング時の帯域幅の使用状況を改善することを試みている。最適化は、しばしば、ビデオなどのソースファイルを、モバイル機器又はネットワーク提供者のシステムの能力により合った形式に変換することを伴う。最適化を行うことでモバイル機器で視聴されるストリームビデオの品質にほとんど影響を及ぼすことなく帯域幅の使用状況を改善することができるが、最適化処理は、通例、サーバが変換処理を開始する時にビデオのストリーミングと再生に遅延を生じさせる。それらの遅延により最終的にユーザの視聴体験に負の影響が生じ、その結果ユーザが早い段階でビデオのストリーミングを停止したり、別のストリーミングサイトに切り替えたりする可能性がある。
[0005]ここに開示される実施形態は、以下の詳細な説明、添付の特許請求の範囲、及び添付図(又は図面)から容易に明らかになる他の利点及び特徴を有する。以下に図を簡単に説明する。
最適化されたビデオキャッシュのための例示的な通信環境の高レベルブロック図である。 機械読み取り可能媒体から命令を読み出し、プロセス又はコントローラ内で実行することが可能な例示的マシンの構成要素の一実施形態を説明する図である。 最適化されたビデオをユーザ機器に提供する場合の例示的なイベント図の実施形態を説明する図である。 最適化されたビデオをユーザ機器に提供する場合の例示的なイベント図の実施形態を説明する図である。 最適化されたビデオをユーザ機器に提供する場合の例示的なイベント図の実施形態を説明する図である。 最適化されたビデオをユーザ機器に提供する場合の例示的なイベント図の実施形態を説明する図である。 キャッシュされたヘッダを使用した予測符号化の一実施形態の流れ図である。
詳細な説明
[0010]図及び以下の説明は、単なる例示として好ましい実施形態に関する。以下の説明から、本明細書に開示される構造及び方法の代替実施形態が、特許請求の主題の原理から逸脱することなく用いることが可能な代替形態として容易に認識されることに留意されたい。
[0011]以下でいくつかの実施形態を詳細に参照し、その例を添付図面に示す。可能な箇所では図で同様の参照符号を使用して同様の機能を示す場合があることに留意されたい。図は、開示されるシステム(又は方法)の実施形態を単に例示のために示す。当業者は、以下の説明から、本明細書に記載される構造及び方法の代替実施形態を本明細書に記載される原理から逸脱することなく用いることが可能であることを直ちに認識されよう。
[概要]
[0012]ネットワーク提供者やメディアの提供元は、ビデオなどのソースファイルをモバイル機器にストリーミングする際の品質を向上させるための方法としてローカルキャッシュを使用することがある。ソースファイルが例えばビデオ最適化器によって変換及び最適化されると、ファイルはローカルキャッシュに保存することができる。ローカルでキャッシュすることにより、ビデオ最適化器は、変換されたソースファイル(又は最適化されたバージョンのソースファイル)を短期間記憶しておき、変換のためにソースファイルを再度取り出す必要なく、ユーザの要求(例えばビデオの再生やビデオのタイムラインにおけるスキップ)に応えることができる。したがって、ローカルキャッシュ構成を用いると、1回のセッション中に特定のユーザのために特定のファイルを繰り返し取り出して変換せずに済む。
[0013]しかし、通例は、変換されたファイルは、ユーザがセッションを終了すると間もなくローカルキャッシュから消去される。消去は、主として、他のユーザのための変換中に他のファイルをローカルにキャッシュできるようにすることと、著作権の侵害を回避することの2つの理由から行われる。後者は、ビデオ最適化器が、著作権保有者からもはや入手することができない、著作権で保護されたファイルの最適化バージョンを記憶(及びストリーミング)する結果生じる。これは、変換を行ったサービス提供者に望まない責任を負わせることになる。キャッシュされたファイルが消去されない場合でも、ユーザは、可能性としては数千ものビデオ最適化器の中から最適化されたソースファイルをキャッシュしている特定のビデオ最適化器に割り当てられるだけ幸運でなければならない。そうでない場合、ユーザは、以前の別のビデオ最適化器からそのビデオをストリーミングしたユーザと同じ変換動作が行われるのを待たなければならない。
[0014]本明細書に開示される実施形態は、多数のビデオ最適化器で行われる最適化済みビデオのローカルキャッシングを監視するキャッシュデータベースを含む。このキャッシュデータベースは、所与の最適化器でローカルにキャッシュされた最適化済みビデオ各々に対応するエントリを保持する。そして、ユーザが提供元サーバの所与のソースファイルをビデオ最適化器で最適化するように要求すると、キャッシュデータベースは、そのソースファイルを以前に最適化して各自のローカルキャッシュ記憶している他の最適化器の場所及びアドレスをそのビデオ最適化器に提供することができる。そして、ソースファイルの最適化要求を受け取った最適化器は、別の最適化器から最適化されたファイルを取得するか、又はユーザ機器をその第2の最適化器にリダイレクトすることにより、最適化済みのソースファイルを冗長に生成せずに済むようにする。同じソースファイルを繰り返し変換するのではなく、既存の最適化されたソースファイルを利用することにより、リソースを多く要する変換動作を行うために必要なビデオ最適化器を減らすことができる。
[0015]例示的な実施形態では、複数のソースファイルを記憶している配信元サーバにユーザ機器がソースファイルを要求すると、経路選定装置がその要求を検出し、ネットワークコントローラで処理するために要求を中途受信する。ネットワークプロセッサは、ネットワークを横断するネットワークフローに関するデータを収集し、要求及び他のデータをリダイレクトしてネットワーク内の帯域幅の使用状況を最適化することができる。一実施形態では、ネットワークコントローラは要求及びそれに関連するトラフィック(すなわちネットワークフロー)を調べて、ソースファイル、ネットワークの状態、及びユーザ機器に関する情報を判定することができる。また、ネットワークコントローラは、ソースファイルの要求を配信元サーバに転送し、配信元サーバの応答を中途受信して、ソースファイルがビデオに対応するかどうかを判定することができる。中途受信された要求及び/又は応答は、ビデオ情報又はソースファイル自体の一部を含んでいる可能性がある。
[0016]ネットワークコントローラはそれらの情報を処理して、要求されるソースファイルを変換するかどうかを判定し、ソースファイルをユーザ機器に合わせて変換するための最適化パラメータを判断する。ネットワークコントローラは、元のソースファイル及び最適化されたソースファイルの両方に一意に関連付けられた識別子(ID)キーを生成することができる(例えば指定された最適化パラメータに基づく)。そして、ネットワークコントローラは、ユーザ機器をビデオ最適化器にリダイレクトすることができる。一実施形態では、ネットワークコントローラは、ユーザ機器に送信されるリダイレクト要求にIDキーを含める。或いは、ネットワークコントローラは、ユーザ機器がリダイレクトされたビデオ最適化器にIDキーを送信してもよい。IDキーを送信し、ソースビデオファイルを取得するためにユーザ機器をビデオ最適化器にリダイレクトすることにより、ユーザは最適化されたバージョンのソースファイルを受信することができ、直接の入力を行うことはなく、さらにはそれらの処理が行われていることも意識しない。
[0017]すでに変換されているソースファイルを再度変換する必要をなくすために、ビデオ最適化器は、自身のローカルキャッシュ、及び/又はキャッシュデータベースの管理下にあるビデオ最適化器に記憶されている最適化されたバージョンのソースファイルに対応する参照IDキーを記憶しているキャッシュデータベースを照会することができる。要求されるソースファイルのIDキーと一致する参照IDキーがある場合は、既存の最適化されたバージョンのソースファイルをユーザ機器に提供することができる。重要な点として、IDキーはソースファイルと最適化されたソースファイルの両方を一意に識別する。ソースファイルに変更が行われると、生成されたIDキーと一致する参照キーはなくなり、新しいソースビデオファイルが取得され、変換される。したがって、例えば、ソースファイルの著作権所有者がソースファイルに変更を加えた場合は、著作権保有者から現在入手できるソースファイルの最適化されたバージョンのみがユーザ機器に提供される。最適化されたバージョンのソースファイルが、ソースファイルを要求するユーザ機器に指定された最適化パラメータと一致することにより、適切に最適化されたバージョンがユーザ機器に提供されることが確実になる(例えば、携帯電話に対してタブレットのディスプレイサイズ、又は3G接続の速度に対して4G接続の速度には、最適化されたバージョンが2つ以上ある場合がある)。
[0018]一実施形態では、ソースファイルがこれまでに変換されたことがないか、又は指定された最適化パラメータに基づいて変換されておらず、したがってユーザ機器の要件を満たす最適化されたバージョンのソースファイルがどのビデオ最適化器にも存在しない。したがって、IDキーはキャッシュデータベースにあるどの参照キーとも一致しない。キャッシュデータベースは、キャッシュデータベースにIDキーを照会するビデオ最適化器にキャッシュミスの通知を返し、それによりビデオ最適化器に、配信元サーバからソースファイルを取得させ、ソースファイルの変換とユーザへのストリーミングを開始させる。最適化されたソースファイルの少なくとも一部がビデオ最適化器にキャッシュされると、ビデオ最適化器は、ビデオ最適化器に新たにローカルにキャッシュされた最適化済みのソースファイル部分に対応するエントリでキャッシュデータベースを更新することができる。一実施形態では、ビデオ最適化器は、ビデオ最適化器のローカルキャッシュに記憶されたソースファイル及び最適化されたバージョンのソースファイルのパラメータを一意に識別する新しい参照キーとして、ネットワークコントローラから受け取ったIDキーをキャッシュデータベースに記憶するために渡す。それと同じソースファイルの部分に対応する記憶された参照キーと一致するIDキーでキャッシュデータベースを照会する他のビデオ最適化器には、ソースファイルの同じ部分を再度変換するのではなく、上記ビデオ最適化器のローカルキャッシュに記憶された既存の最適化されたバージョンのソースファイルを照会させることができる。
[0019]別の例示的実施形態では、ソースファイルがすでに以前に別の最適化器によって変換されており、要求されるパラメータを持つ最適化されたバージョンが他の最適化器のうち1つのローカルキャッシュに記憶されている。キャッシュデータベースは、そのIDキーでキャッシュデータベースを照会したビデオ最適化器にキャッシュヒットの通知を送る。キャッシュヒットの応答は、IDキーで指定された最適化パラメータと一致する参照キーを持つ最適化されたバージョンのソースファイルが第2のビデオ最適化器のローカルキャッシュにあることを意味する。一例では、最適化器は、最適化されたバージョンのソースファイルをローカルにキャッシュしている第2の最適化器に、最適化されたソースファイルを要求することができる。そして、第1の最適化器が、最適化されたビデオを再生のためにユーザ機器に転送することができる。別の例では、第1の最適化器がユーザ機器にリダイレクトを送信することができる。そのリダイレクトにより、ユーザ機器を、最適化されたバージョンのソースファイルを記憶している第2のビデオ最適化器に接続させる。リダイレクトは、ネットワーク上の第2の最適化器の場所及び生成されたIDキーを含むことができる。この例では、第2の最適化器は、最適化されたバージョンのソースファイルを直接ユーザ機器にストリーミングすることによって応答する。
[0020]場合によっては、人気のあるソースファイルが多数のユーザから頻繁に要求される場合がある。その特定のソースファイルに対する需要の増大に応答して、ビデオ最適化器は、第2の最適化器に存在する最適化されたバージョンのソースファイルの複製を要求することができる。頻繁に要求されるソースファイルの最適化されたバージョンを第1の最適化器に記憶することにより、第1の最適化器は、そのソースファイルについての要求負荷を第2の最適化器と分担することができ、したがって、第2の最適化器の負荷を軽減することができる。利点は、両方の最適化器が同じ最適化されたバージョンのソースファイルを提供することができ、他のソースファイル最適化要求も処理しながら、当該ソースファイルの要求に迅速に対応できることである。
[最適化されたビデオキャッシュ環境]
[0021]次いで図1を参照すると、最適化されたビデオキャッシュのための例示的な通信環境100の高レベルブロック図が示される。環境100は、ユーザ機器110A及び110B(まとめてユーザ機器110と呼ぶ)、配信元サーバ170、経路選定装置130、ネットワークコントローラ140、ビデオ最適化器150、キャッシュデータベース160、並びにネットワーク120を含む。ネットワーク120は、ユーザ機器110、経路選定装置130、配信元サーバ170と、及び/又はビデオ最適化器150の間でデータを伝送する通信ネットワークである。一実施形態では、ネットワーク120は、ワイヤレスネットワーク及びインターネットを含む。
[0022]設備投資が収益を上回らないようにしようとするネットワーク効率戦略は、次第に高いデータ使用量に依拠するようになりつつあるより優れたユーザ体験を求める顧客の需要とバランスをとらなければならない。今日、モバイル事業者は、各種の手段を用いて、データ使用量の上限、Wi−Fiの負荷軽減、及びインテリジェントな最適化を含む処理能力を管理している。環境100は、深いセッションインテリジェンス、統合されたサービス管理、及びどのようなサービス提供にも合う動的な適合性を備えた、統一された基盤を提供するそのような解決法を提示する。ネットワークコントローラ140とビデオ最適化器150は連携して、ワイヤレス事業者とインターネットサービス提供者に特化した処理能力の利益をもたらすと共に、代替の解決法よりも好適にピーク容量を節減する世界水準のメディア最適化の解決法を提供する。
[0023]一実施形態では、ユーザ機器110は、ネットワーク機能を備えるコンピューティング機器である。多くの場合、例えば、ユーザ機器110は、ウェブブラウザ及びメディア表示機能を備えたワイヤレス対応のモバイルコンピューティング機器である。モバイルコンピューティング機器としてのユーザ機器110は、ラップトップ、ネットブック、タブレット、スマートフォン、又は携帯情報端末(PDA)を含むことができる。図1には2つのみのユーザ機器110A及び110Bを示すが、環境100はそのような機器を数千又は数百万台含む可能性がある。ウェブブラウザは、モバイル機器110で実行されるソフトウェアアプリケーションであり、配信元サーバ170からウェブコンテンツを含むソースファイルを取得し、モバイル機器に結合されたディスプレイにそのウェブコンテンツを提示する。ユーザ機器110からアクセスされるマルチメディアのウェブコンテンツには、テキスト、画像、音声、及び映像のコンテンツが含まれる。ソースファイルは、1つ又は複数の種類のマルチメディアウェブコンテンツを含むことができる。マルチメディアコンテンツは、ブラウザ、例えばHTML5に対応するブラウザ、プラグイン、又は独立型のメディアプレーヤで再生することができる。ブラウザが、ユーザ機器110上で利用可能なメディアプレーヤ又はプラグインを呼び出して、再生のために画像、音声、及び/又は映像をメディアプレーヤ又はプラグインに渡すこともできる。
[0024]経路選定装置130は、ユーザ機器110とネットワーク120の間に位置する負荷分散装置又はルータである。経路選定装置130はユーザ機器110にネットワークへのアクセスを提供し、したがって、ユーザ機器からのトラフィックがネットワークへと流れる、又は逆にネットワークからのトラフィックが流れ込む経路となるゲートウェイを提供する。一実施形態では、経路選定装置130は、自身を通るトラフィックを分類して、ネットワークコントローラ140でさらに検査すべき対象フローを識別する。或いは、ネットワークコントローラ140が経路選定装置130とのインターフェースを取って、HTTPトラフィックフローの大きいオブジェクトと小さいオブジェクトを識別する等のネットワークトラフィックの監視及び分類を調整する。その場合、経路選定装置130は、さらに検査すべき対象フローを分類するための所望の基準に基づくネットワークコントローラ140からの命令を受け取る。
[0025]しかし、ワイヤレス/セルラユーザ機器110側についての情報は、セルラネットワークと有線インターネットの間に位置する経路選定装置130では取得できないことが多い。例えば、しばしば、モバイル機器110に関連付けられた送信塔の識別子についての情報は得られない。送信塔の関連付けの情報は、モバイル機器が最初にネットワークに接続した時にのみブロードキャストされる。また、ユーザ機器110は通常はIPアドレス以外の識別情報は報告しない。したがって、ネットワークトラフィックの監視及び輻輳の検出を自動化してコントローラ140で管理し、モバイルユーザがそのことを知ることなく、エンドユーザの体験のためにネットワークを最適化できるようにする。
[0026]送受信されるあらゆるデータパケットを監視する従来のインライン式のTCPスループット監視装置と異なり、ネットワークコントローラ140は、経路選定装置130とのインターフェースを取って対象のユーザフローを選択的に検査する「帯域外(out-of-band)」のコンピュータサーバである。ネットワークコントローラ140はさらに、最適化するユーザフローを(例えば対象フローの中から)識別することができる。一実施形態では、ネットワークコントローラ140は経路選定装置130で実装してトラフィックを監視することができる。他の実施形態では、ネットワークコントローラ140は、経路選定装置130と結合され、経路選定装置130と通信して、トラフィックの監視及び最適化を行う。経路選定装置130から照会を受けると、ネットワークコントローラ140は、所与のネットワークフローを無視すべきか、さらに監視すべきか、又は最適化すべきかを判断する。フローの最適化はしばしばフローの最初に決定される。その理由は、最適化されていないコンテンツの配信が一旦開始されると、途中で最適化されたコンテンツに切り替えることはめったに可能でないためである。ただし、ネットワークコントローラ140は、特定の利用者又は他のエンティティに関連付けられた既存のフローを最適化すると判断する場合もある。そして、そのエンティティに関連付けられていると判断された新しいフロー(例えば、メディア内でのシーク要求、新しいメディア要求、一時停止後の再開等の結果生じる)を最適化することができる。ネットワークコントローラ140は、監視及び最適化を決定する際に、ネットワーク状態と過去のトラフィックデータを使用する。輻輳などの現在のネットワーク状態についての知識は、データの最適化に関しては重要と考えられる。
[0027]一実施形態では、ネットワークコントローラ140は、ユーザ機器110と、ビデオ最適化器150や配信元サーバ170など環境100の他の構成要素との間の仲介者である。ユーザ機器110がビデオ又は他の関連するソースファイルの要求を送信すると、要求は経路選定装置130に中途受信され、フローは、さらに分析するためにネットワークコントローラ140に送られる。事例によっては、ネットワークコントローラ140が、要求されるソースファイルをさらに最適化することによりネットワーク120の総容量を改善できると判断することができる。事例によっては、コントローラ140は、ソースファイルを求める中途受信した要求を配信元サーバ170に転送し、配信元サーバ170からの応答を中途受信して、ソースファイルに関する情報を判定し、ソースファイルを最適化するかどうかを判断することができる。
[0028]ネットワークコントローラ140が、要求されるソースファイルを最適化すべきと判断すると、ネットワークコントローラ140は、最適化されたバージョンのソースファイルを生成するための最適化パラメータを決定する。最適化パラメータは、変換後のファイルがユーザ機器110に適合し、ネットワーク120及びユーザ機器110の利用可能な帯域幅容量を満たすようにソースファイルを変換するために、目標ビットレート、フレーム幅、フレーム高、サンプルレート、音声特性等の属性を指定する。そして、ネットワークコントローラ140は、最適化パラメータをビデオ最適化器150に提供し、ユーザ機器110をビデオ最適化器150にリダイレクトして、最適化されたバージョンのソースファイル(例えば最適化パラメータに従って変換された)を取得させる。ネットワークコントローラ140が要求されるソースファイルを最適化しないと判断した場合、ネットワークコントローラ140は、フローの監視を続けるか、又は経路選定装置130に、そのフローをネットワークコントローラ140に送らないように指示することができる。
[0029]ネットワークコントローラ140は図に示すようにキー生成器145を含み、これは、要求ソースファイルと、ビデオ最適化器150がユーザ機器110のためにソースファイルをどのように変換すべきかを記述した最適化パラメータとを一意に識別する識別(ID)キーを生成する。ソースファイルのIDキーを生成するために、キー生成器145は、中途受信された機器要求110からの要求に含まれるソースファイル情報から、及び/又は、要求されるソースファイルを一意に記述する配信元サーバ170からの中途受信された応答に含まれるソースファイル情報からソースファイル署名を判定する。一実施形態では、ソースファイル署名は、元のファイル又は元のファイルの一部のハッシュ、ビデオの属性(例えばビットレート、フレーム幅、フレーム高、サンプルレート、音声特性等)、元のファイルのURL等を含むことができる。事例によっては、ドメイン又はウェブサイトがURLに変更を加えたり、URLに追加的な部分を加えたりする場合でも送信元署名のURL部分が変化しないようにURLに変更を加えることができる。また、キーを生成するために、キー生成器145は、最適化されたバージョンのソースファイルを生成するためにネットワークコントローラ140によって決定された最適化パラメータを受け取ることができる。そのパラメータを通じて、生成されたキーを使用して、様々なビデオ最適化器150のキャッシュに記憶されているソースファイルの特定の最適化されたバージョンを特定することができる。一実施形態では、生成されたキーは、リダイレクト要求と共にユーザ機器110に送信される。ビデオ最適化器150は、リダイレクトされたソースファイルの要求と共にIDキーを受け取る。ビデオ最適化器150はそのIDキーで自身のローカルキャッシュ155及びキャッシュデータベース160を照会して、最適化されたバージョンのソースビデオファイルがすでにローカルに、又は別のビデオ最適化器に存在するかどうかを判定することができる。
[0030]ビデオ最適化器150は、ビデオや画像などのソースファイルの最適化を提供し、最適化されたビデオや画像のコンテンツをネットワーク120を介してユーザ機器110に配信するコンピュータサーバである。ビデオ及び画像の最適化は、ビデオ及び画像コンテンツの変換を通じて提供されるオンデマンドサービスである。例えば、ユーザ機器が配信元サーバ170からビデオの取得を試みると、ネットワークコントローラ140は、そのフローがコンテンツ最適化の一定の基準を満たすと判断することができる。そして、ネットワークコントローラ140は、ユーザ機器110をビデオ最適化器150にリダイレクトして、最適化されたコンテンツを取得させる。ビデオ最適化器150は、ユーザ機器110又はネットワークコントローラ140からのリダイレクト要求で最適化パラメータ及びビデオ又は画像コンテンツの場所を受け取り、最適化及びその後のユーザ機器110への配信のために、ビデオ又は画像コンテンツを対応する配信元サーバ170から取得する。
[0031]一実施形態では、ビデオ最適化器150は、配信元サーバ170又は他の供給元から直接ソースファイルの内容を取り込み、ビットレートを下げたストリームをリアルタイムで生成する。変換され、最適化されたストリームは一時的にローカルの記憶域に記憶することができ、このローカルの記憶域をローカルキャッシュ155と呼ぶことができる。例えば、ローカルキャッシュ155は、シリアルATA(SATA)/シリアルAttached SCSI(SAS)の回転媒体又はフラッシュ媒体の形態である。実施形態によっては、ローカルキャッシュ155はビデオ最適化器150の内部に物理的に置かれ、バスを介してビデオ最適化器150システムの他の構成要素と接続することができる。他の実施形態では、ローカルキャッシュ155はビデオ最適化器150の外部に置かれ、ネットワーク120又は他種の有線/無線接続を介してビデオ最適化器150に接続することができる。各ビデオ最適化器150は、最適化されたソースファイルストリームの平均的なサイズと比較して多量の記憶域を有するので、各ビデオ最適化器150はいくらかの量の最適化されたデータをキャッシュすることができる。いくつかのビデオ最適化器150を組み合わせてビデオキャッシュ群にすることができ、ローカルにキャッシュされた最適化済みのソースファイルを個々のビデオ最適化器150間で共有することができる。
[0032]ビデオ最適化器150のローカルキャッシュ155の記憶空間が限られているため、キャッシュ155は効率的に管理して、ソースファイルのより新しいバージョン及び/又はより人気のある最適化されたバージョンを配布のために入手できるようにする。ビデオ最適化器150は、次の1つ又は複数に従ってキャッシュされたファイルのうち削除するファイルを検討する。すなわち、最後に使用されてからの時間が最も長いファイル、最後にアクセスされた時刻、ヒットの回数(例えば全期間と直近の期間)、複製要求の回数(例えば人気の上昇)、ファイルのサイズ(例えばより大きなファイルをより小さいファイルより先に消去して空間を節約する)、又は以前/最近消去されたファイル(例えば人気の低下)。一実施形態では、ビデオ最適化器150は、削除動作に必要なシステムプロセッサ負荷を最小に抑えるために、キャッシュされたファイルを長い期間にわたって小さなまとまりで削除する。事例によっては、ビデオ最適化器150は、アクティブなファイルにアクセスしているすべてのユーザをリダイレクトするのを待ってから、そのアクティブなファイルを削除することもできる。最後のユーザがリダイレクトされると、ユーザのストリーミング経験に影響せずに、アクティブファイルを削除することができる。実施形態によっては、ビデオ最適化器150は、自身がキャッシュしているすべてのファイルを記憶のためにキャッシュデータベース160にプッシュすることができる。
[0033]ビデオ最適化器150のローカルキャッシュ155の限られた記憶空間をより効率的に管理するために、キャッシュ155は、最適化されたソースファイルの小さなセグメント又はクリップのみを記憶してもよい。一実施形態では、小さなセグメントは、最適化されたソースファイルのプレビューを表すことができる。通例ユーザはユーザ機器110にストリーミングされて再生される1本のビデオのすべては見ないことから、最適化されたソースファイル全体をローカルキャッシュ155に記憶するのは記憶空間の非効率的な使用である。そのため、ソースファイルの一部だけをビデオプレビューとして記憶することにより、最適化されたソースファイルをより多くローカルキャッシュ155に記憶できるようになる。さらに、ユーザが、ローカルキャッシュ155に記憶されたビデオプレビューセグメント以外のソースファイル部分を見たい場合は、ローカルキャッシュ155に記憶されたビデオのプレビューファイルを取り出して、対応するソースファイルの最適化された部分と合併することもできる。ソースファイルのいくつかの異なるセグメントが最適化されたビデオプレビューファイルとしていくつかの異なるビデオ最適化器150のローカルキャッシュ155に記憶されている場合は、1つのビデオ最適化器150が各ローカルキャッシュ155からセグメントを取り出し、それらを共に合併し、必要であれば追加的なセグメントを変換することもできる。
[0034]ビデオ最適化器150のローカルキャッシュ155に変更が加えられる(例えばファイルが追加、除去、又は更新される)と、ビデオ最適化器150は、キャッシュデータベース160にコマンドを出して、変更されたファイルに関連付けられた対応エントリを更新させる。一実施形態では、コマンドは、「キャッシュ追加」、「キャッシュ削除」、「キャッシュ取得」、又は「全キャッシュ削除」を含むことができる。「キャッシュ追加」及び「キャッシュ削除」は、最適化されたソースファイルがローカルキャッシュ155で更新/記憶された時や、ファイルがローカルキャッシュ155から除去された時などに、キャッシュデータベース160のエントリを追加又は除去するために使用される。「全キャッシュ削除」は、特定のビデオ最適化器150に関連付けられたエントリのセット全体を除去するために使用することができる。これは、ビデオ最適化器150が停止又はクラッシュした時に特に有用である。そのような場合にはキャッシュ全体が失われる可能性がある。「キャッシュ取得」のコマンドはしばしば、キャッシュデータベース160を照会するためのIDキーを伴い、それにより、要求される最適化されたバージョンのソースファイルがローカルキャッシュ155に記憶されている任意のビデオ最適化器150又はサーバのIPアドレスを特定する。これらの実施形態に示すコマンド以外の他のキャッシュコマンドも使用することができる。
[0035]実施形態によっては、ローカルキャッシュ155を使用して、予測符号化で使用される、最適化されたソースファイルのヘッダを記憶することもできる。ヘッダは、図4で詳細に説明するが、変換処理の開始前に作成され、ソースファイルに関連する基本的な情報を含んでいる。メディアプレーヤは、ソースファイルを認識して再生できるように、ヘッダファイルを分析する。最適化されたソースファイルが最初に生成される際に、ビデオ最適化器150は、最終的な最適化ソースファイルの特性を予測する。予測は変換処理より前に行われるので、予測の結果生成されるヘッダファイルは正確でない可能性がある。予測符号化により、ビデオ最適化器150は、変換処理後に、生成されたヘッダをローカルキャッシュ155に記憶し、将来同じソースファイルを最適化する際に記憶されたヘッダを取り出して、より正確なヘッダファイルを生成するために使用することができる。
[0036]キャッシュデータベース160は、以前に別のビデオ最適化器150ですでに最適化されているソースファイルを変換する必要をなくすことによりビデオ最適化器150の性能を強化する。一実施形態では、キャッシュデータベース160は、自身のデータベースの最適化群に、ローカルにキャッシュされている最適化されたバージョンのソースファイルの場所を記憶する。キャッシュされている最適化済みソースファイルの場所に加えて、キャッシュデータベース160は、記憶された参照キー、各ソースファイル/最適化されたバージョンが最後にアクセスされた時間、及び各ソースファイル/最適化されたバージョンの合計ヒット回数/要求回数も保持することができる。種々の最適化されたバージョンについての情報を収集して、ユーザ機器110に提供された回数が最も多いものを特定することができる。
[0037]キャッシュデータベース160は、中央化されたリソース/サーバであっても、又はビデオ最適化器150自体に分散させてもよい。キャッシュデータベース160が、ユーザ機器110に送信するために、ソースファイル及び最適化されたバージョンのソースファイルに対応するIDキーに基づく、最適化されたソースファイルの場所を問い合わせる照会を受け取ると、キャッシュデータベース160は、自身のデータベースを検索して、一致する参照キーを持つ最適化されたバージョンのソースファイルの場所を特定することができる。キャッシュデータベース160は、ビデオ最適化器150の群内で最適化されたソースファイルを識別し、発見するために維持しているエントリのリストを更新させるコマンドもビデオ最適化器150から受け取る。
[0038]ビデオトラフィックはすべてのネットワークトラフィックの約半分を占め、その割合は毎年増加していることから、ここに開示される実施形態は、最適化されたバージョンのソースファイルをキャッシュすることに着目する。したがって、ビデオトラフィックを最適化するとネットワーク内の輻輳が大幅に低減する。最適化されたバージョンのソースファイルをキャッシュする効率的な方法を実施することにより、ビデオ最適化器は、以前に別のビデオ最適化器によって他の形で変換されているソースファイルの変換せずに済むようになる。そのような空いたビデオ最適化器は、要求される他のソースファイルの変換で効果的に使用することができ、全体として向上したストリーミング体験をユーザにもたらす。最適化されたソースファイルをビデオ最適化器150のローカルキャッシュ155に保存し、各種のビデオ最適化器を検索するためのキャッシュデータベースを提供することにより、この最適化されたビデオキャッシングのシステムは、最適化されたバージョンをまだ持たないソースファイルを主に変換すればよいため、ビデオ最適化の処理を効率化する。キャッシュデータベースは、ビデオ最適化器群全体にわたるソースファイルの複数個の最適化バージョンの記憶及びキャッシュを管理するためにも使用することができ、頻繁に要求される最適化されたバージョンのソースファイルをいくつかのビデオ最適化器に複製して、1つのビデオ最適化器に送られる要求の数を減らすことができる。
[0039]ビデオ最適化器150、キャッシュデータベース160、及び配信元サーバ170は、典型的には1つ又は複数のコンピュータサーバから構成され、そのコンピュータサーバは、図2を参照して詳細に説明する構成要素及び機能を備えることができる。図1の環境100にはビデオ最適化器150、キャッシュデータベース160、及び配信元サーバ170それぞれのサーバを1つずつ示すが、異なる実施形態は、1つのエンティティ又は複数のエンティティによって運営される複数個のウェブサーバ及びビデオサーバを含むことができる。他の実施形態では、1つのサーバが、ウェブサーバとしてのウェブコンテンツの配信や最適化されたビデオコンテンツの提供などの種々の機能を提供することもできる。経路選定装置130、ネットワークコントローラ140、及びユーザ機器110も、図2に説明するものと同様の構成要素及び機能を備えることができる。
[コンピューティングマシンのアーキテクチャ]
[0040]次いで図2を参照すると、ブロック図で例示的マシンの構成要素を示し、このマシンは、機械読み取り可能な媒体から命令を読出し、それをプロセッサ(又はコントローラ)で実行して、オンデマンドでリアルタイムにネットワークを監視し利用者を識別する本開示のシステムを実施することができる。具体的には、図2は、コンピュータシステム200の例示的形態をとるマシンの概略表現であり、コンピュータシステム200内では、マシンに本明細書に記載される方法論の1つ又は複数を行わせる命令224(例えばソフトウェア)を実行することができる。代替実施形態では、マシンは、独立した装置として動作するか、又は他のマシンに接続される(例えばネットワーク化する)ことができる。ネットワーク化された構成では、マシンは、サーバ/クライアント型のネットワーク環境ではサーバマシン若しくはクライアントマシンの能力内で動作するか、又はピアツーピア(又は分散)のネットワーク環境ではピアマシンとして動作することができる。
[0041]マシンは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、スマートフォン、ウェブ機器、ネットワークルータ、スイッチ若しくはブリッジ、又はそのマシンによって行われる動作を指定する命令224(シーケンシャル又はその他)を実行することが可能な任意のマシン等である。さらに、図には1台のみのマシンを示すが、用語「マシン」は、個々に、又は協働して命令224を実行して、本明細書に記載される方法論の1つ又は複数を行うマシンの集まりも含むものと解釈すべきである。
[0042]例示的なコンピュータシステム200は、1つ又は複数のプロセッサ202(例えば中央演算処理装置(CPU)、グラフィック処理装置(GPU)、デジタル信号プロセッサ(DSP)、1つ又は複数の特定用途集積回路(ASIC)、1つ又は複数の無線周波集積回路(RFIC)、又はそれらの組み合わせ)、メインメモリ204、及び静的メモリ206を含み、これらはバス208を介して互いと通信するように構成される。コンピュータシステム200はさらに、グラフィック表示装置210(例えばプラズマディスプレイパネル(PDP)、液晶ディスプレイ(LCD)、プロジェクタ、又は陰極線管(CRT))を含むことができる。コンピュータシステム200は、英数文字入力装置212(例えばキーボード)、カーソル制御装置214(例えばマウス、トラックボール、ジョイスティック、動きセンサ、又は他のポインティング機器)、記憶装置216、及びネットワークインターフェース装置220も含むことができ、それらもバス208を介して通信するように構成される。
[0043]記憶装置216は、本明細書に記載される方法論又は機能の1つ又は複数を実現する命令224(例えばソフトウェア)が記憶された機械読み取り可能媒体222を含む。命令224(例えばソフトウェア)は、コンピュータシステム200による実行時に、完全に、又は少なくとも部分的に、メインメモリ204内又はプロセッサ202内(例えばプロセッサのキャッシュメモリ内)に存在することもでき、メインメモリ204及びプロセッサ202も機械読み取り可能媒体を構成する。命令224(例えばソフトウェア)は、ネットワークインターフェース装置220を介して、ネットワーク120を通じて送信又は受信することができる。
[0044]例示的実施形態では、機械読み取り可能媒体222を1つの媒体として示すが、用語「機械読み取り可能媒体」は、命令(例えば命令224)を記憶することが可能な1つの媒体又は複数個の媒体(例えば中央データベース若しくは分散データベース、又は互いに関連付けられたキャッシュ及びサーバ)を含むものと解釈すべきである。用語「機械読み取り可能媒体」はまた、マシンによる実行のために命令(例えば命令224)を記憶することが可能で、マシンに本明細書に開示される方法論の1つ又は複数を行わせる媒体を含むものと解釈すべきである。用語「機械読み取り可能媒体」は、これらに限定されないが、固体メモリ、光学媒体、及び磁気媒体のデータの形態のデータリポジトリを含む。
[最適化されたビデオキャッシング]
[0045]図3A〜3Dは、ユーザ機器に最適化されたビデオを提供するための例示的なイベント図を示す。図3Aは、具体的には、ソースファイル要求とその後に行われるデータベース照会の例を示す。図3B〜3Dは、ビデオ最適化器がデータベースからの種々の応答にどのように反応するかの各種実施形態を示す。ある実施形態ではビデオ最適化器は単にビデオ自体を変換し、他の実施形態では、ビデオ最適化器は要求を他のビデオ最適化器にリダイレクトしなければならない場合がある。図には、ユーザ機器110、ネットワークコントローラ140、ビデオ最適化器150、キャッシュデータベース160、及び配信元サーバ170が示される。経路選定装置(図3A〜3Dには示さない)が、ネットワーク120を介してこれらエンティティの1つ又は複数の間のトラフィックの流れを管理することができる。図3C及び図3Dでは、2つのビデオ最適化器150A及び150Bが存在する。これらのビデオ最適化器は互いと無関係に動作することができるが、共有ローカルキャッシュ155に記憶された最適化されたソースファイルを共有することもできる。
[0046]図3Aは、ビデオ最適化器でソースビデオ要求を処理する工程を説明する例示的なイベント図である。この工程は、ユーザ機器110、ネットワークコントローラ140、ビデオ最適化器150、キャッシュデータベース160、及び配信元サーバ170を含む。工程は、ユーザ機器110が、ソースファイルを求めるユーザの要求を生成する302と開始する。例えば、ユーザは、視聴したいビデオを保持しているインターネットサイトを閲覧したいと思う。ユーザ機器110は、要求を生成し302、配信元サーバ170からビデオソースファイルの内容を取得するためのHTTP GETビデオ要求304を送信する。一実施形態では、経路選定装置130が、要求及びユーザ機器110へのビデオの提供に関連する応答を中途受信する。経路選定装置130はビデオコンテンツ要求をネットワークコントローラ140にリダイレクトし、ネットワークコントローラ140は、変更を加えたHTTP Getビデオ要求306を配信元サーバ170に転送する。その変更で、ネットワークコントローラ140は、配信元サーバ170がソースファイルのビデオ情報で応答するように指示する。ビデオ情報を含むHTTP RESPONSE308を中途受信することにより、ネットワークコントローラ140は、ユーザ機器110をビデオ最適化器150に誘導するためにユーザ機器110にHTTPリダイレクト命令を転送すべきか、又は配信元サーバ170から取得されたビデオコンテンツを直接ユーザ機器110に送信すべきか(すなわち、ビデオコンテンツをさらに最適化する必要がない)を判定することができる。
[0047]ビデオ情報を含むHTTP RESPONSE308を受信するのに応答して、ネットワークコントローラ140は、HTTP GETビデオ304要求及び/又はHTTP応答308で受信した情報と、フローの監視からネットワークの状態とユーザ機器について判定した情報とを使用してIDキーを生成する310。IDキーは、配信元サーバ170にある元のソースファイルを一意に識別する送信元署名と、ユーザ機器に適合し、ネットワークの能力を満たす最適化されたバージョンのソースファイルを識別する決定された最適化パラメータとを含む。
[0048]ネットワークコントローラ140は、最適化されたバージョンのソースファイルを取得するためにユーザ機器110をビデオ最適化器150にリダイレクトすることができると判定し、最適化されたバージョンは、ソースファイルを変換することにより直接生成するか、又はビデオ最適化器150のローカルキャッシュ155から取得することができる。ネットワークコントローラ140は、HTTP RESPONSE要求に対応する命令を判定し、生成されたキーと共にHTTPリダイレクト命令312をユーザ機器110に送信する。一実施形態では、HTTPリダイレクト命令312はHTTP RESPONSE要求308を書き換えたものとすることができる。他の実施形態では、HTTPリダイレクト命令312は、受信したHTTP RESPONSE要求308に対応付けられた命令、又は要求308を変換したものとすることができる。一実施形態では、ネットワークコントローラ140は、ユーザ機器110をリダイレクトするビデオ最適化器150を無作為に選択する。別の実施形態では、ネットワークコントローラ140は負荷分散装置として働き、ネットワークコントローラ140に関連付けられた各ビデオ最適化器の現在の処理負荷に基づいてユーザ機器110をリダイレクトする。例えば、ネットワークコントローラ140は、ビデオ最適化器150の作業負荷を監視し、現在利用可能な処理能力が最も高い、又は要求数が最も少ないビデオ最適化器150にユーザ機器110をリダイレクトすることができる。命令を受け取ると、ユーザ機器110はHTTP GET要求及び受信したキー314を、ネットワークコントローラ140がHTTPリダイレクト命令312で指示したビデオ最適化器150に送信する。
[0049]一実施形態では、ビデオ最適化器150が、元のソースファイル314に関連付けられたキーと共にHTTP GET要求を受け取ると、ビデオ最適化器150は、キャッシュデータベース160を照会して、最適化されたソースファイルが存在するかどうかを判定する。ビデオ最適化器150は、自身のローカルキャッシュ155にソースビデオの最適化されたバージョンが保持されているかどうかも判定することができる。キャッシュデータベース160は、受け取ったキーに基づいて自身のデータベースを検索318して、データベースにキーに一致する参照キーエントリが保持されているかどうかを判定する。キーと一致する参照キーエントリがある場合、キャッシュデータベース160は、ソースファイルの最適化されたバージョンが別のビデオ最適化器150に存在することを知らせるデータベース応答320を送信し、最適化されたソースファイルの場所を含める。これはキャッシュヒットと呼ばれ、ソースファイルの最適化されたバージョンをユーザ機器110に送信するためにビデオ最適化器150がソースファイルを変換する必要がないことを意味する。キーと一致する参照キーエントリがない場合、キャッシュデータベース160は、要求されるソースファイルの最適化されたバージョンが、キャッシュデータベース160の管理下にあるどのビデオ最適化器150のキャッシュにも記憶されていないことを知らせるデータベース応答320を送信する。これはキャッシュミスと呼ばれ、最適化されたソースファイルをユーザ機器110に送信するためにビデオ最適化器150がソースファイルを変換しなければならないことを意味する。
[0050]図3Bは、キャッシュミスの場合にユーザ機器に最適化されたソースファイルを提供する工程の一実施形態を説明する例示的なイベント図である。キャッシュミスが発生すると(例えばIDキーがどの参照キーとも一致しない)、キャッシュデータベース160は、元のソースファイルの最適化されたバージョンがキャッシュデータベース160に関連付けられたビデオ最適化器150のどのキャッシュにも存在しないことを知らせるデータベース応答320を送信することによってビデオ最適化器の照会に応答する。このデータベース応答320に応答して、ビデオ最適化器150は、ソースファイルの最適化されたバージョンをユーザ機器に提供するために元のソースファイル自体を変換しなければならない。ビデオ最適化器150は、HTTP GETビデオ要求332を配信元サーバ170に送信して変換のために元のソースファイルを要求することにより変換処理を開始する。ビデオ最適化器150が配信元サーバ170からHTTP RESPONSEでビデオコンテンツ334を受信すると、ビデオ最適化器150は、IDキーで提供された最適化パラメータに従って、ビデオをユーザ機器110で使用できる最適化された形式に変換する336。したがって、最適化は、ビデオ最適化器150がユーザ機器110について受け取るユーザ機器の仕様及び能力に関する情報(例えば画面サイズ、プロセッサ、ネットワーク接続、記憶空間、画面の解像度、バッファ、キャッシュ、オペレーティングシステム等)、並びにネットワークの特性(例えばサービス提供者、帯域幅、ネットワークの輻輳等)に基づくことができる。
[0051]一実施形態では、ビデオ最適化器150は、ユーザが知覚する可能性のある遅延を最小に抑えるために、ビデオが変換され次第、最適化されたビデオをユーザ機器110にストリーミングする。他の実施形態では、最適化されたストリーム338をビデオ最適化器150でわずかに遅延させて、変換が遅れた場合にビデオ最適化器150がバッファを構築できるようにする。ビデオ最適化器150がソースファイルの一部を変換すると、ビデオ最適化器150は、データベース更新340をキャッシュデータベース160に送って、ソースファイルの最適化されたバージョンの一部がビデオ最適化器150のローカルキャッシュ155で将来メディアコンテンツ要求があった場合に入手できる状態になったことを知らせる。データベース更新340は、ローカルキャッシュ155における最適化されたバージョンのソースファイルの場所、配信元サーバ170から取得された元のソースファイルの送信元署名と最適化されたバージョンのソースファイルのパラメータとを含むキー、及び変換された元のソースファイルのセグメントを含むことができる。一実施形態では、ビデオ最適化器150は、ビデオ全体の最適化が済む前にデータベース更新340を送信することができる。そのため、変換処理がまだ行われている時に別の要求が受信された場合には、変換が済んでいるビデオのセグメントを、別のユーザ機器110にストリーミングするために別のビデオ最適化器150に提供することができる。データベース更新340を受信すると、キャッシュデータベース160は、データベースエントリを更新して342、キャッシュデータベース160が将来のデータベース照会に応答するためにソースファイルの最適化されたバージョンの場所を特定できるようにする。
[0052]図3Cは、キャッシュヒットに応答して最適化されたソースファイルをユーザ機器に提供する工程の実施形態を説明する例示的イベント図である。図3Cでは、2つのビデオ最適化器150A及び150Bが存在しており、ビデオ最適化器のネットワーク間で行うことが可能なデータ転送を説明している。各ビデオ最適化器150A、150Bは上記のビデオ最適化器150と機能的に同じであるが、各ビデオ最適化器150A及び150Bは、各自のローカルキャッシュ155に異なる最適化済みソースファイルを記憶している可能性がある。キャッシュヒットに応答して(例えばIDキーが参照キーと一致する)、キャッシュデータベース160は、元のソースファイルの最適化されたバージョンが、キャッシュデータベース160に関連付けられたビデオ最適化器150Bのローカルキャッシュ155にあることを知らせるデータベース応答320及び332を送信することにより、ソースファイルの最適化されたバージョンを特定しようとする第1のビデオ最適化器からの照会に応答する。
[0053]キャッシュヒットを処理する工程350の一実施形態では、第1のビデオ最適化器150Aは、ビデオ最適化器150Bから最適化されたバージョンのソースファイルを取得するか、又はストリーミングし、その結果、最適化されたソースファイル自体をユーザ機器110にストリーミングすることができる。この実施形態では、第1のビデオ最適化器150Aは、最適化されたバージョンのソースファイルを取得するためのHTTP GETビデオ、又は他の要求352を第2のビデオ最適化器150Bに送信することができる。要求352を受信すると、第2のビデオ最適化器150Bは、最適化されたストリーム354を第1のビデオ最適化器150Aに提供する。一実施形態では、第1のビデオ最適化器150Aは、最適化されたストリーム356をユーザ機器110に送信する際に、受信した最適化されたバージョンのソースファイルをローカルにキャッシュすることができる。例えば、ビデオ最適化器150Aは、頻繁に要求されるソースファイルの最適化されたバージョンをローカルにキャッシュしておくことができる。この処理を通じて、第1のビデオ最適化器150Aは、ビデオ最適化器150Bから受信した最適化されたストリーム356の一部を将来ストリーミングするためにローカルにキャッシュする。別の実施形態では、第1のビデオ最適化器150Aは、受信した最適化されたストリーム354のキャッシュを行わず、単に最適化されたストリーム356をユーザ機器110に転送することを選択することができる。例えば、第1のビデオ最適化器150Aは、その最適化されたソースファイルが頻繁には要求されない、又はローカルキャッシュ155がすでに一杯であると判断すると、最適化されたストリームを記憶しない場合がある。ソースファイルの最適化されたバージョンについての統計をビデオ最適化器150自体で個々に保持する、及び/又はキャッシュデータベース160に保持しておき、キャッシュデータベース160は、照会に対する応答と共に統計を提供してもよい。
[0054]別の実施形態では、第1のビデオ最適化器150Aは、最適化されたストリームを転送する354、356のではなく、ユーザ機器110をリダイレクトして、第2のビデオ最適化器150Bから最適化されたソースファイルを取得させることを決定することができる。ユーザ機器110をリダイレクトして第2のビデオ最適化器150Bから最適化されたソースファイルを取得させることにより、第1のビデオ最適化器150Aは、プロセッサの負荷及びネットワーク帯域幅を解放して他のメディア要求を処理することができる。第1のビデオ最適化器150Aは、ユーザ機器110にHTTPリダイレクト命令362を送信して、要求される最適化済みソースファイルを見つけられるビデオ最適化器を通知する。そして、ユーザ機器110が、HTTPリダイレクト命令で指示された第2のビデオ最適化器150BにHTTP GET要求364を送信して、第2のビデオ最適化器150Bに、要求される最適化済みソースファイルをストリーミングするように要求する。HTTP GET要求364に応答して、第2のビデオ最適化器150Bは、最適化されたストリーム366をユーザ機器に送信する。実施形態によっては、第1の最適化器150Aが生成されたIDキーを含むHTTPリダイレクトを生成し、第2の最適化器150Bはそのキーを使用して自身のローカルキャッシュ155内で最適化されたバージョンのソースファイルを特定する。第2の最適化器150Bは、上記で図3Aを参照して説明したように別途データベース照会316を生成することができる。
[0055]事例によっては、各種の異なる要因によってキャッシュヒットエラーが発生する可能性がある。一例では、キャッシュデータベース160に記憶された送信元署名、IDキー、又は参照エントリが、ビデオ最適化器150に記憶された最適化されたバージョンのソースファイルと一致しない場合がある。例えば、キャッシュデータベース160がエントリを誤って保存していたり、エントリを破損している場合があり、又は、ビデオ最適化器150でローカルにキャッシュされた最適化されたバージョンのソースファイルが破損した、若しくは削除されたエラーが発生している場合がある。別の実施形態では、ビデオ最適化器150がキャッシュデータベース160に命令を送ってエントリを削除するよう要求することができる。キャッシュデータベース160に関連付けられた各ビデオ最適化器150は、ローカルにキャッシュされたリソースを、キャッシュデータベース160に記憶されたエントリと周期的に同期させて、キャッシュデータベース160からエントリを抹消する必要があるかどうかを判定することもできる。
[0056]別の実施形態では、第1のビデオ最適化器150Aを、キャッシュデータベース160により、特定の最適化されたソースファイルを持っている第2のビデオ最適化器150Bにリダイレクトさせることができる。ただし、第2のビデオ最適化器150Bは、サーバのクラッシュやネットワークの接続問題等の何らかの理由で利用できない場合がある。第1のビデオ最適化器150Aは、第2のビデオ最適化器150Bが利用できない状態であることをキャッシュデータベース160に通知することによって応答することができる。それに応答して、キャッシュデータベース160は、第2のビデオ最適化器150Bがキャッシュデータベース160と同期するまで、又は別のビデオ最適化器150からの要求に応答するまで、自身の利用可能なサーバリソースのセットから第2のビデオ最適化器150Bを一時的に除くことができる。
[0057]実施形態によっては、第1のビデオ最適化器150Aが、キャッシュデータベース160が第2のビデオ最適化器150Bにあると報告した最適化されたファイルが第2のビデオ最適化器150Bにない等のエラーが発生したことを検出する場合がある。エラーに応答して、第2のビデオ最適化器150Bは自身の現在のサーバ負荷を第1のビデオ最適化器150Aのサーバ負荷と比較して、どちらの帯域幅が多いかを判定することができる。第1のビデオ最適化器150Aの方が第2のビデオ最適化器150Bよりも負荷が軽い場合には、第1のビデオ最適化器150Aがソースファイルを変換し、最適化することができる。第2のビデオ最適化器150Bの方が第1のビデオ最適化器150Aよりも負荷が軽い場合は、第2のビデオ最適化器150Bがソースファイルを変換し、最適化することができる。実施形態によっては、ビデオ最適化器150は、ビデオ最適化器150がソースファイルを変換する際の判断要因として接続の品質やクライアントとの近接度を比較してもよい。ビデオ最適化器150はキャッシュデータベース160にデータベース更新命令を送って、キャッシュされている最適化されたソースファイルの場所に関連するエントリを更新させてもよい。
[0058]図3Dは、キャッシュヒットに応答してユーザ機器に最適化されたソースファイルを提供し、最適化されたソースファイルを複製する工程の一実施形態を説明する例示的なイベント図である。図3Cと同様に、図3Dは、ユーザ機器110、ネットワークコントローラ140、第1のビデオ最適化器150A、第2のビデオ最適化器150B、及びキャッシュデータベース160を含む。第1のビデオ最適化器150Aからのデータベース照会に応答して、キャッシュデータベース160は、第2のビデオ最適化器150Bが要求される最適化されたソースファイルを持っていることを知らせるデータベース応答320を送信する。一実施形態では、第1のビデオ最適化器150Aは、第2のビデオ最適化器150Bに記憶されたソースファイルの最適化されたバージョンを自身のローカルキャッシュ155に複製することができる。例えば、第1のビデオ最適化器150Aは、その特定の最適化されたバージョンのソースファイルがしばしば要求され、最適化されたバージョンのソースファイルをローカルに記憶し、キャッシュしておけば処理時間の節減になるであろうと判断することができる。最適化されたバージョンのソースファイルは高いヒット率になる可能性があり、その最適化されたバージョンのソースファイルを記憶している1つのビデオ最適化器150では対応しきれない可能性がある。そのため、ヒット率が高い最適化されたバージョンのソースファイルを要求する別の最適化器が、自身のローカルキャッシュ155に記憶するためにその最適化されたバージョンを複製することを要求して、1つのサーバで対応しきれなくなることを防止することができる。最適化されたソースファイルを複製することにより、ビデオ最適化器は、キャッシュデータベース160の管理下にあるビデオ最適化器間で要求の負荷を分散させる。別の例では、要求される最適化されたソースファイルが、元のソースファイルの全再生時間の一セグメントのみに相当する場合がある。第1のビデオ最適化器150Aは、複数のビデオ最適化器150に要求を発行して、元のソースファイルの最適化されたセグメントを可能な限り多く収集してから、残りの未最適化セグメントを変換することができる。最適化されたソースファイルの合併については下記でビデオプレビューのキャッシュとの関連で説明する。
[0059]一実施形態では、第1のビデオ最適化器150Aは、要求される最適化されたバージョンのソースファイルを持っている第2のビデオ最適化器150BにHTTP GETビデオ要求及び複製要求382を送信する。要求に応答して、第2のビデオ最適化器150Bは最適化されたストリーム384を第1のビデオ最適化器150Bに送信する。別の実施形態では、第1のビデオ最適化器150Aは、最適化されたバージョンのソースファイルの複製を要求せずに、HTTP GETビデオ要求を送信する。その要求に応答して、第2のビデオ最適化器150Bは、自身が要求又は変換処理で過負荷になっていると判断する場合がある。第2のビデオ最適化器150Bは、最適化されたストリームを第1のビデオ最適化器150Aに送信するとともに、複製された最適化済みビデオを記憶する386ことを第1のビデオ最適化器150Aに求める要求を送信することにより第1のビデオ最適化器150Aに応答することができる。第1のビデオ最適化器150Aは、最適化されたストリーム384を受信すると、最適化されたバージョンのソースファイルをローカルキャッシュ155に記憶し386、同時に最適化されたストリーム388を再生のためにユーザ機器110に送信する。この結果、第1のビデオ最適化器150Aは、ローカルにキャッシュされたバージョンの最適化されたソースファイルを所有するようになったので、第1のビデオ最適化器150Aは、データベース更新の命令390をキャッシュデータベース160に送信する。受信した命令に応答して、キャッシュデータベース160はデータベースを更新392して、ビデオ最適化器150Aと150Bの両方がその特定の最適化されたバージョンのソースファイルをローカルにキャッシュしていることを示すエントリを追加する。
[ビデオプレビューキャッシュ]
[0060]最適化されたビデオキャッシュの別の可能性はビデオプレビューのキャッシュである。完全な長さの最適化されたバージョンのソースファイルを多数ビデオ最適化器150にローカルにキャッシュするのではなく、さらに多くの数の部分的な長さの最適化されたバージョンを記憶することができる。したがって、各ビデオ最適化器150は、変換処理を開始する必要なしに、又は別の最適化器から最適化されたバージョンをストリーミングする必要なしに、多数の要求の処理を直接開始することができる。例えば、ビデオ最適化器150がユーザ機器110から要求される最適化されたバージョンのソースファイルのうち1分間の部分を記憶している場合、ストリームの滑らかな配信のために変換処理又はストリーミング処理を行う必要が生じる前にユーザがビデオを破棄する(例えば最初の30秒間以内に)と、それ以上の処理は必要なくなる。したがって、冒頭の数セグメントより先を視聴するユーザは多くないため、プレビューのキャッシュで最適化されたバージョンの最初の30〜60秒を記憶することにより、ネットワークで使用される要求及び帯域幅を減らすことができる。したがって、ユーザが視聴しないことが多いソースファイルのセグメントの変換及び記憶に追加的なプロセッサ帯域幅を費やす代わりに、ビデオ最適化器150は、短い最適化済みのビデオプレビューを作成することによって自身のコンテンツをより効率的に管理することができる。最適化されたビデオを短くすることにより、ビデオ最適化器150の同じ限られた記憶キャッシュでも、最適化されたバージョンのソースファイルをより多く記憶することができる。人気のあるファイルは、完全な長さの最適化されたバージョンとして記憶されることが可能であるが、ユーザの動向に追従してより頻繁に消去及び更新される。
[0061]一実施形態では、ビデオ最適化器150がソースファイルの変換を開始し、最適化されたソースファイルをユーザ機器110にストリーミングする。ユーザがユーザ機器110での再生を取りやめると、ビデオ最適化器150は、ソースファイルの最適化を停止し、すでに最適化されたセグメントを記憶する。ビデオ最適化器150は、最適化されたソースファイル、元のソースファイルに関連付けられたキー、及び最適化されたビデオのセグメントを示すエントリでキャッシュデータベース160を更新する。後にユーザがソースファイルの同じセグメントを要求すると、キャッシュデータベース160は要求元のビデオ最適化器150を、最適化されたビデオセグメントを保持している適切なローカルキャッシュ155にリダイレクトすることができる。他の実施形態では、最適化されたバージョンのソースファイルの一部分を各種のビデオ最適化器150に分散することができる。
[0062]実施形態によっては、ユーザが、すべての部分の最適化が済んではいないソースファイルのセグメントを要求する場合がある。この実施形態では、ビデオ最適化器150は、すでに最適化されているビデオセグメントを判定して、すでに存在するソースファイルの最適化されたセグメントを再度変換せずに済むようにすることができる。ビデオ最適化器150は、最適化されたビデオセグメントをユーザ機器にストリーミングする時に、ビデオ変換処理が、これまでに最適化されていないセグメントに近づきつつあるかどうかを監視し続ける。ビデオ最適化器150は、最適化されていないソースファイル部分の変換を任意のキーフレームから開始することができ、以前に最適化されているビデオセグメントの開始部に到達するまで変換を続けることができる。変換処理が以前に最適化されたビデオセグメントの開始部に到達する前、又は到達した時に、ビデオ最適化器150は、以前に最適化されたビデオセグメントを、そのセグメントが記憶されている別のビデオ最適化器に要求する。要求に応答して、別のビデオ最適化器は、要求される最適化されたビデオセグメントを開始元のビデオ最適化器150に送り、ビデオ最適化器150は受信した最適化済みビデオセグメントを、自身が変換したセグメントの最後のキーフレームから合併する。
[0063]例えば、3つの連続したビデオセグメントがビデオ最適化器150の群にキャッシュされており、各ビデオ最適化器150はそれぞれ異なるセグメントを保持しているとする。第1のビデオ最適化器は、最適化されたバージョンのソースファイルから記憶されたプレビューをストリーミングし、その後、記憶されたプレビューの最後のキーフレームからソースファイルを取り出して最後のキーフレームからソースファイルを変換し、新たに変換されたストリームをそのキーフレームから合併して、ユーザ機器110で滑らかな再生を提供することができる。第1のビデオ最適化器は、別のビデオ最適化器で識別される最適化されたビデオセグメントの開始部に到達するまで、ソースファイルの変換と最適化されたバージョンのストリーミングを続ける。そして、第1のビデオ最適化器は、すでに変換されているセグメントを対応するビデオ最適化器から取得することができる。第1のビデオ最適化器150は、ユーザがビデオの視聴を停止するか、又はソースファイルの一部分について最適化されたセグメントが入手できなくなるまで、他のビデオ最適化器へのセグメントの要求を続けることができる。ソースファイルの一部について最適化されたセグメントが入手できない場合は、開始元のビデオ最適化器150は、中断した最後の最適化済みセグメントからソースファイルを変換する。必要な場合は、ビデオ最適化器は、将来最適化されたビデオが要求された時に利用できるようにストリーム全体をローカルにキャッシュすることもできる。
[0064]ローカルキャッシュの管理時に、ビデオ最適化器150は、ソースファイルの他の最適化されたバージョン用に記憶ドライブに空の空間を作るために、最適化されたバージョンのソースファイルのいくつかの部分だけを抹消することを決定することができる。例えば、ソースファイルの30分間の最適化されたバージョンを分割して処理して、ソースファイルの最適化されたバージョンの最初の1分間だけを保存し、ソースファイルの最適化されたバージョンの残りはローカルキャッシュ155から消去することができる。ローカルキャッシュ155の消去により、多量の記憶空間を解放しつつ、特に他に比べて人気がないソースファイルの最適化されたバージョンについて、ユーザに対しては速い応答と最初のストリーミング時間を維持する。削除及び他のキャッシュ管理動作に応答して、ビデオ最適化器150は、キャッシュデータベース160にデータベース更新を送信して、データベースに記憶されたエントリを更新させる。
[予測符号化の改良]
[0065]図4は、キャッシュされたヘッダを使用した予測符号化の一実施形態の流れ図を示す。一実施形態では、図4に示す処理は、ヘッダを備えるソースファイルに対してビデオ最適化器150によって行われる。例えば、ヘッダは、MP4ファイル、AVIファイル、MPEGファイル、MOVファイル、MKVファイル、OGMファイル、及びその他の種類の媒体ファイルに生成することができる。説明を分かりやすくするために、以下の説明ではMP4のソースファイル及びヘッダを参照するが、他の種類の媒体ファイルも該当する可能性がある。MP4ソースファイルの最適化されたバージョンが生成される時に、元のソースファイル及び/又は元のソースファイルヘッダに基づいて、変換処理の開始前に予測ヘッダが作成される。予測ヘッダは、メディアプレーヤが最適化されたバージョンのソースファイルを認識して再生できるように、ソースファイルに関連する基本的な情報を含む。例えば、予測ヘッダは、送信元のプロファイル、フレーム/サンプルレート、フレームの種別、出力サンプルのサイズ、各出力フレームのサイズ、使用される符号化、圧縮率等の情報を含むことができる。予測ヘッダは、リアルタイムでストリーミングできるようにソースファイルが完全に変換される前に作成されるので、ビデオ最適化器150はヘッダに挿入する情報を予測しなければならない。その結果、ヘッダが含む、変換された媒体のフレームを変換するために必要な媒体コンテナの大きさの見積もりが大きく、又は小さくなり過ぎる場合がある。フレームサイズの過大な見積もりを補償するには、ビデオ最適化器150は、フレームを再度変換してその品質としたがってサイズを減らさなければならず、その結果、最適化されたバージョンのソースファイルに歪みが生じ、追加的な処理時間が必要となる可能性がある。フレームサイズの過小な見積もりを補償するには、事前に指定されたサイズに合わせるために冗長なビット又はデータをフレームに追加してフレームを埋める場合がある。そのため、ソースファイルの最適化されたバージョンは、過度に最適化されたフレームを含む可能性がある。
[0066]推定される品質の歪みとばらつきは、ソースファイルの変換で複数回のパスを行うことによって軽減することができ、各パスでは以前に生成された予測ヘッダを使用して次のパスのために新しいヘッダデータをより正確に予測する。ビデオ最適化器150は、一部のフレームに必要な埋め込みを減らし、一方で最適化されたソースファイル全体の品質を均等化することにより、ヘッダ生成時のエラーを修正することができる。最適化されたソースファイル中の埋め込みを減らすことにより、ビデオ最適化器150は、最適化されたソースファイルをローカルにキャッシュするために必要な記憶空間を減らすこともできる。しかし、ビデオの変換と最適化はしばしば実行中に(on-the-fly)行われるので、ビデオ最適化器150が元のソースファイルに複数回のパスを行うことは現実的でない。また、そのようなパスは不必要に行うべきではなく、したがって、ユーザ機器110にソースファイルを提供するために必要な時だけ行うことができる。
[0067]一実施形態では、最適化されたビデオのキャッシングは、予測符号化を改良するシステムを提供する。元のソースファイルが最初に変換される時に、予測ヘッダが従来の方法で生成され、この方法は、ソースファイル又はソースファイルの小さな部分及び/又はソースファイルのヘッダに予測アルゴリズムを使用して、出力されるソースファイルの最適化されたバージョンの特性を最良に推測することを伴う。予測ヘッダは、最適化されたバージョンのソースファイルに対応するキーと共に、最適化されたバージョンのソースファイルと共にビデオ最適化器150のキャッシュ又はキャッシュデータベース160に記憶することができ、また、後に行われるヘッダ予測の改良で使用するために検索することができる。ソースファイルの変換後に記憶された予測ヘッダは、変換中に生成される最適化されたバージョンのソースファイルに関連する情報を含むように更新することができる。例えば、更新後の予測ヘッダは、最適化されたバージョンの実際のフレームサイズ、ソースファイルの元のフレームサイズ、サイズが大き過ぎたために再変換を必要とした最後のフレームサイズ、及び最適化されたバージョンのソースファイルについて予測ヘッダが更新された回数を含むことができる。したがって、後に行われる変換処理ほど、最初のパスに比べて向上した最適化と高い品質を得ることができ、閾値回数のパスが完了すると、ビデオ最適化器150は、再度パスを行わずに予測ヘッダ情報を直接利用することができる。
[0068]図4で説明するように、ビデオ最適化器150がソースファイルを変換する要求を受け取ると、ビデオ最適化器150は、配信元サーバ170から元のソースファイルを取得する402と共に、元のソースファイルヘッダも受け取る。元のソースファイルヘッダ及びIDキーを受け取るのに応答して、ビデオ最適化器150はキャッシュデータベース160を照会して404、キャッシュデータベース160に、対応する以前に最適化されたバージョンのソースファイル及びヘッダの場所があるかどうかを判定する。データベース応答で、キャッシュデータベース160は、最適化されたバージョンのソースファイルとそれに関連付けられたヘッダが別のビデオ最適化器のローカルキャッシュ155に見つかるか、又はヘッダ情報はキャッシュされているが、要求される最適化されたバージョンのソースファイルがどのローカルキャッシュ155にも存在しないか、又は最適化されたバージョンのソースファイルとそれに関連付けられたヘッダのどちらもビデオ最適化器の群内に存在しないことを判定する406。後者の場合は、上記で図3A〜3Dを参照して説明したように変換処理を進めることができ、将来ビデオ最適化器150が使用できるように、ソースファイルのヘッダ情報及び/又は1回目のパスの最適化されたバージョンの予測ヘッダ情報(及びそれに基づく更新されたヘッダ情報)がローカルに記憶されるか、又はキャッシュデータベース160で更新される。実施形態によっては、同じソースファイルであるが異なる最適化バージョンについての予測ヘッダ情報を使用して、より高い品質又は低い品質の新しい最適化されたバージョンのソースファイルの生成を支援することができる。
[0069]最適化されたソースファイルとそれに関連付けられたヘッダがキャッシュデータベース160及び/又は別のビデオ最適化器で入手できる実施形態では、開始元のビデオ最適化器150は、元のソースファイルヘッダ情報及び/又はソースファイルに生成されたIDキーを取得し402、キャッシュデータベース160を照会して404、以前に生成された予測ヘッダ及び最適化されたバージョンのソースファイルの情報を取得することができる。開始元のビデオ最適化器150が以前に生成された予測ヘッダ及び最適化されたバージョンのソースファイルの情報を受け取ると、開始元のビデオ最適化器150は、ユーザ機器110にストリーミングする前に、もう一度パスを行うことで最適化バージョンの品質を改良するため、又は異なる最適化バージョン(例えば異なる品質レベル)を生成するために、最適化されたバージョンのソースファイルを再度変換すべきかどうかを判定する。
[0070]ビデオ最適化器150は、ヘッダ及びファイルの属性を分析して412、その分析に基づいて新しい予測ヘッダを生成する414。一実施形態では、ビデオ最適化器150は、予測アルゴリズムを使用して、最適化されたソースファイルヘッダ、最適化されたバージョンのソースファイル、元のソースファイル、及び/又は元のソースファイルヘッダを分析して412、新しい予測ヘッダの情報をより適切に判断することができる。したがって、後にパスを行うたびに以前に生成されたヘッダを分析して412、新しいセッションの予測アルゴリズムを微調整して、最適化されたバージョンのソースファイルにより正確なヘッダを生成することができる。その後、将来の最適化されたビデオ要求及び予測符号化動作のために、新しく生成したヘッダを最適化されたソースファイルと共に記憶し430、キャッシュデータベース160中で更新する。将来行われる予測符号化動作を支援するために、ビデオトランスコーダ150は、変換処理に関する情報を記録し、予測ヘッダを更新して430、最適化されたバージョンの実際のフレームサイズ、ソースファイルの元のフレームサイズ、サイズが大き過ぎたために再変換を必要とした最後のフレームサイズ、及び最適化されたバージョンのソースファイルについて予測ヘッダが更新された回数等の情報を含めることができる。
[0071]以前に最適化されたソースファイルヘッダが存在しない場合406、ビデオ最適化器150は、自身の最良の推量を使用して新しい最適化されたソースファイルの属性を予測する422。この方法を使用すると、ビデオ最適化器150はしばしば、予測に基づいて生成された424ヘッダに不正確さを生じさせ、結果として最適化されたビデオフレームのサイズの見積もりが過度に大きく、又は小さくなる。上記のように、ビデオ最適化器150は、過大な見積もりを補償する場合はフレームの品質を下げなければならず、過小な見積もりの場合は冗長なビットでフレームを埋めなければならない。後に行われるパスでそれらのエラーを軽減することはできるが、ビデオ最適化器150がストリーミング動作中に2回目のパスを行うことはしばしば現実的でない。後に行われる最適化されたビデオ要求及び予測符号化動作のために、新しい予測ヘッダが最適化されたソースファイルと共に記憶される430。将来行われる予測符号化動作を支援するために、ビデオトランスコーダ150は、変換処理に関する情報を記録し、最適化されたバージョンの実際のフレームサイズ、ソースファイルの元のフレームサイズ、サイズが大き過ぎたために再変換を必要とした最後のフレームサイズ等の情報を含むように予測ヘッダを更新する430ことができる。
[構成に関するその他の事項]
[0072]ここに開示される構成は、キャッシュデータベースを導入することにより、最適化器でソースファイルを再度変換する必要なしに、最適化されたソースファイルを迅速に取得し、ユーザ機器にストリーミングすることを可能にするという利点を有する。従来のシステムでは、ソースファイルは全く最適化せずにユーザ機器にストリーミングされるか(その場合は限られたネットワーク帯域幅の使用が非効率になる)、又は、ユーザがソースファイルを要求するたびにソースファイルが最適化される(その場合は各最適化器の処理能力の使用が非効率になる)かのどちらかである。最適化器はしばしば互いに独立しており、互いと無関係に動作するので、キャッシュデータベースの導入により、どのローカルキャッシュが特定の最適化されたソースファイルを保持しているかを判定するための中央の管理用の一覧が可能になる。したがって、最適化されたソースファイルをより迅速にユーザに提供することができ、再度変換する必要がない。
[0073]本明細書を通じて、1つの事例として説明した構成要素、動作、又は構造を複数の事例として実施することができる。1つ又は複数の方法の個々の動作を別個の動作として図示及び説明したが、個々の動作の1つ又は複数を同時に行うことも可能であり、動作を説明した順序で行うことは必要とされない。例示的構成で別々の構成要素として提示した構造及び機能を、組み合わせて1つの構造又は構成要素として実施してもよい。同様に、1つの構成要素として提示した構造又は機能を別々の構成要素として実施してもよい。上記及びその他の変形、改変、追加、及び改良は、本明細書の主題の範囲に含まれる。
[0074]特定の実施形態は、ロジック、又はいくつかの構成要素、モジュール、又は機構を含むものとして本明細書に記載される。モジュールは、ソフトウェアモジュール(例えば機械読み取り可能媒体又は伝送信号に具現化されたコード)を構成しても、ハードウェアモジュールを構成してもよい。ハードウェアモジュールは、特定の動作を行うことが可能な有形の装置であり、任意の方式で構成又は適合することができる。例示的な実施形態では、1つ又は複数のコンピュータシステム(例えば独立型、クライアント若しくはサーバコンピュータシステム)又はコンピュータシステムの1つ又は複数のハードウェアモジュール(例えばプロセッサやプロセッサの群102)が、ソフトウェア(例えばアプリケーション若しくはアプリケーションの一部)によって、本明細書に記載の特定の動作を行うように動作するハードウェアモジュールとして構成されることができる。
[0075]各種の実施形態で、ハードウェアモジュールは機械的又は電子的に実施することができる。例えば、ハードウェアモジュールは、特定の動作を行うように恒久的に構成された専用の回路又はロジック(例えば利用者書き換え可能ゲートアレイ(FPGA)や特定用途集積回路(ASIC)などの特殊目的プロセッサ)からなることができる。ハードウェアモジュールは、特定の動作を行うようにソフトウェアによって一時的に構成されるプログラム可能なロジック又は回路(例えば汎用プロセッサや他のプログラム可能なプロセッサに包含される)からなる場合もある。ハードウェアモジュールを機械的に実施するか、専用の恒久的に構成された回路として実施するか、又は一時的に構成される回路(例えばソフトウェアで構成される)として実施するかの決定は、費用及び時間の考慮事項に応じて決まることが認識されよう。
[0076]本明細書に記載される例示的方法の各種動作(例えば図3A〜D及び図4で説明される)は、少なくとも部分的には、関連する動作を行うように一時的に(例えばソフトウェアにより)又は恒久的に構成された1つ又は複数のプロセッサ(例えばプロセッサ202)によって行うことができる。一時的に構成される場合でも、恒久的に構成される場合でも、そのようなプロセッサは、1つ又は複数の動作又は機能を行うように動作する、プロセッサによって実装されるモジュールを構成することができる。本明細書で参照するモジュールは、一部の例示的実施形態では、プロセッサによって実装されるモジュールからなることができる。
[0077]本明細書の一部は、アルゴリズム、又はマシンメモリ(例えばコンピュータメモリ204)内にビット又はバイナリのデジタル信号として記憶されたデータに対する動作の記号的表現として記述される。それらのアルゴリズム又は記号的表現は、データ処理技術の当業者が自身の作業の内容を他の当業者に伝えるために使用する技法の例である。本明細書で使用される「アルゴリズム」は、所望の結果をもたらす動作又は同様の処理の自己充足的なシーケンスである。この文脈で、アルゴリズム及び動作は、物理的な数量の物理的な操作を伴う。必ずしもそうとは限らないが、典型的には、そのような数量は、マシンによる記憶、アクセス、転送、組み合わせ、比較、又はその他の操作が可能な電気、磁気、又は光学信号の形態をとることができる。時には、原理的に一般に使用されているという理由から、そのような信号を、「データ」、「内容」、「ビット」、「値」、「要素」、「記号」、「文字」、「項」、「数」、「数値」等の語を用いて参照することが利便である。ただし、そのような語は単に利便な標識に過ぎず、該当する物理的な数量に関連付けられるものとする。
[0078]特に断らない限り、「処理する」、「演算する」、「計算する」、「判定する」、「提示する」、「表示する」等の語を使用した本明細書の記述は、1つ又は複数のメモリ(例えば揮発性メモリ、不揮発性メモリ、若しくはそれらの組み合わせ)、レジスタ内で物理的な(例えば電子、磁気、又は光学)数量として表されるデータを操作又は変換するマシン(例えばコンピュータ)、又は情報を受信、記憶、送信、若しくは表示する他のマシン構成要素の動作又は処理を意味する。
[0079]本明細書で使用される場合、「一実施形態」の参照は、その実施形態との関連で説明する特定の要素、特徴、構造、又は特性が少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所における「一実施形態では」という語句の出現は、すべてが同じ実施形態を指すとは限らない。
[0080]一部の実施形態は、「結合された(coupled)」及び「接続された(connected)」という表現とそれらの派生語を用いて説明している。例えば、一部の実施形態は、用語「結合された」を使用して説明することにより、2つ以上の要素が直接物理的又は電気的に接触していることを意味する。ただし、用語「結合された」は、2つ以上の要素が互いと直接接触しておらず、しかしなお互いと共同又は相互作用することを意味する場合もある。実施形態はこれに関して制限されない。
[0081]本明細書で使用される場合、用語「備える(comprises、comprising)」、「含む(includes、including)」、「有する(has、having)」、又はそれらの変化形は、非排他的な包含を含むことを意図する。例えば、要素の列挙を含むプロセス、方法、物品、又は装置は、必ずしもそれらの要素に限定されず、明示的には記載されない他の要素、又はそのようなプロセス、方法、物品、若しくは装置に固有の他の要素を含むことができる。さらに、逆に明確に指摘しない限り、「又は(or)」は包含的なORを意味し、排他的なORではない。例えば、「条件A又はB」は、Aが真(又は存在する)且つBが偽(又は存在しない)、Aが偽(又は存在しない)且つBが真(又は存在する)、及びAとBの両方が真(又は存在する)、のいずれかの時に成立する。
[0082]また、「a」又は「an」の使用は、本明細書では実施形態の要素及び構成要素を説明するために用いられる。これは単に便宜的なものであり、本発明の概略的な認識を与えるためである。このような記述は、1つ又は少なくとも1つを含むものと解釈すべきであり、単数形は、他の意味であることが明らかな場合を除いて複数形も含む。
[0083]本開示を読めば、当業者は、本明細書に開示される原理を通じてHTMLアンダーレイと共に対話型のビデオ広告を提供するシステム及び方法のさらに他の代替の構造的及び機能的な設計を認識されよう。したがって、特定の実施形態及び応用例を例示し説明したが、開示される実施形態は本明細書に開示される通りの構造及び構成要素に限定されないことを理解されたい。当業者には明らかであろう各種の改変、変更、及び変形を、添付の特許請求の範囲で定義される主旨及び範囲から逸脱することなく、本明細書に開示される方法及び装置の構成、動作、及び詳細に加えることができる。

Claims (13)

  1. 最適化されたビデオキャッシングの方法であって、
    複数のビデオ最適化サーバに記憶された一つまたは複数のソースファイルの複数の最適化されたバージョンに対応する複数の参照キーを含むキャッシュデータベースをビデオ最適化器によって保持するステップであり、各参照キーは、前記ソースファイルの前記最適化されたバージョンのパラメータを指定すると共に前記ソースファイルの識別子と前記ソースファイルの前記最適化されたバージョンを記憶するビデオ最適化サーバの識別子とを含む、ステップと、
    前記ビデオ最適化器で前記ソースファイルを最適化する要求をクライアント機器から受信するステップであり、前記ソースファイルは配信元サーバに記憶されており、前記要求は、前記ソースファイルを最適化するためのパラメータを指定するキーと前記ソースファイルの識別子とを含む、ステップと、
    前記キャッシュデータベースに対する照会を前記キーに基づいて生成するステップと、
    前記キャッシュデータベースから、前記キーが前記データベースに保持されている参照キーと一致するかどうかを示す応答を受信するステップと、
    前記キーが前記参照キーと一致することを示す前記キャッシュデータベースの応答に応答して、前記クライアント機器に前記ソースファイルの前記最適化されたバージョンを要求させるために、前記キーと前記参照キーによって指定された前記ビデオ最適化サーバのアドレスとを含むリダイレクト要求を前記クライアント機器へ送信するステップと、
    を含む方法。
  2. 前記キーが前記参照キーと一致することを示す前記キャッシュデータベースの応答に応答して、
    前記参照キーによって指定された前記ビデオ最適化サーバに、前記ビデオ最適化サーバに記憶されている前記ソースファイルの前記最適化されたバージョンの要求を送信するステップをさらに含む請求項1に記載の方法。
  3. 信した前記ソースファイルの前記最適化されたバージョンの一部を記憶するステップをさらに含む請求項2に記載の方法。
  4. 前記参照キーによって指定された前記ビデオ最適化サーバに記憶されている前記ソースファイルの前記最適化されたバージョンの前記要求と共に、前記ビデオ最適化サーバに記憶されている前記最適化された前記ソースファイルを前記ビデオ最適化器で複製する要求を送信するステップと、
    前記ビデオ最適化器に記憶されている前記ソースファイルの前記最適化されたバージョンを記憶するのに応答して、前記キャッシュデータベースを更新する命令を前記キャッシュデータベースに送信するステップと、
    をさらに含む請求項2に記載の方法。
  5. 前記キーは、送信元署名を含み、前記送信元署名は、前記ソースファイルの一部分のハッシュである請求項1に記載の方法。
  6. 前記キャッシュデータベースは、前記ソースファイルの前記最適化されたバージョンを記憶している複数の最適化サーバを識別するデータエントリを含み、前記エントリは、前記キャッシュデータベースに送信される命令を通じて変更されて、前記ソースファイルの前記最適化されたバージョンが記憶されている場所を更新する請求項1に記載の方法。
  7. 憶されている前記ソースファイルの前記最適化されたバージョンは、生成された最適化された前記ソースファイル全体のうち所定のセグメントを含む請求項1に記載の方法。
  8. 前記キーが、前記ソースファイルの前記最適化されたバージョンのどの参照キーとも一致しないことを示す前記キャッシュデータベースの応答に応答して、
    記ソースファイルの要求を前記配信元サーバに送信するステップと、
    前記配信元サーバから前記ソースファイルをストリーミングするステップと、
    所定の変換設定に基づいてストリームを変換し、前記ソースファイルの前記最適化されたバージョンを記憶することにより、前記ソースファイルの前記最適化されたバージョンを生成するステップと、
    前記ソースファイルの前記最適化されたバージョンを前記クライアント機器で再生するためにストリーミングするステップと、
    前記最適化サーバに記憶された前記最適化された前記ソースファイルに対応する参照キーで前記キャッシュデータベースを更新する命令を前記キャッシュデータベースに送信するステップと、
    をさらに含む請求項1に記載の方法。
  9. 前記キーに含まれる前記ソースファイルの前記識別子が前記参照キーに含まれる前記ソースファイルの前記識別子と一致し、前記キーによって指定された最適化パラメータが前記ソースファイルの前記最適化されたバージョンの前記パラメータと一致するのに応答して、前記キーが前記参照キーと一致する、請求項1に記載の方法。
  10. 最適化されたビデオキャッシングのシステムであって、
    プロセッサと、
    実行可能コンピュータプログラム命令を記憶した非一時的なコンピュータ読み取り可能記憶媒体と、
    を備え、
    前記コンピュータプログラム命令は、実行されると前記プロセッサに、
    複数のビデオ最適化サーバに記憶された一つまたは複数のソースファイルの複数の最適化されたバージョンに対応する複数の参照キーを含むキャッシュデータベースをビデオ最適化器によって保持させ、各参照キーは、前記ソースファイルの前記最適化されたバージョンのパラメータを指定すると共に前記ソースファイルの識別子と前記ソースファイルの前記最適化されたバージョンを記憶するビデオ最適化サーバの識別子とを含み、
    前記ソースファイルを最適化する要求をクライアント機器から受信させ、前記ソースファイルは配信元サーバに記憶されており、前記要求は、前記ソースファイルを最適化するためのパラメータを指定するキーと前記ソースファイルの識別子とを含み、
    前記キャッシュデータベースに対する照会を前記キーに基づいて生成させ、
    前記キャッシュデータベースから、前記キーが前記データベースに保持されている参照キーと一致するかどうかを示す応答を受信させ、
    前記キーが前記参照キーと一致することを示す前記キャッシュデータベースの応答に応答して、前記クライアント機器に前記ソースファイルの前記最適化されたバージョンを要求させるために、前記キーと前記参照キーによって指定された前記ビデオ最適化サーバのアドレスとを含むリダイレクト要求を前記クライアント機器へ送信させる、
    システム。
  11. 前記キーが前記参照キーと一致することを示す前記キャッシュデータベースの応答に応答して、前記プロセッサに、
    前記参照キーによって指定された前記ビデオ最適化サーバに、前記ビデオ最適化サーバに記憶されている前記ソースファイルの前記最適化されたバージョンの要求を送信させる命令をさらに含む請求項10に記載のシステム。
  12. 前記キーが、前記ソースファイルの前記最適化されたバージョンのどの参照キーとも一致しないことを示す前記キャッシュデータベースの応答に応答して、前記プロセッサに、
    記ソースファイルの要求を前記配信元サーバに送信させ、
    前記配信元サーバから前記ソースファイルをストリーミングさせ、
    所定の変換設定に基づいてストリームを変換し、前記ソースファイルの前記最適化されたバージョンを記憶することにより、前記ソースファイルの前記最適化されたバージョンを生成させ、
    前記ソースファイルの前記最適化されたバージョンを前記クライアント機器で再生するためにストリーミングさせ、
    前記最適化サーバに記憶された前記最適化された前記ソースファイルに対応する参照キーで前記キャッシュデータベースを更新する命令を前記キャッシュデータベースに送信させる、
    命令をさらに含む請求項10に記載のシステム。
  13. 前記キーに含まれる前記ソースファイルの前記識別子が前記参照キーに含まれる前記ソースファイルの前記識別子と一致し、前記キーによって指定された最適化パラメータが前記ソースファイルの前記最適化されたバージョンの前記パラメータと一致するのに応答して、前記キーが前記参照キーと一致する、請求項10に記載のシステム。
JP2015523261A 2012-07-18 2013-07-18 ジャストインタイムの分散型ビデオキャッシュ Active JP5961850B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261673188P 2012-07-18 2012-07-18
US61/673,188 2012-07-18
PCT/US2013/051126 WO2014015168A2 (en) 2012-07-18 2013-07-18 Just-in-time distributed video cache

Publications (3)

Publication Number Publication Date
JP2015530781A JP2015530781A (ja) 2015-10-15
JP2015530781A5 JP2015530781A5 (ja) 2015-12-10
JP5961850B2 true JP5961850B2 (ja) 2016-08-02

Family

ID=49947523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015523261A Active JP5961850B2 (ja) 2012-07-18 2013-07-18 ジャストインタイムの分散型ビデオキャッシュ

Country Status (6)

Country Link
US (3) US9154361B2 (ja)
EP (1) EP2875635B1 (ja)
JP (1) JP5961850B2 (ja)
KR (1) KR101629338B1 (ja)
CN (1) CN104604240B (ja)
WO (1) WO2014015168A2 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819984B1 (en) 2007-03-26 2017-11-14 CSC Holdings, LLC Digital video recording with remote storage
US9094714B2 (en) 2009-05-29 2015-07-28 Cognitive Networks, Inc. Systems and methods for on-screen graphics detection
EP2706467A1 (en) * 2012-09-05 2014-03-12 Awingu Nv Method for accessing a content item in a cloud storage system, and a corresponding cloud broker, cloud cache agent and client application
WO2014037487A1 (en) * 2012-09-07 2014-03-13 Nokia Siemens Networks Oy Mechanism and apparatus to perform cooperative resource management in wireless networks
US8782285B1 (en) * 2013-12-06 2014-07-15 Limelight Networks, Inc. Lazy transcoding and re-transcoding of media objects in an online video platform
US20140115056A1 (en) * 2012-10-22 2014-04-24 Apple Inc. Book thinning
US8813245B1 (en) 2013-01-25 2014-08-19 Amazon Technologies, Inc. Securing content using pipelines
US9183049B1 (en) * 2013-01-25 2015-11-10 Amazon Technologies, Inc. Processing content using pipelines
US9219784B2 (en) 2013-03-07 2015-12-22 International Business Machines Corporation Synchronization of a server side deduplication cache with a client side deduplication cache
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
US9800904B2 (en) * 2014-05-13 2017-10-24 Piksel, Inc. Media asset duplication
US9525893B2 (en) * 2014-05-28 2016-12-20 Verizon Patent And Licensing Inc. Methods and systems for managing storage of media program copies within a network digital video recording system
CN104159249B (zh) * 2014-07-30 2018-05-18 华为技术有限公司 一种业务数据管理的方法、装置及***
JP6331967B2 (ja) * 2014-10-27 2018-05-30 ソニー株式会社 通信装置および通信方法
US9936040B2 (en) 2014-12-19 2018-04-03 Citrix Systems, Inc. Systems and methods for partial video caching
US10165033B2 (en) * 2014-12-30 2018-12-25 Sling Media LLC Live encoding for distribution of long tail media content
US20160226790A1 (en) * 2015-01-30 2016-08-04 Comcast Cable Communications, Llc Provisioning and managing resources
CA2973740C (en) 2015-01-30 2021-06-08 Inscape Data, Inc. Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device
US20160283436A1 (en) * 2015-03-23 2016-09-29 Comcast Cable Communications, Llc Distributed microcaching for content delivery
KR101668957B1 (ko) * 2015-07-09 2016-10-24 라인 가부시키가이샤 통신 비용의 절감을 위한 컨텐츠 스트리밍 서비스 방법 및 시스템
BR112018000801A2 (pt) 2015-07-16 2018-09-04 Inscape Data Inc sistema, e método
US10080062B2 (en) 2015-07-16 2018-09-18 Inscape Data, Inc. Optimizing media fingerprint retention to improve system resource utilization
EP3323054A1 (en) * 2015-07-16 2018-05-23 Inscape Data, Inc. Prediction of future views of video segments to optimize system resource utilization
CA2992319C (en) 2015-07-16 2023-11-21 Inscape Data, Inc. Detection of common media segments
CN106612456A (zh) * 2015-10-26 2017-05-03 中兴通讯股份有限公司 网络视频播放方法和***及用户终端、家庭流服务节点
US10462520B2 (en) * 2016-02-25 2019-10-29 Nippon Telegraph And Telephone Corporation Pacing control device, pacing control method, and program
JP6483044B2 (ja) * 2016-03-17 2019-03-13 Kddi株式会社 保持しているオブジェクトの変換を行う転送装置及びプログラム
US10225309B1 (en) 2016-03-22 2019-03-05 Amazon Technologies, Inc. Monitoring of media pipeline health using tracing
US10200428B1 (en) 2016-03-30 2019-02-05 Amazon Technologies, Inc. Unicast routing of a media stream to subscribers
CN108243116B (zh) * 2016-12-23 2021-09-14 华为技术有限公司 一种流量控制方法及交换设备
US10904329B1 (en) 2016-12-30 2021-01-26 CSC Holdings, LLC Virtualized transcoder
EP3410728A1 (en) * 2017-05-30 2018-12-05 Vestel Elektronik Sanayi ve Ticaret A.S. Methods and apparatus for streaming data
US10742736B2 (en) 2017-12-19 2020-08-11 Western Digital Technologies, Inc. Integrated erasure coding for data storage and transmission
US10649980B2 (en) * 2018-03-07 2020-05-12 Xanadu Big Data, Llc Methods and systems for resilient, durable, scalable, and consistent distributed timeline data store
US20190394512A1 (en) * 2018-06-25 2019-12-26 Verizon Digital Media Services Inc. Low Latency Video Streaming Via a Distributed Key-Value Store
US11695978B2 (en) 2018-07-05 2023-07-04 Mux, Inc. Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
US11653040B2 (en) * 2018-07-05 2023-05-16 Mux, Inc. Method for audio and video just-in-time transcoding
EP3797518A1 (en) * 2018-08-21 2021-03-31 Rovi Guides, Inc. Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media
CN109639813B (zh) * 2018-12-24 2022-04-12 北京京东尚科信息技术有限公司 视频文件传输处理方法及装置、电子设备和存储介质
US10972761B2 (en) 2018-12-26 2021-04-06 Purdue Research Foundation Minimizing stall duration tail probability in over-the-top streaming systems
US10803480B2 (en) 2019-01-07 2020-10-13 Alphonso Inc. Bidding agent with optimized reach limitation
US11151609B2 (en) 2019-01-07 2021-10-19 Alphonso Inc. Closed loop attribution
US10873785B2 (en) * 2019-01-07 2020-12-22 Alphonso Inc. Content recommendation system and method-based implicit ratings
US11037205B2 (en) 2019-01-07 2021-06-15 Alphonso Inc. Bidding agent using ad opportunity source to limit ad reach
CN109889919A (zh) * 2019-03-27 2019-06-14 深圳市网心科技有限公司 一种视频转码方法、装置、***及介质
US11527266B2 (en) * 2019-04-04 2022-12-13 Wowza Media Systems, LLC Artificial intelligence analysis of multimedia content
CN110099293B (zh) * 2019-04-30 2021-06-01 广州酷狗计算机科技有限公司 播放视频的方法、装置、设备及可读存储介质
US11133037B1 (en) 2020-07-17 2021-09-28 Idomoo Ltd System and method for generating dynamic media
CN112203031B (zh) * 2020-08-12 2023-06-02 深圳市豪恩汽车电子装备股份有限公司 数字视频缓存***及方法
CN112770132B (zh) * 2021-01-05 2023-01-24 北京东方网信科技股份有限公司 一种代理缓存中降低mp4视频出口流量的方法及***
US11284165B1 (en) 2021-02-26 2022-03-22 CSC Holdings, LLC Copyright compliant trick playback modes in a service provider network
US20220321623A1 (en) * 2021-04-05 2022-10-06 Ademco Inc. Establishing a producer / consumer session in the cloud
US11650957B2 (en) * 2021-06-01 2023-05-16 International Business Machines Corporation Receiving at a cache node notification of changes to files in a source file system served from a cache file system at the cache node
US11645238B2 (en) 2021-06-01 2023-05-09 International Business Machines Corporation Notifying a cache file system of changes to files in a source file system served from the cache file system
US11848990B2 (en) * 2021-10-15 2023-12-19 Siden, Inc. Method and system for distributing and storing content using local clouds and network clouds
US12003559B1 (en) * 2023-05-15 2024-06-04 Netflix, Inc. Techniques for delivering current media content via content delivery networks

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE512880C2 (sv) * 1998-07-03 2000-05-29 Ericsson Telefon Ab L M Ett cacheservernät
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
US7636792B1 (en) * 2001-07-13 2009-12-22 Oracle International Corporation Methods and systems for dynamic and automatic content creation for mobile devices
US6954456B2 (en) * 2001-12-14 2005-10-11 At & T Corp. Method for content-aware redirection and content renaming
US8484282B2 (en) * 2002-03-21 2013-07-09 International Business Machines Corporation High-speed content transformation engine
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US20040098463A1 (en) * 2002-11-19 2004-05-20 Bo Shen Transcoding-enabled caching proxy and method thereof
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
US20070174471A1 (en) * 2003-04-30 2007-07-26 Cedric Van Rossum Secure, continous, proxy-optimized, device-to-device data download reception system and method of use
US20050165941A1 (en) * 2004-01-22 2005-07-28 Edward Eytchison Methods and apparatuses for streaming content
US20060190616A1 (en) * 2005-02-04 2006-08-24 John Mayerhofer System and method for aggregating, delivering and sharing audio content
FR2884671B1 (fr) * 2005-04-19 2007-07-27 Streamezzo Sa Procede d'optimisation de la gestion d'un cache de serveur pouvant etre consulte par des terminaux clients de caracteristiques differentes
US8181107B2 (en) * 2006-12-08 2012-05-15 Bytemobile, Inc. Content adaptation
WO2008098249A1 (en) * 2007-02-09 2008-08-14 Dilithium Networks Pty Ltd. Method and apparatus for the adaptation of multimedia content in telecommunications networks
US20100281042A1 (en) * 2007-02-09 2010-11-04 Novarra, Inc. Method and System for Transforming and Delivering Video File Content for Mobile Devices
US7962640B2 (en) * 2007-06-29 2011-06-14 The Chinese University Of Hong Kong Systems and methods for universal real-time media transcoding
US7818355B2 (en) * 2007-11-07 2010-10-19 Mills Brendon W System and method for managing content
US8145779B2 (en) * 2008-04-08 2012-03-27 Microsoft Corporation Dynamic server-side media transcoding
US8290036B2 (en) * 2008-06-11 2012-10-16 Optibase Technologies Ltd. Method, apparatus and system for concurrent processing of multiple video streams
US8706910B2 (en) * 2008-10-28 2014-04-22 Panzura, Inc. Dynamically adaptive network-based data processing system and method
JP2010273298A (ja) * 2009-05-25 2010-12-02 Broad Earth Inc コンテンツ配信システム、配信制御装置及び配信制御プログラム
CN102055964A (zh) * 2009-11-11 2011-05-11 腾讯科技(深圳)有限公司 一种多媒体文件转码方法和转码器
US8516074B2 (en) * 2009-12-01 2013-08-20 Vantrix Corporation System and methods for efficient media delivery using cache
WO2011106009A1 (en) 2010-02-26 2011-09-01 Mobovivo, Inc. Intelligent optimization of video encoding during video content delivery
US9386116B2 (en) 2010-05-13 2016-07-05 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
WO2012016226A1 (en) * 2010-07-30 2012-02-02 Bytemobile, Inc. Systems and methods for video cache indexing
US8458362B2 (en) * 2010-09-30 2013-06-04 Comcast Cable Communications, Llc Delivering content in multiple formats
WO2012068489A1 (en) 2010-11-18 2012-05-24 Skyfire Labs, Inc. Client-selected network services
US9418353B2 (en) * 2010-12-20 2016-08-16 Akamai Technologies, Inc. Methods and systems for delivering content to differentiated client devices
US8639718B2 (en) * 2011-12-02 2014-01-28 Cisco Technology, Inc. Systems and methods for client transparent video readdressing

Also Published As

Publication number Publication date
EP2875635B1 (en) 2019-09-04
US9800633B2 (en) 2017-10-24
KR20150038170A (ko) 2015-04-08
CN104604240A (zh) 2015-05-06
US20180007105A1 (en) 2018-01-04
JP2015530781A (ja) 2015-10-15
CN104604240B (zh) 2018-01-26
WO2014015168A2 (en) 2014-01-23
US20140025837A1 (en) 2014-01-23
WO2014015168A3 (en) 2014-03-27
US10484442B2 (en) 2019-11-19
EP2875635A2 (en) 2015-05-27
US20150381677A1 (en) 2015-12-31
US9154361B2 (en) 2015-10-06
EP2875635A4 (en) 2016-01-20
KR101629338B1 (ko) 2016-06-13

Similar Documents

Publication Publication Date Title
JP5961850B2 (ja) ジャストインタイムの分散型ビデオキャッシュ
US20200162795A1 (en) Systems and methods for internet video delivery
US10397293B2 (en) Dynamic chunking for delivery instances
US8392615B2 (en) Dynamic variable rate media delivery system
US8745262B2 (en) Adaptive network content delivery system
US8301733B2 (en) Dynamic chunking for delivery instances
US8612668B2 (en) Storage optimization system based on object size
US20170149860A1 (en) Partial prefetching of indexed content
EP2359536B1 (en) Adaptive network content delivery system
US20060230170A1 (en) Streaming media content delivery system and method for delivering streaming content
US8219556B2 (en) Metadata collecting device, method and computer readable medium
US10375444B2 (en) Partial video pre-fetch
US20170140443A1 (en) Dynamic manifest generation for delivery instances
WO2016063161A1 (en) Partial prefetching of indexed content
JP2023520648A (ja) ネットワーク内でストリーミングされたコンテンツをクライアントデバイスのプレーヤ上で再生するための方法
US11496803B2 (en) Video stream switching service
CN111726339A (zh) 一种直播流快速截图***
WO2014137639A1 (en) Dynamic chunking for delivery instances

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151022

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20151022

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20151120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160412

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160603

R150 Certificate of patent or registration of utility model

Ref document number: 5961850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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