JP2023524000A - 品質正規化ビデオコード変換のための動的パラメータ選択 - Google Patents

品質正規化ビデオコード変換のための動的パラメータ選択 Download PDF

Info

Publication number
JP2023524000A
JP2023524000A JP2022565893A JP2022565893A JP2023524000A JP 2023524000 A JP2023524000 A JP 2023524000A JP 2022565893 A JP2022565893 A JP 2022565893A JP 2022565893 A JP2022565893 A JP 2022565893A JP 2023524000 A JP2023524000 A JP 2023524000A
Authority
JP
Japan
Prior art keywords
video
bitrate
transcoding
quality
quality score
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022565893A
Other languages
English (en)
Inventor
イリン・ワン
バリニードゥ・アドスミリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2023524000A publication Critical patent/JP2023524000A/ja
Pending legal-status Critical Current

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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • 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
    • H04N21/23439Processing 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 for generating different versions
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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
    • H04N21/234363Processing 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 by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4666Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms using neural networks, e.g. processing the feedback provided by the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

ビデオホスティングプラットフォームにアップロードされたビデオストリームは、学習モデルを使用して動的に選択された品質正規化コード変換パラメータを使用してコード変換される。ビデオストリームのビデオフレームは、一部または全部の可能性のあるコード変換解像度に対するビットレートおよび品質スコアペアを決定するために、学習モデルを使用して処理される。各解像度に対して決定されたビットレートおよび品質スコアペアのリストは、ビデオストリームを各解像度にコード変換するためのコード変換パラメータのセットを決定するために処理される。所与のリストのビットレートおよび品質スコアペアは、1つまたは複数の所定のしきい値を使用して処理され得、所定のしきい値は、場合によっては、ビデオホスティングプラットフォームのビデオの視聴時間に従って重み付けられた解像度の分布を指し得る。したがって、ビデオストリームは、各解像度に対して選択されたコード変換パラメータのセットを使用して様々な解像度にコード変換される。

Description

デジタルビデオストリームは、フレームまたは静止画像のシーケンスを使用してビデオを表し得る。デジタルビデオは、たとえば、ビデオ会議、高精細ビデオエンターテインメント、ビデオ広告、またはユーザ作成ビデオの共有を含む、様々なアプリケーションのために使用され得る。デジタルビデオストリームは、大量のデータを含有し、ビデオデータの処理、送信または記憶のためにコンピューティングデバイスのかなりの量の計算または通信リソースを消費し得る。ビデオストリーム内のデータの量を低減するために、符号化または復号技法を含む様々な手法が提案されてきた。
本開示の実装形態によるユーザ作成ビデオコンテンツのビデオストリームをコード変換するための方法は、ユーザ作成ビデオコンテンツに関連する情報を使用して複数の解像度においてユーザ作成ビデオコンテンツのセットに対するコード変換品質を予測するように訓練された学習モデルを、たとえばクエリすることによって、複数の解像度においてビデオストリームのユーザ作成ビデオコンテンツをコード変換するためのビットレートおよび品質スコアを決定するステップを含む。複数の解像度の各々においてビデオストリームをコード変換するために使用するためのコード変換パラメータのセットは、ビットレートおよび品質スコアに従って選択され、コード変換パラメータのセットの各々は、複数の解像度のうちの1つの異なる解像度に対応する。ビデオストリームは、選択されたコード変換パラメータのセットを使用して複数のコード変換ビデオストリームにコード変換される。複数のコード変換ビデオストリームの各々は、コード変換のために使用されたコード変換パラメータのセットに対応する異なる解像度においてコード変換される。次いで、複数のコード変換ビデオストリームは、さらなる処理または記憶のために出力される。複数のコード変換ビデオストリームのうちの1つのコード変換ビデオストリームは、コード変換ビデオストリームに対応する解像度の選択に応答して、クライアントデバイスにおいて表示するように構成される。
方法のいくつかの実装形態では、複数の解像度においてビデオストリームのユーザ作成ビデオコンテンツをコード変換するためのビットレートおよび品質スコアを決定するステップは、複数の解像度に対するビデオストリームの予測される配信品質レベルを学習モデルの出力として受信するステップを含む。所与の予測される配信品質レベルは、ビデオストリームが、複数の解像度のうちの対応する1つに対する規定のビットレートにおいてコード変換されるときのビデオストリームの品質を表す。次いで、ビットレートおよび品質スコアペアのセット(またはリスト)が、予測される配信品質レベルを使用して決定され、ビットレートおよび品質スコアペアの各セットは、複数の解像度のうちの1つの解像度に対応する。
方法のいくつかの実装形態では、学習モデルは、1つまたは複数の品質制御メトリックを使用してビデオストリームから抽出された1つまたは複数のビデオフレームを処理することによって予測される配信品質レベルを計算し、ユーザ作成ビデオコンテンツに関連する情報は、1つまたは複数のビデオフレームに対応する。
方法のいくつかの実装形態では、所与のビットレートおよび品質スコアペアのセットにおける各ビットレートは、所与のビットレートおよび品質スコアペアのセットに対応する解像度に対して許容される最大ビットレート以下である。
方法のいくつかの実装形態では、複数の解像度の各々においてビデオストリームをコード変換するために使用するためのコード変換パラメータのセットを選択するステップは、ビットレートおよび品質スコアペアのセットに対応する解像度に関連する加重値を決定するために非線形最適化関数を使用してビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを、ビットレートおよび品質スコアペアのセットの各々に対して処理するステップと、加重値のうちの最高の1つをもたらす、ビットレートおよび品質スコアペアのセットのうちの1つのビットレートおよび品質スコアペアを、コード変換パラメータのセットのうちの1つとして選択するステップとを含む。
方法のいくつかの実装形態では、非線形最適化関数は、1つまたは複数の所定のしきい値を使用してビットレートおよび品質スコアペアの各セットのうちのビットレートおよび品質スコアペアを処理する。
方法のいくつかの実装形態では、1つまたは複数の所定のしきい値は、総ビットレートの上界、複数の解像度の一部もしくは全部において許容される最大ビットレート、または画質差測定しきい値のうちの1つまたは複数に関する。
方法のいくつかの実装形態では、1つまたは複数の所定のしきい値が画質差測定しきい値に関するとき、非線形最適化関数を使用してビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップは、ビットレートおよび品質スコアペアのうちの、画質差測定しきい値を満たさないものを間引くステップを含む。したがって、加重値は、ビットレートおよび品質スコアペアのうちの残りのものに対して決定される。
方法のいくつかの実装形態では、1つまたは複数の所定のしきい値は、ビットレートおよび品質スコアペアのセットに対応する解像度に対して規定された重みに関し、非線形最適化関数を使用してビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップは、重みを使用してビットレートおよび品質スコアペアのうちの品質スコアを重み付けることによってビットレートおよび品質スコアペアのセットのうちの1つのビットレートおよび品質スコアペアに対する加重値を決定するステップを含む。
方法のいくつかの実装形態では、複数のコード変換ビデオストリームは、ビデオホスティングプラットフォームに出力され、複数の解像度の各々に対して規定された重みが、ビデオホスティングプラットフォームにアップロードされたビデオにわたって複数の解像度に対して視聴時間分布に基づいて決定される。
方法のいくつかの実装形態では、複数のコード変換ビデオストリームが、ビデオホスティングプラットフォームに出力される。生ビデオフレームが、ビデオホスティングプラットフォームのユーザ作成ビデオコンテンツのセットから抽出され、学習モデルが、生ビデオフレームのビデオコンテンツを使用して訓練される。
本開示のさらなる実装形態は、複数の解像度においてユーザ作成ビデオコンテンツに対するコード変換品質を予測するように学習モデルを訓練する方法を提供する。最初に、1つまたは複数の生フレームが入力ビデオから抽出され、各抽出された生フレームは、入力ビデオの解像度までの解像度を有し、複数のコード変換構成に対する、1つまたは複数のおよび随意にすべてのビデオフォーマットにコード変換される。訓練方法は、学習モデルへの入力としてラベル付きコード変換バージョンを提供するステップと、ビットレートおよび品質スコアに対する予測値を取得するステップとを含む。学習モデルのパラメータは、ビットレートおよび品質スコアに対する予測値と、対応するラベル付きビットレートおよび品質スコアとの比較に基づいて調整され得る。
方法のいくつかの実装形態では、生ビデオフレームが、生ビデオフレームのビデオコンテンツを使用して学習モデルを訓練する前に前処理される。
方法のいくつかの実装形態では、生ビデオフレームを前処理するステップは、生ビデオフレームのピクセルデータをRGB色成分からYUV色成分に変換するステップを含み、学習モデルは、YUV色成分のうちのY色成分に対応するピクセルデータのみを使用して訓練される。
方法のいくつかの実装形態では、生ビデオフレームを前処理するステップは、生ビデオフレームのうちの1つまたは複数が非標準解像度内にあるかどうかを決定するステップを含む。生ビデオフレームのうちの1つまたは複数が非標準解像度内にあると決定することに応答して、生ビデオフレームのうちの1つまたは複数が、ゼロ値係数を有する生ビデオフレームのうちの1つまたは複数をパディングすることによって標準解像度に拡大縮小される。
方法のいくつかの実装形態では、生ビデオフレームのビデオコンテンツを使用して学習モデルを訓練するステップは、ビデオフレームの空間的または時間的特徴を予測するために生成された特徴マップを使用して生ビデオフレームのうちの1つのビデオフレームを処理するステップを含む。
方法のいくつかの実装形態では、特徴マップは、ガボールフィルタを使用して生成された空間的特徴の2次元マップである。
方法のいくつかの実装形態では、特徴マップは、ビデオフレームの基準ビデオフレームを使用して生成された時間的特徴の2次元最適フローである。
方法のいくつかの実装形態では、ユーザ作成ビデオコンテンツのセットは、複数のビデオコンテンツカテゴリーに対応し、学習モデルは、複数のビデオコンテンツカテゴリーのために学習された構成に従って生ビデオフレームの配信品質レベルを予測するように訓練される。
本開示の実装形態による装置は、メモリおよびプロセッサを含み、メモリは、前述の実装形態のいずれかの方法を実行するためにプロセッサによって実行可能な命令を含む。
本開示の実装形態によるコード変換器は、前述の実装形態のいずれかの方法を実行するように構成される。
本開示のさらなる実装形態は、プロセッサによって実施されるときに、前述の実装形態のいずれかの方法をプロセッサに実行させる命令を記憶するコンピュータ可読メモリを含む。
本開示のこれらおよび他の態様は、以下の実装形態の詳細な記述、添付の特許請求の範囲、および添付の図面の中で開示される。
本明細書における説明は、以下に示す添付の図面を参照しており、いくつかの図面を通して、同様の参照番号は同様の部分を指す。
ビデオ符号化および復号システムの一例の概略図である。 送信局または受信局を実装することができるコンピューティングデバイスの一例のブロック図である。 符号化および復号されるビデオストリームの一例の図である。 エンコーダの一例のブロック図である。 デコーダの一例のブロック図である。 検索されたパラメータを使用するコード変換器の一例のブロック図である。 動的パラメータ予測および選択のための学習モデルを使用するビデオコード変換器の一例のブロック図である。 ユーザ作成ビデオコンテンツに対するコード変換品質を予測するように訓練された学習モデルを使用してビデオストリームをコード変換するための技法の一例のフローチャートの図である。 ユーザ作成ビデオコンテンツに対するコード変換品質を予測するように学習モデルを訓練するための技法の一例のフローチャートの図である。
ビデオ圧縮方式は、それぞれの画像またはフレームを、ブロックなどのより小さい部分に分割することと、それぞれのブロックに対して出力の中に含まれる情報を制限するための技法を使用して圧縮ビットストリームを生成することとを含み得る。圧縮ビットストリームは、制限された情報からソース画像を再現するために復号され得る。典型的なビデオ圧縮技法は、たとえばビデオホスティングプラットフォームおよびサービングプラットフォームに対する送信コストを低減するために、ビデオストリームのビットレートを低減することを含む。圧縮は、たとえばビデオコンテンツの態様を1つのフォーマットから別のフォーマットに変換するために、ビデオコンテンツのコード変換の一部として、または場合によっては、コード変換に関連して実行され得る。たとえば、ユーザ作成ビデオコンテンツがビデオホスティングプラットフォームにアップロードされると、ユーザ作成コンテンツを表すビデオストリームが、ビデオホスティングプラットフォーム上で後で閲覧するために圧縮されてコード変換され得る。
ビデオホスティングプラットフォームは、従来、ビデオコンテンツをプラットフォームユーザにサービスする前に、アップロードされたビデオコンテンツを複数のターゲットの解像度にコード変換する。たとえば、1080pの解像度において受信されたビデオが、360p、480p、720p、および場合によっては他の解像度フォーマットにコード変換され得る。そのようなビデオホスティングプラットフォームのユーザが、ホストされるビデオを閲覧することを要求するとき、プラットフォームは、ネットワーク条件およびユーザデバイス能力などの入力基準に基づいてユーザにサービスするためのターゲットフォーマットを選択する。場合によっては、プラットフォームは、それらの入力基準に基づいてビデオの最高の品質をユーザに配信することが予期されるターゲットフォーマットを選択し得る。たとえば、ユーザのネットワーク条件およびユーザデバイス能力がビデオの1080p解像度フォーマットをサポートすることができる場合、ビデオホスティングプラットフォームは、そのフォーマットバージョンをサービスし得る。これは、より高い解像度がより高い再生品質に関連付けられるからであり、さらには、その解像度において再生をサポートするために必要な比較的高いビットレート要件が、ユーザのネットワーク条件およびユーザデバイス能力によって達成可能であるからである。
しかしながら、ネットワーク条件およびユーザデバイス能力以外の情報が、ビデオホスティングプラットフォームのユーザに配信されたビデオの配信品質を最大化するために重要であり得る。特に、圧縮ビットレートが、ビデオ品質に対する圧縮の効果の重要なインジケータであり、ビットレートの影響は、ビデオの実際のコンテンツに大きく依存する。したがって、同じビットレートにおいて圧縮された異なるコンテンツを有するビデオは、潜在的にまったく異なるビデオ品質を有することになる。典型的なビデオコード変換手法は、ともに、固定パラメータを用いてビデオコンテンツ自体の潜在的相違を考慮することなく互いに無関係にコード変換されたターゲットを処理する。そのため、最高の解像度においてコード変換されたビデオの品質は、依然として、顕著な圧縮アーティファクトから悪影響を受けるか、またはさらには、使用されたコード変換パラメータが不適切に選択される場合などは、コード変換によって一層悪化する場合がある。
1つの解決策は、すべての可能性のあるビットレートおよび品質を発見するためにコード変換空間全体にわたって徹底調査を実施することによって所与の解像度においてビデオの品質を調整することである。そのような解決策は、最初に、すべての解像度にわたって各解像度に対して複数のターゲットを生成することと、次いで、各ターゲットに対して異なる品質メトリック(たとえば、ピーク信号対雑音比(PSNR)の値)を計算することを伴う。その結果、決定は、どのターゲットが、予測される品質レベルに対する許容範囲内に収まるかについて行われ得る。たとえば、480pのターゲットビデオは約35のPSNR値を有することになり、720pのターゲットビデオは40より大きいPSNR値を有することになる。次いで、このプロセスは、コード変換のために利用可能な各解像度において繰り返される。それが完了すると、ビデオに対する最適なターゲットコード変換が選択され得る。しかしながら、幅広いコード変換解像度および品質メトリックを仮定すると、この解決策は、多大な時間を消費し、計算コストが高い。場合によっては、全コード変換パイプライン内のすべての可能性のあるターゲットを生成するための法外な計算費用を仮定すると、それは、実際には実行不可能に成り得る。
本開示の実装形態は、異なる解像度においてユーザ作成ビデオコンテンツのセットに対するコード変換品質を予測するように訓練された学習モデルを使用して品質正規化コード変換パラメータを動的に選択することによって、配信されるビデオの品質を最大化することによってこれらのような問題に対処する。ビデオホスティングプラットフォームがコード変換のためのビデオストリームを受信すると、ユーザ作成ビデオコンテンツに関連する情報(たとえば、ビデオストリームのビデオフレーム)が、一部または全部の可能性のあるコード変換解像度に対するビットレートおよび品質スコアペアを決定するために学習モデルを使用して処理される。ビットレートおよび品質スコアペアは、ビデオストリームが所与の解像度に対して規定されたビットレートにおいてコード変換されるときの、ビデオストリームの予測品質レベルを表す。次いで、各解像度に対して決定されたビットレートおよび品質スコアペアのセット(またはリスト)は、ビデオストリームをその解像度にコード変換するために使用するためのコード変換パラメータのセットを、各解像度に対して決定するために処理される。特に、所与のセットの様々なビットレートおよび品質スコアペアは、1つまたは複数の所定のしきい値を使用して処理され得、所定のしきい値は、たとえば、ビデオホスティングプラットフォームのビデオの視聴時間に従って重み付けられた解像度の分布を指し得る。次いで、ビデオストリームは、各解像度に対して選択されたコード変換パラメータのセットを使用して様々な解像度にコード変換される。
本明細書で説明する技法の利点は、複数の解像度においてユーザ作成ビデオコンテンツのセットに対するコード変換品質を予測するように学習モデルを、データセットに基づいて、たとえば訓練によって作成する能力と、品質正規化ビデオコード変換のための動的パラメータ選択を最適化するために、たとえば推測のために、作成されたモデルを使用する能力とを含む。特に、本明細書で説明する技法は、ビットレート要件およびビデオ品質の推定を出力するように構成された学習モデルが生成されることを可能にし、ビットレート要件およびビデオ品質は、たとえば、そのコンテンツの配信可能な品質を最大化するように、または場合によっては、ビデオホスティングプラットフォームにアップロードされ得るようなビデオストリームをコード変換するためのプロセスに関連して、ビデオコンテンツを最適にコード変換するために使用するパラメータを選択するために使用され得る。
本明細書で説明する技法は、従来のコード変換パイプラインにおいて実施される手法を凌駕して、かなりの計算コストおよびレイテンシの節減を達成する。特に、上記で説明したように、従来のコード変換パイプラインにおけるユーザ作成ビデオコンテンツに対するコード変換の全範囲に対する計算コストは、可能性のあるコード変換構成の数に可能性のある出力解像度の数を乗じた積に、所与の入力ビデオストリームを復号および符号化するためのコストの合計を乗じた積として計算される。しかしながら、本明細書で説明する技法は、最適なコード変換パラメータを選択するように訓練された学習モデルを使用して予測されるビットレートおよび品質スコアを代わりに使用し、所与の入力ビデオストリームを一度復号することが必要なだけである。すなわち、様々なターゲットのコード変換解像度に対するターゲットのビットレートおよび品質スコアペアは、学習モデルに対する1つだけのクエリによって取得され、学習モデルは、所与の入力ビデオストリームを復号するためのコストと同じ大きさの総コストを搬送し、そのコストは、いずれにしても所与の入力ビデオストリームを符号化するためのコストよりずっと小さい。
本明細書で使用される学習モデルは、機械学習モデルであり得る。たとえば、機械学習モデルは、ニューラルネットワーク(たとえば、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、または他のニューラルネットワーク)、決定木、サポートベクターマシン、ベイジアンネットワーク、遺伝的アルゴリズム、ニューラルネットワークから分離した深層学習システム、または他の機械学習モデルのうちの1つまたは複数であり得るか、またはそれらを含み得る。本明細書で使用されるユーザ作成ビデオコンテンツのセットは、ビデオホスティングプラットフォームにおいてホストされるビデオの全体または一部であるか、またはそれを指し、そのビデオはユーザ作成ビデオコンテンツを含む。たとえば、ユーザ作成ビデオコンテンツのセットは、ビデオホスティングプラットフォームのユーザによってビデオホスティングプラットフォームにアップロードされたビデオを指し得る。
品質正規化ビデオコード変換に対する動的パラメータ選択のための技法のさらなる詳細について、それらが実装され得るシステムを最初に参照しながら本明細書で説明する。図1は、ビデオ符号化および復号システム100の一例の概略図である。送信局102は、たとえば、図2で説明するようなハードウェアの内部構成を有するコンピュータであり得る。しかしながら、送信局102の他の実装形態が可能である。たとえば、送信局102の処理が、複数のデバイス間で分配され得る。
ネットワーク104は、ビデオストリームの符号化および復号のために送信局102と受信局106とを接続することができる。具体的には、ビデオストリームが送信局102内で符号化され得、符号化されたビデオストリームが受信局106内で復号され得る。ネットワーク104は、たとえば、インターネットであり得る。ネットワーク104はまた、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、バーチャルプライベートネットワーク(VPN)、携帯電話ネットワーク、またはビデオストリームを送信局102から、この例では受信局106に転送するための任意の他の手段であり得る。
受信局106は、一例では、図2で説明するようなハードウェアの内部構成を有するコンピュータであり得る。しかしながら、受信局106の他の好適な実装形態が可能である。たとえば、受信局106の処理が、複数のデバイス間で分配され得る。
ビデオ符号化および復号システム100の他の実装形態が可能である。たとえば、一実装形態は、ネットワーク104を省略することができる。別の実装形態では、ビデオストリームが符号化され得、次いで、後で受信局106またはメモリを有する任意の他のデバイスに送信するために記憶され得る。一実装形態では、受信局106は、符号化されたビデオストリームを(たとえば、ネットワーク104、コンピュータバス、および/またはいくつかの通信経路を介して)受信し、ビデオストリームを後で復号するために記憶する。例示的な一実装形態では、リアルタイムトランスポートプロトコル(RTP)が、ネットワーク104上で符号化されたビデオを送信するために使用される。別の実装形態では、RTP以外のトランスポートプロトコル(たとえば、ハイパーテキストトランスファープロトコルベース(HTTPベース)のビデオストリーミングプロトコル)が使用され得る。
たとえば、ビデオ会議システムにおいて使用されるとき、送信局102および/または受信局106は、以下で説明するように、ビデオストリームの符号化と復号の両方を行う能力を含み得る。たとえば、受信局106は、符号化されたビデオビットストリームをビデオ会議サーバ(たとえば、送信局102)から受信して復号し、閲覧し、さらに符号化して、彼または彼女自身のビデオビットストリームを他の参加者による復号および閲覧のためにビデオ会議サーバに送信するビデオ会議参加者であり得る。
いくつかの実装形態では、ビデオ符号化および復号システム100は、代わりに、ビデオデータ以外のデータを符号化および復号するために使用されてもよい。たとえば、ビデオ符号化および復号システム100は、画像データを処理するために使用され得る。画像データは、画像からのデータのブロックを含み得る。そのような実装形態では、送信局102は、画像データを符号化するために使用され、受信局106は、画像データを復号するために使用され得る。
代替的に、受信局106は、送信局102から符号化されたまたは事前に符号化された画像データを受信した後など、後で使用するために符号化された画像データを記憶するコンピューティングデバイスを表すことができる。さらなる代替形態として、送信局102は、復号された画像データを表示のために受信局106に送信する前などに、画像データを復号するコンピューティングデバイスを表すことができる。
図2は、送信局または受信局を実装することができるコンピューティングデバイス200の一例のブロック図である。たとえば、コンピューティングデバイス200は、図1の送信局102と受信局106の一方または両方を実装することができる。コンピューティングデバイス200は、複数のコンピューティングデバイスを含むコンピューティングシステムの形であり得るか、または1つのコンピューティングデバイス、たとえば、モバイルフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの形であり得る。
コンピューティングデバイス200内のプロセッサ202は、従来の中央処理装置であり得る。代替的に、プロセッサ202は、別のタイプのデバイス、または、現在存在するかまたは今後開発される、情報を操作または処理することができる複数のデバイスであり得る。たとえば、開示される実装形態は図示のように1つのプロセッサ(たとえば、プロセッサ202)を用いて実施され得るが、速度および効率における利点は、2つ以上のプロセッサを使用することによって達成され得る。
コンピューティングデバイス200内のメモリ204は、一実装形態では、リードオンリーメモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであり得る。しかしながら、他の好適なタイプの記憶デバイスが、メモリ204として使用され得る。メモリ204は、バス212を使用してプロセッサ202によってアクセスされるコードおよびデータ206を含むことができる。メモリ204は、オペレーティングシステム208とアプリケーションプログラム210とをさらに含むことができ、アプリケーションプログラム210は、本明細書で説明する技法をプロセッサ202が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム210は、1~N個のアプリケーションを含むことができ、アプリケーションは、本明細書で説明する技法を実行する学習モデル訓練アプリケーションおよび/またはビデオストリームコード変換アプリケーションをさらに含む。
コンピューティングデバイス200は、2次記憶装置214も含むことができ、2次記憶装置214は、たとえば、モバイルコンピューティングデバイスとともに使用されるメモリカードであり得る。ビデオ通信セッションはかなりの量の情報を含有し得るので、それらは、全体的にまたは部分的に2次記憶装置214内に記憶され、処理が必要なときにメモリ204内にロードされ得る。
コンピューティングデバイス200は、ディスプレイ218など、1つまたは複数の出力デバイスを含むこともできる。一例では、ディスプレイ218は、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感知素子と組み合わせるタッチ感知ディスプレイであり得る。ディスプレイ218は、バス212を介してプロセッサ202に結合され得る。ユーザがコンピューティングデバイス200をプログラムすること、または場合によっては、使用することを可能にする他の出力デバイスが、ディスプレイ218に加えて、またはその代替として提供され得る。出力デバイスがディスプレイであるかまたはそれを含むとき、ディスプレイは様々な方法で、たとえば液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、または有機LED(OLED)ディスプレイなどの発光ダイオード(LED)ディスプレイによって、実装され得る。
コンピューティングデバイス200はまた、たとえばカメラなどの画像感知デバイス220、またはコンピューティングデバイス200を操作しているユーザの画像などの画像を感知することができる、現在存在するかまたは今後開発される任意の他の画像感知デバイス220を含むことができるか、またはそれと通信することができる。画像感知デバイス220は、それが、コンピューティングデバイス200を操作しているユーザに向けられるように配置され得る。一例では、画像感知デバイス220の位置および光軸は、視野が、ディスプレイ218に直接隣接しており、ディスプレイ218がそこから視認可能なエリアを含むように構成され得る。
コンピューティングデバイス200はまた、たとえばマイクロフォンなどの音響感知デバイス222、またはコンピューティングデバイス200付近の音響を感知することができる、現在存在するかまたは今後開発される任意の他の音響感知デバイスを含むことができるか、またはそれと通信することができる。音響感知デバイス222は、それが、コンピューティングデバイス200を操作するユーザに向けられるように配置され、ユーザがコンピューティングデバイス200を操作している間にユーザが発した音響、たとえば会話または他の発声を受信するように構成され得る。
図2は、プロセッサ202とコンピューティングデバイス200のメモリ204とが1つのユニット内に一体化されているように示すが、他の構成が使用されてもよい。プロセッサ202の動作は、直接、またはローカルエリアネットワークもしくは他のネットワークを介して、結合され得る複数の機械(個々の機械は1つまたは複数のプロセッサを有することができる)にわたって分配され得る。メモリ204は、ネットワークベースメモリまたはコンピューティングデバイス200の動作を実行する複数の機械内のメモリなど、複数の機械にわたって分配され得る。
ここでは1つのバスとして示すが、コンピューティングデバイス200のバス212は、複数のバスで構成され得る。さらに、2次記憶装置214は、コンピューティングデバイス200の他の構成要素に直接結合され得るか、またはネットワークを介してアクセスされ得、1つのメモリカード、または複数のメモリカードなどの複数のユニットなど、一体化ユニットを含むことができる。したがって、コンピューティングデバイス200は、広範な構成において実装され得る。
図3は、符号化および復号されるビデオストリーム300の一例の図である。ビデオストリーム300は、ビデオシーケンス302を含む。次のレベルにおいて、ビデオシーケンス302は、いくつかの隣接フレーム304を含む。3つのフレームが隣接フレーム304として示されるが、ビデオシーケンス302は、任意の数の隣接フレーム304を含むことができる。したがって、隣接フレーム304は、個々のフレーム、たとえばフレーム306にさらに細分化され得る。
次のレベルにおいて、フレーム306は、一連の平面またはセグメント308に分割され得る。セグメント308は、たとえば、並列処理を可能にするフレームのサブセットであり得る。セグメント308は、ビデオデータを別々の色に分離することができるフレームのサブセットでもあり得る。たとえば、カラービデオデータのフレーム306は、1つの輝度平面と2つのクロミナンス平面とを含むことができる。セグメント308は、異なる解像度においてサンプリングされ得る。
フレーム306がセグメント308に分割されるかどうかにかかわらず、フレーム306は、ブロック310にさらに細分化されてもよく、それは、フレーム306内にたとえば16×16ピクセルに対応するデータを含有することができる。ブロック310はまた、ピクセルデータの1つまたは複数のセグメント308からのデータを含むように配置され得る。ブロック310はまた、4×4ピクセル、8×8ピクセル、16×8ピクセル、8×16ピクセル、16×16ピクセル、またはそれ以上など、任意の他の好適なサイズであり得る。特に断りのない限り、ブロックおよびマクロブロックという用語は、本明細書では交換可能に使用される。
図4は、エンコーダ400の一例のブロック図で400ある。エンコーダ400は、上記で説明したように、たとえばメモリ204などのメモリ内に記憶されたコンピュータソフトウェアプログラムを提供することなどによって、送信局102内に実装され得る。コンピュータソフトウェアプログラムは、プロセッサ202などのプロセッサによって実行されるとき、図4に示すようにしてビデオデータを送信局102に符号化させる機械命令を含むことができる。エンコーダ400は、たとえば、送信局102内に含まれる専用ハードウェアとしても実装され得る。いくつかの実装形態では、エンコーダ400はハードウェアエンコーダである。
エンコーダ400は、ビデオストリーム300を入力として使用して符号化もしくは圧縮されたビットストリーム420を作成するために順方向経路(実線の接続線で示す)において様々な機能を実行するために、以下の段階、すなわち、イントラ/インター予測段階402、変換段階404、量子化段階406、およびエントロピー符号化段階408を有する。エンコーダ400は、今後のブロックを符号化するためにフレームを復元するための復元経路(点線の接続線で示す)も含み得る。図4では、エンコーダ400は、復元経路において様々な機能を実行するために以下の段階、すなわち、逆量子化段階410、逆変換段階412、復元段階414、およびループフィルタリング段階416を有する。エンコーダ400の他の構造的変化形態が、ビデオストリーム300を符号化するために使用され得る。
場合によっては、エンコーダ400によって実行される機能は、ビデオストリーム300のフィルタリングの後に発生する場合がある。すなわち、ビデオストリーム300は、エンコーダ400がビデオストリーム300を受信する前に、本開示の1つまたは複数の実装形態に従って前処理を受けてもよい。代替的に、エンコーダ400は、イントラ/インター予測段階402においてビデオストリーム300を処理する前など、図4に関して説明した機能の実行に進む前に、ビデオストリーム300に対してそのような前処理をそれ自体で実行し得る。
ビデオストリーム300が、前処理が実行された後に符号化するために提示されるとき、フレーム306など、それぞれの隣接フレーム304が、ブロック単位で処理され得る。イントラ/インター予測段階402において、それぞれのブロックが、フレーム内予測(イントラ予測とも呼ばれる)またはフレーム間予測(インター予測とも呼ばれる)を使用して符号化され得る。いずれの場合でも、予測ブロックが形成され得る。イントラ予測の場合、予測ブロックは、以前に符号化されて復元された現在のフレーム内のサンプルから形成され得る。インター予測の場合、予測ブロックは、1つまたは複数の以前に構築された基準フレーム内のサンプルから形成され得る。
次に、予測ブロックは、残余ブロック(残余とも呼ばれる)を作成するためにイントラ/インター予測段階402において現在のブロックから差し引かれ得る。変換段階404は、たとえば、ブロックベースの変換を使用して周波数領域において残余を変換係数に変換する。量子化段階406は、変換係数を個別の量子値(quantum value)に変換し、量子値は、量子化器値または量子化レベルを使用する量子化変換係数と呼ばれる。たとえば、変換係数は、量子化器値によって分割されて切り捨てられ得る。
次いで、量子化変換係数は、エントロピー符号化段階408によってエントロピー符号化される。次いで、エントロピー符号化係数は、ブロック(たとえば、使用される予測のタイプ、変換タイプ、運動ベクトル、量子化器値などを示すために使用されるようなシンタックス要素を含み得る)を復号するために使用される他の情報とともに、圧縮ビットストリーム420に出力される。圧縮ビットストリーム420は、可変長コーディングまたは算術コーディングなどの様々な技法を使用してフォーマットされ得る。圧縮ビットストリーム420は、符号化ビデオストリームまたは符号化ビデオビットストリームと呼ばれることもあり、それらの用語は、本明細書では交換可能に使用される。
復元経路(点線の接続線で示す)は、エンコーダ400およびデコーダ500(図5に関して以下で説明する)が、同じ基準フレームを使用して圧縮ビットストリーム420を復号することを確実にするために使用され得る。復元経路は、逆量子化段階410において量子化変換係数を逆量子化することと、派生残余ブロック(派生残余とも呼ばれる)を作成するために逆変換段階412において逆量子化変換係数を逆変換することとを含む復号プロセス(図5に関して以下で説明する)の間に発生する機能と同様の機能を実行する。
復元段階414において、イントラ/インター予測段階402において予測された予測ブロックが、復元ブロックを生成するために派生残余に追加され得る。ループフィルタリング段階416が、ブロッキングアーティファクトなどのひずみを低減するために、インループフィルタまたは他のフィルタを復元ブロックに適用することができる。ループフィルタリング段階416において適用され得るフィルタの例は、限定はしないが、デブロッキングフィルタ、方向強化フィルタ(directional enhancement filter)、およびループ復元フィルタを含む。
エンコーダ400の他の変化形態が、圧縮ビットストリーム420を符号化するために使用され得る。いくつかの実装形態では、非変換ベースのエンコーダが、いくつかのブロックまたはフレームに対する変換段階404なしに直接、残余信号を量子化することができる。いくつかの実装形態では、エンコーダは、共通の段階の中で組み合わされた量子化段階406と逆量子化段階410とを有することができる。
図5は、デコーダ500の一例のブロック図である。デコーダ500は、たとえば、メモリ204内に記憶されたコンピュータソフトウェアプログラムを提供することによって、受信局106内に実装され得る。コンピュータソフトウェアプログラムは、プロセッサ202などのプロセッサによって実行されるとき、図5に示すようにしてビデオデータを受信局106に復号させる機械命令を含むことができる。デコーダ500はまた、たとえば、送信局102または受信局106内に含まれるハードウェア内に実装され得る。いくつかの実装形態では、デコーダ500はハードウェアデコーダである。
デコーダ500は、上記で説明したエンコーダ400の復元経路と同様に、一例では、圧縮ビットストリーム420から出力ビデオストリーム516を作成するための様々な機能を実行するために、以下の段階、すなわち、エントロピー復号段階502、逆量子化段階504、逆変換段階506、イントラ/インター予測段階508、復元段階510、ループフィルタリング段階512、およびポストフィルタ段階514を含む。デコーダ500の他の構造的変化形態が、圧縮ビットストリーム420を復号するために使用され得る。
圧縮ビットストリーム420が復号のために提示されるとき、圧縮ビットストリーム420内のデータ要素が、量子化変換係数のセットを作成するためにエントロピー復号段階502によって復号され得る。逆量子化段階504は、量子化変換係数を(たとえば、量子化変換係数に量子化器値を乗じることによって)逆量子化し、逆変換段階506は、エンコーダ400内で逆変換段階412によって生成されたものと同一であり得る派生残余を作成するために逆量子化変換係数を逆変換する。圧縮ビットストリーム420から復号されたヘッダ情報を使用して、デコーダ500は、エンコーダ400内で(たとえば、イントラ/インター予測段階402において)生成されたものと同じ予測ブロックを生成するために、イントラ/インター予測段階508を使用することができる。
復元段階510において、予測ブロックが、復元ブロックを生成するために派生残余に追加され得る。ループフィルタリング段階512が、ブロッキングアーティファクトを低減するために復元ブロックに適用され得る。ループフィルタリング段階512において適用され得るフィルタの例は、限定はしないが、デブロッキングフィルタ、方向強化フィルタ、およびループ復元フィルタを含む。他のフィルタリングが、復元ブロックに適用され得る。この例では、ポストフィルタ段階514が、ブロッキングひずみを低減するために復元ブロックに適用され、その結果が、出力ビデオストリーム516として出力される。出力ビデオストリーム516は、復号されたビデオストリームと呼ばれることもあり、その用語は、本明細書では交換可能に使用される。
デコーダ500の他の変化形態が、圧縮ビットストリーム420を復号するために使用され得る。いくつかの実装形態では、デコーダ500は、ポストフィルタ段階514なしに出力ビデオストリーム516を作成することができるか、または場合によっては、ポストフィルタ段階514を省略することができる。
図6は、検索されたパラメータを使用するコード変換器600の一例のブロック図である。コード変換器600は、たとえばメモリ204などのメモリ内に記憶されたコンピュータソフトウェアプログラムを提供することなどによって、送信局102内に実装され得る。コンピュータソフトウェアプログラムは、プロセッサ202などのプロセッサによって実行されるとき、図6に示すようにしてビデオデータを送信局102にコード変換させる機械命令を含むことができる。コード変換器600は、たとえば、送信局102内に含まれる専用ハードウェアとしても実装され得る。いくつかの実装形態では、コード変換器600は、図4に示すエンコーダ400などのエンコーダに関連して実行される機能であり得るか、または機能を表すことができる。いくつかの実装形態では、エンコーダ400およびコード変換器600は、単一のコンピュータソフトウェアプログラムに組み合わされ得る。
コード変換器600は、ビデオストリーム602を受信し、ビデオストリーム602をコード変換してコード変換コンテンツを作成するコード変換パイプラインを表す。ビデオストリーム602は、図4および図5に示す圧縮ビットストリーム420などの圧縮ビットストリームであり得る。たとえば、ビデオストリーム602は、コード変換器600において符号化された形で受信され得る。代替的に、ビデオストリーム602は、図3に示す入力ビデオストリーム300などの入力ビデオストリームであり得る。たとえば、ビデオストリーム602は、コード変換器600において実行されるコード変換の一部として、またはコード変換と並列に符号化され得る。
ビデオストリーム602は、ビデオホスティングプラットフォームにアップロードされ、そのビデオホスティングプラットフォームのユーザに配信するためにコード変換を待っているビデオであり得るか、または場合によっては、ビデオを表し得る。コード変換段階604は、同じ符号化フォーマットでおよび/または異なる符号化フォーマットに異なるターゲットビットレートおよび品質レベルにおいてコード変換ビデオストリームを作成するためなど、ビデオストリーム602をコード変換するために、検索されたパラメータを使用する。図示の例では、コード変換段階604は、ビデオストリーム602に基づいて、第1の解像度とフォーマットとのペアにおけるコード変換ビデオストリーム1 606、ビデオストリーム602に基づいて第2の解像度とフォーマットとのペアにおけるコード変換ビデオストリーム(図示せず)からビデオストリーム602に基づいてN番目の解像度とフォーマットとのペアにおけるコード変換ビデオストリームN 608までを作成する。
コード変換段階604は、たとえば異なる品質制御メトリックツール、異なる解像度、異なる符号化フォーマット、およびビデオストリーム602のコンテンツに基づいて、ビデオストリーム602をコード変換するためのパラメータを決定するためにコード変換空間にわたって検索を行う。コード変換ビデオストリーム1 606~コード変換ビデオストリームN 608は、コード変換空間にわたる検索によって決定された異なるパラメータを使用してビデオストリーム602に対する可能性のあるコード変換バージョンを表す。コード変換ビデオストリーム1 606~コード変換ビデオストリームN 608の各々は、コード変換器600を使用するビデオホスティングプラットフォームのユーザのクライアントデバイスなどのコンピューティングデバイスにおいて表示するように復号および出力され得るビデオストリームであり得るか、または場合によっては、それを表し得る。
図7は、動的パラメータ予測および選択のための学習モデルを使用するコード変換器700の一例のブロック図である。示すように、コード変換器700は、図6に示すコード変換器600の変形形態であり、そこにおいて、コード変換器600が、パラメータ予測段階702およびパラメータ選択段階704を含めるように修正されており、図6に示すコード変換段階604が、ビデオストリーム602をコード変換するためにパラメータ選択段階704の出力を使用するコード変換段階706と置換されるか、またはコード変換段階706になるように修正される。しかしながら、いくつかの実装形態では、コード変換器700は、代わりに、別のコード変換器であってもよい。
示すように、コード変換器700は、ビデオストリーム602を入力として受信し、動的に選択されたコード変換パラメータを使用してビデオストリーム602をコード変換して、コード変換ビデオストリーム1 708~コード変換ビデオストリームM 710などのコード変換されたコンテンツを作成する。Mの値は、一般に、ビデオストリーム602をコード変換するために利用可能な異なる解像度の数を指し、それにより、ビデオストリーム602は、コード変換するために利用可能な解像度が存在するのと同じ多さのコード変換ビデオストリームにコード変換される。コード変換ビデオストリームM 710に関して表現されるMの値は、コード変換ビデオストリームN 608に関して表現されるNの値以下であり得る。すなわち、場合によっては、検索されたパラメータを使用してコード変換段階604によって出力されるよりも少ないコード変換ビデオストリームが、選択されたパラメータを使用してコード変換段階706によって出力され得る。
パラメータ予測段階702は、ビデオストリーム602を受信し、ユーザ作成ビデオコンテンツのコード変換品質を予測するように訓練された学習モデル712を使用して、ビデオストリーム602をコード変換するためにさらに処理され得るビットレートおよび品質スコアペアを決定する。特に、パラメータ予測段階702は、学習モデル712を使用して、ビデオストリーム602のいくつかのビデオフレームを異なる解像度においてコード変換するように計算されたビットレートおよび品質スコアを決定する。
学習モデル712は、たとえばパラメータ予測段階702がそれらのビデオフレームを使用して学習モデルをクエリすることによって、ビデオストリーム602のビデオフレームを入力として受信し、異なる解像度に対するビデオストリーム602の予測される配信品質レベルを出力として計算する。予測される配信品質レベルは、ビデオストリーム602が様々な解像度に対する様々なビットレートにおいてコード変換されるとき、特定の品質制御メトリックに従ってビデオストリーム602に対して予測される品質スコアを示す。学習モデル712は、ビデオストリーム602の全部ではないが1つまたは複数のビデオフレームを入力として使用するように構成される。しかしながら、いくつかの実装形態では、学習モデル712は、ビデオストリーム602の各ビデオフレームを入力として使用することができる。
学習モデル712はビデオフレームを処理し、学習モデル712は、予測される配信品質レベルを計算するために、1つまたは複数の品質制御メトリックを使用して1つまたは複数の可能性のあるコード変換解像度(たとえば、360p、720p、1080p、など)において入力として受信する。品質制御メトリックは、所与の解像度に対する規定のビットレートにおいてそのビデオデータをコード変換した結果得られるビデオデータの品質を測定するために使用され得るメトリックである。学習モデル712によって使用され得る品質制御メトリックの例は、限定はしないが、PSNR、PSNR平均オピニオン評価(PSNR MOS)、およびビデオマルチメソッドアセスメントヒュージョン(VMAF:video multimethod assessment fusion)を含む。
ビデオストリーム602がそれにコード変換され得る、各可能性のある解像度に対して、ビットレートおよび品質スコアペアのセット(またはリスト)が、学習モデル712によって出力として計算された予測される配信品質レベルを使用して決定される。すなわち、ビットレートおよび品質スコアペアの第1のセットは、可能性のある解像度のうちの第1のもの(360pなど)に対して決定され、ビットレートおよび品質スコアペアの第2のセットは、可能性のある解像度のうちの第2のもの(480pなど)に対して決定され、以下同様。ビットレートおよび品質スコアペアの所与のセットのうちの各ビットレートおよび品質スコアペアは、ビデオストリーム602に対して予測される品質スコアと、その品質スコアを達成するために使用されるビットレートとを示す。ビデオストリーム602がコード変換された後、ビデオストリーム602に対する多くの異なる可能性のある品質結果が存在するという点において、ビットレートおよび品質スコアペアのセットは、多くのビットレートおよび品質スコアペアを含み得る。ビットレートおよび品質スコアペアの各セットは、品質スコアによって、または別の手段によって分類され得る。
いくつかの実装形態では、学習モデル712は、ビットレートおよび品質スコアペアのセットを出力し得る。たとえば、パラメータ予測段階702が、ビットレートおよび品質スコアペアのセットを決定するために学習モデル712の出力(たとえば、予測される配信品質レベル)に対していくつかの処理を実行するのではなく、学習モデル712は、代わりに、それらの予測される配信品質レベルを使用してビットレートおよび品質スコアペアのそれらのセットを決定するように訓練され得る。学習モデル712を訓練するための技法の実装形態および例について、図9に関して以下で説明する。
パラメータ選択段階704は、パラメータ予測段階702の出力を使用して、ビデオストリーム602をコード変換するためのコード変換器700の構成を、たとえばパラメータ予測段階702の出力に基づいてコード変換パラメータを選択することによって最適化する。コード変換パラメータは、様々なカテゴリーのユーザ作成ビデオコンテンツを用いて訓練された学習モデル712を使用して選択されるので、パラメータ選択段階704において選択されたコード変換パラメータは、ビデオストリーム602をコード変換するためにグローバルに最適化される(すなわち、すべてのコンテンツカテゴリーにわたって最適化される)。
パラメータ選択段階704は、その解像度に対して好ましいコード変換パラメータを、解像度のうちの1つまたは複数に対して選択するために、1つまたは複数のコード変換制約に対して、パラメータ予測段階702の各解像度出力に対するビットレートおよび品質スコアペアのセットを処理する。コード変換制約は、所定のしきい値および/またはデバイスパラメータを含むか、または場合によっては、それらを指す場合がある。たとえば、デバイスパラメータは、一部もしくは全部の解像度の重み、または一部もしくは全部の有効なコード変換バージョンの重みのうちの1つまたは複数に関連するパラメータであり得る。別の例では、所定のしきい値は、総ビットレートの上界、一部もしくは全部の解像度において許容される最大ビットレート、または画質スコアに対する画質差測定しきい値のうちの1つまたは複数に関するしきい値であり得る。画質差測定しきい値は、所与の解像度においてビデオの配信品質における顕著な変化を引き起こすために必要なビットレートにおける変化の測度を指す。画質差測定しきい値は、VMAFなど、ビデオストリーム602を処理するために使用される品質制御メトリックの単位において示される。たとえばパラメータ予測段階702において、ビデオストリーム602に対して決定される品質スコアは、画質差測定しきい値によって正規化され得る。
一実装形態では、各可能性のある解像度に対して、パラメータ選択段階704は、パラメータ最大化関数に対してその解像度に対するビットレートおよび品質スコアペアのセットを処理することによって、ビデオストリーム602をその解像度にコード変換するようにコード変換パラメータのセットを選択する。パラメータ最大化関数は、ビットレートおよび品質スコアペアのセットの各々を個別に処理する。すなわち、各可能性のある解像度に対して、パラメータ最大化関数は、対応するビットレートおよび品質スコアペアのセットおよび入力を取り込み、そのスコアペアのセットのうちの最適なビットレートおよび品質スコアペアを出力として決定する。
一例では、パラメータ最大化関数は、所与のペアの品質スコアに従って対応する解像度を重み付けることによって所与のビットレートおよび品質スコアペアのセットの各ペアを処理し得、重み付けられた解像度のビットレートが総ビットレートの上界を超えることができないというビットレート制約が、ビデオストリーム602のすべてのコード変換バージョンに対して設定される。たとえば逐次二次計画法を使用する非線形最適化解決策は、加重値をパラメータ最大化関数の出力として計算するために使用され得る。したがって、パラメータ最大化関数は、非線形最適化関数と呼ばれることがある。
加重値出力が、対応する解像度に対してスコアペアのセット内のビットレートおよび品質スコアペアの各々に対して決定された後、パラメータ最大化関数からの最高の加重値出力に対応するビットレートおよび品質スコアペアが、ビットレートおよび品質スコアペアのセットに対応する解像度においてビデオストリーム602をコード変換するために使用するためのコード変換パラメータのセットとして選択される。したがって、パラメータ選択段階704において選択されたパラメータは、可能性のある解像度のうちの1つの解像度に対して、対応するビットレートおよび品質スコアペアのセットに対して識別される最適なビットレートおよび品質スコアペアを含むか、または場合によっては、それを指す。そのため、限定はしないが、単一のビットレートおよび品質スコアペアのみを含むコード変換パラメータが、可能性のあるコード変換解像度の各々に対してパラメータ選択段階704から出力される。
コード変換段階706は、コード変換ビデオストリーム1 708~コード変換ビデオストリームM 710など、出力されるコード変換ビデオストリームを作成するために、各解像度に対してパラメータ選択段階704において選択されたコード変換パラメータを使用してビデオストリーム602をコード変換する。このようにして、ビデオストリーム602は、たとえばいくつかの異なる解像度の各々においてビデオストリーム602の配信品質を最大化するために、選択されたコード変換パラメータを使用して複数の異なる解像度に最適にコード変換され得る。
いくつかの実装形態では、各解像度に対するビットレートおよび品質スコアペアのセットが、パラメータ予測段階702におけるのではなく、パラメータ選択段階704において決定され得る。たとえば、パラメータ予測段階702は、学習モデル712によって計算されたビットレートおよび品質スコアのベクトルをパラメータ選択段階704に出力し得る。そのような場合は、パラメータ選択段階704は、パラメータ予測段階702から受信されたベクトルを使用して各解像度に対するビットレートおよび品質スコアペアのセットを決定する。
いくつかの実装形態では、学習モデル712は、コード変換器700によって使用される複数の学習モデルのうちの1つであり得る。いくつかのそのような実装形態では、コード変換器700によって使用される各異なる学習モデルは、ユーザ作成ビデオコンテンツの異なるカテゴリーに対するコード変換品質を予測するように訓練され得る。たとえば、第1の学習モデルはゲームストリーミングのビデオコンテンツに基づいて訓練されてよく、第2の学習モデルはニュースショーのビデオコンテンツに基づいて訓練されてよく、第3の学習モデルは歌劇音楽のビデオコンテンツに基づいて訓練されてよく、以下同様。特定のビデオに対する最良のコード変換パラメータは、ビデオのコンテンツカテゴリーに依存し得ることが発見されている。それゆえ、複数の学習モデルが提供されてよく、各学習モデルは、1つの特定のコンテンツカテゴリーまたは2つ以上の特定のコンテンツカテゴリーのユーザ作成ビデオコンテンツに対するコード変換品質を予測するように訓練される。ビデオストリームがコード変換のために受信されると、それは、最初にカテゴリーに分けられ、ビデオストリームに対して決定されたカテゴリーに応じて複数の学習モデルのうちの1つに割り当てられ得る。
他のそのような実装形態では、コード変換器700によって使用される各異なる学習モデルは、ビデオストリーム602をコード変換するために利用可能な解像度のうちの1つに対するコード変換品質を予測するように訓練され得る。たとえば、第1の学習モデルは480pにおいてビデオストリームのコード変換品質を予測するように訓練されてよく、第2の学習モデルは1080pにおいてビデオストリームのコード変換品質を予測するように訓練されてよく、以下同様。そのような実装形態のいずれにおいても、それらの複数の学習モデルの各々の訓練は、学習モデル712に関して説明したように実行される。
品質正規化ビデオコード変換に対する動的パラメータ選択のための技法のさらなる詳細について、次に説明する。図8は、ユーザ作成ビデオコンテンツに対するコード変換品質を予測するように訓練された学習モデルを使用してビデオストリームをコード変換するための技法800の一例のフローチャートの図である。図9は、ユーザ作成ビデオコンテンツに対するコード変換品質を予測するように学習モデルを訓練するための技法900の一例のフローチャートの図である。
技法800および/または技法900は、たとえば、送信局102または受信局106などのコンピューティングデバイスによって実行され得るソフトウェアプログラムとして実装され得る。たとえば、ソフトウェアプログラムは、メモリ204または2次記憶装置214などのメモリに記憶され得、プロセッサ202などのプロセッサによって実行されるきに技法800および/または技法900をコンピューティングデバイスに実行させ得る機械可読命令を含むことができる。技法800および/または技法900は、専用ハードウェアまたはファームウェアを使用して実装され得る。たとえば、ハードウェア構成要素が、技法800および/または技法900を実行するように構成される。上記で説明したように、いくつかのコンピューティングデバイスは、複数のメモリまたはプロセッサを有してよく、技法800および/または技法900において説明した動作は、複数のプロセッサ、メモリ、または両方を使用して分配され得る。
説明を簡潔にするために、技法800および900は、いずれも、一連のステップまたは動作として本明細書において図示されて説明される。しかしながら、本開示によるステップまたは動作は、様々な順序においておよび/または同時に発生することができる。加えて、本明細書において提示も説明もされない他のステップまたは動作が使用されてもよい。さらに、示されるステップまたは動作のすべてが、必ずしも開示する主題による技法を実装するために必要であり得るとは限らない。
最初に図8を参照すると、ユーザ作成ビデオコンテンツに対するコード変換品質を予測するように訓練された学習モデルを使用してビデオストリームをコード変換するための技法800が示される。802において、複数の解像度においてビデオストリームのユーザ作成ビデオコンテンツをコード変換するためのビットレートおよび品質スコアが、たとえばユーザ作成ビデオコンテンツに関連する情報を使用して複数の解像度においてユーザ作成ビデオコンテンツのセットに対するコード変換品質を予測するように訓練された学習モデルをクエリすることによって決定される。ユーザ作成ビデオコンテンツに関連する情報は、たとえば、ビデオストリームの1つまたは複数のビデオフレームに対応し得る。ビデオストリームは、特定されない品質レベルにおけるビデオフレームを含む。たとえば、ビデオストリームは、図7に示すビデオストリーム602であり得る。ビデオフレームはすべて、共通の特定されない品質レベルを共有し得るが、いくつかの実装形態では、ビデオフレームのうちのいくつかは、ビデオフレームのうちの他のものとは異なる特定されない品質レベルを有する場合がある。
複数の解像度においてビデオストリームのユーザ作成ビデオコンテンツをコード変換するためにビットレートおよび品質スコアを決定するステップは、複数の解像度に対するビデオストリームの予測される配信品質レベルを、学習モデルの出力として受信するステップはと、予測される配信品質レベルを使用してビットレートおよび品質スコアペアのセットを決定するステップとを含む。所与の予測される配信品質レベルは、ビデオストリームが、複数の解像度のうちの対応する1つに対して規定のビットレートにおいてコード変換されるときのビデオストリームの品質を表す。ビットレートおよび品質スコアペアの各セットは、複数の解像度のうちの1つの解像度に対応する。たとえば、学習モデルは、コード変換されるべきビデオストリームのビデオフレームを入力として取る、図7に示す学習モデル712であり得る。
学習モデルは、ビデオストリームから抽出された1つまたは複数のビデオフレームを1つまたは複数の品質制御メトリックを使用して処理することによって予測される配信品質レベルを計算する。品質制御メトリックは、所与の解像度に対して異なるビットレートにおいて1つまたは複数のビデオフレームに対する品質スコアを測定するために適用され得るメトリックであるか、またはそれを指す。使用される品質制御メトリックは、たとえば、PSNR、PSNR MOS、VMAF、または別の品質制御メトリックであり得る。品質制御メトリックを使用してビデオストリームのビデオフレームを処理するステップは、異なるビットレートにおいて所与のターゲットのコード変換解像度に対してビデオフレームに対する品質スコアを決定するステップを含む。
804において、複数の解像度のうちの1つまたは複数において、およびおそらくは複数の解像度の各々に対して、ビデオストリームをコード変換するために使用するコード変換パラメータのセットは、ビットレートおよび品質スコアに従って選択され、各選択されたコード変換パラメータのセットは、複数の解像度のうちの1つ異なる解像度に対応する。ビットレートおよび品質スコアペアの各セットに対して、およびしたがって、それに対してビデオストリームをコード変換する複数の解像度のうちの各解像度に対して、コード変換パラメータのセットを選択するステップとは、ビットレートおよび品質スコアペアのセットに対応する解像度に関連する加重値を決定するために、非線形最適化関数を使用してその解像度に対するビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップを含み得る。次いで、加重値のうちの最高のものをもたらす1つの解像度に対するビットレートおよび品質スコアペアのセットのうちの1つのビットレートおよび品質スコアペアが、その解像度に対するコード変換パラメータのセットとして選択される。
非線形最適化関数は、1つまたは複数の所定のしきい値を使用してビットレートおよび品質スコアペアの各セットのうちのビットレートおよび品質スコアペアを処理する。たとえば、1つまたは複数の所定のしきい値は、総ビットレートの上界、複数の解像度の一部もしくは全部において許容される最大ビットレート、または画質差測定しきい値のうちの1つまたは複数に関する場合がある。1つまたは複数の所定のしきい値が画質差測定しきい値に関するとき、非線形最適化関数を使用してビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップは、ビットレートおよび品質スコアペアのうちの、画質差測定しきい値を満たさないものを間引く(取り除く)ステップを含む。たとえば、画質差測定しきい値を満たさない各ビットレートおよび品質スコアペアは、対応するビットレートおよび品質スコアペアのセットから除去され得る。そのような場合は、加重値は、そのセットの中のビットレートおよび品質スコアペアのうちの残りのものに対して決定される。
画質差測定しきい値は、品質における顕著な変化がビットレートの増加に起因するかどうかを指す。ビットレートおよび品質スコアペアのセット内の位置iにおける所与のビットレートおよび品質スコアペアのビットレート値B[i]が、セット内の前のペアのビットレート値B[i-1]より大きいが、そのペアの品質スコア値Q[i]およびその前のペアの品質スコア値Q[i-1]における差が、画質差測定しきい値より小さいとき、上記所与のビットレートおよび品質スコアペアは画質差測定しきい値を満たさない。画質差測定しきい値の特定の値が、ビットレートおよび品質スコアを決定するために使用される品質制御メトリックに対して事前に規定され得る。たとえば、VMAFが使用される場合、画質差測定しきい値は、6であり得る。
別の例では、1つまたは複数の所定のしきい値は、ビットレートおよび品質スコアペアのセットに対応する解像度に対して規定された重みに関連し得る。そのような場合、非線形最適化関数を使用してビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップは、重みを使用してビットレートおよび品質スコアペアの品質スコアを重み付けることによってビットレートおよび品質スコアペアのセットのうちの1つのビットレートおよび品質スコアペアに対する加重値を決定するステップを含む。複数の解像度の各々に対して規定された重みが、コード変換のためにビデオストリームがアップロードされるビデオホスティングプラットフォームにアップロードされたビデオにわたって複数の解像度に対する視聴時間分布に基づいて決定される。それに応じて、ビデオホスティングプラットフォームによってより頻繁にサービスされる解像度が、ビデオホスティングプラットフォームによってあまり頻繁にはサービスされない解像度より重く重み付けられることになる。
したがって、所与の解像度に対して決定されたコード変換パラメータのセットは、その所与の解像度において対応する品質スコアを達成するためにビデオストリームをコード変換するためのビットレートを含む。しかしながら、場合によっては、コード変換パラメータの各セットは、ビデオストリームをコード変換するために使用する他のパラメータを含み得る。たとえば、所与のコード変換パラメータのセットは、CRF、最小ビットレート、または最大ビットレートのうちの1つまたは複数をさらに含み得る。コード変換パラメータのセットが、ビデオホスティングプラットフォームの広範なユーザ作成ビデオコンテンツに基づいて訓練された学習モデルを使用して決定されるという点において、コード変換パラメータのセットは、ビデオホスティングプラットフォームのビデオの収集にわたって品質正規化される。
806において、ビデオストリームは、その解像度に対して選択されたコード変換パラメータのセットを、各解像度に対して使用して複数のコード変換ビデオストリームにコード変換され、複数のコード変換ビデオストリームの各々は、コード変換のために使用されたコード変換パラメータのセットに対応する異なる解像度においてコード変換される。選択されたコード変換パラメータのセットを使用してビデオストリームをコード変換するステップは、選択されたコード変換パラメータのセット内で規定されるそれぞれのCRFに従ってビデオストリームに対する初期のCRFを調整するステップを含み得る。
いくつかの実装形態では、ビデオストリームをコード変換するステップは、たとえばコード変換がエンコーダによってまたはビデオストリームに対する符号化動作と並列に実行される場合に、選択されたコード変換パラメータのセットに従ってビデオストリームを圧縮するステップを含み得る。いくつかの実装形態では、ビデオストリームをコード変換するステップは、ビデオストリームを圧縮することによるのではなく、選択されたコード変換パラメータのセットに従ってビデオストリームを処理するステップを含み得る。
808において、複数のコード変換ビデオストリームは、さらなる処理または記憶のためのものであり、それにより、複数のコード変換ビデオストリームのうちの1つのコード変換ビデオストリームは、コード変換ビデオストリームに対応する解像度の選択に応答してクライアントデバイスにおいて表示するように構成される。たとえば、クライアントデバイスのユーザは、ビデオストリームがビデオホスティングプラットフォームにおいてコード変換された後にビデオストリームのビデオコンテンツをその解像度において閲覧するための、特定の解像度を選択し得る。ビデオホスティングプラットフォームは、そのユーザ選択に応答してクライアントデバイスに対して選択された解像度に対応するコード変換ビデオストリームをサービスする。
次に図9を参照すると、ユーザ作成ビデオコンテンツに対するコード変換品質を予測するように学習モデルを訓練するための技法900が示される。902において、生ビデオフレームが、ビデオホスティングプラットフォームのユーザ作成ビデオコンテンツのセットを含む訓練データセットから抽出される。たとえば、訓練データセットは、複数の解像度(たとえば、360p、480p、720p、1080p、2160p、および/または別の解像度)におけるユーザ作成ビデオコンテンツの何百または何千ものビデオを含み得る。訓練データセットのビデオは、同じ長さ(たとえば、20秒)であり得る。場合によっては、ビデオは、たとえばそれらの長さを短縮するために、それらが訓練データセットに含められる前に前処理され得る。代替的に、訓練データセットのビデオは、異なる長さであり得る。
訓練データセット内に含まれるユーザ作成ビデオコンテンツのセットの各々は、ビデオホスティングプラットフォームにおいてホストされる1つまたは複数のビデオを含むか、または場合によっては、それらを指す。ユーザ作成ビデオコンテンツのセットは、ビデオコンテンツに対して不可知のビットレート情報に基づくのではなく、ビデオコンテンツに基づいて学習モデルの訓練を可能にするために、複数のコンテンツカテゴリーのビデオを含む。ユーザ作成ビデオコンテンツのセットから抽出された生ビデオフレームは、前処理がそれらに対して実行されることなく、それらのユーザ作成ビデオコンテンツのセットから直接取られたビデオフレームである。生ビデオフレームは、所与のユーザ作成ビデオコンテンツのセットの規定された時間範囲内に(たとえば、互いの3秒以内に)、所与のユーザ作成ビデオコンテンツのセットから抽出され得る。代替的に、生ビデオフレームが抽出される、所与のユーザ作成ビデオコンテンツのセットの時間に関して制限がなくてもよい。
904において、訓練データセットから抽出された生ビデオフレームは、たとえば学習モデルを訓練するために使用される生ビデオフレームを準備するために前処理される。生ビデオフレームを前処理するステップは、生ビデオフレームのピクセルデータを変換するステップまたは生ビデオフレームを拡大縮小するステップの一方または両方を含むことができる。たとえば、生ビデオフレームのピクセルデータを変換するステップは、生ビデオフレームのピクセルデータをRGB色成分からYUV色成分に変換するステップを含み得る。たとえば、生ビデオフレームがRGB色成分フォーマットにおいて受信される場合、RGB色成分情報が、YUV色成分情報に変換され得る。しかしながら、生ビデオフレームがYUV色成分フォーマットにおいて受信される場合、そのような変換は実行されない。ピクセルデータがYUV色成分に変換される場合、学習モデルは、YUV色成分のうちのY色成分に対応するピクセルデータのみを使用して訓練され得る。伝統的に、CNN(畳み込みニューラルネットワーク)などの学習モデルは、RGB色成分情報を入力として使用する。しかしながら、RGB色成分情報をYUV色成分情報に変換してY色成分情報のみを使用することで、必要な計算量を低減しながら全RGB色成分情報を使用するのと同じ精度が達成されることが発見されている。したがって、UV色成分情報は、学習モデルを訓練する目的に対して廃棄されてもよく、または場合によっては、無視されてもよい。
生ビデオフレームを拡大縮小するステップは、生ビデオフレームのうちの1つまたは複数が非標準解像度(たとえば、1922×1084)にあるかどうかを決定するステップを含み得る。たとえば、生ビデオフレームの一部または全部の解像度が、規定された標準解像度のセットと比較されてよく、標準解像度は、限定はしないが、360p、480p、720p、1080p、および2160pを含み得る。生ビデオフレームは、その生ビデオフレームの解像度が規定された標準解像度のセットに含まれない場合、非標準解像度内にあると決定される。生ビデオフレームのうちの1つまたは複数が非標準解像度内にあると決定することに応答して、それらの生ビデオフレームが、ゼロ値係数を有するそれらの生ビデオフレームをパディングすることによって標準解像度に拡大縮小される。それらの生ビデオフレームがその解像度に拡大縮小される標準解像度は、それらの生ビデオフレームがその解像度において訓練データセットから抽出される非標準解像度に対するアスペクト比と同じアスペクト比を有する、非標準解像度に最も近い標準解像度である。
いくつかの実装形態では、生ビデオフレームの前処理が省略されてもよい。たとえば、場合によっては、生ビデオフレームは、前処理なしに以下で説明するようにさらに処理されてもよい。
906において、学習モデルを訓練するために使用する訓練側の情報が、前処理された生ビデオフレームを使用して生成される。訓練側の情報は、生ビデオフレームの空間的および/または時間的特徴を予測するために生成された1つまたは複数の特徴マップを含み得るか、またはそれを指し得る。各特徴マップは、生ビデオフレームのうちの1つに対して生成され得る。特徴マップが生ビデオフレームの空間的特徴を予測するために生成される場合、特徴マップは、たとえばガボールフィルタを使用して生成された空間的特徴の2次元マップである。特徴マップが生ビデオフレームの時間的特徴を予測するために生成される場合、特徴マップは、たとえば、ビデオフレームの基準ビデオフレームを使用して生成された時間的特徴の2次元最適フローである。空間的および時間的特徴を追加することで、訓練された学習モデルによる予測の精度が改善され得る。
前処理が省略されるいくつかの実装形態では、訓練側の情報が、それらのより早い前処理なしに、生ビデオフレームを使用して生成され得る。いくつかの実装形態では、訓練側の情報の生成が省略され得る。
908において、学習モデルが、ビデオコンテンツのコード変換品質を予測するように訓練される。学習モデルは、訓練データセットから抽出された前処理された生ビデオフレームを使用して、かつそれらの前処理された生ビデオフレームの空間的および/または時間的特徴を使用して生成された訓練側の情報を使用して、訓練される。その情報を使用して学習モデルを訓練するステップは、ビデオデータの配信品質を統計的に予測するように学習モデルを訓練するステップを含むが、それは、所与の解像度に対する所与のビットレートにおけるコード変換が、使用される品質制御メトリックおよびビデオデータの特定のビデオコンテンツの影響を受けることに起因する。
ビデオデータの配信品質は、各利用可能な品質制御メトリックを使用して、各可能性のあるCRFにおいて、各可能性のある解像度において、訓練データセットのユーザ作成ビデオコンテンツの各セットの前処理された生ビデオフレームをコード変換することによって予測される。このようにして前処理された生ビデオフレームをコード変換するステップは、品質制御メトリック、CRF、および解像度の所与の組合せの各々に対して関連する品質スコアを達成するために使用されるビットレートを決定するように学習モデルを訓練する。
学習モデルは、生ビデオフレームをすべての可能性のある解像度にコード変換することと、複数の可能性のあるコード変換構成を使用してフォーマットを符号化することとによって訓練される。たとえば、720p解像度において受信された訓練データセットのビデオコンテンツは、144p解像度バージョン、240p解像度バージョン、360p解像度バージョン、480p解像度バージョン、および720p解像度バージョンにコード変換され得る。別の例では、H.264コーデックを使用して符号化された訓練データセットのビデオコンテンツは、1~51の範囲内にある一部または全部のコンスタントレートファクタ(CRF:constant rate factor)においてコード変換され得る。それに応じて、学習モデル712は、その特定のビデオコンテンツの255のコード変換バージョンを作成するために255の異なるコード変換構成を使用し得る。
特定のビデオコンテンツが学習モデルを訓練するために考慮に入れられるので、学習モデルは、そのビデオコンテンツのカテゴリーに従ってユーザ作成ビデオコンテンツのコード変換品質を予測するように訓練される。したがって、学習モデルは、複数のビデオコンテンツカテゴリーに対して学習された構成に従って訓練データセットの生ビデオフレームの配信品質レベルを予測するように訓練される。
学習モデルの特定の構造に応じて、学習モデルを訓練するステップは、1つまたは複数の深層学習もしくは畳み込みニューラルネットワークレイヤにおいて統計的重みを作成するステップ、それらの統計的重みに適用されるフィルタを調整するステップ、1つまたは複数の新しいレイヤを規定するステップ、たとえば入力処理および出力処理に対する他のハイパーパラメータを規定するステップ、などのうちの1つまたは複数を含み得る。学習モデルの特定の構造は、本開示の特定の実装形態に基づいて異なる場合があるという点において、学習モデルの訓練が実行される特定の方法が変わる場合がある。
学習モデルが訓練された後、学習モデルは、コード変換のためにビデオホスティングプラットフォームにアップロードされたユーザ作成ビデオコンテンツの推測処理のために配備される。いくつかの実装形態では、学習モデルは、新しい学習モデルであり得、その場合、学習モデルを訓練するステップは、学習モデルを作成するステップを含む。いくつかの実装形態では、学習モデルは、既存の学習モデルであり得、その場合、学習モデルを訓練するステップは、学習モデルを再訓練するステップを含む。前処理が省略されるいくつかの実装形態では、学習モデルは、それらのより早い前処理なしに、生ビデオフレームを使用して訓練される。訓練側の情報の生成が省略されるいくつかの実装形態では、学習モデルは、そのような訓練側の情報を使用することなしに訓練され得る。
上記で説明した符号化、復号、およびコード変換の態様は、符号化、復号、およびコード変換の技法のいくつかの例を示す。しかしながら、符号化、復号、およびコード変換は、それらの用語が特許請求の範囲の中で使用されるとき、圧縮、解凍、変換、コード変換、置換(transrating)、サイズ変更、またはデータの別の処理もしくは変更を意味することができることが理解され得る。
「例」という語は、例、事例、または例示として働くことを意味するように、本明細書で使用される。「例」として本明細書で説明する任意の態様または設計は、必ずしも他の態様または設計よりも好ましいかまたは好都合であるものとして解釈されることになるとは限らない。むしろ、「例」という語の使用は、概念を具体的に提示することを意図する。本出願で使用する「または(or)」という用語は、排他的な「または」ではなく包括的な「または」を意味するものとする。すなわち、別段に規定されていない限り、または文脈によって別段に明確に示されない限り、「XはAまたはBを含む」という記述は、それらの自然包括的並べ替えのうちのいずれかを意味するものとする。すなわち、XがAを含み、XがBを含み、またはXがAとBの両方を含む場合、上記の事例のうちのいずれの下でも「XはAまたはBを含む」が満たされる。加えて、本出願および添付の特許請求の範囲で使用する「a」および「an」という冠詞は、概して、別段に規定されていない限り、または単数形を対象とすることが文脈によって明確に示されない限り、「1つまたは複数の」を意味するものと解釈されるべきである。その上、本開示を通して「実装形態」という用語または「一実装形態」という用語の使用は、そのように説明されないならば同じ実装形態を意味することを意図していない。
送信局102および/または受信局106の実装形態(および、それらの局において記憶される、および/またはエンコーダ400、デコーダ500、コード変換器600およびコード変換器700、もしくは本明細書で開示する別のエンコーダ、デコーダもしくはコード変換器を含めてそれらの局によって実行される、アルゴリズム、方法、命令、など)が、ハードウェア、ソフトウェア、またはそれらの任意の組合せにおいて実現され得る。ハードウェアは、たとえば、コンピュータ、知的財産コア(intellectual property core)、特定用途向け集積回路、プログラマブルロジックアレー、光プロセッサ、プログラマブル論理制御装置、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタルシグナルプロセッサ、または任意の他の好適な回路を含むことができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを、単独または組合せのいずれかで包含するものと理解されたい。「信号」および「データ」という用語は、交換可能に使用される。さらに、送信局102および受信局106の部分は、必ずしも同じ方法で実装されなければならないとは限らない。
さらに、一態様では、たとえば、送信局102または受信局106は、実行されるとき、本明細書で説明するそれぞれの方法、アルゴリズムおよび/または命令のいずれかを遂行するコンピュータプログラムを有する汎用コンピュータまたは汎用プロセッサを使用して実装形態され得る。追加または代替として、たとえば、本明細書で説明する方法、アルゴリズムまたは命令のいずれかを遂行するための他のハードウェアを含有することができる専用コンピュータ/プロセッサが利用され得る。
送信局102および受信局106は、たとえば、ビデオ会議システム内のコンピュータ上に実装され得る。代替的に、送信局102は、サーバ上に実装され得、受信局106は、ハンドヘルド通信デバイスなど、サーバから離れたデバイス上に実装され得る。この例では、送信局102は、コンテンツを符号化されたビデオ信号内に符号化し、符号化されたビデオ信号を通信デバイスに送信することができる。同様に、通信デバイスは、次に符号化されたビデオ信号を復号することができる。代替的に、通信デバイスは、通信デバイス上にローカルに記憶されているコンテンツ、たとえば、送信局102によって送信されなかったコンテンツを復号することができる。他の好適な送信および受信実施方式が利用可能である。たとえば、受信局106は、携帯型通信デバイスではなく、一般的に固定型パーソナルコンピュータであり得る。
さらに、本開示の実装形態の全部または一部は、たとえば、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形を取ることができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、たとえば、任意のプロセッサによって、またはそれと接続して使用するためのプログラムを具体的に含有、記憶、通信、もしくは転送することができる任意のデバイスであり得る。たとえば、媒体は、電子、磁気、光、電磁、または半導体のデバイスであり得る。他の好適な媒体も利用可能である。
上記で説明した実装形態および他の態様は、本開示を容易に理解しやすくするために記述されており、本開示を制限するものではない。対照的に、本開示は、添付の特許請求の範囲内に含まれる様々な修正形態および等価な配列をカバーすることを意図しており、その範囲は、すべてのそのような修正形態および等価な配列を包含するために、法のもとで認められる最も広い範囲の解釈を与えられるべきである。
100 ビデオ符号化および復号システム
102 送信局
104 ネットワーク
106 受信局
200 コンピューティングデバイス
202 プロセッサ
204 メモリ
206 コードおよびデータ
208 オペレーティングシステム
210 アプリケーションプログラム
212 バス
214 2次記憶装置
218 ディスプレイ
220 画像感知デバイス
222 音響感知デバイス
300 ビデオストリーム
302 ビデオシーケンス
304 隣接フレーム
306 フレーム
308 セグメント
310 ブロック
400 エンコーダ
402 イントラ/インター予測段階
404 変換段階
406 量子化段階
408 エントロピー符号化段階
410 逆量子化段階
412 逆変換段階
414 復元段階
416 ループフィルタリング段階
420 ビットストリーム
500 デコーダ
502 エントロピー復号段階
504 逆量子化段階
506 逆変換段階
508 イントラ/インター予測段階
510 復元段階
512 ループフィルタリング段階
514 ポストフィルタ段階
516 出力ビデオストリーム
600 コード変換器
602 ビデオストリーム
604 コード変換段階
606 コード変換ビデオストリーム1
608 コード変換ビデオストリームN
700 コード変換器
702 パラメータ予測段階
704 パラメータ選択段階
706 コード変換段階
708 コード変換ビデオストリーム1
710 コード変換ビデオストリームM
712 学習モデル

Claims (20)

  1. ユーザ作成ビデオコンテンツのビデオストリームをコード変換するための方法であって、
    複数の解像度においてユーザ作成ビデオコンテンツのセットに対するコード変換品質を予測するように訓練された学習モデルを、前記ユーザ作成ビデオコンテンツに関連する情報を使用してクエリすることによって、複数の解像度において前記ビデオストリームの前記ユーザ作成ビデオコンテンツをコード変換するためのビットレートおよび品質スコアを決定するステップと、
    前記複数の解像度の各々において前記ビデオストリームをコード変換するために使用するためのコード変換パラメータのセットを、前記ビットレートおよび品質スコアに従って選択するステップであって、コード変換パラメータの各セットは前記複数の解像度のうちの1つの異なる解像度に対応する、ステップと、
    前記選択されたコード変換パラメータのセットを使用して前記ビデオストリームを複数のコード変換ビデオストリームにコード変換するステップであって、前記複数のコード変換ビデオストリームの各々は、前記コード変換のために使用された前記コード変換パラメータの前記セットに対応する前記1つの異なる解像度においてコード変換される、ステップと、
    さらなる処理または記憶のために前記複数のコード変換ビデオストリームを出力するステップとを含み、前記複数のコード変換ビデオストリームのうちの1つのコード変換ビデオストリームが、前記コード変換ビデオストリームに対応する解像度の選択に応答してクライアントデバイスにおいて表示するように構成される、方法。
  2. 前記複数の解像度において前記ビデオストリームの前記ユーザ作成ビデオコンテンツをコード変換するための前記ビットレートおよび品質スコアを決定するステップが、
    前記複数の解像度に対する前記ビデオストリームの予測される配信品質レベルを、前記学習モデルの出力として受信するステップであって、所与の予測される配信品質レベルは、前記ビデオストリームが前記複数の解像度のうちの対応する1つに対して規定のビットレートにおいてコード変換されるときに前記ビデオストリームの品質を表す、ステップと、
    前記予測される配信品質レベルを使用してビットレートおよび品質スコアペアのセットを決定するステップとを含み、ビットレートおよび品質スコアペアの各セットが、前記複数の解像度のうちの1つの解像度に対応する、請求項1に記載の方法。
  3. 前記学習モデルは、1つまたは複数の品質制御メトリックを使用して前記ビデオストリームから抽出された1つまたは複数のビデオフレームを処理することによって前記予測される配信品質レベルを計算し、前記ユーザ作成ビデオコンテンツに関連する前記情報は、前記1つまたは複数のビデオフレームに対応する、請求項2に記載の方法。
  4. 所与のビットレートおよび品質スコアペアのセットにおける各ビットレートが、前記所与のビットレートおよび品質スコアペアのセットに対応する解像度に対して許容される最大ビットレート以下である、請求項2または3のいずれか一項に記載の方法。
  5. 前記複数の解像度の各々において前記ビデオストリームをコード変換するために使用するための前記コード変換パラメータのセットを選択するステップが、
    前記ビットレートおよび品質スコアペアのセットの各々に対して、
    前記ビットレートおよび品質スコアペアのセットに対応する解像度に関連する加重値を決定するために、非線形最適化関数を使用して前記ビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップと、
    前記加重値のうちの最高のものをもたらす、前記ビットレートおよび品質スコアペアのセットのうちの1つのビットレートおよび品質スコアペアを、前記コード変換パラメータのセットのうちの1つとして選択するステップとを含む、請求項2から4のいずれか一項に記載の方法。
  6. 前記非線形最適化関数は、1つまたは複数の所定のしきい値を使用してビットレートおよび品質スコアペアの各セットのうちの前記ビットレートおよび品質スコアペアを処理する、請求項5に記載の方法。
  7. 前記1つまたは複数の所定のしきい値は、総ビットレートの上界、前記複数の解像度の一部もしくは全部において許容される最大ビットレート、または画質差測定しきい値のうちの1つまたは複数に関する、請求項6に記載の方法。
  8. 前記1つまたは複数の所定のしきい値が前記画質差測定しきい値に関するとき、前記非線形最適化関数を使用して前記ビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップが、
    前記ビットレートおよび品質スコアペアのうちの、前記画質差測定しきい値を満たさないものを間引くステップを含み、
    前記加重値は、前記ビットレートおよび品質スコアペアのうちの残りのものに対して決定される、請求項7に記載の方法。
  9. 前記1つまたは複数の所定のしきい値は、前記ビットレートおよび品質スコアペアのセットに対応する前記解像度に対して規定された重みに関し、前記非線形最適化関数を使用して前記ビットレートおよび品質スコアペアのセットのうちの各ビットレートおよび品質スコアペアを処理するステップが、
    前記重みを使用して前記ビットレートおよび品質スコアペアの前記品質スコアを重み付けることによって、前記ビットレートおよび品質スコアペアのセットのうちの1つのビットレートおよび品質スコアペアに対する加重値を決定するステップを含む、請求項6に記載の方法。
  10. 前記複数のコード変換ビデオストリームは、ビデオホスティングプラットフォームに出力され、前記複数の解像度の各々に対して規定された重みが、前記ビデオホスティングプラットフォームにアップロードされたビデオにわたって前記複数の解像度に対する視聴時間分布に基づいて決定される、請求項9に記載の方法。
  11. 前記複数のコード変換ビデオストリームは、ビデオホスティングプラットフォームに出力され、前記学習モデルは、
    前記ビデオホスティングプラットフォームのユーザ作成ビデオコンテンツから生ビデオフレームを抽出するステップと、
    前記生ビデオフレームのビデオコンテンツを使用して前記学習モデルを訓練するステップとによって、前記複数の解像度においてユーザ作成ビデオコンテンツに対するコード変換品質を予測するように訓練される、請求項1に記載の方法。
  12. 前記学習モデルは、
    前記生ビデオフレームの前記ビデオコンテンツを使用して前記学習モデルを訓練する前に、前記生ビデオフレームを前処理するステップによってさらに訓練される、請求項11に記載の方法。
  13. 前記生ビデオフレームを前処理するステップが、
    前記生ビデオフレームのピクセルデータをRGB色成分からYUV色成分に変換するステップを含み、
    前記学習モデルは、前記YUV色成分のうちのY色成分に対応する前記ピクセルデータのみを使用して訓練される、請求項12に記載の方法。
  14. 前記生ビデオフレームを前処理するステップが、
    前記生ビデオフレームのうちの1つまたは複数が非標準解像度にあるかどうかを決定するステップと、
    前記生ビデオフレームのうちの前記1つまたは複数が前記非標準解像度内にあると決定するステップに応答して、ゼロ値係数を有する前記生ビデオフレームのうちの前記1つまたは複数をパディングすることによって、前記生ビデオフレームのうちの前記1つまたは複数を標準解像度に拡大縮小するステップとを含む、請求項12に記載の方法。
  15. 前記生ビデオフレームの前記ビデオコンテンツを使用して前記学習モデルを訓練するステップが、
    ビデオフレームの空間的または時間的特徴を予測するために生成された特徴マップを使用して前記生ビデオフレームのうちの1つのビデオフレームを処理するステップを含む、請求項11に記載の方法。
  16. 前記特徴マップは、ガボールフィルタを使用して生成された空間的特徴の2次元マップである、請求項15に記載の方法。
  17. 前記特徴マップは、前記ビデオフレームの基準ビデオフレームを使用して生成された時間的特徴の2次元最適フローである、請求項15に記載の方法。
  18. 前記ユーザ作成ビデオコンテンツのセットは、複数のビデオコンテンツカテゴリーに対応し、前記学習モデルは、前記複数のビデオコンテンツカテゴリーに対して学習された構成に従って前記生ビデオフレームの配信品質レベルを予測するように訓練される、請求項11から17のいずれか一項に記載の方法。
  19. メモリとプロセッサとを含む装置であって、前記メモリは、請求項1から18のいずれか一項に記載の前記方法を実行するために、前記プロセッサによって実行可能な命令を含む、装置。
  20. 請求項1から18のいずれか一項に記載の前記方法を実行するように構成されている、コード変換器。
JP2022565893A 2020-05-19 2020-05-19 品質正規化ビデオコード変換のための動的パラメータ選択 Pending JP2023524000A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/033538 WO2021236059A1 (en) 2020-05-19 2020-05-19 Dynamic parameter selection for quality-normalized video transcoding

Publications (1)

Publication Number Publication Date
JP2023524000A true JP2023524000A (ja) 2023-06-08

Family

ID=71069991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022565893A Pending JP2023524000A (ja) 2020-05-19 2020-05-19 品質正規化ビデオコード変換のための動的パラメータ選択

Country Status (6)

Country Link
US (1) US20230104270A1 (ja)
EP (1) EP3942836A1 (ja)
JP (1) JP2023524000A (ja)
KR (1) KR20220146647A (ja)
CN (1) CN115349263A (ja)
WO (1) WO2021236059A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113518250B (zh) * 2020-08-07 2022-08-02 腾讯科技(深圳)有限公司 一种多媒体数据处理方法、装置、设备及可读存储介质
CN117242499A (zh) * 2021-12-20 2023-12-15 腾讯云欧洲(法国)简易股份公司 自动视频质量评估
CN114640851B (zh) * 2022-03-18 2023-06-23 广西昊华科技股份有限公司 基于质量感知的自适应全向视频流的传输方法
CN114866840A (zh) * 2022-03-31 2022-08-05 广州方硅信息技术有限公司 Vmaf画质评价方法、终端、主机、系统及存储介质
CN115002520B (zh) * 2022-04-14 2024-04-02 百果园技术(新加坡)有限公司 一种视频流数据处理方法、装置、设备及存储介质
CN115225928B (zh) * 2022-05-11 2023-07-25 北京广播电视台 一种多类型音视频混播系统及方法

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5790839A (en) * 1996-12-20 1998-08-04 International Business Machines Corporation System integration of DRAM macros and logic cores in a single chip architecture
US5901304A (en) * 1997-03-13 1999-05-04 International Business Machines Corporation Emulating quasi-synchronous DRAM with asynchronous DRAM
KR100244769B1 (ko) * 1997-06-26 2000-02-15 전주범 스케일러빌리티를 갖는 간 윤곽선 부호화 방법 및 장치
KR100240770B1 (ko) * 1997-07-11 2000-01-15 이형도 에너지보상/역보상기능을개선한스케러블부호화기및그방법
US6765962B1 (en) * 1999-12-02 2004-07-20 Sarnoff Corporation Adaptive selection of quantization scales for video encoding
US6826232B2 (en) * 1999-12-20 2004-11-30 Koninklijke Philips Electronics N.V. Fine granular scalable video with embedded DCT coding of the enhancement layer
CA2395605C (en) * 1999-12-22 2011-04-05 General Instrument Corporation Video compression for multicast environments using spatial scalability and simulcast coding
US7477688B1 (en) * 2000-01-26 2009-01-13 Cisco Technology, Inc. Methods for efficient bandwidth scaling of compressed video data
US7095782B1 (en) * 2000-03-01 2006-08-22 Koninklijke Philips Electronics N.V. Method and apparatus for streaming scalable video
US6771703B1 (en) * 2000-06-30 2004-08-03 Emc Corporation Efficient scaling of nonscalable MPEG-2 Video
US7016412B1 (en) * 2000-08-29 2006-03-21 Koninklijke Philips Electronics N.V. System and method for dynamic adaptive decoding of scalable video to balance CPU load
AU2002213713A1 (en) * 2000-10-24 2002-05-06 Eyeball Networks Inc. Dct-based scalable video compression
US7263124B2 (en) * 2001-09-26 2007-08-28 Intel Corporation Scalable coding scheme for low latency applications
US7729421B2 (en) * 2002-02-20 2010-06-01 International Business Machines Corporation Low latency video decoder with high-quality, variable scaling and minimal frame buffer memory
US7391807B2 (en) * 2002-04-24 2008-06-24 Mitsubishi Electric Research Laboratories, Inc. Video transcoding of scalable multi-layer videos to single layer video
KR20060105407A (ko) * 2005-04-01 2006-10-11 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US7369610B2 (en) * 2003-12-01 2008-05-06 Microsoft Corporation Enhancement layer switching for scalable video coding
US7697608B2 (en) * 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
KR100677142B1 (ko) * 2004-08-13 2007-02-02 경희대학교 산학협력단 파노라마 영상의 움직임 추정 및 보상
KR101233854B1 (ko) * 2005-02-18 2013-02-15 톰슨 라이센싱 저해상도 픽처로부터 고해상도 픽처에 대한 코딩 정보를도출하기 위한 방법 및 이 방법을 구현하는 코딩 및 디코딩장치
KR100732961B1 (ko) * 2005-04-01 2007-06-27 경희대학교 산학협력단 다시점 영상의 스케일러블 부호화, 복호화 방법 및 장치
JP4934139B2 (ja) * 2005-08-30 2012-05-16 トムソン ライセンシング Ieee802.11無線ローカル・エリア・ネットワーク上でのスケーラブル・ビデオ・マルチキャストのためのクロス・レイヤ最適化
JP2007081720A (ja) * 2005-09-13 2007-03-29 Sanyo Electric Co Ltd 符号化方法
US8401091B2 (en) * 2006-01-09 2013-03-19 Lg Electronics Inc. Inter-layer prediction method for video signal
US8635357B2 (en) * 2009-09-08 2014-01-21 Google Inc. Dynamic selection of parameter sets for transcoding media data
TWI416961B (zh) * 2010-04-02 2013-11-21 Univ Nat Chiao Tung 用於可調式視訊編碼系統之選擇性移動向量預測方法、移動估測方法及其裝置
US20110268175A1 (en) * 2010-04-30 2011-11-03 Wai-Tian Tan Differential protection of a live scalable media
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US20130028324A1 (en) * 2011-07-29 2013-01-31 National Chiao Tung University Method and device for decoding a scalable video signal utilizing an inter-layer prediction
WO2013115560A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 공간 서브영역별로 비디오를 부호화하는 방법 및 그 장치, 공간 서브영역별로 비디오를 복호화하는 방법 및 그 장치
US9124899B2 (en) * 2012-09-28 2015-09-01 Sharp Laboratories Of America, Inc. Motion derivation and coding for scaling video
US9918082B2 (en) * 2014-10-20 2018-03-13 Google Llc Continuous prediction domain
JP6559337B2 (ja) * 2015-09-23 2019-08-14 ノキア テクノロジーズ オーユー 360度パノラマビデオの符号化方法、符号化装置、及びコンピュータプログラム
US20170214937A1 (en) * 2016-01-22 2017-07-27 Mediatek Inc. Apparatus of Inter Prediction for Spherical Images and Cubic Images
US10454987B2 (en) * 2016-10-28 2019-10-22 Google Llc Bitrate optimization for multi-representation encoding using playback statistics
EP3422724B1 (en) * 2017-06-26 2024-05-01 Nokia Technologies Oy An apparatus, a method and a computer program for omnidirectional video
US10999578B2 (en) * 2017-12-12 2021-05-04 Google Llc Transcoding media content using an aggregated quality score
US11509937B2 (en) * 2018-04-09 2022-11-22 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding video
KR20210057148A (ko) * 2018-09-14 2021-05-20 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 슬라이싱 및 타일링
EP3855740A4 (en) * 2018-09-19 2022-09-28 Electronics and Telecommunications Research Institute METHOD AND APPARATUS FOR CODING/DECODING IMAGES, AND RECORDING MEDIA STORING A BITSTREAM
KR102154407B1 (ko) * 2018-11-15 2020-09-09 한국전자기술연구원 타일 기반 스트리밍을 위한 모션 제한 av1 영상 부호화 방법 및 장치
CN113170127A (zh) * 2018-12-07 2021-07-23 三星电子株式会社 使用并行块和条带的视频编码方法和解码方法以及使用并行块和条带的视频编码装置和解码装置
WO2020124016A1 (en) * 2018-12-14 2020-06-18 Futurewei Technologies, Inc. Arbitrary and wrap-around tile grouping
US11252434B2 (en) * 2018-12-31 2022-02-15 Tencent America LLC Method for wrap-around padding for omnidirectional media coding
KR102392701B1 (ko) * 2019-01-15 2022-04-28 엘지전자 주식회사 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
US20200236377A1 (en) * 2019-01-22 2020-07-23 Tencent America LLC Method for tile group identification
US11095916B2 (en) * 2019-07-23 2021-08-17 Qualcomm Incorporated Wraparound motion compensation in video coding
US11297320B2 (en) * 2020-01-10 2022-04-05 Mediatek Inc. Signaling quantization related parameters
US11405649B2 (en) * 2020-02-18 2022-08-02 Mediatek Inc. Specifying slice chunks of a slice within a tile
TWI743919B (zh) * 2020-08-03 2021-10-21 緯創資通股份有限公司 視訊處理裝置及視訊串流的處理方法

Also Published As

Publication number Publication date
WO2021236059A1 (en) 2021-11-25
EP3942836A1 (en) 2022-01-26
US20230104270A1 (en) 2023-04-06
CN115349263A (zh) 2022-11-15
KR20220146647A (ko) 2022-11-01

Similar Documents

Publication Publication Date Title
US20220353534A1 (en) Transform Kernel Selection and Entropy Coding
US20230104270A1 (en) Dynamic Parameter Selection for Quality-Normalized Video Transcoding
US20190020888A1 (en) Compound intra prediction for video coding
US11647223B2 (en) Dynamic motion vector referencing for video coding
US11102477B2 (en) DC coefficient sign coding scheme
US20220415039A1 (en) Systems and Techniques for Retraining Models for Video Quality Assessment and for Transcoding Using the Retrained Models
CN110169059B (zh) 视频代码化的复合预测
CN113132728B (zh) 编码方法及编码器
US10419777B2 (en) Non-causal overlapped block prediction in variable block size video coding
US20220094950A1 (en) Inter-Prediction Mode-Dependent Transforms For Video Coding
JP7125559B2 (ja) ビットレート削減のためのビデオストリーム適応フィルタリング
US20210329245A1 (en) Transforms for large video and image blocks
JP2022069546A (ja) 複合動き補償予測
US11924449B2 (en) Multivariate rate control for transcoding video content

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221027

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240422