JP2006506738A - トランスコード可能なキャッシングプロキシおよびその方法 - Google Patents

トランスコード可能なキャッシングプロキシおよびその方法 Download PDF

Info

Publication number
JP2006506738A
JP2006506738A JP2004553560A JP2004553560A JP2006506738A JP 2006506738 A JP2006506738 A JP 2006506738A JP 2004553560 A JP2004553560 A JP 2004553560A JP 2004553560 A JP2004553560 A JP 2004553560A JP 2006506738 A JP2006506738 A JP 2006506738A
Authority
JP
Japan
Prior art keywords
version
caching
content
caching proxy
proxy
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.)
Pending
Application number
JP2004553560A
Other languages
English (en)
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006506738A publication Critical patent/JP2006506738A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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/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/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/565Conversion or adaptation of application format or content
    • 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
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • 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
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data

Landscapes

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

Abstract

【課題】 コンテンツを配信するための方法(300、400)およびシステム(120)を提供する。
【解決手段】 キャッシングプロキシ(120)において、コンテンツソース(110)からコンテンツオブジェクトの第1のバージョンが受信される。コンテンツオブジェクトの第1のバージョンはキャッシングプロキシにおいてトランスコードされ、第2のバージョンが作成される。キャッシングプロキシにおいて第1のバージョンおよび第2のバージョンのうちの少なくとも一方をキャッシュするか否かが決定される。その決定は、キャッシング方法に従って行われ、その後、実施される。

Description

本発明の実施形態はコンテンツデリバリネットワークに関する。
より具体的には、本発明の実施形態はキャッシングプロキシに関する。
インターネットにおいてキャッシングが広く用いられる前には、クライアントによって要求されるコンテンツのアイテム(コンテンツオブジェクト)は大抵の場合に元のコンテンツサーバ(コンテンツオブジェクトのソース)によって提供されていた。
コンテンツソースおよびクライアントは典型的には、互いからかなり離れて位置しており、その結果として多くの場合に、応答時間が遅くなり、帯域幅が狭くなり、ロスレートが高くなり、スケーラビリティを欠いていた。
応答時間、帯域幅およびロスレートは、多数のクライアントが、コンテンツソースから1つのオブジェクトを同時に要求しようとするときにも、大きく影響を及ぼされる可能性があった。
コンテンツデリバリネットワークのような種々の形態のキャッシングは、これらの問題のうちのいくつかを克服するのを助けてきた。
一般的に、コンテンツデリバリネットワークは、クライアントの近くにサーバ、さらに具体的にはキャッシングプロキシとも呼ばれるサーバを配置する。
コンテンツオブジェクトは各キャッシングプロキシにおいて複製され、キャッシュされることができる。
クライアントの近くにあるキャッシングプロキシ上にコンテンツをキャッシュすることは、応答時間が短くなる、帯域幅が広くなる、ロスレートが低くなる、スケーラビリティが改善される、ネットワーク(バックボーン)リソースのための要件が緩和されることを含む、数多くの改善に繋がってきた。
コンテンツデリバリネットワークは、コンテンツのサイズがキャッシュのサイズと比べて相対的に小さいときに良好に機能する。
たとえば、ウエブページは一般的に、そのサイズが1メガバイトよりもはるかに小さい。
したがって、各キャッシングプロキシにおいて、この種のコンテンツを実際に複製することができる。
ウエブコンテンツの多数のインスタンスを、大量のメモリ資源を必要とすることなく、あるいは利用可能なメモリのかなりの部分を消費することなく、各キャッシングプロキシ上に記憶することができる。
しかしながら、コンテンツが、サイズが大きく、かつ長時間を要する可能性があるマルチメディアデータを含むときに、キャッシングに問題が生じる可能性がある。
キャッシュが大きい場合であっても、マルチメディアコンテンツの少数のアイテムを保持しただけで、一杯になってしまう可能性がある。
たとえば、DVD(デジタルビデオディスク)品質の映像は最大で、サイズが4.7ギガバイト(GB)および長さが2時間(MPEG(Moving Picture Expert Group)−2圧縮に基づく)に達する場合がある。
結果として、50GBキャッシュは、DVD品質の映像を約10個しか保持することができない。
したがって、マルチメディアデータの場合、クライアントの近くにあるキャッシングプロキシにおいて多数のDVD品質の映像を複製し、各映像のコピーを記憶することは実用的な解決策ではない。
非常に大きなメモリが必要とされるようになるか、あるいは少数の映像しか記憶することができないであろう。
一方、中央のソースあるいは限られた数のキャッシングプロキシのみにマルチメディアコンテンツの多数のアイテムを記憶するだけでは、先に記載し
た問題が再び生じる。
上記の問題は、多数の異なるコンテンツオブジェクトがあるだけでなく、各オブジェクトの多数のバージョンがあることを考えるときに、さらに酷くなる。
エンドユーザによって利用される多種多様なタイプのネットワーク接続に対応するために、種々のバージョンが存在する場合がある。
たとえば、各コンテンツオブジェクトが、ダイヤルアップ接続用のあるビットレートと、ブロードバンド接続用の別のビットレートとで符号化される場合がある。
さらに、現時点で利用されている種々のタイプのクライアント装置(たとえば、デスクトップ、ラップトップ、携帯情報端末、携帯電話など)によって提供される種々の能力に対応するために、種々のバージョンが存在する場合がある。
装置の種類が異なると通常は処理および表示能力が異なる。
たとえば、携帯情報端末はストリーミング型の映像を受信し、表示することはできるが、デスクトップの処理および表示能力は持たない。
したがって、携帯情報端末用に、その映像のビットレートが低く/解像度が低いバージョンが作成され、一方、デスクトップは、ビットレートが高く、かつ解像度が高い異なるバージョンを利用する。
一般的に、使用されている種々のタイプのクライアント装置および種々のタイプの接続に対応するために、典型的には各コンテンツオブジェクトの種々のバージョンが存在するであろう。
同じオブジェクトであっても、異なるバージョンが要求される場合には、キャッシングプロキシはオブジェクト要求を個別に処理する。
それゆえ、各キャッシングプロキシは、同じオブジェクトの種々のバージョンを記憶している可能性が高い。
またコンテンツソースにも、同じオブジェクトの種々のバージョンが存在する場合がある。
先に説明されたように、キャッシングプロキシにおいて記憶することは、コンテンツソースにおいて記憶するよりも優れたいくつかの利点を提供する。
しかしながら、いずれの場合でも、記憶空間が非効率的に利用されている。
したがって、エンドユーザに対してコンテンツオブジェクトを配信する、より効率的な方法が望まれる。
本発明の実施形態はそのような改善を提供する。
米国特許出願公開第2002/007413号 米国特許出願公開第2002/065899号
本発明の実施形態は、コンテンツを配信するための方法およびシステムに関する。
キャッシングプロキシにおいて、コンテンツソースからコンテンツオブジェクトの第1のバージョンが受信される。
コンテンツオブジェクトの第1のバージョンはキャッシングプロキシにおいてトランスコードされ、第2のバージョンが作成される。
キャッシングプロキシにおいて第1のバージョンおよび第2のバージョンのうちの少なくとも一方をキャッシュするか否かが決定される。
その決定は、キャッシング方法に従って行われ、その後、実施される。
本明細書において援用され、かつ本明細書の一部を構成する添付の図面は、本発明の実施形態を例示しており、その記述とともに、本発明の原理を説明するのに有用である。
本明細書において参照される図面は、具体的に述べられる場合を除いて、縮尺どおりに描かれているものと理解されるべきではない。
ここで本発明の種々の実施形態が詳細に参照されることになり、その数々の例が添付の図面に示される。
本発明はこれらの実施形態とともに説明されることになるが、本発明をこれらの実施形態に限定することは意図していないことは理解されよう。
それどころか、本発明は、添付の特許請求の範囲によって規定されるような、本発明の精神および範囲内に含まれる場合がある、代替形態、変更形態および同等形態を網羅することが意図されている。
さらに、本発明の以下の説明では、本発明を完全に理解してもらうために、数多くの具体的な細部が述べられる。
他の事例では、既知の方法、手順、構成要素および回路は、本発明の態様を不必要に曖昧にしないように詳細には説明されていない。
本発明の実施形態は、本明細書において一般的にメディアデータ、マルチメディアデータ、コンテンツあるいはコンテンツオブジェクトと呼ばれる、映像系データ、音声系データ、画像系データ、ウエブページ系データ、グラフィックスデータなどで用いるのに適している。
明瞭かつ簡潔にするために、以下の説明および例は時に、具体的には映像データを取り扱う。
しかしながら、本発明の実施形態は、映像データで用いることに限定されない。
図1は、本発明の一実施形態によるコンテンツを配信するためのネットワークあるいはシステム100を示す。
システム100は図示されるもの以外の構成要素を含むことができることは理解されたい。
またシステム100は、図示される種々の構成要素を2つ以上含むこともできる。
これらの構成要素のそれぞれの機能は後に説明する。
これらの構成要素は、説明される機能以外の機能を実施することができることは理解されたい。
本実施形態では、図示されるように、システム100の種々の構成要素が互いに通信することができる。
すなわち、本実施形態では、コンテンツソース110はキャッシングプロキシ120と通信し、キャッシングプロキシはさらに、通信チャネル125を介してクライアント装置130と通信する。
一般的には、キャッシングプロキシ120は典型的には、ネットワークあるいはシステム100の端に配置され、コンテンツソース110に対するトラフィックおよびコンテンツソース110からのトラフィックを低減するとともに、クライアント装置130によって認識される待ち時間も低減する。
後に明らかになるように、本発明の種々の実施形態によれば、キャッシングプロキシ120はトランスコーダの機能を組み込む。
したがって、キャッシングプロキシ120はトランスコーディングおよびキャッシングを実行する。
クライアント装置130には、コンピュータシステム(ラップトップ、デスクトップあるいはノートブックなど)、ハンドヘルド装置(携帯情報端末など)、携帯電話、あるいは一般的に、ユーザがコンテンツのアイテムにアクセスし、そのアイテムを実行(たとえば表示)できる能力を提供する、別のタイプの装置を用いることができる。
先に述べたように、実際には、キャッシングプロキシ120にアクセスする数多くのクライアント装置が存在する場合がある。
異種ネットワークでは、これらのクライアント装置はそれぞれ異なる属性およびプロファイルを有することができる。
これらの属性は、限定はしないが、種々のクライアント装置の表示、電力、通信および計算能力および特性を含む。
通信は構成要素間で直に行うことができるか、あるいは媒介装置あるいはノード(図示せず)を通して間接的に行うことができる。
また通信は有線または無線、あるいは有線および無線の組み合わせを用いることができる。
一実施形態では、通信はワールド・ワイド・ウエブ(あるいはインターネット)上で行われる。
実際には、キャッシングプロキシ120の下流に数多くの通信チャネルが存在する場合がある。
異種ネットワークでは、これらの通信チャネル(通信チャネル125によって例示される)はそれぞれ種々の属性を有することができる。
たとえば、1つのチャネルが、別のチャネルよりも帯域幅が広い(データ転送速度が高い)という特徴を有することができる。
図2は、本発明の一実施形態によるキャッシングプロキシ120によって提供される機能要素を示すブロック図である。
本実施形態では、キャッシングプロキシ120は、クライアントインターフェース210と、入力バッファ220と、トランスコーダ230と、キャッシングシステム240と、出力バッファ250と、サーバインターフェース260とを含む。
これらの要素は、図示および説明を明瞭にするために個別に描かれている。
しかしながら、これらの要素がキャッシングプロキシ120内に個別の実体として存在しない場合もあることは理解されたい。
たとえば、入力バッファ220、キャッシングシステム240および出力バッファ250は単一のメモリユニットにおいて具現される場合があり、トランスコーダ230は、ハードウエア、ファームウエア、あるいはおそくらキャッシングシステムおよびバッファと同じメモリユニット内のコンピュータ読取り可能命令として記憶されるソフトウエアにおいて具現される場合がある。
同様に、クライアントインターフェース210およびサーバインターフェース260は、個別の要素あるいは同じ要素内のソフトウエア、ファームウエアあるいはハードウエアとして具現される場合がある。
一般的に、本発明の種々の実施形態によれば、キャッシングプロキシ120は、図2の種々の要素によって提供される能力および機能を提供する。
さらに、キャッシングプロキシ120は、本明細書に説明するものに加えて、他の能力および機能を提供することができる。
本実施形態では、クライアントインターフェース210によって、キャッシングプロキシ120は、コンテンツソース110に対するクライアントとして機能できるようになる。
一実施形態では、クライアントインターフェース210はHTTP(ハイパーテキスト転送プロトコル)クライアントとして、あるいはRTP/RTSP(リアルタイムプロトコル/リアルタイムストリーミングプロトコル)クライアントとして機能する。
ある程度同じようにして、サーバインターフェース260によって、キャッシングプロキシ120は、エンドユーザ(たとえば、クライアント装置130)に対するサーバとして機能できるようになる。
一実施形態では、サーバインターフェース260は、HTTPクライアントとして、あるいはRTP/RTSPクライアントとして機能する。
クライアントインターフェース210およびサーバインターフェース260とともに他のプロトコルを用いることができる。
本実施形態では、キャッシングプロキシ120は、映像を配信するために以下の役割を果たす。
コンテンツソース110からリンク(あるいはアップリンク)上でストリーミング型コンテンツが受信される。
そのコンテンツは圧縮(符号化)されても、されなくてもよい。
そのコンテンツは暗号化されても、されなくてもよい。
受信されたストリーム(具体的には、受信されたストリームのある部分)は、入力バッファ220にバッファリングされるか、キャッシングシステム240にキャッシュされるか、あるいはトランスコーダ230に直に送信される場合がある。
また受信されたストリームは、サーバインターフェース260を介して、リンク(あるいはダウンリンク)上でクライアント装置130に送信される場合もある。
受信されたストリームがバッファリングされる場合には、トランスコーダ230が、トランスコードするために、入力バッファ220からビットを連続して取り込むであろう。
またトランスコーダ230は、トランスコードするために、キャッシングシステム240からキャッシュされたオブジェクトを検索することもできる。
トランスコードされたビットは、トランスコーダ230からキャッシングシステム240に、あるいは出力バッファ250に、あるいはサーバインターフェース260に送信されることができる。
キャッシングプロキシ120は、コンテンツオブジェクトを、入力バッファ220、出力バッファ250、あるいはトランスコーダ230(トランスコードされたバージョンが生成されるとき)のいずれからキャッシュするかを決定することができる。
サーバインターフェース260は、出力バッファ250から、あるいはキャッシングシステム240から(直に、あるいは出力バッファ250を介して)、トランスコードされたビットを受信することもできる。
一般的に、ビデオストリームは、たとえばアップリンク、ダウンリンクおよび/またはトランスコーダ230の速度に応じて、キャッシングプロキシ120を通る多数の異なる経路をとることができる。
多数の異なるストリームをキャッシングプロキシ120によって同時に処理することができる。
同時に処理されるが、あるストリームはある処理段階にあり、一方、別のストリームは異なる段階にある場合がある。
トランスコーダ230はストリーミングによってコンテンツを処理することになるので、入力バッファ220および出力バッファ250のサイズは小さくすることができる。
高いビットレートから低いビットレートへのトランスコーディング、高い解像度から低い解像度へのトランスコーディング、あるいは両方の組み合わせを用いることができる。
種々のトランスコーディング方式のうちの任意のものをトランスコーダ230によって用いることができる。
一実施形態では、当該技術分野において知られている圧縮領域トランスコーディング方式が用いられる。
圧縮領域トランスコーディングでは、入力映像(典型的には符号化されている)の一部だけが復号化(圧縮解除)される。
動き情報を再利用しながら、圧縮領域においてレート適応化が実行される。
圧縮領域トランスコーディングは、映像が復号化され、トランスコードされ、その後、再符号化される他の方式に対して、トランスコーディング速度を大幅に改善することができる。
トランスコーディングプロセスの速度は、トランスコーディングビットレートによって測定することができ、それは、時間とともにトランスコーダ230が生成するビット数(たとえば、ビット/秒)として定義される。
トランスコーディングビットレートがアップリンクあるいはダウンリンク帯域幅のいずれかの最小帯域幅以上である場合、トランスコーダ230によって、コンテンツソース110からクライアント装置130へのコンテンツオブジェクトの配信に遅れは生じないであろう。
ここまでを要約すると、本発明の実施形態によれば、キャッシングプロキシ120はトランスコーディングおよびキャッシングを実行し、コンテンツの適応化がネットワークの端の近くで実行されるようにする(たとえば、図1のシステム100)。
キャッシングプロキシ120は、異種ネットワーク(すなわち、種々の属性を有するクライアント装置から構成され、さらに種々のタイプの通信チャネルから構成されるネットワーク)においてエンドユーザを満足させるために、コンテンツオブジェクトを異なるバージョン(あるいは異なる形態)にトランスコードすることができる。
クライアント装置130との接続のタイプ(たとえば速度)、およびクライアント装置130の属性に応じて、キャッシングプロキシ120は、コンテンツソース110あるいはキャッシングシステム240のいずれかから受信されるコンテンツオブジェクトを(必要に応じて)トランスコードし、コンテンツオブジェクトの適当なバージョンをクライアント装置130に配信することができる。
本質的には、キャッシングプロキシ120は、記憶に関する負荷がない代わりに、計算に関する負荷をもたらす。
しかしながら、先に説明したように、いくつかの例では、トランスコーディングに関連する計算の負荷によって、コンテンツソース110からクライアント装置130へのコンテンツオブジェクトの配信に遅れは生じないであろう。
後に明らかになるように、これにより、キャッシングプロキシ120上で利用可能なキャッシュ空間をさらに効率的に使用できるようになる。
また、キャッシングプロキシ120によって提供されるトランスコーディング能力のために、各コンテンツオブジェクトの種々のバージョンをコンテンツソース110において記憶する必要はない。
代わりに、コンテンツソース110において1つのバージョン(一般的には、最も高いビットレートのもの)が記憶される。
こうして、コンテンツソース110において利用可能なメモリ空間も、さらに効率的に利用される。
先に述べたように、図2のキャッシングプロキシ120は、コンテンツオブジェクト(具体的には、あるバージョンのコンテンツオブジェクト)を、入力バッファ220、出力バッファ250あるいはトランスコーダ230(トランスコードされたバージョンが生成されるとき)のいずれからキャッシュするかを決定することができる。
ある特定のコンテンツオブジェクトの種々のバージョンが確かに可能であり、存在する場合がある。
キャッシングプロキシ120において、1つあるいは複数のどのバージョンがキャッシングされるべきであるかを判定するために、種々のキャッシング方式あるいは方法を用いることができる。
キャッシングプロキシ120は、使用中のキャッシング方式に従って、ある特定のバージョンをキャッシングしないものと判定することができることに留意されたい。
また、キャッシングプロキシ120は、あるコンテンツオブジェクトのあるバージョンがコンテンツソース110から検索されている間に、アップリンクにおいてパケットロスがあったことを確認することもできるので、たとえば、映像品質に影響を及ぼすほどパケットロスが大きい場合には、そのバージョンをキャッシングしないものと判定することができる。
あるバージョンXがバージョンYからトランスコードすることによって獲得できる場合には、バージョンYはバージョンXのトランスコード可能なバージョンと呼ぶことができる。
逆に、バージョンXはバージョンYのトランスコードバージョンと呼ぶことができる。
ビデオトランスコーディングでは、ビットレートが高いバージョンを、ビットレートが低いバージョンにトランスコードすることができる。
たとえば、64Kbps(キロビット/秒)のビットレートの映像を、128Kbpsのビットレートの同じ映像からトランスコードすることができる。
しかしながら、トランスコードされたバージョンは、トランスコード可能なバージョンに対して、いくらか忠実度を失う場合がある。
図2のキャッシングプロキシ120は、1〜N−1個の忠実度を失ったトランスコードされたバージョンを生成することができる。
ただしNは可能なバージョンの総数である。
ビデオトランスコーディングの場合、この忠実度損失は、特にビットレート低下が解像度低下に結び付けられるときには、無視できるものと考えられる。
たとえば、1Mbps(メガビット/秒)においてCIF(一般交換形式)解像度(352×288)のビデオクリップがQCIF(クォータCIF、176×144)の解像度の能力を有する装置に配信されることになるとき、解像度の低下によって、ビットレートが約4分の1に低下するだけである。
クライアント装置130が、要求されているコンテンツオブジェクトのある特定のバージョンを指定することができるか(たとえば、ユーザ入力に基づく)、あるいはクライアント装置130上に常駐するエージェントソフトウエアが、クライアント装置130の能力(接続速度を含む)をキャッシングプロキシ120に通知することができる。
前者の場合、クライアント装置130の能力および接続のタイプを知っているユーザが、コンテンツオブジェクトのある特定のバージョンを(たとえばメニューから)選択することができる。
後者の場合、キャッシングプロキシ120が、クライアント装置130の接続のタイプおよび能力に対応するバージョンを選択することができる。
コンテンツオブジェクトのビットレートB、B、...、BのN個のバージョンが存在する場合について考えてみる。
ただし、B>B>...Bである。
ビットレートBのバージョンがクライアント装置130によって要求されるとき、種々のタイプの応答が可能である。
第1のタイプの応答では、バージョンBは、キャッシングプロキシ120のキャッシングシステム240から入手できる場合がある。
すなわちバージョンBはコンテンツソース110から予め受信されている。
別法では、Bのトランスコード可能なバージョンがコンテンツソース110から受信されている場合があり、そのトランスコード可能なバージョンはバージョンBにトランスコードされ、その後、バージョンBがキャッシングシステム240にキャッシングされた。
いずれの場合でも、バージョンBはキャッシングプロキシ120から入手可能である。
あるコンテンツオブジェクトの要求されたバージョンがキャッシングシステム240内に存在する場合は、本明細書において正確なヒットと呼ばれる。
第2のタイプの応答では、バージョンBはキャッシングシステム240から入手することができない。
しかしながら、トランスコード可能なバージョン(たとえば、Bよりも高いビットレートを有するバージョンB)をキャッシングシステム240から入手することができる。
すなわち、バージョンBはコンテンツソース110から予め受信されている。
別法では、Bのトランスコード可能なバージョンがコンテンツソース110から受信されている場合があり、そのトランスコード可能なバージョンはバージョンBにトランスコードされ、その後、バージョンBがキャッシングシステム240にキャッシュされた。
いずれも場合でも、バージョンBはキャッシングプロキシ120から入手することができる。
したがって、キャッシングプロキシ120は、コンテンツソース110からバージョンBを受信する(取り込む)代わりに、バージョンBをバージョンBにトランスコードすることができる。
要求されたバージョンがキャッシングシステム240内に存在しないが、トランスコード可能なバージョンが存在する場合、それは本明細書においてトランスコードヒットと呼ばれる。
第3のタイプの応答では、要求されたバージョンおよびトランスコード可能なバージョンのいずれもキャッシングシステム240から入手することができない。
この場合は、本明細書においてミスと呼ばれる。
この場合、要求されたバージョンあるいは要求されたバージョンのトランスコード可能なバージョンがコンテンツソース110から検索される。
キャッシングプロキシ120はトランスコーディング機能を提供するので、コンテンツソース110は、コンテンツオブジェクトの単一のビットレートバージョン(複数のビットレートが低いバージョンにトランスコードすることができるバージョンを提供するために、最も可能性が高いのは、ビットレートが高いバージョンである)のみを記憶することができる。
キャッシングシステム240に、コンテンツオブジェクトの1つあるいは複数のどのバージョンが記憶されるべきかを決定するために、キャッシングプロキシ120によって種々のタイプのキャッシング方法あるいは方式が用いられる場合がある。
一実施形態では、各コンテンツオブジェクトの1つのバージョンのみをキャッシングシステム240に記憶することができるキャッシング方法が用いられる。
別の実施形態では、キャッシングシステム240に各コンテンツオブジェクトの多数のバージョンを記憶することができるキャッシング方法が用いられる。
あるオブジェクトの1つのバージョンのみがキャッシュされるキャッシング方法を最初に説明し、あるオブジェクトの多数のバージョンを記憶するためのキャッシング方法をさらに後に説明する。
各オブジェクトの1つのバージョンのみをキャッシュすることにより、記憶空間が効率的に利用され、より多くのコンテンツオブジェクトを記憶することができる。
しかしながら、そのようなキャッシング方法の難問の1つは、オブジェクトのどのバージョンがキャッシュされるべきであるかを決定することである。
いくつかの例では、キャッシングシステム240に最もビットレートが高いバージョンをキャッシュすることが望ましいかもしれないが、これは常に望ましいとは限らないかもしれない。
最もビットレートが高いバージョンをキャッシュする結果として、より頻繁にトランスコードする可能性が高くなるであろう。
また、最もビットレートが高いバージョンをキャッシュすることは、より多くのメモリを消費することになるので、キャッシングシステム240を最も効率的に使用することにならない場合もある。
キャッシング方法の一実施形態では、あるコンテンツオブジェクトのバージョンBが要求され、そのバージョンがキャッシングシステム240内に存在するとき(たとえば正確なヒット)、キャッシングプロキシ120は、そのバージョンのためのアクセス記録をリフレッシュし、そのバージョンがキャッシングシステム240に保持される。
アクセス記録は、キャッシュされたバージョンに関連する履歴を記録するために用いられる。
たとえば、アクセス記録は、ある特定のバージョンが要求された各時刻を示すタイムスタンプなどを含むことができる。
アクセス記録は、ある特定のバージョンが何回要求されたかを示す情報も含むことができる。
キャッシングシステム240内に、あるコンテンツオブジェクトのバージョンBが存在するが、そのコンテンツオブジェクトのバージョンBが要求されるときにミスが生じる(バージョンBはバージョンBよりも高いビットレートを有するので、バージョンBはバージョンBからトランスコードすることができない)。
本実施形態のキャッシング方法によれば、バージョンBがキャッシングシステム240から削除され、バージョンBがコンテンツソース110から受信され、バージョンBがキャッシングシステム240にキャッシュされる(必ずしもその順序ではない)。
こうして、本実施形態では、ミスの場合に、キャッシングシステム240から、ビットレートが低いバージョンが除去され、ビットレートが高いバージョンで置き換えられる。
コンテンツオブジェクトのバージョンBよりもビットレートが高いトランスコード可能なバージョンBがキャッシングシステム240内に存在するが、そのコンテンツオブジェクトのバージョンBが要求されるときに、トランスコードヒットが生じる。
本実施形態では、キャッシングプロキシ120は、キャッシュされたバージョンBを適当なビットレートBにトランスコードするであろう。
さらに、キャッシングプロキシ120は、バージョンBあるいはBのいずれがキャッシュされるかを決定する。
一実施形態では、キャッシングプロキシ120は、既にキャッシュされているオブジェクトバージョンBのアクセス記録をリフレッシュし、トランスコードされたバージョンBをキャッシュしない。
別の実施形態では、キャッシングプロキシ120は、キャッシングシステム240からトランスコード可能なバージョンBを除去し、トランスコードされたバージョンBをキャッシュする。
ここで、キャッシングシステム240内に、あるコンテンツオブジェクトの多数のバージョンをキャッシュすることができるキャッシング方法の一実施形態が説明される。
多数のバージョンをキャッシュすることにより、正確なヒットの可能性が高くなるので、トランスコーディングの量を低減することができる。
また、ある特定のコンテンツオブジェクトの複数の異なる形態(バージョン)へのアクセスの局時性が高い場合には、多数のバージョンをキャッシュすることによって、キャッシング効率も高めることができる。
たとえば、多種多様なタイプのクライアント装置(異なる属性を有する)から、相対的に短い時間の間に、ある特定のオブジェクトを得るために相対的に多数の要求を受信する場合がある。
そのような状況では、そのオブジェクトの多数のバージョンがキャッシングシステム240内に存在することが望ましいであろう。
キャッシング方法の本実施形態では、ミスがあるときに、キャッシングプロキシ120は、コンテンツソース110から、要求されたオブジェクトを受信し(取り込み)、必要に応じて、そのオブジェクトを要求されたバージョンにトランスコードし、そのオブジェクトの他のバージョンがキャッシングシステム240内に既に存在する場合であっても、そのオブジェクトをキャッシュする。
本実施形態では、トランスコードヒットの場合に、キャッシングプロキシ120はトランスコード可能なバージョンを要求されたバージョンにトランスコードし、キャッシングシステム240にトランスコードされたバージョンを記憶する。
正確なヒットは、先に説明したように取り扱われる。
すなわち、要求されたオブジェクトバージョンのためのアクセス記録が更新され、そのオブジェクトバージョンがキャッシングシステム240に保持される。
上記のキャッシング方法の有効性は、ユーザのアクセス行動およびユーザのネットワーク環境などの要因による可能性がある。
たとえば、キャッシングプロキシ120と通信するユーザが類似のネットワーク能力を有するとき、1つのみのオブジェクトバージョンがキャッシュされるキャッシング方法は、多数のオブジェクトバージョンがキャッシュされる方法よりも良好な性能を提供することができる。
クライアントによって主にどの接続帯域幅が用いられるかがわかっているキャッシングプロキシは、その帯域幅に相当するビットレートに適したコンテンツオブジェクトのバージョンのみをキャッシュすることができる。
一方、キャッシングプロキシ120が異種ネットワーク(種々のクライアント装置および接続タイプが用いられる)に接続され、かつアクセス行動が強い局時性を示す場合には、多数のオブジェクトバージョンを記憶することによって、オブジェクトの1つのバージョンが記憶されるキャッシング方法よりも結果として性能を高めることができる。
さらに、コンテンツオブジェクトを予め取り込んでおくことによって、あるいはプレフィックスキャッシングを導入することによって(その場合には、待ち時間を少なくするために、オブジェクトの最初の部分が記憶される)、キャッシング方法の有効性を高めることができる。
一実施形態では、キャッシングプロキシ120によって種々のキャッシング方法が適応的に用いられる。
たとえば、ユーザの行動に応じてリアルタイムに、別のキャッシング方法よりも優れたキャッシング方法を選択することができる。
その後、アクセス行動が監視される。
アクセス行動が変化する場合に、たとえば、上記の要因に基づいて、キャッシングプロキシ120によって異なるキャッシング方法が選択される。
キャッシングシステム240が一杯になる場合には必ず、別のオブジェクト(あるいはそのオブジェクトの別のバージョン)のための場所を空けるために、オブジェクトの1つのバージョンを削除する必要があるかもしれない。
この場合には、当該技術分野において知られている種々のキャッシュ置換え方式のうちの任意のものを用いることができる。
これらのキャッシュ置換え方式は、最長未使用時間(LRU)方式、最小使用頻度(LFU)方式、LRU−K方式、貪欲双対(GD:Greedy Dual)方式などを含む。
図3は、本発明の一実施形態によるコンテンツを配信するための方法の流れ図300である。
流れ図300の具体的なステップが開示されるが、そのようなステップは例示である。
すなわち、本発明の実施形態は、種々の他のステップ、あるいは流れ図300に記載されるステップの変形を実行するためにも適している。
流れ図300のステップは、提供されるのとは異なる順序で実行される場合があること、および流れ図300のステップは全て実行されるとは限らないことは理解されたい。
流れ図300によって説明される方法の全て、あるいは一部を、たとえば、コンピュータシステムあるいは類似の装置のコンピュータ利用可能媒体内に常駐するコンピュータ読取り可能およびコンピュータ実行可能命令を用いて実施することができる。
一般的には、流れ図300は、図1および図2のキャッシングプロキシ120のような装置によって実施される。
本実施形態において図3のステップ310では、クライアント装置からのコンテンツオブジェクト要求がキャッシングプロキシにおいて受信される(たとえば、図1および図2のキャッシングプロキシ120およびクライアント装置130)。
またキャッシングプロキシは、クライアント装置の属性、およびキャッシングプロキシとクライアント装置との間の接続のタイプも受信するか、あるいは別の方法で知る。
その結果として、キャッシングプロキシは、クライアント装置に送信するためのコンテンツオブジェクトのバージョンを選択することができる。
別法では、クライアント装置からの要求によって、コンテンツオブジェクトのバージョンが特定される場合もある。
本実施形態において図3のステップ320では、ステップ310において特定されたオブジェクトバージョンがキャッシングプロキシのメモリ(たとえば、図2のキャッシングシステム240)にキャッシュされているか否かに関する判定を行うことができる。
ステップ310において特定されたオブジェクトバージョンがキャッシュされている場合には、クライアント装置に送信することができる(ステップ360)。
そうでない場合には、流れ図300はステップ330に進む。
オプションでは、キャッシングプロキシによってクライアント装置に送信されるのに応じて、オブジェクトバージョンの一部をバッファリングすることができる(たとえば図2の出力バッファ250)。
本実施形態において図3のステップ330では、ステップ310において特定されたオブジェクトバージョンのトランスコード可能なバージョンがキャッシングプロキシのメモリ(たとえば、図2のキャッシングシステム240)にキャッシュされているか否かに関する判定を行うことができる。
ステップ310において特定されたオブジェクトバージョンのトランスコード可能なバージョンがキャッシュされている場合には、それをトランスコードし(ステップ350)、その後、クライアント装置に送信する(ステップ360)ことができる。
そうでない場合には、流れ図300はステップ340に進む。
本実施形態において図3のステップ340では、ステップ310において要求されたオブジェクトバージョン、そのオブジェクトバージョンのトランスコード可能なバージョンのいずれかがコンテンツソース(たとえば図1のコンテンツソース110)から受信される。
コンテンツソースによってどのバージョンが提供されるべきかに関する決定は、たとえばアクセス行動に基づいて、キャッシングプロキシが行うことができる。
オプションでは、コンテンツソースから受信されるコンテンツオブジェクトの一部を、キャッシングプロキシによって受信されるのに応じてバッファリングすることができる(たとえば、図2の入力バッファ220)。
ステップ310において要求されたオブジェクトバージョンが受信された場合には、クライアント装置に送信することができる(ステップ360)。
別法では、そのオブジェクトのトランスコード可能なバージョンが受信された場合には、トランスコードして(ステップ350)、その後、クライアント装置に送信することができる(ステップ360)。
図4は、本発明の一実施形態によるコンテンツをトランスコードし、キャッシュするための方法の流れ図400である。
流れ図400において具体的なステップが開示されるが、そのようなステップは例示である。
すなわち、本発明の実施形態は、種々の他のステップ、あるいは流れ図400に記載されるステップの変形を実行するためにも適している。
流れ図400のステップは、提供されるのとは異なる順序で実行される場合があること、および流れ図400のステップは全て実行されるとは限らないことは理解されたい。
流れ図400によって説明される方法の全て、あるいは一部を、たとえば、コンピュータシステムあるいは類似の装置のコンピュータ利用可能媒体内に常駐するコンピュータ読取り可能およびコンピュータ実行可能命令を用いて実施することができる。
一般的には、流れ図400は、図1および図2のキャッシングプロキシ120のような装置によって実施される。
本実施形態では、図4のステップ340および350は、上記の図3とともに説明された同じステップと同様である。
すなわち、ステップ340では、コンテンツソースから、コンテンツオブジェクトの第1のバージョンがキャッシングプロキシにおいて受信される。
ここでは、第1のバージョンは、第2のオブジェクトバージョンのトランスコード可能なバージョンである。
本明細書において先に記載したように、第2のバージョンは、クライアント装置に提供されることになるバージョンとして特定される。
ステップ350では、キャッシングプロキシによって第1のバージョンがトランスコードされて、第2のバージョンが生成される。
本実施形態において図4のステップ370では、もしあるなら1つあるいは複数のいずれのバージョンがメモリに(たとえば、図2のキャッシングシステム240に)保持されるか、あるいは入れられるべきであるかに関する決定が、キャッシングプロキシによって行われる。
この決定を行うために、キャッシングプロキシによって、先に記載したような種々のキャッシング方法が用いられる場合がある。
実施されるキャッシング方法に応じて、その決定によって、第1のバージョンのみがキャッシュされるか、第2のバージョンのみがキャッシュされるか、第1および第2の両方のバージョンがキャッシュされるか、あるいは第1および第2のバージョンのいずれもキャッシングされない場合がある。
一実施形態では、アクセス行動のような要因に応じて、既に実施されているキャッシング方法とは異なる第2のキャッシング方法に切り替えることができる。
ステップ380では、ステップ370においてなされた決定がキャッシングプロキシによって実施される。
キャッシュされたオブジェクトバージョンは、クライアント装置からキャッシングプロキシによって受信される後続の要求によって特定されるオブジェクトのトランスコード可能なバージョンとしての役割を果たすことができることに留意されたい。
したがって、キャッシングプロキシ上の利用可能なキャッシュ空間がさらに効率的に利用される。
また、コンテンツソースに対して行われる必要がある要求の数も低減され、コンテンツソースの負荷が小さくなり、利用可能な帯域幅がさらに効率的に利用される。
シミュレーションの結果は、異種ネットワーク条件の場合に、処理しやすい計算上の(トランスコーディングの)負荷で、キャッシング性能を約20%高めることができることを示す。
これを言い換えると、キャッシングプロキシおよびコンテンツソースの性能が改善され、同じくクライアント装置における遅れが小さくなる。
さらに、トランスコーディングをエンドユーザ(たとえばクライアント装置)の近くで行うことができるので、クライアントとローカル装置(たとえばキャッシングプロキシ)との間のやりとりが改善される。
要約すると、本発明の実施形態は、コンテンツオブジェクトをエンドユーザに配信するより効率的な方法を提供する方法およびシステムに関する。
これらの実施形態によれば、キャッシングプロキシにトランスコーディング能力を追加することにより、クライアント装置およびネットワーク接続が異種であっても柔軟に対処される。
コンテンツソースは、必要に応じてトランスコードすることができるコンテンツオブジェクトの単一の「マスター」コピーを生成するように選択することができ、コンテンツ作成者を解放してコンテンツの作成に集中できるようにする。
こうして、本発明の実施形態が説明されてきた。
本発明は特定の実施形態において説明されてきたが、本発明はそのような実施形態に限定されるものと解釈されるべきではなく、むしろ添付の特許請求の範囲に従って解釈されるべきであることは理解されたい。
本発明の一実施形態によるコンテンツを配信するためのシステムを示す図である。 本発明の一実施形態によるキャッシングプロキシによって提供される機能要素を示すブロック図である。 本発明の一実施形態によるコンテンツを配信するための方法の流れ図である。 本発明の一実施形態によるデータをトランスコードし、キャッシュするための方法の流れ図である。
符号の説明
110・・・コンテンツソース,
120・・・キャッシングプロキシ,
130・・・クライアント装置,

Claims (10)

  1. コンテンツを配信する方法(400)であって、
    キャッシングプロキシにおいて、コンテンツソースからコンテンツオブジェクトの第1のバージョンを受信することと(340)、
    前記キャッシングプロキシにおいて前記第1のバージョンをトランスコードし、前記コンテンツオブジェクトの第2のバージョンを作成することと(350)、
    前記キャッシングプロキシにおいて前記第1のバージョンおよび前記第2のバージョンのうちの少なくとも一方をキャッシュするか否かを決定することであって、第1のキャッシング方法に従って行われる、該決定することと
    前記決定を実施することと(380)
    を含む方法。
  2. 前記キャッシングプロキシにおいて前記第1のバージョンをキャッシュすること(370)と、
    クライアント装置から前記コンテンツオブジェクトの要求を受信すること(310)であって、該クライアント装置は、前記第1のバージョンからトランスコード可能である、前記コンテンツオブジェクトのバージョンに対応する属性を有することと、
    前記属性に従って、前記第1のバージョンをトランスコードすること(350)と
    を含む請求項1に記載の方法。
  3. 前記キャッシングプロキシにおいて、前記第1のバージョンをキャッシュすることと(370)、
    クライアント装置から前記コンテンツオブジェクトの要求を受信すること(310)であって、該クライアント装置は、前記第1のバージョンからトランスコードすることができない前記コンテンツオブジェクトのバージョンに対応する属性を有することと、
    前記属性に対応する前記コンテンツオブジェクトのバージョンを、前記コンテンツソースから検索することと(340)
    を含む請求項1に記載の方法。
  4. 前記キャッシングプロキシにおいて、前記第2のバージョンをキャッシュすること(380)
    を含む請求項1に記載の方法。
  5. クライアント装置から前記コンテンツオブジェクトの要求を受信すること(310)であって、前記クライアント装置は、前記第2のバージョンからトランスコード可能である前記コンテンツオブジェクトのバージョンに対応する属性を有することと、
    前記属性に従って、前記第2のバージョンをトランスコードすることと(350)
    を含む請求項4に記載の方法。
  6. 前記キャッシングプロキシにおいて、前記第1のバージョンおよび前記第2のバージョンの両方をキャッシュすること(380)
    を含む請求項1に記載の方法。
  7. 前記コンテンツオブジェクトは、
    ビデオデータ
    を含む
    請求項1に記載の方法。
  8. 前記第1のキャッシング方法とは異なる第2のキャッシング方法を選択すること(370)
    を含む請求項1に記載の方法。
  9. 前記キャッシングプロキシにおいて、前記トランスコードする前に、前記コンテンツオブジェクトの前記第1のバージョンの一部をバッファリングすること(340)
    を含む請求項1に記載の方法。
  10. 前記キャッシングプロキシにおいて、前記トランスコードに続いて、前記コンテンツオブジェクトの前記第2のバージョンの一部をバッファリングすること(320)
    を含む請求項1に記載の方法。
JP2004553560A 2002-11-19 2003-11-07 トランスコード可能なキャッシングプロキシおよびその方法 Pending JP2006506738A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/300,246 US20040098463A1 (en) 2002-11-19 2002-11-19 Transcoding-enabled caching proxy and method thereof
PCT/US2003/035791 WO2004046968A2 (en) 2002-11-19 2003-11-07 Transcoding-enabled caching proxy and method thereof

Publications (1)

Publication Number Publication Date
JP2006506738A true JP2006506738A (ja) 2006-02-23

Family

ID=32297878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004553560A Pending JP2006506738A (ja) 2002-11-19 2003-11-07 トランスコード可能なキャッシングプロキシおよびその方法

Country Status (5)

Country Link
US (1) US20040098463A1 (ja)
EP (1) EP1581891A2 (ja)
JP (1) JP2006506738A (ja)
AU (1) AU2003295446A1 (ja)
WO (1) WO2004046968A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010273298A (ja) * 2009-05-25 2010-12-02 Broad Earth Inc コンテンツ配信システム、配信制御装置及び配信制御プログラム
WO2011024949A1 (ja) * 2009-08-31 2011-03-03 日本電気株式会社 コンテンツ配信装置、コンテンツ配信方法、およびプログラム
JP2012501493A (ja) * 2008-08-29 2012-01-19 アリババ・グループ・ホールディング・リミテッド 画像処理方法、画像処理装置および画像処理システム
KR101490516B1 (ko) * 2013-08-19 2015-02-05 주식회사 솔박스 객체 및 속성 정보를 이용한 컨텐츠 제공 방법 및 이를 이용한 http 프록시 서버
JP7477251B2 (ja) 2019-09-24 2024-05-01 インターナショナル・ビジネス・マシーンズ・コーポレーション シングル・ページ・アプリケーションのキャッシャビリティの改善方法、システム、プログラム

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225728A1 (en) * 2003-05-05 2004-11-11 Huggins Guy Dwayne Network and communications system for streaming media applications
TWI269598B (en) * 2003-08-22 2006-12-21 Sk Telecom Co Ltd Method and system for transmitting multimedia message transmitted from transmitting mobile station of higher version to receiving mobile station of lower version
US7574514B2 (en) * 2003-09-30 2009-08-11 Sharp Laboratories Of America, Inc. Systems and methods for identifying original streams of media content
US7251649B2 (en) * 2003-10-31 2007-07-31 Hewlett-Packard Development Company, L.P. Method for prioritizing content
US7590704B2 (en) * 2004-01-20 2009-09-15 Microsoft Corporation Systems and methods for processing dynamic content
EP2249529B1 (en) * 2004-03-23 2019-01-16 NDS Limited Optimally adapting multimedia content for mobile subscriber device playback
US7650432B2 (en) * 2004-05-20 2010-01-19 Bea Systems, Inc. Occasionally-connected application server
US20060031264A1 (en) * 2004-05-20 2006-02-09 Bea Systems, Inc. Synchronization protocol for occasionally-connected application server
US7899492B2 (en) 2004-07-16 2011-03-01 Sellerbid, Inc. Methods, systems and apparatus for displaying the multimedia information from wireless communication networks
US7957733B2 (en) 2004-07-16 2011-06-07 Sellerbid, Inc. Method and apparatus for multimedia communications with different user terminals
US20140071818A1 (en) 2004-07-16 2014-03-13 Virginia Innovation Sciences, Inc. Method and system for efficient communication
US20060174314A1 (en) * 2004-07-21 2006-08-03 Jacobs Paul E Methods and apparatus for hybrid multimedia presentations
US7644358B2 (en) * 2004-11-01 2010-01-05 Sap Ag Usability of a portal application
US7711799B2 (en) * 2004-11-22 2010-05-04 Alcatel-Lucent Usa Inc. Method and apparatus for pre-packetized caching for network servers
US8218439B2 (en) * 2004-11-24 2012-07-10 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive buffering
US20060167956A1 (en) * 2005-01-27 2006-07-27 Realnetworks, Inc. Media content transfer method and apparatus (aka shadow cache)
US8438297B1 (en) 2005-01-31 2013-05-07 At&T Intellectual Property Ii, L.P. Method and system for supplying media over communication networks
US7937753B2 (en) * 2005-03-25 2011-05-03 Microsoft Corporation Method and apparatus for distributed information management
US7644108B1 (en) 2005-09-15 2010-01-05 Juniper Networks, Inc. Network acceleration device cache supporting multiple historical versions of content
US7979509B1 (en) 2005-09-15 2011-07-12 Juniper Networks, Inc. Clustered network acceleration devices having shared cache
US7676554B1 (en) 2005-09-15 2010-03-09 Juniper Networks, Inc. Network acceleration device having persistent in-memory cache
US20070086431A1 (en) * 2005-10-13 2007-04-19 Abu-Amara Hosame H Privacy proxy of a digital security system for distributing media content to a local area network
US8612619B2 (en) 2006-03-31 2013-12-17 Alcatel Lucent Method and apparatus for improved multicast streaming in wireless networks
KR100754431B1 (ko) * 2006-04-10 2007-08-31 삼성전자주식회사 Dlna 시스템에서 dmr의 처리용량에 따른 컨텐츠변환방법
US20090210631A1 (en) 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
US7865585B2 (en) * 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7827237B2 (en) * 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US8255570B2 (en) * 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US7532134B2 (en) * 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US7619545B2 (en) * 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7460038B2 (en) * 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US9819984B1 (en) 2007-03-26 2017-11-14 CSC Holdings, LLC Digital video recording with remote storage
KR100870617B1 (ko) 2007-10-22 2008-11-25 에스케이 텔레콤주식회사 실시간 트랜스코딩 장치 및 그의 운용 방법
US8762553B2 (en) * 2008-01-11 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Message handling in an IP multimedia subsystem
WO2012029248A1 (ja) * 2010-09-02 2012-03-08 日本電気株式会社 データ転送システム
US9002826B2 (en) 2010-10-27 2015-04-07 Qualcomm Incorporated Media file caching for an electronic device to conserve resources
US8782165B2 (en) 2011-01-26 2014-07-15 Openwave Mobility, Inc. Method and transcoding proxy for transcoding a media stream that is delivered to an end-user device over a communications network
JP5720787B2 (ja) 2011-07-05 2015-05-20 日本電気株式会社 コンテンツ配信システム、キャッシュサーバおよびコンテンツ配信方法
US8661479B2 (en) 2011-09-19 2014-02-25 International Business Machines Corporation Caching large objects with multiple, unknown, and varying anchor points at an intermediary proxy device
US9519453B2 (en) 2011-09-21 2016-12-13 Telefonaktiebolaget Lm Ericsson (Publ) Methods, devices and computer programs for transmitting or for receiving and playing media streams
US9641637B1 (en) * 2011-09-27 2017-05-02 Amazon Technologies, Inc. Network resource optimization
US9330188B1 (en) 2011-12-22 2016-05-03 Amazon Technologies, Inc. Shared browsing sessions
JP5961850B2 (ja) 2012-07-18 2016-08-02 オペラ ソフトウェア アイルランド リミテッドOpera Software Ireland Limited ジャストインタイムの分散型ビデオキャッシュ
US9924164B2 (en) * 2013-01-03 2018-03-20 Disney Enterprises, Inc. Efficient re-transcoding of key-frame-aligned unencrypted assets
WO2014123527A1 (en) * 2013-02-07 2014-08-14 Nokia Siemens Networks Oy Local media loading adaptation
US8869218B2 (en) * 2013-03-15 2014-10-21 Wowza Media Systems, LLC On the fly transcoding of video on demand content for adaptive streaming
US10152463B1 (en) 2013-06-13 2018-12-11 Amazon Technologies, Inc. System for profiling page browsing interactions
US9578137B1 (en) 2013-06-13 2017-02-21 Amazon Technologies, Inc. System for enhancing script execution performance
EP2819367A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for retrieving, by a client terminal, a content part of a multimedia content
US20150006621A1 (en) * 2013-07-01 2015-01-01 Futurewei Technologies, Inc. Adaptive Video Streaming for Information Centric Networks
US9800822B2 (en) * 2013-07-22 2017-10-24 Qualcomm Incorporated Method and apparatus for resource utilization in a source device for wireless display
CA2878754A1 (en) * 2014-01-19 2016-06-19 Fabrix Tv Ltd. Methods and systems of storage level video fragment management
US20150271072A1 (en) * 2014-03-24 2015-09-24 Cisco Technology, Inc. Method and apparatus for rate controlled content streaming from cache
WO2017036568A1 (en) * 2015-09-04 2017-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Improved cloud dvr storage
US10904329B1 (en) * 2016-12-30 2021-01-26 CSC Holdings, LLC Virtualized transcoder
US11146608B2 (en) * 2017-07-20 2021-10-12 Disney Enterprises, Inc. Frame-accurate video seeking via web browsers
US10452563B1 (en) 2018-05-07 2019-10-22 Akamai Technologies, Inc. Cache eviction scheme for acceptable substitutes in online media
US11284165B1 (en) 2021-02-26 2022-03-22 CSC Holdings, LLC Copyright compliant trick playback modes in a service provider network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110186A (ja) * 1997-10-02 1999-04-23 Nippon Telegr & Teleph Corp <Ntt> ブラウザシステム、音声プロキシサーバ、リンク項目の読み上げ方法及びリンク項目の読み上げプログラムを格納した記憶媒体
JP2000090001A (ja) * 1998-08-05 2000-03-31 Spyglass Inc 変換設定を使用した電子デ―タの変換方法およびシステム
JP2000092424A (ja) * 1998-06-26 2000-03-31 Hewlett Packard Co <Hp> イメ―ジサ―バ
JP2000358230A (ja) * 1999-06-16 2000-12-26 Toshiba Corp ビデオサーバおよびビデオオンデマンドシステム
JP2001069485A (ja) * 1999-08-31 2001-03-16 Oki Electric Ind Co Ltd インターネット経由のビデオオンデマンドシステム用プロキシ
JP2001127790A (ja) * 1999-11-01 2001-05-11 Matsushita Electric Ind Co Ltd 情報伝送方法
JP2001256098A (ja) * 2000-03-09 2001-09-21 Hitachi Ltd プロキシサーバにおけるキャッシの制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6311215B1 (en) * 1997-03-25 2001-10-30 Intel Corporation System for dynamic determination of client communications capabilities
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6345303B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Network proxy capable of dynamically selecting a destination device for servicing a client request
US6563517B1 (en) * 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6345279B1 (en) * 1999-04-23 2002-02-05 International Business Machines Corporation Methods and apparatus for adapting multimedia content for client devices
EP1126716A1 (en) * 2000-02-18 2001-08-22 Telefonaktiebolaget L M Ericsson (Publ) Method and system for controlling a processing of video data
US7565450B2 (en) * 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
EP1346289A1 (en) * 2000-11-30 2003-09-24 Appfluent Technology, Inc. System and method for delivering dynamic content
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US20030028643A1 (en) * 2001-03-13 2003-02-06 Dilithium Networks, Inc. Method and apparatus for transcoding video and speech signals
US7099873B2 (en) * 2002-05-29 2006-08-29 International Business Machines Corporation Content transcoding in a content distribution network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110186A (ja) * 1997-10-02 1999-04-23 Nippon Telegr & Teleph Corp <Ntt> ブラウザシステム、音声プロキシサーバ、リンク項目の読み上げ方法及びリンク項目の読み上げプログラムを格納した記憶媒体
JP2000092424A (ja) * 1998-06-26 2000-03-31 Hewlett Packard Co <Hp> イメ―ジサ―バ
JP2000090001A (ja) * 1998-08-05 2000-03-31 Spyglass Inc 変換設定を使用した電子デ―タの変換方法およびシステム
JP2000358230A (ja) * 1999-06-16 2000-12-26 Toshiba Corp ビデオサーバおよびビデオオンデマンドシステム
JP2001069485A (ja) * 1999-08-31 2001-03-16 Oki Electric Ind Co Ltd インターネット経由のビデオオンデマンドシステム用プロキシ
JP2001127790A (ja) * 1999-11-01 2001-05-11 Matsushita Electric Ind Co Ltd 情報伝送方法
JP2001256098A (ja) * 2000-03-09 2001-09-21 Hitachi Ltd プロキシサーバにおけるキャッシの制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012501493A (ja) * 2008-08-29 2012-01-19 アリババ・グループ・ホールディング・リミテッド 画像処理方法、画像処理装置および画像処理システム
JP2010273298A (ja) * 2009-05-25 2010-12-02 Broad Earth Inc コンテンツ配信システム、配信制御装置及び配信制御プログラム
WO2011024949A1 (ja) * 2009-08-31 2011-03-03 日本電気株式会社 コンテンツ配信装置、コンテンツ配信方法、およびプログラム
KR101490516B1 (ko) * 2013-08-19 2015-02-05 주식회사 솔박스 객체 및 속성 정보를 이용한 컨텐츠 제공 방법 및 이를 이용한 http 프록시 서버
JP7477251B2 (ja) 2019-09-24 2024-05-01 インターナショナル・ビジネス・マシーンズ・コーポレーション シングル・ページ・アプリケーションのキャッシャビリティの改善方法、システム、プログラム

Also Published As

Publication number Publication date
EP1581891A2 (en) 2005-10-05
AU2003295446A1 (en) 2004-06-15
US20040098463A1 (en) 2004-05-20
WO2004046968A2 (en) 2004-06-03
WO2004046968A3 (en) 2004-07-22

Similar Documents

Publication Publication Date Title
JP2006506738A (ja) トランスコード可能なキャッシングプロキシおよびその方法
JP4972409B2 (ja) ノード及びネットワークの特性を考慮したサービスロケーション管理を行うためのシステム
KR100734629B1 (ko) 부분 캐싱 방법 및 이를 이용한 적응형 콘텐츠 전송 방법
KR101330052B1 (ko) 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
US8670456B2 (en) Method and system for transparently transcoding a multicast stream
US20170149860A1 (en) Partial prefetching of indexed content
US20140365560A1 (en) System for providing policy based content service in a mobile network
US8090761B2 (en) Storage and distribution of segmented media data
JP2006520039A (ja) メディアデータストリームを処理するための方法、データ構造、及びシステム
US10747723B2 (en) Caching with dynamic and selective compression of content
US9665646B1 (en) Method and system for providing bit rate adaptaion to video files having metadata
US7660877B2 (en) Systems and methods in which a provider is selected to service content requested by a client device
EP1625724B1 (en) System and method for selecting a service provider
JP2007523424A (ja) 状態メモリ管理の方法及び装置
WO2016063161A1 (en) Partial prefetching of indexed content
US8560629B1 (en) Method of delivering content in a network
KR101888982B1 (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
Shen et al. Transcoding-enabled Caching Proxy for Video Delivery in Heterogeneous Network Environments.
US20040236847A1 (en) Systems and methods for performing a service on content requested by a client device
KR101971595B1 (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
Hsu et al. A Transcoding Architecture for Adapting MPEG-21 Digital Items in Mobile Networks
KR20090059477A (ko) 트랜스코딩 프락시에서 혼합 세그먼트 관리 방법 및 장치
Shen et al. Streaming media caching with transcoding-enabled proxies
Liu et al. An efficient Wireless Internet access scheme

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100525

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100610

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120228