JP7490764B2 - コンテンツおよびネットワーク解析を使用してビデオフレームを適応的にエンコードする - Google Patents

コンテンツおよびネットワーク解析を使用してビデオフレームを適応的にエンコードする Download PDF

Info

Publication number
JP7490764B2
JP7490764B2 JP2022521285A JP2022521285A JP7490764B2 JP 7490764 B2 JP7490764 B2 JP 7490764B2 JP 2022521285 A JP2022521285 A JP 2022521285A JP 2022521285 A JP2022521285 A JP 2022521285A JP 7490764 B2 JP7490764 B2 JP 7490764B2
Authority
JP
Japan
Prior art keywords
frame
rate
frames
video
video resolution
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
JP2022521285A
Other languages
English (en)
Other versions
JP2023510446A (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 JP2023510446A publication Critical patent/JP2023510446A/ja
Application granted granted Critical
Publication of JP7490764B2 publication Critical patent/JP7490764B2/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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/136Incoming video signal characteristics or properties
    • 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/142Detection of scene cut or scene change
    • 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/164Feedback from the receiver or from the transmission channel
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

エンコーダは、伝送のためにビデオフレームを圧縮することがある。例えば、エンコーダは、元の表現よりも少ないビットを使用して、ビデオフレームを圧縮された形式にエンコードすることができる。圧縮は、ロッシー(非可逆(lossy))またはロスレス(可逆(lossless))のいずれかであることができる。ロスレス圧縮は、統計的冗長性を識別し、除去することによってビットを削減する。ロスレス圧縮では情報は失われない。ロッシー圧縮は、不必要または重要でない情報を除去することによってビットを削減する。
コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードするための例示的なシステムを示すブロック図である。
ネットワーク帯域幅予測のための例示的なディープラーニングネットワークを示す図である。
コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードするための方法を示すフローチャートである。
チェックアップ(checkup)テーブルを作成するための方法を示すフローチャートである。
コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードすることができる例示的なコンピューティングデバイスを示すブロック図である。
図6は、コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードするためのコードを格納するコンピュータ可読媒体を示すブロック図である。
同様のコンポーネントおよび特徴を参照するために、開示および図面の全体にわたって同じ番号が使用される。100シリーズの数字は、図1で最初に見出される特徴を指し、200シリーズの数字は、図2の特徴を指す。
リアルタイムビデオストリーミングは、最も重要なインターネットビデオアプリケーションの一つである。いくつかの例では、リアルタイムビデオストリーミングは、クラウドビデオゲーム、家庭内ストリーミング、リモートレンダリング、およびリアルタイムビデオストリーミングを含み得る。これらのアプリケーションでは、ビデオをエンコードおよび送信の関連する待ち時間が、特にユーザインタラクション(user interaction)を必要とするアプリケーションについて、ユーザエクスペリエンス(user experience)を決定することがある。多くのソリューションにおいて、ビデオエンコーダは、推定されたネットワーク帯域幅を反映する平均ビットレートでビデオをエンコードする役割を果たす。トランスポートは、エンコードされたビデオをパケットで送信し、ネットワーク通信および帯域幅変動を実行し、推定ネットワーク帯域幅をビデオエンコーダに提供する役割を果たす。ビデオエンコーダは、トランスポートフィードバックに従って調節され得るが、一般に、ビデオエンコーダとトランスポートとは、緩く結合される(loosely coupled)。特に、ビデオエンコーダレート制御は、漸進的なレート変化(gradually rate change)に依存するモデルを使用し得る。漸進的な変化の結果、急速なネットワークスループットの低下がある場合、大きい遅延およびフレーム低下が生じる可能性がある。例えば、遅延は5秒以上であり得る。他のタイプのアプリケーションの中でも、リアルタイムゲームストリーミングでは、この種の遅延は許容できない可能性がある。さらに、ネットワークスループットが改善されると、既存のソリューションは、新たに利用可能な帯域幅でより良い品質を達成するのに十分な速さで応答しない可能性がある。従って、潜在的な帯域幅は、品質を改善するために使用されるのではなく、無駄になる可能性がある。
高度ビデオコーディング圧縮規格(H.264)のためのスケーラブルビデオコーディング(SVC)および高効率ビデオコーディング(HEVC)圧縮規格H.265のためのスケーラブル拡張(Scalable Extensions)を備えたHEVCなどのスケーラブルビデオコーディングは、可変チャネル条件を処理するために使用され得る。スケーラブルビデオコーディングは、もし十分な数のレイヤーが使用される場合、ネットワーク変動に迅速に応答することができるが、スケーラブルビデオコーディングは、安定したネットワーク条件において、比較的高いエンコーディング複雑性と低い圧縮効率を有する。特に、実際のネットワーク変動を処理するために、スケーラブルコーディングのレイヤーの数は、高くなければならない。その結果,エンコーディング複雑性が高い。チャネルが安定である場合、圧縮効率は、多数のレイヤーの使用のために比較的低い場合がある。
本開示は、概して、ビデオを適応的にエンコードするための技術に関する。具体的には、本明細書に記載される技術は、コンテンツおよびネットワーク解析を使用してビデオを適応的にエンコードするための装置、方法およびシステムを含む。例示的な装置は、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレート(instant bitrate)を予測するためのネットワークアナライザを含む。この装置はまた、受信したフレームに基づいてラダー(ladder)情報を生成するためのコンテンツアナライザを含む。装置はさらに、予測された瞬間ビットレートおよびラダー出力に基づいてフレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する適応決定実行器(adaptive decision executer)を含む。装置はさらに、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードするエンコーダを含む。
従って、本明細書に記載された技術は、より良好な視覚体験を伴う、ビデオの非常に低い待ち時間のストリーミングを可能にする。加えて、本明細書に記載する技術は、急速なネットワークスループットの低下に関連する遅延およびフレームドロップを防止し得る。さらに、この技術は現在のビデオコーデックにシームレスに統合することができる。実験トレーニング結果は、本明細書に記載された技術が、実際のネットワーク帯域幅変化と成功裏に予測されたネットワークチャネル変化との間に強い相関をもたらすことを示す。
図1は、コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードするための例示的なシステムを示すブロック図である。例示的なシステム100は、図3および4の方法300および400を使用して、図5のコンピューティングデバイス500内に実装することができる。
例示的なシステム100は、ネットワークアナライザ102を含む。システム100はまた、ネットワークアナライザ102に通信可能に(communicatively)結合されたコンテンツアナライザ104を含む。システムはさらに、ネットワークアナライザ102およびコンテンツアナライザ104に通信可能に結合された適応決定実行器106を含む。システム100は、コンテンツアナライザ104および適応決定実行器106に通信可能に結合されたフレームエンコーダ108を含む。ネットワークアナライザ102は、ネットワーク帯域幅推定器110を含む。ネットワーク帯域幅推定器110は、ネットワーク112に通信可能に結合される。ネットワークアナライザ102はまた、ネットワーク帯域幅推定器110に通信可能に結合された履歴ネットワークデータ生成器(historic network data generator)114を含む。ネットワークアナライザ102はまた、ネットワーク帯域幅推定器110および履歴ネットワークデータ生成器114に通信可能に結合された瞬間帯域幅予測器116をさらに含む。例えば、瞬間帯域幅予測器116は、機械学習(ML)を使用してトレーニングされたニューラルネットワークであり得る。
コンテンツアナライザ104は、タイトル毎のエンコーディングトレーナ118を含む。例えば、タイトル毎のエンコーディングトレーナ118はニューラルネットワークであり得る。また、コンテンツアナライザ104は、タイトル毎/シーンラダー決定実行器120を含む。また、コンテンツアナライザ104は、フレームアナライザ122をさらに含む。例えば、フレームアナライザ122は、また、機械学習(ML)を使用してトレーニングされたニューラルネットワークであり得る。フレームアナライザ122は、関心領域マップ124を生成することが示されている。コンテンツアナライザ104は、フレームアナライザ122に通信可能に結合された、画像の適応グループ(GOP)決定実行器126をさらに含む。適応GOP決定実行器126はオフライントレーニングモデル128を受信することが示されている。
適応決定実行器106は、フレームレートコントローラ130を含む。適応決定実行器106はまた、フレームレートコントローラ130に通信可能に結合された解像度コントローラ312を含む。適応決定実行器106はまた、解像度コントローラ312に通信可能に結合されたターゲットフレームサイズ計算器134をさらに含む。
フレームエンコーダ108は、トランスポート制御されたビットレート制御(TCBRC)レートコントローラ136を含む。フレームエンコーダ108はまた、TCBRCレートコントローラ136に通信可能に結合されたエンコーダ138を含む。
図1の例では、ネットワークアナライザ102は、ネットワーク112からのチャネルフィードバックに基づいて将来のチャネル帯域幅変化を予測することができる。例えば、ネットワークアナライザ102は、機械学習アルゴリズムであり得る、瞬間帯域幅予測器116を使用して将来のチャネル帯域幅変化を予測することができる。加えて、コンテンツアナライザ104は、各ビットレートに対して最適なビデオ解像度およびフレームレートを見出すために、ビデオコンテンツを解析することができる。例えば、コンテンツアナライザ104は、これもまた機械学習アルゴリズムであり得る、フレームアナライザ122によってビデオフレームを解析することができる。エンコーディングプロセスの間、適応決定実行器106は、ターゲットフレームサイズ、ビデオ解像度、およびフレームレートをオンザフライで(その場で(on the fly))決定することができる。次いで、エンコーダ138は、ターゲットフレームサイズ、ビデオ解像度およびフレームレートに基づいてフレームをエンコードすることができる。従って、エンコーディングプロセスは、トランスポートに強固に結合され、ネットワークアナライザ102からのリアルタイムチャネル条件およびコンテンツアナライザ104からのコンテンツ解析に従って調整される。
例えば、ネットワークアナライザ102は、ネットワーク112からチャネルスループットフィードバックを受信することができる。ネットワーク帯域幅(BW)推定器110は、チャネルスループットフィードバックに基づいてネットワーク112上で利用可能な帯域幅を推定することができる。履歴ネットワークデータ生成器114は、経時的に推定された帯域幅に基づいて履歴ネットワークデータを生成することができる。例えば、履歴ネットワークデータ生成器114は、前の20フレームのような、所定の数の過去のフレームに基づいて履歴ネットワークデータを生成することができる。いくつかの例では、瞬間帯域幅予測器116は、履歴ネットワークデータを組み合わせることによって、瞬間ビットレートを予測することができる。種々の例では、次のチャネルフィードバックがネットワーク112から受信されるとき、瞬間帯域幅予測器116は、以前の予測を修正し、新しい予測を生成することができる。瞬間帯域幅予測器116は、予測された瞬間ビットレートを適応決定実行器106に提供することができる。
種々の例では、コンテンツアナライザ104は、タイトル毎のエンコーディングトレーナ118およびフレームアナライザ122を含む。タイトル毎のエンコーディングトレーナ118は、受信したトレーニングビデオのセットに対してオフライントレーニングを実行することができる。例えば、タイトル毎のエンコーディングトレーナ118は、各ビットレートラダーの各ビデオセグメントに最適なビデオ解像度およびフレームレートを見出すために、最も人気のあるビデオゲームのセットに対してオフライントレーニングを実行することができる。フレームアナライザ122は、待ち時間のないリアルタイムで各フレームのオンザフライ解析を提供することができる。一例として、ゲームコンテンツに対して、フレームアナライザ122は、レンダリングアプリケーションプログラムインターフェース(API)およびレンダリングコールから生成されるハードウェア(HW)カウンタから提供される情報を利用することができる。種々の例では、122からの出力は、124の関心領域マップを生成するために使用され、GOP構造は、適応GOP決定実行器126によって決定される。幾つかの例では、コンテンツアナライザ104は、各ビットレートラダーの各ビデオセグメントに最適なビデオ解像度およびフレームレートを見出すために、解析結果をオフライントレーニングモデル128と組み合わせることができる。例えば、クラウドゲーム分野では、いくつかの人気ゲームタイトルが最も頻繁にプレイされることがある。従って、これらの人気の高いゲームについてより良い品質を提供することは、追加的なリソースを投入する価値があるかもしれない。様々な例において、タイトル毎のエンコーディングトレーニングは、この目的のために設計され得る。例えば、トレーニングプロセスの間、各ゲームタイトルは、複数のビットレート、複数の解像度および複数の異なるフレームレートでエンコードされ得る。次に、機械学習アルゴリズムを使用して、同じビットレートのエンコードされたビデオの品質を解析することができる。例えば、エンコードされたビデオは、同じビットレートを有し得るが、解像度とフレームレートの異なる組み合わせを有し得る。特定のビットレートを有する各ビデオセグメントに対して、解像度とフレームレートの最良の組み合わせが選択され得る。トレーニングプロセスの後、コンテンツアナライザ104は、予め選択された各ビットレートを有する各セグメントに対するラダー情報を含むチェックアップテーブルを構築し得る。例えば、ラダー情報は、予め選択された各ビットレートを有する各セグメントに対するビットレート適応解像度およびフレームレート選択を含み得る。2メガビット/秒(Mbps)から8Mbpsのビットレートにおける様々な例示的なゲームに対するビットレート情報を持つチェックアップテーブルの例を表1に示す。
Figure 0007490764000001
表1の例では、各ビットレートに対する最良の品質の組み合わせが、ゲームタイトルの各々に対する計算されたピーク信号対雑音比(PSNR)を使用して生成された。太字で示した組み合わせは、1920x1080ではなく、1280x720の減少した解像度でレンダリングしていることを示している。表に示されるように、例えば、Game_7およびGame_9は、利用可能な帯域幅が7Mbpsまたは8Mbpsであっても、最良のパフォーマンスのためにレンダリング中に1280x720解像度を使用し得る。例えば、フレームは1280x720で送信され、クライアントデバイスでデコードされた後に1920x1080にアップスケールされる。このようにして、待ち時間は、100msまたは任意の他の所定の閾値のような許容可能な閾値レベル未満に低減され、維持され得る。
いくつかの例では、フレームアナライザ122は、シーン変化があるかどうかを決定するために、リアルタイムで各フレームを解析し、フレーム複雑性インデックスを提供することができる。様々な例では、フレームアナライザ122は、エンコーダの能力を十分に活用するために関心領域マップを生成することもできる。例えば、関心領域は、人間の顔であり得る。いくつかの例では、より小さい量子化パラメータ(QP)が、顔を周囲の領域より高精細に現わすために、関心領域に使用され得る。いくつかの例では、より多いビットが、品質を高めるためにシーン変更フレームに割り当てられ得る。フレーム複雑性インデックスは、所与のビット数でフレームをエンコードすることの困難さを示し得る。例えば、複雑性インデックスは、所与のQPでフレームをエンコードするために使用されることになるビット数を示すことができる。一例として、ゲームコンテンツに対して、シーン変化およびフレーム複雑性を生成するフレームアナライザ122は、入力として30のHWカウンタを有する完全に接続されたレイヤーを使用して構築され得る。
適応決定実行器106は、予測された瞬間ビットレートおよびコンテンツアナライザ104から出力されるラダー情報に応じて、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定することができる。例えば、コンテンツ解析およびネットワーク解析が完了した後、推定された瞬間ビットレートおよびラダー情報は適応決定実行器106に送信される。推定された瞬間ビットレートおよびラダー情報に基づいて、適応決定実行器106は、フレームレートおよびビデオ解像度を選択することができる。例えば、ネットワークアナライザ102が、4Mbpsが利用可能であると予測し、コンテンツアナライザ104が、4Mbpsがフレームレートと解像度の特定の最良の組み合わせであることを示す場合、示されたフレームレートと解像度は4Mbpsのビットレートで使用され得る。例えば、特定のゲームまたはアプリケーションに対するチェックアップテーブルで解像度を調べることができ、それに応じて最適な解像度に基づいてフレームレートを選択することができる。別の例では、ネットワークアナライザ102が、2Mbpsが利用可能であることを示す場合、2Mbpsに対するフレームレートおよび解像度の最良の組み合わせを代わりに使用することができる。次に、適応決定実行器106は、フレームレートとビデオ解像度に基づいてターゲットフレームサイズを計算することができる。一例として、推定された瞬間ビットレートがBR1であり、フレームレートがFR1である場合、ターゲットフレームサイズはBR1/FR1である。FR1が半減すれば、ターゲットフレームサイズを100%増やすことができまる。
様々な例では、コンテンツ解析が利用できないときに、フレームレートおよびビデオ解像度を決定するために、別のファクタも利用され得る。例えば、このファクタは、QP値と前のエンコードされたフレームの生成されたビットの組み合わせであり得る。いくつかの例では、適応決定実行器106は、QP値が閾値より大きく、前の生成ビットがターゲットフレームサイズ以上であることを検出したことに応答して、現在のフレームに対するビデオ解像度を低減することができる。様々な例では、適応決定実行器106は、解像度正規化瞬間ビットレート(resolution normalized instant bitrate)が閾値より小さく、QP値が閾値より大きいことを検出することに応答して、フレームレート変更(frame rate change)を適用することができる。例えば、フレームレート変更は、フレームドロップであり得る。
フレームエンコーダ108は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてビデオフレームをエンコードすることができる。例えば、TCBRCレートコントローラ136は、現在のフレームのエンコーディングのための量子化パラメータを導出することができる。次いで、エンコーダ138は、導出された量子化パラメータに基づいてフレームをエンコードすることができる。いくつかの例では、エンコーダ138は、現在のフレームに使用されるQPを、後続のフレームの決定に使用される適応決定実行器106にフィードバックすることができる。いくつかの例では、適応決定実行器106は、後続のフレームのフレームレート、解像度、およびターゲットフレームサイズを決定する際に現在のフレームのQPを使用することができる。例えば、QPが50である場合には、適応決定実行器106は、より多くの圧縮を適用するためにQPをそれ以上上げることができないことを考慮することができる。従って、一例として、予測された瞬間ビットレートが低下する場合、後続のフレームレートは低減され得る。
このようにして、待ち時間は閾値レベル未満に維持することができる。一例として、送信されたフレームの待ち時間は、100ミリ秒(ms)を超えることができない。フレームがクライアントデバイスに低い待ち時間で送信された後、より良好な視覚的外観を提供するために、フレームもアップスケールされ得る。例えば、1280x720で送信されるフレームは、フレームがデコードされた後、クライアントデバイスのモニタに表示するために、1920x1080にアップスケールされ得る。
図1のダイアグラムは、例示的なシステム100が、図1に示されるコンポーネントの全てを含むものであることを示すことを意図するものではない。むしろ、例示的なシステム100は、少ない、または図1に示されていない追加のコンポーネント(例えば、追加のモデル、ネットワークアナライザ、エンコーダなど)を使用して実装することができる。
図2は、ネットワーク帯域幅予測のための例示的なディープラーニングネットワークを示すブロック図である。例示的なディープラーニングネットワーク200は、図3の方法300を使用して、図1のシステム100または図5のコンピューティングデバイス500に実装することができる。例えば、ディープラーニングネットワーク200は、ネットワークアナライザ102またはネットワークアナライザ530の瞬間帯域幅予測器116に使用することができる。
ディープラーニングネットワーク200の例は、リカレントニューラルネットワーク(RNN)である。ディープラーニングネットワーク200は、入力202を含む。例えば、入力の合計サイズ204は20であり得る。入力202は、フレームx0~x19に対応し得る。一例として、入力202は、フレームx0~x19の各々についての第1のパッケージ遅延と、フレームx0~x19の各々についてのフレームサイズであり得る。いくつかの例では、第1のパッケージ遅延に対するWebリアルタイム通信(WebRTC)APIフィードバックが使用され得る。他の例では、リアルタイムストリーミングプロトコル(RTSP)ネットワーク制御プロトコルが、パッケージ遅延を取得するために使用され得る。一例として、フレームx0は現在のフレームを表し得、一方、フレームx1~x19は前のフレームを表し得る。
ディープラーニングネットワーク200は、時系列である(time sequenced)相互接続セル206を含む。例えば、フレームx1に対応するセル206を、フレームx0に対応するセル206に接続され得る。セルは、各々、いくつかの特徴(features)208を有する。例えば、特徴の数208は100であり得る。
ディープラーニングネットワーク200はまた、20の全ての入力からの特徴を1つのセルに結合する高密度レイヤー(dense layer)210を含む。例えば、高密度レイヤー210は、入力202に基づく出力予測であり得る。一例として、予測は、予測された瞬間ビットレートであり得る。
種々の例では、ネットワーク帯域幅予測器は、ネットワークからのフィードバックに基づいて帯域幅を予測するために、ディープラーニングアルゴリズムを使用して構築することができる。例えば、ネットワーク帯域幅予測器は、主に第1のパッケージ送信時間(package transmission time)に基づいて帯域幅を予測するように構築することができる。いくつかの例では、ディープラーニングネットワーク200は、20の入力および合計200の重みを有するリカレントニューラルネットワーク(RNN)であり得る。例えば、20の入力は、1つの現在の入力および19の以前の入力を含み得る。
図2のダイアグラムは、例示的なディープラーニングネットワーク200が、図2に示された全てのコンポーネントを含むものであることを示すことを意図するものではない。むしろ、例示的なディープラーニングネットワーク200は、より少ない、または、図2に示されていない追加のコンポーネント(例えば、追加のレイヤー、入力、特徴など)を使用して実装されることができる。
図3は、コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコーディングするための方法を示すフローチャートである。例示的な方法300は、図1のシステム100、図5のコンピューティングデバイス500、または図6のコンピュータ可読媒体600内に実装される。いくつかの例では、方法300は、図2のディープラーニングネットワーク200を使用して実装することができる。
ブロック302において、プロセッサは、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測する。いくつかの例では、プロセッサは、受信したチャネルスループットフィードバックおよび受信した履歴データに基づいて瞬間ビットレートを予測することができる。いくつかの例では、プロセッサは、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測することができる。例えば、チャネルスループットフィードバックは、パッケージ送信時間の形態で受信され得る。
ブロック304において、プロセッサは受信したフレームに基づいてラダー情報を生成する。いくつかの例では、プロセッサはオフライントレーニングを実行して、受信されたビデオのセットに対して複数の所定の予め選択されたビットレートで、最適なビデオ解像度およびフレームレートを生成することができる。種々の例では、プロセッサは、フレーム内のシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成することができる。例えば、シーン変化およびフレーム複雑性は、完全に接続されたレイヤーを有するニューラルネットワークによって、フレームに基づいて検出することができる。
ブロック306において、プロセッサは、予測された瞬間ビットレート、およびラダー情報に基づいて、フレームレート、ビデオ解像度およびターゲットフレームサイズを決定する。例えば、プロセッサは、予測された瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択することができる。一例として、ラダー情報は、いくつかの瞬間ビットレートを与えられた種々のゲームタイトルに対するターゲットビデオ解像度を含み得る。例えば、ラダー情報は、図4の方法400を使用して構築されたチェックアップテーブルから受信され得る。次いで、プロセッサは、フレームレートおよびビデオ解像度に基づいてターゲットフレームサイズを計算し得る。例えば、ターゲットフレームサイズは、ビット単位で測定され得る。
ブロック308では、プロセッサは、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードする。種々の例では、プロセッサは、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成し、量子化パラメータに基づいてフレームをエンコードすることができる。例えば、プロセッサは、予測された瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算することができる。いくつかの例では、プロセッサは、ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択することができる。例えば、ラダー情報は特定のフレームに対して利用できないことがある。
このプロセスフローダイアグラムは、例示的な方法300のブロックが任意の特定の順序で実行されるべきであること、またはブロックの全てが、すべての場合に含まれるべきであることを示すことを意図していない。さらに、図示されていない任意の数の追加ブロックが、特定の実装の詳細に応じて、例示的な方法300内に含まれ得る。例えば、エンコードされたフレームは、表示のためにクライアントデバイスに送信され得る。
図4は、チェックアップテーブルを構築するための方法を示すフローチャートである。例示的な方法400は、図1のシステム100、図5のコンピューティングデバイス500、または図6のコンピュータ可読媒体600内に実装される。
ブロック402において、プロセッサは、いくつかのトレーニングビデオを受信する。例えば、トレーニングビデオは、人気のあるゲームのストリームまたは使用中のアプリケーションのストリームであり得る。
ブロック404において、プロセッサは、複数のトレーニングビデオの各々を複数のビットレート、解像度、およびフレームレートでエンコードする。例えば、プロセッサは、いくつかのビットレート、いくつかの解像度、およびいくつかのフレームレートで、ビデオゲームのいくつかのストリームをエンコードすることができる。
ブロック406において、プロセッサは、解像度およびフレームレートの異なる組み合わせで同じビットレートを使用して、エンコードされたトレーニングビデオの品質を解析する。例えば、エンコードされたビデオの品質は、PSNRを使用して解析され得る。種々の例において、最良のPSNRを有する解像度およびフレームレートの組み合わせが選択され得る。
ブロック408において、プロセッサは、各トレーニングビデオおよびいくつかの予め選択されたビットレートのそれぞれに対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築する。例えば、プロセッサは、同じビットレートにおける解像度およびフレームレートの異なる組み合わせを有するエンコードされたビデオの品質の機械学習解析に基づいて、予め選択されたビットレートでの各ビデオゲームに対するビットレート適応解像度およびフレームレート選択を含むチェックアップテーブルを構築することができる。
このプロセスフローダイアグラムは、例示的な方法400のブロックが任意の特定の順序で実行されるべきであること、またはブロックのすべてが、すべての場合に含まれるべきであることを示すことを意図していない。さらに、図示されていない任意の数の追加ブロックが、特定の実装の詳細に応じて、例示的な方法400内に含まれ得る。
次に、図5を参照すると、コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードすることができる例示的なコンピューティングデバイスを示すブロック図が示されている。コンピューティングデバイス500は、とりわけ、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス、またはウェアラブルデバイスであり得る。いくつかの例では、コンピューティングデバイス500は、ビデオゲームまたは他のアプリケーションのためにビデオストリームをレンダリングおよび送信するクラウドコンピューティングデバイスであり得る。コンピューティングデバイス500は、記憶された命令を実行するように構成された中央処理装置(CPU)502と、CPU502によって実行可能である命令を記憶するメモリデバイス504とを含み得る。CPU502は、バス506によってメモリデバイス504に結合され得る。加えて、CPU502は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成であることができる。さらに、コンピューティングデバイス500は、複数のCPU502を含み得る。いくつかの例では、CPU502は、マルチコアプロセッサアーキテクチャを持つシステムオンチップ(SoC)であり得る。いくつかの例では、CPU502は、画像処理のために使用される専用デジタル信号プロセッサ(DSP)であることができる。メモリデバイス504は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、または他の任意の適切なメモリシステムを含むことができる。例えば、メモリデバイス504は、ダイナミックランダムアクセスメモリ(DRAM)を含み得る。
メモリデバイス504は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、または他の任意の適切なメモリシステムを含むことができる。例えば、メモリデバイス504は、ダイナミックランダムアクセスメモリ(DRAM)を含み得る。
コンピューティングデバイス500はまた、グラフィックス処理ユニット(GPU)508を含み得る。図示のように、CPU502はバス506を介してGPU508に結合され得る。GPU508は、コンピューティングデバイス500内の任意の数のグラフィックス動作を実行するように構成され得る。例えば、GPU508は、コンピューティングデバイス500のユーザに表示されるグラフィックス画像、グラフィックスフレーム、ビデオなどをレンダリングまたは操作するように構成され得る。
メモリデバイス504は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、または他の任意の適切なメモリシステムを含むことができる。例えば、メモリデバイス504は、ダイナミックランダムアクセスメモリ(DRAM)を含み得る。メモリデバイス504は、シーケンスに依存しない処理を実行するために複数の畳み込みニューラルネットワークをトレーニングするための命令を実行するように構成されたデバイスドライバ510を含み得る。デバイスドライバ510は、ソフトウェア、アプリケーションプログラム、アプリケーションコードなどであり得る。
CPU502はまた、バス506を介して、コンピューティングデバイス500を1つ以上の入出力(I/O)デバイス514に接続するように構成されたI/Oデバイスインターフェース512に接続され得る。I/Oデバイス514は、例えば、キーボードおよびポインティングデバイスを含み得、ポインティングデバイスは、とりわけ、タッチパッドまたはタッチスクリーンを含み得る。I/Oデバイス514は、コンピューティングデバイス500の内蔵コンポーネントであり得る、または、コンピューティングデバイス500に外部接続されるデバイスであり得る。いくつかの例では、メモリ504は、直接メモリアクセス(DMA)を介してI/Oデバイス514に通信可能に結合され得る。
CPU502はまた、バス506を介して、コンピューティングデバイス500をディスプレイデバイス518に接続するように構成されたディスプレイインターフェース516にリンクされ得る。ディスプレイデバイス518は、コンピューティングデバイス500の内蔵コンポーネントであるディスプレイスクリーンを含み得る。ディスプレイデバイス518はまた、とりわけ、コンピューティングデバイス500の内部または外部に接続される、コンピュータモニタ、テレビジョン、またはプロジェクタを含み得る。
コンピューティングデバイス500はまた、ストレージデバイス520を含む。ストレージデバイス520は、ハードドライブ、光学ドライブ、サムドライブ、ドライブのアレイ、ソリッドステートドライブ、またはそれらの任意の組み合わせのような物理メモリである。ストレージデバイス520はまた、リモートストレージドライブを含み得る。
コンピューティングデバイス500はまた、ネットワークインターフェースコントローラ(NIC)522を含み得る。NIC522は、バス506を介してコンピューティングデバイス500をネットワーク524に接続するように構成され得る。ネットワーク524は、とりわけ、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、またはインターネットであり得る。いくつかの例では、デバイスは、無線技術を介して他のデバイスと通信し得る。例えば、デバイスは、無線ローカルエリアネットワーク接続を介して他のデバイスと通信し得る。いくつかの例では、Bluetooth(登録商標)または同様のテクノロジーを介して、デバイスを他のデバイスに接続し、通信し得る。
コンピューティングデバイス500は、さらに、カメラ526を含む。例えば、カメラ526は、1つ以上のイメージングセンサを含み得る。いくつかの例では、カメラ526は、ビデオフレームを生成するためのプロセッサを含み得る。
コンピューティングデバイス500は、さらに、トランスポートおよびコンテンツ適応エンコーダ528を含む。例えば、トランスポートおよびコンテンツ適応エンコーダ528を使用して、コンテンツおよびネットワーク解析に基づいてフレームを適応的にエンコードすることができる。トランスポートおよびコンテンツ適応エンコーダ528は、ネットワークアナライザ530、コンテンツアナライザ532、適応決定実行器534、およびフレームエンコーダ536を含むことができる。いくつかの例では、トランスポートおよびコンテンツ適応エンコーダ528のコンポーネント530~536の各々は、マイクロコントローラ、埋め込みプロセッサ、またはソフトウェアモジュールであり得る。ネットワークアナライザ530は、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測することができる。例えば、ネットワークアナライザ530は、受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測することができる。いくつかの例では、ネットワークアナライザ530は、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測することができる。例えば、ネットワークアナライザ530は、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測するようにトレーニングされたディープラーニングニューラルネットワークを含み得る。コンテンツアナライザ532は、受信したフレームに基づいてラダー情報を生成することができる。いくつかの例では、コンテンツアナライザ532は、オフライントレーニングを実行して、受信したビデオのセットに対して複数の所定の予め選択されたビットレートで、最適なビデオ解像度およびフレームレートを生成することができる。種々の例では、コンテンツアナライザ532は、受信したフレームをリアルタイムで解析して、フレーム内のシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成することができる。例えば、コンテンツアナライザ532は、入力として複数のハードウェアカウンタを有する完全に接続されたレイヤーを含むフレームアナライザを含み得る。一例として、フレームアナライザは、ディープラーニングニューラルネットワークであり得る。いくつかの例では、コンテンツアナライザ532は、各トレーニングビデオおよび複数の予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築するために、タイトル毎のエンコーディングトレーナを含み得る。適応決定実行器534は、予測された瞬間ビットレートおよびラダー出力に基づいて、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定することができる。いくつかの例では、適応決定実行器534は、予測された瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算することができる。種々の例では、適応決定実行器534は、ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を代替的に選択することができる。フレームエンコーダ536は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードすることができる。
図5のブロック図は、コンピューティングデバイス500が、図5に示すコンポーネントのすべてを含むものであることを示すことを意図したものではない。むしろ、コンピューティングデバイス500は、より少ない、または、追加のバッファ、追加のプロセッサなどのような、図5に示されていない追加のコンポーネントを含むことができる。コンピューティングデバイス500は、特定の実装の詳細に応じて、図5に示されていない任意の数の追加のコンポーネントを含み得る。例えば、コンピューティングデバイス300はまた、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成するレートコントローラを含むことができる。次いで、エンコーダ536は、量子化パラメータに基づいてフレームをエンコードし得る。さらに、ネットワークアナライザ530、コンテンツアナライザ532、適応決定実行器534、およびフレームエンコーダ536の機能のいずれかは、ハードウェアおよび/またはプロセッサ502で部分的に、または全体的に実装され得る。例えば、機能性は、特定用途向け集積回路、プロセッサ502に実装される論理、または任意の他のデバイスに実装され得る。加えて、CPU502の機能のいずれかは、ハードウェアおよび/またはプロセッサに部分的にまたは全体的に実装され得る。例えば、トランスポートおよびコンテンツ適応エンコーダ528の機能は、特定用途向け集積回路、プロセッサに実装された論理、GPU508のような専用グラフィックス処理ユニットに実装された論理、または任意の他のデバイスに実装され得る。
図6は、コンテンツおよびネットワーク解析を使用してフレームを適応的にエンコードするためのコードを記憶するコンピュータ可読媒体600を示すブロック図である。コンピュータ可読媒体600は、コンピュータバス604を介してプロセッサ602によってアクセスされ得る。さらに、コンピュータ可読媒体600は、プロセッサ602に本明細書に記載の方法を実行させるように構成されたコードを含み得る。いくつかの実施形態では、コンピュータ可読媒体600は、非一時的コンピュータ可読媒体であり得る。いくつかの例では、コンピュータ可読媒体600は記憶媒体であり得る。
本明細書で議論される種々のソフトウェアコンポーネントは、図6に示されるように、1つ以上のコンピュータ可読媒体600に記憶され得る。例えば、ネットワークアナライザモジュール606は、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測するように構成され得る。例えば、ネットワークアナライザモジュール606は、受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測するように構成され得る。いくつかの例では、アナライザモジュール606は、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測するように構成され得る。コンテンツアナライザモジュール608は、受信したフレームに基づいてラダー情報を生成するように構成され得る。いくつかの例では、コンテンツアナライザモジュール608は、オフライントレーニングを実行して、受信したビデオのセットに対して複数の所定の予め選択されたビットレートで、最適なビデオ解像度およびフレームレートを生成するように構成され得る。様々な例では、コンテンツアナライザモジュール608は、フレーム内のシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成するように構成され得る。例えば、コンテンツアナライザモジュール608は、完全に接続されたレイヤーを有するニューラルネットワークによって、シーン変化およびフレームに基づくフレーム複雑性を検出するように構成され得る。様々な例では、コンテンツアナライザモジュール608は、各トレーニングビデオおよび複数の予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築するように構成され得る。適応決定実行モジュール610は、予測された瞬間ビットレートおよびラダー出力に基づいて、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定するように構成され得る。例えば、適応決定実行モジュール610は、予測された瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算するように構成され得る。いくつかの例では、適応決定実行モジュール610は、ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択するように構成され得る。フレームエンコーダモジュール612は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードするように構成され得る。
図6のブロック図は、コンピュータ可読媒体600が、図6に示されるコンポーネントの全てを含むものであることを示すことを意図していない。さらに、コンピュータ可読媒体600は、特定の実装の詳細に応じて、図6に示されていない任意の数の追加のコンポーネントを含み得る。例えば、コンピュータ可読媒体600は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成するように構成されたレートコントローラモジュールをさらに含み得る。フレームエンコーダモジュール612は、量子化パラメータに基づいてフレームをエンコードし得る。

例1は、ビデオフレームを適応的にエンコードするための装置である。装置は、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測するネットワークアナライザを含む。装置はまた、受信したフレームに基づいてラダー情報を生成するコンテンツアナライザを含む。装置はさらに、予測された瞬間ビットレートおよびラダー出力に基づいてフレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する適応決定実行器を含む。また、装置は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードするエンコーダをさらに含む。
例2は、オプションの特徴を含むまたは除外する、例1の装置を含む。この例では、装置は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成するレートコントローラを含み、エンコーダは、量子化パラメータに基づいてフレームをエンコードする。
例3は、オプションの特徴を含むまたは除外する、例1~2のいずれか1つの装置を含む。この例では、ネットワークアナライザは、受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測する。
例4は、オプションの特徴を含むまたは除外する、例1~3のいずれか1つの装置を含む。この例では、ネットワークアナライザは、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測するようにトレーニングされたディープラーニングニューラルネットワークを含む。
例5は、オプションの特徴を含むまたは除外する、例1~4のいずれか1つの装置を含む。この例では、コンテンツアナライザは、受信したビデオのセットに対していくつかの所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行するタイトル毎のエンコーディングトレーナを含む。
例6は、オプションの特徴を含むまたは除外する、例1~5のいずれか1つの装置を含む。この例では、コンテンツアナライザは、フレームのシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成するためにフレームをリアルタイムで解析するフレームアナライザを含む。
例7は、オプションの特徴を含むまたは除外する、例1~6のいずれか1つの装置を含む。この例では、コンテンツアナライザは、フレームアナライザを含み、フレームアナライザは、入力としていくつかのハードウェアカウンタを備える完全に接続されたレイヤーを含む。
例8は、オプションの特徴を含むまたは除外する、例1~7のいずれか1つの装置を含む。この例では、適応決定実行器は、予測された瞬間ビットレートおよびラダー情報に基づいてフレームレートとビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算する。
例9は、オプションの特徴を含むまたは除外する、例1~8のいずれか1つの装置を含む。この例では、適応決定実行器は、ラダー情報が空であることを検出したことに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択する。
例10は、オプションの特徴を含むまたは除外する、例1~9のいずれか1つの装置を含む。この例では、コンテンツアナライザは、各トレーニングビデオおよびいくつかの予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築するタイトル毎のエンコーディングトレーナを含む。
例11は、ビデオフレームを適応的にエンコードする方法である。方法は、プロセッサによって、ネットワークから受信したチャネルスルーアウトフィードバックに基づいて瞬間ビットレートを予測することを含む。方法は、プロセッサによって、受信したフレームに基づいてラダー情報を生成することを含む。方法は、プロセッサによって、予測された瞬間ビットレートおよびラダー出力に基づいて、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定することを含む。方法は、プロセッサによって、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードすることを含む。
例12は、オプションの特徴を含む、または除外する、例11の方法を含む。この例では、フレームをエンコードすることは、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成することと、量子化パラメータに基づいてフレームをエンコードすることとを含む。
例13は、オプションの特徴を含むまたは除外する、例11~12のいずれか1つの方法を含む。この例では、瞬間ビットレートを予測することは、受信したチャネルスループットフィードバックおよび受信した履歴データに基づく。
例14は、オプションの特徴を含むまたは除外する、例11~13のいずれか1つの方法を含む。この例では、瞬間ビットレートを予測することは、第1のパッケージ送信時間に基づく。
例15は、オプションの特徴を含むまたは除く、例11~14のいずれか1つの方法を含む。この例では、方法は、受信したビデオのセットに対して、いくつかの所定の予め選択されたビットレートで、最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行することを含む。
例16は、オプションの特徴を含むまたは除外する、例11~15のいずれか1つの方法を含む。この例では、方法は、フレーム内のシーン変化を検出することと、フレームに対するフレーム複雑性インデックスを生成することとを含む。
例17は、オプションの特徴を含むまたは除外する、例11~16のいずれか1つの方法を含む。この例では、方法は、完全に接続されたレイヤーを有するニューラルネットワークによって、シーン変化およびフレームに基づくフレーム複雑性を検出することを含む。
例18は、オプションの特徴を含むまたは除外する、例11~17のいずれか1つの方法を含む。この例では、方法は、予測される瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択することと、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算することとを含む。
例19は、オプションの特徴を含むまたは除外する、例11~18のいずれか1つの方法を含む。この例では、方法は、ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択することを含む。
例20は、オプションの特徴を含むまたは除外する、例11~19のいずれか1つの方法を含む。この例では、方法は、いくつかのトレーニングビデオを受信すること;
いくつかのトレーニングビデオの各々をいくつかのビットレート、解像度、およびフレームレートでエンコードすることを含む。方法は、また、解像度およびフレームレートの異なる組み合わせで同じビットレートを使用して、エンコードされたトレーニングビデオの品質を解析することを含む。方法は、また、各トレーニングビデオおよびいくつかの予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築することをさらに含む。
例21は、ビデオフレームを適応的にエンコードするためのシステムである。システムは、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測する手段を含む。システムは、受信したフレームに基づいてラダー情報を生成する手段を含む。システムは、予測された瞬間ビットレートおよびラダー出力に基づいてフレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する手段と;フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードする手段と;を含む。
例22は、オプションの特徴を含むまたは排除する、例21のシステムを含む。この例では、システムは、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成する手段を含み、エンコーダは、量子化パラメータに基づいてフレームをエンコードする。
例23は、オプションの特徴を含むまたは除外する、例21~22のいずれか1つのシステムを含む。この例では、瞬間ビットレートを予測する手段は、受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測する。
例24は、オプションの特徴を含むまたは除外する、例21~23のいずれか1つのシステムを含む。この例では、瞬間ビットレートを予測する手段は、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測するようにトレーニングされたディープラーニングニューラルネットワークを含む。
例25は、オプションの特徴を含むまたは除外する、例21~24のいずれか1つのシステムを含む。この例では、ラダー情報を生成する手段は、受信したビデオのセットに対していくつかの所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行するタイトル毎のエンコーディングトレーナを含む。
例26は、オプションの特徴を含むまたは除外する、例21~25のいずれか1つのシステムを含む。この例では、ラダー情報を生成する手段は、フレームのシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成するために、リアルタイムでフレームを解析するフレームアナライザを含む。
例27は、オプションの特徴を含むまたは除外する、例21~26のいずれか1つのシステムを含む。この例では、ラダー情報を生成する手段は、フレームアナライザを含み、フレームアナライザは、入力としていくつかのハードウェアカウンタを有する完全に接続されたレイヤーを含む。
例28は、オプションの特徴を含むまたは除外する、例21~27のいずれか1つのシステムを含む。この例では、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する手段は、予測される瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算する。
例29は、オプションの特徴を含むまたは除外する、例21~28のいずれか1つのシステムを含む。この例では、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する手段は、ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択する。
例30は、オプションの特徴を含むまたは除外する、例21~29のいずれか1つのシステムを含む。この例では、ラダー情報を生成する手段は、各トレーニングビデオおよびいくつかの予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築するタイトル毎のエンコーディングトレーナを含む。
例31は、ビデオフレームを適応的にエンコードするための装置である。この装置は、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測するネットワークアナライザを含む。装置は、受信したフレームに基づいてラダー情報を生成するコンテンツアナライザを含む。装置は、予測された瞬間ビットレートおよびラダー出力に基づいてフレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する適応決定実行器を含む。装置は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードするエンコーダを含む。
例32は、オプションの特徴を含むまたは除外する、例31の装置を含む。この例では、装置は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成するレートコントローラを含み、エンコーダは、量子化パラメータに基づいてフレームをエンコードする。
例33は、オプションの特徴を含むまたは除外する、例31~32のいずれか1つの装置を含む。この例では、ネットワークアナライザは、受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測する。
例34は、オプションの特徴を含むまたは除外する、例31~33のいずれか1つの装置を含む。この例では、ネットワークアナライザは、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測するようにトレーニングされたディープラーニングニューラルネットワークを含む。
例35は、オプションの特徴を含むまたは除外する、例31~34のいずれか1つの装置を含む。この例では、コンテンツアナライザは、受信したビデオのセットに対していくつかの所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行するタイトル毎のエンコーディングトレーナを含む。
例36は、オプションの特徴を含むまたは除外する、例31~35のいずれか1つの装置を含む。この例では、コンテンツアナライザは、フレームのシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成するために、フレームをリアルタイムで解析するフレームアナライザを含む。
例37は、オプションの特徴を含むまたは除外する、例31~36のいずれか1つの装置を含む。この例では、コンテンツアナライザは、フレームアナライザを含み、フレームアナライザは、いくつかのハードウェアカウンタを入力として有する完全に接続されたレイヤーを含む。
例38は、オプションの特徴を含むまたは除外する、例31~37のいずれか1つの装置を含む。この例では、適応決定実行器は、予測された瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算する。
例39は、オプションの特徴を含むまたは除外する、例31~38のいずれか1つの装置を含む。この例では、適応決定実行器は、ラダー情報が空であることを検出したことに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択する。
例40は、オプションの特徴を含むまたは除外する、例31~39のいずれか1つの装置を含む。この例では、コンテンツアナライザは、各トレーニングビデオおよびいくつかの予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築するタイトル毎のエンコーディングトレーナを含む。
例41は、命令が記憶されたビデオフレームを適応的にエンコードするための少なくとも1つのコンピュータ可読媒体である。コンピュータ可読媒体は、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測するようにプロセッサに指示する命令を含む。コンピュータ可読媒体は、受信したフレームに基づいてラダー情報を生成し;予測された瞬間ビットレートおよびラダー出力に基づいてフレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する、ようにプロセッサに指示する命令を含む。コンピュータ可読媒体は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいてフレームをエンコードするようにプロセッサに指示する命令を含む。
例42は、オプションの特徴を含むまたは排除する、例41のコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、フレームレート、ビデオ解像度、およびターゲットフレームサイズに基づいて量子化パラメータを生成する命令を含み、エンコーダは、量子化パラメータに基づいてフレームをエンコードする。
例43は、オプションの特徴を含むまたは除外する、例41~42のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測する命令を含む。
例44は、オプションの特徴を含むまたは除外する、例41~43のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、第1のパッケージ送信時間に基づいて瞬間ビットレートを予測する命令を含む。
例45は、オプションの特徴を含むまたは除外する、例41~44のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、受信したビデオのセットに対していくつかの所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行する命令を含む。
例46は、オプションの特徴を含むまたは除外する、例41~45のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、フレーム内のシーン変化を検出し、フレームに対するフレーム複雑性インデックスを生成するために、リアルタイムでフレームを解析する命令を含む。
例47は、オプションの特徴を含むまたは除外する、例41~46のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、完全に接続されたレイヤーを有するニューラルネットワークによって、シーン変化およびフレームに基づくフレーム複雑性を検出する命令を含む。
例48は、オプションの特徴を含むまたは除外する、例41~47のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、予測される瞬間ビットレートおよびラダー情報に基づいてフレームレートおよびビデオ解像度を選択し、フレームレートおよびビデオ解像度に基づいてターゲットフレームレートを計算する命令を含む。
例49は、オプションの特徴を含むまたは除外する、例41~48のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび以前にエンコードされたフレームの生成されたビットに基づいて、フレームレートおよびビデオ解像度を選択する命令を含む。
例50は、オプションの特徴を含むまたは除外する、例41~49のいずれか1つのコンピュータ可読媒体を含む。この例では、コンピュータ可読媒体は、各トレーニングビデオおよびいくつかの予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築する命令を含む。
本明細書に記載および図示された全てのコンポーネント、特徴、構造、特性などが、特定の態様または複数の態様に含まれる必要はない。明細書にコンポーネント、特徴、構造または特性が、含まれ「得る」、含まれる「かもしれない」、含まれることが「できる」または含まれ「てもよい」と記載されている場合、例えば、その特定のコンポーネント、特徴、構造または特性を含める必要はない。明細書または請求項が「1つの(「a」または「an」)」要素に言及している場合、それは、要素の1つのみが存在することを意味しない。本明細書または請求項が「追加の」要素を指す場合、それは、追加の要素のうちの2つ以上が存在することを排除しない。
特定の実装を参照していくつかの態様が説明されているが、いくつかの態様に従って他の実装が可能であることに留意されたい。加えて、図面および/または本明細書に説明される回路素子または他の特徴の配置および/または順序は、図示および説明される特定の方法で配置する必要はない。いくつかの態様に従って、多くの他の構成が可能である。
図に示された各システムにおいて、要素はそれぞれ、場合によっては、表される要素が異なるおよび/または類似している可能性があることを示唆するために、同一の参照番号または異なる参照番号を有する場合がある。しかし、要素は、異なる実装を有し、本明細書に図示されまたは記載されたシステムのいくつかまたは全てと共に動作するのに十分にフレキシブル(flexible)であり得る。図中に示されている種々の要素は、同一であっても、異なるものであってもよい。どれを第1の要素と呼び、どれを第2の要素と呼ぶかは、任意である。
前述の例における詳細は、1つ以上の態様において任意の場所で使用され得ることが理解されるべきである。例えば、上述のコンピューティングデバイスの全てのオプションの特徴は、本明細書に記載の方法またはコンピュータ可読媒体のいずれかに関して実装することもできる。さらに、フローダイアグラムおよび/または状態ダイアグラムは、態様を説明するために本明細書中で使用されることがあるが、技術は、これらのダイアグラムまたは本明細書中の対応する説明に限定されない。例えば、フローは、各図示されたボックス若しくは状態を通って移動する必要はなく、または、本明細書に図示され記載されたのと全く同じ順序で移動する必要もない。
本技術は、本明細書に挙げられた特定の詳細に限定されるものではない。実際、本開示の利点を有する当業者であれば、前述の説明および図面からの多くの他の変更が、本技術の範囲内でなされ得ることを理解するであろう。従って、本技術の範囲を定義するのは、その補正を含む以下の特許請求の範囲である。

Claims (22)

  1. ビデオフレームを適応的にエンコードするための装置であって:
    ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測するネットワークアナライザと;
    受信したフレームに基づいてラダー情報を生成するコンテンツアナライザと;
    予測された前記瞬間ビットレートおよび前記ラダー情報に基づいて、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する適応決定実行器であって、前記フレームレートおよび前記ビデオ解像度は前記予測された瞬間ビットレートおよび前記ラダー情報に基づいて決定され、前記ターゲットフレームサイズは、データのサイズであって、前記フレームレートおよび前記ビデオ解像度に基づいて決定される、適応決定実行器と;
    前記フレームレート、前記ビデオ解像度、および前記ターゲットフレームサイズに基づいて前記フレームをエンコードするエンコーダと;を有し、
    前記コンテンツアナライザは、受信したビデオのセットに対して複数の所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行するタイトル毎のエンコーディングトレーナを有する、
    装置。
  2. 前記フレームレート、前記ビデオ解像度、および前記ターゲットフレームサイズに基づいて量子化パラメータを生成するレートコントローラを有し、前記エンコーダは、前記量子化パラメータに基づいて前記フレームをエンコードする、
    請求項1に記載の装置。
  3. 前記ネットワークアナライザは、前記受信したチャネルスループットフィードバックおよび受信した履歴データの前記瞬間ビットレートを予測する、
    請求項1または2に記載の装置。
  4. 前記ネットワークアナライザは、第1のパッケージ送信時間に基づいて前記瞬間ビットレートを予測するようにトレーニングされたディープラーニングニューラルネットワークを有する、
    請求項1乃至3のいずれか1項に記載の装置。
  5. 前記コンテンツアナライザは、前記フレームのシーン変化を検出し、前記フレームに対するフレーム複雑性インデックスを生成するためにリアルタイムで前記フレームを解析するフレームアナライザを有する、
    請求項1乃至のいずれか1項に記載の装置。
  6. 前記コンテンツアナライザは、フレームアナライザを有し、前記フレームアナライザは、入力として複数のハードウェアカウンタを備える完全に接続されたレイヤーを有する、
    請求項1乃至のいずれか1項に記載の装置。
  7. 前記適応決定実行器は、予測された前記瞬間ビットレートおよび前記ラダー情報に基づいて前記フレームレートおよび前記ビデオ解像度を選択し、前記フレームレートおよび前記ビデオ解像度に基づいて前記ターゲットフレームサイズを計算する、
    請求項1乃至のいずれか1項に記載の装置。
  8. 前記適応決定実行器は、前記ラダー情報が空であることを検出したことに応答して、以前にエンコードされたフレームの量子化パラメータおよび前記以前にエンコードされたフレームの生成されたビットに基づいて、前記フレームレートおよび前記ビデオ解像度を選択する、
    請求項1乃至のいずれか1項に記載の装置。
  9. 前記タイトル毎のエンコーディングトレーナは、各トレーニングビデオおよび複数の予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築する、
    請求項1乃至のいずれか1項に記載の装置。
  10. ビデオフレームを適応的にエンコードする方法であって:
    プロセッサによって、ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測することと;
    前記プロセッサによって、受信したフレームに基づいてラダー情報を生成することと;
    前記プロセッサによって、予測された前記瞬間ビットレートおよび前記ラダー情報に基づいて、フレームレート、ビデオ解像度、およびターゲットフレームサイズを決定することであって、前記フレームレートおよび前記ビデオ解像度は前記予測された瞬間ビットレートおよび前記ラダー情報に基づいて決定され、前記ターゲットフレームサイズは、データのサイズであって、前記フレームレートおよび前記ビデオ解像度に基づいて決定される、決定することと;
    前記プロセッサによって、前記フレームレート、前記ビデオ解像度、および前記ターゲットフレームサイズに基づいて前記フレームをエンコードすることと;
    前記プロセッサによって、受信したビデオのセットに対して複数の所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングをタイトル毎に実行することと;を含む、
    方法。
  11. 前記フレームをエンコードすることは、前記フレームレート、前記ビデオ解像度、および前記ターゲットフレームサイズに基づいて量子化パラメータを生成すること、および前記量子化パラメータに基づいて前記フレームをエンコードすることを含む、
    請求項10に記載の方法。
  12. 前記瞬間ビットレートを予測することは、前記受信したチャネルスループットフィードバックおよび受信した履歴データに基づく、
    請求項10または11に記載の方法。
  13. 前記瞬間ビットレートを予測することは、第1のパッケージ送信時間に基づく、
    請求項10乃至12のいずれか1項に記載の方法。
  14. 前記フレーム内のシーン変化を検出すること、および前記フレームに対するフレーム複雑性インデックスを生成することを含む、
    請求項10乃至13のいずれか1項に記載の方法。
  15. 完全に接続されたレイヤーを備えるニューラルネットワークによって、シーン変化および前記フレームに基づくフレーム複雑性を検出することを含む、
    請求項10乃至14のいずれか1項に記載の方法。
  16. 予測された前記瞬間ビットレートおよび前記ラダー情報に基づいて前記フレームレートおよび前記ビデオ解像度を選択することと、前記フレームレートおよび前記ビデオ解像度に基づいて前記ターゲットフレームサイズを計算することとを含む、
    請求項10乃至15のいずれか1項に記載の方法。
  17. 前記ラダー情報が空であることを検出することに応答して、以前にエンコードされたフレームの量子化パラメータおよび前記以前にエンコードされたフレームの生成されたビットに基づいて、前記フレームレートおよび前記ビデオ解像度を選択することを含む、
    請求項10乃至16のいずれか1項に記載の方法。
  18. 複数のトレーニングビデオを受信することと;
    複数のビットレート、解像度、およびフレームレートで前記複数のトレーニングビデオの各々をエンコードすることと;
    前記解像度および前記フレームレートの異なる組み合わせで同じビットレートを使用してエンコードされた前記トレーニングビデオの品質を解析することと;
    各トレーニングビデオおよび複数の予め選択されたビットレートの各々に対するビットレート適応解像度およびフレームレートを含むチェックアップテーブルを構築することと;を含む、
    請求項10乃至17のいずれか1項に記載の方法。
  19. ビデオフレームを適応的にエンコードするためのシステムであって:
    ネットワークから受信したチャネルスループットフィードバックに基づいて瞬間ビットレートを予測する手段と;
    受信したフレームに基づいてラダー情報を生成する手段と;
    予測された前記瞬間ビットレートおよび前記ラダー情報に基づいてフレームレート、ビデオ解像度、およびターゲットフレームサイズを決定する手段であって、前記フレームレートおよび前記ビデオ解像度は前記予測された瞬間ビットレートおよび前記ラダー情報に基づいて決定され、前記ターゲットフレームサイズは、データのサイズであって、前記フレームレートおよび前記ビデオ解像度に基づいて決定される、決定する手段と;
    前記フレームレート、前記ビデオ解像度、および前記ターゲットフレームサイズに基づいて前記フレームをエンコードする手段と;を有し、
    前記ラダー情報を生成する手段は、受信したビデオのセットに対して複数の所定の予め選択されたビットレートで最適なビデオ解像度およびフレームレートを生成するためにオフライントレーニングを実行するタイトル毎のエンコーディングトレーナを有する、
    システム。
  20. 前記フレームレート、前記ビデオ解像度、および前記ターゲットフレームサイズに基づいて量子化パラメータを生成する手段を有し、前記エンコードする手段は、前記量子化パラメータに基づいて前記フレームをエンコードする、
    請求項19に記載のシステム。
  21. 前記瞬間ビットレートを予測する手段は、前記受信したチャネルスループットフィードバックおよび受信した履歴データの瞬間ビットレートを予測する、
    請求項19または20に記載のシステム。
  22. 前記瞬間ビットレートを予測する手段は、第1のパッケージ送信時間に基づいて前記瞬間ビットレートを予測するようにトレーニングされたディープラーニングニューラルネットワークを有する、
    請求項19乃至21のいずれか1項に記載のシステム。
JP2022521285A 2019-11-14 2019-11-14 コンテンツおよびネットワーク解析を使用してビデオフレームを適応的にエンコードする Active JP7490764B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/118301 WO2021092821A1 (en) 2019-11-14 2019-11-14 Adaptively encoding video frames using content and network analysis

Publications (2)

Publication Number Publication Date
JP2023510446A JP2023510446A (ja) 2023-03-14
JP7490764B2 true JP7490764B2 (ja) 2024-05-27

Family

ID=75911587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022521285A Active JP7490764B2 (ja) 2019-11-14 2019-11-14 コンテンツおよびネットワーク解析を使用してビデオフレームを適応的にエンコードする

Country Status (4)

Country Link
US (1) US20220408097A1 (ja)
JP (1) JP7490764B2 (ja)
BR (1) BR112022007211A2 (ja)
WO (1) WO2021092821A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645487B (zh) * 2021-07-14 2022-05-17 上海交通大学 码率自适应分配方法
CN113660488B (zh) * 2021-10-18 2022-02-11 腾讯科技(深圳)有限公司 对多媒体数据进行流控及流控模型训练方法、以及装置
CN116847101B (zh) * 2023-09-01 2024-02-13 易方信息科技股份有限公司 基于Transformer网络的视频比特率阶梯预测方法、系统及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130094564A1 (en) 2011-10-17 2013-04-18 Google Inc. Rate-distortion-complexity optimization of video encoding
CN103974060A (zh) 2013-01-31 2014-08-06 华为技术有限公司 视频质量调整方法和装置
US20180278979A1 (en) 2015-09-30 2018-09-27 Thomson Licensing Optimization of media presentations
US20190104306A1 (en) 2017-09-29 2019-04-04 Whatsapp Inc. Techniques to dynamically select a video encoder for streaming video encoding
US20190208214A1 (en) 2017-12-28 2019-07-04 Comcast Cable Communications, Llc Content-Aware Predictive Bitrate Ladder
US20190335192A1 (en) 2018-04-27 2019-10-31 Neulion, Inc. Systems and Methods for Learning Video Encoders

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955905B (zh) * 2014-05-13 2017-04-05 北京邮电大学 基于快速小波变换和加权图像融合的单幅图像去雾方法
US10404986B2 (en) * 2015-03-30 2019-09-03 Netflix, Inc. Techniques for optimizing bitrates and resolutions during encoding
US10602157B2 (en) * 2015-09-11 2020-03-24 Facebook, Inc. Variable bitrate control for distributed video encoding
KR20180034853A (ko) * 2016-09-28 2018-04-05 에스케이하이닉스 주식회사 합성곱 신경망의 연산 장치 및 방법
US20180184089A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Target bit allocation for video coding
US10742704B2 (en) * 2017-07-05 2020-08-11 Cinova Media Method and apparatus for an adaptive video-aware streaming architecture with cloud-based prediction and elastic rate control
US10721475B2 (en) * 2017-09-01 2020-07-21 Ittiam Systems (P) Ltd. K-nearest neighbor model-based content adaptive encoding parameters determination
US11509703B2 (en) * 2018-09-26 2022-11-22 Vmware, Inc. System and method for widescale adaptive bitrate selection

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130094564A1 (en) 2011-10-17 2013-04-18 Google Inc. Rate-distortion-complexity optimization of video encoding
CN103974060A (zh) 2013-01-31 2014-08-06 华为技术有限公司 视频质量调整方法和装置
US20180278979A1 (en) 2015-09-30 2018-09-27 Thomson Licensing Optimization of media presentations
US20190104306A1 (en) 2017-09-29 2019-04-04 Whatsapp Inc. Techniques to dynamically select a video encoder for streaming video encoding
US20190208214A1 (en) 2017-12-28 2019-07-04 Comcast Cable Communications, Llc Content-Aware Predictive Bitrate Ladder
US20190335192A1 (en) 2018-04-27 2019-10-31 Neulion, Inc. Systems and Methods for Learning Video Encoders

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yuriy A. Reznik, et al.,OPTIMAL MULTI-CODEC ADAPTIVE BITRATE STREAMING,ICMEW,IEEE,2019年07月,pp.348-353

Also Published As

Publication number Publication date
US20220408097A1 (en) 2022-12-22
JP2023510446A (ja) 2023-03-14
WO2021092821A1 (en) 2021-05-20
BR112022007211A2 (pt) 2022-07-05

Similar Documents

Publication Publication Date Title
CN112104879B (zh) 一种视频编码方法、装置、电子设备及存储介质
JP7490764B2 (ja) コンテンツおよびネットワーク解析を使用してビデオフレームを適応的にエンコードする
US10523947B2 (en) Server-based encoding of adjustable frame rate content
JP6226490B2 (ja) 小待ち時間レート制御システムおよび方法
JP5643300B2 (ja) モーションベースの動的解像度マルチビットレートの動画符号化
US9071841B2 (en) Video transcoding with dynamically modifiable spatial resolution
US10242462B2 (en) Rate control bit allocation for video streaming based on an attention area of a gamer
EP3406310A1 (en) Method and apparatuses for handling visual virtual reality content
JP4358215B2 (ja) 動画像符号化装置及びその方法
JP2012516644A (ja) 適応ビデオ・ストリーミングのための可変ビット・レートおよび動的解像度を用いた多ビット・レート・ビデオ・エンコーディング
JP7265623B2 (ja) コンテンツ適応量子化強度及びビットレートモデリング
JP2016526336A (ja) 適応ビットレートストリーミングのための適応量子化を用いて複数のビデオストリームをエンコードするシステムおよび方法
US12022096B2 (en) Human visual system adaptive video coding
US10116943B2 (en) Adaptive video compression for latency control
WO2021129007A1 (zh) 视频码率的确定方法、装置、计算机设备及存储介质
JP2022516517A (ja) メディアタイトルのバッファ制約バージョンを生成する際の符号化演算の最適化
JP2023526268A (ja) 5gネットワーク上でスプリットレンダリングを実施および評価すること
WO2015095166A2 (en) Producing an output need parameter for an encoder
US11818382B2 (en) Temporal prediction shifting for scalable video coding
CN112272299A (zh) 一种视频编码的方法、装置、设备和存储介质
KR102711111B1 (ko) 전송 제어 비디오 코딩
KR102525584B1 (ko) 공간 계층 레이트 할당
Premkumar et al. Quality-Aware Dynamic Resolution Adaptation Framework for Adaptive Video Streaming
US11825088B2 (en) Adaptively encoding video frames based on complexity
JP2013168941A (ja) 画像データを表示するためのビデオシステム及び方法及びコンピュータプログラムならびに符号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240311

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240515

R150 Certificate of patent or registration of utility model

Ref document number: 7490764

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150