IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ヴィ-ノヴァ インターナショナル リミテッドの特許一覧

<>
  • 特許-ビデオ符号化における残差の処理 図1
  • 特許-ビデオ符号化における残差の処理 図2
  • 特許-ビデオ符号化における残差の処理 図3
  • 特許-ビデオ符号化における残差の処理 図4
  • 特許-ビデオ符号化における残差の処理 図5
  • 特許-ビデオ符号化における残差の処理 図6
  • 特許-ビデオ符号化における残差の処理 図7
  • 特許-ビデオ符号化における残差の処理 図8
  • 特許-ビデオ符号化における残差の処理 図9A
  • 特許-ビデオ符号化における残差の処理 図9B
  • 特許-ビデオ符号化における残差の処理 図9C
  • 特許-ビデオ符号化における残差の処理 図10
  • 特許-ビデオ符号化における残差の処理 図11
  • 特許-ビデオ符号化における残差の処理 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】ビデオ符号化における残差の処理
(51)【国際特許分類】
   H04N 19/33 20140101AFI20240924BHJP
   H04N 19/46 20140101ALI20240924BHJP
【FI】
H04N19/33
H04N19/46
【請求項の数】 14
(21)【出願番号】P 2021558487
(86)(22)【出願日】2019-12-13
(65)【公表番号】
(43)【公表日】2022-06-23
(86)【国際出願番号】 GB2019053547
(87)【国際公開番号】W WO2020188229
(87)【国際公開日】2020-09-24
【審査請求日】2022-12-12
(31)【優先権主張番号】1903844.7
(32)【優先日】2019-03-20
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1904014.6
(32)【優先日】2019-03-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1904492.4
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1905325.5
(32)【優先日】2019-04-15
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1909701.3
(32)【優先日】2019-07-05
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】521189972
【氏名又は名称】ヴィ-ノヴァ インターナショナル リミテッド
【氏名又は名称原語表記】V-NOVA INTERNATIONAL LIMITED
【住所又は居所原語表記】8th Floor, 1 Sheldon Square, Paddington, London W2 6TT
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【弁理士】
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】フェラーラ シモーネ
(72)【発明者】
【氏名】チッカレッリ ロレンツォ
(72)【発明者】
【氏名】メアルディ グイド
【審査官】田中 純一
(56)【参考文献】
【文献】特開2009-071389(JP,A)
【文献】特開2015-233297(JP,A)
【文献】米国特許出願公開第2015/0341675(US,A1)
【文献】特表2007-514359(JP,A)
【文献】米国特許出願公開第2007/0160300(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
入力信号を符号化する方法であって、前記方法が、
入力信号を受信することと、
前記入力信号と、1つ以上のそれぞれの解像度での1つ以上の再構成された信号との間の差異に基づいて、残差のセットを生成することであって、残差の第1のセットは、前記入力信号の第1のバージョンと前記入力信号の第1の再構成されたバージョンとの比較に基づいており、前記第1の再構成されたバージョンは、ベースエンコーダから導出され、残差の第2のセットは、前記入力信号の第2のバージョンと前記入力信号の第2の再構成されたバージョンとの比較に基づいており、前記第2の再構成されたバージョンは、前記第1の再構成されたバージョンから導出されることを特徴とする、前記残差のセットを生成することと、
残差モードを選択すること(140)と、
前記選択された残差モードに基づいて、前記残差の第1及び第2のセットを修正することと、
前記修正された残差のセットを符号化して、それぞれの符号化ストリームを生成することと、を含み、前記符号化は前記ベースエンコーダとは異なるものであり、
前記符号化することが、前記修正された残差のセットを変換することを含み、
前記修正することが、符号化しない残差のそれぞれのセットのサブセットを選択することを含み、前記修正することが、前記選択された残差モードに基づいて、前記残差の第1及び第2のセットに対して個別に実行され、前記残差の各セットが、同じ手法で修正されることがあり、又は、異なる手法で修正されることがあり、又は、全く修正されないことがある、方法。
【請求項2】
前記入力信号が、第1の解像度であり、前記方法が、
前記入力信号をダウンサンプリングして、第2の解像度でダウンサンプリングされた信号を作成することと、
前記ベースエンコーダからベース符号化信号を受信することであって、前記ベース符号化信号が、前記ベースエンコーダを使用して、前記ダウンサンプリングされた信号を符号化することによって生成される、受信することと、
前記ベース符号化信号からの信号を再構成して、前記1つ以上の再構成された信号内の第1の再構成された信号を生成することと、
前記第1の再構成された信号を前記入力信号と比較して、前記残差の第1のセットを生成することと、をさらに含み、
前記第1の再構成された信号を前記入力信号と比較して、前記残差のセットのうちの前記第1のセットを生成することが、
前記ベース符号化信号を復号して、ベース復号信号を生成することと、
前記ベース復号信号と、前記入力信号の前記ダウンサンプリングされたバージョンとの間の差異を使用して、前記残差の第1のセットを生成することと、を含み、
前記方法が、
前記残差の第2のセットを生成することであって、
前記残差の第1のセットを使用して、前記ベース復号信号を補正して、補正された復号バージョンを作成することと、
前記補正された復号バージョンをアップサンプリングすることと、
前記補正された復号信号と、前記入力信号との間の差異を使用して、前記残差の第2のセットを生成することと、によって生成すること、をさらに含、請求項1に記載の方法。
【請求項3】
残差の前記第1のセットが、第1の空間解像度であり、残差の前記第2のセットが、第2の空間解像度であり、前記第1の空間解像度が、前記第2の空間解像度よりも低い、請求項1に記載の方法。
【請求項4】
前記修正するステップが、
前記残差のセットの各々内の残差をランク付けすることと、
前記ランク付けすることに基づいて、前記残差をフィルタリングすることと、を含む、請求項1~のいずれか一項に記載の方法。
【請求項5】
前記修正することが、
各残差または残差の各グループと関連付けられたスコアを判定することを含み、
前記スコアが、各残差または残差の各グループの相対的重要性を示し、
符号化しない残差のサブセットを前記選択することが、各残差または残差の各グループと関連付けられた前記スコアに基づいており、
前記スコアが、前記入力信号の1つ以上の空間特性および/または時間特性に基づいており、
前記スコアが、前記入力信号のコントラストのレベル、またはテクスチャのレベル、またはその両方に基づいている、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記修正することが、
前記残差のそれぞれのセットにおける残差を量子化することを含み、量子化することが、可変サイズのデッドゾーンを適用することを含み、
前記デッドゾーンが、量子化ステップ幅の関数として判定される、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記修正することが、前記残差のセットのそれぞれの残差を量子化することを含み、
前記残差を量子化することが、
前記残差を第1の段階で量子化して、前記修正を達成することと、
前記残差を第2の段階で量子化して、前記符号化を達成することと、含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記修正することが、
前記スコアを範囲のセットと比較することを含み、
前記スコアが第1の範囲内に入ることに応答して、前記残差または残差のグループが、符号化されず、
前記スコアが第2の範囲内に入ることに応答して、前記残差または残差のグループが、量子化デッドゾーンと比較され、前記残差または残差のグループが前記デッドゾーン内に入る場合、前記残差または残差のグループが、符号化されず、
前記スコアが第3の範囲内に入ることに応答して、前記残差または残差のグループが、第1の量子化ステップ幅で事前量子化され、
前記スコアが第4の範囲内に入ることに応答して、前記残差または残差のグループが、修正なしに、符号化のために渡される、請求項5に記載の方法。
【請求項9】
前記残差の1つ以上のセットを修正することが、
残差または残差のグループのカテゴリ化を取得することと、
前記カテゴリ化に基づいて、前記修正を適用することと、を含み、
カテゴリ化を取得することが、
前記入力信号または前記残差のセットの少なくとも1つの空間特性および/または時間特性に基づいて、残差または残差のグループをカテゴリ化すること、を含み、
前記1つ以上の空間特性および/または時間特性が、
1つ以上の信号要素または信号要素のグループ間の空間活性度、
1つ以上の信号要素または信号要素のグループ間のコントラストのレベル、
1つ以上の空間方向における変化の尺度、
1つ以上の信号要素または信号要素のグループ間の時間的活性度、
1つ以上の時間方向における変化の尺度、
1つ以上の残差間の空間活性度、
1つ以上の残差間の時間的活性度、および
前記残差のセットのうちの異なるセット間の差異、または前記残差のセットのうちの異なるセット間の1つ以上の空間特性および/もしくは時間特性の差異を含む群から選択される1つ以上を含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記修正することは、
残差が、前記符号化において符号化されるべきかどうかを示す制御フラグを設定することを含み、
前記符号化することが、前記制御フラグに基づいて選択的に行われる、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記修正することが、
残差重みのセットを受信することであって、前記残差重みがゼロ値を含む、受信することと、
前記残差重みのセットを、前記残差の1つ以上のセットのうちの1つ内の残差に適用して、残差の重み付けされたセットを生成することと、
前記残差重みのセットを前記適用することに続いて、閾値のセットを使用して、前記残差の重み付けされたセットを閾値処理することを含み、
前記残差重みのセットおよび前記閾値のセットの少なくとも1つが、前記入力信号の分類に基づいて決定される、請求項1~10のいずれか一項に記載の方法。
【請求項12】
前記残差重みのセットが、残差マスクを含み、
任意に、前記残差マスクが、符号化の前に、前記入力信号の事前処理に基づいて事前生成される、請求項11に記載の方法。
【請求項13】
請求項1~12のいずれか一項に記載の方法を実行するように構成されたエンコーダ。
【請求項14】
プロセッサによって実行されたときに、前記プロセッサに、請求項1~12のいずれか一項に記載の方法を実行させる命令を記憶する非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
ハイブリッド後方互換性符号化技術は、例えば、その内容が参照により本明細書に組み込まれるWO2014/170819およびWO2018/046940に以前に提案されている。
【0002】
データストリームを符号化データの第1の部分および符号化データの第2の部分に解析することと、符号化データの第1の部分を信号の第1のレンディションに復号するための第1のデコーダを実装することと、符号化データの第2の部分を再構成データに復号するための第2のデコーダを実装することであって、再構成データが、信号の第1のレンディションをどのように修正するかを指定する、実装することと、再構成データを信号の第1のレンディションに適用して、信号の第2のレンディションを生成することと、を行う方法が、その中で提案されている。
【0003】
さらに、残差要素のセットが、信号の第1の時間サンプルのレンディションを再構成するために使用可能である追加が、その中で提案されている。第1の時間サンプルと関連付けられた空間-時間相関要素のセットが、生成される。空間-時間相関要素のセットは、複数の残差要素間の空間相関の程度、およびレンディションに基づく第1の参照データと、信号の第2の時間サンプルのレンディションに基づく第2の参照データとの間の時間相関の程度を示す。空間-時間相関要素のセットは、出力データを生成するために使用される。上述のように、残差のセットは、全体的なデータサイズを低減するために符号化される。
【0004】
信号が再構成されたときにユーザーに与える全体的な印象を損なわないという目的と、処理速度および複雑さを最適化することとのバランスをとりながら、全体的なデータサイズをさらに低減するための最適化が求められている。
【発明の概要】
【0005】
本発明の態様によれば、残差データのセットを修正する方法であって、残差データを使用して、ベースストリームのデータ、例えば、レガシーなビデオ符号化技術を使用して符号化されたビデオのフレームを補正または強化することができる、方法、が提供される。
【0006】
第1の態様によれば、入力信号を符号化する方法であって、この方法は、入力信号を受信することと、入力信号と、1つ以上のそれぞれの解像度での1つ以上の再構成信号との間の差異に基づいて、残差の1つ以上のセットを生成することと、選択された残差モードに基づいて、残差の1つ以上のセットを修正することと、修正された残差の1つ以上のセットを符号化して、1つ以上のそれぞれの符号化ストリームを生成することと、を含み、符号化することが、修正された残差の1つ以上のセットを変換することを含み、修正することが、選択された残差モードに基づいて符号化しない残差のサブセットを選択することを含む、方法、が提供され得る。
【0007】
入力信号は、好ましくは、画像、より好ましくは、複数のフレームを含むビデオ信号であり得る。残差は、ピクチャ要素またはビデオフレームの要素に対応し得る。それらは、「差異のピクチャ」とみなされ得る。残差のセットは、各々が特定の信号要素に対応する、1つ以上の残差を含み得る。ある場合には、残差のセットは、1つ以上の解像度の入力画像またはフレームの画素に対応する残差値を含み得る。符号化は、例えば、変換、量子化、およびエントロピ符号化などの一連の演算を含み得る。変更がパイプラインを通して伝播され、変換演算が低減されるように、修正は、変換された係数が、修正された残差に基づくように、残差の変換の前に行われる。
【0008】
符号化の前に残差を修正することによって、信号がデコーダで再構成されると、視聴者体験への潜在的な影響をバランスさせながら、全体的なデータサイズが低減され得、および/または計算効率が最適化され得る。修正は、符号化演算の量子化パラメータを変更すること、または残差の1つ以上のセットのサブセットを削除もしくは選択解除することを含み得る。選択された残差モードに基づいて符号化しない残差のサブセットを選択するステップは、変換のために複数の残差を選択解除することによって、または変換係数のセットをゼロに量子化することであって、変換係数が、対応する入力残差を表す、量子化すること、によって実施され得る。他の場合には、残差のサブセットを伝播させないことは、サブセットの値をゼロに設定することを含み得る。変換の前に残差を選択解除することは、修正、選択、および分析の精度を改善し得る。
【0009】
入力信号は、第1の解像度であり得る。方法は、入力信号をダウンサンプリングして、第2の解像度でダウンサンプリングされた信号を作成することと、ベースエンコーダからベース符号化信号を受信することであって、ベース符号化信号が、ベースエンコーダを使用して、ダウンサンプリングされた信号を符号化することによって生成される、受信することと、ベース符号化信号からの信号を再構成して、1つ以上の再構成された信号内の第1の再構成された信号を生成することと、第1の再構成された信号を入力信号と比較して、残差の1つ以上のセット内の残差の第1のセットを生成することと、をさらに含み得る。ダウンサンプリングされた信号を符号化することは、リモートまたはサードパーティの構成要素によって実行され得、任意選択で、レガシーな、既存の、もしくは将来実装されるコーデックなどのリモートで実施され得る。残差は、入力信号を再構成するために使用可能である。残差は、符号化および再構成プロセスによって導入されたアーチファクトを補正するために使用され得る。
【0010】
第1の再構成された信号を入力信号と比較して、残差の1つ以上のセットのうちの第1のセットを生成することは、ベース符号化信号を復号して、ベース復号信号を生成することと、ベース復号信号と、入力信号のダウンサンプリングされたバージョンとの間の差異を使用して、残差の第1のセットを生成することと、を含み得、方法は、残差の1つ以上のセット内の残差の第2のセットを生成することであって、残差の第1のセットを使用してベース復号信号を補正し、補正された復号バージョンを作成することと、補正された復号バージョンをアップサンプリングすることと、補正された復号信号と、入力信号との間の差異を使用して、残差の第2のセットを生成することと、によって生成すること、をさらに含み、修正することが、残差の第1および第2のセットのうちの1つ以上に対して個別に行われる。残差の各セットは、同じように、もしくは異なって修正されてもよいか、または全く修正されなくてもよい。したがって、残差は、残差が使用される方法を最適化するように修正され得る。例えば、最高レベルではより高い忠実度が必要とされ得、残差が、ベース符号化スキーム内のアーチファクトを補正している場合、異なる残差が、より重要であり得る。このように、残差の特定のサブセットをフィルタリングすることによって、ビットレートが低減され、および/または他の補正のためにより多くの容量を可能にし得る。
【0011】
残差の第1のセットは、第1の空間解像度であり得、残差の第2のセットは、第2の空間解像度であり、第1の空間解像度は、第2の空間解像度よりも低い。例えば、残差の第1のセットは、標準解像度または高解像度(SDまたはHD)であり得、残差の第2のセットは、高解像度または超高解像度(HDまたはUHD)であり得る。
【0012】
修正するステップは、残差の1つ以上のセット内の残差をランク付けすることと、ランク付けすることに基づいて、残差をフィルタリングすることと、を含み得る。フィルタリングは、所定のまたは動的に可変の閾値に基づき得る。残差をフィルタリングおよびランク付けすることによって、サブセットは、優先度の高い残差は符号化されるが、優先度の低い残差は選択解除され、したがって、符号化パイプラインの効率が最適化されるように、調整され得る。優先順位は、空間-時間特性を含む様々な要因に基づき得る。
【0013】
修正することは、各残差または残差の各グループと関連付けられたスコアを判定することを含み、スコアは、各残差または残差の各グループの相対的重要性を示し得、符号化しない残差のサブセットの選択は、各残差または残差の各グループと関連付けられたスコアに基づき得る。残差をスコアリングすることにより、修正プロセスに対して高度の制御が提供される。判定することは、取得すること、演算すること、または受信することでもあり得る。スコアは、メトリックともみなされ得る。スコアまたはメトリックは、特定の残差、残差のタイル、または残差の符号化単位と関連付けられ得、タイルは、所定のサイズの隣接する残差のグループを表し、複数のタイルが、残差のセットを構成する。
【0014】
スコアは、入力信号の1つ以上の空間特性および/または時間特性に基づき得る。スコアは、入力信号のコントラストのレベルまたはテクスチャのレベル、またはその両方に基づき得る。実施例では、入力信号の輝度が分析され、スコアが判定され得る。
【0015】
方法は、残差の1つ以上のセットを量子化することを含み得る。残差の1つ以上のセットを量子化することは、可変サイズのデッドゾーンを適用することを含み得る。デッドゾーンは、量子化ステップ幅の関数として判定され得る。残差の1つ以上のセットを量子化することは、残差の1つ以上のセットを第1の段階で量子化して、修正を達成することと、残差の1つ以上のセットを第2の段階で量子化して、符号化を達成することと、を含み得る。第1の段階で量子化することは、スコアに基づいて選択的であり得る。第1の量子化する段階は、事前量子化することと考えられ得る。事前量子化することは、画像、フレーム、または残差のセットのコントラストが著しく低く、その結果、優先する残差が、非常に低い値に集中する場合に、特に有益であり得ることに留意されたい。
【0016】
修正することは、スコアを範囲のセットと比較することであって、スコアが第1の範囲内に入ることに応答して、残差または残差のグループが、符号化されず、スコアが第2の範囲内に入ることに応答して、残差または残差のグループが量子化デッドゾーンと比較され、残差または残差のグループがデッドゾーン内に入る場合、残差または残差のグループが、符号化されず、スコアが第3の範囲内に入ることに応答して、残差または残差のグループが、第1の量子化ステップ幅で事前量子化され、スコアが第4の範囲内に入ることに応答して、残差または残差のグループが、修正なしに、符号化のために渡される、比較すること、を含み得る。
【0017】
残差の1つ以上のセットを修正することは、残差または残差のグループのカテゴリ化を取得することと、カテゴリ化に基づいて修正を適用することと、を含み得る。カテゴリは、例えば、背景または前景を含み得る。カテゴリ化を取得することは、入力信号の、または残差の1つ以上のセットの1つ以上の空間特性および/または時間特性に基づいて、残差または残差のグループをカテゴリ化することを含む。
【0018】
1つ以上の空間特性および/または時間特性は、1つ以上の信号要素または信号要素のグループ間の空間活性度、1つ以上の信号要素または信号要素のグループ間のコントラストのレベル、1つ以上の空間方向における変化の尺度、1つ以上の信号要素または信号要素のグループ間の時間的活性度、1つ以上の時間方向における変化の尺度、1つまたは残差間の空間活性度、1つ以上の残差間の時間的活性度、および残差の1つ以上のセットのうちの異なるセット間の差異、または残差の1つ以上のセットのうちの異なるセット間の1つ以上の空間特性および/もしくは時間特性の差異を含む群から選択される1つ以上を含み得る。
【0019】
修正することは、残差が、符号化において符号化されるべきかどうかを示す制御フラグを設定することを含み得、符号化は、制御フラグに基づいて選択的に行われる。処理中に0または1の値が注入されるか、または特定のブロックが完全にスキップされる可能性があることに留意されたい。しかしながら、処理は、依然として残差に関連している、すなわち、残差値のセットを効果的に0に設定する。これは非破壊的な選択と考えられ得る。
【0020】
修正することは、残差重みのセットを受信することであって、残差重みがゼロ値を含む、受信することと、残差重みのセットを、残差の1つ以上のセットのうちの1つ内の残差に適用して、残差の重み付けされたセットを生成することと、を含み得る。残差重みのセットを適用することに続いて、方法は、閾値のセットを使用して、残差の重み付けされたセットを閾値処理することをさらに含み得る。残差を重み付けすることにより、高度の柔軟性が、修正に適用され得る。重みは、非2進値のマトリックスであり得、したがって、各残差は、非2進値を割り当てられ得、次に、こうした各残差を使用して、柔軟に、スケーラブルに、かつ大量の詳細で、残差をフィルタリングまたは優先順位付けすることができる。残差重みのセットおよび閾値のセットのうちの1つ以上が、入力信号の分類に基づいて、決定され得る。同様に、分類は、残差、または残差を使用する入力信号の再構成バージョンに基づき得る。この後者の例は、再構成されたバージョンの分析に基づいて修正が改善されるように、反復またはフィードバックの要素を含み得る。
【0021】
残差重みのセットは、残差マスクを含み得る。残差マスクは、リモート位置から受信され得る。残差マスクは、符号化の前に、入力信号の事前処理に基づいて事前生成され得る。したがって、リモート位置は、計算コストが高い演習を実行することがあり、エンコーダは、「ダム」であり得る。残差マスクは、特定のビデオのために1回生成され、複数のエンコーダにわたっておよび/または複数回再利用され得、リソース使用量を低減し得る。他の利点の中でも、残差マスクのそのようなリモート記憶は、残差マスクのスケーラブルな符号化または複製を提供し得る。別の利点では、マスクの集中的で複雑な解析および判定を容易にする詳細な機械学習ベースのアルゴリズムなどの複雑なアルゴリズムを適用して、残差マスクを生成することができ、したがって、マスクは、リモート位置から取得されることによって、改善され得る。取得されたマスクは、入力信号がビデオである、入力信号のすべてのフレームに対して使用され得るか、またはフレームごとに異なるマスクが使用され得る。
【0022】
修正は、残差の符号化単位に対して実行され得る。
【0023】
さらなる態様によれば、入力信号を符号化する方法であって、入力信号を受信することと、入力信号と、再構成された信号との間の差異に基づいて、残差のセットを生成することと、残差のセットに対応する知覚メトリックのセットを決定することと、知覚メトリックのセットに基づいて、残差のセットを選択的に事前量子化することと、修正された残差の1つ以上のセットを変換および量子化して、1つ以上のそれぞれの符号化ストリームを生成することと、を含む、方法、が提供され得る。したがって、変換および量子化は、より効率的に行われ得る。知覚メトリックは、効率性と、ユーザーまたは視聴者の体験との間のバランスを容易にする。
【0024】
知覚メトリックのセットを決定することは、残差グループのセット内の各所与の残差グループについて、所与の残差グループに対して知覚メトリックが使用されるべきかどうかを判定することと、知覚メトリックが使用されるべきであるという判定に応答して、所与の残差グループための少なくとも1つの知覚メトリックを取得することと、を含み得る。したがって、メトリックは、メトリックがある程度の影響を及ぼし得るレベルで決定され得る。
【0025】
方法は、1つ以上の残差のための知覚メトリックを範囲のセットと比較することであって、知覚メトリックが第1の範囲内に入ることに応答して、1つ以上の残差が、符号化されず、知覚メトリックが第2の範囲内に入ることに応答して、1つ以上の残差が事前量子化デッドゾーンと比較され、1つ以上の残差がデッドゾーン内に入る場合、1つ以上の残差が、符号化されず、知覚メトリックが第3の範囲内に入ることに応答して、1つ以上の残差が、事前量子化ステップ幅で事前量子化され、知覚メトリックが第4の範囲内に入ることに応答して、1つ以上の残差が、修正なしに、符号化のために渡される、比較すること、を含み得る。
【0026】
実装の上記態様のいずれかの方法を実行するように構成されたエンコーダも、提供され得る。
【0027】
さらなる態様によれば、入力ビデオを符号化するためのエンコーダであって、残差の第1のセットを受信および符号化して、第1の強化ストリームを作成するための第1のエンコーダと、残差の第2のセットを受信および符号化して、第2の強化ストリームを作成するための第2のエンコーダと、を備え、残差の第1のセットが、入力ビデオの第1のバージョンと、入力ビデオの第1の再構成バージョンとの比較に基づいており、第1の再構成バージョンが、ベースエンコーダから導出され、ベースエンコーダが、第1および第2のエンコーダとは異なっており、残差の第2のセットが、入力ビデオの第2のバージョンと、入力ビデオの第2の再構成バージョンとの比較に基づいており、第2の再構成バージョンが、第1の再構成バージョンから導出され、残差の第1および第2のセットのそれぞれのセット内の非ゼロ値のサブセットが、それぞれの第1および第2の強化レベルストリーム内に存在しないように、第1および第2のエンコーダのうちの1つ以上が、符号化の前に、残差を選択的に事前処理するように構成されている、エンコーダ、が提供され得る。
【0028】
第1および第2のエンコーダは、ビデオの各フレームの符号化単位のセットを各々独立して処理し得る。
【0029】
さらなる態様によれば、入力ビデオを符号化するためのエンコーダであって、残差の第1のセットを受信および符号化して、第1の強化ストリームを作成するための第1のエンコーダと、残差の第2のセットを受信および符号化して、第2の強化ストリームを作成するための第2のエンコーダと、構成データを受信するための構成インターフェースと、を備え、残差の第1のセットが、入力ビデオの第1のバージョンと、入力ビデオの第1の再構成バージョンとの比較に基づいており、第1の再構成バージョンが、ベースエンコーダから導出され、ベースエンコーダが、第1および第2のエンコーダとは異なっており、残差の第2のセットが、入力ビデオの第2のバージョンと、入力ビデオの第2の再構成バージョンとの比較に基づいており、第2の再構成バージョンが、第1の再構成バージョンから導出され、構成データが、第1および第2のエンコーダのうちの1つ以上のための残差マスクを含み、内の非ゼロ値のサブセットが、それぞれの第1および第2の強化レベルストリーム内に存在しないように、第1および第2のエンコーダのうちのそれぞれのエンコーダが、符号化の前に、残差の第1および第2のセットのうちのそれぞれのセットに残差マスクを選択的に適用するように構成されている、エンコーダ、が提供され得る。
【0030】
本発明のさらなる態様によれば、プロセッサによって実行されたときに、プロセッサに、上記の態様の方法のいずれかを実行させるコンピュータ可読媒体が、提供され得る。
【図面の簡単な説明】
【0031】
図1】符号化プロセスの高レベルの概略図を示す。
図2】復号プロセスの高レベルの概略図を示す。
図3】符号化プロセスおよび特定の符号化ステップの高レベルの概略図を示す。
図4】復号プロセスおよび特定の復号ステップの高レベルの概略図を示す。
図5】符号化プロセスおよび残差処理の高レベルの概略図を示す。
図6】さらなる復号プロセスの高レベルの概略図を示す。
図7】符号化プロセスおよび残差モード制御の高レベルの概略図を示す。
図8】分類および残差重み付けを示す。
図9A-9C】クラウド構成を示す。
図10】本明細書に記載される概念のフローチャートを示す。
図11】対応するアクションを識別するために使用され得る知覚メトリックの範囲を示す。
図12】特定の実施例による、知覚メトリックおよび図11の範囲がどのように適用され得るかのフローチャートを示す。
【発明を実施するための形態】
【0032】
本発明は、方法に関する。具体的には、本発明は、信号を符号化および復号するための方法に関する。データを処理することは、以下に限定されないが、データを取得すること、導出すること、出力すること、受信すること、および再構成することを含み得る。
【0033】
本明細書で考察される符号化技術は、ビデオ符号化フォーマット、ベースコーデック(例えば、AVC、HEVC、または任意の他の現在もしくは将来のコーデック)を、異なる技術を使用して符号化された強化レベルの符号化データと組み合わせる、柔軟で、適応可能で、高効率かつ計算コストの低い符号化フォーマットである。本技術は、ベースコーデックを使用して符号化されたダウンサンプリングされたソース信号を使用して、ベースストリームを形成する。強化ストリームは、例えば、解像度を増加させることによって、またはフレームレートを増加させることによって、ベースストリームを補正または強化する残差の符号化されたセットを使用して形成される。階層構造内に複数のレベルの強化トデータが存在し得る。特定の配置では、ベースストリームは、ハードウェアデコーダによって復号され得る一方、強化ストリームは、ソフトウェア実装に好適であり得る。
【0034】
新しい符号化技術で使用される任意の最適化は、強化ストリームの特定の要件または制約に合わせて調整され、複雑さが低いことが重要である。そのような要件または制約としては、強化ストリームのソフトウェア復号の必要性から生じる計算能力の潜在的な低下、残差の復号されたセットと、復号されたフレームとの組み合わせの必要性、残差データの可能性の高い構成、すなわち、大きな範囲にわたって変動の大きいデータ値を有するゼロ値の比較的高い割合、係数の量子化されたブロックのニュアンス、および強化ストリームが、様々な構成要素に分離された離散的な残差フレームのセットである構成が挙げられる。強化ストリームに課された制約は、強化ストリームが、ベース復号されたビデオの個々のフレームを効果的に補正または強化することを可能にするために、単純かつ高速のエントロピ符号化演算が不可欠であることを意味することに留意されたい。いくつかのシナリオでは、ベースストリームも、組み合わせ前に実質的に同時に復号されつつあり、リソースに負担をかけることに留意されたい。
【0035】
ある場合には、本明細書に記載の方法は、ビデオ信号の異なる色成分を反映するいわゆるデータの平面に適用され得る。例えば、本明細書に記載の方法は、異なるカラーチャネルを反映するYUVまたはRGBデータの異なる平面に適用され得る。異なるカラーチャネルは、並行して処理され得る。したがって、本明細書に記載されるとき、残差のセットへの言及は、各色成分が、組み合わされた強化ストリームの一部を形成する残差の異なるセットを有する、残差の複数のセットを含み得る。各ストリームの構成要素は、任意の論理的順序で照合され得、例えば、同じレベルの各平面が、グループ化されて一緒に送信され得るか、または代替的に、各平面内の異なるレベルの残差のセットが、一緒に送信され得る。
【0036】
本書は、望ましくは、以下のISO/IEC文書、“Call for Proposals for Low Complexity Video Coding Enhancements”ISO/IEC JTC1/SC29/WG11 N17944,Macao,CN,Oct.2018、および“Requirements for Low Complexity Video Coding Enhancements”ISO/IEC JTC1/SC29/WG11 N18098,Macao,CN,Oct.2018(これらは参照により本明細書に組み込まれる)の要件を満たす。さらに、本明細書に記載のアプローチは、V-Nova International Ltd.によって供給される製品に組み込まれ得る。
【0037】
本明細書に記載された技術が適用され得る、提案された符号化スキームの一般的な構造は、ベースコーデックで符号化されたダウンサンプリングされたソース信号を使用し、ベースコーデックの復号された出力に第1のレベルの補正データを追加して、補正されたピクチャを生成し、次いで、補正されたピクチャのアップサンプリングされたバージョンにさらなるレベルの強化データを追加する。このため、ストリームは、ベースストリームと、強化ストリームとであると考えられる。この構造は、高い柔軟性および多くの状況への適応性を可能にする複数の自由度を作成し、符号化フォーマットをオーバーザトップ(OTT)送信、ライブストリーミング、ライブ超高精細(UHD)放送などの多くのユースケースに好適なものにする。ベースコーデックの復号された出力は、視聴することを意図されていないが、より低い解像度の完全に復号されたビデオであり、出力を既存のデコーダと互換性があるものにし、好適と考えられる場合には、より低い解像度の出力として使用可能である。場合によっては、ベースコーデックを使用して、ベースストリームを作成することができる。ベースコーデックは、モジュール式または「ブラックボックス」様式で制御される独立したコーデックを含み得る。本明細書に記載の方法は、プロセッサによって実行され、ハードウェアおよび/またはソフトウェアで実装されたベースコーデックに対し機能呼び出しを行うコンピュータプログラムコードによって実装され得る。
【0038】
一般に、本明細書で使用される場合、「残差」という用語は、参照アレイまたは参照フレームの値と、データの実際のアレイまたはフレームとの間の差異を指す。アレイは、符号化単位を表す一次元または二次元アレイであり得る。例えば、符号化単位は、入力ビデオフレームの類似のサイズの領域に対応する、残差値の2×2または4×4のセットであり得る。この一般化された例は、実行される符号化演算および入力信号の性質に関して不可知論的であることに留意されたい。本明細書で使用される場合、「残差データ」への言及は、残差のセット、例えば、残差自体のセット、または残差のセットに対して実行されるデータ処理演算のセットの出力などから導出されデータを指す。本明細書全体を通して、一般に、残差のセットは、複数の残差または残差要素を含み、各残差または残差要素は、信号要素、すなわち、信号または元のデータの要素に対応する。信号は、画像またはビデオであり得る。これらの実施例では、残差のセットは、ビデオの画像またはフレームに対応し、各残差は、信号の画素と関連付けられ、画素は、信号要素である。本明細書に開示される実施例は、全体的なデータサイズを低減しながら、符号化パイプラインまたは最終的に復号された画像に影響を与えるために、これらの残差がどのように修正(すなわち処理)され得るかを説明する。残差またはセットは、残差要素(または残差)ベースごとで処理され得るか、またはタイルごと、もしくは符号化単位ごとなどのグループベースで処理され得、タイルもしくは符号化単位は、残差のセットの隣接するサブセットである。ある場合には、タイルは、より小さい符号化単位グループを含み得る。なお、処理は、ビデオの各フレームに対して、またはシーケンス内の設定された数のフレームに対してのみ行われ得る。
【0039】
一般に、各または両方の強化ストリームは、ネットワーク抽象化階層単位(NALU)のセットを使用して、1つ以上の強化ビットストリーム内にカプセル化され得る。NALUは、強化を正しいベース再構成フレームに適用するために、強化ビットストリームをカプセル化することを意味する。NALUは、例えば、強化が適用されなければならないベースデコーダ再構成フレームビットストリームを含むNALUへの参照インデックスを含み得る。このようにして、強化は、ベースストリームに同期され得、各ビットストリームのフレームは、復号された出力ビデオを生成するように組み合わされる(すなわち、強化レベルの各フレームの残差が、ベース復号ストリームのフレームと組み合わされる)。ピクチャのグループは、複数のNALUを表し得る。
【0040】
ベースストリームが、強化ストリーム内の2つのレベル(またはサブレベル)の強化とともに提供される、上記の初期プロセスに戻ると、一般化された符号化プロセスの実施例が、図1のブロック図に示されている。入力フル解像度ビデオ100が処理されて、様々な符号化ストリーム101、102、103を生成する。第1の符号化ストリーム(符号化ベースストリーム)は、ベースコーデック(例えば、AVC、HEVC、または任意の他のコーデック)に入力ビデオのダウンサンプリングされたバージョンを供給することによって生成される。符号化されたベースストリームは、ベース層またはベースレベルと呼ばれることがある。第2の符号化ストリーム(符号化されたレベル1ストリーム)は、再構成されたベースコーデックビデオと、入力ビデオのダウンサンプリングされたバージョンとの間の差異を取ることによって得られた残差を処理することによって生成される。第3の符号化ストリーム(符号化されたレベル2ストリーム)は、再構成されたベース符号化ビデオの補正されたバージョンのアップサンプリングされたバージョンと、入力ビデオとの間の差異を取ることによって得られた残差を処理することによって生成される。場合によっては、図1の構成要素は、一般の低複雑性エンコーダを提供し得る。場合によっては、強化ストリームは、低複雑性エンコーダの一部を形成する符号化プロセスによって生成され得、低複雑性エンコーダは、独立したベースエンコーダおよびデコーダ(例えば、ベースコーデックとしてパッケージ化された)を制御するように構成され得る。他の場合には、ベースエンコーダおよびデコーダは、低複雑性エンコーダの一部として供給され得る。ある場合には、図1の低複雑性エンコーダは、ベースコーデックのラッパーの一形態とみなされ得、ベースコーデックの機能は、低複雑性エンコーダを実装するエンティティから隠され得る。
【0041】
ダウンサンプリング構成要素105によって例示されるダウンサンプリング演算が、入力ビデオに適用されて、ベースコーデックのベースエンコーダ113によって符号化されるダウンサンプリングされたビデオを生成し得る。ダウンサンプリングは、垂直方向および水平方向の両方、または代替的に水平方向のみのいずれかで行われ得る。ベースエンコーダ113およびベースデコーダ114は、ベースコーデックによって(例えば、共通のコーデックの異なる機能として)実装されてもよい。ベースコーデック、および/またはベースエンコーダ113ならびにベースデコーダ114の1つ以上は、好適に構成された電子回路(例えば、ハードウェアエンコーダ/デコーダ)および/またはプロセッサによって実行されるコンピュータプログラムコードを備え得る。
【0042】
各強化ストリーム符号化プロセスは、必ずしもアップサンプリングステップを含まなくてもよい。例えば、図1では、第1の強化ストリームは、概念的に補正ストリームである一方で、第2の強化ストリームは、あるレベルの強化を提供するためにアップサンプリングされる。
【0043】
強化ストリームを生成するプロセスをより詳細に見ると、符号化されたレベル1ストリームを生成するために、符号化されたベースストリームが、ベースデコーダ114によって復号される(すなわち、復号されたベースストリームを生成するために、復号演算が、符号化されたベースストリームに適用される)。復号は、ベースコーデックの復号機能またはモードによって実行され得る。次いで、復号されたベースストリームと、ダウンサンプリングされた入力ビデオとの間の差異が、レベル1の比較器110で作成される(すなわち、減算演算が、ダウンサンプリングされた入力ビデオおよび復号されたベースストリームに適用されて、残差の第1のセットを生成する)。比較器110の出力は、残差の第1のセット、例えば、残差データのフレームの表面と呼ばれることがあり、残差値が、ベースエンコーダ113、ベースデコーダ114、およびダウンサンプリングブロック105の出力の解像度で、各ピクチャ要素について決定される。
【0044】
次いで、差異が、第1のエンコーダ115(すなわち、レベル1エンコーダ)によって符号化されて、符号化されたレベル1ストリーム102を生成する(すなわち、符号化演算が、残差の第1のセットに適用されて、第1の強化ストリームを生成する)。
【0045】
上述のように、強化ストリームは、第1のレベルの強化102と、第2のレベルの強化103と、を含み得る。第1のレベルの強化102は、補正されたストリーム、例えば、入力ビデオ100よりも低い解像度でベース符号化/復号されたビデオ信号に、あるレベルの補正を提供するストリームであるとみなされ得る。第2のレベルの強化103は、補正されたストリームを元の入力ビデオ100に変換する、例えば、補正されたストリームから再構成される信号に、あるレベルの強化または補正を適用する、さらなるレベルの強化であるとみなされ得る。
【0046】
図1の実施例では、第2のレベルの強化103は、残差のさらなるセットを符号化することによって作成される。残差のさらなるセットは、レベル2比較器119によって生成される。レベル2比較器119は、復号されたレベル1ストリームのアップサンプリングされたバージョン、例えば、アップサンプリング構成要素117の出力と、入力ビデオ100との間の差異を決定する。アップサンプリング構成要素117への入力は、第1のデコーダ(すなわち、レベル1のデコーダ)を第1のエンコーダ115の出力に適用することによって生成される。これにより、レベル1の残差の復号されたセットが生成される。次いで、これらが、合計構成要素120において、ベースデコーダ114の出力と組み合わされる。これにより、レベル1の残差が、ベースデコーダ114の出力に効果的に適用される。これは、レベル1の符号化および復号プロセスの損失が、レベル2の残差によって補正されることを可能にする。合計構成要素120の出力は、デコーダにおいて、符号化されたベースストリーム101および符号化されたレベル1ストリーム102にレベル1処理を適用することの出力を表す模擬信号とみなされ得る。
【0047】
上述のように、アップサンプリングされたストリームが入力ビデオと比較され、それにより、残差のさらなるセットが作成される(すなわち、差異演算が、アップサンプリングされた再作成されたストリームに適用されて、残差のさらなるセットを生成する)。次いで、残差のさらなるセットが、符号化されたレベル2の強化ストリームとして、第2のエンコーダ121(すなわち、レベル2エンコーダ)によって符号化される(すなわち、次いで、符号化演算が、残差のさらなるセットに適用されて、符号化されたさらなる強化ストリームを生成する)。
【0048】
したがって、図1に示され、上記に説明されたように、符号化プロセスの出力は、ベースストリーム101と、好ましくは、第1のレベルの強化およびさらなるレベルの強化を含む、1つ以上の強化ストリーム102、103と、である。3つのストリーム101、102、および103は、制御ヘッダなどの追加情報を伴って、または伴わずに組み合わされて、入力ビデオ100を表す、ビデオ符号化フレームワークのための組み合わされたストリームを生成し得る。図1に示される構成要素は、例えば、特定のレベルの解像度でのフレームの2×2または4×4部分に対応する、データのブロックまたは符号化単位上で動作し得ることに留意されたい。構成要素は、いかなるブロック間依存性もなく動作し、したがって、構成要素は、フレーム内の複数のブロックまたは符号化単位に並列に適用され得る。これは、ブロック間に依存性(例えば、空間依存性または時間依存性のいずれか)がある比較ビデオ符号化スキームとは異なる。比較ビデオ符号化スキームの依存性は、並列性のレベルを制限し、はるかに高い複雑さを必要とする。
【0049】
図1は、残差モード選択ブロック140を示す。残差モード(RM)が選択された場合、どの残差が変換および符号化されるべきか、すなわち、どの残差が、第1および/または第2のエンコーダ115および121によって処理されるべきかを決定するために、残差が処理される(すなわち、修正される、および/またはランク付けされる、および選択される)。好ましくは、この処理は、エントロピ符号化の前に実行される。残差モード選択140は、残差の処理または修正を構成またはアクティブ化し得る任意選択のステップであり、すなわち、残差の処理は、選択されたモードに従って実行される。例えば、「残差モード(RM)」は、強化層のための残差が、符号化の前に事前処理される、残差事前処理モードに対応し得る。このモードは、要件に応じて、オンまたはオフにされ得る。例えば、残差モードは、1つ以上の制御ヘッダまたはフィールドを介して構成され得る。代替的な実施形態では、残差は、常に修正され得る(すなわち、事前処理され得る)ため、モードの選択は必要ない。この場合、残差事前処理は、ハードコードされ得る。残差処理の実施例が、以下で詳細に説明される。残差モードは、選択された場合、好ましくは、符号化サブ構成要素の前の段階で、レベル1およびレベル2符号化演算のうちの1つ以上内で、残差をフィルタリングするように作用し得る。
【0050】
対応する一般化された復号プロセスが、図2のブロック図に示されている。図2は、図1の低複雑性エンコーダに対応する低複雑性デコーダを示すと言うことができる。低複雑性デコーダは、低複雑性エンコーダによって生成された3つのストリーム101、102、103を、さらなる復号情報を含むヘッダ204とともに受信する。符号化されたベースストリーム101は、低複雑性エンコーダで使用されるベースコーデックに対応するベースデコーダ210によって復号される。符号化されたレベル1ストリーム102は、第1のデコーダ211(すなわち、レベル1デコーダ)によって受信され、第1のデコーダ211は、図1の第1のエンコーダ115によって符号化された残差の第1のセットを復号する。第1の合計構成要素212において、ベースデコーダ210の出力が、第1のデコーダ211から得られた復号された残差と組み合わされる。レベル1の再構成ビデオ信号であると言われ得る組み合わせられたビデオが、アップサンプリング構成要素213によってアップサンプリングされる。符号化されたレベル2ストリーム103は、第2のデコーダ214(すなわち、レベル2デコーダ)によって受信される。第2のデコーダ214は、図1の第2のエンコーダ121によって符号化された残差の第2のセットを復号する。ヘッダ204は、第2のデコーダ214によって使用されるように図2に示されているが、ヘッダ204はまた、第1のデコーダ211、ならびにベースデコーダ210によって使用され得る。第2のデコーダ214の出力は、復号された残差の第2のセットである。これらは、残差の第1のセットおよびアップサンプリング構成要素213への入力に対して、より高い解像度であり得る。第2の合計構成要素215において、第2のデコーダ214からの残差の第2のセットが、アップサンプリング構成要素213の出力、すなわち、アップサンプリングされた再構成されたレベル1信号と組み合わされて、復号されたビデオ250を再構成する。
【0051】
低複雑性エンコーダのように、図2の低複雑性デコーダは、ビデオ信号の所与のフレームの異なるブロックまたは符号化単位上で並行して動作し得る。さらに、ベースデコーダ210、第1のデコーダ211、および第2のデコーダ214のうちの2つ以上による復号が、並行して行われ得る。これは、ブロック間依存性がないため、可能である。
【0052】
復号プロセスでは、デコーダは、(グローバル構成情報、ピクチャまたはフレーム構成情報、およびデータブロック構成情報を含み得る)ヘッダ204を解析し、それらのヘッダに基づいて、低複雑性デコーダを構成し得る。入力ビデオを再作成するために、低複雑性デコーダは、ベースストリーム、第1の強化ストリーム、およびさらなるまたは第2の強化ストリームの各々を復号し得る。ストリームのフレームは、同期され、次いで組み合わされて、復号されたビデオ250を導出し得る。復号されたビデオ250は、低複雑性エンコーダおよびデコーダの構成に応じて、元の入力ビデオ100の損失あり、または損失なしの再構成であり得る。多くの場合、復号されたビデオ250は、損失が、復号されたビデオ250の知覚に低減されたまたは最小限の影響を有する、元の入力ビデオ100の損失ありの再構成であり得る。
【0053】
図1および図2の各々において、レベル2およびレベル1の符号化演算は、変換、量子化、およびエントロピ符号化のステップを(例えば、その順序で)含み得る。同様に、復号の段階で、残差は、エントロピデコーダ、逆量子化器、および逆変換モジュールを(例えば、その順序で)通過させられ得る。任意の好適な符号化および対応する復号演算が、使用され得る。しかし、好ましくは、レベル2およびレベル1の符号化ステップは、ソフトウェアで実行され得る(例えば、符号化デバイス内の1つ以上の中央処理ユニットまたはグラフィカル処理ユニットによって実行され得る)。
【0054】
本明細書に記載の変換は、アダマールベースの変換などの方向分解変換(directional decomposition transform)を使用し得る。両方とも、残差の平坦化された符号化単位(すなわち、残差の2×2または4×4ブロック)に適用される小さなカーネルまたはマトリックスを含み得る。変換の詳細は、例えば、参照により本明細書に組み込まれる特許出願第PCT/EP2013/059847号または第PCT/GB2017/052632号に見出され得る。エンコーダは、使用される異なる変換の間で、例えば、適用されるカーネルのサイズの間で選択し得る。
【0055】
変換は、残差情報を4つの表面に変換し得る。例えば、変換は、以下の構成要素、すなわち、平均、垂直、水平、および対角線を生成し得る。
【0056】
要約すると、本明細書の方法および装置は、異なる符号化および/または復号アプローチに対して適宜に機能する強化層のベースラインとして機能する既存の符号化および/または復号アルゴリズム(AVC/H.264、HEVC/H.265などのMPEG標準、ならびにVP9、AV1などの非標準アルゴリズムなど)の上に構築される全体的なアプローチに基づいている。実施例の全体的なアプローチの背景にある考え方は、MPEGファミリーのアルゴリズムで使用されるようなブロックベースのアプローチの使用とは対照的に、ビデオフレームを階層的に符号化/復号することである。フレームを階層的に符号化することは、全フレーム、その後、間引かれたフレームなどについて、残差を生成することを含む。
【0057】
フルサイズビデオフレームのビデオ圧縮残差データは、LoQ-2(例えば、HDビデオフレームの場合1920×1080)と呼ばれることがある一方、間引かれたフレームのビデオ圧縮残差データは、LoQ-xと呼ばれることがあり、xは、階層間引きに対応する数値を示す。図1および図2の説明された実施例では、変数xは、1および2の値を有し、第1および第2の強化ストリームを表し得る。したがって、圧縮残差が生成されるであろう2つの階層レベルが存在する。レベルの他の命名スキームもまた、機能性の変化なしに適用され得る(例えば、本明細書に記載のレベル1およびレベル2の強化ストリームは、代替的に、レベル1およびレベル2のストリームと呼ばれ得、最高解像度からのカウントダウンを表す)。
【0058】
より詳細な符号化プロセスが、図3のブロック図に示されている。符号化プロセスは、破線によって示されるように、2つに分割される。破線の下には、ハードウェアまたはソフトウェアで有用に実装され得るエンコーダ300のベースレベルがある。破線の上には、ソフトウェアで有用に実装され得る強化レベルがある。エンコーダ300は、必要に応じて、強化レベルプロセスのみ、またはベースレベルプロセスと強化レベルプロセスとの組み合わせを備え得る。エンコーダ300は、特に強化レベルにおいて、ソフトウェアで有用に実装され得る。この構成は、例えば、ベースレベルを提供するレガシーなハードウェアエンコーダが、ファームウェア(例えば、ソフトウェア)の更新を使用してアップグレードされることを可能にし、ファームウェアは、強化レベルを提供するように構成される。より新しいデバイスでは、ベースレベルおよび強化レベルの両方が、ハードウェアおよび/またはハードウェアとソフトウェアとの組み合わせで提供され得る。
【0059】
一般的なレベルでのエンコーダトポロジは、以下の通りである。エンコーダ300は、入力信号30を受信するための入力Iを備える。入力信号30は、エンコーダがフレームごとのベースで適用される入力ビデオ信号を含み得る。入力Iは、ダウンサンプラ305Dおよび処理ブロック300-2に接続されている。ダウンサンプラ305Dは、図1のダウンサンプリング構成要素105に対応し得、処理ブロック300-2は、図1の第2のエンコーダ121に対応し得る。ダウンサンプラ305Dは、エンコーダ300のベースレベルで、ベースコーデック320に出力する。ベースコーデック320は、図1のベースエンコーダ113およびベースデコーダ114を実装し得る。ダウンサンプラ305Dはまた、処理ブロック300-1にも出力する。処理ブロック300-1は、図1の第1のエンコーダ115に対応し得る。処理ブロック300-1は、出力をアップサンプラ305Uに渡し、アップサンプラ305Uは、次に、処理ブロック300-2に出力する。アップサンプラ305Uは、図1のアップサンプリング構成要素117に対応し得る。処理ブロック300-2および300-1の各々は、以下のモジュール、すなわち、変換ブロック310、量子化ブロック320、エントロピ符号化ブロック330、および残差処理ブロック350のうちの1つ以上を備える。残差ブロック350は、変換ブロック310および/または処理ブロック300内の制御残差処理の前に存在し得る。処理の順序は、図に示される通りであり得る。
【0060】
入力信号30、例えば、この実施例ではフル(または最高)解像度のビデオは、エンコーダ300によって処理されて、様々な符号化ストリームを生成する。ベース符号化ストリームは、ダウンサンプラ305Dを使用して、ベースレベルで、ベースコーデック320(例えば、AVC、HEVC、または任意の他のコーデック)に入力ビデオ30のダウンサンプリングされたバージョンを供給することによって生成される。ベース符号化ストリームは、ベースコーデック320のベースエンコーダの出力を含み得る。第1の符号化ストリーム(符号化されたレベル1ストリーム)は、符号化されたベースストリームを再構成してベース再構成を作成し、次いで、ベース再構成と、入力ビデオ30のダウンサンプリングされたバージョンとの間の差異を取得することによって作成される。符号化されたベースストリームを再構成することは、ベースコーデックから復号されたベースストリームを受信することを含み得る(すなわち、処理ブロック300-1への入力は、図1に示されるベース復号されたストリームを含む)。次いで、差異信号が、ブロック300-1で処理されて、符号化されたレベル1ストリームを作成する。ブロック300-1は、変換ブロック310-1と、量子化ブロック320-1と、エントロピ符号化ブロック330-1と、を備える。第2の符号化ストリーム(符号化されたレベル2ストリーム)は、アップサンプラ305Uを使用して、ベース再構成の補正されたバージョンをアップサンプリングすることと、ベース再構成の補正されたバージョンと、入力信号30との間の差異を取得することと、によって作成される。次いで、この差異信号が、ブロック300-2で処理されて、符号化されたレベル2ストリームを作成する。ブロック300-2は、変換ブロック310-2と、量子化ブロック320-2と、エントロピ符号化ブロック330-2と、残差処理ブロック350-2と、を備える。処理ブロック300-1のように、これらのブロックは、図に示された順序で実行され得る(例えば、残差処理、続いて変換、続いて量子化、続いてエントロピ符号化)。
【0061】
任意の既知の量子化スキームは、特定の変数が特定の離散的な大きさのみを仮定し得るように、残差信号を量子に作成するのに有用であり得る。ある場合には、量子化することは、所定のステップ幅での除算を実行することを含む。これは、両方のレベル(1および2)で適用され得る。例えば、ブロック320において量子化することは、変換された残差値をステップ幅で除算することを含み得る。ステップ幅は、事前に決定され、例えば、所望のレベルの量子化に基づいて選択され得る。ある場合には、ステップ幅での除算は、ハードウェアでより効率的に実装され得る、逆ステップ幅での乗算に変換され得る。この場合、例えばブロック320において、逆量子化することは、ステップ幅で乗算することを含み得る。本明細書に記載される場合、エントロピ符号化は、ランレングス符号化(RLE)を含み得、次いで、符号化された出力が、ハフマンエンコーダを使用して処理される。場合によっては、エントロピ符号化が望ましい場合、これらのスキームのうちの1つのみが使用され得る。
【0062】
符号化されたベースストリームは、ベースレベルストリームと呼ばれることがある。
【0063】
図3は、変換ブロック310の前に位置する残差処理ブロック350-2、350-1を示す。残差処理が変換の前に示されているが、任意選択で、この処理ステップは、他の場所、例えば、符号化プロセスの後の方に配置されてもよいが、変換ステップの前に位置するとき、効率がパイプラインを通して伝播されるので、残差処理は、符号化パイプライン全体を通して最大の影響を有し得る。例えば、残差値が初期段階でフィルタリングされる場合(例えば、0に設定することによって)、これにより、処理ブロック300内の後続の段階で実行される必要がある計算の量が、低減される。残差処理ブロック350は、残差モード選択ブロック140(図3には示されず、図1に示されている)によってアクティブにされるか、または構成され得る。例えば、残差モードが選択された(例えば、オンにされた)場合、残差処理ブロック350が、アクティブにされ得る。残差モードは、第1および第2の強化ストリームのために独立して選択され得る(例えば、残差処理ブロック350-2および350-1は、別々にアクティブにされ、適用され得、一方がオンである間に、他方がオフにされ得る)。
【0064】
残差処理ブロックは、残差のセットを修正するように構成されている。残差処理ブロック310の特定の具体的な機能が以下に詳細に記載されるが、概念的には、残差処理ブロック310は、残差を修正するように機能する。これは、フィルタリングまたは事前処理の一形態とみなされ得る。特定の実施例では、残差は、フィルタリングまたは事前処理の一部としてランク付けされるか、または優先順位が与えられ得、それによって、より高いランクまたは優先順位を有するものは、さらなる処理のために渡され、より低いランクまたは優先順位を有するものは、さらなる処理のために渡されない(例えば、0または対応する低い値に設定される)。実際には、変換が残差のサブセット上で動作するように、残差処理ブロックは、変換の前に、1つ以上の残差を「葬る」ように構成されている。
【0065】
残差処理ブロック310は、L2およびL1経路において同じであり得るか、またはそれらのストリームの異なる性質を反映するように異なって(または特定の経路内に含まれないように)構成され得る。
【0066】
特定の実施例は、異なる残差処理モードを実装し得る。残差モード選択ブロック140は、残差が処理されるべきかどうかを、およびある特定の実施形態では、実行される処理のタイプも、示し得る。一般に、エンコーダ(図1の低複雑性エンコーダまたは図3のエンコーダ300など)は、残差モードを選択および実施する残差モード制御構成要素140と、1つ以上の強化ストリームに関連して選択された残差モードの処理を実施する残差モード実施構成要素と、を備え得る。他の場合には、残差処理ブロック350のみが、(例えば、制御構成要素140などのより高いレベルの制御構成要素内の)より高い制御機能を伴わずに、各レベルの強化符号化内に提供され得る。この後者の場合、残差モード制御構成要素140の機能は、図1の第1および/または第2のエンコーダ115および121に組み込まれているとみなされ得る。
【0067】
実装され得る残差モードの例としては、以下に限定されないが、残差処理が実行されないモード、特定の残差が0または1で乗算されるバイナリモード、残差が重み付け係数で乗算される重み付けモード、特定のブロックまたは符号化単位が処理されない(例えば、2×2または4×4符号化単位内のすべての残差値を0に設定することと同等な)制御モード、残差がリスト内でランク付けされるか、または優先順位が与えられ、ランクまたは優先順位に基づいてさらなる処理のために選択されるランク付けまたは優先順位モード、残差符号化を構成するために使用されるスコアが残差に与えられるスコアリングモード、および残差および/またはピクチャ要素がカテゴリ化され、対応する残差が、カテゴリ化に基づいて修正またはフィルタリングされるカテゴリ化モードが挙げられる。
【0068】
本明細書に示されるように、残差が(例えば、図1の比較器110および/または119によって)計算されると、残差が処理されて、残差がどのように符号化され、伝送されるかを決定し得る。前述したように、残差は、画像信号の元の形態を、画像信号の再構成された形態と比較することによって計算される。例えば、ある場合には、L-2強化ストリームの残差は、画像信号の元の形態(例えば、図に示されるような入力ビデオ)からアップサンプリングの出力を除算することによって決定される。アップサンプリングへの入力は、シミュレートされた復号後の信号の再構成であると言うことができる。別の場合には、L-1強化ストリームの残差は、元の画像信号のダウンサンプリングされた形態(例えば、ダウンサンプリングの出力)から、ベースデコーダによって出力された画像ストリームを減算することによって決定される。
【0069】
例えば、選択された残差モードで残差を処理するために、残差がカテゴリ化され得る。例えば、残差モードを選択するため、および/または特定のモード内で事前処理を選択的に適用するために、残差がカテゴリ化され得る。残差のカテゴリ化プロセスは、例えば、入力画像の特定の空間特性および/または時間特性に基づいて、実行され得る。これが、入力ビデオ100から残差モード選択構成要素140への入力によって、図1に示されている。他の実施例では、入力は、ダウンサンプリングされたビデオおよび/または残差自体を含む、エンコーダ内の他の信号から到来し得る。
【0070】
一例では、各要素(例えば、画素、または複数の画素を含む領域)および/または要素のグループ(例えば、画素の2×2または4×4領域を含む符号化単位、または符号化単位のセットを含むタイル)について、その要素および/または要素のグループが、特定の空間特性および/または時間特徴を有するかどうかを判定するために、入力画像が処理される。例えば、それぞれの空間特性および/または時間特性に対して要素を分類する方法を決定するために、要素が、1つ以上の閾値に対して測定される。空間特性は、特定の要素または要素のグループ間の空間活性度のレベル(例えば、隣接する要素間にいくつの変化が存在するか)、または特定の要素間および/または要素のグループ間のコントラストのレベル(例えば、要素のグループが、要素の1つ以上の他のグループとどの程度異なるか)を含み得る。ある場合には、コントラストメトリックは、1つ以上の解像度でビデオのフレームについて計算され得、カテゴリ化のためのベースとして使用され得る。このコントラストメトリックは、ピクチャ要素ごとのレベル(例えば、残差要素ごとのレベルに対応する)で、および/またはグループレベル(例えば、タイル、符号化単位、または残差のブロックに対応する)で決定され得る。空間特性は、空間方向(例えば、2D平面画像の水平方向および/または垂直方向)のセット内の変化の尺度であり得る。時間特性は、特定の要素および/または要素のグループの時間的活性度(例えば、要素および/または要素のグループが、1つ以上の以前の、および/または将来のフレーム上に一緒に配置された要素および/または要素のグループの間で、どの程度異なるか)を含み得る。時間特性は、時間方向(例えば、時系列に沿って)における変化の尺度であり得る。特性は、要素および/または要素グループごとに決定され得るが、画素ごと、および/または2×2もしくは4×4の残差ブロックごと、および/またはタイル(例えば、残差ブロックのグループ)ごとであってもよい。さらなる実施形態では、テクスチャまたは詳細のレベルが使用され得る(例えば、どの程度の詳細が、要素または要素のグループによって表されるか)。テクスチャまたは詳細のレベルを示すテクスチャメトリックは、コントラストメトリックと同様の様式で決定され得る。本明細書に記載のメトリクックは、0~1、または0%~100%、または0~255(すなわち、8ビット整数)などの所定の範囲内で表されるように正規化され得る。タイルは、ピクチャ要素または残差の16×16のセット(例えば、2×2符号化単位の8×8セット、または4×4符号化単位の4×4セット)を含み得る。
【0071】
これらの空間特性および/または時間特性を組み合わせ、および/または重み付けして、要素のグループの複雑な尺度を決定し得る。場合によっては、本明細書に記載の複雑な尺度または他のメトリックは、符号化の前に(例えば、ビデオファイルの初期処理段階で)決定され、残差処理を適用するために、符号化段階で取得され得る。同様に、メトリックは、例えば、フレームまたは平面のグループについて、周期的に計算され得る。さらに、複数の異なるメトリックが記憶され、残差の異なるセットのために使用され得、例えば、異なるメトリックが、フレームの各平面について事前に計算され、残差のその平面についての後続の比較で使用され得る。
【0072】
例えば、要素のグループが静的である場合、視聴者が微小な詳細を見つけることはより容易であるため、時間的特性が重要であり、したがって、残差情報を保持することが重要であり得、例えば、特定の静的残差要素の優先度が、過渡的残差要素の比較セットよりも高くあり得ることに留意されたい。また、より高い解像度(例えば、L-2強化ストリーム)での元のビデオ記録におけるノイズ源は、多くの小さいが過渡的な残差値(例えば、-2もしくは-1、または1もしくは2の正規分布する値)をもたらし得、これらは、強化レベルエンコーダでの残差処理の前に、より低い優先度を与えられ、および/または0に設定され得る。
【0073】
カテゴリ化は、要素および/または要素のグループの空間特性および/または時間特性に基づいて、各要素および/または要素のグループにそれぞれの重みを関連付け得る。重みは、0~1の正規化された値であり得る。
【0074】
ある残差モードでは、残差の所与のセットを符号化および送信するかどうかについての決定がなされ得る。例えば、ある残差モードでは、特定の残差(および/または本明細書に記載の2×2もしくは4×4ブロックなどの残差ブロック)が、ランク付け構成要素および/または選択構成要素によって、L-2もしくはL-1強化処理パイプラインに沿って選択的に転送され得る。言い換えれば、異なる残差モードは、図1のL-2およびL-1符号化構成要素において異なる残差処理を有し得る。例えば、ある残差モードでは、特定の残差は、さらなるL-2またはL-1符号化のために転送され得ず、例えば、変換、量子化、およびエントロピ符号化され得ない。ある場合には、特定の残差は、残差値を0に設定することによって、および/または残差、もしくは残差を含むグループに関連する特定の制御フラグを設定することによって、転送され得ない。制御フラグについては、以下でより詳細に考察される。
【0075】
ある残差モードでは、例えば、上で考察された構成要素によって、0または1のバイナリ重みが、残差に適用され得る。これは、選択的残差処理が「オン」であるモードに対応し得る。このモードでは、0の重みは、特定の残差を「無視する」こと、例えば、強化パイプラインでのさらなる処理のためにそれらを転送しないことに対応し得る。別の残差モードでは、重み付けが存在し得ず(または重みが、すべての残差に対して1に設定され得る)、これは、選択的残差処理が「オフ」であるモードに対応し得る。さらに別の残差モードでは、0~1の正規化された重みが、残差、または残差のグループに適用され得る。これは、デコーダでビデオ信号を再構成するための重要性または「有用性」重みを示し得、例えば、1は、残差が通常の使用を有し、1未満の値は、残差の重要性を低減することを示す。他の場合には、正規化された重みは、別の範囲内にあり得、例えば、0~2の範囲は、1を超える重みを有する特定の残差を重要視し得る。
【0076】
上述の残差モードでは、残差および/または残差のグループは、割り当てられた重みで乗算され得、重みは、対応する要素のセットおよび/または要素のグループに適用されるカテゴリ化プロセスに従って、割り当てられ得る。例えば、ある場合には、各要素または要素のグループは、整数の所定のセットまたは所定の範囲の整数から選択される整数値によって表されるクラス(例えば、0~9の10クラス)を割り当てられ得る。次いで、各クラスは、対応する重み値(例えば、クラス0については0、クラス1については0.1、または何らかの他の非線形マッピング)を有し得る。クラスと重み値との間の関係は、例えば、デコーダでの、および/またはエンコーダ内での画質測定値に基づいて、分析および/または実験によって決定され得る。次いで、重みが、対応する残差および/または残差のグループ、例えば、要素および/または要素のグループに対応する残差および/または残差のグループを乗算するために使用され得る。ある場合には、この対応は、空間的であり得、例えば、残差が、特定の入力要素値に基づいて計算され、カテゴリ化が、特定の入力要素値に適用されて、残差のための重みを決定する。換言すれば、カテゴリ化は、入力画像の要素および/または要素のグループにわたって実行され得、入力画像は、ビデオ信号のフレームであり得るが、次いで、このカテゴリ化から決定される重みが、要素および/または要素のグループではなく、同一場所に配置された残差および/または残差のグループを重み付けするために使用される。このように、特徴付けは、符号化処理とは別の処理として行われ得るため、残差処理の符号化と並行して計算され得る。
【0077】
修正する適切な残差を識別するために、プロセスは、残差のセットを分析し、特性またはパターンを識別し得る。代替的に、プロセスは、残差のそのセットに対応する元の入力信号を分析してもよい。さらに、プロセスは、残差のそのセット(または修正されたセット)によって再構成された画像への影響を予測し得る。予測は、残差を、より低いレベルからの信号と組み合わせることによって画像を再構成することと、再構成された信号を分析することと、適宜にまたは反復的に残差を処理することと、を含み得る。
【0078】
残差値を0に設定することによって、および/または残差もしくは残差を含むグループに関連する特定の制御フラグを設定することによって、特定の残差を転送され得なくする方法が、上記で説明された。後者の場合、各々が残差の要素または要素のグループに対応する、フラグまたはバイナリ識別子のセットが使用され得る。各残差は、フラグのセットと比較され、フラグに基づいて変換されることを防止され得る。このように、残差処理は、非破壊的であり得る。あるいは、残差は、フラグに基づいて削除され得る。フラグのセットは、各セットまたは残差を独立して処理することを要することなく、残差または残差のグループに対して繰り返し使用され得、参照として使用され得るので、さらに有利である。例えば、各フレームは、残差が処理および符号化されるべきかどうかを示すマスクとして機能するバイナリビットマップを有し得る。この場合、1の対応するマスク値を有する残差のみが、符号化され得、0の対応するマスク値を有する残差は、一括して0に設定され得る。
【0079】
ランク付けおよびフィルタリングモードでは、残差のセットは、優先順位またはランクを割り当てられ得、優先順位またはランクが閾値と比較されて、どの残差が選択解除されるまたは「葬られる」べきかを決定する。閾値は、事前に決定され得るか、または所望の画質、伝送速度、もしくは計算効率に従って可変であり得る。例えば、優先順位またはランクは、例えば、0~1の浮動小数点値もしくは0~255の整数値など、所与の範囲内の値であり得る。範囲の上限(例えば、1または255)は、最高のランクまたは優先順位を示し得る。この場合、閾値は、範囲内の値として設定され得る。比較において、閾値を下回る対応するランクまたは優先度値を有する残差は、選択解除され得る(例えば、0に設定される)。
【0080】
図3のエンコーダに対応する復号プロセスを実行するデコーダ400が、図4のブロック図に示されている。復号プロセスは、破線によって示されるように、2つに分割されている。破線の下には、ハードウェアで有用に実装され得るデコーダ400のベースレベルがある。破線の上には、ソフトウェアで有用に実装され得る強化レベルがある。デコーダ400は、必要に応じて、強化レベルプロセスのみ、またはベースレベルプロセスと強化レベルプロセスとの組み合わせを備え得る。デコーダ400は、特に強化レベルで、ソフトウェアで有用に実装され得、レガシーな復号技術、特にレガシーなハードウェア技術の上に好適に鎮座し得る。レガシーな技術とは、既に市場に存在し、交換するのに不便および/または高価であり、依然として信号を復号する目的を果たし得る、以前に開発および販売されたより古い技術を意味する。他の場合には、ベースレベルは、任意の既存および/または将来のビデオ符号化ツールまたは技術を含み得る。
【0081】
一般的なレベルでのデコーダトポロジは以下の通りである。デコーダ400は、符号化されたベースストリーム、符号化されたレベル1ストリーム、および符号化されたレベル2ストリームを含む1つ以上の入力信号を、さらなる復号情報を含む任意選択のヘッダとともに受信するための入力(図示せず)を備える。デコーダ400は、ベースレベルのベースデコーダ420と、強化レベルの処理ブロック400-1および400-2と、を備える。アップサンプラ405Uが、処理ブロック400-1と、処理ブロック400-2との間に提供され、処理ブロック400-1によって出力される信号のアップサンプリングされたバージョンを処理ブロック400-2に提供する。ベースデコーダ420は、図2のベースデコーダ210に対応し得、処理ブロック400-1は、図2の第1のデコーダ211に対応し得、処理ブロック400-2は、図2の第2のデコーダ214に対応し得、アップサンプラ405Uは、図2のアップサンプラ213に対応し得る。
【0082】
デコーダ400は、1つ以上の入力信号を受信し、エンコーダ300によって生成された3つのストリームを方向付ける。符号化されたベースストリームは、エンコーダ300で使用されるベースコーデック420に対応し、ベースレベルで符号化プロセスを逆転させるように作用するベースデコーダ420に向けられ、ベースデコーダ420によって復号される。符号化されたレベル1ストリームは、デコーダ400のブロック400-1によって処理され、エンコーダ300によって作成された残差の第1のセットを再作成する。ブロック400-1は、エンコーダ300内の処理ブロック300-1に対応し、ベーシックレベルで、ブロック300-1の処理を逆転させるか、または実質的に逆転させるように作用する。ベースデコーダ420の出力が、符号化されたレベル1ストリームから取得された残差の第1のセットと組み合わされる。組み合わされた信号が、アップサンプラ405Uによってアップサンプリングされる。符号化されたレベル2ストリームが、ブロック400-2によって処理され、エンコーダ300によって作成されたさらなる残差を再作成する。ブロック400-2は、エンコーダ300の処理ブロック300-2に対応し、ベーシックレベルで、ブロック300-2の処理を逆転させるか、または実質的に逆転させるように作用する。アップサンプラ405Uからのアップサンプリングされた信号が、符号化されたレベル2ストリームから得られたさらなる残差と組み合わされて、入力信号30のレベル2再構成を生成する。処理ブロック400-2の出力は、図2の復号されたビデオ250と同様の復号されたビデオとみなされ得る。
【0083】
上述のように、強化ストリームは、2つのストリーム、すなわち、符号化されたレベル1ストリーム(第1のレベルの強化)および符号化されたレベル2ストリーム(第2のレベルの強化)を含み得る。符号化されたレベル1ストリームは、補正データのセットを提供し、この補正データのセットが、ベースストリームの復号されたバージョンと組み合わされて、補正されたピクチャを生成し得る。
【0084】
図5は、図1のエンコーダ300をより詳細に示す。符号化されたベースストリームは、ベースエンコーダ320Eによって直接作成され、必要に応じて、量子化およびエントロピ符号化され得る。場合によっては、これらの後者のプロセスは、ベースエンコーダ320Eによる符号化の一部として実行され得る。符号化されたレベル1ストリームを生成するために、符号化されたベースストリームが、エンコーダ300で復号される(すなわち、ベース復号ブロック320Dにおいて復号演算が、符号化されたベースストリームに適用される)。ベース復号ブロック320Dは、エンコーダ300のベースレベルの一部として示され、対応するベース符号化ブロック320Eとは別個に示されている。例えば、ベースデコーダ320Dは、ベースコーデックを有するベースエンコーダ320Eの形態で、符号化構成要素を補完する復号構成要素であってもよい。他の実施例では、ベース復号ブロック320Dは、代わりに、強化レベルの一部であり得、特に、処理ブロック300-1の一部であり得る。
【0085】
図5に戻ると、ベース復号ブロック320Dから出力される復号されたベースストリームと、ダウンサンプリングされた入力ビデオとの間の差異が作成される(すなわち、減算処理310-Sが、ダウンサンプリングされた入力ビデオおよび復号されたベースストリームに適用されて、残差の第1のセットを生成する)。ここで、残差という用語は、当該技術分野において既知のものと同様に使用され、すなわち、残差は、参照信号またはフレームと、所望の信号またはフレームとの間の誤差または差異を表す。ここで、参照信号またはフレームは、復号されたベースストリームであり、所望の信号またはフレームは、ダウンサンプリングされた入力ビデオである。したがって、第1の強化レベルで使用される残差は、その残差が、将来の復号されたベースストリームを、ベース符号化演算で使用されたダウンサンプリングされた入力ビデオのより近い近似となるように「補正」することができるので、補正信号とみなされ得る。これは、ベースコーデックの癖または他の特異性を補正し得るので、有用である。これらには、特に、ベースコーデックによって適用される動き補償アルゴリズム、ベースコーデックによって適用される量子化およびエントロピ符号化、ならびにベースコーデックによって適用されるブロック調整が挙げられる。
【0086】
図3のブロック300-1の構成要素が、図5により詳細に示されている。特に、残差の第1のセットが、変換され、量子化され、エントロピ符号化されて、符号化されたレベル1ストリームを生成する。図5では、変換演算310-1が、残差の第1のセットに適用され、量子化演算320-1が、残差の変換されたセットに適用されて、量子化された残差のセットを生成し、エントロピ符号化演算330-1が、残差の量子化されたセットに適用されて、第1のレベルの強化で符号化されたレベル1ストリームを生成する。しかしながら、他の実施例では、量子化ステップ320-1のみが実行され得るか、または変換ステップ310-1のみが実行され得ることに留意されたい。エントロピ符号化は、使用されなくてもよいか、または任意選択で、変換ステップ110-1および量子化ステップ320-1のうちの一方または両方に追加して使用されてもよい。エントロピ符号化演算は、ハフマン符号化演算、またはランレングス符号化(RLE)演算、またはハフマン符号化演算とRLE演算との両方の組み合わせなど、任意の好適なタイプのエントロピ符号化であり得る。残差処理演算350-2、350-1は、特定の実施形態では、変換演算310-2、310-1のいずれか、またはその両方の前に、提供され得る。残差処理演算350は、例えば、受信された残差のサブセットのみを変換演算310に渡す(または、言い換えれば、元の値が、パイプラインの後続の演算内で処理されないように、特定の残差値をゼロに設定する)ために、ブロックによって受信された残差をフィルタリングするなど、本明細書に記載されるような残差事前処理を適用する。
【0087】
上述のように、強化ストリームは、符号化されたレベル1ストリーム(第1のレベルの強化)と、符号化されたレベル2ストリーム(第2のレベルの強化)を含み得る。第1のレベルの強化は、ベースレベルで、補正されたビデオを可能にする、すなわち、例えば、エンコーダおよび/またはデコーダのアーチファクトを補正することを可能にするとみなされ得る。第2のレベルの強化は、補正されたビデオを元の入力ビデオまたはそれに近い近似に変換する(例えば、詳細または鮮明さを追加する)ために使用可能な、さらなるレベルの強化であるとみなされ得る。例えば、第2のレベルの強化は、ダウンサンプリング中に失われた細かい詳細を追加し得、および/または変換演算310-1および量子化演算320-1のうちの1つ以上によって導入されたエラーからの補正に役立ち得る。
【0088】
図3および図5を参照すると、符号化されたレベル2ストリームを生成するために、ブロック300-2において、残差のさらなるセットを生成および符号化することによって、さらなるレベルの強化情報が作成される。残差のさらなるセットは、復号されたベースストリームの補正されたバージョンの(アップサンプラ305Uを介して)アップサンプリングされたバージョン(参照信号またはフレーム)と、入力信号30(所望の信号またはフレーム)との間の差異である。
【0089】
デコーダ400で生成されるような復号されたベースストリームの補正されたバージョンの再構成を達成するために、ブロック300-1の処理ステップの少なくとも一部が、デコーダ200のプロセスを模倣し、変換および量子化プロセスの少なくともいくつかの損失および癖に対処するように、逆転される。このために、ブロック300-1は、逆量子化ブロック320-1iと、逆変換ブロック310-1iと、を備える。残差の量子化された第1のセットが、逆量子化ブロック320-1iで逆量子化され、エンコーダ100内の逆変換ブロック310-1iで逆変換されて、残差の第1のセットのデコーダ側バージョンを再生成する。
【0090】
デコーダ320Dからの復号されたベースストリームが、残差の第1のセットのこの改善されたデコーダ側バージョンと組み合わされる(すなわち、合計演算310-Cが、復号されたベースストリームおよび残差の第1のセットのデコーダ側バージョンに対して実行される)。合計演算310-Cは、デコーダでおそらく生成されるような、入力ビデオのダウンサンプリングされたバージョンの再構成-すなわち、再構成されたベースコーデックビデオ)を生成する。図3および図5に示されるように、次いで、再構成されたベースコーデックビデオが、アップサンプラ305Uによってアップサンプリングされる。
【0091】
次いで、アップサンプリングされた信号(すなわち、参照信号またはフレーム)が、入力信号30(すなわち、所望の信号またはフレーム)と比較され、残差の第2のセットを生成する(すなわち、差異演算300-Sが、アップサンプリングされた再作成されたストリームに適用されて、残差のさらなるセットを生成する)。次いで、残差の第2のセットが、ブロック300-2で処理されて、符号化されたレベル2ストリームとなる(すなわち、次いで、符号化演算が、残差のさらなるまたは第2のセットに適用されて、符号化されたさらなるまたは第2の強化ストリームを生成する)。
【0092】
特に、残差の第2のセットが、変換される(すなわち、変換演算310-2が、残差のさらなるセットに対して実行されて、残差のさらなる変換されたセットを生成する)。次いで、変換された残差が、残差の第1のセットに関して上述した様式で、量子化およびエントロピ符号化される(すなわち、量子化演算320-2が、残差の変換されたセットに適用されて、量子化された残差のさらなるセットを生成し、エントロピ符号化演算320-2が、残差の量子化されたさらなるセットに適用されて、さらなるレベルの強化情報を含む符号化されたレベル2ストリームを生成する)。しかしながら、量子化ステップ20-1のみが実行されてもよいか、または変換および量子化ステップのみ。エントロピ符号化は、任意選択で、追加して使用され得る。好ましくは、エントロピ符号化演算は、ハフマン符号化演算、またはランレングス符号化(RLE)演算、またはこれらの両方であり得る。ブロック300-1と同様に、残差処理演算350-2は、このブロックの符号化演算の前に、残差を事前処理する、すなわち、フィルタリングするように作用する。
【0093】
したがって、図3ならびに図5に示すように、および上述したように、符号化プロセスの出力は、ベースレベルでのベースストリーム、および好ましくは、第1のレベルの強化およびさらなるレベルの強化を含む強化レベルでの1つ以上の強化ストリームである。先の実施例を参照して考察されたように、ブロック間依存性がないため、図5の演算は、フレームの色成分の符号化単位またはブロックと並行して適用され得る。色成分のセット内の各色成分の符号化も、(例えば、図5の演算が、(フレーム数)*(色成分の数)*(フレーム当たりの符号化単位の数)に従って繰り返されるように)並行して実行され得る。また、異なる色成分は、フレームごとに異なる数の符号化単位を有し得、例えば、人間の視覚は、色の変化よりも明るさの変化をより多く検出し得るため、輝度(例えば、Y)成分は、色度(例えば、UまたはV)成分のセットよりも高い解像度で処理され得ることに留意されたい。
【0094】
符号化されたベースストリームおよび1つ以上の強化ストリームが、デコーダ400で受信される。図6は、図4のデコーダをより詳細に示す。
【0095】
符号化されたベースストリームは、エンコーダ300で受信された入力信号30のベース再構成を生成するために、ベースデコーダ420で復号される。このベース再構成は、実際には、より低い品質レベルで信号30の視認可能なレンディションを提供するために使用され得る。しかしながら、このベース再構成信号の主な目的は、入力信号30のより高品質なレンディションのためのベースを提供することである。そのために、復号されたベースストリームが、処理ブロック400-1に提供される。処理ブロック400-1はまた、符号化されたレベル1ストリームを受信し、エンコーダ300によって適用された任意の符号化、量子化、および変換を逆転する。ブロック400-1は、エントロピ復号プロセス430-1と、逆量子化プロセス420-1と、逆変換プロセス410-1と、を備える。任意選択で、これらのステップのうちの1つ以上のみが、エンコーダにおいて対応するブロック300-1で実行された演算に応じて、実行され得る。これらの対応するステップを実行することによって、残差の第1のセットを含む復号されたレベル1ストリームが、デコーダ400で利用可能にされる。残差の第1のセットが、ベースデコーダ420からの復号されたベースストリームと組み合わされる(すなわち、合計演算410-Cが、復号されたベースストリームおよび残差の復号された第1のセットに対して実行されて、入力ビデオのダウンサンプリングされたバージョンの再構成、すなわち、再構成されたベースコーデックビデオを生成する)。図4および図6に示されるように、次いで、再構成されたベースコーデックビデオが、アップサンプラ405Uによってアップサンプリングされる。
【0096】
さらに、任意選択で並行して、符号化されたレベル2ストリームが、残差の復号されたさらなるセットを生成するために、図2のブロック400-2で処理される。処理ブロック300-2と同様に、処理ブロック400-2は、エントロピ復号プロセス430-2と、逆量子化プロセス420-2と、逆変換プロセス410-2と、を備える。もちろん、これらの演算は、エンコーダ300内のブロック300-2で実行されるものに対応し、これらのステップのうちの1つ以上が、必要に応じて省略され得る。ブロック400-2は、残差のさらなるセットを含む復号されたレベル2ストリームを生成し、これらが、入力信号30のレベル2再構成を作成するために、アップサンプラ405Uからの出力と演算400-Cで合計される。レベル2再構成は、図2の250などの出力復号ビデオとみなされ得る。特定の実施例では、アップサンプラ405Uに渡される再構成されたビデオを取得し、視聴することも可能であり得、この再構成されたビデオは、第1のレベルの強化を有するが、レベル2の再構成よりも低い解像度であり得る。
【0097】
したがって、上記で例示および説明されたように、復号プロセスの出力は、(任意選択の)ベース再構成と、より高いレベルの元の信号の再構成と、である。この実施例は、異なるフレーム解像度で符号化および復号されたビデオを作成するのに特に適している。例えば、入力信号30は、1920×1080の解像度のフレームを含むHDビデオ信号であり得る。場合によっては、ベース再構成およびレベル2再構成の両方が、ディスプレイデバイスによって使用され得る。例えば、ネットワークトラフィックの場合、レベル2ストリームは、レベル1ストリームおよびベースストリームよりも大きな程度で中断され得る(レベル2ストリームは、ダウンサンプリングが各方向の次元数を2ずつ減少させるデータを最大4倍の量含み得るため)。この場合、トラフィックが発生すると、ディスプレイデバイスは、レベル2ストリームが中断されている間(例えば、レベル2再構成が利用できない間)、ベース再構成を表示することに戻り、ネットワーク状態が改善されたときに、レベル2再構成を表示することに戻り得る。復号デバイスがリソースの制約を被っているとき、同様のアプローチが適用され得、例えば、システムの更新を実行するセットトップボックスは、ベース再構成を出力するためのオペレーションベースデコーダ220を有し得るが、レベル2再構成を計算するための処理能力を有さないことがある。
【0098】
また、符号化構成は、ビデオ配信者が異種デバイスのセットにビデオを配信することを可能にし、ベースデコーダ220のみを有するデバイスは、ベース再構成を視聴する一方、強化レベルを有するデバイスは、より高品質のレベル2再構成を視聴し得る。比較事例では、デバイスの両方のセットにサービスするために、別々の解像度の2つのフルビデオストリームが必要であった。レベル2およびレベル1の強化ストリームが、残差データを符号化するので、レベル2およびレベル1の強化ストリームは、より効率的に符号化され得、例えば、残差データの分布は、典型的には、それらの質量の大部分を0の周りに有し(すなわち、差異がない)、典型的には、小さな範囲の約0の値を取る。これは、特に、量子化後の場合であり得る。対照的に、異なる解像度のフルビデオストリームは、デコーダへの送信のためにより高いビットレートを必要とする、非ゼロの平均または中央値を有する異なる分布を有するであろう。
【0099】
図4および図6の実施例によって分かるように、残差モードが、エンコーダで適用され得、デコーダは、任意の追加の残差処理を必要としない場合がある。しかしながら、残差処理がエンコーダで適用されると、デコーダで受信されるレベル1および/またはレベル2の強化ストリームは、エンコーダで残差処理が適用されない比較事例と異なる場合がある。例えば、残差処理が適用されると、例えば、本明細書に記載の実施例のいずれかのように、レベル1および/またはレベル2の強化ストリームは、典型的には、エントロピ符号化段階によってより効率的に圧縮され得るより多くの数の0値を含むであろう。
【0100】
図7は、上記に説明され例示された符号化プロセスの実装例を示す。明確に識別可能であるように、ストリームの符号化および復号ステップ、および詳細に拡張された。
【0101】
一般に、これらのステップは、残差フィルタリングモードステップと、変換ステップと、量子化ステップと、エントロピ符号化ステップと、を含む。符号化プロセスは、残差フィルタリングモードが選択されているかどうかを識別する。残差フィルタリングモードは、残差ランク付けの形態を含み得る。最低レベルでは、ランク付けはバイナリであり得、例えば、残差は、0または1のいずれかとしてランク付けされ得、残差が0にランク付けされた場合、残差はさらなる処理のために選択され得ず、1にランク付けされた残差のみが、さらなる処理のために渡され得る。他の場合には、ランク付けは、より多くのレベルに基づき得る。残差モードが選択されている場合、残差フィルタリングステップが実行され得る(例えば、残差ランク付け演算が、残差の第1のステップに対して実行され、残差のランク付けされたセットを生成し得る)。残差のランク付けされたセットは、すべての残差が第1の強化ストリーム(または補正ストリーム)内に符号化されないように、フィルタリングされ得る。場合によっては、ランク付けおよびフィルタリングのステップは、単一のステップに組み合わされ得、すなわち、いくつかの残差値がフィルタリングで除去される一方で、他の残差値は、符号化のために渡される。
【0102】
図7の実施例では、1つ以上の強化レベル内で符号化する前に残差値が処理されるように、残差モードが適用される場合、残差処理の結果(例えば、残差の修正されたセット)が、変換され、量子化され、エントロピ符号化されて、符号化されたレベル1またはレベル2ストリームを生成する。残差モードが選択されない場合、残差値は、変換、量子化、およびエントロピ符号化のための残差処理構成要素を通過し得る。
【0103】
上述のように、一般に、変換された係数ではなく、残差を「葬る」ことが好ましい。これは、例えば、ランクまたは他のカテゴリ化に基づいて残差をフィルタリングすることによって、早い段階で残差を処理することは、値が0に設定され、後のより計算コストの高い段階での計算を単純化し得ることを意味するからである。さらに、場合によっては、残差モードは、ブロックまたはタイルレベルで設定され得る。この場合、残差プロ処理(すなわち、残差モード)は、特定の符号化単位に対応するすべての残差値に対して、または符号化単位の特定のグループに対して選択され得る。ブロック間依存性がないため、特定の残差値が事前処理される一方、他の残差値が事前処理されないかどうかは、問題ではない。ブロックまたはタイルのレベルで残差モードを選択することが可能であることが、提案される符号化スキームの柔軟性を高める。
【0104】
残差を修正することに加えて、またはその代わりに、後続の量子化ステップの量子化パラメータが修正され得ることがさらに企図される。特定の実施例では、残差が変換されることを防止する閾値に応じて、量子化器のデッドゾーンが修正され得る。デッドゾーンは、値が量子化されないスペクトルの領域である。このデッドゾーンは、閾値からの距離に対応し得るか、または(例えば、ステップ幅の)乗数であり得る。さらなる実施例では、量子化器のステップ幅は、処理に基づいて修正され得る。
【0105】
同様に、量子化演算からのフィードバックメカニズムが、残差処理演算に影響を与え得る。例えば、変換係数が量子化されないか、またはゼロに量子化される場合、変換係数の基礎となる残差は、変換される必要はなく、選択解除され得る。
【0106】
さらなる実施例では、(例えば、図に示される量子化演算320に追加して、およびその前に)量子化の第1の段階が残差に対して実行される「事前量子化」演算が実行され得る。残差の修正が、「事前量子化」を含んでもよく、あるいはさらなる修正が、(事前)量子化された残差に対して実行されてもよい。さらなる量子化演算が、ブロック320における残差の修正後に実行されてもよい。場合によっては、「事前量子化」は、デッドゾーンを適用することも含み得、デッドゾーンは、(例えば、所与の残差要素および/または残差要素のグループについて決定される)量子化ステップ幅に基づいて、構成可能であり得る。事前量子化のより詳細が、図11の文脈において、以下に提供される。
【0107】
図7は、符号化パイプライン内の1つ以上の後の段階で残差モードを適用するために使用され得る残差モード制御ブロック360-1を示す。ここで、残差モード制御は、L1経路内にのみ示されているが、L2経路内にも構成され得る。残差モード制御ブロック360-1は、好ましくは、量子化320-1ブロックと、エントロピ符号化330-1ブロックとの間に位置付けられる。この場合、残差値は、残差モード選択ブロック350-1でカテゴリ化され、ランク付けされ、および/またはスコアを割り当てられ得るが、残差値の修正は、残差モード選択ブロック350-1よりも後に行われてもよい。図には示されていないが、残差モード制御ブロック360-1は、変換演算310-1および量子化演算320-1のうちの1つ以上を制御し得る。ある場合には、残差モード選択ブロック350-1は、(例えば、上述のように)残差要素のための制御フラグを設定し得、これらの制御フラグは、変換演算310-1および量子化演算320-1、または量子化演算320-1の後のさらなる演算のうちの1つ以上を制御するために、残差モード制御ブロック360-1によって使用され得る。ある場合には、すべての残差値が、変換演算310-1および量子化演算320-1によって処理され得るが、残差モード制御ブロック360-1を介してフィルタリングされ、重み付けされ、および/またはゼロに設定され得る。別の場合には、残差モードがアクティブにされない場合と比較して、量子化演算320-1が、残差値のより大きな割合を効果的にゼロに設定するように、量子化演算320-1は、残差のランクまたは優先順位(バイナリのランクおよび優先順位を含む)に基づいて、より粗いレベルの量子化を適用するように、構成され得る。
【0108】
残差モード制御ブロック360-1はまた、任意選択で、ある程度のフィードバックを提供し、処理の効果を求めて残差を分析し、処理が適切な効果を有しているかどうか、または処理が調整されるべきかどうかを判定する。
【0109】
図8は、残差モードが適用されている実施例800を示す。実施例800は、分類(すなわち、カテゴリ化)および重み付けが適用される実施例に関する。本実施例を参照して説明される概念は、他の残差モードにも部分的に適用され得る。この実施例は、L-2ストリームに関するが、構成要素の同様のセットが、L-1ストリームに提供されてもよい。この実施例は、2×2符号化単位を参照して説明されるが、他の符号化単位および/または画素のグルーピングが使用されてもよい。入力画像要素801のセット(画素値iijとして示され、例えば、これらは、YUVまたはRGBのうちの1つなどの特定の色成分を表す16ビットもしくは8ビットの整数であり得、iは画像行を示し、jは画像列を示す)は、分類プロセス802を介して分類され、(例えば、5つのクラスを表す0~4の整数範囲で)クラス指示のセット803を生成する。クラスは、コントラストおよび/またはテクスチャのレベルを示し得る。他の実施例では、「クラス」は、画素または残差のグルーピングのためのコントラストおよび/またはテクスチャメトリックなどのメトリックの範囲を含み得る。
【0110】
図8では、次いで、クラス指示803が、重みマッピング構成要素804によって使用され、クラス指示803と関連付けられた重みのセット805を取得し得る。この簡単な実施例では、重みは、0~1の値のセットである。各クラスは、ルックアップテーブルから取得され得る、関連付けられた重みを有し得る。他の場合には、各重みは、クラスまたはメトリック値の関数であり得る(例えば、一例として、図8における重みは、クラス値の十分の一であるが、クラス値と重みとの間の関係は、ルックアップテーブルによって設定されるような任意の関係であり得る)。
【0111】
同時に、図8では、再構成されたアップサンプリングされた要素806のセット(要素uijして示される)が、減算構成要素807によって、入力画像要素801から減算されて、残差の初期セット808(要素rijとして示される)を生成する。図に示されるように、残差値の各符号化単位またはブロックは、ピクチャ要素および/または特定の解像度での再構成されたピクチャ要素の対応する符号化単位またはブロックと関連付けられ得る(レベル1の残差については、同様のプロセスが適用され得るが、ピクチャ要素は、ダウンサンプリングされた画素に対応し得る)。次いで、残差808および重みのセット805が、残差808を重みのセット805で乗算して、修正された残差(r’ijとして示される)のセット810を出力する重み乗算構成要素809に入力される。見て分かるように、0の重みは、残差のサブセットを0に設定するように作用し得る(812を参照)。このように、図8の実施例では、元の残差値r10は、さらなる処理に渡されず、代わりに、0に設定される。非ゼロの重みが適用された残差(811など)は、さらなる処理のために渡されるが、修正されている。バイナリ重み(例えば、2つのクラス)を有する単純なケースでは、1の重みは、残差値が修正なしで処理されることを示し得る。非ゼロの重みは、残差が符号化される方法を修正する様式で、残差を修正し得る。例えば、ブロック802における分類は、画像分類を含み得、それによって、残差は、特定の画素の画像分類に基づいて修正される。別の場合には、ブロック802における分類は、輝度およびコントラストのうちの1つ以上に基づいて、画像値801を特定のグルーピングに割り当てることを含み得る。他の実施例では、ブロック802における分類は、4つの要素の符号化単位のために単一のクラスおよび重みを選択し得る。
【0112】
場合によっては、特徴付けが、エンコーダから離れた位置で実行され、エンコーダに通信され得る。例えば、事前に録画された映画またはテレビ番組が、(例えば、分類802および重みマッピング804を適用することによって)一度処理され、残差のセットまたは残差のグループのための重みのセット805を決定し得る。これらの重みは、ネットワークを介してエンコーダに通信され得、例えば、これらの重みは、以下でより詳細に説明されるように、図9A図9Cを参照して説明される残差マスクを含み得る。
【0113】
ある場合には、残差を重み付けする代わりに、または残差を重み付けするだけでなく、残差が、カテゴリ化プロセスから導出された1つ以上の閾値と比較され得る。例えば、カテゴリ化プロセスは、重みおよび閾値の関連付けられたセットか、または閾値の関連付けられたセットのみを有するクラスのセットを決定し得る。この場合、残差が、決定された閾値と比較され、特定の1つ以上の閾値を下回る残差は、廃棄されて、符号化されない。例えば、追加の閾値処理が、図8からの修正された残差に適用され得、および/または重みマッピング804および重み乗算809段階が、閾値マッピングおよび閾値適用段階に置き換えられ得る。一般に、この実施例の両方のケースでは、残差が、カテゴリ化プロセスに基づいて、さらなる処理のために修正され、カテゴリ化プロセスは、対応する画像要素に適用され得る。
【0114】
図8に例示されたあれに留意されたい、ある特定の実装例では、ローカル分類ステップは、任意選択であり得る(例えば、点線によって示されるように)。この場合、クラス指示803および重みのセット805のうちの1つ以上が、ローカルプロセスによって(例えば、リモート位置からおよび/または記憶されたファイルから)取得され得る。
【0115】
残差モード処理の上述の方法は、エンコーダで適用され得るが、デコーダでは適用され得ない。したがって、これは、通信を改善するために、エンコーダにおける増加したリソースを考慮し得る非対称符号化の一形態を表す。例えば、残差は、エンコーダとデコーダとの間で送信されるデータのサイズを低減するように重み付けされ得、制約されたビットレートのための品質の向上を可能にする(例えば、廃棄される残差が、デコーダでの低下した検出可能性を有する場合)。残差重み付けは、変換および量子化に複雑な影響を及ぼし得る。したがって、残差重みは、変換および量子化演算を制御するように、例えば、特定の利用可能な帯域幅を与えられたビットストリームを最適化するように適用され得る。
【0116】
特定の実施例では、エンコーダ(または符号化プロセス)は、1つ以上のリモートデバイスと通信し得る。図9Aは、(図中のクラウドによって表される)ネットワーク910を介して通信するエンコーダ900を示す。エンコーダは、例えば、図1の低複雑性エンコーダ、または図3図5、もしくは図7のうちのいずれかのエンコーダ300など、先の図からのエンコーダのいずれかの実装を含み得る。ある場合には、エンコーダ900は、ネットワーク910を介して構成データを受信し、および/またはネットワーク910を介して構成データを送信し得る。図9Aの実施例では、エンコーダは、エンコーダパラメータおよび残差マスクのうちの1つ以上を受信する。エンコーダパラメータは、エンコーダ900を制御する1つ以上のパラメータの値を含み得る。ある場合には、エンコーダパラメータは、ベースエンコーダ、レベル1ストリームのための処理構成要素、およびレベル2ストリームのための処理構成要素のうちの1つ以上のためのパラメータを含み得る。エンコーダパラメータは、各ストリームのためのストリーム解像度、量子化、シーケンス処理、ビットレート、およびコーデックのうちの1つ以上を構成するために使用され得る。残差マスクは、残差のセットに適用するため、例えば、残差の2×2または4×4のグルーピング(すなわち、ブロック)に適用するための、例えば、0~1の重み付けを含み得る。残差マスクは、図8のクラス指示803および重みのセット805のうちの1つに類似し得る。残差マスクは、残差ごと、または残差グループ(例えば、符号化単位またはブロック)ごとのレベルで適用され得る。残差マスクは、ビデオの各フレームの表面として提供され得る(それによって、異なる色成分のための複数の表面が存在し得る)。マスクがグループレベルで適用される場合、任意の受信された表面は、低減された解像度であり得る(例えば、2×2の符号化ブロックの場合、マスクは、残差重み値を含む半解像度のビデオを含み得る)。残差マスクは、ブロックのデコーダへの配信のための、および/または符号化するための優先順位を示し得る。別の場合には、残差マスクは、ブロックの処理を制御する重み付けを含み得、例えば、特定のブロックは、視覚的に強化または重み付けされ得る。重み付けは、残差の1つ以上のブロックに適用されたクラス(例えば、ラベルまたは数値)に基づいて設定され得る。場合によっては、残差マスクは、残差値を符号化するかどうかを示すバイナリマスク(例えば、バイナリビットマップ)であり得る。
【0117】
場合によっては、エンコーダは、複数のビットレートで符号化を実行するように適合され得る。この場合、エンコーダパラメータは、複数のビットレートの各々に供給され得る。場合によっては、ネットワークから受信される構成データは、フレームデータごとおよびブロックデータごとに、グローバル構成データのうちの1つ以上として提供され得る。実施例では、残差マスクおよび時間的シグナリングが、フレームごとのベースで提供され得る。例えば、複数のビットレートが、通信チャネルの利用可能な容量、例えば、測定された帯域幅、および/または所望の使用、例えば、10Mbpsダウンリンクチャネルのうちの2Mbpsの使用などに基づいて設定され得る。
【0118】
エンコーダ900から通信される構成データは、ベースコーデックタイプ、必要なビットレートのセット、およびシーケンス情報のうちの1つ以上を含み得る。ベースコーデックタイプは、処理の現在のセットに使用されるベースエンコーダのタイプを示し得る。場合によっては、異なるベースエンコーダが利用可能であり得る。ある場合には、ベースエンコーダが、受信されたベースコーデックタイプパラメータに基づいて選択され得、別の場合には、ベースコーデックタイプが、エンコーダ内のローカル処理に基づいて選択されて、ネットワークを介して通信され得る。必要とされるビットレートのセットは、ベースストリームおよび2つの強化ストリームのうちの1つ以上を符号化するために使用される1つ以上のビットレートを示し得る。異なるストリームは、異なる(またはそれぞれの)ビットレートを使用し得る。強化ストリームは、利用可能である場合、追加の帯域幅を使用し得、例えば、帯域幅が利用できない場合、帯域幅は、符号化されたベースストリームおよびレベル1ストリームによって使用されて、所与のビットレートにおける第1のレベルの品質を提供し得、符号化されたレベル2ストリームは、次いで、第2のビットレートを使用して、さらなる改善を提供し得る。このアプローチはまた、ベースストリームおよびレベル1ストリームの代わりに、ベースストリームおよびレベル2ストリームに異なって適用され得る。本明細書に記載の残差処理は、強化ストリームのうちの1つ以上のビットレートを制御するために、ビットレートパラメータとともに使用され得る。
【0119】
ある場合には、ネットワークを介して受信されたエンコーダパラメータは、エンコーダによって適用される残差モードのうちの1つ以上を示し得る。この場合もやはり、残差モードは、フレームごと、タイルごと、および/またはブロックもしくは符号化単位ごとのレベルで設定され得る。エンコーダパラメータは、各ストリームのモードを個別に示し得るか、または両方の強化ストリームの共通モードを示し得る。残差モードパラメータは、本明細書に記載の残差モード選択構成要素によって受信され得る。場合によっては、残差モード選択構成要素は省略され得、残差モードパラメータは、エンコーダの他の構成要素によって直接受信され得、例えば、本明細書の実施例の構成要素は、エンコーダのクラウドインターフェースから残差モードパラメータを受信し得る。場合によっては、各残差モードは、整数値によって示され得る。残差モードは、どの形態の残差(事前)処理が適用されるべきかを示し得る。
【0120】
ある場合には、エンコーダ900は、リモートまたはクラウド構成に関連する異なる構成設定を有し得る。「デフォルト」モードであり得るあるモードでは、エンコーダ900は、ネットワークを介してリモートプログラム呼び出しを行い、本明細書に記載されるように、符号化を実行するための初期構成パラメータを取得するように構成され得る。「カスタム」モードであり得る別のモードでは、エンコーダ900は、特定のユーザー構成、例えば、エンコーダ900によって使用されるツールの特定のセットおよび/またはそれらのツールの構成を示すローカルパラメータ値を取得し得る。ある場合には、エンコーダ900は、どのパラメータがリモートデバイスから取得されるべきか、およびどのパラメータがローカルストレージから取得されるべきかを示す異なるモードを有し得る。
【0121】
図9Bは、エンコーダ900が、ネットワーク910を介して構成データを、リモートコントロールサーバ920に送信し得る、および/またはリモートコントロールサーバ920から受信し得ることを示す。コントロールサーバ920は、データを受信または送信するためのアプリケーションプログラミングインターフェースを実装するサーバコンピューティングデバイスを備え得る。例えば、コントロールサーバ920は、RESTfulインターフェースを実装し得、それによって、データは、(セキュアな)ハイパーテキスト転送プロトコル(HTTP)要求および応答によって通信され得る。別の場合には、特定の通信プロトコル(例えば、トランスポート層またはアプリケーション層)を使用して実装されたサイドチャネルが、ネットワーク910を介してコントロールサーバ920と、エンコーダ900との間の通信に使用され得る。ネットワーク910は、ローカルエリアネットワークおよびワイドエリアネットワークを含む1つ以上の有線および/または無線ネットワークを含み得る。ある場合には、ネットワーク910は、インターネットを含み得る。
【0122】
図9Cは、エンコーダ900が、ネットワーク910を介して、例えば、リモートコントロールサーバ920と通信するように構成された構成インターフェース930をどのように備え得るかを示す。構成インターフェース930は、例えば、イーサネットおよび/または無線アダプタなどのハードウェアインターフェース、および/または1つ以上の通信ネットワークを介して通信するための通信スタックを提供するソフトウェアを含み得る。図9Cでは、エンコーダ900によって使用および/または記憶される構成パラメータおよび設定932が、構成インターフェース930を使用して、ネットワークを介して通信される。例えば、1つ以上のメモリまたはレジスタに記憶され得るエンコーダ構成パラメータは、構成インターフェースから受信される934。ある場合には、エンコーダ構成パラメータは、例えば、図に示されるように、エンコーダ内のダウンサンプリング、ベースエンコーダ、およびベースデコーダ構成要素のうちの1つ以上を制御し得る。構成インターフェースはまた、L-1制御データ936およびL-2制御データ938データを、L-1およびL-2ストリーム制御構成要素の各々に通信する。これらの構成要素は、各強化ストリームでのツールの使用を構成し得る。ある場合には、L-1およびL-2ストリーム制御構成要素は、(例えば、図に示され、本明細書に記載される)残差モード選択、変換、量子化、残差モード制御、およびエントロピ符号化構成要素のうちの1つ以上を制御する。
【0123】
本明細書に記載されるようなクラウド構成を使用することは、実装上の利点を提供し得る。例えば、エンコーダ900は、例えば、ネットワーク制御システムおよび測定値に基づいて、遠隔制御され得る。エンコーダ900はまた、例えば、1つ以上のリモートデータソースまたはコントロールサーバによって供給される測定値または事前処理に基づいて、追加のデータを伴う強化処理を提供するファームウェアをアップグレードすることによって、新しい機能を提供するようにアップグレードされ得る。これにより、レガシーなハードウェアデバイスをアップグレードおよび制御するための柔軟な方式が提供される。
【0124】
特定の実施例では、残差は、特定のレベルの品質または解像度での誤差または差異であるとみなされ得る。説明された実施例では、2つのレベルの品質または解像度、したがって残差の2つのセット(L-1およびL-2)が存在する。本明細書に記載の残差の各セットは、誤差または差異の異なる形態をモデル化する。例えば、L-1残差は、典型的には、ベースエンコーダの特性を補正し、例えば、復号プロセスの一部としてベースエンコーダによって導入されたアーチファクトを補正する。対照的に、例えば、L-2残差は、典型的には、L-1補正によって導入された品質および差異のレベルのシフトによって導入された複雑な影響(例えば、L-1符号化パイプラインによって、4または16画素の領域などのより広い空間スケールにわたって生成されたアーチファクト)を補正する。これは、残差のあるセットに対して実行された演算が、残差の別のセットに対して必然的に同じ影響をもたらすことは明らかでないことを意味し、例えば、残差の各セットは、異なる統計的パターンおよび相関のセットを有し得る。
【0125】
本明細書に記載の実施例では、残差は、符号化パイプラインによって符号化される。これは、変換、量子化、およびエントロピ符号化演算を含み得る。これはまた、残差のランク付け、重み付け、およびフィルタリングも含み得る。これらのパイプラインが、図1および図3Aならびに図3Bに示されている。次いで、残差が、例えば、L-1およびL-2強化ストリームとして、デコーダに送信され、L-1およびL-2強化ストリームが、ハイブリッドストリームとして、ベースストリームと組み合わされ得る(または別個に送信され得る)。ある場合には、ビットレートが、ベースストリームおよび両方の強化ストリームを含むハイブリッドデータストリームに対して設定され、次いで、設定されたビットレートを満たすように、異なる適応ビットレートが、処理されているデータに基づいて個々のストリームに適用される(例えば、制約されたデータが、画像データが変化するにつれて変化し得る最も知覚的に影響力の大きい個々のストリームによって使用され得るように、低レベルのアーチファクトで知覚される高品質のビデオが、異なる個々のストリームに、フレームごとのレベルにおいても、ビットレートを適応的に割り当てることによって構築され得る)。
【0126】
本明細書に記載されるような残差のセットは、スパースデータとみなされ得、例えば、多くの場合、所与の画素または領域で差異がなく、結果得られる残差値は、ゼロである。残差の分布を見ると、確率質量の大部分は、ゼロ付近に位置する小さな残差値に割り当てられ、例えば、特定のビデオの場合、-2、-1、0、1、2などの値が、最も頻繁に発生する。場合によっては、残差値の分布は、0に対して対称、またはほぼ対称である。特定の試験ビデオの場合には、残差値の分布は、0に対して(例えば、対称的またはほぼ対称的に)対数分布または指数分布に類似した形状を取ることが見出された。残差値の正確な分布は、入力ビデオストリームの内容に依存し得る。
【0127】
残差は、差異のデルタ画像など、本来二次元画像として扱われ得る。このように見れば、データのまばらさは、残差画像で可視である「ドット」、小さい「ライン」、「エッジ」、「角」などの特徴を物語るとみなされ得る。これらの特徴は、典型的には、(例えば、空間および/または時間において)完全に相関していないことが見出されている。それらは、それらから導出される画像データの特性(例えば、元のビデオ信号の画素特性)とは異なる特性を有する。
【0128】
残差の特性は、それらが導出される画像データの特性とは異なるため、従来のムービングピクチャエクスパーツグループ(MPEG)の符号化および復号標準に見出されるものなどの標準的な符号化アプローチを適用することは、一般的に不可能である。例えば、多くの比較スキームは、大きな変換(例えば、通常のビデオフレーム内の画素の大きな領域の変換)を使用する。例えば上記のような、残差の特性に起因して、これらの比較的大きな変換を残差画像に使用することは、非常に非効率的であろう。例えば、通常の画像の領域のために設計された大きなブロックを使用して、残差画像内の小さなドットを符号化することは、非常に困難であろう。
【0129】
本明細書に記載の特定の実施例は、代わりに、小さく単純な変換カーネル(例えば、本明細書で提示されるような、2×2または4×4のカーネル、方向分解(Directional Decomposition)および方向分解二乗(Directional Decomposition Squared))を使用することによって、これらの問題に対処する。本明細書に記載の変換は、アダマール行列(例えば、平坦化された2×2符号化ブロックのための4×4行列、または平坦化された4×4符号化ブロックのための16×16行列)を使用して適用され得る。これは、比較ビデオ符号化アプローチとは異なる方向に動く。これらの新しいアプローチを残差のブロックに適用すると、圧縮効率が発生する。例えば、特定の変換は、効率的に圧縮され得る(例えば、空間内の)無相関の係数を生成する。係数間の相関は、例えば、残差画像内の線に対して利用され得るが、レガシーデバイスおよび低リソースデバイスに実装することが困難である符号化複雑性をもたらし得、補正を必要とする他の複雑なアーチファクトを生成することが多い。特定の残差値を0に設定する(すなわち、これらを処理のために転送しない)ことによって残差を事前処理することは、ビットレートおよびストリーム帯域幅、ならびにリソースの使用を管理するための制御可能で柔軟な方式を提供し得る。例えば、積極的な残差モード設定をアクティブにして、高い計算負荷および/または低減された帯域幅の時間中、残差のより大きなサブセットを選択解除することができる。残差事前処理は、符号化パイプライン内の量子化パラメータを制御することへの相補的な制御経路を提供し得る。
【0130】
本明細書に記載の特定の実施例は、残差の時間特性を、例えば、空間特性とともに、考慮する。例えば、残差画像では、残差「画像」内に観察され得る「エッジ」および「ドット」などの詳細は、ほとんど時間的相関を示さない。これは、残差画像内の「エッジ」は、通常のビデオストリーム内で知覚されるエッジのように並進または回転しないことが多いからである。例えば、残差画像内では、「エッジ」は、時間とともに実際に形状を変え得、例えば、頭部旋回は、複数の残差画像の「エッジ」内にキャプチャされ得るが、標準的な様式で動かないことがある(「エッジ」は、照明、倍率、符号化係数などの要因に依存する複雑な差異を反映するため)。残差画像のこれらの時間的態様、例えば、連続した残差「フレーム」または「ピクチャ」を含む残差「ビデオ」は、典型的には、例えば、通常の(例えば、Y、U、またはV平面内の)ビデオフレームなどの従来の画像の時間的態様とは異なる。したがって、従来の符号化アプローチを残差画像に適用する方法は明らかでなく、実際、比較ビデオ符号化スキームおよび標準からの動き補償アプローチは、残差データを(例えば、有用な様式で)符号化することができないことが分かった。しかしながら、これらの時間特性を残差のランク付けおよびフィルタリングの基礎として用いることにより、復号されたビデオ信号の知覚にほとんど影響を及ぼさない残差情報を破棄することが可能であり得る。例えば、過渡的残差は、それらが、通常の量子化デッドゾーンを超えているにもかかわらず、事前処理段階によって選択解除され得る。輝度およびコントラストのうちの1つ以上に基づく分類および/またはスコアリングはまた、残差信号のエネルギーを低減する一方で、知覚品質への最小限の影響を有する(ヒトの知覚は、特定の輝度およびコントラストのパターンが観察されにくいようにバイアスされているため)別の方法を提供し得る。例えば、コントラスト差に対する感度は、平均コントラストレベルに依存し得、低い平均コントラストにおいて設定された大きさのコントラスト差は、より高い平均コントラストレベルにおける同じコントラスト差よりも検出されにくいことを効果的に意味する。この場合、符号化単位が、低い平均コントラストを有していると分類される場合、残差は、中程度の平均コントラストブロックと比較して知覚されにくいであろうため、選択解除され得る(またはより重度にダウン重み付けされる(down-weighted))。同様の効果は、異なる空間周波数(すなわち、テクスチャ)に対して知覚され、特定のテクスチャは、他のテクスチャよりも観察可能である。例えば、小規模の高空間周波数は解像不能であり得るため、(例えば、明示的な分類を介して、または代表的なメトリック評価を介して)これらに関連するとして示される残差は、より低い優先順位またはランク付けを与えられ得る。
【0131】
さらに、多くの比較ビデオ符号化アプローチは、従来のビデオデータに、時間予測および動き補償をデフォルトとして提供しようと試みる。これらの「組み込まれた」アプローチは、連続した残差画像に適用されるときに失敗するだけでなく、不必要な処理リソースを占有する場合がある(例えば、これらのリソースは、実際にはビデオ符号化を損ないながら使用され得る)。これらの「組み込まれた」アプローチはまた、割り当てられたビットレートを遮る不要なビットを生成し得る。これらの問題にどのように対処するかは、従来のアプローチからは明らかでない。
【0132】
本明細書に記載の原理のいくつかを特定の使用事例にまとめると、エンコーダは、まず入力ビデオを分析して、信号の特定の空間特性および/または時間特性を識別し得る。これらの特性から、エンコーダは、重み付けされた残差マスクを作成し得る。例えば、入力信号は、ビデオの高い割合がフレーム内の実質的に中央に位置する肖像であるニュース放送であるとしよう。したがって、ビデオ信号の背景が、時間的に実質的に変化しないこと、および視聴者が見たい詳細が、フレームの中央にある肖像の表情および詳細にあること、が特定されるであろう。したがって、残差マスクは、処理されるべき最も重要な残差が、画面のこの領域内に位置することを強調するであろう。次いで、エンコーダが、入力ビデオを符号化し始めるであろう。残差が、変換された係数に変換される前の残差処理ステップでは、各フレームの残差が、残差重み付けされたマスクと比較され、残差が重み付けされる。エンコーダによって設定された規定の閾値に従って、残差のうち重要でないものが(重み付けされたマスクに従って)選択解除されて、変換されない。したがって、残差マスクのうちの重要でないものは、パイプラインを通して伝播されない。要約すると、この実施例では、コンピューティングリソースを削減し、全体的なデータサイズを低減するために、画像の最も重要な残差のみが処理される。
【0133】
同様の実施例では、入力ビデオがスポーツを表しているとしよう。この実施例では、エンコーダは、入力ビデオを分析し、ビデオの各フレームのための残差マスクのセットを準備し得る。例えば、残差マスクは、スポーツフィールドの背景ではなく、アクションが速く動いている場合など、詳細が必要とされるピクチャの領域を優先させ得る。ここで、各フレームが、特定の残差重み付けされたマスクと比較され得、残差が、0~1の値に応じて重み付けされ、閾値に応じてフィルタリングおよび選択解除される。
【0134】
ここで、エンコーダが入力ビデオの分析を行う代わりに、中央サーバが、入力ビデオのタイプに従って、残差重み付けされたマスクを提案するとしよう。中央サーバは、例えば、スポーツ、映画、ニュースなどをカバーする残差重み付けされたマスクのセットを提供し得る。エンコーダが残差マスクを処理するとき、エンコーダは、処理されている入力信号のタイプに従って、残差重み付けされたマスクのセットを使用し得る。
【0135】
最終的な実施例では、中央サーバは、入力信号の集中的な分析に基づいて、コンパニオン残差重み付けマスク(companion residual weighted masks)のセットを提供し得、その結果、エンコーダは、より簡単にされ得、分析は、計算上強力で能力のある中央サーバで実行されて、エンコーダが合理化され得る。すなわち、エンコーダは、「ダム」であり得、計算集約的な分析を実行した中央サーバによって提案されたマスクに従って残差の各々を処理する際に、残差マスクの提供されたセットを利用し得る。
【0136】
完全性のために、図10は、本明細書に記載された概念の広範な原理をフローチャートの形態で示す。方法1000は、入力信号を受信すること(ステップ1001)と、残差の1つ以上のセットを生成すること(ステップ1002)と、残差の1つ以上のセットを修正すること(ステップ1003)と、残差の1つ以上のセットを符号化すること(ステップ1004)と、を含む。信号は、ビデオ信号を含み得、ステップ1001での入力信号は、ビデオのフレームを含み得、複数のフレームに対して方法が繰り返される。方法は、本明細書に記載のエンコーダのいずれかの処理を実行するように適合され得る。方法は、ベース符号化されたストリーム、第1のレベル(L-1)の符号化されたストリーム、および第2のレベル(L-2)の符号化されたストリームのうちの1つ以上を送信することをさらに含み得る。
【0137】
対応する復号方法も、提供され得る。例えば、複数の符号化されたストリームを、再構成された出力ビデオに復号する方法は、第1のベース符号化ストリームを受信することと、第1のコーデックに従って第1のベース符号化ストリームを復号して、第1の出力ビデオを生成することと、1つ以上のさらなる符号化ストリームを受信することと、1つ以上のさらなる符号化ストリームを復号して、残差のセットを生成することと、残差のセットを第1のビデオと組み合わせて、復号されたビデオを生成することと、を含み得る。記載されるように、さらなる適合も行われ得る。
【0138】
図10の方法1000では、残差の1つ以上のセットを修正するステップは、残差のセットの事前分析に基づいて、残差のセットをランク付けすることと、変換および符号化される残差のサブセットを選択することと、を含み得る。一実施例では、方法1000は、残差のセットを分析することと、分析に基づいて、以下の、残差のセットをランク付けするステップ、および変換および符号化される残差のサブセットを選択するステップを実行することか、または実行しないことかのいずれかと、を含む。一実施例では、方法1000は、残差のセットを分析することと、残差のセットをランク付けすることと、変換および符号化される残差のサブセットを選択することと、を、ランク付けするおよび/または選択するステップが、分析に基づいて異なって行われるように、含む。これらの実施例では、符号化ステップ1004の一部として変換を適用するステップは、残差の選択されたサブセットに対して実行される。これらのステップは、本明細書に記載されるように、残差のレベル1およびレベル2のセットのうちの1つ以上に対して実行され得る。
【0139】
場合によっては、方法1000のステップ1003は、残差重みのセットを受信することと、残差重みのセットを残差のセットに適用して、修正された残差を生成することと、を含む。例えば、これは、図8の実施例に従って、またはこの実施例の変形として、適用され得る。ある場合には、実施例は、閾値のセットを使用して、修正された残差を閾値処理するように適合され得る。特定の実施例では、残差重みのセットおよび閾値のセットのうちの1つ以上が、入力ビデオの分類に基づいて決定される。特定の実施例では、残差重みのセットは、リモート位置から受信された残差マスクを含む。特定の実施例では、残差重みのセットおよび閾値のセットのうちの1つ以上が、残差のグループに適用される。残差マスクは、ベースケース内のバイナリマスクであり得、それによって、残差が、「処理されるべき」または「廃棄されるべき」のいずれかとしてランク付けされ得る。
【0140】
事前量子化のステップを含めて、残差のセットを修正し、パイプラインの効率を向上させ得る方法が、上記で説明された。要約すると、プロセスは、残差のセットに対応する知覚メトリックのセットを決定し、知覚メトリックのセットに基づいて、残差のセットを選択的に事前量子化し、修正された残差の1つ以上のセットを変換および量子化して、1つ以上のそれぞれの符号化ストリームを生成し得ることが説明された。
【0141】
図11は、そのような事前量子化がどのように実装され得るかの図を示す。図11では、知覚メトリックの値を表す軸1110が示されている。プロセスは、1つ以上の残差のための知覚メトリックを、軸1110によって示される範囲のセットと比較する。ある場合には、知覚メトリックは、2×2もしくは4×4の符号化単位ごとに、または16×16のタイルについて決定され得る。知覚メトリックは、少なくとも輝度(例えば、Y)ピクチャ要素に基づいて、決定され得る。知覚メトリックは、残差の所与のセットに対応するピクチャ要素について決定され得る(例えば、ピクチャ要素および残差が、画像マトリックス内の同じ空間インデックスに関連する場合)。知覚メトリックは、上述のように、テクスチャおよびコントラストのうちの1つ以上に基づき得る。概念的には、特定の残差に対応する知覚メトリックが、視覚化された軸1110に沿ってどこに存在するかが、その残差に対してどのアクションを取るべきかを示す。図11の軸1110は、高い知覚メトリックは負(例えば、残差をフィルタリングで除去するために使用される)であり、低い知覚メトリックは、高優先度を示す(例えば、処理のために残差を渡すために使用される)ことを暗示するが、これはもちろん逆であり得る。視覚的に示されているのは、重要な残差は、軸の左側の対応する知覚メトリックを有し、重要でない残差は、軸の右側の対応する知覚メトリックを有することである。
【0142】
知覚メトリックが第1の範囲1118内に入ることに応答して、1つ以上の残差が、符号化されない。すなわち、第1の範囲1112内のメトリックを有する残差は、「葬られる」か、または代替的に、0値に設定または量子化される。概念的には、マーカ1124の後のすべての残差が「葬られる」。
【0143】
知覚メトリックが第2の範囲1116内に入ることに応答して、1つ以上の残差が、事前量子化デッドゾーンと比較され、1つ以上の残差がデッドゾーン内に入る場合、1つ以上の残差は、符号化されない。デッドゾーンは、残差の量子化ステップ幅の関数であり得る(例えば、ステップ幅の5倍)。ステップ幅は、残差位置によって(例えば、残差または残差のグループによって)変化する動的パラメータ、またはすべての残差のための静的パラメータであり得る。Startマーカ1122とAllマーカ1124との間に入るメトリックを有するすべての残差は、それらが規定のデッドゾーン内に入る場合、葬られ得、Startマーカ1122は、デッドゾーンを使用して残差が「葬られ」始める場所を示し、Allマーカ1124は、すべての残差が(例えば、それらの値に関係なく)「葬られる」場所を示す。閾値という用語は、本明細書ではマーカという用語と交換可能に使用され得るが、出願人らは、図11の軸により緊密かつ視覚的に対応するように、マーカという用語を使用する。
【0144】
知覚メトリックが、マーカまたは閾値1120と、Startマーカ1122との間の第3の範囲1114内に入ることに応答して、1つ以上の残差が、事前量子化ステップ幅で事前量子化される。これらの残差はいずれも葬られないが、符号化の後半の通常の量子化演算とは異なるパラメータのセットで、事前量子化される。例えば、事前量子化ステップ幅は、後の量子化のために使用されるステップ幅の倍数であり得る(例えば、通常のステップ幅の倍)。
【0145】
知覚メトリックが第4の範囲1112内に入ることに応答して、1つ以上の残差が、修正なしに、符号化のために渡される。したがって、高い優先度(すなわち、良好な知覚メトリック)を有する残差は、修正されない。
【0146】
図12は、知覚メトリックが、対応する残差のセットに応じてどのように計算され、修正され得るか、および対応するアクションの範囲が、どのように計算または識別され得るかを、概念的にフロー図1200で示す。プロセスは、隣接する残差のグループ、すなわち、残差のセットの隣接するサブセットを考慮する。これは、上述したような符号化単位またはタイルであり得る。最初の知覚メトリックが、ブロック1208において、グループと関連付けられたピクチャ要素のコントラスト、テクスチャ、または輝度のうちの1つ以上に基づいて、最初に識別される。知覚メトリックは、上述のものと同様の様式で決定され得、(例えば、図8を参照して)同様に上述されたピクチャ要素および残差のうちの1つ以上に基づき得る。これらの用語は、本明細書の他の箇所で使用されており、他の箇所で説明されたのと同じように、他の特性が同様に使用されて、知覚メトリックを計算し得る。場合によっては、最初の知覚メトリックが計算され、次いで、後の比較のために、所定の範囲内で正規化され得る。
【0147】
本方法の残りのブロックは、図11に示されるものと同様の閾値のセットとの比較を実行する。ブロック1224において、残差のグルーピングのための(後の)量子化演算からのステップ幅(SW)が取得され、第1の閾値を決定するために使用される。範囲および閾値は、図11の文脈において上述されている。ブロック1224は、図11の閾値1120の値を決定し得る。生成された知覚メトリックが、第1の閾値未満である場合(判定1220で「はい」)、すべての残差が保持される、すなわち、メトリックは範囲1112内にある。メトリックが、第1の閾値以上である場合(判定1220で「いいえ」)、ブロック1228において、さらなる閾値のセットが生成される。これらは、図11の閾値1122および1124、または閾値の別のセットを含み得る。これらの閾値は、残差をフィルタリングするときの平滑化閾値の一形態とみなされ得る。次いで、ブロック1230で、知覚メトリックが、判定ブロック1230において第2の閾値(例えば、閾値1122)と比較される。知覚メトリックが次の範囲1114内にある場合、残差が、ブロック1232において、決定されたステップ幅で事前量子化される。メトリックがさらなる範囲内にある場合、メトリックが、判定ブロック1234において、さらなる第3の閾値と比較される。第3の閾値は、閾値1124を含み得、この比較に基づいて、グルーピング内のすべての残差が、ブロック1236で葬られるか、または残差のグループまたはセットの一部が、デッドゾーンを適用することによって、すなわち、上記で説明されたデッドゾーン拡張によって、葬られる。
【0148】
例えば、ストリーミングサーバ、またはクライアントデバイス、またはデータストアから復号するクライアントデバイス内に実装されるエンコーダおよびデコーダの両方で、本明細書に記載の方法およびプロセスが、コード(例えば、ソフトウェアコード)および/またはデータとして具現化され得る。エンコーダおよびデコーダは、データ圧縮の分野で周知のように、ハードウェアまたはソフトウェアで実装され得る。例えば、特別にプログラムされたグラフィカルプロセッシングユニット(GPU)または特別に設計されたフィールドプログラマブルゲートアレイ(FPGA)を使用するハードウェアアクセラレーションは、特定の効率性を提供し得る。完全性のために、そのようなコードおよびデータは、1つ以上のコンピュータ可読媒体上に記憶され得、1つ以上のコンピュータ可読媒体は、コンピュータシステムによって使用するためのコードおよび/またはデータを記憶し得る任意のデバイスまたは媒体を含み得る。コンピュータシステムが、コンピュータ可読媒体上に記憶されたコードおよび/またはデータを読み出し、実行するとき、コンピュータシステムは、コンピュータ可読記憶媒体内に記憶されたデータ構造およびコードとして具現化された方法およびプロセスを実行する。特定の実施形態では、本明細書に記載の方法およびプロセスのステップのうちの1つ以上が、プロセッサ(例えば、コンピュータシステムまたはデータ記憶システムのプロセッサ)によって実行され得る。
【0149】
概して、このテキストに記載されている、または図に示されている機能のいずれかは、ソフトウェア、ファームウェア(例えば、固定論理回路)、プログラマブルもしくは非プログラマブルハードウェア、またはこれらの実装の組み合わせを使用して実装され得る。本明細書で使用される場合、「構成要素」または「機能」という用語は、概して、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを表す。例えば、ソフトウェア実装の場合、「構成要素」または「機能」という用語は、1つまたは複数の処理デバイス上で実行されるとき、指定されたタスクを実行するプログラムコードを指し得る。個別のユニットへの構成要素および機能の例示的な分離は、そのようなソフトウェアおよび/またはハードウェアおよびタスクの任意の実際のまたは概念的な物理的グルーピングおよび割り当てを反映し得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図10
図11
図12