(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-26
(54)【発明の名称】ビデオ符号化の方法、コンピューティングシステム、及びコンピュータプログラム、並びにビデオ復号化の方法
(51)【国際特許分類】
H04N 19/13 20140101AFI20250218BHJP
【FI】
H04N19/13
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024544929
(86)(22)【出願日】2023-05-05
(85)【翻訳文提出日】2024-07-29
(86)【国際出願番号】 US2023021218
(87)【国際公開番号】W WO2023244337
(87)【国際公開日】2023-12-21
(32)【優先日】2022-06-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-05-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】カフー,サムルッディ ヤシュワント
(72)【発明者】
【氏名】ペリンガッセリー クリシュナン,マドゥ
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME11
5C159PP04
5C159TA41
5C159TA59
5C159UA02
5C159UA05
(57)【要約】
本願で記載される様々な実施例には、ビデオの符号化及び復号化のための方法及びシステムが含まれる。一態様では、方法は、第1ブロックを含むビデオデータを取得するステップを含む。方法は、第1ブロックに関連した複数の変換係数を決定するステップを更に含む。方法はまた、複数の変換係数の各々の係数符号を予測するステップを含む。方法はまた、予測された係数符号のうちの2つ以上の予測された係数符号を一緒にシグナリングすることを含む、第1ブロックのエントロピコーディングを含む。
【特許請求の範囲】
【請求項1】
メモリ及び1つ以上のプロセッサを備えるコンピューティングシステムで実行されるビデオ符号化の方法であって、
第1ブロックを含む複数のブロックを有するビデオデータを取得するステップと、
前記第1ブロックに関連した複数の変換係数を決定するステップであり、前記複数の変換係数は複数の予測精度のうちの各々の予測精度に関連付けられている、ステップと、
前記複数の変換係数の各々の係数符号を予測するステップと、
前記予測された係数符号のうちの2つ以上の予測された係数符号を前記複数の予測精度に基づきグループ化することによって、前記2つ以上の予測された係数符号を一緒にシグナリングするステップと、
前記一緒にシグナリングされた係数符号を用いて前記第1ブロックをエントロピ符号化するステップと
を有する方法。
【請求項2】
前記2つ以上の予測された係数符号を一緒にシグナリングするステップは、前記2つ以上の予測された係数符号を一緒に符号化するステップを含む、
請求項1に記載の方法。
【請求項3】
シンボルのインデックスを取得するステップを更に有し、
前記シンボルのインデックスの各シンボルは、係数符号値の各々の組み合わせを表し、
前記シンボルのインデックスは、前記2つ以上の予測された係数符号を一緒にシグナリングするために使用される、
請求項1に記載の方法。
【請求項4】
マルチシンボル算術コーダを用いて前記シンボルのインデックスを符号化するステップを更に有する、
請求項3に記載の方法。
【請求項5】
前記2つ以上の予測された係数符号を一緒にシグナリングするステップは、
前記2つ以上の予測された係数符号の組み合わせを前記シンボルのインデックスの事前定義されたインデックス値にマッピングするステップと、
前記事前定義されたインデックス値を符号化するステップと
を有する、
請求項3に記載の方法。
【請求項6】
前記シンボルのインデックスは、0から2
N-1までの範囲内の値を有し、
Nは、一緒にシグナリングされる前記予測された係数符号の数である、
請求項3に記載の方法。
【請求項7】
前記シンボルのインデックスは、予めコーディングされた情報に基づいてコンテキストコーディングされる、
請求項3に記載の方法。
【請求項8】
前記2つ以上の予測された係数符号を一緒にシグナリングするステップは、2つ以上の値を一緒に符号化するステップを有し、
前記2つ以上の値の各値は、各々の予測された係数符号が、対応する変換係数の実際の符号に一致するかどうかを示す、
請求項1に記載の方法。
【請求項9】
前記2つ以上の値を符号化するステップは、
前記2つ以上の値の組み合わせをシンボルのインデックスの事前定義されたインデックス値にマッピングするステップと、
前記事前定義されたインデックス値を符号化するステップと
を有する、
請求項8に記載の方法。
【請求項10】
前記予測された係数符号は、N+M個の予測された係数符号を有し、
前記2つ以上の予測された係数符号を一緒にシグナリングするステップは、N個の予測された係数符号を一緒にシグナリングするステップを有し、
前記方法は、M個の予測された係数符号を個別にシグナリングするステップを更に有する、
請求項1に記載の方法。
【請求項11】
前記N個の予測された係数符号は、非ゼロの各々の値を有する変換係数に対応する、
請求項10に記載の方法。
【請求項12】
前記N個の予測された係数符号を一緒にシグナリングするステップは、前記N個の予測された係数符号の組み合わせをインデックスにマッピングするステップを有する、
請求項10に記載の方法。
【請求項13】
前記N個の予測された係数符号を一緒にシグナリングするステップは、値の組み合わせをインデックスにマッピングするステップを有し、
前記値の組み合わせの各値は、各々の予測された係数符号が、対応する変換係数の実際の符号に一致するかどうかを示す、
請求項10に記載の方法。
【請求項14】
前記予測された係数符号は、予測された係数符号の組を有し、
前記2つ以上の予測された係数符号を一緒にシグナリングするステップは、前記予測された係数符号の組の中の第1サブセットを一緒にシグナリングするステップを有し、
前記方法は、前記予測された係数符号の組の中の第2サブセットを一緒にシグナリングするステップを有する、
請求項1に記載の方法。
【請求項15】
制御回路と、
メモリと、
前記メモリに記憶されており、前記制御回路によって実行されるよう構成される命令の1つ以上の組と、を有し、
前記命令の1つ以上の組は、前記制御回路によって実行される場合に、前記制御回路に、請求項1乃至14のうちいずれか一項に記載の方法を実行させる、
コンピューティングシステム。
【請求項16】
制御回路及びメモリを備えるコンピューティングデバイスによって実行されるよう構成される命令の1つ以上の組を有するコンピュータプログラムであって、
前記命令の1つ以上の組は、前記制御回路によって実行される場合に、前記制御回路に、請求項1乃至14のうちいずれか一項に記載の方法を実行させる、
コンピュータプログラム。
【請求項17】
メモリ及び1つ以上のプロセッサを備えるコンピューティングシステムで実行されるビデオ復号化の方法であって、
ビットストリームから第1ブロックを含む複数のブロックを有するビデオデータを取得するステップと、
前記第1ブロックに関連した複数の変換係数を決定するステップであり、前記複数の変換係数は複数の予測精度のうちの各々の予測精度に関連付けられている、ステップと、
前記ビットストリームから変換係数符号インデックスの符号化された値を取得するステップと、
前記符号化された値から前記複数の変換係数の各々の係数符号を再構成するステップと、
前記複数の変換係数と、前記複数の変換係数の再構成された前記各々の係数符号とに基づき、前記第1ブロックを再構成するステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示されている実施形態は、変換係数の係数符号化予測及び符号化/復号化のためのシステム及び方法を含むがこれに限られないビデオコーディングに概して関係がある。
【背景技術】
【0002】
デジタルビデオは、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤー、ビデオゲーム機、スマートフォン、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、などの様々な電子デバイスによってサポートされている。電子デバイスは、通信ネットワークを介してデジタルビデオデータを送受信又は別なふうに通信し、かつ/あるいは、デジタルビデオデータを記憶デバイスに記憶する。通信ネットワークの限られた帯域幅能力及び記憶デバイスの限られたメモリ資源により、ビデオコーディングは、ビデオデータが通信又は記憶される前に、1つ以上のビデオコーディング規格に従ってビデオデータを圧縮するために使用されることがある。
【0003】
複数のビデオコーデック規格が開発されている。例えば、ビデオコーディング規格には、AOMedia Video 1(AV1)、Versatile Video Coding(VVC)、Joint Exploration test Model(JEM)、High-Efficiency Video Coding(HEVC/H.265)、Advanced Video Coding(AVC/H.265)、及びMoving Picture Expert Group(MPEG)コーディングがある。ビデオコーディングは、一般に、ビデオデータ内に固有の冗長性を利用する予測方法(例えば、インター予測、イントラ予測、など)を利用する。ビデオコーディングは、ビデオ品質の低下を回避又は最小限にしながら、より低いビットレートを使用する形式にビデオデータを圧縮することを目標とする。
【0004】
H.265としても知られているHEVCは、MPEG-Hプロジェクトの部分として設計されたビデオ圧縮規格である。ITU-T及びISO/IECは、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)、及び2016年(バージョン4)にHEVC/H.265を公開した。H.266としても知られているVersatile Video Coding(VVC)は、HEVCの後継として意図されたビデオ圧縮規格である。ITU-T及びISO/IECは、2020年(バージョン1)及び2022年(バージョン2)にVVC/H.266規格を公開した。AV1は、HEVCの代替として設計されたオープンビデオコーディングフォーマットである。2019年1月8日に、仕様の正誤表1を含む有効なバージョン1.0.0がリリースされた。
【発明の概要】
【0005】
上述されたように、符号化(圧縮)は、帯域幅及び/又は記憶空間の要求を小さくする。後で詳細に記載されるように、可逆圧縮及び非可逆圧縮の両方が用いられ得る。可逆圧縮は、元の信号の正確なコピーが圧縮された元の信号から復号化プロセスにより再構成され得る技術を指す。非可逆圧縮は、元のビデオ情報がコーディング中に十分に保たれず、復号化中に十分に回復されないコーディング/復号化プロセスを指す。非可逆圧縮を使用する場合、再構成された信号は元の信号と同じでない可能性があるが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途にとって有用なものとならしめるほど十分に小さくなる。許容可能な歪みの量は用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画又はテレビ放送用途のユーザよりも高い歪みを許容することがある。特定のコーディングアルゴリズムによって利用可能な圧縮比は、一般に、より高い損失及びより高い圧縮比をもたらすコーディングアルゴリズムを可能にする。
【0006】
ビデオエンコーダ及び/又はデコーダは、例えば動き補償、フーリエ変換、量子化、及びエントロピコーディングを含むいくつかの広いカテゴリ及びステップから技術を利用することができる。エントロピコーディング中、操作に関するデータがエントロピエンコーダへ送られ得る。エントロピエンコーダはビットストリーム(コーディングされたビデオシーケンス)を出力することができ、ビットストリームは、伝送チャネルを介して他のデバイスへ送られ得る。ビデオ復号化プロセス中、ビットストリームはエントロピデコーダ(パーサ)へ送られることがある。エントロピデコーダは、ビットストリームに基づき、操作に関するデータを取得し得る。操作に関するデータには、イントラ予測情報、残差情報、などが含まれ得る。いくつかの実施形態で、エントロピ符号化/復号化は、算術コーディングの基礎としてシンボル(又は文字)の発生の確率に基づいた算術コーディングアルゴリズムを利用する。いくつかの実施形態で、シンボル(又は文字)の発生の確率は、符号化/復号化プロセス中に動的に更新される。例えば、2つの可能な文字(“a”及び“b”)のみが存在し、“a”の発生の確率はp_aと表され、“b”の発生の確率はp_bと表され、その場合に、p_a+p_b=1(又は任意の他の定数)である。よって、符号化/復号化プロセスで“a”に遭遇するとき、p_aはより大きい値に更新されることになり、p_bはより小さい値に更新されることになる。これは、それらの合計が一定になるからである。この確率更新プロセスは、「確率遷移プロセス」(probability transition process)又は「確率状態インデックス更新プロセス」(probability state index updating process)と呼ばれることがある。
【0007】
いくつかの実施形態に従って、ビデオ符号化の方法が提供される。方法は、(i)第1ブロックを含む複数のブロックを有するビデオデータを取得するステップと、(ii)第1ブロックに関連した複数の変換係数を決定するステップと、(iii)複数の変換係数の各々の係数符号を予測するステップと、(iv)予測された係数符号のうちの2つ以上を一緒にシグナリングすることを含む、第1ブロックをエントロピ符号化するステップとを含む。
【0008】
いくつかの実施形態に従って、ビデオ復号化の他の方法が提供される。方法は、(i)第1ブロックを含む複数のブロックを有するビデオデータを取得するステップと、(ii)第1ブロックに関連した複数の変換係数を決定するステップと、(iii)変換係数符号インデックスの符号化された値を取得するステップと、(iv)符号化された値から、複数の変換係数の各々の係数符号を再構成するステップと、(v)複数の変換係数と複数の変換係数の再構成された各々の係数符号とに基づき第1ブロックを再構成するステップとを含む。
【0009】
いくつかの実施形態に従って、ストリーミングシステム、サーバシステム、パーソナルコンピュータシステム、又は他の電子デバイスなどのコンピューティングシステムが提供される。コンピューティングシステムは、制御回路と、命令の1つ以上の組を記憶するメモリとを含む。命令の1つ以上の組は、本明細書で記載される方法のいずれかを実行するための命令を含む。いくつかの実施形態では、コンピューティングシステムは、エンコーダコンポーネント及び/又はデコーダコンポーネントを含む。
【0010】
いくつかの実施形態に従って、非一時的なコンピュータ可読記憶媒体が提供される。非一時的なコンピュータ可読記憶媒体は、コンピュータシステムによって実行される命令の1つ以上の組を記憶する。命令の1つ以上の組は、本明細書で記載される方法のいずれかを実行するための命令を含む。
【0011】
よって、デバイス及びシステムは、ビデオの符号化及び復号化のための方法とともに開示される。このような方法、デバイス、及びシステムは、ビデオ符号化/復号化のための従来の方法、デバイス、及びシステムを補完又は置換し得る。
【0012】
明細書中に記載される特徴及び利点は、必ずしも全て含まれているわけではなく、特に、いくつかの追加的な特徴及び利点は、本開示で提供される図面、明細書、及び特許請求の範囲を鑑みて当業者に明らかであろう。更に、本明細書で使用される言語は、主に読みやすさや教育を目的として選択されており、必ずしも、本明細書で記載される対象を描写又は制限するために選択されたものではないことに留意されたい。
【0013】
本開示が更に詳細に理解され得るように、より具体的な説明は、様々な実施形態の特徴を参照して行われ得る。一部の実施形態は添付の図面に表されている。なお、添付の図面は、単に本開示の関連する特徴を表すものであるから、必ずしも限定であると見なされるべきではなく、当業者が本開示を読むことで理解するだろうように、説明のために他の有効な特徴を認めることができる。
【図面の簡単な説明】
【0014】
【
図1】いくつかの実施形態に係る例示的な通信システムを表すブロック図である。
【
図2A】いくつかの実施形態に係るエンコーダコンポーネントの例示的な要素を表すブロック図である。
【
図2B】いくつかの実施形態に係るデコーダコンポーネントの例示的な要素を表すブロック図である。
【
図3】いくつかの実施形態に係る例示的なサーバシステムを表すブロック図である。
【
図4】A~Dは、いくつかの実施形態に係る例示的なコーディングツリー構造を表す。
【
図5A】いくつかの実施形態に係る例示的なライングラフ変換(LGF)を示す。
【
図5B】いくつかの実施形態に係る、変換ブロック並びに隣接する行及び列における例示的なピクセル位置を示す。
【
図6A】いくつかの実施形態に係る、ビデオ符号化の例示的な方法を表すフロー図である。
【
図6B】いくつかの実施形態に係る、ビデオ復号化の例示的な方法を表すフロー図である。
【発明を実施するための形態】
【0015】
一般的な慣例によれば、図面に示される様々な特徴は必ずしも一定の縮尺で描かれているわけではなく、明細書及び図面の全体を通じて同様の特徴を示すために同様の参照番号を使用することができる。
【0016】
本開示は、とりわけ、変換ブロックコーディング中に係数符号を予測し、予測された係数符号を一緒にシグナリングすることについて記載する。例えば、複数の変換係数について各々の係数符号が予測され、その後のエントロピコーディングは、予測された係数符号のうちの2つ以上を一緒にシグナリングすることを含む。例えば、マルチシンボル算術コーダが、2つ以上の予測された係数符号を一緒にコーディングする(及び/又は予測された符号の精度を一緒にコーディングする)ために使用されてもよい。複数の係数符号を一緒にシグナリングすることで、コーディング効率は向上し、例えば、必要とされる符号化ビットは減り、これにより、バンド幅要求は低下する。
【0017】
[例となるシステム及びデバイス]
図1は、いくつかの実施形態に係る通信システム100を表すブロック図である。通信システム100は、互いに1つ以上のネットワークを介して通信可能に結合されているソースデバイス102及び複数の電子デバイス120(例えば、電子デバイス120-1~電子デバイス120-m)を含む。いくつかの実施形態では、通信システム100は、例えば、ビデオ会議アプリケーション、デジタルTVアプリケーション、並びにメディア記憶及び/又は分配アプリケーションなどのビデオ対応アプリケーションにより使用されるストリーミングシステムである。
【0018】
ソースデバイス102は、ビデオソース104(例えば、カメラコンポーネント又はメディアストレージ)及びエンコーダコンポーネント106を含む。いくつかの実施形態では、ビデオソース104はデジタルカメラ(例えば、圧縮されていないビデオサンプルストリームを生成するよう構成される。)である。エンコーダコンポーネント106は、1つ以上の符号化されたビデオビットストリームをビデオストリームから生成する。ビデオソース104からのビデオストリームは、エンコーダコンポーネント106によって生成される符号化されたビデオビットストリーム108と比べて高いデータボリュームであり得る。符号化されたビデオビットストリーム108はビデオソースからのビデオストリームと比較して低いデータボリューム(少ないデータ)であるから、符号化されたビデオビットストリーム108は、ビデオソース104からのビデオストリームと比較して、伝送に必要な帯域幅が小さく、記憶に必要な記憶空間が小さい。いくつかの実施形態では、ソースデバイス102はエンコーダコンポーネント106を含まない(例えば、圧縮されていないビデオデータをネットワークに伝送するよう構成される)。
【0019】
1つ以上のネットワーク110は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含む、ソースデバイス102、サーバシステム112、及び/又は電子デバイス120の間で情報を運ぶ任意の数のネットワークを表す。1つ以上のネットワーク110は、回路交換及び/又はパケット交換チャネルでデータを交換し得る。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットがある。
【0020】
1つ以上のネットワーク110はサーバシステム(例えば、分散/クラウドコンピューティングシステム)を含む。いくつかの実施形態では、サーバシステム112はストリーミングサーバ(例えば、ソースデバイス102からの符号化されたビデオストリームなどのビデオコンテンツを記憶及び/又は分配するよう構成される。)であるか、又はそれを含む。サーバシステム112はコーダコンポーネント114(例えば、ビデオデータを符号化及び/又は復号するよう構成される。)を含む。いくつかの実施形態では、コーダコンポーネント114はエンコーダコンポーネント及び/又はデコーダコンポーネントを含む。様々な実施形態で、コーダコンポーネント114は、ハードウェア、ソフトウェア、又はそれらの組み合わせとしてインスタンス化される。いくつかの実施形態では、コーダコンポーネント114は、符号化されたビデオビットストリーム108を復号し、符号化されたビデオデータ116を生成するよう異なる符号化標準及び/又はメソッドロジを用いてビデオデータを再符号化するよう構成される。いくつかの実施形態では、サーバシステム112は、符号化されたビデオビットストリーム108から複数のビデオフォーマット及び/又は符号化を生成するよう構成される。
【0021】
いくつかの実施形態では、サーバシステム112は、Media-Aware Network Element(MANE)として機能する。例えば、サーバシステム112は、潜在的に異なるビットストリームを1つ以上の電子デバイス120に合わせるために符号化されたビデオビットストリーム108をプルーニングするよう構成されてもよい。いくつかの実施形態では、MANEは、サーバシステム112とは別に設けられる。
【0022】
電子デバイス120-1は、デコーダコンポーネント122及びディスプレイ124を含む。いくつかの実施形態では、デコーダコンポーネント122は、符号化されたビデオデータ116を復号して、ディスプレイ又は他のタイプのレンダリングデバイスでレンダリングされ得る発出ビデオストリームを生成するよう構成される。いくつかの実施形態では、1つ以上の電子デバイス120はディスプレイコンポーネントを含まない(例えば、外部表示デバイスに通信可能に結合されたり、及び/又はメディアストリームを含んだりする。)。いくつかの実施形態では、電子デバイス120はストリーミングクライアントである。いくつかの実施形態では、電子デバイス120は、サーバシステム112にアクセスして、符号化されたビデオデータ116を取得するよう構成される。
【0023】
ソースデバイス102及び/又は複数の電子デバイス120は「端末デバイス」又は「ユーザデバイス」と時々呼ばれる。いくつかの実施形態では、ソースデバイス102及び/又は1つ以上の電子デバイス120は、サーバシステム、パーソナルコンピュータ、ポータブルデバイス(例えば、スマートフォン、タブレット、又はラップトップ)、ウェアラブルデバイス、ビデオ会議デバイス、及び/又は他のタイプの電子デバイスのインスタンスである。
【0024】
通信システム100の動作の例において、ソースデバイス102は、符号化されたビデオビットストリーム108をサーバシステム112へ送る。例えば、ソースデバイス102は、ソースデバイスによって捕捉されたピクチャのストリームをコーディングし得る。サーバシステム112は、符号化されたビデオビットストリーム108を受け取り、符号化されたビデオビットストリーム108をコーダコンポーネント114により復号及び/又は符号化し得る。例えば、サーバシステム112は、ネットワーク伝送及び/又は記憶のためにより最適であるビデオデータへの符号化を適用し得る。サーバシステム112は、符号化されたビデオデータ116(例えば、1つ以上のコーディングされたビデオビットストリーム)を1つ以上の電子デバイス120へ送信し得る。各電子デバイス120は、符号化されたビデオデータ116を復号して、ビデオピクチャを回復し、任意にそれを表示し得る。
【0025】
いくつかの実施形態では、上記の伝送は一方向のデータ伝送である。一方向のデータ伝送はメディアサービングアプリケーションなどで時々利用される。いくつかの実施形態では、上記の伝送は双方向のデータ伝送である。双方向のデータ伝送はビデオ会議アプリケーションなどで時々利用される。いくつかの実施形態では、符号化されたビデオビットストリーム108及び/又は符号化されたビデオデータ116は、HEVC、VVC、及び/又はAV1などの、本明細書で記載されるビデオコーディング/圧縮規格のいずれかに従って、符号化及び/又は復号される。
【0026】
図2Aは、いくつかの実施形態に係るエンコーダコンポーネント106の例示的な要素を表すブロック図である。エンコーダコンポーネント106は、ビデオソース104からソースビデオシーケンスを受け取る。いくつかの実施形態では、エンコーダコンポーネント106は、ソースビデオシーケンスを受信するよう構成される受信器(例えば、トランシーバ)コンポーネントを含む。いくつかの実施形態では、エンコーダコンポーネント106は、遠隔のビデオソース(例えば、エンコーダコンポーネント106とは異なるデバイスのコンポーネントであるビデオソース)からビデオシーケンスを受け取る。ビデオソース104は、任意の適切なビットデプス(例えば、8ビット、10ビット、又は12ビット)、任意の色空間(例えば、BT.601 YCrCb、又はRGB)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0又はYCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形式で、ソースビデオシーケンスを供給し得る。いくつかの実施形態では、ビデオソース104は、以前に捕捉された/準備されたビデオを記憶している記憶デバイスである。いくつかの実施形態では、ビデオソース104は、局所画像情報をビデオシーケンスとして捕捉するカメラである。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャそれ自体はピクセルの空間配列として体系化されてもよく、各ピクセルは、使用されるサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解できる。以下の説明はサンプルに焦点を当てる。
【0027】
エンコーダコンポーネント106は、ソースビデオシーケンスのピクチャを、実時間において、又はアプリケーションによって要求される他の時間制約の下で、コーディングされたビデオシーケンス216にコーディング及び/又は圧縮するよう構成される。適切なコーディング速度を強いることはコントローラ204の一機能である。いくつかの実施形態では、コントローラ204は、後述される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。コントローラ204によってセットされるパラメータは、レート制御関連パラメータ(例えば、ピクチャスキップ、量子化器、及び/又はレート歪み最適化技術のラムダ値)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などを含み得る。当業者であれば、コントローラ204の他の機能を、それらが、特定のシステム設計のために最適化されるエンコーダコンポーネント106に関係があり得るということで、容易に特定することができる。
【0028】
いくつかの実施形態では、エンコーダコンポーネント106は、コーディングループにおいて動作するよう構成される。簡略化された例では、コーディングループは、ソースコーダ202(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づき、シンボルストリームなどのシンボルを生成することに関与する。)、及び(ローカル)デコーダ210を含む。デコーダ210は、(遠隔の)デコーダと同様にサンプルデータを生成するようシンボルを再構成する(シンボルとコーディングされたビデオビットストリームとの間の圧縮が可逆である場合)。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ208への入力である。シンボルストリームの復号化は、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ208内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。このように、エンコーダの予測部分は、デコーダが復号化中に予測を使用するときに解釈することになるのと同じサンプル値を参照ピクチャサンプルとして解釈する。参照ピクチャのシンクロニシティ(及び、例えばチャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、当業者に知られている。
【0029】
デコーダ210の動作は、
図2Bに関連して以下で詳細に記載されるデコーダコンポーネント122などの、遠隔のデコーダのそれと同じであることができる。簡潔に
図2Bを参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ214及びパーサ254によるコーディングされたビデオシーケンスに対するシンボル符号化/復号化が可逆であることができるということで、バッファ252及びパーサ254を含むデコーダコンポーネント122のエントロピ復号化部分は、ローカルのデコーダ210で完全には実装されなくてもよい。
【0030】
この時点で得られる観察は、デコーダに存在するパーシング/エントロピ復号化を除く如何なるデコーダ技術も、対応するエンコーダにおいて、実質的に同じ機能形態で、必然的に存在する必要がある、ということである。このため、開示される対象はデコーダの動作に焦点を当てる。エンコーダ技術の記載は、それらが包括的に説明されたデコーダ技術の逆であるということで、省略され得る。特定の範囲でのみ、より詳細に記載が必要とされ、以下で与えられる。
【0031】
その動作の部分として、ソースコーダ202は、動き補償された予測コーディングを実行してもよい。これは、参照フレームとして指定されたビデオシーケンスからの1つ以上の前にコーディングされたフレームを参照して予測的に入力フレームをコーディングする。このようにして、コーディングエンジン212は、入力フレームに対する予測参照として選択され得る参照フレームのピクセルブロックと入力フレームのピクセルブロックとの間の差をコーディングする。コントローラ204は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ202のコーディング動作を管理し得る。
【0032】
デコーダ210は、ソースコーダ202によって生成されたシンボルに基づき、参照フレームとして指定され得るフレームのコーディングされたビデオデータを復号する。コーディングエンジン212の動作は、有利なことに、非可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(
図2Aには図示せず。)で復号されるとき、再構成されたビデオシーケンスは、いくらかのエラーを伴ったソースビデオシーケンスの複製となる。デコーダ210は、参照フレームに対して遠隔のビデオデコーダによって実行され得る復号化プロセスを再現し、再構成された参照フレームが参照ピクチャメモリ208に格納されるようにしてもよい。このように、エンコーダコンポーネント106は、(伝送エラーなしで)遠隔のビデオデコーダによって取得されることになる再構成された参照フレームと共通の内容を有している再構成された参照フレームのコピーをローカルで記憶し得る。
【0033】
予測器206は、コーディングエンジン212のための予測探索を実行し得る。すなわち、新しいピクチャがコーディングされるために、予測器206は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ208から探し得る。予測器206は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してもよい。いくつかの場合に、予測器206によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ208に記憶されている複数の参照ピクチャから引き出された予測基準を有してもよい。
【0034】
上記の全ての機能ユニットの出力は、エントロピコーダ214においてエントロピコーディングを受け得る。エントロピコーダ214は、当業者に知られている技術(例えば、ハフマンコーディング、可変長コーディング、及び/又は算術コーディング)に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0035】
いくつかの実施形態では、エントロピコーダ214の出力は送信器に結合される。送信器は、エントロピコーダ214によって生成されたコーディングされたビデオシーケンスをバッファリングして、それらを通信チャネル218による伝送のために準備するよう構成されてよく、通信チャネル218は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器は、ソースコーダ202からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず。)とマージするよう構成されてもよい。いくつかの実施形態では、送信器は、符号化されたビデオとともに追加データを送信し得る。ソースコーダ202は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてもよい。追加データは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、Supplementary Enhancement Information(SEI)メッセージ、Visual Usability Information(VUI)パラメータセットフラグメント、などを含んでよい。
【0036】
コントローラ204はエンコーダコンポーネント106の動作を管理し得る。コーディング中、コントローラ204は、各々のピクチャに適用されるコーディング技術に影響を及ぼす可能性がある特定のコーディングピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャは、イントラピクチャ(Iピクチャ)、予測ピクチャ(Pピクチャ)、又は双方向予測ピクチャ(Bピクチャ)として割り当てられてよい。イントラピクチャ(Intra Picture)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずに符号化及び復号され得る。いくつかのビデオコーデックは、例えば、Independent Decoder Refresh(IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴に気づくので、それらはここで繰り返されない。予測ピクチャ(Predictive Picture)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測により符号化及び復号され得る。双方向予測ピクチャ(Bi-directionally Predictive Picture)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を用いて符号化及び復号され得る。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0037】
ソースピクチャは、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。
【0038】
ビデオは、時間シーケンスで複数のソースピクチャ(ビデオピクチャ)として捕捉され得る。イントラピクチャ予測(しばしば、イントラ予測と省略される。)は、所与のピクチャ内の空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的な又は他の)相関を利用する。一例で、現在ピクチャと呼ばれる、符号化/復号化中の特定のピクチャは、ブロックにパーティション化される。現在ピクチャ内のブロックが、ビデオ内の前にコーディングされて依然としてバッファリングされている参照ピクチャ内の参照ブロックに似ているとき、現在ピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは参照ピクチャ内の参照ブロックを指示し、複数の参照ピクチャが使用されている場合に、参照ピクチャを特定する第3の次元を有することができる。
【0039】
エンコーダコンポーネント106は、本明細書で記載されているいずれかなどの所定のビデオコーディング技術又は規格に従ってコーディング動作を実行し得る。その動作において、エンコーダコンポーネント106は、入力ビデオシーケンス内の時間的及び空間的な冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行し得る。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって指定されるシンタックスに従い得る。
【0040】
図2Bは、いくつかの実施形態に係るデコーダコンポーネント122の例示的な要素を表すブロック図である。
図2Bのデコーダコンポーネント122は、チャネル218及びディスプレイ124に結合される。いくつかの実施形態で、デコーダコンポーネント122は、ループフィルタユニット256に結合され、データをディスプレイ124へ(例えば、有線又は無線接続を介して)伝送するよう構成される送信器を含む。
【0041】
いくつかの実施形態では、デコーダコンポーネント122は、チャネルへ結合され、チャネルから(例えば、有線又は無線接続を介して)データを受信するよう構成される受信器を含む。受信器は、デコーダコンポーネント122によって復号されるべき1つ以上のコーディングされたビデオシーケンスを受信するよう構成され得る。いくつかの実施形態では、夫々のコーディングされたビデオシーケンスの復号化は、他のコーディングされたビデオシーケンスから独立している。夫々のコーディングされたビデオシーケンスはチャネル218から受信されてよく、チャネル218は、符号化されたビデオデータを記憶している記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。受信器は、符号化されたビデオデータを他のデータ、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してもよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてもよい。受信器は、コーディングされたビデオシーケンスを他のデータから分離してもよい。いくつかの実施形態では、受信器は、符号化されたビデオとともに追加(冗長)データを受信する。追加データは、データを復号するために及び/又は元のビデオデータをより正確に再構成するためにデコーダコンポーネント122によって使用され得る。追加データは、例えば、時間/空間/SNRエンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
【0042】
いくつかの実施形態に従って、デコーダコンポーネント122は、バッファメモリ252、パーサ254(エントロピデコーダとも呼ばれることがある。)、スケーラ/逆変換ユニット258、イントラピクチャ予測ユニット262、動き補償予測ユニット260、アグリゲータ268、ループフィルタユニット256、参照ピクチャメモリ266、および現在ピクチャメモリ264を含む。いくつかの実施形態では、デコーダコンポーネント122は、集積回路、集積回路の連続、及び/又は他の電子回路として実装される。いくつかの実施形態では、デコーダコンポーネント122は、少なくとも部分的にソフトウェアで実装される。
【0043】
バッファメモリ252は、(例えば、ネットワークジッタに対抗するために、)チャネル218とパーサ254との間に結合される。いくつかの実施形態では、バッファメモリ252は、デコーダコンポーネント122から分離している。いくつかの実施形態では、分離したバッファメモリは、チャネル218の出力部とデコーダコンポーネント122との間に設けられる。いくつかの実施形態では、分離したバッファメモリは、デコーダコンポーネント122内にあるバッファメモリ252(例えば、再生タイミングを処理するよう構成される。)に加えて、デコーダコンポーネント122の外に設けられる(例えば、ネットワークジッタに対向するため。)。十分な帯域幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファメモリ252は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファメモリ252は必要とされる場合があり、比較的に大きく、かつ、有利なことには、適応サイズであることができ、少なくとも部分的にデコーダコンポーネント122の外のオペレーティングシステム又は同様の要素(図示せず。)において実装されてもよい。
【0044】
パーサ254は、コーディングされたビデオシーケンスからシンボル270を再構成するよう構成される。シンボルは、例えば、デコーダコンポーネント122の動作を管理するために使用される情報、及び/又はディスプレイ124などのレンダリングデバイスを制御するための情報を含み得る。レンダリングデバイスのための制御情報は、SEIメッセージ又はVUIパラメータセットフラグメント(図示せず。)の形をとってよい。パーサ254は、コーディングされたビデオシーケンスをパース(エントロピ復号化)する。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ254は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)、などを含むことができる。パーサ254はまた、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル、などの情報も抽出し得る。
【0045】
シンボル270の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多数の異なるユニットを有することができる。どのユニットがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ254によってパースされたサブグループ制御情報によって制御され得る。パーサ254と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
【0046】
既に述べられた機能ブロックを超えて、デコーダコンポーネント122は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、これらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分が支持される。
【0047】
スケーラ/逆変換ユニット258は、パーサ254からシンボル270として、量子化された変換係数とともに、制御情報(例えば、どの変換を使用すべきか、ブロックサイズ、量子化係数、及び/又は量子化スケーリングマトリクスなど)を受信する。スケーラ/逆変換ユニット258は、アグリゲータ268に入力することができるサンプル値を含むブロックを出力することができる。
【0048】
いくつかの場合に、スケーラ/逆変換ユニット258の出力サンプルは、イントラコーディングされたブロック、つまり、前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係がある。かような予測情報はイントラピクチャ予測ユニット262によって供給され得る。イントラピクチャ予測ユニット262は、現在ピクチャメモリ264からの現在(部分的に再構成された)ピクチャからフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成し得る。アグリゲータ268は、サンプルごとに、イントラピクチャ予測ユニット262が生成した予測情報を、スケーラ/逆変換ユニット258によって供給される出力サンプル情報に付加し得る。
【0049】
他の場合では、スケーラ/逆変換ユニット258の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係がある。かような場合に、動き補償予測ユニット260は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ266にアクセスすることができる。ブロックに関係があるシンボル270に従って、フェッチされたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ268によって、スケーラ/逆変換ユニット258の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット260が予測サンプルをフェッチする参照ピクチャメモリ266内のアドレスは、動きベクトルによって制御され得る。動きベクトルは、例えばX、Y及び参照ピクチャコンポーネントを有することができるシンボル270の形で動き補償予測ユニット260が利用することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ266からフェッチされたサンプル値の補間や、動きベクトル予測メカニズムなども含むことができる。
【0050】
アグリゲータ268の出力サンプルは、ループフィルタユニット256において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術はインループフィルタ技術を含むことができる。この技術は、コーディングされたビデオビットストリームに含まれており、パーサ254からのシンボル270としてループフィルタユニット256に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(復号化順序において)前の部分の復号化中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することもできる。
【0051】
ループフィルタユニット256の出力は、ディスプレイ124などのレンダーデバイスへ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ266に記憶され得るサンプルストリームであることができる。
【0052】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。コーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ254によって)参照ピクチャとして識別されると、現在の参照ピクチャは、参照ピクチャメモリ266の部分になることができ、未使用の現在ピクチャメモリは、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
【0053】
デコーダコンポーネント122は、本明細書で記載される標準規格のいずれかなどの標準規格で文書化されることがある所定のビデオ圧縮技術に従って復号化動作を実行してよい。コーディングされたビデオシーケンスは、それが、ビデオ圧縮技術文書又は標準規格において、具体的にはその中のプロファイル文書において指定されるように、ビデオ圧縮技術又は標準規格のシンタックスに追随するという意味で、使用中のビデオ圧縮技術又は標準規格によって規定されたシンタックスに従い得る。また、一部のビデオ圧縮技術又は標準規格の順守のために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は標準規格のレベルによって定義されている境界内にあることができる。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定される限界は、いくつかの場合に、Hypothetical Reference Decoder(HRD)仕様と、コーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータとを通じて更に制限され得る。
【0054】
図3は、いくつかの実施形態に係るサーバシステム112を表すブロック図である。サーバシステム112は、制御回路302、1つ以上のネットワークインターフェース304、メモリ314、ユーザインターフェース306、及びこれらのコンポーネントを相互接続する1つ以上の通信バス312を含む。いくつかの実施形態では、制御回路302は1つ以上のプロセッサ(例えば、CPU、GPU、及び/又はDPU)を含む。いくつかの実施形態では、制御回路302は1つ以上のフィールドプログラマブルゲートアレイ(FPGA)、ハードウェアアクセラレータ、及び/又は1つ以上の集積回路(例えば、特定用途向け集積回路)を含む。
【0055】
ネットワークインターフェース304は、1つ以上の通信ネットワーク(例えば、無線、有線、及び/又は光ネットワーク)とインターフェース接続するよう構成され得る。通信ネットワークは、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性などであることができる。通信ネットワークの例には、Ethernet(登録商標)や無線LANなどのローカルエリアネットワーク;GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク;ケーブルTV、衛星TV、地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク;CANBusを含む車両及び工業ネットワーク、などがある。かような通信は一方向の受信専用(例えば、ブロードキャストTV)、一方向の送信専用(例えば、特定のCANBusデバイスへのCANBus)、又は双方向(例えば、ローカル若しくはワイドエリアデジタルネットワークを使用して他のコンピュータシステムへ)であることができる。かような通信は、1つ以上のクラウドコンピューティングネットワークへの通信を含むことができる。
【0056】
ユーザインターフェース306は1つ以上の出力デバイス308及び/又は1つ以上の入力デバイス310を含む。入力デバイス310は、キーボード、マウス、トラックパッド、タッチスクリーン、データグローブ、ジョイスティック、マイクロホン、スキャナ、カメラ、などのうちの1つ以上を含み得る。出力デバイス308は、オーディオ出力デバイス(例えば、スピーカ)、ビジュアル出力デバイス(例えば、ディスプレイ又はモニタ)、などのうちの1つ以上を含み得る。
【0057】
メモリ314は、高速ランダムアクセスメモリ(例えば、DRAM、SRAM、DDR RAM、及び/又は他のランダムアクセスソリッドステートメモリデバイス)及び/又は不揮発性メモリ(例えば、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、及び/又は他の不揮発性ソリッドステート記憶デバイス)を含み得る。メモリ314は、任意に、制御回路302から遠く離れている1つ以上の記憶デバイスを含む。メモリ314、又は代替的に、メモリ314内の不揮発性ソリッドステートメモリデバイスは、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態では、メモリ314、又はメモリ314の非一時的なコンピュータ可読記憶媒体は、以下のプログラム、モジュール、命令、及びデータ構造、又はそれらのサブセット若しくはスーパーセットを記憶している:
●様々な基本システムサービスを処理しかつハードウェア依存のタスクを実行するプロシージャを含むオペレーティングシステム316;
●サーバシステム112を他のコンピューティングデバイスへ1つ以上のネットワークインターフェース304を介して(例えば、有線及び/又は無線接続を介して)接続するために使用されるネットワーク通信モジュール318;
●ビデオデータなどのデータを符号化及び/又は復号することに関する様々な機能を実行するコーディングモジュール320。いくつかの実施形態では、コーディングモジュール320はコーダコンポーネント114のインスタンスである。コーディングモジュール320は:
○デコーダコンポーネント122に関して上述された機能などの、符号化されたデータの復号化に関する様々な機能を実行する復号化モジュール322;及び
○エンコーダコンポーネント106に関して上述された機能などの、データの符号化に関する様々な機能を実行する符号化モジュール340、のうちの1つ以上を含むが、これらに限られない;
●ピクチャ及びピクチャデータを、例えば、コーディングモジュール320による使用のために、記憶するピクチャメモリ352。いくつかの実施形態では、ピクチャメモリ352は、参照ピクチャメモリ208、バッファメモリ252、現在ピクチャメモリ264、及び参照ピクチャメモリ266の1つ以上を含む。
【0058】
いくつかの実施形態では、復号化モジュール322は、パーシングモジュール324(例えば、パーサ254に関して上述された様々な機能を実行するよう構成される。)、変換モジュール326(例えば、スキャナ/逆変換ユニット258に関して上述された様々な機能を実行するよう構成される。)、予測モジュール328(例えば、動き補償予測ユニット260及び/又はイントラピクチャ予測ユニット262に関して上述された様々な機能を実行するよう構成される。)、及びフィルタモジュール330(例えば、ループフィルタユニット256に関して上述された様々な機能を実行するよう構成される。)を含む。
【0059】
いくつかの実施形態では、符号化モジュール340は、符号モジュール342(例えば、ソースコーダ202、コーディングエンジン212、及び/又はエントロピコーダ214に関して上述された様々な機能を実行するよう構成される。)、及び予測モジュール344(例えば、予測器206に関して上述された様々な機能を実行するよう構成される。)を含む。いくつかの実施形態では、復号化モジュール322及び/又は符号化モジュール340は、
図3に示されるモジュールのサブセットを含む。例えば、共有される予測モジュールが復号化モジュール322及び符号化モジュール340の両方によって使用される。
【0060】
メモリ314に記憶されている上記のモジュールの夫々は、本明細書で記載される機能を実行するための命令の組に対応する。上記のモジュール(例えば、命令の組)は、別個のソフトウェアプログラム、プロシージャ、又はモジュールとして実装される必要はなく、よって、これらのモジュールの様々なサブセットが組み合われてよく、又は様々な実施形態で別なふうに再配置されてもよい。例えば、コーディングモジュール320は、任意に、別個の復号化モジュール及び符号化モジュールを含まず、むしろ、両方の機能の組を実行する同じモジュールの組を使用する。いくつかの実施形態では、メモリ314は、上述されたモジュール及びデータ構造のサブセットを記憶する。いくつかの実施形態では、メモリ314は、オーディオ処理モジュールなどの、上述されていない追加のモジュール及びデータ構造を記憶する。
【0061】
いくつかの実施形態では、サーバシステム112は、ウェブ又はHypertext Transfer Protocol(HTTP)サーバ、File Transfer Protocol(FTP)サーバ、並びにCommon Gateway Interface(CGI)スクリプト、PHP Hypertext Preprocessor(PHP)、Active Server Pager(ASP)、Hyper Text Markup Language(HTML)、Extensible Markup Language(XML)、Java、JavaScript(登録商標)、Asynchronous JavaScript and XML(AJAX)、XHP、Javelin、Wireless Universal Resource File(WURFL)、などを用いて実装されるウェブページ及びアプリケーションを含む。
【0062】
図3は、いくつかの実施形態に係るサーバシステム112を表しているが、
図3は、本明細書で記載される実施形態の構造図というよりもむしろ、1つ以上のサーバシステムに存在し得る様々な特徴の機能的説明として意図されている。実際に、当業者によって認識されるように、別々に示されているアイテムは組み合わされてよく、いくつかのアイテムは分離されてもよい。例えば、
図3に別々に示されているいくつかのアイテムは単一のサーバ上で実装されてもよく、単一のアイテムは1つ以上のサーバによって実装されてもよい。サーバシステム112を実装するために使用されるサーバの実際の数、及びそれらの間で特徴がどのように割り当てられるかは、実施ごとに様々であり、任意に、ピーク使用期間中及び平均使用期間中にサーバシステムが扱うデータトラフィックの量に部分的に依存する。
【0063】
[例となるコーディングアプローチ]
図4A~4Dは、いくつかの実施形態に係る、例となるコーディングツリー構造を表す。
図4Aの第1コーディングツリー構造(400)に示されるように、いくつかのコーディングアプローチ(例えば、VP9)は、ブロック8×8に対するいくつかの追加の制限とともに、64×64レベルから始まって4×4レベルまでの4通りのパーティションツリーを使用する。
図4Aで、Rと表記されているパーティションは、最下位の4×4レベルに達するまで、同じパーティションツリーがより低いスケールで繰り返されるという点で、再帰的と呼ぶことができる。
【0064】
図4Bの第2コーディングツリー構造(402)に示されるように、いくつかのコーディングアプローチ(例えば、AV1)は、パーティションツリーを10通りの構造に拡張し、最大サイズ(例えば、VP9/AV1の用語では、スーパーブロックと呼ばれる。)を増大させて128×128から始める。第2コーディングツリー構造は、第1コーディングツリー構造にはない4:1/1:4長方形パーティションを含む。
図4Bの2行目にある3つのサブパーティションを含むパーティションタイプはTタイプパーティションと呼ばれる。このツリー構造での長方形パーティションはこれ以上細分され得ない。コーディングブロックサイズに加えて、コーディングツリーデプスが、根ノードからの分割深さを示すために定義され得る。例えば、根ノード、例えば128×128、のコーディングツリーデプスは0にセットされ、ツリーブロックが更に一度分割された後、コーディングツリーデプスは1だけ増える。
【0065】
例として、VP9で見られるような固定の変換ユニットサイズを強制する代わりに、AV1は、ルーマコーディングブロックが、最大2つのレベルまで下がる再帰的パーティションによって表現され得る複数のサイズの変換ユニットに分割されることを可能にする。AV1の拡張されたコーディングブロックパーティションを組み込むために、4×4から64×64までの正方形、2:1/1:2、及び4:1/1:4変換サイズがサポートされる。クロマブロックについては、可能な最大変換ユニットのみが許される。
【0066】
例として、CTUは、例えばHEVCなどにおける様々な局所特性に適応するように、コーディングツリーとして表される四分木構造を使用することによってCUに分割され得る。いくつかの実施形態で、インターピクチャ(時間)又はイントラピクチャ(空間)予測を用いてピクチャエリアをコーディングすべきかどうかに関する決定は、CUレベルで行われる。各CUは、PU分割タイプに従って1つ、2つ、又は4つのPUに更に分割される。1つのPU内では、同じ予測プロセスが適用され、関連情報は、PU単位でデコーダへ伝送される。PU分割タイプに基づき予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのコーディングツリーのような他の四分木構造に従ってTUに分割され得る。HEVC構造の重要な特徴の1つは、CU、PU及びTUを含む複数のパーティション概念があることである。HEVCでは、CU又はTUが正方形でしかあり得ないが、PUは、インター予測されたブロックについて正方形又は長方形であることができる。HEVCでは、1つのコーディングブロックが4つの正方サブブロックに更に分割され得、各サブブロック(TU)に対して変換が実行される。各TUは、残差四分木(Residual Quad-Tree,RQT)と呼ばれるより小さいTUに再帰的に(四分木分割を用いて)更に分割され得る。ピクチャ境界で、HEVCで見られるように、暗黙的な四分木分割が用いられてもよく、それにより、ブロックは、サイズがピクチャ境界に合うまで、四分木分割を続けることになる。
【0067】
VVCで見られるような、二分木又は三分木分割セグメンテーション構造を使用するネスト化されたマルチタイプツリーを持った四分木は、複数のパーティションユニットタイプの概念を置換し得る。例えば、最大変換長に対して大きすぎるサイズを持つCUに必要な場合を除き、CU、PU、及びTUの概念の分離がなくなり、CUパーティション形状の柔軟性が向上する。コーディングツリー構造において、CUは正方形状又は長方形状のどちらかを有することができる。CTUは最初に四分木(quaternary tree又はquad-tree)構造によって分割される。四分木リーフノードはマルチタイプツリー構造によって更に分割され得る。
図4Cの第3コーディングツリー構造(404)に示されるように、マルチタイプツリー構造は4つの分割タイプを含む。例えば、マルチタイプツリー構造は、垂直二分木分割(SPLIT_BT_VER)、水平二分木分割(SPLIT_BT_HOR)、垂直三分木分割(SPLIT_TT_VER)、及び水平三分木分割(SPLIT_TT_HOR)を含む。マルチタイプツリーリーフノードはCUと呼ばれ、CUが最大変換長さに対して大きすぎない限り、このセグメンテーションが、これ以上の分割なしで、予測及び変換処理に使用される。つまり、ほとんどの場合に、CU、PU、及びTUは、ネスト化されたマルチタイプツリーコーディングブロック構造を持った四分木で同じブロックサイズを有する。サポートされる最大変換長さがCUの色成分の幅又は高さよりも小さい場合に、例外が発生する。1つのCTU(406)のためのブロックパーティションの例は
図4Dに示されており、これは、ネスト化されたマルチタイプツリーコーディングブロック構造を持った四分木の例を表す。
【0068】
VVCで見られるように、サポートされる最大ルーマ変換サイズは64×64であることができ、サポートされる最大クロマ変換サイズは32×32であることができる。CBの幅又は高さが最大変換幅又は高さよりも大きいとき、CBは、水平及び/又は垂直方向において変換サイズ制限を満足するようにその方向で自動的に分割される。
【0069】
コーディングツリースキームは、VTM7で見られるように、ルーマ及びクロマが別個のブロックツリー構造を持つための能力をサポートする。いくつかの場合に、Pスライス及びBスライスの場合に、1つのCTU内のルーマCTB及びクロマCTBは同じコーディングツリー構造を共有する。しかし、Iスライスの場合、ルーマ及びクロマは別個のブロックツリー構造を有する可能性がある。別個のブロックツリーモードが適用される場合、ルーマCTBは、1つのコーディングツリー構造によってCUに分割され、クロマCTBは、他のコーディングツリー構造によってクロマCUに分割される。つまり、IスライスでのCUは、ルーマ成分のコーディングブロック又は2つのクロマ成分のコーディングブロックを含むか又はそれらから成ってよく、P又はBスライスでのCUは、ビデオがモノクロでない限りは、常に、3つ全ての色成分のコーディングブロックを含むか又はそれらから成ってよい。
【0070】
拡張されたコーディングブロックパーティションをサポートするために、複数の変換サイズ(例えば、次元ごとに4ポイントから64ポイントに及ぶ。)及び変換形状(例えば、正方形、又は幅/高さ比の2:1/1:2及び4:1/1:4を持った長方形)が、AV1で見られるように、利用され得る。
【0071】
2次元変換プロセスは、ハイブリッド変換カーネル(例えば、コーディングされた残差ブロックの各次元に対する異なる一次元変換から構成される。)の使用を含み得る。一次の一次元変換は、a)4ポイント、8ポイント、16ポイント、32ポイント、64ポイントの離散コサイン変換DCT-2、b)4ポイント、8ポイント、16ポイントの非対称離散サイン変換(DST-4、DST-7)及びその反転バージョン、又はc)4ポイント、8ポイント、16ポイント、32ポイントの恒等変換、のうちの少なくとも1つを含み得る。AV1で使用されるような、DCT-2及び非対称DSTの基底関数を表1に示す。
【表1】
【0072】
ハイブリッド変換カーネルの利用可能性は、変換ブロックサイズ及び予測モードに基づき得る。例となる依存関係を以下の表2に示す。「→」及び「↓」は水平方向及び垂直方向を表し、
(外1)
は、そのブロックサイズ及び予測モードについてのカーネルの利用可能性を表す。IDTX(又はIDT)は恒等変換(identity transform)の略である。
【表2】
【0073】
クロマ成分の場合、変換タイプ選択は暗黙的な方法で実行される。イントラ予測残差の場合、変換タイプは、例えば表3に示されるように、イントラ予測モードに従って選択される。インター予測残差の場合、変換タイプは、並置(co-located)ルーマブロックの変換タイプ選択に従って選択され得る。従って、クロマ成分の場合、ビットストリーム内の変換タイプシグナリングは不要である。
【表3】
【0074】
線グラフ変換(Line Graph Transform(s),LGT)は、上述された一次元DSTを(32ポイント、64ポイントを導入することによって)置換及び拡張するという観点で導入された。
【0075】
グラフは、関心のあるオブジェクトの間の親和性関係をモデル化するために使用される頂点及び辺のセットを含むか又はそれらから成る一般的な数学的構造である。重み付きグラフ(重みの組が辺及び場合によっては頂点に割り当てられる)は、信号/データの堅牢なモデリングのためのスパース表現を提供する。LGTは、多様なブロック統計をより適切に適応させることで、コーディング効率を向上させることができる。分離可能なLGTは、データから線グラフを学習して、残差信号内のブロックの基礎となる行及び列ごとの統計をモデル化することによって、設計及び最適化される。このとき、関連する一般化グラフラプラシアン(generalized graph Laplacian,GGL)行列がLGTの導出に使用される。
図5Aは、自己ループ重みv
c1、v
c2、及びエッジ重みw
cによって特徴付けられるLGTの例を示す。
【0076】
重み付きグラフG(W,V)を考えると、GGL行列は:
L
c=D-W+V 式1
と定義され得る。ここで、Wは、非負エッジ重みw
cを含むか又はそれから成る隣接行列であり、Dは対角次数行列であり、Vは、重み付き自己ループv
c1、v
c2を表す対角行列である。行列L
cは次のように表すことができる:
【数1】
LGTは、次いで、GGLの固有値分解 L
c=UΦU
Tによって導出でき、このとき、直交行列Uの列はLGTの基底ベクトルであり、Φは対角固有値行列である。DCT-2、DCT-8及びDST-7を含むDCT及びDSTは、特定の形式のGGLから導出されたLGTである。例えば、DCT-2は、v
c1=0をセットすることによって導出され得、DST-7は、v
c1=w
cをセットすることによって導出され得、DCT-8は、v
c2=w
cをセットすることによって導出され得、DST-4は、v
c1=2w
cをセットすることによって導出され得、DCT-4は、v
c2=2w
cをセットすることによって導出され得る。
【0077】
LGTは、行列乗算として実装できる。4pLGTコアは、Lcにおいてvc1=2wcをセットすることによって導出され得、つまり、それはDST-4である。8pLGTコアは、Lcにおいてvc1=1.5wcをセットすることによって導出され得る。16p、32p、及び64pLGTコアは、Lcにおいてvc1=wcをセットすることによって導出され得、つまり、それはDST-7である。
【0078】
AV1での残差コーディングの例において、各変換ユニットについて、係数コーディングはスキップ符号のシグナリングで始まり、その後、変換カーネルタイプ及びスキップ符号がゼロの場合のブロック終了(end-of-block,eob)位置が続く。次いで、各係数値が複数のレベルマップ及び符号にマッピングされる。eob位置がコーディングされた後、下位レベルのマップ及び中位レベルのマップが逆走査順序でコーディングされ得る。前者は、係数の大きさが0~2の間である場合を示し、後者は、範囲が3~14の間である場合を示す。次のステップでは、係数の符号と、14より大きい係数の残差値とを、Exp-Golombコードによって順方向の走査順序でコーディングする。
【0079】
コンテキストモデリングの使用に関して、下位レベルのマップコーディングは、変換サイズ及び方向、並びに最大5つの隣接係数情報を組み込む。一方、中位レベルのマップコーディングは、隣接係数の数が2つになることを除いて、下位レベルのマップコーディングと同様のアプローチに従う。残差レベルのExp-Golombコード及びAC係数の符号は、如何なるコンテキストモデルにもよらずにコーディングされる一方、DC係数の符号は、その隣接する変換ユニットのDC符号を使用してコーディングされる。
【0080】
上及び左隣接ブロックのDC符号値の加重平均は、例えば、以下の式3で示されるように、コンテキスト情報を導出するために使用されてもよい:
【数2】
【数3】
この例では、重み付けは、隣接する変換ブロックと現在の変換ブロックとの交差部分の長さに依存する。導出されたコンテキスト情報は、例えば上記の式4で示されるように、DC符号コーディングのための3つの異なるコンテキストにアクセスするためのインデックスとして使用される。他の係数の符号値は、コンテキストモデルを使用せずに直接コーディングされ得る。
【0081】
VVCで見られるような、変換スキップのための残差コーディングの例では、変換スキップモード(TSM)でコーディングされたCUは、修正された変換コーディングプロセスで使用され得る。修正は、次のように要約できる:(a)全てのサブブロック及びサブブロック内の位置は順方向の走査順序でスキャンされ、(b)最下位係数位置はシグナリングされず、(c)シンタックス要素coded_sub_block_flagは最後のサブブロックについてはコーディングされず、(d)シンタックスsig_coeff_flag、abs_level_gt1及びpar_level_flagのためのコンテキストモデリングは変更されず、(e)符号フラグは左及び上隣接値に基づきコンテキストコーディングされる。
【0082】
AV2の開発中に、IDTX(二次元変換スキップ)の変換コーディングプロセスを修正するために、フォワードスキップコーディング(FSC)と呼ばれる新しいモードが導入された。FSCによって導入された修正は、機能的にはVVC変換スキップモードに導入された上記の変更と同様であるが、次のように要約できる:(a)全てのコーディングされたブロック及びコーディングされたブロック内の位置は順方向の走査順序でスキャンされ、(b)EOBシンタックスはスキップされ、(c)削減されたコンテキストが係数レベルに使用され、(d)符号フラグは左、下、左下に基づいてコンテキストコーディングされる。
【0083】
イントラブロックについては、FSCモードが選択される場合に、変換タイプは変換ブロックのためにシグナリングされない。むしろ、変換タイプのシグナリングは、コーディングされたブロックレベルでFSCモードとバンドルされる。インターブロックはFSCモードをシグナリングせず、変換タイプがIDTXであり、スクリーンコンテンツフラグが有効である場合に、FSCメソッドが暗黙的に選択される。
【0084】
変換係数のエントロピコーディングについては、係数符号は、バイパスモードを用いて大きさ/レベル(係数値の絶対値)とは別にコーディングされ得る。別個のコーディングは、各係数符号のコーディングに1ビットのコストがかかる可能性があることを意味し、コストが高くなる。係数符号のエントロピコーディング効率を向上させるために、符号予測技術が使用され得る。例えば、符号値をシグナリングする代わりに、予測された符号が実際の符号と同じであるかどうかを示すフラグを、コンテキストを使用してエントロピコーディングすることができる。コンテキスト値は、係数のレベル(係数値の絶対値)に依存し得る。なぜなら、より大きなレベル値がより正確な予測符号値をもたらすからである。
【0085】
例において、変換係数のグループは、関連する符号が予測される必要がある場合に識別される。次いで、これらの係数の予測された符号値に対する仮説の組が生成される。例えば、3つの係数の場合、仮説の数は最大8(23)であることができる。符号値を予測するために、各仮説に関連したコスト値が存在し、最小コストを有する仮説が、その仮説によってカバーされる係数に対する予測された符号値を指定するために使用される。
【0086】
図5Bは、変換ブロック500並びに隣接行502及び隣接列504におけるピクセル位置の例を示す。いくつかの実施形態で、各仮説のコストは次のように計算される。所与の仮説に関連した再構成ブロック(仮説再構成)は、再構成プロセス(例えば、逆量子化、逆変換)に従って生成され、再構成されたブロックの境界サンプル、例えば、p
0,y及びp
x,0が導出される。再構成されたブロックの左境界にある再構成されたピクセルp
0,yの夫々について、左側にある2つの以前に再構成された隣接ピクセルを使用した単純な線形予測が実行され、その予測pred
0,y=(2p
-1,y-p
-2,y)が得られる。この予測と再構成されたピクセルp
0,yとの間の絶対差が仮説のコストに加えられる。同様の処理は、再構成されたブロックの上の行のピクセルに対しても行われ、各予測pred
x,0=(2p
x,-1-p
x,-2)と再構成されたピクセルp
x、0との絶対差が合計される。従って、各係数符号予測仮説のコストの計算は、以下の式5で与えられる:
【数4】
【0087】
係数符号は、コーディング効率を向上させるために複数のシンボルを一緒に使用してシグナリングされ得る。DC及び/又はAC係数符号の効率的なコーディングのための方法は、DC及び/又はAC係数符号の予測/推定し、その後に予測/推定の
(外2)
をコンテキストコーディングすることを含んでよく、ここで、iは、走査順序におけるi番目の係数であり、i≦Nであり、Nは、予測/推定される係数の最大数である。
(外3)
は、バイナリ値(0又は1)によって定義でき、0は、予測/推定が正確であることを表し、一方、1はその逆を表す。コーディング効率は、様々な
(外4)
をグループ化し、マルチシンボル算術コーダの能力を利用してそれらを一緒にコーディングすることによって、更に向上させることができる。
(外5)
及び/又は予測された係数符号を一緒にコーディングするための方法は、次のセクションで議論される。
【0088】
図6Aは、いくつかの実施形態に係るビデオ符号化方法600を表すフロー図である。方法600は、制御回路と、制御回路によって実行される命令を記憶しているメモリとを備えたコンピューティングシステム(例えば、サーバシステム112、ソースデバイス102、又は電子デバイス120)で実行されてよい。いくつかの実施形態では、方法600は、コンピューティングシステムのメモリ(例えば、メモリ314)に記憶されている命令を実行することによって実行される。
【0089】
システムは、第1ブロックを含む複数のブロックを含むビデオデータを取得する(602)。システムは、第1ブロックに関連した複数の変換係数を決定する(604)。いくつかの実施形態で、複数の変換係数は、複数の予測精度の中の各々の予測精度と関連付けられている。システムは、複数の変換係数について各々の係数符号を予測する(606)。いくつかの実施形態で、方法は、複数の予測精度の中に基づき、予測された係数符号のうちの2つ以上をグループ化することによって、それら2つ以上の予測された係数符号を一緒にシグナリングすることを含む。システムは、予測された係数符号のうちの2つ以上を一緒にシグナリングすることを含む、第1ブロックのエントロピコーディング(608)を実行する。いくつかの実施形態で、第1ブロックは、一緒にシグナリングされた係数符号を用いてエントロピコーディングされる。方法600は、ルーマ及び/又はクロマブロックに任意に適用される。本開示で、「ブロック」という用語は、変換ブロックの係数に言及するために使用されることがある。
【0090】
いくつかの実施形態で、複数の変換係数符号は、例えば、各符号を個別にシグナリングする代わりに、一緒にシグナリングされる。いくつかの実施形態で、複数の変換係数符号を符号化するとき、エンコーダコンポーネントは、選択されたN個の個別的な係数符号をグループにまとめて、2N個のシンボルに関連するインデックスを形成し、このとき、各シンボルは、N個の係数符号値の特定の組み合わせを表す。いくつかの実施形態で、インデックスは、マルチシンボル算術コーダを用いて符号化及び復号される。いくつかの実施形態で、変換係数符号ビットをグループ化及びコーディングする代わりに、予測された符号が実際の符号と同じであるかどうかを示す値が、1つのインデックスとしてグループ化及びコーディングされる。いくつかの実施形態で、インデックスはコンテキストコーディングされる。いくつかの実施形態で、インデックスをコーディングするためのコンテキストは、平面タイプ、変換タイプ、及び/又はブロックサイズなどの既にコーディングされた情報から導出される。
【0091】
いくつかの実施形態で、選択されたN個の係数符号のみがグループにまとめられて、インデックスを形成し、残りの係数符号は個別的にシグナリングされる。例において、Mと表記される、変換ブロック内の非ゼロの係数の数が、Nに満たない場合に、2N個のシンボルの組の中のN-M個の値が、インデックスにマッピングするときにゼロに割り当てられる。他の例では、Mと表記される、変換ブロック内の非ゼロの係数の数が、Nに満たない場合に、変換ブロック内のN-M個の係数符号がインデックスにマッピングされる。他の例では、変換ブロック内の非ゼロの係数の数がNよりも多い場合、選択されたN個の変換係数符号がインデックスにマッピングされ、一方、残りの係数符号は個別的にコーディングされる。
【0092】
いくつかの実施形態で、変換係数符号(例えば、全ての変換係数符号)は、N個の符号のグループに分割され、係数符号の各グループは、インデックスにマッピングされる。例において、変換ブロック内の非ゼロの係数の数が14であり、N=3である場合、最初の12個の係数符号の中で3つの変換係数符号から成る組が夫々インデックスにマッピングされる。この例における残り2つの変換係数符号は、22=4個のシンボルに関連するインデックスにマッピングされる。他の例では、変換ブロック内の非ゼロの係数の数が14であり、N=3である場合、最初の12個の係数符号の中で3つの変換係数符号から成る組が夫々インデックスにマッピングされる。この例における残り2つの変換係数符号は、最後の係数符号がゼロであると仮定されるように、組[0,2N-1]内のインデックスにマッピングされる。
【0093】
他の例では、エンコーダコンポーネントで、N=3である場合、
(外6)
は、組[000,001,010,011,100,101,110,111]の中のいずれかの値をとることができる。この例において、
(外7)
の組み合わせは、組[0,1,2,3,4,5,6,7]内の一意のインデックスにマッピングされる。いくつかの実施形態で、予測された符号は、
(外8)
に関して上述されたのと同様にしてグループ化及びコーディングされる。
【0094】
図6Bは、いくつかの実施形態に係るビデオ復号化方法650を表すフロー図である。方法650は、制御回路と、制御回路によって実行される命令を記憶しているメモリとを備えたコンピューティングシステム(例えば、サーバシステム112、ソースデバイス102、又は電子デバイス120)で実行されてよい。いくつかの実施形態では、方法650は、コンピューティングシステムのメモリ(例えば、メモリ314)に記憶されている命令を実行することによって実行される。
【0095】
システムは、第1ブロックを含む複数のブロックを含むビデオデータを取得する(652)。システムは、第1ブロックに関連した複数の変換係数を決定する(654)。システムは、変換係数符号インデックスの符号化された値を取得する(656)。システムは、符号化された値から、複数の変換係数の各々の係数符号を再構成する(658)。システムは、複数の変換係数と、複数の変換係数の再構成された各々の係数符号とに基づき、第1ブロックを再構成する(660)。方法650は、ルーマ及び/又はクロマブロックに任意に適用される。いくつかの実施形態で、デコーダコンポーネントでは、選択されたN個の個別的な係数の係数符号が、インデックスの復号された値を用いて再構成される。いくつかの実施形態で、インデックスは、マルツシンボル算術コーダを用いて符号化及び復号される。
【0096】
いくつかの実施形態で、複数の変換係数符号の各組み合わせは、事前定義されたインデックス値にマッピングされる。いくつかの実施形態で、インデックスは、組[0,2N-1]、例えばインデックスのソース空間、の中のいずれかの値をとることができる。
【0097】
例において、デコーダコンポーネントで、N=3である場合、インデックスは、組[0,1,2,3,4,5,6,7]内のいずれかの値をとることができる。この例では、インデックスは、組[000,001,010,011,100,101,110,111]の中の
(外9)
の一意のグルーピングにマッピングされる。いくつかの実施形態で、予測された符号は、
(外10)
に関して上述されたのと同様にしてグループ化及びコーディングされる。
【0098】
図6A及び
図6Bは多数の論理的な段階を特定の順序で表しているが、順序に依存しない段階は並べ替えられてもよく、他の段階は結合又は分解されてもよい。具体的に述べられていないいくつかの並べ替え又は他のグループ分けは当業者に明らかであるから、本明細書で提示されている順序及びグループ分けは包括的ではない。更に、段階はハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組み合わせで実装されてもよいことが認識されるべきである。
【0099】
これより、いくつかの例示的な実施形態を参照する。
【0100】
(A1)一態様で、いくつかの実施形態はビデオ符号化の方法(例えば、方法600)を含む。いくつかの実施形態で、方法は、メモリ及び1つ以上のプロセッサを備えるコンピューティングシステム(例えば、サーバシステム112)で実行される。いくつかの実施形態で、方法は、コーディングモジュール(例えば、コーディングモジュール320)で実行される。いくつかの実施形態で、方法は、エントロピコーダ(例えば、エントロピコーダ214)で実行される。方法は、(i)第1ブロックを含む複数のブロックを有するビデオデータを(例えば、ビデオソース104から)取得するステップと、(ii)第1ブロックに関連した複数の変換係数を決定するステップと、(iii)(例えば、予測モジュール344を用いて)複数の変換係数の各々の係数符号を予測するステップと、(iv)予測された係数符号のうちの2つ以上の予測された係数符号を一緒にシグナリングすることを含む、それら2つ以上の予測された係数符号を(例えば、符号化モジュール340を用いて)エントロピコーディングするステップと、を含む。いくつかの実施形態で、複数の変換係数は、複数の予測精度のうちの各々の予測精度に関連付けられている。いくつかの実施形態で、方法は、複数の予測精度に基づき2つ以上の予測された係数符号をグループ化することによって、それら2つ以上の予測された係数符号を一緒にシグナリングすることを含む。いくつかの実施形態で、第1ブロックは、一緒にシグナリングされた係数符号を用いてエントロピコーディングされる。例えば、複数のブロックは変換ブロックである。いくつかの実施形態で、第1ブロックはルーマブロックを有する。いくつかの実施形態で、第1ブロックはクロマブロックを有する。いくつかの実施形態で、第1ブロックの各要素は、再構成されたピクセルに対応する。
【0101】
(A2)A1のいくつかの実施形態で、2つ以上の予測された係数符号を一緒にシグナリングするステップは、2つ以上の予測された係数符号を一緒に符号化するステップを含む。例えば、2つ以上の予測された係数符号が3に等しい場合、予測された符号は、組[000,001,010,011,100,101,110,111]の中のいずれかの値をとることができる。この例では、予測された符号の組み合わせは、[0,1,2,3,4,5,6,7]内の一意のインデックスにマッピングされる。
【0102】
(A3)A1のいくつかの実施形態で、2つ以上の予測された係数符号を一緒にシグナリングするステップは、2つ以上の値を一緒に符号化するステップを含み、2つ以上の値の各値は、各々の予測された係数符号が対応する変換係数の実際の符号に一致するかどうかを示す。例えば、値は、予測係数符号の
(外11)
である。
【0103】
(A4)A3のいくつかの実施形態で、2つ以上の値を符号化するステップは、(i)2つ以上の値の組み合わせをシンボルのインデックスの事前定義されたインデックス値にマッピングするステップと、(ii)事前定義されたインデックス値を符号化するステップとを含む。例えば、2つ以上の予測された係数符号が3に等しい場合、
(外12)
は、組[000,001,010,011,100,101,110,111]の中のいずれかの値をとることができる。この例では、
(外13)
の組み合わせは、[0,1,2,3,4,5,6,7]内の一意のインデックスにマッピングされる。
【0104】
(A5)A1~A4のいずれかのいくつかの実施形態で、(i)方法は、シンボルのインデックスを取得するステップを更に含み、(ii)シンボルのインデックスの各シンボルは、係数符号値の各々の組み合わせを表し、(iii)シンボルのインデックスは、2つ以上の予測された係数符号を一緒にシグナリングするために使用される。例えば、エンコーダは、2N個のシンボルに関連するインデックスを形成するようにN個の個別的な係数符号をグループ化し、各シンボルは、N個の係数符号値の特定の組み合わせを表す。
【0105】
(A6)A5のいくつかの実施形態で、方法は、マルチシンボル算術コーダを用いてシンボルのインデックスを符号化するステップを更に含む。いくつかの実施形態で、方法は、バイナリコーダを用いてシンボルのインデックスを符号化するステップを更に含む。
【0106】
(A7)A5又はA6のいくつかの実施形態で、2つ以上の予測された係数符号を一緒にシグナリングするステップは、(i)2つ以上の予測された係数符号の組み合わせをシンボルのインデックスの事前定義されたインデックス値にマッピングするステップと、(ii)事前定義されたインデックス値を符号化するステップと、を含む。
【0107】
(A8)A5~A7のいずれかのいくつかの実施形態で、シンボルのインデックスは、0から2N-1までの範囲内の値を含み、Nは、一緒にシグナリングされる予測された係数符号の数である。
【0108】
(A9)A5~A8のいずれかのいくつかの実施形態で、方法は、シンボルのインデックスをコンテキストコーディングするステップを更に含む。
【0109】
(A10)A9のいくつかの実施形態で、シンボルのインデックスは、予めコーディングされた情報に基づいてコンテキストコーディングされる。例えば、予めコーディングされた情報は、平面タイプ、変換タイプ、及び/又はブロックサイズを含む。
【0110】
(A11)A1~A10のいずれかのいくつかの実施形態で、(i)予測された係数符号は、N+M個の予測された係数符号を含み、(ii)2つ以上の予測された係数符号を一緒にシグナリングするステップは、N個の予測された係数符号を一緒にシグナリングするステップを含み、(iii)方法は、M個の予測された係数符号を個別的にシグナリングするステップを更に含む。
【0111】
(A12)A11のいくつかの実施形態で、N個の予測された係数符号は、非ゼロの各々の値を持った変換係数に対応する。
【0112】
(A13)A11又はA12のいくつかの実施形態で、M個の予測された係数符号は、ゼロの各々の値を持った変換係数に対応する。
【0113】
(A14)A11~A13のいずれかのいくつかの実施形態で、N個の予測された係数符号を一緒にシグナリングステップは、N個の予測された係数符号の組み合わせをインデックスにマッピングするステップを含む。
【0114】
(A15)A11~A14のいずれかのいくつかの実施形態で、N個の予測された係数符号を一緒にシグナリングするステップは、値の組み合わせをシンボルにマッピングするステップを含み、値の組み合わせの各値は、各々の予測された係数符号が対応する変換係数の実際の符号に一致するかどうかを示す。
【0115】
(A16)A1~A15のいずれかのいくつかの実施形態で、(i)予測された係数符号は、予測された係数符号の組を含み、(ii)2つ以上の予測された係数符号を一緒にシグナリングするステップは、予測された係数符号の組の中の第1サブセットを一緒にシグナリングするステップを含み、(iii)方法は、予測された係数符号の組の中の第2サブセットを一緒にシグナリングするステップを更に含む。例えば、変換係数符号は、N個の符号のグループに分けられ、係数符号の各グループは、インデックスにマッピングされる。いくつかの実施形態で、予測された係数符号の組は、非ゼロの変換係数の組に対応する。
【0116】
(A17)A16のいくつかの実施形態で、第1サブセットのサイズは、第2サブセットのサイズとは異なる。例えば、第1サブセットは3つの予測された係数符号を含み、第2サブセットは2つの予測された係数符号を含む。他の例では、変換ブロック内の非ゼロの係数の数が14であり、N=3である場合、最初の12個の係数符号の中で3つの変換係数符号から成る組が夫々インデックスにマッピングされる。この例における残り2つの変換係数符号は、最後の係数符号がゼロであると仮定されるように、組[0,2N-1]内のインデックスにマッピングされる。
【0117】
(A18)A1~A17のいずれかのいくつかの実施形態で、方法は、エントロピ符号化された第1ブロックを含むビットストリームを伝送するステップを更に含む。
【0118】
(B1)他の態様で、いくつかの実施形態は、ビデオ復号化の方法(例えば、方法650)を含む。いくつかの実施形態で、方法は、メモリ及び1つ以上のプロセッサを備えるコンピューティングシステム(例えば、サーバシステム112)で実行される。いくつかの実施形態で、方法は、コーディングモジュール(例えば、コーディングモジュール320)で実行される。いくつかの実施形態で、方法は、パーサ(例えば、パーサ254)で実行される。方法は、(i)ビットストリーム(例えば、A18で伝送されるビットストリーム)から第1ブロックを含む複数のブロックを有するビデオデータを取得するステップと、(ii)(例えば、パーシングモジュール324を用いて)第1ブロックに関連した複数の変換係数を決定するステップと、(iii)変換係数符号インデックスの符号化された値を取得するステップと、(iv)符号化された値から複数の変換係数の各々の係数符号を再構成するステップと、(v)複数の変換係数と、複数の変換係数の再構成された各々の係数符号とに基づき、(例えば、復号化モジュール322を用いて)第1ブロックを再構成するステップと、を含む。
【0119】
(B2)B1のいくつかの実施形態で、符号化された値から複数の変換係数の各々の係数符号を再構成するステップは、(i)符号化された値を復号するステップと、(ii)シンボルのインデックス(例えば、A5に関して上述されたインデックス)を用いて、復号された値を複数の変換係数の各々の係数符号にマッピングするステップと、を含む。
【0120】
(B3)B1又はB2のいくつかの実施形態で、符号化された値は2つ以上の予測された係数符号に対応する。
【0121】
(B4)B1又はB2のいくつかの実施形態で、符号化された値は2つ以上の値に対応し、2つ以上の値の各値は、各々の予測された係数符号が対応する変換係数の実際の符号に一致するかどうかを示す。
【0122】
(B5)B1~B4のいくつかの実施形態で、(i)ビットストリームは、A1~A8のいずれかにしたがって符号化されたビデオに対応し、(ii)各々の係数符号を再構成するステップは、A1~A18のいずれかの符号化の少なくとも一部を逆さにするステップを含む。
【0123】
本明細書で記載される方法は、別々に使用されても、又は任意の順序で組み合わされてもよい。方法の夫々は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装され得る。いくつかの実施形態で、処理回路は、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
【0124】
他の態様では、いくつかの実施形態は、制御回路(例えば、制御回路302)と、制御回路に結合されるメモリ(例えば、メモリ314)とを含むコンピューティングシステム(例えば、サーバシステム112)を含み、メモリは、制御回路によって実行されるよう構成される命令の1つ以上の組を記憶し、命令の1つ以上の組は、本明細書で記載される方法(例えば、上記のA1~A18及びB1~B5)のいずれかを実行するための命令を含む。
【0125】
更なる他の態様では、いくつかの実施形態は、コンピューティングシステムの制御回路によって実行される命令の1つ以上の組を記憶する非一時的なコンピュータ可読記憶媒体を含み、命令の1つ以上の組は、本明細書で記載される方法(例えば、上記のA1~A18及びB1~B5)のいずれかを実行するための命令を含む。
【0126】
「第1」、「第2」、などの用語は、様々な要素について記載するために本明細書で使用されることがあるが、それらの要素はこれらの用語によって限定されるべきではない、ことが理解されるだろう。これらの用語は、一つ一つの要素を区別するためにのみ使用される。
【0127】
本明細書で使用される用語は、特定の実施形態のみを記載することを目的とするものであり、特許請求の範囲の限定であるよう意図されない。実施形態の説明及び添付の特許請求の範囲で使用されるように、単数形(「a」、「an」、及び「the」)は、文脈が別段明示しない限り、複数形も含むよう意図される。本明細書で使用される「及び/又は」という用語は、列挙されている関連するアイテムの1つ以上のありとあらゆる可能な組み合わせを指し、それらを包含することも理解されるだろう。更に、「有する」(「comprises」及び/又は「comprising」)という用語は、本明細書で使用される場合に、述べられている特徴、整数、ステップ、動作、要素、及び/又はコンポーネントの存在を特定するが、1つ以上の他の特徴の存在又は追加を妨げない。
【0128】
本明細書で使用されるように、「~する場合」(if)という用語は、文脈に依存して、その前に述べられている条件が真である「とき」(when)又は「と」(upon)又は「と決定することに応答して」(in response to determining)又は「という決定に従って」(in accordance with a determination)又は「と検出することに応答して」(in response to detecting)を意味すると解釈できる。同様に、「[その前に述べられている条件が真である]ことが決定される場合」又は「[その前に述べられている条件が真である]場合」又は「[その前に述べられている条件が真である]とき」は、文脈に依存して、その前に述べられている条件が真である「と決定すると」又は「と決定することに応答して」又は「という決定に従って」又は「ことを検出すると」又は「と検出することに応答して」を意味すると解釈できる。
【0129】
上記の記載は、説明の目的で、具体的な実施形態を参照して記載されている。しかし、上記の実例となる議論は、網羅的であること、又は開示されている厳密な形態に特許請求の範囲を限定することを意図されない。多くの変更及び変形が、上記の技術に照らして可能である。実施形態は、動作の原理及び実際の応用を最もよく説明し、それによって当業者に可能にするために選択及び記載された。
【0130】
[関連出願]
本願は、2022年6月15日に「Joint Signaling of Coefficient Signs using Multiple Symbol Codec」という発明の名称で出願された米国特許仮出願第63/352411号の優先権を主張するものであり、2023年5月4日に「Systems and Methods for Joint Signaling of Transform Coefficient Signs」という発明の名称で出願された米国特許出願第18/143516号の継続出願であって、その優先権を主張するものである。なお、先の米国出願は、その全文を参照により本願に援用される。
【国際調査報告】