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

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

▶ ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッドの特許一覧

特開2024-116363ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法
<>
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図1
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図2
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図3
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図4A
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図4B
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図4C
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図4D
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図4E
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図5
  • 特開-ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116363
(43)【公開日】2024-08-27
(54)【発明の名称】ビデオデータ符号化方法、コンピューティングデバイス、非一時的コンピュータ可読記憶媒体、コンピュータプログラム、及びビットストリームを格納する方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240820BHJP
【FI】
H04N19/70
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2024096593
(22)【出願日】2024-06-14
(62)【分割の表示】P 2022503403の分割
【原出願日】2020-09-08
(31)【優先権主張番号】62/897,292
(32)【優先日】2019-09-07
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】ワン、シエンリン
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】シウ、シアオユイ
(72)【発明者】
【氏名】マー、ツォン-チョアン
(72)【発明者】
【氏名】ユイ、ピン
(57)【要約】      (修正有)
【課題】復号化されたビデオデータの画質を維持しつつ、ビデオデータをより効率的に符号化/復号化する方法を提供する。
【解決手段】ビデオコーダが予測モードシグナリングの方法は、第1シンタックス要素が第1値を持ち、第3シンタックス要素が第1値を持つとき、パレットモードを使用してノンスキップモード符号化ブロックに対応するビデオデータを復号化し、第1シンタックス要素が前記第1値を持ち、第3シンタックス要素が第2値を持つとき、イントラ予測モードを使用してノンスキップモード符号化ブロックに対応するビデオデータを復号化し、第1シンタックス要素が第2値を持つとき、インター予測モードを使用してノンスキップモード符号化ブロックに対応するビデオデータを復号化し、ビットストリームを介してノンスキップモード符号化ブロックに対応するビデオデータを送信する。
【選択図】図6
【特許請求の範囲】
【請求項1】
ノンスキップモード符号化ブロックに関連する情報を取得し、
前記情報が第1条件を満たすとの判断に従って、ビットストリームの第1シンタックス要素をシグナリングし、
前記情報が第2条件を満たすとの判断に従って、前記ビットストリームの第2シンタックス要素をシグナリングし、
前記情報が第3条件を満たすとの判断に従って、前記ビットストリームの第3シンタックス要素をシグナリングし、
前記第1シンタックス要素が第1値を持ち、前記第3シンタックス要素が前記第1値を持つとき、パレットモードを使用して前記ノンスキップモード符号化ブロックに対応するビデオデータを符号化し、
前記第1シンタックス要素が前記第1値を持ち、前記第3シンタックス要素が第2値を持つとき、イントラ予測モードを使用して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを符号化し、
前記第1シンタックス要素が前記第2値を持つとき、インター予測モードを使用して前記ノンスキップモード符号化ブロックに対応するビデオデータを符号化し、
前記ビットストリームを介して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを送信する、
ビデオデータ符号化方法。
【請求項2】
前記パレットモードを使用して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを符号化するときは、前記第2条件が満たされず、前記第2シンタックス要素がシグナリングされない、
請求項1に記載のビデオデータ符号化方法。
【請求項3】
前記イントラ予測モードを使用して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを符号化するときは、前記第2条件が満たされず、前記第2シンタックス要素がシグナリングされない、
請求項1に記載のビデオデータ符号化方法。
【請求項4】
前記インター予測モードを使用して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを符号化するときは、前記第2条件および第3条件が満たされず、前記第2シンタックス要素および前記第3シンタックス要素がシグナリングされない、
請求項1に記載のビデオデータ符号化方法。
【請求項5】
前記第1シンタックス要素が第2値を持つか、前記第1シンタックス要素がシグナリングされず、前記第2シンタックス要素が前記第1値を持ち、前記第3シンタックス要素がシグナリングされないとき、イントラブロックコピーモードを使用して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを符号化する、
請求項1に記載のビデオデータ符号化方法。
【請求項6】
コンピューティングデバイスであって、
1つもしくは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたメモリと、
前記1つまたは複数のプロセッサによって実行されたときに、ビットストリームを生成し、前記ビットストリームを非一時的ストレージに格納するために、前記コンピューティングデバイスに請求項1~請求項5のいずれか1項の動作を実行させる、前記メモリに記憶された複数のプログラムと、
を含む、
コンピューティングデバイス。
【請求項7】
1もしくは複数のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、
前記複数のプログラムは前記1つもしくは複数のプロセッサによって実行されると、ビットストリームを生成し、前記ビットストリームを前記非一時的コンピュータ可読記憶媒体に格納するために、前記コンピューティングデバイスに請求項1~請求項5のいずれか1項の動作を実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項8】
1つもしくは複数のプロセッサを含むコンピュータ装置によって実行可能なコンピュータプログラムであって、
前記1つもしくは複数のプロセッサによって前記コンピュータプログラムが実行されると、前記コンピュータプログラムは、ビットストリームを生成し、前記ビットストリームを送信するために、請求項1~請求項5のいずれか1項に記載のビデオデータを符号化する方法を前記コンピュータ装置に実行させる、
コンピュータプログラム。
【請求項9】
ビットストリームを格納する方法であって、
前記ビットストリームは符号化方法によって生成され、
前記符号化方法は、
ノンスキップモード符号化ブロックに関連する情報を取得し、
前記情報が第1条件を満たしているとの判断に従って、ビットストリームの第1シンタックス要素をシグナリングし、
前記情報が第2条件を満たしているとの判断に従って、前記ビットストリームの第2シンタックス要素をシグナリングし、
前記情報が第3条件を満たしているとの判断に従って、前記ビットストリームの第3シンタックス要素をシグナリングし、
前記第1シンタックス要素が第1値を持ち、前記第3シンタックス要素が前記第1値を持つとき、パレットモードを使用して前記ノンスキップモード符号化ブロックに対応するビデオデータを符号化し、
前記第1シンタックス要素が前記第1値を持ち、前記第3シンタックス要素が第2値を持つとき、イントラ予測モードを使用して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを符号化し、
前記第1シンタックス要素が前記第2値を持つとき、インター予測モードを使用して前記ノンスキップモード符号化ブロックに対応するビデオデータを符号化し、
前記ビットストリームを介して前記ノンスキップモード符号化ブロックに対応する前記ビデオデータを送信する、
ビットストリームを格納する方法。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に、ビデオデータの符号化および復号化に関し、詳細には、ビデオ符号化における予測モードシグナリングの方法およびシステムに関する。
【背景技術】
【0002】
デジタルビデオは、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲームコンソール、スマートフォン、ビデオテレビ会議装置、ビデオストリーミング装置等の様々な電子装置によってサポートされる。電子デバイスは、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、パート10、AVC(Advanced Video Coding)、HEVC(High Efficiency Video Coding)、およびVVC(Versatile Video Coding)規格によって定義されるビデオ圧縮/解凍規格を実装することによって、デジタルビデオデータを送信、受信、符号化、復号化、および/または格納する。ビデオ圧縮は通常、ビデオデータに固有の冗長性を低減または除去するために、空間(イントラフレーム)予測および/または時間(インターフレーム)予測を実行することを含む。ブロックベースのビデオ符号化の場合、ビデオフレームは1つまたは複数のスライスに分割され、各スライスは符号化ツリーユニット(CTU)とも呼ばれ得る複数のビデオブロックを有する。各CTUは、所定の最小CUサイズに達するまで、1つの符号化ユニット(CU)を含むか、またはより小さなCUに再帰的に分割することができる。各CU(リーフCUとも呼ばれる)は1つまたは複数の変換ユニット(TU)を含み、各CUは、1つまたは複数の予測ユニット(PU)も含む。各CUは、イントラモード、インターモード、またはIBCモードのいずれかで符号化することができる。ビデオフレームのイントラ符号化(I)スライス内のビデオブロックは、同じビデオフレーム内の隣接ブロック内の基準サンプルに関する空間予測を使用して符号化される。ビデオフレームのインター符号化(PまたはB)スライス内のビデオブロックは、同じビデオフレーム内の隣接ブロック内の基準サンプルに関する空間予測、または他の以前および/または将来の基準ビデオフレーム内の基準サンプルに関する時間予測を使用することができる。
【0003】
以前に符号化された基準ブロック、例えば、隣接ブロックに基づく空間予測または時間予測は、符号化されるべき現在のビデオブロックのための予測ブロックをもたらす。基準ブロックを見つけるプロセスは、ブロックマッチングアルゴリズムによって達成することができる。符号化される現在のブロックと予測ブロックとの間のピクセル差を表す残差データは、残差ブロックまたは予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを形成する基準フレーム内の基準ブロック、および残差ブロックを指し示す動きベクトルに従って符号化される。動きベクトルを決定するプロセスは、典型的には動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モード及び残差ブロックに従って符号化される。さらなる圧縮のために、残差ブロックは、ピクセル領域から変換領域、例えば周波数領域に変換され、結果として残差変換係数が得られ、次いで、量子化され得る。量子化された変換係数は、最初に2次元アレイに配置され、変換係数の1次元ベクトルを生成するために走査され、次いで、ビデオビットストリームにエントロピー符号化されて、さらに多くの圧縮を達成することができる。
【0004】
次いで、符号化されたビデオビットストリームはデジタルビデオ機能を有する別の電子装置によってアクセスされるか、もしくは、有線または無線で電子装置に直接送信されるように、コンピュータ可読記録媒体(例えば、フラッシュメモリ)に保存される。次いで、電子デバイスはビットストリームからシンタックス要素を得るために符号化ビデオビッ
トストリームを構文解析し、ビットストリームから得られたシンタックス要素に少なくとも部分的に基づいて符号化ビデオビットストリームから元のフォーマットにデジタルビデオデータを再構成することによって、ビデオ解凍(上述のビデオ圧縮とは反対の処理である)を実行し、再構成されたデジタルビデオデータを電子デバイスのディスプレイ上にレンダリングする。
【発明の概要】
【発明が解決しようとする課題】
【0005】
高精細度から4K×2Kまたは8K×4Kに至るデジタルビデオ品質では、符号化/復号化されるビデオデータの量は指数関数的に増大する。復号化されたビデオデータの画質を維持しつつ、ビデオデータをより効率的に符号化/復号化する方法は、常に課題である。
【課題を解決するための手段】
【0006】
本出願はビデオデータの符号化および復号化に関連する実装を説明し、より詳細には、ビデオ符号化における予測モードシグナリングのシステムおよび方法を説明する。
【0007】
本出願の第1態様によれば、ビデオデータの復号化方法は、1つ以上のプロセッサと、前記1つ以上のプロセッサによって実行される複数のプログラムを記憶するメモリとを有するコンピューティングデバイスにおいて実行される。この方法は、ビットストリームからノンスキップモード符号化ブロックに対応するビデオデータを受信し、ノンスキップモード符号化ブロックに関連するパラメータセットを決定し、前記パラメータセットが第1条件を満たす場合、前記ビットストリームから第1シンタックス要素を取得し、前記パラメータセットが第2条件を満たす場合、前記ビットストリームから第2シンタックス要素を取得し、前記パラメータセットが第3条件を満たす場合、前記ビットストリームから第3シンタックス要素を取得し、前記第1シンタックス要素および前記第3シンタックス要素が第1値を有するとき、パレットモードを用いて前記ノンスキップモード符号化ブロックに対応するビデオデータを復号化し、前記第1シンタックス要素が第1値を有し、前記第3シンタックス要素が第2値を有するとき、イントラ予測モードを用いて前記ビデオデータを復号化し、前記第1シンタックス要素が第2値を有するとき、インター予測モードを用いて前記ビデオデータを復号化する。
【0008】
本出願の第2態様によれば、コンピューティングデバイスは、1つ以上のプロセッサ、メモリ、およびメモリに記憶された複数のプログラムを含む。プログラムは、1つ以上のプロセッサによって実行されると、上記のようにコンピューティングデバイスに動作を実行させる。
【0009】
本出願の第3態様によれば、非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを記憶する。プログラムは、1つ以上のプロセッサによって実行されると、上記のようにコンピューティングデバイスに動作を実行させる。
【図面の簡単な説明】
【0010】
図1】本開示のいくつかの実装形態による例示的なビデオ符号化および復号化システムを示すブロック図である。
図2】本開示のいくつかの実装形態による例示的なビデオエンコーダを示すブロック図である。
図3】本開示のいくつかの実装形態による例示的なビデオデコーダを示すブロック図である。
図4A】本開示のいくつかの実装形態による、フレームがどのように異なるサイズの複数のビデオブロックに再帰的に4分木分割されるかを示すブロック図である。
図4B】本開示のいくつかの実装形態による、フレームがどのように異なるサイズの複数のビデオブロックに再帰的に4分木分割されるかを示すブロック図である。
図4C】本開示のいくつかの実装形態による、フレームがどのように異なるサイズの複数のビデオブロックに再帰的に4分木分割されるかを示すブロック図である。
図4D】本開示のいくつかの実装形態による、フレームがどのように異なるサイズの複数のビデオブロックに再帰的に4分木分割されるかを示すブロック図である。
図4E】本開示のいくつかの実装形態による、フレームがどのように異なるサイズの複数のビデオブロックに再帰的に4分木分割されるかを示すブロック図である。
図5】本開示のいくつかの実装形態による、符号化ユニットの異なる予測モードを示すブロック図である。
図6】本開示のいくつかの実装形態による、ビデオコーダが予測モードをシグナリングする技法を実装する例示的なプロセスを示すフローチャートである。
【発明を実施するための形態】
【0011】
添付の図面は実施形態のさらなる理解を提供するために含まれ、本明細書に組み込まれ、本明細書の一部を構成し、説明された実施形態を示し、説明とともに、基礎となる原理を説明するのに役立つ。同様の参照番号は、対応する部分を指す。
【0012】
ここで、特定の実施例を詳細に参照し、その例を添付の図面に示す。以下の詳細な説明では、本明細書で提示される主題の理解を助けるために、多数の非限定的な特定の詳細が記載される。しかし、当業者には特許請求の範囲から逸脱することなく、様々な代替形態を使用することができ、主題はこれらの特定の詳細なしに実施することができることが明らかであろう。例えば、本明細書で提示される主題はデジタルビデオ機能を有する多くのタイプの電子デバイス上で実施され得ることが、当業者には明らかであろう。
【0013】
図1は、本開示のいくつかの実装形態による、ビデオブロックを並列に符号化および復号化するための例示的なシステム10を示すブロック図である。図1に示すように、システム10はソースデバイス12を含み、ソースデバイス12はデスティネーションデバイス14によって後で復号化されるビデオデータを生成し、符号化する。ソースデバイス12およびデスティネーションデバイス14は、デスクトップまたはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、多種多様な電子デバイスのいずれかを含むことができる。一部の実装では、ソースデバイス12及びデスティネーションデバイス14は無線通信能力を備える。
【0014】
ある実装では、デスティネーションデバイス14がリンク16を介して復号化されるべき符号化ビデオデータを受信することができる。リンク16は、符号化されたビデオデータをソースデバイス12からデスティネーションデバイス14に移動させることができる任意のタイプの通信媒体または装置を含むことができる。一例では、リンク16が、ソースデバイス12が符号化されたビデオデータをデスティネーションデバイス14に直接リアルタイムで送信できるようにするための通信媒体を備えてもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信規格に従って変調され、デスティネーションデバイス14に送信されてもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理的伝送線など、任意の無線または有線通信媒体を含むことができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースネットワーク、またはインターネットなどのグローバルネットワークの部分を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12からデスティネーションデバイス14への通信を容易にするために有用であり得る任意の他の
機器を含み得る。
【0015】
他のいくつかの実装では、符号化されたビデオデータが出力インタフェース22からストレージデバイス32に送信されてもよい。続いて、ストレージデバイス32内の符号化されたビデオデータは、入力インタフェース28を介してデスティネーションデバイス14によってアクセスすることができる。ストレージデバイス32は、ハードドライブ、ブルレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性又は不揮発性メモリ、又は符号化されたビデオデータを記憶する他の任意の適切なデジタル記憶媒体のような、様々な分散又はローカルにアクセスされるデータ記憶媒体のいずれかを含むことができる。さらなる例では、ストレージデバイス32がソースデバイス12によって生成された符号化ビデオデータを保持することができるファイルサーバまたは別の中間記憶装置に対応することができる。デスティネーションデバイス14は、ストリーミング又はダウンロードを介してストレージデバイス32から記憶されたビデオデータにアクセスすることができる。ファイルサーバは符号化されたビデオデータを記憶し、符号化されたビデオデータをデスティネーションデバイス14に送信することができる任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、ウェブサーバ、FTPサーバ、NAS(Network Attached Storage)デバイス、またはローカルディスクドライブを含む。デスティネーションデバイス14は無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、DSL、ケーブルモデム等)、又はファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した両方の組み合わせを含む、任意の標準データ接続を介して符号化ビデオデータにアクセスすることができる。ストレージデバイス32からの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはその両方の組み合わせであってもよい。
【0016】
図1に示すように、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インタフェース22とを含む。ビデオソース18はビデオキャプチャ装置、例えば、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインタフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、あるいはそのようなソースの組み合わせなどのソースを含むことができる。一例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソースデバイス12およびデスティネーションデバイス14は、カメラ付き電話またはビデオ電話を形成することができる。しかしながら、本アプリケーションに記載されている実装は一般にビデオ符号化に適用可能であり、無線および/または有線アプリケーションに適用可能である。
【0017】
キャプチャされた、事前キャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インタフェース22を介してデスティネーションデバイス14に直接送信されてもよい。符号化されたビデオデータは復号化および/または再生のために、デスティネーションデバイス14または他の装置による以後のアクセスのためにストレージデバイス32に記憶することもできる。出力インタフェース22は、モデムおよび/または送信機をさらに含むことができる。
【0018】
デスティネーションデバイス14は、入力インタフェース28と、ビデオデコーダ30と、表示装置34とを含む。入力インタフェース28は受信機および/またはモデムを含み、リンク16を介して符号化ビデオデータを受信することができる。リンク16を介して通信されるか、またはストレージデバイス32上に提供される符号化されたビデオデータは、ビデオデータを復号化する際にビデオデコーダ30によって使用するためにビデオエンコーダ20によって生成される様々なシンタックス要素を含むことができる。このよ
うなシンタックス要素は、通信媒体上で送信されてもよいし、記憶媒体上に記憶されてもよいし、またはファイルサーバに記憶されてもよいし、符号化されたビデオデータ内に含まれてもよい。
【0019】
一部の実装では、デスティネーションデバイス14が、統合表示装置とすることができる表示装置34と、デスティネーションデバイス14と通信するように構成された外部表示装置とを含むことができる。ディスプレイデバイス34は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ、プラズマディスプレイ、有機発光ダイオード、または別のタイプのディスプレイデバイスのような様々なディスプレイデバイスのいずれかを含むことができる。
【0020】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、パート10、AVC(Advanced video Coding)、またはそのような規格の拡張など、独自仕様または業界規格に従って動作することができる。本出願は、特定のビデオ符号化/復号化規格に限定されず、他のビデオ符号化/復号化規格に適用可能であることを理解されたい。一般に、ソースデバイス12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従ってビデオデータを符号化するように構成され得ることが企図される。同様に、一般に、デスティネーションデバイス14のビデオデコーダ30は、これらの現在または将来の規格のいずれかに従ってビデオデータを復号化するように構成され得ることも企図される。
【0021】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、DSP(digital signal processors)、ASIC(application specific integrated circuits)、FPGA(field programmable gate arrays)、ディスクリ
ートロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装することができる。部分的にソフトウェアで実装される場合、電子デバイスは適切な非一時的コンピュータ可読媒体にソフトウェアの命令を格納し、本開示で開示されるビデオ符号化/復号化動作を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行することができる。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、そのいずれも、それぞれの装置内の複合エンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
【0022】
図2は、本出願で説明されるいくつかの実装形態による例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化およびインター予測符号化を実行し得る。イントラ予測符号化は所与のビデオフレームまたはピクチャ内のビデオデータにおける空間冗長性を低減または除去するために、空間予測に依存する。インター予測符号化はビデオシーケンスの隣接するビデオフレームまたはピクチャ内のビデオデータにおける時間的冗長性を低減または除去するために、時間的予測に依存する。
【0023】
図2に示すように、ビデオエンコーダ20は、ビデオデータメモリ40と、予測処理ユニット41と、復号ピクチャバッファ(DPB)64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41はさらに、動き推定ユニット42、動き補償ユニット44、分割ユニット45、イントラ予測処理ユニット46、イントラブロックコピー(BC)ユニット48を有する。幾つかの実装形態では、ビデオエンコーダ20はまた、逆量子化ユニット58、逆変換処理ユニット60、及びビデオブロック再構成のための加算器62を含む。デブロッキングフィルタ(図示せず)を加算器62とDPB64との間に配置して、ブロック境界をフィルタリングして、再構成されたビデオからブロックノイズアーチファクトを除去す
ることができる。インループフィルタ(図示せず)は、デブロッキングフィルタに加えて、加算器62の出力をフィルタリングするために使用されてもよい。ビデオエンコーダ20は固定またはプログラマブルなハードウェアユニットの形態をとることができ、または図示された固定またはプログラマブルなハードウェアユニットのうちの1つまたは複数の間で分割することができる。
【0024】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるビデオデータを記憶することができる。ビデオデータメモリ40内のビデオデータは例えば、ビデオソース18から取得することができる。DPB64はビデオエンコーダ20によるビデオデータの符号化(例えば、イントラ予測符号化モードまたはインター予測符号化モード)に使用するための基準ビデオデータを格納するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリデバイスのいずれかの形態をとることができる。様々な例では、ビデオデータメモリ40がビデオエンコーダ20の他の構成要素とチップに載っていてもよく、またはこれらの構成要素に対してオフチップであってもよい。
【0025】
図2に示すように、ビデオデータを受信した後、予測処理ユニット41内の分割ユニット45は、ビデオデータをビデオブロックに分割する。この分割はまた、ビデオフレームを、ビデオデータに関連付けられた四分木構造などの事前定義された分割構造に従って、スライス、タイル、または他のより大きな符号化ユニット(CU)に分割することを含むことができる。ビデオフレームは、複数のビデオブロック(またはタイルと呼ばれるビデオブロックのセット)に分割することができる。予測処理ユニット41はエラー結果(例えば、符号化率及び歪みのレベル)に基づいて、現在のビデオブロックに対して、複数のイントラ予測符号化モードの1つ又は複数のインター予測符号化モードの1つのような、複数の可能な予測符号化モードの1つを選択することができる。予測処理ユニット41は結果として生じるイントラ又はインター予測符号化ブロックを加算器50に提供して、残差ブロックを生成し、続いて基準フレームの一部として使用するために符号化ブロックを再構成する加算器62に提供することができる。予測処理ユニット41はまた、動きベクトル、モード内インジケータ、分割情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に提供する。
【0026】
現在のビデオブロックのための適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は空間予測を提供するために、符号化されるべき現在のブロックと同じフレーム内の1つまたは複数の隣接ブロックに対して、現在のビデオブロックのイントラ予測符号化を実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は時間予測を提供するために、1つまたは複数の基準フレーム内の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測符号化を実行する。ビデオエンコーダ20は例えば、ビデオデータの各ブロックについて適切な符号化モードを選択するために、複数の符号化パスを実行することができる。
【0027】
いくつかの実装形態では、動き推定ユニット42がビデオフレームのシーケンス内の所定のパターンに従って、基準ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することによって、現在のビデオフレームのインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は動きベクトルを生成するプロセスであり、動きベクトルは、ビデオブロックの動きを推定する。動きベクトルは例えば、現在のフレーム(または他の符号化ユニット)内で符号化されている現在のブロックに対する、基準フレーム(または他の符号化ユニット)内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。所定のパターンは、シーケンス内のビデオフレームをPフレームまたはBフレームとして指定することができる。イントラB
Cユニット48は相互予測のための動き推定ユニット42による動きベクトルの決定に類似した方法で、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定することができ、又は、ブロックベクトルを決定するために動き推定ユニット42を利用することができる。
【0028】
予測ブロックは、絶対差分和(SAD)、二乗差分和(SSD)、または他の差分メトリックによって決定され得る、ピクセル差分に関して符号化されるべきビデオブロックのPUに密接に一致すると見なされる基準フレームのブロックである。いくつかの実装形態では、ビデオエンコーダ20がDPB64に格納された基準フレームのサブ整数ピクセル位置の値を計算することができる。例えば、ビデオエンコーダ20は、基準フレームの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。従って、動き推定部42は全ピクセル位置及び分数ピクセル位置に対して動き探索を行い、分数ピクセル精度で動きベクトルを出力することができる。
【0029】
動き推定ユニット42は、PUの位置を、それぞれがDPB64に格納された1つまたは複数の基準フレームを識別する第1基準フレームリスト(List0)または第2基準フレームリスト(List1)から選択された基準フレームの予測ブロックの位置と比較することによって、インター予測符号化フレーム内のビデオブロックのPUの動きベクトルを計算する。動き推定ユニット42は計算された動きベクトルを動き補償ユニット44に送り、次いでエントロピー符号化ユニット56に送る。
【0030】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含むことができる。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は動きベクトルが指し示す予測ブロックを基準フレームリストの1つで探し出し、DPB64から予測ブロックを取り出し、予測ブロックを加算器50に転送することができる。次いで、加算器50は、動き補償ユニット44によって提供される予測ブロックのピクセル値を、符号化されている現在のビデオブロックのピクセル値から差し引くことによって、ピクセル差分値の残差ビデオブロックを形成する。残差ビデオブロックを形成するピクセル差分値は、輝度又は彩度成分又はその両方を含むことができる。動き補償ユニット44はまた、ビデオフレームのビデオブロックを復号化する際にビデオデコーダ30によって使用されるために、ビデオフレームのビデオブロックに関連するシンタックス要素を生成し得る。シンタックス要素は例えば、予測ブロックを識別するために使用される動きベクトルを定義するシンタックス要素、予測モードを示す任意のフラグ、または本明細書に記載する他の任意のシンタックス情報を含むことができる。動き推定ユニット42および動き補償ユニット44は高度に統合されてもよいが、概念目的のために別々に図示されていることに留意されたい。
【0031】
いくつかの実装形態ではイントラBCユニット48が動き推定ユニット42および動き補償ユニット44に関連して上述したのと同様の方法でベクトルを生成し、予測ブロックをフェッチすることができるが、予測ブロックは符号化されている現在のブロックと同じフレーム内にあり、ベクトルは動きベクトルとは対照的にブロックベクトルと呼ばれる。特に、イントラBCユニット48は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラBCユニット48が例えば別個の符号化パスの間に、様々なイントラ予測モードを用いて現在のブロックを符号化し、レート歪解析を通してそれらの性能をテストすることができる。次に、イントラBCユニット48は種々のテストされたイントラ予測モードの中で、適切なイントラ予測モードを使用し、それに応じてイントラモードインジケータを生成することができる。例えば、イントラBCユニット48は種々のテストされたイントラ予測モードに対してレート歪み解析を用いてレート歪み値を計算し、使用する適切なイントラ予測モードとして、
テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(またはエラー)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラBCユニット48はどのイントラ予測モードがブロックのための最良のレート歪み値を示すかを決定するために、様々な符号化されたブロックのための歪みおよびレートから比率を計算することができる。
【0032】
他の例では、イントラBCユニット48が本明細書で説明される実装形態によるイントラBC予測のためのそのような機能を実行するために、全体的にまたは部分的に、動き推定ユニット42および動き補償ユニット44を使用することができる。いずれの場合も、イントラブロックコピーの場合、予測ブロックは絶対差分和(SAD)、二乗差分和(SSD)、または他の差分メトリックによって決定され得る、ピクセル差に関して、符号化されるブロックに密接に一致すると見なされるブロックであり得、予測ブロックの識別はサブ整数ピクセル位置の値の計算を含み得る。
【0033】
予測ブロックがイントラ予測に従って同じフレームからであるか、あるいはインター予測に従って異なるフレームからであるかにかかわらず、ビデオエンコーダ20は、予測ブロックのピクセル値を、符号化されている現在のビデオブロックのピクセル値から差し引いて、ピクセル差分値を形成することによって、残差ビデオブロックを形成することができる。残差ビデオブロックを形成するピクセル差分値は、輝度成分差分及び彩度成分差分の両方を含むことができる。
【0034】
イントラ予測処理部46は上述したように、動き推定部42及び動き補償部44によって実行されるインター予測、又はイントラBC部48によって実行されるイントラブロックコピー予測に代わるものとして、現在のビデオブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。そうするために、イントラ予測処理ユニット46は例えば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例ではモード選択ユニット)がテストされたイントラ予測モードから使用するための適切なイントラ予測モードを選択することができる。イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【0035】
予測処理ユニット41がインター予測またはイントラ予測のいずれかを介して現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは1つまたは複数の変換ユニット(TU)に含めることができ、変換処理ユニット52に供給される。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。
【0036】
変換処理部52は、得られた変換係数を量子化部54に送ることができる。量子化部54は、変換係数を量子化してビットレートをさらに低減する。また、量子化プロセスは、係数の一部又は全てに関連するビット深度を低減することができる。量子化の度合いは、量子化パラメータを調整することによって修正されてもよい。いくつかの例では、量子化ユニット54が次に、量子化変換係数を含む行列の走査を実行することができる。あるいは、エントロピー符号化ユニット56が走査を実行してもよい。
【0037】
量子化に続いて、エントロピー符号化ユニット56は例えば、コンテキスト適応可変長符号化(CAVLC)、コンテキスト適応バイナリ算術符号化(CABAC)、シンタックスベースのコンテキスト適応バイナリ算術符号化(SBAC)、確率間隔分割エントロピー(PIPE)符号化、または別のエントロピー符号化方法または技法を使用して、量子化された変換係数をビデオビットストリームにエントロピー符号化する。符号化されたビットストリームは次に、ビデオデコーダ30に送信されるかもしれないし、又は、以後のビデオデコーダ30への送信又は検索のためにストレージデバイス32にアーカイブされるかもしれない。エントロピー符号化ユニット56はまた、符号化されている現在のビデオフレームのための動きベクトルおよび他のシンタックス要素をエントロピー符号化することができる。
【0038】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、他のビデオブロックの予測のための基準ブロックを生成するためのピクセルドメイン内の残差ビデオブロックを再構成する。上述のように、動き補償ユニット44は、DPB64に記憶されたフレームの1つまたは複数の基準ブロックから動き補償予測ブロックを生成することができる。動き補償ユニット44はまた、動き推定で使用するためのサブ整数ピクセル値を計算するために、予測ブロックに1つまたは複数の補間フィルタを適用することができる。
【0039】
加算器62は、動き補償ユニット44によって生成された動き補償予測ブロックに再構成された残差ブロックを追加して、DPB64に記憶するための基準ブロックを生成する。次いで、基準ブロックは、後続のビデオフレーム内の別のビデオブロックを予測するための予測ブロックとして、イントラBCユニット48、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【0040】
図3は、本出願のいくつかの実装形態による例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号化ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81はさらに、動き補償ユニット82、イントラ予測処理ユニット84、イントラBCユニット85を有している。ビデオデコーダ30は、図2に関連してビデオエンコーダ20に関して上述したエンコーディングプロセスとほぼ逆のデコーディングプロセスを実行することができる。例えば、動き補償ユニット82はエントロピー復号化ユニット80から受け取った動きベクトルに基づいて予測データを生成することができ、一方、イントラ予測ユニット84は、エントロピー復号化ユニット80から受け取ったイントラ予測モード指標に基づいて予測データを生成することができる。
【0041】
いくつかの例では、ビデオデコーダ30のユニットが本アプリケーションの実装を実行するようにタスクされてもよい。また、いくつかの例では、本開示の実装がビデオデコーダ30のユニットのうちの1つまたは複数の間で分割され得る。例えば、イントラBCユニット85は、単独で、または動き補償ユニット82、イントラ予測処理ユニット84、およびエントロピー復号化ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本出願の実装を実行することができる。いくつかの例ではビデオデコーダ30がイントラBCユニット85を含んでいなくてもよく、イントラBCユニット85の機能性は動き補償ユニット82のような予測処理ユニット81の他の構成要素によって実行されてもよい。
【0042】
ビデオデータメモリ79はビデオデコーダ30の他の構成要素によって復号化されるために、エンコードされたビデオビットストリームなどのビデオデータを記憶することがで
きる。ビデオデータメモリ79に記憶されたビデオデータは例えば、ストレージデバイス32、カメラなどのローカルビデオソースから、ビデオデータの有線または無線ネットワーク通信を介して、または物理データ記憶媒体(例えば、フラッシュドライブまたはハードディスク)にアクセスすることによって、取得することができる。ビデオデータメモリ79は、符号化ビデオビットストリームからの符号化ビデオデータを記憶する符号化ピクチャバッファ(CPB)を含むことができる。ビデオデコーダ30の復号化されたピクチャバッファ(DPB)92はビデオデコーダ30によってビデオデータを復号化する際に使用するための基準ビデオデータを記憶する(例えば、イントラまたはインター予測符号化モードで)ビデオデータメモリ79およびDPB92は、SDRAM(synchro
nous DRAM)、MRAM(magneto-resistive RAM)、RRAM(登録商標)(resistive RAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成され得る。説明のために、ビデオデータメモリ79およびDPB92は、図3のビデオデコーダ30の2つの別個の構成要素として示されている。しかしながら、当業者には、ビデオデータメモリ79およびDPB92が同じメモリデバイスまたは別個のメモリデバイスによって提供されてもよいことは明らかであろう。いくつかの例では、ビデオデータメモリ79がビデオデコーダ30の他の構成要素とオンチップであってもよく、またはそれらの構成要素に対してオフチップであってもよい。
【0043】
復号化プロセスの間に、ビデオデコーダ30は、エンコードされたビデオフレームのビデオブロックおよび関連するシンタックス要素を表すエンコードされたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレームレベルおよび/またはビデオブロックレベルでシンタックス要素を受信することができる。ビデオデコーダ30のエントロピー復号化ユニット80は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成する。次に、エントロピー復号化ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。
【0044】
ビデオフレームがイントラ予測符号化(I)フレームとして、または他のタイプのフレーム中のイントラ符号化予測ブロックのために符号化される場合、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームの以前に復号化されたブロックからの基準データとに基づいて、現在のビデオフレームのビデオブロックのための予測データを生成し得る。
【0045】
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームとして符号化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号化ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオフレームのビデオブロックのための1つまたは複数の予測ブロックを生成する。予測ブロックの各々は、基準フレームリストのうちの1つの中の基準フレームから生成され得る。ビデオデコーダ30は、DPB92に記憶された基準フレームに基づくデフォルト構成技術を使用して、基準フレームリスト、リスト0およびリスト1を構成することができる。
【0046】
いくつかの例ではビデオブロックが本明細書で説明されるイントラBCモードに従って符号化される場合、予測処理ユニット81のイントラBCユニット85はエントロピー復号化ユニット80から受信されるブロックベクトルおよび他のシンタックス要素に基づいて、現在のビデオブロックのための予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって定義された現在のビデオブロックと同じピクチャの再構成された領域内にあってもよい。
【0047】
動き補償ユニット82および/またはイントラBCユニット85は動きベクトルおよび他のシンタックス要素を構文解析することによって、現在のビデオフレームのビデオブロックの予測情報を決定し、次いで、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。例えば、動き補償ユニット82は受信したシンタックス要素のうちのいくつかを使用して、ビデオフレームのビデオブロックを符号化するために使用される予測モード(例えば、イントラ予測またはインター予測)、インター予測フレームタイプ(例えば、BまたはP)、フレームのための基準フレームリストのうちの1つまたは複数のための構成情報、フレームの各インター予測符号化ビデオブロックのための動きベクトル、フレームの各インター予測符号化ビデオブロックのためのインター予測ステータス、および現在のビデオフレーム中のビデオブロックを復号化するための他の情報を決定する。
【0048】
同様に、イントラBCユニット85は受信したシンタックス要素のいくつか、例えばフラグを使用して、現在のビデオブロックがイントラBCモードを使用して予測されたこと、フレームのどのビデオブロックが再構成領域内にあり、DPB92に格納されるべきかの構成情報、フレームの各イントラBC予測ビデオブロックのブロックベクトル、フレームの各イントラBC予測ビデオブロックのイントラBC予測ステータス、および現在のビデオフレーム内のビデオブロックを復号化するための他の情報を決定することができる。
【0049】
また、動き補償ユニット82はビデオブロックの符号化中にビデオエンコーダ20によって使用されるような補間フィルタを使用して補間を実行し、基準ブロックのサブ整数ピクセルに対する補間値を計算してもよい。この場合、動き補償ユニット82は受信したシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
【0050】
逆量子化ユニット86は、ビデオフレーム内の各ビデオブロックに対してビデオエンコーダ20によって計算された同じ量子化パラメータを使用して、エントロピー復号化ユニット80によって復号化されたビットストリームおよびエントロピーに提供された量子化された変換係数を逆量子化して、量子化の程度を決定する。逆変換処理ユニット88はピクセル領域内の残差ブロックを再構成するために、逆変換、例えば、逆DCT、逆整数変換、または概念的に類似した逆変換処理を変換係数に適用する。
【0051】
動き補償ユニット82またはイントラBCユニット85がベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックのための復号化されたビデオブロックを再構成する。インループフィルタ(図示せず)を加算器90とDPB92との間に配置して、復号化されたビデオブロックをさらに処理することができる。所定のフレーム内の復号化されたビデオブロックは、次のビデオブロックの後続の動き補償のために使用される基準フレームを格納するDPB92に格納される。DPB92、またはDPB92とは別個のメモリ装置は図1のディスプレイデバイス34のようなディスプレイデバイス上に後で提示するために、復号化されたビデオを記憶することもできる。
【0052】
典型的なビデオ符号化プロセスでは、ビデオシーケンスが典型的にはフレームまたはピクチャの順序付けられたセットを含む。各フレームは、SL、SCb、およびSCrで示される3つのサンプルアレイを含むことができる。SLは、輝度サンプルの2次元アレイである。SCbは、Cb彩度サンプルの2次元アレイである。SCrは、Cr彩度サンプルの2次元アレイである。他の例では、フレームは単色であってもよく、したがって、輝度サンプルの1つの2次元アレイのみを含む。
【0053】
図4Aに示すように、ビデオエンコーダ20(またはより具体的には分割ユニット45)は、最初にフレームを1組のCTU(coding tree units)に分割することによって、フレームの符号化表現を生成する。ビデオフレームは、左から右へ、および上から下へのラスタ走査順序で連続的に順序付けられた整数個のCTUを含むことができる。各CTUは最大の論理符号化ユニットであり、CTUの幅および高さは、ビデオシーケンス内のすべてのCTUが128×128、64×64、32×32、および16×16のうちの1つである同じサイズを有するように、シーケンスパラメータセットでビデオエンコーダ20によってシグナリングされる。しかし、本出願は、必ずしも特定のサイズに限定されないことに留意されたい。図4Bに示すように、各CTUは、輝度サンプルの1つのCTB(coding tree block:符号化ツリーブロック)、彩度サンプルの2つの対応する符号化ツリーブロック、および符号化ツリーブロックのサンプルを符号化するために使用されるシンタックス要素を備えることができる。シンタックス要素は、インターまたはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含む、ピクセルの符号化ブロックの異なるタイプのユニットのプロパティ、およびビデオシーケンスがビデオデコーダ30においてどのように再構成され得るかを記述する。モノクロピクチャまたは3つの別々のカラープレーンを有するピクチャでは、CTUが単一の符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するために使用されるシンタックス要素とを備えることができる。符号化ツリーブロックは、サンプルのN×Nブロックであってもよい。
【0054】
より良好な性能を達成するために、ビデオエンコーダ20はCTUの符号化ツリーブロック上で、2分木分割、3分木分割、4分木分割、または両方の組合せなどのツリー分割を再帰的に実行し、CTUをより小さい符号化ユニット(CU)に分割することができる。図4Cに示すように、64×64CTU400は、まず、各々が32×32のブロックサイズを有する4つのより小さなCUに分割される。4つのより小さいCUの中で、CU410およびCU420は、それぞれ、ブロックサイズによって16×16の4つのCUに分割される。2つの16×16CU430および440はそれぞれ、ブロックサイズによって8×8の4つのCUにさらに分割される。図4D図4Cに示されるようなCTU400の分割プロセスの最終結果を示す4分木データ構造を示し、4分木の各リーフノードは、32×32から8×8の範囲のそれぞれのサイズの1つのCUに対応する。図4Bに示すCTUと同様に、各CUは、輝度サンプルの符号化ブロック(CB)と、同じサイズのフレームの彩度サンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化するために使用されるシンタックス要素とを備えることができる。モノクロピクチャまたは3つの別々のカラープレーンを有するピクチャでは、CUが単一の符号化ブロックと、符号化ブロックのサンプルを符号化するために使用されるシンタックス構造とを備えることができる。図4Cおよび図4Dに示された4分木分割は例示の目的のためだけのものであり、1つのCTUをCUに分割して、4分木/3分木/2分木分割に基づいて様々なローカル特性に適応させることができることに留意されたい。マルチタイプツリー構造では1つのCTUが4分木構造によって分割され、各4分木リーフCUは2分木構造および3分木構造によってさらに分割することができる。図4Eに示すように、5つの分割タイプ、すなわち、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割がある。
【0055】
いくつかの実装形態では、ビデオエンコーダ20がCUの符号化ブロックを1つまたは複数のM×N予測ブロック(PB)にさらに区分することができる。予測ブロックは、同じ予測、インターまたはイントラが適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、輝度サンプルの予測ブロックと、彩度サンプルの2つの対応する予測ブロックと、予測ブロックを予測するために使用されるシンタックス要素とを備え得る。モノクロピクチャまたは3つの別個のカラープレーンを有
するピクチャでは、PUが単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。ビデオエンコーダ20は、CUの各PUの輝度、Cb、およびCr予測ブロックについて、予測輝度、Cb、およびCrブロックを生成することができる。
【0056】
ビデオエンコーダ20はPUに対する予測ブロックを生成するために、イントラ予測またはインター予測を使用してもよい。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連するフレームの復号化されたサンプルに基づいて、PUの予測ブロックを生成し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連するフレーム以外の1つまたは複数のフレームの復号サンプルに基づいて、PUの予測ブロックを生成し得る。
【0057】
ビデオエンコーダ20がCUの1つまたは複数のPUのための予測輝度、Cb、およびCrブロックを生成した後、ビデオエンコーダ20は、CUの輝度残差ブロック内の各サンプルがCUの予測輝度ブロックのうちの1つの輝度サンプルと、CUの元の輝度符号化ブロック内の対応するサンプルとの間の差を示すように、元の輝度符号化ブロックからCUの予測輝度ブロックを減算することによって、CUのための輝度残差ブロックを生成し得る。同様に、ビデオエンコーダ20は、CUのCb残差ブロック内の各サンプルがCUの予測Cbブロックのうちの1つのCbサンプルと、CUの元のCb符号化ブロック内の対応するサンプルとの間の差を示し、CUのCr残差ブロック内の各サンプルがCUの予測Crブロックのうちの1つ内のCrサンプルと、CUの元のCr符号化ブロック内の対応するサンプルとの間の差を示し得るように、CUのためのCb残差ブロックおよびCr残差ブロックをそれぞれ生成し得る。
【0058】
さらに、図4Cに示すように、ビデオエンコーダ20はCUの輝度、Cb、およびCr残差ブロックを1つまたは複数の輝度、Cb、およびCr変換ブロックに分解するために、4分木分割を使用してもよい。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、輝度サンプルの変換ブロックと、彩度サンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス要素とを備え得る。したがって、CUの各TUは、輝度変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。いくつかの例では、TUに関連する輝度変換ブロックがCUの輝度残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってもよい。モノクロピクチャまたは3つの別々のカラープレーンを有するピクチャでは、TUが単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備えることができる。
【0059】
ビデオエンコーダ20は、TUの輝度変換ブロックに1つ以上の変換を適用して、TUの輝度係数ブロックを生成することができる。係数ブロックは、変換係数の2次元配列であってもよい。変換係数は、スカラー量であってもよい。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つ以上の変換を適用して、TU用のCr係数ブロックを生成することができる。
【0060】
係数ブロック(例えば、輝度係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化とは、一般に、変換係数が量子化されて、変換係数を表現するために使用されるデータの量がおそらく減少し、さらなる圧縮が提供されるプロセスを指す。ビデオエンコーダ
20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対して、コンテキスト適応バイナリ算術符号化(CABAC)を実行することができる。最後に、ビデオエンコーダ20は符号化されたフレームと関連データの表現を形成するビット列を含むビットストリームを出力することができ、これは、ストレージデバイス32に保存されるか、またはデスティネーションデバイス14に送信されるかのいずれかである。
【0061】
ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームを構文解析して、ビットストリームからシンタックス要素を得ることができる。ビデオデコーダ30は、ビットストリームから得られたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのフレームを再構成してもよい。ビデオデータを再構成するプロセスは一般に、ビデオエンコーダ20によって実行される符号化プロセスと逆である。例えば、ビデオデコーダ30は、現在のCUのTUに関連付けられた係数ブロックに対して逆変換を実行して、現在のCUのTUに関連付けられた残差ブロックを再構成することができる。ビデオデコーダ30はまた、現在のCUのPUのための予測ブロックのサンプルを、現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUの符号化ブロックを再構成する。フレームの各CUについて符号化ブロックを再構成した後、ビデオデコーダ30は、フレームを再構成することができる。
【0062】
上述のように、ビデオ符号化は主に2つのモード、すなわち、イントラフレーム予測(またはイントラ予測)およびインターフレーム予測(またはインター予測)を使用してビデオ圧縮を達成する。パレットベースの符号化は、多くのビデオ符号化規格によって採用されている別の符号化方式である。画面生成コンテンツ符号化に特に適し得るパレットベースの符号化ではビデオコーダ(例えば、ビデオエンコーダ20またはビデオデコーダ30)は所与のブロックのビデオデータを表す色のパレットテーブルを形成する。パレットテーブルは所与のブロック内の最も優勢な(例えば、頻繁に使用される)ピクセル値を含む。指定されたブロックのビデオデータで頻繁に表現されないピクセル値は、パレットテーブルに含まれないか、エスケープカラーとしてパレットテーブルに含まれる。
【0063】
パレットテーブルの各エントリには、パレットテーブルの対応するピクセル値のインデックスが含まれる。ブロック内のサンプルに対するパレットインデックスは、パレットテーブルからのどのエントリがどのサンプルを予測または再構成するために使用されるかを示すために符号化されてもよい。このパレットモードは、ピクチャ、スライス、タイル、またはその他のビデオブロックのグループ化の最初のブロックのパレット予測子を生成するプロセスから始まる。以下に説明するように、後続のビデオブロックのパレット予測子は、典型的には以前に使用されたパレット予測子を更新することによって生成される。説明のために、パレット予測子は画像レベルで定義されると仮定される。言い換えると、ピクチャはそれぞれが独自のパレットテーブルを有する複数の符号化ブロックを含むことができるが、ピクチャ全体に対する1つのパレット予測子が存在する。
【0064】
ビデオビットストリーム内のパレットエントリのシグナリングに必要なビットを減らすために、ビデオデコーダは、ビデオブロックの再構成に使用されるパレットテーブル内の新しいパレットエントリを決定するためのパレット予測子を利用することができる。例えば、パレット予測子は以前に使用されたパレットテーブルからのパレット登録を含むことができ、あるいは最後に使用されたパレットテーブルの全ての登録を含むことによって、最後に使用されたパレットテーブルで初期化されることさえできる。一部の実装では、パレット予測子が最後に使用されたパレットテーブルからのすべてのエントリより少ないエントリを含み、その後、他の以前に使用されたパレットテーブルからのいくつかのエント
リを組み込むことができる。パレット予測子は、異なるブロックを符号化するために使用されるパレットテーブルと同じサイズを有してもよく、あるいは異なるブロックを符号化するために使用されるパレットテーブルよりも大きくても小さくてもよい。1つの例では、パレット予測子が64のパレットエントリを含む先入れ先出し(FIFO)テーブルとして実装されている。
【0065】
パレット予測子からビデオデータのブロックのパレットテーブルを生成するために、ビデオデコーダはエンコードされたビデオビットストリームから、パレット予測子の各エントリに対して1ビットのフラグを受信することができる。1ビットフラグはパレット予測子の関連するエントリがパレットテーブルに含まれることを示す第1値(例えば、バイナリ1)、またはパレット予測子の関連するエントリがパレットテーブルに含まれないことを示す第2値(例えば、バイナリ0)を有することができる。パレット予測子のサイズがビデオデータのブロックに使用されるパレットテーブルより大きい場合、ビデオデコーダは、パレットテーブルの最大サイズに達すると、より多くのフラグの受信を停止することがある。
【0066】
一部の実装では、パレットテーブルの一部のエントリがパレット予測子を使用して決定される代わりに、エンコードされたビデオビットストリーム内で直接シグナリングされてもよい。そのようなエントリについて、ビデオデコーダは符号化されたビデオビットストリームから、輝度のピクセル値を示す3つの別個のmビット値と、エントリに関連付けられた2つの彩度成分とを受信することができ、ここで、mは、ビデオデータのビット深度を表す。直接シグナリングされたパレットエントリに必要な複数のmビット値と比較して、パレット予測子から派生したそれらのパレットエントリは、1ビットフラグのみを必要とする。したがって、パレット予測子を使用していくつかのまたはすべてのパレットエントリをシグナリングすることは、新しいパレットテーブルのエントリをシグナリングするために必要とされるビット数を大幅に低減することができ、それによってパレットモード符号化の全体的な符号化効率を改善する。
【0067】
多くの場合、1つのブロックのパレット予測子は、以前に符号化された1つ以上のブロックを符号化するために使用されるパレットテーブルに基づいて決定される。しかし、ピクチャ、スライス、またはタイル内の最初の符号化ツリーユニットを符号化するとき、以前に符号化されたブロックのパレットテーブルは利用できないことがある。したがって、以前に使用したパレットテーブルのエントリを使用してパレット予測子を生成することはできない。このような場合、パレット予測子イニシャライザのシーケンスはシーケンスパラメータセット(SPS)および/またはピクチャパラメータセット(PPS)でシグナリングされることがあり、これは、以前に使用されたパレットテーブルが利用できないときにパレット予測子を生成するために使用される値である。SPSは一般に、各スライスセグメントヘッダに見られるシンタックス要素によって参照されるPPSに見られるシンタックス要素の内容によって決定される、符号化ビデオシーケンス(CVS)と呼ばれる一連の連続符号化ビデオ画像に適用されるシンタックス要素の構文構造を指す。PPSは一般に、各スライスセグメントヘッダに見られるシンタックス要素によって決定されるように、CVS内の1つ以上の個々のピクチャに適用されるシンタックス要素の構文構造を指す。それゆえ、SPSは一般に、PPSより高いレベルのシンタックス構造と見なされ、SPSに含まれるシンタックス要素は一般に、PPSに含まれるシンタックス要素と比較して、あまり頻繁に変更されず、ビデオデータのより大きな部分に適用されることを意味する。
【0068】
図5は、本開示のいくつかの実装形態による、符号化ユニットの異なる予測モードを示すブロック図である。
【0069】
VVCでは、各CUがスキップモードまたはノンスキップモードとして符号化することができる。スキップモードとして符号化されたCUの場合、現在のCUが通常のスキップモード(HEVCのスキップモードと同様)であるかIBCスキップモードであるかを示すために、1つのシンタックス要素がさらにシグナリングされる。ノンスキップモードとして符号化されたCUの場合、現在のCUがイントラモード、インターモード、イントラブロックコピー(IBC)モード、またはパレット(PLT)モードとして符号化されているかどうかを示すために、シンタックス要素がさらにシグナリングされる。これらのモードは、VVC仕様において、それぞれ「MODE_INTRA」、「MODE_INTER」、「MODE_IBC」および「MODE_PLT」と呼ばれる。イントラモードとして符号化されたCUに対しては、同じピクチャ/スライス内の空間的隣接再構成ピクセルのみを、現在のCUに対する予測信号を生成するために使用することができた。インターモードとして符号化されたCUに対して、予測信号は、現在のピクチャではない基準ピクチャからのピクセルによって生成することができる。IBCモードの詳細は、JVET-N1002(http://phenix.int-evry.fr/jvet/)に記載されている。パレット(PLT)モードは、http://phenix.int-evry.fr/jvet/にあるドキュメントJVET-O119で詳しく説明されている第15回のJVET会議で、VVCに新たに採用された。
【0070】
現在のVVCでは、以下の表1に要約されるように、各異なるモードをイネーブルするための制約および条件が異なる。さらに、IBCおよびPLTモードのオン/オフを示すために、シーケンスパラメータセット(SPS)でフラグが通知される。すなわち、関連するビットストリームでIBCおよび/またはPLTモードが許可されているかどうかを示す。
【0071】
【表1】
【0072】
現在のVVCにおけるモードシグナリングのシンタックスを以下の表に示す。
【0073】
【表2】
【0074】
【表3】
【0075】
現在のVVCにおけるモードシグナリングの意味を以下に示す。
【0076】
cu_skip_flag[x0][y0]が1に等しい場合、現在の符号化ユニットにおいて、PまたはBスライスを符号化する際に、cu_skip_flag[x0][y0]の後に、以下の1つ以上のシンタックス要素を除いて、それ以上のシンタックス要素が解析されないことを指定する:IBCモードフラグpred_mode_ibc_flag[x0][y0]、およびmerge_data()構文構造;Iスライスを復号化する際、cu_skip_flag[x0][y0]の後、merge_idx[x0][y0]以外のシンタックス要素は解析されない。cu_skip_flag[x0][y0]が0に等しい場合、符号化ユニットがスキップされないことを指定する。配列のインデックスx0,y0は、ピクチャの左上の輝度サンプルに対する、考慮される符号化ブロックの左上の輝度サンプルの位置(x0,y0)を指定する。cu_skip_flag[x0][y0]が存在しない場合は、0に等しいと推測される。
【0077】
pred_mode_flagが0に等しい場合、現在の符号化ユニットがインター予測モードで符号化されることを指定する。pred_mode_flagが1に等しい場合、現在の符号化ユニットがイントラ予測モードで符号化されることを指定する。pred_mode_flagが存在しない場合、次のように推測される:
●cbWidthが4に等しく、cbHeightが4に等しい場合、pred_mode_flagは1に等しいと推測される。
●それ以外の場合、modeTypeがMODE_TYPE_INTRAと等しい場合、
pred_mode_flagは1に等しいと推測される。
●それ以外の場合、modeTypeがMODE_TYPE_INTERに等しい場合、pred_mode_flagは0に等しいと推測される。
●それ以外の場合、pred_mode_flagは、Iスライスを復号化すると1に等しく、PまたはBスライスを復号化すると0に等しいと推測される。
●変数CuPredMode[chType][x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1の場合、次のように導出される:
●pred_mode_flagが0に等しい場合、CuPredMode[chType][x][y]はMODE_INTERに等しく設定される。
●それ以外の場合(pred_mode_flagが1に等しい)、CuPredMode[chType][x][y]はMODE_INTRAに等しく設定される。
【0078】
pred_mode_IBC_flagが1に等しい場合、現在の符号化ユニットがIBC予測モードで符号化されることを指定する。pred_mode_IBC_flagが0に等しい場合、現在の符号化ユニットがIBC予測モードで符号化されないことを指定する。pred_mode_ibc_flagが存在しない場合、次のように推測される:
●cu_skip_flag[x0][y0]が1に等しく、cbWidthが4に等しく、cbHeightが4に等しい場合、pred_mode_ibc_flagは1に等しいと推測される。
●それ以外の場合、cbWidthとcbHeightの両方が128に等しい場合、pred_mode_ibc_flagは0に等しいと推測される。
●それ以外の場合、modeTypeがMODE_TYPE_INTERと等しい場合、pred_mode_ibc_flagは0に等しいと推測される。
●それ以外の場合、treeTypeがDUAL_TREE_CHROMAと等しい場合、pred_mode_ibc_flagは0に等しいと推測される。
●それ以外の場合、pred_mode_ibc_flagは、Iスライスを復号化するときはsps_ibc_enabled_flagの値と等しいと推測され、PまたはBスライスを復号化するときはそれぞれ0に等しいと推測される。
●pred_mode_ibc_flagが1に等しい場合、変数CuPredMode[chType][x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1のMODE_IBCに等しく設定される。
【0079】
pred_mode_plt_flagは、現在の符号化ユニットにおけるパレットモードの使用を指定する。1に等しいpred_mode_plt_flagは、現在の符号化ユニットにおいてパレットモードが適用されることを示す。0に等しいpred_mode_plt_flagは、現在の符号化ユニットにおいてパレットモードが適用されないことを示す。pred_mode_plt_flagが存在しない場合は、0に等しいと推測される。pred_mode_plt_flagが1に等しい場合、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1、y=y0..y0+cbHeight-1において、MODE_PLTと等しく設定される。
【0080】
要約すると、現在のVVCにおいて、対応するノンスキップモードを示すためにシグナリングされるシンタックス(すなわち、関連するフラグ)は表4から表10に示され、各表は許容される予測モードの異なる条件に対応する。これらのテーブルでは、コードワードの0と1はすべて反転され得、結果として得られるコードワードは等しく機能することに留意されたい。さらに、シンタックス要素の命名は、シグナリングされたモードの機能を変更することなく、他の名前に変更することもできる。
【0081】
【表4】
【0082】
【表5】
【0083】
【表6】
【0084】
【表7】
【0085】
【表8】
【0086】
【表9】
【0087】
【表10】
【0088】
図6は、本開示のいくつかの実装形態による、ビデオコーダが予測モードをシグナリングする技法を実装する例示的なプロセスを示すフローチャートである。
【0089】
現在のVVCでは、IBCモードはインターモードにより近いモードとされ、PLTモードはイントラモードにより近いモードとされている。そのため、VVCでは、pred_mode_flagが0とシグナリングされると、IBCモードフラグ(pred_mode_ibc_flag)がシグナリングされ、現在のCUがインターモードと同様であることを意味する。また、pred_mode_flagが1とシグナリングされると、PLTモードフラグ(pred_mode_plt_flag)がシグナリングされ、現在のCUがイントラモードと同様であることを意味する。ただし、イントラモード、インターモード、PLTモードのみが許可される場合には、例外がある(すなわち、IBCモードは許可されない)。表5に示すように、pred_mode_flagが0とシグナリングされるとPLTモードフラグ(pred_mode_plt_flag)がシグナリングされる。このような例外は、pred_mode_flagのフラグの物理的な意味を壊すだけでなく、IBCモードが許可されているか否かによって異なるシグナリング条件が使用されるため、pred_mode_plt_flagのシグナリング条件を複雑にしている。
【0090】
さらに,現在のVVCでは,表2に示すように,pred_mode_ibc_flagおよびpred_mode_plt_flagをシグナリングするための条件チェックが複雑である。これらの予測モードをシグナリングする際の条件チェックを簡略化する方法がいくつか提案されている。
【0091】
開示の第1実施形態によれば、パレットモードのイネーブルを示すフラグ(例えば、VVC仕様のpred_mode_plt_flag)は、許容される予測モードの条件にかかわらず、イントラライクモードでのみシグナリングされる。一例では、イントラライクまたはインターライクモードを示すために使用されるシンタックス要素(例えばpred_mode_flag)がイントラライクモード(例えば、現在のVVCではpred_mode_flagを1としてシグナリングする)としてシグナリングまたは推測される場合のみ、パレットモードフラグpred_mode_plt_flagがシグナリングされる。インターモード、イントラモード及びPLTモードのみが許容される場合の本実施形態による対応するコードワードが表10に示される。表10は表5とは異なる。さらに、pred_mode_plt_flagのシグナリング条件は、表11で強調表示されているように簡略化できる。
【0092】
【表11】
【0093】
【表12】
【0094】
【表13】


表11.提案されたVVCのモードシグナリングの構文(変更部分は強調表示されている)
【0095】
本開示の第2実施形態によれば、モードは予め定義された順序に基づいてシグナリングされ、各モードは、最後のモードを除いて、対応するフラグによって示される。最後のモードは、対応するフラグを必要としないが、これは、以前にシグナリングされたすべてのモード(またはフラグ)がイネーブルでない場合に、イネーブルであると推測できるから
である。ある例では、インターモード、IBCモード、PLTモードは、それぞれpred_mode_inter_flag、pred_mode_ibc_flag、pred_mode_plt_flagというフラグで示される。この場合、切り捨てられた2進コードワードを、あらかじめ定義されたシグナリングの順番に基づいてモードに割り当てる方法と基本的には同様である。関連するコードワードが、表12から表18に示される。pred_mode_ibc_flagおよびpred_mode_plt_flagのシグナリング条件も、表19に示すように簡略化することができる。
【0096】
【表14】
【0097】
【表15】
【0098】
【表16】
【0099】
【表17】
【0100】
【表18】
【0101】
【表19】
【0102】
【表20】
【0103】
【表21】


表19.提案されたVVCのモードシグナリングの構文(変更部分は強調表示されている)
【0104】
本開示の第3実施形態によれば、現在のブロックで通常のモード(インターモードおよびイントラモードなど)と新しいモード(IBCモードおよびPLTモードなど)のどちらが使用されているかを示すシンタックス要素を最初に送信することで、モードをシグナリングする。最初のシンタックスエレメントの後、どのモードを使用しているかを示す追加のシンタックスエレメントがシグナリングされる。関連するコードワードが、表20から表26に示されている。本実施形態では、コードワードビン(またはフラグ)の命名が、物理的な意味を反映して変更されていることに留意されたい。
【0105】
【表22】
【0106】
【表23】
【0107】
【表24】
【0108】
【表25】
【0109】
【表26】
【0110】
【表27】
【0111】
【表28】
【0112】
予測モードをシグナリングするために、ビデオコーダはまず、ビットストリームから、ノンスキップモード符号化ブロックに対応するビデオデータを受信し(610)、ノンスキップモード符号化ブロックに関連するパラメータセットを決定する(620)。パラメータセット(例えば、シーケンスパラメータセット)は表1によって示されるように、どのモード(例えば、IBC、PLTなど)が関連するビットストリームにおいて許可されるかを含む情報を含む。
【0113】
次に、ビデオコーダは、ビットストリームから第1、第2、または第3シンタックス要素を選択的に受信する。パラメータセットに第1条件を満たす情報が含まれている場合、ビデオコーダはビットストリーム(630)から第1シンタックス要素(表2のpre_mode_flagなど)を取得する。パラメータセットに第2条件を満たす情報が含まれている場合、ビデオコーダはビットストリーム(640)から第2シンタックス要素(表2のpre_mode_ibc_flagなど)を取得する。パラメータセットが3番目の条件を満たす情報を含む場合、ビデオコーダはビットストリーム(650)から3番目のシンタックス要素(表2のpre_mode_plt_flagなど)を取得する。各シンタックス要素に関連する条件については、表2を参照する。ある実施形態では、それぞれの条件が満たされない場合、ビデオコーダはそれぞれのシンタックス要素を受信しない(例えば、ビデオコーダはシンタックス要素にデフォルト値を割り当ててもよいし、復号化中にシンタックス要素を使用しなくてもよい)。
【0114】
次に、ビデオコーダは、受信した第1、第2、および第3シンタックス要素の値に応じて、それぞれのモードを使用して、ノンスキップモード符号化ブロックに対応するビデオデータを復号化する。特に:
【0115】
ビデオコーダは第1シンタックス要素(表1のpred_mode_flagなど)と第3シンタックス要素(表1のpre_mode_plt_flagなど)の両方が第1値(「1」など)を持ち、第2条件が満たされていない(例えば、ビデオコーダがpre_mode_ibc_flagを受信しない)(660)場合に、パレットモードを使用してビデオデータを復号化する。
【0116】
ビデオコーダは第1シンタックス要素(例えば、表1のpred_mode_flag)が第1値(例えば、「1」)を持ち、第3シンタックス要素が第2値(例えば、「0」)を持つとき、イントラ予測モードを使用してビデオデータを復号化する。第2条件は満たされない(例えば、ビデオコーダがpred_mode_ibc_flagを受信しない)(670)。
【0117】
ビデオコーダは第1シンタックス要素が第2値(例えば「0」)を持ち、第2および第3条件が満たされない場合(例えば、ビデオコーダがpred_mode_ibc_flagおよびpre_mode_plt_flagを受信しない場合)、インター予測モードを使用してビデオデータを復号化する(680)。
【0118】
1つまたは複数の例では、説明された機能がハードウェア、ソフトウェア、ファームウ
ェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実施される場合、機能は、1つ以上の命令またはコードとして、コンピュータ読み取り可能な媒体上に記憶され、またはそれを介して送信され、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体はデータ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、または例えば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応することができる。データ記憶媒体は本出願に記載の実施のための命令、コードおよび/またはデータ構造を検索するために、1つ以上のコンピュータまたは1つ以上のプロセッサによってアクセス可能な任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0119】
本明細書の実施態様の説明で使用される用語は特定の実施態様を説明するためだけのものであり、特許請求の範囲を限定することを意図するものではない。実施形態の説明および添付の特許請求の範囲で使用されるように、単数形「1つの」などは文脈が明確に指示しない限り、複数形も含むことが意図される。本明細書で使用される用語「および/または」は関連する列挙された項目のうちの1つまたは複数の任意の可能な組合せを指し、包含することも理解されるであろう。さらに、本明細書で使用される場合、用語「含む」などは述べられた特徴、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されるのであろう。
【0120】
また、第1、第2などの用語は様々な要素を説明するために本明細書で使用され得るが、これらの要素はこれらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、1つの要素を別の要素から区別するためにのみ使用される。例えば、実施の範囲から逸脱することなく、第1電極を第2電極と呼ぶことができ、同様に、第2電極を第1電極と呼ぶことができる。第1電極および第2電極は両方の電極であるが、それらは同じ電極ではない。
【0121】
本出願の説明は例示および説明の目的で提示されており、網羅的であることも、開示された形態の本発明に限定されることも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替実施形態が明らかになるのであろう。本実施形態は本発明の原理、実際の応用を最もよく説明するために、また、他の当業者が様々な実施のために本発明を理解し、考えられる特定の用途に適した様々な修正を伴う基礎となる原理および様々な実施を最もよく利用することができるように、選択され、説明された。したがって、特許請求の範囲は開示された実施態様の特定の例に限定されるべきではなく、修正および他の実施態様は添付の特許請求の範囲内に含まれることが意図されることを理解されたい。
【0122】
〔関連出願の相互参照〕
【0123】
本出願は、その全体が参照により組み込まれる、2019年9月7日に出願された「ビデオ符号化における予測モードシグナリング」という名称の米国仮出願第62/897,292号の優先権を主張する。
図1
図2
図3
図4A
図4B
図4C
図4D
図4E
図5
図6