特許第6978633号(P6978633)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許6978633-空間層レート割り当て 図000044
  • 特許6978633-空間層レート割り当て 図000045
  • 特許6978633-空間層レート割り当て 図000046
  • 特許6978633-空間層レート割り当て 図000047
  • 特許6978633-空間層レート割り当て 図000048
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6978633
(24)【登録日】2021年11月15日
(45)【発行日】2021年12月8日
(54)【発明の名称】空間層レート割り当て
(51)【国際特許分類】
   H04N 19/115 20140101AFI20211125BHJP
   H04N 19/187 20140101ALI20211125BHJP
   H04N 19/136 20140101ALI20211125BHJP
   H04N 19/146 20140101ALI20211125BHJP
   H04N 19/33 20140101ALI20211125BHJP
【FI】
   H04N19/115
   H04N19/187
   H04N19/136
   H04N19/146
   H04N19/33
【請求項の数】21
【全頁数】30
(21)【出願番号】特願2021-502480(P2021-502480)
(86)(22)【出願日】2019年6月23日
(65)【公表番号】特表2021-524213(P2021-524213A)
(43)【公表日】2021年9月9日
(86)【国際出願番号】US2019038626
(87)【国際公開番号】WO2020023167
(87)【国際公開日】20200130
【審査請求日】2021年1月15日
(31)【優先権主張番号】62/703,623
(32)【優先日】2018年7月26日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ホロウィッツ、マイケル
(72)【発明者】
【氏名】ブラント、ラスマス
【審査官】 岩井 健二
(56)【参考文献】
【文献】 米国特許出願公開第2013/0028316(US,A1)
【文献】 Thibaud Biatek et al.,Optimal Bitrate Allocation in the Scalable HEVC Extension for the Deployment of UHD Services,IEEE TRANSACTIONS ON BROADCASTING,IEEE,2016年12月,VOL. 62, NO. 4,pp.826-841
【文献】 Sudeng Hu et al.,Novel Rate-Quantization Model-Based Rate Control With Adaptive Initialization for Spatial Scalable Video Coding,IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS,IEEE,2012年03月,VOL. 59, NO. 3,pp.1673-1684
【文献】 Jiaying Liu et al.,Bit Allocation for Spatial Scalability Coding of H.264/SVC With Dependent Rate-Distortion Analysis,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,VOL. 20, NO. 7,IEEE,2010年07月,pp.967-981
【文献】 Vivek K Goyal,Theoretical Foundations of Transform Coding,IEEE SIGNAL PROCESSING MAGAZINE,IEEE,2001年09月,pp.9-21
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
データ処理ハードウェア(510)において、スケーリングされた映像入力信号(120)に対応する変換係数(226)を受信する工程であって、スケーリングされた前記映像入力信号(120)は複数の空間層(L)を含み、前記複数の空間層(L)はベース層(L)を含む、前記変換係数(226)を受信する工程と、
前記データ処理ハードウェア(510)によって、スケーリングされた前記映像入力信号(120)からのフレームのサンプラによって識別されたサンプル(S)に基づき空間レート係数(332)を決定する工程(332)であって、前記各空間層について前記サンプルの数は前記変換係数の数に等しく、前記空間レート係数(332)は、スケーリングされた前記映像入力信号(120)から形成された符号化ビットストリーム(204)の各空間層(L)におけるビットレートを決定するための係数を規定し、前記空間レート係数(332)は、前記ベース層(L)の前記変換係数(226)毎のビットレートと、前記複数の空間層(L)の前記変換係数(226)毎のビットの平均レート(R)との差によって表される、前記空間レート係数(332)を決定する工程と、
前記データ処理ハードウェア(510)によって、前記空間レート係数(332)とフレームの前記サンプル(S)とに基づき、各空間層(L)に前記ビットレートを割り当てることによって、前記符号化ビットストリーム(204)の前記複数の空間層(L)に対する歪みを低減する工程と
を備える、方法(400)。
【請求項2】
前記方法はさらに、
前記データ処理ハードウェア(510)において、スケーリングされた前記映像入力信号(120)からフレームの前記サンプラによって反復的に識別された第2サンプル(S)を受信する工程と、
前記データ処理ハードウェア(510)によって、スケーリングされた前記映像入力信号(120)からのフレームの前記第2サンプル(S)に基づき、前記空間レート係数(332)を修正する工程と、
前記データ処理ハードウェア(510)によって、修正された前記空間レート係数(332)とフレームの前記第2サンプル(S)とに基づき、各空間層(L)に修正された前記ビットレートを割り当てる工程と
を備える、請求項1に記載の方法(400)。
【請求項3】
前記方法はさらに、
前記データ処理ハードウェア(510)において、スケーリングされた前記映像入力信号(120)からフレームの前記サンプラによって反復的に識別された第2サンプル(S)を受信する工程と、
前記データ処理ハードウェア(510)によって、指数移動平均に基づきフレーム毎に前記空間レート係数(332)を修正する工程であって、前記指数移動平均は少なくともフレームの前記サンプル(S)とフレームの前記第2サンプル(S)とに対応する、前記空間レート係数(332)を修正する工程と、
前記データ処理ハードウェア(510)によって、修正された前記ビットレートを、修正された前記空間レート係数(332)に基づき各空間層(L)に割り当てる工程と
を備える、請求項1または2に記載の方法(400)。
【請求項4】
スケーリングされた前記映像入力信号(120)を受信する工程は、
前記映像入力信号(120)を受信する工程と、
前記映像入力信号(120)を前記複数の空間層(L)にスケーリングする工程と、
各空間層(L)をサブブロックに分割する工程と、
各サブブロックを前記変換係数(226)に変換する工程(226)と、
各サブブロックに対応する前記変換係数(226)をスカラー量子化する工程と
を備える、請求項1〜3のいずれか一項に記載の方法(400)。
【請求項5】
スケーリングされた前記映像入力信号(120)からフレームの前記サンプル(S)に基づき前記空間レート係数(332)を決定する工程は、
前記映像入力信号(120)のフレームの全ての変換ブロックにわたる平均に基づき、各スカラー量子化(210)された前記変換係数(226)の分散推定(322)を決定する工程を備える、
請求項4に記載の方法(400)。
【請求項6】
各サブブロックの前記変換係数(226)は、全てのサブブロックにわたって同一に分布される、
請求項4または5に記載の方法(400)。
【請求項7】
前記空間レート係数(332)は、前記符号化ビットストリーム(204)の各層(L)に前記ビットレートを割り当てるように構成された単一のパラメータを含む、
請求項1〜6のいずれか一項に記載の方法(400)。
【請求項8】
前記方法はさらに、前記データ処理ハードウェア(510)によって、前記空間レート係数(332)が空間レート係数閾値(334)を満たすか決定する工程を含む、
請求項1〜7のいずれか一項に記載の方法(400)。
【請求項9】
前記空間レート係数閾値(334)に対応する値が1.0未満で0.5よりも大きい場合に、前記空間レート係数閾値(334)に対応する値は前記空間レート係数閾値(334)を満たす、
請求項8に記載の方法(400)。
【請求項10】
前記空間レート係数(332)は、加重和を含み、
前記加重和は、分散の積の比に対応し、
前記比は、第1空間層(L)からのスカラー量子化(210)された前記変換係数(226)の推定分散に基づく分子と、第2空間層(L)からのスカラー量子化(210)された前記変換係数(226)の推定分散に基づく分母とを備える、
請求項1〜9のいずれか一項に記載の方法(400)。
【請求項11】
データ処理ハードウェア(510)と、
前記データ処理ハードウェア(510)に通信するメモリハードウェア(520)と
を備えるシステム(100)であって、
前記メモリハードウェア(520)は命令を記憶し、前記命令は前記データ処理ハードウェア(510)上で実行されると前記データ処理ハードウェア(510)に、
スケーリングされた映像入力信号(120)に対応する変換係数(226)を受信する工程であって、スケーリングされた前記映像入力信号(120)は複数の空間層(L)を含み、前記複数の空間層(L)はベース層(L)を含む、前記変換係数(226)を受信する工程と、
スケーリングされた前記映像入力信号(120)からフレームのサンプラによって識別されたサンプル(S)に基づき空間レート係数(332)を決定する工程であって、前記各空間層について前記サンプルの数は前記変換係数の数に等しく、前記空間レート係数(332)は、スケーリングされた前記映像入力信号(120)から形成された符号化ビットストリーム(204)の各空間層(L)におけるビットレートを決定するための係数を規定し、前記空間レート係数(332)は、前記ベース層(L)の前記変換係数(226)毎のビットレートと、複数の空間層(L)の前記変換係数(226)毎のビットの平均レート(R)との差によって表される、前記空間レート係数(332)を決定する工程と、
前記空間レート係数(332)とフレームの前記サンプル(S)とに基づき、各空間層(L)に前記ビットレートを割り当てることによって、前記符号化ビットストリーム(204)の前記複数の空間層(L)の歪みを低減する工程と
を備える動作を実行させる、システム(100)。
【請求項12】
前記動作はさらに、
スケーリングされた前記映像入力信号(120)からフレームの前記サンプラによって反復的に識別された第2サンプル(S)を受信する工程と、
スケーリングされた前記映像入力信号(120)からフレームの前記第2サンプル(S)に基づき、前記空間レート係数(332)を修正する工程と、
修正された前記空間レート係数(332)とフレームの前記第2サンプル(S)とに基づき、修正された前記ビットレートを各空間層(L)に割り当てる工程と
を備える、請求項11に記載のシステム(100)。
【請求項13】
前記動作はさらに、
スケーリングされた前記映像入力信号(120)から、フレームの前記サンプラによって反復的に識別された第2サンプル(S)を受信する工程と、
指数移動平均に基づき前記空間レート係数(332)を修正する工程であって、前記指数移動平均は少なくともフレームの前記サンプル(S)とフレームの前記第2サンプル(S)とに基づく、前記空間レート係数(332)を修正する工程と、
修正された前記空間レート係数(332)に基づき、修正された前記ビットレートを各空間層(L)に割り当てる工程と
を備える、請求項11または12に記載のシステム(100)。
【請求項14】
スケーリングされた前記映像入力信号(120)を受信する工程はさらに、
前記映像入力信号(120)を受信する工程と、
前記映像入力信号(120)を前記複数の空間層(L)にスケーリングする工程と、
各空間層(L)をサブブロックに分割する工程と、
各サブブロックを前記変換係数(226)に変換する工程と、
各サブブロックに対応する前記変換係数(226)をスカラー量子化する工程と
を備える、請求項11〜13のいずれか一項に記載のシステム(100)。
【請求項15】
スケーリングされた前記映像入力信号(120)からのフレームのサンプル(S)に基づき空間レート係数(332)を決定する工程は、
前記映像入力信号(120)のフレームの全ての変換ブロックにわたる平均に基づき、各スカラー量子化された前記変換係数(226)の分散推定(322)を決定する工程を含む、
請求項14に記載のシステム(100)。
【請求項16】
各サブブロックの変換係数(226)は、全てのサブブロックにわたって同一に分布される、
請求項14または15のシステム(100)。
【請求項17】
前記空間レート係数(332)は、前記符号化ビットストリーム(204)の各層(L)に前記ビットレートを割り当てるように構成された、単一のパラメータを含む、
請求項11〜16のいずれか一項に記載のシステム(100)。
【請求項18】
前記動作はさらに、前記空間レート係数(332)が空間レート係数閾値(334)を満たすことを決定する工程を含む、
請求項11〜17のいずれか一項に記載のシステム(100)。
【請求項19】
前記空間レート係数閾値(334)に対応する値が1.0未満で0.5よりも大きい場合に、前記空間レート係数閾値(334)に対応する値は前記空間レート係数閾値(334)を満たす、
請求項18に記載のシステム(100)。
【請求項20】
前記空間レート係数(332)は加重和を含み、
前記加重和は分散の積の比に対応し、
前記比は、第1空間層(L)からのスカラー量子化された前記変換係数(226)の推定分散に基づく分子と、第2空間層(L)からのスカラー量子化された前記変換係数(226)の推定分散に基づく分母とを備える、
請求項11〜19のいずれか一項に記載のシステム(100)。
【請求項21】
データ処理ハードウェア(510)において、スケーリングされた映像入力信号(120)に対応する非量子化変換係数(226)を受信する工程であって、スケーリングされた前記映像入力信号(120)は複数の空間層(L)を含む、前記非量子化変換係数(226)を受信する工程と、
前記データ処理ハードウェア(510)によって、スケーリングされた前記映像入力信号(120)からのフレームのサンプラによって識別されたサンプル(S)に基づき割り当て係数を決定する工程であって、前記各空間層について前記サンプルの数は前記非量子化変換係数の数に等しく、前記割り当て係数は受信された前記非量子化変換係数(226)の分散の推定に対応する、前記割り当て係数を決定する工程と、
前記データ処理ハードウェア(510)によって、前記割り当て係数とフレームの前記サンプル(S)とに基づき、各空間層(L)にビットレートを割り当てる工程と
を備える、方法(400)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、スケーラブルな映像符号化(video coding)のコンテキストにおける空間層レート割り当てに関する。
【背景技術】
【0002】
映像(video)が広範囲のアプリケーションにおいてますます一般的になるにつれて、映像ストリームは、アプリケーションに応じて複数回、符号化(encoded)および/または復号化(decoded)される必要がある場合がある。例えば異なるアプリケーションおよび/または装置は、帯域幅またはリソース制約に準拠する必要がある場合がある。非常に高価であることなく、設定のいくつかの組み合わせを必要とするこれらの要求を満たすために、映像をいくつかの解像度(resolutions)に圧縮する高効率のコーデック(codecs)が開発されてきた。スケーラブルVP9およびH.264のようなコーデックでは、映像ビットストリームは、ユーザが異なる解像度(すなわち各空間層の解像度)で元の映像を再構成することを可能にする複数の空間層を含むことができる。スケーラブルな機能を有することによって、映像コンテンツは装置から、限定されたさらなる処理を有する装置に送達され得る。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】ヴィヴェク ケー ゴヤール(VIVEK K GOYAL),『変換符号化の理論的基礎』(Theoretical Foundations of Transform Coding),IEEE信号処理マガジン(IEEE SIGNAL PROCESSING MAGAZINE),IEEEサービスセンター(IEEE SERVICE CENTER), PISCATAWAY, NJ, US, vol.18, no.5,2001年9月1日,9頁〜21頁,XP011092356,ISSN:1053−5888「ビット割り当て」(Bit Allocation)の部,14頁〜15頁
【発明の概要】
【発明が解決しようとする課題】
【0004】
ビットレートを割り当てる方法を改善する余地がある。
【課題を解決するための手段】
【0005】
本開示の一態様は、ビットレートを割り当てる方法を提供する。この方法は、データ処理ハードウェアにおいて、スケーリングされた映像入力信号に対応する変換係数(Transform coefficient)を受信する工程を含み、スケーリングされた映像入力信号は複数の空間層を含み、複数の空間層はベース層を含む。この方法はまた、データ処理ハードウェアによって、スケーリングされた映像入力信号からのフレームのサンプル(sample of frames)に基づき、空間レート係数(Spatial rate factor)を決定する工程を含む。空間レート係数は、スケーリングされた映像入力信号から形成された符号化ビットストリーム(encoded bit stream)の各空間層における、ビットレート割り当てのための係数を定義する。空間レート係数は、ベース層の変換係数当たりのビットレートと、複数の空間層の変換係数当たりのビットの平均レートとの差によって表される。本方法はまた、空間レート係数とフレームのサンプルとに基づき、各空間層にビットレートを割り当てることによって、符号化ビットストリームの複数の空間層の歪みを低減する工程を含む。
【0006】
本開示の実装は、以下の任意の特徴のうちの1つまたは複数を含むことができる。いくつかの実装形態では、この方法はまた、データ処理ハードウェアにおいて、スケーリングされた映像入力信号からフレームの第2サンプルを受信する工程と、スケーリングされた映像入力信号からのフレームの第2サンプルに基づき、空間レート係数をデータ処理ハードウェアによって修正(modify)する工程と、データ処理ハードウェアによって、修正された空間レート係数とフレームの第2サンプルとに基づき、各空間層に修正されたビットレートを割り当てる工程とを含む。追加の実装形態では、本方法はまた、データ処理ハードウェアにおいて、スケーリングされた映像入力信号からフレームの第2サンプルを受信する工程と、データ処理ハードウェアによって、フレーム毎ベースで(frame−by−frame basis)、指数移動平均に基づき空間レート係数を修正する工程とであって、指数移動平均は少なくともフレームのサンプルとフレームの第2サンプルとに対応する、前記空間レート係数を修正する工程と、修正された空間レート係数に基づき各空間層に、修正されたビットレートをデータ処理ハードウェアによって割り当てる工程とを含む。
【0007】
一部の例では、スケーリングされた映像入力信号を受信する工程は、映像入力信号を受信する工程と、映像入力信号を複数の空間層にスケーリングする工程と、各空間層をサブブロックに分割する工程と、各サブブロックを変換係数に変換する工程と、各サブブロックに対応する変換係数をスカラー量子化する工程とを含む。スケーリングされた映像入力信号からのフレームのサンプルに基づき空間レート係数を決定する工程は、映像入力信号の全てのフレームにわたる変換ブロックの平均に基づき、各スカラー量子化された変換係数の分散推定(variance estimations)を決定する工程を含むことができる。ここで、各サブブロックの変換係数は、全てのサブブロックにわたって同一に分布(identically distributed)されてもよい。
【0008】
いくつかの実装形態では、この方法は、データ処理ハードウェアによって、空間レート係数が空間レート係数閾値を満足することを決定する工程も含む。これらの実施形態では、空間レート係数閾値に対応する値が約1.0未満で約0.5よりも大きい場合に、空間レート係数閾値に対応する値は空間レート係数閾値を満たすことができる。空間レート係数は、符号化ビットストリームの各層にビットレートを割り当てるように構成された、単一のパラメータを含むことができる。いくつかの例では、空間レート係数は、分散の積の比率に対応する加重和(weighted sum)を含み、比は、第1空間層からのスカラー量子化された変換係数の推定分散(estimated variances)に基づく分子と、第2空間層からのスカラー量子化された変換係数の推定分散に基づく分母とを含む。
【0009】
本開示の別の態様は、ビットレートを割り当てるシステムを提供する。システムは、データ処理ハードウェアと、データ処理ハードウェアに通信するメモリハードウェアとを含む。メモリハードウェアは命令を記憶し、命令はデータ処理ハードウェアによって実行されると、データ処理ハードウェアに動作を実行させる。動作は、スケーリングされた映像入力信号に対応する変換係数を受信する工程を含み、スケーリングされた映像入力信号は複数の空間層を含み、複数の空間層はベース層を含む。動作はまた、スケーリングされた映像入力信号からのフレームのサンプルに基づき、空間レート係数を決定する工程を含む。空間レート係数は、スケーリングされた映像入力信号から形成された符号化ビットストリームの各空間層における、ビットレート割り当てのための係数を定義する。空間レート係数は、ベース層の変換係数当たりのビットレートと、複数の空間層の変換係数当たりのビットの平均レートとの差によって表される。動作はまた、空間レート係数とフレームのサンプルとに基づき、各空間層にビットレートを割り当てることによって、符号化ビットストリームの複数の空間層の歪みを低減する工程を含む。
【0010】
この態様は、以下の任意の特徴のうちの1つ以上を含むことができる。いくつかの実装形態では、動作は、スケーリングされた映像入力信号からフレームの第2サンプルを受信する工程と、スケーリングされた映像入力信号からのフレームの第2サンプルに基づき空間レート係数を修正する工程と、修正された空間レート係数とフレームの第2サンプルとに基づき、各空間層に修正されたビットレートを割り当てる工程とを含む。追加の実装では、動作はさらに、スケーリングされた映像入力信号からフレームの第2サンプルを受信する工程と、フレーム毎のベースで指数移動平均に基づき空間レート係数を修正する工程であって、指数移動平均は少なくともフレームのサンプルとフレームの第2サンプルとに対応する、前記フレームの第2サンプルを修正する工程と、修正されたビットレートを、修正された空間レート係数に基づき各空間層に割り当てる工程とを含む。
【0011】
一部の例では、スケーリングされた映像入力信号を受信する工程は、映像入力信号を受信する工程と、映像入力信号を複数の空間層にスケーリングする工程と、各空間層をサブブロックに分割する工程と、各サブブロックを変換係数に変換する工程と、各サブブロックに対応する変換係数をスカラー量子化する工程とを含む。スケーリングされた映像入力信号からのフレームのサンプルに基づき空間レート係数を決定する工程は、映像入力信号のフレームの全ての変換ブロックにわたる平均に基づき、各スカラー量子化された変換係数の分散推定を決定する工程を含むことができる。ここで、各サブブロックの変換係数は、全てのサブブロックにわたって同一に分布されてもよい。
【0012】
いくつかの実装形態では、動作は、空間レート係数が空間レート係数閾値を満足することを決定する工程も含む。これらの実装形態では、空間レート係数閾値に対応する値は、値が約1.0未満で約0.5よりも大きい場合に、空間レート係数閾値を満たしてもよい。空間レート係数は、符号化ビットストリームの各層にビットレートを割り当てるように構成された、単一のパラメータを含むことができる。いくつかの例では、空間レート係数は、分散の積の比に対応する加重和を含み、比は、第1空間層からのスカラー量子化された変換係数の推定分散に基づく分子と、第2空間層からのスカラー量子化された変換係数の推定分散に基づく分母とを含む。
【0013】
本開示の1つ以上の実装の詳細は、添付の図面および以下の明細書に記載されている。他の態様、特徴、および利点は、明細書および図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
図1】例示的なレート割り当てシステムの概略図。
図2図1のレート割り当てシステム内の例示的なエンコーダの概略図。
図3図1のレート割り当てシステム内の例示的なアロケータの概略図。
図4】レート割り当てシステムを実装するための例示的な方法の流れ図。
図5】本明細書に記載されたシステムおよび方法を実装するために使用され得る例示的な計算装置の概略図。
【発明を実施するための形態】
【0015】
様々な図面における同様の参照符号は同様の要素を示す。
図1は、レート割り当てシステム100の例である。レート割り当てシステム100は、一般に、映像入力信号120としてキャプチャされた映像を、ネットワーク130を介してリモートシステム140に通信する映像ソース装置110を含む。リモートシステム140において、エンコーダ200およびアロケータ300は、映像入力信号120を、符号化ビットストリーム204に変換する。符号化ビットストリーム204は、複数の空間層L〜Lを含み、iは空間層L〜Lの数を指定する。各空間層Lは、符号化ビットストリーム204のスケーラブルな形態である。スケーラブル映像ビットストリームとは、映像ビットストリームをいい、ビットストリームの一部は、いくつかのターゲットデコーダに対して有効なビットストリームを形成するサブストリーム(例えば空間層L)が生じるように、除去されることができる。より詳細には、サブストリームは、元のキャプチャされた映像の品質よりも低い再構成品質を有する、元の映像入力信号120のソースコンテンツ(例えばキャプチャされた映像)を生成する。例えば第1空間層Lは1280×720の720p高精細度(HD)解像度を有し、一方でベース層Lは、映像グラフィックスアダプタ解像度(VGA)の拡張形態として640×360の解像度にスケーリングする。スケーラビリティの点で、一般に、映像は、一時的にスケーラブル(例えばフレームレートによって)であったり、空間的(例えば空間解像度によって)であったり、および/または品質(例えば信号対雑音比SNRと呼ばれる忠実度(fidelity))によったりする。
【0016】
レート割り当てシステム100は、ユーザ10、10aが映像ソース装置110で映像をキャプチャし、キャプチャされた映像を他のユーザ10、10b〜10cに通信する例示的な環境である。ここで、キャプチャされた映像をユーザ10b、10cが映像受信装置150、150b〜150cを介して受信する前に、エンコーダ200およびアロケータ300は、キャプチャされた映像を、割り当てられたビットストリームレートで、符号化ビットストリーム204に変換する。各映像受信装置150は、異なる映像解像度を受信および/または処理するように構成することができる。ここで、より大きい層番号iを有する空間層Lは、より大きい解像度を有する層Lを指し、i=0は、複数の空間層L〜Lのビットストリームのうちの最も低いスケーラブルな解像度を有するベース層Lを指す。図1を参照すると、符号化された映像ビットストリーム204は、2つの空間層L、Lを含む。したがって、1つの映像受信装置150は、低解像度空間層Lとして映像コンテンツを受信することができ、一方で、別の映像受信装置150は、高解像度空間層Lとして映像コンテンツを受信することができる。例えば図1は、ユーザ10bの第1映像受信装置150aを、低解像度空間層Lを受信する携帯電話機として示し、ラップトップとしての第2受信装置150bを有するユーザ10cは、高解像度空間層Lを受信する。
【0017】
異なる映像受信装置150a〜150bが異なる空間層L〜Lを受信するとき、各空間層Lの映像品質は、受信された空間層LのビットレートBおよび/または割り当て係数Aに依存しうる。ここで、ビットレートBは1秒当たりのビット(bits per second)に対応し、割り当て係数Aは、サンプル当たりのビット(すなわち、変換係数)に対応する。スケーラブルビットストリーム(例えば符号化ビットストリーム204)の場合、スケーラブルビットストリームの総ビットレートBRtotは、スケーラブルビットストリームの各空間層Lが同様のビットレート制約を受けるように、しばしば制約される。これらの制約のために、1つの空間層Lに関連するビットレートBは、別の空間層Lの品質を損なうか、またはトレードオフする可能性がある。より詳細には、映像受信装置150を介してユーザ10によって受信された空間層L上で品質が損なわれた場合、品質はユーザ経験に否定的な効果を生成する可能性がある。例えばリアルタイム通信(RTC)アプリケーションを介した通信の形態として映像コンテンツを転送することは、より一般的になりつつある。RTCアプリケーションのユーザ10は、アプリケーションの主観的な品質(subjective quality)に基づき通信のためのアプリケーションを選択することが多い。したがって、アプリケーションユーザとして、ユーザ10は、一般に、アプリケーションユーザ10が受け取る空間層Lへの不十分なビットレート割り当てに起因する可能性がある品質問題なしに、前向きな通信体験(positive communication experience)を有することを望んでいる。前向きなユーザ経験(positive user experience)を確実にすることを支援するために、アロケータ300は、割り当て係数Aを適応的に通信して、複数の空間層L〜Lのうちの各空間層Lに対するビットレートBを決定するように構成される。複数の空間層L〜Lの中で割り当て係数Aを解析的に割り当てることによって、アロケータ300は、所与の総ビットレートBRtotに対して全ての空間層L〜Lにわたって最高の映像品質を達成しようとする。
【0018】
映像ソース装置110は、キャプチャされた映像および/または映像入力信号120をネットワーク130および/またはリモートシステム140に通信することができる任意の計算装置またはデータ処理ハードウェアであってもよい。いくつかの例では、映像ソース装置110は、データ処理ハードウェア112、メモリハードウェア114、および映像キャプチャ装置116を含む。いくつかの実装形態では、映像キャプチャ装置116は、実際には、キャプチャされた画像のシーケンスを映像コンテンツとして通信することができる画像キャプチャ装置である。例えばいくつかのデジタルカメラおよび/またはウェブカムは、特定の周波数で画像をキャプチャして、知覚される映像コンテンツを形成するように構成される。他の例では、映像ソース装置110は、続いてデジタルフォーマットに変換され得る連続的なアナログフォーマットで映像をキャプチャする。いくつかの構成では、映像ソース装置110は、キャプチャされたデータ(例えば、アナログまたはデジタル)を、エンコーダ200によってさらに処理されるフォーマットに最初にエンコードまたは圧縮するためのエンコーダを含む。他の例では、映像ソース装置110は、映像ソース装置110においてエンコーダ200にアクセスするように構成される。例えばエンコーダ200は、リモートシステム140上にホストされたウェブアプリケーションであり、映像ソース装置110によってネットワーク接続を介してアクセス可能である。例えば他の例では、エンコーダ200および/またはアロケータ300の部分または全部は、映像ソース装置110上でホストされる。例えば、エンコーダ200およびアロケータ300は、映像ソース装置110上でホストされるが、リモートシステム140は、映像受信装置150の復号機能に応じて、および映像受信装置150とリモートシステム140との間のネットワーク130の接続の容量に応じて、空間層L〜Lを含むビットストリームを映像受信装置150に中継するバックエンドシステムとして機能する。追加的にまたは代替的に、映像ソース装置110は、映像キャプチャ装置116を利用して、ユーザ10aがネットワーク130を介して他のユーザ10b〜10cに通信するように係わるように、構成されている。
【0019】
映像入力信号120は、キャプチャされた映像コンテンツに対応する映像信号である。ここで、映像ソース装置110は、映像コンテンツをキャプチャする。例えば図1は、ウェブカメラ116を介して映像コンテンツをキャプチャする映像ソース装置110を示している。いくつかの例では、映像入力信号120は、エンコーダ200によってデジタルフォーマットに処理されるアナログ信号である。他の例では、映像入力信号120は、エンコーダ200が再量子化プロセスを実行するように、エンコーダ200の前に何らかのレベルの符号化またはデジタルフォーマット化を受けている。
【0020】
映像ソース装置110と同様に、映像受信装置150は、ネットワーク130および/またはリモートシステム140を介して通信されたキャプチャ映像を受信することができる任意の計算装置またはデータ処理ハードウェアであってもよい。いくつかの例では、映像ソース装置110および映像受信装置150は、映像受信装置150が映像ソース装置110となり、映像ソース装置110が映像受信装置150となるような同一の機能で構成される。いずれの場合も、映像受信装置150は、少なくともデータ処理ハードウェア152およびメモリハードウェア154を含む。さらに、映像受信装置150は、受信した映像コンテンツ(例えば符号化ビットストリーム204の少なくとも1つの層L)を表示するように構成されたディスプレイ156を含む。図1に示すように、ユーザ10b、10cは、符号化ビットストリーム204をビットレートBで空間層Lとして受信し、符号化ビットストリーム204を映像としてディスプレイ156に復号して表示する。いくつかの例では、映像受信装置150が符号化ビットストリーム204の内容を表示することを可能にするために、映像受信装置150はデコーダを含み、またはデコーダに(例えばネットワーク130を介して)アクセスするように構成される。
【0021】
いくつかの実施形態では、エンコーダ200および/またはアロケータ300は、クラウド環境の分散システムなどのリモートシステム140によってホストされるアプリケーションであり、映像ソース装置110および/または映像受信装置150を介してアクセスされる。いくつかの実装形態では、エンコーダ200および/またはアロケータ300は、映像ソース装置110および/または映像受信装置150のメモリハードウェア114,154にダウンロードされたアプリケーションである。エンコーダ200および/またはアロケータ300へのアクセスポイントにかかわらず、エンコーダ200および/またはアロケータ300は、リモートシステム140に通信して、リソース142(例えばデータ処理ハードウェア144、メモリハードウェア146、またはソフトウェアリソース148)にアクセスするように構成することができる。リモートシステム140のリソース142へのアクセスは、エンコーダ200および/またはアロケータ300が映像入力信号120を符号化ビットストリーム204に符号化すること、および/またはビットレートBを符号化ビットストリーム204の複数の空間層L〜Lの各空間層Lに割り当てることを可能にし得る。任意選択で、リアルタイム通信(RTC)アプリケーションは、ユーザ10,10a〜10cの間で通信するために使用されるリモートシステム140のソフトウェアリソース148として、組み込み機能としてのエンコーダ200および/またはアロケータ300を備える。
【0022】
図1をさらに詳細に参照すると、3人のユーザ10、10a〜10cは、リモートシステム140によってホストされるRTCアプリケーション(例えばクラウドによってホストされるwebRTC映像アプリケーション)を介して通信する。この例では、第1ユーザ10aは、第2ユーザ10bおよび第3ユーザ10cとのグループ映像チャットをしている。話している第1ユーザ10aの映像を映像キャプチャ装置116がキャプチャすると、映像入力信号120を介してキャプチャされた映像は、エンコーダ200およびアロケータ300によって処理され、ネットワーク130を介して通信される。ここで、エンコーダ200およびアロケータ300は、RTCアプリケーションと共に動作して、複数の空間層L、Lを有する符号化ビットストリーム204を生成する。ここで各空間層Lは、映像入力信号120に基づき割り当て係数AF0、AF1によって決定される割り当てられたビットレートBR0、BR1を有する。各映像受信装置150a、150bの性能に起因して、チャットする第1ユーザ10aの映像を受信する各ユーザ10b、10cは、映像入力信号120に対応する元の映像の異なるスケーリングされたバージョンを受信する。例えば第2ユーザ10bはベース空間層Lを受信し、第3ユーザ10cは第1空間層Lを受信する。各ユーザ10b、10cは、受信した映像コンテンツを、RTCアプリケーションに通信するディスプレイ156a、156bに表示する。RTC通信アプリケーションが示されているが、エンコーダ200および/またはアロケータ300は、複数の空間層L〜Lを有する符号化ビットストリーム204を含む他のアプリケーションで使用されてもよい。
【0023】
図2は、エンコーダ200の例である。エンコーダ200は、入力202としての映像入力信号120を、出力204としての符号化ビットストリームに変換するように構成されている。個々に示されているが、エンコーダ200およびアロケータ300は、単一の装置(例えば図1に点線で示すように)に統合されてもよく、または複数の装置(例えば映像入力装置110、映像受信装置150、またはリモートシステム140)にわたって別々に発生してもよい。エンコーダ200は、一般に、スケーラ210、変換器220、量子化器230、およびエントロピエンコーダ240を含む。図示されていないが、エンコーダ200は、符号化ビットストリーム204を生成するための追加の構成要素を含むことができ、追加の構成要素は、予測成分(例えば動き推定およびイントラ予測)および/またはインループフィルタなどである。予測成分は、変換のために変換器220に伝達される残差を生成し、残差は、元の入力フレームからフレームの予測(例えば動き補償またはフレーム内予測)を引いた差分に基づく。
【0024】
スケーラ210は、映像入力信号120を複数の空間層L〜Lにスケーリングするように構成される。いくつかの実装形態では、スケーラ210は、空間分解能を低減するために除去され得る映像入力信号120の部分を決定することによって、映像入力信号120をスケーリングする。部分または複数の部分を除去することによって、スケーラ210は、映像入力信号120のバージョンを形成し、複数の空間層(例えばサブストリーム)を形成する。スケーラ210は、スケーラ210がベース空間層Lを形成するまで、このプロセスを繰り返すことができる。いくつかの例では、スケーラ210は、映像入力信号120をスケーリングして、設定された数の空間層L〜Lを形成する。他の例では、スケーラ210は、サブストリームを復号するためのデコーダが存在しないとスケーラ210が判定するまで、映像入力信号120をスケーリングするように構成される。スケーラ210が、映像入力信号120のスケーリングされたバージョンに対応するサブストリームを復号するデコーダが存在しないと判定した場合、スケーラ210は、前のバージョン(例えば空間層L)をベース空間層Lとする。スケーラ210のいくつかの例は、H.264映像圧縮規格の拡張またはVP9符号化フォーマットの拡張のような、スケーラブル映像符号化(SVC)拡張に対応するコーデックを含む。
【0025】
変換器220は、スケーラ210からの映像入力信号120に対応する各空間層Lを受け取るように構成される。空間層L毎に、変換器220は、動作222において、各空間層Lをサブブロックに分割する。各サブブロックを用いて動作224において、変換器220は、各サブブロックを変換して変換係数226を生成する(例えば離散コサイン変換(DCT)によって)。変換係数226を生成することによって、変換器220は、冗長映像データと非冗長映像データとを相関させて、エンコーダ200による冗長映像データの除去を助けることができる。いくつかの実装形態では、変換係数はまた、アロケータ300が、空間層L内の非ゼロ分散を有する変換ブロック毎の係数の数を容易に決定することを可能にする。
【0026】
量子化器230は、量子化または再量子化プロセス232(スカラー量子化)を実行するように構成される。量子化プロセスは、一般に、入力パラメータ(例えば連続するアナログデータセットから)を、出力値のより小さいデータセットに変換する。量子化プロセスは、アナログ信号をデジタル信号に変換することができるが、ここでは、量子化プロセス232(再量子化プロセスとも呼ばれることもある)は、通常、デジタル信号をさらに処理する。映像入力信号120の形態に応じて、いずれかのプロセスを交換可能に使用することができる。量子化または再量子化プロセスを使用することによって、データは圧縮されることが可能であるが、より小さいデータセットはより大きいまたは連続的なデータセットの減少であるので、データ損失のいくつかの態様のコストである。ここで、量子化プロセス232は、デジタル信号を変換する。いくつかの例では、量子化器230は、変換器220からの各サブブロックの変換係数226を量子化インデックス234にスカラー量子化することによって、符号化ビットストリーム204の形成に寄与する。ここで、変換係数226をスカラー量子化することによって、非可逆的な符号化を可能にして、冗長な映像データ(例えば符号化中に除去され得るデータ)を、貴重な映像データ(例えば除去すべきでないデータ)にコントラストさせるために、各変換係数226をスケーリングすることができる。
【0027】
エントロピエンコーダ240は、量子化インデックス234(すなわち、量子化された変換係数)およびサイド情報を、ビットに変換するように構成される。この変換によって、エントロピエンコーダ240は、符号化ビットストリーム204を形成する。いくつかの実装形態では、量子化器230と共にエントロピエンコーダ240は、エンコーダ200が符号化ビットストリームを形成することを可能にし、ここで各層L〜Lは、アロケータ300によって決定された割り当て係数AF0〜AFiに基づきビットレートBR0〜BRiを有する。
【0028】
図3は、アロケータ300の例である。アロケータ300は、複数の空間層L〜Lに関連する非量子化された変換係数226を受信し、各受信された空間層L〜Lについて割り当て係数Aを決定するように構成される。いくつかの実装において、アロケータ300は、スカラー量子化のための二乗誤差ベースの高速近似に基づき、各割り当て係数Aを決定する。二乗誤差の高速近似によって、システムは、N個のスカラー量子化器を割り当てるために(高速近似のコンテキストで)最適なビットレートを決定することが可能になる。典型的には、n個のスカラー量子化器に割り当てられる最適ビットレートは、レート−歪み最適化量子化によって決定される。レート−歪み最適化は、ビットレート制約(例えば総ビットレートBRtot)による歪みの量(すなわち、映像品質の損失)を最小化することによって、映像圧縮中の映像品質を改善することを追求する。ここで、アロケータ300は、N個のスカラー量子化器の最適ビットレートを決定する原理を適用し、符号化ビットストリーム204の複数の空間層L〜Lの各々にビットレートを割り当てるための最適な割り当て係数を決定する。
【0029】
一般的に言えば、スカラー量子化のための自乗誤差の高速近似は、以下の式で表すことができる。
【0030】
【数1】
ここで、hは、第i量子化器への入力信号(例えば変換係数)のソース分布に依存し、σは、その信号の分散であり、rは、第i量子化器についての入力シンボル当たりのビット単位でのビットレートである。2スカラー量子化器に対する最適なレート割り当てのための式は、2乗誤差の高速近似を使用して以下に導出される。
【0031】
2量子化問題の平均歪みD、すなわちDは、(d+d)/2に等しい。同様に、2量子化問題についての平均レートRは、(r+r)/2に等しい。ここで、dは第i量子化器による自乗誤差歪みであり、rは1サンプル当たりのビット単位で第i量子化器に割り当てられたビットレートである。ただし、パラメータdは、d(r)のような式が適切であるようなレートrの関数であるが、便宜上、dは単に代わりにdとして表される。dおよびdについての高速近似をDの式に代入すると、次のようになる。
【0032】
【数2】
式(2)を用いて、2R−rをrに代入すると、以下になる。
【0033】
【数3】
についてのDの導関数をさらにとることによって、式(3)から以下の式が得られる。
【0034】
【数4】
上記の式、つまり式(4)をゼロに設定し、rについて解くことによって、以下のように表されるゼロ量子化器についての最適レートrの式が得られる。
【0035】
【数5】
高速歪みの式は凸(convex)であるため、導関数をゼロに設定することによって求められる最小値はグローバルである。同様に、第1量子化器の最適レートrは、次のように表すことができる。
【0036】
【数6】
最適な量子化器の歪み、dおよびdを見出すために、式(5)および式(6)を、以下のようにスカラー量子化器の歪みについてのそれぞれの高速式に最適なレートで代入する。
【0037】
【数7】
式(7)の簡略化された形態は、以下の式をもたらす。
【0038】
【数8】
この同じ2量子化器分析は、ゼロ量子化器と第1量子化器とを単一の量子化システム(すなわち、ネスト化されたシステム)に結合することによって、3量子化器に拡張することができ、ここで、結合された量子化器は、式(1)〜(8)に従って既に解かれる。2量子化レート割り当てと同様の方法を使用して、3量子化器システムは以下のように導出される。
【0039】
2量子化器システムのための平均/量子化器の歪みは、davg=(d+d)/2として表され、davgを3量子化器の歪み平均の式に代入することによって、D=(d+d+d)/3は以下の式をもたらす。
【0040】
【数9】
同様に、3量子化器システムの平均レートは、次のように表される。
【0041】
【数10】
式(8)に示すように、2量子化器解析からの最適な歪みの結果を利用して、3量子化器の歪みは、以下の式で表すことができる。
【0042】
【数11】
したがって、式(11)が簡略化され、ravg=(3/2)R−(1/2)rが式(11)に代入されると、式(11)は、以下の式に変換される。
【0043】
【数12】
式(12)を用いて、rに対する導関数をゼロに設定し、rについて解くことによって、以下の式を得ることができる。
【0044】
【数13】
3量子化器について、式(13)のより一般的な表現は、次のように表すことができる。
【0045】
【数14】
第1量子化器および第2量子化器に基づき、N量子化器に対する最適なレート割り当てrの式を導出することができる。第i量子化器に対する最適レートの式は、以下のとおりである。
【0046】
【数15】
最適レートの式を歪みのための高速式に代入し、2量子化器の式と同様に単純化することによって、N量子化器に関する最適な歪みのための結果的な式が以下に示される。
【0047】
【数16】
式(1)〜(16)からの導出された表現に基づき、アロケータ300は、最適な歪みについてのこれらの式を適用して、複数の空間層L〜Lの各層Lについて最適な割り当て係数A(すなわち、最適なビットレートBに寄与する)を決定することができる。導出されたN個の量子化表現に類似して、複数の空間層ビットレートは、2層および3層レート割り当てシステムに関連する式から推定することができる。いくつかの例では、空間層L〜Lは典型的には異なる空間次元を有するが、空間層L〜Lは、同じ映像ソース(例えば映像ソース装置110)から発生すると仮定する。一部の実施形態では、第1空間層Lおよび第2空間層Lを符号化するスカラー量子化器は、これらのスカラー量子化器の値が異なっても、構造が同一であると仮定される。さらに、各空間層Lについて、サンプルSの数は、一般に、変換係数226の数に等しい(すなわち、量子化器の数に等しい)。
【0048】
2空間層レート割り当てシステムの場合、2空間層の平均歪みDは、第1および第2空間層L、L(すなわち空間層0および空間層1)に対応する平均歪みdおよびdの加重和として、以下のように表すことができる。
【0049】
【数17】
ここで、sは第i空間層Lにおけるサンプル数に等しく、S=s+sである。同様に、2空間層の平均ビットレートは、次のように表すことができる。
【0050】
【数18】
ここで、rおよびrは、それぞれ第1および第2空間層L、Lの平均ビットレートである。N−量子化器の最適な歪みについての式(すなわち、式(16))をDについての式(17)に代入すると、上述のDは次のように表すことができる。
【0051】
【数19】
ここでσj,iは、第i空間層Lにおける第jスカラー量子化器への入力信号の分散である。式(18)においてrについて解き、結果を式(19)に代入すると、以下のようになる。
【0052】
【数20】
また、rに対するDの導関数をゼロに設定し、rについて解くことによって、rを次式で表すことができる。
【0053】
【数21】
表記の便宜上、式(21)を簡略化するために、P=Πj=0Si−1j,iσj,iである。Pについてのこの式をrについての式(21)に代入し、得られた項を再配置することによって、N−量子化器の割り当て式と同様に現れる次式が形成される。
【0054】
【数22】
あるいは、式(22)は、以下の式に到達するためにrの項で表現されてもよい。
【0055】
【数23】
式(7)〜(23)に基づき、最適な2空間層歪みは以下のように表すことができる。
【0056】
【数24】
同様のアプローチは、3つの空間層L〜Lに適用される最適な割り当て係数を開発することができる。2つの空間層L、Lと同様に、sは第i空間層Lにおけるサンプルの数に等しく、S=s+s+sである。3つの空間層L〜Lについての平均レートRおよび歪みDは、それぞれ、空間層0,1,2(例えば3つの空間層L〜L)の平均レートr、r、rの加重和および歪みd、d、dの加重和として、次のように表すことができる。
【0057】
【数25】
【0058】
【数26】
同様の技術が2量子化器の結果から3量子化器に適用される場合、Rは、以下の式を使用して、平均2層レートRの組合せとして表現され得る。
【0059】
【数27】
【0060】
【数28】
同様に、3量子化器について、歪みは以下のように表すことができる。
【0061】
【数29】
【0062】
【数30】
2層最適歪みDの式(24)と、最適なN−量子化器歪みdのための式(8)とを用いて、式(29)はDについて解くことができ、以下の式を得ることができる。
【0063】
【数31】
ここで、Pj=0Si−1j,iσj,iである。式(27)は、Rについて解くことができ、以下の式を得ることができる。
【0064】
【数32】
さらに、式(32)をDの式(31)に代入することによって、式(31)と式(32)を合成することによって、以下の式が得られる。
【0065】
【数33】
についての式は、rに対するDの導関数をとり、結果をゼロに設定することによって形成することができる。この式は、以下の式で表すことができる。
【0066】
【数34】
各項が再配置されると、式(34)は、以下のような
【0067】
【数35】
と同様に見えることができる。
【0068】
【数36】
この式(36)を第1層Lおよび第2層Lに適用すると、各層についての割り当て係数(allocation factor)は、以下のように表すことができる。
【0069】
【数37】
【0070】
【数38】
2つの空間層L〜Lおよび3つの空間層L〜Lの両方の導出は、アロケータ300におけるレート割り当て(例えば各空間層Lに割り当てられたビットレートBを決定するための割り当て係数A)を最適化することができるように複数の空間層に拡張されるパターンを示す。ここで、上記結果をL個の空間層L〜Lに拡張することによって、以下の式で表される普遍的表現が得られる。
【0071】
【数39】
ここで、Rは、L個の空間層L〜L上のサンプル当たりのビットに対応する平均レートである。L個の空間層にわたるサンプル総数Sは、ここではS=Σi=0L−1であり、sは第i空間層におけるサンプル数である。P=Πj=0Si−1j,iσj,iであり、ここでhj,iは、第i空間層における第j量子化器によって量子化される信号のソース分布に依存する。σj,iは、第i空間層における第j変換係数の分散に対応する。
【0072】
いくつかの実装形態では、式(39)は、様々な仮定に起因して異なる形態を有する。式(39)の2つの異なる形態を以下に示す。
【0073】
【数39a】
【0074】
【数39b】
例えばhj,iの値は、第i空間層Liにおける第j量子化器によって量子化される映像入力信号120のソース分布に依存する。同様のソース分布を有する例では、hj,iの値は、量子化器から量子化器へ変化しないので、式(39)内の積の項の比率のためにキャンセルされる。換言すれば、hj,0=hj,1=hj,2=hである。したがって、このキャンセルが生じる場合、Pの項は、P=Πj=0Si−1j,iσj,i=hΠj=0Si−1σj,iである。これによって、Pは常に、分子にhがあり、分母の同類項をキャンセルする比率として表示されるため、このパラメータは考慮から効果的に除外される。実際には、hj,0は、hj,1およびhj,2とは異なることがある。というのは、ベース空間層Lは時間予測のみを使用するが、他の空間層は時間予測および空間予測の両方を使用することができるからである。いくつかの構成では、この差は、アロケータ300によって決定された割り当て係数Aに大きく影響を及ぼさない。
【0075】
他の実施態様では、エンコーダ200は、変換係数226をもたらす変換ブロックを導入する。これが発生すると、変数s′を導入する変換係数226のグループ化に変化が生じ得る。変数s′は、式(39a)に示されるように、第i空間層Lにおける非ゼロ分散を有する変換ブロック当たりの変換係数226の平均数に対応する。これに対して、この変数s′は、第i空間層Lにおけるサンプル数Sに対応する式(39b)のsに対応する。さらに、式(39a)において、項P=Πk=0S′i−1σk,iであり、ここでσk,iは、第i空間層Lの変換ブロックの第k係数の分散である。実際的には、式(39a)は、分散の積の比の加重和の式(例えば(1/2)Σj=0L−1(s′/s′)log(P/P))として、第i空間層Lに対する最適なビットレート割り当てを表す。
【0076】
図3を参照すると、いくつかの実装形態では、アロケータ300は、サンプラ310と、推定器320と、レート決定器330とを備える。サンプラ310は、複数の空間層L〜Lを有する非量子化変換係数226を、アロケータ300の入力302として受け取る。例えば図2は、点線によってアロケータ300に通信される変換器220によって生成された変換係数226を示す。受信された非量子化変換係数226によって、サンプラ310は、映像入力信号120のフレームをサンプルSとして識別する。サンプラ310によって識別されたサンプルSに基づき、アロケータ300は、各空間層Lについて割り当て係数Aを決定する。いくつかの実施形態では、アロケータ300は、各空間層Lの割り当て係数Aを動的に決定するように構成される。これらの実施態様では、サンプラ310は、アロケータ300が、サンプラ310によって識別された各セットのサンプルSに割り当て係数Aを適合させることができるように、フレームサンプルSのセットを反復的に識別するように構成されてもよい。例えばアロケータ300は、映像入力信号120のフレームの第1サンプルSF1に基づき、各空間層Lに対する割り当て係数Aを決定する。その後、アロケータ300は、サンプラ310によって識別された映像入力信号120のフレームの第2サンプルSF2に基づき、各空間層L(例えば必要であれば)に適用される割り当て係数Aを調整(adjust)または修正(modify)する(例えば図3に示されるように、第1サンプルSF1の第1割り当て係数AF1から、第2サンプルSF2の第2割り当て係数AF2へと変化する)ように進む。このプロセスは、アロケータ300が映像入力信号120を受信する期間にわたって繰り返し継続することができる。これらの例では、アロケータ300は、割り当て係数Aを修正し、続いて第1サンプルSF1と第2サンプルSF2との間の変化に基づき(例えば第1空間レート係数332から第2空間レート係数332への)空間レート係数332を修正する。追加的にまたは代替的に、アロケータ300は、指数移動平均を使用して、フレーム毎に割り当て係数Aを修正することができる。指数移動平均は、一般に、現在のフレームに対して決定された割り当て係数Aを、以前のフレームからの割り当て係数Aの加重平均で重み付けする加重移動平均である。言い換えると、ここでは、割り当て係数Aに対する各修正は、現在の割り当て係数Aおよび以前の割り当て係数Aを有する加重平均である。
【0077】
推定器320は、エンコーダ200からの各変換係数の分散推定322を決定するように構成されている。いくつかの構成では、推定器320は、変換器220からの各ブロック内の変換係数226が同様に分布されていると仮定する。この仮定に基づき、変換係数226の分散は、映像入力信号120のサンプルフレームS内の全ての変換ブロックにわたって平均することで推定できる。例えば以下の式は、第i空間層Lにおける第k変換係数226を、ランダム変数Ek,iとしてモデル化する。
【0078】
【数40】
ここで、εb,k,i,tは、第tフレームにおける第i空間層Lにおいて第b変換ブロックにおける第k変換係数226を表す。Bは、第i空間層Lにおけるブロック数を表す。Sは、分散を推定するために使用されるサンプルフレームの数を表す。いくつかの例では、σk,iの値は、第i空間層Lにおける第k変換係数226の分散の推定値であり、全てのそのようなブロックが同一の統計を有すると仮定された場合に、変換ブロックとは無関係である。しかしながら、実際には、変換ブロックの統計量は、フレームにわたって変化し得る。これは、フレームのエッジのブロックが中央のブロックよりも低いアクティビティを有しうる映像会議のコンテンツに対して特に当てはまることがある。したがって、これらの非同一の統計がレート割り当て結果の精度に悪影響を及ぼす場合、フレーム内で中央に配置されたブロックに基づく分散を推定することによって、負の影響を軽減することができる。いくつかの構成では、変換係数の分散が推定されるサブブロックは、映像画像内の全てのサブブロックのサブセットを表す(例えば映像画像の最も中央部分にあるサブブロック、または映像画像が以前の画像と比較して変更された場所にあるサブブロック)。
【0079】
レート決定器330は、サンプラ310によって識別された映像入力信号120からのフレームのサンプルSに基づき、空間レート係数332を決定するように構成される。いくつかの例では、空間レート係数332は、符号化ビットストリーム204の各空間層L〜LにおけるビットレートBを決定するための係数を規定する。空間レート係数332は、空間層Li−1に割り当てられたビットレートと、空間層Lに割り当てられたビットレートとの比である。空間層Lおよび空間層Lを有する2空間の例では、空間レート係数は0.5に等しく、空間層Lに割り当てられたビットレートが500kbpsに等しく、空間層Lに割り当てられたビットレートが250kbps(すなわち、500kbpsの0.5倍)に等しい。これらの実施形態では、空間レート係数332の値は、ベース層Lの割り当て係数Aと平均レートRとの差(例えば式(39)の表現r−R)に等しく設定される。ここで、割り当て係数Aは、ベース層Lの変換係数当たりのビットに対応し(roとも呼ばれる)、平均レートRは、複数の空間層L〜Lの変換係数当たりのビットに対応する。いくつかの構成では、2つの空間層についての実験結果は、空間レート係数332が式srf=0.65+(r−R)/20に対応することを示している。空間レート係数332は、単一のパラメータとして、アロケータ300が、符号化ビットストリーム204の各層Lに対するビットレートBを容易にチューニングまたは修正することを可能にすることができる。
【0080】
2つの空間層について説明されているが、アロケータ300は、空間レート係数332および/または割り当て係数Aを、任意の数の空間層L〜Lに適用することができる。例えばアロケータ300は、2つの空間層の各組について割り当て係数Aおよび/または空間レート係数332を決定する。3つの層L〜Lを用いて説明するために、アロケータ300は、ベース層Lおよび第1層Lの割り当て係数Aを決定し、それから第1層Lおよび第2層Lについて割り当て係数Aを決定する。各割り当て係数Aを使用して、空間レート係数332と、ベース層Lおよび第1層Lに対する1つの空間レート係数332と、第1層Lおよび第2層Lに対する第2空間レート係数332とを決定することができる。2つの空間層の各セットの空間速度係数332を用いて、アロケータ300は、空間レート係数332および/または割り当て係数AFを平均(例えば加重平均、算術平均、幾何学的平均など)して、任意の数の空間層L〜Lの平均空間レート係数および/または平均割り当て係数を生成することができる。
【0081】
いくつかの例では、アロケータ300が空間レート係数332に基づきビットレートBを決定するのを助けるために、空間レート係数332は、空間レート係数閾値334を満たさなければならない(例えば、値の範囲内にある)。いくつかの実装形態では、値が約1.0未満および約0.5より大きい範囲内にあるとき、値は空間レート係数閾値334を満たす。他の実装形態では、空間レート係数閾値334は、値のより狭い範囲(例えば、0.55〜0.95、0.65〜0.85、0.51〜0.99、0.65〜1.0、0.75〜1.0など)に対応するか、または値のより広い範囲(例えば、0.40〜1.20、0.35〜0.95、0.49〜1.05、0.42〜1.17、0.75〜1.38など)に対応する。いくつかの構成では、空間レート係数332が空間レート係数閾値334に対応する値の範囲外である場合、アロケータ300は、空間レート係数閾値334を満たすように空間レート係数332を調整する。例えば空間レート係数閾値334が0.45〜0.95の範囲である場合、この範囲外の空間レート係数332は、範囲の最も近い最大値に調整される(例えば0.3の空間レート係数332は、0.45の空間レート係数332に調整され、1.82の空間レート係数332は、0.95の空間レート係数332に調整される)。
【0082】
決定された空間レート係数332に基づき、アロケータ300は、総ビットレートBRtotに対する制約にさらされる複数の空間層L〜Lの歪みを低減することによって、映像品質を最適化するように構成される。歪みを低減するために、アロケータ300は、フレームのサンプルSに対して計算された空間レート係数332に基づいて、各空間層LへのビットレートBに影響を与える(例えば、エンコーダ200がビットレートBを決定するのを助ける)。例えば符号化ビットストリーム204が2つの空間層L、Lを含む場合、アロケータ300は、割り当て係数Aを決定し、割り当て係数Aは、次に、空間レート係数332を決定し、式BR1=BRtot/(1+srf)に対応する第1ビットレートBR1と、式BR0=(BRtot*srf)/(1+srf)に対応する第2ビットレートBR0とを生成するために使用される。ここでBRtotは、全体のビットストリーム(すなわち、全ての空間層L、L)を符号化するのに利用可能な総ビットレートに対応する。
【0083】
図4は、レート割り当てシステム100を実装する方法400の一例である。動作402において、方法400は、データ処理ハードウェア510において、映像入力信号120に対応する変換係数226(例えば非量子化された変換係数)を受信する。映像入力信号120は複数の空間層L〜Lを含み、複数の空間層L〜Lはベース層Lを含む。動作404において、方法400は、データ処理ハードウェア510によって、映像入力信号120からのフレームのサンプルSに基づき、空間レート係数332を決定する。空間レート係数332は、符号化ビットストリーム204の各空間層Lにおけるレート割り当ての係数を定義し、空間レート係数332は、ベース層Lの変換係数当たりのビットレートと、複数の空間層L〜Lの変換係数当たりのビットの平均レートRとの差によって表される。動作406において、方法400は、データ処理ハードウェア510によって、空間レート係数332およびフレームのサンプルSに基づき、各空間層LにビットレートBを割り当てることによって、符号化ビットストリーム204の複数の空間層L〜Lの歪みdを低減する。
【0084】
図5は、本文書に記載されているシステムおよび方法、例えば、エンコーダ200および/またはアロケータ300を実装するために使用され得る例示的な計算装置500の概略図である。計算装置500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図されている。ここに示された構成要素、それらの接続および関係、およびそれらの機能は、例示的なものに過ぎず、本明細書に記載および/または特許請求された本発明の実施を制限することを意図するものではない。
【0085】
計算装置500は、データ処理ハードウェア510と、メモリハードウェア520と、記憶装置530と、メモリ520および高速拡張ポート550に接続される高速インタフェース/コントローラ540と、低速バス570および記憶装置530に接続する低速インタフェース/コントローラ560とを含む。各構成要素510、520、530、540、550、および560は、様々なバスを使用して相互接続され、共通のマザーボード上に、または適宜他の方法で実装することができる。プロセッサ510は、メモリ520または記憶装置530に格納された命令を含む、計算装置500内で実行するための命令を処理して、高速インタフェース540に結合されたディスプレイ580などの外部入出力装置上のグラフィカルユーザインタフェース(GUI)のためのグラフィカル情報を表示することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスを、複数のメモリおよびメモリのタイプと共に、適切に使用することができる。また、複数の計算装置500は必要な動作の一部を提供する各装置(例えばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステム)に接続されてもよい。
【0086】
メモリ520は、計算装置500内に非一時的に情報を格納する。メモリ520は、コンピュータ可読媒体、揮発性メモリユニット(複数)、または不揮発性メモリユニット(複数)であってもよい。非一時的メモリ520は、計算装置によって使用されるための一時的または永続的なベースで、プログラム(例えば命令のシーケンス)またはデータ(例えばプログラム状態情報)を記憶するために使用される物理的装置であってもよい。不揮発性メモリの例には、フラッシュメモリおよび読み出し専用メモリ(ROM)/プログラム可能読み出し専用メモリ(PROM)/消去可能プログラマブル読み出し専用メモリ(PROM)/電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)(例えばブートプログラムのようにファームウェアに典型的に使用される)が含まれるが、これらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、ならびにディスクまたはテープを含むが、これらに限定されない。
【0087】
記憶装置530は、計算装置500のための大容量記憶を提供することができる。一部の実施形態では、記憶装置530はコンピュータ可読媒体である。様々な異なる実施形態では、記憶装置530は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリまたは他の同様の固体メモリ装置であったり、または記憶領域ネットワークまたは他の構成の装置を含む装置のアレイであったりしてもよい。追加の実装形態では、コンピュータプログラム製品は、情報キャリアに実体的に具体化される。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を実行する命令を含む。情報キャリアは、メモリ520、記憶装置530、またはプロセッサ510上メモリなどのコンピュータ可読媒体である。
【0088】
高速コントローラ540は、計算装置500に対する帯域幅集中の動作を管理し、低速コントローラ560は、より低い帯域幅集中の動作を管理する。このような職務の割り当ては、例示的なものに過ぎない。いくつかの実施形態では、高速コントローラ540は、メモリ520に、(例えばグラフィックスプロセッサまたはアクセラレータを介して)ディスプレイ580に、および高速拡張ポート550に結合される。高速拡張ポート550は、様々な拡張カード(図示せず)を受け入れることができる。いくつかの実施形態では、低速コントローラ560は、記憶装置530および低速拡張ポート590に結合される。様々な通信ポート(例えばUSB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含むことができる低速拡張ポート590は、キーボード、ポインティングデバイス、スキャナなどの1つまたは複数の入出力装置に結合され得たり、スイッチまたはルータなどのネットワークデバイスに例えばネットワークアダプタを介して結合され得たりする。
【0089】
計算装置500は、図面に示すように、いくつかの異なる形態で実装することができる。例えば計算装置500は、標準サーバ500aとしてまたは複数のサーバ500aからなるグループ内の複数回として、ラップトップコンピュータ500bとして、またはラックサーバシステム500cの一部として、実装されてもよい。
【0090】
本明細書に記載されたシステムおよび技術の様々な実装は、デジタル電子および/または光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現することができる。これらの様々な実装は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行可能および/または解釈可能な1つまたは複数のコンピュータプログラム内の実装を含むことができる。少なくとも1つのプログラマブルプロセッサは、専用または一般の用途で、データおよび命令を受信したりデータおよび命令を送信したりするように、記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置に結合される。
【0091】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高レベル手続きおよび/またはオブジェクト指向のプログラミング言語でおよび/またはアセンブリ/機械言語で実施することができる。本明細書で使用されるように、用語「機械可読媒体」および「コンピュータ可読媒体」は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置および/またはデバイス(例えば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLDs))を指し、機械可読信号として機械命令を受信する機械可読媒体を含む。用語「機械可読信号」は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0092】
本明細書に記載されたプロセスおよび論理フローは、1つ以上のコンピュータプログラムを実行して、入力データ上で動作して出力を生成することによって機能を実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、専用ロジック回路、例えばFPGA(フィールド プログラマブル ゲート アレイ)またはASIC(特定用途向け集積回路)によって実行することもできる。コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受け取る。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための1つまたは複数のメモリ装置とを含む。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶装置、例えば磁気、光磁気ディスク、または光ディスクからデータを受信するか、これら大容量記憶装置にデータを送信するか、または両方ができるように、これら大容量記憶装置を備えるかまたはこれら大容量記憶装置に動作可能に結合される。しかし、コンピュータはそのような装置を有する必要はない。コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、例えばEPROM、EEPROM、およびフラッシュメモリ装置のような半導体メモリ装置、例えば内部ハードディスクまたは取り外し可能ディスクのような磁気ディスク、光磁気ディスク、ならびにCD−ROMおよびDVD−ROMディスクを例として含む、全ての形態の不揮発性メモリ、媒体、およびメモリ装置を含む。プロセッサおよびメモリは、専用ロジック回路によって補うことができ、または専用ロジック回路に組み込むことができる。
【0093】
ユーザとの対話を提供するために、本開示の1つ以上の態様は、ユーザに情報を表示するための例えばCRT(ブラウン管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーンなどのディスプレイ装置を有するコンピュータ上で実施することができ、コンピュータは付加的に、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティング装置、例えばマウスまたはトラックボールを備えることができる。他の種類の装置を使用して、ユーザとの対話を提供することができ、例えばユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックのような感覚フィードバックの任意の形態とすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらにコンピュータは、例えばユーザのクライアント装置上のウェブブラウザから受信された要求に応答して、ユーザのクライアント装置上のウェブブラウザにウェブページを送信することによって、ユーザによって使用される装置にドキュメントを送信し、該装置からドキュメントを受信することによって、ユーザと対話することができる。
【0094】
いくつかの実装が記載されている。それにもかかわらず、本開示の趣旨および範囲から逸脱することなく、様々な変更がなされ得ることが理解されるであろう。したがって、他の実施形態は、以下の請求項の範囲内である。
図1
図2
図3
図4
図5