JP6456937B2 - ソフトウェア規定メディアプラットフォーム - Google Patents

ソフトウェア規定メディアプラットフォーム Download PDF

Info

Publication number
JP6456937B2
JP6456937B2 JP2016523916A JP2016523916A JP6456937B2 JP 6456937 B2 JP6456937 B2 JP 6456937B2 JP 2016523916 A JP2016523916 A JP 2016523916A JP 2016523916 A JP2016523916 A JP 2016523916A JP 6456937 B2 JP6456937 B2 JP 6456937B2
Authority
JP
Japan
Prior art keywords
processing
media
segment
stream
processing unit
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
JP2016523916A
Other languages
English (en)
Other versions
JP2017501603A (ja
Inventor
ポール トウィーデール,
ポール トウィーデール,
チン−チョン ウー,
チン−チョン ウー,
マイケル シアラー,
マイケル シアラー,
トン ン,
トン ン,
Original Assignee
エリクソン エービー
エリクソン エービー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エリクソン エービー, エリクソン エービー filed Critical エリクソン エービー
Publication of JP2017501603A publication Critical patent/JP2017501603A/ja
Application granted granted Critical
Publication of JP6456937B2 publication Critical patent/JP6456937B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • 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
    • 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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/52Network services specially adapted for the location of the user terminal
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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/64Addressing
    • H04N21/6405Multicasting
    • 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/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • 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/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • 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/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA

Landscapes

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

Description

米国特許法第119条(e)項および連邦規則法典第37巻第1.78条に基づく優先権
本非仮出願は、(i)Paul Tweedaleの名において2013年10月18日付けで出願された先行米国仮特許出願第61/892733号「SOFTWARE DEFINED MEDIA PLATFORM」に基づく優先権を主張し、各々は全体として参照により本明細書に組み込まれる。
本開示は一般に通信ネットワークに関する。より具体的には、いかなる限定としてでもなく、本開示は、適応ストリーミング環境において動作可能なソフトウェア規定メディアプラットフォームを対象とする。
たとえば適応ストリーミング環境で採用される、現行のメディア配信プラットフォームは、典型的にはリソースおよび設定に関して非常に堅固である。処理リソースは、ライブまたはオンデマンドチャンネルの処理(すなわち、採集、トランスコーディング、暗号化、セグメント化、およびアップローディング)に先行して割り振られ、メディアチャンネルに関して採集が開始すると、セッションを視聴しているダウンストリームユーザにとって望ましくない中断のリスクなしに、そのチャンネルに対するリソースの割り振り/設定を変更することは困難または不可能であり得る。メディア配信プラットフォームの現行のモデルは、需要の変化または基礎をなすリソース可用性にシステムを容易かつ効率的に適合させることができない。
本発明の例示の実施形態は、以下の例示のユースケースシナリオに鑑みて理解されよう。サービスプロバイダ(たとえばコンテンツ配信プロバイダ)が、視聴者の数および構成が時間、曜日、番組などに応じて変化する状態で、いくつかのライブチャンネル(たとえば50チャンネル)にマルチスクリーンサービスを提供しなければならないと考えてみる。サービスプロバイダは、モバイル/セルラ通信ユーザ、Wi−Fiユーザ、ならびに他のブロードバンドアクセス技術(たとえばケーブル、衛星など)を備えるユーザが、50のライブチャンネルすべてにわたって分配され得る自分の一番高評価の番組およびスポーツイベントのうちの特にいくつかで、高品質の体感が得られることを望むであろう。
従来のメディア配信プラットフォームを使用する場合、サービスプロバイダは、すべての様式のアクセス技術(たとえばモバイル/セルラ通信、Wi−Fi通信、ケーブルアクセスなど)をサポートするために、各チャンネルに複数バージョンまたは表現のチャンネルコンテンツ、すなわち異なるビットレートでエンコードされたメディアストリームをプロビジョニング(準備)しなければならない。こうしたプロビジョニングは望ましい品質のユーザ体感を提供し得るが、通常は、配信インフラストラクチャの処理リソースを低効率で利用することにより、コストは高くなる。たとえばピーク時には、割り振られたリソースは望ましい品質のサービスの配信で完全に専有されるが、需要の低い別の時点では、リソースは比較的遊休状態であることがある。ピーク動作の割合が低い場合、プロビジョニングされたリソースに関してかなり非効率的である。
本発明の実施形態に従ったソフトウェア規定メディアプラットフォームは、前述の問題に対処するためにサービスプロバイダのリソースのより動的な割り振りを容易にするように設定可能である。さらに上記のユースケースへの言及を続けると、チャンネルの一部、たとえば50チャンネルのうちの30を、最低数のビットレートしか必要としない低容量チャンネルとして指定し、そのことによってサービスプロバイダのリソースを節約することができる。しかしながら、こうしたチャンネルのピーク視聴時間中、追加のビットレートおよび関連付けられた処理リソースを動的に追加することができる。プレミアムとみなされるチャンネルであっても、いつでもそのリソースを増加させることができる。通常は、たとえば特にスケジューリングされた時間にピークに達する高解像度コンテンツへの需要がある、サンデーナイトフットボールなどの通常よりも多くの視聴者を有するイベントに対処する上で、これは望ましいことがある。さらに、セルラ顧客が不必要な低ビットレートまで低下しないように保証するためには、より多くのビットレートが必要な可能性がある。加えて、HDまたは超HDディスプレイデバイスでゲームを見ている家庭用Wi−Fiユーザにサービスを提供するために、より高いビットレートおよび解像度が必要な可能性がある。
本特許出願の実施形態に従った追加の処理リソースの動的割り振りによって、こうしたニーズに適応可能であることを理解されたい。さらに、ユーザ分析、サービスプロバイダの機能、および/または、帯域幅管理ポリシー、サービスレベル契約などの他の要素によって影響を受ける可能性のあるリソース割り振りの動的挙動を可能にするために、ローカルに、および/または、現在のソリューションによって提供されていない分配方法で、リソースを配置するための機能を、実施形態に提供することができる。
一態様において、本明細書で開示されるソフトウェア規定メディアプラットフォーム(SDMP)の実施形態は、コンピュータプログラム命令を実行するための処理回路と、処理中にデータを記憶および転送するためのメモリおよび相互接続と、分散コンピュータハードウェアを、外部デバイスおよび1つまたは複数のデータ通信ネットワークを含むサブシステムに結合するインターフェース回路とを含む、分散コンピュータハードウェアを備え、メモリは、1つまたは複数のトランスコーダ処理ユニットおよび1つまたは複数のパッケージャ処理ユニットを含む対応するメディア処理ユニットを形成するために、分散コンピュータハードウェアによって実行される複数のソフトウェアモジュールを記憶する。各トランスコーダ処理ユニット(TPU)は、(a)入力メディアストリームを受信およびデコードするため、(b)結果として生じるデコードされたメディアストリームをセグメントに区分するため、ならびに、(c)セグメントを、たとえば私設または内部コンテンツ配信ネットワークなどの1つまたは複数の私設または内部クラウド記憶サービスユニット(CSU)にアップロードするための、レコーダ、デコーダ、エンコーダ、セグメンタ、およびアップローダを少なくとも含むことができる。各パッケージャ処理ユニット(PPU)は、(a)ソースメディアの入力セグメントを取り出すため、(b)最終消費者に配信される出力セグメントを生成するために取り出されたセグメントを再区分するため、ならびに(c)出力セグメントを、メディアストリームの再生用に出力セグメントを取得するために最終消費者によるアクセスが可能な外部クラウド記憶サービスユニット(たとえば公衆コンテンツ配信ネットワーク)にアップロードするための、レコーダ、セグメンタ、およびアップローダを少なくとも含む。他の変形形態において、PPUが、内部CSUからのセグメントの代わりにソース入力(たとえばマルチキャストUDP)を受信できることも可能である。いくつかの例示の実装において、アップローディングは、出力セグメントの暗号化を先行させることが可能であるため、暗号化サービスを含むことができる。したがって例示の実施形態は、好適な暗号化サービスを同様に含むメディア処理ユニットによるアップローディングを含むことができる。ソフトウェア規定メディアプラットフォームは、需要の変化、リソース可用性、および需要に関連してシステム性能に影響を与える他のパラメータに従って動作を適合させるために、メディア処理ユニットおよびメディア処理ユニット間のそれぞれの接続を動的にインスタンス化および設定するように動作可能な、システムマネージャサブシステムをさらに含む。
別の態様において、ソースメディアストリームを1つまたは複数のエンドユーザへの配信用の最終加工成果セグメントに処理するように動作可能な、メディア処理システムの実施形態が開示される。請求される実施形態は、とりわけ、ソースメディアストリームをベース加工成果セグメントのストリームに区分するように設定された入力処理ユニットを備え、各ベース加工成果セグメントは選択時間持続期間を有し、ベースビットレートを有するようにトランスコードされる。複数のトランスコーディング処理ユニット(TPU)のカスケードネットワークが提供され、TPUは、(i)ベース加工成果セグメントを第1レベルの中間加工成果セグメントストリームに処理するように、または、(ii)i番目レベルの中間加工成果セグメントストリームを、i+1番目レベルの中間加工成果セグメントストリームに処理し、結果としてi番目レベルの中間加工成果セグメントがi+1番目レベルの中間加工成果セグメントよりも高いビットレートを有するように、動作可能である。1つまたは複数のパッケージャ処理ユニット(PPU)は、ベース加工成果セグメントストリームおよび/または中間加工成果セグメントストリームのうちの1つまたは複数を、複数の選択ビットレートおよびセグメントサイズ(すなわち持続期間または長さ)を有する最終加工成果セグメントに処理するように設定可能である。1つまたは複数のクラウド記憶/サービスユニット(CSU)は、ベース加工成果セグメントのストリームおよび1つまたは複数の中間加工成果セグメントストリームの記憶および移送を容易にするために、入力処理ユニット、複数のTPU、および1つまたは複数のPPUに、動作可能に結合される。1つまたは複数の設定トリガに応答してソースメディアストリームを適応的に処理するために、1つまたは複数のCSUを介して、入力処理ユニット、複数のTPU、1つまたは複数のPPU、およびそれらの間のそれぞれの接続を動的にインスタンス化および設定するように動作可能な、オーケストレーションおよびリソース管理(ORM)ユニットが提供される。
さらに別の態様において、ソースメディアストリームを1つまたは複数のエンドユーザへの配信用の最終加工成果セグメントに処理するための、メディア処理方法の実施形態が開示される。請求される実施形態は、とりわけ、ソースメディアストリームを受信すること、ならびに、ソースメディアストリームを、1つまたは複数の設定トリガに応答して動的にインスタンス化および設定され得る複数のTPUによって、異なるメディア特徴を有する1つまたは複数レベルの加工成果セグメントに処理することを含む。請求される実施形態は、1つまたは複数レベルの加工成果セグメントを、選択メディア特徴を有する最終加工成果セグメントにパッケージングすること(たとえば必要な場合、再区分化することを含む)、および、1人または複数のエンドユーザまたは消費者への配信用に、1つまたは複数のPPUによって最終加工成果セグメントをアップロードすることを、さらに含む。TPUと同様に、PPUは、1つまたは複数の設定トリガに応答して動的にインスタンス化および設定することも可能である。一実装において、TPU/PPUは、カスタムハードウェア実装、ソフトウェア実装、シングルルート入力/出力仮想化(SR−IOV)配置構成、およびマルチルート入力/出力仮想化(MR−IOV)配置構成のうちの1つで構成可能である。1つまたは複数の設定トリガは、たとえば(i)最終加工成果セグメントストリームのエンドユーザへの配信に関連したネットワーク分析、(ii)サービスオペレータ始動アラーム、(iii)ハードウェアまたはソフトウェア障害、(iv)地理的領域内のソースメディアストリーム(106)のスケジューリング情報を含む電子プログラムガイド(EPG)のうちの、少なくとも1つに応答して生成され得る。他の実装において、加工成果セグメントの選択メディア特徴は、複数のエンコーディングビットレート、セグメントサイズ(すなわち長さまたは持続期間)、およびフレームレートのうちの少なくとも1つを含むことができる。
さらに他の態様において、1つまたは複数のTPU、PPU、および/またはORMサブシステムで動作可能な方法の追加または代替の実施形態が、本明細書の教示に従って提供され得る。さらに他の関連する態様において、本明細書に記載の1つまたは複数の分散プロセス、方法、および/またはスキームを実行するための、記憶されたプログラム命令またはコード部分を含む持続性の有形コンピュータ可読メディアの実施形態が開示される。
上記に鑑み、当業者であれば、本明細書に記載の実施形態が、メディア配信環境に割り振られたリソースの処理の動的インスタンス化を有利に提供することを理解されよう。特に、本開示の実施形態に従って使用情報(たとえば分析)に関連して動的なリソースインスタンス化を使用することで、サービスプロバイダは他の利益の中でとりわけ、その投資をより適切に最大化することができる可能性がある。
様々な実施形態の他の特徴は、従属請求項で請求されている通りである。実施形態の追加の利益および利点は、以下の説明および添付の図面に鑑みて明らかとなろう。
本開示の実施形態は、同様の参照記号が同様の要素を示す添付の図面の図中に、限定としてではなく例として示されている。本開示における「実施形態」または「一実施形態」という異なる言及は必ずしも同じ実施形態に対するものではなく、こうした言及は少なくとも1つを意味し得ることに留意されたい。さらに、実施形態に関して特定の機能、構造、または特徴を説明する場合、他の実施形態に関してこうした機能、構造、または特徴を実施することが、明示的に説明されるか否かにかかわらず、当業者の知識の範囲内にあることが提示される。
添付の図面は、本開示の1つまたは複数の例示の実施形態を図示するために本明細書に組み込まれ、その一部を形成する。本開示の様々な利点および機能は、添付の特許請求の範囲に関して、および添付の図面を参照して説明される、以下の発明を実施するための形態から理解されよう。
本特許出願の実施形態に従った、ソースメディアストリームを適応的に処理するための例示のソフトウェア規定メディアプラットフォーム(SDMP)の全体的アーキテクチャを示す図である。 SDMPアーキテクチャの実施形態で使用するための、例示のトランスコーディング処理ユニット(TPU)を示すブロック図である。 SDMPアーキテクチャの実施形態で使用するための、冗長設定で提供される例示のパッケージャ処理ユニット(PPU)を示すブロック図である。 本特許出願に関するソースメディア処理方法を実行するために、1つまたは複数の実施形態において組み合わせ可能な、様々な機能、ステップ、および動作に関するブロックを伴うフローチャートを示す図である。 本特許出願の教示に従った、ソフトウェア規定メディアプラットフォームの実施形態が実装可能な様々な例示の設定を示す図である。 本特許出願の教示に従った、ソフトウェア規定メディアプラットフォームの実施形態が実装可能な様々な例示の設定を示す図である。 本特許出願の教示に従った、ソフトウェア規定メディアプラットフォームの実施形態が実装可能な様々な例示の設定を示す図である。 実施形態に従った、TPUの仮想化ベースの実装を示す図である。 実施形態に従った、ソフトウェア規定メディアプラットフォームのIaaSベースの実装を示す図である。 実施形態に従った、設定トリガに応答してTPU、PPU、およびそれらの間の相互接続を動的にインスタンス化および設定するように動作可能な、オーケストレーションおよびリソース管理(ORM)サブシステムを示すブロック図である。 実施形態に従った、本特許出願のSDMPアーキテクチャの1つまたは複数のメディア処理ユニットおよび/または他のサブシステムを実現するように設定され得る、分散ハードウェアプラットフォームを示すブロック図である。
以下の説明では、本特許開示の1つまたは複数の実施形態に関して、多数の特有の細部が記載される。しかしながら、1つまたは複数の実施形態は、こうした特有の細部なしに実施可能であることを理解されたい。他の事例では、例示の実施形態の理解を不明瞭にしないために、周知の回路、サブシステム、構成要素、構造、および技法は詳細に示されていない。したがって、当業者であれば、本開示の実施形態はこうした特有の構成要素ベースの細部なしに実施可能であることを理解されよう。当業者であれば、本明細書に記載の発明を実施するための形態の助けにより、さらに添付の図面を参照しながら、必要以上の実験をせずに1つまたは複数の実施形態を作成および使用できることをさらに理解されたい。
加えて、「結合された」および「接続された」などの用語は、その派生語と共に、以下の説明、特許請求の範囲、またはその両方で使用可能である。これらの用語は必ずしも互いの同義語として意図されないことを理解されたい。「結合された」は、2つ以上の要素が、互いに直接物理的または電気的に接触し得るか否かに関わらず、互いに協働または相互作用することを示すために使用可能である。「接続された」は、互いに結合された2つ以上の要素間での通信の確立、すなわち通信関係を示すために使用可能である。さらに本明細書に記載の1つまたは複数の例示の実施形態では、一般的に言えば、要素が機能を実行できるか、または実行するように別の方法で構造的に配置構成できる場合、その機能を実行するように要素、構成要素、またはモジュールを設定することができる。
本明細書で使用する場合、メディア処理要素またはノードは、仮想化されるかまたは他の方法で、ネットワーク上の他の機器(たとえば他のネットワーク要素、エンドステーションなど)と通信可能に相互接続している、ハードウェアおよびソフトウェアを含む、1つまたは複数のサービス機器からなり得、様々な用途およびネットワーク条件に適合的に動的にインスタンス化および設定可能である。エンドユーザステーションは、加入者エンドステーション、クライアントデバイス、またはユーザ機器とも呼ばれ、とりわけ、ストリーミングアプリケーション仕様に従って、ストリーミングサーバまたはコンテンツプロバイダからコンテンツを受信するために、少なくとも1つのクライアントアプリケーション(たとえばABRストリーミングクライアントアプリケーション)を実行するように設定された、任意のデバイスを備えることができる。したがって、例示のクライアントデバイスは、配信ネットワーク(たとえばIPネットワーク)を介して提供されるライブまたはオンデマンドのコンテンツ/サービスにアクセスするかまたは消費することが可能な、セットトップボックス、パーソナル/デジタルビデオレコーダ(PVR/DVR)、ワークステーション、ラップトップ、ネットブック、パームトップ、モバイルフォン、スマートフォン、マルチメディアフォン、ネットワーク化プロジェクタまたはメディアプレーヤ、モバイル/ワイヤレスユーザ機器、IP対応高解像度(HD)または超HD TV端末、ポータブルメディアプレーヤ、位置把握加入者機器、ゲーミングシステムまたはコンソール(Wii(登録商標)、Play Station 3(登録商標)、Xbox 360(登録商標))などを含むことが可能であり、メディアは本明細書に記載の1つまたは複数の実施形態に従ってソフトウェア規定プラットフォーム内で処理することができる。さらにクライアントデバイスは、ブロードキャストネットワーク(たとえばケーブルおよび衛星ネットワーク)、ならびに、好適なサービスプロバイダアクセスネットワークを介したインターネットなどのパケット交換ワイドエリア公衆ネットワークを介して提供される、コンテンツ/サービスにアクセスするかまたは消費することも可能である。さらに他の変形形態において、クライアントデバイスまたは加入者エンドステーションも、インターネット上にオーバーレイされた(たとえばインターネットを介してトンネリングされた)仮想私設ネットワーク(VPN)上に提供されるコンテンツ/サービスにアクセスするかまたは消費することが可能である。
本特許開示の1つまたは複数の実施形態は、ソフトウェア、ファームウェア、および/またはハードウェアの異なる組み合わせを使用して実装可能である。したがって、図(たとえばフローチャート)に示される技法のうちの1つまたは複数は、1つまたは複数の電子デバイスまたはノード(たとえばネットワーク要素、メディア処理ユニット、システム管理ノード、または加入者ステーションなど)上で記憶および実行されるコードおよびデータを使用して実装可能である。こうした電子デバイスは、持続性コンピュータ可読記憶メディア(たとえば磁気ディスク、光ディスク、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリデバイス、相変化メモリなど)、一時コンピュータ可読伝送メディア(たとえば電気、光、音響、または、搬送波、赤外線信号、デジタル信号などの他の形の伝搬信号)などの、コンピュータ可読メディアを使用して、コードおよびデータを(内部的に、および/または、ネットワークを介する他の電子デバイスを用いて)記憶または通信することができる。加えて、こうしたネットワーク要素は、典型的には、1つまたは複数の記憶デバイス(たとえば持続性機械可読記憶メディア)、ならびに、記憶データベース、ユーザ入力/出力デバイス(たとえばキーボード、タッチスクリーン、ポインティングデバイス、および/またはディスプレイ)、ならびに、シグナリングおよび/またはベアラメディア伝送を実現するためのネットワーク接続などの、1つまたは複数の他の構成要素に結合された、1つまたは複数のプロセッサのセットを含むことができる。プロセッサおよび他の構成要素のセットの結合は、典型的には、任意の既知の(たとえば対称/共有マルチプロセッシング)またはこれまで未知のアーキテクチャで配置構成された、1つまたは複数のバスおよびブリッジ(バスコントローラとも呼ばれる)を介することが可能である。したがって、記憶デバイスまたは所与の電子デバイスもしくはネットワーク要素の構成要素は、本開示の1つまたは複数の技法を実装するために、その要素、ノード、または電子デバイスの1つまたは複数のプロセッサ上で実行するためのコードおよび/またはデータを記憶するように設定可能である。
次に図面、より具体的には図1を参照すると、本特許出願の実施形態に従い、ソースメディアストリームを適応的に処理するための、例示のソフトウェア規定メディアプラットフォーム(SDMP)100の汎用アーキテクチャが示されている。第1に、例示のSDMPアーキテクチャ100用の全体フレームワークを直下で説明する。本開示の教示に従い、SDMPアーキテクチャ100の実施形態は、以下でより詳細に説明するソフトウェア実装「処理ユニット」を採用する。SDMPアーキテクチャ100の重要な態様は、処理全体を、各部分のデータを容易に通信および転送できる別個の部分に分割できることである。これは、たとえばマルチキャストドメイン104Aなどのドメインからセグメントまたはベース加工成果(必要な範囲で)へと生じるソースストリーム106の、初期処理によって容易となり、さらなる処理中にセグメントを記憶および取り出すために使用可能なURI/URLに関連して記憶され得る、サービスプロバイダ環境のHTTPドメイン104B内の「リソース」として識別されることになる。この初期処理は、図1に示された全体アーキテクチャのマルチキャストドメイン104A内に配設された、入力処理ユニット(IPU)108によって示される。一実施形態において、ソースストリームは、マルチキャストまたはユニキャストを介して提供されるMPEG−TSストリームである。他の実施形態において、他の特定のストリームタイプが採用可能である。さらに他の実施形態において、ソースストリームは暗号化および/またはエンコード、ならびにセグメント化または非セグメント化することができる。
本コンテキストにおいて、「セグメント」または「中間加工成果」または「ベース加工成果」は、(一般に、より長いセグメントによって促進される)伝送効率と、可変配信条件(たとえば、一般により短いセグメントによって促進される、使用可能なネットワーク帯域幅や、たとえばセルラおよびWi−Fiなどのアクセス技術間の遷移など)に適合させるための柔軟性とを平衡させる、持続期間(すなわち長さ)を有するメディアアイテムの連続部分を指す。例示の一実装において、セグメントは、約1秒から約10秒の範囲の持続期間を有することができる。いくつかの実施形態または動作条件では、持続期間は潜在的により短くまたはより長くなり得る。
現行のシステムでは、サービスプロバイダは典型的には、マルチキャストMPEG−TS形式のすべてのライブチャンネルを含む中央局を有することが可能であり、シングルトランスコーディング処理ユニット(メディアプラットフォーム上で実行する)は、チャンネルを、HTTPドメイン、たとえばHTTPライブストリーミング(HLS)、DASH、またはHDSセグメントに変換するように動作可能である。他方で、開示されたSDMPアーキテクチャは、たとえば様々なレベルの細分性で、HTTPを介してアクセス可能なセグメント化形式のメディアストリームの存在を可能にし、より効率的かつ動的に設定可能な様式での最終配信のためにより多くのビットレートおよび再セグメント化サイズ(すなわち持続期間)を作成するための、他の処理ユニットによる処理を容易にする。
セグメント化された加工成果の記憶および転送を容易にするために、クラウド記憶/配信サービスネットワークが有利に採用可能である。当業者であれば、クラウド記憶は、分散様式またはその他で、私設、公衆、またはハイブリッドのネットワークとして実装可能であることを理解されよう。たとえば図1のCSU 114は、「クラウド記憶ユニット」、すなわち、メディアコンテンツアイテムを記憶し、そのアイテムを(たとえばマルチキャスト配信技法を使用して)潜在的に多数の同時および/またはダウンストリーム消費者に配信するように特別に調整された、クラウドサービスまたはコンテンツ配信ネットワークを指す。
SDMPアーキテクチャ100は、HTTPを使用するライブメディアプログラミングおよび/またはオンデマンドコンテンツを含む、様々なデジタル資産またはプログラム資産ならびにサービス(以下、「メディアコンテンツ」と呼ぶ)の、高性能ストリーミングを容易にすることを理解されたい。一般に、「メディアコンテンツ」または「コンテンツファイル」(または単に「コンテンツ」)という用語は、本特許開示の少なくともいくつかの実施形態に言及する際に使用される場合、ライブキャプチャメディアまたはオンデマンドメディア、たとえば無線無料ネットワークテレビ(TV)の番組またはプログラム、ケーブルネットワークまたは衛星ネットワークを介した有料TV放送プログラム、無料衛星TV番組、IPTV番組、オーバーザトップ(OTT)およびビデオオンデマンド(VOD)またはムービーオンデマンド(MOD)の番組またはプログラム、タイムシフトTV(TSTV)コンテンツなどを含むことが可能な、任意のタイプのオーディオ/ビデオコンテンツなどの、デジタル資産またはプログラム資産を含むことができる。したがって、図1のソースメディアストリーム106は、上記で指摘したようにベースセグメントまたは加工成果107を生成するために、入力処理ユニット(IPU)108によって最初に処理される、任意のこうしたストリームを含むことが可能である。一実装において、IPU 108は、たとえば選択セグメント長さ/持続期間、フレームレート、およびベースビットレートでのエンコード/トランスコードなどの、選択メディア特徴を含む、ベースセグメントまたは加工成果(BWP)107を生成するために、ソースメディアストリーム106を処理することができる。1つまたは複数のCSU 114に結合された複数の処理ユニット112−1から112−Nは、複数レベルで追加の中間加工成果(IWP)へのベースセグメントストリーム107を処理することが可能であり、セグメントは、図1では例示的にIWP 115−1から115−3として示された異なるメディア特徴を有することが可能である。
1つまたは複数の出力処理ユニット(OPU)116は、入力ストリーム、BWPストリーム、および/または様々なレベルのIWPストリームにアクセスするように、ならびに、CSU 118に関連付けられた好適なストリーミング配信インフラストラクチャ120を介した、1つまたは複数のエンドユーザ機器またはデバイス、たとえばUE 122−1からUE 122−Nへの配信のためにCSU 118にアップロード可能な、望ましいメディア特徴を有する最終加工成果(FWP)117としてセグメントをパッケージングおよびアップロードするためにストリームを処理するように、動的に設定可能である。出力処理ユニット116は、最終セグメントに関して適切なマニフェストファイルを生成するため、ならびに、セグメント同期化およびフレーム整合を容易にするための、責務も負う。加えて、たとえばストリームアクセスポイント(SAP)情報、プログラムクロック基準(PCR)値、表示タイムスタンプ(PTS)値、およびデコーディングタイムスタンプ(DTS)値などの、最終セグメントに関する適切なタイミング情報も、出力処理ユニット116によって提供可能である。当業者であれば、アップロードされたFWPセグメントは、Moving Picture Expert Group(MPEG)Dynamic Adaptive Streaming over HTTP(MPEG−DASH)規格、HTTP Live Streaming(HLS)規格、SilverLight(登録商標)Smooth Streaming規格、およびHTTP Dynamic Streaming(HDS)規格などのうちの少なくとも1つに準拠した、好適な適合ビットレート(ABR)ストリーミング環境でアクセス可能であることを理解されよう。
一般に、SDMPアーキテクチャ100の様々な処理ユニットは、主にそれぞれの機能に応じて、トランスコーディング/トランスコード処理ユニット(TPU)またはパッケージャ処理ユニット(PPU)のいずれかに分類可能である。ある意味で、処理ユニットが入力ストリームのビットレートとは異なるビットレートを有する1つまたは複数の出力ストリームを生成するために入力ストリームを処理するように動作可能である場合、こうした処理ユニットをTPUと呼ぶことができる。したがって、いくつかの実装において、着信処理ユニット(たとえばIPU 108)はPPUまたはTPUを含むことができる。たとえば、ソースメディアストリーム106が、最終加工成果のビットレートになるようなビットレートですでにセグメント化およびエンコードされている場合、そのストリームをトランスコードする必要はないため、PPUはIPU 108として動作するように設定可能である。他方で、ソースメディアストリーム106がエンコーディングまたはトランスコーディングを必要とする場合、TPUはIPU 108として動作するように提供可能である。SDMP 100の出力処理機能に関しては、一般に、フェイルオーバー冗長性ならびに複数のCSU 118へのFWPの効率的なアップロードを促進させるために、マスターPPUが1つまたは複数のスレーブPPUに対して同期化される、マスター/スレーブ関係で組織することが可能な、複数のPPUによって実行される。いくつかの事例では、1つまたは複数のPPUが(セグメントが独立に作成された)自律ユニットとして動作可能である。IPUおよびOPUの両方として動作するPPUが、内部CSUからのセグメント(すなわちBWPストリームおよび/またはIWPストリーム)ではなくソース入力(たとえばマルチキャストUDP)を受信できることも可能であることを理解されたい。残りの処理ユニット112−1から112−Nは、一般に、分散ネットワークで、たとえばカスケードネットワークとして組織可能であり、各々が、入力ストリームを受信し、これを処理して異なるセットのメディア特徴を有する出力ストリームを生成するように動作する、TPUからなる(したがって、IPU 108もTPUである、中間TPUとも呼ぶことができる)。したがって、中間TPUは、(i)ベース加工成果セグメント107を第1レベルのIWPストリームに処理するように、または、(ii)i番目レベルのIWPストリームを、i+1番目レベルのIWPストリームに処理し、結果としてi番目レベルの加工成果セグメントがi+1番目レベルの加工成果セグメントよりも高いビットレートを有するように動作可能な、処理ユニットとみなされ得る。ここでi=1からNである。追加/代替実施形態において、TPUは、代わりに入力の他のメディア特徴を変更するように動作可能であり、たとえばビットレートは同じままであり得るが、フレームレートおよび/または解像度は変換可能である。こうしたシナリオにおいて、i番目レベルの加工成果セグメントおよびi+1番目レベルの加工成果セグメントの特徴は、ビットレート関係と類似するが、必要な変更が加えられた他の関係を有することができる。
さらに、図1に示されるSDMPアーキテクチャ100は、好ましくはたとえば需要の変化、リソースの可用性、需要に対してシステム性能に影響を与える他のパラメータなどのトリガ要因に従った、処理ユニットの作成および破壊(すなわち動的インスタンス化)を含むシステム動作の監視および制御、異なる用途に対するシステムリソース(たとえばハードウェアコンピューティングリソース)の請求および解除、処理ユニットの内部的(すなわち、たとえば特定のビットレートエンコーディングなどの特定タスクについての処理ユニットの動作をカスタマイズすること)および外部的(すなわち、別個のビットレートのセットに対するそれぞれの処理系統などの、望ましいより高度なフローまたは機能を達成するために、処理ユニットの入力および出力をまとめて接続すること)な両方の設定、などに対する責務を負う、全体システム管理エンティティとして動作可能であり得るオーケストレーションおよびリソース管理(ORM)システムまたはサブシステム124を含む。特定の実装に応じて、トリガ要因の範囲および組み合わせは、かなり変化する可能性があり、たとえばネットワーク分析126−1(たとえば、エンドユーザへの最終加工成果セグメントストリームの配信に対する使用率)、手動またはその他であり得るサービスオペレータ始動信号またはアラーム126−2、特定のSDMP設定の様々なエンティティに関してハードウェア/ソフトウェア障害またはサービス障害(たとえば停電、ハードウェア破壊、または他の機能不良など)に応答して生成される信号として、グループ化することができる。他の実装において、プログラム可用性(たとえば、特定の地理的領域内でのチャンネルまたはソースメディアストリームのスケジューリング情報を含む電子番組ガイド(EPG)に基づく)ならびにネットワーク帯域幅利用およびサービス品質(QoS)ベース基準126−3に基づく静的条件付けは、適切なトリガを生成するように動作可能である。さらに他の実装において、コンテンツ消費の予測モデリングを採用して、加入者層などに依存し得るある番組に対する需要急増を予測することが可能であり、好適なTPUおよびPPUを積極的にインスタンス化および設定するように、適応的なフィードバック制御シグナリングをORM 124に提供するように動作可能である。例示的な一実施形態において、ORMサブシステム124はソフトウェア実装型であり得、専用コンピュータハードウェア(たとえば分散型またはスタンドアロン型コンピュータ、サーバなどのいずれか)を使用するか、または同じコンピュータハードウェアを処理ユニット自体と共有することが可能である。処理ユニット、ORMサブシステム、および潜在的なSDMP設定に関する他の詳細は、以下で説明する。
前述のTPUおよびPPUは、SDMPアーキテクチャ100の基本構築ブロックとして提供可能であり、処理ユニットは、ソフトウェア、ハードウェア、および/またはそれらの任意の組み合わせで実現または仮想化可能であることを理解されたい。一般に、こうした処理ユニットは、ソフトウェア実装ユニット、たとえば、説明する機能を提供するためにあるアプリケーションプログラムの命令を実行する好適なコンピュータハードウェアを、備えることができる。たとえばレコーダなどの構成要素または下位構成要素は、以下で説明するレコーダ関連機能を提供するためのレコーダアプリケーションプログラムの命令を実行する、コンピュータハードウェアによって構築され得る。処理ユニット(TPUまたはPPU)は、好ましくはメディアを変換し、これを、たとえば採集地点からパッケージングおよび配信地点などへと、ある段階から別の段階へと移動させるために相互動作する、アプリケーションプログラムの規定セットを含む。一般に、所与の処理ユニットの構成要素および/または下位構成要素は、たとえば単一サーバコンピュータなどの、密結合コンピュータハードウェアのセットによって形成され得る。しかしながら、異なる処理ユニットを、異なるコンピューティングハードウェア(たとえば異なるサーバ)上、または共有コンピューティングハードウェア(たとえば単一サーバ上の複数の処理ユニット)上に、配置することができる。当業者であれば、こうして下位のホストハードウェア要素から処理ユニットを抽出することは、開示された実施形態の有利な機能であることを理解されよう。
次に図2および図3に進むと、それぞれ、本特許出願の実施形態に従った、例示のTPUおよびPPUサブシステムのブロック図が示されている。図2において、TPU 200は例示的に複数の構成要素または下位構成要素、すなわちレコーダ(R)204、デコーダ(D)206、エンコーダ(E)208、セグメンタ(S)210、およびアップローダ(U)212を備えるものとして示されている。IPUの一部として使用される場合、レコーダ204はソースメディア(たとえばマルチキャスト、FTP、HTTPなど)のダウンロードの責務を負う。中間TPUの実装において、レコーダ204は、任意のIWPストリームを含むアップストリームユニットからの入力ストリームを、CSUを介して受信するように動作可能である。もしも必要であれば、復号サービスも提供可能である。デコーダ206は、たとえばライブまたはVODコンテンツのいずれかなどの、ソースストリームに対して、ビデオデコードサービスを提供するように動作可能である。エンコーダ208は、1つまたは複数のビットレート(たとえば500 Kbから2.5 Mbの範囲)にビデオエンコードサービスを提供するように動作可能である。セグメンタ210は、適用可能なセグメント化サービス(たとえばHLSセグメントおよびm3u8ファイル、スムーズストリーミングなど)を提供する。アップローダ212は、1つまたは複数のCSUに対して暗号化およびアップロードのサービスを提供するように動作可能であり、動作条件および要件によって規定され得る。
TPU 200は、好ましくは複数タイプの設定を実装可能にする。1つのケースでは、TPUは単一ビットレートのみを出力可能であり、分散フレームワーク内で複数のビットレートを生成するために、他の単一出力TPUと組み合わせて使用可能である。他の設定では、TPUは、潜在的にシステムの分散型の性質を制限するが、デコード/エンコードの観点からシステムを最適化するために、複数のビットレートを出力することができる。例として、図2の入力202は、ソースメディアストリームまたはIWPストリーム(特定のビットレートを有する)を含み得、出力214−1から214−Nは、N個の異なるビットレートでトランスコードされるコンテンツのN個の表現を含み得る。TPU 200は本発明のSDMPアーキテクチャ内の基礎的な構築ブロックであり、好ましくはローカルハードウェア(たとえば中央局内のローカルネットワークによって結合されたコンピュータ)を使用して、かつ/または、分散クラウドベース環境(たとえばワイドエリアネットワークによって相互接続された別々の局またはデータセンター内に配置されたコンピュータを使用する)内に、配設可能であることを理解されたい。
所与のシステムにおけるTPUの性能は、所与のプラットフォーム上での分析、テスト、または動的評価(たとえば埋め込まれたテストスイートの実行による)のいずれかによって、適切に理解されることが好ましい。いずれのリソースが使用可能であるか、およびそのリソースらがシステム内でどのように配置されることになるかに関する判定は、TPUの理解された性能に基づくものとすることができる。一般的に、TPUは少なくともリアルタイム速度でストリームを処理し、好ましくは余裕を与えるために幾分速いことが要求され得る。所与のストリームについてリアルタイム要件に合致しないTPUは、たとえばより低いビットレートのストリームを処理する場合、またはヴォールティング(vaulting)/記録(archival)などの非リアルタイム用途などの、他の方法で有用な可能性がある。TPU実装は、そのサブシステムのうちの1つまたは複数、たとえばデコーダ206を、動的に使用不可にすることも可能である。これによってシステムは、関連付けられた機能が必要でないときにリソース消費を即時に低減させることができるが、その後、システムの動作環境における変化によって要求されたときには機能を即時に再導入することも可能である。さらに他の変形形態では、例示のTPU実装は、必要であればPPUと共にトランスマックス(transmux)モードで動作するように設定することも可能である。TPUの観点から、トランスマックスは、ストリームのビデオおよびオーディオセルに手が加えられず、そのままで渡されることを意味することができる。エンドユーザ形式への最終変換は、PPUによって提供可能である。典型的には、TPUの出力は、ある持続期間のMPEG−TSセグメント(たとえば、1秒セグメントなどの時間スケール単位、またはピクチャ群(GOP)単位のいずれかで、最低1 GOPもしくはその何分の一か)を含むことができる。
当業者であれば理解されるように、任意のセグメント化ベースシステムは、転送バジェットを考慮する前に、生成されるセグメントの少なくとも持続期間に等しい固有の待ち時間を有する可能性がある。ライブ線形アプリケーションでは、必ずしも短い待ち時間は要求されないが、たとえばスポーツイベントなどの動きの豊富なメディアを含むいくつかの特別なケースでは、待ち時間を短くすることが望ましい場合もあり得る。前述のSDMPアーキテクチャ100は、TPUを別のTPUの出力(たとえばデイジーチェーンまたはカスケード)から供給することが可能であるため、最低でもソースセグメントの持続期間に等しい待ち時間が生成されることになる。この待ち時間は、いくつかの方法で最小限にすることができる。たとえばTPUによって生成されるセグメント持続期間は、最低でも1 GOP(典型的には1〜3秒の間)またはGOPの選択部分まで低減させることができる。次いでPPUは、TPU出力を組み合わせて、エンドユーザクライアントによる消費にとって望ましい最終セグメント持続期間(典型的には10秒)を達成することができる。追加または代替として、TPUは、ハイエンドまたは特殊コンピューティングリソースが使用可能なときに、いくつかまたはすべての必要なビットレートを同時に生成することができる。
図3は、冗長設定300で提供されるPPU 310A/310Bの例示の実装のブロック図を示す。典型的には、単一のPPUは、ソースメディア(たとえばHTTPまたは他のプロトコル)のダウンロードの責務を負い、もしも必要であればオプションとして復号サービスを容易にする、レコーダ(R)と、セグメント化および同期化サービス(たとえばHLSセグメントおよびm3u8ファイル、スムーズストリーミングなど)のためのセグメンタ(S)と、暗号化および(複数CSUへの)アップロードサービスのためのアップローダ(U)との、構成要素を備える。図3の冗長設定300において、PPU 310Aはレコーダ304A、セグメンタ306A、およびアップローダ308Aを備えるものとして示されている。同様に、PPU 310Aと同期関係316にあるPPU 310Bも、対応するレコーダ304B、セグメンタ306B、およびアップローダ308Bを備える。一般に、PPUは1つまたは複数のTPUから出力を取得し、持続期間およびタイムスタンプ同期の両方の観点から、これらを再セグメント化する。次いで最終出力が1つまたは複数のCSUにアップロードされ、消費デバイス(たとえばエンドユーザデバイス)によってアクセスされることになる。一実装において、PPUは、TPUによって直接エンコードされたデータまたは生のソースのいずれかを、トランスマックスするための機能も提供可能である。さらにPPUは、異なるビットレートを有する複数の入力、または選択ビットレートを有する単一の入力のみを取り扱うように、設定可能である。複数の物理プラットフォーム全体にわたるスケーラビリティを可能にするために、PPUは、マスターまたはスレーブ/自律モードのいずれかで動作するように設定可能であり、マスターは、m3u8ファイルなどに更新が行われる前に、すべてのセグメントがCSUにアップロードされていることを保証する。マスターPPUは、複数のCSUにアップロードするための動的設定も実行可能であり得、その設定によって、ボリュームが大きいときなどに追加のCSUサービスを活動化させ得ることを理解されたい。
例として、図3のPPU 310Aは、1つまたは複数のTPUによって提供され得る複数の入力302−1から302−Mを受信するように動作可能な、マスターモードで示されている。マスターPPU 310Aのアップローダ308Aは、好適なビットレートの最終加工成果またはセグメントなどを、対応するインターフェース312−1から312−Nを介して複数のCSU 314−1から314−Nへアップロードするように動作可能である。当業者であれば、CSUが単に、データをあちこちに移動させ最終的にエンドユーザに提供するためにSDMPシステムによって使用される、分散型または集中型の記憶サービスであり得ることを理解されよう。一実装において、こうしたサービスは、外側から見ると(たとえばエンドユーザの観点からすると)従来のCDNサービスのように見える可能性のある、クラウドベースサービスとして設定可能である。他の設定では、CSUは、TPU、PPU、および他の外部CSUの間でデータを記憶および移動させるためにSDMPによって使用される、私設CSUとしてプロビジョニング可能である。エンドユーザデバイスは、私設クラウド記憶ユニット内に含まれるデータにアクセスできないことになる。データは、システムに必要なセキュリティの全体レベルに応じて、暗号化される場合またはされない場合がある。別の設定では、CSUは、エンドユーザデバイスによって消費されることになる最終加工成果を記憶するために、システムによって使用され得る、外部または公衆CSUとして配置することができる。典型的には、このコンテンツは好適なデジタル著作権管理(DRM)機構によって暗号化および保護することができる。コンテンツは、地理的性能(たとえばエッジサーバの位置を最適化するため)または冗長性の理由で、いくつかのCSU上で重複させることもできる。
図4は、本特許出願のためにソースメディア処理方法400を実行するための1つまたは複数の実施形態で組み合わせ可能な様々な機能、ステップ、および動作に関するブロックを備える、フローチャートを示す。いくつかのブロック/動作がフロー形式で示されているが、本明細書の実施形態を実施するために必ずしもすべてのブロックまたは動作が必要であるとは限らないことを理解されたい。ブロック402で、たとえばTPUまたはPPUとすることが可能な入力処理ユニットによって、着信ソースメディアストリームが受信される。着信ソースメディアストリームの特徴に関して、たとえば、メディアストリームはセグメント化されるか否か、エンコードおよび/または暗号化されるか、適切なビットレートおよびフレームレート、セグメントサイズ(すなわち持続期間)などの、1つまたは複数の判定を行うことが可能であり、意思判定ブロック404に図示されている。着信メディアストリームが好適な特徴を有する場合、さらなる判定は、適切なパッケージャ処理が必要であるかどうかであり得る。必要である場合、処理ユニットはトランスマックスモードで動作可能であり、たとえば着信ストリームを処理し、結果として生じる最終加工成果を1つまたは複数のCSUにアップロードするために適切に(再)パッケージおよび(再)セグメント化することができる。パッケージャ処理が必要でない場合、着信メディアは最小限に処理およびアップロードすることができる。これらの機能は、ブロック406、410、および412で示されている。ブロック410に示されているパッケージャ処理は、代替/追加実施形態において、アップローディング前に追加の処理が必要とされ得る、他の処理ユニット(たとえばTPU)に呼応して動作する様々なレベルのPPU機能の代表であり得ることを理解されたい。したがって、意思判定ブロック404の判定が、さらなる処理が保証されることを求めるものである場合、着信ソースメディアストリームは、異なる特徴(たとえばビットレート、セグメントサイズまたは持続期間、フレームレートなど)を有する複数レベルの加工成果へと処理することができる。前述のように、こうした処理は、動的に設定可能な配置構成で配置構成された1つまたは複数のTPUによって実現可能である(ブロック408)。その後、ブロック410のパッケージャ処理は、加工成果を、配信およびエンドユーザによる消費のためにアップロードされ得る好適なメディア特徴を有する最終加工成果に(再)セグメント化および(再)パッケージングすることができる(ブロック412)。TPU処理、PPU処理、およびアップローディング(ブロック408、410、および412に記載)に必要なリソースは、ブロック414に図示されるように、リソースの動的設定のためのフィードバック制御信号として動作する様々なトリガに基づいて、動的にインスタンス化可能である。
次に図5〜図7に進むと、本特許出願の教示に従い、ソフトウェア規定メディアプラットフォームの実施形態が設定可能な様々な例示のネットワーク環境が示されている。図5の参照番号500は、例示のSDMPアーキテクチャを採用しているメディア配信システムに関する潜在的な設定を示す。こうしたシステムでは、処理ユニットがデータを共有できるようにするために私設CSUを、特に、処理ユニットが実行しているメディアプラットフォームと共同設置されたCSUを使用することが望ましい場合がある。しかしながら、CSUはクラウド内にあるか、またはハイブリッド設定であり得ることを理解されたい。図5において、参照番号508A〜508Cは、3つのTPU 502、504、506と、同期制御通信512を介してマスター−スレーブ関係で提供される2つのPPU 510A、510Bとの間に配設された、3つの代表的な私設CSUを指す。システム500は、ライブプログラムが典型的にマルチキャストMPEG−TSストリームである、入力ソース(1)上で動作するように設定され得る。TPU 502は、ソースストリーム(1)を受信し、私設CSU 508Aを介してTPU 504およびマスターPPU 510Aの両方によって消費される、選択持続期間(たとえば1秒セグメント)およびビットレートのセグメント(3a)を作成する。TPU 504および506によって追加のビットレートが作成可能であり、追加の私設CSU 508Bおよび508Cを使用してPPU 510Bによって消費可能である。ビットレート関係に関して、セグメント3a、3b、および3cのビットレートは同一であり得、これはセグメント6a、6b、および6cのビットレートよりは高い可能性があり、セグメント6a、6b、および6cのビットレートはセグメント9aおよび9bのビットレートよりも高い可能性がある。PPU 510A、510Bは、アップロードおよび配信に適切なビットレート、セグメント持続期間などの最終加工成果セグメントを生成するために、これらの様々なセグメントを処理するように動作可能である。典型的には、PPU 510A、510Bのうちの1つを、アップロードされることになる最終セグメントに関するマスターマニフェストファイル、たとえばPPU 510Aを生成するように指定することができる。マスターPPU 510Aは、すべての対応するセグメントがアップロードされると、好適なインターフェース516−A(1)から516−A(K)を介して1つまたは複数のCSU 514−1から514−Kに記憶されるm3u8制御ファイル(たとえばプレイリスト)を更新するように、さらに動作可能である。制御チャネル512を介してPPU 510AとPPU 510Bとの間で実現される同期化によって、引き継ぐことが必要になった場合、PPU 510Bも、好適なインターフェース516−B(1)から516−B(K)を介してCSU 514−1から514−Kにファイルをアップロードするように動作可能である。
TPU 502、504、506、およびPPU 510A〜510Bに関して、それらが配置される位置に応じていくつかの設定が可能である。一配置構成では、システム500のTPUおよびPPUのうちの1つまたは複数は、(たとえば単一の局またはデータセンター内の)それぞれの処理機能を実行するローカルハードウェアメディアプラットフォームに配置可能である。クラウド配置構成では、システム500のTPUおよびPPUのうちの1つまたは複数は、クラウドサービスプロバイダ(CSP)によって提供される別々のハードウェア処理リソース上でホスト可能である。したがって、ハイブリッド設定を含む設定の範囲は、プロビジョニングに関するTPU/PPUの組み合わせに応じて実装可能である。たとえば、1つのハイブリッド設定において、TPU 502、TPU 504、およびPPU 510Aはそれぞれのローカルハードウェアメディアプラットフォームに配置可能であるが、TPU 506およびPPU 510BはCSPまたはそれぞれのCSPによってサポート可能である。同様に、いくつかの他の設定が有利に取得可能である。
図6は、単一のPPU設定を有する例示のシステム600を示す。図7は、単一のPPU設定と組み合わされたマルチビットレートTPU設定を有する、例示のシステム700を示す。当業者であれば、図5のシステム500に関して上記で述べた説明が、変更すべきところは変更して、図6および図7の実施形態にも一般に適用可能であるため、反復しないことを理解されよう。システム600に関して、単一のPPU 602は、パッケージャの処理、および続く対応するインターフェース604−1から604−Kを介したCSU 514−1から514−Kへのアップロードのために、3つのIWPセグメントストリーム3b、6b、および9bのすべてをそれぞれCSU 508A〜508Cを介して受信するように動作可能であることに留意されたい。図7のシステム700では、2つのCSU 508A、508Bに結合された2つのTPU 502、504のみが提供される。TPU 504は、CSU 508Aを介して受信した1つの入力セグメントストリーム3cから、2つの出力セグメントストリーム6aおよび9aを生成するように動作可能である。出力セグメントストリーム6aおよび9aの両方がCSU 508Bに提供され、CSU 508Aを介して受信したセグメントストリーム3bに加えて、ストリーム6bおよび9bとして単一のPPU 602によって消費される。
以前に指摘したように、例示のSDMPアーキテクチャの処理ユニットは、たとえばソフトウェア実装、カスタムハードウェア実装などの多くの方法で、ならびに適切な仮想化技法を使用して実装可能である。TPUエンティティを例として使用し、あるI/O仮想化(IOV)ベースの実装について直下で説明する。
図8は、実施形態に従ったTPUのIOVベースの実装を示す。本明細書で開示されるTPU/PPUのアーキテクチャは、たとえばPeripheral Component Interconnect−Special Interest Group(PCI−SIG)、またはその変形であるPCI−SIG ExpressもしくはPCI−SIGeなどの、I/O仮想化技術を利用する実装を可能にすることを理解されたい。特に、実行可能PCIeデバイスがいかなるランタイムオーバーヘッドとも直接共有されないようにできるPCI−SIG IOV標準化機構が、仮想化アーキテクチャ内に実装可能である。参照番号800はシングルルートIOV(SR−IOV)アーキテクチャを指し、物理機能(PF)ドライバ816は、下位のSR−IOV対応ハードウェア806の機能を確立および設定するために、起動時に物理機能(PF)814と通信するように動作可能である。一配置構成において、SR−IOV対応ハードウェア806は、仮想機能(VF0からVFN)のブロック808に関連付けられたハードウェア圧縮システムオンチップ(SOC)812を備えることができる。仮想機械モニタ(VMM)804は、仮想機械(VM)環境802内でサポートされる1つまたは複数のTPU 820−1から820−Kがリソースを利用できるようにする、仮想機能(VF)ドライバ818へのアクセスを提供するように動作可能である。典型的な設定において、TPUは、1つはデコード用、1つはエンコード用の、2つのVFリソースを利用して、入力822から複数の出力824−1から824−Nを生成することができる。同じ分散VMシステム802において、他のTPUは、必要であれば、より低品質の出力に対しては単に汎用計算リソースを利用すればよい。以下で詳細に説明するように、静的または動的のいずれかの様式で(VMM/PFドライバを介して)使用可能なリソースを管理するために、オーケストレーションおよびリソース管理(ORM)サブシステムを提供することができる。
図9に示される別の実装において、例示のSDMPアーキテクチャ900は、Infrastructure as a Service(IaaS)プロビジョニングモデル(たとえばOpenStack)と、シングルルートおよびマルチルートのIOV(SR/MR−IOV)リソースを含む特殊ハードウェアリソースとの両方を含むことができる。仮想化プロビジョニングモデルとして、例示のSDMPのIaaS 902は、各々がSDMPの1つまたは複数のエンティティまたはサブシステムを実行する、複数のVMをサポートするように動作可能である。VM 904はORM、CSU、およびPPUサブシステムをサポートするように動作可能であり、VM 906は複数のTPUをサポートするように動作可能である。VMはVM 908によって示されるように、単一のTPUをサポートすることもできる。IaaS 902とハードウェアリソースとの間のアクセスは、複数のVMM 910〜914によって容易にすることができる。例として、汎用計算および記憶リソース916、ならびに複数のSR/MR−IOV 918−1から918−3が例示され、特定のIOVがハードウェア圧縮SOCおよび関連付けられたVFモジュールを含む。他の例として、SR/MR−IOV 918−1のVF0〜VF2はTPUの第1のブロック906Aをサポートすることが可能であり、SR/MR−IOV 918−2のVF0〜VF2はVM 906のTPUの第2のブロック 906Bをサポートすることが可能である。同様に、単一の仮想機能、たとえばSR/MR−IOV 918−3のVF0は、VM 908の単一のTPUをサポートすることが可能である。
図10は、実施形態に従った設定トリガに応答して、TPU、PPU、およびその間の相互接続を動的にインスタンス化および設定するように動作可能な、例示のORMアーキテクチャ1000のブロック図を示す。広義には、ORMアーキテクチャ1000は、例示のSDMPシステム内での動的設定機能およびリソース認識/割り振りを容易にするための、クラウドコンピューティングプラットフォーム1002上へのORM機能のプロビジョニングを含む。ORMアーキテクチャ1000は、需要、ネットワーク利用、QoSなどに一致する適切なネットワーキング、記憶、および計算サービスがシステムに割り振られることを保証するために、クラウドサービス(たとえばOpenStack)を活用するように設定可能である。ORM機能のネットワーキングモジュールまたはサブシステム1004は、例示のSDMP向けに適切なTPU、PPU、およびCSUを動的に作成および設定するように要求するための責務を負う。ORM機能内で調整可能なフィーチャ設定1006は、たとえばTSTV、ネットワークベースビデオレコーディング(NPVR)などのコンテンツのある操作を容易にするための、TPUおよび/またはPPUの設定をサポートするように動作可能である。たとえばTSTVは、新しいプログラムディレクトリを作成し、フィーチャ設定モジュール1006によって容易にされ得るプログラム作成のためのインバンドまたはアウトバンドシグナリングを受信するように、PPUを設定するように要求する。加えて、TPU/PPUに使用可能な汎用計算リソース/サービス1010、およびTPUに使用可能な特殊計算リソース/サービス1012が、圧縮のための専用ハードウェアを含むことが可能なORMによって動的にプロビジョニング可能である。可能であれば、リソースは有用性を最大限にするために(前述のようなSR−IOVおよびMR−IOVなどの技術を介して)仮想化することができる。
ORM機能は、様々なリソースをインスタンス化および設定するため、ならびに、たとえば処理1016などの好適なハードウェアを使用するメディア処理方法の実施形態(たとえば図4に記載)を実現するために、不揮発性メモリに記憶された適切なSDMPサービス論理1014をさらに含むことができる。加えて、SDMP論理1014への入力として動作可能な設定トリガ信号を含む、制御信号の通信を容易にするために、適切なネットワークインターフェース(I/F)1018を提供することができる。
ORMアーキテクチャ1000を利用する例示のSDMPシステムが、予め特定のチャンネルに対して動的なサービス品質を規定するように設定可能であることを理解されたい。たとえばORM機能は、しきい値、要求、トラップ、および外部イベントに基づいてリソースを再割り振りするための責務を負うことができる。例としてORM機能は、以下のうちの1つまたはいくつかを実行することができる。
(i)チャンネルに対して最低サービス品質、すなわち最低数の適応的ビットレート、解像度、フレームレートおよびビットレートをセットする。採集要求が受け入れられると、この最低サービス品質が保証されることになる。
(ii)リソースが許可する場合、より高いサービス品質、すなわち適応的ビットレート数の増加をセットする。
(iii)最終コンテンツを消費しているアクティブクライアントの数に基づいてサービス品質を管理する、エンドユーザしきい値をセットする。典型的には、より多数のアクティブユーザが、統計的に帯域幅がより大きく変動する(たとえばより多くの人がセルラネットワークを介して視聴している、など)という事実により、より適応的なビットレートを要求することになる。
(iv)電子番組ガイド情報および/または他の制御対象外チャンネルに基づくしきい値、すなわちスポーツイベントに関する最低サービス品質。
(v)チャンネルに対する待ち時間しきい値。より短い待ち時間は、生のソースのデコードおよび後続のエンコードを同時に行うための追加のリソースを必要とする可能性がある。
当業者であれば理解可能なように、これらのタイプのしきい値およびトラップは、有利なことにシステム全体が任意の所与の時点で適切なサービス品質をアクティブに管理できるようにし得る。
さらに例示のSDMPシステムは、アーキテクチャ全体のスケーラブルかつ分散的な性質により、シームレスおよび非シームレスの両方の冗長性をサポートすることができる。例として、以下のタイプの冗長性が実装可能である。
(i)非稼働のTPU、PPU、およびCSUの自動交換。ORMエンティティは稼働中エンティティを監視し、障害を検出した場合、新しいリソースをスピンアップする。
(ii)リソースが制約されている場合、ORMエンティティは他のサービスをその最低サービス品質まで低下させ、結果として障害のあるエンティティを交換するためにリソースを解放することができる。
(iii)シームレスなフェイルオーバーの場合、代替のCSU位置にアップロードするか、またはシームレスに切り替える準備の整った、依然としてアクティブモードにある重複TPU、PPU、およびCSUが作成可能である。
次に図11を参照すると、実施形態に従った例示のSDMPアーキテクチャの要素を実現するように設定可能な、分散ハードウェアプラットフォーム1100のブロック図が示されている。プラットフォーム1100は、TPU、PPU、もしくはORMサブシステム、またはそれらの任意の組み合わせ/下位組み合わせとして動作するように個別化および/または仮想化することが可能であることを理解されたい。バス構造1104に結合された1つまたは複数のプロセッサまたはプロセッサボード1102−1から1102−Nが、プラットフォーム1100の分散処理および全体制御をサポートするために提供可能である。バス1104は、追加または周辺バス1108、1110まで延在させるかまたはこれらに結合するために、1つまたは複数のバスブリッジまたはバスコントローラ1106−1、1106−2に結合可能であり、追加または周辺バス1108、1110は複数のインターフェース(I/F)をサポート可能である。一具体化において、こうしたインターフェースのうちの1つまたは複数は、内部および外部のデータベース、コンテンツプロバイダ、他のTPU、PPU、および私設CSUなどの内部エンティティとのインターフェースを実現可能である。加えて、1つまたは複数のインターフェースは、内部および/または外部のネットワークおよびエンティティとインターフェースしているトリガ信号をサポートすることができる。例として、I/F 1112−1/1112−2および1114−1/1114−2は、例示の実装において動作可能なこうしたインターフェースの代表である。
プラットフォーム1100が提供されたメモリサブシステム1119は、複数のメモリモジュール1118−1から1118−M、ならびに、永続メモリモジュール1117などの不揮発性メモリモジュールに関してメモリ動作を制御するための、1つまたは複数のメモリコントローラ1116を含むことができる。本開示の教示に従い、1つまたは複数のソフトウェアプロセス、モジュール、ブロック、ルーチン、スレッドなどとして組織および/または実行され得るプログラム命令は、メディア処理論理および/またはTPU、PPU、もしくはORMサブシステムの1つまたは複数の機能を実現するために、永続メモリ1117に記憶するかまたはアップロード/ダウンロードすることができる。したがって命令を含む持続性コンピュータ可読メディアが永続メモリモジュール1117の一部として具現化可能であり、命令は、たとえばSDMP論理ならびに好適なアプリケーションプロセスの実行を含む、プラットフォーム1100の個別化された具体化において、様々な機能を実現するように実行可能である。
前述の発明を実施するための形態に基づき、本発明の実施形態は、プロバイダが以下の非網羅的リストに記載したいくつかの方法で投資を最大化できるようにし得るものであることを理解されたい。
− ビットレートを動的に追加/除去する。
− クラウド記憶へのアップロードを動的に追加/除去する。
− 分析を使用して、(たとえば、視聴者の増加に対処する、品質を向上させるなどのために)追加のビットレートが追加/除去されるべきであるかどうかを判別する。
− 分析を使用して、リソースをシフトする(すなわち、需要ごとに3GビットレートからWi−Fiビットレートへ;多くの需要および帯域幅の可用性に基づき細分性のより高い使用可能ビットレート)。
− より高品質のイベント(たとえば、サンデーナイトゲーム)をスケジューリングする。
− リソース(たとえばTPU/PPU)をクラウド内に配置する。
− 高速ウォームスタートアップ(すなわち、低ビットトランスコードは実行しているが、セグメント化/アップロードは発生していない)。
− 冗長性(たとえば、上昇可能な実行中の低ビットレートのバックアップチャンネルを有するなど)。
− リソースを割り振り、以下の例を含む様々な入力に基づいて設定する。(1)電子番組ガイド(EPG)からのプログラミング情報、(2)位置、サービスレベル契約(SLA)などのユーザプロファイル情報、(3)性能の変化(たとえば電力管理のための内部調整)に関する処理ユニットからの情報。
− トランスコーディング機能に対してI/Oハードウェア抽象化を提供する。
本開示の様々な実施形態の上記説明において、本明細書で使用される用語は特定の実施形態を説明するためのみのものであり、本発明を限定することは意図されていないことを理解されたい。特に規定されていない限り、本明細書で使用されるすべての用語(技術用語および科学用語を含む)は、本発明が属する分野の当業者が一般的に理解するのと同じ意味を有する。一般に使用される辞書に規定されているような用語は、本明細書および関連分野との関連におけるその用語の意味に一致する意味を有するものと解釈されるべきであり、本明細書で明示的に規定される理想的または過度に形式的な意味で解釈されないものであることを、さらに理解されよう。
本明細書では、コンピュータ実装方法、装置(システムおよび/もしくはデバイス)ならびに/またはコンピュータプログラム製品のブロック図および/またはフローチャートの図を参照しながら、少なくともいくつかの例示の実施形態を説明する。ブロック図および/またはフローチャートの図のブロック、ならびにブロック図および/またはフローチャートの図内のブロックの組み合わせは、1つまたは複数のコンピュータ回路によって実行されるコンピュータプログラム命令によって実装可能であることを理解されよう。こうしたコンピュータプログラム命令は、汎用コンピュータ回路、特定用途向けコンピュータ回路、および/または、機械を製造するための他のプログラマブルデータ処理回路のプロセッサ回路に提供可能であるため、結果として、コンピュータおよび/または他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、ブロック図および/またはフローチャートのブロックに指定された機能/動作を実装するために、トランジスタ、メモリ位置に記憶された値、およびこうした回路内の他のハードウェア構成要素を変換および制御し、そのことによって、ブロック図および/またはフローチャートのブロックに指定された機能/動作を実装するための手段(機能)および/または構造を作成する。加えて、特定の様式で機能するようにコンピュータまたは他のプログラマブルデータ処理装置に命じることが可能な、コンピュータプログラム命令は、有形のコンピュータ可読メディア内にも記憶可能であり、結果として、コンピュータ可読メディア内に記憶された命令は、ブロック図および/またはフローチャートのブロックに指定された機能/動作を実施する命令を含む製品を製造する。
前述のような有形で持続性のコンピュータ可読メディアは、電子、磁気、光、電磁、または半導体データ記憶のシステム、装置、またはデバイスを含むことができる。コンピュータ可読メディアのより特定の例は、ポータブルコンピュータディスケット、ランダムアクセスメモリ(RAM)回路、読み取り専用メモリ(ROM)回路、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)回路、ポータブルコンパクトディスク読み取り専用メモリ(CD−ROM)、およびポータブルデジタルビデオディスク読み取り専用メモリ(DVD/ブルーレイ)を含む。コンピュータプログラム命令は、コンピュータおよび/または他のプログラマブルデータ処理装置にロードするかまたは別の方法でダウンロードし、コンピュータ実装プロセスを生成するためにコンピュータおよび/または他のプログラマブル装置上で一連の動作ステップを実行させることも可能であり、結果としてコンピュータまたは他のプログラマブル装置上で実行する命令は、ブロック図および/またはフローチャートのブロックに指定された機能/動作を実装するためのステップを提供する。したがって本発明の実施形態は、集合的に「回路」、「モジュール」、またはそれらの変形として呼ばれることのある、デジタル信号プロセッサなどのプロセッサ上で実行するハードウェアおよび/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)内で具現化可能である。
さらに、少なくともいくつかの追加または代替の実装において、ブロック内に記載された機能/動作は、フローチャートに示された順序とは異なって生じることが可能である。たとえば連続して示されている2つのブロックはほぼ同時に実行可能であるか、または関連する機能/動作に応じて、ブロックは時には逆順で実行可能である。さらにフローチャートおよび/またはブロック図の所与のブロックの機能は、複数のブロックに分離可能であり、かつ/または、フローチャートおよび/またはブロック図の2つまたはそれ以上のブロックの機能は少なくとも部分的に統合可能である。さらに、いくつかの図は、通信の主要方向を示すために通信経路上に矢印を含むが、通信は示された矢印とは反対の方向にも発生可能であることを理解されたい。最終的に、図示されたブロック間に他のブロックを追加/挿入することが可能である。
したがって、本開示の図面に示されたフローチャートのいずれかに示された、動作、ステップ、機能、構成要素、またはブロックの順序またはシーケンスは、特定の動作、ステップ、機能、構成要素、またはブロックの削除または省略を含めて、特定のフローチャート内で修正、変更、置換、カスタマイズ、または別の方法で再配置可能であることを、はっきりと理解されたい。さらに、本特許開示の教示を実施するための1つまたは複数のプロセスに関して、追加の変形、修正、および構成を実現するために、特定のフローチャート内に示された動作、ステップ、機能、構成要素、またはブロックは、別のフローチャート内に示された動作、ステップ、機能、構成要素、またはブロックを用いて、相互に混合するかまたは別の方法で相互に配置または再配置することが可能である。
様々な実施形態を詳細に図示および説明してきたが、特許請求の範囲はいかなる特定の実施形態または例にも限定されるものではない。上記の発明を実施するための形態のいずれも、任意の特定の構成要素、要素、ステップ、動作、または機能が不可欠であり、特許請求の範囲に含まれなければならないことを示唆するものと読み取るべきではない。単数形で言及されている要素は、特に明示的に記載されていない限り「唯一」を意味するものとは意図されておらず、「1つまたは複数」を意味する。当業者にとって既知の上記で説明する実施形態の要素と等価のすべての構造および機能は、参照により本明細書に明示的に組み込まれ、本特許請求の範囲によって包含されることが意図される。したがって、当業者であれば、本明細書で説明する例示の実施形態は、以下に添付の特許請求の範囲の趣旨および範囲内にある様々な修正および変更によって実施可能であることを理解されよう。

Claims (7)

  1. ソースメディアストリーム(106)を1つまたは複数のエンドユーザ(122−1から122−N)への配信用の最終加工成果セグメント(117)に処理するように動作可能な、メディア処理システム(100)であって、
    前記ソースメディアストリーム(106)をベース加工成果セグメントのストリーム(107)に区分するように設定された入力処理ユニット(108)であって、各ベース加工成果セグメントは選択時間持続期間を有し、ベースビットレートを有するようにトランスコードされる、入力処理ユニット(108)と、
    複数のトランスコーディング処理ユニット(112−1から112−N、200)のカスケードネットワークであって、トランスコーディング処理ユニット(200)は、(i)前記ベース加工成果セグメント(107)を第1レベルの中間加工成果セグメントストリームに処理するように、または、(ii)i番目レベルの中間加工成果セグメントストリームを、i+1番目レベルの中間加工成果セグメントストリームに処理し、結果として前記i番目レベルの中間加工成果セグメントが前記i+1番目レベルの中間加工成果セグメントよりも高いビットレートを有するように、動作可能である、カスケードネットワークと、
    前記ベース加工成果セグメントのストリーム(107)および中間加工成果セグメントストリーム(115−1から115−3)のうちの1つまたは複数を、複数のビットレートおよびセグメントサイズを有する前記最終加工成果セグメント(117)に処理するように設定された、1つまたは複数のパッケージャ処理ユニット(116、300)と、
    前記ベース加工成果セグメントのストリーム(107)および1つまたは複数の中間加工成果セグメントストリーム(115−1から115−3)の記憶および移送を容易にするために、前記入力処理ユニット(108)、複数のトランスコーディング処理ユニット(112−1から112−N、200)、および前記1つまたは複数のパッケージ処理ユニット(116、300)に、動作可能に結合された、1つまたは複数のクラウド記憶/サービスユニット(114)と、
    1つまたは複数の設定トリガ(126−1から126−3)に応答して前記ソースメディアストリーム(106)を適応的に処理するために、前記1つまたは複数のクラウド記憶サービスユニット(114)を介して、前記入力処理ユニット(108)、複数のトランスコーディング処理ユニット(112−1から112−N、200)、および前記1つまたは複数のパッケージ処理ユニット(116、300)、およびそれらの間のそれぞれの接続を、動的にインスタンス化および設定するように動作可能な、オーケストレーションおよびリソース管理ユニット(124)と
    を備える、システム(100)。
  2. 前記入力処理ユニット(108)、複数のトランスコーディング処理ユニット(112−1から112−N、200)、および前記パッケージ処理ユニット(116、300)のうちの少なくとも1つは、クラウドネットワーク内に配設されている、請求項に記載のメディア処理システム(100)。
  3. 前記入力処理ユニット(108)、複数のトランスコーディング処理ユニット(112−1から112−N、200)、および前記パッケージ処理ユニット(116、300)のうちの少なくとも1つは、ローカルハードウェアメディアプラットフォーム内に配設されている、請求項に記載のメディア処理システム(100)。
  4. 前記パッケージャ処理ユニット(116、300)のうちの1つはマスターモードで動作するように設定され、残りのパッケージャ処理ユニットはスレーブまたは自律モードで動作するように設定されている、請求項に記載のメディア処理システム(100)。
  5. 前記マスターモードのパッケージャ処理ユニット(116、300)は、セグメントサイズを同期し、フレーム整合を容易にし、適切なタイミング情報を提供し、前記最終加工成果セグメント(117)に対するマニフェストファイルを生成するように動作可能である、請求項に記載のメディア処理システム(100)。
  6. 前記マスターモードのパッケージャ処理ユニット(116、300)は、前記最終加工成果セグメント(117)および関連付けられたマニフェストファイルを、前記1つまたは複数のエンドユーザがアクセス可能なクラウド配信ネットワーク(118、120)にアップロードするように動作可能である、請求項に記載のメディア処理システム(100)。
  7. 前記1つまたは複数の設定トリガ(126−1から126−3)は、(i)前記最終加工成果セグメントのストリーム(117)の前記エンドユーザ(122−1から122−N)への前記配信に関連したネットワーク分析、(ii)サービスオペレータ始動アラーム、(iii)ハードウェアまたはソフトウェア障害、(iv)地理的領域内の前記ソースメディアストリーム(106)のスケジューリング情報を含む電子プログラムガイド(EPG)のうちの、少なくとも1つに応答して生成される、請求項に記載のメディア処理システム(100)。
JP2016523916A 2013-10-18 2014-10-20 ソフトウェア規定メディアプラットフォーム Active JP6456937B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361892733P 2013-10-18 2013-10-18
US61/892,733 2013-10-18
US14/510,906 US10440080B2 (en) 2013-10-18 2014-10-09 Software-defined media platform
US14/510,906 2014-10-09
PCT/IB2014/065477 WO2015056248A1 (en) 2013-10-18 2014-10-20 Software-defined media platform

Publications (2)

Publication Number Publication Date
JP2017501603A JP2017501603A (ja) 2017-01-12
JP6456937B2 true JP6456937B2 (ja) 2019-01-23

Family

ID=52827177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016523916A Active JP6456937B2 (ja) 2013-10-18 2014-10-20 ソフトウェア規定メディアプラットフォーム

Country Status (6)

Country Link
US (3) US10440080B2 (ja)
EP (1) EP3058486B1 (ja)
JP (1) JP6456937B2 (ja)
CN (1) CN105814567B (ja)
CA (1) CA2927890A1 (ja)
WO (1) WO2015056248A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9407968B2 (en) * 2014-12-22 2016-08-02 Verizon Patent And Licensing Inc. Multicast and unicast adaptive bitrate services
CN108141407B (zh) * 2015-10-21 2021-03-19 英特尔公司 移动边缘计算动态加速分配
US10135701B2 (en) 2016-02-19 2018-11-20 At&T Intellectual Property I, L.P. Context-aware virtualized control decision support system for providing quality of experience assurance for internet protocol streaming video services
US9836298B2 (en) * 2016-03-28 2017-12-05 Intel Corporation Deployment rule system
US10149193B2 (en) 2016-06-15 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for dynamically managing network resources
US10454836B2 (en) 2016-11-01 2019-10-22 At&T Intellectual Property I, L.P. Method and apparatus for dynamically adapting a software defined network
US10284730B2 (en) 2016-11-01 2019-05-07 At&T Intellectual Property I, L.P. Method and apparatus for adaptive charging and performance in a software defined network
US10505870B2 (en) 2016-11-07 2019-12-10 At&T Intellectual Property I, L.P. Method and apparatus for a responsive software defined network
US10469376B2 (en) 2016-11-15 2019-11-05 At&T Intellectual Property I, L.P. Method and apparatus for dynamic network routing in a software defined network
US10039006B2 (en) 2016-12-05 2018-07-31 At&T Intellectual Property I, L.P. Method and system providing local data breakout within mobility networks
US10264075B2 (en) 2017-02-27 2019-04-16 At&T Intellectual Property I, L.P. Methods, systems, and devices for multiplexing service information from sensor data
US10469286B2 (en) 2017-03-06 2019-11-05 At&T Intellectual Property I, L.P. Methods, systems, and devices for managing client devices using a virtual anchor manager
US10318175B2 (en) * 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US10819606B2 (en) 2017-04-27 2020-10-27 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a converged network
US10749796B2 (en) 2017-04-27 2020-08-18 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a software defined network
US10212289B2 (en) 2017-04-27 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for managing resources in a software defined network
US10673751B2 (en) 2017-04-27 2020-06-02 At&T Intellectual Property I, L.P. Method and apparatus for enhancing services in a software defined network
US20180324231A1 (en) * 2017-05-08 2018-11-08 Alcatel-Lucent Usa Inc. Multicast adaptive bitrate channel selection in access networks
US10257668B2 (en) 2017-05-09 2019-04-09 At&T Intellectual Property I, L.P. Dynamic network slice-switching and handover system and method
US10382903B2 (en) 2017-05-09 2019-08-13 At&T Intellectual Property I, L.P. Multi-slicing orchestration system and method for service and/or content delivery
US10070344B1 (en) 2017-07-25 2018-09-04 At&T Intellectual Property I, L.P. Method and system for managing utilization of slices in a virtual network function environment
CN117177367A (zh) 2017-11-15 2023-12-05 上海诺基亚贝尔股份有限公司 用于宽带部分切换的方法、设备、计算机可读介质
US10104548B1 (en) 2017-12-18 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for dynamic instantiation of virtual service slices for autonomous machines
US10440367B1 (en) * 2018-06-04 2019-10-08 Fubotv Inc. Systems and methods for adaptively encoding video stream
US10917458B2 (en) * 2018-11-12 2021-02-09 Pivotal Software, Inc. Message broker configuration
FR3103584B1 (fr) 2019-11-22 2023-05-05 St Microelectronics Alps Sas Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR3103585B1 (fr) 2019-11-22 2023-04-14 Stmicroelectronics Grand Ouest Sas Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR3103586B1 (fr) * 2019-11-22 2023-04-14 St Microelectronics Alps Sas Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
CN111416993B (zh) * 2020-03-26 2021-10-29 四川长虹电器股份有限公司 能够播放iptv和ott视频源的播放控制方法和播放器系统
US11910040B2 (en) * 2021-03-16 2024-02-20 Charter Communications Operating, Llc Methods and systems for packagers used in media streaming

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611537B1 (en) * 1997-05-30 2003-08-26 Centillium Communications, Inc. Synchronous network for digital media streams
US6083276A (en) * 1998-06-11 2000-07-04 Corel, Inc. Creating and configuring component-based applications using a text-based descriptive attribute grammar
US6397181B1 (en) * 1999-01-27 2002-05-28 Kent Ridge Digital Labs Method and apparatus for voice annotation and retrieval of multimedia data
EP2369842B1 (en) 2000-03-13 2015-08-19 Sony Corporation Supplying, generating, converting and reading video content
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
WO2004040908A1 (ja) 2002-10-30 2004-05-13 Fujitsu Limited ストリーム・サーバ
US7930433B2 (en) 2005-05-25 2011-04-19 Mitsubishi Electric Corporation Stream distribution system
US9544602B2 (en) 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
US8161478B2 (en) * 2007-05-10 2012-04-17 Embotics Corporation Management of computer systems by using a hierarchy of autonomic management elements
JP4934642B2 (ja) * 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
US8387150B2 (en) * 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US7934239B1 (en) * 2008-11-14 2011-04-26 Monsoon Multimedia Method and system to daisy-chain access to video resources
US8654849B2 (en) * 2008-12-22 2014-02-18 Arris Enterprises, Inc. Integrated transcoding
US8995534B2 (en) * 2010-09-20 2015-03-31 Bevara Technologies, Llc Systems and methods for encoding and decoding
WO2012040232A1 (en) 2010-09-20 2012-03-29 Onecodec, Ltd. Systems and methods for encoding and decoding
US20120102154A1 (en) 2010-10-26 2012-04-26 Futurewei Technologies, Inc. Cloud-Based Transcoding Platform Systems and Methods
KR20120065097A (ko) * 2010-12-10 2012-06-20 한국전자통신연구원 단말 가상화 환경에서 사용자 입력 처리 성능 향상을 위한 인터럽트 처리 장치 및 그 방법
US8825861B2 (en) * 2011-06-26 2014-09-02 International Business Machines Corporation System management operational workflow templates
US8855197B2 (en) * 2011-08-15 2014-10-07 Rgb Networks, Inc. Method and apparatus for aligning IDR frames in transcoded multi-bitrate video streams
US9591361B2 (en) * 2011-09-07 2017-03-07 Qualcomm Incorporated Streaming of multimedia data from multiple sources
US9042449B2 (en) * 2011-09-29 2015-05-26 Avvasi Inc. Systems and methods for dynamic transcoding of indexed media file formats
US10079710B2 (en) 2012-02-16 2018-09-18 Brightcove, Inc. System and method for dynamic file availability during encoding
US8549570B2 (en) 2012-02-23 2013-10-01 Ericsson Television Inc. Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
US10708335B2 (en) * 2012-11-16 2020-07-07 Time Warner Cable Enterprises Llc Situation-dependent dynamic bit rate encoding and distribution of content
US9369507B2 (en) * 2012-12-31 2016-06-14 Carbonite, Inc. Systems and methods for reliable backup of media
US8813245B1 (en) * 2013-01-25 2014-08-19 Amazon Technologies, Inc. Securing content using pipelines
US9241204B2 (en) * 2013-05-31 2016-01-19 Broadcom Corporations Transmitting multiple adaptive bit rate (ABR) segment streams on a shared frequency
US9179159B2 (en) * 2013-06-20 2015-11-03 Wowza Media Systems, LLC Distributed encoding of a video stream

Also Published As

Publication number Publication date
US20200014739A1 (en) 2020-01-09
US11070604B2 (en) 2021-07-20
CN105814567A (zh) 2016-07-27
EP3058486A1 (en) 2016-08-24
CN105814567B (zh) 2020-05-08
US10440080B2 (en) 2019-10-08
EP3058486B1 (en) 2019-08-21
JP2017501603A (ja) 2017-01-12
US20210344733A1 (en) 2021-11-04
WO2015056248A1 (en) 2015-04-23
CA2927890A1 (en) 2015-04-23
US11770426B2 (en) 2023-09-26
US20150113100A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP6456937B2 (ja) ソフトウェア規定メディアプラットフォーム
JP6482680B2 (ja) 動的パッケージャネットワークベースのabrメディア配布および配信
US9392295B2 (en) Adaptable media processing architectures
KR102009611B1 (ko) 미디어 세그먼트들을 저장하기 위한 디렉토리 제한 기반 시스템 및 방법
US20170272792A1 (en) Distributed content popularity determination in a streaming environment with interconnected set-top boxes
US11881998B2 (en) System for network-based reallocation of functions
EP3044968A1 (en) Streaming policy management system and method
US10277911B2 (en) Video processing workload management
US10327040B1 (en) Forward error correction for low latency streaming
WO2014172873A1 (en) Method and apparatus for improved network recording
CA2802264C (en) Remote viewing of media content using layered video encoding
Cheng Mediapaas: A cloud-based media processing platform for elastic live broadcasting
Barais et al. Towards microservices architecture to transcode videos in the large at low costs
US9607002B2 (en) File retrieval from multiple storage locations
US10735783B1 (en) Intra-rendition latency variation
US11146834B1 (en) Server-based encoded version selection
Khan et al. SAND and Cloud-based Strategies for Adaptive Video Streaming
EP4311242A1 (en) Method for dynamic configuration of multimedia content encoder and apparatus for implementing the same
Moina-Rivera et al. Cloud media video encoding: review and challenges
Globisch et al. Considerations for distributed media processing in the cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180619

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180921

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181219

R150 Certificate of patent or registration of utility model

Ref document number: 6456937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250