(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-09
(54)【発明の名称】作品毎符号化ラダーを生成するための手法
(51)【国際特許分類】
H04N 21/2662 20110101AFI20240202BHJP
H04N 21/2385 20110101ALI20240202BHJP
H04N 19/115 20140101ALI20240202BHJP
H04N 19/157 20140101ALI20240202BHJP
H04N 19/179 20140101ALI20240202BHJP
【FI】
H04N21/2662
H04N21/2385
H04N19/115
H04N19/157
H04N19/179
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023548671
(86)(22)【出願日】2022-02-07
(85)【翻訳文提出日】2023-10-05
(86)【国際出願番号】 US2022015455
(87)【国際公開番号】W WO2022173687
(87)【国際公開日】2022-08-18
(32)【優先日】2021-02-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506267178
【氏名又は名称】ネットフリックス・インコーポレイテッド
【氏名又は名称原語表記】NETFLIX, INC.
【住所又は居所原語表記】121 Albright Way Los Gatos, California 95032 UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】100073184
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100175042
【氏名又は名称】高橋 秀明
(74)【代理人】
【識別番号】100163050
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100224775
【氏名又は名称】南 毅
(72)【発明者】
【氏名】ムーティ,アヌシュ
(72)【発明者】
【氏名】リー,ジー
(72)【発明者】
【氏名】グオ,リーウェイ
(72)【発明者】
【氏名】マヴァランカール,アディティア
(72)【発明者】
【氏名】アーロン,アン
【テーマコード(参考)】
5C159
5C164
【Fターム(参考)】
5C159KK02
5C159TA60
5C159TB01
5C159TC25
5C159TC47
5C159UA02
5C164FA06
5C164GA03
5C164SA32S
5C164SB22P
5C164SB41S
5C164SC03P
5C164YA21
(57)【要約】
様々な実施形態では、符号化ラダーアプリケーションはメディア作品を符号化するために符号化ラダーを生成する。動作時、符号化ラダーアプリケーションは、第1解像度でメディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第1凸包を生成する。符号化ラダーアプリケーションは、第2解像度で前記メディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第2凸包を生成する。符号化ラダーアプリケーションは前記第1凸包及び前記第2凸包に基づいて全体凸包を生成する。次に符号化ラダーアプリケーションは、前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及びラダー要件に基づいて生成する。有利にも、符号化ラダーで表される品質とビットレートの間のトレードオフが前記メディア作品についてカスタマイズされる。その結果、従来の固定ビットレートラダーに原因する符号化非能率を低減しうる。
【特許請求の範囲】
【請求項1】
メディア作品を符号化するために符号化ラダーを生成するためのコンピュータ実行方法であって、
第1解像度でメディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第1凸包を生成するステップと、
第2解像度で前記メディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第2凸包を生成するステップと、
前記第1凸包及び前記第2凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを含むコンピュータ実行方法。
【請求項2】
前記符号化ラダーを生成することは、
複数の符号化映像を前記全体凸包及び前記第1ラダー要件に基づいて決定するステップと、
複数のビットレート・解像度ペアを前記複数の符号化映像に基づいて生成するステップとを含み、前記各ビットレート・解像度ペアは前記複数の符号化映像に含まれる異なる符号化映像の平均ビットレート及び解像度を指定する、請求項1記載のコンピュータ実行方法。
【請求項3】
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、
品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、
第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、
前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、
前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項4】
前記符号化ラダーを生成することは、
複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、
前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項5】
前記符号化ラダーを生成することは、
前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、
少なくとも1つの映像ビットレート・品質点を前記第1凸包から前記第1ラダー要件に基づいて選択するステップと、
少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、
前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項6】
前記第1凸包は第1組の映像ビットレート・品質点を含み、前記第2凸包は第2組の映像ビットレート・品質点を含み、前記全体凸包は少なくとも前記第1組の映像ビットレート・品質点の第1部分集合と前記第2組の映像ビットレート・品質点の第2部分集合とを含む、請求項1記載のコンピュータ実行方法。
【請求項7】
前記第1凸包を生成する前記ステップは、
前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、
1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、
複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項8】
前記視覚品質メトリックは知覚映像品質を推定する映像多メソッド評価融合メトリックから成る、請求項7記載のコンピュータ実行方法。
【請求項9】
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、請求項1記載のコンピュータ実行方法。
【請求項10】
ビットレートは前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像に亘って異なる、請求項1記載のコンピュータ実行方法。
【請求項11】
1つ以上の持続性コンピュータ読取可能媒体であって、命令群を含み、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、
複数の凸包を生成するステップであって、前記複数の凸包に含まれる各凸包は異なる解像度でメディア作品を符号化する時に品質とビットレートの間の符号化トレードオフを表す、ステップと、
前記複数の凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを実行させることで、メディア作品を符号化するための符号化ラダーを生成させる、1つ以上の持続性コンピュータ読取可能媒体。
【請求項12】
前記符号化ラダーは複数の符号化映像に関連する複数のビットレート・解像度ペアを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項13】
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、
品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、
第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、
前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、
前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項14】
前記符号化ラダーを生成することは、
複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、
前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項15】
前記符号化ラダーを生成することは、
前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、
少なくとも1つの映像ビットレート・品質点を前記複数の凸包に含まれる第1凸包から前記第1ラダー要件に基づいて選択するステップと、
少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、
前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項16】
前記複数の凸包に基づいて前記全体凸包を決定する前記ステップは、
前記複数の凸包に含まれる一組の映像ビットレート・品質点を決定するステップと、
前記一組の映像ビットレート・品質点に関連する境界を特定するステップであって、前記一組の映像ビットレート・品質点に含まれるどの映像ビットレート・品質点も前記境界の第1側に位置しない、ステップと、
前記一組の映像ビットレート・品質点に含まれ前記境界上に位置しないどの映像ビットレート・品質点も捨てるステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項17】
前記複数の凸包を生成する前記ステップは、
前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、
1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、
複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算して前記複数の凸包に含まれる第1凸包を生成するステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項18】
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項19】
前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像は、第1符号化パラメータに基づいて生成された少なくとも第1符号化されたショットと第2符号化パラメータに基づいて生成された少なくとも第2符号化されたショットとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項20】
システムであって、
命令群を記憶する1つ以上のメモリと、
前記1つ以上のメモリと結合された1つ以上のプロセッサとを備え、前記プロセッサは、前記命令群を実行する時、
視覚品質メトリックとメディア作品及び第1解像度両方と関連する第1の複数の符号化されたショットとに基づいて第1凸包を生成するステップと、
前記視覚品質メトリックと、前記メディア作品及び第2解像度両方と関連する第2の複数の符号化されたショットとに基づいて第2凸包を生成するステップと、
前記第1凸包及び第2凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを第1ラダー要件と前記全体凸包、前記第1凸包、又は前記第2凸包のうち少なくとも1つとに基づいて生成するステップとを実行する、システム。
【発明の詳細な説明】
【関連出願】
【0001】
本出願は、2021年2月11日に出願された米国特許出願第17/174121号の利益を主張するものである。これを本明細書に引用する。
【技術分野】
【0002】
様々な実施形態は概ね、コンピュータ科学及びメディアデータ処理に関し、より具体的には作品毎符号化ラダーを生成するための手法に関する。
【背景技術】
【0003】
代表的な映像配信サービスはユーザーにメディア作品のライブラリーへのアクセスを提供し、それらのメディア作品は様々な顧客装置で見られうる。動作時、特定の顧客装置は様々な接続条件の下で映像配信サービスに接続し、従って、様々な利用可能なネットワーク帯域幅に影響されうる。利用可能なネットワーク帯域幅に拘わらず特定のメディア作品が顧客装置に再生中断なく配信されうることを保証するために、映像配信サービスはそのメディア作品の複数の異なる符号化映像を通常予め生成する。低品質符号化映像は、通常利用可能なネットワーク帯域幅が比較的に低い時に顧客装置に配信され、高品質符号化映像は、通常利用可能なネットワーク帯域幅が比較的に高い時に顧客装置に配信される。
【0004】
特定のメディア作品の異なる符号化映像を予め生成するために、映像配信サービスは通常対応するソース映像を符号化ラダー内で指定されるビットレートと解像度の複数の組み合わせ又は「ビットレート・解像度ペア」で符号化する。符号化ラダー内の各ビットレート・解像度ペアは通常異なるビットレートを有し、利用可能なネットワーク帯域幅がそのビットレート以上である時に対応する符号化映像を顧客装置に再生中断を減らして配信できる。
【0005】
特定のメディア作品を顧客装置で再生するために、利用可能なネットワーク帯域幅に少なくとも部分的に基づいてメディア作品の生成された複数の異なる符号化映像を選択する終点アプリケーションが顧客装置で実行されうる。特定の符号化映像が終点アプリケーションによって選択されると、選択された符号化映像の1つ以上の個別部分又はチャンクが顧客装置に再生のために配信される。選択された符号化映像の1つのチャンクを受信すると、終点アプリケーションはそのチャンクを復号し、任意選択で結果の復号されたチャンクを再サンプリングして顧客装置表示器と同じ解像度を持つ復元された映像の対応するチャンクを生成する。終点アプリケーションは復元された映像の複数のチャンクを顧客装置で再生させメディア作品の再生を行う。
【0006】
一般的に、ソース映像が符号化されメディア作品の複数の符号化映像を生成する時、情報がメディア作品のソース映像から削除される。その結果、復元された映像の特定のチャンクの視覚品質は、ソース映像の対応するチャンクの視覚品質より通常低く、復元された映像のそのチャンクはソース映像の対応するチャンクより比較的多くの視覚品質減損又は歪みを含むことを意味する。また、ソース映像の対応するチャンクを符号化するのに使用するビットレートが減少すると、復元された映像の特定のチャンクの視覚品質は通常低下する。
【0007】
符号化ラダーを生成するやり方において、様々なメディア作品に対応する複数のソース映像が多数のビットレート・解像度ペアで符号化されてメディア作品毎に複数の符号化映像を生成する。復元された映像がそれらの符号化映像から生成される。その後、符号化映像のビットレートと符号化映像に対応する復元された映像の視覚品質レベルの間の様々なトレードオフを評価する。これらのビットレート・品質トレードオフに基づいて、比較的少数のビットレート・解像度ペアが選択され、符号化ラダーに含まれる。各ビットレート・解像度ペアは異なるビットレートに対応する。得られる符号化ラダーは「固定ビットレートラダー」として知られ、メディア作品の特定のライブラリーに含まれる全てのメディア作品について符号化映像を生成するのに使用される。
【0008】
固定ビットレートラダーを使用することの1つの欠点は、様々なソース映像に含まれる映像コンテンツの複雑さはかなり異なりうるので、固定ビットレートラダーで表されるビットレートと視覚品質の間のトレードオフは、幾つかのソース映像にとって準最適である場合がある。このような場合、固定ビットレートラダーを使用する符号化は符号化及び送信非能率を引き起こしうる。例えば、固定ビットレートラダー内の任意の数のビットレート・解像度ペアのビットレートが、特定の低複雑度のソース映像について視覚品質飽和が起こるビットレートを超えうる。そのような「品質飽和ビットレート」に達すると、ソース映像を符号化するのに使用するビット数を増加させることは、対応する復元された映像の視覚品質を知覚できるほどは増加させない。従って、品質飽和ビットレートを超えるビットレートでソース映像を符号化することは計算資源を浪費しうり、得られる符号化映像を顧客装置に配信することはネットワーク帯域幅を不必要に消費しうる。別の例では、任意の数のソース映像に対して、固定ビットレートラダー内の任意の数のビットレート・解像度ペアの解像度は視覚品質に関して準最適でありうる。例えば、固定ビットレートラダー内の特定のビットレート・解像度ペアは5000kbpsのビットレート及び3840×2160の解像度を指定しうる。特定の高複雑度のソース映像の場合、そのビットレート・解像度ペア(即ち、5000kbps及び3840×2160)に対応するラダー符号化映像に関する視覚品質は、同じビットレート(5000kbps)及びより低い解像度(例えば、1920×1080)で生成される非ラダー符号化映像の視覚品質より低い場合がある。従って、5000kbpsのビットレートの場合、ラダー符号化映像に関する視覚品質は不必要に低い場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0009】
上記が示すように、本分野で必要なものは、ソース映像を符号化するための符号化ラダーを生成するためのより効果的な手法である。
【課題を解決するための手段】
【0010】
本発明の1つの実施形態は、メディア作品を符号化するために符号化ラダーを生成するためのコンピュータ実行方法を明記する。この方法は、第1解像度でメディア作品を符号化する時に品質とビットレートの間の符号化トレードオフを表す第1凸包を生成するステップと、第2解像度で前記メディア作品を符号化する時に品質とビットレートの間の符号化トレードオフを表す第2凸包を生成するステップと、前記第1凸包及び前記第2凸包に基づいて全体凸包を決定するステップと、前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを含む。
【0011】
開示された手法の従来技術に対する少なくとも1つの技術的利点は、特定のメディア作品ライブラリーに含まれる各メディア作品について異なる符号化ラダーが、そのメディア作品に対応するソース映像内の各ショットの複雑度に基づいて自動的に生成されることである。従って、開示された手法により、各符号化ラダーによって表されるビットレートと視覚品質の間のトレードオフが特定のメディア作品についてカスタマイズされる。その結果、従来の固定ビットレートラダーに原因する符号化非能率は低減されうる。特に、開示された手法は、特定の符号化ラダーに指定されたビットレートのどれも対応するソース映像の品質飽和ビットレートを超えないこと、及び特定の符号化ラダー内の任意の数のビットレート・解像度ペアの解像度が視覚品質に関して適切に最適化されることを保証する。これらの技術的な利点は従来技術手法と比べて1つ以上の技術的進歩を提供する。
【図面の簡単な説明】
【0012】
様々な実施形態の上記の特徴が詳細に理解されうるために、一部が添付の図面に例示された様々な実施形態を参照することで、上記に簡潔に要約された発明概念のより詳細な説明を得られるかもしれない。しかし、添付の図面は発明概念の典型的な実施形態のみを例示し、従って、本発明の範囲を限定すると考えられるべきでは決してなく、他の同様に効果的な実施形態が存在することは留意されるべきである。
【
図1】様々な実施形態の1つ以上の態様を実現するように構成されたシステムの概念図である。
【
図2】様々な実施形態に係る
図1のラダー生成器のより詳細な説明図である。
【
図3】様々な実施形態に係る
図2の凸包生成器の1つのより詳細な説明図である。
【
図4A】様々な実施形態に係る、
図3のトレリス反復器がランク付けされたショットデータセットに基づいて凸包を生成する仕方を示す。
【
図4B】様々な実施形態に係る、
図3のトレリス反復器がランク付けされたショットデータセットに基づいて凸包を生成する仕方を示す。
【
図4C】様々な実施形態に係る、
図3のトレリス反復器がランク付けされたショットデータセットに基づいて凸包を生成する仕方を示す。
【
図4D】様々な実施形態に係る、
図3のトレリス反復器がランク付けされたショットデータセットに基づいて凸包を生成する仕方を示す。
【
図5A】様々な実施形態に係る、
図2のラダー生成器によって複数の異なる凸包に基づいて生成される全体凸包を示す。
【
図5B】様々な実施形態に係る、
図2の段選択エンジンが符号化ラダーを全体凸包、複数の異なる凸包、及びラダー要件セットに基づいて生成する仕方を示す。
【
図6】様々な実施形態に係る、メディア作品用の符号化ラダーを生成するための方法ステップのフロー図である。
【発明を実施するための形態】
【0013】
以下の説明において、様々な実施形態のより完全な理解を提供するために多数の具体的詳細が明らかにされる。しかし、これらの具体的詳細の1つ以上を欠いて発明概念を実施してもよいことは当業者には明白であろう。
【0014】
特定のメディア作品が顧客装置に再生中断なく配信されうることを保証するために、広範囲のネットワーク帯域幅の下で、映像配信サービスはメディア作品に対応するソース映像に基づいて一組の符号化映像を通常予め生成する。各符号化映像は符号化ラダー内の異なるビットレート・解像度ペアに対応し、利用可能なネットワーク帯域幅がそのビットレート・解像度ペアに指定されたビットレート以上である時に顧客装置に再生中断を減らして配信されうる。
【0015】
特定のメディア作品を顧客装置で再生するために、終点アプリケーションは顧客装置で実行され符号化ラダーからビットレート・解像度ペアを利用可能なネットワーク帯域幅及び任意選択で顧客装置表示器の解像度に基づいて選択する。終点アプリケーションが特定のビットレート・解像度ペアを選択すると、そのビットレート・解像度ペアに対応する符号化映像の1つ以上のチャンクが顧客装置に再生のために配信される。選択された符号化映像の1つのチャンクを受信すると、終点アプリケーションはそのチャンクを復号し、任意選択で結果の復号されたチャンクを再サンプリングして顧客装置表示器と同じ解像度を持つ復元された映像の対応するチャンクを生成する。終点アプリケーションは復元された映像の複数の異なるチャンクを顧客装置で再生させそのメディア作品の再生を行う。
【0016】
ソース映像が符号化され各符号化映像を生成する時に情報がソース映像から削除されるので、復元された映像の特定のチャンクの視覚品質は通常ソース映像の対応するチャンクの視覚品質より低い。また、対応する符号化映像のビットレートが減少すると、復元された映像の特定のチャンクの視覚品質は通常低下する。
【0017】
符号化ラダーを生成するやり方において、様々なメディア作品に対応するソース映像が多数のビットレート・解像度ペアで符号化されてメディア作品毎に複数の符号化映像を生成する。符号化映像のビットレートと符号化映像に対応する復元された映像の視覚品質レベルの間の様々なトレードオフを評価する。これらのビットレート・品質トレードオフに基づいて、比較的少数のビットレート・解像度ペアが選択され、符号化ラダーに含まれ、各ビットレート・解像度ペアは異なるビットレートに対応する。得られる符号化ラダーは「固定ビットレートラダー」として知られ、メディア作品の特定のライブラリーに含まれる全てのメディア作品について符号化映像を生成するのに使用される。
【0018】
固定ビットレートラダーを使用することの1つの欠点は、様々なソース映像に含まれる映像コンテンツの複雑さはかなり異なりうるので、固定ビットレートラダーで表されるビットレートと視覚品質の間のトレードオフは、幾つかのソース映像にとって準最適でありうる。このような場合では、固定ビットレートラダーを使用する符号化は符号化及び送信非能率を引き起こしうる。例えば、特定のコーデック形式では、特定の低複雑度映像が800kbpsの品質飽和ビットレートを有しうり、ソース映像を符号化するのに使用されるビットレートを800kbpsを超えて増加させることは、対応する復元された映像の視覚品質を知覚できるほどは増加させないことを意味する。また、固定ビットレートラダー内の複数のビットレート・解像度点は800kbpsを超えるビットレートを有しうる。従って、これらのビットレート・解像度点に基づいてソース映像を符号化することは、計算資源を浪費し、得られた符号化映像を顧客装置に配信することは、ネットワーク帯域幅を不必要に消費しうる。また、符号化映像の総サイズが不必要に大きくなり、従って、符号化映像がどこに記憶されても(例えば、様々な地理的位置)、符号化映像を記憶するのに使用されるメモリの量が増大する。別の例では、固定ビットレートラダーにより、特定の高複雑度ソース映像を5000kbps及び3840×2160のビットレート・解像度点で符号化できる。しかし、もしソース映像が同じビットレート、しかし1920×1080のより低い解像度で符号化されると、対応する復元された映像の視覚品質はより高い。しかし、固定ビットレートラダーに対応する符号化映像だけが終点アプリケーションによって選択されうるので、5000kbpsのビットレートの場合に顧客装置で再生される復元された映像の視覚品質は不必要に低い。
【0019】
しかし、開示された手法では、符号化ラダーアプリケーションは、メディア作品毎に異なる符号化ラダーを対応するソース映像に含まれる各ショットの複雑度及び任意の数のラダー要件に基づいて生成する。幾つかの実施形態では、符号化ラダーアプリケーションはソース映像に含まれる各ショットを複数の解像度で量子化パラメータ(QP)の複数の値に亘って符号化して符号化されたショットを生成する。QPの値がより高いと、符号化されたショットの得られるビットレートはより低くなり、対応する復元されたショットはより低い視覚品質レベルとなる。解像度毎に符号化ラダーアプリケーションは、その解像度を持つ符号化されたショットに基づいて映像レート・品質点群の凸包を生成する。各映像レート・品質点は符号化映像、符号化映像のビットレート、符号化映像の解像度、及び符号化映像の視覚品質レベルを指定する。
【0020】
特定の解像度について凸包を生成するために、符号化ラダーアプリケーションはビットレートを計算し、その解像度を持つ各符号化されたショットの視覚品質レベルを推定する。次に、符号化ラダーアプリケーションはビットレート及び視覚品質レベルに基づいて最適化操作を実行し符号化されたショットを集め符号化映像にする。解像度については、各符号化映像は異なるビットレートに対する最高視覚品質レベルと関連する。符号化ラダーアプリケーションは、各得られた符号化映像に対して異なる映像レート・品質点を生成しその解像度に対する凸包を決定する。
【0021】
次に、符号化ラダーアプリケーションは、様々な解像度の凸包に基づいて映像ビットレート・品質点の全体凸包を生成する。全体凸包により指定される符号化映像のそれぞれは、対応するビットレートの最高視覚品質レベルと関連する。従って、全体凸包は任意の数(ゼロを含む)の符号化映像(それぞれの解像度を持つ)を指定する。
【0022】
符号化ラダーを生成するために、次に符号化ラダーアプリケーションは各ラダー要件を順次処理する。各ラダー要件は符号化ラダーが満たす必要がある任意の数及び/又はタイプの条件、制約、基準などを指定できる。特定のラダー要件を処理するために、符号化ラダーアプリケーションは任意の数(ゼロを含む)の映像レート・品質点を新しい段点として選択し、蓄積された段点が集合的にラダー要件を満たすようにする。符号化ラダーアプリケーションは各段点を全体凸包から優先的に決め、必要なら、解像度毎凸包の1つから決める。符号化ラダーアプリケーションは任意の技術的に可能なやり方で段点を決めることができる。
【0023】
幾つかの実施形態では、符号化ラダーアプリケーションは最小ビットレート要件、品質飽和要件、ビットレート間隔要件、及び必須解像度要件を順次処理する。符号化ラダーアプリケーションは最小ビットレート要件に指定された最小許容ビットレートに基づいて全体凸包から最低段点を決める。品質飽和要件を処理するために、符号化ラダーアプリケーションは品質飽和ビットレートを全体凸包に基づいて計算する。次に符号化ラダーアプリケーションは、品質飽和ビットレートの最小及び品質飽和要件に指定された最大許容ビットレートに基づいて全体凸包から最高段点を決める。符号化ラダーアプリケーションは、ビットレート間隔要件に指定された目標ビットレート間隔に基づいて任意の数の段点を最低段点と最高段点の間にある全体凸包の領域から決める。段点にまだ表されていない各必須解像度について、符号化ラダーアプリケーションは特定解像度段点を決める。全体凸包内の少なくとも1つの映像ビットレート・品質点がその必須解像度を指定すると、符号化ラダーアプリケーションは全体凸包からその特定解像度段点を選択する。そうでなければ、符号化ラダーアプリケーションは必須解像度の凸包から特定解像度段点を決める。
【0024】
ラダー要件を処理した後、符号化ラダーアプリケーションは、限定されないが、段点に対応するビットレート・解像度ペアを含む符号化ラダーを生成する。各ビットレート・解像度ペアは異なる最適化された符号化映像のビットレート及び解像度を指定し、解像度でなくビットレート及び視覚品質レベルはその最適化された符号化映像の符号化されたショットに亘って異なりうる。符号化ラダーアプリケーションはまた、限定されないが、段点に対応する最適化された符号化映像を含む最適化された符号化映像セットを生成する。符号化ラダーアプリケーションは符号化ラダーを記憶し及び/又は任意の数の顧客装置に任意の数及び/又はタイプの終点アプリケーションによる使用のために送信する。符号化ラダーアプリケーションはまた、最適化された符号化映像セットを記憶し及び/又はコンテンツ配信ネットワークへ送信する。
【0025】
開示された手法の従来技術に対する少なくとも1つの技術的利点は、符号化ラダーアプリケーションは、対応するソース映像内の各ショットの複雑度に基づいて各メディア作品に対して異なる符号化ラダーを生成することである。より具体的には、符号化ラダーアプリケーションは特定のソース映像の全ショットに亘ってビットレートと視覚品質の間のトレードオフを最適化し対応するメディア作品用にカスタマイズされた符号化ラダーを生成する。その結果、従来の固定ビットレートラダーに原因する非能率は低減されうる。特に、符号化ラダーアプリケーションは符号化ラダーによって表される最高ビットレートは対応するソース映像の品質飽和ビットレートを超えないことを保証できる。その結果、利用可能なネットワーク帯域幅が品質飽和帯域幅を超える時、配信のために選択され最適化された符号化映像のビットレートは、対応する復元された映像の視覚品質に顕著に影響することなく低減されうる。また、段点を全体凸包から優先的に選択することで、符号化ラダーアプリケーションは各符号化ラダー内の任意の数のビットレート・解像度ペアが視覚品質に関して適切に最適化されることを保証する。これらの技術的な利点は従来の手法と比べて1つ以上の技術的進歩を提供する。
【0026】
システム概要
図1は様々な実施形態の1つ以上の態様を実現するように構成されたシステム100の概念図である。説明の目的のために、類似の対象物の複数のインスタンス又はバージョンが、その対象物を特定する符号と必要であればインスタンスを特定する丸括弧でくくられた英数字で示されている。図示するように、幾つかの実施形態では、システム100は、限定されないが、計算インスタンス110、顧客装置190、コンテンツ配信ネットワーク(CDN)180、ショット変化検出器152、及び符号器150を含む。
【0027】
幾つかの他の実施形態では、システム100は顧客装置190、CDN180、ショット変化検出器152、又はそれらの任意の組み合わせを省略できる。同じ又は他の実施形態では、システム100は限定されないが、計算インスタンス110の複数のインスタンス、顧客装置190の複数のインスタンス、CDN180の複数のインスタンス、符号器150の複数のインスタンス、又はそれらの任意の組み合わせを含みうる。説明の目的だけのために、計算インスタンス110及び顧客装置190の複数のインスタンスは、計算インスタンス110及び顧客装置190ともそれぞれ本書で呼ばれる。
【0028】
システム100の部品は、任意の数の共有された地理的位置及び/又は任意の数の異なる地理的位置に亘って分散され及び/又は1つ以上のクラウド計算環境(即ち、カプセルに入れられた共有資源、ソフトウェア、データなど)において任意の組み合わせで実現されうる。幾つかの実施形態では、各計算インスタンス110はクラウド計算環境において実現されるか、任意の他の分散計算環境の一部として実現されるか、又は単独で実現されうる。
【0029】
図示したように、計算インスタンス110は限定されないが、プロセッサ112及びメモリ116を含む。プロセッサ112は命令を実行できるどんな命令実行システム、装置、又はデバイスであってもよい。例えば、プロセッサ112は中央処理装置、グラフィック処理装置、コントローラ、マイクロコントローラ、状態マシン、又はそれらの任意の組み合わせから成ってもよい。メモリ116はソフトウェアアプリケーション及びデータなどのコンテンツを計算インスタンス110のプロセッサ112による使用のために記憶する。メモリ116は、1つ以上の容易に入手可能なメモリ、例えばランダムアクセスメモリ、読み出し専用メモリ、フロッピー(登録商標)ディスク、ハードディスク、又は任意の他の形態のデジタル記憶装置、局所又は遠隔の、であってもよい。
【0030】
幾つかの他の実施形態では、各計算インスタンス110は限定されないが、プロセッサ112の任意の数のインスタンス及びメモリ116の任意の数のインスタンスを任意の組み合わせで含みうる。特に、任意の数(1つを含む)の計算インスタンス110は任意の技術的に可能なやり方で多重処理環境を提供しうる。
【0031】
幾つかの実施形態では、記憶装置(不図示)がメモリ116を補っても又は置き換えてもよい。その記憶装置は、プロセッサ112にとってアクセス可能な任意の数と種類の外部メモリを含んでもよい。例えば、その記憶装置は、限定されないがSecure Digital Card、外部Flashメモリ、携帯コンパクトディスク読み出し専用メモリ、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含みうる。
【0032】
一般に、各計算インスタンス110は1つ以上のソフトウェアアプリケーションを実行するように構成される。説明の目的だけのために、各ソフトウェアアプリケーションは計算インスタンス110のメモリ116に常駐し計算インスタンス110のプロセッサ112上で実行されるとして描かれる。しかし、幾つかの他の実施形態では、各ソフトウェアアプリケーションの機能は、任意の数の計算インスタンス110のメモリ116の任意の数のインスタンスに常駐する任意の数の他のソフトウェアアプリケーションに亘って分散され、任意の組み合わせで任意の数の計算インスタンス110のプロセッサ112の任意の数のインスタンス上で実行されてもよい。また、任意の数のソフトウェアアプリケーションの機能は単一のソフトウェアアプリケーションに統合されてもよい。
【0033】
特に、幾つかの実施形態では、計算インスタンス110は符号化ラダー172及び最適化された符号化映像セット176を生成するように構成される。図示のように、幾つかの実施形態では、符号化ラダー172は限定されないが、最適化された符号化映像178(1)~178(L)にそれぞれ対応するビットレート・解像度ペア174(1)~174(L)を含み、Lは任意の正の整数でありうる。同じ又は他の実施形態では、最適化された符号化映像セット176は限定されないが、最適化された符号化映像178(1)~178(L)を含む。
【0034】
説明の目的だけのために、ビットレート・解像度ペア174はまた、本書で個々に「ビットレート・解像度ペア174」と呼ばれ、集合的に「ビットレート・解像度ペア群174」と呼ばれる。最適化された符号化映像178(1)~178(L)はまた、本書で個々に「最適化された符号化映像178」と呼ばれ、集合的に「最適化された符号化映像群178」と呼ばれる。
【0035】
各ビットレート・解像度ペア174は限定されないが、そのビットレート・解像度ペア174に対応する最適化された符号化映像178のビットレート(
図1には不図示)及び解像度(
図1には明示されてない)を指定する。最適化された符号化映像178の解像度は、メディア作品に対応するソース映像122がそれで符号化され最適化された符号化映像178を生成する解像度である。説明の目的だけのために、符号化ラダー172によって表されるビットレート及び解像度はビットレート・解像度ペア174(1)~174(L)のそれぞれの唯一のビットレート及び唯一の解像度を指す。
【0036】
ソース映像122は限定されないが、任意の量及び/又はタイプの映像コンテンツを含む。映像コンテンツの幾つかの例は限定されないが、長編映画の任意の部分(全てを含む)、テレビ番組のエピソード、及び音楽ビデオなどを含む。各最適化された符号化映像178は限定されないが、ソース映像122に含まれた映像コンテンツから得られた符号化映像コンテンツを含む。
【0037】
幾つかの実施形態では、計算インスタンス110は符号化ラダー172を任意の数の顧客装置190に送信し最適化された符号化映像セット176をCDN180に送信するように構成される。顧客装置190は終点アプリケーション192を実行し、画像及び/又は任意の他のタイプの視覚コンテンツを任意のタイプの表示器194で表示できる任意のタイプの装置でありうる。例えば、顧客装置190は限定されないが、スマートテレビ、ゲーム機、デスクトップコンピュータ、ラップトップ、スマートフォン、タブレットなどでありうる。表示器194は限定されないが、液晶ディスプレイ、発光ダイオードディスプレイ、投写型ディスプレイ、プラズマディスプレイパネルなどでありうる。
【0038】
CDN180は最適化された符号化映像セット176の任意の数のコピー及び任意の量及び/又はタイプの他のデジタルコンテンツを任意の数の異なる地理的領域に位置する任意の数のサーバーに記憶する。同じ又は他の実施形態では、CDN180は配信要求182のインスタンスに応答してデジタルコンテンツを顧客装置190に送信する。
【0039】
幾つかの実施形態では、ソース映像122に関連するメディア作品を顧客装置190で再生するために、顧客装置190上で実行される終点アプリケーション192は、顧客装置190とCDN180の間の接続の利用可能なネットワーク帯域幅及び/又は表示器194の解像度に基づいて符号化ラダー172に含まれるビットレート・解像度ペア174の1つを選択する。終点アプリケーション192は配信要求182をCDN180に送信しCDN180が選択されたビットレート・解像度ペア174に対応する最適化された符号化映像178の少なくとも一部を顧客装置190に配信するよう要求する。これに応答して、CDN180は最適化された符号化映像178のチャンクを顧客装置190に再生のために配信する。
【0040】
幾つかの実施形態では、最適化された符号化映像178の各チャンクは符号化されたショット188の異なるインスタンスである。符号化されたショット188の各インスタンスはショット158(1)~158(M)の1つに含まれる映像コンテンツから得られた符号化映像コンテンツを含み、Mは任意の正整数でありうる。幾つかの実施形態では、各ショット158(1)~158(M)は限定されないが、ソース映像122の一組のフレームを含み、これらのフレームは通常類似した空間時間特性及び中断されない期間の走行長さを有する。同じ又は他の実施形態では、各ショット158(1)~158(M)は単一カメラ又はカメラの仮想表現(例えば、コンピュータアニメ映像の場合)から連続的に取り込まれる。ショット158(1)~158(M)は連続し重なりなく全体でソース映像122と同じ長さである。
【0041】
説明の目的だけのために、
図1は選択され特定の時点で顧客装置190に配信される符号化されたショット188を描く。幾つかの実施形態では、符号化されたショット188を受信すると、終点アプリケーション192は符号化されたショット188を復号し復号されたショット(不図示)を生成する。終点アプリケーション192は任意の数(ゼロを含む)及び/又はタイプの再サンプリング(例えば、アップサンプリング又はダウンサンプリング)を復号されたショットに実行して表示器194と同じ解像度を持つ復元されたショット198を生成する。終点アプリケーション192は復元されたショット198を顧客装置190で再生させる。
【0042】
ショット158(1)~158(M)はまた、本書で個々に「ショット158」と呼ばれ、集合的に「ショット群158」と呼ばれる。符号化されたショット188のインスタンスはまた、本書で個々に「符号化されたショット188」と呼ばれ、集合的に「符号化されたショット群188」と呼ばれる。復元されたショット198のインスタンスはまた、本書で個々に「復元されたショット198」と呼ばれ、集合的に「復元されたショット群198」と呼ばれる。
【0043】
時間と共に、顧客装置190は一連のショット158に対応する一連の符号化されたショット188を通常受信する。終点アプリケーション192は一連のショット158に対応する一連の復元されたショット198を生成し一連の復元されたショット198を顧客装置190で再生させ、メディア作品の少なくとも一部の再生を実行する。説明の目的だけのために、復元された映像(不図示)は限定されないが、ショット158(1)~158(M)にそれぞれ近似するM個の異なる復元されたショット198を含む。
【0044】
前述したように、符号化ラダーを生成する従来の手法では、様々なメディア作品に対応するソース映像は多数のビットレート・解像度ペアで符号化されて各メディア作品について複数の符号化映像を生成する。符号化映像のビットレートとそれらの符号化映像に対応する復元された映像の視覚品質レベルの間の様々なトレードオフに基づいて、比較的小さい数のビットレート・解像度ペアが選択され符号化ラダーに含まれる。各選択されたビットレート・解像度ペアは異なるビットレートに対応し、得られた符号化ラダーは固定ビットレートラダーとして知られる。固定ビットレートラダーは特定のメディア作品ライブラリーに含まれる全てのメディア作品について符号化映像を生成するために使用される。
【0045】
固定ビットレートラダーを使用することの1つの欠点は、様々なソース映像に含まれる映像コンテンツの複雑さがかなり異なりうるので、固定ビットレートラダーによって表されるビットレートと視覚品質の間のトレードオフは幾つかのソース映像に対して準最適でありうる。より詳細に前述したように、固定ビットレートラダーを使用する符号化はこのような場合に符号化及び送信非能率を引き起こしうる。
【0046】
ショットベース符号化を使って符号化ラダーを生成する
上記問題に対処するために、システム100は限定されないが、ショット158の複雑さ及びラダー要件セット124に基づいて符号化ラダー172をメディア作品用にカスタマイズする符号化ラダーアプリケーション130を含む。図示のように、幾つかの実施形態では、符号化ラダーアプリケーション130はまた、符号化ラダー172とソース映像122両方に対応する最適化された符号化映像セット176を生成する。ラダー要件セット124は限定されないが、符号化ラダー172が満たすべき任意の数及び/又はタイプのラダー要件(
図1には不図示)を含む。
【0047】
幾つかの実施形態では、ラダー要件セット124は限定されないが、最高許容ビットレートを指定し、符号化ラダー172が表す最高ビットレートは品質飽和ビットレート(
図1には不図示)も最高許容ビットレートも超えるべきでないと規定する品質飽和要件を含む。同じ又は他の実施形態では、ラダー要件セット124は限定されないが、符号化ラダー172が表すべき任意の数の必須解像度を指定する必須解像度要件を含む。
【0048】
描かれていないが、幾つかの実施形態では、符号化ラダーアプリケーション130は符号化ラダー172の任意の数のインスタンスを生成し、任意選択で最適化された符号化映像セット176の対応するインスタンス(それぞれメディア作品に対してラダー要件セット124の異なるインスタンスに基づいてカスタマイズされた)を生成できる。同じ又は他の実施形態では、任意の数のメディア作品のそれぞれに対して、符号化ラダーアプリケーション130は符号化ラダー172の任意の数のインスタンスを生成し、任意選択で最適化された符号化映像セット176の対応するインスタンス(それぞれメディア作品に対してラダー要件セット124の任意の数のインスタンスに基づいてカスタマイズされた)を生成できる。
【0049】
図示のように、幾つかの実施形態では、符号化ラダーアプリケーション130は計算インスタンス110のメモリ116に常駐し、計算インスタンス110のプロセッサ112で実行される。幾つかの他の実施形態では、符号化ラダーアプリケーション130は任意の数の計算インスタンス110のメモリ116の任意の数のインスタンスに常駐し、任意の数の計算インスタンス110のプロセッサ112の任意の数のインスタンスで任意の組み合わせで実行されうる。同じ又は他の実施形態では、符号化ラダーアプリケーション130の機能は、任意の数の計算インスタンス110で実行される任意の数のソフトウェアアプリケーションに亘って分散されうる。
【0050】
幾つかの実施形態では、符号化ラダーアプリケーション130は限定されないが、ショット符号化エンジン140及びラダー生成器170を含む。図示のように、ショット符号化エンジン140はソース映像122をショット158(1)~158(M)に分割する。ショット符号化エンジン140はソース映像122を任意の数及び/又はタイプのショット158に任意の技術的に可能なやり方で分割できる。例えば、幾つかの実施形態では、ショット符号化エンジン140はソース映像122をショット158にショット変化(不図示)に基づいて分割する。各ショット変化は一対のショット158間の境界を指定する。ショット符号化エンジン140はショット変化を任意の技術的に可能なやり方で検出できる。
【0051】
図示のように、幾つかの実施形態では、ショット符号化エンジン140はソース映像122をショット変化検出器152に送信する。ショット変化を検出するために、ショット変化検出器152は任意の数のショット検出アルゴリズムをソース映像122に適用する。ショット検出アルゴリズムの例は限定されないが、多重スケール絶対差の和アルゴリズム、動き補償残留エネルギーアルゴリズム、差のヒストグラムアルゴリズム、及びヒストグラムの差アルゴリズムを含む。次にショット変化検出器152はショット変化をショット符号化エンジン140に送信する。幾つかの他の実施形態では、ショット符号化エンジン140は任意の数のショット検出処理をソース映像122に実行しショット変化を検出する。
【0052】
幾つかの実施形態では、ショット符号化エンジン140はまた、ソース映像122から無関係の画素を取り除く。例えば、ショット符号化エンジン140はソース映像122の境界部分に沿った黒バーに含まれる画素を取り除きうる。同じ又は他の実施形態では、ショット符号化エンジン140は各ショット158の最初のフレームが符号化操作時のキーフレームとして符号化されるのを保証する。幾つかの実施形態では、キーフレームが符号化されたショット188に含まれる場合、符号化されたショット188のキーフレーム及び全ての後続のフレームは一連の符号化されたショット群188(例えば、符号化映像)のどんな進行するフレーム群とも独立して復号される。
【0053】
ショット符号化エンジン140はショット群158の異なる最初のフレームがキーフレームとして任意の技術的に可能なやり方で符号化されるのを保証しうる。例えば、幾つかの実施形態では、ショット符号化エンジン140は、フレームをキーフレーム位置リスト(不図示)に基づいてキーフレームとして符号化するように符号器150を構成する。幾つかの他の実施形態では、ショット符号化エンジン140は任意の数及び/又はタイプの符号化操作を実行してショット158の異なる最初のフレームをキーフレームとして符号化する。
【0054】
再生中、ソース映像122に関連するメディア作品は、任意の数の関係する基準に基づいて見る体験を最適化するために、並べられたキーフレームにおいて最適化された符号化映像178から得られたそのメディア作品の復号されたバージョン間で切替え可能であることを当業者は認識するであろう。関係する基準の例は現在接続帯域幅、現在接続待ち時間、次に配信されるべきショット158のコンテンツなどを含む。
【0055】
図示のように、幾つかの実施形態では、ショット符号化エンジン140はショット158(1)~158(M)、解像度142(1)~142(N)、及び符号化パラメータセット144(1)~144(P)に基づいて符号化されたショットセット160(1,1)~160(N,M)を生成する。N及びPは任意の正の整数でありうる。説明の目的だけのために、符号化されたショットセット160(1,1)~160(N,M)はまた、本書で個々に「符号化されたショットセット160」と呼ばれ、集合的に「符号化されたショットセット群160」と呼ばれる。解像度142(1)~142(N)はまた、本書で個々に「解像度142」と呼ばれ、集合的に「解像度群142」と呼ばれる。符号化パラメータセット144(1)~144(P)はまた、本書で個々に「符号化パラメータセット144」と呼ばれ、集合的に「符号化パラメータセット群144」と呼ばれる。
【0056】
各符号化パラメータセット144は任意の数及び/又はタイプの符号化パラメータの一組の異なる一組の値を指定する。幾つかの実施形態では、各符号化パラメータセット144は限定されないが、映像コンテンツを符号化する時にビットレート及び視覚品質レベルの点で単調に変わる性能を許すQPの異なる値を指定する。QPの値はまた、本書でQP値と呼ばれる。QP値がより高いと、符号化映像コンテンツの得られるビットレートはより低くなり、符号化映像コンテンツから得られる復号された映像コンテンツはより低い視覚品質レベルとなる。
【0057】
説明の目的だけのために、符号化されたショットセット160の異なるインスタンスは必要ならば、括弧でくくられた指標表記を使ってラベル付けされる。符号化されたショットセット160の括弧でくくられた指標表記は、カンマで区切られた2つの数字を指定し、第1数字は解像度群142への指標であり、第2数字はショット群158への指標である。幾つかの実施形態では、従って、ショット符号化エンジン140は符号化されたショットセット160のN×Mインスタンスを生成する。
【0058】
幾つかの実施形態では、符号化されたショットセット160(n,m)を生成するために、ショット符号化エンジン140はショット158(m)をP個の符号化点(不図示)で符号化する。各符号化点は解像度142(n)及び異なる1つの符号化パラメータセット144を指定する。本書で言及されるように、各符号化点は1つの解像度142及び1つの符号化パラメータセット144を指定する。従って、符号化されたショットセット160(n,m)は限定されないが、P個の符号化されたショット188を含み、各符号化されたショット188は解像度142(n)を有しショット158(m)に対応する。
【0059】
例えば、幾つかの実施形態では、解像度群142は384×216、480×270、608×342、768432、960×540、1280×720、1920×1080、2560×1440、及び3840×2160であり、符号化パラメータセット144は15個の異なるQP値を指定する。幾つかのこのような実施形態では、符号化されたショットセット160(1,1)を生成するために、ショット符号化エンジン140はショット158(1)を15個の符号化点(それぞれ解像度384×216及び異なるQP値を指定する)で符号化する。そして、このような実施形態では、符号化されたショットセット160(9,M)を生成するために、ショット符号化エンジン140はショット158(M)を15個の異なる符号化点(それぞれ解像度3840×2160及び異なるQP値を指定する)で符号化する。
【0060】
幾つかの他の実施形態では、各解像度142は符号化パラメータセット144の異なるサブセットと関連しうる。例えば、幾つかの実施形態では、各解像度142(1)、142(N)は符号化パラメータセット144(1)、144(P)と関連し、各解像度142(2)~142(N-1)は符号化パラメータセット144(1)~144(P)と関連する。このような実施形態では、符号化されたショットセット160(1,1)‐142(1,M)及び142(N,1)~142(N,M)のそれぞれは限定されないが、2つの符号化されたショット188を含み、符号化されたショットセット160(2,1)‐142(N-1,M)のそれぞれは限定されないが、P個の符号化されたショット188を含む。
【0061】
ショット符号化エンジン140は符号化されたショットセット160(n,m)に含まれる符号化されたショット188を任意の技術的に可能なやり方で生成しうる。例えば、幾つかの実施形態では、ショット158(m)の解像度が解像度142(n)に等しいなら、ショット符号化エンジン140はショット158(m)を各符号化パラメータセット144で符号化して、符号化されたショットセット160(n,m)に含まれる符号化されたショット群188を生成するように符号器150を構成する。そうでなければ、ショット符号化エンジン140はショット158(m)を再サンプリング(例えば、ダウンサンプリング又はアップサンプリング)して解像度142(n)を持つ再サンプリングされたショットを生成する。次に、ショット符号化エンジン140は再サンプリングされたショットを各符号化パラメータセット144で符号化して、符号化されたショットセット160(n,m)に含まれる符号化されたショット群188を生成するように符号器150を構成する。
【0062】
符号器150は任意の数及び/又はタイプの符号化アルゴリズムを実行できる。幾つかの実施形態では、符号器150は1つ以上の並列符号器(不図示)により符号化操作を効率的に実行するように構成される。同じ又は他の実施形態では、符号器150及び任意の数(ゼロを含む)の並列符号器が、クラウド環境内に含まれる任意の数の計算インスタンス110に存在し動作する。幾つかの他の実施形態では、ショット符号化エンジン140は任意の数及び/又はタイプの符号化アルゴリズムを実行する。同じ又は他の実施形態では、システム100は符号器150を持たない。
【0063】
ショット符号化エンジン140は任意の数(ゼロを含む)のソフトウェアアプリケーションを実行及び/又は構成して、任意の数の再サンプリング処理及び任意の数の符号化操作を任意の粒度で任意の組み合わせで実行し符号化されたショット188を生成しうる。粒度の幾つかの例は限定されないが、フレーム毎、ショット毎、及び映像毎を含む。
【0064】
例えば、幾つかの実施形態では、ショット符号化エンジン140は再サンプリング処理をソース映像122に実行し解像度142(n)を持つ再サンプリングされた映像を生成する。次にショット符号化エンジン140は再サンプリングされた映像を再サンプリングされたショットに分割し、各再サンプリングされたショットを各符号化パラメータセット144で符号化して符号化されたショット群188の特定解像度のサブセット(解像度142(n)を共有する)を生成するように符号器150を構成する。次に、ショット符号化エンジン140は特定解像度のサブセットに含まれる符号化されたショット群188を符号化されたショットセット160(n,1)~160(n,M)に亘って対応するショット158に基づいて分配する。
【0065】
図示のように、幾つかの実施形態では、ラダー生成器170は符号化ラダー172及び最適化された符号化映像セット176をショット158、解像度142、及び符号化されたショットセット160(1,1)~160(N,M)に基づいて生成する。
図2~4Dと共に下記でより詳細に説明するように、幾つかの実施形態では、ラダー生成器170は凸包生成器(
図1には不図示)を各解像度142(1)~142(N)に対して映像ビットレート・品質点の異なる凸包(
図1には不図示)を生成するように構成する。
【0066】
一般事柄として、ユークリッド空間内の一組の点の凸包はその一組の点を包含する最小の凸集合である。ユークリッド空間では、凸集合は1つの領域であって、その領域内の点の全てのペアについて、点のペアを結ぶ直線線分上の全ての点もその領域内にある、領域である。有限点集合の凸包は凸多角形を形成し、その場合、凸多角形は上包と下包と呼ばれ凸包の最左の点と最右の点の間を延びる2つの線分列に分割されうる。ラダー生成器170の文脈では、各凸包は限定されないが、異なる1つの解像度142(1)~142(N)に対する任意の数の映像ビットレート・品質点を含む下包である。
【0067】
幾つかの実施形態では、各映像ビットレート・品質点は限定されないが、異なる符号化映像、その符号化映像の解像度142、その符号化映像のビットレート(
図1には不図示)、及びその符号化映像に関連する視覚品質レベル(
図1には不図示)を含む。各符号化映像は一連のショット158(1)~158(M)に対応する一連のM個の符号化されたショット188である。
【0068】
幾つかの実施形態では、特定の符号化映像のビットレート及び関連する視覚品質レベル(
図1には不図示)はその符号化映像に亘って異なりうるが、解像度はその符号化映像に亘って変わらない。より具体的には、特定の符号化映像に含まれるM個の符号化ショット188は単一の解像度142を共有するが、M個の符号化ショット188に関連するビットレート及び視覚品質レベルは異なりうる。
【0069】
本書で使用するように、符号化された一組のフレーム(例えば、符号化されたショット188、最適化された符号化映像178、符号化映像など)のビットレートは、その符号化された一組のフレームに亘る平均ビットレートを指す。符号化された一組のフレームに関連する視覚品質レベルはその符号化された一組のフレームから得られた復元された一組のフレームの視覚品質レベルを指す。復元された一組のフレームの視覚品質レベルはその復元された一組のフレームに亘る平均視覚品質レベルを指す。
【0070】
重要なことに、各解像度142について、その解像度142の凸包により指定される各符号化映像は、対応するビットレートとその解像度142の組み合わせについての最高視覚品質レベルと関連する。特定の凸包について、「凸包により指定される符号化映像」は本書ではその凸包の映像ビットレート・品質点に含まれる符号化映像を指す。
【0071】
ラダー生成器170は映像ビットレート・品質点の全体凸包を解像度142(1)~142(N)に対するN個の異なる凸包に基づいて生成する。従って、全体凸包により指定される符号化映像の解像度142は異なりうる。特に、全体凸包により指定される各符号化映像は対応するビットレートの最高視覚品質レベルと関連する。
【0072】
図2と共に下記でより詳細に説明するように、ラダー生成器170は符号化ラダー172及び最適化された符号化映像セット176を全体凸包、凸包、及びラダー要件セット124に基づいて生成する。幾つかの実施形態では、符号化ラダー172を生成するために、ラダー生成器170は各ラダー要件をラダー要件セット124に指定された順に処理して任意の数の段点(
図1には不図示)を決める。各段点は異なる映像ビットレート・品質点である。特定のラダー要件を処理するために、ラダー生成器170はそのラダー要件について任意の数(ゼロを含む)の段点を、そのラダー要件の段点及びどんな前のラダー要件の段点も集合的にそのラダー要件を満たすように決める。
【0073】
幾つかの実施形態では、ラダー生成器170は各段点を優先的に全体凸包から決め、必要であれば1つの凸包から決める。全体凸包内の各段点については、段点に含まれる符号化映像は対応するビットレートについての最高視覚品質レベルに関連する。全体凸包内にない各段点については、段点に含まれる符号化映像はその段点のビットレートと解像度142の組み合わせについての最高視覚品質レベルと関連する。
【0074】
ラダー生成器170は符号化ラダー172及び最適化された符号化映像セット176を段点群に基づいて生成する。幾つかの実施形態では、ラダー生成器170は符号化ラダー172及び最適化された符号化映像セット176を空に初期化する。各段点について、ラダー生成器170は、限定されないが段点に含まれるビットレート及び解像度142を指定するビットレート・解像度ペア174を生成し、そのビットレート・解像度ペア174を符号化ラダーに追加する。補完的に、ラダー生成器170は段点に含まれる符号化映像を1つの最適化された符号化映像178として最適化された符号化映像セット176に追加する。
【0075】
幾つかの他の実施形態では、ラダー生成器170は、符号化ラダー172に基づいて配信のために1つの最適化された符号化映像178を選択するのに関係する任意の量及び/又はタイプの情報を任意の技術的に可能なやり方で指定できる。例えば、幾つかの実施形態では、各ビットレート・解像度ペア174について、ラダー生成器170はまた、符号化ラダー172により対応する段点に含まれる視覚品質レベルを指定する。同じ又は他の実施形態では、ラダー生成器170は符号化ラダー172に含まれる各ビットレート・解像度ペア174を対応する段点に指定された符号化映像と、最適化された符号化映像セット176による代わりに、又は加えて任意の技術的に可能なやり方で関連付けうる。
【0076】
幾つかの実施形態では、ラダー生成器170は符号化ラダー172及び/又は最適化された符号化映像セット176を任意の数及び/又はタイプのメモリ(例えば、顧客装置190及び/又はコンテンツ配信ネットワーク180にとってアクセス可能なメモリ)に記憶する。同じ又は他の実施形態では、ラダー生成器170は符号化ラダー172を任意の数の顧客装置190、任意の数の計算インスタンス110、任意の数及び/又はタイプのソフトウェアアプリケーション、又はそれらの任意の組み合わせに送信する。同じ又は他の実施形態では、ラダー生成器170は最適化された符号化映像セット176をCDN180の任意の数のインスタンス、任意の数の顧客装置190、任意の数の計算インスタンス110、任意の数及び/又はタイプのソフトウェアアプリケーション、又はそれらの任意の組み合わせに送信する。
【0077】
なお、本書に記載された手法は限定ではなく例示であり、本発明のより広い要旨及び範囲から逸脱することなく変更されうる。符号化ラダーアプリケーション130、ショット符号化エンジン140、ラダー生成器170、ショット変化検出器152、符号器150、CDN180、及び終点アプリケーション192によって提供される機能の、記載された実施形態の範囲及び要旨から逸脱しない多くの変更及び変形は当業者には明白であろう。
【0078】
例えば、幾つかの実施形態では、符号化ラダーアプリケーション130、ショット符号化エンジン140、ラダー生成器170、ショット変化検出器152、符号器150、CDN180、及び終点アプリケーション192の1つ以上は、一貫性メトリックが指定された範囲内にある複数組のフレーム(ショット158ではなく)を特定し、操作するように構成されうる。フレームの各組は本書で「部分列」とも呼ばれる。補完的に、符号化された一組のフレームは本書で「符号化された部分列」とも呼ばれる。
【0079】
幾つかの実施形態では、符号化ラダーアプリケーション130は凸包及び全体凸包を任意の技術的に可能なやり方で任意の数の符号化点と関連する符号化されたショット列に基づいて生成できる。同じ又は他の実施形態では、ラダー生成器170は符号化ラダー172を全体凸包及び任意選択で任意の数の凸包に基づいて任意の技術的に可能なやり方で生成できる。例えば、幾つかの実施形態では、ラダー生成器170はラダー要件セット124の代わりに又は加えて任意の数及び/又はタイプの基準に基づいて符号化ラダー172を生成できる。同じ又は他の実施形態では、システム100はラダー要件セット124を省略する。
【0080】
本書に示されたシステム100は例示であり、変形及び変更が可能であることは理解されるであろう。例えば、符号化ラダーアプリケーション130、ショット符号化エンジン140、ラダー生成器170、ショット変化検出器152、符号器150、CDN180、及び終点アプリケーション192によって提供される本書に記載された機能は、任意の数(1つを含む)のソフトウェアアプリケーション、ハードウェア装置(例えば、ハードウェアベース符号器)、及びシステム100の任意の数の部品に組み込まれ又は分散されうる。また、
図1内の様々なユニット間の接続形態は要望に応じて変更されうる。
【0081】
図2は様々な実施形態に係る
図1のラダー生成器170のより詳細な説明図である。図示のように、幾つかの実施形態では、ラダー生成器170は符号化ラダー172及び最適化された符号化映像セット176を解像度142(1)~142(N)、ショット158(1)~158(M)、及び符号化されたショットセット160(1,1)~160(N,M)に基づいて生成する。同じ又は他の実施形態では、ラダー生成器170は限定されないが、凸包生成器230(1)~230(N)及び段選択エンジン280を含む。
【0082】
図示のように、幾つかの実施形態では、ラダー生成器170は凸包生成器230(1)~230(N)をそれぞれ解像度142(1)~142(N)に関連する凸包240(1)~240(N)を生成するように構成する。各凸包生成器230(1)~230(N)は、本書で「凸包生成器230」と呼ばれる単一のソフトウェアアプリケーションの異なるインスタンスである(明示されてない)。凸包生成器230(1)~230(N)はまた、本書で個々に「凸包生成器230」と呼ばれ、集合的に「凸包生成器群230」と呼ばれる。
【0083】
図示のように、凸包240(1)は限定されないが、映像ビットレート・品質点250(1)~250(V)を含む。Vは任意の正の整数でありうる。説明の目的だけのために、凸包240(1)~240(N)はまた、本書で個々に「凸包240」及び「映像ビットレート・品質点群の凸包240」と呼ばれ、集合的に「凸包群240」及び「映像ビットレート・品質点群の凸包群240」と呼ばれる。映像ビットレート・品質点250のインスタンス(映像ビットレート・品質点250(1)~250(V)を含む)はまた、本書で個々に「映像ビットレート・品質点250」と呼ばれ、集合的に「映像ビットレート・品質点群250」と呼ばれる。明示されてないが、各凸包240(2)~240(N)は限定されないが、任意の数の映像ビットレート・品質点250を含む。各凸包240(1)~240(N)内の映像ビットレート・品質点250の数は異なりうる。
【0084】
図示のように、幾つかの実施形態では、ラダー生成器170は凸包生成器230(n)(nは1からNの整数)を、解像度142(n)、ショット158(1)~158(M)、及び解像度142(n)に関連する符号化されたショットセット160(n,1)~160(n,M)に基づいて凸包240(n)を生成するように構成する。幾つかの他の実施形態では、ラダー生成器170は凸包240(1)~240(N)を順次又は同時に又はそれらの任意の組み合わせで生成するようにN個未満の凸包生成器230を構成しうる。例えば、幾つかの実施形態では、ラダー生成器170は凸包240(1)~240(N)を順次生成するように凸包生成器230(1)を構成する。
【0085】
幾つかの実施形態では、各映像ビットレート・品質点250は限定されないが、符号化映像258の異なるインスタンス、符号化映像258の解像度142、符号化映像258のビットレート254、及び符号化映像258に関連する視覚品質レベル256を含む。説明の目的だけのために、符号化映像258のインスタンスはまた、本書で個々に「符号化映像258」と呼ばれ、集合的に「符号化映像群258」と呼ばれる。ビットレート254のインスタンスはまた、本書で個々に「ビットレート254」と呼ばれ、集合的に「ビットレート群254」と呼ばれる。視覚品質レベル256のインスタンスはまた、本書で個々に「視覚品質レベル256」と呼ばれ、集合的に「視覚品質レベル群256」と呼ばれる。
【0086】
各符号化映像258は一連のショット158(1)~158(M)に対応する一連のM個の符号化されたショット188であり、符号化されたショット188のビットレート254及び関連する視覚品質レベル256は異なりうるが、符号化されたショット188の解像度142は同じである。凸包240(n)は解像度142(n)と関連するので(nは1からNの整数)、凸包240(n)により指定される各符号化映像258は解像度142(n)を持つ。従って、凸包240(n)内の各映像ビットレート・品質点250は解像度142(n)を含む。
図3と共に下記でより詳細に説明するように、幾つかの実施形態では、凸包生成器230は凸包240(n)により指定される各符号化映像258はビットレート254と解像度142(n)の組み合わせに対する視覚品質レベル256のうち最高と関連する。
【0087】
図示のように、幾つかの実施形態では、ラダー生成器170は全体凸包260を凸包240(1)~240(N)に基づいて生成する。全体凸包260は凸包240(1)~240(N)の映像ビットレート・品質点250の和集合の部分集合である。説明の目的だけのために、全体凸包260はまた、本書で「映像ビットレート・品質点群の全体凸包260」と呼ばれる。全体凸包260内の映像ビットレート・品質点250に含まれる符号化映像258はまた、本書で「全体凸包260により指定された符号化映像258」と呼ばれる。ラダー生成器170は、全体凸包260により指定された各符号化映像258がビットレート254に対する視覚品質レベル256のうち最高と関連付けられるのを保証する任意の技術的に可能なやり方で全体凸包260を生成できる。
【0088】
凸包を生成するための多くの手法は数学の分野で周知であり、ラダー生成器170は任意の数のそのような手法を実行し全体凸包260を生成できることを当業者は理解するであろう。例えば、幾つかの実施形態では、ラダー生成器170は各凸包240(1)~240(N)の凸包曲線(
図2には不図示)を生成する。凸包240(n)(nは1からNの整数)の凸包曲線を生成するために、ラダー生成器170はビットレート254をビットレート軸(
図2には不図示)上に視覚品質レベル256を品質軸(
図2には不図示)上に配置することで凸包240(n)内の各映像ビットレート・品質点250をプロットする。
【0089】
凸包曲線を生成した後、ラダー生成器170は凸包曲線上の映像ビットレート・品質点250を評価し全体凸包260を決定する。より具体的には、ラダー生成器170は全ての凸包曲線に亘る映像ビットレート・品質点250の部分集合を特定する。その部分集合は、全ての映像ビットレート・品質点250がその境界の片側に存在する境界を形成し、その特定された部分集合に含まれる任意の2つの連続する映像ビットレート・品質点250を直線で接続すると、その特定された部分集合に含まれない全ての映像ビットレート・品質点250はその線の同じ側に残るような部分集合である。全体凸包260は映像ビットレート・品質点250のその特定された部分集合である。
【0090】
図示のように、幾つかの実施形態では、段選択エンジン280は符号化ラダー172及び最適化された符号化映像セット176を全体凸包260、凸包240、及びラダー要件セット124に基づいて生成する。ラダー要件セット124は限定されないが、ラダー要件224(1)~224(C)を含む。Cは任意の正の整数でありうる。各ラダー要件224は、符号化ラダー172が任意の技術的に可能なやり方で満たす必要がある任意の数及び/又はタイプの条件、制約、基準などを指定できる。
【0091】
幾つかの実施形態では、
図2に記述したように、各ラダー要件224は限定されないが、最小ビットレート要件、品質飽和要件、中点要件、ビットレート間隔要件、条件付き解像度要件、必須解像度要件、又は影ビットレート要件でありうる。最小ビットレート要件は最低許容ビットレートを指定し、符号化ラダー172によって表されるビットレート254のどれも最低許容ビットレート未満であるべきでないと規定する。品質飽和要件は最高許容ビットレートを指定し、符号化ラダー172によって表されるビットレート254の最高は品質飽和ビットレート292も最高許容ビットレートも超えるべきでないと規定する。
【0092】
中点要件は符号化ラダー172によって表されるビットレート254の1つは符号化ラダー172によって表されるビットレート254の最高と最低の間のほぼ中点であるべきであると規定する。ビットレート間隔要件は符号化ラダー172によって表されるビットレート254の目標ビットレート間隔を指定する。条件付き解像度要件は1つ以上の条件付き解像度を指定し、全体凸包260によって表される各条件付き解像度について、符号化ラダー172内の少なくとも1つのビットレート・解像度ペア174の解像度はその条件付き解像度に等しいべきであると規定する。
【0093】
必須解像度要件は1つ以上の必須解像度を指定し、各必須解像度について、符号化ラダー172内の少なくとも1つのビットレート・解像度ペア174の解像度142はその必須解像度に等しいべきであると規定する。影ビットレート要件は必須解像度、対応する最小視覚品質レベル、及び任意の数及び/又はタイプの追加の条件を指定し、符号化ラダー172はその条件に従って少なくとも最小視覚品質レベルに対応した必須解像度を表すべきであると規定する。条件の幾つかの例は限定されないが、影点の最大数、影解像度に対する目標ビットレート間隔、及び影解像度によって表される最小ビットレートを含む。
【0094】
幾つかの実施形態では、段選択エンジン280は限定されないが、選択アルゴリズム290を含む。選択アルゴリズム290は段点298(1)~298(L)(Lは任意の正の整数でありうる)をラダー要件セット124、全体凸包260、及び任意の数(ゼロを含む)の凸包240に基づいて決める。説明の目的だけのために、段点298(1)~298(L)はまた、本書で個々に「段点298」と呼ばれ、集合的に「段点群298」と呼ばれる。段点298(1)~298(L)は任意の組み合わせの任意の数の凸包240に亘って分散されたL個の映像ビットレート・品質点250である。任意の数の段点298(1)~298(L)はまた、全体凸包260内にある。選択アルゴリズム290は段点298(1)~298(L)を任意の技術的に可能なやり方で決めうる。
【0095】
幾つかの実施形態では、選択アルゴリズム290はラダー要件224(1)~224(R)をラダー要件224がラダー要件セット124内で指定される順に順次処理して段点298を決定する。ラダー要件224(r)(rは1からRの整数)を処理するために、選択アルゴリズム290はラダー要件224(r)の段点298及びラダー要件224(1)~224(r-1)の段点298が集合的にラダー要件224(r)を満たすようにラダー要件224(r)に対して任意の数(ゼロを含む)の段点298を決定する。選択アルゴリズム290はラダー要件224(r)に対して段点298を任意の技術的に可能なやり方で決定できる。
【0096】
幾つかの実施形態では、選択アルゴリズム290はラダー要件224(1)~224(r-1)の段点298によってラダー要件224(r)が既に満たされているかを判断する。ラダー要件224(r)が既に満たされているならば、選択アルゴリズム290はラダー要件224(r)に対して何も段点298を決定しない。そうでなければ、選択アルゴリズム290はラダー要件224(r)に対して段点298を決めるのを可能にする任意の量及び/又はタイプの情報を計算する。
【0097】
図示のように、幾つかの実施形態では、ラダー要件224(r)が品質飽和要件であるならば、選択アルゴリズム290は品質飽和ビットレート292を全体凸包260に基づいて計算する。品質飽和ビットレート292は、ソース映像122を符号化するのに使用されるビットの数を増加させることが対応する復元された映像の視覚品質を知覚できるほどは増加させないビットレート254である。選択アルゴリズム290は品質飽和ビットレート292を任意の技術的に可能なやり方で計算できる。例えば、幾つかの実施形態では、選択アルゴリズム290は全体凸包260を評価して対応する全体凸包曲線(
図2には不図示)の傾きが飽和傾き未満に減少する飽和点を求め、品質飽和ビットレート292をその飽和点のビットレート254に等しく設定する。
【0098】
幾つかの他の実施形態では、選択アルゴリズム290は全体凸包260に関連する膝点を検出し、任意の数及び/又はタイプの試行錯誤を行い膝点に基づいて品質飽和ビットレート292を計算する。本書で言及するように、全体凸包260に関連する膝点は、対応する全体凸包曲線の屈曲点である。曲線の膝点を求めるための多くの手法が数学の分野で周知であり、選択アルゴリズム290は任意の数のそのような手法を実行し全体凸包260に関連する膝点を検出できることを当業者は理解するであろう。例えば、幾つかの実施形態では、選択アルゴリズム290は全体凸包曲線を2つの線分に分ける。次に選択アルゴリズム290は膝点を全体凸包260内の映像ビットレート・品質点250とそれぞれの線分の間の垂直距離(又は垂直投射)の和を最小にする点に等しく設定する。
【0099】
幾つかの実施形態では、1つ以上の映像ビットレート・品質点250をラダー要件224(r)に対する段点298として選択する前に、選択アルゴリズム290はラダー要件224(r)が幾つか必須解像度を指定しているか判断する。ラダー要件224(r)が何も必須解像度を指定していないなら、選択アルゴリズム290はラダー要件224(r)に対する各段点298を全体凸包260内の映像ビットレート・品質点250から選択する。
【0100】
一方、ラダー要件224(r)が1つ以上の必須解像度を指定するならば、選択アルゴリズム290はラダー要件224(r)に対する各段点298を全体凸包260内の映像ビットレート・品質点250から優先的に選択し、必要なら1つの凸包240内の映像ビットレート・品質点250から選択する。より具体的には、選択アルゴリズム290がラダー要件224(r)を満たす段点298を全体凸包260から選択できない場合、選択アルゴリズム290は任意の数の凸包240から任意の数の映像ビットレート・品質点250をラダー要件224(r)に対する段点298として選択する。
【0101】
例えば、ラダー要件224(r)が解像度142(1)は必須解像度であり、全体凸包260内の映像ビットレート・品質点250のどれも解像度142(1)を有しないと規定するならば、選択アルゴリズム290はラダー要件224(r)に対する段点298を凸包240(1)から選択する。幾つかの実施形態では、映像ビットレート・品質点250を凸包240から段点298として選択する場合、選択アルゴリズム290は全体凸包260に最も近い映像ビットレート・品質点250を選択しようとする。
【0102】
選択アルゴリズム290は任意の数及び/又はタイプの操作、試行錯誤などを任意の数のラダー要件224に基づいて実行し各ラダー要件224に対する段点298を決定できる。例えば、幾つかの実施形態では、ラダー要件224(1)及び224(2)は最小ビットレート要件及び品質飽和要件(又は順番が逆である)であり、符号化ラダー172が表す最低ビットレート及び最高ビットレートを定める。各ラダー要件224(3)~224(R)に対する段点298を決める時、選択アルゴリズム290は最低ビットレートと最高ビットレートの間のビットレート254を有する段点298を選択する。
【0103】
幾つかの実施形態では、ラダー要件224(r)が目標ビットレート間隔を指定しないなら、選択アルゴリズム290はラダー要件224(1)~224(r)に対する段点298間の最小ビットレート間隔を最大にするようにラダー要件224(r)に対して段点298を選択する。同じ又は他の実施形態では、ラダー要件224(r)が目標ビットレート間隔を指定するなら、選択アルゴリズム290は目標ビットレート間隔を満たすために横切る手法を実行する。より正確には、選択アルゴリズム290はラダー要件224(1)~224(r-1)に対する段点298をビットレート254の最低から最高へ横切る。横切る間、隣接する段点298間のビットレート間隔が目標ビットレート間隔より大きいと、選択アルゴリズム290はその隣接する段点298のビットレート254間に位置するビットレート254を有する任意の数の段点298をラダー要件224(r)に対して選択する。
【0104】
幾つかの実施形態では、選択アルゴリズム290はビットレート254の増加に対する視覚品質レベル256及び解像度142の単調性を保証する。より具体的には、段点298(i)のビットレート254が段点298(j)のビットレート254より大きいと(iとjは1とLの間の異なる整数)、段点298(i)の視覚品質レベル256及び解像度142は段点298(j)の視覚品質レベル256及び解像度142より大きいか等しい。
【0105】
図示のように、段選択エンジン280は符号化ラダー172及び最適化された符号化映像セット176を段点298(1)~298(L)に基づいて生成する。段選択エンジン280は符号化ラダー172及び最適化された符号化映像セット176を任意の技術的に可能なやり方で生成できる。幾つかの実施形態では、段選択エンジン280は符号化ラダー172及び最適化された符号化映像セット176を生成する前に任意の数及び/又はタイプの分類操作を段点298(1)~298(L)に実行する。例えば、幾つかの実施形態では、段選択エンジン280は段点298をビットレート254の最低から最高へ並べ換える。同じ又は他の実施形態では、段選択エンジン280は符号化ラダー172及び最適化された符号化映像セット176を初期化して空にし、並べ換えた各段点298を処理する。
【0106】
段点298を処理するために、段選択エンジン280は段点298に含まれるビットレート254及び解像度142を指定するビットレート・解像度ペア174を生成する。段選択エンジン280はビットレート・解像度ペア174に対応する最適化された符号化映像178を段点298に含まれる符号化映像258に等しく設定する。段選択エンジン280は次にビットレート・解像度ペア174を符号化ラダー172に追加し最適化された符号化映像178を最適化された符号化映像セット176に追加する。
【0107】
図2と共に前述したように、幾つかの実施形態では、ラダー生成器170は符号化ラダー172及び/又は最適化された符号化映像セット176を任意の数及び/又はタイプのメモリに記憶する。同じ又は他の実施形態では、ラダー生成器170は符号化ラダー172を任意の数及び/又はタイプの装置及び/又はソフトウェアアプリケーションに送信する。同じ又は他の実施形態では、ラダー生成器170は最適化された符号化映像セット176を任意の数及び/又はタイプの装置及び/又はソフトウェアアプリケーションに送信する。
【0108】
有利にも、符号化ラダー172によって表されるビットレート254と視覚品質レベル256の間のトレードオフはショット158の複雑度に基づいてカスタマイズされるので、従来の固定ビットレートラダーに原因する符号化非能率は低減されうる。特に、ラダー要件セット124が品質飽和制約を含む時、段選択エンジン280は符号化ラダー172に指定されたビットレート254のどれも品質飽和ビットレート292を超えないことを保証する。その結果、任意の数の視覚品質レベル256について、符号化ラダー172に基づいて配信のために選択された最適化された符号化映像178のビットレート254は、従来の固定ビットレートラダーに基づいて配信のために選択された従来方法で符号化された映像のビットレート254より低いことがある。
【0109】
また、全体凸包260内の段点298の1つに対応する各ビットレート・解像度ペア174について、解像度142は視覚品質レベル256に関して最適化される。その結果、任意の数のビットレート254について、符号化ラダー172に基づいて配信のために選択された最適化された符号化映像178に関連する視覚品質レベル256は、従来の固定ビットレートラダーに基づいて配信のために選択された従来方法で符号化された映像に関連する視覚品質レベル256より高いことがある。
【0110】
また、各段点298が全体凸包260内にあるかに拘わらず、最適化された符号化映像178(1)~178(L)に関連する視覚品質レベル256はビットレート・解像度ペア174(1)~174(L)に対して最適化される。その結果、視覚品質レベル256を解像度制限シナリオで増加させうる。解像度制限シナリオの例は配信セッションが1920×1080の解像度142に制限される場合である。解像度制限シナリオでは、符号化ラダー172が許される解像度142に対してある範囲の視覚品質レベル256を表す場合、符号化ラダー172に基づいて配信のために選択される最適化された符号化映像178に関連する視覚品質レベル256を増加させうる。
【0111】
図3は様々な実施形態に係る
図2の凸包生成器230の1つのより詳細な説明図である。より具体的には、
図3は解像度142(1)、ショット158(1)~158(M)、及び符号化されたショットセット160(1,1)~160(1,M)に基づいて凸包240(1)を生成する凸包生成器230(1)を描く。
図1と共に前述したように、符号化されたショットセット160(1,1)~160(1,M)は符号化されたショット群188の部分集合であり、解像度142(1)を共有しショット158(1)~158(M)にそれぞれ対応する。
【0112】
図示のように、幾つかの実施形態では、凸包生成器230(1)は解像度142(1)、ショット158(1)~158(M)、及び符号化されたショットセット160(1,1)~160(1,M)に基づいてランク付けされたショットデータセット350(1)~350(M)を生成する。Mはショット158の数である。説明の目的だけのために、ランク付けされたショットデータセット350(1)~350(M)はまた、本書で個々に「ランク付けされたショットデータセット350」と呼ばれ、集合的に「ランク付けされたショットデータセット群350」と呼ばれる。
【0113】
ランク付けされたショットデータセット350(1)~350(M)はショット158(1)~158(M)とそれぞれ関連する。各ランク付けされたショットデータセット350は限定されないが、ショットビットレート・品質点320の任意の数のインスタンス(明示されてない)を含み、ショットビットレート・品質点320の各インスタンスは符号化されたショット188のうち異なる1つに対応する。説明の目的だけのために、ショットビットレート・品質点320のインスタンスはまた、本書で個々に「ショットビットレート・品質点320」と呼ばれ、集合的に「ショットビットレート・品質点群320」と呼ばれる。また、ショットビットレート・品質点320のインスタンスは必要ならば、括弧でくくられた指標表記を使ってラベル付けされる。ショットビットレート・品質点320の括弧でくくられた指標表記は、カンマで区切られた2つの数字を指定し、第1数字はショット群158への指標であり、第2数字は符号化パラメータセット群144への指標である。
【0114】
幾つかの実施形態では、ランク付けされたショットデータセット350(m)(mは1~Mの整数)は限定されないが、解像度142(1)に対応するショットビットレート・品質点320(m,1)~320(m,P)、ショット158(m)、及び符号化パラメータセット144(1)~144(P)を含む。同じ又は他の実施形態では、各ショットビットレート・品質点320は限定されないが、そのショットビットレート・品質点320に対応する符号化されたショット188、符号化されたショット188の解像度142、符号化されたショット188のビットレート254、及び符号化されたショット188に関連する視覚品質レベル256を含む。図示のように、凸包生成器230(1)は解像度142(1)を持つ符号化されたショット188に対するショットビットレート・品質点320を生成するので、凸包生成器230(1)によって生成されるショットビットレート・品質点320は解像度142(1)を共有する。
【0115】
図2に戻ると、凸包生成器230(2)~230(N)によって生成されたランク付けされたショットデータセット群350は解像度142(1)ではなく解像度142(2)~142(N)にそれぞれ対応する。従って、凸包生成器230(2)~230(N)によって生成されたショットビットレート・品質点群320は解像度142(1)ではなく解像度142(2)~142(N)をそれぞれ共有する。
【0116】
図3に戻ると、幾つかの実施形態では、ランク付けされたショットデータセット350(1)は限定されないが、解像度142(1)に対応するショットビットレート・品質点320(1,1)~320(1,P)、ショット158(1)、及び符号化パラメータセット144(1)~144(P)を含む。そして、ランク付けされたショットデータセット350(M)は限定されないが、解像度142(1)に対応するショットビットレート・品質点320(M,1)~320(M,P)、ショット158(M)、及び符号化パラメータセット144(1)~144(P)を含む。幾つかの他の実施形態では、各ショット158を符号化するのに使用する符号化パラメータセット144の数は異なりうり、従って、各ランク付けされたショットデータセット350に含まれるショットビットレート・品質点320の数は異なりうる。
【0117】
凸包生成器230(1)は各ランク付けされたショットデータセット350(m)(mは1~Mの整数)を解像度142(1)、ショット158(m)、及び符号化されたショットセット160(1,m)に基づいて生成する。
図1と共に前述したように、符号化されたショットセット160(1,m)は限定されないが、解像度142(1)に基づいて生成された符号化されたショット群188、ショット158(m)、及び符号化パラメータセット群144を含む。凸包生成器230(1)はランク付けされたショットデータセット350(m)を任意の技術的に可能なやり方で生成できる。
【0118】
幾つかの実施形態では、符号化されたショットセット160(1,m)に含まれる各符号化されたショット188について、凸包生成器230(1)はその符号化されたショット188のビットレート254と関連する視覚品質レベル256を計算してその符号化されたショット188に対応するショットビットレート・品質点320を生成する。凸包生成器230(1)は次に符号化されたショットセット160(1,m)に含まれる符号化されたショット188に対応するショットビットレート・品質点320をビットレート254の最低から最高へ並べ換えてランク付けされたショットデータセット350(m)を生成する。
【0119】
前述したように、各ビットレート254は平均ビットレートを指定する。凸包生成器230(1)は各符号化されたショット188のビットレート254を任意の技術的に可能なやり方で計算できる。例えば、幾つかの実施形態では、凸包生成器230(1)は符号化されたショット188の解像度142に必要なビットの総数をその符号化されたショット188に対応するショット158の長さで割り算しビットレート254を求めうる。
【0120】
各視覚品質レベル256は視覚品質に任意の技術的に可能なやり方で相関する任意のタイプのメトリックの値でありうる。幾つかの実施形態では、各視覚品質レベル256は視覚品質メトリックの値である。視覚品質メトリックの幾つかの例は限定されないが、ピーク信号対雑音比、直線映像多メソッド評価融合(VMAF)メトリック、及び調和VMAFメトリックを含む。直線VMAFメトリック及び調和VMAFメトリックはまた、本書で個々にVMAFメトリックと呼ばれる。VMAFメトリックは復元された映像コンテンツ(例えば、復元されたショット198、復元された映像など)の知覚映像品質を推定する。
【0121】
幾つかの実施形態では、視覚品質レベル256の様々な部分集合は異なるメトリック及び/又はアルゴリズムに基づいて計算されうる。同じ又は他の実施形態では、視覚品質レベル群256は、解像度142(1)~142(N)に亘って符号化されたショット188に関連する視覚品質レベル群256が視覚品質に一貫して相関するように規格化される。幾つかの実施形態では、各視覚品質レベル256は歪みレベルで置き換えられ、本書に記載された手法はそれに応じて変更される。
【0122】
幾つかの実施形態では、特定の符号化されたショット188に関連する視覚品質レベル256を決めるために、凸包生成器230(1)は符号化されたショット188を復号して復号されたショット(不図示)を生成する。凸包生成器230(1)は次に復号されたショットを目標解像度に合わせて再サンプリング(即ち、アップサンプリング又はダウンサンプリング)して、ある種の顧客装置及び/又は表示器の表示特性に関係する復元されたショット198を生成する。幾つかの実施形態では、符号化されたショット188の解像度142に拘わらず、目標解像度は同じである。幾つかの他の実施形態では、目標解像度は符号化されたショット188の解像度142に基づいて異なりうり、視覚品質レベル256は解像度142(1)~142(N)に亘って任意の技術的に可能なやり方で規格化されうる。
【0123】
次に、凸包生成器230(1)は復元されたショット198及び任意選択で復元されたショット198に対応するショット158を分析して符号化されたショット188に関連する視覚品質レベル256を決定する。例えば、幾つかの実施形態では、凸包生成器230(1)はVMAF(又は調和VMAF)アルゴリズムを実行して符号化されたショット188から得られた復元されたショット198及び符号化されたショット188がそれから得られたショット158に基づいて符号化されたショット188に関連するVMAFスコアを計算する。凸包生成器230(1)は次に視覚品質レベル256をVMAFスコアに等しく設定する。
【0124】
凸包240(1)を生成するために、凸包生成器230(1)は解像度142(1)を持つショットビットレート・品質点320を集めてビットレート254と視覚品質レベル256の間のトレードオフを解像度142(1)に対して最適化する映像ビットレート・品質点250にする。凸包生成器230(1)は解像度142(1)を持つショットビットレート・品質点320を集めて凸包240(1)に含まれる映像ビットレート・品質点250にするために任意の数及び/又はタイプの手法を実行できる。
【0125】
より具体的には、各映像ビットレート・品質点250は符号化パラメータセット群144の異なる軌跡に関連する。例えば、映像ビットレート・品質点250(1)はショット158(1)のQP値18、ショット158(2)のQP値14、ショット158(3)のQP値14、ショット158(4)のQP値20などと関連しうる。
図2に戻って、凸包240(1)内の各映像ビットレート・品質点250(1)~250(V)は異なる軌跡に関連し、従って、凸包240(1)に関連するV個の異なる軌跡が存在する。幾つかの実施形態では、各映像ビットレート・品質点250について、視覚品質レベル256は符号化パラメータセット群144の軌跡に対応する符号化されたショット188に関連する視覚品質レベル群256の総計である。同じ又は他の実施形態では、各映像ビットレート・品質点250について、ビットレート254は符号化パラメータセット群144の軌跡に対応する符号化されたショット188のビットレート254の平均である。
【0126】
図示のように、幾つかの実施形態では、凸包生成器230(1)はトレリス反復器380を、ランク付けされたショットデータセット350(1)~350(M)に基づいて凸包240(1)を生成するように構成する。
図4A~4Dと共に下記で詳細に説明するように、トレリス反復器380はランク付けされたショットデータセット350(1)~350(M)に基づいて系列トレリス390を反復更新して凸包240(1)に含まれる映像ビットレート・品質点群250を生成する。トレリス反復器380はソフトウェアモジュールで、系列トレリス390はデータ構造体(
図4A~4Dと共に下記でより詳細に説明する)である。
【0127】
図2に戻ると、幾つかの実施形態では、凸包生成器230(1)~230(N)はトレリス反復器380の任意の数のインスタンスを使用してそれぞれ凸包240(1)~240(N)を解像度142(1)~142(N)のランク付けされたショットデータセット350に基づいて生成する。
【0128】
映像ビットレート・品質点の凸包及び映像ビットレート・品質点の全体凸包の生成
図4A~4Dは様々な実施形態に係る
図3のトレリス反復器380が凸包240(1)をランク付けされたショットデータセット350(1)~350(M)に基づいて生成する仕方のより詳細な説明図である。説明の目的だけのために、トレリス反復器380の機能は、描かれた実施形態の解像度142(1)に対する凸包240(1)を生成する文脈で
図4A~4Dに説明されている。
【0129】
図4A~4Dに示すように、系列トレリス390は限定されないが、ショット軸410及びビットレート軸430を含む。系列トレリス390はまた、限定されないが、解像度142(1)のランク付けされたショットデータセット350のうち異なる1つにそれぞれ対応する(従って、ショット158(1)~158(M)のうち異なる1つにそれぞれ対応する)M個の列を含む。1からMの整数mに対して、m番目の列は限定されないが、解像度142(1)とショット158(m)の組み合わせに対応するランク付けされたショットデータセット350に含まれるショットビットレート・品質点320を含む。
【0130】
各列に含まれるショットビットレート・品質点320はランク付けされたショットデータセット350に従ってランク付けされる。より具体的には、各列に含まれるショットビットレート・品質点320はビットレート254の最低から最高へランク付けされる(そして構成上、視覚品質レベル256の最低から最高へランク付けされる)。幾つかの実施形態では、各列に含まれるショットビットレート・品質点320は正の傾斜を有し、大きさがビットレート254の関数として増加する。
【0131】
便宜上、系列トレリス390に含まれるショットビットレート・品質点320が一対の数字でラベル付けされた円として描かれていて、数字の各対は
図3と共に前述した指標表記に従って、ショットビットレート・品質点320のうち異なる1つを表す。
図3に戻って、各ショットビットレート・品質点320について、第1の数字はランク付けされたショットデータセット群350、従ってショット群158への指標である。第2の数字は第1の数字で指定されたランク付けされたショットデータセット350内のショットビットレート・品質点320のビットレート順位への指標である。幾つかの実施形態では、1からMの整数m及び1からPの整数pに対して、ショットビットレート・品質点320(m,p)はショット158(m)とランク付けされたショットデータセット350(m)に含まれるp番目に低いビットレート254とに対応する。
【0132】
説明の目的だけのために、
図4A~4Dに描かれた実施形態では、ショット158の数は5、符号化パラメータセット144の数は4である。幾つかの他の実施形態では、ショット158の数及び符号化パラメータセット144の数は任意の正の整数でありうる。同じ又は他の実施形態では、各ショット158及び/又は各解像度142に対してランク付けされたショットデータセット350を生成するために使用される符号化パラメータセット144の数は異なりうる。その結果、系列トレリス390の各列に含まれるショットビットレート・品質点320の数は異なりうる。
【0133】
図4A~4Dに描かれた実施形態では、ショットビットレート・品質点320(1,1)はショット158(1)及びランク付けされたショットデータセット350(1)に含まれる最低ビットレート254に対応する。別の例では、ショットビットレート・品質点320(5,4)はショット158(5)及びランク付けされたショットデータセット350(5)に含まれる4番目に低いビットレート254(この場合、最高ビットレート254)に対応する。
【0134】
図3と共に前述したように、各ショットビットレート・品質点320は限定されないが、符号化されたショット188のうち異なる1つを含む。トレリス反復器380は、各ショット158が1つの符号化されたショット188と関連するように複数のショットビットレート・品質点320の組み合わせを選択することで凸包240(1)内の各映像ビットレート・品質点250を生成する。トレリス反復器380は系列トレリス390を実施しこの組み合わせ手法を反復実行して映像ビットレート・品質点250のうち異なる1つを各繰り返し時に生成する。
【0135】
図4A~4Dのそれぞれはトレリス反復器380によって異なる繰り返し時に生成される系列トレリス390の異なるバージョンを示す。
図4Aは初期状態の系列トレリス390(1)を示す。ここでは、トレリス反復器380はショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,1)、及び320(5,1)を選択する。この初期に選択される組み合わせに含まれる各ショットビットレート・品質点320は最低ビットレート254及び最低視覚品質レベル256を有し、従って、それぞれの列の底にある。
【0136】
トレリス反復器380はショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,1)、及び320(5,1)に含まれる符号化されたショット188(1,1)、188(2,1)、188(3,1)、188(4,1)、及び188(5,1)を順に集め、映像ビットレート・品質点250(1)に含まれる符号化映像258(1)を生成する。また、トレリス反復器380は映像ビットレート・品質点250(1)に含まれるビットレート254(1)をショット158(1)~158(5)の長さ及びショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,1)、及び320(5,1)に含まれるビットレート254に基づいて計算する。トレリス反復器380はまた、映像ビットレート・品質点250(1)に含まれる視覚品質レベル256(1)をショット158(1)~158(5)の長さ及びショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,1)、及び320(5,1)に含まれる視覚品質レベル256に基づいて計算する。トレリス反復器380は、視覚品質レベル256(1)を任意の技術的に可能なやり方で計算できる。
【0137】
トレリス反復器380は次に初期に選択される組み合わせ内のショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,1)、及び320(5,1)のそれぞれについて、ショットビットレート・品質点320とその上方隣りの間でビットレート254に対する視覚品質レベル256の変化率を計算する。
図4Aに示すように、幾つかの実施形態では、トレリス反復器380はショットビットレート・品質点320(1,1)と320(1,2)の間、320(2,1)と320(2,2)の間、320(3,1)と320(3,2)の間、320(4,1)と320(4,2)の間、及び320(5,1)と320(5,2)の間でビットレート254に対する視覚品質レベル256の変化率を計算する。なお、特定のショット158に関連するショットビットレート・品質点320の計算された変化率は、そのショット158に関連するビットレート・品質曲線(不図示)のショットビットレート・品質点320における微分係数を表す。
【0138】
図示のように、幾つかの実施形態では、トレリス反復器380は最大の大きさを持つ微分係数を選択し、次にその微分係数と関連する上方隣りを選択し次の映像ビットレート・品質点250を生成する。
図4Bに示すように、幾つかの実施形態では、トレリス反復器380はショットビットレート・品質点320(4,1)に関連する微分係数が最大であると判断し、従って、ショットビットレート・品質点320(4,2)(ショットビットレート・品質点320(4,1)の上方隣り)を選択して映像ビットレート・品質点250(1)を生成する。
【0139】
トレリス反復器380はショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,2)、及び320(5,1)に含まれる符号化されたショット188(1,1)、188(2,1)、188(3,1)、188(4,2)、及び188(5,1)を順に集め、映像ビットレート・品質点250(2)に含まれる符号化映像258(2)を生成する。また、トレリス反復器380は映像ビットレート・品質点250(2)に含まれるビットレート254(2)をショット158(1)~158(5)の長さ及びショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,2)、及び320(5,1)に含まれるビットレート254に基づいて計算する。トレリス反復器380はまた、映像ビットレート・品質点250(2)に含まれる視覚品質レベル256(2)をショット158(1)~158(5)の長さ及びショットビットレート・品質点320(1,1)、320(2,1)、320(3,1)、320(4,2)、及び320(5,1)に含まれる視覚品質レベル256に基づいて計算する。
【0140】
トレリス反復器380はこの手法を繰り返し実行することで、系列トレリス390を
図4C、4Dに示すように昇る。
図4Cに示すように、幾つかの実施形態では、トレリス反復器380はショットビットレート・品質点320(1,1)に関連する微分係数が他の微分係数と比べて最大であると判断し、従って、ショットビットレート・品質点320(1,2)を選択して映像ビットレート・品質点250(3)を生成する。
【0141】
幾つかの実施形態では、トレリス反復器380はこの処理を、
図4Dに示すようにトレリス反復器380が映像ビットレート・品質点250(16)をショットビットレート・品質点320(1,4)、320(2,4)、320(3,4)、320(4,4)、及び320(5,4)に基づいて生成するまで続ける。このように、トレリス反復器380は、ビットレート254と視覚品質レベル256両方が増加する単一のショットビットレート・品質点320を各繰り返しで選択することで符号化映像258(1)を徐々に改善する。その結果、凸包240(1)は増加するビットレート254及び増加する視覚品質レベル256を有する符号化映像258の一群に対応する。
【0142】
幾つかの実施形態では、トレリス反復器380は、終了状態を生成するために系列トレリス390を昇る前に任意の数のショットビットレート・品質点320を生成し系列トレリス390に追加する。その際、トレリス反復器380は各ランク付けされたショットデータセット350について最高のビットレート254を有するショットビットレート・品質点320を繰り返してショットビットレート・品質点群320の最後から2番目と最後の間の変化率をゼロにさせることができる。トレリス反復器380が全てのショット158についてこれらのゼロ変化率を検出すると、即ち、変化率の最大の大きさが正確にゼロであると、トレリス反復器380は終了状態を特定し反復を止める。
【0143】
図5Aは様々な実施形態に係る
図2のラダー生成器によって複数の異なる凸包240に基づいて生成される全体凸包260を示す。説明の目的だけのために、
図5Aに描かれた実施形態では、解像度142の数は4であり、解像度142(1)~142(4)はそれぞれ1280×720、1920×1080、2560×1440、及び3840×2160である。凸包240(1)~240(4)は解像度142(1)~142(4)にそれぞれ対応する。幾つかの他の実施形態では、解像度142の数(従って、凸包240の数)は任意の正の整数でありうり、解像度142は
図5Aに描かれたものと異なりうる。
【0144】
説明の目的だけのために、凸包240(1)~240(4)が
図5Aにそれぞれ凸包曲線520(1)~520(4)により描かれている。
図2と共に前述したように、幾つかの実施形態では、ラダー生成器170は凸包240(1)~240(4)内の映像ビットレート・品質点250をビットレート軸430及び視覚品質軸510に対してプロットし、それぞれ凸包曲線520(1)~520(4)を生成する。図示のように、幾つかの実施形態では、ビットレート254はkbps単位で表記され、視覚品質レベルはVMAFメトリックの値である。
【0145】
同じ又は他の実施形態では、ラダー生成器170は凸包曲線520(1)~520(4)に沿って映像ビットレート・品質点250を評価して全体凸包260を決定する。より具体的には、ラダー生成器170は境界を形成する全ての凸包曲線に亘る映像ビットレート・品質点250の部分集合を特定する。その境界の一方の側に全ての映像ビットレート・品質点250が存在し、またその特定された部分集合に含まれる任意の2つの連続する映像ビットレート・品質点250を直線で接続すると、その特定された部分集合に含まれない全ての映像ビットレート・品質点250はその直線の同じ側に残される。全体凸包260は映像ビットレート・品質点250のその特定された部分集合である。幾つかの他の実施形態では、ラダー生成器170は凸包240に基づいて全体凸包260を任意の技術的に可能なやり方で生成できる。
【0146】
説明の目的だけのために、全体凸包260が
図5Aに全体凸包曲線530により描かれている。幾つかの実施形態では、ラダー生成器170又は段選択エンジン280は、全体凸包260内の映像ビットレート・品質点250をビットレート軸430及び視覚品質軸510に対してプロットし全体凸包曲線530を生成する。全体凸包曲線530は全体凸包260内の映像ビットレート・品質点250によって画定される全体形状を描く。
【0147】
符号化ラダーを生成する
図5Bは様々な実施形態に係る
図2の段選択エンジン280が符号化ラダー172を全体凸包260、複数の異なる凸包240、及びラダー要件セット124に基づいて生成する仕方を示す。説明の目的だけのために、
図5Bに描かれた実施形態では、段選択エンジン280が、
図5Aの全体凸包曲線530により表される全体凸包260、
図5Aの凸包曲線520(1)~520(4)によりそれぞれ表される凸包240(1)~240(4)、及びラダー要件セット124に基づいて符号化ラダー172を生成する。
【0148】
全体凸包260に基づいて、段選択エンジン280は目標ビットレート(不図示)に対して視覚品質レベル256を最大にする映像ビットレート・品質点250を選択できる。逆に、段選択エンジン280は目標視覚品質レベル(不図示)に対してビットレート254を最小にする映像ビットレート・品質点250を選択できる。
【0149】
補完的に、凸包240(1)~240(4)に基づいて段選択エンジン280は目標ビットレートに対して視覚品質レベル256を1280×720、1920×1080、2560×1440、及び3840×2160の解像度142についてそれぞれ最大にする映像ビットレート・品質点群250を選択できる。逆に、凸包240(1)~240(4)に基づいて段選択エンジン280は目標視覚品質レベルに対してビットレート254を1280×720、1920×1080、2560×1440、及び3840×2160の解像度142についてそれぞれ最大にする映像ビットレート・品質点群250を選択できる。
【0150】
図3と共に前述したように、段選択エンジン280に含まれる選択アルゴリズム290はラダー要件セット124に含まれるラダー要件224に基づいて段点298を選択する。図示しないが、
図5に描かれた実施形態では、ラダー要件セット124は限定されないが、ラダー要件224(1)~224(4)を含む。幾つかの他の実施形態では、ラダー要件224の数は任意の正の整数であり、ラダー要件224は異なりうる。
【0151】
説明の目的だけのために、ラダー要件224(1)は400kbpsの最小許容ビットレートを指定する最小ビットレート要件である。ラダー要件224(1)及び全体凸包曲線530に基づいて選択アルゴリズム290は400kbpsのビットレート254を持つ段点298(1)を全体凸包260から選択する。なお、段点298(1)は1280×720の解像度142(1)の凸包240(1)内にもある。
【0152】
ラダー要件224(2)は20000kbpsの最高許容ビットレートを指定する品質飽和要件である。ラダー要件224(2)の処理の一部として、選択アルゴリズム290は3400kbpsの品質飽和ビットレート292を計算する。品質飽和ビットレート292は最高許容ビットレートより低いので、選択アルゴリズム290はラダー要件224(2)、全体凸包曲線530、及び品質飽和ビットレート292に基づいて段点298(2)を選択する。図示のように、選択アルゴリズム290は3400kbpsのビットレート254を持つ段点298(2)を全体凸包260から選択する。なお、段点298(2)は3840×2160の解像度142(4)の凸包240(4)内にもある。
【0153】
ラダー要件224(3)はビットレート間隔要件である。選択アルゴリズム290は段点298(1)及び段点298(2)に基づいて1900kbpsの中点ビットレート(不図示)を計算し、次に1900kbpsのビットレート254を持つ段点298(3)を全体凸包260から選択する。選択アルゴリズム290は段点298(1)及び段点298(3)に基づいて1150kbpsの新しい中点ビットレートを計算し、次に1150のビットレート254を持つ段点298(4)を全体凸包260から選択する。選択アルゴリズム290は段点298(1)及び段点298(4)に基づいて775kbpsの新しい中点ビットレートを計算し、次に775kbpsのビットレート254を持つ段点298(5)を全体凸包260から選択する。選択アルゴリズム290は次に段点298(1)~298(5)が集合的にラダー要件224(3)を満たすと判断する。なお、段点298(3)及び298(4)は2560×1440の解像度142(3)の凸包240(3)内にもあり、段点298(5)は1280×720の解像度142(1)の凸包240(1)内にもある。
【0154】
ラダー要件224(4)は1920×1080の解像度142(2)が必須であると規定する必須解像度要件である。段点298(1)~298(5)のどれもラダー要件224(4)を満たさないので、選択アルゴリズム290は全体凸包260を検査し全体凸包260に含まれる映像ビットレート・品質点250のどれかが解像度142(2)を有するか判断する。全体凸包260に含まれる映像ビットレート・品質点250のどれも解像度142(2)を有しないので、選択アルゴリズム290は段点298(6)を1920×1080の解像度142(2)の凸包240(2)から選択する。より正確には、選択アルゴリズム290は全体凸包260の段点298(1)と段点298(2)の間の部分に最も近く1000のビットレート254を持つ段点298(6)を選択する。
【0155】
段選択エンジン280は段点298(1)~298(6)をビットレート254の最低から最高へ並べ換えて順序付けられた一組の段点298を生成する。順序付けられた一組の段点298に基づいて、段選択エンジン280は、限定されないが段点298(1)、298(5)、298(6)、298(4)、298(3)、298(2)に対応するビットレート・解像度ペア174(1)~174(6)を含む符号化ラダー172を生成する。段選択エンジン280はまた、限定されないが、段点298(1)、298(5)、298(6)、298(4)、298(3)、298(2)にそれぞれ対応する最適化された符号化映像178(1)~178(6)を含む最適化された符号化映像セット176を決定する。
【0156】
図示のように、ビットレート・解像度ペア174(1)及び174(2)は1280×720の解像度142(1)を共有し、それぞれ400kbpsと775kbpsのビットレート254を有する。ビットレート・解像度ペア174(3)は1920×1080の解像度142(2)と1000kbpsのビットレート254を有する。ビットレート・解像度ペア174(4)及び174(5)は2560×1440の解像度142(3)を共有し、それぞれ1150kbpsと1900kbpsのビットレート254を有する。ビットレート・解像度ペア174(6)は3840×2160の解像度142(4)と3400kbpsのビットレート254を有する。
【0157】
図6は様々な実施形態に係るメディア作品用の符号化ラダーを生成するための方法ステップのフロー図である。方法ステップは
図1~5のシステムを参照して説明されるが、当業者は、方法ステップをどんな順序でも実行するように構成されたどんなシステムも本発明の範囲内に入ることを理解するであろう。
【0158】
図示のように、方法600はステップ602から始まり、ショット符号化エンジン140がメディア作品に対応するソース映像122をショット158に分割する。ステップ604でショット符号化エンジン140は符号化されたショット188をショット158、解像度142、及び符号化パラメータセット144に基づいて生成する。ステップ606で、各解像度142について、ラダー生成器170は解像度142の映像ビットレート・品質点250の凸包240を解像度142を持つ符号化されたショット188に基づいて生成する。ステップ608で、ラダー生成器170は映像ビットレート・品質点250の全体凸包を凸包群240に基づいて生成する。
【0159】
ステップ610で、選択アルゴリズム290は第1のラダー要件224を選択する。ステップ612で、選択アルゴリズム290は選択されたラダー要件224が何か必須解像度を指定しているか判断する。ステップ612で選択アルゴリズム290が選択されたラダー要件224が何も必須解像度を指定していないと判断すると、方法600はステップ614へ進む。ステップ614では、選択アルゴリズム290はゼロ個以上の段点298を全体凸包260からその選択されたラダー要件224に基づいて選択する。次に方法600はステップ618に直接進む。
【0160】
しかし、ステップ612で選択アルゴリズム290が選択されたラダー要件224が少なくとも1つの必須解像度を指定していると判断すると、方法600はステップ616へ直接進む。ステップ616では、選択アルゴリズム290はゼロ個以上の段点298を全体凸包260及び/又は凸包240のうちいずれかからその選択されたラダー要件224に基づいて選択する。
【0161】
ステップ618で、選択アルゴリズム290は選択されたラダー要件224がラダー要件224のうち最後であるか判断する。ステップ618で選択アルゴリズム290が選択されたラダー要件224がラダー要件224の最後でないと判断すると、方法600はステップ620へ進む。ステップ620では、選択アルゴリズム290は次のラダー要件224を選択し、方法600はステップ612に戻り、選択アルゴリズム290は選択されたラダー要件224が幾つかの必須解像度を指定しているか判断する。
【0162】
しかし、ステップ618で選択アルゴリズム290が選択されたラダー要件224がラダー要件224の最後であると判断すると、方法600はステップ622に直接進む。
【0163】
ステップ622で、ラダー生成器170は符号化ラダー172及び最適化された符号化映像セット176を段点群298に基づいて生成する。ステップ624で、段選択エンジン280は符号化ラダー172及び/又は最適化された符号化映像セット176を記憶し及び/又は任意の数及び/又はタイプのソフトウェアアプリケーションに送信する。次に方法600は終了する。
【0164】
要約すると、開示された手法はラダー要件セットに基づいてメディア作品にカスタマイズされた符号化ラダーを効率的に生成するのに使用されうる。幾つかの実施形態では、符号化ラダーアプリケーションはメディア作品に対応するソース映像をショットに分割する。符号化ラダーアプリケーションは各ショットを一組の解像度及び複数の異なる符号化パラメータセット(例えば、QP値)に亘って符号化し符号化されたショットを生成する。各解像度について、符号化ラダーアプリケーションは解像度に対応する符号化されたショットに基づいてビットレート・品質点の凸包を生成する。
【0165】
特定の解像度の凸包を生成するために、符号化ラダーアプリケーションはその解像度に対応する符号化されたショットについてショットビットレート・品質点を計算する。各ショットビットレート・品質点は限定されないが、異なる符号化されたショット及び対応する解像度、ビットレート、視覚品質レベルを指定する。符号化ラダーアプリケーションは最適化操作を実行しその解像度を持つショットビットレート・品質点を集めてその凸包に含まれる映像ビットレート・品質点にする。その凸包はその解像度に対するビットレートと視覚品質レベルの間のトレードオフを最適化する。各映像ビットレート・品質点は異なる符号化映像及び対応する解像度、ビットレート、視覚品質レベルを指定する。なお、解像度は各符号化映像に亘って一定であるが、ビットレート及び視覚品質レベルは異なりうる。
【0166】
次に、符号化ラダーアプリケーションは様々な解像度の凸包群に基づいて映像ビットレート・品質点の全体凸包を生成する。全体凸包内の各映像ビットレート・品質点は異なるビットレート及び解像度を持つ異なる符号化映像に対応し、その符号化映像の視覚品質レベルをそのビットレートにおいて最適化する。
【0167】
符号化ラダーを生成するために、符号化ラダーアプリケーションは各ラダー要件をラダー要件セットに指定された順番に処理して、異なる映像ビットレート・品質点にそれぞれ等しい任意の数の段点を決める。特定のラダー要件を処理するために、ラダー生成器はそのラダー要件についての段点及び前のどのラダー要件についての段点も集合的にそのラダー要件を満たすようにそのラダー要件について任意の数(ゼロを含む)の段点を決める。特定のラダー要件が何も必須解像度を指定していないなら、ラダー生成器はラダー要件に対する段点を全体凸包から選択する。そうでなければ、ラダー生成器はラダー要件に対する段点を優先的に全体凸包から選択し、必要であれば、1つの凸包から選択する。
【0168】
ラダー要件を処理した後、符号化ラダーアプリケーションは、限定されないが段点に対応するビットレート・解像度ペアを含む符号化ラダーを生成する。各ビットレート・解像度ペアは異なる最適化された符号化映像のビットレート及び解像度を指定し、ビットレート及び視覚品質レベル(解像度ではなく)は最適化された符号化映像の符号化されたショットに亘って異なりうる。符号化ラダーアプリケーションはまた、限定されないが段点に対応する最適化された符号化映像を含む最適化された符号化映像セットを生成する。符号化ラダーアプリケーションは符号化ラダーを記憶し、及び/又は任意の数の顧客装置に、任意の数及び/又はタイプの終点アプリケーションによる使用のために送信する。符号化ラダーアプリケーションはまた、最適化された符号化映像セットを記憶し、及び/又はコンテンツ配信ネットワークに送信する。
【0169】
従来技術と比べて、開示された手法の少なくとも1つの技術的利点は、特定のメディア作品ライブラリーに含まれる各メディア作品について異なる符号化ラダーが、そのメディア作品に対応するソース映像に含まれる各ショットの複雑度に基づいて自動的に生成されることである。従って、開示された手法を使って、特定のメディア作品について各符号化ラダーで表されるビットレートと視覚品質の間のトレードオフがカスタマイズされる。その結果、従来の固定ビットレートラダーに原因する符号化非能率を低減しうる。特に、開示された手法は特定の符号化ラダーに指定されたビットレートのどれも対応するソース映像の品質飽和ビットレートを超えないこと及び特定の符号化ラダー内の任意の数のビットレート・解像度ペアの解像度は視覚品質に関して適切に最適化されることを保証する。これらの技術的利点は従来技術手法に比べて1つ以上の技術的進歩を提供する。
【0170】
態様1
幾つかの実施形態では、メディア作品を符号化するために符号化ラダーを生成するためのコンピュータ実行方法は、第1解像度でメディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第1凸包を生成するステップと、第2解像度で前記メディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第2凸包を生成するステップと、前記第1凸包及び前記第2凸包に基づいて全体凸包を決定するステップと、前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを含む。
【0171】
態様2
前記符号化ラダーを生成することは、複数の符号化映像を前記全体凸包及び前記第1ラダー要件に基づいて決定するステップと、複数のビットレート・解像度ペアを前記複数の符号化映像に基づいて生成するステップとを含み、前記各ビットレート・解像度ペアは前記複数の符号化映像に含まれる異なる符号化映像の平均ビットレート及び解像度を指定する、態様1記載のコンピュータ実行方法。
【0172】
態様3
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、態様1又は2記載のコンピュータ実行方法。
【0173】
態様4
前記符号化ラダーを生成することは、複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、態様1~3のいずれかに記載のコンピュータ実行方法。
【0174】
態様5
前記符号化ラダーを生成することは、前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、少なくとも1つの映像ビットレート・品質点を前記第1凸包から前記第1ラダー要件に基づいて選択するステップと、少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、態様1~4のいずれかに記載のコンピュータ実行方法。
【0175】
態様6
前記第1凸包は第1組の映像ビットレート・品質点を含み、前記第2凸包は第2組の映像ビットレート・品質点を含み、前記全体凸包は少なくとも前記第1組の映像ビットレート・品質点の第1部分集合と前記第2組の映像ビットレート・品質点の第2部分集合とを含む、態様1~5のいずれかに記載のコンピュータ実行方法。
【0176】
態様7
前記第1凸包を生成する前記ステップは、前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算するステップとを含む、態様1~6のいずれかに記載のコンピュータ実行方法。
【0177】
態様8
前記視覚品質メトリックは知覚映像品質を推定する映像多メソッド評価融合メトリックから成る、態様1~7のいずれかに記載のコンピュータ実行方法。
【0178】
態様9
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、態様1~8のいずれかに記載のコンピュータ実行方法。
【0179】
態様10
ビットレートは前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像に亘って異なる、態様1~9のいずれかに記載のコンピュータ実行方法。
【0180】
態様11
幾つかの実施形態では、1つ以上の持続性コンピュータ読取可能媒体は、命令群を含み、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、複数の凸包を生成するステップであって、前記複数の凸包に含まれる各凸包は異なる解像度でメディア作品を符号化する時に品質とビットレートの間の符号化トレードオフを表す、ステップと、前記複数の凸包に基づいて全体凸包を決定するステップと、前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを実行させることで、メディア作品を符号化するための符号化ラダーを生成させる。
【0181】
態様12
前記符号化ラダーは複数の符号化映像に関連する複数のビットレート・解像度ペアを含む、態様11記載の1つ以上の持続性コンピュータ読取可能媒体。
【0182】
態様13
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、態様11又は12記載の1つ以上の持続性コンピュータ読取可能媒体。
【0183】
態様14
前記符号化ラダーを生成することは、複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、態様11~13のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
【0184】
態様15
前記符号化ラダーを生成することは、前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、少なくとも1つの映像ビットレート・品質点を前記複数の凸包に含まれる第1凸包から前記第1ラダー要件に基づいて選択するステップと、少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、態様11~14のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
【0185】
態様16
前記複数の凸包に基づいて前記全体凸包を決定する前記ステップは、前記複数の凸包に含まれる一組の映像ビットレート・品質点を決定するステップと、前記一組の映像ビットレート・品質点に関連する境界を特定するステップであって、前記一組の映像ビットレート・品質点に含まれるどの映像ビットレート・品質点も前記境界の第1側に位置しない、ステップと、前記一組の映像ビットレート・品質点に含まれ前記境界上に位置しないどの映像ビットレート・品質点も捨てるステップとを含む、態様11~15のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
【0186】
態様17
前記複数の凸包を生成する前記ステップは、前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算して前記複数の凸包に含まれる第1凸包を生成するステップとを含む、態様11~16のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
【0187】
態様18
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、態様11~17のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
【0188】
態様19
前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像は、第1符号化パラメータに基づいて生成された少なくとも第1符号化されたショットと第2符号化パラメータに基づいて生成された少なくとも第2符号化されたショットとを含む、態様11~18のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
【0189】
態様20
幾つかの実施形態では、システムは命令群を記憶する1つ以上のメモリと、前記1つ以上のメモリと結合された1つ以上のプロセッサとを備え、前記プロセッサは、前記命令群を実行する時、視覚品質メトリックとメディア作品及び第1解像度両方と関連する第1の複数の符号化されたショットとに基づいて第1凸包を生成するステップと、前記視覚品質メトリックと、前記メディア作品及び第2解像度両方と関連する第2の複数の符号化されたショットとに基づいて第2凸包を生成するステップと、前記第1凸包及び第2凸包に基づいて全体凸包を決定するステップと、前記メディア作品に対する符号化ラダーを第1ラダー要件と前記全体凸包、前記第1凸包、又は前記第2凸包のうち少なくとも1つとに基づいて生成するステップとを実行する。
【0190】
請求項のいずれかに記述された請求要素のいずれか及び/又は本願に記載されたいずれかの要素の任意の組み合わせ及び全ての組み合わせは、任意のやり方で、実施形態及び保護の考慮された範囲内に入る。
【0191】
様々な実施形態の説明が例示の目的のために提示されたが、網羅的であることも開示した実施形態に限定されることも意図されていない。説明した実施形態の範囲及び要旨から逸脱することなく多くの改良及び変更が、当業者には明らかであろう。
【0192】
本実施形態の態様はシステム、方法、又はコンピュータプログラム製品として具体化されてもよい。従って、本開示の態様は完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本明細書において一般に「モジュール」、「システム」、又は「コンピュータ」と呼ばれうるソフトウェア態様とハードウェア態様を組み合わせた実施形態の形をとってもよい。また、本開示に記載されたいずれのハードウェア及び/又はソフトウェア手法、プロセス、機能、構成要素、エンジン、モジュール、又はシステムも回路又は一組の回路として実現されてよい。また、本開示の態様は、コンピュータ読取可能プログラムコードが組み込まれた1つ以上のコンピュータ読取可能媒体に具体化されたコンピュータプログラム製品の形をとってもよい。
【0193】
1つ以上のコンピュータ読取可能媒体のいずれの組み合わせも利用してよい。コンピュータ読取可能媒体は、コンピュータ読取可能信号媒体又はコンピュータ読取可能記憶媒体であってもよい。コンピュータ読取可能記憶媒体は、例えば、これらに限定されないが、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置、又はデバイス、又はそれらの任意の適切な組み合わせであってよい。コンピュータ読取可能記憶媒体のより具体的な例(非網羅的リスト)は、1つ以上のワイヤーを有する電気的接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ、消去・プログラム可能読み出し専用メモリ、フラッシュメモリ、光ファイバー、携帯型コンパクトディスク読み出し専用メモリ、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含むであろう。本明細書の文脈では、コンピュータ読取可能記憶媒体は、命令実行システム、装置、又はデバイスによる又はに関連した使用のためのプログラムを含み又は記憶しうる任意の有形の媒体であってよい。
【0194】
本開示の態様は、本開示の実施形態に係るフローチャート図及び/又は方法、装置(システム)、及びコンピュータプログラム製品のブロック図を参照して上記で説明されている。フローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図内のブロックの組み合わせとはコンピュータプログラム命令群により実施されうることは理解されよう。これらのコンピュータプログラム命令は汎用コンピュータ、特殊用途コンピュータ、又は機械を製造する他のプログラム可能データ処理装置のプロセッサに提供されてもよい。コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される時、それらの命令はフローチャートに明記された機能/動作及び/又はブロック図内ブロックの実施を可能にする。そのようなプロセッサは、限定されないが、汎用プロセッサ、特殊用途プロセッサ、特定用途向けプロセッサ、又はフィールド・プログラム可能ゲートアレイであってもよい。
【0195】
図のフローチャート及びブロック図は、本開示の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表す場合がある。なお、別の実施形態では、ブロックに記された機能は、図に記された順番から外れて発生してもよい。例えば、続けて示された2つのブロックは、実際には実質的に同時に実行されるか、又は係る機能に依って、時には逆の順番に実行されるかもしれない。また、ブロック図及び/又はフローチャート図の各ブロックと、ブロック図及び/又はフローチャート図内のブロックの組み合わせとは、指定の機能又は動作を実行する特殊用途ハードウェアシステム又は特殊用途ハードウェア及びコンピュータ命令群の組み合わせにより実施されうる。
【0196】
上記は本開示の実施形態に向けられているが、本開示の他の及び追加の実施形態を本開示の基本的な範囲から逸脱することなく思い付くかもしれない。本開示の範囲は添付の請求項により決定される。
【符号の説明】
【0197】
100 システム
110 計算インスタンス
112 プロセッサ
116 メモリ
122 ソース映像
124 ラダー要件セット
140 ショット符号化エンジン
142 解像度
144 符号化パラメータセット
150 符号器
152 ショット変化検出器
158 ショット
160 符号化されたショットセット
170 ラダー生成器
172 符号化ラダー
174 ビットレート・解像度ペア
176 最適化された符号化映像セット
178 最適化された符号化映像
180 コンテンツ配信ネットワーク
188 符号化されたショット
190 顧客装置
192 終点アプリケーション
194 表示器
198 復元されたショット
224 ラダー要件
240 凸包
250 映像ビットレート・品質点
254 ビットレート
256 視覚品質レベル
258 符号化映像
298 段点
380 トレリス反復器
390 系列トレリス
【手続補正書】
【提出日】2023-10-23
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0196
【補正方法】変更
【補正の内容】
【0196】
上記は本開示の実施形態に向けられているが、本開示の他の及び追加の実施形態を本開示の基本的な範囲から逸脱することなく思い付くかもしれない。本開示の範囲は添付の請求項により決定される。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
メディア作品を符号化するために符号化ラダーを生成するためのコンピュータ実行方法であって、
第1解像度でメディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第1凸包を生成するステップと、
第2解像度で前記メディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第2凸包を生成するステップと、
前記第1凸包及び前記第2凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを含むコンピュータ実行方法。
実施形態2
前記符号化ラダーを生成することは、
複数の符号化映像を前記全体凸包及び前記第1ラダー要件に基づいて決定するステップと、
複数のビットレート・解像度ペアを前記複数の符号化映像に基づいて生成するステップとを含み、前記各ビットレート・解像度ペアは前記複数の符号化映像に含まれる異なる符号化映像の平均ビットレート及び解像度を指定する、実施形態1に記載のコンピュータ実行方法。
実施形態3
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、
品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、
第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、
前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、
前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、実施形態1に記載のコンピュータ実行方法。
実施形態4
前記符号化ラダーを生成することは、
複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、
前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、実施形態1に記載のコンピュータ実行方法。
実施形態5
前記符号化ラダーを生成することは、
前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、
少なくとも1つの映像ビットレート・品質点を前記第1凸包から前記第1ラダー要件に基づいて選択するステップと、
少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、
前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、実施形態1に記載のコンピュータ実行方法。
実施形態6
前記第1凸包は第1組の映像ビットレート・品質点を含み、前記第2凸包は第2組の映像ビットレート・品質点を含み、前記全体凸包は少なくとも前記第1組の映像ビットレート・品質点の第1部分集合と前記第2組の映像ビットレート・品質点の第2部分集合とを含む、実施形態1に記載のコンピュータ実行方法。
実施形態7
前記第1凸包を生成する前記ステップは、
前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、
1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、
複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算するステップとを含む、実施形態1に記載のコンピュータ実行方法。
実施形態8
前記視覚品質メトリックは知覚映像品質を推定する映像多メソッド評価融合メトリックから成る、実施形態7に記載のコンピュータ実行方法。
実施形態9
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、実施形態1に記載のコンピュータ実行方法。
実施形態10
ビットレートは前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像に亘って異なる、実施形態1に記載のコンピュータ実行方法。
実施形態11
1つ以上の持続性コンピュータ読取可能媒体であって、命令群を含み、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、
複数の凸包を生成するステップであって、前記複数の凸包に含まれる各凸包は異なる解像度でメディア作品を符号化する時に品質とビットレートの間の符号化トレードオフを表す、ステップと、
前記複数の凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを実行させることで、メディア作品を符号化するための符号化ラダーを生成させる、1つ以上の持続性コンピュータ読取可能媒体。
実施形態12
前記符号化ラダーは複数の符号化映像に関連する複数のビットレート・解像度ペアを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態13
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、
品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、
第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、
前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、
前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態14
前記符号化ラダーを生成することは、
複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、
前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態15
前記符号化ラダーを生成することは、
前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、
少なくとも1つの映像ビットレート・品質点を前記複数の凸包に含まれる第1凸包から前記第1ラダー要件に基づいて選択するステップと、
少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、
前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態16
前記複数の凸包に基づいて前記全体凸包を決定する前記ステップは、
前記複数の凸包に含まれる一組の映像ビットレート・品質点を決定するステップと、
前記一組の映像ビットレート・品質点に関連する境界を特定するステップであって、前記一組の映像ビットレート・品質点に含まれるどの映像ビットレート・品質点も前記境界の第1側に位置しない、ステップと、
前記一組の映像ビットレート・品質点に含まれ前記境界上に位置しないどの映像ビットレート・品質点も捨てるステップとを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態17
前記複数の凸包を生成する前記ステップは、
前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、
1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、
複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算して前記複数の凸包に含まれる第1凸包を生成するステップとを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態18
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態19
前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像は、第1符号化パラメータに基づいて生成された少なくとも第1符号化されたショットと第2符号化パラメータに基づいて生成された少なくとも第2符号化されたショットとを含む、実施形態11に記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態20
システムであって、
命令群を記憶する1つ以上のメモリと、
前記1つ以上のメモリと結合された1つ以上のプロセッサとを備え、前記プロセッサは、前記命令群を実行する時、
視覚品質メトリックとメディア作品及び第1解像度両方と関連する第1の複数の符号化されたショットとに基づいて第1凸包を生成するステップと、
前記視覚品質メトリックと、前記メディア作品及び第2解像度両方と関連する第2の複数の符号化されたショットとに基づいて第2凸包を生成するステップと、
前記第1凸包及び第2凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを第1ラダー要件と前記全体凸包、前記第1凸包、又は前記第2凸包のうち少なくとも1つとに基づいて生成するステップとを実行する、システム。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メディア作品を符号化するために符号化ラダーを生成するためのコンピュータ実行方法であって、
第1解像度でメディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第1凸包を生成するステップと、
第2解像度で前記メディア作品を符号化する時の品質とビットレートの間の符号化トレードオフを表す第2凸包を生成するステップと、
前記第1凸包及び前記第2凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを含むコンピュータ実行方法。
【請求項2】
前記符号化ラダーを生成することは、
複数の符号化映像を前記全体凸包及び前記第1ラダー要件に基づいて決定するステップと、
複数のビットレート・解像度ペアを前記複数の符号化映像に基づいて生成するステップとを含み、前記各ビットレート・解像度ペアは前記複数の符号化映像に含まれる異なる符号化映像の平均ビットレート及び解像度を指定する、請求項1記載のコンピュータ実行方法。
【請求項3】
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、
品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、
第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、
前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、
前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項4】
前記符号化ラダーを生成することは、
複数の映像ビットレート・品質点を前記第1ラダー要件に指定された目標ビットレート間隔に基づいて前記全体凸包から選択するステップと、
前記複数の映像ビットレート・品質点に基づいて複数の符号化映像と関連する複数のビットレート・解像度ペアを生成するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項5】
前記符号化ラダーを生成することは、
前記全体凸包内の複数の映像ビットレート・品質点のどれも前記第1ラダー要件を満たさないと判断するステップと、
少なくとも1つの映像ビットレート・品質点を前記第1凸包から前記第1ラダー要件に基づいて選択するステップと、
少なくとも1つの符号化映像と関連する少なくとも1つのビットレート・解像度ペアを前記少なくとも1つの映像ビットレート・品質点に基づいて生成するステップと、
前記少なくとも1つのビットレート・解像度ペアと前記全体凸包に基づいて生成された複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項6】
前記第1凸包は第1組の映像ビットレート・品質点を含み、前記第2凸包は第2組の映像ビットレート・品質点を含み、前記全体凸包は少なくとも前記第1組の映像ビットレート・品質点の第1部分集合と前記第2組の映像ビットレート・品質点の第2部分集合とを含む、請求項1記載のコンピュータ実行方法。
【請求項7】
前記第1凸包を生成する前記ステップは、
前記メディア作品に含まれる各ショットを前記第1解像度で複数の符号化パラメータセットに亘って符号化して、複数の符号化されたショットを生成するステップと、
1つ以上の最適化操作を前記複数の符号化されたショット及び視覚品質メトリックに基づいて実行して複数の符号化映像を生成するステップと、
複数の映像ビットレート・品質点を前記複数の符号化映像に基づいて計算するステップとを含む、請求項1記載のコンピュータ実行方法。
【請求項8】
前記視覚品質メトリックは知覚映像品質を推定する映像多メソッド評価融合メトリックから成る、請求項7記載のコンピュータ実行方法。
【請求項9】
前記第1ラダー要件は最小許容ビットレート、最大許容ビットレート、目標ビットレート間隔、最小視覚品質レベル、又は必須解像度のうち少なくとも1つを指定する、請求項1記載のコンピュータ実行方法。
【請求項10】
ビットレートは前記符号化ラダーに含まれる第1ビットレート・解像度ペアと関連する第1符号化映像に亘って異なる、請求項1記載のコンピュータ実行方法。
【請求項11】
1つ以上の持続性コンピュータ読取可能媒体であって、命令群を含み、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、
複数の凸包を生成するステップであって、前記複数の凸包に含まれる各凸包は異なる解像度でメディア作品を符号化する時に品質とビットレートの間の符号化トレードオフを表す、ステップと、
前記複数の凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを少なくとも前記全体凸包及び第1ラダー要件に基づいて生成するステップとを実行させることで、メディア作品を符号化するための符号化ラダーを生成させる、1つ以上の持続性コンピュータ読取可能媒体。
【請求項12】
前記符号化ラダーは複数の符号化映像に関連する複数のビットレート・解像度ペアを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項13】
前記第1ラダー要件は品質飽和要件から成り、前記符号化ラダーを生成することは、
品質飽和ビットレートを前記全体凸包に基づいて計算するステップと、
第1符号化映像と関連する第1映像ビットレート・品質点を前記品質飽和ビットレートに基づいて前記全体凸包から選択するステップと、
前記第1符号化映像の平均ビットレート及び解像度を指定する第1ビットレート・解像度ペアを生成するステップと、
前記第1ビットレート・解像度ペアと、少なくとも第2ラダー要件と関連する複数のビットレート・解像度ペアとを集めて前記符号化ラダーの一部を生成するステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項14】
前記複数の凸包に基づいて前記全体凸包を決定する前記ステップは、
前記複数の凸包に含まれる一組の映像ビットレート・品質点を決定するステップと、
前記一組の映像ビットレート・品質点に関連する境界を特定するステップであって、前記一組の映像ビットレート・品質点に含まれるどの映像ビットレート・品質点も前記境界の第1側に位置しない、ステップと、
前記一組の映像ビットレート・品質点に含まれ前記境界上に位置しないどの映像ビットレート・品質点も捨てるステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
【請求項15】
システムであって、
命令群を記憶する1つ以上のメモリと、
前記1つ以上のメモリと結合された1つ以上のプロセッサとを備え、前記プロセッサは、前記命令群を実行する時、
視覚品質メトリックとメディア作品及び第1解像度両方と関連する第1の複数の符号化されたショットとに基づいて第1凸包を生成するステップと、
前記視覚品質メトリックと、前記メディア作品及び第2解像度両方と関連する第2の複数の符号化されたショットとに基づいて第2凸包を生成するステップと、
前記第1凸包及び第2凸包に基づいて全体凸包を決定するステップと、
前記メディア作品に対する符号化ラダーを第1ラダー要件と前記全体凸包、前記第1凸包、又は前記第2凸包のうち少なくとも1つとに基づいて生成するステップとを実行する、システム。
【国際調査報告】