(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】パレットモードを用いたビデオ符号化復号化方法及び装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20240729BHJP
H04N 19/186 20140101ALI20240729BHJP
H04N 19/12 20140101ALI20240729BHJP
H04N 19/103 20140101ALI20240729BHJP
H04N 19/136 20140101ALI20240729BHJP
【FI】
H04N19/70
H04N19/186
H04N19/12
H04N19/103
H04N19/136
(21)【出願番号】P 2022556692
(86)(22)【出願日】2021-03-29
(86)【国際出願番号】 US2021024673
(87)【国際公開番号】W WO2021195628
(87)【国際公開日】2021-09-30
【審査請求日】2022-11-11
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521147444
【氏名又は名称】ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100211395
【氏名又は名称】鈴木 裕貴
(72)【発明者】
【氏名】チュウ ホンチェン
(72)【発明者】
【氏名】ワン シエンリン
(72)【発明者】
【氏名】シュウ シャオユウ
(72)【発明者】
【氏名】チェン イーウェン
(72)【発明者】
【氏名】マー ツン-チュアン
(72)【発明者】
【氏名】チェン ウェイ
(72)【発明者】
【氏名】ユウ ビン
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2021/150407(WO,A1)
【文献】特表2022-525430(JP,A)
【文献】国際公開第2021/030786(WO,A1)
【文献】特表2022-546235(JP,A)
【文献】Yin Zhao et al.,AHG16: Fix on local dual tree [online],JVET-P0063-v2(JVET-P0063-v2_docx),インターネット <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0063-v2.zip>,2019年10月03日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/70
H04N 19/186
H04N 19/12
H04N 19/103
H04N 19/136
(57)【特許請求の範囲】
【請求項1】
ビットストリームから、符号化ユニットに関連して前記符号化ユニットの符号化木のタイプ
を示す変数及び、ローカル二分木モードが前記符号化ユニットに対して有効であるかどうかを示す
変数を含む複数の変数を決定することと、
前記符号化ユニットの符号化木のタイプが単一木であり且つ前記ローカル二分木モードが前記符号化ユニットに対して有効であると決定したことに応じて、
前記符号化ユニットが予め定められた閾値以下のサイズを有する場合、前記符号化ユニットに対してパレットモードを無効にすることと、
を含む、ビデオデータを復号化するための方法。
【請求項2】
前記符号化ユニットに対してパレットモードを無効にすることは、
前記符号化ユニットの輝度成分および彩度成分の両方に対して前記パレットモードを無効にすること
を含む、請求項1に記載の方法。
【請求項3】
前記符号化ユニットの符号化木のタイプが単一木であり且つ前記ローカル二分木モードが前記符号化ユニットに対して有効であると決定したことに応じて、
前記符号化ユニットが予め定められた閾値よりも大きいサイズを有する場合、前記符号化ユニットの彩度成分のみに対して前記パレットモードを無効にすること
を含む、請求項1に記載の方法。
【請求項4】
前記符号化ユニットの彩度成分のみに対して前記パレットモードを無効にすることは、
前記複数の変数のうちの少なくとも1つから前記符号化ユニットのビデオ成分が彩度成分であるか、輝度成分であるかを決定することと、
前記符号化ユニットのビデオ成分が彩度成分であると決定したことに応じて、
前記符号化ユニットの彩度成分に対して前記パレットモードを無効にすることと
を含む、請求項3に記載の方法。
【請求項5】
前記符号化ユニットの彩度成分のみに対して前記パレットモードを無効にすることは、
前記複数の変数のうちの少なくとも1つから前記符号化ユニットのビデオ成分が彩度成分であるか、輝度成分であるかを決定することと、
少なくとも前記符号化ユニットのビデオ成分が輝度成分であると決定したことに応じて、
前記ビットストリームから前記符号化ユニットの輝度成分に関連付けられたパレットモードイネーブルフラグを受信し、
前記パレットモードイネーブルフラグに従って前記符号化ユニットを復号化することと
を含む、請求項3に記載の方法。
【請求項6】
前記ビットストリームからローカル二分木フラグを導出することと、
前記ローカル二分木フラグが1であることに応じて、前記符号化ユニットの輝度成分のパレット予測を更新することと
を含む、請求項5に記載の方法。
【請求項7】
前記ローカル二分木フラグが1であることに応じて、前記符号化ユニットの彩度成分のパレット予測の更新を禁止すること
を更に含む、請求項6に記載の方法。
【請求項8】
パレットモード輝度ブロックサイズ閾値を決定することと、
前記符号化ユニットの輝度成分のサイズが前記パレットモード輝度ブロックサイズ閾値以下であると判定したことに応じて、
前記符号化ユニットの輝度成分のパレット予測の更新を禁止することと
を更に含む、請求項5に記載の方法。
【請求項9】
前記パレットモード輝度ブロックサイズ閾値が、32×32輝度サンプルである、
請求項8に記載の方法。
【請求項10】
前記パレットモード輝度ブロックサイズ閾値が、8×8輝度サンプルである、
請求項8に記載の方法。
【請求項11】
前記複数の変数に含まれる1つの変数がMODE_TYPE_INTRAであるか
どうかに基づいて、前記ローカル二分木モードが前記符号化ユニットに対して有効であるかどうかを決定する、
請求項1に記載の方法。
【請求項12】
前記複数の変数に含まれる1つの変数がDUAL_TREE_CHROMAであるか
どうかに基づいて、前記符号化ユニットのビデオ成分が彩度成分であるか輝度成分であるかを決定する
請求項4に記載の方法。
【請求項13】
前記予め定められた閾値は、16である
請求項1に記載の方法。
【請求項14】
電子装置であって、
1つまたは複数の処理ユニットと、
前記1つまたは複数の処理ユニットに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記1つまたは複数の処理ユニットによって実行されると、当該電子装置に請求項1~13のいずれか一項に記載の方法を実行させる、
電子装置。
【請求項15】
1つまたは複数の処理ユニットを有する電子装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記1つまたは複数の処理ユニットによって実行されると、前記電子装置に請求項1~13のいずれか一項に記載の方法を実行させる
非一時的なコンピュータ読取可能な記憶媒体。
【請求項16】
コンピュータに、
請求項1から13のいずれか一項に記載のビデオデータを復号化するための方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2020年3月27日に出願された、発明の名称が「パレットモードを用いたビデオ符号化復号化方法及び装置」である米国仮出願第63/001235号に対する優先権を主張するものであり、この特許出願の明細書全体を参照によって本願明細書に引用する。
【技術分野】
【0002】
本発明は、全般的にビデオデータ符号化復号化および圧縮に関し、特に、パレットモードを用いたビデオ符号化復号化の方法及びシステムに関する。
【背景技術】
【0003】
デジタル・テレビ、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、デジタル・カメラ、デジタル記録装置、デジタル・メディア・プレーヤー、ビデオ・ゲーム機、スマートフォン、ビデオ会議装置やビデオ・ストリーミング装置などの各種電子装置はデジタル・ビデオを支持する。電子装置は、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、Advanced Video Coding(AVC)、High Efficiency Video Coding(HEVC)及びVersatile Video Coding(VVC)の標準で定義されたビデオ圧縮/展開の標準を実行することで、デジタル・ビデオ・データを受送信し、符号化し、復号化や格納する。ビデオ圧縮は、通常、空間(フレーム内)予測および/または時間(フレーム間)予測を実行して、ビデオデータに固有の冗長性を低減または削除することを含む。ブロックに基づくビデオ符号化では、ビデオフレームが、符号化木ユニット(CTU:Coding Tree UNIT)と呼ばれる複数のビデオブロックをそれぞれ含む1つ又は複数のスライスに区画される。各CTUは、1つの符号化ユニット(CU)を含み、または構文定められた最小のCUサイズに達するまでより小さなCUに再帰的に区画されることがある。各CU(リーフCUとも呼ばれる)には、1つまたは複数の変換ユニット(TU:transform unit)と、1つまたは複数の予測ユニット(PU:prediction unit)とが含まれる。各CUは、イントラ、インター、またはIBCモードのいずれかで符号化されることが可能である。1つのビデオフレームにおけるイントラ符号化された(I)スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測で符号化される。1つのビデオフレームにおけるインター符号化された(PまたはB)スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測、または他の以前および/または将来の参照ビデオフレームにおける参照サンプルに関する時間予測を使用する。
【0004】
以前符号化された参照ブロック、例えば隣接ブロックに基づく空間予測又は時間予測では、符号化対象である現在のビデオブロックの予測ブロックが得られる。参照ブロックを発現する処理は、ブロックマッチングアルゴリズムによって実現されることが可能である。符号化対象である現在ブロックと予測ブロックとの間の画素差を示す残差データは、残差ブロック又は予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを生成した参照フレームにおける参照ブロックに指す動きベクトルと、残差ブロックとに応じて符号化される。動きベクトルを決定する処理は、通常、動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードと残差ブロックに応じて符号化されたものである。更なる圧縮のために、残差ブロックは画素領域から変換領域、例えば周波数領域に変換され、結果としてその後定量化される残差変換係数が得られる。そして、最初に二次元行列で配置され且つ定量化された変換係数は、走査されて変換係数の一次元ベクトルを生成し、その後、更なる圧縮を達成するようにビデオ・ビットストリームにエントロピー符号化される。
【0005】
そして、符号化されたビデオ・ビットストリームは、コンピュータ読取可能な記憶媒体(例えば、フラッシュメモリ)に保存されて、デジタル・ビデオ能力を持つ別の電子装置によってアクセスされ、或いは有線または無線でこの電子装置に直接送信される。そして、この電子装置は、例えば、符号化されたビデオ・ビットストリームを解析してこのビットストリームから構文要素を取得し、このビットストリームから取得された構文要素の少なくとも一部に基づいてデジタル・ビデオデータをこの符号化されたビデオストリームから元のフォーマットに再構成することで、ビデオ展開(上述したビデオ圧縮とは反対のプロセス)を実行しており、この再構成されたデジタル・ビデオデータをこの電子装置のディスプレイに再現する。
【0006】
デジタル・ビデオの品質が高解像度から4K×2K乃至8K×4Kに進んでいるにつれて、符号化/復号化対象となるビデオデータの量は指数関数的に増加する。復号化されたビデオデータの画像品質を維持しながらビデオデータをより効率的に符号化/復号化することは、常に課題である。
【発明の概要】
【0007】
本願は、ビデオデータ符号化および復号化、特に、パレットモードを用いたビデオ符号化および復号化のシステム及び方法に関する実現を説明する。
【0008】
本願の第1の方面に従い、ビットストリームから、符号化ユニットに関連して前記符号化ユニットの符号化木のタイプ及び、ローカル二分木モードが前記符号化ユニットに対して有効であるかどうかを示す複数の構文要素を受信することと、前記符号化ユニットの符号化木のタイプが単一木であり且つ前記ローカル二分木モードが前記符号化ユニットに対して有効であると決定したことに応じて、前記符号化ユニットが予め定められた閾値以下のサイズを有する場合、前記符号化ユニットに対してパレットモードを無効にすることと、を含む、ビデオデータを復号化するための方法を提供する。
【0009】
ある実施形態では、前記符号化ユニットに対してパレットモードを無効にすることは、前記符号化ユニットの輝度成分および彩度成分の両方に対して前記パレットモードを無効にすることを含む。
【0010】
ある実施形態では、前記符号化ユニットに対してパレットモードを無効にすることは、前記符号化ユニットの彩度成分のみに対して前記パレットモードを無効にすることを含む。
【0011】
本願の第2の方面に従い、電子装置は、1つまたは複数の処理ユニットと、メモリと、前記メモリに格納されている複数のプログラムと、を含む。前記複数のプログラムは、前記1つまたは複数の処理ユニットによって実行されると、当該電子装置に上述のビデオデータを復号化するための方法を実行させる。
【0012】
本願の第3の方面に従い、非一時的なコンピュータ読取可能な記憶媒体は、1つまたは複数の処理ユニットを有する電子装置によって実行される複数のプログラムを格納している。前記プログラムは、前記1つまたは複数の処理ユニットによって実行されると、当該電子装置に上述のビデオデータを復号化するための方法を実行させる。
【図面の簡単な説明】
【0013】
本発明の実現のさらなる理解を提供する、本明細書の一部として本明細書に引き入れる添付図面は、上述した実現を示し、その説明とともに基礎原理を説明するためものである。なお、同一符号は同一または相当な部分を示す。
【0014】
【
図1】
図1は、本開示のある実施形態に係る例示的なビデオ符号化および復号化システムを示すブロック図である。
【
図2】
図2は、本開示のある実施形態に係る例示的なビデオエンコーダを示すブロック図である。
【
図3】
図3は、本開示のある実施形態に係る例示的なビデオデコーダを示すブロック図である。
【
図4】
図4A~4Eは、本開示のある実施形態に係る、フレームがどのように再帰的に異なるサイズ及び形状の複数のビデオブロックに区画されるかを示すブロック図である。
【
図5】
図5A~5Dは、本開示のある実施形態に係る、ビデオデータを符号化復号化するためにパレットモードを用いる例を示すブロック図である。
【
図6】
図6は、本開示のある実施形態に係る、ビデオデコーダはビデオデータを復号化する技術を実現する例示的な処理を示すフローチャートである。
【
図7】
図7は、本開示のある実施形態に係る、例示的なコンテキスト適応型バイナリ算術符号化(CABAV:Context-adaptive binary arithmetic coding)エンジンを示すブロック図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施の形態を詳細に説明する。以下の詳細な説明において、本明細書に述べる趣旨を容易に理解するために、複数の非限定的な具体的な詳細を述べる。ただし、本発明は、特許請求の範囲及びその趣旨から逸脱することではなく種々の変形により実施することができることは当業者には明らかである。例えば、本明細書に述べる趣旨がデジタルビデオ機能を有する多くの種類の電子装置で実施され得ることは、当業者にとって明らかである。
【0016】
図1は、本開示のある実施形態に係る、ビデオブロックを並列に符号化および復号化するための例示的なシステム10を示すブロック図である。
図1に示すように、システム10は、目標装置14によって将来、復号化されるビデオデータを生成し符号化するソース装置12を含む。ソース装置12および目標装置14には、デスクトップまたはラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セットトップボックス、デジタル・テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオ・ゲーム機、ビデオ・ストリーミング装置などを含む多種の電子装置のいずれかを含んでもよい。ある実施形態では、ソース装置12および目標装置14は、無線通信機能を備えている。
【0017】
ある実施形態では、目標装置14が、リンク16を介して復号化対象の符号化されたビデオデータを受信する。リンク16には、符号化されたビデオデータをソース装置12から目標装置14に移動できる任意のタイプの通信媒体または装置を含むことが可能である。一つの例では、リンク16には、ソース装置12に符号化されたビデオデータを目標装置14にリアルタイムで直接送信させることができる通信媒体を含んでもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信標準に従って変調され、目標装置14に送信される。通信媒体には、無線周波数(RF:radio frequency)スペクトルや1つまたは複数の物理的な伝送路などの任意の無線または有線通信媒体を含むことが可能である。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネット等のグローバルネットワークなどのようなパケットベースのネットワークの一部として構成してもよい。通信媒体には、ルーター、交換機、基地局や、ソース装置12から目標装置14への通信に役立つ他の任意の装置を含んでもよい。
【0018】
他のある実施形態では、符号化されたビデオデータは、出力インターフェース22からストレージ装置32に送信される。その後、ストレージ装置32にある符号化されたビデオデータは、入力インターフェース28を介して目標装置14によってアクセスされる。ストレージ装置32には、ハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、や符号化されたビデオデータを格納するための他の適切なデジタル記憶媒体などのような多種の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含むことが可能である。別の例では、ストレージ装置32は、ファイルサーバ、やソース装置12によって生成された符号化ビデオデータを保持することができる別の中間ストレージ装置に対応してもよい。目標装置14は、ストリーミングまたはダウンロードによりストレージ装置32から格納されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、この符号化されたビデオデータを目標装置14に送信することができる任意のタイプのコンピュータであってよい。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用もの)、FTPサーバ、ネットワーク接続ストレージ(NAS)装置、またはローカルディスクドライブを含む。目標装置14は、ファイルサーバーに保存されている符号化ビデオデータへのアクセスに適する無線チャネル(例えば、Wi―Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、またはそれらの組み合わせを含む任意の標準的なデータ接続を介して、符号化されたビデオデータをアクセスすることができる。ストレージ装置32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであってもよい。
【0019】
図1に示すように、ソース装置12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18には、ビデオ・キャプチャ装置(例えばビデオカメラ)、前に捕らえられたビデオを含むビデオアーカイブ、ビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェイス、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそれらの組み合わせ等のようなソースを含むことが可能である。一つの例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソース装置12および目標装置14は、カメラ付き携帯電話またはビデオ電話を構成できる。しかしながら、本願で説明する実施形態は、一般にビデオ符号化に適用可能であり、そして無線および/または有線アプリケーションに適用可能である。
【0020】
ビデオエンコーダ20は、捕れるビデオ、予め捕らえられたビデオ、またはコンピュータによって生成されたビデオを符号化することができる。符号化されたビデオデータは、ソース装置12の出力インターフェース22を介して目標装置14に直接送信されることが可能である。これに加えて(または選択的に)、符号化されたビデオデータは、その後目標装置14または他の装置によってアクセスされて復号化および/または再生されるように、ストレージ装置32に格納されてもよい。出力インターフェース22は、モデムおよび/または送信機をさらに含んでもよい。
【0021】
目標装置14は、入力インターフェース28、ビデオデコーダ30、および表示装置34を含む。入力インターフェース28は受信機および/またはモデムを含み、リンク16を介して符号化されたビデオデータを受信する。リンク16を介して通信された、またはストレージ装置32に提供された符号化ビデオデータには、ビデオエンコーダ20によって生成されかつビデオデコーダ30によるビデオデータの復号化に使用される多くの構文要素を含んでもよい。これらの符号化されたビデオデータは、通信媒体で送信されたか、記憶媒体に記憶されているか、ファイルサーバーに記憶されているかに関わらず、そのような構文要素を含んでもよい。
【0022】
ある実施形態では、目標装置14が、集積された表示装置や、目標装置14と通信できるように構成された外部表示装置である表示装置34を含んでもよい。表示装置34は、復号化されたビデオデータをユーザに表示するものであって、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプの表示装置などの各種の表示装置のいずれかを含んでもよい。
【0023】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、高度なビデオ符号化(AVC:Advanced Video Coding)、またはそのような標準の拡張などの専門または業界標準に従って動作する。なお、本願は、特定のビデオ符号化/復号化の標準に限定されず、他のビデオ符号化/復号化標準にも適用可能であることが理解されるべきである。ソース装置12のビデオエンコーダ20は、これらの現在または将来の標準のいずれかに従ってビデオデータを符号化するように構成される。同様に、目標装置14のビデオデコーダ30は、これらの現在または将来の標準のいずれかに従ってビデオデータを復号化するように構成される。
【0024】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散な論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせなどのような、種々の適切なエンコーダ回路のいずれかによって実現されることが可能である。ソフトウェアによって一部実現される場合、電子装置は、ソフトウェアの命令を適切な非一時的なコンピュータ読取可能な媒体に格納し、1つまたは複数のプロセッサによってハードウェアにおける命令を実行することで本開示に述べたビデオ符号化/復号化操作を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30は、それぞれの装置において結合式エンコーダ/デコーダ(CODEC)の一部として集積された一つまたは複数のエンコーダまたはデコーダに含まれてもよい。
【0025】
図2は、本願で説明されるある実施形態に係るビデオエンコーダ20を例示するブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックに対してイントラ予測符号化およびインター予測符号化を実行することができる。イントラ予測符号化は空間予測に依存し、所定のビデオフレームまたは画像内のビデオデータの空間的冗長性を低減または削除する。インター予測符号化は、時間予測に依存し、ビデオシーケンスの隣接するビデオフレームまたは画像内のビデオデータの時間的冗長性を低減または削除する。
【0026】
図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つ又は複数内で区画されてもよい。
【0027】
ビデオデータメモリ40は、ビデオエンコーダ20における部品によって符号化対象のビデオデータを格納する。ビデオデータメモリ40におけるビデオデータは、例えばビデオソース18から得られる。DPB64は、ビデオエンコーダ20によってビデオデータを(例えば、イントラ予測またはインター予測符号化モードで)符号化する際に使用される参照ビデオデータを格納するバッファである。ビデオデータメモリ40およびDPB64は、種々のメモリデバイスのいずれかで形成されることが可能である。種々の例では、ビデオデータメモリ40は、ビデオエンコーダ20における他の部品とともにオンチップであってもよく、またはそれらの部品に対するオフチップであってもよい。
【0028】
図2に示すように、ビデオデータを受信した後、予測処理部41における区画部45は、このビデオデータをビデオブロックに区画する。この区画には、このビデオデータに関するquad-tree構造のような予め定められた区画構造に従って、ビデオフレームをスライス、タイルまたは他のより大きい符号化ユニット(CU)に区画することを含んでもよい。ビデオフレームは、複数のビデオブロック(または、タイルと称されるビデオブロックトセット)に区画されることができる。予測処理部41は、現在のビデオブロックに対して、エラー結果(例えば、符号化率および歪みレベル)に基づいて、複数のイントラ予測符号化モードのうちの1つまたは複数のインター予測符号化モードのうちの1つを選択するように、複数の可能な予測符号化モードのうちの1つを選択する。そして、予測処理部41は、得られたイントラ又はインター予測符号化ブロックを加算器50に提供して残差ブロックを生成し、その後の参照フレームの一部として使用するように符号化ブロックを再構成する。また、予測処理部41は、さらに動きベクトル、イントラモードインジケータ、区画情報及び他の構文情報のような構文要素をエントロピー符号化部56に提供する。
【0029】
予測処理部41におけるイントラ予測処理部46は、現在のビデオブロックに適するイントラ予測符号化モードを選択するために、符号化対象である現在ブロックと同一のフレーム内の1つまたは複数の隣接ブロックと関連して、現在のビデオブロックのイントラ予測符号化を実行することで空間予測を行うことができる。予測処理部41における動き推定部42および動き補償部44は、一つ又は複数の参照フレーム内の一つ又は複数の予測ブロックに関連して、現在のビデオブロックのインター予測符号化を実行することで時間予測を行う。ビデオエンコーダ20は、複数のパスの符号化処理を実行して、例えばビデオデータにおける各ブロックに適切な符号化モードを選択してもよい。
【0030】
ある実施形態では、動き推定部42は、ビデオフレームのシーケンスの予め定められたパターンに従って、現在のビデオフレームについて、参照ビデオフレーム内における予測ブロックと関連する現在のビデオフレーム内におけるビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することで、インター予測モードを決定する。動き推定部42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、現在のビデオ・フレームまたは画像内の符号化されている現在のビデオブロックに対する参照フレーム(または他の符号化ユニット)内の予測ブロックに対して、現在のビデオ・フレーム(または他の符号化ユニット)内のビデオブロックのPUの変位を示すことができる。シーケンスの予め定められたパターンは、このシーケンスにおけるビデオ・フレームをPフレームまたはBフレームとして指定できる。イントラBC部48は、動き推定部42によるインター予測のための動きベクトル決定と同様な方法により、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定してもよいし、または動き推定部42を利用してこのブロックベクトルを決定してもよい。
【0031】
予測ブロックは、絶対差の合計(SAD)、二乗差の合計(SSD)又はその他の差メトリックによって決定できる画素差に関して符号化対象のビデオブロックのPUと厳密にマッチングされる参照フレームにおけるブロックである。ある実施形態では、ビデオエンコーダ20が、DPB64に格納されている参照フレームのサブ整数画素位置の値を算出することが可能である。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8の画素位置、または他の分数の画素位置の値を補間してよい。したがって、動き推定装置42は、すべての画素位置および分数画素位置に対して動き探索処理を実行して、分数画素精度を有する動きベクトルを出力ことが可能である。
【0032】
動き推定部42は、インター予測符号化フレーム内のビデオブロックのPUの位置と、それぞれDPB64に格納されている1つまたは複数の参照フレームを識別する第1の参照フレームリスト(List0)または第2の参照フレームリスト(List1)から選択された参照フレームの予測ブロックの位置と比較することで、このPUのための動きベクトルを算出する。動き推定部42は、算出された動きベクトルを動き補償部44に送信し、そして、エントロピー符号化部56に送信する。
【0033】
動き補償部44によって実行される動き補償には、動き推定部42によって決定された動きベクトルに基づいて予測ブロックを取得または生成することを含み得る。動き補償部44は、現在のビデオブロックのPUのための動きベクトルを受信すると、参照フレームリストの1つにおいてこの動きベクトルが指している予測ブロックを位置決めし、DPB64からこの予測ブロックを探し、この予測ブロックを加算器50に転送する。そして、加算器50は、符号化されている現在のビデオブロックの画素値から動き補償部44によって提供された予測ブロックの画素値を差し引くことで、画素差値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差値は、輝度差成分または彩度差成分、あるいはその両方を含み得る。また、動き補償部44は、ビデオフレームのビデオブロックに関する構文要素をさらに生成することが可能であり、これらの構文要素は、ビデオデコーダ30によってビデオフレームのビデオブロックを復号化する際に使用される。構文要素には、例えば、この予測ブロックを識別するための動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書で説明される任意の他の構文情報を含んでよい。なお、動き推定部42および動き補償部44は、概念的な目的のために個別に示されているが、高度に集積されてもよい。
【0034】
ある実施形態では、イントラBC部48は、動き推定部42および動き補償部44に関して上述した方法と同様の方法でベクトルを生成し、予測ブロックを取得することができるが、ここで、予測ブロックは符号化されている現在ブロックと同じフレームにあり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれる。特に、イントラBC部48は、現在ブロックを符号化することに用いられるイントラ予測モードを決定することができる。ある例では、イントラBC部48は、例えば個別のパスの符号化において、各種のイントラ予測モードを使用して現在ブロックを符号化し、レート歪み解析によりそれらのパフォーマンスを試験することが可能である。次に、イントラBC部48は、種々の試験されたイントラ予測モードから、一つの適切なイントラ予測を選択し使用して、対応するイントラモードインジケータを生成する。例えば、イントラBC部48は、レート歪み解析により種々の試験されたイントラ予測モードのレート歪み値を算出し、試験されたモードからレート歪み特性が最適なイントラ予測モードを適切なイントラ予測モードとして選択し使用してもよい。レート歪み解析では、通常、符号化されているブロックとこの符号化されたブロックを符号化されて生成した、符号化されない元のブロックとの間の歪み(又は、エラー)の量、および、この符号化されるブロックを生成するために使用されるビットレート(すなわち、ビットの数)を決定する。イントラBC部48は、種々の符号化されるブロックについて歪み及びレートから比率を算出して、どのイントラ予測モードがこのブロックに対して最適なレート歪み値を示しているかを決定してもよい。
【0035】
別の例では、イントラBC部48は、動き推定部42および動き補償部44の全体または一部を使用して、本明細書に記載の実施形態に従うイントラBC予測に係る機能を実行してもよい。いずれの場合も、イントラ・ブロック・コピーについては、予測ブロックが、絶対差の合計(SAD)、二乗差の合計(SSD)または他の差メトリックによって決定できる画素差に関して、符号化対象のブロックと厳密にマッチングすると考えられるものであり、予測ブロックの識別には、サブ整数画素位置の値の算出が含まれる場合がある。
【0036】
ビデオエンコーダ20は、予測ブロックがイントラ予測に基づいて同じフレームからのものであるか、インター予測に基づいて異なるフレームからのものであるかに関わらず、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を差し引いて画素差値を生成することで、残差ビデオブロックを生成することができる。残差ビデオブロックを形成する画素差値には、輝度成分差及び彩度成分差の両方を含んでよい。
【0037】
イントラ予測処理部46は、上述した動き推定部42および動き補償部44によって実行されるインター予測、またはイントラBC部48によって実行されるイントラ・ブロック・コピー予測の代わりに、現在のビデオブロックに対してイントラ予測することができる。特に、イントラ予測処理部46は、1つのイントラ予測モードを決定して現在ブロックを符号化することができる。それを実現するために、イントラ予測処理部46は、例えば、個別のパスの符号化処理において、種々のイントラ予測モードを使用して現在ブロックを符号化し、イントラ予測処理部46(またはある例では、モード選択部)は、試験されたイントラ予測モードから1つの適切なイントラ予測モードを選択し使用してもよい。イントラ予測処理部46は、このブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化部56に提供してもよい。エントロピー符号化部56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【0038】
予測処理部41がインター予測またはイントラ予測により現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックからこの予測ブロックを差し引くことで残差ビデオブロックを生成する。残差ブロック内の残差ビデオデータは、1つまたは複数の変換ユニット(TU)に含まれて変換処理部52に提供される。変換処理部52は、離散コサイン変換(DCT)または概念的に類似する変換などにより、残差ビデオデータを残差変換係数に変換する。
【0039】
変換処理部52は、得られた変換係数を定量化部54に送信する。定量化部54は、これらの変換係数を定量化して、ビットレートをさらに低減する。定量化プロセスは、これらの係数の一部または全部に関連するビット深度を減らすことができる。 定量化の度合いは、定量化パラメータを調整することによって変更されることができる。そして、ある例では、定量化部54は、定量化された変換係数を含む行列に対する走査を実行することができる。この走査は、エントロピー符号化部56によって実行されてもよい。
【0040】
定量化に続いて、エントロピー符号化部56は、例えば、コンテキスト適応可変長符号化復号化(CAVLC)、コンテキスト適応バイナリ算術符号化復号化(CABAC)、構文ベースのコンテキスト適応バイナリ算術符号化復号化(SBAC)、確率間隔区画エントロピー(PIPE)符号化復号化や別のエントロピー符号化方法または技術により、定量化された変換係数を、ビデオ・ビットストリームにエントロピー符号化する。そして、符号化されたビットストリームは、ビデオデコーダ30に送信されてもよいし、またはその後にビデオデコーダ30へ送信するか、またはビデオデコーダ30によって検索するためにストレージ装置32にアーカイブされてもよい。また、エントロピー符号化部56は、符号化されている現在のビデオフレームのための動きベクトルおよび他の構文要素をエントロピー符号化してもよい。
【0041】
逆定量化部58および逆変換処理部60は、それぞれ、逆定量化および逆変換により、他のビデオブロックの予測に使用される参照ブロックを生成するための画素領域内の残差ビデオブロックを再構成する。以上で述べたように、動き補償部44は、DPB64に格納されたフレームの1つまたは複数の参照ブロックから動き補償予測ブロックを生成することができる。また、動き補償部44は、この予測ブロックに1つまたは複数の補間フィルタを適用して、動き推定に使用されるサブ整数画素値を算出してもよい。
【0042】
加算器62は、再構成された残差ブロックを動き補償部44によって生成された動き補償予測ブロックに加算して、DPB64に格納する参照ブロックを生成する。そして、この参照ブロックは、予測ブロックとして、イントラBC部48、動き推定部42および動き補償部44によって使用されて後続のビデオフレーム内の別のビデオブロックをインター予測することが可能である。
【0043】
図3は、本願のある実施形態に係る例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号化部80、予測処理部81、逆定量化部86、逆変換処理部88、加算器90およびDPB92を備える。予測処理部81は、動き補償部82、イントラ予
測部84及びイントラBC部85をさらに備える。ビデオデコーダ30は、
図2を参照してビデオエンコーダ20に関して上述した符号化プロセスとおおよそ逆の復号化プロセスを実行することができる。例えば、動き補償部82は、エントロピー復号化部80から受信した動きベクトルに基づいて予測データを生成し、イントラ予測部84は、エントロピー復号化部80から受信したイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0044】
ある例では、ビデオデコーダ30における一つの構成要素が本願の実施を実行する任務を負ってもよい。また、ある例では、本開示の実施は、ビデオデコーダ30における1つまたは複数の構成要素に区画されてもよい。例えば、イントラBC部85は、本願の実施を単独で実現してもよいし、または動き補償部82、イントラ予測部84およびエントロピー復号化部80などのビデオデコーダ30における他の構成要素と組み合わせて実現してもよい。ある例では、ビデオデコーダ30がイントラBC部85を含まなく、イントラBC部85の機能が動き補償部82のようなの予測処理部81における他の構成要素によって実現されてもよい。
【0045】
ビデオデータメモリ79は、ビデオデコーダ30における他の構成要素によって復号化される符号化ビデオビットストリームなどのビデオデータを格納することができる。ビデオデータメモリ79に格納されたビデオデータは、例えば、ビデオデータの有線または無線ネットワーク通信や物理的なデータ記憶媒体(例えば、フラッシュドライブやハードディスク)へのアクセスにより、ストレージ装置32やカメラなどのローカルビデオソースから取得した。ビデオデータメモリ79は、符号化されたビデオビットストリームからの符号化されたビデオデータを格納する符号化画像バッファ(CPB)を含んでもよい。ビデオデコーダ30における復号化画像バッファ(DPB)92は、ビデオデコーダ30による(例えば、イントラ予測またはインター予測符号化復号化モードでの)ビデオデータの復号化に使用される参照ビデオデータを格納する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗型RAM(RRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、または他のタイプのメモリデバイスなどの種々のメモリデバイスのいずれかによって形成されることが可能である。説明の便利上、ビデオデータメモリ79およびDPB92は、
図3ではビデオデコーダ30における2つの個別の構成要素として示されている。しかし、当業者にとっては、ビデオデータメモリ79およびDPB92が同じメモリデバイス又は個別のメモリデバイスによって提供されることは明らかである。ある例では、ビデオデータメモリ79は、ビデオデコーダ30における他の構成要素とともにオンチップであってもよく、それらの構成要素に対するオフチップであってもよい。
【0046】
ビデオデコーダ30は、復号化プロセスにおいて、符号化されたビデオフレームのビデオブロックおよび関連する構文要素を示す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレームレベルおよび/またはビデオブロックレベルで構文要素を受信してもよい。ビデオデコーダ30のエントロピー復号化部80は、このビットストリームをエントロピー復号化して、定量化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他の構文要素を生成する。そして、エントロピー復号化部80は、動きベクトルおよび他の構文要素を予測処理部81に転送する。
【0047】
ビデオフレームがイントラ予測符号化(I)フレームに符号化され、または他のタイプのフレームにおけるイントラ符号化予測ブロックに用いられる場合、予測処理部81におけるイントラ予測部84は、信号で通知されたイントラ予測モード、および現在フレームの以前復号化されたブロックからの参照データに基づいて、現在のビデオフレームのビデオブロックのための予測データを生成することが可能である。
【0048】
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームに符号化された場合、予測処理部81における動き補償部82は、エントロピー復号化部80から受信した動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックのための1つまたは複数の予測ブロックを生成することが可能である。各予測ブロックは、参照フレームリストのうちの1つ内の参照フレームから生成される。ビデオデコーダ30は、DPB92に格納された参照フレームに基いて、デフォルトの構成技術によりこれらの参照フレームリスト、List0およびList1を構成することが可能である。
【0049】
ある例では、ビデオブロックがここで述べたイントラBCモードに従って符号化された場合には、予測処理部81におけるイントラBC部85は、エントロピー復号化部80から受信したブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックのための予測ブロックを生成する。この予測ブロックは、ビデオエンコーダ20によって决定された現在のビデオブロックと同一の画像の再構成領域にあり得る。
【0050】
動き補償部82および/またはイントラBC部85は、動きベクトルおよび他の構文要素を解析することで現在のビデオフレームのビデオブロックのための予測情報を決定し、そして、この予測情報を使用して復号化されている現在のビデオブロックのための予測ブロックを生成する。例えば、動き補償部82は、受信した構文要素の一部を使用して、このビデオフレームのビデオブロックを符号化するための予測モード(例えば、イントラ予測またはインター予測)、インター予測フレームタイプ(例えば、BまたはP)、このフレームのための1つまたは複数の参照フレームリストの構造情報、このフレームの各インター予測符号化ビデオブロックの動きベクトル、このフレームの各インター予測符号化ビデオブロックのインター予測状態、および現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定する。
【0051】
同様に、イントラBC部85は、受信した構文要素の一部、例えばフラグを使用して、現在のビデオブロックがイントラBCモードで予測されること、このフレームにおけるどのビデオブロックが再構成領域にあり且つDPB92に格納されるべきかに関する構造情報、このフレームにおける各イントラBC予測ビデオブロックのブロックベクトル、このフレームにおける各イントラBC予測ビデオブロックのイントラBC予測状態、及び現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定することができる。
【0052】
また、動き補償部82は、ビデオエンコーダ20がビデオブロックの符号化において使用した補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素の補間値を算出することもできる。この場合、動き補償部82は、受信した構文要素からビデオエンコーダ20によって使用された補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0053】
逆定量化部86は、ビデオエンコーダ20によって定量化の度合いを決定するためにこのビデオフレーム内の各ビデオブロックに対して算出された定量化パラメータと同じものを使用して、ビットストリームに提供され且つエントロピー復号化部80によってエントロピー復号化された定量化の変換係数を逆定量化する。逆変換処理部88は、画素領域にある残差ブロックを再構成するように、逆変換、例えば逆DCT、逆整数変換、または概念的に類似の逆変換処理をこれらの変換係数に適用する。
【0054】
動き補償部82またはイントラBC部85がベクトルおよび他の構文要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、加算器90は、逆変換処理部88からの残差ブロックと動き補償部82及びイントラBC部85によって生成された対応する予測ブロックとを加算することで、現在のビデオブロックに対して復号化されたビデオブロックを再構成する。加算器90とDPB92との間には、インループフィルタ(図示せず)を配置して、この復号化されたビデオブロックをさらに処理することが可能である。そして、所定のフレーム内のこれらの復号化されたビデオブロックは、次のビデオブロックの将来の動き補償に使用される参照フレームを格納するDPB92に格納される。また、DPB92、またはDPB92とは別のメモリデバイスには、
図1の表示装置34などのような表示装置にその後表示されるように、復号化されたビデオも格納されることが可能である。
【0055】
典型的なビデオ符号化復号化プロセスでは、1つのビデオシーケンスが、通常、順序付けられたフレームまたは画像のセットを含む。各フレームには、SL、SCbおよびSCrで示す3つのサンプル行列を含むことが可能である。SLは、輝度サンプルの2次元行列である。SCbは、Cb彩度サンプルの2次元行列である。SCrは、Cr彩度サンプルの2次元行列である。別の例では、フレームがモノクロであることがあり、この場合、輝度サンプルの1つの2次元行列のみが含まれる。
【0056】
図4Aに示すように、ビデオエンコーダ20(または、より具体的には区画部45)は、まずフレームを1組の符号化木ユニットに区画することにより、このフレームの符号化表現を生成する。ビデオフレームには、ラスター走査順で左から右、および上から下に連続的に順序付けられた整数個のCTUが含まれる。各CTUは、最大の論理的な符号化ユニットであり、幅および高さが、ビデオシーケンス内のすべてのCTUが128×128、64×64、32×32及び16×16のうちの1つである同じサイズを有するように、ビデオエンコーダ20によってシーケンスパラメータセットで通知される。なお、本願は必ずしも特定のサイズに限定されない。
図4Bに示すように、各CTUは、輝度サンプルの1つの符号化木ブロック(CTB)、彩度サンプルの2つの対応する符号化木ブロック、および符号化木ブロックのサンプルを符号化するために使用される構文要素を含み得る。構文要素は、画素の符号化ブロックの異なるタイプのユニットの属性、及びどのようにビデオシーケンスがビデオデコーダ30において再構成されるかを記述するものであって、例えば、インター予測またはイントラ予測、イントラ予測モード、動きベクトルおよび他のパラメータを含む。モノクロ画像または3つの個別の色平面を有する画像では、1つのCTUが、単一の符号化木ブロックと、この符号化木ブロックのサンプルを符号化するために使用される構文要素とを含み得る。符号化木ブロックは、N×Nのサンプルブロックであることが可能である。
【0057】
より良いパフォーマンスを達成するために、ビデオエンコーダ20は、CTUの符号化木ブロックに対して二分木区画、四分木区画、またはそれらの組み合わせなどの木区画を再帰的に実行して、このCTUをより小さな符号化ユニット(CU)に区画することができる。より良いパフォーマンスを達成するために、ビデオエンコーダ20は、CTUの符号化木ブロックに対して二分木区画、三分木区画、四分木区画、またはそれらの組み合わせなどの木区画を再帰的に実行して、このCTUをより小さな符号化ユニット(CU)に区画することができる。
図4Cに示すように、64×64のCTU400は、まず、32×32ブロックサイズの4つのより小さなCUに区画される。これらの4つのより小さいCUのうち、CU410及びCU420は、それぞれ16×16ブロックサイズの4つのCUに区画される。16×16ブロックサイズの2つのCU430および440は、それぞれ8×8ブロックサイズの4つのCUにさらに区画される。
図4Dは、
図4Cに示されたCTU400の区画プロセスの最終的な結果を表す四分木データ構造を示し、四分木の各リーフノードは、32×32から8×8までの各サイズの1つのCUに対応する。
図4Bに示されたCTUのように、各CUは、フレームの同じサイズの輝度サンプルの1つの符号化ブロック(CB)と、彩度サンプルの2つの対応する符号化ブロックと、これらの符号化ブロックのサンプルを符号化するために使用される構文要素とを含み得る。モノクロ画像または3つの個別の色平面を有する画像には、1つのCUが、単一の符号化ブロックと、この符号化ブロックのサンプルを符号化するために使用される構文構造とを含み得る。なお、
図4Cおよび
図4Dに示す四分木区画は、例示的にすぎず、1つのCTUが四分/三分/二分木区画に基づいて各種のローカル特性に適するCUに分割されることができる。マルチタイプ木構造では、1つのCTUが四分木構造に従って分割され、各四分木リーフCUが、二分木および三分木構造に従ってさらに分割されることができる。
図4Eに示すように、5種の区画タイプ、すなわち、四元区画、水平二元区画、垂直二元区画、水平三元区画、および垂直三元区画がある。
【0058】
ある実施形態では、ビデオエンコーダ20が、さらにCUの符号化ブロックを1つまたは複数のM×N予測ブロック(PB)に区画するこができる。予測ブロックは、同じ予測(インター予測またはイントラ予測)が適用される長方形(正方形または非正方形)のサンプルブロックである。CUの予測ユニット(PU)は、1つの輝度サンプルの予測ブロック、彩度サンプルの2つの対応する予測ブロック、およびこれらの予測ブロックを予測するために使用される構文要素を含み得る。モノクロ画像または3つの個別の色平面を有する画像では、PUが単一の予測ブロックと、この予測ブロックを予測するために使用される構文構造とを含み得る。ビデオエンコーダ20は、CUの各PUの輝度予測ブロック、Cb予測ブロックおよびCr予測ブロックに対する予測的な輝度ブロック、予測的なCbブロックおよび予測的なCrブロックを生成することができる。
【0059】
ビデオエンコーダ20は、イントラ予測またはインター予測により、PUに対してこれらの予測ブロックを生成することができる。ビデオエンコーダ20は、イントラ予測によりPUの予測ブロックを生成する場合、このPUに関連するフレームの復号化されたサンプルに基づいて、このPUの予測的なブロックを生成することができる。ビデオエンコーダ20は、インター予測によりPUの予測的なブロックを生成する場合、このPUに関連するフレーム以外の1つまたは複数のフレームの復号化されたサンプルに基づいて、このPUの予測的なブロックを生成することができる。
【0060】
ビデオエンコーダ20は、CUの1つまたは複数のPUの予測的な輝度ブロック、予測的なCbブロック、および予測的なCrブロックを生成した後、CUの元の輝度符号化ブロックからCUの予測的な輝度ブロックを差し引くことで、このCUの輝度残差ブロックを生成し、ここで、このCUの輝度残差ブロックにおける各サンプルが、このCUの予測的な輝度ブロックのうち1つの予測的な輝度ブロックにおける輝度サンプルとこのCUの元の輝度符号化ブロックにおける対応するサンプルとの差を示す。同様に、ビデオエンコーダ20は、CUのCb残差ブロックおよびCr残差ブロックをそれぞれ生成し、ここで、このCUのCb残差ブロックにおける各サンプルが、このCUの予測的なCbブロックのうち1つの予測的なCbブロックにおけるCbサンプルとこのCUの元のCb符号化ブロックにおける対応するサンプルとの差を示し、このCUのCr残差ブロックにおける各サンプルが、このCUの予測的なCrブロックのうち1つの予測的なCrブロックにおけるCrサンプルとこのCUの元のCr符号化ブロックにおける対応するサンプルとの差を示す。
【0061】
さらに、
図4Cに示すように、ビデオエンコーダ20は、四分木区画により、CUの輝度残差ブロック、Cb残差ブロック、およびCr残差ブロックを1つまたは複数の輝度変換ブロック、Cb変換ブロック、およびCr変換ブロックに展開することができる。変換ブロックは、同じ変換が適用される長方形(正方形または非正方形)のサンプルブロックである。CUの変換ユニット(TU)は、輝度サンプルの変換ブロック、彩度サンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用される構文要素を含み得る。したがって、CUの各TUは、輝度変換ブロック、Cb変換ブロックおよびCr変換ブロックに関連付けられることが可能である。ある例では、TUに関連付けられた輝度変換ブロックは、CUの輝度残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロ画像または3つの個別の色平面を有する画像では、TUが、単一の変換ブロックと、この変換ブロックのサンプルを変換するために使用される構文構造とを含み得る。
【0062】
ビデオエンコーダ20は、1つまたは複数の変換をTUの輝度変換ブロックに適用して、このTUの輝度係数ブロックを生成することができる。係数ブロックは、変換係数の2次元行列であってもよい。変換係数はスカラー量であってもよい。ビデオエンコーダ20は、1つまたは複数の変換をTUのCb変換ブロックに適用して、このTUのCb係数ブロックを生成することができる。ビデオエンコーダ20は、1つまたは複数の変換をTUのCr変換ブロックに適用して、このTUのCr係数ブロックを生成することができる。
【0063】
ビデオエンコーダ20は、係数ブロック(例えば、輝度係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、係数ブロックを定量化してもよい。定量化とは、一般的に、変換係数を定量化してこれらの変換係数を示すデータの量をなるべく低減し、更なる圧縮に達することを意味する。ビデオエンコーダ20は、係数ブロックを定量化した後、定量化された変換係数を示す構文要素をエントロピー符号化することが可能である。例えば、ビデオエンコーダ20は、定量化された変換係数を示す構文要素に対してコンテキスト適応型バイナリ算術符号化復号化(CABAC)を実行してもよい。最終的に、ビデオエンコーダ20は、符号化されたフレームおよび関連データの表現を構成するビットシーケンスを含むビットストリームを出力して、ストレージ装置32に保存するか、または目標装置14に送信する。
【0064】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信した後、このビットストリームを解析して、ビットストリームから構文要素を取得する。ビデオデコーダ30は、ビットストリームから取得された構文要素の少なくとも一部に基づいて、ビデオデータのフレームを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ20によって実行された符号化プロセスと逆である。例えば、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックに対して逆変換を実行して、現在CUのTUに関連する残差ブロックを再構成することが可能である。また、ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルと現在CUのTUの変換ブロックの対応するサンプルとを加算することによって、現在CUの符号化ブロックを再構成する。フレームの各CUの符号化ブロックが再構成された後、ビデオデコーダ30はこのフレームを再構成することが可能である。
【0065】
上述したように、ビデオ符号化復号化では、主に2つのモード、即ちイントラフレーム予測(またはイントラ予測)及びインターフレーム予測(またはインター予測)を使用してビデオ圧縮を実現する。パレットベースの符号化は、多くのビデオ符号化復号化標準で採用されているもう1つの符号化復号化スキームである。スクリーン生成コンテンツ符号化に特に適しているパレットベースの符号化復号化では、ビデオコーダ(例えば、ビデオエンコーダ20またはビデオデコーダ30)が、所定のブロックのビデオデータを表す色のパレットテーブルを生成する。パレットテーブルは、所定のブロック内の最も主要な(例えば、頻繁に使用される)画素値を含む。所定のブロックのビデオデータで頻繁に表現されない画素値は、パレットテーブルに含まれないか、エスケープ色として含まれる。
【0066】
パレットテーブル内の各エントリは、パレットテーブル内の対応する画素値のインデックスを含む。ブロック内のサンプルのパレットインデックスを符号化して、パレットテーブル内のどのエントリがどのサンプルを予測または再構成するために使用されるかを表してもよい。このパレットモードは、画像、スライス、タイル、または他のビデオブロックのこのようなグループの最初のブロックのためのパレット予測子を生成するプロセスから開始する。後述するように、後続のビデオブロックのためのパレット予測子は、通常、以前に使用されたパレット予測子を更新することによって生成される。説明のために、仮定パレット予測子は画像レベルで定義されている。言い換えれば、画像は、それぞれが自分のパレットテーブルを有する複数の符号化ブロックを含むことが可能であるが、画像全体に対して1つのパレット予測子がある。
【0067】
ビデオビットストリーム中のパレットエントリを信号で通知するために必要なビットを低減するために、ビデオデコーダは、パレット予測子を利用して、ビデオブロックを再構成するためのパレットテーブル中の新しいパレットエントリを決定することができる。例えば、パレット予測子は、以前に使用されたパレットテーブルからのパレットエントリを含むか、または最近使用されたパレットテーブルのすべてのエントリを含むことでこの最近使用されたパレットテーブルで初期化されてもよい。ある実施形態では、パレット予測子は、最近使用されたパレットテーブルからのすべてのエントリよりも少ないエントリを含めて、以前に使用された他のパレットテーブルからのエントリの一部を組み込んでもよい。パレット予測子は、異なるブロックを符号化復号化するためのパレットテーブルと同じサイズであってもよいし、異なるブロックを符号化復号化するためのパレットテーブルよりも大きいか小さいかのサイズであってもよい。一例では、パレット予測子は、64個のパレットエントリを含む先入れ先出し(FIFO)テーブルとして実現される。
【0068】
ビデオデコーダは、パレット予測子からビデオデータのブロックのためのパレットテーブルを生成するために、符号化されたビデオビットストリームからこのパレット予測子の各エントリのための1ビットフラグを受け取ることができる。この1ビットフラグは、このパレット予測子の関連エントリがこのパレットテーブルに含まれるべきであることを示す第1の値(例えば、バイナリの1)、または、このパレット予測子の関連エントリがこのパレットテーブルに含まれないことを示す第2の値(例えば、バイナリのゼロ)を有してもよい。ビデオデコーダは、パレット予測子のサイズがビデオデータのブロックのためのパレットテーブルよりも大きい場合、パレットテーブルの最大サイズに達すると、それ以上のフラグの受信を停止してもよい。
【0069】
ある実施形態では、パレットテーブル内のエントリの一部は、パレット予測子を使用して決定されたことに代えて、符号化されたビデオビットストリーム内で直接に信号で通知されてもよい。ビデオデコーダは、このようなエントリに対して、符号化されたビデオビットストリームから、このエントリに関連付けられた輝度及び2つの彩度の成分のための画素値を示す3つの個別のmビット値を受信してもよく、ここで、mはビデオデータのビット深度を表す。信号で直接に通知されるパレットエントリが必要とする複数のmビット値と比べて、パレット予測子から導き出されたパレットエントリは、1ビットフラグしか必要としない。したがって、パレット予測子を使用してパレットエントリの一部または全部を信号で通知することは、新しいパレットテーブルのエントリを信号で通知するのに必要なビット数を大幅に削減し、パレットモード符号化復号化の全体的な符号化復号化効率を向上させることができる。
【0070】
多くの場合、1つのブロックのためのパレット予測子は、1つ又は複数の以前に符号化されたブロックを符号化するためのパレットテーブルに基づいて決定される。しかし、画像、スライス、またはタイル内の最初の符号化木ユニットが符号化復号化される場合、以前に符号化復号化されたブロックのパレットテーブルは利用不能であることがある。したがって、以前に使用されたパレットテーブルのエントリを使用してパレット予測子を生成することはできない。この場合、以前に使用されたパレットテーブルが利用不能であると、パレット予測子を生成するための値であるパレット予測子初期化値のシーケンスは、シーケンスパラメータセット(SPS:sequence parameter set)および/または画像パラメータセット(PPS:picture parameter set)内で信号で通知されてもよい。SPSは、一般的には、符号化ビデオシーケンス(CVS:coded video sequence)と呼ばれる一連の連続した符号化ビデオ画像に適用されるの構文要素の構文構造を指し、各スライスセグメントヘッダ内に見出された構文要素によって参照されるPPS内に見出された構文要素の内容によって決定される。PPSは、一般に、CVS内の1つ又は複数の個々の画像に適用される構文要素の構文構造を指し、各フラグメントタイトル内に見出された構文要素によって決定される。したがって、SPSは一般的にPPSよりも高いレベルの構文構造であると考えられ、SPSに含まれる構文要素は一般的にPPSに含まれる構文要素と比較して、変化が頻繁に発生することでなく、ビデオデータのより大きな部分に適用されることを意味する。
【0071】
図5A~5Bは、本開示のある実施形態に係る、ビデオデータを符号化復号化するためにパレットモードを用いる例を示すブロック図である。
【0072】
パレット(PFT)モードの信号による通知の場合、パレットモードは、符号化ユニットのための予測モードとして符号化され、すなわち、符号化ユニットのための予測モードは、MODE_INTRA、MODE_INTER、MODE_IBC、およびMODE_PLTであることが可能である。パレットモードを使用する場合、CU内の画素値は、代表的な色の小さいセットで表される。このセットはパレットと呼ばれる。パレット色に近い値を持つ画素については、パレットインデックスが信号で送信される。パレット外の値を持つ画素については、エスケープシンボルで表現され、定量化された画素値が直接に信号で通知される。以下の表1と表2には、現在のVVCドラフト仕様におけるパレットモードの構文及び関連する意味をそれぞれ示している。
【0073】
デコーダは、パレットモードで符号化されたブロックを復号化するために、ビットストリームからパレット色およびインデックスを復号化する必要がある。パレット色は、パレットテーブルによって定義され、パレットテーブル符号化構文(たとえば、palette_predictor_run、num_signaled_palette_entrients、new_palette_entrients)によって符号化される。エスケープフラグpalette_escape_val_present_flagは、各CUについて現在のCUにエスケープシンボルが存在するかどうかを示すように送信される。エスケープシンボルが存在する場合、パレットテーブルにエントリが追加され、最後のインデックスがエスケープモードに割り当てられる。CU内のすべての画素のパレットインデックスは、パレットインデックスマップを形成し、パレットインデックスマップ符号化構文(例えば、num_palette_indices_minus1、palette_idx_idc、copy_above_indices_for_final_run_flag、palette_transpose_flag、copy_above_palette_indices_flag、palette_run_prefix、palette_run_suffix)により符号化される。パレットモードで符号化されたCUの例が
図5Aに示されており、ここで、パレットサイズは4である。CU内の最初の3つのサンプルは、それぞれパレットエントリ2、0及び3を使用して再構成される。このCUにおけるサンプル「X」は、エスケープシンボルを表す。CUレベルのフラグpalette_escape_val_present_flagは、このCUにいすれかのエスケープシンボルが存在するかどうかを示す。エスケープシンボルが存在する場合、パレットサイズは1つ増加し、最後のインデックスはこのエスケープシンボルを示すために使用される。したがって、
図5Aでは、インデックス4がこのエスケープシンボルに割り当てられる。
【0074】
パレットインデックス(例えば、
図5A中のインデックス4)がエスケープシンボルに対応する場合、追加のオーバーヘッドは、サンプルに対応する色を示すように信号で通知される。
【0075】
ある実施形態では、エンコーダ側では、CUと共に使用されるための適切なパレットを導出する必要がある。非可逆な符号化のためのパレットの導出には、改良されたK-平均クラスタリングアルゴリズムが使用される。ブロックの最初のサンプルは、パレットに追加される。そして、このブロックからの各後続サンプルについて、該当サンプルと各現在のパレット色との間の絶対差分の和(SAD:sum of absolute difference)が算出される。各成分の歪みが最小のSADに対応するパレットエントリに対する閾値よりも小さい場合、このパレットエントリに属するクラスタに該当サンプルを追加する。それ以外の場合、該当サンプルは新しいパレットエントリとして追加される。クラスタにマッピングされたサンプルの数が閾値を超えると、このクラスタの重心が更新されて、該当クラスタのパレットエントリとなる。
【0076】
次のステップでは、使用についてクラスタを降順にソートする。そして、各エントリに対応するパレットエントリを更新する。一般に、クラスタ重心はパレットエントリとして使用される。しかし、パレットエントリを符号化するコストを考慮すると、レート歪み分析は、パレット予測子からのエントリのいずれかが、重心よりも更新されたパレットエントリとして使用されるのに適しているかどうかを分析するように実行される。このプロセスは、すべてのクラスタが処理されたか、最大パレットサイズに達するまで継続して行われる。最後に、クラスタにサンプルが1つしかなく、対応するパレットエントリがパレット予測子にない場合、このサンプルはエスケープシンボルに変換される。さらに、重複するパレットエントリは削除され、それらのクラスタはマージされる。
【0077】
パレットの導出された後、ブロック内の各サンプルには、(SAD内の)最も近いパレットエントリのインデックスが割り当てられる。そして、このサンプルは「INDEX」または「COPY_ABOVE」モードに割り当てられる。「INDEX」または「COPY_ABOVE」モードが可能である各サンプルについて、各モードの動作を決定する。そして、このモードを符号化するコストを算出する。コストが低いモードが選択される。
【0078】
パレットテーブルを符号化するために、パレット予測子が維持される。パレットの最大サイズおよびパレット予測子の最大サイズは、いずれもSPS(またはPPS、スライスヘッダなどの他の符号化レベル)で信号として通知されてもよい。パレット予測子は、パレット予測子が0にリセットされた各スライスの先頭で初期化される。パレット予測子における各エントリについて、このエントリが現在のパレットの一部であるか否かを示す再利用フラグは、信号で通知される。
図5Bに示すように、再利用フラグpalette_predictor_runが送信される。そして、num_signaled_palette_entrients構文によって、0次の指数Golombコードを使用して、新しいパレットエントリの数を信号で通知する。最後に、新しいパレットエントリnew_palette_entrients[]の成分値は、信号で通知される。現在のCUを符号化した後、パレット予測子は現在のパレットを使用して更新され、現在のパレットで再利用されていない以前のパレット予測子からのエントリは、許容される最大サイズに達するまで、新しいパレット予測子の最後に追加される。
【0079】
パレットインデックスマッピングを符号化するために、
図5Cに示すように、インデックスは水
平走査または垂
直走査により符号化される。走査の順序は、ビットストリーム内にpalette_transpose_flagで明示的に信号で通知される。
【0080】
パレットインデックスは、「INDEX」及び「COPY_ABOVE」の2つの主要なパレットサンプルモードで符号化される。「INDEX」モードでは、パレットインデックスが明示的に信号で通知される。「COPY_ABOVE」モードでは、上方の行におけるサンプルのパレットインデックスがコピーされる。「INDEX」モード及び「COPY_ABOVE」モードの両方では、同じモードで符号化される画素数を示すラン値が信号で通知される。水平走査の場合には、最初の行以外の行に対し、一方、垂直走査の場合又は以前のモードが「COPY_ABOVE」である場合には、1列目以外の列目に対して、このモードがフラグにより信号で通知される。
【0081】
ある実施形態では、インデックスマップの符号化順序は、まず、構文num_palette_indices_minus1によりCUのインデックス値の数を信号で通知し、続いて構文palette_idx_idcによりCU全体の実際のインデックス値を信号で通知する。インデックス数及びインデックス値の両方がバイパスモードで符号化される。これは、インデックスに関連するバイパス符号化ビンをグループ化する。次に、構文copy_above_palette_indices_flag、palette_run_prefix、およびpalette_run_suffixにより、パレットモード(INDEXまたはCOPY_ABOVE)及びランをインターリーブで通知する。copy_above_palette_indices_flagはコンテキスト符号化フラグ(1つのビンのみ)であり、palette_run_prefixの符号語は以下の表3に示す手順で決定され、ここで、最初の5つのビンはコンテキスト符号化される。palette_run_suffixはバイパスビンとして符号化される。最後に、CU全体のエスケープサンプルに対応する成分エスケープ値がグループ化され、バイパスモードで符号化される。他の1つの構文要素copy_above_indices_for_final_run_flagは、インデックス値の信号による通知の後に信号で通知される。この構文要素をインデックス数と組み合わせて使用すると、ブロック内における最後のランに対応するラン値の信号による通知の必要がなくなる。
【0082】
VVC(VTM)では、Iスライスに対して輝度及び彩度成分のための符号化単位区画を個別化する二分木を可能にする。その結果、輝度(Y成分)と彩度(Cb、Cr成分)にパレットが個別的に適用される。二分木が無効になっている場合には、パレットがY、Cb、Cr成分に合わせて適用される。
【表1-1】
【表1-2】
【表1-3】
【表1-4】
【表2-1】
【表2-2】
【表2-3】
【表2-4】
【表3-1】
【表3-2】
【0083】
変換係数符号化に用いる係数群(CG:coefficient group)として、1つのCUは、それぞれがm個のサンプルからなる複数のラインベースの係数群に分割され、各CG毎にエスケープモード用のインデックスラン、パレットインデックス値及び定量化色は順次符号化・解析される。その結果、構文要素、例えばCGのインデックスラン、パレットインデックス値、エスケープ定量化色を解析した後に、行ベースのCGにおける画素は、再構成されることができ、再構成の前にCU全体の構文要素を解析(および格納)しなければならないVTM6.0におけるパレットモードでのバッファ必要を大幅に削減することができる。
【0084】
本願では、
図5Dに示すように
、走査モードに基づいて、パレットモードの各CUをm個のサンプル毎(本試験ではm=8)に複数のセグメントに分割する。
【0085】
各セグメントにおけるパレットラン符号化の符号化順序は以下の通りである。各画素について、コンテキスト符号化されたビンrun_copy_flag=0は、その画素が前の画素と同じモードであること、すなわち、前の走査された画素と現在の画素が両方ともランタイプCOPY_ABOVEであること、または前の走査された画素と現在の画素が両方ともランタイプINDEXであって、同じインデックス値であることを示すように信号で通知される。そうでない場合は、run_copy_flag=1が信号で通知される。
【0086】
現在の画素と前の画素が異なるモードである場合、コンテキスト符号化されたビンcopy_above_palette_indices_flagは、その画素がランタイプ、すなわちINDEXまたはCOPY_ABOVEであることを示すように信号で通知される。この場合、サンプルが最初の行(水平走査)または最初の列(垂直走査)にあると、デフォルトではINDEXモードが使用されるので、デコーダがランタイプを解析する必要はない。以前に解析されたランタイプがCOPY_ABOVEである場合も、デコーダがランタイプを解析する必要はない。
【0087】
一つのセグメント内の画素をパレットラン符号化した後、インデックス値(INDEXモード用)および定量化されたエスケープ色をコンテキスト符号化ビンの符号化/解析から分けってバイパスビンとして符号化しグループ化し、各行ベースのCG内のスループットを向上させる。インデックス値がラン符号化の後に符号化/解析されるので、エンコーダーがインデックス値の数num_palette_indices_minus1及び最後のランタイプcopy_above_indices_for_final_run_flagを信号で通知する必要はない。表4には、CGパレットモードの構文要素を示す。
【表4-1】
【表4-2】
【表4-3】
【表4-4】
【0088】
図6は、本開示のある実施形態に係るビデオデコーダ(例えば、ビデオデコーダ30)はビデオデータを復号化する技術を実現する例示的な処理を示すフローチャート600である。
【0089】
VVCにおけるパレットモードでは、64×64画素以下のCUにパレットモードを適用することができる。ある実施形態では、最小パレットモードブロックサイズは、最小パレットモードブロックサイズ以下のサイズの符号化ユニットについてパレットモードを無効にするように、使用されて複雑さを低減させる。例えば、一定のしきい値より小さいサイズのすべてのブロック、例えば16つのサンプルについては、パレット・モードを無効にする。異なる彩度フォーマット(例えば、4:4:4、4:2:2、4:2:0)および異なる符号化木タイプ(例えば、SINGLE_TREE、DUAL_TREE_LUMAおよびDUAL_TREE_CHROMA)があるため、このしきい値は異なることがある。「SINGLE_TREE」は、画像の輝度成分及び彩度成分が同様に区画されてパレットモードで同じパレットテーブル及びパレット予測子を共有することを意味する。逆に、「DUAL_TREE」は、画像の輝度成分及び彩度成分が個別に区画されてパレットモードで異なるパレットテーブル及びパレット予測子を有することを意味する。例えば、「DUAL_TREE」タイプの場合、つまり彩度成分が個別に考慮されている場合、16つのサンプル以下のCUの彩度成分については、複雑さを低減するようにパレットモードを無効にする必要がある。以下の表5には、設計された構文の例を示す。
【表5】
【0090】
表5には、pred_mode_plt_flagが、符号化ユニットについてパレットモードを有効(例えば値1)にするか無効(例えば値0)にするかを指定する。SubWidthCおよびSubHeightCのようなパラメータは、以下のようにこの符号化ユニットの彩度フォーマットに関連付けられている:
モノクロサンプリングでは、名目上で輝度配列と考えられている一つのサンプル配列しかない。4:2:0サンプリングでは、各2彩度配列がそれぞれ、輝度配列の半分の高さ及び半分の幅を有する。4:2:2サンプリングでは、各2彩度配列がそれぞれ、輝度配列と同じ高さ及び半分の幅を有する。4:4:4サンプリングでは、各2彩度配列がそれぞれ、輝度配列と同じ高さ及び幅を有する。
【0091】
別の実施形態では、単一木の場合、小さなサイズの輝度ブロックを有するCUに対して、パレットモードを無効にする。一例では、単一木の場合、16画素以下の輝度ブロックを有するCUに対してパレットモードを無効にする。ある特定の例では、パレットの有効化が彩度のサイズに関係なく輝度サンプルのサイズを条件とするので、8×4輝度サンプル及び2つの4×2彩度サンプルを含む8×4CUに対してパレットモードを有効にしてもよい。
【0092】
ある実施形態では、単一木の場合、CUの輝度成分(例えば、Y)及び彩度成分(例えば、Cb及びCr)が同様に区画される。二分木の場合、輝度成分及び彩度成分は異なる区画木を有する。ローカル二分木の場合、輝度及び彩度成分は、単一木の場合と異なるパレットテーブルを有する。ローカル二分木の場合、CU内の輝度成分及び彩度成分を個別にパレット符号化復号化する。
【0093】
別の実施形態では、ローカル二分木の場合、小さいサイズのブロックに対し、パレットモードを無効にする。一例では、ローカル二分木の場合、32画素以下のCUに対してパレットモードを無効にする。
【0094】
ある実施形態では、パレットモードが、ローカルな二分木の場合を除外して適用される。VVCでは、単一木の場合、64×64画素以下4×4画素より大きい輝度ブロックを有するCUにパレットモードを適用する。二分木の場合、64×64画素以下4×4画素より大きいCUについて、パレットモードを輝度成分及び彩度成分の両方に適用してもよい。別の実施形態では、複雑さを低減するために、ローカル二分木の場合には、パレットモードを無効にする。次の表6には、VVC設計における構文の一つの例を示す。CUのmodeTypeがVVCにおけるMODE_TYPE_INTRAに等しい場合、このCUがローカル二分木状態にあることを意味する。VVCへの変更は以下のとおりである。
【表6】
【0095】
別の実施形態では、ローカル二分木の場合、彩度成分のみに対してパレットモードを無効にする。言い換えれば、ローカル二分木の場合、パレットモードは、輝度CUに適用することが可能であるが、彩度CUに適用されることができない。以下の表7には、VVC設計における構文の一つの例を示す。VVC設計において、CUのmodeTypeがMODE_TYPE_INTRAに等しく、CUのtreeTypeがDUAL_TREE_CHROMAに等しいことは、このCUが彩度成分であってローカル二分木にあることを意味する。VVCへの変更は、表7に示される。
【表7】
【0096】
ある実施形態では、ローカル二分木の場合、カラーパレット予測は、輝度成分および彩度成分の両方について更新される。現在のVVC標準によれば、ローカル二分木の場合、パレット予測の更新処理は彩度成分のみに対して実行される。より具体的には、各輝度CUをパレットモードでローカル二分木に符号化復号化している場合、パレット予測は更新されないことがある。パレット予測は、ローカル二分木における各パレットモード彩度CUの最後の彩度成分が符号化復号化された後に更新されてもよい。
【0097】
上述したようにVVCで定義されているパレット予測の更新処理は、符号化性能が十分ではない。本出願で開示されるある実施形態では、符号化復号化効率を向上させるために、ローカル二分木の場合に、輝度および彩度CUの両方に対してパレット予測の更新処理を実行する。より具体的には、ローカル二分木で各輝度CUを符号化復号化している時に、最初にパレット予測を更新し、その後、同じローカル二分木で各彩度CUを符号化することが可能である。以下の表8には、VVC設計における構文の一つの例を示す。VVC設計では、変数cIdxが現在のCUの色/ビデオ成分を指定し、0が輝度、1がCb成分、2がCr成分を表す。VVCへの変更は以下のとおりである。
【表8】
【0098】
ある実施形態では、パレット予測が、ローカル二分木の場合に部分的に更新される。上述したように、ローカル二分木の場合には、パレット予測の更新処理が、輝度および彩度CUの両方について実行される。より具体的には、パレット予測が、最初に、ローカル二分木で各輝度CUを符号化復号化する間に更新され、その後、同じローカル二分木で各彩度CUを符号化復号化してもよい。
【0099】
仮にローカル二分木におけるCUがすべて小さなサイズCUであるとし、これらのCUに対してパレット予測の更新プロセスを逐次的に実行するには、大量の計算サイクルが必要である。ある実施形態によれば、複雑さを低減するために、ローカル二分木の場合には、テーブル更新なしに、共有パレットテーブルが一部またはすべてのCUに適用される。
【0100】
一例では、ローカル二分木の場合、パレット予測の更新処理がパレット・モードで無効になる。以下の表9には、表8における450から456までのコード行が削除されたVVC設計の構文の一つの例を示している。VVC設計では、変数cIdxが現在のCUの色成分を指定し、0が輝度、1はCb成分、2はCr成分を表す。VVCの変化を以下に示す。
【表9】
【0101】
ある実施形態では、ローカル二分木の場合、輝度ブロックサイズが32画素以下であるCUについて、パレットモードでのパレット予測の更新プロセスを無効にする。この場合、パレットモードでのパレット予測の更新プロセスは、少なくとも8×8の輝度サンプルを含む8×8以上のCUに対して有効にされてもよい。
【0102】
さらに別の実施形態では、ローカル二分木の場合、彩度CUについてのみパレット予測の更新処理を無効にする。以下の表10には、VVC設計における構文の一例を示す。VVC設計では、変数cIdxが現在のCUの色成分を指定し、0が輝度、1がCb成分、2がCr成分を表す。VVCの変化を以下に示す。
【表10】
【0103】
ある実施形態では、ローカル二分木の場合、異なるビデオ成分についてパレットモードでのパレット予測の更新プロセスを個別に更新する。
【0104】
上述したように、ローカル二分木の場合、パレット予測の更新処理を順次実行する。これは、また、ローカル二分木でのパレット・モードにおける彩度CUの復号化は、同じローカル二分木でのすべての輝度CUが復号されたまで開始することができないことを意味する。これは、ハードウェアコーデック実行に望ましくない遅延が生じる可能性がある。
【0105】
上記の問題を解決するために、ある実施形態によれば、パレット予測更新プロセスは、ローカル二分木内の異なるビデオ成分(例えば、輝度および彩度)に対して個別に実行され、彩度成分のパレットモード符号化復号化が輝度成分と並行して行われることができる。本実施形態の一例では、ローカル二分木では、このローカル二分木の先頭にあるパレットを輝度CUと彩度CUの両方の開始パレットとして使用する。
【0106】
ある実施形態では、ローカル二分木の場合におけるパレット予測の更新プロセスが改善される。ローカル二分木の場合、輝度成分と彩度成分についてパレット予測の更新プロセスを個別に実行される。より具体的には、パレット予測は、最初に、ローカル二分木で各輝度CUを符号化復号化する間に更新され、その後、同じローカル二分木で各彩度CUを符号化復号化してもよい。その結果、ローカル二分木で輝度CUを符号化復号化しながらパレット予測を更新する際に、コロケーテッド画素の彩度情報を利用できない場合があり、その逆も同様である。
【0107】
ある実施形態では、符号化復号化効率を改善するために、ローカル二分木で1つのビデオ成分(例えば、輝度および/または彩度)のCUを符号化復号化しながらパレット予測を更新する際に、パレット内で以前に利用可能な候補の他のビデオ成分(例えば、彩度および/または彩度)値を使用してもよい。ローカル二分木の場合の一例では、輝度成分のパレット予測の更新プロセス中に、第1の利用可能な候補の彩度成分を新たに追加されたパレットエントリの彩度成分として利用することができる。以下の表11には、VVC設計における構文の一例を示す。VVCの変化を以下に示す。
【表11】
【0108】
ある実施形態では、
図6に示すように、ビデオデコーダ30は、ビットストリームから符号化ユニットに関連
する複数の構文要素を受信し、これらの複数の構文要素は、この符号化ユニットの符号化木のタイプ及びローカル二分木モードがこの符号化ユニットに対して有効かどうかを示
す(610)。
【0109】
ビデオデコーダ30は、この符号化ユニットの符号化木タイプが単一木であり且つローカル二分木モードがこの符号化ユニットに対して有効であると判定したことに応じて(620)、この符号化ユニットが予め定められた閾値以下のサイズを有する場合に、この符号化ユニットに対してパレットモードを無効にする(630)。
【0110】
ある実施形態では、この符号化ユニットに対してパレットモードを無効にする(630)ことは、この符号化ユニットの輝度成分および彩度成分の両方に対してパレットモードを無効にすることを含む(640)。
【0111】
ある実施形態では、符号化ユニットに対してパレットモードを無効にすること(630)は、この符号化ユニットの彩度成分のみに対してパレットモードを無効にすること(650)を含む。
【0112】
ある実施形態では、符号化ユニットの彩度成分のみに対してパレットモードを無効にすることは、複数の構文要素からこの符号化ユニットのビデオ成分が彩度成分であるか、輝度成分であるかをさらに決定することと、この符号化ユニットのビデオ成分が彩度成分であると決定したことに応じて、この符号化ユニットの彩度成分に対してパレットモードを無効にすることを含む。
【0113】
ある実施形態では、符号化ユニットの彩度成分のみに対してパレットモードを無効にすることは、複数の構文要素からこの符号化ユニットのビデオ成分が彩度成分であるか、輝度成分であるかをさらに決定することと、この符号化ユニットのビデオ成分が輝度成分であると決定したことに応じて、上述のビットストリームからこの符号化ユニットの輝度成分に関連付けられたパレットモードイネーブルフラグを受信し、このパレットモードイネーブルフラグに従ってこの符号化ユニットを復号化する。
【0114】
ある実施形態では、ビデオデコーダ30が、上述のビットストリームからパレット予測イネーブル構文を受信し、このパレット予測イネーブル構文に従って、この符号化ユニットの輝度成分のパレット予測を更新する。
【0115】
ある実施形態では、ビデオデコーダ30が、この符号化ユニットの輝度成分のパレット予測の更新を禁止する。
【0116】
ある実施形態では、ビデオデコーダ30が、最小パレットモード輝度ブロックサイズを決定し、上述の符号化ユニットの輝度成分のサイズが最小パレットモード輝度ブロックサイズ以下であると判定したことに応じて、この符号化ユニットの輝度成分のパレット予測の更新を禁止する。
【0117】
ある実施形態では、最小パレットモード輝度ブロックサイズが、32×32輝度サンプルである。
【0118】
ある実施形態では、最小パレットモード輝度ブロックサイズが、8×8輝度サンプルである。
【0119】
ある実施形態では、上述の複数の構文要素に含まれ、ローカル二分木モードがこの符号化ユニットに対して有効であるかどうかを示す構文要素が、MODE_TYPE_INTRAである。
【0120】
ある実施形態では、複数の構文要素に含まれ、符号化ユニットのビデオ成分が彩度成分であるか輝度成分であるかを示する構文要素が、DUAL_TREE_CHROMAである。
【0121】
ある実施形態では、ステップ630における予め定められた閾値が、32×32サンプルである。
【0122】
ある実施形態では、ステップ630における予め定められた閾値が、16×16サンプルである。
【0123】
図7は、本開示のある実施形態に係る、例示的なコンテキスト適応型バイナリ算術符号化復号化(CABAV)エンジンの例を示すブロック図である。
【0124】
コンテキスト適応型バイナリ算術符号化復号化(CABAC)は、H.264/MPEG-4 AVC、High Efficiency Video Coding(HEVC)及びVVCなどの多くのビデオ符号化復号化標準で使用されているエントロピー符号化形式である。CABACは、算術符号化復号化に基づくものであって、ビデオ符号化復号化標準のニーズに対応するために少しの革新及び更新が行われた。例えば、CABACは、複雑さを低く保ち、任意のシンボルにおけるよりも頻繁に使用されるビットの確率モデル化を可能にするようにバイナリシンボルを符号化する。符号化復号化モードが一般的にローカルに良好に相関するため、確率モデルが、確率をより良くモデル化するように、ローカルコンテキストに基づいて適応的に選択される。最後に、CABACは、定量化された確率範囲及び確率状態により、乗算なし範囲除算を使用する。
【0125】
CABACは、異なるコンテキストに対して複数の確率モデルを持つ。これはまず、すべての非バイナリシンボルをバイナリシンボルに変換すれ。次に、コーダは、各ビン(またはビットと呼ばれる)について、どの確率モデルを使用するかを選択し、次に、近傍の要素からの情報を使用して確率推定を最適化する。最後に、算術符号化復号化を適用してデータを圧縮する。
【0126】
コンテキストモデリングは、符号化シンボルの条件付き確率の推定を提供する。適切なコンテキストモデルを使用すると、符号化復号化される現在のシンボルの近傍で既に符号化復号化されたシンボルに応じて異なる確率モデル間を切り替えることによって、所定のシンボル間冗長性を利用することができる。データシンボルを符号化復号化することは、以下の段階を含む。
【0127】
二値化:CABACはバイナリ算術符号化復号化を使用し、これは、バイナリ決定(1または0)のみが符号化されることを意味する。算術符号化の前に、非バイナリ値シンボル(例えば、変換係数または動きベクトル)が、バイナリ符号に「二値化」されるか変換される。このプロセスは、データシンボルを可変長コードに変換するプロセスと同様であるが、バイナリコードは、送信前にさらに(算術コーダによって)符号化される。二値化されたシンボルの各ビン(または「ビット」)に対して各段階を繰り返する。
【0128】
コンテキストモデル選択:「コンテキストモデル」は、二値化されたシンボルの1つ又は複数のビンに対する確率モデルである。このモデルは、最近符号化されたデータシンボルの統計に基づいて、利用可能なモデルの選択から選定されることができる。コンテキストモデルは、各ビンが「1」または「0」である確率を格納する。
【0129】
算術符号化:算術コーダは、選択した確率モデルに基づいて各ビンを符号化する。なお、各ビンについて、2つのサブ範囲(「0」と「1」に対応)しかない。
【0130】
確率更新:実際の符号化された値に基づいて、選択したコンテキストモデルを更新する(たとえば、ビン値が「1」であると、「1」の頻度カウントが増加する)。
【0131】
各非バイナリ構文要素値はビンシーケンスに展開され、CABACにおける各ビン値のさらなる処理は、通常モードまたはバイパスモードのいずれかとして関連する選択可能な符号化復号化モード決定に依存する。後者のモードは、一様に分布していると仮定されたビンに対して、結果として通常のバイナリ算術符号化(および復号化)プロセス全体が単純にバイナリされるように選択される。通常の符号化復号化モードでは、通常のバイナリ算術符号化復号化エンジンにより各ビン値を符号化し、ここで、関連する確率モデルが、構文要素の二値化された表現における構文要素のタイプおよびビン位置またはビンインデックス(binIdx)に基づいて固定選択として決定されるか、または関連するサイド情報(例えば、CU/PU/TUの空間的隣、成分、深さまたはサイズ、またはTU内における位置)に従って2つ以上の確率モデルから適応的に選択される。確率モデルの選択は、コンテキストモデル化と呼ばれる。設計上の重要な決定として、後者のモードは、一般に最もよく着目されるビンにのみ適用され、一方、もう一つのモードでは、一般に着目されないビンが、一般に0次の結合確率モデルにより処理される。これにより、CABACは、サブシンボルレベルでの選択的適応確率モデル化を可能にし、したがって、全体的なモデル化または学習コストを大幅に削減して、シンボル間の冗長性を利用するための効果的な手段を提供する。なお、固定および適応の場合の両者では、原理的に、1つの確率モデルからもう一つの確率モデルへの切り替えが、任意の2つの連続する規則符号化ボックスの間で発生するおそれがある。一般的には、CABACにおけるコンテキストモデルの設計は、モデル化コストの不必要なオーバーヘッドを回避し、統計的依存性を大きく活用するという矛盾する2つの目標の間に、良好なトレードオフを見出すという目的を反映している。
【0132】
CABACにおける確率モデルのパラメータは適応的であり、これは、ビン源の統計的変動に対するモデル確率の適応が、エンコーダおよびデコーダにおいて、後方適応的かつ同期的にビン単位で実行されることを意味する。このプロセスを確率推定と呼ぶ。このため、CABAC内の各確率モデルは、区間[0:01875;0:98125] の範囲にある相関するモデル確率値pで126つの異なる状態から1つを選択することができる。各確率モデルの2つのパラメータは、最小可能シンボル(LPS:the least probable symbol)のモデル確率pLPSを表す63つの確率状態のそれぞれに対する6ビットと、最高可能シンボル(MPS:the most probable symbol)の値nMPSに対する1ビットとを含む7ビットのエントリとしてコンテキストメモリに格納される。
【0133】
1つまたは複数の例では、上述した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現される。ソフトウェアで実現される場合、それらの機能は、1つまたは複数の命令またはコードとして、コンピュータ読取可能な媒体に格納されまたはこれを介して送信され、ハードウェアによる処理ユニットによって実行される。コンピュータ読取可能な媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ読取可能な記憶媒体、または、例えば、通信プロトコルに従って、ある箇所から別の箇所へのコンピュータプログラムの転送を役立つ任意の媒体を含む通信媒体を含むことが可能である。このように、コンピュータ読取可能な媒体は、一般的に、(1)非一時的な有形のコンピュータ読取可能な記憶媒体、または(2)信号または搬送波などの通信媒体、に対応することが可能である。データ記憶媒体は、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされて、本願で説明された実施形態を実現するための命令、コード、および/またはデータ構造を検索することができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ読取可能な媒体を含んでもよい。
【0134】
ここで実施形態を説明するために使用される用語は、特定の実施形態を説明することのみを目的としており、特許請求の範囲を限定することを意図することがではない。実施形態の説明および添付の特許請求の範囲で使用されるように、単数形「一」、「1つの」、および「この」は、文脈で明確に別段の指示がない限り、複数形も含むことを意図している。 ここで使用される「および/または」という用語は、1つまたは複数の関する、列挙された項目の任意及びすべての可能な組み合わせを意味しかつ含むことも理解されべきである。本明細書で使用された「含む」という用語は、記載された特徴、要素、および/または成分の存在を指示するが、1つまたは複数の他の機能、要素、成分、および/またはそれらの組の存在または追加を排除するものではないことがさらに理解されべきである。
【0135】
ここで、第1、第2などの用語を使用して各種の要素を説明したことが、これらの要素はこれらの用語によって限定されないことも理解されべきである。これらの用語は、ある要素を別の要素と区別するためにのみ使用された。例えば、実施形態の範囲から逸脱することない限り、第1の電極は、第2の電極と呼ばれてよく、同様に、第2の電極は、第1の電極と呼ばれてもよい。第1の電極と第2の電極は両方とも電極であるが、同じ電極ではない。
【0136】
本願の説明は、例示および説明のために提示されており、網羅的なまたは開示された形態の発明に限定されるものではない。各種の変更、変形、および置換した実現は、前述の説明および関連する図面に提示された教示を得った当業者にとっては明らかである。実施形態は、本発明の原理、実際の適用を最もよく説明し、当業者が各種の実施のために本発明を理解し、特定の用途に適するために各種の変更で基礎となる原理および各種の実施を最もよく利用できるようにするために選択されおよび説明されたものである。したがって、特許請求の範囲は、開示された実現の特定の例に限定されなく、変更および他の実現も、添付の特許請求の範囲に含まれることを理解されるべきである。