JP2014529931A - 帯域幅が変化する接続における動的ビットレート適合 - Google Patents

帯域幅が変化する接続における動的ビットレート適合 Download PDF

Info

Publication number
JP2014529931A
JP2014529931A JP2014525264A JP2014525264A JP2014529931A JP 2014529931 A JP2014529931 A JP 2014529931A JP 2014525264 A JP2014525264 A JP 2014525264A JP 2014525264 A JP2014525264 A JP 2014525264A JP 2014529931 A JP2014529931 A JP 2014529931A
Authority
JP
Japan
Prior art keywords
current
time
bit rate
interval
media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014525264A
Other languages
English (en)
Other versions
JP6255342B2 (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 JP2014529931A publication Critical patent/JP2014529931A/ja
Application granted granted Critical
Publication of JP6255342B2 publication Critical patent/JP6255342B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【解決手段】トランスコード処理がウォールクロックと同期化された状態を維持することにより、メディアファイルの音声および動画のストリームがジャストインタイムでトランスコードされる。トランスコードがリアルタイムより少し早くされる。トランスコード済フレームはトランスコードされ次第、帯域幅が変化する接続を通じてトランスコーダから押し出される。その後、トランスコード済バッファの送信の間、利用可能であった帯域幅を評価すべくトランスコードが定期的にモニタリングされる。2つの時間間隔が測定される。1つ目は、前の2つの送信のトランスコード済バッファのタイムスタンプの差であるバッファ間隔である。2つ目は、直前のトランスコード済バッファの実際の時刻の送信時間に対応するクロック間隔である。大きな差が観察された場合、当該差から導出される係数によりトランスコーダのビットレートが調整される。【選択図】図3

Description

本願発明は、リアルタイムメディアの送信に関する。
図1は、例えばインターネットなどのネットワーク106を介してモバイルユニット、または宛て先ユニット、104に接続されるメディアサーバサブシステム102を含む、従来技術に係るメディア送信システム100を示す。
各モバイルユニット104は、例えば、メディアセッションを確立する機能を備えたスマートフォンまたはラップトップコンピュータでありうる。
メディアサーバサブシステム102は、メディアファイルを生成するためのメディアサーバコンピューティングデバイス108と、メディアファイル処理するためのインターネットコンテンツアダプテーションプロトコル(ICAP)サーバコンピューティングデバイス110と、モバイルユニット、または端末、104からの要求に対応するハイパーテキスト転送プロトコル(HTTP)プロキシサーバコンピューティングデバイス112とを含み得、他の機能も実施し得る。
メディアセッションは、モバイル(宛て先)ユニット104により要求され得る。メディアセッションの目的は、メディアサーバサブシステム102からモバイルユニット104へメディアパケットのストリーム(メディアファイル)を送信することである。
要求しているモバイルユニット104とメディアサーバサブシステム102との間のネットワーク106を介した接続の帯域幅が、オリジナルのメディアファイルをリアルタイム送信するのに必要とされる帯域幅よりも小さい場合、メディアファイルは、典型的にはHTTPプロキシサーバ112に付属するICAPサーバ110内に位置する機器によって、より小さな帯域幅に適合させられ得る。
ネットワーク106を介した接続の帯域幅も経時的に変化し得、このことは、メディアファイルの適合において他の問題を生じさせる。
したがって、帯域幅が変化する接続を介した送信のために、メディアファイルの帯域幅の適合を向上させる方法およびシステムが求められている。
本願発明の目的は、帯域幅が変化するリンクを介したモバイルユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするための方法およびシステムを提供することである。
本願発明の一態様によると、帯域幅が変化するリンクを介したモバイル、または宛て先ユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするための方法は、少なくとも1つのプロセッサを用いて、
(i)メディアファイルの1以上のフラグメントをトランスコード済メディアフラグメントへエンコードし、ストリームフラグメントを形成する段階と、
(ii)前に形成されたストリームフラグメントをトランスコーダから伝送し、帯域幅が変化するリンクが消費するのに要する時間間隔である、前に形成されたストリームフラグメントの推定送信時間を判断する段階と、
(iii)推定送信時間の関数として、トランスコード済メディアフラグメントの現エンコードレートを調整する段階と
を実行する。
上述した方法において、段階(i)は、
初期エンコードレートで、メディアファイルの少なくとも第1のフラグメントを、対応する第1のトランスコード済メディアフラグメントにエンコードする段階と、
初期エンコードレートに等しい現エンコードレートを設定する段階と
を有し、
段階(iii)は、調整された現エンコードレートで、メディアファイルの後続のフラグメントを、対応するトランスコード済メディアフラグメントにエンコードする段階を有する。
上述した方法において、段階(iii)はさらに、2つの前に形成されたストリームフラグメントに関連するタイムスタンプから導出される、モバイルユニットにおけるストリームフラグメントの推定表示時間の関数として、現エンコードレートを調整する段階を有する。
段階(iii)はさらに、現エンコードレートの関数として現エンコードレートを調整する段階を有する。
本願発明の一実施形態において、当該関数は、現エンコードレートと、推定表示時間および推定送信時間に応じた調整係数との積である。
調整係数は、推定表示時間を推定送信時間で除算した値であるのが好都合である。
方法はさらに、トランスコード済メディアフラグメントを表示するためにモバイルユニットに送信する段階を備える。
上述した方法において、現エンコードレートを調整する段階は、時折実行され得る。例えば、調整する段階は、定期的に実行され得る。
本願発明の実施形態において、段階(ii)はさらに、現時刻と直前のエンコード時の時刻である前の時刻との間の現クロック間隔として、推定送信時間を推定する段階を有し、段階(iii)はさらに、
モバイルユニットにおける前のストリームフラグメントの推定表示時間を表し、2つの前に形成されたストリームフラグメントに埋め込まれたタイムスタンプから導出される現バッファ間隔を判断する段階と、
現クロック間隔と現バッファ間隔とを比較する段階と、
現クロック間隔および現バッファ間隔の関数として現エンコードレートを調整する段階と
を有する。
2つの前に形成されたストリームフラグメントは、直近の2つのストリームフラグメントであるのが好都合である。
上述した方法において、調整する段階は、現クロック間隔が現バッファ間隔と所定量の分だけ異なる場合に、現エンコードレートを調整する段階を有する。
例えば、段階(iii)は、N秒の現クロック間隔が経過した後に現エンコードレートを調整する段階を有し得る。本願発明の実施形態において、Nは、2〜5秒の範囲であり、例えばN=3秒である。
現クロック間隔および現バッファ間隔の関数として現エンコードレートを調整する段階は、
現バッファ間隔と現クロック間隔との間の第1の相対差が第1の所定の閾値TH1より大きい場合に、第1の相対差に基づき計算される第1の増分値の分だけ現エンコードレートを増加させ、
現クロック間隔と現バッファ間隔との間の第2の相対差が第2の所定の閾値TH2より大きい場合、第2の相対差に基づき計算される第2の増分値の分だけ現エンコードレートを減少させる
ことにより実行され得る。
TH1として、少なくとも0.05を選択し、TH2として少なくとも0.02を選択するのが好都合である。
上述した方法において、第1の増分値は、第1の相対差を第1の減衰係数AF1で除算した値に等しく、第2の増分値は、第2の相対差を第2の減衰係数AF2で除算した値に等しく、第1および第2の減衰係数AF1、AF2は、現エンコードレートの過剰または急激かつ過度な調整を防ぎ、調整する段階の安定性を確保するよう選択される。
本願発明の他の実施形態において、段階(iii)は、トランスコード済メディアフラグメントの送信の一時停止が検出されなかった場合にのみ現エンコードレートを調整する段階を含む。
本願発明の当該他の実施形態において、段階(iii)はさらに、一時停止を検出する段階を有し、
検出する段階は、
メディアファイルのエンコードが開始されてからの、現時刻と直前のエンコード時の時刻である前の時刻との間の間隔としてそれぞれが測定される過去の現クロック間隔の平均として平均クロック間隔を計算する段階と、
現クロック間隔が平均クロック間隔より所定の差XCの分だけ大きい場合に、一時停止が検出されたと判断する段階と
を含む。
上述した方法はさらに、
少なくとも2つの現クロック間隔が発生し、
既に検出された一時停止の回数が、最大一時停止検出回数(MP)より少ない
場合、一時停止が検出されたものと判断する段階を備える。
方法はさらに、現クロック間隔が平均クロック間隔に係数Mを乗算した値を超える場合に一時停止が検出されたものと判断する段階を備える。方法はさらに、一時停止が検出された場合に現クロック間隔を平均クロック間隔で入れ替える段階を備える。本願発明の実施形態において、MPは3であり、XCは1であり、Mは4である。
本願発明の他の態様によると、帯域幅が変化するリンクを介したモバイルユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするためのメディア処理システムは、プロセッサと、プロセッサにより実行されるコンピュータ可読命令を格納した非一時的コンピュータ可読記憶媒体とを備え、
プロセッサと非一時的コンピュータ可読記憶媒体とは、
メディアファイルの1以上のフラグメントをトランスコード済メディアフラグメントにトランスコードし、ストリームフラグメントを形成するトランスコーダと、
前に形成されたメディアフラグメントをトランスコーダから伝送し、帯域幅が変化するリンクが消費するのに要する時間間隔である、前に形成されたストリームフラグメントの推定送信時間の関数としてトランスコーダの現エンコードビットレートを調整する動的ビットレートアダプタと
を構成する。
上述したメディア処理システムにおいて、動的ビットレートアダプタはさらに、2つの前に形成されたストリームフラグメントに関連するタイムスタンプから導出される、モバイルユニットにおけるストリームフラグメントの推定表示時間の関数として、現エンコードレートを調整する。
メディア処理システムは、トランスコード済メディアフラグメントをネットワークへ転送し、トランスコード済メディアフラグメントのうち少なくともいくつかに関連するタイムスタンプを動的ビットレートアダプタに送信するトランスコーダバッファをさらに備える。
動的ビットレートアダプタは、
現時刻をトラッキングするためのウォールクロックモジュールと、
トランスコーダのエンコードビットレートを時折調整するために、トランスコーダに送信されるサービス品質(QoS)値となるよう現時刻とタイムスタンプとを処理するQoSアジャスタと
を含む。
上述したメディア処理システムにおいて、動的ビットレートアダプタはさらに、トランスコード済メディアフラグメントの送信の中断を検出し、中断が検出された場合に、動的ビットレートアダプタによる現エンコードレートの調整を妨げる一時停止検出器を含む。
動的ビットレートアダプタはさらに、現エンコードレートの関数として現エンコードレートを調整する。
本願発明の一実施形態において、動的ビットレートアダプタはさらに、現時刻と直前のエンコード時の時刻である前の時刻との間の現クロック間隔として推定送信時間を推定する。
動的ビットレートアダプタはさらに、
モバイルユニットにおける前のストリームフラグメントの推定表示時間を表し、2つの前に形成されたストリームフラグメントに埋め込まれたタイムスタンプから導出される現バッファ間隔を判断し、
現クロック間隔と現バッファ間隔とを比較し、
現クロック間隔および現バッファ間隔の関数として現エンコードレートを調整する。
動的ビットレートアダプタはまたさらに、現クロック間隔が現バッファ間隔と所定量の分だけ異なる場合に、現エンコードレートを調整する。
本願発明のさらに他の態様によると、帯域幅が変化するリンクを介したモバイルユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするための方法は、少なくとも1つのプロセッサを用いて、
(a)初期エンコードレートに等しい現エンコードレートで、メディアファイルの少なくとも第1のフラグメントをトランスコード済メディアフラグメントにエンコードしてストリームフラグメントを形成し、ストリームフラグメントを送信する段階と、
(b)帯域幅が変化するリンクがストリームフラグメントを消費するのに要する時間間隔である、前に送信されたストリームフラグメントの推定送信時間に基づいて、現エンコードレートが新たなエンコードレートとなるよう再評価する段階と、
(c)現エンコードレートが新たなエンコードレートに等しくなるよう設定する段階と、
(d)現エンコードレートで、メディアファイルの他のフラグメントをトランスコード済メディアフラグメントにエンコードする段階と、
(e)メディアファイルまたはその一部が完全にトランスコードされるまで段階(b)から段階(d)までを繰り返す段階と
を実行する。
上述した方法において、段階(b)は、現時刻と、直前の再評価時の時刻である前の時刻との間の現クロック間隔として推定送信時間を推定する段階を有する。
段階(b)はさらに、
直前および前のストリームフラグメントのトランスコード済メディアフラグメントのうち少なくともいくつかに埋め込まれたタイムスタンプから導出される、モバイルユニットにおける直前のストリームフラグメントの推定表示時間を表す現バッファ間隔を判断する段階と、
現クロック間隔と現バッファ間隔とを比較する段階と、
現クロック間隔が現バッファ間隔と異なる場合に現エンコードレートを修正する段階と
を有する。
上述した方法において、現エンコードレートは、現クロック間隔および現バッファ間隔の関数として修正される。
上述した方法において、段階(b)はさらに、直前および前のストリームフラグメントのトランスコード済メディアフラグメントのうち少なくともいくつかに埋め込まれたタイムスタンプの関数である、モバイルユニットにおける直前のストリームフラグメントの推定表示時間および現エンコードレートの関数として新たなエンコードレートを計算する段階を有する。
例えば、当該関数は、現エンコードレートと、推定表示時間および推定送信時間に応じた調整係数の積であり得る。
本願発明の実施形態において、段階(b)は、N秒の現クロック間隔が経過した後にのみ、現エンコードレートを再評価する段階を有する。
本願発明の代替的な実施形態において、段階(b)はさらに、トランスコード済メディアフラグメントの送信の中断を検出する段階と、中断が検出された場合に現エンコードレートの調整を抑制する段階とを有する。
よって、帯域幅が変化するリンクを介したモバイルユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするための改善された方法およびシステムが提供される。
添付の図面を参照し、例示として本願発明の実施形態を説明する。
図1は、従来技術に係るメディア送信システム100を示す。 図2は、可変ビットレートトランスコーダ202を含む、本願発明の実施形態に係るメディア配信システム200を示す。 図3は、図2の可変ビットレートトランスコーダ202を含む、可変ビットレートトランスコーダシステム300の簡略化されたブロック図を示す。 図4は、本願発明の実施形態に係る動的ビットレート適合処理400のフローチャートを示す。 図5は、図4のQoS再評価段階408のより詳細なフローチャートを示す。 図6は、図5の段階508「QoS計算を初期化」を展開したフローチャートを示す。 図7は、図5の段階520「一時停止を検出」を展開したフローチャートを示す。 図8は、図5の段階524「一時停止を処理」を展開したフローチャートを示す。 図9は、図5の段階528「QoSを計算」を展開したフローチャートを示す。 図10は、図4の段階412「新たなQoS値を適用」の展開したフローチャートを示す。 図11は、本願発明の他の実施形態に係る、修正された動的ビットレート適合処理1100のフローチャートを示す。 図12は、図11のセグメントQoS再評価段階1108のより詳細なフローチャートを示す。 図13は、図12の「セグメントQoS計算を初期化」段階1206のより詳細なフローチャートを示す。
本願発明の実施形態は、帯域幅が経時的に変化するネットワークを介したHTTPマルチメディア配信のユーザ体験を向上させることを目的とする。この目的は、メディアファイルのエンコードレートを動的に変化させて、利用可能な帯域幅に対応させることにより達成される。
この解決方法はICAPプロトコルにおいて実装され得るが、デバイスへの最終的な配信はHTTPに基づき、当該解決方法は、両方のプロトコルに等しく適用される。
ユーザがモバイルネットワークを介して動画をストリーミングする場合、リアルタイム配信に近い配信を提供するために利用可能なネットワークの帯域幅は十分でないことが多い。その結果、エンドデバイス側で動画が中断するため閲覧体験の品質は悪くなる。
この問題を避けるべく、利用可能な帯域幅に略対応するよう現エンコードレートを時折調整する本願発明の実施形態により、メディアのエンコードレートが動的に適合させられる。ストリーミングにHTTPプロトコルを用いる場合、クライアントアプリケーションはフィードバックをサーバに送信せず、下層の通信制御プロトコル(TCP)の接続情報は信頼性の高いものとして用いられ得ない。
従来の解決方法においてはデータ配信のために、ユーザデータグラムプロトコル(UDP)の上で、リアルタイムトランスポートプロトコル(RTP)と共にリアルタイムストリーミングプロトコル(RTSP)を制御プロトコルとして用いる。これらのプロトコルを用いる場合、動画プレーヤーは1秒毎に数回、フィードバックをモバイルユニットからサーバへ送信する。このフィードバックは、ネットワーク障害(パケット損失、ジッタなど)についての情報も含み、エンコードレートの自動的な調整を可能とする。Francis R.Labonteらに与えられた、発明の名称が「DATA STREAMING THROUGH TIME−VARYING TRANSPORT MEDIA」である米国特許第7,844,725は、時間依存の接続を介してのデータストリーミングのための方法を開示している。当該特許は、その内容の全体が参照により本明細書に組み込まれる。
HTTPはウェブに関して遍在するプロトコルなので、RTSPとRTPとの組み合わせの代わりにHTTPを用いるのが望ましい。HTTPは殆ど全てのタイプのデータを転送するのに用いられる。ウェブクライアントおよびウェブサーバの両方がHTTPをサポートすることを求められているので、例えばRTSP/RTPなどかなり特定的な目的のために機能するパラレルな(parallel)プロトコルを用いることなくクライアントとサーバとの間の相互運用性を最大化するには、HTTPを介して動画を転送することが当然ながら適している。同様の例として、ファイルのダウンロードについて考える。ファイル転送プロトコル(FTP)は特にこの目的のために設計されているが、今日において、ウェブ上のかなり高い割合のファイルが、FTPではなくHTTPを介して転送されている。
さらに考えるべきことは、機器間の相互運用性である。HTTPは広い相互運用性を有する。HTTPは、サーバ側とクライアント側の両方で数限りなく実装されている。HTTPには、あらゆるクライアントが相互運用することが出来る事実上のリファレンス実装としてApacheがある。他方RTSPには、多くの商用の実装において同規格と非準拠であるという不利な点がある(HTTPとRTSP/RTPとの対比に関しては、http://www.remlab.net/op/vod.shtmlの記事も参照されたい)。
しかし、音声および動画のストリーミングにHTTPを用いる場合、配信について利用可能な情報は、オペレーティングシステム層で管理され、マルチメディアを意識しないTCP接続からのみ取得される。またマルチメディアサーバとクライアントとの間にはプロキシサーバが見られることが多い。これらのプロキシは、クライアントデバイスとの接続を取扱い、自身の接続を確立する。本願発明の実施形態によると、受信側のクライアントからストリーミングする側のサーバへの明示的なフィードバックを要することなく、HTTP接続を介して音声および動画の効率的なストリーミングが可能になる。
図2は、可変帯域幅リンク204を介してメディアサーバコンピューティングデバイス108からモバイルユニット104内のモバイル動画アプリケーション206へ送信されるメディアファイルのための動的ビットレート適合を提供する可変ビットレートトランスコーダ202を含む、本願発明の実施形態に係るメディア配信システム200を示す。好ましくは、モバイル(宛て先)ユニット104への可変帯域幅リンク204は、HTTPプロキシサーバコンピューティングデバイス112にHTTP接続を提供する。図2は、モバイルユニット104へのHTTPリンク204を示す。このリンクは、例えば実験室内での直接的なリンクであり得、または、インターネットを通り得、モバイルユニット104自体へのワイヤレスドロップ(wireless drop)を含み得る。
モバイルユニット104は、例えば、メディアセッションを確立する機能を備えた、スマートフォン、ラップトップ、タブレットなどのデバイス、または他のコンピュータのようなデバイスである。
モバイル動画アプリケーション206は、プロセッサにより実行される、メモリなどのコンピュータ可読記憶媒体に格納されたコンピュータ可読命令を備える。
一実施形態において、可変ビットレートトランスコーダ202は、プロセッサにより実行される、メモリなどのコンピュータ可読媒体に格納されたコンピュータ可読命令を備える。代替的に、可変ビットレートトランスコーダ202はファームウェアで実装されてもよい。
可変ビットレートトランスコーダ202は、ICAPリンクを介してHTTPプロキシサーバ112に結合されたICAPサーバ110に埋め込まれた状態で示されているが、可変ビットレートトランスコーダ202は代替的にHTTPプロキシサーバ112に埋め込まれていてもよく、或いは、メディアサーバ108に埋め込まれていてもよいことを理解されたい。
図3は、可変ビットレートトランスコーダシステム300の簡略化されたブロック図を示す。可変ビットレートトランスコーダシステム300は、図2の可変ビットレートトランスコーダ202と併せて、プログラム格納メモリ304、CPU306、およびネットワークインタフェース308を少なくとも備えたコンピューティングデバイスであるメディア処理サーバ302を含む。好ましくは、可変ビットレートトランスコーダ202は、プログラム格納メモリ304に格納されCPU306により実行される命令を含むソフトウェアモジュールとして実現される。本願発明の様々な実施形態において、メディア処理サーバ302は、メディアサーバ108、インターネットコンテンツアダプテーションプロトコル(ICAP)サーバ108、または、ハイパーテキスト転送プロトコル(HTTP)プロキシサーバ112を表し得る。
可変ビットレートトランスコーダ202は、動的ビットレートアダプタ310、セッション変数格納モジュール312、トランスコーダ314、トランスコーダバッファ316、およびウォールクロック318を備える。動的ビットレートアダプタ310は、QoSアジャスタモジュール320および一時停止検出器モジュール322を含む。セッション変数格納モジュール312は、構成ファイル324および保存済み変数格納部326を含む。よって、本願発明の一実施形態において、可変ビットレートトランスコーダ202の上述したモジュール310、312、314、316、318、320、322、324は、プロセッサにより実行される、コンピュータメモリに格納されたコンピュータ可読命令を備える。
ネットワークインタフェース308は、ハードウェア(物理インタフェース)とソフトウェア(プロトコル)との両方を含む。
CPU306は、例えばLinux(登録商標)など、プロトコルを含むオペレーティングシステム(OS。図示せず)を実行する。
OSは、現時刻(CT)が導出される、コンピュータ内で利用可能なクロックチップに基づいて計時機能も提供する。このことは、ウォールクロック318モジュールに示されている。
DBRA310モジュールは、必要に応じてOSソフトウェア(カーネル)から時間(ウォールクロック時間)を読み取るが、ウォールクロック318モジュールは、これを修正してもよく、例えば増減または相殺してもよく、トランスコード済メディアフラグメントの送信が開始されたゼロからの時間をカウントし得るローカルな「ウォールクロック」変数を記録してもよく、これにより、現時刻(CT)をDBRA310が利用出来るようにする。
動作において、トランスコーダ314はメディアファイル328を受信し、トランスコーダバッファ316およびネットワークインタフェース308を通り可変帯域幅リンク204を介したモバイルユニット104への送信に適したビットレートとなるようメディアファイル328をトランスコードまたはエンコードする。ここでネットワークインタフェース308はその機能として、HTTPなどアプリケーションプロトコルの下層の信頼性のある通信制御プロトコル(TCP)を実装する。
ストリームフラグメントとも呼ばれる、1以上のトランスコード済メディアフラグメントの送信に用いられる時間間隔は、可変帯域幅リンク204で利用可能な、信頼性のある通信制御プロトコル(TCP)の制御下にある帯域幅に応じて異なる。1つのストリームフラグメントの送信に用いられるおよその時間は、連続するストリームフラグメントがトランスコーダバッファ316を離れる時間の複数の例を観察することにより計算され得る。時間の値はウォールクロック318の出力から取得される。計算された送信時間は、「推定送信時間」と呼ぶ。
「送信時間」または「推定送信時間」という表現の意味を明確にすると、これらは実質的に、トランスコード済フラグメントを可変帯域幅リンク204のビットレートで順次送信するのに必要な期間、つまり、トランスコード済フラグメントが可変ビットレートトランスコーダ202を離れる際に占有する時間である。これらの時間は可変ビットレートトランスコーダ202とモバイルユニット104との間の、知られない、本願発明の実施形態の動作に関係しない遅延時間ではない。
推定送信時間は、1以上の前のストリームフラグメントをトランスコーダから伝送し、帯域幅が変化するリンクが消費するのに要する時間間隔である。
好ましい実施形態の変形例において、推定送信時間は、推定を行う時点の直前ではない、より前のストリームフラグメントからも導出され得ることを理解されたい。
動的ビットレートアダプタ310は、トランスコーダバッファ316からのタイムスタンプをモニタリングし、ウォールクロックおよびセッション変数格納モジュール312を用いて、可変帯域幅リンク204上で利用可能な帯域幅を推定し、現在のサービス品質(QoS)値をそれに応じて調整するためのアルゴリズムを実行する。その後トランスコーダ314は、現QoS値を適用し、それに応じて現エンコードビットレートを調整する。以下において、「トランスコードビットレート」、「エンコードレート」、および「QoS値」という用語は本願において互換的に用いられる。「トランスコードビットレート」および「エンコードレート」は、トランスコーダ314のトランスコード動作の結果として得られるビットレートを直接的に指す。「QoS値」は、エンコードレートを制御するためにトランスコーダ314に入力され、よってエンコードレートを間接的に特定するパラメータである。
セッションが開始されると、初期のQoS値を含むセッションパラメータが決定され、構成ファイル324に格納される。
QoSアジャスタモジュール320において新たなQoS値が定期的に計算される。QoSアジャスタモジュール320はビットレート適合機能を用い、推定送信時間と(1以上のトランスコード済フラグメントを備える)ストリームフラグメントを可変ビットレートトランスコーダ202から送信するのにかかった時間とを比較する。推定送信時間は現クロック間隔とも呼ばれ、推定表示時間は、ストリームに埋め込まれたタイムスタンプにより示される、モバイルユニット104において同じストリームフラグメントを表示するのに必要とされる時間である。現バッファ間隔とも呼ばれる推定表示時間は、モバイルユニットの表示機能がストリームフラグメントをリアルタイム表示する際に用いるために、ストリームフラグメントのタイムスタンプに暗黙的に特定される時間である。ストリームフラグメントの送信の開始よりも前に観察され計算された、ウォールクロック時間およびタイムスタンプなどの値、並びに、平均間隔を計算するのに必要な値は、保存済み変数格納部326に保持される。本願発明の一実施形態において、現クロック間隔は、少なくとも3秒の適合リフレッシュ間隔に等しい。
リンク204上で利用可能なビットレートは直接的には観察可能ではなく、モバイルユニット104内のバッファの占有率についての情報は、利用可能ではないことを理解されたい。しかし、埋め込まれたタイムスタンプにより指示されるように動画ストリームをリアルタイムで受信し、バッファリングし、表示する間、モバイルユニット104は時折、追加のストリームフラグメントを自動的に受信するであろう。この場合、送信レートは例えば、下層のネットワークプロトコル(TCP)に基づき調節される。可変ビットレートトランスコーダ202がそのようなフラグメントのそれぞれをウォールクロック時間で測られるようにリアルタイム送信出来る限り、リンクビットレートは十分である。しかし、ビットレートが不十分な場合、前のストリームフラグメントを十分に短い時間で送信出来ないため、この不十分であることは可変ビットレートトランスコーダ202で検出されるであろう。モバイルユニット104はビットレートの変化を軽減する受信バッファを有することが想定されるが、この受信バッファはリンクビットレートが長時間に亘り不十分であれば欠乏してしまうであろう。このことを避けるべく、可変ビットレートトランスコーダ202はエンコードレート(QoS)を減少させる必要がある。
同様に、利用可能なビットレートがかなり高い場合、1つのストリームフラグメントの送信にかかる時間は、タイムスタンプにより示される時間間隔よりも短い時間となり、QoS値は高められ得る。QoSアジャスタモジュール320の機能は、以下の図9に詳細に説明する。
モバイルユニット104におけるストリームの表示が一時的に停止した場合、つまり、トランスコード済メディアフラグメントの送信の中断が発生した場合、可変ビットレートトランスコーダ202は、追加のストリームフラグメントを送信することが出来ない。一時停止検出器モジュール322は、このような状況を検出し、QoS値を誤って調整することを避けるために設けられている。
タイムスタンプは、任意のオリジナルのメディアファイルフォーマット、およびトランスコード済メディアファイルフォーマットに関してフォーマット規格文書に指定されるように、オリジナルのメディアおよびトランスコード済メディアに埋め込まれている。タイムスタンプは、フォーマットに関わらず、少なくともいくつかのトランスコード済メディアフラグメントに埋め込まれている。以下の表1は、タイムスタンプをサポートする一般的なメディアファイルフォーマットおよび標準的なコーデックの一部を示すリストである。タイムスタンプは相対的な実際の時刻のインスタンスを規定し、モバイルユニット104における受信された動画シーケンスのリアルタイム表示を、オリジナルの動画シーケンスの対応するリアルタイムシーケンスにロックするために用いられる。その結果、「表示時間」、つまり、1以上のトランスコード済メディアフラグメントをモバイルユニットにおいて通常通り(早送りせずに)表示することにより占有される時間間隔は、可変ビットレートトランスコーダ202において、トランスコード済メディアフラグメントが送信された時間のタイムスタンプを観察し、それにより「推定表示時間」を計算することにより推定され得る。表1:ファイルフォーマットおよびコーデック規格
Figure 2014529931
表1は、様々なフォーマットおよび対応するコーデックの名前に関して用いられる一般的に理解されている頭字語を示す。
F4VおよびFLVは、Adobe SystemsによるFlash Videoとして知られる動画ファイルフォーマットである。3GPP(3rd Generation Partnership Project)および3GPP2(3rd Generation Partnership Project 2)はそれぞれ、UMTS(Universal Mobile Telecommunications System)およびCDMA2000(Code division multiple access)技術に基づくセルラーフォンネットワークに関する3G技術を提供する。MOVは、Quicktime(Apple Inc.)で用いられるファイルフォーマットである。MPEG(Moving Picture Experts Group)TS(Transport Stream)は、MPEGストリームのファイルフォーマットを規定する。WebMは、Googleがスポンサの、HTML5動画で用いられる公開された動画圧縮フォーマットを提供するべく設計された音声/動画フォーマットである。
ここで列挙した音声コーデックの頭字語は、AAC(Advanced Audio Coding)、AMR(Adaptive Multi−Rate audio codec)、AMR−WB(Adaptive Multi−Rate audio codec−wideband)MP2(MPEG−2 Audio standards)、およびMP3である。MPはMPEG−Partの略語である。
Vorbisは、音声フォーマットの名前であり、Xiph.Org Foundationのコーデック実装を規定する。
動画コーデックには、H.263およびH.264に規定されるITU(International Telecommunications Union)規格に準拠したコーデックが含まれ、MPEG−2およびMPEG−4は、MPEGコーデック規格の異なるバージョンである。VP6はOn2 Technologiesによる動画コーデック実装であり、VP8は、元々はOn2 Technologiesにより作成され、Googleによりリリースされた公開の動画圧縮フォーマットである。
トランスコーダ314は、現在利用可能であり、様々なシステムで用いられている、列挙されたフォーマットのいずれのトランスコードも(分け隔てなく)実装し得る。しかし、トランスコーダ314の詳細は本願発明の範囲外であり、本願発明は、トランスコード後のビットレートを利用可能なネットワーク帯域幅に適合させるためにQoS(またはエンコードビットレート)パラメータをトランスコーダ314へ供給することに焦点を当てている。
動的ビットレートアダプタ310により提供される動的ビットレート適合(DBRA)は、オンザフライでトランスコードされるセッションを対象としている。このことが意味するのは、トランスコード処理がウォールクロックと同期化された状態を維持することにより、メディアファイルの音声および動画のストリームがジャストインタイムでトランスコードされるということである。DBRAアルゴリズムを機能させるには、トランスコードをリアルタイムより少し早くすることが重要である。トランスコーダ314は、トランスコーダバッファ316内に、送出されることになるトランスコード済データを格納する。トランスコード済フレームはトランスコードされ次第、HTTP接続を通じてトランスコーダバッファ316から押し出される。
DBRAが有効化されると、ウォールクロック318により測定される、1以上の動画フラグメントを表すある量のトランスコード済データを送信するのにかかる時間(上記にて定義した送信時間、または推定送信時間)と、動画フラグメントに埋め込まれたタイムスタンプにより示される、モバイルユニット104で動画フラグメントをリアルタイム表示するのにかかる時間、またはかかるであろう時間(上記にて定義した表示時間、または推定表示時間)とを比較することによりある間隔の間に利用可能であった帯域幅を評価すべく、トランスコードセッション(トランスコードセッションは単にセッションとも呼ぶ)が時折、例えば定期的に(例えば3秒間隔で)モニタリングされる。
言い換えると、送信時間は、ネットワークリンクの利用可能なビットレート(帯域幅)に基づき調節され、表示時間は、受信デバイス、例えばモバイルユニット104が受信したフラグメントを表示する時間である。明らかに、中断を防ぐには、実際の動画フラグメントの表示期間の長さ以下の期間でフラグメントを送信する必要がある。
したがって、本願発明の実施形態は、あるフラグメントの送信の間利用可能であった帯域幅を開ループのやり方で推定し、当該帯域幅を同フラグメントの表示時間と比較し、必要であればそれに応じて、次に送信されるフラグメントのトランスコードビットレートを調整することを提案する。以下において、「フラグメント」および「バッファ」または「トランスコード済バッファ」は互換的に用いられる。
自身のファイルフォーマットに準拠しタイムスタンプでマークされたトランスコード済データ(フラグメント)は、トランスコーダバッファ316を通じてネットワークインタフェース308に転送される。トランスコーダバッファ316内のトランスコード済データが送出される際、それらのタイムスタンプがチェックされ、間隔(CurrentBufferIntervalとも呼ばれる間隔A。以下の表2の変数名を参照されたい)が計算される。システムは、トランスコーダバッファ316内のトランスコード済データをクライアントへ送信し、完了すると、当該バッファのタイムスタンプが何であったかをDBRAがチェックする。
2つの時間間隔が判断される。間隔A=直前に送信されたバッファのタイムスタンプ−(マイナス)前の反復において送信された最後のバッファのタイムスタンプ。間隔B=現ウォールクロック時間−(マイナス)前の反復のウォールクロック時間。
間隔Bは、CurrentClockIntervalとも呼ぶ。以下の表2の変数名を参照されたい。
これら2つの間隔が時折比較され、(正または負の)大きな差が算出された場合、その差に応じた係数によりビットレートが調整される(増加または減少させられる)。なお、ビットレートは、セッションの開始時において確立された初期ビットレートよりも大きくされることはない。
間隔Aが間隔Bよりも長い場合、このことが意味するのは、現ビットレートでリアルタイムよりも早くメディアを配信することが出来、よって、ビットレートを増加させることが可能であるということである。間隔Bが間隔Aよりも長い場合、このことが意味するのは、利用可能な帯域幅でメディアをリアルタイム配信することが出来ず、エンコードビットレートを減少させなければならないということである。
現クロック間隔(間隔B)は、その間隔の間の推定送信時間、または上限、つまり、トランスコード済メディアフラグメントをバッファからモバイルユニットへ送信するのにかかる時間(つまり、上述したように、バッファを離れ、リンクにより消費される時間)を提供する。現バッファ間隔(間隔A)は、現クロック間隔の間に送信されたトランスコード済メディアフラグメントの表示時間の推定値である。本願発明の実施形態に係るシステムは、メディアを表示するものと想定される、モバイルユニット内の動画プレーヤーには直接的または間接的にアクセスすることが出来ない。しかし、トランスコード済メディアフラグメントのうち少なくともいくつかに埋め込まれ、モバイルユニット内の動画プレーヤーが動画をリアルタイム表示するために用いるタイムスタンプがこの情報を提供する。
本説明において、「フラグメント」という用語は、必要に応じて明確にするために様々な修飾語句と共に用いられる。(トランスコードの前の)メディアファイル328は、「メディアフラグメント」とも呼ばれるフラグメントを備える。各メディアフラグメントは例えば、トランスコーダが動作を行うのに十分な、1以上の動画フレーム、または、ある最小数のミリ秒の音声に対応する。各メディアフラグメントのサイズは、トランスコードされ得るような十分なサイズである。トランスコードの後、対応する「トランスコード済メディアフラグメント」は、「メディアフラグメント」と同じ意味内容を有するが、一般的に、より少ないビット数を有する。「トランスコード済メディアフラグメント」がモバイルユニットへ送信される(ストリーミングされる)。ここで、連続する複数のトランスコード済メディアフラグメントから成るグループによって、「ストリームフラグメント」が形成される。本願発明の実施形態によると、「ストリームフラグメント」は、モバイルユニットでリアルタイム表示されるのにおよそ3秒かかるであろうある量のトランスコード済メディアフラグメントである、およそ3秒分のリアルタイム動画または音声を表す複数の「トランスコード済メディアフラグメント」を備える。この「表示時間」は、オリジナルの「メディアフラグメント」、および「トランスコード済メディアフラグメント」に埋め込まれたタイムスタンプによって特定される。「トランスコード済メディアフラグメント」はトランスコードバッファを通じて送信されるので、トランスコード済メディアのこれらのバッファリングされたフラグメントは単に、「トランスコード済バッファ」または「トランスコード済バッファフラグメント」とも呼ばれ得る。
HTTP接続は動画プレーヤーからのフィードバックを提供しないので、DBRAアルゴリズムは動画プレーヤーが一時停止されたことの検出または「推測」を試みる。そのような場合、遠隔のユニット内のプレーヤーバッファは最終的に満たされ、プレーヤーは、データの読み取りを停止するであろう。このことにより、間隔の比較によって得られるエンコードレートと配信レートとの間の差は大きなものとなる。このことはネットワークまたは帯域幅の問題ではないので、ビットレートを減少させる理由とはならない。
ユーザによる一時停止に関する以下の特性が認識されている。なぜならこれらは、ユーザによる一時停止を示すものと推定されるからである。
1.ウォールクロック間隔が、各反復において調整される平均ウォールクロック間隔よりも長い。
2.ウォールクロック間隔が1秒超長い。
3.ウォールクロック間隔が、平均ウォールクロック間隔を係数4で乗算した値よりも長い。
4.発生した一時停止がまだ2回以下である。
一時停止されたことが検出された場合、ビットレートは修正されず、この不規則な反復のウォールクロック間隔は破棄される。つまり、他の反復が影響を受けるのを防ぐために平均ウォールクロック間隔が再調整される。
DBRA310の機能のより詳細な説明は、以下の図面におけるフローチャートを参照して行う。
図4は、以下の段階を備える動的ビットレート適合処理400のフローチャートを示す。
402:「トランスコードを開始」
404:「次のトランスコード済バッファを生成」
406:「トランスコード済バッファを送信」
408:「QoSを再評価」
410:「QoS値が変更されたか?」
412:「新たなQoS値を適用」
414:「トランスコードが完了したか?」
416:「終了」
段階404「次のトランスコード済バッファを生成」から段階414「トランスコードが完了したか?」までが、メディアが完全にトランスコードされ送信されるまでに実行される動的ビットレート適合ループ418を形成する。ループは、セッションがアボートされた場合も停止され得る。
段階402「トランスコードを開始」が、メディアのトランスコードの開始点である。この開始点は、メディアをトランスコードしクライアントへ送信するために新たなセッションが作成される時点を表す。
段階404「次のトランスコード済バッファを生成」は、単に「トランスコード済バッファ」とも呼ばれるトランスコード済メディアのバッファリングされたフラグメントを生成することにより、メディアファイル328のフラグメントをトランスコード済メディアフラグメントにトランスコードする段階を表す。トランスコード済メディアフラグメントは、オリジナルのメディア、つまりメディアファイル328に対してトランスコーダ314のエンコードアルゴリズムを適用することにより作成される。
段階406「トランスコード済バッファを送信」において、オリジナルのメディアから生成された1つのトランスコード済バッファ(トランスコード済メディアフラグメント)が、確立されたセッションを介してクライアントへ送信される。
段階408「QoSを再評価」において、現QoS値が再評価または調整される。この段階は、以下の図5においてより詳細に展開される。QoS値は、トランスコード済バッファが送信される毎に再評価(調整)されてもよい。このことにより、バッファが送出される際にビットレートを動的に調整することが可能となる。
段階410「QoS値が変更されたか?」において、前の段階の再評価の結果として、QoS値が変更されたか否かの判断が行われる。QoS値が変更された場合(段階410を「はい」から出る)、以下の図10においてより詳細に展開される段階412「新たなQoS値を適用」において詳細に示されるように、新たなQoS値を用いて、次のトランスコード済バッファの生成のためのエンコードビットレートが変更される。そうでない場合、段階414「トランスコードが完了したか?」の実行に続く(段階410を「いいえ」から出る)。
段階414「トランスコードが完了したか?」において、メディアが完全にトランスコードされ送信されたか否かの判断が行われる。判断の結果が肯定的な場合(段階414を「はい」から出る)、動的ビットレート適合処理400は段階416「終了」で終了する。そうでない場合、ループを戻って段階404「次のトランスコード済バッファを生成」が実行される。
DBRAアルゴリズムで用いられるセッション変数はセッション変数モジュール312(図3)に格納され、以下の表2に一覧にされている。表2:DBRAアルゴリズムで用いられるセッション変数
Figure 2014529931
Figure 2014529931
図5は、以下の段階を含む、図4のQoS再評価段階408のより詳細なフローチャートである。
502:「移行」
504:「TTR≧1.0?」
506:「最初のQoS計算?」
508:「QoS計算を初期化」
510:「現クロック間隔(CCI)および現バッファ間隔(CBI)を計算」
512:「CCI>N秒?」
514:「間隔インデックスをインクリメント」
516:「合計クロック間隔を計算」
518:「平均クロック間隔を計算」
520:「一時停止を検出」
522:「一時停止を検出したか?」
524:「一時停止を処理」
526:「CCI=CBI?」
528:「QoSを計算」
530:「復帰」
QoS再評価段階408へは段階502「移行」で移行し、段階504〜528で新たなQoS値を計算し、段階530「復帰」で復帰する。
段階504「TTR≧1.0?」において、現トランスコードスロットリングレートが1.0以上であるか否か判断される。判断の結果が肯定的な場合(段階504を「はい」から出る)、次の段階506の実行に続く。そうでない場合(段階504を「いいえ」から出る)、ビットレートを減少させるためのトランスコードは必要ではなく、手順が復帰する(段階530)。
セッションが構成されると、パラメータTTRが確立される。TTRが1.0未満の場合、トランスコードは実行されず、即座に手順が復帰する。TTRにより、オリジナルのメディアがトランスコードされる速度を制御することが可能となる。TTRが1.0の場合、1分のメディアは、およそ1分でトランスコードされるであろう。TTRが2.0の場合、同メディアはおよそ30秒でトランスコードされるであろう。この値により、CPU使用率に対するトランスコード速度を微調整することが可能となる。TTRを増加させることによりトランスコード済メディアはより速くなるが、CPUをさらに用いることになる。ビットレートは、オリジナルのメディアとトランスコード済メディアとの両方に適用される。両方がエンコードビットレートを有するが、DBRA310の役割は、例えばより低いビットレートでトランスコードするようトランスコーダ314に指示し、オリジナルよりも低いビットレートを有するトランスコード済メディアが得られるようにするなどにより、必要に応じてトランスコード済メディアのビットレートを動的に修正することである。
段階506「最初のQoS計算?」において、これがこのセッションの最初のQoS計算であるか否かの判断が行われる。判断の結果が肯定的な場合(段階506を「はい」から出る)、様々なセッション変数が初期化される段階508「QoS計算を初期化」の実行に続く。段階508は以下の図6において展開される。これがこのセッションの最初のQoS計算ではない場合(段階506を「いいえ」から出る)、段階510の実行に続く。
段階510「現クロック間隔(CCI)および現バッファ間隔(CBI)を計算」において、現クロック間隔および現バッファ間隔が以下のように計算される。
CCI≒CT−PQCT,
ここで、CTは現時刻であり、
PQCTは前QoS計算時刻である。
CBI≒(CBT−PBT)/TTR
ここで、PBTは前バッファタイムスタンプであり、
TTRはトランスコードスロットリングレートである。
CCIおよびCBIは、新たなQoS値の計算に用いられる。現クロック間隔は、段階528で計算される前QoS計算時刻から現時刻までの期間である。現バッファ間隔は、段階528で計算される前バッファタイムスタンプから現バッファタイムスタンプまでの期間をトランスコードスロットリングレートで除算することより得られる。トランスコードスロットリングレート(TTR)は、メディアセッションが確立される際に構成ファイルに特定される(段階402、図4)。
段階512「CCI>N秒?」において、現クロック間隔(CCI)が、N秒である最小の現クロック間隔より長いか否かの判断が行われる。ここでNは好ましくは3に設定されるが、例えば2〜5秒の範囲であってもよい。判断の結果が肯定的な場合(段階512を「はい」から出る)、次の段階514の実行に続く。そうでない場合(段階512を「いいえ」から出る)、手順が復帰する(段階530)。Nの値は、動画バッファが過剰に、または過少に伝送されることを防ぐために、利用可能な帯域幅の変化に対して十分に迅速に応答出来るよう選択される。段階512は、現エンコードレートの実際の再評価(段階528、「QoSを計算」)が実質的に定期的に、およそN秒毎に確実に行われるようにする。
段階514「間隔インデックスをインクリメント」において、現間隔インデックス(CII)がインクリメントされる。間隔インデックスは、QoSが再計算される毎に増加させられなければならない。間隔インデックスは、平均間隔を計算する際の除数として用いられる。
段階516「合計クロック間隔を計算」において、新たなクロック間隔(現クロック間隔CCI)でインクリメントすることにより現合計クロック間隔(CIS)が更新される。次の段階において平均クロック間隔が計算され得るよう合計クロック間隔が保持される。
段階518「平均クロック間隔を計算」において、クロック間隔(CIS)の現在の合計を上記の段階514で設定された現間隔インデックス(CII)で除算した結果として、平均クロック間隔(CIA)を計算する。
段階520「一時停止を検出」において、推測として恐らくユーザがメディアを一時停止したであろうとヒューリスティックに示すのに十分な条件が分析される。これは情報に基づいた推測であり、確実であるというわけではない。段階520は、以下の図7において展開される。
段階522「一時停止を検出?」において、前の段階520の結果を用いて、恐らくユーザがメディアを一時停止したはずであるか否かの判断が行われる。一時停止が検出された場合(段階522を「はい」から出る)、次の段階524において一時停止の処理がされる。そうでない場合(段階522を「いいえ」から出る)、段階526の実行に続く。
段階524「一時停止を処理」において、利用可能な帯域幅が誤って過少評価されないようにアルゴリズムの変数が調整される。以下の図8により詳細に展開される段階524は、帯域幅の問題とユーザにより行われるメディアの一時停止とを区別しようと試みるために必要である。帯域幅の問題とユーザにより行われるメディアの一時停止との両方が、バッファの伝送の速度低下または停止に繋がる。
段階526「CCI=CBI?」において、直前のトランスコーダバッファの送信時刻が、ウォールクロックにより示される実際の時刻に対応するか否かの判断が行われる。このことは、現バッファ間隔(CBI)と現クロック間隔(CCI)とが等しいことによって示される。それらが等しい場合(段階526を「はい」から出る)、QoSを再計算する必要はなく、段階530で復帰することにより段階408は終了される。そうでない場合(段階526を「いいえ」から出る)、次の段階528において新たなQoS値が計算される。
前の段階526の判断においてクロック間隔とバッファ間隔との間に差がある場合のみ、かつ、上記の段階522における判断で一時停止が検出されなかった場合のみ、段階528「QoSを計算」において、動的ビットレート適合ループ418の次の反復に備えて新たなQoS値が計算される。段階528の後、段階530で復帰することにより段階408の処理が終了される。段階528は、以下の図9においてより詳細に展開される。
図6は、以下の段階を含む、図5の段階508「QoS計算を初期化」を展開したフローチャートを示す。
602:「前QoS計算時刻≒現時刻」
604:「前バッファタイムスタンプ≒現バッファタイムスタンプ」
606:「間隔インデックス≒0」
608:「合計クロック間隔≒0」
トランスコード済バッファが送出される際、PreviousQoSCalculationTime、PreviousBufferTimestamp、IntervalIndex、および、ClockIntervalSumの値が保存される。しかし、新たなセッションが開始される時であり、最初のトランスコード済バッファが送出される前に、これらの保存された値は初期化される必要がある(段階602〜608)。
段階602「前QoS計算時刻≒現時刻」において、PreviousQoSCalculationTimeが現時刻に初期化される。これはまだ最初のQoS計算であるので、実際には前QoS計算時刻はない。この値は次のQoS計算で用いるために保存される。
段階604「前バッファタイムスタンプ≒現バッファタイムスタンプ」において、前バッファタイムスタンプの値が現バッファタイムスタンプに初期化される。これは最初のバッファであるので、実際には前バッファタイムスタンプはない。この値は次のQoS計算で用いるために保存される。
段階606「間隔インデックス≒0」において、間隔インデックスは0に初期化される。第1の間隔は最初の2つのバッファから計算されるので、これはまだ第1の間隔ではない。
段階608「合計クロック間隔≒0」において、合計クロック間隔は0に初期化される。段階606に関して説明したように第1の間隔はまだ存在しないので、まだ合計クロック間隔はない。
図7は、以下の段階を含む、図5の段階520「一時停止を検出」を展開したフローチャートを示す。
702:「間隔インデックス>1?」
704:「一時停止推測回数<MP?」
706:「(CCI−CIA)>XC秒?」
708:「CCI>(CIA×M)?」
710:「一時停止を検出≒「TRUE」」
712:「一時停止を検出≒「FALSE」」
段階702〜708は、一時停止が検出されたか否かを判断するために検証される複数の条件を備える。これらの条件の全てがTRUEであった場合のみ、一時停止が発生したものと見なされる。
段階702「間隔インデックス>1?」において、間隔インデックスが1より大きいか否かの判断が行われる。判断の結果が否定的な場合(段階702を「いいえ」から出る)、段階712へスキップして実行する。そうでない場合、段階704において次の条件が検証される。
段階704「一時停止推測回数<MP?」において、一時停止推測回数、つまり、一時停止検出回数が最大一時停止検出回数よりも少ないか否かの判断が行われる。好ましくはMPの値は、3に設定される。判断の結果が否定的な場合(段階704を「いいえ」から出る)、段階712へスキップして実行する。そうでない場合、段階706の次の条件が検証される。
段階706「(CCI−CIA)>XC秒?」において、現クロック間隔(CCI)が計算された平均クロック間隔(CIA)よりも差「XC」秒超大きいか否かの判断が行われる。好ましくは、差XCの値は1に設定される。判断の結果が否定的な場合(段階706を「いいえ」から出る)、段階712にスキップして実行される。そうでない場合、段階708において次の条件が検証される。
段階708「CCI>(CIA×M)?」において、現クロック間隔(CCI)の値が、計算された平均クロック間隔(CIA)の係数「M」倍よりも大きいか否かの判断が行われる。判断の結果が否定的な場合(段階708を「いいえ」から出る)、段階712にスキップして実行される。そうでない場合、段階710の実行に続く。好ましくは係数「M」は4に設定される。
段階710「一時停止を検出≒「TRUE」」において、ブール変数PauseDetected(PD)が「TRUE」に設定され、段階520の処理が完了する。
段階712「一時停止を検出≒「FALSE」」において、ブール変数PauseDetected(PD)が「FALSE」に設定され、段階520の処理が完了する。
なお、定数「MP」、「XC」、および「M」の好ましい値は、単に利用可能な帯域幅の減少の検出ではなく、一時停止が発生したことを検出する際に合理的な「推測」が出来るように選択される。異なる値も有効でありうる。
図8は、以下の段階を含む、図5の段階524「一時停止を処理」を展開したフローチャートを示す。
802:「前の合計クロック間隔≒合計クロック間隔−現クロック間隔」
804:「合計クロック間隔≒前の合計クロック間隔+(前の合計クロック間隔/(間隔インデックス−1))
806:「一時停止推測回数をインクリメント」
段階524の処理において、検出されたユーザによる一時停止は、関連する変数を更新することにより処理される。
段階802「前の合計クロック間隔≒合計クロック間隔−現クロック間隔」はより簡潔にPCIS≒CIS−CCIと表され得る。現合計クロック間隔から現クロック間隔の値が減算され、前の合計クロック間隔の値は、その前の値にリセットされる。
段階804「合計クロック間隔≒前の合計クロック間隔+(前の合計クロック間隔/(間隔インデックス−1))はより簡潔にCIS≒PCIS+(PCIS/(II−1))と表され得る。現合計クロック間隔の値は、前の合計クロック間隔を間隔の数より1だけ少ない数(現在の一時停止間隔)で除算することにより計算される平均増分値だけインクリメントされた補正された前の合計クロック間隔から推定される値に設定される。
より簡潔にPGC≒PGC+1とも表され得る段階806「一時停止推測回数をインクリメント」において、一時停止推測回数が1だけインクリメントされ、所定の制限回数を超えて一時停止が検出されるのを防ぐ(上記の段階704を参照されたい)。
段階524の処理は主に、異常に長いクロック間隔によりユーザによる一時停止が検出された後の、合計クロック間隔の(よって、平均クロック間隔の)補正のための再計算である。その後の計算に影響を及ぼさないようにそのようなクロック間隔は廃棄され、平均クロック間隔で置き換えられる。ユーザによる一時停止は帯域幅の問題ではなく、ビットレートの修正に繋がるべきではないので、ユーザによる一時停止は基本的に無視される。
図9は、以下の段階を含む、図5の段階528「QoSを計算」を展開したフローチャートである。
902:「CBI>CCI?」
904:「Delta1≒CBI−CCI」
906:「Difference1≒Delta1/CBI」
908:「Difference1>TH1?」
910:「QoS≒1.0+Difference1/AF1」
912:「Delta2≒CCI−CBI」
914:「Difference2≒Delta2/CCI」
916:「Difference2>TH2?」
918:「QoS≒1.0+Difference2/AF2」
920:「前QoS計算時刻≒現時刻」
922:「前バッファタイムスタンプ≒現バッファタイムスタンプ」
段階528の処理において、QoS値は、CurrentClockInterval(CCI)とCurrentBufferInterval(CBI)との間の差から推定される見かけ上のリンク帯域幅の変化を評価し、それに応じて変化に対応すべくQoSをインクリメントまたはデクリメントすることにより再計算される。
段階902〜918は、図3のQoSアジャスタモジュール320の機能の例示としてのビットレート適合機能924に設けられる。
段階902「CBI>CCI?」において、CBI(現バッファ間隔)の値が、CCI(現クロック間隔)の値よりも大きいか否かの判断が行われる。CBIがCCIよりも大きい場合、QoSの値は段階904〜910で計算されるように増加させられる。そうでない場合、QoSの値は、段階912〜918で計算されるように減少させられる。先の段階526(図5)でCBIがCCIに等しくないと判断された場合にのみ段階902に移行する。
段階904「Delta1≒CBI−CCI」は、現バッファ間隔が現クロック間隔より大きい場合、つまり、ビットレートが増加させられるべきである場合の、現クロック間隔と現バッファ間隔との間の差分(Delta1)の計算を示す。
段階906「Difference1≒Delta1/CBI」は、現バッファ間隔がどの程度比例して現クロック間隔よりも大きいのかを示すための、第1の相対差(Difference1)の計算を示す。Difference1の値は、段階904で計算される差分(Delta1)を現バッファ間隔で除算することにより得られる。その後新たなQoS値が段階910で計算されるが、これは、段階908「Difference1>TH1?」でDifference1が第1の閾値「TH1」よりも大きいと判断された場合のみである。閾値は、非常に小さな変動に応じてビットレートが修正されるのを防ぐのに役立つ。
段階908「Difference1>TH1?」において、前の段階で計算された第1の相対差が第1の閾値を超えるか否かの判断が行われる。好ましくは第1の閾値TH1は、5%の相対差に対応して少なくとも0.05に設定される。第1の相対差が第1の閾値を超える場合(段階908を「はい」から出る)、次の段階910が続いて実行され、QoSの値が調整される。そうでない場合、QoSは調整されず、段階920にスキップして実行される。
段階910「QoS≒1.0+差1/AF1」は、ビットレートが第1の増分値だけ増加させられるべきであると判断された場合に新たなQoS値がどのように計算されるかを示す。1.0という値は修正を行わないことを示し、より小さいQoS値はビットレートを減少させることを示し、より高いQoS値はビットレートを増加させることを示す。よって、調整されたQoS値は、この場合1.0よりも大きい。段階910において、第1の増分値は、上記の段階906からの第1の相対差(Difference1)を、好ましくはおよそ8.0である第1の減衰係数「AF1」で除算することにより計算される。1.0に加算される第1の増分値は新たなQoS値となり、エンコーダに送信され(段階412、図4)、(エンコードビットレートに対応する)QoS係数が第1の増分値だけ増加させられる。
段階912「Delta2≒CCI−CBI」は、現バッファ間隔が現クロック間隔よりも大きくない場合、つまり、ビットレートを減少させるべき、または変更しないでおくべきである場合の、現クロック間隔と現バッファ間隔との間の差分(Delta2)の計算を示す。
段階914「差2≒Delta2/CCI」は、現クロック間隔がどれくらい現バッファ間隔よりも大きいかを示す割合としての第2の相対差の計算を示す。差2の値は、段階912で計算される差分(Delta2)を現クロック間隔で除算することにより得られる。その後新たなQoS値が段階918で計算されるが、これは、段階916「差2>TH2?」で差2が第2の閾値「TH2」よりも大きいと判断された場合のみである。このことは、非常に小さな変動に応じてビットレートが修正されるのを防ぐのに役立つ。
段階916「差2>TH2?」において、前の段階で計算された第2の相対差が第2の閾値を超えるか否かの判断が行われる。好ましくは第2の閾値TH2は、2%の相対差に対応して少なくとも0.02に設定される。第2の相対差が第2の閾値を超える場合(段階916を「はい」から出る)、次の段階918が続いて実行され、QoSの値が調整される。そうでない場合、QoSは調整されず、段階920にスキップして実行される。
閾値TH1、TH2は、非常に小さな変動に応じて不必要にビットレートが修正されるのを防ぐのに役立つ。
段階918「QoS≒1.0+差2/AF2」は、ビットレートが第2の増分値だけ減少させられるべきであると判断された場合に新たなQoS値がどのように計算されるかを示す。段階918において、第2の増分値は、段階914からの第2の相対差(差2)を、好ましくはおよそ6.0である第2の減衰係数「AF2」で除算することにより計算される。1.0に加算される第2の増分値は新たなQoS値となり、エンコーダに送信され(段階412、図4)、(エンコードビットレートに対応する)QoS係数が第2の増分値だけ減少させられる。
減衰係数AF1、AF2の値は、調整アルゴリズムの安定性を確保すべく、つまり、エンコードレート(QoS値)の過剰な、または急激過ぎる過度な補正を防ぐべく選択される。調整係数を用いない場合、エンコードレートの調整毎に、エンコードレートが高過ぎる値と低過ぎる値の間をいつまでも行ったり来たりすることになるであろう。調整係数は各補正の影響を低減させ、ある種の減衰効果を有するので、理想的にはエンコードレートは複数の調整間隔を経て送信ビットレートにいずれ近づく。他方、調整係数が大き過ぎる場合(過剰な減衰)、エンコードレートが送信ビットレートへ近づくのは遅過ぎるようになる。調整係数AF1、AF2を公正に選択することにより、補正が十分に早く達成される。
段階920「前QoS計算時刻≒現時刻」において、各QoS計算の後、現時刻が前QoS計算時刻(PQCT)として保存されるので、PQCTの値は、動的ビットレート適合ループ418(図4)の次の反復の計算段階510(図5)において用いられ得る。
同様に、段階922「前バッファタイムスタンプ≒現バッファタイムスタンプ」において、各QoS計算の後、現バッファタイムスタンプが前バッファタイムスタンプ(PBTS)として保存されるので、PBTSの値は、動的ビットレート適合ループ418(図4)の次の反復の計算段階510(図5)において用いられ得る。
パラメータ「TH1」、「TH2」、「AF1」、「AF2」の好ましい値は、説明されるような所望される調整処理を実現するように選択された。他の値も同様に良好に、またはより良好に機能し得る。例えば、「TH1」および「TH2」はそれぞれ、少なくとも0.05および0.02に設定されることが提案され、「AF1」および「AF2」の提案される値(それぞれ8.0および6.0)はおよその値に過ぎない。
図10は、以下の段階を含む、図4の段階412「新たなQoS値を適用」を展開したフローチャートである。
1002:「QoS修正要求をエンコーダに通知」
1004:「QoS修正要求を受け付け」
1006:「QoSを現エンコードビットレートに適用」
1008:「エンコードビットレートを制限」
動的ビットレートアダプタ310(図3)において段階1002が実行され、更新されたQoS値が、動的ビットレートアダプタ310からトランスコーダ314(図3)へ伝えられ、トランスコーダ314において残りの段階1004〜1008が実行される。なおトランスコーダ314は、可変ビットレートトランスコーダサブシステム202内のDBRAアダプタ310からQoS修正通知を受信可能である。
段階1002「エンコーダにQoS修正要求を通知」において、QoSの通知を備えるイベントが動的ビットレートアダプタ310からトランスコーダ314へ送信される。
段階1004「QoS修正要求を受け付け」において、トランスコーダ314がQoSの通知を受信し、受け付ける。
段階1006「現エンコードビットレートにQoSを適用」において、この変更通知を受信するとトランスコーダ314は、有効なエンコードビットレートを修正する。ビットレートの差は、新たなQoS値に応じて、かつ比例して変化する。
段階1008「エンコードビットレートを制限」において、エンコードビットレートを新たなQoS値に対応するように修正する際、新たなQoS値を適用した計算の結果、ビットレートが、設定された最低値と最高値との範囲外になったとしても、実際のエンコードビットレートを当該範囲内に収める。
本願発明の実施形態に係る、(オリジナルのサービスとも呼ばれる)DBRAアルゴリズムは、以下の段階にまとめられ得る。
(a1)サーバまたはプロキシと、モバイルユニットとの間にHTTPセッション(トランスコードセッション、または単に「セッション」)が確立される。
(b1)モバイルユニットとの初期ビットレート(エンコードレート)が設定される。
(c1)モバイルユニットがHTTP−GETを用いてメディアファイルを要求する。
(d1)上述したようにビットレートを操作しつつ、トランスコード済メディアの全体がサーバから送信される。追加のGET要求をモバイルユニットから受信しない。
(e1)トランスコード済メディアの送信が完了すると、HTTPセッションが閉じられる。
初期ビットレートは、セッションの構成において、トランスコードされているオリジナルのメディアのビットレート、およびモバイルユニットのプロフィールに基づき決定される。オリジナルのサービスは追加のHTTP要求を受信することなく、徐々にメディアをトランスコードしクライアントへ送信する。メディアの送信が完了すると(またはクライアントがアボートすると)セッションは閉じられる。ビットレートは、各バッファが送信された後に修正され得る。
本願発明の他の実施形態において、(修正されたサービスとも呼ばれる)修正されたDBRAアルゴリズムが提案され、修正されたDBRAアルゴリズムは、以下の段階にまとめられ得る。
(a2)サーバまたはプロキシと、モバイルユニットとの間にトランスコード(HTTP)セッションが確立される。
(b2)モバイルユニットとの初期ビットレートが設定される。
(c2)モバイルユニットがHTTP−GETを用いてメディアファイルのセグメントを1つだけ要求する。
(d2)セグメントを送信する間、ビットレートを操作せずに、トランスコード済メディアセグメントがサーバから送信される。
(e2)セグメントの送信が完了すると、モバイルユニットが他のセグメントを要求(GET)することを決定するまでセッションが中断される。決定した場合、次に進む。
(f)前のセグメント送信の保存されたパラメータに基づき次のセグメントのために新たなビットレートが計算される。
(g)トランスコードセッションが継続される。つまり、段階(c2)に進む。
なお、モバイルユニットにより要求される各セグメントは、1以上のメディアフラグメントにより構成される。修正されたサービスのトランスコード済メディアセグメントは、エンコードレートの調整に関し、オリジナルのサービスのストリームフラグメントに実質的に対応する。異なる点は、オリジナルのサービスのストリームフラグメントが時間(およそN秒の間隔)によって区切られており、修正されたサービスにおいては、トランスコード済メディアセグメント(ストリームフラグメント)は、モバイルユニットに要求されるセグメントに従って画定されるという点である。
修正されたDBRAアルゴリズムは、例えばApple Inc.により製造されるiPhone(登録商標)などの特定のスマートフォンの使用規格に対応するよう設計されており、トランスコードセッション(HTTPセッション)内の個別の、しかし関連した短いセグメントセッション(TCPセッション)がメディアコンテンツをダウンロードするために確立される。
修正されたDBRAアルゴリズムにおいて、トランスコードされているオリジナルのメディアのビットレート、およびモバイルユニットのプロフィール(構成)に基づき初期ビットレートが決定される。クライアント、つまりモバイルユニットは、HTTPを用いてメディアを要求する。クライアントは最初に、どのセグメントが存在し、どこに位置するのかを知らせるプレイリストを受信する。まだトランスコードは関わらない。その後クライアントはHTTPを用いてセグメントを要求する。そのような最初の要求があると、修正されたサービスによりサーバ上でトランスコードセッションが作成される。トランスコードセグメント状態、つまり時間間隔などに保持される情報に基づき、各セグメントに適用される連続的なビットレートの調整が決定される。修正されたサービスは、セグメントをトランスコードし、トランスコード済メディアフラグメントに含まれるトランスコード済セグメントを送信する。トランスコード済メディアフラグメント(トランスコード済バッファ)は、セグメントの最後に到達するまでクライアントへ送信される。その後クライアントは、送信されたセグメントがプレイリストの最後のセグメントでない限り、または、クライアントがアボートしない限り次のセグメントを要求する。送信されたセグメントが最後のセグメントである場合、または、クライアントがアボートした場合、その時点でトランスコードセッションはサーバ上で終了する。修正されたサービスはトランスコードされている各セグメントが同じトランスコードセッションの一部であることを認識し、要求された次のセグメントのそれぞれを再調整されたビットレートでトランスコードし、送信する。
あるセグメントがトランスコードされる前に、トランスコードセグメント状態を用いて、初期の(元の)ビットレートに適用する割合を判断する。トランスコード後のビットレートは初期ビットレートよりも高くなり得ないので、割合は100%より高くはなり得ない。
オリジナルのサービスは1つのセッション内でのメディアファイルの送信を実現し、当該1つのセッションの間に、(少ない場合には1つのトランスコード済メディアフラグメントを含み得る)それぞれのトランスコード済ストリームフラグメントが送信された後にトランスコーダのビットレートが調整され得る。他方、修正されたサービスにおいては、(メディアセグメントとも呼ばれる)個々のセグメントがそれぞれ別個の関連するセグメントセッションで送信され、最初に確立されたビットレートが用いられる第1のセッションの前を除き各セグメントセッションの前にトランスコーダのビットレートが調整される。1つのセグメントが一連のトランスコード済バッファ(トランスコード済メディアフラグメント)としても送信されるが、同じセグメント内のバッファ単位ではビットレートの修正を行うことは提案されない。
最初のセグメントのQoS値(ビットレート)はモバイルユニットにより確立され、モバイルユニットの特性の関数である。続くセグメントのそれぞれのトランスコードが開始される前に、以下の図12に詳細に説明されるようにQoS値が計算される(直前のセグメントの期間の長さをセグメント開始間隔で除算し、前のセグメントが要求された時に最後に保存されたQoSで乗算する)。「累積の」保存されたQoS値を直前のセグメントに基づいて計算された値で乗算することにより、セグメントが要求される毎にトランスコーダのビットレート(つまりQoS)が再調整される。その値は、次のセグメントのトランスコードを開始する前にセグメントの初期ビットレートに適用される係数を提供する。セグメント要求は要求に示される(元の)初期ビットレートを有するセグメントファイルの新たな接続であるので、初期ビットレートのどの割合で次のセグメントをトランスコードすべきかを覚えておく必要がある。その後その割合は、他のセグメントが要求される毎に調整される。
修正されたサービスの「開始間隔」は、オリジナルのサービスの「現クロック間隔」に対応する。それら両方が、推定表示時間との比較のために推定送信時間を計算するのに用いられる。推定表示時間は、修正されたサービスにおいてはフラグメントのセグメントの表示時間であり、オリジナルのサービスにおいてはストリームフラグメント、つまり、およそ3秒の間隔毎に送信されるトランスコード済メディアフラグメントの表示時間である。
修正されたサービスにおいては、メディアセグメントが十分に短いものと想定されているので、ビットレートはセグメントの間に変更される必要がない、つまり、複数のトランスコード済バッファ(トランスコード済メディアフラグメント)が、前のメディアセグメントが送信された後に確立されたビットレートで送信される。ビットレートはセグメント間のみで変更され得る。
オリジナルのサービスにおける一時停止の検出は、平均クロック間隔を用いて直前のクロック間隔が「異常に」長いか否かを判断する。修正されたサービスにおける一時停止の検出は、対応する、平均開始間隔(2つのセグメント要求間の時間)を用いて、直前の開始間隔がかなり長過ぎるか否かを判断する。よって、セグメントの送信の間には一時停止の検出は試みられない。一時停止が検出された場合、これはセグメントが要求されたということであり、直前のセグメントが要求されてから長い時間が経ったということが理解される。他の条件(一時停止が検出された回数、および間隔が通常とどの程度異なるか、など)が満たされた場合、動画が一時停止されたものと想定または推測され、ビットレートの修正は行われない。
両方の実施形態を組み合わせる、または少なくとも部分的に組み合わせることが可能である。つまり、各セグメントのトランスコード済バッファに関して、あるセグメントの間の一時停止の検出を含むオリジナルのサービスを実行し、その後累積の平均のセグメントビットレートに従って次のセグメントに関しQoSをリセットする。セグメント内のバッファの処理に関してオリジナルのサービスのいくつかを組み込むことが可能である。
図11は、以下の段階を含む、本願発明の他の実施形態に係る修正された動的ビットレート適合処理1100のフローチャートを示す。
1102:「1つのセグメントをダウンロードするためにモバイルが接続」
1104:「セッションが存在するか?」
1106:「セッションを作成」
1108:「セグメントQoSを再評価」
1110:「セグメントQoS値を保存」
1112:「保存されたセグメントQoSを適用」
1114:「セグメントのトランスコードを開始」
1116:「次のトランスコード済バッファを生成」(=404)
1118:「トランスコード済バッファを送信」(=406)
1120:「セグメントの最後に到達したか?」
修正された動的ビットレート適合(MDBRA)処理1100は、モバイルユニットがメディア処理サーバ302(図3)から複数のセグメントを含むプレイリストを取得した後に開始される段階1102〜1120を含むループを備える。MDBRA処理1100は、必要に応じてセグメントをダウンロードするために接続するモバイルユニットにより発せられる要求に応答してのメディアセグメントのトランスコードおよび送信を網羅する。トランスコードセッションは第1の接続が確立された時に作成され、続く要求のために用いられる。MDBRA処理1100は、モバイルユニットがサーバとの接続を切断した場合、またはアボートした場合に終了する(図11に図示せず)。
第2のセグメントについて開始すると、新たなセグメントが要求される毎に段階1108「セグメントQoSを再評価」および段階1110「セグメントQoS値を保存」が、現在のセグメントの開始間隔が知られるトランスコードの直前に実行される。その時、段階1108で説明したように、直前のセグメントの期間の長さを現セグメント開始間隔で除算することにより計算されるQoS調整係数で最後(つまり、セグメントが要求された前の時刻)に保存されたQoS値を乗算することにより、新たなQoS値(エンコードビットレート)が計算され得る。言い換えると、QoS値は計算される毎に保存され、直前のセグメントに基づき計算された値で保存された値を乗算することにより、他のセグメントが要求される毎に再調整される。この値は、トランスコードする前のセグメントの初期ビットレートに適用される係数を提供する。各セグメント要求は(元の)初期ビットレートを有するセグメントファイルの新たな接続であるので、初期ビットレートのどの割合でトランスコードすべきかをセグメント単位で覚えておく必要がある。その後その割合は、セグメントが要求される毎に調整される。
段階1102「1つのセグメントをダウンロードするためにモバイルが接続」において、モバイルユニットは接続を行い1つのセグメントを要求する。
段階1104「セッションが存在するか?」において、サーバとモバイルユニットとの間のトランスコードセッションが既に存在するか否かの判断が行われる。判断の結果が肯定的な場合(段階1104を「はい」から出る)、段階1108の実行に続く。そうでない場合(段階1104を「いいえ」から出る)、次の段階1106においてトランスコードセッションが作成される。
段階1106「セッションを作成」において、モバイルユニットのプロフィール(構成)に従って初期トランスコードビットレート(QoS=1.0)が確立される。その後、段階1114の実行に続く。
段階1108「セグメントQoSを再評価」において、最後に完了したセグメントをトランスコードするのに用いられた保存されたQoS値を、この最後に完了したセグメントと前のセグメントとの間の時間間隔に基づき再評価する。段階1108は以下の図12においてより詳細に展開されている。
段階1110「セグメントQoS値を保存」において、新たに計算されたセグメントQoS値が、次のセグメントのトランスコードに備えて保存される。
段階1112「保存されたセグメントQoSを適用」において、図10に詳細に説明された段階412と類似して、新たに保存されたQoS値が適用され、つまりトランスコーダ314に送信される。
段階1114「セグメントのトランスコードを開始」において、現在のセグメントのトランスコードが開始される。この段階は段階402と類似している。
MDBRA処理1100の段階1116「次のトランスコード済バッファを生成」および段階1118「トランスコード済バッファを送信」はそれぞれ、DBRA処理400の段階404および406と類似している。
段階1120「セグメントの最後に到達したか?」において、現在送信されているセグメントの最後に到達したか否かが判断される。判断の結果が否定的な場合(段階1120を「いいえ」から出る)、次のバッファを処理するためにループを戻って段階1116が実行される。そうでない場合(段階1120を「はい」から出る)、段階1102が続いて実行され、モバイルユニットにより次のセグメントが要求されるのを待つ。
図12は、以下の工程を含む、図11のセグメントQoS再評価段階1108のより詳細なフローチャートである。
1202:「TTR≧1.0?」
1204:「最初のセグメントQoS計算か?」
1206:「セグメントQoS計算を初期化」
1208:「現開始間隔(CSI)および出力されたセグメントの期間の長さ(OSD)を計算」
1210:「間隔インデックスをインクリメント」
1212:「合計開始間隔を計算」
1214:「平均開始間隔を計算」
1216:「セグメントの一時停止を検出」
1218:「セグメントの一時停止(SP)が検出されたか?」
1220:「セグメントの一時停止を処理」
1222:「LastSegmentQoS≒OSD/CSI」
1224:「SQoS≒SQoS×LastSegmentQoS」
セグメントQoS再評価段階1108は、(図5で展開される)図4のDBRA処理のQoS再評価段階408に似ている。両者の差異は、クロック間隔およびバッファ間隔のそれぞれの代わりに、セグメント開始間隔および出力されたセグメントの期間の長さの値を用いることに起因する。
段階1202「TTR≧1.0?」において、現在のTranscodingThrottlingRateが1.0以上か否かの判断が行われる。判断の結果が肯定的な場合(段階1202を「はい」から出る)、次の段階1204の実行に続く。そうでない場合(段階1202を「いいえ」から出る)、ビットレートを減少させるためのトランスコードは必要ではなく、手順が復帰する。
段階1204「最初のセグメントQoS計算か?」において、これがセグメントに関して最初のQoS計算か否かの判断が行われる。セグメントQoSによりトランスコーダバッファの送信だけでなくセグメント全体のトランスコーダのビットレートが決まるのでセグメントQoSは図5の単純なQoSとは異なる。これが最初のセグメントQoS計算である場合(段階1204を「はい」から出る)、図13において以下に展開される段階1206「セグメントQoS計算を初期化」の実行に続く。これが最初のセグメントQoS計算ではない場合(段階1204を「いいえ」から出る)、段階1208の実行に続く。
段階1208「現開始間隔(CSI)および出力されたセグメントの期間の長さ(OSD)を計算」において、現開始間隔および出力されたセグメントの期間の長さが以下のように計算される。
CSI≒CT−PSST
ここでCTは現時刻であり、
PSSTはPreviousSegmentStartTimeである。
OSD≒直前に出力されたセグメントの期間の長さ
段階1208は幾分、図5の段階510と同様であるが、直前のセグメントのトランスコード済メディアフラグメントに埋め込まれたタイムスタンプにより提供される、直前のセグメントの開始時刻(現開始間隔)および期間の長さ(表示時間)を頼りとする。
段階1210「間隔インデックスをインクリメント」において、現間隔インデックス(CII)がインクリメントされる。間隔インデックスは、QoSが再計算される毎に増加させられる。これは平均間隔を計算する際の除数として用いられる。段階1210は図5の段階514と同一である。
段階1212「合計開始間隔を計算」において、StartIntervalSum(SIS)がCurrentStartIntervalの分だけインクリメントさせられる。段階1212が図5の段階516と同様であるが、クロック間隔(CCI)の代わりに開始間隔(CSI)の合計を提供する。
段階1214「平均開始間隔を計算」において、StartIntervalSumをIntervalIndexで除算することによりStartIntervalAverage(SIA)が計算される。段階1214は、図5の段階518と同様であるが、クロック間隔の代わりに開始間隔の平均を提供する。
段階1216「セグメントの一時停止を検出」は図5の段階520「一時停止を検出」に類似しているが、CCIおよびCIAの代わりに、PauseDetectedのブール値を決定するのにCSIおよびSIA変数をそれぞれ用いる。
段階1218「セグメントの一時停止(SP)が検出されたか?」は、図5の段階522「一時停止を検出」に類似している。段階1218において、前の段階1216の結果を用いて、恐らくユーザがメディアを一時停止したであろうか否かの判断が行われる。セグメントが要求され、直前のセグメントが要求されてから長い時間が経っていることが理解された場合、セグメントの一時停止が検出される。セグメントの一時停止が検出された場合(段階1218を「はい」から出る)、次の段階1220においてセグメントの一時停止が処理される。そうでない場合(段階1218を「いいえ」から出る)、段階1222の実行に続く。
段階1220「セグメントの一時停止を処理」は図5の段階524「一時停止を処理」と類似しており、主に、異常に長いセグメントの間隔に基づきユーザによる一時停止が検出された後に、合計セグメント開始間隔(段階524の合計クロック間隔の代わりに。図8を参照されたい)の補正のための再計算である。
段階1222「LastSegmentQoS≒OSD/CSI」において、直前のセグメントのトランスコードに用いられた(相対的なビットレートに対応する)QoS調整係数である変数「LastSegmentQoS」は、直前に出力されたセグメントの期間の長さ(OSD)、つまり、直前のセグメントの推定表示時間を、現開始間隔、つまり、直前のセグメントの推定送信時間で除算することにより計算される。
段階1224「SegmentQoS(SQoS)≒SQoS×LastSegmentQoS」において、LastSegmentQoSが現セグメントQoSで乗算され、次のセグメントのトランスコードに用いられるセグメントQoSを求める。段階1224の後、セグメントのQoSの再評価処理1108が完了し、新たに計算されたSegmentQoS値が保存される(図11の段階1110)。
図13は、以下の段階を含む、図12の「セグメントQoS計算を初期化」段階1206のより詳細なフローチャートである。
1302:セグメントQoSを1.0に初期化するための「セグメントQoS≒1.0」
1304:前のセグメントがまだ存在しないので、前のセグメントの開始時間を「利用不可能(N/A)」の値に初期化するための「前のセグメントの開始時間≒N/A」
1306:間隔インデックスを0に初期化するための「間隔インデックス≒0」
1308:合計開始間隔を0に初期化するための「合計開始間隔≒0」
段階1206の目的は図5の段階508と類似しており、最初のセグメントがトランスコードされる前に変数を初期化することである。
帯域幅が変化する接続を介した送信のためのメディアファイルの帯域幅の適合を提供する方法およびシステムが本願発明の実施形態により提供されるので、経時的に帯域幅が変化するネットワークを介してのHTTPマルチメディア配信のユーザ体験が向上する。
HTTP以外の、ネットワークを介してメディアファイルをストリーミングするためのプロトコルが本願発明の範囲に含まれる。そのようなプロトコルは、モバイルユニットから動的ビットレートアダプタへアプリケーションレベルのフィードバックを提供する必要はなく、信頼出来る配信メカニズムを提供するものと想定される。
一時停止を検出するための追加のパラメータまたは方法も想到され得、理論的に検討することにより、または純粋に実験的に開発され得る。そのような改良は、本開示の範囲に含まれるものと見なされる。
本願発明の実施形態において、トランスコーダ314は、プロセッサにより実行される、メモリに格納されたコンピュータ可読命令を有するソフトウェアを備える。しかし代替的に、トランスコーダ314は、デジタル信号プロセッサ(DSP)チップまたは特定用途向け集積回路(ASIC)内のコプロセッサなど別個のプロセッサ上のハードウェアとしても実装され得る。
本願発明の特定の実施形態について詳細に説明してきたが、説明された実施形態は例示的であり限定的ではないことを理解されたい。本願発明の幅広い態様内でその範囲から逸脱することなく、実施形態の様々な変更および修正が以下の請求項の範囲内で加えられ得る。
図9は、以下の段階を含む、図5の段階528「QoSを計算」を展開したフローチャートである。
902:「CBI>CCI?」
904:「Delta1≒CBI−CCI」
906:「Difference1≒Delta1/CBI」
908:「Difference1>TH1?」
910:「QoS≒1.0+Difference1/AF1」
912:「Delta2≒CCI−CBI」
914:「Difference2≒Delta2/CCI」
916:「Difference2>TH2?」
918:「QoS≒1.0−Difference2/AF2」
920:「前QoS計算時刻≒現時刻」
922:「前バッファタイムスタンプ≒現バッファタイムスタンプ」
段階918「QoS≒1.0−Difference2/AF2」は、ビットレートが第2の増分値だけ減少させられるべきであると判断された場合に新たなQoS値がどのように計算されるかを示す。段階918において、第2の増分値は、段階914からの第2の相対差(Difference2)を、好ましくはおよそ6.0である第2の減衰係数「AF2」で除算することにより計算される。1.0から第2の増分値を減算することにより得られる値が新たなQoS値となり、エンコーダに送信され(段階412、図4)、(エンコードビットレートに対応する)QoS係数が第2の増分値だけ減少させられる。

Claims (16)

  1. 帯域幅が変化するリンクを介した宛て先ユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするための方法であり、
    前記方法は、少なくとも1つのプロセッサを用いて、
    (i)前記メディアファイルの1以上のフラグメントをトランスコード済メディアフラグメントへエンコードし、ストリームフラグメントを形成する段階と、
    (ii)前に形成されたストリームフラグメントをトランスコーダから伝送し、前記帯域幅が変化するリンクが消費するのに要する時間間隔である、前記前に形成されたストリームフラグメントの推定送信時間を判断する段階と、
    (iii)前記推定送信時間の関数として、前記トランスコード済メディアフラグメントの現エンコードレートを調整する段階と
    を実行する方法。
  2. 前記段階(i)は、
    初期エンコードレートで、前記メディアファイルの少なくとも第1のフラグメントを、対応する第1のトランスコード済メディアフラグメントにエンコードする段階と、
    前記初期エンコードレートに等しい前記現エンコードレートを設定する段階と
    を有し、
    前記段階(iii)は、調整された前記現エンコードレートで、前記メディアファイルの後続のフラグメントを、対応するトランスコード済メディアフラグメントにエンコードする段階を有する、請求項1に記載の方法。
  3. 前記段階(iii)はさらに、2つの前に形成されたストリームフラグメントに関連するタイムスタンプから導出される、前記宛て先ユニットにおける前記ストリームフラグメントの推定表示時間の関数として、前記現エンコードレートを調整する段階を有する、請求項1または2に記載の方法。
  4. 前記段階(ii)はさらに、現時刻と直前のエンコード時の時刻である前の時刻との間の現クロック間隔として、前記推定送信時間を推定する段階を有する、請求項1から3のいずれか1項に記載の方法。
  5. 前記段階(iii)はさらに、
    前記宛て先ユニットにおける前のストリームフラグメントの推定表示時間を表し、2つの前に形成されたストリームフラグメントに埋め込まれたタイムスタンプから導出される現バッファ間隔を判断する段階と、
    前記現クロック間隔と前記現バッファ間隔とを比較する段階と、
    前記現クロック間隔および前記現バッファ間隔の関数として前記現エンコードレートを調整する段階と
    を有する、請求項4に記載の方法。
  6. 前記調整する段階はさらに、
    前記現バッファ間隔と前記現クロック間隔との間の第1の相対差が第1の所定の閾値TH1より大きい場合に、前記第1の相対差に基づき計算される第1の増分値の分だけ前記現エンコードレートを増加させる段階と、
    前記現クロック間隔と前記現バッファ間隔との間の第2の相対差が第2の所定の閾値TH2より大きい場合、前記第2の相対差に基づき計算される第2の増分値の分だけ前記現エンコードレートを減少させる段階と
    を含む、請求項5に記載の方法。
  7. 前記段階(iii)はさらに、
    前記トランスコード済メディアフラグメントの送信の中断を検出する段階と、
    前記中断が検出された場合に、前記現エンコードレートの前記調整を抑制する段階と
    を有する、請求項1から6のいずれか1項に記載の方法。
  8. 前記送信の前記中断を前記検出する段階は、
    前記メディアファイルの前記エンコードが開始されてからの、現時刻と直前のエンコード時の時刻である前の時刻との間の間隔としてそれぞれが測定される過去の現クロック間隔の平均として平均クロック間隔を計算する段階と、
    前記現クロック間隔が前記平均クロック間隔より所定の差XCの分だけ大きい場合に、前記中断が検出されたと判断する段階と
    を含む、請求項7に記載の方法。
  9. 帯域幅が変化するリンクを介した宛て先ユニットへのリアルタイム送信のために、メディアファイルまたはその一部をエンコードするためのメディア処理システムであり、
    前記メディア処理システムは、プロセッサと、前記プロセッサにより実行されるコンピュータ可読命令を格納した非一時的コンピュータ可読記憶媒体とを備え、
    前記プロセッサと前記非一時的コンピュータ可読記憶媒体とは、
    前記メディアファイルの1以上のフラグメントをトランスコード済メディアフラグメントにトランスコードし、ストリームフラグメントを形成するトランスコーダと、
    前に形成されたストリームフラグメントを前記トランスコーダから伝送し、前記帯域幅が変化するリンクが消費するのに要する時間間隔である、前記前に形成されたストリームフラグメントの推定送信時間の関数として前記トランスコーダの現エンコードビットレートを調整する動的ビットレートアダプタと
    を構成する、メディア処理システム。
  10. 前記動的ビットレートアダプタはさらに、現時刻と直前のエンコード時の時刻である前の時刻との間の現クロック間隔として前記推定送信時間を推定する、請求項9に記載のメディア処理システム。
  11. 前記動的ビットレートアダプタはさらに、2つの前に形成されたストリームフラグメントに関連するタイムスタンプから導出される、前記宛て先ユニットにおける前記ストリームフラグメントの推定表示時間の関数として、前記現エンコードビットレートを調整する、請求項9または10に記載のメディア処理システム。
  12. トランスコード済メディアフラグメントをネットワークへ転送し、前記トランスコード済メディアフラグメントのうち少なくともいくつかに関連するタイムスタンプを前記動的ビットレートアダプタに送信するトランスコーダバッファをさらに備える、請求項9から11のいずれか1項に記載のメディア処理システム。
  13. 前記動的ビットレートアダプタはさらに、
    前記宛て先ユニットにおける前のストリームフラグメントの推定表示時間を表し、2つの前に形成されたストリームフラグメントに埋め込まれたタイムスタンプから導出される現バッファ間隔を判断し、
    前記現クロック間隔と前記現バッファ間隔とを比較し、
    前記現クロック間隔および前記現バッファ間隔の関数として前記現エンコードビットレートを調整する
    請求項10に記載のメディア処理システム。
  14. 前記動的ビットレートアダプタは、
    前記現時刻をトラッキングするためのウォールクロックモジュールと、
    前記トランスコーダの前記エンコードビットレートを調整するために、前記トランスコーダに送信されるサービス品質(QoS)値となるよう前記現時刻と前記タイムスタンプとを処理するQoSアジャスタと
    を含む、請求項13に記載のメディア処理システム。
  15. 前記動的ビットレートアダプタはさらに、前記現エンコードビットレートの関数として前記現エンコードビットレートを調整する、請求項9から14のいずれか1項に記載のメディア処理システム。
  16. 前記動的ビットレートアダプタはさらに、前記トランスコード済メディアフラグメントの送信の中断を検出し、前記中断が検出された場合に、前記動的ビットレートアダプタによる前記現エンコードビットレートの前記調整を妨げる一時停止検出器を含む、請求項9から15のいずれか1項に記載のメディア処理システム。
JP2014525264A 2011-08-16 2012-07-10 帯域幅が変化する接続における動的ビットレート適合 Active JP6255342B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/210,652 US9137551B2 (en) 2011-08-16 2011-08-16 Dynamic bit rate adaptation over bandwidth varying connection
US13/210,652 2011-08-16
PCT/CA2012/000658 WO2013023271A1 (en) 2011-08-16 2012-07-10 Dynamic bit rate adaptation over bandwidth varying connection

Publications (2)

Publication Number Publication Date
JP2014529931A true JP2014529931A (ja) 2014-11-13
JP6255342B2 JP6255342B2 (ja) 2017-12-27

Family

ID=47712649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014525264A Active JP6255342B2 (ja) 2011-08-16 2012-07-10 帯域幅が変化する接続における動的ビットレート適合

Country Status (8)

Country Link
US (2) US9137551B2 (ja)
EP (1) EP2745523B1 (ja)
JP (1) JP6255342B2 (ja)
KR (1) KR101996877B1 (ja)
CN (1) CN103733632B (ja)
CA (1) CA2842391C (ja)
IL (1) IL230995A (ja)
WO (1) WO2013023271A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018148460A (ja) * 2017-03-07 2018-09-20 株式会社リコー 端末、プログラム、データ送信方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013030852A2 (en) 2011-08-29 2013-03-07 Sling Media Pvt Ltd. Systems and methods for controlling the encoding of a segmented media stream using segment transmit times
US20130304934A1 (en) * 2011-09-29 2013-11-14 Avvasi Inc. Methods and systems for controlling quality of a media session
US9462302B2 (en) * 2012-02-23 2016-10-04 Mobitv, Inc. Efficient delineation and distribution of media segments
CN104641638B (zh) * 2012-06-28 2018-08-03 阿克西斯股份公司 使用虚拟帧内帧对视频内容进行编码的系统和方法
US20150327197A1 (en) * 2012-08-14 2015-11-12 Nokia Corporation Method and apparatuses for adjusting time, computer-readable storage media and a computer program product
US9699103B2 (en) * 2012-09-05 2017-07-04 Flash Networks, Ltd Method and system for flow controlling
US9560392B2 (en) * 2012-09-07 2017-01-31 Google Inc. Dynamic bit rate encoding
EP2951972A1 (en) * 2013-01-31 2015-12-09 Codemate AS Network content delivery method using a delivery helper node
US20140286438A1 (en) * 2013-03-19 2014-09-25 Nvidia Corporation Quality of service management server and method of managing streaming bit rate
US9462032B2 (en) * 2013-07-24 2016-10-04 Google Inc. Streaming media content
US9137285B2 (en) 2013-10-21 2015-09-15 Broadcom Corporation Adaptive audio video (AV) stream processing
ITBA20130077A1 (it) * 2013-11-25 2015-05-26 Cicco Luca De Meccanismo per il controllo del bitrate di codifica in un sistema di video streaming adattivo basato su buffer di playout e sulla stima di banda.
CN110691037A (zh) * 2014-02-21 2020-01-14 瑞典爱立信有限公司 通信网络中的服务递送
US10708328B2 (en) * 2014-03-17 2020-07-07 Intel Corporation Hardware assisted media playback and capture synchronization
FR3022426A1 (fr) * 2014-06-16 2015-12-18 Orange Gestion par un equipement intermediaire de la qualite de transmission d'un flux de donnees vers un terminal mobile
JP2016005095A (ja) * 2014-06-16 2016-01-12 三菱電機株式会社 通信装置及び通信レート調整装置及びアプリケーション実行装置及び通信システム及びプログラム
CN104038816B (zh) * 2014-06-20 2017-06-23 深圳市九洲电器有限公司 一种视频同步方法及系统
CA2953422C (en) * 2014-06-26 2021-04-13 Arris Enterprises Llc Server side adaptive bit rate control for http streaming clients
US20160191598A1 (en) * 2014-08-04 2016-06-30 Likqid Media, Inc. System and methods that enable embedding, streaming, and displaying video advertisements and content on internet webpages accessed via mobile devices
US9635069B2 (en) * 2014-08-06 2017-04-25 Verizon Patent And Licensing Inc. User feedback systems and methods
CN105376176B (zh) * 2014-08-21 2019-03-19 中国电信股份有限公司 保障移动互联网视频业务服务质量的方法、装置和系统
CN105791735B (zh) * 2014-12-24 2018-11-27 中国电信股份有限公司 用于视频通话码流动态调整的方法和系统
WO2016112294A1 (en) * 2015-01-08 2016-07-14 Arris Enterprises, Inc. Server-side adaptive bit rate control for dlna http streaming clients
US9756112B2 (en) * 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US9935993B2 (en) * 2015-03-31 2018-04-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Streaming video over a hybrid network
US9894366B2 (en) * 2016-01-28 2018-02-13 Arris Enterprises Llc Variant and buffer handling for adaptive bitrate streaming
CA3035086C (en) * 2016-09-19 2021-07-13 Arris Enterprises Llc Http streaming apparatus and system with pseudo manifest file and just-in-time encoding
US10832735B2 (en) * 2017-01-03 2020-11-10 Ayre Acoustics, Inc. System and method for improved transmission of digital data
US10812559B2 (en) 2017-01-18 2020-10-20 Amazon Technologies, Inc. Just-in-time variable adaptive encoding and delivery of media content
CN106993237B (zh) * 2017-04-13 2019-05-10 中北大学 基于mpeg-dash协议的动态自适应码率选择方法
KR102307447B1 (ko) * 2017-05-02 2021-09-30 삼성전자주식회사 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
US10801678B1 (en) * 2017-10-30 2020-10-13 Race, LLC Modular emitting device and light emission system
US10944808B2 (en) * 2018-07-27 2021-03-09 Verizon Digital Media Services Inc. Server-side reproduction of client-side quality-of-experience
EP3818719B1 (en) 2019-09-23 2024-05-01 Google LLC Interruptible video transcoding
CN114731450A (zh) * 2019-10-01 2022-07-08 串流猴子有限责任公司 服务器端自适性媒体串流
US11463651B2 (en) 2019-12-23 2022-10-04 Carrier Corporation Video frame-based media stream bandwidth reduction
US11438545B2 (en) 2019-12-23 2022-09-06 Carrier Corporation Video image-based media stream bandwidth reduction
CN113596377A (zh) * 2021-08-02 2021-11-02 北京数码视讯技术有限公司 卫星通信的监控视频转换装置和系统
CN114221870B (zh) * 2021-12-16 2023-01-20 北京达佳互联信息技术有限公司 用于服务器的带宽分配方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003046976A (ja) * 2001-07-31 2003-02-14 Matsushita Electric Ind Co Ltd 映像配信装置、映像配信方法及びプログラム
JP2004289583A (ja) * 2003-03-24 2004-10-14 Kddi R & D Laboratories Inc 動画像圧縮符号化送受信装置
JP2006180036A (ja) * 2004-12-21 2006-07-06 Matsushita Electric Ind Co Ltd 動画符号化伝送制御装置および動画符号化伝送制御方法
JP2007036681A (ja) * 2005-07-27 2007-02-08 Hitachi Communication Technologies Ltd マルチキャスト配信方法及びシステム、コンテンツサーバ
JP2009005193A (ja) * 2007-06-22 2009-01-08 Panasonic Corp 通信端末
US20090103607A1 (en) * 2004-06-07 2009-04-23 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3236000A1 (de) * 1982-09-29 1984-03-29 Blaupunkt-Werke Gmbh, 3200 Hildesheim Verfahren zum klassifizieren von audiosignalen
US4893197A (en) * 1988-12-29 1990-01-09 Dictaphone Corporation Pause compression and reconstitution for recording/playback apparatus
JP3042102B2 (ja) * 1991-11-22 2000-05-15 日本電気株式会社 多重化送信装置
US6633609B1 (en) * 1996-12-24 2003-10-14 Intel Corporation Method and apparatus for bit rate control in a digital video environment for arbitrary bandwidth
US7041941B2 (en) 1997-04-07 2006-05-09 Patented Medical Solutions, Llc Medical item thermal treatment systems and method of monitoring medical items for compliance with prescribed requirements
US7184426B2 (en) 2002-12-12 2007-02-27 Qualcomm, Incorporated Method and apparatus for burst pilot for a time division multiplex system
US6400954B1 (en) 1998-05-15 2002-06-04 Tlelefonaktiebolaget Lm Ericsson (Publ) Methods and systems for mode selection based on access network capacity
US6563517B1 (en) * 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6208620B1 (en) 1999-08-02 2001-03-27 Nortel Networks Corporation TCP-aware agent sublayer (TAS) for robust TCP over wireless
JP3841256B2 (ja) 2000-02-15 2006-11-01 三菱電機株式会社 通信システム及び通信方法及び送信端末
US7299291B1 (en) 2000-05-18 2007-11-20 Akamai Technologies, Inc. Client-side method for identifying an optimum server
US7260826B2 (en) 2000-05-31 2007-08-21 Microsoft Corporation Resource allocation in multi-stream IP network for optimized quality of service
US20020164024A1 (en) 2000-08-25 2002-11-07 Hiroshi Arakawa Data transmission method and data relay method
US20020173315A1 (en) 2001-05-17 2002-11-21 Mazen Chmaytelli Method and apparatus for adapting capabilities of a wireless communication system to load requirements
US7460629B2 (en) 2001-06-29 2008-12-02 Agere Systems Inc. Method and apparatus for frame-based buffer control in a communication system
KR100954253B1 (ko) 2001-11-30 2010-04-23 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 데이터 전송 시스템, 동작 방법 및 디지털 미디어 캐리어
JP3900413B2 (ja) 2002-02-14 2007-04-04 Kddi株式会社 映像情報伝送方式およびプログラム
US7596373B2 (en) 2002-03-21 2009-09-29 Mcgregor Christopher M Method and system for quality of service (QoS) monitoring for wireless devices
JP4000895B2 (ja) 2002-04-23 2007-10-31 日本電気株式会社 リアルタイム通信のためのビットレート制御方法および装置
US20030229693A1 (en) 2002-06-06 2003-12-11 International Business Machines Corporation Self-correcting monitor
KR20030095995A (ko) 2002-06-14 2003-12-24 마츠시타 덴끼 산교 가부시키가이샤 미디어 전송방법 및 그 송신장치 및 수신장치
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system
EP1418764A1 (en) * 2002-11-05 2004-05-12 STMicroelectronics S.A. Method and apparatus for transcoding sub-picture data, and video display system comprising such apparatus
SG111978A1 (en) 2002-11-20 2005-06-29 Victor Company Of Japan An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
JP4069444B2 (ja) 2002-12-10 2008-04-02 ソニー株式会社 符号化制御方法及び符号化制御プログラム
CN1729641A (zh) 2002-12-18 2006-02-01 皇家飞利浦电子股份有限公司 数字多媒体信息的自适应编码
JP2006525693A (ja) 2003-02-13 2006-11-09 ノキア コーポレイション マルチメディア・ストリーミングにおけるクライアント速度機能のシグナリング方法
US7444425B2 (en) 2003-03-10 2008-10-28 Meetrix, Inc. Applying multicast protocols and VPN tunneling techniques to achieve high quality of service for real time media transport across IP networks
US20050060364A1 (en) 2003-07-07 2005-03-17 Rakesh Kushwaha System and method for over the air (OTA) wireless device and network management
US7400588B2 (en) 2003-08-01 2008-07-15 Thomson Licensing Dynamic rate adaptation using neural networks for transmitting video data
US7016409B2 (en) * 2003-11-12 2006-03-21 Sony Corporation Apparatus and method for use in providing dynamic bit rate encoding
SE526535C2 (sv) 2003-12-22 2005-10-04 Operax Ab Förfarande och nod för att kontrollera vidarebefordringskvaliteten i ett datanät
JP2005217199A (ja) 2004-01-29 2005-08-11 Sanyo Electric Co Ltd 信号線回路装置
EP1580914A1 (en) * 2004-03-26 2005-09-28 STMicroelectronics S.r.l. Method and system for controlling operation of a network
US7720983B2 (en) 2004-05-03 2010-05-18 Microsoft Corporation Fast startup for streaming media
US7353466B2 (en) 2004-05-28 2008-04-01 Microsoft Corporation System and method for generating message notification objects on dynamically scaled timeline
CA2569610C (en) 2004-06-07 2012-11-27 Sling Media, Inc. Personal media broadcasting system
US7474707B2 (en) * 2004-09-09 2009-01-06 Ibiquity Digital Corporation Bandwidth reduction of an FM broadcast signal using a baseband precompensation technique
JP2006129439A (ja) 2004-09-28 2006-05-18 Kyocera Corp 通信システム、基地局装置、サーバ装置、移動局装置、及び送信データ量決定方法
US8281356B2 (en) 2004-11-17 2012-10-02 Sharp Kabushiki Kaisha Transmitter
KR20060065482A (ko) * 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
GB2423219B (en) 2005-02-10 2007-04-18 Motorola Inc A network proxy client, a communication system and a method for providing a service between a server and an end client
JP4697525B2 (ja) 2005-04-20 2011-06-08 ソニー株式会社 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
US8218657B2 (en) 2005-09-02 2012-07-10 Netgear, Inc. System and method for automatic adjustment of streaming video bit rate
US8842555B2 (en) 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8548048B2 (en) 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
KR100735373B1 (ko) 2006-02-06 2007-07-04 삼성전자주식회사 통신 시스템에서 데이터 전송 방법 및 시스템
WO2007130695A2 (en) 2006-05-05 2007-11-15 Globstream, Inc. Method and apparatus for streaming media to a plurality of adaptive client devices
KR101330631B1 (ko) * 2006-08-21 2013-11-18 삼성전자주식회사 통신 환경에 대한 정보를 이용한 데이터 전송 방법 및 장치
US20080062322A1 (en) 2006-08-28 2008-03-13 Ortiva Wireless Digital video content customization
US8606966B2 (en) 2006-08-28 2013-12-10 Allot Communications Ltd. Network adaptation of digital content
WO2008033423A2 (en) 2006-09-13 2008-03-20 Marvell Semiconductor, Inc. Decoding method for alamouti scheme with harq and/or repetition coding
US8780717B2 (en) 2006-09-21 2014-07-15 General Instrument Corporation Video quality of service management and constrained fidelity constant bit rate video encoding systems and method
US7743161B2 (en) 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
US7652993B2 (en) * 2006-11-03 2010-01-26 Sharp Laboratories Of America, Inc. Multi-stream pro-active rate adaptation for robust video transmission
JP2008125063A (ja) 2006-11-09 2008-05-29 Innowireless Co Ltd 基地局エミュレーティング機能を有する携帯インターネット計測器及びこれを利用したul同期取得及び端末のテスト方法
US8116805B2 (en) 2006-12-17 2012-02-14 Qualcomm Incorporated Uplink scheduling for OFDM systems
US7843824B2 (en) 2007-01-08 2010-11-30 General Instrument Corporation Method and apparatus for statistically multiplexing services
US8139487B2 (en) * 2007-02-28 2012-03-20 Microsoft Corporation Strategies for selecting a format for data transmission based on measured bandwidth
US20080300025A1 (en) 2007-05-31 2008-12-04 Motorola, Inc. Method and system to configure audio processing paths for voice recognition
CN102084683B (zh) 2008-03-12 2016-09-28 松下电器(美国)知识产权公司 无线通信装置、无线通信系统以及无线通信方法
US7844725B2 (en) 2008-07-28 2010-11-30 Vantrix Corporation Data streaming through time-varying transport media
EP2204954B1 (en) * 2009-01-06 2017-12-27 Alcatel Lucent Optimised bandwidth utilisation in networks
US8396114B2 (en) 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
WO2010111261A1 (en) 2009-03-23 2010-09-30 Azuki Systems, Inc. Method and system for efficient streaming video dynamic rate adaptation
US9501329B2 (en) 2009-05-08 2016-11-22 Rackspace Us, Inc. Methods and systems for cloud computing management
US20100312828A1 (en) * 2009-06-03 2010-12-09 Mobixell Networks Ltd. Server-controlled download of streaming media files
CN102123303B (zh) * 2011-03-25 2012-10-24 天脉聚源(北京)传媒科技有限公司 一种音视频文件播放方法、系统及传输控制装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003046976A (ja) * 2001-07-31 2003-02-14 Matsushita Electric Ind Co Ltd 映像配信装置、映像配信方法及びプログラム
JP2004289583A (ja) * 2003-03-24 2004-10-14 Kddi R & D Laboratories Inc 動画像圧縮符号化送受信装置
US20090103607A1 (en) * 2004-06-07 2009-04-23 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream
JP2006180036A (ja) * 2004-12-21 2006-07-06 Matsushita Electric Ind Co Ltd 動画符号化伝送制御装置および動画符号化伝送制御方法
JP2007036681A (ja) * 2005-07-27 2007-02-08 Hitachi Communication Technologies Ltd マルチキャスト配信方法及びシステム、コンテンツサーバ
JP2009005193A (ja) * 2007-06-22 2009-01-08 Panasonic Corp 通信端末

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
廣本 正之, 外5名: "メディアストリーミングにおける高速移動通信網に適した動的符号化レート制御手法の検討", マルチメディア,分散,協調とモバイル(DICOMO2008)シンポジウム論文集 情報処理学会シンポジ, vol. 2008, no. 1, JPN6016032411, 2 July 2008 (2008-07-02), JP, pages 1167 - 1176, ISSN: 0003384902 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018148460A (ja) * 2017-03-07 2018-09-20 株式会社リコー 端末、プログラム、データ送信方法

Also Published As

Publication number Publication date
CA2842391C (en) 2017-04-04
EP2745523A4 (en) 2015-03-18
CA2842391A1 (en) 2013-02-21
JP6255342B2 (ja) 2017-12-27
EP2745523A1 (en) 2014-06-25
US20160007033A1 (en) 2016-01-07
WO2013023271A1 (en) 2013-02-21
EP2745523B1 (en) 2020-03-18
KR20140062465A (ko) 2014-05-23
US20130044801A1 (en) 2013-02-21
IL230995A (en) 2016-04-21
CN103733632B (zh) 2017-09-22
CN103733632A (zh) 2014-04-16
US10499071B2 (en) 2019-12-03
KR101996877B1 (ko) 2019-07-08
IL230995A0 (en) 2014-03-31
US9137551B2 (en) 2015-09-15

Similar Documents

Publication Publication Date Title
JP6255342B2 (ja) 帯域幅が変化する接続における動的ビットレート適合
US10939178B2 (en) Media streaming with latency minimization
US8621061B2 (en) Adaptive bitrate management for streaming media over packet networks
US20160205164A1 (en) Server-side adaptive bit rate control for dlna http streaming clients
CN110192394B (zh) 通过网络传送媒体内容的方法和服务器
US20160037176A1 (en) Automatic and adaptive selection of profiles for adaptive bit rate streaming
WO2014149257A1 (en) Video streaming with buffer occupancy prediction based quality adaptation
KR20150042191A (ko) 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들
JP6425649B2 (ja) Http疑似ストリーミング用の一体型コントローラベースのペーシング
CN111886875B (zh) 一种通过网络传送媒体内容的方法及服务器
CN107210999B (zh) 链路感知流送自适应
JP2016059037A (ja) 少なくとも2つの連続するセグメントに分離されたマルチメディアコンテンツを受信するための方法およびクライアント端末、ならびに対応するコンピュータプログラム製品およびコンピュータ可読媒体
WO2014110670A1 (en) Media server
WO2011143916A1 (zh) 媒体适配的方法和装置
GB2572357A (en) Congestion response for timely media delivery
Talan et al. Mobile Multimedia Traffic Analysis: Clients Can Waste Network Bandwidth

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170731

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171204

R150 Certificate of patent or registration of utility model

Ref document number: 6255342

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250