(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-13
(45)【発行日】2024-06-21
(54)【発明の名称】映像圧縮のための前処理
(51)【国際特許分類】
H04N 19/117 20140101AFI20240614BHJP
H04N 19/147 20140101ALI20240614BHJP
H04N 19/176 20140101ALI20240614BHJP
H04N 19/85 20140101ALI20240614BHJP
【FI】
H04N19/117
H04N19/147
H04N19/176
H04N19/85
(21)【出願番号】P 2021570339
(86)(22)【出願日】2020-05-29
(86)【国際出願番号】 IB2020055143
(87)【国際公開番号】W WO2020240509
(87)【国際公開日】2020-12-03
【審査請求日】2023-04-11
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】メーディ サイーディ
(72)【発明者】
【氏名】ボリス イバノビッチ
(72)【発明者】
【氏名】トーマス ストラルチク
(72)【発明者】
【氏名】イハブ アメール
(72)【発明者】
【氏名】ガボール シネス
【審査官】鉢呂 健
(56)【参考文献】
【文献】特開2006-166104(JP,A)
【文献】特開2018-046407(JP,A)
【文献】特開平06-225276(JP,A)
【文献】特開2005-175621(JP,A)
【文献】米国特許出願公開第2007/0064816(US,A1)
【文献】JENAB, Maryam et al.,CONTENT-ADAPTIVE RESOLUTION CONTROL TO IMPROVE VIDEO CODING EFFICIENCY,2018 IEEE International Conference on Multimedia & Expo Workshops (ICMEW),IEEE,2018年11月29日,pp.1-4,<URL:https://ieeexplore.ieee.org/abstract/document/8551513/citations#citations>,<DOI:10.1109/ICMEW.2018.8551513>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
空間勾配、彩度、コントラスト又はノイズ具合のうち少なくとも1つを含むメトリックに基づいて、1つ以上のピクチャの複数のブロックの各ブロックを特性化することと、
第1のフィルタを適用して、前記複数のブロックの各ブロックをフィルタ処理することと、
第1の量子化パラメータを用いて、前記第1のフィルタでフィルタ処理された前記複数のブロックの各々を符号化することと、
前記第1のフィルタでフィルタ処理され、符号化された前記複数のブロックの各々のデータサイズ及び歪みエラーを計算することと、
第1のピクチャの第1のブロックのデータサイズ及び歪みエラーを、前記第1のブロックの特性と前記複数のブロックの各々の特性並びにデータサイズ及び歪みエラーと第1のモデルとに基づいて予測することであって、前記第1のブロックは、前記第1のフィルタでフィルタ処理され、前記第1の量子化パラメータを用いて符号化される、ことと、
予測されたデータサイズ及び歪みエラーに基づく前記第1のフィルタのコストが閾値未満であることに応じて、前記第1のフィルタを前記第1のブロックに適用することと、を含む、
方法。
【請求項2】
第2のフィルタを適用して、前記1つ以上のピクチャの前記複数のブロックをフィルタ処理することと、
前記第1の量子化パラメータを用いて、前記第2のフィルタでフィルタ処理された前記複数のブロックの各々を符号化することと、
前記第2のフィルタでフィルタ処理され、符号化された前記複数のブロックの各々のデータサイズ及び歪みエラーを計算することと、
前記第1のピクチャの前記第1のブロックのデータサイズ及び歪みエラーを、前記第1のブロックの特性と前記複数のブロックの各々の特性並びにデータサイズ及び歪みエラーと第2のモデルとに基づいて予測することであって、前記第1のブロックは、前記第2のフィルタでフィルタ処理され、前記第1の量子化パラメータを用いて符号化される、ことと、
前記第1のフィルタのコストが、前記第2のフィルタでフィルタされた場合の前記第1のブロックの前記第1のブロックの予測されたデータサイズ及び歪みエラーに基づく前記第2のフィルタのコストを超えることに応じて、前記第2のフィルタを前記第1のブロックに適用することと、を含む、
請求項1の方法。
【請求項3】
前記第1のフィルタ及び前記第2のフィルタは、ぼかしフィルタであり、
前記第1のフィルタを適用することは、
前記第1のブロックのサンプル画素を含むぼかしに候補画素を含めるための、前記サンプル画素と、前記候補画素と、の間の値の差との比較に用いる閾値を示す第1の制御設定を変更することを含み、
前記第2のフィルタを適用することは、
前記サンプル画素を含むぼかしに前記候補画素を含めるための、前記サンプル画素と、前記候補画素と、の間の距離との比較に用いる閾値を示す第2の制御設定を変更することを含み、
前記第1のフィルタの前記第1の制御設
定は、前記第2のフィルタ
の前記第2の制御設
定と異なる、
請求項2の方法。
【請求項4】
前記第1のフィルタは、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含み、前記第2のフィルタは、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含み、前記第1のフィルタと異なる、
請求項2の方法。
【請求項5】
前記第1のフィルタ又は前記第2のフィルタでフィルタ処理された前記第1のブロックをエンコーダに提供することを含む、
請求項2の方法。
【請求項6】
前記第1のフィルタのコストの関数は、前記複数のブロックの各々の計算されたデータサイズ、及び、計算された歪みエラーに基づいており、前記複数のブロックは、前記第1のフィルタでフィルタ処理され、前記第1の量子化パラメータを用いて符号化されており、前記第2のフィルタのコストの関数は、前記複数のブロックの各々の計算されたデータサイズ、及び、計算された歪みエラーに基づいており、前記複数のブロックは、前記第2のフィルタでフィルタ処理され、前記第1の量子化パラメータを用いて符号化されている、
請求項5の方法。
【請求項7】
前記特性化することは、前記複数のブロックの各々のマルチスケールメトリックに基づいており、前記マルチスケールメトリックは、複数の空間的圧縮スケール及び複数のダイナミックレンジスケールのうち少なくとも1つについて、各ブロックの画素アクティビティの推定レベルに基づく係数を含み、前記マルチスケールメトリックは、ビット配分又は量子化パラメータのビット割り当てが各ブロックの知覚品質にどのように影響すると予測されるかを示す、
請求項1の方法。
【請求項8】
第1のピクチャの第1のブロックに対して、第1のフィルタを適用するコストと、前記第1のフィルタとは異なる第2のフィルタを適用するコストと、を計算することであって、前記第1のフィルタのコストは、
前記第1のブロックの特性に基づく、予測された第1のデータサイズ及び予測された第1の歪みエラーに基づいており、前記特性は、前記第1のブロックの空間勾配、彩度、コントラスト又はノイズ具合のうち少なくとも1つを含むメトリッ
クに基づいており、前記第1のブロックは、前記第1のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化され、前記第2のフィルタのコストは、前記
特性に基づく、予測された第2のデータサイズ及び
予測された第2の歪みエラーに基づいており、前記第1のブロックは、前記第2のフィルタを用いてフィルタ処理され、前記第1の量子化パラメータを用いて符号化される、ことと、
前記第1のフィルタのコストと、前記第2のフィルタのコストと、に基づいて、前記第1のフィルタ又は前記第2のフィルタを選択することと、
選択されたフィルタを適用して、前記第1のブロックをフィルタ処理することと、
フィルタ処理された第1のブロックを符号化するために、前記フィルタ処理された第1のブロックをエンコーダに提供することと、を含む、
方法。
【請求項9】
前記第1のフィルタ及び前記第2のフィルタは、
前記第1のブロックのサンプル画素を含むぼかしに候補画素を含めるための、前記サンプル画素と、前記候補画素と、の間の値の差との比較に用いる閾値を示す第1の制御設定と、
前記サンプル画素を含むぼかしに前記候補画素を含めるための、前記サンプル画素と、前記候補画素と、の間の距離との比較に用いる閾値を示す第2の制御設定と、を備えるぼかしフィルタであり、
前記第1のフィルタの前記第1の制御設定及び前記第2の制御設定のうち少なくとも一方は、前記第2のフィルタの前記第1の制御設定及び前記第2の制御設定のうち少なくとも一方と異なる、
請求項8の方法。
【請求項10】
前記第1のフィルタ及び前記第2のフィルタの各々は、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含む、
請求項8の方法。
【請求項11】
前記第1のピクチャの前記第1のブロックを特性化することを含む、
請求項8の方法。
【請求項12】
第1のモデルに基づいて前記第1のブロックの前記第1のデータサイズ及び前記第1の歪みエラーを予測することであって、前記第1のブロックは、前記第1のフィルタを用いてフィルタ処理され、前記第1の量子化パラメータを用いて符号化される、ことと、
第2のモデルに基づいて前記第1のブロックの前記第2のデータサイズ及び前記第2の歪みエラーを予測することであって、前記第1のブロックは、前記第2のフィルタを用いてフィルタ処理され、前記第1の量子化パラメータを用いて符号化される、ことと、を含む、
請求項8の方法。
【請求項13】
前記第1のフィルタ及び前記第1の量子化パラメータに基づいて、前記第1のブロックの前記第1のデータサイズを予測するモデルと、前記第1のブロックの前記第1の歪みエラーを予測するモデルと、をトレーニングすることと、
前記第2のフィルタ及び前記第1の量子化パラメータに基づいて、前記第1のブロックの前記第2のデータサイズを予測するモデルと、前記第1のブロックの前記第2の歪みエラーを予測するモデルと、をトレーニングすることと、を含む、
請求項12の方法。
【請求項14】
前記特性は、前記第1のブロックのマルチスケールメトリックに基づいており、前記マルチスケールメトリックは、複数の空間的圧縮スケール及び複数のダイナミックレンジスケールのうち少なくとも1つについて、前記第1のブロックの画素アクティビティの推定レベルに基づく係数を含み、前記マルチスケールメトリックは、ビット配分又は量子化パラメータのビット割り当てが前記第1のブロックの知覚品質にどのように影響すると予測されるかを示す、
請求項8の方法。
【請求項15】
第1のピクチャの第1のブロックに対して、第1のフィルタを適用するコストと、前記第1のフィルタと異なる第2のフィルタを適用するコストと、を推定するコスト計算機であって、前記第1のフィルタのコストは、
前記第1のブロックの特性に基づく、予測された第1のデータサイズ及び予測された第1の歪みエラーに基づいており、前記特性は、前記第1のブロックの空間勾配、彩度、コントラスト又はノイズ具合のうち少なくとも1つを含むメトリッ
クに基づいており、前記第1のブロックは、前記第1のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化され、前記第2のフィルタのコストは、前記第1のブロックの特性
に基づく、予測された第2のデータサイズ及び
予測された第2の歪みエラーに基づいており、前記第1のブロックは、前記第2のフィルタを用いてフィルタ処理され、前記第1の量子化パラメータを用いて符号化される、コスト計算機と、
前記第1のフィルタ又は前記第2のフィルタを、前記第1のフィルタのコスト及び前記第2のフィルタのコストに基づいて選択し、選択されたフィルタを適用して前記第1のブロックをフィルタ処理するためのフィルタセレクタと、
フィルタ処理された第1のブロックを符号化するエンコーダと、を備える、
デバイス。
【請求項16】
前記第1のフィルタ及び前記第2のフィルタは、
前記第1のブロックのサンプル画素を含むぼかしに候補画素を含めるための、前記サンプル画素と、前記候補画素と、の間の値の差との比較に用いる閾値を示す第1の制御設定と、
前記サンプル画素を含むぼかしに前記候補画素を含めるための、前記サンプル画素と、前記候補画素と、の間の距離との比較に用いる閾値を示す第2の制御設定と、を備えるぼかしフィルタであり、
前記第1のフィルタの前記第1の制御設定及び前記第2の制御設定のうち少なくとも一方は、前記第2のフィルタの前記第1の制御設定及び前記第2の制御設定のうち少なくとも一方と異なる、
請求項15のデバイス。
【請求項17】
前記第1のフィルタ及び前記第2のフィルタの各々は、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含む、
請求項15のデバイス。
【請求項18】
前記第1のピクチャの前記第1のブロックを特性化する特性化モジュールを備える、
請求項15のデバイス。
【請求項19】
前記特性化モジュールは、前記第1のブロックのマルチスケールメトリックに基づいて前記第1のブロックを特性化し、前記マルチスケールメトリックは、複数の空間的圧縮スケール及び複数のダイナミックレンジスケールのうち少なくとも1つについて、前記第1のブロックの画素アクティビティの推定レベルに基づく係数を含み、前記マルチスケールメトリックは、ビット配分又は量子化パラメータのビット割り当てが前記第1のブロックの知覚品質にどのように影響すると予測されるかを示す、
請求項18のデバイス。
【請求項20】
前記第1のフィルタを用いてフィルタ処理され、前記第1の量子化パラメータを用いて符号化された複数のブロックの特性に基づいて、前記第1のブロックの前記第1のデータサイズを予測するモデルと、前記第1のブロックの前記第1の歪みエラーを予測するモデルと、をトレーニングすることと、
前記第2のフィルタを用いてフィルタ処理され、前記第1の量子化パラメータを用いて符号化された前記複数のブロックの特性に基づいて、前記第1のブロックの前記第2のデータサイズを予測するモデルと、前記第1のブロックの前記第2の歪みエラーを予測するモデルと、をトレーニングすることと、
を行うように構成された予測器を備える、
請求項19のデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
マルチメディアサーバは、マルチメディアストリーム(例えば、ユーザによって要求されたマルチメディアストリーム)内のピクチャを表すデータを生成する。マルチメディアサーバのエンコーダは、各ピクチャのデータを符号化してビットストリームを形成し、ビットストリームがネットワークを介してデコーダに伝送される。デコーダは、ビットストリームを復号し、復号した映像情報をマルチメディアアプリケーション又は他の任意のアプリケーションに提供してユーザに表示する。このようなマルチメディアエンコーダ及びデコーダは、マルチメディアストリームを圧縮して保存及び転送することを容易にするために、様々なアプリケーションで使用されている。
【0002】
マルチメディアストリームを圧縮するために、従来のエンコーダは、圧縮の度合いが量子化パラメータ等の品質パラメータに部分的に依存する映像圧縮アルゴリズムを実装している。量子化パラメータとは、コーデックで変換されたデータを量子化するための標準行列を導出するために使用可能な数値である。量子化パラメータが大きいと、ピクチャのビット使用量が少なくなるが、量子化パラメータが小さいと、ピクチャのビット使用量が多くなることがよくある。圧縮アルゴリズムは、ピクチャのタイトル、フレーム、スライス及びブロックへのビットの割り当てに関わる様々な量子化パラメータを使用する。しかし、あまりにも小さい量子化パラメータを使用すると、ピクチャの符号化、伝送及び復号化の際に、コンピューティングリソース及び帯域幅が無駄に消費されることになり、それに見合ったメリットが何もない。一方、大きすぎる量子化パラメータを使用すると、符号化されたピクチャの品質が必要以上に(又は、許容できないほど)低下することになる。さらに、ピクチャの量子化パラメータを変更すると、予測不可能な品質の劣化を招く可能性がある。
【0003】
添付図面を参照することによって、本開示をより良好に理解することができ、その多数の特徴及び利点が当業者に明らかになる。異なる図面において同じ符号が使用されている場合は、類似又は同一のアイテムを示している。
【図面の簡単な説明】
【0004】
【
図1】いくつかの実施形態による、コスト解析に基づいて、前処理フィルタを選択し、符号化されるピクチャのブロックに適用する前処理モジュールを含む処理システムのブロック図である。
【
図2】いくつかの実施形態による、2つのサンプルブロックの空間スケールを変化させる効果を示す図である。
【
図3】いくつかの実施形態による、2つのサンプルブロックのダイナミックレンジを変化させる効果を示す図である。
【
図4】いくつかの実施形態による、異なる設定を有するフィルタをピクチャの一部に適用する前処理モジュールのフィルタ制御のブロック図である。
【
図5】いくつかの実施形態による、異なるフィルタでフィルタ処理されたブロックのサイズ及び歪みを予測するモデルをトレーニングする方法を示すフロー図である。
【
図6】いくつかの実施形態による、各ブロックに対して最低のコストを有するフィルタを用いてピクチャのブロックをフィルタ処理する方法を示すフロー図である。
【発明を実施するための形態】
【0005】
図1~
図6は、マルチメディアストリームの符号化の前に、フィルタを用いてピクチャの一部すなわちブロックを前処理して、ブロックのサイズ及びエラーを最小化するための処理システム及び技術を示す。処理システムの前処理モジュールは、複数のメトリックを用いて複数のブロックの特性を測定し、所定の量子化パラメータを用いて符号化される前に、各フィルタでフィルタ処理される同様の特性を有するブロックの圧縮率の増加を予測するために、複数のフィルタ(又は、複数の設定を有するフィルタ)の各々を符号化前にブロックに適用する効果を評価し、品質への影響を最小限に抑える。前処理モジュールは、ブロックの特性に基づいて、複数のフィルタの各々でフィルタ処理されるブロックのサイズ及びエラーを予測するために、モデルを生成してトレーニングする。前処理モジュールは、このモデルを用いて、ピクチャの所定のブロックに各フィルタを適用することによって生じるサイズ及びエラーに関するコストを、ブロックの特性に基づいて計算する。そして、前処理モジュールは、(品質への影響を最小限に抑えつつ)最良のコスト(例えば、最小サイズ(すなわち、最小ビット使用量))をもたらすと予測されるフィルタをブロックに適用する。低コストになるように計算されたフィルタを適用してピクチャのブロックを前処理することにより、前処理モジュールは、ピクチャが予測可能な量の品質損失で所定の量子化パラメータを使用して符号化されたときのピクチャの圧縮率を増加させる。
【0006】
異なる特性を有するブロックは、所定のフィルタでフィルタ処理された場合、異なる影響を受けることになる。前処理モジュールは、ブロックの彩度(colorfulness)、コントラスト又はノイズ性(noisiness)等の複数の特性を測定することによって、ピクチャの各ブロックを特徴付ける(特性化する)。いくつかの実施形態では、前処理モジュールは、ブロックの「マルチスケールメトリック」を生成するために、各空間スケール及び/又はダイナミックレンジにおけるブロックの勾配を計算することによって、複数の空間的圧縮スケール及び/又はダイナミックレンジスケールでブロックを特徴付ける。各ブロックは、細かい又は粗いディテール(detail)、コントラスト、構造、色、明るさを含む。一部範囲内の画素強度の変動等の画素アクティビティは、画像内のエッジ、繰り返しパターン等の構造又はオブジェクトを検出するために使用される。画素アクティビティは、例えば、一部範囲内のグレーレベル共起行列、2次元空間平均勾配、ウェーブレット変換若しくは他の変換、離散コサイン関数、又は、平均値等のように、様々なメトリックを用いて測定することができる。
【0007】
2次元空間勾配やウェーブレット変換等の画素アクティビティの単一の測定では、例えばカーペットを含むブロックと白い無地の白紙を含むブロック等のように、実際には異なるブロックについての測定結果がほぼ同じになることがある。事前解析モジュールは、複数の空間スケール及び/又はダイナミックレンジで各ブロックの画素アクティビティレベルを解析することにより、所定のQPのビット割り当てがブロックの知覚品質にどのように影響するかを間接的に示すブロックのロバストな特性を生成する。いくつかの実施形態では、マルチスケールメトリックは、ブロック内の肌色の存在を示す指標を含む。例えば、マルチスケールメトリクス間のデカルト差等によって測定されるような類似のマルチスケールメトリクスを有するブロックは、視覚的に類似している可能性があり、特定の制御設定を有する所定のフィルタを適用することによって、同様に影響を受ける可能性がある。
【0008】
いくつかの実施形態では、N個のフィルタ全てを各ブロックに適用して、最もコストの低いフィルタを選択する代わりに、前処理モジュールは、選択されたトレーニング映像からの多数のブロックを使用してモデルをトレーニングし、各フィルタが特定のブロックに適用された場合の各フィルタのコストを予測する。モデルをトレーニングするために、前処理モジュールは、各ブロックのマルチスケールメトリック又は各ブロックの特性の別の尺度を使用して、トレーニング映像からの各ブロックを特徴付ける。前処理モジュールは、第1の制御設定を有する第1のフィルタをトレーニング映像の各ブロックに適用し、対象とされたエンコーダを用いて、フィルタ処理されたブロックを特定の量子化パラメータで符号化する。前処理モジュールは、トレーニング映像の符号化されたフィルタ処理ブロック毎に、サイズ(すなわち、ビット使用量)と、フィルタ処理によってもたらされた歪みを測定するためのエラーメトリックと、を計算する。前処理モジュールは、各ブロックの特性、計算されたサイズ、及び、計算されたエラーに基づいて、最小二乗法、ランダムフォレストリグレッサ又は他の機械学習モデル等の回帰モデルを生成して、特定の特性を有する所定のブロックが、第1のフィルタを用いてフィルタ処理され、特定の量子化パラメータを用いて符号化される際の、その所定のブロックのサイズを予測する。前処理モジュールは、同様に、回帰モデルを生成して、特定の特性を有する所定のブロックが、第1のフィルタを用いてフィルタ処理され、特定の量子化パラメータを用いて符号化される際の、その所定のブロックのエラーを予測する。その後、前処理モジュールは、残りのN-1個のフィルタ毎に、フィルタの適用、符号化、サイズ及びエラーの計算、並びに、回帰モデルの生成というプロセスを繰り返す。いくつかの実施形態では、前処理モジュールは、フィルタの適用、符号化、サイズ及びエラーの計算、並びに、ブロックの符号化に使用され得る任意の追加の量子化パラメータについての回帰モデルの生成というプロセスも繰り返す。
【0009】
前処理モジュールは、目的の各フィルタ及び/又は量子化パラメータのモデルを生成すると、そのモデルを適用し、各フィルタオプションのコストを計算して、対象のピクチャのブロックを前処理するための最低コストのフィルタを選択する。前処理モジュールは、ピクチャの各ブロックについて、ブロックを特徴付け、ブロックの特徴及びサイズモデルと基づいて、ブロックがN個のフィルタの各々でフィルタ処理される際のブロックの予測サイズを計算し、ブロックの特徴及びエラーモデルに基づいて、ブロックがN個のフィルタの各々でフィルタ処理される際のブロックの予測エラーを計算する。N個のフィルタの各々について、前処理モジュールは、ブロックの特性に基づいて、ブロックにフィルタを適用したことによって生じる予測サイズ及びエラーの関数であるコストを計算する。いくつかの実施形態では、前処理モジュールは、フィルタのコストが閾値未満であることに応じて、フィルタをブロックに適用する。いくつかの実施形態では、前処理モジュールは、フィルタの各々について計算されたコストを比較し、現在のブロックに適用するのに最適な(最低の)コストを有するフィルタを選択する。前処理モジュールは、モデルの適用とコストの計算とのプロセスを繰り返して、ピクチャの各ブロックに対して最低コストのフィルタを選択する。ピクチャの各ブロックに最低コストのフィルタを適用することによってピクチャを前処理した後に、前処理モジュールは、フィルタ処理されたピクチャを符号化のためにエンコーダに提供する。エンコーダは、指定された量子化パラメータを用いて、ピクチャの各ブロックを符号化する。エンコーダは、符号化したピクチャを、ネットワークを介してデコーダに伝送する。デコーダは、ビットストリームを復号し、復号した映像情報をマルチメディアアプリケーションに提供してユーザに表示する。低コストのフィルタを用いてピクチャを前処理すると、ビット使用率が低下する(すなわち、圧縮率が増加する)が、目に見える効果が殆どない。
【0010】
図1は、いくつかの実施形態による、コスト解析に基づいて、前処理フィルタ120を選択してピクチャのブロックに適用する前処理モジュール110を含む処理システム100を示す図である。前処理モジュール110は、ハードコードされたロジック、プログラマブルロジック、プロセッサによって実行されるソフトウェア、又は、これらの組み合わせとして実装され得る。いくつかの実施形態では、処理システム100は、サーバ、パーソナルコンピュータ、タブレット、セットトップボックス、ゲームシステム、携帯電話等の様々な電子デバイスに分散されている。
【0011】
前処理モジュール110は、特性化モジュール(characterization module)115と、複数のフィルタ120と、フィルタ制御125と、予測器130と、コスト計算機135と、フィルタセレクタ140と、を含み、これらの各々は、ハードコードされたロジック、プログラマブルロジック、プロセッサによって実行されるソフトウェア、又は、これらの組み合わせとして実装され得る。処理システム100は、マルチメディアストリーム内のピクチャのストリーム又はシーケンスを表すデジタル情報を受信する。「マルチメディア」という用語は、映像データ、オーディオデータ、又は、これらの組み合わせを含むデータのストリームを指し、いくつかの実施形態では、制御データ、メタデータ、又は、これらの任意の組み合わせを含む。処理システム100は、各ピクチャを、マクロブロック、コーディングツリーブロック(CTB)、タイトル、スライス等のコーディングユニット(本明細書では「ブロック」と呼ばれる)に分割し、これらは、前処理モジュール110に提供される。
【0012】
特性化モジュール115は、各ブロックを解析し、空間勾配、彩度、コントラスト、又は、ノイズ具合等のメトリックに従ってブロックを特徴付ける。いくつかの実施形態では、特性化モジュール115は、複数の空間スケール及びダイナミックレンジで測定されたブロックの画素アクティビティを示すマルチスケールメトリックを用いて、ブロックを特徴付ける。このような実施形態では、特性化モジュール115は、各ブロックの空間スケールを調整する映像/画像スケーラ(図示省略)と、特性化モジュール115が、各空間スケール及びダイナミックレンジ設定で各ブロックの画素アクティビティを計算している間に、各ブロックのダイナミックレンジを調整するダイナミックレンジ変調器(図示省略)と、を使用する。「空間スケール」とは、ブロックによって表現される画素数のことをいい、画素は、表示装置におけるアドレス可能な最小の要素である。例えば、いくつかの実施形態では、映像/画像スケーラは、各ブロックを1:1、2:1、4:1、8:1等の複数の空間スケール設定にリスケールするが、例えば16×16画素のブロック(すなわち、マクロブロック)の場合、1:1の空間スケールではブロックが変更されず(16×16画素)、2:1の空間スケールでは元の16×16ブロックが8×8画素に圧縮され、4:1の空間スケールではブロックが4×4画素に圧縮され、8:1の空間スケールではブロックが2×2画素に圧縮されるようにリスケールされる。「ダイナミックレンジ」とは、画素の階調値の数を意味する。例えば、いくつかの実施形態では、ダイナミックレンジ変調器は、1:1、2:1、4:1、8:1等の複数のダイナミックレンジ設定を適用するが、例えば元のダイナミックレンジが0→255のグレースケール値であるブロックの場合、1:1のダイナミックレンジではブロックのグレースケール値が0→255であり、2:1のダイナミックレンジではブロックのグレースケール値が0→127であり、4:1のダイナミックレンジではブロックのグレースケール値が0→63であり、8:1のダイナミックレンジではブロックのグレースケール値が0→31であるように適用される。
【0013】
いくつかの実施形態では、特性化モジュール115は、エイリアシングを防ぐために、スケール変更プロセスの前又はその間に、各ブロックの信号にローパスフィルタを適用する。例えば、いくつかの実施形態では、特性化モジュール115は、デシメーションの前に、対応する数の適切な係数を用いてローパスフィルタ処理を効果的に行う4タップ又は8タップの有限インパルス応答(FIR)フィルタを使用する。フィルタ処理によってぼかし(blurring)が生じ、それにより、ブロック内のディテールの量によっては、情報が失われる場合と失われない場合とがある。いくつかの実施形態では、特性化モジュール115は、各ブロック内の画像が、前の空間スケール設定での画像と同様に、連続する空間スケール設定毎にスケール変更される再帰的方法を用いる。
【0014】
各空間スケール設定及びダイナミックレンジ設定において、特性化モジュール115は、画素アクティビティメトリックを使用して、ブロックの画素アクティビティレベルを計算する。いくつかの実施形態では、特性化モジュール115は、2次元空間平均勾配を用いて、各ブロックの画素アクティビティを計算する。2次元空間平均勾配は、垂直エッジ及び水平エッジをキャプチャする。いくつかの実施形態では、特性化モジュール115は、ウェーブレット変換又は他の変換を用いて各ブロックの画素アクティビティを計算して、所定のブロックのアクティビティパラメータを測定する。このようにして、特性化モジュール115は、空間スケール変更の各プログレッシブレベル及び各ダイナミックレンジ設定で失われる情報(もしあれば)の量を測定する。
【0015】
いくつかの実施形態では、特性化モジュール115は、各ブロックについて、空間スケール変更の各プログレッシブレベル及び各ダイナミックレンジ設定で特性化モジュール115によって計算されたN個の画素アクティビティレベルを表す行列等のNタプル数であるマルチスケールメトリックを生成する。いくつかの実施形態では、マルチスケールメトリック計算機135は、正規化された画素アクティビティレベル値(例えば、最大画素アクティビティ値に関して正規化された値)を使用し、これを浮動小数点数又は固定小数点数によって表すことができる。いくつかの実施形態では、マルチスケールメトリック計算機135は、異なる空間スケール及び/又はダイナミックレンジでの値の差に基づいてマルチスケールメトリックを生成する。
【0016】
したがって、4つの空間スケール設定及び4つのダイナミックレンジ設定でブロックについて測定された画素アクティビティレベルを表す16タプルのマルチスケールメトリックの場合、いくつかの実施形態におけるマルチスケールメトリックは、以下の表1に記載される情報を表す。
【表1】
【0017】
表1に示すマルチスケールメトリックの構成要素は、左から右に、細かいものから粗いものまでのディテールの寄与を反映している。表1に示すマルチスケールメトリックの構成要素は、上から下に、全てのコントラストレベルから高コントラストのみまでのディテールの寄与を反映している。細かいものから粗いものまでのディテールの寄与、及び、全てのコントラストレベルから高コントラストのみまでのディテールの寄与は、多くの映像及び画像圧縮アルゴリズムの基礎となる離散コサイン変換(DCT)及び直接正弦変換(DST)又はウェーブレット変換と直接関連している。前処理モジュール110は、ブロックの特性のマルチスケールメトリック又は別の尺度を使用して回帰モデル又は機械学習モデルをトレーニングし、予算又は知覚目標に基づいて各ブロックを前処理するためのフィルタを選択する。
【0018】
複数のフィルタ120の各々は、それらが適用されるブロックから情報を選択的に除去する。いくつかの実施形態では、複数のフィルタ120の各々は、同一タイプのフィルタであるが、複数のフィルタ120の他のフィルタと異なる設定に調整される。いくつかの実施形態では、各フィルタは、他のフィルタと異なるタイプのフィルタである。例えば、いくつかの実施形態では、複数のフィルタ120の各々は、異なる制御設定を有するバイラテラルぼかしフィルタ(bilateral blurring filter)である。他の実施形態では、複数のフィルタ120のうち第1のフィルタは、バイラテラルぼかしフィルタ、時間フィルタ(temporal filter)、時空間フィルタ(spatio-temporal filter)、動き補償フィルタ(motion-compensated filter)、又は、他のタイプのフィルタのうち1つであり、複数のフィルタ120のうち第2のフィルタは、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ、動き補償フィルタ、又は、他のタイプのフィルタのうち異なるものである。バイラテラルぼかしフィルタは、各画素の強度を、近傍の画素からの強度値の加重平均で置き換える、非線形で、エッジを保持し、ノイズを低減する平滑化フィルタである。時間フィルタは、連続するフレームの加重平均を行う。時空間フィルタは、空間的、時間的、及び、視覚的な冗長性を取り除くことにより、画像及び映像を圧縮する。動き補償フィルタは、映像内のカメラ又はオブジェクトの動きを考慮することにより、前又は将来のフレームが与えられた場合に、映像内のフレームを予測する。
【0019】
いくつかの実施形態では、複数のフィルタ120の各々は、所定の半径内でガウスぼかしを適用するバイラテラルぼかしフィルタである。各フィルタ120は、フィルタ制御125によって調整可能な制御設定を有しており、近傍の候補画素と比較されるサンプル画素(検討対象の画素とも呼ばれる)の間の輝度等の値の差に対して、候補画素を検討対象の画素と共にぼかしに含めるために閾値を設定する。フィルタ制御125は、各フィルタ120の制御設定をさらに調整して、ぼかしに含めるための検討対象の画素と(差分閾値を満たす)候補画素との間の閾値距離を設定する。したがって、各フィルタ120は、差分閾値及び距離閾値に対して異なる制御設定を有するバイラテラルぼかしフィルタである。例えば、いくつかの実施形態では、第1のフィルタ120は、画素間の値の差を比較的小さく(例えば、5%未満に)して、ぼかしに含めることを許容する、値の差の閾値のための制御設定と、サンプル画素から半径X画素以内の(且つ、差分閾値も満たす)画素をぼかしに含めることを許容する、画素間の距離閾値のための制御設定と、を有するバイラテラルぼかしフィルタである。いくつかの実施形態における第2のフィルタ120は、画素間の値の差を比較的大きく(例えば、25%未満に)して、ぼかしに含めることを許容する、画素間の値の差の閾値のための制御設定と、サンプル画素から半径Y画素以内の(且つ、差分閾値も満たす)画素をぼかしに含めることを許容する、画素間の閾値距離のための制御設定と、を有するバイラテラルぼかしフィルタである。いくつかの実施形態では、フィルタ制御125は、異なる制御設定をフィルタ120に適用して、各ブロックにN個のフィルタを効果的に適用する。いくつかの実施形態では、N個のフィルタの各々の制御設定の差は単調であり、他の実施形態では、N個のフィルタの各々の制御設定の差は単調ではない。
【0020】
前処理モジュール110が、フィルタ120の第1のフィルタをブロック105に適用してフィルタ処理ブロック145を生成した後に、前処理モジュール110は、前処理モジュールのエンコーダ(図示省略)を使用するか、フィルタ処理ブロックを前処理モジュール110の外部のエンコーダ150に提供することによって、フィルタ処理ブロック145を符号化する。エンコーダ150は、特定の量子化パラメータを用いてフィルタ処理ブロック145を符号化(圧縮)して、符号化フィルタ処理ブロック155を生成する。予測器130は、第1のフィルタを用いてフィルタ処理され、特定の量子化パラメータを用いて符号化された、符号化フィルタ処理ブロック155の圧縮サイズ(ビット使用量)を収集し、符号化フィルタ処理ブロック155の平均二乗誤差(MSE)等のエラーメトリックを計算する。
【0021】
いくつかの実施形態では、前処理モジュール110は、N個のフィルタ120の各々を用いたトレーニング時に、多数のブロック(例えば、数百万個のブロック)のサイズ及びエラーを特徴付け、フィルタ処理し、符号化し、測定する。予測器130は、各ブロックの特性と、各ブロックがN個のフィルタの各々でフィルタ処理され符号化されたときに収集された各ブロックのサイズ及びエラーと、に基づいて、最小二乗法、ランダムフォレストリグレッサ(random forest regressor)又は他の機械学習技術を使用して回帰モデルを生成し、ブロックが、N個のフィルタ120の各々でフィルタ処理され、ブロックの特性に基づいて、所定の量子化パラメータを用いて符号化される際の、そのブロックの予測サイズを出力する。また、予測器130は、最小二乗法、ランダムフォレストリグレッサ又は他の機械学習技術を使用して回帰モデルを生成し、ブロックが、N個のフィルタ120の各々でフィルタ処理され、ブロックの特性に基づいて、所定の量子化パラメータを用いて符号化される際の、そのブロックの予測エラーを出力する。前処理モジュール110は、N個のフィルタ120の各々について、及び、対象の量子化パラメータの各々について、サイズ及びエラーモデルをトレーニングする。
【0022】
モデルをトレーニングした後、対象のピクチャを前処理するために、処理システム100は、ピクチャをブロックに分割する。特性化モジュール115は、画像の各ブロックを特徴付け、予測器130は、各ブロックの特性が与えられると、N個のフィルタ120の各々について、ブロックのサイズモデル及びエラーモデルを計算する。コスト計算機135は、ブロックの特性が与えられると、ブロックの予測サイズ及び予測エラーに基づいて、各ブロックに対するN個のフィルタの各々のコスト関数を計算する。例えば、nが特定のフィルタ120であり、マルチスケールメトリック係数が検討対象のブロックのマルチスケールメトリック結果であり、QPが量子化パラメータであるいくつかの実施形態では、コスト関数は
【数1】
である。
【0023】
フィルタセレクタ140は、N個のフィルタ120の各々の(且つ、いくつかの実施形態では、対象の各量子化パラメータの)コスト関数に基づいて、ブロックの特性に基づいて、各ブロックに適用される最良の(最低の)コストを有するフィルタを選択する。前処理モジュール110は、選択されたフィルタ120をピクチャの各ブロックに適用して、ピクチャの各ブロックに対して前処理を繰り返す。前処理モジュール110は、フィルタ処理されたピクチャを符号化のためにエンコーダ150に提供する。
【0024】
図2は、いくつかの実施形態による、マルチスケールメトリックを計算する目的のために、2つのサンプルブロック205,255の空間スケールを変化させる効果を示す図である。ブロック205,255は、1:1の空間スケールで示されている。ブロック205は、4つの正方形の市松模様であり、左上及び右下の四半分には黒い正方形があり、右上及び左下の四半分には薄灰色の正方形がある。ブロック255は、256個の正方形の市松模様であり、黒及び薄灰色の正方形が交互に16列及び16行ある。
【0025】
ブロック205,255の空間スケールが2:1の空間スケールに調整され、それぞれブロック210,260になる場合、ブロック210が、4つの正方形の市松模様として現れ、左上及び右下の四半分には黒い正方形があり、右上及び左下の四半分には薄灰色の正方形がある、という点でブロック210は、ブロック205の知覚特性を保持する。一方、空間スケールを2:1に縮小した場合、ブロック260のチェッカーパターンはブロック255ではもはや見えていない。
【0026】
ブロック205,255の空間スケールがさらに4:1の空間スケールに調整され、それぞれブロック215,265になる場合、ブロック215は依然としてブロック205の知覚特性を保持しているが、ブロック265は一様な灰色の正方形であるように見える。同様に、ブロック205,255の空間スケールが8:1の空間スケールに調整され、ブロック220,270になる場合、ブロック220には市松模様が引き続き見られるが、ブロック270は一様な灰色の正方形であるように見え、ブロック255の細かいディテールは何も保持されていない。
【0027】
図2に単一のダイナミックレンジ設定で示される4つの空間スケール設定(1:1、2:1、4:1、8:1)を表すためのマルチスケールメトリックは、4タプルである。画素アクティビティが0~1の値を有する2次元空間勾配であり、0が垂直又は水平のエッジがないことを示し、1が垂直及び水平のエッジが最大量あることを示すと仮定すれば、8×8画素の市松模様であるブロック205の画素アクティビティ値は、このパターンが、そのサイズにとっての最大トランジション数の1/8を有するので、0.125である。2:1にスケール変更されたブロック205の8×8市松模様であるブロック210の画素アクティビティ値は、このパターンが、そのサイズにとっての最大トランジション数の1/4を有するので、0.25である。4:1にスケール変更されたブロック205の8×8市松模様であるブロック215の画素アクティビティ値は、このパターンが、そのサイズにとっての最大トランジション数の半分を有するので、0.5である。8:1にスケール変更されたブロック205の8×8市松模様であるブロック220の画素アクティビティ値は、このパターンが、そのサイズにとっての最大トランジション数を有するので、1.0である。したがって、ブロック205,210,215,220として示される空間スケールでのブロック205のマルチスケールメトリックは、[0.125,0.25,0.5,1]として表される。
【0028】
対照的に、ブロック255は、1×1画素の市松模様であり、このパターンは、そのサイズにとっての最大トランジション数を有するので、画素アクティビティ値が1.0である。ブロック260は、2:1にスケール変更されたブロック255の1×1市松模様を有しており、スケール変更のローパスフィルタ処理が、信号内にアクティビティが存在しなくなるほどブロック260のパターンに影響を与えるので、ブロック260の画素アクティビティ値は0である。ブロック265,270は、それぞれ4:1及び8:1にスケール変更されたブロック255の1×1市松模様を有しており、信号内にアクティビティが存在しないので、ブロック265,270も画素アクティビティ値が0になる。したがって、ブロック255,260,265,270として示される空間スケールでのブロック255のマルチスケールメトリックは、[1,0,0,0]として表される。[0.125,0.25,0.5,1]のマルチスケールメトリックは、ブロック205の空間勾配が各空間スケールで2倍になるため、空間スケールの縮小によって減少されない粗いディテールによって支配されることを示している。一方、[1,0,0,0]のマルチスケールメトリックは、ブロック255の勾配が空間スケールの変化の影響を受けていることを示しており、したがって、かなりの量の細かいディテールが含まれていることになる。このようにして、複数の空間スケールでの画素アクティビティの2次元空間勾配又は他のメトリックの尺度を組み込むことにより、マルチスケールメトリックは、ブロックへの細かいディテール及び粗いディテールの寄与を判定する指標となる。
【0029】
図3は、いくつかの実施形態による、マルチスケールメトリックを計算する目的のために、2つのサンプルブロック305,355のダイナミックレンジを変化させる効果を示す図である。ブロック305,355は、0→255の256グレースケール値を有する1:1のダイナミックレンジで示されている。ブロック305は、4つの正方形の市松模様であり、左上及び右下の四半分には黒い正方形があり、右上及び左下の四半分には薄灰色の正方形がある。ブロック355は、4つの正方形の市松模様であり、左上及び右下の四半分には黒い正方形があり、右上及び左下の四半分には濃灰色の正方形がある。
【0030】
ブロック305,355のダイナミックレンジが、0→127の128グレースケール値を有する2:1ダイナミックレンジスケールに調整され、それぞれブロック310,360になる場合、ブロック310の薄灰色の正方形は比較的明るくなるが、黒い正方形は黒のままである。したがって、ダイナミックレンジを2:1に減らすことで、ブロック310の勾配は、ブロック305の勾配よりも高くなる。一方、ダイナミックレンジを2:1に縮小した場合、ブロック360の勾配は、ブロック355の勾配よりも低くなるが、ブロック360の市松模様を識別することは依然として可能である。
【0031】
ブロック305,355のダイナミックレンジが、0→63の64グレースケール値を有する4:1ダイナミックレンジスケールにさらに調整され、それぞれブロック315,365になる場合、ブロック305の灰色の正方形は、ブロック315に示すようにほぼ白になるが、黒い正方形は黒のままである。ダイナミックレンジが4:1に減少すると、ブロック355の灰色の正方形は、ブロック365では実質的に黒になり、したがってブロック365の勾配はゼロに近づく。同様に、ブロック305,355のダイナミックレンジが、0→31の32グレースケール値を有する8:1空間スケールに調整され、ブロック320,370になると、ブロック320の勾配は最大値まで増加するのに対して、ブロック370は勾配がゼロの一様な黒い正方形であるように見える。
【0032】
図3に単一の空間スケール設定で示される4つのダイナミックレンジ設定(1:1、2:1、4:1、及び8:1)を表すためのマルチスケールメトリックは、4タプルである。画素アクティビティが0~1の値を有する2次元空間勾配であり、0が垂直又は水平のエッジがないことを示し、1が垂直及び水平のエッジが最大量あることを示すと仮定すれば、(ブロック305,310,315,320として示されている空間スケールでの)ブロック305のマルチスケールメトリックは、[0.8,0.9,1.0,1.0]として表され、(ブロック355,360,365,370として示されている空間スケールでの)ブロック355のマルチスケールメトリックは、[0.2,0.1,0,0]として表される。[0.8,0.9,1.0,1.0]のマルチスケールメトリックは、ブロック305では高周波の減衰が認められる可能性が高いことを示しており、その一方で、[0.2,0.1,0,0]のマルチスケールメトリックは、ブロック355では高周波の減衰が認められる可能性が低いことを示している。このようにして、複数のダイナミックレンジでの画素アクティビティの2次元空間勾配又は他のメトリックの尺度を組み込むことにより、マルチスケールメトリックは、高コントラストレベルのみからのディテールの寄与と対比して、全てのコントラストレベルからのディテールの寄与を判定する指標となる。
【0033】
図4は、いくつかの実施形態による、異なる設定を有するN個のバイラテラルぼかしフィルタ120をピクチャの一部に適用する前処理モジュール110のフィルタ制御125を示す図である。フィルタ制御125は、距離セレクタ440及び差分セレクタ445を含み、これらの各々は、ハードコードされたロジック、プログラマブルロジック、プロセッサによって実行されるソフトウェア、又は、これらの組み合わせとして実装され得る。距離セレクタ440でバイラテラルぼかしフィルタ120の距離閾値を調整し、差分セレクタ445でバイラテラルぼかしフィルタ120の差分閾値を調整することにより、フィルタ制御125は、距離閾値及び差分閾値の設定のセット毎に異なるフィルタ120を効果的に生成する。他の実施形態は、追加又は異なるパラメータを有する他のタイプのフィルタを使用する。
【0034】
特性化モジュール115がブロックを特徴付けた後に、フィルタ制御125は、複数のフィルタ120をブロックに適用する。例えば、画素400~424を含むブロック425では、そのうちの画素412は検討対象の画素(すなわち、ブロック内の他の画素がぼかされることが予想される画素)であり、フィルタ制御125は、第1の距離閾値及び第1の差分閾値を有する第1のフィルタ120を適用する。第1のフィルタ120は、前処理モジュール110によってブロック225に適用されると、検討対象の画素412を有する領域435内の画素406,407,408,411,413,416,417,418をぼかす。フィルタ制御125が、第2の距離閾値及び第2の差分閾値を有する第2のフィルタ120をブロック425に適用する場合、第2のフィルタ120は、検討対象の画素412を有する領域430内の画素402,403,404,407,408,409,413,414をぼかす。
【0035】
図5は、いくつかの実施形態による、異なるフィルタでフィルタ処理されたブロックのサイズ及び歪み(エラーと呼ばれる)を予測するモデルをトレーニングする方法500を示すフロー図である。方法500は、
図1に示す処理システム100のいくつかの実施形態で実施される。ブロック502において、特性化モジュール115は、複数のブロックの各ブロックを特性化する(特徴付ける)。いくつかの実施形態では、特性化モジュール115は、マルチスケールメトリックを用いてブロックを特性化する。他の実施形態では、特性化モジュール115は、彩度、コントラスト、又は、ノイズ具合等の他のメトリックに基づいてブロックを特性化する。ブロック504において、フィルタ制御125は、第1のフィルタ120を各ブロックに適用する。ブロック506において、前処理モジュール110は、量子化パラメータを用いてフィルタ処理ブロックを符号化する。ブロック508において、予測器130は、符号化された各フィルタ処理ブロックのサイズ及びエラーを収集(又は、計算)する。ブロック510において、予測器130は、ブロックが、第1のフィルタでフィルタ処理され、量子化パラメータを用いて符号化される際の、そのブロックのサイズを予測するための回帰モデルと、ブロックが、第1のフィルタでフィルタ処理され、量子化パラメータを用いて符号化される際の、そのブロックのエラーを予測するための回帰モデルと、を生成(develop)する。ブロック512において、前処理モジュール110は、予測器130が、評価されているN個のフィルタの全てに対して、サイズモデル及びエラーモデルを生成したかどうかを判定する。
【0036】
ブロック512において、予測器130が、評価されている各フィルタに対して、サイズモデル及びエラーモデルを生成していないことを前処理モジュール110が判定した場合、方法フローはブロック514に進む。ブロック514において、フィルタ制御125は、次のフィルタ120を複数のブロックの各々に適用する。そこから、方法フローはブロック506に戻る。ブロック512において、予測器130が、評価されているN個のフィルタのそれぞれに対して、サイズモデル及びエラーモデルを生成したと前処理モジュール110が判定した場合、方法フローはブロック516に進む。ブロック516において、前処理モジュール110は、
図6でさらに説明するように、ピクチャ又は映像を前処理するために、N個のフィルタ120の各々に対して、生成したサイズモデル及びエラーモデルを使用する。
【0037】
図6は、いくつかの実施形態による、各ブロックに対して最低コストを有するフィルタを用いてピクチャのブロックをフィルタ処理する方法600を示すフロー図である。方法600は、
図1に示す処理システム100のいくつかの実施形態で実施される。ブロック602において、処理システム100は、ピクチャをブロックに分割する。ブロック604において、特性化モジュール115は、
図5を参照して既に述べたように、回帰モデルをトレーニングするためのトレーニングステップで使用された同じ特性化方法を使用して、ピクチャの第1のブロックを特性化する(特徴付ける)。ブロック606において、予測器130は、第1のブロックの特性をN個のサイズモデルの各々(N個のフィルタ120の各々に対して生成した1つのサイズモデル)に入力することにより、第1のブロックが、N個のフィルタ120の各々を用いてフィルタ処理される際の、第1のブロックの予測サイズを計算する。また、予測器130は、第1のブロックの特性をN個のエラーモデルの各々(N個のフィルタ120の各々に対して生成した1つのエラーモデル)に入力することにより、第1のブロックが、N個のフィルタ120の各々を用いてフィルタ処理される際の、第1のブロックの予測エラーを計算する。
【0038】
ブロック608において、コスト計算機135は、第1のブロックの特性を有するブロックが、各フィルタ120を用いてフィルタ処理される際の、そのブロックの予測サイズ及び予測エラーに基づいて、N個のフィルタ120の各々を適用することに関連するコストを計算する。いくつかの実施形態では、コストは、サイズモデルの二乗とエラーモデルの平方根との積であるコスト関数に基づいている。ブロック610において、フィルタセレクタ140は、第1のブロックのコストが最も低くなると予測されるフィルタを選択する。ブロック612において、前処理モジュール110は、最低コストのフィルタを第1のブロックに適用する。ブロック614において、前処理モジュール110は、対象のピクチャ(又は、映像)の全てのブロックがフィルタ処理されたかどうかを判定する。ブロック614において、前処理モジュール110が、ピクチャの全てのブロックがフィルタ処理されていないと判定した場合、方法フローはブロック616に進む。ブロック616において、前処理モジュール110は、ピクチャの次のブロックに進み、方法フローはブロック604に戻る。ブロック614において、前処理モジュール110が、ピクチャの全てのブロックがフィルタ処理されていると判定した場合、方法フローはブロック618に進む。ブロック618において、前処理モジュールは、フィルタ処理されたピクチャをエンコーダ150に提供する。
【0039】
本明細書に記載するように、いくつかの実施形態では、方法は、空間勾配、彩度、コントラスト又はノイズ具合のうち少なくとも1つを含むメトリックに基づいて、1つ以上のピクチャの複数のブロックの各ブロックを特性化することと、第1のフィルタを適用して、複数のブロックの各ブロックをフィルタ処理することと、第1の量子化パラメータを用いて、第1のフィルタでフィルタ処理された複数のブロックの各々を符号化することと、符号化され、第1のフィルタでフィルタ処理された複数のブロックの各々のサイズ及びエラーを計算することと、第1のピクチャの第1のブロックのサイズ及びエラーを、第1のブロックの特性と複数のブロックの各々の特性並びにサイズ及びエラーとに基づいて予測することであって、第1のブロックは、第1のフィルタでフィルタ処理され、第1の量子化パラメータを用いて符号化される、ことと、予測されたサイズ及びエラーに基づいて、第1のフィルタのコストが閾値未満であることに応じて、第1のフィルタを第1のブロックに適用することと、を含む。一態様では、方法は、第2のフィルタを適用して、1つ以上のピクチャの複数のブロックをフィルタ処理することと、第1の量子化パラメータを用いて、第2のフィルタでフィルタ処理された複数のブロックの各々を符号化することと、符号化され、第2のフィルタでフィルタ処理された複数のブロックの各々のサイズ及びエラーを計算することと、第1のピクチャの第1のブロックのサイズ及びエラーを、第1のブロックの特性と複数のブロックの各々の特性並びにサイズ及びエラーとに基づいて予測することであって、第1のブロックは、第2のフィルタでフィルタ処理され、第1の量子化パラメータを用いて符号化される、ことと、第1のブロックの予測されたサイズ及びエラーに基づく第1のフィルタのコストが第2のフィルタのコストを超えることに応じて、第2のフィルタを第1のブロックに適用することであって、第1のブロックは、第2のフィルタでフィルタ処理される、ことと、を含む。
【0040】
一態様では、第1のフィルタ及び第2のフィルタは、ぼかしフィルタであり、第1のフィルタを適用することは、第1のブロックのサンプル画素と、サンプル画素を含むぼかしに含めるための第1のブロックの候補画素と、の間の値の差を示す第1の制御設定を変更することを含み、第2のフィルタを適用することは、サンプル画素と、サンプル画素を含むぼかしに含めるための候補画素と、の間の距離を示す第2の制御設定を変更することを含み、第1のフィルタの第1の制御設定及び第2の制御設定のうち少なくとも一方は、第2のフィルタの第1の制御設定及び第2の制御設定と異なる。別の態様では、第1のフィルタは、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含み、第2のフィルタは、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含み、第1のフィルタと異なる。さらに別の態様では、方法は、第1のフィルタ又は第2のフィルタでフィルタ処理された第1のブロックをエンコーダに提供することを含む。
【0041】
一態様では、第1のフィルタのコストの関数は、複数のブロックの各々の特性、計算されたサイズ、及び、計算されたエラーに基づいており、複数のブロックは、第1のフィルタでフィルタ処理され、第1の量子化パラメータを用いて符号化されており、第2のフィルタのコストの関数は、複数のブロックの各々の特性、計算されたサイズ、及び、計算されたエラーに基づいており、複数のブロックは、第2のフィルタでフィルタ処理され、第1の量子化パラメータを用いて符号化されている。別の態様では、特性化することは、複数のブロックの各々のマルチスケールメトリックに基づいており、マルチスケールメトリックは、複数の空間的圧縮スケール及び複数のダイナミックレンジスケールのうち少なくとも1つについて、ブロックの画素アクティビティの推定レベルに基づく係数を含み、マルチスケールメトリックは、ビット配分又は量子化パラメータのビット割り当てがブロックの知覚品質にどのように影響すると予測されるかを示す。
【0042】
いくつかの実施形態では、方法は、ピクチャの第1のブロックに対して、第1のフィルタを適用するコストと、第1のフィルタとは異なる第2のフィルタを適用するコストと、を計算することであって、第1のフィルタのコストは、第1のブロックの空間勾配、彩度、コントラスト又はノイズ具合のうち少なくとも1つを含むメトリック、第1の予測サイズ及び第1の予測エラーに基づく特性に基づいており、第1のブロックは、第1のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化され、第2のフィルタのコストは、第1のブロックの特性、第2のサイズ及び第2のエラーに基づいており、第1のブロックは、第2のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化される、ことと、第1のフィルタのコストと、第2のフィルタのコストと、に基づいて、第1のフィルタ又は第2のフィルタを選択することと、選択されたフィルタを適用して、第1のブロックをフィルタ処理することと、フィルタ処理された第1のブロックを符号化するために、フィルタ処理された第1のブロックをエンコーダに提供することと、を含む。一態様では、第1のフィルタ及び第2のフィルタは、第1のブロックのサンプル画素と、サンプル画素を含むぼかしに含めるための第1のブロックの候補画素と、の間の値の差を示す第1の制御設定と、サンプル画素と、サンプル画素を含むぼかしに含めるための候補画素と、の間の距離を示す第2の制御設定と、を備えるぼかしフィルタであり、第1のフィルタの第1の制御設定及び第2の制御設定のうち少なくとも一方は、第2のフィルタの第1の制御設定及び第2の制御設定と異なる。
【0043】
一態様では、第1のフィルタ及び第2のフィルタの各々は、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含む。別の態様では、方法は、第1のピクチャの第1のブロックを特性化することを含む。さらに別の態様では、方法は、第1のブロックの第1のサイズ及び第1のエラーを予測することであって、第1のブロックは、第1のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化される、ことと、第1のブロックの第2のサイズ及び第2のエラーを予測することであって、第1のブロックは、第2のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化される、ことと、を含む。さらに別の態様では、方法は、第1のフィルタ及び第1の量子化パラメータに基づいて、第1のブロックの第1のサイズを予測するモデルと、第1のブロックの第1のエラーを予測するモデルと、をトレーニングすることと、第2のフィルタ及び第1の量子化パラメータに基づいて、第1のブロックの第2のサイズを予測するモデルと、第1のブロックの第2のエラーを予測するモデルと、をトレーニングすることと、を含む。さらに別の態様では、特性は、第1のブロックのマルチスケールメトリックに基づいており、マルチスケールメトリックは、複数の空間的圧縮スケール及び複数のダイナミックレンジスケールのうち少なくとも1つについて、第1のブロックの画素アクティビティの推定レベルに基づく係数を含み、マルチスケールメトリックは、ビット配分又は量子化パラメータのビット割り当てが第1のブロックの知覚品質にどのように影響すると予測されるかを示す。
【0044】
いくつかの実施形態では、デバイスは、ピクチャの第1のブロックに対して、第1のフィルタを適用するコストと、第1のフィルタと異なる第2のフィルタを適用するコストと、を推定するコスト計算機であって、第1のフィルタのコストは、第1のブロックの空間勾配、彩度、コントラスト又はノイズ具合のうち少なくとも1つを含むメトリック、第1の予測サイズ及び第1の予測エラーに基づく第1のブロックの特性に基づいており、第1のブロックは、第1のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化され、第2のフィルタのコストは、第1のブロックの特性並びに第1のブロックの第2のサイズ及び第2のエラーに基づいており、第1のブロックは、第2のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化される、コスト計算機と、第1のフィルタ又は第2のフィルタを、第1のフィルタのコスト及び第2のフィルタのコストに基づいて選択し、選択されたフィルタを適用して第1のブロックをフィルタ処理するためのフィルタセレクタと、フィルタ処理された第1のブロックを符号化するエンコーダと、を備える。
【0045】
一態様では、第1のフィルタ及び第2のフィルタは、第1のブロックのサンプル画素と、サンプル画素を含むぼかしに含めるための第1のブロックの候補画素と、の間の値の差を示す第1の制御設定と、サンプル画素と、サンプル画素を含むぼかしに含めるための候補画素と、の間の距離を示す第2の制御設定と、を備えるぼかしフィルタであり、第1のフィルタの第1の制御設定及び第2の制御設定のうち少なくとも一方は、第2のフィルタの第1の制御設定及び第2の制御設定と異なる。別の態様では、第1のフィルタ及び第2のフィルタの各々は、バイラテラルぼかしフィルタ、時間フィルタ、時空間フィルタ及び動き補償フィルタのうち1つを含む。
【0046】
一態様では、デバイスは、第1のピクチャの第1のブロックを特性化する特性化モジュールを備える。別の態様では、特性化モジュールは、第1のブロックのマルチスケールメトリックに基づいて第1のブロックを特性化し、マルチスケールメトリックは、複数の空間的圧縮スケール及び複数のダイナミックレンジスケールのうち少なくとも1つについて、ブロックの画素アクティビティの推定レベルに基づく係数を含み、マルチスケールメトリックは、ビット配分又は量子化パラメータのビット割り当てがブロックの知覚品質にどのように影響すると予測されるかを示す。別の態様では、デバイスは、第1のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化された複数のブロックの特性に基づいて、第1のブロックの第1のサイズを予測するモデルと、第1のブロックの第1のエラーを予測するモデルと、をトレーニングすることと、第2のフィルタを用いてフィルタ処理され、第1の量子化パラメータを用いて符号化された複数のブロックの特性に基づいて、第1のブロックの第2のサイズを予測するモデルと、第1のブロックの第2のエラーを予測するモデルと、をトレーニングすることと、を行うように構成された予測器を備える。
【0047】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0048】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0049】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0050】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。