(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024055892
(43)【公開日】2024-04-19
(54)【発明の名称】映像符号化の方法および装置
(51)【国際特許分類】
H04N 19/91 20140101AFI20240412BHJP
【FI】
H04N19/91
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024017424
(22)【出願日】2024-02-07
(62)【分割の表示】P 2023015476の分割
【原出願日】2019-12-20
(31)【優先権主張番号】62/785,056
(32)【優先日】2018-12-26
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/710,899
(32)【優先日】2019-12-11
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】メン・シュ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
(57)【要約】
【課題】ビデオデコーダで行われるビデオ復号の方法を提供する。
【解決手段】この方法では、シンタックス要素のビンの符号化されたビットを含むビットストリームが受信される。シンタックス要素は、符号化された画像内の変換スキップブロックの領域の残差に対応する。コンテキストモデリングは、領域のシンタックス要素のいくつかのビンのそれぞれのコンテキストモデルを決定するために行われる。コンテキスト符号化されるシンタックス要素のビンの数は、領域に設定されたコンテキスト符号化されたビンの最大数を超えない。シンタックス要素のいくつかのビンの符号化されたビットは、決定されたコンテキストモデルに基づいて復号される。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ビデオデコーダにおいて行われるビデオ復号の方法であって、前記方法が、
シンタックス要素のビンの符号化されたビットを含むビットストリームを受信するステップであって、前記シンタックス要素は符号化された画像内の変換スキップブロックの領域の残差に対応する、ステップと、
前記領域のシンタックス要素のいくつかの前記ビンのそれぞれについてコンテキストモデルを決定するためにコンテキストモデリングを行うステップであって、コンテキスト符号化されるシンタックス要素の前記ビンの数は、前記領域に設定されたコンテキスト符号化されるビンの最大数を超えない、ステップと、
シンタックス要素の前記いくつかの前記ビンの前記符号化されたビットを、前記決定されたコンテキストモデルに基づいて復号するステップと、
を含む、方法。
【請求項2】
コンテキスト符号化されたシンタックス要素の前記ビンの前記数は、前記変換スキップブロックの前記領域のシンタックス要素の前記ビンの総数以下である、
請求項1に記載の方法。
【請求項3】
前記変換スキップブロックの前記領域のコンテキスト符号化されたビンの前記最大数はB×Aであり、ここで、Bは正の数であり、Aは前記領域内の量子化残差の数である、
請求項1に記載の方法。
【請求項4】
前記変換スキップブロックの前記領域に対してコンテキスト符号化されていないシンタックス要素の前記ビンの残りの総数の前記符号化されたビットを、等確率モデルに基づいて復号するステップ
をさらに含む、請求項2に記載の方法。
【請求項5】
Bは整数である、
請求項3に記載の方法。
【請求項6】
Bは分数である、
請求項3に記載の方法。
【請求項7】
BはAに従って設定される、
請求項3に記載の方法。
【請求項8】
前記変換スキップブロックは前記領域のみを含み、Aは前記変換スキップブロックのW×Hに等しく、ここで、Wは前記変換スキップブロックの幅であり、Hは前記変換スキップブロックの高さである、
請求項3に記載の方法。
【請求項9】
前記変換スキップブロックは、前記領域を含む複数の領域に分割され、
前記変換スキップブロックの前記複数の領域のそれぞれのコンテキスト符号化されたビンの前記最大数はB×Aであり、ここで、Bは正の数であり、Aは、前記複数の領域の前記それぞれにおける量子化残差の数である、
請求項1に記載の方法。
【請求項10】
ビデオデコーダで行われるビデオ復号の方法であって、前記方法が、
符号化されたビデオビットストリームを受信するステップと、
前記符号化されたビデオビットストリームの対象ブロックおよび近傍ブロックのうちの少なくとも1つがブロック差分パルス符号変調(BDPCM)で符号化されているかどうかを示すインジケータを受信するステップであって、前記対象ブロックは前記近傍ブロックに隣接している、ステップ、と、
前記対象ブロックと前記近傍ブロックのうちの前記少なくとも1つがBDPCMで符号化されていると示される場合、
前記対象ブロック内の対象サブブロックと前記近傍ブロック内の近傍サブブロックとの間の境界に適用する境界強度を決定するステップと、
前記決定された境界強度に従ってデブロッキングフィルタを使用して、前記対象ブロック内の前記対象サブブロックと前記近傍ブロック内の前記近傍サブブロックとの間の前記境界にデブロッキングを行うステップと、
を含む、方法。
【請求項11】
前記近傍サブブロックはBDPCMで符号化されていない、請求項10に記載の方法。
【請求項12】
前記近傍サブブロックがBDPCMで符号化されている場合、前記デブロッキングフィルタの前記境界強度は1または2に決定される、
請求項10に記載の方法。
【請求項13】
デブロッキングを行う前記ステップは、
前記対象および近傍サブブロックがBDPCMで符号化されている場合、前記対象サブブロックと前記近傍サブブロックとの間の量子化パラメータの差がしきい値を超えているという決定に基づいて、前記対象ブロック内の前記対象サブブロックと前記近傍ブロック内の前記近傍サブブロックとの間の前記境界に前記デブロッキングを行うステップ
をさらに含む、請求項10に記載の方法。
【請求項14】
デブロッキングを行う前記ステップは、
前記対象および近傍サブブロックがBDPCMで符号化されている場合、前記対象サブブロックおよび前記近傍サブブロックが異なるBDPCM予測モードで符号化されているという決定に基づいて、前記対象ブロック内の前記対象サブブロックと前記近傍ブロック内の前記近傍サブブロックとの間の前記境界に前記デブロッキングを行うステップ
をさらに含む、請求項10に記載の方法。
【請求項15】
デブロッキングを行う前記ステップは、
前記対象および近傍サブブロックがBDPCMで符号化されている場合、前記対象サブブロックおよび前記近傍サブブロックのうちの少なくとも1つが少なくとも1つの非ゼロ係数を有するという決定に基づいて、前記対象ブロック内の前記対象サブブロックと前記近傍ブロック内の前記近傍サブブロックとの間の境界も前記デブロッキングを行うステップ
をさらに含む、請求項10に記載の方法。
【請求項16】
ビデオ復号の装置であって、
シンタックス要素のビンの符号化されたビットを含むビットストリームを受信し、前記シンタックス要素は符号化された画像内の変換スキップブロックの領域の残差に対応し、
前記領域のシンタックス要素のいくつかの前記ビンのそれぞれについてコンテキストモデルを決定するためにコンテキストモデリングを行い、コンテキスト符号化されるシンタックス要素の前記ビンの数は、前記領域に設定されるコンテキスト符号化されるビンの最大数を超えず、
シンタックス要素の前記いくつかの前記ビンの前記符号化されたビットを、前記決定されたコンテキストモデルに基づいて復号する、
ように構成された処理回路を含む、装置。
【請求項17】
コンテキスト符号化されたシンタックス要素の前記ビンの数は、前記変換スキップブロックの前記領域のシンタックス要素の前記ビンの総数以下である、
請求項16に記載の装置。
【請求項18】
前記変換スキップブロックの前記領域のコンテキスト符号化されたビンの前記最大数はB×Aであり、ここで、Bは正の数であり、Aは前記領域内の量子化残差の数である、
請求項16に記載の装置。
【請求項19】
前記処理回路は、
前記変換スキップブロックの前記領域に対してコンテキスト符号化されていないシンタックス要素の前記ビンの残りの総数の前記符号化されたビットを、等確率モデルに基づいて復号するようにさらに構成される、請求項16に記載の装置。
【請求項20】
ビデオ符号化の装置であって、
符号化されたビデオビットストリームを受信し、
前記符号化されたビデオビットストリームの対象ブロックおよび近傍ブロックのうちの少なくとも1つがブロック差分パルス符号変調(BDPCM)で符号化されているかどうかを示すインジケータを受信し、前記対象ブロックは前記近傍ブロックに隣接しており、
前記対象ブロックと前記近傍ブロックのうちの前記少なくとも1つがBDPCMで符号化されていると示されている場合、
前記対象ブロック内の対象サブブロックと前記近傍ブロック内の近傍サブブロックとの間の境界に適用される境界強度を決定し、
前記決定された境界強度に従ってデブロッキングフィルタを使用して、前記対象ブロック内の前記対象サブブロックと前記近傍ブロック内の前記近傍サブブロックとの間の前記境界にデブロッキングを行う、
ように構成された処理回路を含む、装置。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2018年12月26日出願の米国仮出願第62/785,056号「ブロック差分パルス符号変調におけるコンテキストモデリングおよびデブロックフィルタの制約」に基づく優先権の利益を主張する2019年12月11日出願の米国特許出願第16/710,889号「映像符号化の方法および装置」に基づく優先権の利益を主張する。先行する出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、映像符号化に一般的に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書において与えられる背景の記載は、本開示の文脈を一般的に提示する目的のものである。現在名前が挙げられている発明者の研究は、その研究がこの背景技術の欄に記載されている範囲において、ならびに、さもなければ出願時における先行技術として適格でないであろう記載の態様は、本開示に対して明示的または黙示的に先行技術として自認されるものではない。
【0004】
映像の符号化と復号は、動き補償のあるピクチャ間予測を用いて行うことができる。非圧縮デジタル映像は、一連のピクチャを含むことができ、各ピクチャは、たとえば1920×1080の輝度サンプルおよび関連付けられる色差サンプルの空間的な寸法を有する。一連のピクチャは、たとえば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式にはフレームレートとも呼ばれる)を持つことができる。非圧縮映像には、重要なビットレート要件がある。たとえば、サンプルあたり8ビットでは1080p60の4:2:0映像(60Hzフレームレートで1920×1080の輝度サンプル解像度)は、1.5ギガビット/秒に近い帯域幅を必要とする。1時間のこのような映像は、600ギガバイトを超えるストレージスペースを必要とする。
【0005】
映像の符号化と復号の1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことであり得る。圧縮は、前述の帯域幅またはストレージスペース要件を、場合によっては2桁以上減らすのに役立ち得る。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用できる。可逆圧縮とは、圧縮された元の信号から元の信号の正確な複製を再構築できる手法を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みは、再構築された信号を意図したアプリケーションに有用なものとするのに十分に小さい。映像の場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なり、たとえば、いくつかのコンシューマ・ストリーミング・アプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、より高い容認/許容歪みにより、より高い圧縮率が得られることを反映しうる。
【0006】
ビデオエンコーダとデコーダは、たとえば、動き補償、変換、量子化、エントロピー符号化など、いくつかの広範なカテゴリの手法を利用できる。
【0007】
ビデオコーデック技術は、イントラ符号化と呼ばれる手法を含みうる。イントラ符号化では、サンプル値は、以前に再構築された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャはサンプルのブロックに空間的に細分される。サンプルのすべてのブロックがイントラモードで符号化されると、そのピクチャはイントラピクチャでありうる。イントラピクチャと、独立したデコーダリフレッシュピクチャなどのその派生物は、デコーダの状態をリセットするために使用でき、したがって、符号化されたビデオビットストリームとビデオセッションの最初のピクチャとして、または静止画像として使用されうる。イントラブロックのサンプルは変換を受けることができ、変換係数はエントロピー符号化の前に量子化され得る。イントラ予測は、変換前のドメインでサンプル値を最小化する手法であり得る。場合によっては、変換後のDC値が小さければ小さいほど、また、AC係数が小さければ小さいほど、与えられた量子化ステップサイズでエントロピー符号化後のブロックを表すために必要なビットは少なくなる。
【0008】
たとえば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかの新しい映像圧縮技術は、たとえば、周囲のサンプルデータおよび/または空間的に近傍であり、データブロックの復号順序で先行する符号化/復号の間に得られたメタデータから試みる手法を含む。このような手法は、以下「イントラ予測」手法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構築中の対象ピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに注意されたい。
【0009】
たとえば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかの新しい映像圧縮技術は、たとえば、周囲のサンプルデータおよび/または空間的に近傍であり、データブロックの復号順序で先行する符号化/復号の間に得られたメタデータから試みる手法を含む。このような手法は、以下「イントラ予測」手法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構築中の対象ピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに注意されたい。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で改良され、さらに共同探索モデル(JEM)、Versatile Video Coding(VVC)、およびベンチマークセット(BMS)などの新しい符号化技術においてさらに改良された。予測ブロックは、すでに利用可能なサンプルに属する近傍サンプル値を使用して形成されうる。近傍サンプルのサンプル値は、方向に従って予測ブロックに複製される。使用中の方向への参照は、ビットストリームの中で符号化されうる、それ自体が予測されうる。
【0011】
動き補償は不可逆圧縮技術でありえ、以前に再構築されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後、新しく再構築されたピクチャまたはピクチャ部分の予測に使用される技術に関しうる。場合によっては、参照ピクチャは現在再構築中のピクチャと同じでありうる。MVは、XおよびYの2次元、または3次元を持つことができ、3番目は使用中の参照ピクチャを示すものである(後者は間接的に時間次元でありうる)。
【0012】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVは、他のMVから、たとえば、再構築中の領域に空間的に隣接し、復号順序においてそのMVに先行するサンプルデータの他の領域に関連するMVから予測することができる。そうすることで、MVの符号化に必要なデータ量を大幅に削減できるため、冗長性が排除され、圧縮率が向上する。たとえば、カメラから導出された入力ビデオ信号(ナチュラルビデオと呼ばれる)を符号化する場合、単一のMVが適用可能な領域よりも大きい領域は同様の方向に移動する統計的な尤度があり、したがって、場合によっては、近傍の領域のMVから導出された同様の動きベクトルを使用して予測できるため、MV予測は効果的に機能しうる。その結果、与えられた領域について見つけられたMVは、周囲のMVから予測されたMVと類似または同一であり、つぎに、エントロピー符号化の後、MVを直接符号化する場合に使用されるビット数よりも少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例になりうる。その他の場合、たとえば、周囲のいくつかのMVから予測(predictor)を計算するときの丸め誤差により、MV予測自体が不可逆的となる可能性がある。
【0013】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T勧告H.265、「高効率映像符号化」、2016年12月)で説明されている。
【0014】
図1を参照すると、対象ブロック(101)は、動き探索プロセス中にエンコーダによって、空間的にシフトされた同じサイズの前のブロックから予測可能であることが見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ102から106)で示される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、1つ以上の参照ピクチャに関連付けられたメタデータから、たとえば(復号順で)最新の参照ピクチャから導出されうる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャからの予測(predictor)を使用できる。
【発明の概要】
【発明が解決しようとする課題】
【0015】
本開示の態様は、デコーダでの映像符号化のための方法および装置を提供する。一実施形態では、デコーダでの映像符号化の方法が提供される。この方法では、シンタックス要素のビンの符号化されたビットを含むビットストリームが受信される。シンタックス要素は、符号化されたピクチャ内の変換スキップブロックの領域の残差に対応する。コンテキストモデリングは、領域のシンタックス要素のいくつかのビンのそれぞれのコンテキストモデルを決定するために行われる。コンテキスト符号化されるシンタックス要素のビンの数は、領域に設定されたコンテキスト符号化されたビンの最大数を超えない。シンタックス要素のいくつかのビンの符号化されたビットは、決定されたコンテキストモデルに基づいて復号される。
【課題を解決するための手段】
【0016】
一実施形態では、コンテキスト符号化されたシンタックス要素のビンの数は、変換スキップブロックの領域のシンタックス要素のビンの総数以下である。
【0017】
一実施形態では、変換スキップブロックの領域のコンテキスト符号化されたビンの最大数はB×Aであり、ここで、Bは正の数であり、Aは領域内の量子化残差の数である。
【0018】
一実施形態では、変換スキップブロックの領域に対してコンテキスト符号化されていないシンタックス要素のビンの残りの総数の符号化されたビットは、等確率モデルに基づいて復号される。
【0019】
一実施形態では、Bは整数である。
【0020】
一実施形態では、Bは分数である。
【0021】
一実施形態では、BはAに従って設定される。
【0022】
一実施形態では、変換スキップブロックは領域のみを含み、Aは変換スキップブロックのW×Hに等しく、ここで、Wは変換スキップブロックの幅であり、Hは変換スキップブロックの高さである。
【0023】
一実施形態では、変換スキップブロックは、領域を含む複数の領域に分割され、変換スキップブロックの複数の領域のそれぞれのコンテキスト符号化されたビンの最大数はB×Aであり、ここで、Bは正の数であり、Aは、複数の領域のそれぞれにおける量子化残差の数である。
【0024】
一実施形態では、デコーダでの映像符号化の方法が提供される。この方法では、符号化されたビデオビットストリームが受信される。インジケータが受信される。インジケータは、符号化されたビデオビットストリームの対象ブロックおよび近傍ブロックのうちの少なくとも1つがブロック差分パルス符号変調(BDPCM)で符号化されているかどうかを示す。対象ブロックは近傍ブロックに隣接する。対象ブロックおよび近傍ブロックのうちの少なくとも一方がBDPCMで符号化されていると示されている場合、境界強度は、対象ブロック内の対象サブブロックと、近傍ブロック内の近傍サブブロックとの間の境界に適用されると決定され、デブロッキングは、決定された境界強度に従ってデブロッキングフィルタを使用して、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に行われる。
【0025】
一実施形態では、近傍サブブロックは、BDPCMで符号化されていない。
【0026】
一実施形態では、近傍サブブロックがBDPCMで符号化されている場合、デブロッキングフィルタの境界強度は、1または2であると決定される。
【0027】
一実施形態では、対象および近傍サブブロックがBDPCMで符号化されている場合、デブロッキングは、対象サブブロックと近傍サブブロックとの間の量子化パラメータの差がしきい値を超えているという決定に基づいて、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に行われる。
【0028】
一実施形態では、対象および近傍サブブロックがBDPCMで符号化されている場合、デブロッキングは、対象サブブロックと近傍サブブロックが、異なるBDPCM予測モードで符号化されているという決定に基づいて、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に行われる。
【0029】
一実施形態では、対象および近傍サブブロックがBDPCMで符号化されている場合、デブロッキングは、対象サブブロックと近傍サブブロックの少なくとも1つにゼロ以外の係数があるという決定に基づいて、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に行われる。
【0030】
本開示の態様はまた、コンピュータによって実行されたときに、コンピュータに上記の方法のいずれかを実行させる命令を格納する非一時的なコンピュータ読み取り可能な記憶媒体を提供する。
【0031】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0032】
【
図1】一例における対象ブロックおよびその周囲の空間マージ候補の概略図である。
【
図2】一実施形態による通信システムの簡略ブロック図の概略図である。
【
図3】一実施形態による通信システムの簡略ブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略ブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略ブロック図の概略図である。
【
図6】他の実施形態によるエンコーダのブロック図を示す。
【
図7】他の実施形態によるデコーダのブロック図を示す。
【
図8】本開示の一実施形態による境界強度値を決定するための例示的なプロセスのフローチャートを示す。
【
図9A】一実施形態によるブロック差分パルス符号変調(BDPCM)符号化ブロックの例を示す。
【
図9B】一実施形態によるBDPCM符号化ブロックの例を示す。
【
図10A】一実施形態による、例示的なコンテキストベースの適応型バイナリ算術符号化(CABAC)ベースのエントロピーエンコーダを示す。
【
図10B】一実施形態による例示的なCABACベースのエントロピーデコーダを示す。
【
図11】一実施形態による例示的なCABACベースのエントロピー符号化プロセスを示す。
【
図12】一実施形態による例示的なCABACベースのエントロピー復号プロセスを示す。
【
図13】一実施形態によるエントロピー復号プロセスを概説するフローチャートを示す。
【
図14】一実施形態によるデブロッキング・フィルタリング・プロセスを概説するフローチャートを示す。
【
図15】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0033】
I.映像符号化エンコーダおよびデコーダ
図2は、本開示の実施形態による通信システム(200)の簡略ブロック図を示す。通信システム(200)は、たとえば、ネットワーク(250)を介して互いに通信可能な複数の端末デバイスを含む。たとえば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1のペアの端末デバイス(210)および(220)を含む。
図2の例では、第1のペアの端末デバイス(210)および(220)は、データの単方向送信を行う。たとえば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に送信するために、ビデオデータ(たとえば、端末デバイス(210)によってキャプチャされたビデオピクチャのストリーム)を符号化しうる。符号化されたビデオデータは、1つまたは複数の符号化されたビデオビットストリームの形で送信されうる。端末デバイス(220)は、ネットワーク(250)から符号化されたビデオデータを受け取り、符号化されたビデオデータをビデオピクチャを回復するために復号し、回復されたビデオデータに従ってビデオピクチャを表示することができる。一方向のデータ送信は、メディア・サービング・アプリケーションなどでは一般的でありうる。
【0034】
他の例では、通信システム(200)は、たとえば、ビデオ会議中に発生する可能性がある符号化されたビデオデータの双方向送信を実行する第2のペアの端末デバイス(230)および(240)を含む。データの双方向送信の場合、一例では、端末デバイス(230)および(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)および(240)の他の端末デバイスに送信するために、ビデオデータ(たとえば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)を符号化することができる。端末デバイス(230)および(240)の各端末デバイスはまた、端末デバイス(230)および(240)の他の端末デバイスによって送信された符号化されたビデオデータを受け取り、符号化されたビデオデータをビデオピクチャを回復するために復号して、回復されたビデオデータに従ってアクセス可能な表示装置でビデオピクチャを表示することができる。
【0035】
図2の例では、端末デバイス(210)、(220)、(230)および(240)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、本開示の原理はそのように限定されなくともよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器での用途を見出す。ネットワーク(250)は、たとえばワイヤライン(有線)および/または無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)および(240)間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、通信ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネットなどがある。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0036】
図3は、開示された主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、たとえば、ビデオ会議、デジタルTV、そしてCD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納などを含む他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0037】
ストリーミングシステムは、たとえばデジタルカメラなどのビデオソース(301)を含むことができるキャプチャサブシステム(313)を含むことができ、たとえば非圧縮のビデオピクチャのストリーム(302)を作成する。一例では、ビデオピクチャのストリーム(302)は、デジタルカメラによって取得されたサンプルを含む。ビデオピクチャのストリーム(302)は、符号化されたビデオデータ(304)(または符号化されたビデオビットストリーム)と比較してデータ量が多いことを強調するために太い線で示され、ビデオソース(301)に結合されたビデオエンコーダ(303)を含む電子デバイス(320)で処理されうる。ビデオエンコーダ(303)は、以下詳述するような、開示された主題の態様を可能にするまたは実装するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。符号化されたビデオデータ(304)(または符号化されたビデオビットストリーム(304))は、ビデオピクチャのストリーム(302)と比較してデータ量が少ないことを強調するために細い線で示され、将来の使用のためにストリーミングサーバ(305)に格納されうる。
図3のクライアントサブシステム(306)および(308)などの1つまたは複数のストリーミング・クライアント・サブシステムは、ストリーミングサーバ(305)にアクセスして、符号化されたビデオデータ(304)のコピー(307)および(309)を取り出すことができる。クライアントサブシステム(306)は、たとえば、電子デバイス(330)内にビデオデコーダ(310)を含みうる。ビデオデコーダ(310)は、符号化されたビデオデータの着信コピー(307)を復号し、ディスプレイ(312)(たとえば、ディスプレイ画面)または他のレンダリングデバイス(図示せず)にレンダリングされうるビデオピクチャの出力ストリーム(311)を作成する。一部のストリーミングシステムでは、符号化されたビデオデータ(304)、(307)、および(309)(たとえば、ビデオビットストリーム)は、いくつかのビデオ符号化/圧縮標準に従って符号化されうる。これらの標準の例には、ITU-T勧告H.265が含まれる。一例として、開発中のビデオ符号化標準は、非公式に用途ビデオ符号化(VVC)として知られている。開示された主題は、VVCの文脈で使用されてもよい。
【0038】
電子デバイス(320)および(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。たとえば、電子デバイス(320)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は同様にビデオエンコーダ(図示せず)を含むことができる。
【0039】
図4は、本開示の実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信機(431)(たとえば、受信回路)を含みうる。ビデオデコーダ(410)は、
図3の例におけるビデオデコーダ(310)の代わりに使用されうる。
【0040】
受信器(431)は、ビデオデコーダ(410)によって復号される1つまたは複数の符号化されたビデオシーケンスを受け取ることができ、同じまたは他の実施形態では、一度に1つの符号化されたビデオシーケンスであり、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、符号化されたビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(401)から受け取ることができる。受信器(431)は、符号化されたビデオデータを他のデータ、たとえば、符号化されたオーディオデータおよび/または補助データストリームとともに受け取ることができ、それらはそれぞれの使用エンティティ(図示せず)に転送され得る。受信器(431)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)は、受信器(431)とエントロピーデコーダ/パーサ(420)(以下「パーサ(420)」)との間に結合され得る。いくつかの適用では、バッファメモリ(415)はビデオデコーダ(410)の一部である。他の場合には、それはビデオデコーダ(410)の外側にあってもよい(図示せず)。さらに他の場合には、たとえばネットワークジッタに対抗するために、ビデオデコーダ(410)の外側にバッファメモリ(図示せず)があってもよく、さらに、たとえば再生タイミングを処理するために、ビデオデコーダ(410)の内側に他のバッファメモリ(415)があってもよい。受信器(431)が十分な帯域幅および制御可能性を有する格納/転送デバイスから、または同期ネットワークからデータを受け取っているとき、バッファメモリ(415)は必要とされないか、または小さいものであってもよい。インターネットなどのベスト・エフォート・パケット・ネットワークで使用する場合、バッファメモリ(415)が必要になる場合があり、比較的大きく、有利にサイズを調整でき、オペレーティングシステムまたはビデオデコーダ(410)の外側の同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0041】
ビデオデコーダ(410)は、符号化されたビデオシーケンスからシンボル(421)を再構築するためのパーサ(420)を含み得る。これらのシンボルのカテゴリには、ビデオデコーダ(410)の動作を管理するために使用される情報、および場合によっては、レンダリングデバイス(412)などのレンダリングデバイス(たとえば、表示画面)を制御するための情報が含まれ、レンダリングデバイスは、
図4に示されているように、電子デバイス(430)の一体部分ではないが、電子デバイス(430)に結合されうる。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータ・セット・フラグメント(図示せず)の形であり得る。パーサ(420)は、受け取られた符号化されたビデオシーケンスを解析/エントロピー復号することができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、文脈依存性のある、またはない算術符号化などを含む様々な原理に従うことができる。パーサ(420)は、符号化されたビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループには、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含みうる。パーサ(420)はまた、符号化されたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどのような情報を抽出することができる。
【0042】
パーサ(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受け取られたビデオシーケンスに対してエントロピー復号/解析動作を行いうる。
【0043】
シンボル(421)の再構築には、符号化されたビデオピクチャまたはその一部(インターおよびイントラピクチャ、インターおよびイントラブロックなど)のタイプ、およびその他の要因に応じて、複数の異なるユニットが含まれ得る。どのユニットがどのように関与するかは、パーサ(420)によって符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御されうる。パーサ(420)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確性のため示されていない。
【0044】
すでに述べた機能ブロックの他に、ビデオデコーダ(410)は、以下で説明するように、概念的にいくつかの機能ユニットに細分されうる。商業的な制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合されうる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分が適切である。
【0045】
最初のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)から、使用する変換、ブロックサイズ、量子化係数、量子化スケーリングマトリックスなどを含む制御情報と、量子化された変換係数をシンボル(421)として受け取る。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力できるサンプル値を含むブロックを出力しうる。
【0046】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化されたブロックに関係することがあり、すなわち、以前に再構築されたピクチャからの予測情報を使用していないが、対象ピクチャの以前に再構築された部分からの予測情報を使用しうるブロックである。そのような予測情報は、イントラピクチャ予測ユニット(452)によって提供されうる。場合によっては、イントラピクチャ予測ユニット(452)は、対象ピクチャバッファ(458)からフェッチされた周囲のすでに再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。対象ピクチャバッファ(458)は、たとえば、部分的に再構築された対象ピクチャおよび/または完全に再構築された対象ピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供された出力サンプル情報に追加する。
【0047】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化された、場合によっては動き補償されたブロックに関係することがある。そのような場合、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関連するシンボル(421)に従って動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)の出力に追加できる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(453)が予測サンプルをフェッチする参照ピクチャメモリ(457)内のアドレスは、たとえば、X、Y、および参照ピクチャ成分を有し得るシンボル(421)の形で動き補償予測ユニット(453)に利用可能な動きベクトルによって制御されうる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(457)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどを含みうる。
【0048】
アグリゲータ(455)の出力サンプルは、ループ・フィルタ・ユニット(456)における様々なループフィルタリング手法を受けうる。ビデオ圧縮技術には、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(420)からのシンボル(421)としてループ・フィルタ・ユニット(456)で利用できるループ内フィルタ技術を含めることができるが、符号化されたピクチャまたは符号化されたビデオシーケンスの以前の(復号順の)部分の復号中に得られたメタ情報に反応するものであってよく、以前に再構築されループフィルタリングされたサンプル値に反応するものであってもよい。
【0049】
ループ・フィルタ・ユニット(456)の出力は、レンダリングデバイス(412)に出力されてもよく、かつ将来のインターピクチャ予測で使用するために参照ピクチャメモリ(457)に格納できるサンプルストリームとすることができる。
【0050】
いくつかの符号化されたピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして使用されうる。たとえば、対象ピクチャに対応する符号化されたピクチャが完全に再構築され、符号化されたピクチャが(たとえば、パーサ(420)によって)参照ピクチャとして識別されると、対象ピクチャバッファ(458)は参照ピクチャメモリ(457)の一部になることができ、次の符号化されたピクチャの再構築を開始する前に、新しい対象ピクチャバッファが再割り当てされうる。
【0051】
ビデオデコーダ(410)は、ITU-T勧告H.265などの標準における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化されたビデオシーケンスは、ビデオ圧縮技術または標準の構文と、ビデオ圧縮技術または標準のドキュメントとしてのプロファイルの両方に準拠しているという意味で、使用されているビデオ圧縮技術または標準によって指定された構文に従っていてもよい。具体的には、プロファイルは、ビデオ圧縮技術または標準で利用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとしていくつかのツールを選択できる。また、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または標準のレベルで定義されているレベル内にあることも、コンプライアンスに必要である。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(たとえば、メガサンプル/秒で測定)、最大参照ピクチャサイズなどが制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、符号化されたビデオシーケンスで通知されるHRDバッファ管理のメタデータによってさらに制限されることがある。
【0052】
一実施形態では、受信器(431)は、符号化されたビデオとともに追加の(冗長な)データを受け取ってもよい。追加のデータは、符号化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号し、および/または元のビデオデータをより正確に再構築するためにビデオデコーダ(410)によって使用されてもよい。追加のデータは、たとえば、時間的、空間的、または信号ノイズ比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式にすることができる。
【0053】
図5は、本開示の実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(たとえば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例におけるビデオエンコーダ(303)の代わりに使用されうる。
【0054】
ビデオエンコーダ(503)は、(
図5の例では電子デバイス(520)の一部ではない)ビデオソース(501)からビデオサンプルを受け取ることができ、ビデオソース(501)は、ビデオエンコーダ(503)によって符号化されるビデオ画像をキャプチャすることができる。他の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0055】
ビデオソース(501)は、任意の適切なビット深度(たとえば、8ビット、10ビット、12ビット、・・・)、任意の色空間(たとえば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(たとえば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタル・ビデオ・サンプル・ストリームの形態でビデオエンコーダ(503)によって符号化されるソース・ビデオ・シーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(501)は、以前に準備されたビデオを格納するストレージデバイスであり得る。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、空間的なピクセルのアレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに重点を置く。
【0056】
一実施形態によれば、ビデオエンコーダ(503)は、リアルタイムまたはアプリケーションによって要求される任意の他の時間制約の下で、ソース・ビデオ・シーケンスのピクチャを符号化し、符号化されたビデオシーケンス(543)に圧縮し得る。適切な符号化速度を強制することは、コントローラ(550)の1つの機能である。いくつかの実施形態では、コントローラ(550)は、以下で説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確性のため、結合は図示していない。コントローラ(550)によって設定されるパラメータには、レート制御関連のパラメータ(ピクチャスキップ、量子化、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル検索範囲、などが含まれ得る。コントローラ(550)は、あるシステム設計に対して最適化されたビデオエンコーダ(503)に関係する他の適切な機能を有するように構成することができる。
【0057】
いくつかの実施形態では、ビデオエンコーダ(503)は、符号化ループで動作するように構成される。過度に単純化した説明として、一例では、符号化ループは、ソースコーダ(530)(たとえば、符号化される入力ピクチャおよび参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成する責任を負う)、およびビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)を含み得る。デコーダ(533)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様の方法でサンプルデータを作成する(シンボルと符号化されたビデオビットストリーム間の圧縮は、開示された主題で検討されているビデオ圧縮技術では可逆であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビットパーフェクトな結果をもたらすため、参照ピクチャメモリ(534)のコンテンツもローカルエンコーダとリモートエンコーダ間でビットパーフェクトである。言い換えると、エンコーダの予測部分は、参照ピクチャのサンプルを、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値として「見る」。参照ピクチャの同期性のこの基本原理(および、たとえばチャネルエラーのために同期性を維持できない場合に生じるドリフト)は、いくつかの関連技術でも使用されている。
【0058】
「ローカル」デコーダ(533)の動作は、
図4に関連してすでに詳細に説明されている、ビデオデコーダ(410)などの「リモート」デコーダの動作と同じであり得る。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサ(420)による符号化されたビデオシーケンスへのシンボルの符号化/復号は可逆であり得るため、ビデオデコーダ(410)のエントロピー復号部分、ならびにバッファメモリ(415)およびパーサ(420)は、ローカルデコーダ(533)で完全に実装されない場合がある。
【0059】
この時点で注目できることは、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在する必要があることである。このため、開示された主題は、デコーダの動作に重点を置く。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。いくつかの領域についてのみ、より詳細な説明が必要であり、以下に与えられる。
【0060】
動作中、場合によっては、ソースコーダ(530)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する動き補償予測符号化を実行し得る。このようにして、符号化エンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差分を符号化する。
【0061】
ローカル・ビデオ・デコーダ(533)は、ソースコーダ(530)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号し得る。符号化エンジン(532)の動作は、損失の多いプロセスであることが有利であり得る。符号化されたビデオデータがビデオデコーダ(
図5には図示せず)で復号され得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを伴うソース・ビデオ・シーケンスのレプリカであり得る。ローカル・ビデオ・デコーダ(533)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ(534)に格納させ得る。このようにして、ビデオエンコーダ(503)は、遠端ビデオデコーダによって取得される再構築参照ピクチャとして(送信エラーはない)、共通のコンテンツを有する再構築参照ピクチャのコピーをローカルに格納し得る。
【0062】
予測器(535)は、符号化エンジン(532)の予測検索を実行しうる。すなわち、符号化される新しいピクチャについて、予測器(535)は、(候補参照ピクセルブロックとして)サンプルデータまたは参照ピクチャの動きベクトル、ブロック形状などのあるメタデータについて参照ピクチャメモリ(534)を検索することができ、これらは新しいピクチャの適切な予測参照として役立ちうる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロックのピクセルブロックごとに動作しうる。場合によっては、予測器(535)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから引き出された予測参照を有し得る。
【0063】
コントローラ(550)は、たとえば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)の符号化動作を管理しうる。
【0064】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)でエントロピー符号化を受けることができる。エントロピーコーダ(545)は、たとえばハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0065】
送信器(540)は、エントロピーコーダ(545)によって作成された符号化されたビデオシーケンスをバッファリングして、符号化されたビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(560)を介した送信に備えることができる。送信器(540)は、ビデオコーダ(503)からの符号化されたビデオデータを、送信される他のデータ、たとえば符号化オーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0066】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理しうる。符号化中、コントローラ(550)は、各符号化されたピクチャに対してある符号化されたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化手法に影響を及ぼし得る。たとえば、多くの場合、ピクチャは次のピクチャタイプのいずれかを割り当てられ得る。
【0067】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずに符号化および復号できるものであり得る。いくつかのビデオコーデックでは、たとえばIndependent Decoder Refresh(「IDR」)ピクチャなど、様々なタイプのイントラピクチャを使用できる。当業者は、Iピクチャのそれらの変形およびそれらのそれぞれの用途および特徴を知っている。
【0068】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して符号化および復号され得るものであり得る。
【0069】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して符号化および復号され得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構築に3つ以上の参照ピクチャと関連メタデータを使用できる。
【0070】
ソースピクチャは、通常、空間的に複数のサンプルブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロックごとに符号化される。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定された、他の(すでに符号化された)ブロックを参照して予測的に符号化され得る。たとえば、Iピクチャのブロックは非予測的に符号化されてもよいし、または同じピクチャのすでに符号化されたブロック(空間予測またはイントラ予測)を参照して予測的に符号化されてもよい。Pピクチャのピクセルブロックは、空間的予測を介して、または1つの以前に符号化された参照ピクチャを参照して時間的予測を介して、予測的に符号化され得る。Bピクチャのブロックは、空間的予測を介して、または1つまたは2つの以前に符号化された参照ピクチャを参照して時間的予測を介して、予測的に符号化され得る。
【0071】
ビデオエンコーダ(503)は、所定のビデオ符号化技術またはITU-T勧告H.265などの標準に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化されたビデオデータは、ビデオ符号化技術または使用されている標準で指定された構文に従うことができる。
【0072】
一実施形態では、送信器(540)は、符号化されたビデオとともに追加のデータを送信することができる。ソースコーダ(530)は、そのようなデータを、符号化されたビデオシーケンスの一部として含み得る。追加データは、時間的/空間的/SNR拡張層、冗長なピクチャおよびスライスなどの他の形式の冗長なデータ、SEIメッセージ、VUIパラメータ・セット・フラグメントなどを含み得る。
【0073】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。ピクチャ内予測(イントラ予測と略されることが多い)は与えられたピクチャの空間相関を利用し、ピクチャ間予測はピクチャ間の(時間的またはその他の)相関を利用する。一例では、対象ピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割される。対象ピクチャのブロックが、以前に符号化され、まだバッファリングされているビデオ内の参照ピクチャの参照ブロックに類似している場合、対象ピクチャのブロックは、動きベクトルと呼ばれるベクトルによって符号化されうる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有しうる。
【0074】
いくつかの実施形態では、ピクチャ間予測において双方向予測手法を使用することができる。双方向予測手法によれば、ビデオ内の対象ピクチャよりも復号順序がいずれも先行している(ただし、それぞれ表示順序が過去および未来である可能性がある)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。対象ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによって符号化されうる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測されうる。
【0075】
さらに、マージモード手法をピクチャ間予測で使用して、符号化効率を改善することができる。
【0076】
本開示のいくつかの実施形態によれば、ピクチャ間予測およびピクチャ内予測などの予測は、ブロックの単位で行われる。たとえば、HEVC標準に従って、ビデオピクチャのシーケンス内のピクチャは圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャのCTUは64×64ピクセル、32×32ピクセル、16×16ピクセルなど同じサイズである。一般に、CTUには3つの符号化ツリーブロック(CTB)が含まれ、これらは1つの輝度CTBと2つの色差CTBである。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的に四分木分割されうる。たとえば、64×64ピクセルのCTUは64×64ピクセルの1つのCU、32×32ピクセルの4つのCU、または16×16ピクセルの16のCUに分割されうる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために分析される。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUには輝度予測ブロック(PB)と2つの色差PBが含まれる。一実施形態では、符号化(符号化/復号)における予測動作は、予測ブロックの単位で行われる。輝度予測ブロックを予測ブロックの例として使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルの値(輝度値など)のマトリックスを含む。
【0077】
図6は、本開示の他の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャのシーケンス内の対象ビデオピクチャ内のサンプル値の処理ブロック(たとえば、予測ブロック)を受け取り、処理ブロックを、符号化されたビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(603)は、
図3の例におけるビデオエンコーダ(303)の代わりに使用される。
【0078】
HEVCの例では、ビデオエンコーダ(603)は、8×8のサンプルなどの予測ブロックなどの処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(603)は、たとえば、レート歪み最適化を使用して、イントラモード、インターモード、または双方向予測モードを使用して、処理ブロックが最良に符号化されるかどうかを決定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(603)は、イントラ予測手法を使用して、処理ブロックを符号化されたピクチャに符号化することができ、処理ブロックがインターモードまたは双方向予測モードで符号化される場合、ビデオエンコーダ(603)は、それぞれインター予測または双方向予測手法を使用して、処理ブロックを符号化されたピクチャに符号化することができる。いくつかのビデオ符号化技術では、マージモードは、動きベクトルが予測(predictors)の外の符号化された動きベクトル成分の恩恵を受けることなく1つまたは複数の動きベクトル予測(predictors)から導き出される、ピクチャ間予測サブモードでありうる。いくつかの他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在しうる。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0079】
図6の例では、ビデオエンコーダ(603)は、
図6に示されるように一緒に結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)およびエントロピーエンコーダ(625)を含む。
【0080】
インターエンコーダ(630)は、対象ブロック(たとえば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ(たとえば、前のピクチャおよび後のピクチャのブロック)の1つまたは複数の参照ブロックと比較し、インター予測情報(たとえば、インター符号化手法、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な手法を使用してインター予測情報に基づいてインター予測結果(たとえば予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号される復号された参照ピクチャである。
【0081】
インターエンコーダ(630)は、対象ブロック(たとえば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ(たとえば、前のピクチャおよび後のピクチャのブロック)の1つまたは複数の参照ブロックと比較し、インター予測情報(たとえば、インター符号化手法、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な手法を使用してインター予測情報に基づいてインター予測結果(たとえば予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号される復号された参照ピクチャである。
【0082】
一般コントローラ(621)は、一般制御データを決定し、一般制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一例では、一般コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を提供する。たとえば、モードがイントラモードである場合、一般コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)が使用するイントラモードの結果を選択し、エントロピーエンコーダ(625)を制御してイントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、そしてモードがインターモードである場合、一般コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)が使用するインター予測結果を選択し、エントロピーエンコーダ(625)を制御してインター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0083】
残差計算器(623)は、受信したブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作して、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次に、量子化された変換係数を取得するために、変換係数に量子化処理を行う。様々な実施形態では、ビデオエンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)によって適切に使用することができる。たとえば、インターエンコーダ(630)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成することができ、イントラエンコーダ(622)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
【0084】
エントロピーエンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC標準などの適切な標準に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、一般制御データ、選択された予測情報(たとえば、イントラ予測情報またはインター予測情報)、残差情報、およびビットストリーム内の他の適切な情報を含むように構成される。開示された主題によれば、インターモードまたは双方向予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報はないことに留意されたい。
【0085】
図7は、本開示の他の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受け取り、符号化されたピクチャを復号して再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ(710)は、
図3の例におけるビデオデコーダ(310)の代わりに使用される。
【0086】
図7の例では、ビデオデコーダ(710)は、
図7に示されるように一緒に結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)、およびイントラデコーダ(772)を含む。
【0087】
エントロピーデコーダ(771)は、符号化されたピクチャから、符号化されたピクチャを構成する構文要素を表すいくつかのシンボルを再構築するように構成することができる。そのようなシンボルは、たとえば、ブロックが符号化されるモード(たとえば、イントラモード、インターモード、双方向予測モード、マージサブモードまたは他のサブモードにおけるインターモードおよび双方向予測モード)、イントラデコーダ(772)またはインターデコーダ(780)それぞれによる予測に使用されるあるサンプルまたはメタデータを識別できる予測情報(たとえば、イントラ予測情報またはインター予測情報)、たとえば量子化された変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双方向予測モードである場合、インター予測情報はインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報はイントラデコーダ(772)に提供される。残差情報は逆量子化を受ける可能性があり、残差デコーダ(773)に提供される。
【0088】
インターデコーダ(780)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0089】
イントラデコーダ(772)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0090】
残差デコーダ(773)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)はまた、量子化パラメータ(QP)を含むためにある制御情報を必要とする場合があり、その情報は、エントロピーデコーダ(771)によって提供される場合がある(データパスは、低ボリューム制御情報のみであるため、図示されてない)。
【0091】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)によって出力された残差と(場合によってはインターまたはイントラ予測モジュールによって出力された)予測結果とを組み合わせて再構築されたブロックを形成するように構成され、再構築されたブロックは再構築された画像の一部である可能性があり、再構築された画像は再構築されたビデオの一部である可能性がある。視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行できることに留意されたい。
【0092】
ビデオエンコーダ(303)、(503)および(603)、ならびにビデオデコーダ(310)、(410)および(710)は、任意の適切な手法を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ(303)、(503)および(603)、ならびにビデオデコーダ(310)、(410)および(710)は、1つまたは複数の集積回路を使用して実装できる。他の実施形態では、ビデオエンコーダ(303)、(503)および(503)、ならびにビデオデコーダ(310)、(410)および(710)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装できる。
【0093】
II.デブロッキングにおける境界強度の導出
HEVCでは、デブロッキング・フィルタリング・プロセスは、復号プロセスと同じ順序で各CUに対して行われる。最初に垂直エッジがフィルタリングされ(水平フィルタリング)、次に水平エッジがフィルタリングされる(垂直フィルタリング)。8×8のブロック境界がフィルタリングされると決定された場合、フィルタリングは、輝度および色差成分の両方について、8×8のブロック境界に適用され得る。複雑さを軽減するために、4×4のブロック境界は処理されない場合がある。境界強度(Bs)は、境界に使用できるデブロッキング・フィルタリング・プロセスの程度または強度を示すために使用できる。一実施形態では、Bsの値2は強いフィルタリングを示し、1は弱いフィルタリングを示し、0はデブロッキングフィルタリングなしを示す。
【0094】
一実施形態では、Bsは4×4のサンプルグリッドベースで計算されるが、8×8のサンプルグリッドに再マッピングされうる。一例では、8×8のブロックは4つの4×4のブロックを含むので、8×8のブロックの境界は、2つの隣接する4×4のブロックの2つの辺を含む。4×4のグリッドの線を形成する8ピクセルに対応するBsの2つの値の最大値は、8×8のグリッドの境界のBsとして選択されうる。
【0095】
図8は、本開示の一実施形態によるBs値を決定するための例示的なプロセス(800)のフローチャートを示す。他の実施形態では、
図8のステップの順序を並べ替えるか、1つまたは複数のステップを省略できることに留意されたい。
【0096】
図8では、PおよびQは2つの隣接するブロックであり、それらの間に境界がある。垂直エッジの場合、Pは境界の左側にあるブロックを表し、Qは境界の右側にあるブロックを表すことができる。水平エッジの場合、Pは境界の上にあるブロックを表し、Qは境界の下にあるブロックを表すことができる。
【0097】
図8に示されるように、Bs値は、予測モード(たとえば、イントラ符号化モード)、非ゼロ変換係数(たとえば、非ゼロ変換係数の存在)、参照ピクチャ、動きベクトルの数、および動きベクトルの差に基づいて決定されうる。
【0098】
ステップ(S810)で、プロセス(800)は、PまたはQがイントラ予測モードで符号化されているかどうかを決定する。PおよびQの少なくとも1つがイントラ予測モードで符号化されていると決定されると、プロセス(800)は、Bsの第1の値(たとえば、2)を決定する。そうでなければ、プロセス(800)はステップ(S820)に進む。
【0099】
ステップ(S820)で、プロセス(800)は、PまたはQが非ゼロ変換係数を有するかどうかを決定する。PおよびQの少なくとも1つが非ゼロ変換係数を有すると決定されると、プロセス(800)は、Bsの第2の値(たとえば、1)を決定する。そうでなければ、プロセス(800)はステップ(S830)に進む。
【0100】
ステップ(S830)で、プロセス(800)は、PおよびQが異なる参照ピクチャを有するかどうかを決定する。PおよびQが異なる参照ピクチャを有すると決定されると、プロセス(800)は、Bsの第3の値(たとえば、1)を決定する。そうでなければ、プロセス(800)はステップ(S840)に進む。
【0101】
ステップ(S840)で、プロセス(800)は、PおよびQが異なる数の動きベクトルを有するかどうかを決定する。PおよびQが異なる数の動きベクトルを有すると決定されると、プロセス(800)は、Bsの第4の値(たとえば、1)を決定する。そうでなければ、プロセス(800)はステップ(S850)に進む。
【0102】
ステップ(S850)で、プロセス(800)は、PとQとの間の動きベクトル差がしきい値T以上かどうかを決定する。PとQとの間の動きベクトル差がしきい値T以上であると決定されると、プロセス(800)は、Bsの第5の値(たとえば、1)を決定する。そうでなければ、プロセス(800)は、Bsの第6の値(たとえば、0)を決定する。一実施形態では、しきい値Tは1ピクセルに設定される。例では、MV精度は1/4ピクセルであり、MV差しきい値の値は4に設定されうる。他の例では、MV精度は1/16であり、MV差の値は16に設定されうる。
【0103】
III.ブロック差分パルス符号変調モード
ブロック差分パルス符号変調(BDPCM)は、ブロックレベルで差分パルス符号変調(DPCM)アプローチを使用するイントラ符号化ツールである。bdpcm_flagは、CUが各寸法が32以下の輝度イントラ符号化CUである場合は常に、CUレベルで送信できる。このフラグは、通常のイントラ符号化とDPCMのどちらが使用されているか、および単一のコンテキストベースの適応型バイナリ算術符号化(CABAC)コンテキストを使用して符号化されていることを示す。
【0104】
BDPCMは、LOCO-Iのメディアンエッジ検出器を使用する場合がある(たとえば、JPEG-LSで使用される)。具体的には、ピクセルAを左近傍、ピクセルBを上近傍、Cを左上近傍とする対象ピクセルXの場合、対象ピクセルX P(X)の予測は次の式で決定される。
C≧max(A、B)の場合はP(X)=min(A、B)
C≦min(A、B)の場合はmax(A、B)
それ以外の場合はA+B-C
【0105】
ピクセル予測器は、CUの一番上の行と左の列から予測する場合、フィルタリングされていない参照ピクセルを使用する。次に、予測器は、CUの残りの部分に再構築されたピクセルを使用する。ピクセルは、CU内でラスタスキャンの順序で処理される。予測誤差は、再スケーリング後、変換スキップ量子化器と同じ方法で空間領域で量子化されうる。逆量子化された予測誤差を予測に追加することにより、各ピクセルが再構築されうる。したがって、再構築されたピクセルを使用して、ラスタスキャン順序で次のピクセルを予測できる。量子化された予測誤差の振幅と符号(sign)は別々に符号化される。cbf_bdpcm_flagも符号化される。cbf_bdpcm_flagが0に等しい場合、ブロックのすべての振幅はゼロとして復号される。cbf_bdpcm_flagが1に等しい場合、ブロックのすべての振幅はラスタスキャン順序で個別に符号化される。複雑さを低く抑えるために、振幅を最大でも31(両端を含む)に制限できる。振幅は、単項バイナリ化を使用して符号化されえ、最初のビンには3つのコンテキストがあり、12番目のビンまでは追加のビンごとに1つのコンテキストがあり、残りのすべてのビンには1つのコンテキストがある。符号は、ゼロ残差ごとにバイパスモデルで符号化できる。
【0106】
通常のイントラモード予測の一貫性を維持するために、イントラモード予測の最も可能性の高いモード(MPM)リスト内の第1のモードは(送信されることなく)BDPCM CUに関連付けられ、後続ブロックのMPMを生成するために利用可能である。
【0107】
BDPCM符号化ブロックはいずれも、通常はブロッキングアーティファクトの原因である変換を行わないため、デブロッキングフィルタは2つのBDPCM符号化ブロック間の境界で、非アクティブ化されてもよい。さらに、BDPCMは、ここで説明されているもの以外のステップを使用しない場合がある。特に、BDPCMは、上記のように残差符号化における変換を行わない場合がある。
【0108】
BDPCMのスループットの向上と、他のスクリーンコンテンツ符号化(SCC)ツールとの相互作用を調査するために、BDPCMに関するいくつかのテストが実施された。
【0109】
図9Aは、一実施形態によるBDPCM符号化ブロックの例を示している。
図9Aに示される例は、テスト1に関連している。
図9Aに示されるように、スループットを増加させるために、より小さい(たとえば、4x4、4x8、および8x4のサイズを有する)ブロックは、ブロックを効果的に2つの半分(たとえば、階段状のパーティション)へ分割する対角線を使用して、2つの個別に復号可能な領域に分割され得る。
【0110】
一実施形態では、第1の半分のある領域からのピクセルは、予測を計算するために第2の半分の他の領域からのピクセルを使用することを許可されてはならない。ある領域からのピクセルが予測を計算するために他の領域からのピクセルを使用する必要がある場合は、代わりに参照ピクセルが使用される。たとえば、他の領域からのピクセルは、最も近い参照ピクセルによって置き換えられ得る。たとえば、左近傍は同じ行の左の参照ピクセルで置き換えられ、上近傍は同じ列の左の参照ピクセルで置き換えられ、左上近傍は最も近い参照ピクセルに置き換えられうる。したがって、2つの領域は並行して処理されうる。
【0111】
図9Aはまた、異なるサイズを有する各ブロックの例示的なスループットを提供する。たとえば、2つの個別に復号可能な領域を持つ4×4のブロックの場合、スループットは1サイクルあたり4ピクセルでありうる。2つの個別に復号可能な領域を持つ4×8または8×4のブロックの場合、スループットは1サイクルあたり5.33ピクセルでありうる。個別に復号可能な領域がない8×8のブロックの場合、スループットは1サイクルあたり4.26ピクセルでありうる。個別に復号可能な領域がない8×8のブロックの場合、スループットは1サイクルあたり4.26ピクセルでありうる。個別に復号可能な領域がない16×16のブロックの場合、スループットは1サイクルあたり8.25ピクセルでありうる。
【0112】
図9Bは一実施形態によるBDPCM符号化ブロックの例を示す。
図9Bに示される例は、テスト2に関連している。
図9Bでは、ブロックは、JPEG-LS予測器(predictor)を置き換えるために、垂直または水平予測器(predictor)を使用して分割され得る。垂直または水平予測器が選択され、ブロックレベルでシグナリングされうる。個別に復号可能な領域の形状は、予測器の形状を反映している。対象ピクセルの予測に左または上のピクセルを使用する水平または垂直予測器の形状により、ブロックを処理する最もスループット効率の高い方法は、1つの列または行のすべてのピクセルを並列に処理すること、およびこれらの列または行を順番に処理することである。たとえば、スループットを向上させるために、幅4のブロックは、このブロックで選択された予測器が垂直の場合、水平境界で2つの半分に分割され、高さ4のブロックは、このブロックで選択された予測器が水平の場合、垂直境界で2つの半分に分割される。2つの個別に復号可能な領域を持つ4×4のブロック、8×4、または4×8のブロックの場合、スループットは1サイクルあたり8ピクセルであってもよい。個別に復号可能な領域がない4×8のブロック、8×4のブロック、または8×8のブロックの場合、スループットは1サイクルあたり8ピクセルであってもよい。個別に復号可能な領域がない16×16のブロックの場合、スループットは1サイクルあたり16ピクセルであってもよい。
【0113】
テスト3では、本開示の実施形態によれば、BDPCM残差振幅は28に制限され、振幅は、最初の12個のビンについてはトランケート・ユーナリ・バイナリ化で符号化され、その後、残りのビンについては次数2の指数ゴロム等確率(たとえば、encodeRemAbsEP()関数を使用)が続く。
【0114】
IV.変換係数の符号化
エントロピー符号化は、ビデオ信号が一連のシンタックス要素に変換された後、映像符号化の最終段階(またはビデオ復号の最初の段階)で行われうる。エントロピー符号化は、データを表すために使用されるビット数がデータの確率に対数的に比例するように、統計プロパティを使用してデータを圧縮する可逆圧縮方式にすることができる。たとえば、シンタックス要素のセットに対してエントロピー符号化を実行することにより、シンタックス要素を表すビット(ビンと呼ばれる)はビットストリーム内のより少ないビット(符号化されたビットと呼ばれる)に変換されうる。CABACは、エントロピー符号化の1つの形式である。CABACでは、確率推定量を提供するコンテキストモデルは、それぞれのビンに関連付けられたコンテキストに基づいて、一連のビン内の各ビンに対して決定できる。続いて、確率推定量を使用してバイナリ算術符号化プロセスを実行して、ビンのシーケンスをビットストリーム内の符号化されたビットに符号化することができる。さらに、コンテキストモデルは、符号化されたビンに基づく新しい確率推定量で更新される。
【0115】
図10Aは、一実施形態による例示的なCABACベースのエントロピーエンコーダ(1000A)を示している。たとえば、エントロピーエンコーダ(1000A)は、
図5の例ではエントロピーコーダ(545)、または
図6の例ではエントロピーエンコーダ(625)に実装されうる。エントロピーエンコーダ(1000A)は、コンテキストモデラ(1010)およびバイナリ算術エンコーダ(1020)を含むことができる。一例では、様々なタイプのシンタックス要素が、エントロピーエンコーダ(1000A)への入力として提供される。たとえば、バイナリ値化されたシンタックス要素のビンは、コンテキストモデラ(1010)に直接入力されえ、一方、バイナリ値化されていないシンタックス要素は、ビン文字列のビンがコンテキストモデラ(1010)に入力される前に、ビン文字列へとバイナリ化されうる。
【0116】
一例では、コンテキストモデラ(1010)は、シンタックス要素のビンを受信し、コンテキスト・モデリング・プロセスを行って、受信されたビンごとにコンテキストモデルを選択する。たとえば、変換ブロック内の変換係数のバイナリシンタックス要素のビンが受信される。対象ブロックが予測のためにBDPCMで符号化されている場合、変換ブロックは変換スキップブロックでありうる。したがって、たとえば、シンタックス要素のタイプ、変換コンポーネントの色コンポーネントタイプ、変換係数の位置、および以前に処理された近傍の変換係数などに基づいて、このビンについてのコンテキストモデルが決定されうる。コンテキストモデルは、このビンについての確率推定量を提供しうる。
【0117】
一例では、1つまたは複数のタイプのシンタックス要素に対して一組のコンテキストモデルが構成されうる。これらのコンテキストモデルは、
図10Aに示されるように、メモリ(1001)に格納されるコンテキストモデルリスト(1002)に配置することができる。コンテキストモデルリスト(1002)の各エントリは、コンテキストモデルを表すことができる。リスト内の各コンテキストモデルには、コンテキストモデルインデックスまたはコンテキストインデックスと呼ばれるインデックスが割り当てられうる。さらに、各コンテキストモデルは、確率推定量、または確率推定量を示すパラメータを含むことができる。確率推定量は、ビンが0または1である可能性を示すことができる。たとえば、コンテキストモデリング中に、コンテキストモデラ(1010)は、ビンのコンテキストインデックスを計算することができ、それに応じてコンテキストモデルは、コンテキストインデックスに従ってコンテキストモデルリスト(1002)から選択され、ビンに割り当てられる。
【0118】
さらに、コンテキストモデルリストの確率推定量は、エントロピーエンコーダ(1000A)の動作の開始時に初期化されうる。コンテキストモデルリスト(1002)内のコンテキストモデルがビンに割り当てられ、ビンを符号化するために使用された後、コンテキストモデルはその後、更新された確率推定量でビンの値に従って更新され得る。
【0119】
一例では、バイナリ算術エンコーダ(1020)は、ビンおよびビンに割り当てられたコンテキストモデル(たとえば、確率推定量)を受信し、それに応じて、バイナリ算術符号化プロセスを行う。その結果、符号化されたビットが生成され、ビットストリームで送信される。
【0120】
図10Bは、一実施形態による例示的なCABACベースのエントロピーデコーダ(1000B)を示す。たとえば、エントロピーデコーダ(1000B)は、
図4の例ではパーサ(420)、または
図7の例ではエントロピーデコーダ(771)に実装されうる。エントロピーデコーダ(1000B)は、バイナリ算術デコーダ(1030)、およびコンテキストモデラ(1040)を含みうる。バイナリ算術デコーダ(1030)は、ビットストリームから符号化されたビットを受信し、バイナリ算術復号プロセスを実行して、符号化されたビットからビンを復元する。コンテキストモデラ(1040)は、コンテキストモデラ(1010)と同様に動作することができる。たとえば、コンテキストモデラ(1040)は、メモリ(1003)に格納されたコンテキストモデルリスト(1004)内のコンテキストモデルを選択し、選択されたコンテキストモデルをバイナリ算術デコーダ(1030)に提供することができる。コンテキストモデラ(1040)は、バイナリ算術デコーダ(1030)から復元されたビンに基づいてコンテキストモデルを決定することができる。たとえば、復元されたビンに基づいて、コンテキストモデラ(1040)は、次に復号されるビンのシンタックス要素のタイプ、および以前に復号されたシンタックス要素の値を知ることができる。その情報は、次に復号されるビンのコンテキストモデルを決定するために使用される。
【0121】
V.コンテキスト符号化されたビンの数に対する制限
上記のように、各ピクセルに関連付けられた残差は、その符号(sign)を表すビンとその絶対値を表す一連のビンへとバイナリ化されうる。絶対値は、所与の数(たとえば、31または28)以下になるように量子化されうる。1つ以上のコンテキストモデル、または等確率(EP)モデル(すなわち、バイパスモデル)は、各ビンに関連付けられうる。残差シンボルごとに、最大13個のビンが1つまたは複数のコンテキストモデルに関連付けられうる。多数のコンテキスト符号化されたビン(たとえば、少なくともコンテキストモデルに関連付けられたビン)は、構文符号化中のエントロピーエンコーダまたはデコーダのスループットを低下させる場合があり、いくつかのコーデック実装(たとえば、いくつかのハードウェアコーデック)では負担になる場合がある。したがって、コンテキスト符号化されたビンの最大数を設定すると、たとえば、符号化速度が向上するだけでなく、必要なメモリサイズとそれらのコンテキストモデルを維持するためのコストを削減することもできる。
【0122】
したがって、本開示の態様は、変換係数エントロピー符号化に使用されるコンテキスト符号化されたビンの数を制限するための方法を含む。たとえば、BDPCMモードでは、量子化残差のバイナリ表現内のビンの数をコンテキストモデルに関連付けることができる。いくつかの実施形態では、コンテキストモデルに関連付けられるビンの数に1つまたは複数の制限が課せられる。
【0123】
W×Hのブロックは、複数のサブ領域に仮想的に分割されうる。複数のサブ領域のサブセットは、互いに並列にBDPCMで符号化され得る。一例では、複数のサブ領域のそれぞれは、互いに並列にBDPCMで符号化され得る。W×Hのブロックは、変換ブロックまたは変換スキップブロックでありうる。各サブ領域についてのコンテキスト符号化されたビンの最大数(たとえば、MaxCcbs)はB×Aに設定されえ、ここで、Aはサブ領域内の量子化残差の数であり、Bは正の数である。Bは、たとえばエンコーダからデコーダへ、ビットストリームで通知されてもよく、されなくともよい。サブ領域内のビンの数が制限(たとえば、B×A)を超えない場合、サブ領域内の各ビンはコンテキストモデルで符号化されうる。サブ領域内のビンの数がこの制限を超える場合、コンテキスト符号化されない残りのビンは、他のモデル(たとえば、EPモデル)で符号化され得る。
【0124】
一実施形態では、Bは、輝度および色差成分について同じである。たとえば、B=2である。一実施形態では、Bは、輝度および色差成分について異なる。たとえば、輝度成分の場合はB=2、色差成分の場合はB=1である。
【0125】
一実施形態では、Bは、0.5または1.2などの分数であり得る。いくつかの例では、BはAに依存する。Aは、上記で定義したように、サブ領域内の量子化残差の数である。たとえば、Aがしきい値よりも小さい場合、Bは特定の値(たとえば、1)に等しくともよい。そうでない場合、Bは他の値(たとえば、2)と等しくともよい。しきい値は、たとえば、4、8、16、32、64、128、または256でありうる。
【0126】
一実施形態では、Bは、2つのしきい値に基づいて決定され得る。たとえば、Aが第1のしきい値よりも小さい場合、Bは第1の値(たとえば、1)に等しくともよい。Aが第2のしきい値以上である場合、Bは第2の値(たとえば、2)に等しくともよい。例として、第1および第2のしきい値は、4、8、16、32、64、128、および/または256の値のいずれかであり得る。
【0127】
一実施形態では、Bは、上記と同様の方法で、2つより多い(たとえば、3つ)しきい値に基づいて決定され得る。たとえば、Aが第1のしきい値よりも小さい場合、Bは第1の値(たとえば、0.5)に等しくともよい。Aが第1のしきい値以上で第2のしきい値よりも小さい場合、Bは第2の値(たとえば、1)に等しくともよい。Aが第3のしきい値以上である場合、Bは第3の値(たとえば、2)に等しくともよい。例として、第1、第2、および第3のしきい値は、4、8、16、32、64、128、および/または256の値のいずれかであり得る。
【0128】
一実施形態では、W×Hのブロックはサブ領域に分割されず、1つの領域のみを含む。領域のコンテキスト符号化されたビンの最大数もB×Aに設定されうる。この場合、AはW×Hに等しく、Bは正の数であり、コンテキスト符号化されたビン(MaxCcbsなど)の最大数はB×W×Hに等しい。ブロック内のビンの数が制限(たとえば、B×W×H)を超えない場合、ブロック内の各ビンをコンテキストモデルで符号化できる。ブロック内のビンの数がこの制限を超えると、コンテキスト符号化されない残りのビンは、別のモデル(たとえば、EPモデル)で符号化され得る。
【0129】
一実施形態では、W×HのブロックはHのサブ領域に分割され、各サブ領域は1行のW残差を含む。この場合、AはWに等しくなる場合があり、各行のコンテキスト符号化されたビンの最大数(たとえば、MaxCcbs)はB×Wに等しくなる。行内のビンの数が制限(たとえば、B×W)を超えない場合、行内の各ビンはコンテキストモデルで符号化されうる。行内のビンの数がこの制限を超えると、コンテキストモデルに関連付けられていない残りのビンは、別のモデル(たとえば、EPモデル)で符号化され得る。
【0130】
一実施形態では、W×HのブロックはWのサブ領域に分割され、各サブ領域は1列のH残差を含む。この場合、AはHに等しくなる場合があり、各列のコンテキスト符号化されたビンの最大数(たとえば、MaxCcbs)はB×Hに等しくなる。サブ領域内のビンの数が制限(たとえば、B×H)を超えない場合、列内の各ビンはコンテキストモデルで符号化されうる。列内のビンの数がこの制限を超えると、コンテキストモデルに関連付けられていない残りのビンは、別のモデル(たとえば、EPモデル)で符号化され得る。
【0131】
一実施形態では、任意のパーティションを使用して、
図9Aに記載されている階段状のパーティション、または
図9Bに記載されている水平/垂直分割などのサブ領域を生成することができる。さらに、上記の他の実施形態では、3つ以上のパーティションを使用することができる。
【0132】
図11は、コンテキスト符号化されたビンの最大数に基づく係数符号化の例示的な方法を示す。コンテキスト符号化されたビンの最大数は、たとえば、上記の実施形態のうちの1つまたは複数に基づいて設定されうる。
【0133】
上記のように、シンタックス要素(たとえば、ビン)を表すビットは、シンタックス要素に対してエントロピー符号化を行うことによって、ビットストリーム内のより少ないビットに変換されうる。
図11では、量子化残差(1110)は、バイナリ符号化を使用してバイナリ文字列(1120)に変換され得る。たとえば、変換されたバイナリ文字列(1120)は、
11010010001111100011101010010101010010101010111000111000101101011010101110でありうる。バイナリ文字列(1120)は、4つのセグメントを含んでもよく、2つのシンタックス要素を表わしてもよい。第1のシンタックス要素のビンは110100100011111000111010100101010であり、第2のシンタックス要素のビンは10010101010111000111000101101011010101110である。
図5のエントロピーエンコーダ(545)または
図6のエントロピーエンコーダ(625)などのCABACベースのエントロピーエンコーダは、コンテキスト符号化されたビンの最大数に基づいてバイナリ文字列に対してコンテキストモデリングを行うことができる。たとえば、ブロックの幅Wとブロックの高さHのいずれも4に等しく、ブロックが1つの領域のみを含む場合、Aは4×4=16に等しく、Bは2に設定され得る。したがって、ブロック内のコンテキスト符号化されたビンの最大数はB×A=32である。したがって、
図11に示されるように、このブロックのコンテキスト符号化されたビンの数(太字および下線のフォントで表示)が32に達しない場合(バイナリ文字列の最初の3つのセグメントに表示)、エントロピーエンコーダはBDPCMアルゴリズムに従ってコンテキストモデリングを使用してビンを符号化するかどうかを自由に選択する。(第4のセグメントに示されているように)コンテキスト符号化されたビンの最大数(たとえば、MaxCcbs)に達すると、残りのビンはコンテキストモデリングで符号化できない。代わりに、ビンはEPモデルで符号化されうる。いくつかの例では、エントロピーエンコーダはカウンタを含んでもよく、カウンタはコンテキスト符号化されたビンの数をカウントする。カウンタ出力は、最初は0に設定されえ、0からコンテキスト符号化されたビンの最大数までカウントしうる。カウンタがコンテキスト符号化されたビンの最大数に達すると、残りのビンはコンテキストモデリングで符号化されてはならない。
【0134】
一実施形態では、ブロックの幅Wおよびブロックの高さHのいずれも8に等しい場合、ブロックは同じサイズの4つのサブ領域に分割される。各サブ領域のサイズは4×4である。したがって、Aは16に等しくなる。この場合、Bは2であり、コンテキスト符号化されたビンの最大数は32である。したがって、
図11に記載された例は、この実施形態にも適用されうる。
【0135】
図12は、コンテキスト符号化されたビンの最大数に基づく係数復号の例示的な方法を示している。一実施形態によれば、CABACベースのエントロピーデコーダを提供することができる。エントロピーデコーダは、
図4の例ではパーサ(420)、または
図7の例ではエントロピーデコーダ(771)に実装することができる。上記のように、エントロピーデコーダのバイナリ算術デコーダは、ビットストリームから符号化されたビット(1210)を受信し、バイナリ算術復号プロセスを行い、符号化されたビンからビン(1220)を回復する。エントロピーエンコーダと同様に、エントロピーデコーダは、ブロックまたは分割されたサブ領域のサイズに基づいて、コンテキスト符号化されたビンの最大数を決定することもできる。たとえば、ブロックの幅Wとブロックの高さHのいずれも4に等しく、ブロックが1つの領域のみを含む場合、Aは16に等しく、Bは2に設定され得る。したがって、コンテキスト符号化されたビンの最大数はB×A=32である。したがって、
図12に示されるように、このブロックのコンテキスト符号化されたビンの数(太字および下線のフォントで表示)が32に達しない場合(バイナリ文字列の最初の3つのセグメントに表示)、エントロピーデコーダはBDPCMアルゴリズムに従ってコンテキストモデリングを使用して、符号化されたビンを復号するかどうかを自由に選択する。コンテキスト符号化されたビンが(第4のセグメントに示されているように)最大数に達すると、ビンはコンテキストモデリングで復号できない。代わりに、ビンはEPモデルで復号される。復号されたバイナリ文字列(1220)は、非バイナリ化プロセスを使用して量子化残差(1230)に変換されうる。
【0136】
VI.BDPCM符号化ブロックへのデブロッキングフィルタの適用
上記のように、たとえば、BDPCM符号化ブロックはいずれもブロッキングアーティファクトを引き起こす変換を行わないため、デブロッキングフィルタは2つのBDPCM符号化ブロック間の境界で非アクティブ化されてもよい。ブロックアーティファクトを回避または最小化するために、デブロッキングフィルタは、知覚アーティファクトを回避または最小化するためにブロックの少なくとも1つがBCPCMで符号化される2つのブロックの間に適用されうる。
【0137】
一実施形態では、デブロッキングフィルタは、BDPCM符号化ブロックと非BDPCM符号化ブロックとの間でいつでもアクティブ化または非アクティブ化され得る。いくつかの例では、境界強度(Bs)は、BDPCM符号化ブロックと非BDPCM符号化ブロックとの間の固定値に設定される。固定値は0、1、または2である。たとえば、値0はデブロッキングフィルタが非アクティブ化されていることを示し、1は弱いフィルタリングが適用されていることを示し、2は強いフィルタリングが適用されていることを示す。
【0138】
一実施形態では、デブロッキングフィルタは、2つの隣接するBDPCM符号化ブロック間でいつでもアクティブ化され得る。Bsは、2つのBDPCM符号化ブロックの予測モードに従って異なる値に設定され得る。いくつかの例では、一方のブロックが水平BDPCMで符号化され、もう一方のブロックが垂直BDPCMで符号化される場合、Bsは2に設定される。他の例では、両方のブロックが水平予測を使用して符号化される場合、Bsは1に設定される。
【0139】
いくつかの実施形態では、デブロッキングフィルタは、2つの隣接するBDPCM符号化ブロック間で条件付きでアクティブ化され得る。いくつかの例では、2つの隣接するBDPCM符号化ブロックのQPの差がしきい値よりも大きい場合にのみ、デブロッキングフィルタがアクティブ化される。しきい値は、たとえば0、1、2、または3にすることができる。
【0140】
いくつかの例では、デブロッキングフィルタは、2つのBDPCM符号化ブロックが異なる予測モードを有する場合にのみアクティブ化される。たとえば、一方のブロックが水平BDPCMで符号化され、もう一方のブロックが垂直BDPCMで符号化されている場合、デブロッキングフィルタがアクティブ化される。
【0141】
いくつかの例では、BDPCMは、2つの隣接するBDPCMモード間の境界強度の導出においてイントラモードとは見なされない。境界強度の導出における参照およびMVチェックは、2つの隣接するBDPCMブロックに対してスキップされる。たとえば、
図8に記載の境界強度導出プロセスが適用され、2つの隣接するBDPCM符号化ブロックの少なくとも1つが非ゼロ係数を有する場合、Bsは1に設定され、デブロッキングフィルタがアクティブ化される。2つの隣接するBDPCM符号化ブロックのどちらにも非ゼロ係数がない場合、Bsは0に設定され、デブロッキングフィルタは非アクティブ化される。
【0142】
VII.例示的な復号プロセス
図13は、本開示のいくつかの実施形態によるエントロピー復号プロセス(1300)を概説するフローチャートを示している。プロセス(1300)は、本明細書に開示されるコンテキスト符号化されたビンの最大数に基づくいくつかのタイプの変換係数シンタックス要素のエントロピー復号において使用され得る。様々な実施形態では、プロセス(1300)は、端末デバイス(210)、(220)、(230)および(240)の処理回路などの処理回路、ビデオデコーダ(310)の機能を行う処理回路、ビデオデコーダ(410)の機能を実行する処理回路などによって実行されうる。いくつかの実施形態では、プロセス(1300)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1300)を行う。プロセスは(S1301)から始まり、(S1310)に進む。
【0143】
(S1310)において、符号化されたビットを含むビットストリームが受信されうる。符号化されたビンは、符号化されたピクチャ内の変換スキップブロックの残差に対応する様々なタイプのシンタックス要素のビンから符号化されうる。たとえば、様々なタイプのシンタックス要素は、重要なシンタックス要素、パリティシンタックス要素、1より大きいシンタックス要素、および/または2より大きいシンタックス要素を含みうる。重要なシンタックス要素(たとえば、sig_coeff_flag)は、現在の変換係数(absLevel)の絶対値が0より大きいことを示しうる。パリティシンタックス要素(たとえば、par_level_flag)は、absLevelのパリティを示しうる。1より大きいシンタックス要素(たとえば、rem_abs_gt1_flag)は、absLevel-1が0より大きいことを示しうる。2より大きいシンタックス要素(たとえば、rem_abs_gt2_flag)は、absLevel-4が0より大きいことを示しうる。変換スキップブロックは、変換ブロックで変換が実行されなかったことを示しうる。たとえば、対象ブロックがBDPCMで符号化される場合、変換は変換ブロックに行われない。
【0144】
(S1320)において、コンテキストモデリングは、領域のシンタックス要素のいくつかのビンのそれぞれのコンテキストモデルを決定するために行われうる。コンテキスト符号化されたシンタックス要素のビンの数は、領域に設定されるコンテキスト符号化されたビンの最大数を超えてはならない。シンタックス要素のビンの数は、変換スキップブロックの領域のシンタックス要素のビンの総数以下である。コンテキスト符号化されたビンの最大数は、上記の実施形態のうちの1つまたは複数に従って決定されうる。たとえば、変換スキップブロックの領域のコンテキスト符号化されたビンの最大数(たとえば、MaxCcbs)はB×Aに設定され、ここで、Bは正の数であり、Aは領域内の量子化残差の数である。Bは、整数または分数などの所定の数であり得る。あるいは、BはAに依存しうる。Bはエンコーダからデコーダに通知され得るので、デコーダはB×Aのコンテキスト符号化されたビンの最大数を決定することもできる。
【0145】
(S1330)において、シンタックス要素のいくつかのビンの符号化されたビットは、決定されたコンテキストモデルに基づいて復号されうる。変換スキップブロックの領域に対してシンタックス要素のビンの残りの総数の符号化されたビットは、EPモデル(すなわち、バイパスモデル)に基づいて復号されうる。復元されたビンに基づいて、変換係数の変換係数レベルが再構築されうる。プロセス(1300)は、(S1399)に進み、そこで終了する。
【0146】
図14は、本開示のいくつかの実施形態によるデブロッキング・フィルタリング・プロセス(1400)を概説するフローチャートを示している。プロセス(1400)は、符号化されたビデオビットストリームの対象ブロックおよび近傍ブロックのうちの少なくとも1つがブロック差分パルス符号変調(BDPCM)で符号化されている場合に使用されうる。様々な実施形態では、プロセス(1400)は、端末デバイス(210)、(220)、(230)および(240)の処理回路などの処理回路、ビデオデコーダ(310)の機能を行う処理回路、ビデオデコーダ(410)の機能を行う処理回路などによって実行されうる。いくつかの実施形態では、プロセス(1400)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1400)を行う。プロセスは(S1401)から始まり、(S1410)に進む。
【0147】
(S1410)において、符号化されたビットを含むビットストリームを受信することができる。
【0148】
(S1420)において、インジケータは、エンコーダから受信されうる。インジケータは、符号化されたビデオビットストリームの対象ブロックおよび近傍ブロックのうちの少なくとも1つがブロック差分パルス符号変調(BDPCM)で符号化されているかどうかを示しうる。対象ブロックは、近傍ブロックに隣接している場合がある。対象ブロックは対象CUにあり、近傍ブロックは同じCUにある場合もあれば対象CUに隣接する他のCUにある場合もある。上記のように、bdpcm_flagは、CUが32以下の寸法を有する輝度イントラCUである場合は常に、CUレベルで送信され得る。したがって、デコーダによって受信されたbdpcm_flagが、CUがBDPCMで符号化されていることを示す場合、対象ブロックはBDPCMで符号化されている。したがって、CU内の対象ブロックと、受信した符号化されたビデオビットストリームの近傍ブロックのうちの少なくとも1つは、BDPCMで符号化される。同様に、デコーダによって受信されたbdpcm_flagが、他のCUがBDPCMで符号化されており、近傍ブロックが他のCUにあることを示す場合、近傍ブロックはBDPCMで符号化される。したがって、CU内の対象ブロックと、受信された符号化ビデオビットストリームの他のCU内の近傍ブロックのうちの少なくとも1つは、BDPCMで符号化される。
【0149】
(S1430)において、プロセス(1400)は、対象ブロックおよび近傍ブロックのうちの少なくとも1つがBDPCMで符号化されていると示されているかどうかを決定する。対象ブロックおよび近傍ブロックのうちの少なくとも1つがBDPCMで符号化されていると示されると、プロセス(1400)はステップ(S1440)に進む。
【0150】
(S1440)において、境界強度(Bs)は、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に適用されると決定されうる。
【0151】
(S1450)において、デブロッキングは、決定された境界強度に従ってデブロッキングフィルタを使用して、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に行うことができる。デブロッキングフィルタは、上記の実施形態のうちの1つまたは複数に従って適用されうる。
【0152】
たとえば、対象ブロックおよび近傍ブロックのうちの少なくとも1つがBDPCMで符号化されていると示される場合、デブロッキングフィルタは、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間でいつでもアクティブ化または非アクティブ化され得る。Bsは、対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックとの間の境界に適用されると決定されうる。対象ブロック内の対象サブブロックと近傍ブロック内の近傍サブブロックは、互いに隣接していてもよい。Bsの決定が
図8に記載の方法を使用するとき、対象ブロック内の対象サブブロックおよび近傍ブロック内の近傍サブブロックのうちの少なくとも1つがイントラ符号化されている場合、Bsは2の固定値であると決定される。一実施形態では、Bsの決定は、
図8に記載の方法を使用しない場合がある。代わりに、Bsは、0、1、または2などの柔軟な値であると決定できる。
【0153】
一実施形態では、近傍ブロック内の近傍サブブロックもBDPCMで符号化される場合、デブロッキングフィルタは、対象サブブロックと近傍サブブロックとの間でいつでもアクティブ化され得る。
【0154】
一実施形態では、近傍ブロック内の近傍サブブロックもBDPCMで符号化される場合、デブロッキングフィルタは、対象サブブロックと近傍サブブロックとの間で条件付きでアクティブ化され得る。条件は、2つのサブブロック間のQPの差、対象ブロックと近傍ブロックの予測モード、および
図8で説明した方法に従ってBsを決定するときにBDPCMがイントラモードと見なされるかどうかを含み得る。
【0155】
プロセス(1400)は(S1499)に進み、そこで終了する。
【0156】
VIII.コンピュータシステム
上記の手法は、コンピュータ読み取り可能な命令を使用してコンピュータソフトウェアとして実装でき、1つまたは複数のコンピュータ読み取り可能な媒体に物理的に格納できる。たとえば、
図15は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1500)を示す。
【0157】
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用して符号化されえ、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となり、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによる直接、または解釈、マイクロコードの実行などを通じて実行できる命令を含むコードを作成する。
【0158】
命令は、たとえば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行されうる。
【0159】
コンピュータシステム(1400)について
図15に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関していかなる制限も示唆することを意図しない。また、構成要素の構成は、コンピュータシステム(1500)の例示的な実施形態に示されている構成要素のいずれか1つまたはそれらの組み合わせに関する依存性または要件を有するものとして解釈されるべきではない。
【0160】
コンピュータシステム(1500)は、特定のヒューマンインタフェース入力デバイスを含み得る。そのようなヒューマンインタフェース入力デバイスは、たとえば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)など、1人または複数のユーザによる入力に応答し得る。ヒューマン・インタフェース・デバイスを使用して、音声(会話、音楽、環境音など)、画像(スキャンした画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることもできる。
【0161】
入力ヒューマン・インタフェース・デバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチ画面(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイク(1506)、スキャナ(1507)、カメラ(1508)などのうちの1つまたは複数を含み得る(それぞれ1つのみ図示)。
【0162】
コンピュータシステム(1500)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。そのようなヒューマンインタフェース出力デバイスは、たとえば、触覚出力、音、光、および嗅覚/味覚を通じて、1人または複数のユーザの感覚を刺激している可能性がある。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(たとえば、タッチ画面(1510)、データグローブ(図示せず)、またはジョイスティック(1505)による触覚フィードバックだが、入力デバイスとして機能しない触覚フィードバックデバイスも存在する場合がある)、オーディオ出力デバイス(スピーカ(1509)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1510)などであり、それぞれタッチ画面入力機能があってもなくてもよく、それぞれ触覚フィードバック機能があってもなくてもよく、ステレオグラフィック出力、仮想現実の眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して2次元の視覚的出力または3次元以上の出力を出力できるものもある)、およびプリンタ(図示せず)を含み得る。
【0163】
コンピュータシステム(1500)はまた、人間がアクセス可能なストレージデバイスおよびそれらの関連媒体、たとえば、CD/DVDなどの媒体(1521)とともにCD/DVD ROM/RW(1520)を含む光学媒体、サムドライブ(1522)、取り外し可能なハードドライブまたはソリッドステートドライブ(1523)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなどを含み得る。
【0164】
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0165】
コンピュータシステム(1500)は、1つまたは複数の通信ネットワークへのインタフェースも含むことができる。ネットワークは、たとえば、無線、有線、光であり得る。さらに、ネットワークは、ローカル、広域、大都市圏、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワークなどのローカル・エリア・ネットワーク、ケーブルテレビ、衛星テレビ、地上波放送テレビを含むTV有線または無線ワイド・エリア・デジタル・ネットワーク、車両用、CANBusを含む産業用などを含む。特定のネットワークは一般に、特定の汎用データポートまたは周辺バス(1549)(たとえば、コンピュータシステム(1500)のUSBポートなど)に接続された外部ネットワーク・インタフェース・アダプタを必要とし、他のものは、一般に、以下に説明するようにシステムバスに接続することにより、コンピュータシステム(1500)のコアに統合される(たとえば、PCコンピュータシステムへのイーサネットインタフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1500)は他のエンティティと通信できる。このような通信は、単方向、受信のみ(たとえば、放送TV)、単方向送信のみ(たとえば、CANbusから特定のCANbusデバイス)、または双方向、たとえば、ローカルエリアまたはワイド・エリア・デジタル・ネットワークを使用した他のコンピュータシステムへの通信である。上記のように、特定のプロトコルとプロトコルスタックは、これらのネットワークとネットワークインタフェースのそれぞれで使用されうる。
【0166】
前述のヒューマン・インタフェース・デバイス、ヒューマンアクセス可能ストレージデバイス、およびネットワークインタフェースは、コンピュータシステム(1500)のコア(1540)に接続されうる。
【0167】
コア(1540)は、1つまたは複数の中央処理装置(CPU)(1541)、グラフィック処理装置(GPU)(1542)、フィールド・プログラマブル・ゲート領域(FPGA)(1543)形式の特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1544)などを含みうる。これらのデバイスは、読み取り専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1547)とともに、システムバス(1548)を介して接続することができる。いくつかのコンピュータシステムでは、システムバス(1548)は、追加のCPU、GPUなどによる拡張を可能にするよう、1つまたは複数の物理プラグの形でアクセス可能とされうる。周辺機器は、コアのシステムバス(1548)に直接、または周辺バス(1549)を介して接続されうる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0168】
CPU(1541)、GPU(1542)、FPGA(1543)、およびアクセラレータ(1544)は、組み合わせて前述のコンピュータコードを構成できるいくつかの命令を実行しうる。そのコンピュータコードは、ROM(1545)またはRAM(1546)に格納されうる。移行データがRAM(1446)にも格納されうる一方、永続データは、たとえば内部大容量記憶装置(1447)に格納されうる。1つまたは複数のCPU(1441)、GPU(1442)、大容量記憶装置(1447)、ROM(1445)、RAM(1446)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速格納および取り出しが可能になる。
【0169】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを内部に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術の当業者に周知であり利用可能な種類のものであり得る。
【0170】
限定ではなく一例として、アーキテクチャ(1500)、特にコア(1540)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ読み取り可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ読み取り可能な媒体は、上で紹介したユーザがアクセス可能な大容量記憶装置、およびコア内部大容量記憶装置(1547)やROM(1545)などの非一時的な性質を持つコア(1540)の特定の記憶装置に関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(1540)によって実行され得る。コンピュータ読み取り可能な媒体は、特定のニーズに従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1540)および特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1546)に格納されたデータ構造の定義やソフトウェアで定義されたプロセスに従ってそのようなデータ構造を変更することを含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりにまたはソフトウェアと一緒に動作することができる回路(たとえばアクセラレータ(1544))にハードワイヤードまたは他の方法で組み込まれたロジックの結果として機能を提供できる。ソフトウェアへの言及はロジックを含むことができ、必要に応じてその逆も可能である。コンピュータ読み取り可能な媒体への言及は、実行のためのソフトウェア、実行のためのロジックを具体化する回路、またはその両方を必要に応じて格納する回路(集積回路(IC)など)を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付録A:頭字語
JEM:joint exploration model(共同探査モデル)
VVC:versatile video coding(多用途映像符号化)
BMS:benchmark set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(高効率映像符号化)
SEI:Supplementary Enhancement Information(付加拡張情報)
VUI:Video Usability Information(ビデオユーザビリティ情報)
GOP:Groups of Pictures(Group of Pictures)
TU:Transform Units(変換ユニット)
PU:Prediction Units(予測ユニット)
CTU:Coding Tree Units(符号化ツリーユニット)
CTB:Coding Tree Blocks(符号化ツリーブロック)
PB:Prediction Blocks(予測ブロック)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
SNR:Signal Noise Ratio(信号ノイズ比)
CPU:Central Processing Units(中央処理装置)
GPU:Graphics Processing Units(グラフィック処理ユニット)
CRT:Cathode Ray Tube(陰極線管)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
CD:Compact Disc(コンパクトディスク)
DVD:Digital Video Disc(デジタルビデオディスク
ROM:Read-Only Memory(読み取り専用メモリ
RAM:Random Access Memory(ランダムアクセスメモリ)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
LAN:Local Area Network(ローカル・エリア・ネットワーク)
GSM:Global System for Mobile communications(汎ヨーロッパデジタル移動通信システム)
LTE:Long-Term Evolution(ロングタームエボリューション)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(周辺構成要素相互接続)
FPGA:Field Programmable Gate Areas(フィールド・プログラマブル・ゲート領域)
SSD:solid-state drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(符号化ユニット)
DPCM:Differential Pulse-code Modulation(差分パルス符号変調)
BDPCM:Block Differential Pulse-code Modulation(ブロック差分パルス符号変調)
SCC:Screen Content Coding(画面コンテンツ符号化)
Bs:Boundary Strength(境界強度)
【0171】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある変更、置換、および様々な代替均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、したがってその精神および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。
【符号の説明】
【0172】
101 対象ブロック
102 ブロックA0
133 ブロックA1
104 ブロックB0
105 ブロックB1
106 ブロックB2
200 通信システム
210 端末デバイス
220 端末デバイス
230 端末デバイス
240 端末デバイス
250 ネットワーク
301 ビデオソース
302 ビデオピクチャのストリーム
303 ビデオエンコーダ
304 符号化されたビデオデータ
305 ストリーミングサーバ
306 クライアントサブシステム
307 コピー
308 クライアントサブシステム
309 コピー
310 ビデオデコーダ
311 ビデオピクチャの出力ストリーム
312 ディスプレイ
313 キャプチャサブシステム
320 電子デバイス
330 電子デバイス
401 チャネル
410 ビデオデコーダ
412 レンダリングデバイス
415 バッファメモリ
420 パーサ
421 シンボル
430 電子デバイス
431 受信器
451 スケーラ/逆変換ユニット
452 イントラ画像予測ユニット
453 動き補償予測ユニット
455 アグリゲータ
456 ループフィルタユニット
457 参照ピクチャメモリ
458 対象ピクチャバッファ
501 ビデオソース
503 ビデオエンコーダ
520 電子デバイス
530 ソースコーダ
532 符号化エンジン
533 デコーダ
534 参照ピクチャメモリ
535 予測器
540 送信器
543 符号化されたビデオシーケンス
545 エントロピーコーダ
550 コントローラ
560 通信チャネル
603 ビデオエンコーダ
621 汎用コントローラ
622 イントラエンコーダ
623 残差計算器
624 残差エンコーダ
625 エントロピーエンコーダ
626 スイッチ
628 残差デコーダ
630 インターエンコーダ
710 ビデオデコーダ
771 エントロピーデコーダ
772 イントラデコーダ
773 残差デコーダ
774 再構築モジュール
780 インターデコーダ
800 プロセス
1001 メモリ
1002 コンテキストモデルリスト
1003 メモリ
1004 コンテキストモデルリスト
1010 コンテキストモデラ
1020 バイナリ算術エンコーダ
1030 バイナリ算術エンコーダ
1040 コンテキストモデラ
1110 量子化残差
1120 バイナリ文字列
1210 符号化されたビット
1220 バイナリ文字列
1230 量子化残差
1300 プロセス
1400 プロセス
1500 コンピュータシステム、アーキテクチャ
1501 キーボード
1502 マウス
1503 トラックパッド
1505 ジョイスティック
1506 マイク
1507 スキャナ
1508 カメラ
1509 スピーカ
1510 タッチ画面
1520 CD/DVD ROM/RW
1521 CD/DVDなどの媒体
1522 サムドライブ
1523 取り外し可能なハードドライブまたはソリッドステートドライブ
1540 コア
1541 中央処理装置(CPU)
1542 グラフィック処理装置(GPU)
1543 フィールド・プログラマブル・ゲート領域(FPGA)
1544 ハードウェアアクセラレータ
1545 読み取り専用メモリ(ROM)
1546 ランダムアクセスメモリ
1547 内部大容量記憶装置
1548 システムバス
1549 周辺バス
【手続補正書】
【提出日】2024-03-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデコーダにおいて行われるビデオ復号の方法であって、前記方法が、
シンタックス要素のビンの符号化されたビットを含むビットストリームを受信するステップであって、前記シンタックス要素は符号化された画像内の変換スキップブロックの領域の残差に対応する、ステップと、
前記領域のシンタックス要素のいくつかの前記ビンのそれぞれについてコンテキストモデルを決定するためにコンテキストモデリングを行うステップであって、コンテキスト符号化されるシンタックス要素の前記ビンの数は、前記領域に設定されたコンテキスト符号化されるビンの最大数を超えない、ステップと、
シンタックス要素の前記いくつかの前記ビンの前記符号化されたビットを、前記決定されたコンテキストモデルに基づいて復号するステップと、
を含む、方法。
【外国語明細書】